diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2019-09-03 15:18:23 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2019-09-03 15:18:23 +0200 |
| commit | 6f2af841c17ff4ed28d40121114825a40e8cf6fa (patch) | |
| tree | 5cc68e65c61e85ada066e45cf62805b60b24cf67 | |
| parent | bea0583348a3e7de85d4fed5e7fe206fb90fcc73 (diff) | |
updating rems
329 files changed, 23381 insertions, 6937 deletions
diff --git a/StoneIsland/config.xml b/StoneIsland/config.xml index 64634d01..cfe778f7 100755 --- a/StoneIsland/config.xml +++ b/StoneIsland/config.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<widget android-versionCode="6120" id="us.okfoc.stoneisland" version="1.2.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> +<widget android-versionCode="6121" id="us.okfoc.stoneisland" version="1.2.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <name>Stone Island</name> <description> Stone Island @@ -33,7 +33,8 @@ <platform name="android"> <allow-intent href="market:*" /> <preference name="AndroidLaunchMode" value="singleTop" /> - <preference name="android-minSdkVersion" value="26" /> + <preference name="android-minSdkVersion" value="28" /> + <preference name="android-targetSdkVersion" value="28" /> </platform> <platform name="ios"> <allow-intent href="itms:*" /> diff --git a/StoneIsland/package-lock.json b/StoneIsland/package-lock.json index 2c8aec33..a6e74427 100644 --- a/StoneIsland/package-lock.json +++ b/StoneIsland/package-lock.json @@ -5,50 +5,74 @@ "requires": true, "dependencies": { "JSONStream": { - "version": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz", "integrity": "sha1-aAq5rGVyqKGiB+CzhyHbHHeyFeU=", "requires": { - "jsonparse": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.0.tgz", - "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, "abbrev": { - "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=" }, "accepts": { - "version": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", "requires": { - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" + "mime-types": "~2.1.11", + "negotiator": "0.6.1" } }, "acorn": { - "version": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=" }, "aliasify": { - "version": "https://registry.npmjs.org/aliasify/-/aliasify-1.9.0.tgz", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/aliasify/-/aliasify-1.9.0.tgz", "integrity": "sha1-A6oaX+W0ysYE47lnvEx86s+VcDA=", "requires": { - "browserify-transform-tools": "https://registry.npmjs.org/browserify-transform-tools/-/browserify-transform-tools-1.5.3.tgz" + "browserify-transform-tools": "~1.5.1" + } + }, + "android-versions": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.4.0.tgz", + "integrity": "sha512-GnomfYsBq+nZh3c3UH/4r9Jt6FuTxdhUJbeHIdYOH5xBhQ8I0ZzC2/RM5IFFIjrzuNWSHb8JWP1lPK0/a26jrg==", + "requires": { + "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + } } }, "ansi": { - "version": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" }, "ansi-escapes": { - "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" }, "ansi-regex": { - "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "ansicolors": { @@ -62,19 +86,23 @@ "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=" }, "array-filter": { - "version": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" }, "array-flatten": { - "version": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-map": { - "version": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" }, "array-reduce": { - "version": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" }, "asap": { @@ -83,38 +111,44 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "asn1": { - "version": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=" }, "asn1.js": { - "version": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { - "version": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", "requires": { - "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + "util": "0.10.3" } }, "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=" }, "astw": { - "version": "https://registry.npmjs.org/astw/-/astw-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astw/-/astw-2.0.0.tgz", "integrity": "sha1-CBIayCiNNWEcDO7GY/bNVFYEiX0=", "requires": { - "acorn": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz" + "acorn": "^1.0.3" } }, "async": { - "version": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" }, "async-some": { @@ -122,23 +156,27 @@ "resolved": "https://registry.npmjs.org/async-some/-/async-some-1.0.2.tgz", "integrity": "sha1-TYqBYg1ZWHkbW5j4AtMgd3bpVQk=", "requires": { - "dezalgo": "1.0.3" + "dezalgo": "^1.0.2" } }, "asynckit": { - "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "aws-sign2": { - "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=" }, "aws4": { - "version": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" }, "balanced-match": { - "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" }, "base64-js": { @@ -147,682 +185,632 @@ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, "bcrypt-pbkdf": { - "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "tweetnacl": "^0.14.3" } }, "big-integer": { - "version": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.17.tgz", + "version": "1.6.17", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.17.tgz", "integrity": "sha1-8Nz1EJqUnkKpk+4+j7IHBFKBe1E=" }, "bl": { - "version": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" + "readable-stream": "~1.0.26" }, "dependencies": { "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } } } }, "block-stream": { - "version": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "~2.0.0" } }, "bn.js": { - "version": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" }, "boom": { - "version": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=", "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" + "hoek": "0.9.x" } }, "bplist-creator": { - "version": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.4.tgz", + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.4.tgz", "integrity": "sha1-SsBJZ4LhJ6hcHSAmpPXrIqev+ZE=", "requires": { - "stream-buffers": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz" + "stream-buffers": "~0.2.3" } }, "bplist-parser": { - "version": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=", "requires": { - "big-integer": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.17.tgz" + "big-integer": "^1.6.7" } }, "brace-expansion": { - "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=", "requires": { - "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" } }, "brorand": { - "version": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, "browser-pack": { - "version": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=", "requires": { - "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz", - "combine-source-map": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", - "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "umd": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz" + "JSONStream": "^1.0.3", + "combine-source-map": "~0.7.1", + "defined": "^1.0.0", + "through2": "^2.0.0", + "umd": "^3.0.0" } }, "browser-resolve": { - "version": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", "requires": { - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" + "resolve": "1.1.7" }, "dependencies": { "resolve": { - "version": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" } } }, "browserify": { - "version": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz", "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=", "requires": { - "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz", - "assert": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "browser-pack": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", - "browser-resolve": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "browserify-zlib": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "buffer": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "cached-path-relative": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", - "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "console-browserify": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "constants-browserify": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "crypto-browserify": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", - "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "deps-sort": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "domain-browser": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "events": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "htmlescape": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "https-browserify": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "insert-module-globals": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", - "labeled-stream-splicer": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", - "module-deps": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", - "os-browserify": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", - "parents": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "path-browserify": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "process": "https://registry.npmjs.org/process/-/process-0.11.9.tgz", - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "querystring-es3": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "read-only-stream": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz", - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz", - "shasum": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "shell-quote": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "stream-browserify": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "stream-http": "https://registry.npmjs.org/stream-http/-/stream-http-2.6.3.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "subarg": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "syntax-error": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.1.6.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "timers-browserify": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "tty-browserify": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "url": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "vm-browserify": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "JSONStream": "^1.0.3", + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^1.11.0", + "browserify-zlib": "~0.1.2", + "buffer": "^4.1.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.1", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.0", + "domain-browser": "~1.1.0", + "duplexer2": "~0.1.2", + "events": "~1.1.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "~0.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.0.0", + "labeled-stream-splicer": "^2.0.0", + "module-deps": "^4.0.8", + "os-browserify": "~0.1.1", + "parents": "^1.0.1", + "path-browserify": "~0.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^2.0.0", + "stream-http": "^2.0.0", + "string_decoder": "~0.10.0", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "~0.0.0", + "url": "~0.11.0", + "util": "~0.10.1", + "vm-browserify": "~0.0.1", + "xtend": "^4.0.0" }, "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } }, "browserify-aes": { - "version": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", "requires": { - "buffer-xor": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz", - "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "buffer-xor": "^1.0.2", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-cipher": { - "version": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "requires": { - "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "browserify-des": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { - "version": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", "requires": { - "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "des.js": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-rsa": { - "version": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { - "version": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz", "integrity": "sha1-EHc5EMPCBtVCCkaq2GlPgguFlo8=", "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "browserify-rsa": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz", - "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz", - "elliptic": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "parse-asn1": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-transform-tools": { - "version": "https://registry.npmjs.org/browserify-transform-tools/-/browserify-transform-tools-1.5.3.tgz", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/browserify-transform-tools/-/browserify-transform-tools-1.5.3.tgz", "integrity": "sha1-UJycZS+2sHvw0h787rsdgm+AdUs=", "requires": { - "falafel": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", - "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + "falafel": "^1.0.1", + "through": "^2.3.7" } }, "browserify-zlib": { - "version": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "requires": { - "pako": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz" + "pako": "~0.2.0" } }, "buffer": { - "version": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", - "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" }, "dependencies": { "base64-js": { - "version": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=" }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, "buffer-shims": { - "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" }, "buffer-xor": { - "version": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, "builtin-modules": { - "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "builtin-status-codes": { - "version": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, "builtins": { - "version": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz", "integrity": "sha1-NVIZzWzxjb58Acx/0tznZc/cVJo=" }, "bytes": { - "version": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", "integrity": "sha1-1baAoWW2IBc5rLYRVCqrwtjOsHA=" }, "cached-path-relative": { - "version": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=" }, "caseless": { - "version": "https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz", "integrity": "sha1-gWfBq4OX+1u5X5bSjlqBxQ8kesQ=" }, "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cipher-base": { - "version": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "^2.0.1" } }, "cli-cursor": { - "version": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "requires": { - "restore-cursor": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz" + "restore-cursor": "^1.0.1" } }, "cli-width": { - "version": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz", "integrity": "sha1-pNKT72frt7iNSk1CwMzwDE0eNm0=" }, "code-point-at": { - "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "combine-source-map": { - "version": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=", "requires": { - "convert-source-map": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "inline-source-map": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "lodash.memoize": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" } }, "combined-stream": { - "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + "delayed-stream": "0.0.5" } }, "commander": { - "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "requires": { - "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + "graceful-readlink": ">= 1.0.0" } }, "compressible": { - "version": "https://registry.npmjs.org/compressible/-/compressible-2.0.9.tgz", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.9.tgz", "integrity": "sha1-baq04rWZwncN2eIeeokbHFp1VCU=", "requires": { - "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz" + "mime-db": ">= 1.24.0 < 2" } }, "compression": { - "version": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", "integrity": "sha1-zOsSHsydCcUtetDDNQ6pPd1AK8M=", "requires": { - "accepts": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "bytes": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", - "compressible": "https://registry.npmjs.org/compressible/-/compressible-2.0.9.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "on-headers": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "vary": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz" + "accepts": "~1.3.3", + "bytes": "2.3.0", + "compressible": "~2.0.8", + "debug": "~2.2.0", + "on-headers": "~1.0.1", + "vary": "~1.1.0" } }, "concat-map": { - "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { - "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" }, "dependencies": { "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } } } }, "configstore": { - "version": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz", "integrity": "sha1-w1eB0FAdJowlxUuLF/YkDopPsCE=", "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "write-file-atomic": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.1.tgz", - "xdg-basedir": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz" + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "object-assign": "^4.0.1", + "os-tmpdir": "^1.0.0", + "osenv": "^0.1.0", + "uuid": "^2.0.1", + "write-file-atomic": "^1.1.2", + "xdg-basedir": "^2.0.0" } }, "console-browserify": { - "version": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "requires": { - "date-now": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" + "date-now": "^0.1.4" } }, "constants-browserify": { - "version": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, "content-disposition": { - "version": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" }, "content-type": { - "version": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" }, "convert-source-map": { - "version": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" }, "cookie": { - "version": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, "cookie-signature": { - "version": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "cordova": { - "version": "https://registry.npmjs.org/cordova/-/cordova-6.5.0.tgz", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/cordova/-/cordova-6.5.0.tgz", "integrity": "sha1-5uyBsX3VDBfEC0uHMw987Tj7C0c=", "requires": { - "cordova-common": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz", - "cordova-lib": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-6.5.0.tgz", - "insight": "https://registry.npmjs.org/insight/-/insight-0.8.4.tgz", - "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", - "q": "https://registry.npmjs.org/q/-/q-1.0.1.tgz", - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "update-notifier": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz" + "cordova-common": "2.0.0", + "cordova-lib": "6.5.0", + "insight": "~0.8.2", + "nopt": "3.0.1", + "q": "1.0.1", + "underscore": "1.7.0", + "update-notifier": "^0.5.0" } }, "cordova-android": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-6.2.3.tgz", - "integrity": "sha1-JJ8hts5fHxyEenq4OxaQnb7Vqig=", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-8.0.0.tgz", + "integrity": "sha512-Ipv8HbVJpxEyYFSFLTEOaLRp0yxBtJVNbgSuDEB4naa34FzQaRWSNiiMcPJnO+x3hRXNt7pcwa46hARNzhn7+w==", "requires": { - "cordova-common": "2.0.2", - "elementtree": "0.1.6", - "nopt": "3.0.6", - "properties-parser": "0.2.3", - "q": "1.5.0", - "shelljs": "0.5.3" + "android-versions": "^1.3.0", + "cordova-common": "^3.1.0", + "elementtree": "^0.1.7", + "nopt": "^4.0.1", + "properties-parser": "^0.3.1", + "q": "^1.4.1", + "shelljs": "^0.5.3" }, "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true - }, - "ansi": { - "version": "0.3.1", - "bundled": true - }, "balanced-match": { - "version": "0.4.2", - "bundled": true - }, - "base64-js": { - "version": "0.0.8", - "bundled": true - }, - "big-integer": { - "version": "1.6.22", - "bundled": true - }, - "bplist-parser": { - "version": "0.1.1", - "bundled": true, - "requires": { - "big-integer": "1.6.22" - } + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "brace-expansion": { - "version": "1.1.7", - "bundled": true, + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, "cordova-common": { - "version": "2.0.2", - "bundled": true, - "requires": { - "ansi": "0.3.1", - "bplist-parser": "0.1.1", - "cordova-registry-mapper": "1.1.15", - "elementtree": "0.1.6", - "glob": "5.0.15", - "minimatch": "3.0.3", - "osenv": "0.1.4", - "plist": "1.2.0", - "q": "1.5.0", - "semver": "5.3.0", - "shelljs": "0.5.3", - "underscore": "1.8.3", - "unorm": "1.4.1" - } - }, - "cordova-registry-mapper": { - "version": "1.1.15", - "bundled": true - }, - "elementtree": { - "version": "0.1.6", - "bundled": true, + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-3.2.0.tgz", + "integrity": "sha512-EvlQ6PirfR65hGDoQvsluW00uSS2MTVIRKQ3c1Xvsddx7D5T5JgF3fHWkGik/Y/8yNcpI0zI2NcJyie2z/ak2A==", "requires": { - "sax": "0.3.5" + "ansi": "^0.3.1", + "bplist-parser": "^0.1.0", + "cross-spawn": "^6.0.5", + "elementtree": "0.1.7", + "endent": "^1.1.1", + "fs-extra": "^8.0.0", + "glob": "^7.1.2", + "minimatch": "^3.0.0", + "plist": "^3.0.1", + "q": "^1.4.1", + "strip-bom": "^3.0.0", + "underscore": "^1.8.3", + "which": "^1.3.0" } }, "glob": { - "version": "5.0.15", - "bundled": true, + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.3", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "lodash": { - "version": "3.10.1", - "bundled": true - }, - "minimatch": { - "version": "3.0.3", - "bundled": true, - "requires": { - "brace-expansion": "1.1.7" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "nopt": { - "version": "3.0.6", - "bundled": true, - "requires": { - "abbrev": "1.1.0" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "abbrev": "1", + "osenv": "^0.1.4" } }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "plist": { - "version": "1.2.0", - "bundled": true, + "properties-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.3.1.tgz", + "integrity": "sha1-ExbpU5/7/ZOEXjabIRAiq9R4dxo=", "requires": { - "base64-js": "0.0.8", - "util-deprecate": "1.0.2", - "xmlbuilder": "4.0.0", - "xmldom": "0.1.27" + "string.prototype.codepointat": "^0.2.0" } }, - "properties-parser": { - "version": "0.2.3", - "bundled": true - }, "q": { - "version": "1.5.0", - "bundled": true - }, - "sax": { - "version": "0.3.5", - "bundled": true - }, - "semver": { - "version": "5.3.0", - "bundled": true - }, - "shelljs": { - "version": "0.5.3", - "bundled": true + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" }, "underscore": { - "version": "1.8.3", - "bundled": true - }, - "unorm": { - "version": "1.4.1", - "bundled": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "xmlbuilder": { - "version": "4.0.0", - "bundled": true, - "requires": { - "lodash": "3.10.1" - } - }, - "xmldom": { - "version": "0.1.27", - "bundled": true + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" } } }, "cordova-app-hello-world": { - "version": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-3.11.0.tgz", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-3.11.0.tgz", "integrity": "sha1-khT+ud1xPKSBocurzuymCWbBwM8=" }, "cordova-common": { - "version": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz", "integrity": "sha1-ElCX60tQtzU87CJu0hZJGSKTrpc=", "requires": { - "ansi": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", - "bplist-parser": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", - "cordova-registry-mapper": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz", - "elementtree": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "plist": "1.2.0", - "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz", - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "unorm": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz" + "ansi": "^0.3.1", + "bplist-parser": "^0.1.0", + "cordova-registry-mapper": "^1.1.8", + "elementtree": "^0.1.6", + "glob": "^5.0.13", + "minimatch": "^3.0.0", + "osenv": "^0.1.3", + "plist": "^1.2.0", + "q": "^1.4.1", + "semver": "^5.0.1", + "shelljs": "^0.5.3", + "underscore": "^1.8.3", + "unorm": "^1.3.3" }, "dependencies": { "base64-js": { @@ -836,17 +824,19 @@ "integrity": "sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=", "requires": { "base64-js": "0.0.8", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "util-deprecate": "1.0.2", "xmlbuilder": "4.0.0", - "xmldom": "0.1.27" + "xmldom": "0.1.x" } }, "q": { - "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" }, "underscore": { - "version": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" }, "xmlbuilder": { @@ -854,63 +844,69 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz", "integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M=", "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + "lodash": "^3.5.0" } } } }, "cordova-create": { - "version": "https://registry.npmjs.org/cordova-create/-/cordova-create-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cordova-create/-/cordova-create-1.0.2.tgz", "integrity": "sha1-y5u6mBfGKmRbrLbgDajMUJNqD6U=", "requires": { - "cordova-app-hello-world": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-3.11.0.tgz", - "cordova-common": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz", - "cordova-fetch": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-1.0.2.tgz", - "q": "https://registry.npmjs.org/q/-/q-1.0.1.tgz", - "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "valid-identifier": "https://registry.npmjs.org/valid-identifier/-/valid-identifier-0.0.1.tgz" + "cordova-app-hello-world": "^3.11.0", + "cordova-common": "2.0.0", + "cordova-fetch": "1.0.2", + "q": "1.0.1", + "shelljs": "0.3.0", + "valid-identifier": "0.0.1" }, "dependencies": { "shelljs": { - "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=" } } }, "cordova-fetch": { - "version": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-1.0.2.tgz", "integrity": "sha1-uPSQPzn+YTiIBiVSqWmVQTrxbTU=", "requires": { - "cordova-common": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz", - "dependency-ls": "https://registry.npmjs.org/dependency-ls/-/dependency-ls-1.0.0.tgz", - "is-url": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", - "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz" + "cordova-common": "2.0.0", + "dependency-ls": "^1.0.0", + "is-url": "^1.2.1", + "q": "^1.4.1", + "shelljs": "^0.7.0" }, "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "q": { - "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" }, "shelljs": { - "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz", "integrity": "sha1-N5zM+1a5HIYB5HkzVutTgpJN6a0=", "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "interpret": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz", - "rechoir": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } } } @@ -921,13 +917,13 @@ "integrity": "sha512-c5yXY5b/ONRSe+IoBOz9MqcPNmTa/AdnwSOPelm/izRV0uqNg9mW4Fe9W8mRCMBzfCFQFL4qJcCC4Bi0VLg4mQ==", "requires": { "cordova-common": "2.1.0", - "ios-sim": "6.1.2", - "nopt": "3.0.6", - "plist": "1.2.0", - "q": "1.5.0", - "shelljs": "0.5.3", - "xcode": "0.9.3", - "xml-escape": "1.1.0" + "ios-sim": "^6.1.2", + "nopt": "^3.0.6", + "plist": "^1.2.0", + "q": "^1.4.1", + "shelljs": "^0.5.3", + "xcode": "^0.9.0", + "xml-escape": "^1.1.0" }, "dependencies": { "abbrev": { @@ -954,21 +950,21 @@ "version": "0.0.7", "bundled": true, "requires": { - "stream-buffers": "2.2.0" + "stream-buffers": "~2.2.0" } }, "bplist-parser": { "version": "0.1.1", "bundled": true, "requires": { - "big-integer": "1.6.25" + "big-integer": "^1.6.7" } }, "brace-expansion": { "version": "1.1.8", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -980,19 +976,19 @@ "version": "2.1.0", "bundled": true, "requires": { - "ansi": "0.3.1", - "bplist-parser": "0.1.1", - "cordova-registry-mapper": "1.1.15", + "ansi": "^0.3.1", + "bplist-parser": "^0.1.0", + "cordova-registry-mapper": "^1.1.8", "elementtree": "0.1.6", - "glob": "5.0.15", - "minimatch": "3.0.4", - "osenv": "0.1.4", - "plist": "1.2.0", - "q": "1.5.0", - "semver": "5.4.1", - "shelljs": "0.5.3", - "underscore": "1.8.3", - "unorm": "1.4.1" + "glob": "^5.0.13", + "minimatch": "^3.0.0", + "osenv": "^0.1.3", + "plist": "^1.2.0", + "q": "^1.4.1", + "semver": "^5.0.1", + "shelljs": "^0.5.3", + "underscore": "^1.8.3", + "unorm": "^1.3.3" } }, "cordova-registry-mapper": { @@ -1010,19 +1006,19 @@ "version": "5.0.15", "bundled": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "inflight": { "version": "1.0.6", "bundled": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -1033,10 +1029,10 @@ "version": "6.1.2", "bundled": true, "requires": { - "bplist-parser": "0.0.6", + "bplist-parser": "^0.0.6", "nopt": "1.0.9", - "plist": "1.2.0", - "simctl": "1.1.1" + "plist": "^1.2.0", + "simctl": "^1.1.1" }, "dependencies": { "bplist-parser": { @@ -1047,7 +1043,7 @@ "version": "1.0.9", "bundled": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } } } @@ -1060,21 +1056,21 @@ "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "nopt": { "version": "3.0.6", "bundled": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "once": { "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -1089,8 +1085,8 @@ "version": "0.1.4", "bundled": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -1108,7 +1104,7 @@ "base64-js": "0.0.8", "util-deprecate": "1.0.2", "xmlbuilder": "4.0.0", - "xmldom": "0.1.27" + "xmldom": "0.1.x" } }, "q": { @@ -1131,8 +1127,8 @@ "version": "1.1.1", "bundled": true, "requires": { - "shelljs": "0.2.6", - "tail": "0.4.0" + "shelljs": "^0.2.6", + "tail": "^0.4.0" }, "dependencies": { "shelljs": { @@ -1160,7 +1156,7 @@ "requires": { "base64-js": "1.1.2", "xmlbuilder": "8.2.2", - "xmldom": "0.1.27" + "xmldom": "0.1.x" } }, "xmlbuilder": { @@ -1201,8 +1197,8 @@ "version": "0.9.3", "bundled": true, "requires": { - "pegjs": "0.10.0", - "simple-plist": "0.2.1", + "pegjs": "^0.10.0", + "simple-plist": "^0.2.1", "uuid": "3.0.1" } }, @@ -1214,7 +1210,7 @@ "version": "4.0.0", "bundled": true, "requires": { - "lodash": "3.10.1" + "lodash": "^3.5.0" } }, "xmldom": { @@ -1224,41 +1220,43 @@ } }, "cordova-js": { - "version": "https://registry.npmjs.org/cordova-js/-/cordova-js-4.2.1.tgz", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/cordova-js/-/cordova-js-4.2.1.tgz", "integrity": "sha1-AcoYbhTmOwHLbSTkaXUOSBoDg1U=", "requires": { - "browserify": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz" + "browserify": "13.3.0" } }, "cordova-lib": { - "version": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-6.5.0.tgz", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-6.5.0.tgz", "integrity": "sha1-92MKBMKdbN7pgBkLHZP7FTasRT8=", "requires": { - "aliasify": "https://registry.npmjs.org/aliasify/-/aliasify-1.9.0.tgz", - "cordova-common": "https://registry.npmjs.org/cordova-common/-/cordova-common-2.0.0.tgz", - "cordova-create": "https://registry.npmjs.org/cordova-create/-/cordova-create-1.0.2.tgz", - "cordova-fetch": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-1.0.2.tgz", - "cordova-js": "https://registry.npmjs.org/cordova-js/-/cordova-js-4.2.1.tgz", - "cordova-registry-mapper": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz", - "cordova-serve": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-1.0.1.tgz", - "dep-graph": "https://registry.npmjs.org/dep-graph/-/dep-graph-1.1.0.tgz", - "elementtree": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "init-package-json": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz", - "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "npm": "https://registry.npmjs.org/npm/-/npm-2.15.11.tgz", - "opener": "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz", - "plist": "1.2.0", - "properties-parser": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.2.3.tgz", - "q": "https://registry.npmjs.org/q/-/q-1.0.1.tgz", - "request": "https://registry.npmjs.org/request/-/request-2.47.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "tar": "https://registry.npmjs.org/tar/-/tar-1.0.2.tgz", - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "unorm": "https://registry.npmjs.org/unorm/-/unorm-1.3.3.tgz", - "valid-identifier": "https://registry.npmjs.org/valid-identifier/-/valid-identifier-0.0.1.tgz", - "xcode": "https://registry.npmjs.org/xcode/-/xcode-0.9.1.tgz" + "aliasify": "^1.7.2", + "cordova-common": "2.0.0", + "cordova-create": "^1.0.1", + "cordova-fetch": "1.0.2", + "cordova-js": "4.2.1", + "cordova-registry-mapper": "1.x", + "cordova-serve": "^1.0.0", + "dep-graph": "1.1.0", + "elementtree": "0.1.6", + "glob": "^5.0.3", + "init-package-json": "^1.2.0", + "nopt": "^3.0.6", + "npm": "^2.10.x", + "opener": "1.4.1", + "plist": "^1.2.0", + "properties-parser": "0.2.3", + "q": "1.0.1", + "request": "2.47.0", + "semver": "^4.3.x", + "shelljs": "0.3.0", + "tar": "1.0.2", + "underscore": "1.7.0", + "unorm": "1.3.3", + "valid-identifier": "0.0.1", + "xcode": "^0.9.0" }, "dependencies": { "base64-js": { @@ -1267,17 +1265,19 @@ "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" }, "elementtree": { - "version": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.6.tgz", "integrity": "sha1-KsTEbqMFFsjEy9teOsdBjlkt4gw=", "requires": { - "sax": "https://registry.npmjs.org/sax/-/sax-0.3.5.tgz" + "sax": "0.3.5" } }, "nopt": { - "version": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "requires": { - "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz" + "abbrev": "1" } }, "plist": { @@ -1286,25 +1286,29 @@ "integrity": "sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=", "requires": { "base64-js": "0.0.8", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "util-deprecate": "1.0.2", "xmlbuilder": "4.0.0", - "xmldom": "0.1.27" + "xmldom": "0.1.x" } }, "sax": { - "version": "https://registry.npmjs.org/sax/-/sax-0.3.5.tgz", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.3.5.tgz", "integrity": "sha1-iPz8H3PAyLvVt8d2ttPzUB7tBz0=" }, "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=" }, "shelljs": { - "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=" }, "unorm": { - "version": "https://registry.npmjs.org/unorm/-/unorm-1.3.3.tgz", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.3.3.tgz", "integrity": "sha1-Fqh3JnHr1vfN5vjF5Ju2CsR9upM=" }, "xmlbuilder": { @@ -1312,7 +1316,7 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz", "integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M=", "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + "lodash": "^3.5.0" } } } @@ -1322,7 +1326,7 @@ "resolved": "https://registry.npmjs.org/cordova-plugin-app-name/-/cordova-plugin-app-name-1.0.4.tgz", "integrity": "sha1-FruwzRrwdAumNH66QPIgM0HU+z0=", "requires": { - "xml2js": "0.4.19" + "xml2js": "^0.4.16" } }, "cordova-plugin-customurlscheme": { @@ -1381,104 +1385,137 @@ "integrity": "sha1-Q5odL0c2YnYogm5Rla5Tm1TmJIo=" }, "cordova-registry-mapper": { - "version": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/cordova-registry-mapper/-/cordova-registry-mapper-1.1.15.tgz", "integrity": "sha1-4kS5GFuBdUc7/2B5MkkFEV+D3Hw=" }, "cordova-serve": { - "version": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-1.0.1.tgz", "integrity": "sha1-iVx/tLvmMPocif6vbXR3nL/2bac=", "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "compression": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", - "express": "https://registry.npmjs.org/express/-/express-4.14.1.tgz", - "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz" + "chalk": "^1.1.1", + "compression": "^1.6.0", + "express": "^4.13.3", + "q": "^1.4.1" }, "dependencies": { "q": { - "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" } } }, "core-util-is": { - "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "create-ecdh": { - "version": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "elliptic": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { - "version": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz", "integrity": "sha1-USEAYte7dHn2xlu0GpIgix1hq60=", "requires": { - "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz", - "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "ripemd160": "^1.0.0", + "sha.js": "^2.3.6" } }, "create-hmac": { - "version": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz", "integrity": "sha1-0/tLolPriz9W456i+8uK90e9MXA=", "requires": { - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "create-hash": "^1.1.0", + "inherits": "^2.0.1" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + } } }, "cryptiles": { - "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=", "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" + "boom": "0.4.x" } }, "crypto-browserify": { - "version": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=", "requires": { - "browserify-cipher": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "browserify-sign": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz", - "create-ecdh": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz", - "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz", - "diffie-hellman": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "pbkdf2": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz", - "public-encrypt": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0" } }, "ctype": { - "version": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=" }, "dashdash": { - "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } }, "date-now": { - "version": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + "ms": "0.7.1" } }, "debuglog": { @@ -1486,80 +1523,118 @@ "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=" }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, "deep-extend": { - "version": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", "integrity": "sha1-7+QRPQgIX05vlod1mBD4B0aeIlM=" }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + } + } + }, "defined": { - "version": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, "delayed-stream": { - "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=" }, "dep-graph": { - "version": "https://registry.npmjs.org/dep-graph/-/dep-graph-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/dep-graph/-/dep-graph-1.1.0.tgz", "integrity": "sha1-+t6GqSeZqBPptCURzfPfpsyNvv4=", "requires": { - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz" + "underscore": "1.2.1" }, "dependencies": { "underscore": { - "version": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz", "integrity": "sha1-/FxrB2VnPZKi1KyLTcCqiHAuK9Q=" } } }, "depd": { - "version": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=" }, "dependency-ls": { - "version": "https://registry.npmjs.org/dependency-ls/-/dependency-ls-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-ls/-/dependency-ls-1.0.0.tgz", "integrity": "sha1-MR3J+pqEC+5MbKM5VFVuXPCctck=", "requires": { - "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz" + "q": "1.4.1" }, "dependencies": { "q": { - "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" } } }, "deps-sort": { - "version": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", "requires": { - "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz", - "shasum": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "subarg": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + "JSONStream": "^1.0.3", + "shasum": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" } }, "des.js": { - "version": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { - "version": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "detective": { - "version": "https://registry.npmjs.org/detective/-/detective-4.3.2.tgz", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.3.2.tgz", "integrity": "sha1-d2l+LnlHrD/nyOJqbW8RUjWvqRw=", "requires": { - "acorn": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" + "acorn": "^3.1.0", + "defined": "^1.0.0" }, "dependencies": { "acorn": { - "version": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" } } @@ -1569,257 +1644,376 @@ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "requires": { - "asap": "2.0.6", - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "asap": "^2.0.0", + "wrappy": "1" } }, "diffie-hellman": { - "version": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "miller-rabin": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "domain-browser": { - "version": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" }, "duplexer2": { - "version": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz" + "readable-stream": "^2.0.2" } }, "duplexify": { - "version": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=", "requires": { - "end-of-stream": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz", - "stream-shift": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz" + "end-of-stream": "1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "ecc-jsbn": { - "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + "jsbn": "~0.1.0" } }, "ee-first": { - "version": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "elementtree": { - "version": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", "requires": { - "sax": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz" + "sax": "1.1.4" } }, "elliptic": { - "version": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "brorand": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "hash.js": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz", - "hmac-drbg": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "minimalistic-crypto-utils": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "encodeurl": { - "version": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" }, "end-of-stream": { - "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=", "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" + "once": "~1.3.0" }, "dependencies": { "once": { - "version": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", "requires": { - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "wrappy": "1" + } + } + } + }, + "endent": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/endent/-/endent-1.3.0.tgz", + "integrity": "sha512-C8AryqPPwtydqcpO5AF6k9Bd1EpFkQtvsefJqS3y3n8TG13Jy63MascDxTOULZYqrUde+dK6BjNc6LIMr3iI2A==", + "requires": { + "dedent": "^0.7.0", + "fast-json-parse": "^1.0.3", + "objectorarray": "^1.0.3" + } + }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + }, + "dependencies": { + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" } } }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "escape-html": { - "version": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { - "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "etag": { - "version": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=" }, "events": { - "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" }, "evp_bytestokey": { - "version": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", "requires": { - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz" + "create-hash": "^1.1.1" } }, "exit-hook": { - "version": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" }, "express": { - "version": "https://registry.npmjs.org/express/-/express-4.14.1.tgz", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.14.1.tgz", "integrity": "sha1-ZGwjf3ZvFIwhIK/wc4F7nk1+DTM=", "requires": { - "accepts": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "array-flatten": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "content-disposition": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "cookie-signature": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "etag": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", - "finalhandler": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.1.tgz", - "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "merge-descriptors": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "methods": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "path-to-regexp": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "proxy-addr": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.3.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "send": "https://registry.npmjs.org/send/-/send-0.14.2.tgz", - "serve-static": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.2.tgz", - "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz", - "utils-merge": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "vary": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz" + "accepts": "~1.3.3", + "array-flatten": "1.1.1", + "content-disposition": "0.5.2", + "content-type": "~1.0.2", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "~2.2.0", + "depd": "~1.1.0", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.7.0", + "finalhandler": "0.5.1", + "fresh": "0.3.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.1", + "path-to-regexp": "0.1.7", + "proxy-addr": "~1.1.3", + "qs": "6.2.0", + "range-parser": "~1.2.0", + "send": "0.14.2", + "serve-static": "~1.11.2", + "type-is": "~1.6.14", + "utils-merge": "1.0.0", + "vary": "~1.1.0" } }, "extend": { - "version": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=" }, "extsprintf": { - "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" }, "falafel": { - "version": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", "integrity": "sha1-wY0k71CRF0pJfzGM0ksCaiXN2rQ=", "requires": { - "acorn": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", - "foreach": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz" + "acorn": "^1.0.3", + "foreach": "^2.0.5", + "isarray": "0.0.1", + "object-keys": "^1.0.6" } }, + "fast-json-parse": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==" + }, "figures": { - "version": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "requires": { - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" } }, "finalhandler": { - "version": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.1.tgz", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.1.tgz", "integrity": "sha1-LEANjUUwk1vCMlScX6OF7Afeb80=", "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + "debug": "~2.2.0", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" } }, "foreach": { - "version": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, "forever-agent": { - "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=" }, "form-data": { - "version": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", "integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=", "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + "async": "~0.9.0", + "combined-stream": "~0.0.4", + "mime": "~1.2.11" }, "dependencies": { "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=" } } }, "forwarded": { - "version": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" }, "fresh": { - "version": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=" }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" + } + } + }, "fs.realpath": { - "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { - "version": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", "integrity": "sha1-YE6Kkv4m/9n2+uMDmdSYThqyKCI=", "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.0.tgz" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "function-bind": { - "version": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" }, "generate-function": { - "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" }, "generate-object-property": { - "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "requires": { - "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + "is-property": "^1.0.0" } }, "getpass": { - "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } @@ -1830,370 +2024,424 @@ "integrity": "sha1-fdeTMNKr5pwQws73lxTJchV5Hfo=" }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "requires": { - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "got": { - "version": "https://registry.npmjs.org/got/-/got-3.3.1.tgz", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz", "integrity": "sha1-5dDtSvVfw+701WAHdp2YGSvLLso=", "requires": { - "duplexify": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", - "infinity-agent": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz", - "is-redirect": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "lowercase-keys": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "nested-error-stacks": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "prepend-http": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "read-all-stream": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", - "timed-out": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz" + "duplexify": "^3.2.0", + "infinity-agent": "^2.0.0", + "is-redirect": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "nested-error-stacks": "^1.0.0", + "object-assign": "^3.0.0", + "prepend-http": "^1.0.0", + "read-all-stream": "^3.0.0", + "timed-out": "^2.0.0" }, "dependencies": { "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" } } }, "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "graceful-readlink": { - "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" }, "har-validator": { - "version": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" } }, "has": { - "version": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "requires": { - "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz" + "function-bind": "^1.0.2" } }, "has-ansi": { - "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "ansi-regex": "^2.0.0" } }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, "hash.js": { - "version": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz", "integrity": "sha1-EzL/ABVsCg/92CNgE9B7d6BFFXM=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "^2.0.1" } }, "hawk": { - "version": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", "integrity": "sha1-h81JH5tG5OKurKM1QWdmiF0tHtk=", "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", - "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", - "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", - "sntp": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" + "boom": "0.4.x", + "cryptiles": "0.2.x", + "hoek": "0.9.x", + "sntp": "0.2.x" } }, "hmac-drbg": { - "version": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.0.tgz", "integrity": "sha1-PbRx9FquSplKBogyIXH1G4uRvuU=", "requires": { - "hash.js": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz", - "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "minimalistic-crypto-utils": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoek": { - "version": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU=" }, "hosted-git-info": { - "version": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.2.0.tgz", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.2.0.tgz", "integrity": "sha1-eg0JeGPYhsD6u9zTe/F1jYvs+KU=" }, "htmlescape": { - "version": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=" }, "http-errors": { - "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" + "inherits": "2.0.3", + "setprototypeof": "1.0.2", + "statuses": ">= 1.3.1 < 2" } }, "http-signature": { - "version": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=", "requires": { - "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", - "ctype": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + "asn1": "0.1.11", + "assert-plus": "^0.1.5", + "ctype": "0.5.3" } }, "https-browserify": { - "version": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=" }, "ieee754": { - "version": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" }, "imurmurhash": { - "version": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indexof": { - "version": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" }, "infinity-agent": { - "version": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz", "integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY=" }, "inflight": { - "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { - "version": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" }, "init-package-json": { - "version": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz", "integrity": "sha1-tAU9C0Dwz4QqQZZpN8s9wPU06FY=", "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "npm-package-arg": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.0.tgz", - "promzard": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "read": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "read-package-json": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "validate-npm-package-name": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz" + "glob": "^6.0.0", + "npm-package-arg": "^4.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^2.0.1" }, "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "requires": { - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } }, "inline-source-map": { - "version": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", "requires": { - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "source-map": "~0.5.3" } }, "inquirer": { - "version": "https://registry.npmjs.org/inquirer/-/inquirer-0.10.1.tgz", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.10.1.tgz", "integrity": "sha1-6iXkzmnKFF4FyZ5G3P7AXkASWUo=", "requires": { - "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "cli-cursor": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "cli-width": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz", - "figures": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "readline2": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "run-async": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "rx-lite": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + "ansi-escapes": "^1.1.0", + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^1.0.1", + "figures": "^1.3.5", + "lodash": "^3.3.1", + "readline2": "^1.0.1", + "run-async": "^0.1.0", + "rx-lite": "^3.1.2", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" } }, "insert-module-globals": { - "version": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", "requires": { - "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz", - "combine-source-map": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", - "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz", - "lexical-scope": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", - "process": "https://registry.npmjs.org/process/-/process-0.11.9.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "JSONStream": "^1.0.3", + "combine-source-map": "~0.7.1", + "concat-stream": "~1.5.1", + "is-buffer": "^1.1.0", + "lexical-scope": "^1.2.0", + "process": "~0.11.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" } }, "insight": { - "version": "https://registry.npmjs.org/insight/-/insight-0.8.4.tgz", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/insight/-/insight-0.8.4.tgz", "integrity": "sha1-ZxyvZbR8n+jD0bMgbPRbshG3WIQ=", "requires": { - "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "configstore": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz", - "inquirer": "https://registry.npmjs.org/inquirer/-/inquirer-0.10.1.tgz", - "lodash.debounce": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "os-name": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz", - "request": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" + "async": "^1.4.2", + "chalk": "^1.0.0", + "configstore": "^1.0.0", + "inquirer": "^0.10.0", + "lodash.debounce": "^3.0.1", + "object-assign": "^4.0.1", + "os-name": "^1.0.0", + "request": "^2.74.0", + "tough-cookie": "^2.0.0", + "uuid": "^3.0.0" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" }, "async": { - "version": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, "aws-sign2": { - "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" }, "boom": { - "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + "hoek": "2.x.x" } }, "caseless": { - "version": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" }, "combined-stream": { - "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "delayed-stream": "~1.0.0" } }, "cryptiles": { - "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + "boom": "2.x.x" } }, "delayed-stream": { - "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "forever-agent": { - "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=", "requires": { - "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "hawk": { - "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { - "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, "http-signature": { - "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", - "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "oauth-sign": { - "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz", "integrity": "sha1-kYwLO802Z5dyuvE1say0wWUe150=" }, "request": { - "version": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", "requires": { - "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz", - "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" } }, "sntp": { - "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + "hoek": "2.x.x" } }, "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" } } }, "interpret": { - "version": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz", "integrity": "sha1-1Xn7f2k7hYAElHrzn6DbSfeVYCw=" }, "ionic-plugin-keyboard": { @@ -2202,389 +2450,489 @@ "integrity": "sha1-8qnhabvptVIkADR8n9bTRn7j+hI=" }, "ios-deploy": { - "version": "https://registry.npmjs.org/ios-deploy/-/ios-deploy-1.9.1.tgz", - "integrity": "sha1-597JUIu0ZKHy1Ua7B/raQdJwjmY=" + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/ios-deploy/-/ios-deploy-1.9.4.tgz", + "integrity": "sha512-pgyc19zgtwGrfx3GL8yV0c0dAPucTpJ0VZkuS3DcqxIZYC48+UW+tBTxI43u1ZDk17mop0ABLs1SkAy5SUQ6pQ==" }, "ipaddr.js": { - "version": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.2.0.tgz", "integrity": "sha1-irpJyRknmVhb3WQ+DMtQ6K53e6Q=" }, "is-buffer": { - "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz", "integrity": "sha1-z8hszV3FpS+oBIkRHGkgxFfi2Ys=" }, "is-builtin-module": { - "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" + "builtin-modules": "^1.0.0" } }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, "is-finite": { - "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { - "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "number-is-nan": "^1.0.0" } }, "is-my-json-valid": { - "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=", "requires": { - "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" } }, "is-npm": { - "version": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" }, "is-property": { - "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" }, "is-redirect": { - "version": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "^1.0.1" + } + }, "is-stream": { - "version": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "requires": { + "has-symbols": "^1.0.0" + } + }, "is-typedarray": { - "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-url": { - "version": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=" }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, "isstream": { - "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "jju": { - "version": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz", "integrity": "sha1-2t2e8BkkvHKLA/L3l5vb1i96Kqo=" }, "jodid25519": { - "version": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "optional": true, "requires": { - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + "jsbn": "~0.1.0" } }, "jsbn": { - "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "json-parse-helpfulerror": { - "version": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", "requires": { - "jju": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz" + "jju": "^1.1.0" } }, "json-schema": { - "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-stable-stringify": { - "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", "requires": { - "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { - "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, "jsonify": { - "version": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, "jsonparse": { - "version": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.0.tgz", "integrity": "sha1-hfwkWx2SWazGlBlguQWt9k594Og=" }, "jsonpointer": { - "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" }, "jsprim": { - "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=", "requires": { - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "verror": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" } }, "labeled-stream-splicer": { - "version": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "stream-splicer": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz" + "inherits": "^2.0.1", + "isarray": "~0.0.1", + "stream-splicer": "^2.0.0" } }, "latest-version": { - "version": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz", "integrity": "sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs=", "requires": { - "package-json": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz" + "package-json": "^1.0.0" } }, "lexical-scope": { - "version": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", "requires": { - "astw": "https://registry.npmjs.org/astw/-/astw-2.0.0.tgz" + "astw": "^2.0.0" } }, "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" }, "lodash._getnative": { - "version": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" }, "lodash.debounce": { - "version": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", "integrity": "sha1-gSIRw3ipTMKdWqTjNGzwv846ffU=", "requires": { - "lodash._getnative": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" + "lodash._getnative": "^3.0.0" } }, "lodash.memoize": { - "version": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" }, "lowercase-keys": { - "version": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" }, "media-typer": { - "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "merge-descriptors": { - "version": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "methods": { - "version": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "miller-rabin": { - "version": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "brorand": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" }, "mime-db": { - "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", "integrity": "sha1-6v/NDk/Gk1z4E02iRuLmw1MFrf8=" }, "mime-types": { - "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", "integrity": "sha1-9+99l1g/yvO30oK2+LVnnaselO4=", "requires": { - "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz" + "mime-db": "~1.26.0" } }, "minimalistic-assert": { - "version": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" }, "minimalistic-crypto-utils": { - "version": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", "requires": { - "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz" + "brace-expansion": "^1.0.0" } }, "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "minimist": "0.0.8" }, "dependencies": { "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, "module-deps": { - "version": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", "requires": { - "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz", - "browser-resolve": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "cached-path-relative": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", - "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "detective": "https://registry.npmjs.org/detective/-/detective-4.3.2.tgz", - "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "parents": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz", - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz", - "stream-combiner2": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "subarg": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "JSONStream": "^1.0.3", + "browser-resolve": "^1.7.0", + "cached-path-relative": "^1.0.0", + "concat-stream": "~1.5.0", + "defined": "^1.0.0", + "detective": "^4.0.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.3", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" }, "mute-stream": { - "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "negotiator": { - "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, "nested-error-stacks": { - "version": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "~2.0.1" } }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, "node-uuid": { - "version": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", "integrity": "sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8=" }, "nopt": { - "version": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", "integrity": "sha1-vOXEJEajKR9HYio3CrvxWPu6y/0=", "requires": { - "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz" + "abbrev": "1" } }, "normalize-package-data": { - "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=", "requires": { - "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.2.0.tgz", - "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm": { - "version": "https://registry.npmjs.org/npm/-/npm-2.15.11.tgz", + "version": "2.15.11", + "resolved": "https://registry.npmjs.org/npm/-/npm-2.15.11.tgz", "integrity": "sha1-NQWI+6nNjThM+abo3A/vD5SZK3w=", "requires": { - "abbrev": "1.0.9", - "ansi": "0.3.1", - "ansi-regex": "2.0.0", - "ansicolors": "0.3.2", - "ansistyles": "0.1.3", - "archy": "1.0.0", - "async-some": "1.0.2", + "abbrev": "~1.0.9", + "ansi": "~0.3.1", + "ansi-regex": "*", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "archy": "~1.0.0", + "async-some": "~1.0.2", "block-stream": "0.0.9", - "char-spinner": "1.0.1", - "chmodr": "1.0.2", - "chownr": "1.0.1", - "cmd-shim": "2.0.2", - "columnify": "1.5.4", - "config-chain": "1.1.10", - "dezalgo": "1.0.3", - "editor": "1.0.0", - "fs-vacuum": "1.2.9", - "fs-write-stream-atomic": "1.0.8", - "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", - "fstream-npm": "1.1.1", - "github-url-from-git": "1.4.0", - "github-url-from-username-repo": "1.0.2", - "glob": "7.0.6", - "graceful-fs": "4.1.6", - "hosted-git-info": "2.1.5", - "imurmurhash": "0.1.4", - "inflight": "1.0.5", - "inherits": "2.0.3", - "ini": "1.3.4", - "init-package-json": "1.9.4", - "lockfile": "1.0.1", - "lru-cache": "4.0.1", - "minimatch": "3.0.3", - "mkdirp": "0.5.1", - "node-gyp": "3.4.0", - "nopt": "3.0.6", - "normalize-git-url": "3.0.2", - "normalize-package-data": "2.3.5", - "npm-cache-filename": "1.0.2", - "npm-install-checks": "1.0.7", - "npm-package-arg": "4.1.0", - "npm-registry-client": "7.2.1", - "npm-user-validate": "0.1.5", - "npmlog": "2.0.4", - "once": "1.4.0", - "opener": "1.4.1", - "osenv": "0.1.3", - "path-is-inside": "1.0.2", - "read": "1.0.7", - "read-installed": "4.0.3", - "read-package-json": "2.0.4", - "readable-stream": "2.1.5", - "realize-package-specifier": "3.0.1", - "request": "2.74.0", - "retry": "0.10.0", - "rimraf": "2.5.4", - "semver": "5.1.0", - "sha": "2.0.1", - "slide": "1.1.6", - "sorted-object": "2.0.0", - "spdx-license-ids": "1.2.2", - "strip-ansi": "3.0.1", - "tar": "2.2.1", - "text-table": "0.2.0", + "char-spinner": "~1.0.1", + "chmodr": "~1.0.2", + "chownr": "~1.0.1", + "cmd-shim": "~2.0.2", + "columnify": "~1.5.4", + "config-chain": "~1.1.10", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "fs-vacuum": "~1.2.9", + "fs-write-stream-atomic": "~1.0.8", + "fstream": "~1.0.10", + "fstream-npm": "~1.1.1", + "github-url-from-git": "~1.4.0", + "github-url-from-username-repo": "~1.0.2", + "glob": "~7.0.6", + "graceful-fs": "~4.1.6", + "hosted-git-info": "~2.1.5", + "imurmurhash": "*", + "inflight": "~1.0.4", + "inherits": "~2.0.3", + "ini": "~1.3.4", + "init-package-json": "~1.9.4", + "lockfile": "~1.0.1", + "lru-cache": "~4.0.1", + "minimatch": "~3.0.3", + "mkdirp": "~0.5.1", + "node-gyp": "~3.4.0", + "nopt": "~3.0.6", + "normalize-git-url": "~3.0.2", + "normalize-package-data": "~2.3.5", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "~1.0.7", + "npm-package-arg": "~4.1.0", + "npm-registry-client": "~7.2.1", + "npm-user-validate": "~0.1.5", + "npmlog": "~2.0.4", + "once": "~1.4.0", + "opener": "~1.4.1", + "osenv": "~0.1.3", + "path-is-inside": "~1.0.0", + "read": "~1.0.7", + "read-installed": "~4.0.3", + "read-package-json": "~2.0.4", + "readable-stream": "~2.1.5", + "realize-package-specifier": "~3.0.1", + "request": "~2.74.0", + "retry": "~0.10.0", + "rimraf": "~2.5.4", + "semver": "~5.1.0", + "sha": "~2.0.1", + "slide": "~1.1.6", + "sorted-object": "~2.0.0", + "spdx-license-ids": "~1.2.2", + "strip-ansi": "~3.0.1", + "tar": "~2.2.1", + "text-table": "~0.2.0", "uid-number": "0.0.6", - "umask": "1.1.0", - "validate-npm-package-license": "3.0.1", - "validate-npm-package-name": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz", - "which": "1.2.11", - "wrappy": "1.0.2", - "write-file-atomic": "1.1.4" + "umask": "~1.1.0", + "validate-npm-package-license": "~3.0.1", + "validate-npm-package-name": "~2.2.2", + "which": "~1.2.11", + "wrappy": "~1.0.2", + "write-file-atomic": "~1.1.4" }, "dependencies": { "abbrev": { @@ -2612,7 +2960,7 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "char-spinner": { @@ -2635,8 +2983,8 @@ "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", "requires": { - "graceful-fs": "4.1.6", - "mkdirp": "0.5.1" + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" } }, "columnify": { @@ -2644,8 +2992,8 @@ "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "requires": { - "strip-ansi": "3.0.1", - "wcwidth": "1.0.0" + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" }, "dependencies": { "wcwidth": { @@ -2653,7 +3001,7 @@ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz", "integrity": "sha1-AtBZ/3qPx0Hg9rXaHmmytA2uym8=", "requires": { - "defaults": "1.0.3" + "defaults": "^1.0.0" }, "dependencies": { "defaults": { @@ -2661,7 +3009,7 @@ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { - "clone": "1.0.2" + "clone": "^1.0.2" }, "dependencies": { "clone": { @@ -2680,8 +3028,8 @@ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.10.tgz", "integrity": "sha1-f8OD3g/MhNcRy0Zb0XZXnK1hI0Y=", "requires": { - "ini": "1.3.4", - "proto-list": "1.2.4" + "ini": "^1.3.4", + "proto-list": "~1.2.1" }, "dependencies": { "proto-list": { @@ -2701,9 +3049,9 @@ "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.9.tgz", "integrity": "sha1-T5AZOrjqAokJlbzU6ARlml02ay0=", "requires": { - "graceful-fs": "4.1.6", - "path-is-inside": "1.0.2", - "rimraf": "2.5.4" + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" } }, "fs-write-stream-atomic": { @@ -2711,10 +3059,10 @@ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.8.tgz", "integrity": "sha1-5Jqt3yiPh9Rv+eiC8hahOrxAd4s=", "requires": { - "graceful-fs": "4.1.6", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.1.5" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" }, "dependencies": { "iferr": { @@ -2729,8 +3077,8 @@ "resolved": "https://registry.npmjs.org/fstream-npm/-/fstream-npm-1.1.1.tgz", "integrity": "sha1-a5F122I5qD2CCeIyQmxJTbspaQw=", "requires": { - "fstream-ignore": "1.0.5", - "inherits": "2.0.3" + "fstream-ignore": "^1.0.0", + "inherits": "2" }, "dependencies": { "fstream-ignore": { @@ -2738,9 +3086,9 @@ "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "requires": { - "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", - "inherits": "2.0.3", - "minimatch": "3.0.3" + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" } } } @@ -2755,12 +3103,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.5", - "inherits": "2.0.3", - "minimatch": "3.0.3", - "once": "1.4.0", - "path-is-absolute": "1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "dependencies": { "fs.realpath": { @@ -2795,8 +3143,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz", "integrity": "sha1-2zIEzVqd4ubNiQuFxuL2a89PYgo=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2814,14 +3162,14 @@ "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.9.4.tgz", "integrity": "sha1-tAU9C0Dwz4QqQZZpN8s9wPU06FY=", "requires": { - "glob": "6.0.4", - "npm-package-arg": "4.1.0", - "promzard": "0.3.0", - "read": "1.0.7", - "read-package-json": "2.0.4", - "semver": "5.1.0", - "validate-npm-package-license": "3.0.1", - "validate-npm-package-name": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz" + "glob": "^6.0.0", + "npm-package-arg": "^4.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^2.0.1" }, "dependencies": { "glob": { @@ -2829,11 +3177,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "requires": { - "inflight": "1.0.5", - "inherits": "2.0.3", - "minimatch": "3.0.3", - "once": "1.4.0", - "path-is-absolute": "1.0.0" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "dependencies": { "path-is-absolute": { @@ -2848,7 +3196,7 @@ "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", "requires": { - "read": "1.0.7" + "read": "1" } } } @@ -2863,8 +3211,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz", "integrity": "sha1-E0OVXtry432bnn7nJB4nxLn7cr4=", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.0.0" + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" }, "dependencies": { "pseudomap": { @@ -2884,7 +3232,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", "requires": { - "brace-expansion": "1.1.6" + "brace-expansion": "^1.0.0" }, "dependencies": { "brace-expansion": { @@ -2892,7 +3240,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=", "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^0.4.1", "concat-map": "0.0.1" }, "dependencies": { @@ -2930,20 +3278,20 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.4.0.tgz", "integrity": "sha1-3aVYOTs+y74kyea4cDxxGUxj+jY=", "requires": { - "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", - "glob": "7.0.6", - "graceful-fs": "4.1.6", - "minimatch": "3.0.3", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "2.0.4", - "osenv": "0.1.3", - "path-array": "1.0.1", - "request": "2.74.0", - "rimraf": "2.5.4", - "semver": "5.1.0", - "tar": "2.2.1", - "which": "1.2.11" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3", + "osenv": "0", + "path-array": "^1.0.0", + "request": "2", + "rimraf": "2", + "semver": "2.x || 3.x || 4 || 5", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "path-array": { @@ -2951,7 +3299,7 @@ "resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.1.tgz", "integrity": "sha1-fi8PNfB6IBUSK4aLfqwOssT+wnE=", "requires": { - "array-index": "1.0.0" + "array-index": "^1.0.0" }, "dependencies": { "array-index": { @@ -2959,8 +3307,8 @@ "resolved": "https://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz", "integrity": "sha1-7FanSe4QPk4Ix5C5w1PfFgVbl/k=", "requires": { - "debug": "2.2.0", - "es6-symbol": "3.1.0" + "debug": "^2.2.0", + "es6-symbol": "^3.0.2" }, "dependencies": { "debug": { @@ -2983,8 +3331,8 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz", "integrity": "sha1-lEgcZV56fK2C66gy2X1UM0ltf/o=", "requires": { - "d": "0.1.1", - "es5-ext": "0.10.12" + "d": "~0.1.1", + "es5-ext": "~0.10.11" }, "dependencies": { "d": { @@ -2992,7 +3340,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=", "requires": { - "es5-ext": "0.10.12" + "es5-ext": "~0.10.2" } }, "es5-ext": { @@ -3000,8 +3348,8 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", "integrity": "sha1-qoRkHU23a2Krul5F/YBey6sUAEc=", "requires": { - "es6-iterator": "2.0.0", - "es6-symbol": "3.1.0" + "es6-iterator": "2", + "es6-symbol": "~3.1" }, "dependencies": { "es6-iterator": { @@ -3009,9 +3357,9 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz", "integrity": "sha1-vZaFZ9YWNeM8C4BydhPJy0sJa6w=", "requires": { - "d": "0.1.1", - "es5-ext": "0.10.12", - "es6-symbol": "3.1.0" + "d": "^0.1.1", + "es5-ext": "^0.10.7", + "es6-symbol": "3" } } } @@ -3029,7 +3377,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "requires": { - "abbrev": "1.0.9" + "abbrev": "1" } }, "normalize-git-url": { @@ -3042,10 +3390,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=", "requires": { - "hosted-git-info": "2.1.5", - "is-builtin-module": "1.0.0", - "semver": "5.1.0", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" }, "dependencies": { "is-builtin-module": { @@ -3053,7 +3401,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "1.1.0" + "builtin-modules": "^1.0.0" }, "dependencies": { "builtin-modules": { @@ -3075,8 +3423,8 @@ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-1.0.7.tgz", "integrity": "sha1-bZGu2grJaAHx7Xqt7hFqbAoIalc=", "requires": { - "npmlog": "2.0.4", - "semver": "5.1.0" + "npmlog": "0.1 || 1 || 2", + "semver": "^2.3.0 || 3.x || 4 || 5" } }, "npm-package-arg": { @@ -3084,8 +3432,8 @@ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.1.0.tgz", "integrity": "sha1-LgFfisAHN8uX+ZfJy/BZ9Cp0Un0=", "requires": { - "hosted-git-info": "2.1.5", - "semver": "5.1.0" + "hosted-git-info": "^2.1.4", + "semver": "4 || 5" } }, "npm-registry-client": { @@ -3093,16 +3441,16 @@ "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.2.1.tgz", "integrity": "sha1-x5ImawiMwxP4Ul5+NSSGJscj23U=", "requires": { - "concat-stream": "1.5.2", - "graceful-fs": "4.1.6", - "normalize-package-data": "2.3.5", - "npm-package-arg": "4.1.0", - "npmlog": "2.0.4", - "once": "1.4.0", - "request": "2.74.0", - "retry": "0.10.0", - "semver": "5.1.0", - "slide": "1.1.6" + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0", + "npmlog": "~2.0.0 || ~3.1.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3" }, "dependencies": { "concat-stream": { @@ -3110,9 +3458,9 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" }, "dependencies": { "readable-stream": { @@ -3120,12 +3468,12 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" }, "dependencies": { "core-util-is": { @@ -3179,9 +3527,9 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz", "integrity": "sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=", "requires": { - "ansi": "0.3.1", - "are-we-there-yet": "1.1.2", - "gauge": "1.2.7" + "ansi": "~0.3.1", + "are-we-there-yet": "~1.1.2", + "gauge": "~1.2.5" }, "dependencies": { "are-we-there-yet": { @@ -3189,8 +3537,8 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", "integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=", "requires": { - "delegates": "1.0.0", - "readable-stream": "2.1.5" + "delegates": "^1.0.0", + "readable-stream": "^2.0.0 || ^1.1.13" }, "dependencies": { "delegates": { @@ -3205,11 +3553,11 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz", "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=", "requires": { - "ansi": "0.3.1", - "has-unicode": "2.0.0", - "lodash.pad": "4.4.0", - "lodash.padend": "4.5.0", - "lodash.padstart": "4.5.0" + "ansi": "^0.3.0", + "has-unicode": "^2.0.0", + "lodash.pad": "^4.1.0", + "lodash.padend": "^4.1.0", + "lodash.padstart": "^4.1.0" }, "dependencies": { "has-unicode": { @@ -3232,9 +3580,9 @@ "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.4.0.tgz", "integrity": "sha1-+qON8mwKaexQhqgiRslY4VDcsas=", "requires": { - "lodash._baseslice": "4.0.0", - "lodash._basetostring": "4.12.0", - "lodash.tostring": "4.1.4" + "lodash._baseslice": "~4.0.0", + "lodash._basetostring": "~4.12.0", + "lodash.tostring": "^4.0.0" } }, "lodash.padend": { @@ -3242,9 +3590,9 @@ "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.5.0.tgz", "integrity": "sha1-oonpN37i5t6Lp/EfOo6zJgcLdhk=", "requires": { - "lodash._baseslice": "4.0.0", - "lodash._basetostring": "4.12.0", - "lodash.tostring": "4.1.4" + "lodash._baseslice": "~4.0.0", + "lodash._basetostring": "~4.12.0", + "lodash.tostring": "^4.0.0" } }, "lodash.padstart": { @@ -3252,9 +3600,9 @@ "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.5.0.tgz", "integrity": "sha1-PqGQ9nNIQcM2TSedEeBWcmtgp5o=", "requires": { - "lodash._baseslice": "4.0.0", - "lodash._basetostring": "4.12.0", - "lodash.tostring": "4.1.4" + "lodash._baseslice": "~4.0.0", + "lodash._basetostring": "~4.12.0", + "lodash.tostring": "^4.0.0" } }, "lodash.tostring": { @@ -3271,7 +3619,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "opener": { @@ -3284,8 +3632,8 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz", "integrity": "sha1-g88FxtZFj8TVrGNi6jJdkvJ1Qhc=", "requires": { - "os-homedir": "1.0.0", - "os-tmpdir": "1.0.1" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" }, "dependencies": { "os-homedir": { @@ -3305,7 +3653,7 @@ "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "requires": { - "mute-stream": "0.0.5" + "mute-stream": "~0.0.4" }, "dependencies": { "mute-stream": { @@ -3320,10 +3668,10 @@ "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz", "integrity": "sha1-Ye0bIlbqQ42ACIlQkL6EuOeZyFM=", "requires": { - "glob": "6.0.4", - "graceful-fs": "4.1.6", - "json-parse-helpfulerror": "1.0.3", - "normalize-package-data": "2.3.5" + "glob": "^6.0.0", + "graceful-fs": "^4.1.2", + "json-parse-helpfulerror": "^1.0.2", + "normalize-package-data": "^2.0.0" }, "dependencies": { "glob": { @@ -3331,11 +3679,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "requires": { - "inflight": "1.0.5", - "inherits": "2.0.3", - "minimatch": "3.0.3", - "once": "1.4.0", - "path-is-absolute": "1.0.0" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "dependencies": { "path-is-absolute": { @@ -3350,7 +3698,7 @@ "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", "requires": { - "jju": "1.3.0" + "jju": "^1.1.0" }, "dependencies": { "jju": { @@ -3367,13 +3715,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=", "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "buffer-shims": "^1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" }, "dependencies": { "buffer-shims": { @@ -3413,8 +3761,8 @@ "resolved": "https://registry.npmjs.org/realize-package-specifier/-/realize-package-specifier-3.0.1.tgz", "integrity": "sha1-/eMukmRI44+ZM02Vt7CNUeOpjZ8=", "requires": { - "dezalgo": "1.0.3", - "npm-package-arg": "4.1.0" + "dezalgo": "^1.0.1", + "npm-package-arg": "^4.0.0" } }, "request": { @@ -3422,27 +3770,27 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz", "integrity": "sha1-dpPKdou7DqXIzgjAhKRe+gW4kqs=", "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.4.1", - "bl": "1.1.2", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.0", - "forever-agent": "0.6.1", - "form-data": "1.0.0-rc4", - "har-validator": "2.0.6", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.11", - "node-uuid": "1.4.7", - "oauth-sign": "0.8.2", - "qs": "6.2.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.1", - "tunnel-agent": "0.4.3" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "bl": "~1.1.2", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~1.0.0-rc4", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.1", + "qs": "~6.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1" }, "dependencies": { "aws-sign2": { @@ -3460,7 +3808,7 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", "requires": { - "readable-stream": "2.0.6" + "readable-stream": "~2.0.5" }, "dependencies": { "readable-stream": { @@ -3468,12 +3816,12 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" }, "dependencies": { "core-util-is": { @@ -3515,7 +3863,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" }, "dependencies": { "delayed-stream": { @@ -3540,9 +3888,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", "integrity": "sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=", "requires": { - "async": "1.5.2", - "combined-stream": "1.0.5", - "mime-types": "2.1.11" + "async": "^1.5.2", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.10" }, "dependencies": { "async": { @@ -3557,10 +3905,10 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "requires": { - "chalk": "1.1.3", - "commander": "2.9.0", - "is-my-json-valid": "2.13.1", - "pinkie-promise": "2.0.1" + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" }, "dependencies": { "chalk": { @@ -3568,11 +3916,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -3590,7 +3938,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.0.0" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -3605,7 +3953,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" }, "dependencies": { "graceful-readlink": { @@ -3620,10 +3968,10 @@ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "integrity": "sha1-1Vd4qC/rawlj/0vhEdXRaE6JBwc=", "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", "jsonpointer": "2.0.0", - "xtend": "4.0.1" + "xtend": "^4.0.0" }, "dependencies": { "generate-function": { @@ -3636,7 +3984,7 @@ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "requires": { - "is-property": "1.0.2" + "is-property": "^1.0.0" }, "dependencies": { "is-property": { @@ -3663,7 +4011,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" }, "dependencies": { "pinkie": { @@ -3680,10 +4028,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" }, "dependencies": { "boom": { @@ -3691,7 +4039,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "cryptiles": { @@ -3699,7 +4047,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "hoek": { @@ -3712,7 +4060,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } } } @@ -3722,9 +4070,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.3.0", - "sshpk": "1.9.2" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" }, "dependencies": { "assert-plus": { @@ -3767,14 +4115,14 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.9.2.tgz", "integrity": "sha1-O0E1G7rVw03fS9gRmTfv7jGkZ2U=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "dashdash": "1.14.0", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.6", - "jodid25519": "1.0.2", - "jsbn": "0.1.0", - "tweetnacl": "0.13.3" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.13.0" }, "dependencies": { "asn1": { @@ -3792,7 +4140,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz", "integrity": "sha1-KeSGxUGL8PNWA0qZPVFoajPoQUE=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "ecc-jsbn": { @@ -3801,7 +4149,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.0" + "jsbn": "~0.1.0" } }, "getpass": { @@ -3809,7 +4157,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "jodid25519": { @@ -3818,7 +4166,7 @@ "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "optional": true, "requires": { - "jsbn": "0.1.0" + "jsbn": "~0.1.0" } }, "jsbn": { @@ -3857,7 +4205,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", "requires": { - "mime-db": "1.23.0" + "mime-db": "~1.23.0" }, "dependencies": { "mime-db": { @@ -3909,7 +4257,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", "requires": { - "glob": "7.0.6" + "glob": "^7.0.5" } }, "semver": { @@ -3922,8 +4270,8 @@ "resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz", "integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=", "requires": { - "graceful-fs": "4.1.6", - "readable-stream": "2.0.2" + "graceful-fs": "^4.1.2", + "readable-stream": "^2.0.2" }, "dependencies": { "readable-stream": { @@ -3931,12 +4279,12 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", "integrity": "sha1-vsgb6ujPRVFovC5bKzH1vPrtmxs=", "requires": { - "core-util-is": "1.0.1", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "process-nextick-args": "1.0.3", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.1" + "process-nextick-args": "~1.0.0", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" }, "dependencies": { "core-util-is": { @@ -3988,7 +4336,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.0.0" + "ansi-regex": "^2.0.0" } }, "tar": { @@ -3996,9 +4344,9 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { - "block-stream": "0.0.9", - "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "uid-number": { @@ -4016,8 +4364,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.2" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" }, "dependencies": { "spdx-correct": { @@ -4025,7 +4373,7 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -4033,8 +4381,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz", "integrity": "sha1-1SsUtelnB3FECvIlvLVjEirEUvY=", "requires": { - "spdx-exceptions": "1.0.4", - "spdx-license-ids": "1.2.2" + "spdx-exceptions": "^1.0.4", + "spdx-license-ids": "^1.0.0" }, "dependencies": { "spdx-exceptions": { @@ -4051,7 +4399,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.2.11.tgz", "integrity": "sha1-yLLu6muMFln6fB3U/aq+lTPcXos=", "requires": { - "isexe": "1.1.2" + "isexe": "^1.1.1" }, "dependencies": { "isexe": { @@ -4071,138 +4419,174 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.1.4.tgz", "integrity": "sha1-sfUtwujcDjywTRh6JfdYo4qQyjs=", "requires": { - "graceful-fs": "4.1.6", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.2", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } } } }, "npm-package-arg": { - "version": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.0.tgz", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.0.tgz", "integrity": "sha1-gJvGHKv1S9X/lPYWXIm6juiMEVw=", "requires": { - "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.2.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" + "hosted-git-info": "^2.1.5", + "semver": "^5.1.0" } }, "number-is-nan": { - "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { - "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz", "integrity": "sha1-8ilW8x6nFRqCHl8vsywRPK2Ln2k=" }, "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" + }, "object-keys": { - "version": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" }, + "objectorarray": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.3.tgz", + "integrity": "sha512-kPoflSYkAf/Onvjr4ZLaq37vDuOXjVzfwLCRuORRzYGdXkHa/vacPT0RgR+KmtkwOYFcxTMM62BRrZk8GGKHjw==", + "requires": { + "tape": "^4.8.0" + } + }, "on-finished": { - "version": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "requires": { - "ee-first": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + "ee-first": "1.1.1" } }, "on-headers": { - "version": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" }, "once": { - "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "wrappy": "1" } }, "onetime": { - "version": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" }, "opener": { - "version": "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz", "integrity": "sha1-iXWQrNGu0zEbcDtYvMtNQ/VvKJU=" }, "os-browserify": { - "version": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=" }, "os-homedir": { - "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-name": { - "version": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz", "integrity": "sha1-GzefZINa98Wn9JizV8uVIVwVnt8=", "requires": { - "osx-release": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz", - "win-release": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz" + "osx-release": "^1.0.0", + "win-release": "^1.0.0" } }, "os-tmpdir": { - "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { - "version": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "requires": { - "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "osx-release": { - "version": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz", "integrity": "sha1-8heRGigTaUmvG/kwiyQeJzfTzWw=", "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + "minimist": "^1.1.0" } }, "package-json": { - "version": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz", "integrity": "sha1-yOysCUInzfdqMWh07QXifMk5oOA=", "requires": { - "got": "https://registry.npmjs.org/got/-/got-3.3.1.tgz", - "registry-url": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz" + "got": "^3.2.0", + "registry-url": "^3.0.0" } }, "pako": { - "version": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" }, "parents": { - "version": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", "requires": { - "path-platform": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz" + "path-platform": "~0.11.15" } }, "parse-asn1": { - "version": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz", "integrity": "sha1-NQYPbVAV03Yox3D04JGgtaJ4vCM=", "requires": { - "asn1.js": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz", - "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "pbkdf2": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" } }, "parseurl": { - "version": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" }, "path-browserify": { - "version": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" }, "path-is-absolute": { - "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { @@ -4210,39 +4594,55 @@ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, "path-platform": { - "version": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=" }, "path-to-regexp": { - "version": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "pbkdf2": { - "version": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz", "integrity": "sha1-8sSyWmAAWLPDdzwIbDfbvuH/5pM=", "requires": { - "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz" + "create-hmac": "^1.1.2" } }, "pegjs": { - "version": "https://registry.npmjs.org/pegjs/-/pegjs-0.9.0.tgz", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.9.0.tgz", "integrity": "sha1-9q76LjzlYWkgjlIXnf5B+JFBo2k=" }, "phonegap-plugin-push": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/phonegap-plugin-push/-/phonegap-plugin-push-1.9.2.tgz", - "integrity": "sha1-3PktbNuZLcs3iUCyIbfwjoKcn8E=" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/phonegap-plugin-push/-/phonegap-plugin-push-1.11.1.tgz", + "integrity": "sha512-AI7sV+g/ORyP0V3r6aCfekA+WC1RghbXyEAkqExMq/G0J66lAVySluemeGZsrpdNGjkq/KqLrjslHqYNPq3Nxw==" }, "pinkie": { - "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { - "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + "pinkie": "^2.0.0" } }, "plist": { @@ -4250,104 +4650,121 @@ "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", "requires": { - "base64-js": "1.3.0", - "xmlbuilder": "9.0.7", - "xmldom": "0.1.27" + "base64-js": "^1.2.3", + "xmlbuilder": "^9.0.7", + "xmldom": "0.1.x" } }, "prepend-http": { - "version": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "process": { - "version": "https://registry.npmjs.org/process/-/process-0.11.9.tgz", + "version": "0.11.9", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.9.tgz", "integrity": "sha1-e9WtIapiU+fahoImTx4R0RwDGME=" }, "process-nextick-args": { - "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "promzard": { - "version": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", "requires": { - "read": "https://registry.npmjs.org/read/-/read-1.0.7.tgz" + "read": "1" } }, "properties-parser": { - "version": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.2.3.tgz", "integrity": "sha1-91kSVfcHq7/yJ8e1a2N9uwNzoQ8=" }, "proxy-addr": { - "version": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.3.tgz", "integrity": "sha1-3JdQL1ci6IhGez+iKXp7H/R98HQ=", "requires": { - "forwarded": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "ipaddr.js": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.2.0.tgz" + "forwarded": "~0.1.0", + "ipaddr.js": "1.2.0" } }, "public-encrypt": { - "version": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "requires": { - "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "browserify-rsa": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz", - "parse-asn1": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz", - "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "punycode": { - "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "q": { - "version": "https://registry.npmjs.org/q/-/q-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.0.1.tgz", "integrity": "sha1-EYcq7t7okmgRCxCnGESP+xARKhQ=" }, "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz", "integrity": "sha1-O3hIwDwt7OaalSKw+ujEEm10Xzs=" }, "querystring": { - "version": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "querystring-es3": { - "version": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, "randombytes": { - "version": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", "integrity": "sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew=" }, "range-parser": { - "version": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "rc": { - "version": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz", "integrity": "sha1-xepWS7B6/5/TpbMukGwdOmWUD+o=", "requires": { - "deep-extend": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", - "ini": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, "read": { - "version": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "requires": { - "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" + "mute-stream": "~0.0.4" } }, "read-all-stream": { - "version": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", "requires": { - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz" + "pinkie-promise": "^2.0.0", + "readable-stream": "^2.0.0" } }, "read-installed": { @@ -4355,60 +4772,65 @@ "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", "requires": { - "debuglog": "1.0.1", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "read-package-json": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz", - "readdir-scoped-modules": "1.0.2", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "slide": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "util-extend": "1.0.3" + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" } }, "read-only-stream": { - "version": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz" + "readable-stream": "^2.0.2" } }, "read-package-json": { - "version": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.4.tgz", "integrity": "sha1-Ye0bIlbqQ42ACIlQkL6EuOeZyFM=", "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "json-parse-helpfulerror": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", - "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz" + "glob": "^6.0.0", + "graceful-fs": "^4.1.2", + "json-parse-helpfulerror": "^1.0.2", + "normalize-package-data": "^2.0.0" }, "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "requires": { - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz", "integrity": "sha1-nPSUY5hd8BbIrogTCXqSk6mzNyk=", "requires": { - "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "buffer-shims": "^1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" }, "dependencies": { "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } @@ -4418,217 +4840,265 @@ "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" } }, "readline2": { - "version": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", "requires": { - "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "mute-stream": "0.0.5" }, "dependencies": { "mute-stream": { - "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=" } } }, "rechoir": { - "version": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz" + "resolve": "^1.1.6" } }, "registry-url": { - "version": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "requires": { - "rc": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz" + "rc": "^1.0.1" } }, "repeating": { - "version": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", "requires": { - "is-finite": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz" + "is-finite": "^1.0.0" } }, "request": { - "version": "https://registry.npmjs.org/request/-/request-2.47.0.tgz", + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.47.0.tgz", "integrity": "sha1-Cen9Gk/tZZOoBe+CArIPDF7LSF8=", "requires": { - "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", - "bl": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", - "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", - "form-data": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", - "hawk": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", - "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", - "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", - "node-uuid": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", - "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz", - "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" + "aws-sign2": "~0.5.0", + "bl": "~0.9.0", + "caseless": "~0.6.0", + "combined-stream": "~0.0.5", + "forever-agent": "~0.5.0", + "form-data": "~0.1.0", + "hawk": "1.1.1", + "http-signature": "~0.10.0", + "json-stringify-safe": "~5.0.0", + "mime-types": "~1.0.1", + "node-uuid": "~1.4.0", + "oauth-sign": "~0.4.0", + "qs": "~2.3.1", + "stringstream": "~0.0.4", + "tough-cookie": ">=0.12.0", + "tunnel-agent": "~0.4.0" }, "dependencies": { "mime-types": { - "version": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=" }, "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz", "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=" } } }, "resolve": { - "version": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz", "integrity": "sha1-lYnD8vYUnRQXpAvswWY9tuxrwmw=" }, "restore-cursor": { - "version": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "requires": { - "exit-hook": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "onetime": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "~2.3.4" } }, "rimraf": { - "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.0.tgz", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.0.tgz", "integrity": "sha1-ibig/kMrn/nsmpJaALbNs6kbuto=", "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz" + "glob": "^7.0.5" }, "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } }, "ripemd160": { - "version": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz", "integrity": "sha1-k6S71JQrxXS2mo+lfHHeEOzKfW4=" }, "run-async": { - "version": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "once": "^1.3.0" } }, "rx-lite": { - "version": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=" }, "sax": { - "version": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=" }, "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" }, "semver-diff": { - "version": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "requires": { - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" + "semver": "^5.0.3" } }, "send": { - "version": "https://registry.npmjs.org/send/-/send-0.14.2.tgz", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.14.2.tgz", "integrity": "sha1-ObBDiz9RC+Xcb2Z6EfcWiTaM3u8=", "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "destroy": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "etag": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", - "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" + "debug": "~2.2.0", + "depd": "~1.1.0", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.7.0", + "fresh": "0.3.0", + "http-errors": "~1.5.1", + "mime": "1.3.4", + "ms": "0.7.2", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" }, "dependencies": { "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" } } }, "serve-static": { - "version": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.2.tgz", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.2.tgz", "integrity": "sha1-LPmIm9RDWjIMw2iVyapXvWYuasc=", "requires": { - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "send": "https://registry.npmjs.org/send/-/send-0.14.2.tgz" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.1", + "send": "0.14.2" } }, "setprototypeof": { - "version": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=" }, "sha.js": { - "version": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "^2.0.1" } }, "shasum": { - "version": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", "requires": { - "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz" + "json-stable-stringify": "~0.0.0", + "sha.js": "~2.4.4" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" } }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, "shell-quote": { - "version": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "requires": { - "array-filter": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "array-map": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "array-reduce": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" } }, "shelljs": { - "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz", "integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM=" }, "simple-plist": { - "version": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.1.4.tgz", "integrity": "sha1-EOtRtH4zxVbrjsRtXuZNZOcX210=", "requires": { - "bplist-creator": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.4.tgz", - "bplist-parser": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", + "bplist-creator": "0.0.4", + "bplist-parser": "0.0.6", "plist": "1.2.0" }, "dependencies": { @@ -4638,7 +5108,8 @@ "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" }, "bplist-parser": { - "version": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", "integrity": "sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk=" }, "plist": { @@ -4647,9 +5118,9 @@ "integrity": "sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=", "requires": { "base64-js": "0.0.8", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "util-deprecate": "1.0.2", "xmlbuilder": "4.0.0", - "xmldom": "0.1.27" + "xmldom": "0.1.x" } }, "xmlbuilder": { @@ -4657,170 +5128,299 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz", "integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M=", "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + "lodash": "^3.5.0" } } } }, "slide": { - "version": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, "sntp": { - "version": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=", "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" + "hoek": "0.9.x" } }, "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" }, "spdx-correct": { - "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "requires": { - "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { - "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" }, "spdx-license-ids": { - "version": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" }, "sshpk": { - "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", "integrity": "sha1-1agEziJpVRVjjnmNviMnPeBwpfo=", "requires": { - "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "jodid25519": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "asn1": { - "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } }, "statuses": { - "version": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" }, "stream-browserify": { - "version": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-buffers": { - "version": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz", "integrity": "sha1-GBwI1bs2kARfaUAbmuanoM8zE/w=" }, "stream-combiner2": { - "version": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", "requires": { - "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz" + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" } }, "stream-http": { - "version": "https://registry.npmjs.org/stream-http/-/stream-http-2.6.3.tgz", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.6.3.tgz", "integrity": "sha1-TD3b+WNZaOos/U5I1D3l3vJiWsM=", "requires": { - "builtin-status-codes": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz", - "to-arraybuffer": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.1.0", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "stream-shift": { - "version": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, "stream-splicer": { - "version": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz" + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "string-length": { - "version": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", "requires": { - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + "strip-ansi": "^3.0.0" + } + }, + "string.prototype.codepointat": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", + "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==" + }, + "string.prototype.trim": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", + "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "stringstream": { - "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" }, "strip-ansi": { - "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "ansi-regex": "^2.0.0" } }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, "strip-json-comments": { - "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "subarg": { - "version": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + "minimist": "^1.1.0" } }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "syntax-error": { - "version": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.1.6.tgz", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.1.6.tgz", "integrity": "sha1-tFSXBtOGzBwdx8JCPxhXm2yt5xA=", "requires": { - "acorn": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz" + "acorn": "^2.7.0" }, "dependencies": { "acorn": { - "version": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=" } } }, + "tape": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz", + "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==", + "requires": { + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.4", + "has": "~1.0.3", + "inherits": "~2.0.4", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.11.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "resolve": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, "tar": { - "version": "https://registry.npmjs.org/tar/-/tar-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.2.tgz", "integrity": "sha1-iw9nQPmUYlneJqPtnJoiiQ3/Aj8=", "requires": { - "block-stream": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "fstream": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "text-table": { @@ -4829,122 +5429,148 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "through": { - "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { - "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "timed-out": { - "version": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=" }, "timers-browserify": { - "version": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", "requires": { - "process": "https://registry.npmjs.org/process/-/process-0.11.9.tgz" + "process": "~0.11.0" } }, "to-arraybuffer": { - "version": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" }, "tough-cookie": { - "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "requires": { - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + "punycode": "^1.4.1" } }, "tty-browserify": { - "version": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" }, "tunnel-agent": { - "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" }, "tweetnacl": { - "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, "type-is": { - "version": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz", + "version": "1.6.14", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz", "integrity": "sha1-4hljnBfe0coHiQkt1UoDgmuBfLI=", "requires": { - "media-typer": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz" + "media-typer": "0.3.0", + "mime-types": "~2.1.13" } }, "typedarray": { - "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "umd": { - "version": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz", "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=" }, "underscore": { - "version": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, "unorm": { - "version": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA=" }, "unpipe": { - "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "update-notifier": { - "version": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz", "integrity": "sha1-B7XcIGazYnqztPUwEw9+3doHpMw=", "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "configstore": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz", - "is-npm": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "latest-version": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz", - "repeating": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", - "semver-diff": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "string-length": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz" + "chalk": "^1.0.0", + "configstore": "^1.0.0", + "is-npm": "^1.0.0", + "latest-version": "^1.0.0", + "repeating": "^1.1.2", + "semver-diff": "^2.0.0", + "string-length": "^1.0.0" } }, "url": { - "version": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "requires": { - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + "punycode": "1.3.2", + "querystring": "0.2.0" }, "dependencies": { "punycode": { - "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" } } }, "util": { - "version": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + "inherits": "2.0.1" }, "dependencies": { "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" } } }, "util-deprecate": { - "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util-extend": { @@ -4953,84 +5579,105 @@ "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=" }, "utils-merge": { - "version": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" }, "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" }, "valid-identifier": { - "version": "https://registry.npmjs.org/valid-identifier/-/valid-identifier-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/valid-identifier/-/valid-identifier-0.0.1.tgz", "integrity": "sha1-7x1wk6nTKH4/zpLfkW+GFrI/kLQ=" }, "validate-npm-package-license": { - "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "requires": { - "spdx-correct": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "spdx-expression-parse": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "validate-npm-package-name": { - "version": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz", "integrity": "sha1-9laVsi9zJEQgGaPH+jmm5/0pkIU=", "requires": { - "builtins": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz" + "builtins": "0.0.7" } }, "vary": { - "version": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz", "integrity": "sha1-4eWv+70WrnaN0mdDlLmtMCJlMUA=" }, "verror": { - "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "requires": { - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + "extsprintf": "1.0.2" } }, "vm-browserify": { - "version": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", "requires": { - "indexof": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + "indexof": "0.0.1" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" } }, "win-release": { - "version": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz", "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=", "requires": { - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" + "semver": "^5.0.1" } }, "wrappy": { - "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { - "version": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.1.tgz", "integrity": "sha1-fUW6MjFjKN0ex9kPYOvA2EW7dZo=", "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "imurmurhash": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "slide": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "xcode": { - "version": "https://registry.npmjs.org/xcode/-/xcode-0.9.1.tgz", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-0.9.1.tgz", "integrity": "sha1-W05xtxsDVz/wzbSEORA+gQfaD5U=", "requires": { - "node-uuid": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", - "pegjs": "https://registry.npmjs.org/pegjs/-/pegjs-0.9.0.tgz", - "simple-plist": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.1.4.tgz" + "node-uuid": "1.4.7", + "pegjs": "0.9.0", + "simple-plist": "0.1.4" } }, "xdg-basedir": { - "version": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=", "requires": { - "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + "os-homedir": "^1.0.0" } }, "xml2js": { @@ -5038,8 +5685,8 @@ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "requires": { - "sax": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", - "xmlbuilder": "9.0.4" + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" }, "dependencies": { "xmlbuilder": { @@ -5060,7 +5707,8 @@ "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" }, "xtend": { - "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } diff --git a/StoneIsland/package.json b/StoneIsland/package.json index f9cefa21..f2ab351b 100644 --- a/StoneIsland/package.json +++ b/StoneIsland/package.json @@ -5,7 +5,7 @@ "main": "index.js", "dependencies": { "cordova": "^6.4.0", - "cordova-android": "^6.2.3", + "cordova-android": "^8.0.0", "cordova-ios": "^4.5.2", "cordova-plugin-app-name": "^1.0.4", "cordova-plugin-customurlscheme": "~4.2.0", @@ -20,8 +20,8 @@ "cordova-plugin-whitelist": "1", "cordova-plugin-x-socialsharing": "~5.1.3", "ionic-plugin-keyboard": "~2.2.1", - "ios-deploy": "^1.9.0", - "phonegap-plugin-push": "^1.9.2", + "ios-deploy": "^1.9.4", + "phonegap-plugin-push": "^1.11.1", "plist": "^3.0.1" }, "devDependencies": {}, @@ -59,4 +59,4 @@ "ios" ] } -}
\ No newline at end of file +} diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin Binary files differindex 68cf609b..fcb3c332 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin +++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileHashes.bin diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin Binary files differindex cdae22a7..86c9363d 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin +++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/fileSnapshots.bin diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin Binary files differindex fcbedd1b..fe8f19b3 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin +++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.bin diff --git a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock Binary files differindex 8107e00d..63207987 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/taskArtifacts/taskArtifacts.lock diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock Binary files differindex a537871b..3477b852 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock Binary files differindex e3633f27..3dd6588c 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock Binary files differindex 9654131b..db73d461 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock Binary files differindex 3782d128..1f529f6e 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_CordovaLib_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock Binary files differindex 69aacc1e..620aaf9e 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock Binary files differindex 91b6782b..d9d88041 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock Binary files differindex c25818cf..1daade5e 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock diff --git a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock Binary files differindex c0909e53..4d371375 100644 --- a/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock +++ b/StoneIsland/platforms/android/.gradle/3.3/tasks/_compileReleaseJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock diff --git a/StoneIsland/platforms/android/AndroidManifest.xml b/StoneIsland/platforms/android/AndroidManifest.xml index 8ca9463a..74dd5c09 100755 --- a/StoneIsland/platforms/android/AndroidManifest.xml +++ b/StoneIsland/platforms/android/AndroidManifest.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<manifest android:hardwareAccelerated="true" android:versionCode="6110" android:versionName="1.1.0" package="us.okfoc.stoneisland" xmlns:android="http://schemas.android.com/apk/res/android"> +<manifest android:hardwareAccelerated="true" android:versionCode="6121" android:versionName="1.2.1" package="us.okfoc.stoneisland" xmlns:android="http://schemas.android.com/apk/res/android"> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true"> @@ -41,7 +41,7 @@ </service> <service android:exported="false" android:name="com.adobe.phonegap.push.RegistrationIntentService" /> </application> - <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="22" /> + <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> diff --git a/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/debug/org/apache/cordova/BuildConfig.java b/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/debug/org/apache/cordova/BuildConfig.java deleted file mode 100644 index f2feb906..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/debug/org/apache/cordova/BuildConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Automatically generated file. DO NOT MODIFY - */ -package org.apache.cordova; - -public final class BuildConfig { - public static final boolean DEBUG = Boolean.parseBoolean("true"); - public static final String APPLICATION_ID = "org.apache.cordova"; - public static final String BUILD_TYPE = "debug"; - public static final String FLAVOR = ""; - public static final int VERSION_CODE = 1; - public static final String VERSION_NAME = "1.0"; -} diff --git a/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/release/org/apache/cordova/BuildConfig.java b/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/release/org/apache/cordova/BuildConfig.java deleted file mode 100644 index 3e3c0cfe..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/generated/source/buildConfig/release/org/apache/cordova/BuildConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Automatically generated file. DO NOT MODIFY - */ -package org.apache.cordova; - -public final class BuildConfig { - public static final boolean DEBUG = false; - public static final String APPLICATION_ID = "org.apache.cordova"; - public static final String BUILD_TYPE = "release"; - public static final String FLAVOR = ""; - public static final int VERSION_CODE = 1; - public static final String VERSION_NAME = "1.0"; -} diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/AndroidManifest.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/AndroidManifest.xml deleted file mode 100644 index 90863ed8..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="org.apache.cordova" - android:versionCode="1" - android:versionName="1.0" > - - <uses-sdk android:minSdkVersion="14" /> - -</manifest>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/classes.jar b/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/classes.jar Binary files differdeleted file mode 100644 index 4a99943b..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/debug/classes.jar +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/AndroidManifest.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/AndroidManifest.xml deleted file mode 100644 index 90863ed8..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="org.apache.cordova" - android:versionCode="1" - android:versionName="1.0" > - - <uses-sdk android:minSdkVersion="14" /> - -</manifest>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/classes.jar b/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/classes.jar Binary files differdeleted file mode 100644 index 6a68a5c3..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/bundles/release/classes.jar +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/AuthenticationToken.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/AuthenticationToken.class Binary files differdeleted file mode 100644 index e9d51465..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/AuthenticationToken.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/BuildConfig.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/BuildConfig.class Binary files differdeleted file mode 100644 index 4c5619f6..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/BuildConfig.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackContext.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackContext.class Binary files differdeleted file mode 100644 index 2ee39be7..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackContext.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackMap.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackMap.class Binary files differdeleted file mode 100644 index 462375d9..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CallbackMap.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Config.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Config.class Binary files differdeleted file mode 100644 index 66cb1be9..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Config.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ConfigXmlParser.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ConfigXmlParser.class Binary files differdeleted file mode 100644 index 62fa0b3d..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ConfigXmlParser.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$1.class Binary files differdeleted file mode 100644 index c4624d15..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$2.class Binary files differdeleted file mode 100644 index 33738151..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$3.class Binary files differdeleted file mode 100644 index fabe9efa..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$3.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4$1.class Binary files differdeleted file mode 100644 index 3c062db9..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4.class Binary files differdeleted file mode 100644 index 76695eb5..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity$4.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity.class Binary files differdeleted file mode 100644 index 46a17ceb..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaActivity.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaArgs.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaArgs.class Binary files differdeleted file mode 100644 index 18014a39..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaArgs.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaBridge.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaBridge.class Binary files differdeleted file mode 100644 index c7f3f237..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaBridge.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaClientCertRequest.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaClientCertRequest.class Binary files differdeleted file mode 100644 index 46007d42..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaClientCertRequest.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$1.class Binary files differdeleted file mode 100644 index 683ff52e..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$2.class Binary files differdeleted file mode 100644 index c7f3d4af..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$3.class Binary files differdeleted file mode 100644 index 4cb4f9bc..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$3.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$4.class Binary files differdeleted file mode 100644 index ac24ba52..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$4.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$5.class Binary files differdeleted file mode 100644 index 3ab9531e..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$5.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$6.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$6.class Binary files differdeleted file mode 100644 index 05530d9e..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$6.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$7.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$7.class Binary files differdeleted file mode 100644 index 5cd2cb8c..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$7.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$8.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$8.class Binary files differdeleted file mode 100644 index e57fded7..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$8.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$9.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$9.class Binary files differdeleted file mode 100644 index 628d4627..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$9.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$Result.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$Result.class Binary files differdeleted file mode 100644 index c4dd9997..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper$Result.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper.class Binary files differdeleted file mode 100644 index fd873766..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaDialogsHelper.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaHttpAuthHandler.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaHttpAuthHandler.class Binary files differdeleted file mode 100644 index c912f928..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaHttpAuthHandler.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterface.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterface.class Binary files differdeleted file mode 100644 index b2059438..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterface.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class Binary files differdeleted file mode 100644 index 92dae914..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl.class Binary files differdeleted file mode 100644 index 22ffbfe4..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaInterfaceImpl.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPlugin.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPlugin.class Binary files differdeleted file mode 100644 index d8906c9c..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPlugin.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPreferences.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPreferences.class Binary files differdeleted file mode 100644 index ed0b3da5..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaPreferences.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class Binary files differdeleted file mode 100644 index 15ab1f62..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi.class Binary files differdeleted file mode 100644 index f11f59a3..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaResourceApi.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebView.class Binary files differdeleted file mode 100644 index 14ca5e93..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebView.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$Client.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$Client.class Binary files differdeleted file mode 100644 index deb6dfda..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$Client.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$EngineView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$EngineView.class Binary files differdeleted file mode 100644 index 1149bf24..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine$EngineView.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine.class Binary files differdeleted file mode 100644 index 7a7dcb4f..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewEngine.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$1.class Binary files differdeleted file mode 100644 index 4cf05bbe..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$2.class Binary files differdeleted file mode 100644 index af9110d2..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$3.class Binary files differdeleted file mode 100644 index e5c567e3..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$3.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class Binary files differdeleted file mode 100644 index 1370f669..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class Binary files differdeleted file mode 100644 index a93f9374..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient.class Binary files differdeleted file mode 100644 index 4df9559c..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl$EngineClient.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl.class Binary files differdeleted file mode 100644 index a8921a41..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CordovaWebViewImpl.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$1.class Binary files differdeleted file mode 100644 index 5365b497..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$2.class Binary files differdeleted file mode 100644 index 7509891d..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$3.class Binary files differdeleted file mode 100644 index 6f01ec94..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$3.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$4.class Binary files differdeleted file mode 100644 index 12c2685d..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$4.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$5.class Binary files differdeleted file mode 100644 index 306f92b6..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid$5.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid.class Binary files differdeleted file mode 100644 index 324266e6..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/CoreAndroid.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ExposedJsApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ExposedJsApi.class Binary files differdeleted file mode 100644 index 6e675205..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ExposedJsApi.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaClientCertRequest.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaClientCertRequest.class Binary files differdeleted file mode 100644 index 18ad39ec..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaClientCertRequest.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaCookieManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaCookieManager.class Binary files differdeleted file mode 100644 index 142b69c9..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaCookieManager.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaHttpAuthHandler.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaHttpAuthHandler.class Binary files differdeleted file mode 100644 index ac03d2d9..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ICordovaHttpAuthHandler.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/LOG.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/LOG.class Binary files differdeleted file mode 100644 index 11bd8f7c..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/LOG.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class Binary files differdeleted file mode 100644 index 1d25e8d1..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class Binary files differdeleted file mode 100644 index 9f380c55..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class Binary files differdeleted file mode 100644 index 8bae598b..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class Binary files differdeleted file mode 100644 index 11fbf781..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class Binary files differdeleted file mode 100644 index 1f58f471..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class Binary files differdeleted file mode 100644 index 58ab6eea..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class Binary files differdeleted file mode 100644 index 5befb5dd..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class Binary files differdeleted file mode 100644 index 3d637415..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class Binary files differdeleted file mode 100644 index 58299a40..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class Binary files differdeleted file mode 100644 index c3848041..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class Binary files differdeleted file mode 100644 index 4281bfde..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue.class Binary files differdeleted file mode 100644 index 7048a7b4..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/NativeToJsMessageQueue.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginEntry.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginEntry.class Binary files differdeleted file mode 100644 index 4adc8d03..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginEntry.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginManager.class Binary files differdeleted file mode 100644 index c59578c4..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginManager.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult$Status.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult$Status.class Binary files differdeleted file mode 100644 index d9ff981f..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult$Status.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult.class Binary files differdeleted file mode 100644 index dfefc658..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/PluginResult.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ResumeCallback.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ResumeCallback.class Binary files differdeleted file mode 100644 index fc6a4d13..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/ResumeCallback.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist$URLPattern.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist$URLPattern.class Binary files differdeleted file mode 100644 index 05973c38..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist$URLPattern.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist.class Binary files differdeleted file mode 100644 index 1be2bfca..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/Whitelist.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemCookieManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemCookieManager.class Binary files differdeleted file mode 100644 index 4d1199c6..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemCookieManager.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemExposedJsApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemExposedJsApi.class Binary files differdeleted file mode 100644 index 8511795f..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemExposedJsApi.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$1.class Binary files differdeleted file mode 100644 index 9b3e91ee..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$2.class Binary files differdeleted file mode 100644 index 2d0ac1a4..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$3.class Binary files differdeleted file mode 100644 index 5c6f1a01..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$3.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$4.class Binary files differdeleted file mode 100644 index d7817b09..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$4.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$5.class Binary files differdeleted file mode 100644 index 797cdd71..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient$5.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient.class Binary files differdeleted file mode 100644 index f4959cc7..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebChromeClient.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebView.class Binary files differdeleted file mode 100644 index 9dfe6ede..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebView.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewClient.class Binary files differdeleted file mode 100644 index 4ded5789..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewClient.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$1.class Binary files differdeleted file mode 100644 index 88b63e1e..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$2.class Binary files differdeleted file mode 100644 index ec201a98..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine.class Binary files differdeleted file mode 100644 index f7f36b74..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/debug/org/apache/cordova/engine/SystemWebViewEngine.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/AuthenticationToken.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/AuthenticationToken.class Binary files differdeleted file mode 100644 index e9d51465..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/AuthenticationToken.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/BuildConfig.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/BuildConfig.class Binary files differdeleted file mode 100644 index bf0083a2..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/BuildConfig.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackContext.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackContext.class Binary files differdeleted file mode 100644 index 2ee39be7..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackContext.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackMap.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackMap.class Binary files differdeleted file mode 100644 index 462375d9..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CallbackMap.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Config.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Config.class Binary files differdeleted file mode 100644 index 66cb1be9..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Config.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ConfigXmlParser.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ConfigXmlParser.class Binary files differdeleted file mode 100644 index 62fa0b3d..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ConfigXmlParser.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$1.class Binary files differdeleted file mode 100644 index c4624d15..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$2.class Binary files differdeleted file mode 100644 index 33738151..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$3.class Binary files differdeleted file mode 100644 index fabe9efa..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$3.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4$1.class Binary files differdeleted file mode 100644 index 3c062db9..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4.class Binary files differdeleted file mode 100644 index 76695eb5..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity$4.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity.class Binary files differdeleted file mode 100644 index 46a17ceb..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaActivity.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaArgs.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaArgs.class Binary files differdeleted file mode 100644 index 18014a39..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaArgs.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaBridge.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaBridge.class Binary files differdeleted file mode 100644 index c7f3f237..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaBridge.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaClientCertRequest.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaClientCertRequest.class Binary files differdeleted file mode 100644 index 46007d42..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaClientCertRequest.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$1.class Binary files differdeleted file mode 100644 index 683ff52e..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$2.class Binary files differdeleted file mode 100644 index c7f3d4af..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$3.class Binary files differdeleted file mode 100644 index 4cb4f9bc..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$3.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$4.class Binary files differdeleted file mode 100644 index ac24ba52..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$4.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$5.class Binary files differdeleted file mode 100644 index 3ab9531e..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$5.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$6.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$6.class Binary files differdeleted file mode 100644 index 05530d9e..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$6.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$7.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$7.class Binary files differdeleted file mode 100644 index 5cd2cb8c..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$7.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$8.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$8.class Binary files differdeleted file mode 100644 index e57fded7..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$8.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$9.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$9.class Binary files differdeleted file mode 100644 index 628d4627..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$9.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$Result.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$Result.class Binary files differdeleted file mode 100644 index c4dd9997..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper$Result.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper.class Binary files differdeleted file mode 100644 index fd873766..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaDialogsHelper.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaHttpAuthHandler.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaHttpAuthHandler.class Binary files differdeleted file mode 100644 index c912f928..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaHttpAuthHandler.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterface.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterface.class Binary files differdeleted file mode 100644 index b2059438..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterface.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class Binary files differdeleted file mode 100644 index 92dae914..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl$ActivityResultHolder.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl.class Binary files differdeleted file mode 100644 index 22ffbfe4..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaInterfaceImpl.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPlugin.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPlugin.class Binary files differdeleted file mode 100644 index d8906c9c..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPlugin.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPreferences.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPreferences.class Binary files differdeleted file mode 100644 index ed0b3da5..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaPreferences.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class Binary files differdeleted file mode 100644 index 15ab1f62..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi$OpenForReadResult.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi.class Binary files differdeleted file mode 100644 index f11f59a3..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaResourceApi.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebView.class Binary files differdeleted file mode 100644 index 14ca5e93..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebView.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$Client.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$Client.class Binary files differdeleted file mode 100644 index deb6dfda..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$Client.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$EngineView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$EngineView.class Binary files differdeleted file mode 100644 index 1149bf24..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine$EngineView.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine.class Binary files differdeleted file mode 100644 index 7a7dcb4f..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewEngine.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$1.class Binary files differdeleted file mode 100644 index 4cf05bbe..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$2.class Binary files differdeleted file mode 100644 index af9110d2..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$3.class Binary files differdeleted file mode 100644 index e5c567e3..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$3.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class Binary files differdeleted file mode 100644 index 1370f669..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class Binary files differdeleted file mode 100644 index a93f9374..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient.class Binary files differdeleted file mode 100644 index 4df9559c..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl$EngineClient.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl.class Binary files differdeleted file mode 100644 index a8921a41..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CordovaWebViewImpl.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$1.class Binary files differdeleted file mode 100644 index 5365b497..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$2.class Binary files differdeleted file mode 100644 index 7509891d..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$3.class Binary files differdeleted file mode 100644 index 6f01ec94..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$3.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$4.class Binary files differdeleted file mode 100644 index 12c2685d..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$4.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$5.class Binary files differdeleted file mode 100644 index 306f92b6..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid$5.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid.class Binary files differdeleted file mode 100644 index 324266e6..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/CoreAndroid.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ExposedJsApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ExposedJsApi.class Binary files differdeleted file mode 100644 index 6e675205..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ExposedJsApi.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaClientCertRequest.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaClientCertRequest.class Binary files differdeleted file mode 100644 index 18ad39ec..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaClientCertRequest.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaCookieManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaCookieManager.class Binary files differdeleted file mode 100644 index 142b69c9..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaCookieManager.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaHttpAuthHandler.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaHttpAuthHandler.class Binary files differdeleted file mode 100644 index ac03d2d9..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ICordovaHttpAuthHandler.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/LOG.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/LOG.class Binary files differdeleted file mode 100644 index 11bd8f7c..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/LOG.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class Binary files differdeleted file mode 100644 index 1d25e8d1..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$BridgeMode.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class Binary files differdeleted file mode 100644 index 9f380c55..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class Binary files differdeleted file mode 100644 index 8bae598b..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$EvalBridgeMode.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class Binary files differdeleted file mode 100644 index 11fbf781..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$JsMessage.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class Binary files differdeleted file mode 100644 index 1f58f471..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class Binary files differdeleted file mode 100644 index 58ab6eea..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$LoadUrlBridgeMode.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class Binary files differdeleted file mode 100644 index 5befb5dd..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$NoOpBridgeMode.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class Binary files differdeleted file mode 100644 index 3d637415..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class Binary files differdeleted file mode 100644 index 58299a40..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class Binary files differdeleted file mode 100644 index c3848041..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode$OnlineEventsBridgeModeDelegate.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class Binary files differdeleted file mode 100644 index 4281bfde..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue$OnlineEventsBridgeMode.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue.class Binary files differdeleted file mode 100644 index 7048a7b4..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/NativeToJsMessageQueue.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginEntry.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginEntry.class Binary files differdeleted file mode 100644 index 4adc8d03..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginEntry.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginManager.class Binary files differdeleted file mode 100644 index c59578c4..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginManager.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult$Status.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult$Status.class Binary files differdeleted file mode 100644 index d9ff981f..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult$Status.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult.class Binary files differdeleted file mode 100644 index dfefc658..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/PluginResult.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ResumeCallback.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ResumeCallback.class Binary files differdeleted file mode 100644 index fc6a4d13..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/ResumeCallback.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist$URLPattern.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist$URLPattern.class Binary files differdeleted file mode 100644 index 05973c38..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist$URLPattern.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist.class Binary files differdeleted file mode 100644 index 1be2bfca..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/Whitelist.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemCookieManager.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemCookieManager.class Binary files differdeleted file mode 100644 index 4d1199c6..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemCookieManager.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemExposedJsApi.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemExposedJsApi.class Binary files differdeleted file mode 100644 index 8511795f..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemExposedJsApi.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$1.class Binary files differdeleted file mode 100644 index 9b3e91ee..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$2.class Binary files differdeleted file mode 100644 index 2d0ac1a4..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$3.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$3.class Binary files differdeleted file mode 100644 index 5c6f1a01..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$3.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$4.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$4.class Binary files differdeleted file mode 100644 index d7817b09..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$4.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$5.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$5.class Binary files differdeleted file mode 100644 index 797cdd71..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient$5.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient.class Binary files differdeleted file mode 100644 index f4959cc7..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebChromeClient.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebView.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebView.class Binary files differdeleted file mode 100644 index 9dfe6ede..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebView.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewClient.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewClient.class Binary files differdeleted file mode 100644 index 4ded5789..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewClient.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$1.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$1.class Binary files differdeleted file mode 100644 index 88b63e1e..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$1.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$2.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$2.class Binary files differdeleted file mode 100644 index ec201a98..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine$2.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine.class b/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine.class Binary files differdeleted file mode 100644 index f7f36b74..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/classes/release/org/apache/cordova/engine/SystemWebViewEngine.class +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/debug/tag.txt b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/debug/tag.txt deleted file mode 100644 index c01a13dc..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/debug/tag.txt +++ /dev/null @@ -1 +0,0 @@ -incremental task execution
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/release/tag.txt b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/release/tag.txt deleted file mode 100644 index c01a13dc..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental-safeguard/release/tag.txt +++ /dev/null @@ -1 +0,0 @@ -incremental task execution
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileDebugAidl/dependency.store b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileDebugAidl/dependency.store Binary files differdeleted file mode 100644 index 8b8400dc..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileDebugAidl/dependency.store +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileReleaseAidl/dependency.store b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileReleaseAidl/dependency.store Binary files differdeleted file mode 100644 index 8b8400dc..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/compileReleaseAidl/dependency.store +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugAssets/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugAssets/merger.xml deleted file mode 100644 index 4c208e13..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugAssets/merger.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/assets"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/assets/shaders/debug"/></dataSet><dataSet config="debug"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/debug/assets"/></dataSet></merger>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml deleted file mode 100644 index e595fb8f..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/main/jniLibs"/></dataSet><dataSet config="debug"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/debug/jniLibs"/></dataSet></merger>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugShaders/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugShaders/merger.xml deleted file mode 100644 index ac16ccac..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeDebugShaders/merger.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/main/shaders"/></dataSet><dataSet config="debug"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/debug/shaders"/></dataSet></merger>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseAssets/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseAssets/merger.xml deleted file mode 100644 index fcafcdc0..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseAssets/merger.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/assets"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/assets/shaders/release"/></dataSet><dataSet config="release"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/release/assets"/></dataSet></merger>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml deleted file mode 100644 index 2c2760b3..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/main/jniLibs"/></dataSet><dataSet config="release"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/release/jniLibs"/></dataSet></merger>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseShaders/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseShaders/merger.xml deleted file mode 100644 index b2ca7bf1..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/mergeReleaseShaders/merger.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merger version="3"><dataSet config="main"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/main/shaders"/></dataSet><dataSet config="release"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/release/shaders"/></dataSet></merger>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/compile-file-map.properties b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/compile-file-map.properties deleted file mode 100644 index 5e1405e1..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +++ /dev/null @@ -1 +0,0 @@ -#Thu May 10 16:57:13 CEST 2018 diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/merger.xml deleted file mode 100644 index fd6ec75b..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageDebugResources/merger.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merger version="3"><dataSet config="main$Generated" generated="true"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/res"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/rs/debug"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/resValues/debug"/></dataSet><dataSet config="debug$Generated" generated="true"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/debug/res"/></dataSet><dataSet config="main" generated-set="main$Generated"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/res"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/rs/debug"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/resValues/debug"/></dataSet><dataSet config="debug" generated-set="debug$Generated"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/debug/res"/></dataSet><mergedItems/></merger>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties deleted file mode 100644 index 642d76ad..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties +++ /dev/null @@ -1 +0,0 @@ -#Thu May 10 16:57:15 CEST 2018 diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/merger.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/merger.xml deleted file mode 100644 index 60241c2b..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/incremental/packageReleaseResources/merger.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merger version="3"><dataSet config="main$Generated" generated="true"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/res"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/rs/release"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/resValues/release"/></dataSet><dataSet config="release$Generated" generated="true"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/release/res"/></dataSet><dataSet config="main" generated-set="main$Generated"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/res"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/rs/release"/><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/build/generated/res/resValues/release"/></dataSet><dataSet config="release" generated-set="release$Generated"><source path="/Users/user/work/stone-island/StoneIsland/platforms/android/CordovaLib/src/release/res"/></dataSet><mergedItems/></merger>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/debug/AndroidManifest.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/debug/AndroidManifest.xml deleted file mode 100644 index 90863ed8..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/debug/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="org.apache.cordova" - android:versionCode="1" - android:versionName="1.0" > - - <uses-sdk android:minSdkVersion="14" /> - -</manifest>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/release/AndroidManifest.xml b/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/release/AndroidManifest.xml deleted file mode 100644 index 90863ed8..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/intermediates/manifests/aapt/release/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="org.apache.cordova" - android:versionCode="1" - android:versionName="1.0" > - - <uses-sdk android:minSdkVersion="14" /> - -</manifest>
\ No newline at end of file diff --git a/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-debug.aar b/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-debug.aar Binary files differdeleted file mode 100644 index 6a7b1bb7..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-debug.aar +++ /dev/null diff --git a/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-release.aar b/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-release.aar Binary files differdeleted file mode 100644 index 28458987..00000000 --- a/StoneIsland/platforms/android/CordovaLib/build/outputs/aar/CordovaLib-release.aar +++ /dev/null diff --git a/StoneIsland/platforms/android/android.json b/StoneIsland/platforms/android/android.json index aab94b50..4fbbbbfb 100755 --- a/StoneIsland/platforms/android/android.json +++ b/StoneIsland/platforms/android/android.json @@ -1,400 +1,436 @@ { - "prepare_queue": { - "installed": [], - "uninstalled": [] - }, - "config_munge": { - "files": { - "res/xml/config.xml": { - "parents": { - "/*": [ - { - "xml": "<feature name=\"InAppBrowser\"><param name=\"android-package\" value=\"org.apache.cordova.inappbrowser.InAppBrowser\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"SocialSharing\"><param name=\"android-package\" value=\"nl.xservices.plugins.SocialSharing\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"LaunchMyApp\"><param name=\"android-package\" value=\"nl.xservices.plugins.LaunchMyApp\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"Whitelist\"><param name=\"android-package\" value=\"org.apache.cordova.whitelist.WhitelistPlugin\" /><param name=\"onload\" value=\"true\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"Device\"><param name=\"android-package\" value=\"org.apache.cordova.device.Device\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"NetworkStatus\"><param name=\"android-package\" value=\"org.apache.cordova.networkinformation.NetworkManager\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"Notification\"><param name=\"android-package\" value=\"org.apache.cordova.dialogs.Notification\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"Geolocation\"><param name=\"android-package\" value=\"org.apache.cordova.geolocation.Geolocation\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"Keyboard\"><param name=\"android-package\" value=\"io.ionic.keyboard.IonicKeyboard\" /><param name=\"onload\" value=\"true\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"StatusBar\"><param name=\"android-package\" value=\"org.apache.cordova.statusbar.StatusBar\" /><param name=\"onload\" value=\"true\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"SplashScreen\"><param name=\"android-package\" value=\"org.apache.cordova.splashscreen.SplashScreen\" /><param name=\"onload\" value=\"true\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"PushNotification\"><param name=\"android-package\" value=\"com.adobe.phonegap.push.PushPlugin\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"Sim\"><param name=\"android-package\" value=\"com.pbakondy.Sim\" /></feature>", - "count": 1 - } - ] - } - }, - "AndroidManifest.xml": { - "parents": { - "/manifest/application": [ - { - "xml": "<activity android:exported=\"true\" android:name=\"com.adobe.phonegap.push.PushHandlerActivity\" android:permission=\"${applicationId}.permission.PushHandlerActivity\" />", - "count": 1 - }, - { - "xml": "<receiver android:name=\"com.adobe.phonegap.push.BackgroundActionButtonHandler\" />", - "count": 1 - }, - { - "xml": "<receiver android:exported=\"true\" android:name=\"com.google.android.gms.gcm.GcmReceiver\" android:permission=\"com.google.android.c2dm.permission.SEND\"><intent-filter><action android:name=\"com.google.android.c2dm.intent.RECEIVE\" /><category android:name=\"${applicationId}\" /></intent-filter></receiver>", - "count": 1 - }, - { - "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.GCMIntentService\"><intent-filter><action android:name=\"com.google.android.c2dm.intent.RECEIVE\" /></intent-filter></service>", - "count": 1 - }, - { - "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.PushInstanceIDListenerService\"><intent-filter><action android:name=\"com.google.android.gms.iid.InstanceID\" /></intent-filter></service>", - "count": 1 - }, - { - "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.RegistrationIntentService\" />", - "count": 1 - } - ], - "/manifest": [ - { - "xml": "<uses-permission android:name=\"android.permission.INTERNET\" />", - "count": 1 - }, - { - "xml": "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />", - "count": 1 - }, - { - "xml": "<uses-permission android:name=\"android.permission.WAKE_LOCK\" />", - "count": 1 - }, - { - "xml": "<uses-permission android:name=\"android.permission.VIBRATE\" />", - "count": 1 - }, - { - "xml": "<uses-permission android:name=\"com.google.android.c2dm.permission.RECEIVE\" />", - "count": 1 - }, - { - "xml": "<uses-permission android:name=\"${applicationId}.permission.C2D_MESSAGE\" />", - "count": 1 - }, - { - "xml": "<uses-permission android:name=\"${applicationId}.permission.PushHandlerActivity\" />", - "count": 1 - }, - { - "xml": "<permission android:name=\"${applicationId}.permission.C2D_MESSAGE\" android:protectionLevel=\"signature\" />", - "count": 1 - }, - { - "xml": "<permission android:name=\"${applicationId}.permission.PushHandlerActivity\" android:protectionLevel=\"signature\" />", - "count": 1 - } - ], - "/*/application/activity": [], - "/*": [ - { - "xml": "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />", - "count": 1 - }, - { - "xml": "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />", - "count": 1 - }, - { - "xml": "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />", - "count": 1 + "prepare_queue": { + "installed": [], + "uninstalled": [] + }, + "config_munge": { + "files": { + "res/xml/config.xml": { + "parents": { + "/*": [ + { + "xml": "<feature name=\"InAppBrowser\"><param name=\"android-package\" value=\"org.apache.cordova.inappbrowser.InAppBrowser\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"SocialSharing\"><param name=\"android-package\" value=\"nl.xservices.plugins.SocialSharing\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"LaunchMyApp\"><param name=\"android-package\" value=\"nl.xservices.plugins.LaunchMyApp\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"Whitelist\"><param name=\"android-package\" value=\"org.apache.cordova.whitelist.WhitelistPlugin\" /><param name=\"onload\" value=\"true\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"Device\"><param name=\"android-package\" value=\"org.apache.cordova.device.Device\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"NetworkStatus\"><param name=\"android-package\" value=\"org.apache.cordova.networkinformation.NetworkManager\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"Notification\"><param name=\"android-package\" value=\"org.apache.cordova.dialogs.Notification\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"Geolocation\"><param name=\"android-package\" value=\"org.apache.cordova.geolocation.Geolocation\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"Keyboard\"><param name=\"android-package\" value=\"io.ionic.keyboard.IonicKeyboard\" /><param name=\"onload\" value=\"true\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"StatusBar\"><param name=\"android-package\" value=\"org.apache.cordova.statusbar.StatusBar\" /><param name=\"onload\" value=\"true\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"SplashScreen\"><param name=\"android-package\" value=\"org.apache.cordova.splashscreen.SplashScreen\" /><param name=\"onload\" value=\"true\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"PushNotification\"><param name=\"android-package\" value=\"com.adobe.phonegap.push.PushPlugin\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"Sim\"><param name=\"android-package\" value=\"com.pbakondy.Sim\" /></feature>", + "count": 1 + } + ] + } }, - { - "xml": "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />", - "count": 1 + "AndroidManifest.xml": { + "parents": { + "/manifest/application": [ + { + "xml": "<activity android:exported=\"true\" android:name=\"com.adobe.phonegap.push.PushHandlerActivity\" android:permission=\"${applicationId}.permission.PushHandlerActivity\" />", + "count": 1 + }, + { + "xml": "<receiver android:name=\"com.adobe.phonegap.push.BackgroundActionButtonHandler\" />", + "count": 1 + }, + { + "xml": "<receiver android:exported=\"true\" android:name=\"com.google.android.gms.gcm.GcmReceiver\" android:permission=\"com.google.android.c2dm.permission.SEND\"><intent-filter><action android:name=\"com.google.android.c2dm.intent.RECEIVE\" /><category android:name=\"${applicationId}\" /></intent-filter></receiver>", + "count": 1 + }, + { + "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.GCMIntentService\"><intent-filter><action android:name=\"com.google.android.c2dm.intent.RECEIVE\" /></intent-filter></service>", + "count": 1 + }, + { + "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.PushInstanceIDListenerService\"><intent-filter><action android:name=\"com.google.android.gms.iid.InstanceID\" /></intent-filter></service>", + "count": 1 + }, + { + "xml": "<service android:exported=\"false\" android:name=\"com.adobe.phonegap.push.RegistrationIntentService\" />", + "count": 1 + } + ], + "/manifest": [ + { + "xml": "<uses-permission android:name=\"android.permission.INTERNET\" />", + "count": 1 + }, + { + "xml": "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />", + "count": 1 + }, + { + "xml": "<uses-permission android:name=\"android.permission.WAKE_LOCK\" />", + "count": 1 + }, + { + "xml": "<uses-permission android:name=\"android.permission.VIBRATE\" />", + "count": 1 + }, + { + "xml": "<uses-permission android:name=\"com.google.android.c2dm.permission.RECEIVE\" />", + "count": 1 + }, + { + "xml": "<uses-permission android:name=\"${applicationId}.permission.C2D_MESSAGE\" />", + "count": 1 + }, + { + "xml": "<uses-permission android:name=\"${applicationId}.permission.PushHandlerActivity\" />", + "count": 1 + }, + { + "xml": "<permission android:name=\"${applicationId}.permission.C2D_MESSAGE\" android:protectionLevel=\"signature\" />", + "count": 1 + }, + { + "xml": "<permission android:name=\"${applicationId}.permission.PushHandlerActivity\" android:protectionLevel=\"signature\" />", + "count": 1 + } + ], + "/*/application/activity": [], + "/*": [ + { + "xml": "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />", + "count": 1 + }, + { + "xml": "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />", + "count": 1 + }, + { + "xml": "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />", + "count": 1 + }, + { + "xml": "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />", + "count": 1 + }, + { + "xml": "<uses-feature android:name=\"android.hardware.location.gps\" />", + "count": 1 + }, + { + "xml": "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />", + "count": 1 + } + ], + "/manifest/application/activity": [ + { + "xml": "<intent-filter><action android:name=\"android.intent.action.VIEW\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"android.intent.category.BROWSABLE\" /><data android:scheme=\"stoneisland\" /></intent-filter>", + "count": 1 + }, + { + "xml": "<intent-filter><action android:name=\"android.intent.action.VIEW\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"android.intent.category.BROWSABLE\" /><data android:host=\" \" android:pathPrefix=\"/\" android:scheme=\" \" /></intent-filter>", + "count": 1 + } + ] + } }, - { - "xml": "<uses-feature android:name=\"android.hardware.location.gps\" />", - "count": 1 + "res/values/parseplugin.xml": { + "parents": { + "/*": [] + } }, - { - "xml": "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />", - "count": 1 - } - ], - "/manifest/application/activity": [ - { - "xml": "<intent-filter><action android:name=\"android.intent.action.VIEW\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"android.intent.category.BROWSABLE\" /><data android:scheme=\"stoneisland\" /></intent-filter>", - "count": 1 + "res/values/strings.xml": { + "parents": { + "/resources": [ + { + "xml": "<string name=\"google_app_id\">85075801930</string>", + "count": 1 + } + ] + } }, - { - "xml": "<intent-filter><action android:name=\"android.intent.action.VIEW\" /><category android:name=\"android.intent.category.DEFAULT\" /><category android:name=\"android.intent.category.BROWSABLE\" /><data android:host=\" \" android:pathPrefix=\"/\" android:scheme=\" \" /></intent-filter>", - "count": 1 + "config.xml": { + "parents": { + "/*": [ + { + "xml": "<preference name=\"AppName\" value=\"Stone Island\" />", + "count": 1 + }, + { + "xml": "<feature name=\"Device\"><param name=\"android-package\" value=\"org.apache.cordova.device.Device\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"NetworkStatus\"><param name=\"android-package\" value=\"org.apache.cordova.networkinformation.NetworkManager\" /></feature>", + "count": 1 + }, + { + "xml": "<access origin=\"https://ssl.gstatic.com/accessibility/javascript/android/*\" />", + "count": 1 + }, + { + "xml": "<feature name=\"MobileAccessibility\"><param name=\"android-package\" value=\"com.phonegap.plugin.mobileaccessibility.MobileAccessibility\" /></feature>", + "count": 1 + } + ] + } } - ] } - }, - "res/values/parseplugin.xml": { - "parents": { - "/*": [] - } - }, - "res/values/strings.xml": { - "parents": { - "/resources": [ - { - "xml": "<string name=\"google_app_id\">85075801930</string>", - "count": 1 - } - ] - } - }, - "config.xml": { - "parents": { - "/*": [ - { - "xml": "<preference name=\"AppName\" value=\"Stone Island\" />", - "count": 1 - } - ] - } - } - } - }, - "installed_plugins": { - "cordova-plugin-inappbrowser": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-x-socialsharing": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-customurlscheme": { - "URL_SCHEME": "stoneisland", - "ANDROID_SCHEME": " ", - "ANDROID_HOST": " ", - "ANDROID_PATHPREFIX": "/", - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-whitelist": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-device": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-network-information": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-dialogs": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-compat": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-geolocation": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "ionic-plugin-keyboard": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-statusbar": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-app-name": { - "APP_NAME": "Stone Island", - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-splashscreen": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "phonegap-plugin-push": { - "SENDER_ID": "85075801930", - "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-sim": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - } - }, - "dependent_plugins": {}, - "modules": [ - { - "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", - "id": "cordova-plugin-inappbrowser.inappbrowser", - "pluginId": "cordova-plugin-inappbrowser", - "clobbers": [ - "cordova.InAppBrowser.open", - "window.open" - ] - }, - { - "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js", - "id": "cordova-plugin-x-socialsharing.SocialSharing", - "pluginId": "cordova-plugin-x-socialsharing", - "clobbers": [ - "window.plugins.socialsharing" - ] - }, - { - "file": "plugins/cordova-plugin-customurlscheme/www/android/LaunchMyApp.js", - "id": "cordova-plugin-customurlscheme.LaunchMyApp", - "pluginId": "cordova-plugin-customurlscheme", - "clobbers": [ - "window.plugins.launchmyapp" - ] - }, - { - "file": "plugins/cordova-plugin-device/www/device.js", - "id": "cordova-plugin-device.device", - "pluginId": "cordova-plugin-device", - "clobbers": [ - "device" - ] - }, - { - "file": "plugins/cordova-plugin-network-information/www/network.js", - "id": "cordova-plugin-network-information.network", - "pluginId": "cordova-plugin-network-information", - "clobbers": [ - "navigator.connection", - "navigator.network.connection" - ] - }, - { - "file": "plugins/cordova-plugin-network-information/www/Connection.js", - "id": "cordova-plugin-network-information.Connection", - "pluginId": "cordova-plugin-network-information", - "clobbers": [ - "Connection" - ] - }, - { - "file": "plugins/cordova-plugin-dialogs/www/notification.js", - "id": "cordova-plugin-dialogs.notification", - "pluginId": "cordova-plugin-dialogs", - "merges": [ - "navigator.notification" - ] - }, - { - "file": "plugins/cordova-plugin-dialogs/www/android/notification.js", - "id": "cordova-plugin-dialogs.notification_android", - "pluginId": "cordova-plugin-dialogs", - "merges": [ - "navigator.notification" - ] - }, - { - "file": "plugins/cordova-plugin-geolocation/www/android/geolocation.js", - "id": "cordova-plugin-geolocation.geolocation", - "pluginId": "cordova-plugin-geolocation", - "clobbers": [ - "navigator.geolocation" - ] - }, - { - "file": "plugins/cordova-plugin-geolocation/www/PositionError.js", - "id": "cordova-plugin-geolocation.PositionError", - "pluginId": "cordova-plugin-geolocation", - "runs": true - }, - { - "file": "plugins/ionic-plugin-keyboard/www/android/keyboard.js", - "id": "ionic-plugin-keyboard.keyboard", - "pluginId": "ionic-plugin-keyboard", - "clobbers": [ - "cordova.plugins.Keyboard" - ], - "runs": true - }, - { - "id": "cordova-plugin-statusbar.statusbar", - "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", - "pluginId": "cordova-plugin-statusbar", - "clobbers": [ - "window.StatusBar" - ] - }, - { - "id": "cordova-plugin-splashscreen.SplashScreen", - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, - { - "id": "phonegap-plugin-push.PushNotification", - "file": "plugins/phonegap-plugin-push/www/push.js", - "pluginId": "phonegap-plugin-push", - "clobbers": [ - "PushNotification" - ] - }, - { - "id": "cordova-plugin-sim.Sim", - "file": "plugins/cordova-plugin-sim/www/sim.js", - "pluginId": "cordova-plugin-sim", - "merges": [ - "window.plugins.sim" - ] + "installed_plugins": { + "cordova-plugin-inappbrowser": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-x-socialsharing": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-customurlscheme": { + "URL_SCHEME": "stoneisland", + "ANDROID_SCHEME": " ", + "ANDROID_HOST": " ", + "ANDROID_PATHPREFIX": "/", + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-whitelist": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-device": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-network-information": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-dialogs": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-compat": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-geolocation": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "ionic-plugin-keyboard": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-statusbar": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-app-name": { + "APP_NAME": "Stone Island", + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-splashscreen": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "phonegap-plugin-push": { + "SENDER_ID": "85075801930", + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-sim": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "phonegap-plugin-mobile-accessibility": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + } }, - { - "id": "cordova-plugin-sim.SimAndroid", - "file": "plugins/cordova-plugin-sim/www/android/sim.js", - "pluginId": "cordova-plugin-sim", - "merges": [ - "window.plugins.sim" - ] + "dependent_plugins": {}, + "modules": [ + { + "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", + "id": "cordova-plugin-inappbrowser.inappbrowser", + "pluginId": "cordova-plugin-inappbrowser", + "clobbers": [ + "cordova.InAppBrowser.open", + "window.open" + ] + }, + { + "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js", + "id": "cordova-plugin-x-socialsharing.SocialSharing", + "pluginId": "cordova-plugin-x-socialsharing", + "clobbers": [ + "window.plugins.socialsharing" + ] + }, + { + "file": "plugins/cordova-plugin-customurlscheme/www/android/LaunchMyApp.js", + "id": "cordova-plugin-customurlscheme.LaunchMyApp", + "pluginId": "cordova-plugin-customurlscheme", + "clobbers": [ + "window.plugins.launchmyapp" + ] + }, + { + "file": "plugins/cordova-plugin-device/www/device.js", + "id": "cordova-plugin-device.device", + "pluginId": "cordova-plugin-device", + "clobbers": [ + "device" + ] + }, + { + "file": "plugins/cordova-plugin-network-information/www/network.js", + "id": "cordova-plugin-network-information.network", + "pluginId": "cordova-plugin-network-information", + "clobbers": [ + "navigator.connection", + "navigator.network.connection" + ] + }, + { + "file": "plugins/cordova-plugin-network-information/www/Connection.js", + "id": "cordova-plugin-network-information.Connection", + "pluginId": "cordova-plugin-network-information", + "clobbers": [ + "Connection" + ] + }, + { + "file": "plugins/cordova-plugin-dialogs/www/notification.js", + "id": "cordova-plugin-dialogs.notification", + "pluginId": "cordova-plugin-dialogs", + "merges": [ + "navigator.notification" + ] + }, + { + "file": "plugins/cordova-plugin-dialogs/www/android/notification.js", + "id": "cordova-plugin-dialogs.notification_android", + "pluginId": "cordova-plugin-dialogs", + "merges": [ + "navigator.notification" + ] + }, + { + "file": "plugins/cordova-plugin-geolocation/www/android/geolocation.js", + "id": "cordova-plugin-geolocation.geolocation", + "pluginId": "cordova-plugin-geolocation", + "clobbers": [ + "navigator.geolocation" + ] + }, + { + "file": "plugins/cordova-plugin-geolocation/www/PositionError.js", + "id": "cordova-plugin-geolocation.PositionError", + "pluginId": "cordova-plugin-geolocation", + "runs": true + }, + { + "file": "plugins/ionic-plugin-keyboard/www/android/keyboard.js", + "id": "ionic-plugin-keyboard.keyboard", + "pluginId": "ionic-plugin-keyboard", + "clobbers": [ + "cordova.plugins.Keyboard" + ], + "runs": true + }, + { + "id": "cordova-plugin-statusbar.statusbar", + "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", + "pluginId": "cordova-plugin-statusbar", + "clobbers": [ + "window.StatusBar" + ] + }, + { + "id": "cordova-plugin-splashscreen.SplashScreen", + "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", + "pluginId": "cordova-plugin-splashscreen", + "clobbers": [ + "navigator.splashscreen" + ] + }, + { + "id": "phonegap-plugin-push.PushNotification", + "file": "plugins/phonegap-plugin-push/www/push.js", + "pluginId": "phonegap-plugin-push", + "clobbers": [ + "PushNotification" + ] + }, + { + "id": "cordova-plugin-sim.Sim", + "file": "plugins/cordova-plugin-sim/www/sim.js", + "pluginId": "cordova-plugin-sim", + "merges": [ + "window.plugins.sim" + ] + }, + { + "id": "cordova-plugin-sim.SimAndroid", + "file": "plugins/cordova-plugin-sim/www/android/sim.js", + "pluginId": "cordova-plugin-sim", + "merges": [ + "window.plugins.sim" + ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "window.MobileAccessibility" + ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "MobileAccessibilityNotifications" + ] + } + ], + "plugin_metadata": { + "cordova-plugin-inappbrowser": "1.5.0", + "cordova-plugin-x-socialsharing": "5.1.3", + "cordova-plugin-customurlscheme": "4.2.0", + "cordova-plugin-whitelist": "1.3.0", + "cordova-plugin-device": "1.1.3", + "cordova-plugin-network-information": "1.3.0", + "cordova-plugin-dialogs": "1.3.0", + "cordova-plugin-compat": "1.1.0", + "cordova-plugin-geolocation": "2.4.0", + "ionic-plugin-keyboard": "2.2.1", + "cordova-plugin-statusbar": "2.2.3", + "cordova-plugin-app-name": "1.0.4", + "cordova-plugin-splashscreen": "4.0.3", + "phonegap-plugin-push": "1.9.2", + "cordova-plugin-sim": "1.3.3", + "phonegap-plugin-mobile-accessibility": "1.0.5-dev" } - ], - "plugin_metadata": { - "cordova-plugin-inappbrowser": "1.5.0", - "cordova-plugin-x-socialsharing": "5.1.3", - "cordova-plugin-customurlscheme": "4.2.0", - "cordova-plugin-whitelist": "1.3.0", - "cordova-plugin-device": "1.1.3", - "cordova-plugin-network-information": "1.3.0", - "cordova-plugin-dialogs": "1.3.0", - "cordova-plugin-compat": "1.1.0", - "cordova-plugin-geolocation": "2.4.0", - "ionic-plugin-keyboard": "2.2.1", - "cordova-plugin-statusbar": "2.2.3", - "cordova-plugin-app-name": "1.0.4", - "cordova-plugin-splashscreen": "4.0.3", - "phonegap-plugin-push": "1.9.2", - "cordova-plugin-sim": "1.3.3" - } }
\ No newline at end of file diff --git a/StoneIsland/platforms/android/assets/www/cordova_plugins.js b/StoneIsland/platforms/android/assets/www/cordova_plugins.js index 770bd946..2b01e07f 100755 --- a/StoneIsland/platforms/android/assets/www/cordova_plugins.js +++ b/StoneIsland/platforms/android/assets/www/cordova_plugins.js @@ -128,6 +128,22 @@ module.exports = [ "merges": [ "window.plugins.sim" ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "window.MobileAccessibility" + ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "MobileAccessibilityNotifications" + ] } ]; module.exports.metadata = @@ -147,7 +163,8 @@ module.exports.metadata = "cordova-plugin-app-name": "1.0.4", "cordova-plugin-splashscreen": "4.0.3", "phonegap-plugin-push": "1.9.2", - "cordova-plugin-sim": "1.3.3" + "cordova-plugin-sim": "1.3.3", + "phonegap-plugin-mobile-accessibility": "1.0.5-dev" }; // BOTTOM OF METADATA });
\ No newline at end of file diff --git a/StoneIsland/platforms/android/assets/www/css/account.css b/StoneIsland/platforms/android/assets/www/css/account.css index 32c7df79..be82a4c7 100755 --- a/StoneIsland/platforms/android/assets/www/css/account.css +++ b/StoneIsland/platforms/android/assets/www/css/account.css @@ -67,7 +67,7 @@ content:''; width:calc(100% + 100px); height:1px; - background:#bbb; + background:#666; position:absolute; bottom:0; left:-50px; @@ -122,12 +122,23 @@ text-align: center; margin: 0; padding: 20px 10px 8px 10px; - font-size: 14px; + font-size: 16px; color: #000; letter-spacing: 1px; font-weight: bold; } +label { + display: flex; + align-items: center; + justify-content: center; + text-align: center; + font-size: 16px; + color: #000; + letter-spacing:1px; + text-transform:uppercase; + height: 48px; +} input[type=text], input[type=password], input[type=number], input[type=date], input[type=email] { font-family:pfd, sans-serif; font-size:14px; @@ -135,13 +146,13 @@ input[type=text], input[type=password], input[type=number], input[type=date], in color:#000; letter-spacing:1px; text-transform:uppercase; - height:35px; + height: 48px; text-align:center; margin: 0px auto; display:block; - margin-top:4px; + margin-top: 0px; width: calc(100vw - 10px); - border:1px solid #a9a9a9; + border:1px solid #696969; padding: 0; border-radius: 0; } @@ -149,27 +160,35 @@ input[type=text], input[type=password], input[type=number], input[type=date], in input[type=text], input[type=password], input[type=number], input[type=email] { -webkit-appearance: none; } - +input[type=text]:focus, input[type=password]:focus, input[type=number]:focus, input[type=email] { + border-width: 2px; +} .half-input { margin: 0px auto; - display: block; + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; margin-top: 4px; width: calc(100vw - 10px); overflow: auto; } +.half-input label { + width: 50%; +} .half-input input, .half-input select { position: relative; margin: 0; border:none; box-sizing: border-box; float: left; - border: 1px solid #a9a9a9; + border: 1px solid #696969; width: 50%; } .half-input > input:first-child { - border-right: 1px solid #a9a9a9; + border-right: 1px solid #696969; } #signup .toggle-container, #profile .toggle-container { @@ -179,7 +198,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] { width: calc(100vw - 10px); box-sizing: border-box; padding:0px 18px 2px; - font-size:14px; + font-size:16px; } #settings .toggle-container { @@ -189,7 +208,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] { width: calc(100vw - 10px); box-sizing: border-box; padding:10px 18px 2px; - font-size:14px; + font-size:16px; } .toggle-row { @@ -296,10 +315,12 @@ input.switch:checked + label:after { .container-fill { min-height:80px; + display: flex; flex: 1; align-items: center; justify-content: center; position:relative; + flex-direction: column; } .container-fill-condensed { @@ -317,26 +338,27 @@ input.switch:checked + label:after { width:calc(100vw - 10px); box-sizing:border-box; margin:10px auto 0; - position:relative + position:relative; } .container-row .container-message-condensed { margin: 2px auto!important } .container-fill .container-message { - font-size:12px; + font-size:14px; letter-spacing:0.5px; text-align:center; - position:absolute; - top:50%; - left:50%; + display: flex; + align-items: center; + justify-content: center; width:100%; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); + min-height: 48px; color:#000; } - +.billing-container a { + text-decoration: none; +} .premessage { top:calc(50% - 20px)!important; @@ -351,7 +373,7 @@ input.switch:checked + label:after { } .checkbox-container { - font-size:11px; + font-size:14px; width:calc(100vw - 10px); display:table; box-sizing:border-box; @@ -381,6 +403,7 @@ input.switch:checked + label:after { vertical-align:middle; display:table-cell; box-sizing:border-box; + text-align: left; } .billing-container .checkbox-caption { @@ -442,10 +465,6 @@ input.switch:checked + label:after { } .privacy-msg { - left: 50%; - display: inline-block; - position: relative; - transform: translateX(-50%); padding-top: 15px; padding-bottom: 80px; } @@ -463,46 +482,50 @@ input.switch:checked + label:after { color: #000; letter-spacing: 1px; text-transform: uppercase; - height: 35px; + height: 48px; text-align: center; margin: 0px auto; display: block; margin-top: 4px; width: calc(100vw - 10px); - border: 1px solid #a9a9a9; + border: 1px solid #696969; } .date-wrapper span { display: block; } .half-input .select-wrapper { + display: flex; + align-items: center; + justify-content: center; width: 50%; border: 0; margin-top: 0px; float: left; box-sizing: border-box; - border: 1px solid #a9a9a9; + border: 1px solid #696969; +} +.half-input .select-wrapper:nth-child(2) { border-left: 0px; } .half-input .select-wrapper span { - top: 8px; color: #aaa; + top: 0; } .select-wrapper [type=date] { opacity: 0; width: 100%; - height: 35px; - line-height: 35px; + height: 48px; + line-height: 48px; position: absolute; top: -5px; left: -1px; - width: 1px; height: 1px; } .select-wrapper select { opacity: 0; width: 100%; - height: 35px; - line-height: 35px; + height: 48px; + line-height: 48px; position: absolute; top: 0; left: 0; box-sizing: border-box; @@ -512,8 +535,8 @@ input.switch:checked + label:after { } .select-wrapper span { position: relative; - top: 8px; - color: #888; + top: 15px; + color: #666; } .select-wrapper.picked span { color: #000; @@ -521,33 +544,29 @@ input.switch:checked + label:after { .country-wrapper-static { text-align: center; - color: #a9a9a9; + color: #696969; border: 1px solid; - padding-top: 9px; + border-left: 0; font-size: 14px; - height: 35px; + height: 48px; box-sizing: border-box; -} - -.container-row input:first-child { -margin-top:10px + width: 50%; + display: flex; + justify-content: center; + align-items: center; } .container-row .half-input input { margin-top:0px } -#login .container-row input:first-child { -margin-bottom:9px!important -} - .newuser { display:inline-block; - padding:14px; + padding:18px; text-decoration:underline } .forgotpassword { - padding:14px; + padding:18px; text-decoration:underline }
\ No newline at end of file diff --git a/StoneIsland/platforms/android/assets/www/css/blogs.css b/StoneIsland/platforms/android/assets/www/css/blogs.css index bf5ab68f..0834912e 100755 --- a/StoneIsland/platforms/android/assets/www/css/blogs.css +++ b/StoneIsland/platforms/android/assets/www/css/blogs.css @@ -6,11 +6,19 @@ margin: 15px 0 0; text-align: center; text-transform:uppercase; + display:flex; + flex-direction: row; + justify-content: center; + align-items: center; } #story .links li { - padding: 10px; + display: flex; + justify-content: center; + align-items: center; + height: 48px; + padding: 0 15px; list-style-type: none; - display: inline-block; + font-size: 16px; } #story .links li:before { content: ' | ', @@ -57,7 +65,7 @@ animation: mfadein 0.6s; #hub .content .body, #story .content .body { letter-spacing:0.35px; - font-size:12px; + font-size:16px; width:calc(100vw - 40px); box-sizing:border-box; margin:10px auto 20px; @@ -65,7 +73,7 @@ animation: mfadein 0.6s; } #hub .content .body:last-child { - margin:10px auto 100px; + margin:20px auto 100px; } #story .content .body:last-child { @@ -85,14 +93,14 @@ animation: mfadein 0.6s; .content-header .title, .content-header .subtitle { display:block; font-weight:bold; - font-size:14px; + font-size:16px; text-transform:uppercase } .content-header .title { margin:0; padding:0; - line-height:13px; + line-height:1.4em; } .content-header .subtitle { @@ -101,12 +109,17 @@ animation: mfadein 0.6s; .content-share { border:1px solid black; - padding:4px 8px 2px; + padding: 0 12px; + height: 48px; + font-size: 16px; + display: flex; + justify-content: center; + align-items: center; float:right } .content-header span.date, .content-header span.store { - font-size:10px; + font-size:16px; } /* NOTE: optional arrows */ @@ -118,8 +131,8 @@ animation: mfadein 0.6s; background-size:5px 10px; background-repeat:no-repeat; background-position:center; - width:15px; - height:30px; + width:24px; + height:48px; top:26vh; content:''; transform:translateY(-50%); @@ -130,7 +143,6 @@ animation: mfadein 0.6s; z-index:2; position:absolute; display:block; - animation: gallery-fade 4s forwards; } .gallery-right { border:1px solid black; @@ -139,8 +151,8 @@ animation: mfadein 0.6s; background-size:5px 10px; background-repeat:no-repeat; background-position:center; - width:15px; - height:30px; + width:24px; + height:48px; top:26vh; content:''; transform:translateY(-50%); @@ -151,7 +163,6 @@ animation: mfadein 0.6s; z-index:2; position:absolute; display:block; - animation: gallery-fade 4s forwards; } @-webkit-keyframes gallery-fade { @@ -220,7 +231,7 @@ ul.links { margin:0 0 12px; padding:0; font-weight:bold; - font-size:14px; + font-size:16px; } @@ -233,7 +244,7 @@ ul.links { } .archive .body { font-size: 14px; - line-height: 1.2em; + line-height: 1.4em; font-weight: 100; } @@ -278,11 +289,14 @@ ul.links { } #archive .menu .item { width: 100%; - text-align: center; + display: flex; + justify-content: center; + align-items: center; border-bottom: 1px solid black; background: white; - padding:12px 0; - font-size:14px; + padding:0; + height: 48px; + font-size:16px; letter-spacing:0.7px } diff --git a/StoneIsland/platforms/android/assets/www/css/cart.css b/StoneIsland/platforms/android/assets/www/css/cart.css index 7619a82b..c5725349 100755 --- a/StoneIsland/platforms/android/assets/www/css/cart.css +++ b/StoneIsland/platforms/android/assets/www/css/cart.css @@ -6,20 +6,24 @@ #cart .steps { width: 100%; - border-bottom: 1px solid #bbb; + border-bottom: 1px solid #666; font-size: 0; + display: flex; + flex-direction: row; } #cart .steps span { - display: inline-block; - font-size: 13px; + display: flex; + font-size: 16px; text-align: center; - padding: 11px 0 10px; - color: #bbb; + color: #666; width: 33%; position:relative; + height: 48px; + justify-content: center; + align-items: center; } .summary_step, .shipping_step { - border-right: 1px solid #bbb + border-right: 1px solid #666; } #cart.summary .summary_step, @@ -109,7 +113,12 @@ #cart h3 { padding-left: 5px; - font-size:12px; + font-size:16px; + height: 48px; + display: flex; + justify-content: flex-start; + align-items: center; + font-size: 16px; } .cart_item_row { @@ -153,9 +162,9 @@ padding-left:5px; .cart_item_price .remove { display:block; -width:20px; -height:20px; -border:1px solid #d2d2d2; +width:48px; +height:48px; +border:1px solid #b2b2b2; float:right; margin-bottom:10px; position:relative; @@ -164,8 +173,8 @@ position:relative; .cart_item_price .remove:after { content:''; width:1px; -height:22px; -background:#bbb; +height:48px; +background:#333; position:absolute; top:50%; left:50%; @@ -177,8 +186,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) .cart_item_price .remove:before { content:''; width:1px; - height:22px; - background:#bbb; + height:48px; + background:#333; position:absolute; top:50%; left:50%; @@ -188,27 +197,27 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) } .cart_item_price .price { - font-size:11px; + font-size:16px; font-weight:bold; display:block } .cart_item_info .sku { - font-size:10px; + font-size:16px; font-weight:bold; - display:block + display:block; } .cart_item_info .title { - font-size:10px; + font-size:16px; font-weight:bold; display:block; - line-height:12px; + line-height:1.4em; text-transform:uppercase; } .cart_item_info .type { - font-size:10px; + font-size:16px; font-weight:bold; display:block; text-transform:capitalize; @@ -217,7 +226,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) .cart_item_info .meta { padding-top:5px; letter-spacing:.75px; - font-size:8px; + font-size:14px; } .order_section .rows { @@ -241,8 +250,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) width:calc(100vw - 30px); margin:0 auto; display:table; - color:#bbb; - font-size:11px; + color:#666; + font-size:16px; } .cart-summary-row { @@ -274,7 +283,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) #orders .order_section { padding-bottom: 16px; - border-bottom: 1px solid #bbb; + border-bottom: 1px solid #666; } @@ -294,9 +303,10 @@ color:#000; position:relative; text-align:right; width:calc(100vw - 10px); - margin:0 auto; + margin:0 auto 20px 0; box-sizing:border-box; - + display: flex; + flex-direction: column; } .dropdown-wrapper .add_edit { @@ -308,11 +318,15 @@ color:#000; } .dropdown-wrapper .dropdown { - font-size:14px; + font-size:16px; box-sizing:border-box; + display: flex; + justify-content: center; align-items: center; text-align: center; - padding:10px 0; + height: 48px; + margin-left: 3px; + padding:0; border:1px solid #a9a9a9; position:relative; } @@ -355,6 +369,9 @@ color:#000; margin-left:5px; margin-bottom:6px; } +#cart .cc_confirm h3 { + justify-content: center +} #cart_shipping input:first-child { margin-top:10px diff --git a/StoneIsland/platforms/android/assets/www/css/index.css b/StoneIsland/platforms/android/assets/www/css/index.css index 4d8e5514..fa3dae54 100755 --- a/StoneIsland/platforms/android/assets/www/css/index.css +++ b/StoneIsland/platforms/android/assets/www/css/index.css @@ -17,9 +17,12 @@ body { -webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */ background: #fff; font-family: pfd, sans-serif; - font-size: 12px; + font-size: 14px; padding-top: constant(safe-area-inset-top); } +a, a:visited { + color: #000; +} .loader { z-index: 2; @@ -60,3 +63,15 @@ body { color: red !important; border-color: red !important; } +.error_hilite ~ span.err { + display: flex; +} +span.err { + display: none; + text-align: center; + justify-content: center; + align-items: center; + font-size: 14px; + height: 48px; + color: red !important; +} diff --git a/StoneIsland/platforms/android/assets/www/css/nav.css b/StoneIsland/platforms/android/assets/www/css/nav.css index b7002f20..d69ff144 100755 --- a/StoneIsland/platforms/android/assets/www/css/nav.css +++ b/StoneIsland/platforms/android/assets/www/css/nav.css @@ -35,7 +35,7 @@ } #nav .menu span { display: block; - font-size: 14px; + font-size: 16px; letter-spacing:1.25px; text-shadow:0px 0px 1px rgba(0,0,0,.2); color: #000; @@ -77,9 +77,9 @@ #nav .submenu span { display: block; - font-size: 14px; + font-size: 16px; letter-spacing:1.25px; - color: #bbb; + color: #666; padding: 4px 0 12px 20px } @@ -94,7 +94,7 @@ float: left; width: 61px; border-left: 1px solid #ddd; - color: #bbb; + color: #666; font-size: 18px; padding: 5px 0; text-align: center; @@ -137,10 +137,13 @@ padding-bottom:0px; } #intro div { position: absolute; - top: 50%; left: 50%; + top: 50%; + left: 50%; width: 200px; - padding: 50px; - text-align: center; + height: 100px; + display: flex; + justify-content: center; + align-items: center; font-size: 17px; } #intro #compass { @@ -198,7 +201,7 @@ padding-bottom:0px; display: block; position: absolute; top: 0; left: 0; width: 100%; - height: 42px; + height: 48px; border-bottom: 1px solid black; } #header .logo { @@ -207,42 +210,42 @@ padding-bottom:0px; background-position: center center; position: absolute; background-size: contain; - width: 100px; height: 40px; - left: 50%; top: -4px; + width: 100px; height: 48px; + left: 50%; top: -3px; margin-left: -50px; top:0px; } #header .burger { display: inline-block; font-size: 24px; - padding: 9px 10px 5px; + padding: 12px 13px 7px; } #header .cart_rapper { - display: inline-block; + display: flex; + justify-content: center; + align-items: flex-end; position: relative; float: right; - width: 40px; height: 40px; + width: 44px; height: 48px; } #header .cart { position: relative; - float: right; width: 18px; - top: 15px; + margin-bottom: 10px; height: 18px; - margin-right: 18px; background: #fff; background-image:url(../img/cart-box.png); background-size:100%; background-repeat:no-repeat; } -.cart .cart_count { +#header .cart .cart_count { position: absolute; top: 50%; left: 50%; transform: translateY(-50%) translateX(-50%); - color: #bbb; + color: #666; font-size:12.35px; } @@ -273,12 +276,16 @@ padding-bottom:0px; } #footer div { width: 50%; + height: 48px; text-align: center; - padding: 10px 0; color: #000; float: left; - font-size:14px; + font-size: 16px; font-weight:bold; + padding: 0; + display: flex; + justify-content: center; + align-items: center; } #footer .ok { color: #000; @@ -287,7 +294,7 @@ padding-bottom:0px; width: 100%; } #footer .ok.disabled { - color: #bbb; + color: #666; } @@ -300,8 +307,10 @@ padding-bottom:0px; width: 100%; height: 100%; background: rgba(255,255,255,0.8); opacity: 0; - -webkit-transition: opacity 0.2s; - transition: opacity 0.2s; + -webkit-transition: opacity 0.2s, -webkit-transform 0.2s; + transition: opacity 0.2s, transform 0.2s; + -webkit-transform: translateZ(0) translateX(0); + transform: translateZ(0) translateX(0); } #curtain.visible { pointer-events: auto; @@ -346,13 +355,14 @@ padding-bottom:0px; #consent_modal { display: none; z-index: 2; + font-size: 16px; } #consent_modal a { color: black; } .modal button { font-family: pfd, sans-serif; - font-size: 12px; + font-size: 14px; padding: 10px; box-sizing: border-box; margin: 0; @@ -376,6 +386,11 @@ padding-bottom:0px; #consent_error.visible { opacity: 1; } +.accessible #consent_modal br:nth-last-of-type(1), +.accessible #consent_modal br:nth-last-of-type(2) { + display: none; +} + /* SELECTOR */ #selector { @@ -400,7 +415,7 @@ padding-bottom:0px; #selector:not(.selector-outer-wrap) .options div { background: white; text-align: center; - padding: 7px 12px; + padding: 12px 12px; box-sizing:border-box; font-size: 14px; border-left:1px solid black; @@ -462,28 +477,31 @@ padding-bottom:0px; #cart, #profile, #shipping, #payment, #settings, #orders { position: absolute; - top: 43px; - height: -webkit-calc(100% - 43px - 39px); - height: calc(100% - 43px - 39px); + top: 49px; + height: -webkit-calc(100% - 49px - 39px); + height: calc(100% - 49px - 39px); width: 100%; overflow: hidden; } #collection.single { - height: -webkit-calc(100% - 43px); - height: calc(100% - 43px); + height: -webkit-calc(100% - 49px); + height: calc(100% - 49px); } #story, #hub, #archive, .page, #closed { /* these things do not have a footer */ - height: -webkit-calc(100% - 43px); - height: calc(100% - 43px); + height: -webkit-calc(100% - 49px); + height: calc(100% - 49px); } h1 { text-align: center; margin: 0; - padding: 16px 10px 12px 10px; + display: flex; + justify-content: center; + align-items: center; border-bottom: 1px solid #000; - font-size: 14px; + height: 48px; + font-size: 16px; color: #000; letter-spacing: 1px; font-weight: bold; diff --git a/StoneIsland/platforms/android/assets/www/css/products.css b/StoneIsland/platforms/android/assets/www/css/products.css index 59bb403f..fbc22d28 100755 --- a/StoneIsland/platforms/android/assets/www/css/products.css +++ b/StoneIsland/platforms/android/assets/www/css/products.css @@ -103,7 +103,7 @@ } .product .product-header { - font-size:14px; + font-size:16px; margin:18px 0 0; max-width:60%; position:relative; @@ -136,33 +136,49 @@ } .product .style { - padding:4px 9px; + padding: 0; border:1px solid black; float:left } .product .share { float:right; - padding:4px 9px; + padding: 0 12px; + height: 48px; + display: flex; + justify-content: center; + align-items: center; border:1px solid black; } .product .type { display:table-cell; - font-size:14px; + font-size:16px; } -.product .size { - padding-right:16px; +.product .size-color { + display: flex; + flex-direction: row; +} +.product .size-color span { position:relative; - box-sizing:border-box + box-sizing:border-box; + padding: 0 12px; + height: 48px; + font-size: 16px; + display: flex; + justify-content: center; + align-items: center; +} +.product .size-color span.size { + border-right: 1px solid #444; } .product .price { display:table-cell; - font-size:14px; + font-size:16px; text-align:right; - vertical-align:bottom + vertical-align:bottom; } .product .price, .product .type { @@ -179,12 +195,12 @@ .style-share { letter-spacing:0.5px; - font-size:12.35px + font-size:16px; } .size-color { position:relative; - font-size:12.35px + font-size:16px; } .type-price, .style-share { @@ -194,7 +210,7 @@ } -.size::after { +/*.size::after { content: ''; display: inline-block; width: 1px; @@ -205,7 +221,7 @@ right:5px; background: #999; } - +*/ .product .fit, .product .notAvailableInCanada { @@ -232,7 +248,8 @@ #product .content .body { letter-spacing:0.35px; - font-size:12px; + font-size:16px; + line-height: 1.4em; box-sizing:border-box; margin:0px auto 20px; clear:both; diff --git a/StoneIsland/platforms/android/assets/www/index.html b/StoneIsland/platforms/android/assets/www/index.html index b6fc8317..664b2df0 100755 --- a/StoneIsland/platforms/android/assets/www/index.html +++ b/StoneIsland/platforms/android/assets/www/index.html @@ -28,103 +28,96 @@ <link rel="stylesheet" type="text/css" href="css/blogs.css"> <title>Stone Island</title> </head> -<body class="loading"> +<body class="loading" role="application"> -<div id="nav"> +<div id="nav" role="directory"> <div id="nav-container"> <div id="nav-row"> <!-- flex --> - <span class="menu"> - <div class="logo"></div> - <div class="main_menu"> - <span class="store">STORE</span> - <span class="hub">HUB</span> - <span class="story">STORY</span> - <span class="archive">ARCHIVE</span> + <span role="menu" class="menu"> + <div class="logo" aria-label="Stone Island"></div> + <div role="menu" aria-label="Main Menu" class="main_menu"> + <span role="menuitem" class="store">STORE</span> + <span role="menuitem" class="hub">HUB</span> + <span role="menuitem" class="story">STORY</span> + <span role="menuitem" class="archive">ARCHIVE</span> </div> - <div class="account_menu"> - <span class="account_back menu-emphasis">< MY ACCOUNT</span> - <span class="profile">MY PROFILE</span> - <span class="payment">MY CARD</span> - <span class="shipping">ADDRESS BOOK</span> - <span class="orders">MY ORDERS</span> - <span class="return_link">RETURNS</span> - <span class="settings">NOTIFICATIONS</span> + <div role="menu" aria-label="Account Menu" class="account_menu"> + <span role="menuitem" class="account_back menu-emphasis">< MY ACCOUNT</span> + <span role="menuitem" class="profile">MY PROFILE</span> + <span role="menuitem" class="payment">MY CARD</span> + <span role="menuitem" class="shipping">ADDRESS BOOK</span> + <span role="menuitem" class="orders">MY ORDERS</span> + <span role="menuitem" class="return_link">RETURNS</span> + <span role="menuitem" class="settings">NOTIFICATIONS</span> </div> - <div class="faq_menu"> - <span class="faq_back menu-emphasis">< FAQ</span> - <span class="privacy">PRIVACY POLICY</span> - <span class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span> - <span class="terms">TERMS AND CONDITIONS</span> - <span class="returns">RETURN POLICY</span> - <span class="care">CUSTOMER CARE</span> + <div role="menu" aria-label="FAQ Menu" class="faq_menu"> + <span role="menuitem" class="faq_back menu-emphasis">< FAQ</span> + <span role="menuitem" class="privacy">PRIVACY POLICY</span> + <span role="menuitem" class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span> + <span role="menuitem" class="terms">TERMS AND CONDITIONS</span> + <span role="menuitem" class="returns">RETURN POLICY</span> + <span role="menuitem" class="care">CUSTOMER CARE</span> </div> </span> </div> <div id="nav-fill"> <!-- flex fill --> - <span class="submenu"> + <span role="menu" class="submenu"> <div class="main_menu"> - <span class="account">MY ACCOUNT</span> - <span class="login">LOGIN</span> - <span class="faq">FAQ</span> + <span role="menuitem" class="account">MY ACCOUNT</span> + <span role="menuitem" class="login">LOGIN</span> + <span role="menuitem" class="faq">FAQ</span> </div> <div class="account_menu"> - <span class="logout">LOGOUT</span> - <span class="faq">FAQ</span> - <span class="main">MAIN MENU</span> + <span role="menuitem" class="logout">LOGOUT</span> + <span role="menuitem" class="faq">FAQ</span> + <span role="menuitem" class="main">MAIN MENU</span> </div> <div class="faq_menu"> - <span class="account">MY ACCOUNT</span> - <span class="login">LOGIN</span> - <span class="logout">LOGOUT</span> - <span class="main">MAIN MENU</span> + <span role="menuitem" class="account">MY ACCOUNT</span> + <span role="menuitem" class="login">LOGIN</span> + <span role="menuitem" class="logout">LOGOUT</span> + <span role="menuitem" class="main">MAIN MENU</span> </div> </span> </div> <!-- end flex --> </div> - <span class="social"> - <span class="fb ion-social-facebook"></span> - <span class="insta ion-social-instagram-outline"></span> - <span class="tw ion-social-twitter"></span> - <span class="yt ion-social-youtube"></span> + <span class="social" role="list" aria-label="Social Links"> + <span role="menuitem" class="fb ion-social-facebook"></span> + <span role="menuitem" class="insta ion-social-instagram-outline"></span> + <span role="menuitem" class="tw ion-social-twitter"></span> + <span role="menuitem" class="yt ion-social-youtube"></span> </span> </div> <div id="content"> - <div id="intro"> + <div id="intro" role="menu" aria-label="Stone Island Home Screen"> <div id="compass"></div> - <div class="store">STORE</div> - <div class="hub">HUB</div> - <div class="story">STORY</div> - <div class="archive">ARCHIVE</div> + <div role="menuitem" class="store">STORE</div> + <div role="menuitem" class="hub">HUB</div> + <div role="menuitem" class="story">STORY</div> + <div role="menuitem" class="archive">ARCHIVE</div> <div class="alert"></div> - <span class="latlng">+40° 58' 90.9" N 74° 04' 46.3" W</span> + <span class="latlng" role="note" aria-label="Your Latitude and Longitude">+40° 58' 90.9" N 74° 04' 46.3" W</span> </div> - <div id="header"> - <span class="burger ion-android-menu"></span> - <span class="logo"></span> - <span class="cart_rapper"><span class="cart"><span class="cart_count">0</span></span></span> - </div> - - <div id="footer"> - <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen --> - <div class="cancel">CANCEL</div> - <div class="ok">OK</div> + <div id="header" role="menubar" aria-label="Menu bar"> + <span role="menu" aria-label="Show main menu" class="burger ion-android-menu"></span> + <span role="link" aria-label="Homepage. Stone Island logo" class="logo"></span> + <span role="link" aria-label="View cart" class="cart_rapper"><span class="cart"><span role="display" class="cart_count">0</span></span></span> </div> - <!-- BLOGS ================================================ --> - <div id="story"> + <div id="story" role="region" aria-label="Stone Island Story"> <div class="scroll"> - <h1>STORY</h1> + <h1 aria-label="Current section: Stone Island Story">STORY</h1> <img> <ul class="links"></ul> <div class="content"> @@ -137,21 +130,21 @@ </div> </div> - <div id="hub"> + <div id="hub" role="region" aria-label="Stone Island Hub"> <div class="scroll"> - <h1>HUB</h1> + <h1 aria-label="Current section: Stone Island Hub">HUB</h1> <div class="content"> <script type="text/html" class="template"> <div class="hub_item" data-id="{{id}}"> - <div class="gallery gallery-{{id}}"></div> - <div class="gallery-left"></div> - <div class="gallery-right"></div> - <div class="content-header"> - <div class="content-share"> - SHARE + + <div class="gallery gallery-{{id}}" role="carousel"></div> + <div role="button" class="gallery-left"></div> + <div role="button" class="gallery-right"></div> + <div role="heading" class="content-header"> + <div role="button" class="content-share"> + SHARE + </div> - <span class="title">{{title}}</span> - <span class="subtitle">{{subtitle}}</span> + <span role="heading" aria-details="{{cleantitle}}" class="title">{{title}}</span> + <span role="heading" aria-details="{{cleansubtitle}}"class="subtitle">{{subtitle}}</span> <span class="date"> {{date}} <span class="store"> @@ -167,7 +160,7 @@ <div class="fade-cover"></div> </div> - <div id="archive"> + <div id="archive" role="region" aria-label="Stone Island Archive"> <div class="scroll"> <div class="content"> @@ -187,28 +180,29 @@ </div> </div> - <div class="menu"> + <div class="menu" role="menu"> <div class="items"> <script type="text/html" class="template"> - <div class="item">{{title}}</div> + <div role="button" class="item">{{title}}</div> </script> </div> </div> <div class="heading"> - <h1>ARCHIVE</h1> - <div class="subtitle">'982'015</div> + <h1 role="heading" aria-label="Current section: Stone Island Archive">ARCHIVE</h1> + <div role="heading" class="subtitle" aria-label="1982 to 2015">'982'015</div> </div> </div> - <div id="privacy" class="page"> + <div id="privacy" role="region" aria-label="Privacy Policy" class="page"> <div class="scroll"> - <h1>PRIVACY POLICY</h1> + <h1 aria-label="Current section: Privacy Policy">PRIVACY POLICY</h1> <div class="content"></div> </div> </div> - <div id="account_terms" class="page"> + + <div id="account_terms" role="region" aria-label="My Account Terms and Conditions of Use" class="page"> <div class="scroll"> - <h1>MY ACCOUNT TERMS AND CONDITIONS OF USE</h1> + <h1 aria-label="Current section: My Account terms and conditions of use">MY ACCOUNT TERMS AND CONDITIONS OF USE</h1> <div class="content"> <h2>1. Services</h2> <p> @@ -261,21 +255,24 @@ </div> </div> </div> - <div id="terms" class="page"> + + <div id="terms" role="region" aria-label="Terms and Conditions" class="page"> <div class="scroll"> - <h1>TERMS AND CONDITIONS</h1> + <h1 aria-label="Current section: Terms and conditions">TERMS AND CONDITIONS</h1> <div class="content"></div> </div> </div> - <div id="returns" class="page"> + + <div id="returns" role="region" aria-label="Return Policy" class="page"> <div class="scroll"> - <h1>RETURN POLICY</h1> + <h1 aria-label="Current section: Return policy">RETURN POLICY</h1> <div class="content"></div> </div> </div> - <div id="care" class="page"> + + <div id="care" role="region" aria-label="Customer Care" class="page"> <div class="scroll"> - <h1>CUSTOMER CARE</h1> + <h1 aria-label="Current section: Customer care">CUSTOMER CARE</h1> <div class="content"></div> </div> </div> @@ -283,42 +280,42 @@ <!-- STORE ================================================ --> - <div id="collection"> + <div id="collection" role="region" aria-label="Store"> <div class="scroll"> - <h1>LOADING...</h1> + <h1 aria-label="Current section: Store">LOADING...</h1> <div class="loader"></div> <div class="content"> <script type="text/html" class="template"> - <div class="item" data-code="{{code8}}"> - <img src="{{image}}"> + <div role="link" class="item" data-code="{{code8}}"> + <img src="{{image}}" alt="{{title}}"> </div> </script> </div> </div> </div> - <div id="search"> + <div id="search" role="search" aria-label="Search"> <div class="scroll"> - <h1>SEARCH</h1> + <h1 aria-label="Current section: Search">SEARCH</h1> <div class="form"> <input type="text" class="q" placeholder="ENTER YOUR SEARCH"> </div> </div> </div> - <div id="product"> + <div id="product" role="region" aria-label="Product view"> <div class="scroll"> <div class="loader"></div> - <div id="gallery" class="gallery"> + <div id="gallery" class="gallery" role="carousel"> <script type="text/html" class="template"> - <div class="item" style="background-image:url({{image}})"></div> + <div role="link" class="item" aria-label="{{alt}}" style="background-image:url({{image}})"></div> </script> </div> - <div class="gallery-left"></div> - <div class="gallery-right"></div> + <div role="button" class="gallery-left" aria-label="Scroll gallery left"></div> + <div role="button" class="gallery-right" aria-label="Scroll gallery right"></div> <div class="content"> <div class="product-header"> - <span class="title"></span> + <span role="heading" class="title"></span> </div> <div class="type-price"> <span class="type"></span> @@ -327,11 +324,11 @@ <div class="style-share"> <span class="style"> <div class="size-color"> - <span class="size"></span> - <span class="color"></span> + <span role="button" class="size" aria-label="Tap to select size. Current size"></span> + <span role="button" class="color" aria-label="Tap to select color. Current color"></span> </div> </span> - <span class="share">SHARE +</span> + <span role="button" class="share">SHARE +</span> </div> <div class="fit">Fits Large</div> <div class='fitHeader'></div> @@ -347,14 +344,14 @@ </div> </div> - <div id="closed"> + <div id="closed" role="region" aria-label="The store is closed"> <div class="closed_store_msg"> <h3> LOADING THE STORE, PLEASE WAIT </h3> <h4> </h4> - <div class="website_link"> + <div role="link" class="website_link"> visit<br> <b>www.stoneisland.com</b> </div> @@ -364,33 +361,38 @@ <!-- ACCOUNT ================================================ --> - <div id="login"> + <div id="login" role="region" aria-label="Log In"> <div class="scroll"> - <h1>LOGIN</h1> + <h1 aria-label="Current section: Log In">LOGIN</h1> <div class="form"> <div class="container"> <div class="container-row"> - <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="1"> - <form><input type="password" name="Password" placeholder="PASSWORD" required tabindex="2"></form> + <label for="login_email_address">Email Address</label> + <input type="email" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1"> + <span class='err'></span> + + <label for="login_password">Password</label> + <form><input type="password" id="login_password" name="Password" aria-placeholder="PASSWORD" required tabindex="2"></form> + <span class='err'></span> </div> <div class="container-fill"> <div class="container-message premessage"> - <div class="newuser">New User?</div> - <div class="forgotpassword">Forgot Password?</div> + <div rel="link" class="newuser">New User?</div> + <div rel="link" class="forgotpassword">Forgot Password?</div> </div> <div class="container-message submessage"> <span class="msg"></span> </div> </div> </div> - <input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;"> + <input type="submit" aria-label="Submit form" style="position: absolute; left: -9999px; width: 1px; height: 1px;"> </div> </div> </div> - <div id="logout"> + <div id="logout" role="region" aria-label="You are now logged out"> <div class="scroll"> - <h1>LOGOUT</h1> + <h1 aria-label="Current section: You are now Logged Out">LOGOUT</h1> <div class="container"> <div class="container-fill"> <span class="container-message msg"> @@ -401,52 +403,71 @@ </div> </div> - <div id="signup"> + <div id="signup" role="region" aria-label="New User. Create an account"> <div class="scroll"> - <h1>NEW USER</h1> + <h1 aria-label="Current section: New User. Create an account">NEW USER</h1> <div class="form"> <div class="container"> <div class="container-row"> - <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1"> - <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2"> - <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3"> - <input type="email" name="ConfirmEmail" placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4"> + <label for="signup_name">First Name</label> + <input type="text" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> + <span class='err'></span> + + <label for="signup_surname">Last Name</label> + <input type="text" id="signup_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> + <span class='err'></span> + + <label for="signup_email">Email Address</label> + <input type="email" id="signup_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> + <span class='err'></span> + + <label for="signup_confirmemail">Confirm Email Address</label> + <input type="email" id="signup_confirmemail" name="ConfirmEmail" aria-placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4"> + <span class='err'></span> + + <label for="signup_birthday">Birthday (MM/DD/YYYY)</label> <div class="select-wrapper date-wrapper"> - <span>BIRTHDAY (MM/DD/YYYY)</span> - <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> + <span></span> + <input type="date" id="signup_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> </div> + <span class='err'></span> <h2>PASSWORD</h2> - <input type="password" name="Password" placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6"> - <input type="password" name="Password2" placeholder="CONFIRM PASSWORD" required tabindex="7"> + <label for="signup_password">Password (7 Characters or more)</label> + <input type="password" id="signup_password" name="Password" aria-placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6"> + <span class='err'></span> + + <label for="signup_confirm_password">Confirm Password</label> + <input type="password" id="signup_confirm_password" name="Password2" aria-placeholder="CONFIRM PASSWORD" required tabindex="7"> + <span class='err'></span> </div> <div class="container-row"> - <div class="checkbox-container "> + <div class="checkbox-container"> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-data-profiling" name="YooxLetter" value="true" required tabindex="8"> + <input type="checkbox" id="checkbox-data-profiling" aria-labelledby="checkbox-data-profiling-label" name="YooxLetter" value="true" required tabindex="8"> <label for="checkbox-data-profiling"></label> </div> - <label class="checkbox-caption" for="checkbox-data-profiling"> + <label class="checkbox-caption" for="checkbox-data-profiling" id="checkbox-data-profiling-label"> I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES. </label> </div> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-shopping-data-profiling" name="DataProfiling" value="true" required tabindex="9"> + <input type="checkbox" id="checkbox-shopping-data-profiling" aria-labelledby="checkbox-shopping-data-profiling-label" name="DataProfiling" value="true" required tabindex="9"> <label for="checkbox-shopping-data-profiling"></label> </div> - <label class="checkbox-caption" for="checkbox-shopping-data-profiling"> + <label class="checkbox-caption" for="checkbox-shopping-data-profiling" id="checkbox-shopping-data-profiling-label"> I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS. </label> </div> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-shopping-account-terms" name="GdprTerms" value="true" required tabindex="10"> + <input type="checkbox" id="checkbox-shopping-account-terms" aria-labelledby="checkbox-gdpr-terms-label" name="GdprTerms" value="true" required tabindex="10"> <label for="checkbox-shopping-data-profiling"></label> </div> - <label class="checkbox-caption" for="checkbox-shopping-account-terms"> + <label class="checkbox-caption" for="checkbox-shopping-account-terms" id="checkbox-gdpr-terms-label"> I ACCEPT MY ACCOUNT TERMS AND CONDITIONS OF USE * </label> </div> @@ -465,54 +486,71 @@ </div> </div> - <div id="profile"> + <div id="profile" role="region" aria-label="My Profile"> <div class="scroll"> - <h1>MY PROFILE</h1> + <h1 aria-label="Current section: My Profile">MY PROFILE</h1> <div class="form"> <div class="container"> <div class="container-row"> - <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1"> - <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2"> - <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3"> + <label for="profile_name">First Name</label> + <input type="text" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> + <span class='err'></span> + + <label for="profile_surname">Last Name</label> + <input type="text" id="profile_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> + <span class='err'></span> + + <label for="profile_email">Email Address</label> + <input type="email" id="profile_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> + <span class='err'></span> + + <label for="profile_birthday">Birthday (MM/DD/YYYY)</label> <div class="select-wrapper date-wrapper"> - <span>BIRTHDAY (MM/DD/YYYY)</span> - <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="4"> + <span></span> + <input type="date" id="profile_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> </div> + <span class='err'></span> <h2>CHANGE PASSWORD</h2> - <input type="password" name="CurrentPassword" placeholder="CURRENT PASSWORD" required> - <input type="password" name="NewPassword" placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="5"> - <div class="container-fill container-fill-condensed"> - <div class="container-message container-message-condensed"> - <span class="msg msg-condensed"> - </span> - </div> + <label for="profile_password">Current Password</label> + <input type="password" id="profile_password" name="CurrentPassword" aria-placeholder="CURRENT PASSWORD" required tabindex="6"> + <span class='err'></span> + + <label for="profile_confirm_password">New Password (7 characters or more)</label> + <input type="password" id="profile_confirm_password" name="NewPassword" aria-placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="7"> + <span class='err'></span> + </div> + + <div class="container-fill container-fill-condensed"> + <div class="container-message container-message-condensed"> + <span class="msg msg-condensed"> + </span> </div> - <div class="container-row"> - <div class="checkbox-container"> - <div class="checkbox-row"> - <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-data-profiling-profile" name="YooxLetter" value="true" required tabindex="7"> - <label for="checkbox-data-profiling-profile"></label> - </div> - <label class="checkbox-caption" for="checkbox-data-profiling-profile"> - I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES. - </label> - </div> - <div class="checkbox-row"> - <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-shopping-data-profiling-profile" name="DataProfiling" value="true" required tabindex="8"> - <label for="checkbox-shopping-data-profiling-profile"></label> - </div> - <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile"> - I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS. - </label> + </div> + <div class="container-row"> + <div class="checkbox-container"> + <div class="checkbox-row"> + <div class="checkbox-toggle"> + <input type="checkbox" id="checkbox-data-profiling-profile" aria-labelledby="yoox-letter-checkbox" name="YooxLetter" value="true" required tabindex="7"> + <label for="checkbox-data-profiling-profile"></label> </div> - <div class="privacy-msg"> - Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP. - <br> - Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information. + <label class="checkbox-caption" for="checkbox-data-profiling-profile" id="yoox-letter-checkbox"> + I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES. + </label> + </div> + <div class="checkbox-row"> + <div class="checkbox-toggle"> + <input type="checkbox" id="checkbox-shopping-data-profiling-profile" aria-labelledby="yoox-data-profiling-checkbox" name="DataProfiling" value="true" required tabindex="8"> + <label for="checkbox-shopping-data-profiling-profile"></label> </div> + <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile" id="yoox-data-profiling-checkbox"> + I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS. + </label> + </div> + <div class="privacy-msg"> + Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP. + <br> + Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information. </div> </div> </div> @@ -520,11 +558,10 @@ </div> </div> </div> - - <div id="shipping"> + <div id="shipping" role="region" aria-label="Address Book"> <div class="scroll"> - <h1>ADDRESS BOOK</h1> + <h1 aria-label="Current section: Your address book">ADDRESS BOOK</h1> <div class="form"> <div class="container"> <div class="container-row"> @@ -537,7 +574,7 @@ information will always remain private </span> </div> - <div class="privacy-msg"> + <div rel="link" class="privacy-msg"> Consult our <u>PRIVACY POLICY</u> for further information. </div> </div> @@ -546,9 +583,9 @@ </div> </div> - <div id="payment"> + <div id="payment" role="region" aria-label="My Card"> <div class="scroll"> - <h1>MY CARD</h1> + <h1 aria-label="Current section: My Card">MY CARD</h1> <div class="form"> <div class="container"> <div class="container-row"> @@ -562,7 +599,7 @@ information will always remain private </span> </div> - <div class="privacy-msg"> + <div rel="link" class="privacy-msg"> Consult our <u>PRIVACY POLICY</u> for further information. </div> </div> @@ -571,9 +608,9 @@ </div> </div> - <div id="settings"> + <div id="settings" role="region" aria-label="Notifications"> <div class="scroll"> - <h1>NOTIFICATIONS</h1> + <h1 aria-label="Current section: Notifications">NOTIFICATIONS</h1> <div class="form"> <div class="toggle-container"> <div class="toggle-row"> @@ -582,7 +619,7 @@ Receive notifications for Store </div> <div class="toggle"> - <input type="checkbox" id="store-notifications" name="store" class="switch"> + <input type="checkbox" aria-label="Receive notifications for Store" id="store-notifications" name="store" class="switch"> <label for="store-notifications"></label> </div> </div> @@ -592,7 +629,7 @@ Receive notifications for Hub </div> <div class="toggle"> - <input type="checkbox" id="hub-notifications" name="hub" class="switch"> + <input type="checkbox" aria-label="Receive notifications for Hub" id="hub-notifications" name="hub" class="switch"> <label for="hub-notifications"></label> </div> </div> @@ -601,9 +638,9 @@ </div> </div> - <div id="orders"> + <div id="orders" role="region" aria-label="My Orders"> <div class="scroll"> - <h1>MY ORDERS</h1> + <h1 aria-label="Current section: My orders">MY ORDERS</h1> <div id="order_list"> <div class="list"></div> <div class="empty">You have no orders.</div> @@ -681,12 +718,12 @@ <!-- CART ================================================ --> - <div id="cart"> - <h1> - <span class="full_msg"> + <div id="cart" role="region" aria-label="Your Cart"> + <h1 role="presentation"> + <span class="full_msg" role="heading" aria-label="Current section: Your cart"> YOUR CART / <span class="itemcount"></span> </span> - <span class="empty_msg"> + <span class="empty_msg" role="heading" aria-label="Current section: Your cart is empty"> YOUR CART IS EMPTY </span> </h1> @@ -694,10 +731,10 @@ <div class="steps"> <span class="summary_step">SUMMARY</span> <span class="shipping_step">SHIPPING</span> - <span class="payment_step">BILLING</span> + <span class="payment_step">PAYMENT</span> </div> - <div id="cart_summary"> + <div id="cart_summary" role="region" aria-label="Cart Summary"> <div class="scroll"> <div class="summary-container container"> <div class="container-row"> @@ -705,20 +742,20 @@ <div class="rows"> <script type="text/html" class="template"> <div class="cart_item_image"> - <img src="{{image}}"> + <a href="#/store/{{code8}}" aria-label="{{cleantitle}}"><img src="{{image}}"></a> </div> <div class="cart_item_info"> - <span class="sku">{{sku}}</span> - <span class="title">{{title}}</span> - <span class="type">{{type}}</span> + <span class="sku" aria-label="SKU">{{sku}}</span> + <span class="title" aria-label="Product name: {{cleantitle}}">{{title}}</span> + <span class="type" aria-label="Product type">{{type}}</span> <div class="meta"> - <div class="meta-size"><b>SIZE:</b> {{size}}</div> - <div class="meta-color"><b>COLOR:</b> {{color}}</div> - <div class="meta-quantity"><b>QUANTITY:</b> {{quantity}}</div> + <div class="meta-size" aria-label="Size"><b>SIZE:</b> {{size}}</div> + <div class="meta-color" aria-label="Color"><b>COLOR:</b> {{color}}</div> + <div class="meta-quantity" aria-label="Quantity"><b>QUANTITY:</b> {{quantity}}</div> </div> </div> <div class="cart_item_price"> - <span class="remove"></span> + <span class="remove" aria-label="Remove item from your cart. Item to be removed: {{cleantitle}}"></span> <span class="price">{{price}}</span> </div> </script> @@ -752,7 +789,7 @@ </div> </div> - <div id="cart_shipping"> + <div id="cart_shipping" role="region" aria-label="Cart Shipping"> <div class="scroll"> <div class="form"> <div class="dropdown-wrapper"> @@ -810,9 +847,11 @@ information will always remain private </span> </div> - <div class="privacy-msg"> - Consult our <u>PRIVACY POLICY</u> for further information. - </div> + <a href="#/page/privacy"> + <div class="privacy-msg"> + Consult our <u>PRIVACY POLICY</u> for further information. + </div> + </a> </div> </div> @@ -820,7 +859,7 @@ </div> </div> - <div id="cart_payment"> + <div id="cart_payment" role="region" aria-label="Cart Payment"> <div class="scroll"> <div class="form"> @@ -877,7 +916,7 @@ <script type="text/html" class="cc_template"> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input id="cc-checkbox-{{id}}" type="radio" name="CCId" value="{{id}}" {{checked}}> + <input id="cc-checkbox-{{id}}" aria-label="Select this credit card" type="radio" name="CCId" value="{{id}}" {{checked}}> <label for="cc-checkbox-{{id}}"></label> </div> <label class="checkbox-caption" for="cc-checkbox-{{id}}"> @@ -903,20 +942,20 @@ information will always remain private </span> </div> - <div class="privacy-msg"> - Consult our <u>PRIVACY POLICY</u> for further information. - </div> + <a class='privacy-link'> href="#/page/privacy"> + <div class="privacy-msg"> + Consult our <u>PRIVACY POLICY</u> for further information. + </div> + </a> </div> </div> - <br><br><br><br> - </div> </div> </div> - <div id="cart_confirm"> + <div id="cart_confirm" role="region" aria-label="Confirm your order"> <div class="scroll"> - <h1>CONFIRM</h1> + <h1 aria-label="Current section: Confirm your cart">CONFIRM</h1> <div class="order_section"> <h2>ORDER SUMMARY</h2> @@ -997,11 +1036,17 @@ </div> + <div id="footer" role="menubar" aria-label="Footer"> + <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen --> + <div role="button" class="cancel">CANCEL</div> + <div role="button" class="ok">OK</div> + </div> + <div id="curtain"> <div class="loader"></div> </div> - <div class="modal" id="consent_modal"> + <div class="modal" id="consent_modal" role="modal" aria-label="Please accept the new terms"> YOUR MY ACCOUNT <br><br> We have improved the My Account Terms and Conditions of Use. @@ -1017,6 +1062,7 @@ </label> </div> </div> + <br><br> For more information, please consult our <a href="#/page/privacy">Privacy Policy</a> or visit <a href="#" id="care-link">Customer Care</a>. @@ -1030,22 +1076,31 @@ </div> <div id="selector"> - <div class="options"> + <div class="options" role="select"> <script type="text/html" class="template"> - <div data-id="{{id}}">{{label}}</div> + <div aria-label="Pick {{label}}" data-id="{{id}}">{{label}}</div> </script> </div> </div> </div> +<!-- Forms --> + <script type="text/html" id="creditcard_template"> - <input type="number" name="Number" placeholder="CREDIT CARD NUMBER" required> + <label for="creditcard_id_{{_id}}">Credit Card Number</label> + <input type="number" id="creditcard_id_{{_id}}" name="Number" aria-placeholder="CREDIT CARD NUMBER" required> + <span class='err'></span> + <div class="half-input"> + <label for="cc_expiration_month_{{_id}}">EXPIRATION MONTH</label> + <label for="cc_expiration_year_{{_id}}">EXPIRATION YEAR</label> + </div> + <div class="half-input"> <div class="select-wrapper"> - <span>EXPIRATION MONTH</span> - <select name="ExpirationMonth"> + <span></span> + <select name="ExpirationMonth" id="cc_expiration_month_{{_id}}"> <option value="NONE">EXPIRATION MONTH</option> <option value="01">01</option> <option value="02">02</option> @@ -1062,10 +1117,9 @@ </select> </div> <div class="select-wrapper"> - <span>EXPIRATION YEAR</span> - <select name="ExpirationYear"> + <span></span> + <select name="ExpirationYear" id="cc_expiration_year_{{_id}}"> <option value="NONE">EXPIRATION YEAR</option> - <option value="2018">2018</option> <option value="2019">2019</option> <option value="2020">2020</option> <option value="2021">2021</option> @@ -1081,25 +1135,50 @@ </select> </div> </div> - <input type="number" name="Cvv" placeholder="SECURITY CODE" required> + <label for="cc_cvv_{{_id}}">Security Code</label> + <input type="number" id="cc_cvv_{{_id}}" name="Cvv" aria-placeholder="SECURITY CODE" required> + <span class='err'></span> </script> <script type="text/html" id="address_template"> - <input type="text" name="Name" placeholder="First Name"> - <input type="text" name="Surname" placeholder="Last Name"> - <input type="text" name="Address1" placeholder="Address Line 1"> - <input type="text" name="Address2" placeholder="Address Line 2"> + <label for="address_name_{{_id}}">First Name</label> + <input type="text" id="address_name_{{_id}}" name="Name" aria-placeholder="First Name"> + <span class="err"></span> + + <label for="address_surname_{{_id}}">Last Name</label> + <input type="text" id="address_surname_{{_id}}" name="Surname" aria-placeholder="Last Name"> + <span class="err"></span> + + <label for="address_address1_{{_id}}">Address line 1</label> + <input type="text" id="address_address1_{{_id}}" name="Address1" aria-placeholder="Address Line 1"> + <span class="err"></span> + + <label for="address_address2_{{_id}}">Address line 2</label> + <input type="text" id="address_address2_{{_id}}" name="Address2" aria-placeholder="Address Line 2"> + <span class="err"></span> + + <div class="half-input"> + <label for="address_city_{{_id}}">City</label> + <label for="address_state_{{_id}}">State</label> + </div> + <div class="half-input"> - <input type="text" name="City" placeholder="City"> + <input type="text" id="address_city_{{_id}}" name="City" aria-placeholder="City"> <div class="select-wrapper"> - <span>STATE</span> - <select name="Province"> + <span></span> + <select id="address_state_{{_id}}" name="Province"> {{PROVINCES}} </select> </div> </div> + <div class="half-input"> - <input type="text" name="ZipCode" placeholder="ZIP" required> + <label for="address_zip_{{_id}}">Zip</label> + <label>Country</label> + </div> + + <div class="half-input"> + <input type="text" id="address_zip_{{_id}}" name="ZipCode" aria-placeholder="ZIP" required> <div class="country-wrapper-static"> <span class="country-label">UNITED STATES</span> <!-- @@ -1109,7 +1188,10 @@ --> </div> </div> - <input type="number" name="Phone" placeholder="PHONE NUMBER"> + + <label for="address_phone_{{_id}}">Phone Number</label> + <input type="number" id="address_phone_{{_id}}" name="Phone" aria-placeholder="PHONE NUMBER"> + <span class="err"></span> <!-- <div class="checkbox-container save_as_default"> <div class="checkbox-row"> @@ -1227,6 +1309,7 @@ <script src="js/lib/etc/geo.js"></script> <script src="js/lib/etc/sim.js"></script> <script src="js/lib/etc/backup_db.js"></script> +<script src="js/lib/etc/accessibility.js"></script> <script src="js/lib/view/View.js"></script> <script src="js/lib/view/Router.js"></script> diff --git a/StoneIsland/platforms/android/assets/www/js/index.js b/StoneIsland/platforms/android/assets/www/js/index.js index a8caa2e5..ed82a820 100755 --- a/StoneIsland/platforms/android/assets/www/js/index.js +++ b/StoneIsland/platforms/android/assets/www/js/index.js @@ -18,6 +18,9 @@ var app = (function(){ app.iscroll_options = { mouseWheel: true, scrollbars: true, + disablePointer: is_android ? true : false, // important to disable the pointer events that causes the issues + disableTouch: false, // false if you want the slider to be usable with touch devices + disableMouse: false // false if you want the slider to be usable with a mouse (desktop) } if (window.cordova) { @@ -90,8 +93,8 @@ var app = (function(){ } app.api_ready = function(){ - if (is_iphone_x) { - StatusBar.hide() + if (is_iphone_x && 'StatusBar' in window) { + window.StatusBar.hide() } app.view = null diff --git a/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js b/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js index 8ac7c193..af035f6a 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js @@ -74,7 +74,7 @@ var AccountView = View.extend({ }, populateCreditCards: function(data, cb){ - console.log("populate ccs:", data.CreditCards) + // console.log("populate ccs:", data.CreditCards) this.ccs = data.CreditCards this.ccLookup = {} if (! data.CreditCards || ! data.CreditCards.length) { diff --git a/StoneIsland/platforms/android/assets/www/js/lib/blogs/ArchiveView.js b/StoneIsland/platforms/android/assets/www/js/lib/blogs/ArchiveView.js index 12aaf7de..0d769e95 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/blogs/ArchiveView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/blogs/ArchiveView.js @@ -21,7 +21,6 @@ var ArchiveView = ScrollableView.extend({ this.scroller = new IScroll('#archive .scroll', app.iscroll_options) this.$subtitle = this.$('.subtitle') this.subtitle_html = this.$subtitle.html() - }, back: function(){ diff --git a/StoneIsland/platforms/android/assets/www/js/lib/blogs/HubView.js b/StoneIsland/platforms/android/assets/www/js/lib/blogs/HubView.js index b072a887..c4ebd716 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/blogs/HubView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/blogs/HubView.js @@ -57,6 +57,8 @@ var HubView = ScrollableView.extend({ .replace(/{{date}}/, moment(row.date).format("MM.DD.YYYY")) .replace(/{{title}}/, row.title) .replace(/{{subtitle}}/, row.subtitle) + .replace(/{{cleantitle}}/, stonewash(row.title)) + .replace(/{{cleansubtitle}}/, stonewash(row.subtitle)) .replace(/{{link}}/, row.link) .replace(/{{body}}/, row.body.replace(/\n/g, "<br>")) var $t = $(t) @@ -71,6 +73,7 @@ var HubView = ScrollableView.extend({ row.image.forEach(function(img){ var el = document.createElement("div") el.style.backgroundImage = "url(" + img.uri + ")" + el.setAttribute('aria-label', img.caption) el.className = "item" $gallery.append(el) }) @@ -107,6 +110,8 @@ var HubView = ScrollableView.extend({ play.className = "play" $(".gallery-" + row.id).append(play) $(".gallery-" + row.id).addClass("gallery-video-post") + $(".gallery-" + row.id).attr('role', 'link') + $(".gallery-" + row.id).attr('aria-label', stonewash(row.title) + ". Watch the video on Youtube") if (! row.image) { var url = row.link var ytid = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0]; @@ -125,6 +130,7 @@ var HubView = ScrollableView.extend({ store_link: function(){ app.router.go("store") }, + play_video: function(e){ var row = $(e.currentTarget).closest('.gallery-video-post').data("row") window.open(row.link, '_system') @@ -142,7 +148,9 @@ var HubView = ScrollableView.extend({ share: function(e){ var title = $(e.currentTarget).parent().find(".title").text() console.log("share", title) - window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" ) + if (window.plugins && window.plugins.socialsharing) { + window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" ) + } }, }) @@ -169,7 +177,7 @@ var HubLoader = (function(){ if (item.image && item.image.length) { loader = new Loader (HubLoader.build) images = item.image.map(function(img){ - return img.uri.replace("http:","https:") + return img.uri.replace("http:", "https:") }).filter(function(img){ return img.uri }) diff --git a/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js b/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js index 5a7a56d1..9ba17343 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/blogs/StoryView.js @@ -67,6 +67,7 @@ var StoryView = ScrollableView.extend({ this.$img.stop().fadeTo(110,0.65, function() { $replace.attr("src", section.image.uri) + $replace.attr("alt", section.image.caption) }).fadeTo(130,1) } diff --git a/StoneIsland/platforms/android/assets/www/js/lib/cart/CartSummary.js b/StoneIsland/platforms/android/assets/www/js/lib/cart/CartSummary.js index 9b5da7b7..bf150791 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/cart/CartSummary.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/cart/CartSummary.js @@ -75,7 +75,6 @@ var CartSummary = ScrollableView.extend({ this.$rows.append($el) app.product.find(code, function(data, details){ // console.log(data, details) - var descriptions = app.product.get_descriptions( details ) // console.log(descriptions) @@ -110,8 +109,10 @@ var CartSummary = ScrollableView.extend({ var t = this.template .replace(/{{image}}/, sdk.image(item['Code10'], '11_f')) - .replace(/{{sku}}/, num) - .replace(/{{title}}/, title) + .replace(/{{sku}}/g, num) + .replace(/{{code8}}/g, data['Code8']) + .replace(/{{title}}/g, title) + .replace(/{{cleantitle}}/g, stonewash(title)) .replace(/{{type}}/, type) .replace(/{{size}}/, size_name) .replace(/{{color}}/, color_name) diff --git a/StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js b/StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js new file mode 100644 index 00000000..614c3796 --- /dev/null +++ b/StoneIsland/platforms/android/assets/www/js/lib/etc/accessibility.js @@ -0,0 +1,9 @@ +$(function(){ + $("h1").each(function(){ + this['aria-label'] = 'Section title is ' + this.innerText + }) +}) + +function stonewash (s) { + return s.replace(/'0/g, '20').replace(/_/g, ' ') +}
\ No newline at end of file diff --git a/StoneIsland/platforms/android/assets/www/js/lib/nav/AddressView.js b/StoneIsland/platforms/android/assets/www/js/lib/nav/AddressView.js index 9e0c49b6..fd0fa59d 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/nav/AddressView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/nav/AddressView.js @@ -1,4 +1,6 @@ +var AddressViewID = Math.round(Date.now() % 1000) + var AddressView = SerializableView.extend({ template: $("#address_template").html(), @@ -14,7 +16,7 @@ var AddressView = SerializableView.extend({ this.parent = opt.parent this.checkPhone = 'checkPhone' in opt ? opt.checkPhone : true this.setElement( this.parent.$(".address") ) - this.$el.html(this.template) + this.$el.html(this.template.replace(/{{_id}}/g, AddressViewID++)) }, populate: function(data){ @@ -34,12 +36,15 @@ var AddressView = SerializableView.extend({ "Address1": "Please enter your street address.", "City": "Please enter your city.", "ZipCode": "Please enter your zip code.", + "Phone": "Please enter your phone number.", }, validate_fields: function(data, errors){ if (this.disabled) { return } if (this.checkPhone) { - var phone_number = data.Phone ? data.Phone.replace(/[^0-9]/g, "") : "" + var phone_number = data.Phone ? String(data.Phone).replace(/[^0-9]/g, "").replace(/^[01]+/, '') : "" + data.Phone = phone_number + this.$('[name=Phone]').val(phone_number) var phone_length = phone_number.length if (phone_length === 0 || ! data.Phone) { errors.push([ "Phone", "Please enter your phone number." ]) @@ -50,10 +55,10 @@ var AddressView = SerializableView.extend({ else if (phone_length > 10) { errors.push([ "Phone", "International phone numbers are not accepted." ]) } - else if (data.Phone[0] === '+') { + else if (phone_number.charAt(0) === '+') { errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ]) } - else if (phone_number[0] === '1') { + else if (phone_number.charAt(0) === '1') { errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ]) } } @@ -81,7 +86,10 @@ var AddressView = SerializableView.extend({ }, scroll_up_to_phone: function(e){ - app.view.scroller && app.view.scroller.scrollTo(0, -$(e.currentTarget).position().top) + var position = $(e.currentTarget).prev('label').position() + if (app.view.scroller && position) { + app.view.scroller.scrollTo(0, -position.top) + } }, }) diff --git a/StoneIsland/platforms/android/assets/www/js/lib/nav/CreditCardView.js b/StoneIsland/platforms/android/assets/www/js/lib/nav/CreditCardView.js index 63784618..af53d964 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/nav/CreditCardView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/nav/CreditCardView.js @@ -1,4 +1,6 @@ +var CreditCardViewID = Math.round(Date.now() % 1000) + var CreditCardView = SerializableView.extend({ template: $("#creditcard_template").html(), @@ -13,7 +15,7 @@ var CreditCardView = SerializableView.extend({ initialize: function(opt){ this.parent = opt.parent this.setElement( this.parent.$(".cc") ) - this.$el.html(this.template) + this.$el.html(this.template.replace(/{{_id}}/g, CreditCardViewID++)) this.$number = this.$("[name=Number]") this.$number.validateCreditCard(this.updateCard.bind(this), this.cardOptions) diff --git a/StoneIsland/platforms/android/assets/www/js/lib/products/CollectionView.js b/StoneIsland/platforms/android/assets/www/js/lib/products/CollectionView.js index 4674fc18..b7af235a 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/products/CollectionView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/products/CollectionView.js @@ -196,6 +196,7 @@ var CollectionView = ScrollableView.extend({ this.items[ item['Code8'] ] = item var t = this.template.replace(/{{image}}/, sdk.image(item['DefaultCode10'], is_single_product ? '13_f' : '11_f')) .replace(/{{code8}}/, item['Code8']) + .replace(/{{title}}/, stonewash(item['ModelNames'])) var $t = $(t) if (app.store.ShowProductNameOnCollectionPage) { var $title = $("<span>") @@ -217,6 +218,7 @@ var CollectionView = ScrollableView.extend({ setCollectionName: function(name){ this.collectionName = name this.$title.html(this.collectionName) + this.$title.attr('aria-label', stonewash(this.collectionName)) }, // filter by department diff --git a/StoneIsland/platforms/android/assets/www/js/lib/products/GalleryView.js b/StoneIsland/platforms/android/assets/www/js/lib/products/GalleryView.js index 0acd48c5..d6f5723c 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/products/GalleryView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/products/GalleryView.js @@ -39,7 +39,9 @@ var GalleryView = View.extend({ Object.keys(valid_styles).sort(sort_image_styles).forEach(function(style){ var id = valid_styles[style] + "_" + style - var t = this.template.replace(/{{image}}/, sdk.image(code, id)) + var t = this.template + .replace(/{{image}}/, sdk.image(code, id)) + .replace(/{{alt}}/, YOOX_IMAGE_STYLE_LABELS[style] || "Alternate view") this.$el.append(t) }.bind(this)) @@ -79,5 +81,8 @@ var GalleryView = View.extend({ }) var YOOX_IMAGE_STYLE_ORDER = "ZZZ f r d e a b c g l".split(" ") - +var YOOX_IMAGE_STYLE_LABELS = { + f: 'Front view', + r: 'Rear view', +} function sort_image_styles (b,a){ return (YOOX_IMAGE_STYLE_ORDER.indexOf(b)) - (YOOX_IMAGE_STYLE_ORDER.indexOf(a)) }
\ No newline at end of file diff --git a/StoneIsland/platforms/android/assets/www/js/lib/products/ProductView.js b/StoneIsland/platforms/android/assets/www/js/lib/products/ProductView.js index 3bcf5ee4..c47dfddd 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/products/ProductView.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/products/ProductView.js @@ -434,7 +434,9 @@ var ProductView = ScrollableView.extend({ }, share: function(){ - window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code) + if (window.plugins && 'socialsharing' in window.plugins) { + window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code) + } }, }) diff --git a/StoneIsland/platforms/android/assets/www/js/lib/products/Selector.js b/StoneIsland/platforms/android/assets/www/js/lib/products/Selector.js index 9c1109f6..e3376a4d 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/products/Selector.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/products/Selector.js @@ -21,7 +21,7 @@ var Selector = View.extend({ options.forEach(function(opt){ this.lookup[String(opt.id)] = opt var t = this.template.replace(/{{id}}/, opt.id) - .replace(/{{label}}/, opt.label) + .replace(/{{label}}/g, opt.label) this.$options.append(t) }.bind(this)) this.$el.show() diff --git a/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js b/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js index 4155f102..3181fddd 100755 --- a/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js +++ b/StoneIsland/platforms/android/assets/www/js/lib/view/Serializable.js @@ -105,6 +105,7 @@ var SerializableView = View.extend({ console.log(errors) var msgs = [] this.$('.error_hilite').removeClass('error_hilite') + this.$('.err').html('') errors.forEach(function(e, i){ // if (i > 0) { return } if (e[0]) { @@ -112,13 +113,15 @@ var SerializableView = View.extend({ var el = $el[0] if (el && el.nodeName === 'SELECT') { $el.parent().addClass('error_hilite') + $el.parent().next('.err').html(e[1]) } else { $el.addClass('error_hilite') + $el.next('.err').html(e[1]) } } - msgs.push(e[1]) + // msgs.push(e[1]) }.bind(this)) - this.$msg.html(msgs.join("<br>")) + // this.$msg.html(msgs.join("<br>")) this.$msg.addClass('alert-notice') }, diff --git a/StoneIsland/platforms/android/assets/www/js/vendor/iscroll-5.1.3.js b/StoneIsland/platforms/android/assets/www/js/vendor/iscroll-5.1.3.js new file mode 100755 index 00000000..be5e46e8 --- /dev/null +++ b/StoneIsland/platforms/android/assets/www/js/vendor/iscroll-5.1.3.js @@ -0,0 +1,2011 @@ +/*! iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */ +(function (window, document, Math) { +var rAF = window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function (callback) { window.setTimeout(callback, 1000 / 60); }; + +var utils = (function () { + var me = {}; + + var _elementStyle = document.createElement('div').style; + var _vendor = (function () { + var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'], + transform, + i = 0, + l = vendors.length; + + for ( ; i < l; i++ ) { + transform = vendors[i] + 'ransform'; + if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1); + } + + return false; + })(); + + function _prefixStyle (style) { + if ( _vendor === false ) return false; + if ( _vendor === '' ) return style; + return _vendor + style.charAt(0).toUpperCase() + style.substr(1); + } + + me.getTime = Date.now || function getTime () { return new Date().getTime(); }; + + me.extend = function (target, obj) { + for ( var i in obj ) { + target[i] = obj[i]; + } + }; + + me.addEvent = function (el, type, fn, capture) { + el.addEventListener(type, fn, !!capture); + }; + + me.removeEvent = function (el, type, fn, capture) { + el.removeEventListener(type, fn, !!capture); + }; + + me.prefixPointerEvent = function (pointerEvent) { + return window.MSPointerEvent ? + 'MSPointer' + pointerEvent.charAt(9).toUpperCase() + pointerEvent.substr(10): + pointerEvent; + }; + + me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) { + var distance = current - start, + speed = Math.abs(distance) / time, + destination, + duration; + + deceleration = deceleration === undefined ? 0.0006 : deceleration; + + destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 ); + duration = speed / deceleration; + + if ( destination < lowerMargin ) { + destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin; + distance = Math.abs(destination - current); + duration = distance / speed; + } else if ( destination > 0 ) { + destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0; + distance = Math.abs(current) + destination; + duration = distance / speed; + } + + return { + destination: Math.round(destination), + duration: duration + }; + }; + + var _transform = _prefixStyle('transform'); + + me.extend(me, { + hasTransform: _transform !== false, + hasPerspective: _prefixStyle('perspective') in _elementStyle, + hasTouch: 'ontouchstart' in window, + hasPointer: window.PointerEvent || window.MSPointerEvent, // IE10 is prefixed + hasTransition: _prefixStyle('transition') in _elementStyle + }); + + // This should find all Android browsers lower than build 535.19 (both stock browser and webview) + me.isBadAndroid = /Android /.test(window.navigator.appVersion) && !(/Chrome\/\d/.test(window.navigator.appVersion)); + + me.extend(me.style = {}, { + transform: _transform, + transitionTimingFunction: _prefixStyle('transitionTimingFunction'), + transitionDuration: _prefixStyle('transitionDuration'), + transitionDelay: _prefixStyle('transitionDelay'), + transformOrigin: _prefixStyle('transformOrigin') + }); + + me.hasClass = function (e, c) { + var re = new RegExp("(^|\\s)" + c + "(\\s|$)"); + return re.test(e.className); + }; + + me.addClass = function (e, c) { + if ( me.hasClass(e, c) ) { + return; + } + + var newclass = e.className.split(' '); + newclass.push(c); + e.className = newclass.join(' '); + }; + + me.removeClass = function (e, c) { + if ( !me.hasClass(e, c) ) { + return; + } + + var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g'); + e.className = e.className.replace(re, ' '); + }; + + me.offset = function (el) { + var left = -el.offsetLeft, + top = -el.offsetTop; + + // jshint -W084 + while (el = el.offsetParent) { + left -= el.offsetLeft; + top -= el.offsetTop; + } + // jshint +W084 + + return { + left: left, + top: top + }; + }; + + me.preventDefaultException = function (el, exceptions) { + for ( var i in exceptions ) { + if ( exceptions[i].test(el[i]) ) { + return true; + } + } + + return false; + }; + + me.extend(me.eventType = {}, { + touchstart: 1, + touchmove: 1, + touchend: 1, + + mousedown: 2, + mousemove: 2, + mouseup: 2, + + pointerdown: 3, + pointermove: 3, + pointerup: 3, + + MSPointerDown: 3, + MSPointerMove: 3, + MSPointerUp: 3 + }); + + me.extend(me.ease = {}, { + quadratic: { + style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + fn: function (k) { + return k * ( 2 - k ); + } + }, + circular: { + style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1) + fn: function (k) { + return Math.sqrt( 1 - ( --k * k ) ); + } + }, + back: { + style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', + fn: function (k) { + var b = 4; + return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1; + } + }, + bounce: { + style: '', + fn: function (k) { + if ( ( k /= 1 ) < ( 1 / 2.75 ) ) { + return 7.5625 * k * k; + } else if ( k < ( 2 / 2.75 ) ) { + return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75; + } else if ( k < ( 2.5 / 2.75 ) ) { + return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375; + } else { + return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375; + } + } + }, + elastic: { + style: '', + fn: function (k) { + var f = 0.22, + e = 0.4; + + if ( k === 0 ) { return 0; } + if ( k == 1 ) { return 1; } + + return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 ); + } + } + }); + + me.tap = function (e, eventName) { + var ev = document.createEvent('Event'); + ev.initEvent(eventName, true, true); + ev.pageX = e.pageX; + ev.pageY = e.pageY; + e.target.dispatchEvent(ev); + }; + + me.click = function (e) { + var target = e.target, + ev; + + if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) { + ev = document.createEvent('MouseEvents'); + ev.initMouseEvent('click', true, true, e.view, 1, + target.screenX, target.screenY, target.clientX, target.clientY, + e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, + 0, null); + + ev._constructed = true; + target.dispatchEvent(ev); + } + }; + + return me; +})(); + +function IScroll (el, options) { + this.wrapper = typeof el == 'string' ? document.querySelector(el) : el; + this.scroller = this.wrapper.children[0]; + this.scrollerStyle = this.scroller.style; // cache style for better performance + + this.options = { + + resizeScrollbars: true, + + mouseWheelSpeed: 20, + + snapThreshold: 0.334, + +// INSERT POINT: OPTIONS + + startX: 0, + startY: 0, + scrollY: true, + directionLockThreshold: 5, + momentum: true, + + bounce: true, + bounceTime: 600, + bounceEasing: '', + + preventDefault: true, + preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ }, + + HWCompositing: true, + useTransition: true, + useTransform: true + }; + + for ( var i in options ) { + this.options[i] = options[i]; + } + + // Normalize options + this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : ''; + + this.options.useTransition = utils.hasTransition && this.options.useTransition; + this.options.useTransform = utils.hasTransform && this.options.useTransform; + + this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough; + this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault; + + // If you want eventPassthrough I have to lock one of the axes + this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY; + this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX; + + // With eventPassthrough we also need lockDirection mechanism + this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough; + this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold; + + this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing; + + this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling; + + if ( this.options.tap === true ) { + this.options.tap = 'tap'; + } + + if ( this.options.shrinkScrollbars == 'scale' ) { + this.options.useTransition = false; + } + + this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1; + +// INSERT POINT: NORMALIZATION + + // Some defaults + this.x = 0; + this.y = 0; + this.directionX = 0; + this.directionY = 0; + this._events = {}; + +// INSERT POINT: DEFAULTS + + this._init(); + this.refresh(); + + this.scrollTo(this.options.startX, this.options.startY); + this.enable(); +} + +IScroll.prototype = { + version: '5.1.3', + + _init: function () { + this._initEvents(); + + if ( this.options.scrollbars || this.options.indicators ) { + this._initIndicators(); + } + + if ( this.options.mouseWheel ) { + this._initWheel(); + } + + if ( this.options.snap ) { + this._initSnap(); + } + + if ( this.options.keyBindings ) { + this._initKeys(); + } + +// INSERT POINT: _init + + }, + + destroy: function () { + this._initEvents(true); + + this._execEvent('destroy'); + }, + + _transitionEnd: function (e) { + if ( e.target != this.scroller || !this.isInTransition ) { + return; + } + + this._transitionTime(); + if ( !this.resetPosition(this.options.bounceTime) ) { + this.isInTransition = false; + this._execEvent('scrollEnd'); + } + }, + + _start: function (e) { + // React to left mouse button only + if ( utils.eventType[e.type] != 1 ) { + if ( e.button !== 0 ) { + return; + } + } + + if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) { + return; + } + + if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } + + var point = e.touches ? e.touches[0] : e, + pos; + + this.initiated = utils.eventType[e.type]; + this.moved = false; + this.distX = 0; + this.distY = 0; + this.directionX = 0; + this.directionY = 0; + this.directionLocked = 0; + + this._transitionTime(); + + this.startTime = utils.getTime(); + + if ( this.options.useTransition && this.isInTransition ) { + this.isInTransition = false; + pos = this.getComputedPosition(); + this._translate(Math.round(pos.x), Math.round(pos.y)); + this._execEvent('scrollEnd'); + } else if ( !this.options.useTransition && this.isAnimating ) { + this.isAnimating = false; + this._execEvent('scrollEnd'); + } + + this.startX = this.x; + this.startY = this.y; + this.absStartX = this.x; + this.absStartY = this.y; + this.pointX = point.pageX; + this.pointY = point.pageY; + + this._execEvent('beforeScrollStart'); + }, + + _move: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } + + if ( this.options.preventDefault ) { // increases performance on Android? TODO: check! + e.preventDefault(); + } + + var point = e.touches ? e.touches[0] : e, + deltaX = point.pageX - this.pointX, + deltaY = point.pageY - this.pointY, + timestamp = utils.getTime(), + newX, newY, + absDistX, absDistY; + + this.pointX = point.pageX; + this.pointY = point.pageY; + + this.distX += deltaX; + this.distY += deltaY; + absDistX = Math.abs(this.distX); + absDistY = Math.abs(this.distY); + + // We need to move at least 10 pixels for the scrolling to initiate + if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) { + return; + } + + // If you are scrolling in one direction lock the other + if ( !this.directionLocked && !this.options.freeScroll ) { + if ( absDistX > absDistY + this.options.directionLockThreshold ) { + this.directionLocked = 'h'; // lock horizontally + } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) { + this.directionLocked = 'v'; // lock vertically + } else { + this.directionLocked = 'n'; // no lock + } + } + + if ( this.directionLocked == 'h' ) { + if ( this.options.eventPassthrough == 'vertical' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'horizontal' ) { + this.initiated = false; + return; + } + + deltaY = 0; + } else if ( this.directionLocked == 'v' ) { + if ( this.options.eventPassthrough == 'horizontal' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'vertical' ) { + this.initiated = false; + return; + } + + deltaX = 0; + } + + deltaX = this.hasHorizontalScroll ? deltaX : 0; + deltaY = this.hasVerticalScroll ? deltaY : 0; + + newX = this.x + deltaX; + newY = this.y + deltaY; + + // Slow down if outside of the boundaries + if ( newX > 0 || newX < this.maxScrollX ) { + newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; + } + if ( newY > 0 || newY < this.maxScrollY ) { + newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; + } + + this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0; + this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0; + + if ( !this.moved ) { + this._execEvent('scrollStart'); + } + + this.moved = true; + + this._translate(newX, newY); + +/* REPLACE START: _move */ + + if ( timestamp - this.startTime > 300 ) { + this.startTime = timestamp; + this.startX = this.x; + this.startY = this.y; + } + +/* REPLACE END: _move */ + + }, + + _end: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } + + if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } + + var point = e.changedTouches ? e.changedTouches[0] : e, + momentumX, + momentumY, + duration = utils.getTime() - this.startTime, + newX = Math.round(this.x), + newY = Math.round(this.y), + distanceX = Math.abs(newX - this.startX), + distanceY = Math.abs(newY - this.startY), + time = 0, + easing = ''; + + this.isInTransition = 0; + this.initiated = 0; + this.endTime = utils.getTime(); + + // reset if we are outside of the boundaries + if ( this.resetPosition(this.options.bounceTime) ) { + return; + } + + this.scrollTo(newX, newY); // ensures that the last position is rounded + + // we scrolled less than 10 pixels + if ( !this.moved ) { + if ( this.options.tap ) { + utils.tap(e, this.options.tap); + } + + if ( this.options.click ) { + utils.click(e); + } + + this._execEvent('scrollCancel'); + return; + } + + if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) { + this._execEvent('flick'); + return; + } + + // start momentum animation if needed + if ( this.options.momentum && duration < 300 ) { + momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 }; + momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 }; + newX = momentumX.destination; + newY = momentumY.destination; + time = Math.max(momentumX.duration, momentumY.duration); + this.isInTransition = 1; + } + + + if ( this.options.snap ) { + var snap = this._nearestSnap(newX, newY); + this.currentPage = snap; + time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(newX - snap.x), 1000), + Math.min(Math.abs(newY - snap.y), 1000) + ), 300); + newX = snap.x; + newY = snap.y; + + this.directionX = 0; + this.directionY = 0; + easing = this.options.bounceEasing; + } + +// INSERT POINT: _end + + if ( newX != this.x || newY != this.y ) { + // change easing function when scroller goes out of the boundaries + if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) { + easing = utils.ease.quadratic; + } + + this.scrollTo(newX, newY, time, easing); + return; + } + + this._execEvent('scrollEnd'); + }, + + _resize: function () { + var that = this; + + clearTimeout(this.resizeTimeout); + + this.resizeTimeout = setTimeout(function () { + that.refresh(); + }, this.options.resizePolling); + }, + + resetPosition: function (time) { + var x = this.x, + y = this.y; + + time = time || 0; + + if ( !this.hasHorizontalScroll || this.x > 0 ) { + x = 0; + } else if ( this.x < this.maxScrollX ) { + x = this.maxScrollX; + } + + if ( !this.hasVerticalScroll || this.y > 0 ) { + y = 0; + } else if ( this.y < this.maxScrollY ) { + y = this.maxScrollY; + } + + if ( x == this.x && y == this.y ) { + return false; + } + + this.scrollTo(x, y, time, this.options.bounceEasing); + + return true; + }, + + disable: function () { + this.enabled = false; + }, + + enable: function () { + this.enabled = true; + }, + + refresh: function () { + var rf = this.wrapper.offsetHeight; // Force reflow + + this.wrapperWidth = this.wrapper.clientWidth; + this.wrapperHeight = this.wrapper.clientHeight; + +/* REPLACE START: refresh */ + + this.scrollerWidth = this.scroller.offsetWidth; + this.scrollerHeight = this.scroller.offsetHeight; + + this.maxScrollX = this.wrapperWidth - this.scrollerWidth; + this.maxScrollY = this.wrapperHeight - this.scrollerHeight; + +/* REPLACE END: refresh */ + + this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; + this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + + if ( !this.hasHorizontalScroll ) { + this.maxScrollX = 0; + this.scrollerWidth = this.wrapperWidth; + } + + if ( !this.hasVerticalScroll ) { + this.maxScrollY = 0; + this.scrollerHeight = this.wrapperHeight; + } + + this.endTime = 0; + this.directionX = 0; + this.directionY = 0; + + this.wrapperOffset = utils.offset(this.wrapper); + + this._execEvent('refresh'); + + this.resetPosition(); + +// INSERT POINT: _refresh + + }, + + on: function (type, fn) { + if ( !this._events[type] ) { + this._events[type] = []; + } + + this._events[type].push(fn); + }, + + off: function (type, fn) { + if ( !this._events[type] ) { + return; + } + + var index = this._events[type].indexOf(fn); + + if ( index > -1 ) { + this._events[type].splice(index, 1); + } + }, + + _execEvent: function (type) { + if ( !this._events[type] ) { + return; + } + + var i = 0, + l = this._events[type].length; + + if ( !l ) { + return; + } + + for ( ; i < l; i++ ) { + this._events[type][i].apply(this, [].slice.call(arguments, 1)); + } + }, + + scrollBy: function (x, y, time, easing) { + x = this.x + x; + y = this.y + y; + time = time || 0; + + this.scrollTo(x, y, time, easing); + }, + + scrollTo: function (x, y, time, easing) { + easing = easing || utils.ease.circular; + + this.isInTransition = this.options.useTransition && time > 0; + + if ( !time || (this.options.useTransition && easing.style) ) { + this._transitionTimingFunction(easing.style); + this._transitionTime(time); + this._translate(x, y); + } else { + this._animate(x, y, time, easing.fn); + } + }, + + scrollToElement: function (el, time, offsetX, offsetY, easing) { + el = el.nodeType ? el : this.scroller.querySelector(el); + + if ( !el ) { + return; + } + + var pos = utils.offset(el); + + pos.left -= this.wrapperOffset.left; + pos.top -= this.wrapperOffset.top; + + // if offsetX/Y are true we center the element to the screen + if ( offsetX === true ) { + offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2); + } + if ( offsetY === true ) { + offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2); + } + + pos.left -= offsetX || 0; + pos.top -= offsetY || 0; + + pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left; + pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top; + + time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time; + + this.scrollTo(pos.left, pos.top, time, easing); + }, + + _transitionTime: function (time) { + time = time || 0; + + this.scrollerStyle[utils.style.transitionDuration] = time + 'ms'; + + if ( !time && utils.isBadAndroid ) { + this.scrollerStyle[utils.style.transitionDuration] = '0.001s'; + } + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTime(time); + } + } + + +// INSERT POINT: _transitionTime + + }, + + _transitionTimingFunction: function (easing) { + this.scrollerStyle[utils.style.transitionTimingFunction] = easing; + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTimingFunction(easing); + } + } + + +// INSERT POINT: _transitionTimingFunction + + }, + + _translate: function (x, y) { + if ( this.options.useTransform ) { + +/* REPLACE START: _translate */ + + this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ; + +/* REPLACE END: _translate */ + + } else { + x = Math.round(x); + y = Math.round(y); + this.scrollerStyle.left = x + 'px'; + this.scrollerStyle.top = y + 'px'; + } + + this.x = x; + this.y = y; + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].updatePosition(); + } + } + + +// INSERT POINT: _translate + + }, + + _initEvents: function (remove) { + var eventType = remove ? utils.removeEvent : utils.addEvent, + target = this.options.bindToWrapper ? this.wrapper : window; + + eventType(window, 'orientationchange', this); + eventType(window, 'resize', this); + + if ( this.options.click ) { + eventType(this.wrapper, 'click', this, true); + } + + if ( !this.options.disableMouse ) { + eventType(this.wrapper, 'mousedown', this); + eventType(target, 'mousemove', this); + eventType(target, 'mousecancel', this); + eventType(target, 'mouseup', this); + } + + if ( utils.hasPointer && !this.options.disablePointer ) { + eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this); + eventType(target, utils.prefixPointerEvent('pointermove'), this); + eventType(target, utils.prefixPointerEvent('pointercancel'), this); + eventType(target, utils.prefixPointerEvent('pointerup'), this); + } + + if ( utils.hasTouch && !this.options.disableTouch ) { + eventType(this.wrapper, 'touchstart', this); + eventType(target, 'touchmove', this); + eventType(target, 'touchcancel', this); + eventType(target, 'touchend', this); + } + + eventType(this.scroller, 'transitionend', this); + eventType(this.scroller, 'webkitTransitionEnd', this); + eventType(this.scroller, 'oTransitionEnd', this); + eventType(this.scroller, 'MSTransitionEnd', this); + }, + + getComputedPosition: function () { + var matrix = window.getComputedStyle(this.scroller, null), + x, y; + + if ( this.options.useTransform ) { + matrix = matrix[utils.style.transform].split(')')[0].split(', '); + x = +(matrix[12] || matrix[4]); + y = +(matrix[13] || matrix[5]); + } else { + x = +matrix.left.replace(/[^-\d.]/g, ''); + y = +matrix.top.replace(/[^-\d.]/g, ''); + } + + return { x: x, y: y }; + }, + + _initIndicators: function () { + var interactive = this.options.interactiveScrollbars, + customStyle = typeof this.options.scrollbars != 'string', + indicators = [], + indicator; + + var that = this; + + this.indicators = []; + + if ( this.options.scrollbars ) { + // Vertical scrollbar + if ( this.options.scrollY ) { + indicator = { + el: createDefaultScrollbar('v', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenX: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + + // Horizontal scrollbar + if ( this.options.scrollX ) { + indicator = { + el: createDefaultScrollbar('h', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenY: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + } + + if ( this.options.indicators ) { + // TODO: check concat compatibility + indicators = indicators.concat(this.options.indicators); + } + + for ( var i = indicators.length; i--; ) { + this.indicators.push( new Indicator(this, indicators[i]) ); + } + + // TODO: check if we can use array.map (wide compatibility and performance issues) + function _indicatorsMap (fn) { + for ( var i = that.indicators.length; i--; ) { + fn.call(that.indicators[i]); + } + } + + if ( this.options.fadeScrollbars ) { + this.on('scrollEnd', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); + + this.on('scrollCancel', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); + + this.on('scrollStart', function () { + _indicatorsMap(function () { + this.fade(1); + }); + }); + + this.on('beforeScrollStart', function () { + _indicatorsMap(function () { + this.fade(1, true); + }); + }); + } + + + this.on('refresh', function () { + _indicatorsMap(function () { + this.refresh(); + }); + }); + + this.on('destroy', function () { + _indicatorsMap(function () { + this.destroy(); + }); + + delete this.indicators; + }); + }, + + _initWheel: function () { + utils.addEvent(this.wrapper, 'wheel', this); + utils.addEvent(this.wrapper, 'mousewheel', this); + utils.addEvent(this.wrapper, 'DOMMouseScroll', this); + + this.on('destroy', function () { + utils.removeEvent(this.wrapper, 'wheel', this); + utils.removeEvent(this.wrapper, 'mousewheel', this); + utils.removeEvent(this.wrapper, 'DOMMouseScroll', this); + }); + }, + + _wheel: function (e) { + if ( !this.enabled ) { + return; + } + + e.preventDefault(); + e.stopPropagation(); + + var wheelDeltaX, wheelDeltaY, + newX, newY, + that = this; + + if ( this.wheelTimeout === undefined ) { + that._execEvent('scrollStart'); + } + + // Execute the scrollEnd event after 400ms the wheel stopped scrolling + clearTimeout(this.wheelTimeout); + this.wheelTimeout = setTimeout(function () { + that._execEvent('scrollEnd'); + that.wheelTimeout = undefined; + }, 400); + + if ( 'deltaX' in e ) { + if (e.deltaMode === 1) { + wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed; + wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed; + } else { + wheelDeltaX = -e.deltaX; + wheelDeltaY = -e.deltaY; + } + } else if ( 'wheelDeltaX' in e ) { + wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed; + wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed; + } else if ( 'wheelDelta' in e ) { + wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed; + } else if ( 'detail' in e ) { + wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed; + } else { + return; + } + + wheelDeltaX *= this.options.invertWheelDirection; + wheelDeltaY *= this.options.invertWheelDirection; + + if ( !this.hasVerticalScroll ) { + wheelDeltaX = wheelDeltaY; + wheelDeltaY = 0; + } + + if ( this.options.snap ) { + newX = this.currentPage.pageX; + newY = this.currentPage.pageY; + + if ( wheelDeltaX > 0 ) { + newX--; + } else if ( wheelDeltaX < 0 ) { + newX++; + } + + if ( wheelDeltaY > 0 ) { + newY--; + } else if ( wheelDeltaY < 0 ) { + newY++; + } + + this.goToPage(newX, newY); + + return; + } + + newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0); + newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0); + + if ( newX > 0 ) { + newX = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + } + + if ( newY > 0 ) { + newY = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + } + + this.scrollTo(newX, newY, 0); + +// INSERT POINT: _wheel + }, + + _initSnap: function () { + this.currentPage = {}; + + if ( typeof this.options.snap == 'string' ) { + this.options.snap = this.scroller.querySelectorAll(this.options.snap); + } + + this.on('refresh', function () { + var i = 0, l, + m = 0, n, + cx, cy, + x = 0, y, + stepX = this.options.snapStepX || this.wrapperWidth, + stepY = this.options.snapStepY || this.wrapperHeight, + el; + + this.pages = []; + + if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) { + return; + } + + if ( this.options.snap === true ) { + cx = Math.round( stepX / 2 ); + cy = Math.round( stepY / 2 ); + + while ( x > -this.scrollerWidth ) { + this.pages[i] = []; + l = 0; + y = 0; + + while ( y > -this.scrollerHeight ) { + this.pages[i][l] = { + x: Math.max(x, this.maxScrollX), + y: Math.max(y, this.maxScrollY), + width: stepX, + height: stepY, + cx: x - cx, + cy: y - cy + }; + + y -= stepY; + l++; + } + + x -= stepX; + i++; + } + } else { + el = this.options.snap; + l = el.length; + n = -1; + + for ( ; i < l; i++ ) { + if ( i === 0 || el[i].offsetLeft <= el[i-1].offsetLeft ) { + m = 0; + n++; + } + + if ( !this.pages[m] ) { + this.pages[m] = []; + } + + x = Math.max(-el[i].offsetLeft, this.maxScrollX); + y = Math.max(-el[i].offsetTop, this.maxScrollY); + cx = x - Math.round(el[i].offsetWidth / 2); + cy = y - Math.round(el[i].offsetHeight / 2); + + this.pages[m][n] = { + x: x, + y: y, + width: el[i].offsetWidth, + height: el[i].offsetHeight, + cx: cx, + cy: cy + }; + + if ( x > this.maxScrollX ) { + m++; + } + } + } + + this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0); + + // Update snap threshold if needed + if ( this.options.snapThreshold % 1 === 0 ) { + this.snapThresholdX = this.options.snapThreshold; + this.snapThresholdY = this.options.snapThreshold; + } else { + this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold); + this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold); + } + }); + + this.on('flick', function () { + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.x - this.startX), 1000), + Math.min(Math.abs(this.y - this.startY), 1000) + ), 300); + + this.goToPage( + this.currentPage.pageX + this.directionX, + this.currentPage.pageY + this.directionY, + time + ); + }); + }, + + _nearestSnap: function (x, y) { + if ( !this.pages.length ) { + return { x: 0, y: 0, pageX: 0, pageY: 0 }; + } + + var i = 0, + l = this.pages.length, + m = 0; + + // Check if we exceeded the snap threshold + if ( Math.abs(x - this.absStartX) < this.snapThresholdX && + Math.abs(y - this.absStartY) < this.snapThresholdY ) { + return this.currentPage; + } + + if ( x > 0 ) { + x = 0; + } else if ( x < this.maxScrollX ) { + x = this.maxScrollX; + } + + if ( y > 0 ) { + y = 0; + } else if ( y < this.maxScrollY ) { + y = this.maxScrollY; + } + + for ( ; i < l; i++ ) { + if ( x >= this.pages[i][0].cx ) { + x = this.pages[i][0].x; + break; + } + } + + l = this.pages[i].length; + + for ( ; m < l; m++ ) { + if ( y >= this.pages[0][m].cy ) { + y = this.pages[0][m].y; + break; + } + } + + if ( i == this.currentPage.pageX ) { + i += this.directionX; + + if ( i < 0 ) { + i = 0; + } else if ( i >= this.pages.length ) { + i = this.pages.length - 1; + } + + x = this.pages[i][0].x; + } + + if ( m == this.currentPage.pageY ) { + m += this.directionY; + + if ( m < 0 ) { + m = 0; + } else if ( m >= this.pages[0].length ) { + m = this.pages[0].length - 1; + } + + y = this.pages[0][m].y; + } + + return { + x: x, + y: y, + pageX: i, + pageY: m + }; + }, + + goToPage: function (x, y, time, easing) { + easing = easing || this.options.bounceEasing; + + if ( x >= this.pages.length ) { + x = this.pages.length - 1; + } else if ( x < 0 ) { + x = 0; + } + + if ( y >= this.pages[x].length ) { + y = this.pages[x].length - 1; + } else if ( y < 0 ) { + y = 0; + } + + var posX = this.pages[x][y].x, + posY = this.pages[x][y].y; + + time = time === undefined ? this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(posX - this.x), 1000), + Math.min(Math.abs(posY - this.y), 1000) + ), 300) : time; + + this.currentPage = { + x: posX, + y: posY, + pageX: x, + pageY: y + }; + + this.scrollTo(posX, posY, time, easing); + }, + + next: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; + + x++; + + if ( x >= this.pages.length && this.hasVerticalScroll ) { + x = 0; + y++; + } + + this.goToPage(x, y, time, easing); + }, + + prev: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; + + x--; + + if ( x < 0 && this.hasVerticalScroll ) { + x = 0; + y--; + } + + this.goToPage(x, y, time, easing); + }, + + _initKeys: function (e) { + // default key bindings + var keys = { + pageUp: 33, + pageDown: 34, + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40 + }; + var i; + + // if you give me characters I give you keycode + if ( typeof this.options.keyBindings == 'object' ) { + for ( i in this.options.keyBindings ) { + if ( typeof this.options.keyBindings[i] == 'string' ) { + this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0); + } + } + } else { + this.options.keyBindings = {}; + } + + for ( i in keys ) { + this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i]; + } + + utils.addEvent(window, 'keydown', this); + + this.on('destroy', function () { + utils.removeEvent(window, 'keydown', this); + }); + }, + + _key: function (e) { + if ( !this.enabled ) { + return; + } + + var snap = this.options.snap, // we are using this alot, better to cache it + newX = snap ? this.currentPage.pageX : this.x, + newY = snap ? this.currentPage.pageY : this.y, + now = utils.getTime(), + prevTime = this.keyTime || 0, + acceleration = 0.250, + pos; + + if ( this.options.useTransition && this.isInTransition ) { + pos = this.getComputedPosition(); + + this._translate(Math.round(pos.x), Math.round(pos.y)); + this.isInTransition = false; + } + + this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0; + + switch ( e.keyCode ) { + case this.options.keyBindings.pageUp: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX += snap ? 1 : this.wrapperWidth; + } else { + newY += snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.pageDown: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX -= snap ? 1 : this.wrapperWidth; + } else { + newY -= snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.end: + newX = snap ? this.pages.length-1 : this.maxScrollX; + newY = snap ? this.pages[0].length-1 : this.maxScrollY; + break; + case this.options.keyBindings.home: + newX = 0; + newY = 0; + break; + case this.options.keyBindings.left: + newX += snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.up: + newY += snap ? 1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.right: + newX -= snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.down: + newY -= snap ? 1 : 5 + this.keyAcceleration>>0; + break; + default: + return; + } + + if ( snap ) { + this.goToPage(newX, newY); + return; + } + + if ( newX > 0 ) { + newX = 0; + this.keyAcceleration = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + this.keyAcceleration = 0; + } + + if ( newY > 0 ) { + newY = 0; + this.keyAcceleration = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + this.keyAcceleration = 0; + } + + this.scrollTo(newX, newY, 0); + + this.keyTime = now; + }, + + _animate: function (destX, destY, duration, easingFn) { + var that = this, + startX = this.x, + startY = this.y, + startTime = utils.getTime(), + destTime = startTime + duration; + + function step () { + var now = utils.getTime(), + newX, newY, + easing; + + if ( now >= destTime ) { + that.isAnimating = false; + that._translate(destX, destY); + + if ( !that.resetPosition(that.options.bounceTime) ) { + that._execEvent('scrollEnd'); + } + + return; + } + + now = ( now - startTime ) / duration; + easing = easingFn(now); + newX = ( destX - startX ) * easing + startX; + newY = ( destY - startY ) * easing + startY; + that._translate(newX, newY); + + if ( that.isAnimating ) { + rAF(step); + } + } + + this.isAnimating = true; + step(); + }, + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + case 'orientationchange': + case 'resize': + this._resize(); + break; + case 'transitionend': + case 'webkitTransitionEnd': + case 'oTransitionEnd': + case 'MSTransitionEnd': + this._transitionEnd(e); + break; + case 'wheel': + case 'DOMMouseScroll': + case 'mousewheel': + this._wheel(e); + break; + case 'keydown': + this._key(e); + break; + case 'click': + if ( !e._constructed ) { + e.preventDefault(); + e.stopPropagation(); + } + break; + } + } +}; +function createDefaultScrollbar (direction, interactive, type) { + var scrollbar = document.createElement('div'), + indicator = document.createElement('div'); + + if ( type === true ) { + scrollbar.style.cssText = 'position:absolute;z-index:9999'; + indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px'; + } + + indicator.className = 'iScrollIndicator'; + + if ( direction == 'h' ) { + if ( type === true ) { + scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0'; + indicator.style.height = '100%'; + } + scrollbar.className = 'iScrollHorizontalScrollbar'; + } else { + if ( type === true ) { + scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px'; + indicator.style.width = '100%'; + } + scrollbar.className = 'iScrollVerticalScrollbar'; + } + + scrollbar.style.cssText += ';overflow:hidden'; + + if ( !interactive ) { + scrollbar.style.pointerEvents = 'none'; + } + + scrollbar.appendChild(indicator); + + return scrollbar; +} + +function Indicator (scroller, options) { + this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el; + this.wrapperStyle = this.wrapper.style; + this.indicator = this.wrapper.children[0]; + this.indicatorStyle = this.indicator.style; + this.scroller = scroller; + + this.options = { + listenX: true, + listenY: true, + interactive: false, + resize: true, + defaultScrollbars: false, + shrink: false, + fade: false, + speedRatioX: 0, + speedRatioY: 0 + }; + + for ( var i in options ) { + this.options[i] = options[i]; + } + + this.sizeRatioX = 1; + this.sizeRatioY = 1; + this.maxPosX = 0; + this.maxPosY = 0; + + if ( this.options.interactive ) { + if ( !this.options.disableTouch ) { + utils.addEvent(this.indicator, 'touchstart', this); + utils.addEvent(window, 'touchend', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(this.indicator, 'mousedown', this); + utils.addEvent(window, 'mouseup', this); + } + } + + if ( this.options.fade ) { + this.wrapperStyle[utils.style.transform] = this.scroller.translateZ; + this.wrapperStyle[utils.style.transitionDuration] = utils.isBadAndroid ? '0.001s' : '0ms'; + this.wrapperStyle.opacity = '0'; + } +} + +Indicator.prototype = { + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + } + }, + + destroy: function () { + if ( this.options.interactive ) { + utils.removeEvent(this.indicator, 'touchstart', this); + utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.removeEvent(this.indicator, 'mousedown', this); + + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); + + utils.removeEvent(window, 'touchend', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this); + utils.removeEvent(window, 'mouseup', this); + } + + if ( this.options.defaultScrollbars ) { + this.wrapper.parentNode.removeChild(this.wrapper); + } + }, + + _start: function (e) { + var point = e.touches ? e.touches[0] : e; + + e.preventDefault(); + e.stopPropagation(); + + this.transitionTime(); + + this.initiated = true; + this.moved = false; + this.lastPointX = point.pageX; + this.lastPointY = point.pageY; + + this.startTime = utils.getTime(); + + if ( !this.options.disableTouch ) { + utils.addEvent(window, 'touchmove', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(window, 'mousemove', this); + } + + this.scroller._execEvent('beforeScrollStart'); + }, + + _move: function (e) { + var point = e.touches ? e.touches[0] : e, + deltaX, deltaY, + newX, newY, + timestamp = utils.getTime(); + + if ( !this.moved ) { + this.scroller._execEvent('scrollStart'); + } + + this.moved = true; + + deltaX = point.pageX - this.lastPointX; + this.lastPointX = point.pageX; + + deltaY = point.pageY - this.lastPointY; + this.lastPointY = point.pageY; + + newX = this.x + deltaX; + newY = this.y + deltaY; + + this._pos(newX, newY); + +// INSERT POINT: indicator._move + + e.preventDefault(); + e.stopPropagation(); + }, + + _end: function (e) { + if ( !this.initiated ) { + return; + } + + this.initiated = false; + + e.preventDefault(); + e.stopPropagation(); + + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); + + if ( this.scroller.options.snap ) { + var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y); + + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.scroller.x - snap.x), 1000), + Math.min(Math.abs(this.scroller.y - snap.y), 1000) + ), 300); + + if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) { + this.scroller.directionX = 0; + this.scroller.directionY = 0; + this.scroller.currentPage = snap; + this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing); + } + } + + if ( this.moved ) { + this.scroller._execEvent('scrollEnd'); + } + }, + + transitionTime: function (time) { + time = time || 0; + this.indicatorStyle[utils.style.transitionDuration] = time + 'ms'; + + if ( !time && utils.isBadAndroid ) { + this.indicatorStyle[utils.style.transitionDuration] = '0.001s'; + } + }, + + transitionTimingFunction: function (easing) { + this.indicatorStyle[utils.style.transitionTimingFunction] = easing; + }, + + refresh: function () { + this.transitionTime(); + + if ( this.options.listenX && !this.options.listenY ) { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; + } else if ( this.options.listenY && !this.options.listenX ) { + this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; + } else { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; + } + + if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) { + utils.addClass(this.wrapper, 'iScrollBothScrollbars'); + utils.removeClass(this.wrapper, 'iScrollLoneScrollbar'); + + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '8px'; + } else { + this.wrapper.style.bottom = '8px'; + } + } + } else { + utils.removeClass(this.wrapper, 'iScrollBothScrollbars'); + utils.addClass(this.wrapper, 'iScrollLoneScrollbar'); + + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '2px'; + } else { + this.wrapper.style.bottom = '2px'; + } + } + } + + var r = this.wrapper.offsetHeight; // force refresh + + if ( this.options.listenX ) { + this.wrapperWidth = this.wrapper.clientWidth; + if ( this.options.resize ) { + this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); + this.indicatorStyle.width = this.indicatorWidth + 'px'; + } else { + this.indicatorWidth = this.indicator.clientWidth; + } + + this.maxPosX = this.wrapperWidth - this.indicatorWidth; + + if ( this.options.shrink == 'clip' ) { + this.minBoundaryX = -this.indicatorWidth + 8; + this.maxBoundaryX = this.wrapperWidth - 8; + } else { + this.minBoundaryX = 0; + this.maxBoundaryX = this.maxPosX; + } + + this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); + } + + if ( this.options.listenY ) { + this.wrapperHeight = this.wrapper.clientHeight; + if ( this.options.resize ) { + this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); + this.indicatorStyle.height = this.indicatorHeight + 'px'; + } else { + this.indicatorHeight = this.indicator.clientHeight; + } + + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + + if ( this.options.shrink == 'clip' ) { + this.minBoundaryY = -this.indicatorHeight + 8; + this.maxBoundaryY = this.wrapperHeight - 8; + } else { + this.minBoundaryY = 0; + this.maxBoundaryY = this.maxPosY; + } + + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); + } + + this.updatePosition(); + }, + + updatePosition: function () { + var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, + y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; + + if ( !this.options.ignoreBoundaries ) { + if ( x < this.minBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth + x, 8); + this.indicatorStyle.width = this.width + 'px'; + } + x = this.minBoundaryX; + } else if ( x > this.maxBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8); + this.indicatorStyle.width = this.width + 'px'; + x = this.maxPosX + this.indicatorWidth - this.width; + } else { + x = this.maxBoundaryX; + } + } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) { + this.width = this.indicatorWidth; + this.indicatorStyle.width = this.width + 'px'; + } + + if ( y < this.minBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight + y * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + } + y = this.minBoundaryY; + } else if ( y > this.maxBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + y = this.maxPosY + this.indicatorHeight - this.height; + } else { + y = this.maxBoundaryY; + } + } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) { + this.height = this.indicatorHeight; + this.indicatorStyle.height = this.height + 'px'; + } + } + + this.x = x; + this.y = y; + + if ( this.scroller.options.useTransform ) { + this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ; + } else { + this.indicatorStyle.left = x + 'px'; + this.indicatorStyle.top = y + 'px'; + } + }, + + _pos: function (x, y) { + if ( x < 0 ) { + x = 0; + } else if ( x > this.maxPosX ) { + x = this.maxPosX; + } + + if ( y < 0 ) { + y = 0; + } else if ( y > this.maxPosY ) { + y = this.maxPosY; + } + + x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x; + y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y; + + this.scroller.scrollTo(x, y); + }, + + fade: function (val, hold) { + if ( hold && !this.visible ) { + return; + } + + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; + + var time = val ? 250 : 500, + delay = val ? 0 : 300; + + val = val ? '1' : '0'; + + this.wrapperStyle[utils.style.transitionDuration] = time + 'ms'; + + this.fadeTimeout = setTimeout((function (val) { + this.wrapperStyle.opacity = val; + this.visible = +val; + }).bind(this, val), delay); + } +}; + +IScroll.utils = utils; + +if ( typeof module != 'undefined' && module.exports ) { + module.exports = IScroll; +} else { + window.IScroll = IScroll; +} + +})(window, document, Math);
\ No newline at end of file diff --git a/StoneIsland/platforms/android/assets/www/js/vendor/iscroll.js b/StoneIsland/platforms/android/assets/www/js/vendor/iscroll.js index 8bd2b8da..09e07d69 100755..100644 --- a/StoneIsland/platforms/android/assets/www/js/vendor/iscroll.js +++ b/StoneIsland/platforms/android/assets/www/js/vendor/iscroll.js @@ -1,2011 +1,2170 @@ -/*! iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */ +/*! iScroll v5.2.0-snapshot ~ (c) 2008-2017 Matteo Spinelli ~ http://cubiq.org/license */ (function (window, document, Math) { -var rAF = window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - window.msRequestAnimationFrame || - function (callback) { window.setTimeout(callback, 1000 / 60); }; +var rAF = window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function (callback) { window.setTimeout(callback, 1000 / 60); }; var utils = (function () { - var me = {}; + var me = {}; - var _elementStyle = document.createElement('div').style; - var _vendor = (function () { - var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'], - transform, - i = 0, - l = vendors.length; + var _elementStyle = document.createElement('div').style; + var _vendor = (function () { + var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'], + transform, + i = 0, + l = vendors.length; - for ( ; i < l; i++ ) { - transform = vendors[i] + 'ransform'; - if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1); - } + for ( ; i < l; i++ ) { + transform = vendors[i] + 'ransform'; + if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1); + } - return false; - })(); + return false; + })(); - function _prefixStyle (style) { - if ( _vendor === false ) return false; - if ( _vendor === '' ) return style; - return _vendor + style.charAt(0).toUpperCase() + style.substr(1); - } + function _prefixStyle (style) { + if ( _vendor === false ) return false; + if ( _vendor === '' ) return style; + return _vendor + style.charAt(0).toUpperCase() + style.substr(1); + } - me.getTime = Date.now || function getTime () { return new Date().getTime(); }; + me.getTime = Date.now || function getTime () { return new Date().getTime(); }; - me.extend = function (target, obj) { - for ( var i in obj ) { - target[i] = obj[i]; - } - }; + me.extend = function (target, obj) { + for ( var i in obj ) { + target[i] = obj[i]; + } + }; - me.addEvent = function (el, type, fn, capture) { - el.addEventListener(type, fn, !!capture); - }; + me.addEvent = function (el, type, fn, capture) { + el.addEventListener(type, fn, !!capture); + }; - me.removeEvent = function (el, type, fn, capture) { - el.removeEventListener(type, fn, !!capture); - }; + me.removeEvent = function (el, type, fn, capture) { + el.removeEventListener(type, fn, !!capture); + }; - me.prefixPointerEvent = function (pointerEvent) { - return window.MSPointerEvent ? - 'MSPointer' + pointerEvent.charAt(9).toUpperCase() + pointerEvent.substr(10): - pointerEvent; - }; + me.prefixPointerEvent = function (pointerEvent) { + return window.MSPointerEvent ? + 'MSPointer' + pointerEvent.charAt(7).toUpperCase() + pointerEvent.substr(8): + pointerEvent; + }; - me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) { - var distance = current - start, - speed = Math.abs(distance) / time, - destination, - duration; + me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) { + var distance = current - start, + speed = Math.abs(distance) / time, + destination, + duration; - deceleration = deceleration === undefined ? 0.0006 : deceleration; + deceleration = deceleration === undefined ? 0.0006 : deceleration; - destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 ); - duration = speed / deceleration; + destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 ); + duration = speed / deceleration; - if ( destination < lowerMargin ) { - destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin; - distance = Math.abs(destination - current); - duration = distance / speed; - } else if ( destination > 0 ) { - destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0; - distance = Math.abs(current) + destination; - duration = distance / speed; - } + if ( destination < lowerMargin ) { + destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin; + distance = Math.abs(destination - current); + duration = distance / speed; + } else if ( destination > 0 ) { + destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0; + distance = Math.abs(current) + destination; + duration = distance / speed; + } - return { - destination: Math.round(destination), - duration: duration - }; - }; + return { + destination: Math.round(destination), + duration: duration + }; + }; - var _transform = _prefixStyle('transform'); + var _transform = _prefixStyle('transform'); - me.extend(me, { - hasTransform: _transform !== false, - hasPerspective: _prefixStyle('perspective') in _elementStyle, - hasTouch: 'ontouchstart' in window, - hasPointer: window.PointerEvent || window.MSPointerEvent, // IE10 is prefixed - hasTransition: _prefixStyle('transition') in _elementStyle - }); + me.extend(me, { + hasTransform: _transform !== false, + hasPerspective: _prefixStyle('perspective') in _elementStyle, + hasTouch: 'ontouchstart' in window, + hasPointer: !!(window.PointerEvent || window.MSPointerEvent), // IE10 is prefixed + hasTransition: _prefixStyle('transition') in _elementStyle + }); - // This should find all Android browsers lower than build 535.19 (both stock browser and webview) - me.isBadAndroid = /Android /.test(window.navigator.appVersion) && !(/Chrome\/\d/.test(window.navigator.appVersion)); + /* + This should find all Android browsers lower than build 535.19 (both stock browser and webview) + - galaxy S2 is ok + - 2.3.6 : `AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1` + - 4.0.4 : `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S3 is badAndroid (stock brower, webview) + `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S4 is badAndroid (stock brower, webview) + `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S5 is OK + `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)` + - galaxy S6 is OK + `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)` + */ + me.isBadAndroid = (function() { + var appVersion = window.navigator.appVersion; + // Android browser is not a chrome browser. + if (/Android/.test(appVersion) && !(/Chrome\/\d/.test(appVersion))) { + var safariVersion = appVersion.match(/Safari\/(\d+.\d)/); + if(safariVersion && typeof safariVersion === "object" && safariVersion.length >= 2) { + return parseFloat(safariVersion[1]) < 535.19; + } else { + return true; + } + } else { + return false; + } + })(); - me.extend(me.style = {}, { - transform: _transform, - transitionTimingFunction: _prefixStyle('transitionTimingFunction'), - transitionDuration: _prefixStyle('transitionDuration'), - transitionDelay: _prefixStyle('transitionDelay'), - transformOrigin: _prefixStyle('transformOrigin') - }); + me.extend(me.style = {}, { + transform: _transform, + transitionTimingFunction: _prefixStyle('transitionTimingFunction'), + transitionDuration: _prefixStyle('transitionDuration'), + transitionDelay: _prefixStyle('transitionDelay'), + transformOrigin: _prefixStyle('transformOrigin'), + touchAction: _prefixStyle('touchAction') + }); - me.hasClass = function (e, c) { - var re = new RegExp("(^|\\s)" + c + "(\\s|$)"); - return re.test(e.className); - }; + me.hasClass = function (e, c) { + var re = new RegExp("(^|\\s)" + c + "(\\s|$)"); + return re.test(e.className); + }; - me.addClass = function (e, c) { - if ( me.hasClass(e, c) ) { - return; - } + me.addClass = function (e, c) { + if ( me.hasClass(e, c) ) { + return; + } - var newclass = e.className.split(' '); - newclass.push(c); - e.className = newclass.join(' '); - }; + var newclass = e.className.split(' '); + newclass.push(c); + e.className = newclass.join(' '); + }; - me.removeClass = function (e, c) { - if ( !me.hasClass(e, c) ) { - return; - } + me.removeClass = function (e, c) { + if ( !me.hasClass(e, c) ) { + return; + } - var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g'); - e.className = e.className.replace(re, ' '); - }; + var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g'); + e.className = e.className.replace(re, ' '); + }; - me.offset = function (el) { - var left = -el.offsetLeft, - top = -el.offsetTop; + me.offset = function (el) { + var left = -el.offsetLeft, + top = -el.offsetTop; - // jshint -W084 - while (el = el.offsetParent) { - left -= el.offsetLeft; - top -= el.offsetTop; - } - // jshint +W084 + // jshint -W084 + while (el = el.offsetParent) { + left -= el.offsetLeft; + top -= el.offsetTop; + } + // jshint +W084 - return { - left: left, - top: top - }; - }; + return { + left: left, + top: top + }; + }; - me.preventDefaultException = function (el, exceptions) { - for ( var i in exceptions ) { - if ( exceptions[i].test(el[i]) ) { - return true; - } - } + me.preventDefaultException = function (el, exceptions) { + for ( var i in exceptions ) { + if ( exceptions[i].test(el[i]) ) { + return true; + } + } - return false; - }; + return false; + }; - me.extend(me.eventType = {}, { - touchstart: 1, - touchmove: 1, - touchend: 1, + me.extend(me.eventType = {}, { + touchstart: 1, + touchmove: 1, + touchend: 1, - mousedown: 2, - mousemove: 2, - mouseup: 2, + mousedown: 2, + mousemove: 2, + mouseup: 2, - pointerdown: 3, - pointermove: 3, - pointerup: 3, + pointerdown: 3, + pointermove: 3, + pointerup: 3, - MSPointerDown: 3, - MSPointerMove: 3, - MSPointerUp: 3 - }); + MSPointerDown: 3, + MSPointerMove: 3, + MSPointerUp: 3 + }); - me.extend(me.ease = {}, { - quadratic: { - style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', - fn: function (k) { - return k * ( 2 - k ); - } - }, - circular: { - style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1) - fn: function (k) { - return Math.sqrt( 1 - ( --k * k ) ); - } - }, - back: { - style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', - fn: function (k) { - var b = 4; - return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1; - } - }, - bounce: { - style: '', - fn: function (k) { - if ( ( k /= 1 ) < ( 1 / 2.75 ) ) { - return 7.5625 * k * k; - } else if ( k < ( 2 / 2.75 ) ) { - return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75; - } else if ( k < ( 2.5 / 2.75 ) ) { - return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375; - } else { - return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375; - } - } - }, - elastic: { - style: '', - fn: function (k) { - var f = 0.22, - e = 0.4; + me.extend(me.ease = {}, { + quadratic: { + style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + fn: function (k) { + return k * ( 2 - k ); + } + }, + circular: { + style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1) + fn: function (k) { + return Math.sqrt( 1 - ( --k * k ) ); + } + }, + back: { + style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', + fn: function (k) { + var b = 4; + return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1; + } + }, + bounce: { + style: '', + fn: function (k) { + if ( ( k /= 1 ) < ( 1 / 2.75 ) ) { + return 7.5625 * k * k; + } else if ( k < ( 2 / 2.75 ) ) { + return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75; + } else if ( k < ( 2.5 / 2.75 ) ) { + return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375; + } else { + return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375; + } + } + }, + elastic: { + style: '', + fn: function (k) { + var f = 0.22, + e = 0.4; - if ( k === 0 ) { return 0; } - if ( k == 1 ) { return 1; } + if ( k === 0 ) { return 0; } + if ( k == 1 ) { return 1; } - return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 ); - } - } - }); + return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 ); + } + } + }); - me.tap = function (e, eventName) { - var ev = document.createEvent('Event'); - ev.initEvent(eventName, true, true); - ev.pageX = e.pageX; - ev.pageY = e.pageY; - e.target.dispatchEvent(ev); - }; + me.tap = function (e, eventName) { + var ev = document.createEvent('Event'); + ev.initEvent(eventName, true, true); + ev.pageX = e.pageX; + ev.pageY = e.pageY; + e.target.dispatchEvent(ev); + }; - me.click = function (e) { - var target = e.target, - ev; + me.click = function (e) { + var target = e.target, + ev; - if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) { - ev = document.createEvent('MouseEvents'); - ev.initMouseEvent('click', true, true, e.view, 1, - target.screenX, target.screenY, target.clientX, target.clientY, - e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, - 0, null); + if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) { + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent + // initMouseEvent is deprecated. + ev = document.createEvent(window.MouseEvent ? 'MouseEvents' : 'Event'); + ev.initEvent('click', true, true); + ev.view = e.view || window; + ev.detail = 1; + ev.screenX = target.screenX || 0; + ev.screenY = target.screenY || 0; + ev.clientX = target.clientX || 0; + ev.clientY = target.clientY || 0; + ev.ctrlKey = !!e.ctrlKey; + ev.altKey = !!e.altKey; + ev.shiftKey = !!e.shiftKey; + ev.metaKey = !!e.metaKey; + ev.button = 0; + ev.relatedTarget = null; + ev._constructed = true; + target.dispatchEvent(ev); + } + }; - ev._constructed = true; - target.dispatchEvent(ev); - } - }; + me.getTouchAction = function(eventPassthrough, addPinch) { + var touchAction = 'none'; + if ( eventPassthrough === 'vertical' ) { + touchAction = 'pan-y'; + } else if (eventPassthrough === 'horizontal' ) { + touchAction = 'pan-x'; + } + if (addPinch && touchAction != 'none') { + // add pinch-zoom support if the browser supports it, but if not (eg. Chrome <55) do nothing + touchAction += ' pinch-zoom'; + } + return touchAction; + }; - return me; -})(); + me.getRect = function(el) { + if (el instanceof SVGElement) { + var rect = el.getBoundingClientRect(); + return { + top : rect.top, + left : rect.left, + width : rect.width, + height : rect.height + }; + } else { + return { + top : el.offsetTop, + left : el.offsetLeft, + width : el.offsetWidth, + height : el.offsetHeight + }; + } + }; + return me; +})(); function IScroll (el, options) { - this.wrapper = typeof el == 'string' ? document.querySelector(el) : el; - this.scroller = this.wrapper.children[0]; - this.scrollerStyle = this.scroller.style; // cache style for better performance + this.wrapper = typeof el == 'string' ? document.querySelector(el) : el; + this.scroller = this.wrapper.children[0]; + this.scrollerStyle = this.scroller.style; // cache style for better performance - this.options = { + this.options = { - resizeScrollbars: true, + resizeScrollbars: true, - mouseWheelSpeed: 20, + mouseWheelSpeed: 20, - snapThreshold: 0.334, + snapThreshold: 0.334, -// INSERT POINT: OPTIONS +// INSERT POINT: OPTIONS + disablePointer : !utils.hasPointer, + disableTouch : utils.hasPointer || !utils.hasTouch, + disableMouse : utils.hasPointer || utils.hasTouch, + startX: 0, + startY: 0, + scrollY: true, + directionLockThreshold: 5, + momentum: true, - startX: 0, - startY: 0, - scrollY: true, - directionLockThreshold: 5, - momentum: true, + bounce: true, + bounceTime: 600, + bounceEasing: '', - bounce: true, - bounceTime: 600, - bounceEasing: '', + preventDefault: true, + preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ }, - preventDefault: true, - preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ }, + HWCompositing: true, + useTransition: true, + useTransform: true, + bindToWrapper: typeof window.onmousedown === "undefined" + }; - HWCompositing: true, - useTransition: true, - useTransform: true - }; + for ( var i in options ) { + this.options[i] = options[i]; + } - for ( var i in options ) { - this.options[i] = options[i]; - } + // Normalize options + this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : ''; - // Normalize options - this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : ''; + this.options.useTransition = utils.hasTransition && this.options.useTransition; + this.options.useTransform = utils.hasTransform && this.options.useTransform; - this.options.useTransition = utils.hasTransition && this.options.useTransition; - this.options.useTransform = utils.hasTransform && this.options.useTransform; + this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough; + this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault; - this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough; - this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault; + // If you want eventPassthrough I have to lock one of the axes + this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY; + this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX; - // If you want eventPassthrough I have to lock one of the axes - this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY; - this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX; + // With eventPassthrough we also need lockDirection mechanism + this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough; + this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold; - // With eventPassthrough we also need lockDirection mechanism - this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough; - this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold; + this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing; - this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing; + this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling; - this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling; + if ( this.options.tap === true ) { + this.options.tap = 'tap'; + } - if ( this.options.tap === true ) { - this.options.tap = 'tap'; - } + // https://github.com/cubiq/iscroll/issues/1029 + if (!this.options.useTransition && !this.options.useTransform) { + if(!(/relative|absolute/i).test(this.scrollerStyle.position)) { + this.scrollerStyle.position = "relative"; + } + } - if ( this.options.shrinkScrollbars == 'scale' ) { - this.options.useTransition = false; - } + if ( this.options.shrinkScrollbars == 'scale' ) { + this.options.useTransition = false; + } - this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1; + this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1; // INSERT POINT: NORMALIZATION - // Some defaults - this.x = 0; - this.y = 0; - this.directionX = 0; - this.directionY = 0; - this._events = {}; + // Some defaults + this.x = 0; + this.y = 0; + this.directionX = 0; + this.directionY = 0; + this._events = {}; // INSERT POINT: DEFAULTS - this._init(); - this.refresh(); + this._init(); + this.refresh(); - this.scrollTo(this.options.startX, this.options.startY); - this.enable(); + this.scrollTo(this.options.startX, this.options.startY); + this.enable(); } IScroll.prototype = { - version: '5.1.3', + version: '5.2.0-snapshot', - _init: function () { - this._initEvents(); + _init: function () { + this._initEvents(); - if ( this.options.scrollbars || this.options.indicators ) { - this._initIndicators(); - } + if ( this.options.scrollbars || this.options.indicators ) { + this._initIndicators(); + } - if ( this.options.mouseWheel ) { - this._initWheel(); - } + if ( this.options.mouseWheel ) { + this._initWheel(); + } - if ( this.options.snap ) { - this._initSnap(); - } + if ( this.options.snap ) { + this._initSnap(); + } - if ( this.options.keyBindings ) { - this._initKeys(); - } + if ( this.options.keyBindings ) { + this._initKeys(); + } // INSERT POINT: _init - }, - - destroy: function () { - this._initEvents(true); - - this._execEvent('destroy'); - }, + }, - _transitionEnd: function (e) { - if ( e.target != this.scroller || !this.isInTransition ) { - return; - } + destroy: function () { + this._initEvents(true); + clearTimeout(this.resizeTimeout); + this.resizeTimeout = null; + this._execEvent('destroy'); + }, - this._transitionTime(); - if ( !this.resetPosition(this.options.bounceTime) ) { - this.isInTransition = false; - this._execEvent('scrollEnd'); - } - }, + _transitionEnd: function (e) { + if ( e.target != this.scroller || !this.isInTransition ) { + return; + } - _start: function (e) { - // React to left mouse button only - if ( utils.eventType[e.type] != 1 ) { - if ( e.button !== 0 ) { - return; - } - } + this._transitionTime(); + if ( !this.resetPosition(this.options.bounceTime) ) { + this.isInTransition = false; + this._execEvent('scrollEnd'); + } + }, - if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) { - return; - } + _start: function (e) { + // React to left mouse button only + if ( utils.eventType[e.type] != 1 ) { + // for button property + // http://unixpapa.com/js/mouse.html + var button; + if (!e.which) { + /* IE case */ + button = (e.button < 2) ? 0 : + ((e.button == 4) ? 1 : 2); + } else { + /* All others */ + button = e.button; + } + if ( button !== 0 ) { + return; + } + } - if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { - e.preventDefault(); - } + if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) { + return; + } - var point = e.touches ? e.touches[0] : e, - pos; + if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } - this.initiated = utils.eventType[e.type]; - this.moved = false; - this.distX = 0; - this.distY = 0; - this.directionX = 0; - this.directionY = 0; - this.directionLocked = 0; + var point = e.touches ? e.touches[0] : e, + pos; - this._transitionTime(); + this.initiated = utils.eventType[e.type]; + this.moved = false; + this.distX = 0; + this.distY = 0; + this.directionX = 0; + this.directionY = 0; + this.directionLocked = 0; - this.startTime = utils.getTime(); + this.startTime = utils.getTime(); - if ( this.options.useTransition && this.isInTransition ) { - this.isInTransition = false; - pos = this.getComputedPosition(); - this._translate(Math.round(pos.x), Math.round(pos.y)); - this._execEvent('scrollEnd'); - } else if ( !this.options.useTransition && this.isAnimating ) { - this.isAnimating = false; - this._execEvent('scrollEnd'); - } + if ( this.options.useTransition && this.isInTransition ) { + this._transitionTime(); + this.isInTransition = false; + pos = this.getComputedPosition(); + this._translate(Math.round(pos.x), Math.round(pos.y)); + this._execEvent('scrollEnd'); + } else if ( !this.options.useTransition && this.isAnimating ) { + this.isAnimating = false; + this._execEvent('scrollEnd'); + } - this.startX = this.x; - this.startY = this.y; - this.absStartX = this.x; - this.absStartY = this.y; - this.pointX = point.pageX; - this.pointY = point.pageY; + this.startX = this.x; + this.startY = this.y; + this.absStartX = this.x; + this.absStartY = this.y; + this.pointX = point.pageX; + this.pointY = point.pageY; - this._execEvent('beforeScrollStart'); - }, + this._execEvent('beforeScrollStart'); + }, - _move: function (e) { - if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { - return; - } + _move: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } - if ( this.options.preventDefault ) { // increases performance on Android? TODO: check! - e.preventDefault(); - } + if ( this.options.preventDefault ) { // increases performance on Android? TODO: check! + e.preventDefault(); + } - var point = e.touches ? e.touches[0] : e, - deltaX = point.pageX - this.pointX, - deltaY = point.pageY - this.pointY, - timestamp = utils.getTime(), - newX, newY, - absDistX, absDistY; + var point = e.touches ? e.touches[0] : e, + deltaX = point.pageX - this.pointX, + deltaY = point.pageY - this.pointY, + timestamp = utils.getTime(), + newX, newY, + absDistX, absDistY; - this.pointX = point.pageX; - this.pointY = point.pageY; + this.pointX = point.pageX; + this.pointY = point.pageY; - this.distX += deltaX; - this.distY += deltaY; - absDistX = Math.abs(this.distX); - absDistY = Math.abs(this.distY); + this.distX += deltaX; + this.distY += deltaY; + absDistX = Math.abs(this.distX); + absDistY = Math.abs(this.distY); - // We need to move at least 10 pixels for the scrolling to initiate - if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) { - return; - } + // We need to move at least 10 pixels for the scrolling to initiate + if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) { + return; + } - // If you are scrolling in one direction lock the other - if ( !this.directionLocked && !this.options.freeScroll ) { - if ( absDistX > absDistY + this.options.directionLockThreshold ) { - this.directionLocked = 'h'; // lock horizontally - } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) { - this.directionLocked = 'v'; // lock vertically - } else { - this.directionLocked = 'n'; // no lock - } - } + // If you are scrolling in one direction lock the other + if ( !this.directionLocked && !this.options.freeScroll ) { + if ( absDistX > absDistY + this.options.directionLockThreshold ) { + this.directionLocked = 'h'; // lock horizontally + } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) { + this.directionLocked = 'v'; // lock vertically + } else { + this.directionLocked = 'n'; // no lock + } + } - if ( this.directionLocked == 'h' ) { - if ( this.options.eventPassthrough == 'vertical' ) { - e.preventDefault(); - } else if ( this.options.eventPassthrough == 'horizontal' ) { - this.initiated = false; - return; - } + if ( this.directionLocked == 'h' ) { + if ( this.options.eventPassthrough == 'vertical' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'horizontal' ) { + this.initiated = false; + return; + } - deltaY = 0; - } else if ( this.directionLocked == 'v' ) { - if ( this.options.eventPassthrough == 'horizontal' ) { - e.preventDefault(); - } else if ( this.options.eventPassthrough == 'vertical' ) { - this.initiated = false; - return; - } + deltaY = 0; + } else if ( this.directionLocked == 'v' ) { + if ( this.options.eventPassthrough == 'horizontal' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'vertical' ) { + this.initiated = false; + return; + } - deltaX = 0; - } + deltaX = 0; + } - deltaX = this.hasHorizontalScroll ? deltaX : 0; - deltaY = this.hasVerticalScroll ? deltaY : 0; + deltaX = this.hasHorizontalScroll ? deltaX : 0; + deltaY = this.hasVerticalScroll ? deltaY : 0; - newX = this.x + deltaX; - newY = this.y + deltaY; + newX = this.x + deltaX; + newY = this.y + deltaY; - // Slow down if outside of the boundaries - if ( newX > 0 || newX < this.maxScrollX ) { - newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; - } - if ( newY > 0 || newY < this.maxScrollY ) { - newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; - } + // Slow down if outside of the boundaries + if ( newX > 0 || newX < this.maxScrollX ) { + newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; + } + if ( newY > 0 || newY < this.maxScrollY ) { + newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; + } - this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0; - this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0; + this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0; + this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0; - if ( !this.moved ) { - this._execEvent('scrollStart'); - } + if ( !this.moved ) { + this._execEvent('scrollStart'); + } - this.moved = true; + this.moved = true; - this._translate(newX, newY); + this._translate(newX, newY); /* REPLACE START: _move */ - if ( timestamp - this.startTime > 300 ) { - this.startTime = timestamp; - this.startX = this.x; - this.startY = this.y; - } + if ( timestamp - this.startTime > 300 ) { + this.startTime = timestamp; + this.startX = this.x; + this.startY = this.y; + } /* REPLACE END: _move */ - }, + }, - _end: function (e) { - if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { - return; - } + _end: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } - if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { - e.preventDefault(); - } + if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } - var point = e.changedTouches ? e.changedTouches[0] : e, - momentumX, - momentumY, - duration = utils.getTime() - this.startTime, - newX = Math.round(this.x), - newY = Math.round(this.y), - distanceX = Math.abs(newX - this.startX), - distanceY = Math.abs(newY - this.startY), - time = 0, - easing = ''; + var point = e.changedTouches ? e.changedTouches[0] : e, + momentumX, + momentumY, + duration = utils.getTime() - this.startTime, + newX = Math.round(this.x), + newY = Math.round(this.y), + distanceX = Math.abs(newX - this.startX), + distanceY = Math.abs(newY - this.startY), + time = 0, + easing = ''; - this.isInTransition = 0; - this.initiated = 0; - this.endTime = utils.getTime(); + this.isInTransition = 0; + this.initiated = 0; + this.endTime = utils.getTime(); - // reset if we are outside of the boundaries - if ( this.resetPosition(this.options.bounceTime) ) { - return; - } + // reset if we are outside of the boundaries + if ( this.resetPosition(this.options.bounceTime) ) { + return; + } - this.scrollTo(newX, newY); // ensures that the last position is rounded + this.scrollTo(newX, newY); // ensures that the last position is rounded - // we scrolled less than 10 pixels - if ( !this.moved ) { - if ( this.options.tap ) { - utils.tap(e, this.options.tap); - } + // we scrolled less than 10 pixels + if ( !this.moved ) { + if ( this.options.tap ) { + utils.tap(e, this.options.tap); + } - if ( this.options.click ) { - utils.click(e); - } + if ( this.options.click ) { + utils.click(e); + } - this._execEvent('scrollCancel'); - return; - } + this._execEvent('scrollCancel'); + return; + } - if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) { - this._execEvent('flick'); - return; - } + if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) { + this._execEvent('flick'); + return; + } - // start momentum animation if needed - if ( this.options.momentum && duration < 300 ) { - momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 }; - momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 }; - newX = momentumX.destination; - newY = momentumY.destination; - time = Math.max(momentumX.duration, momentumY.duration); - this.isInTransition = 1; - } + // start momentum animation if needed + if ( this.options.momentum && duration < 300 ) { + momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 }; + momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 }; + newX = momentumX.destination; + newY = momentumY.destination; + time = Math.max(momentumX.duration, momentumY.duration); + this.isInTransition = 1; + } - if ( this.options.snap ) { - var snap = this._nearestSnap(newX, newY); - this.currentPage = snap; - time = this.options.snapSpeed || Math.max( - Math.max( - Math.min(Math.abs(newX - snap.x), 1000), - Math.min(Math.abs(newY - snap.y), 1000) - ), 300); - newX = snap.x; - newY = snap.y; + if ( this.options.snap ) { + var snap = this._nearestSnap(newX, newY); + this.currentPage = snap; + time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(newX - snap.x), 1000), + Math.min(Math.abs(newY - snap.y), 1000) + ), 300); + newX = snap.x; + newY = snap.y; - this.directionX = 0; - this.directionY = 0; - easing = this.options.bounceEasing; - } + this.directionX = 0; + this.directionY = 0; + easing = this.options.bounceEasing; + } // INSERT POINT: _end - if ( newX != this.x || newY != this.y ) { - // change easing function when scroller goes out of the boundaries - if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) { - easing = utils.ease.quadratic; - } + if ( newX != this.x || newY != this.y ) { + // change easing function when scroller goes out of the boundaries + if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) { + easing = utils.ease.quadratic; + } - this.scrollTo(newX, newY, time, easing); - return; - } + this.scrollTo(newX, newY, time, easing); + return; + } - this._execEvent('scrollEnd'); - }, + this._execEvent('scrollEnd'); + }, - _resize: function () { - var that = this; + _resize: function () { + var that = this; - clearTimeout(this.resizeTimeout); + clearTimeout(this.resizeTimeout); - this.resizeTimeout = setTimeout(function () { - that.refresh(); - }, this.options.resizePolling); - }, + this.resizeTimeout = setTimeout(function () { + that.refresh(); + }, this.options.resizePolling); + }, - resetPosition: function (time) { - var x = this.x, - y = this.y; + resetPosition: function (time) { + var x = this.x, + y = this.y; - time = time || 0; + time = time || 0; - if ( !this.hasHorizontalScroll || this.x > 0 ) { - x = 0; - } else if ( this.x < this.maxScrollX ) { - x = this.maxScrollX; - } + if ( !this.hasHorizontalScroll || this.x > 0 ) { + x = 0; + } else if ( this.x < this.maxScrollX ) { + x = this.maxScrollX; + } - if ( !this.hasVerticalScroll || this.y > 0 ) { - y = 0; - } else if ( this.y < this.maxScrollY ) { - y = this.maxScrollY; - } + if ( !this.hasVerticalScroll || this.y > 0 ) { + y = 0; + } else if ( this.y < this.maxScrollY ) { + y = this.maxScrollY; + } - if ( x == this.x && y == this.y ) { - return false; - } + if ( x == this.x && y == this.y ) { + return false; + } - this.scrollTo(x, y, time, this.options.bounceEasing); + this.scrollTo(x, y, time, this.options.bounceEasing); - return true; - }, + return true; + }, - disable: function () { - this.enabled = false; - }, + disable: function () { + this.enabled = false; + }, - enable: function () { - this.enabled = true; - }, + enable: function () { + this.enabled = true; + }, - refresh: function () { - var rf = this.wrapper.offsetHeight; // Force reflow + refresh: function () { + utils.getRect(this.wrapper); // Force reflow - this.wrapperWidth = this.wrapper.clientWidth; - this.wrapperHeight = this.wrapper.clientHeight; + this.wrapperWidth = this.wrapper.clientWidth; + this.wrapperHeight = this.wrapper.clientHeight; + var rect = utils.getRect(this.scroller); /* REPLACE START: refresh */ - this.scrollerWidth = this.scroller.offsetWidth; - this.scrollerHeight = this.scroller.offsetHeight; + this.scrollerWidth = rect.width; + this.scrollerHeight = rect.height; - this.maxScrollX = this.wrapperWidth - this.scrollerWidth; - this.maxScrollY = this.wrapperHeight - this.scrollerHeight; + this.maxScrollX = this.wrapperWidth - this.scrollerWidth; + this.maxScrollY = this.wrapperHeight - this.scrollerHeight; /* REPLACE END: refresh */ - this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; - this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; + this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + + if ( !this.hasHorizontalScroll ) { + this.maxScrollX = 0; + this.scrollerWidth = this.wrapperWidth; + } - if ( !this.hasHorizontalScroll ) { - this.maxScrollX = 0; - this.scrollerWidth = this.wrapperWidth; - } + if ( !this.hasVerticalScroll ) { + this.maxScrollY = 0; + this.scrollerHeight = this.wrapperHeight; + } - if ( !this.hasVerticalScroll ) { - this.maxScrollY = 0; - this.scrollerHeight = this.wrapperHeight; - } + this.endTime = 0; + this.directionX = 0; + this.directionY = 0; + + if(utils.hasPointer && !this.options.disablePointer) { + // The wrapper should have `touchAction` property for using pointerEvent. + this.wrapper.style[utils.style.touchAction] = utils.getTouchAction(this.options.eventPassthrough, true); - this.endTime = 0; - this.directionX = 0; - this.directionY = 0; + // case. not support 'pinch-zoom' + // https://github.com/cubiq/iscroll/issues/1118#issuecomment-270057583 + if (!this.wrapper.style[utils.style.touchAction]) { + this.wrapper.style[utils.style.touchAction] = utils.getTouchAction(this.options.eventPassthrough, false); + } + } + this.wrapperOffset = utils.offset(this.wrapper); - this.wrapperOffset = utils.offset(this.wrapper); + this._execEvent('refresh'); - this._execEvent('refresh'); - - this.resetPosition(); + this.resetPosition(); // INSERT POINT: _refresh - }, - - on: function (type, fn) { - if ( !this._events[type] ) { - this._events[type] = []; - } + }, - this._events[type].push(fn); - }, + on: function (type, fn) { + if ( !this._events[type] ) { + this._events[type] = []; + } - off: function (type, fn) { - if ( !this._events[type] ) { - return; - } + this._events[type].push(fn); + }, - var index = this._events[type].indexOf(fn); + off: function (type, fn) { + if ( !this._events[type] ) { + return; + } - if ( index > -1 ) { - this._events[type].splice(index, 1); - } - }, + var index = this._events[type].indexOf(fn); - _execEvent: function (type) { - if ( !this._events[type] ) { - return; - } + if ( index > -1 ) { + this._events[type].splice(index, 1); + } + }, - var i = 0, - l = this._events[type].length; + _execEvent: function (type) { + if ( !this._events[type] ) { + return; + } - if ( !l ) { - return; - } + var i = 0, + l = this._events[type].length; - for ( ; i < l; i++ ) { - this._events[type][i].apply(this, [].slice.call(arguments, 1)); - } - }, + if ( !l ) { + return; + } - scrollBy: function (x, y, time, easing) { - x = this.x + x; - y = this.y + y; - time = time || 0; + for ( ; i < l; i++ ) { + this._events[type][i].apply(this, [].slice.call(arguments, 1)); + } + }, - this.scrollTo(x, y, time, easing); - }, + scrollBy: function (x, y, time, easing) { + x = this.x + x; + y = this.y + y; + time = time || 0; - scrollTo: function (x, y, time, easing) { - easing = easing || utils.ease.circular; + this.scrollTo(x, y, time, easing); + }, - this.isInTransition = this.options.useTransition && time > 0; + scrollTo: function (x, y, time, easing) { + easing = easing || utils.ease.circular; - if ( !time || (this.options.useTransition && easing.style) ) { - this._transitionTimingFunction(easing.style); - this._transitionTime(time); - this._translate(x, y); - } else { - this._animate(x, y, time, easing.fn); - } - }, + this.isInTransition = this.options.useTransition && time > 0; + var transitionType = this.options.useTransition && easing.style; + if ( !time || transitionType ) { + if(transitionType) { + this._transitionTimingFunction(easing.style); + this._transitionTime(time); + } + this._translate(x, y); + } else { + this._animate(x, y, time, easing.fn); + } + }, - scrollToElement: function (el, time, offsetX, offsetY, easing) { - el = el.nodeType ? el : this.scroller.querySelector(el); + scrollToElement: function (el, time, offsetX, offsetY, easing) { + el = el.nodeType ? el : this.scroller.querySelector(el); - if ( !el ) { - return; - } + if ( !el ) { + return; + } - var pos = utils.offset(el); + var pos = utils.offset(el); - pos.left -= this.wrapperOffset.left; - pos.top -= this.wrapperOffset.top; + pos.left -= this.wrapperOffset.left; + pos.top -= this.wrapperOffset.top; - // if offsetX/Y are true we center the element to the screen - if ( offsetX === true ) { - offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2); - } - if ( offsetY === true ) { - offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2); - } + // if offsetX/Y are true we center the element to the screen + var elRect = utils.getRect(el); + var wrapperRect = utils.getRect(this.wrapper); + if ( offsetX === true ) { + offsetX = Math.round(elRect.width / 2 - wrapperRect.width / 2); + } + if ( offsetY === true ) { + offsetY = Math.round(elRect.height / 2 - wrapperRect.height / 2); + } - pos.left -= offsetX || 0; - pos.top -= offsetY || 0; + pos.left -= offsetX || 0; + pos.top -= offsetY || 0; - pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left; - pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top; + pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left; + pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top; - time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time; + time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time; - this.scrollTo(pos.left, pos.top, time, easing); - }, + this.scrollTo(pos.left, pos.top, time, easing); + }, - _transitionTime: function (time) { - time = time || 0; + _transitionTime: function (time) { + if (!this.options.useTransition) { + return; + } + time = time || 0; + var durationProp = utils.style.transitionDuration; + if(!durationProp) { + return; + } - this.scrollerStyle[utils.style.transitionDuration] = time + 'ms'; + this.scrollerStyle[durationProp] = time + 'ms'; - if ( !time && utils.isBadAndroid ) { - this.scrollerStyle[utils.style.transitionDuration] = '0.001s'; - } + if ( !time && utils.isBadAndroid ) { + this.scrollerStyle[durationProp] = '0.0001ms'; + // remove 0.0001ms + var self = this; + rAF(function() { + if(self.scrollerStyle[durationProp] === '0.0001ms') { + self.scrollerStyle[durationProp] = '0s'; + } + }); + } - if ( this.indicators ) { - for ( var i = this.indicators.length; i--; ) { - this.indicators[i].transitionTime(time); - } - } + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTime(time); + } + } // INSERT POINT: _transitionTime - }, + }, - _transitionTimingFunction: function (easing) { - this.scrollerStyle[utils.style.transitionTimingFunction] = easing; + _transitionTimingFunction: function (easing) { + this.scrollerStyle[utils.style.transitionTimingFunction] = easing; - if ( this.indicators ) { - for ( var i = this.indicators.length; i--; ) { - this.indicators[i].transitionTimingFunction(easing); - } - } + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTimingFunction(easing); + } + } // INSERT POINT: _transitionTimingFunction - }, + }, - _translate: function (x, y) { - if ( this.options.useTransform ) { + _translate: function (x, y) { + if ( this.options.useTransform ) { /* REPLACE START: _translate */ - this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ; + this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ; /* REPLACE END: _translate */ - } else { - x = Math.round(x); - y = Math.round(y); - this.scrollerStyle.left = x + 'px'; - this.scrollerStyle.top = y + 'px'; - } + } else { + x = Math.round(x); + y = Math.round(y); + this.scrollerStyle.left = x + 'px'; + this.scrollerStyle.top = y + 'px'; + } - this.x = x; - this.y = y; + this.x = x; + this.y = y; - if ( this.indicators ) { - for ( var i = this.indicators.length; i--; ) { - this.indicators[i].updatePosition(); - } - } + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].updatePosition(); + } + } // INSERT POINT: _translate - }, + }, - _initEvents: function (remove) { - var eventType = remove ? utils.removeEvent : utils.addEvent, - target = this.options.bindToWrapper ? this.wrapper : window; + _initEvents: function (remove) { + var eventType = remove ? utils.removeEvent : utils.addEvent, + target = this.options.bindToWrapper ? this.wrapper : window; - eventType(window, 'orientationchange', this); - eventType(window, 'resize', this); + eventType(window, 'orientationchange', this); + eventType(window, 'resize', this); - if ( this.options.click ) { - eventType(this.wrapper, 'click', this, true); - } + if ( this.options.click ) { + eventType(this.wrapper, 'click', this, true); + } - if ( !this.options.disableMouse ) { - eventType(this.wrapper, 'mousedown', this); - eventType(target, 'mousemove', this); - eventType(target, 'mousecancel', this); - eventType(target, 'mouseup', this); - } + if ( !this.options.disableMouse ) { + eventType(this.wrapper, 'mousedown', this); + eventType(target, 'mousemove', this); + eventType(target, 'mousecancel', this); + eventType(target, 'mouseup', this); + } - if ( utils.hasPointer && !this.options.disablePointer ) { - eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this); - eventType(target, utils.prefixPointerEvent('pointermove'), this); - eventType(target, utils.prefixPointerEvent('pointercancel'), this); - eventType(target, utils.prefixPointerEvent('pointerup'), this); - } + if ( utils.hasPointer && !this.options.disablePointer ) { + eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this); + eventType(target, utils.prefixPointerEvent('pointermove'), this); + eventType(target, utils.prefixPointerEvent('pointercancel'), this); + eventType(target, utils.prefixPointerEvent('pointerup'), this); + } - if ( utils.hasTouch && !this.options.disableTouch ) { - eventType(this.wrapper, 'touchstart', this); - eventType(target, 'touchmove', this); - eventType(target, 'touchcancel', this); - eventType(target, 'touchend', this); - } + if ( utils.hasTouch && !this.options.disableTouch ) { + eventType(this.wrapper, 'touchstart', this); + eventType(target, 'touchmove', this); + eventType(target, 'touchcancel', this); + eventType(target, 'touchend', this); + } - eventType(this.scroller, 'transitionend', this); - eventType(this.scroller, 'webkitTransitionEnd', this); - eventType(this.scroller, 'oTransitionEnd', this); - eventType(this.scroller, 'MSTransitionEnd', this); - }, + eventType(this.scroller, 'transitionend', this); + eventType(this.scroller, 'webkitTransitionEnd', this); + eventType(this.scroller, 'oTransitionEnd', this); + eventType(this.scroller, 'MSTransitionEnd', this); + }, - getComputedPosition: function () { - var matrix = window.getComputedStyle(this.scroller, null), - x, y; + getComputedPosition: function () { + var matrix = window.getComputedStyle(this.scroller, null), + x, y; - if ( this.options.useTransform ) { - matrix = matrix[utils.style.transform].split(')')[0].split(', '); - x = +(matrix[12] || matrix[4]); - y = +(matrix[13] || matrix[5]); - } else { - x = +matrix.left.replace(/[^-\d.]/g, ''); - y = +matrix.top.replace(/[^-\d.]/g, ''); - } + if ( this.options.useTransform ) { + matrix = matrix[utils.style.transform].split(')')[0].split(', '); + x = +(matrix[12] || matrix[4]); + y = +(matrix[13] || matrix[5]); + } else { + x = +matrix.left.replace(/[^-\d.]/g, ''); + y = +matrix.top.replace(/[^-\d.]/g, ''); + } - return { x: x, y: y }; - }, + return { x: x, y: y }; + }, + _initIndicators: function () { + var interactive = this.options.interactiveScrollbars, + customStyle = typeof this.options.scrollbars != 'string', + indicators = [], + indicator; - _initIndicators: function () { - var interactive = this.options.interactiveScrollbars, - customStyle = typeof this.options.scrollbars != 'string', - indicators = [], - indicator; + var that = this; - var that = this; + this.indicators = []; - this.indicators = []; + if ( this.options.scrollbars ) { + // Vertical scrollbar + if ( this.options.scrollY ) { + indicator = { + el: createDefaultScrollbar('v', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenX: false + }; - if ( this.options.scrollbars ) { - // Vertical scrollbar - if ( this.options.scrollY ) { - indicator = { - el: createDefaultScrollbar('v', interactive, this.options.scrollbars), - interactive: interactive, - defaultScrollbars: true, - customStyle: customStyle, - resize: this.options.resizeScrollbars, - shrink: this.options.shrinkScrollbars, - fade: this.options.fadeScrollbars, - listenX: false - }; + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } - this.wrapper.appendChild(indicator.el); - indicators.push(indicator); - } + // Horizontal scrollbar + if ( this.options.scrollX ) { + indicator = { + el: createDefaultScrollbar('h', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenY: false + }; - // Horizontal scrollbar - if ( this.options.scrollX ) { - indicator = { - el: createDefaultScrollbar('h', interactive, this.options.scrollbars), - interactive: interactive, - defaultScrollbars: true, - customStyle: customStyle, - resize: this.options.resizeScrollbars, - shrink: this.options.shrinkScrollbars, - fade: this.options.fadeScrollbars, - listenY: false - }; + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + } - this.wrapper.appendChild(indicator.el); - indicators.push(indicator); - } - } + if ( this.options.indicators ) { + // TODO: check concat compatibility + indicators = indicators.concat(this.options.indicators); + } - if ( this.options.indicators ) { - // TODO: check concat compatibility - indicators = indicators.concat(this.options.indicators); - } + for ( var i = indicators.length; i--; ) { + this.indicators.push( new Indicator(this, indicators[i]) ); + } - for ( var i = indicators.length; i--; ) { - this.indicators.push( new Indicator(this, indicators[i]) ); - } + // TODO: check if we can use array.map (wide compatibility and performance issues) + function _indicatorsMap (fn) { + if (that.indicators) { + for ( var i = that.indicators.length; i--; ) { + fn.call(that.indicators[i]); + } + } + } - // TODO: check if we can use array.map (wide compatibility and performance issues) - function _indicatorsMap (fn) { - for ( var i = that.indicators.length; i--; ) { - fn.call(that.indicators[i]); - } - } + if ( this.options.fadeScrollbars ) { + this.on('scrollEnd', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); - if ( this.options.fadeScrollbars ) { - this.on('scrollEnd', function () { - _indicatorsMap(function () { - this.fade(); - }); - }); + this.on('scrollCancel', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); - this.on('scrollCancel', function () { - _indicatorsMap(function () { - this.fade(); - }); - }); + this.on('scrollStart', function () { + _indicatorsMap(function () { + this.fade(1); + }); + }); - this.on('scrollStart', function () { - _indicatorsMap(function () { - this.fade(1); - }); - }); + this.on('beforeScrollStart', function () { + _indicatorsMap(function () { + this.fade(1, true); + }); + }); + } - this.on('beforeScrollStart', function () { - _indicatorsMap(function () { - this.fade(1, true); - }); - }); - } + this.on('refresh', function () { + _indicatorsMap(function () { + this.refresh(); + }); + }); - this.on('refresh', function () { - _indicatorsMap(function () { - this.refresh(); - }); - }); + this.on('destroy', function () { + _indicatorsMap(function () { + this.destroy(); + }); - this.on('destroy', function () { - _indicatorsMap(function () { - this.destroy(); - }); + delete this.indicators; + }); + }, - delete this.indicators; - }); - }, + _initWheel: function () { + utils.addEvent(this.wrapper, 'wheel', this); + utils.addEvent(this.wrapper, 'mousewheel', this); + utils.addEvent(this.wrapper, 'DOMMouseScroll', this); - _initWheel: function () { - utils.addEvent(this.wrapper, 'wheel', this); - utils.addEvent(this.wrapper, 'mousewheel', this); - utils.addEvent(this.wrapper, 'DOMMouseScroll', this); + this.on('destroy', function () { + clearTimeout(this.wheelTimeout); + this.wheelTimeout = null; + utils.removeEvent(this.wrapper, 'wheel', this); + utils.removeEvent(this.wrapper, 'mousewheel', this); + utils.removeEvent(this.wrapper, 'DOMMouseScroll', this); + }); + }, - this.on('destroy', function () { - utils.removeEvent(this.wrapper, 'wheel', this); - utils.removeEvent(this.wrapper, 'mousewheel', this); - utils.removeEvent(this.wrapper, 'DOMMouseScroll', this); - }); - }, + _wheel: function (e) { + if ( !this.enabled ) { + return; + } - _wheel: function (e) { - if ( !this.enabled ) { - return; - } + e.preventDefault(); - e.preventDefault(); - e.stopPropagation(); + var wheelDeltaX, wheelDeltaY, + newX, newY, + that = this; - var wheelDeltaX, wheelDeltaY, - newX, newY, - that = this; + if ( this.wheelTimeout === undefined ) { + that._execEvent('scrollStart'); + } - if ( this.wheelTimeout === undefined ) { - that._execEvent('scrollStart'); - } + // Execute the scrollEnd event after 400ms the wheel stopped scrolling + clearTimeout(this.wheelTimeout); + this.wheelTimeout = setTimeout(function () { + if(!that.options.snap) { + that._execEvent('scrollEnd'); + } + that.wheelTimeout = undefined; + }, 400); - // Execute the scrollEnd event after 400ms the wheel stopped scrolling - clearTimeout(this.wheelTimeout); - this.wheelTimeout = setTimeout(function () { - that._execEvent('scrollEnd'); - that.wheelTimeout = undefined; - }, 400); + if ( 'deltaX' in e ) { + if (e.deltaMode === 1) { + wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed; + wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed; + } else { + wheelDeltaX = -e.deltaX; + wheelDeltaY = -e.deltaY; + } + } else if ( 'wheelDeltaX' in e ) { + wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed; + wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed; + } else if ( 'wheelDelta' in e ) { + wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed; + } else if ( 'detail' in e ) { + wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed; + } else { + return; + } - if ( 'deltaX' in e ) { - if (e.deltaMode === 1) { - wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed; - wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed; - } else { - wheelDeltaX = -e.deltaX; - wheelDeltaY = -e.deltaY; - } - } else if ( 'wheelDeltaX' in e ) { - wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed; - wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed; - } else if ( 'wheelDelta' in e ) { - wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed; - } else if ( 'detail' in e ) { - wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed; - } else { - return; - } + wheelDeltaX *= this.options.invertWheelDirection; + wheelDeltaY *= this.options.invertWheelDirection; - wheelDeltaX *= this.options.invertWheelDirection; - wheelDeltaY *= this.options.invertWheelDirection; + if ( !this.hasVerticalScroll ) { + wheelDeltaX = wheelDeltaY; + wheelDeltaY = 0; + } - if ( !this.hasVerticalScroll ) { - wheelDeltaX = wheelDeltaY; - wheelDeltaY = 0; - } + if ( this.options.snap ) { + newX = this.currentPage.pageX; + newY = this.currentPage.pageY; - if ( this.options.snap ) { - newX = this.currentPage.pageX; - newY = this.currentPage.pageY; + if ( wheelDeltaX > 0 ) { + newX--; + } else if ( wheelDeltaX < 0 ) { + newX++; + } - if ( wheelDeltaX > 0 ) { - newX--; - } else if ( wheelDeltaX < 0 ) { - newX++; - } + if ( wheelDeltaY > 0 ) { + newY--; + } else if ( wheelDeltaY < 0 ) { + newY++; + } - if ( wheelDeltaY > 0 ) { - newY--; - } else if ( wheelDeltaY < 0 ) { - newY++; - } + this.goToPage(newX, newY); - this.goToPage(newX, newY); + return; + } - return; - } + newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0); + newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0); - newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0); - newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0); + this.directionX = wheelDeltaX > 0 ? -1 : wheelDeltaX < 0 ? 1 : 0; + this.directionY = wheelDeltaY > 0 ? -1 : wheelDeltaY < 0 ? 1 : 0; - if ( newX > 0 ) { - newX = 0; - } else if ( newX < this.maxScrollX ) { - newX = this.maxScrollX; - } + if ( newX > 0 ) { + newX = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + } - if ( newY > 0 ) { - newY = 0; - } else if ( newY < this.maxScrollY ) { - newY = this.maxScrollY; - } + if ( newY > 0 ) { + newY = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + } - this.scrollTo(newX, newY, 0); + this.scrollTo(newX, newY, 0); // INSERT POINT: _wheel - }, + }, - _initSnap: function () { - this.currentPage = {}; + _initSnap: function () { + this.currentPage = {}; - if ( typeof this.options.snap == 'string' ) { - this.options.snap = this.scroller.querySelectorAll(this.options.snap); - } + if ( typeof this.options.snap == 'string' ) { + this.options.snap = this.scroller.querySelectorAll(this.options.snap); + } - this.on('refresh', function () { - var i = 0, l, - m = 0, n, - cx, cy, - x = 0, y, - stepX = this.options.snapStepX || this.wrapperWidth, - stepY = this.options.snapStepY || this.wrapperHeight, - el; + this.on('refresh', function () { + var i = 0, l, + m = 0, n, + cx, cy, + x = 0, y, + stepX = this.options.snapStepX || this.wrapperWidth, + stepY = this.options.snapStepY || this.wrapperHeight, + el, + rect; - this.pages = []; + this.pages = []; - if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) { - return; - } + if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) { + return; + } - if ( this.options.snap === true ) { - cx = Math.round( stepX / 2 ); - cy = Math.round( stepY / 2 ); + if ( this.options.snap === true ) { + cx = Math.round( stepX / 2 ); + cy = Math.round( stepY / 2 ); - while ( x > -this.scrollerWidth ) { - this.pages[i] = []; - l = 0; - y = 0; + while ( x > -this.scrollerWidth ) { + this.pages[i] = []; + l = 0; + y = 0; - while ( y > -this.scrollerHeight ) { - this.pages[i][l] = { - x: Math.max(x, this.maxScrollX), - y: Math.max(y, this.maxScrollY), - width: stepX, - height: stepY, - cx: x - cx, - cy: y - cy - }; + while ( y > -this.scrollerHeight ) { + this.pages[i][l] = { + x: Math.max(x, this.maxScrollX), + y: Math.max(y, this.maxScrollY), + width: stepX, + height: stepY, + cx: x - cx, + cy: y - cy + }; - y -= stepY; - l++; - } + y -= stepY; + l++; + } - x -= stepX; - i++; - } - } else { - el = this.options.snap; - l = el.length; - n = -1; + x -= stepX; + i++; + } + } else { + el = this.options.snap; + l = el.length; + n = -1; - for ( ; i < l; i++ ) { - if ( i === 0 || el[i].offsetLeft <= el[i-1].offsetLeft ) { - m = 0; - n++; - } + for ( ; i < l; i++ ) { + rect = utils.getRect(el[i]); + if ( i === 0 || rect.left <= utils.getRect(el[i-1]).left ) { + m = 0; + n++; + } - if ( !this.pages[m] ) { - this.pages[m] = []; - } + if ( !this.pages[m] ) { + this.pages[m] = []; + } - x = Math.max(-el[i].offsetLeft, this.maxScrollX); - y = Math.max(-el[i].offsetTop, this.maxScrollY); - cx = x - Math.round(el[i].offsetWidth / 2); - cy = y - Math.round(el[i].offsetHeight / 2); + x = Math.max(-rect.left, this.maxScrollX); + y = Math.max(-rect.top, this.maxScrollY); + cx = x - Math.round(rect.width / 2); + cy = y - Math.round(rect.height / 2); - this.pages[m][n] = { - x: x, - y: y, - width: el[i].offsetWidth, - height: el[i].offsetHeight, - cx: cx, - cy: cy - }; + this.pages[m][n] = { + x: x, + y: y, + width: rect.width, + height: rect.height, + cx: cx, + cy: cy + }; - if ( x > this.maxScrollX ) { - m++; - } - } - } + if ( x > this.maxScrollX ) { + m++; + } + } + } - this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0); + this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0); - // Update snap threshold if needed - if ( this.options.snapThreshold % 1 === 0 ) { - this.snapThresholdX = this.options.snapThreshold; - this.snapThresholdY = this.options.snapThreshold; - } else { - this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold); - this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold); - } - }); + // Update snap threshold if needed + if ( this.options.snapThreshold % 1 === 0 ) { + this.snapThresholdX = this.options.snapThreshold; + this.snapThresholdY = this.options.snapThreshold; + } else { + this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold); + this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold); + } + }); - this.on('flick', function () { - var time = this.options.snapSpeed || Math.max( - Math.max( - Math.min(Math.abs(this.x - this.startX), 1000), - Math.min(Math.abs(this.y - this.startY), 1000) - ), 300); + this.on('flick', function () { + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.x - this.startX), 1000), + Math.min(Math.abs(this.y - this.startY), 1000) + ), 300); - this.goToPage( - this.currentPage.pageX + this.directionX, - this.currentPage.pageY + this.directionY, - time - ); - }); - }, + this.goToPage( + this.currentPage.pageX + this.directionX, + this.currentPage.pageY + this.directionY, + time + ); + }); + }, - _nearestSnap: function (x, y) { - if ( !this.pages.length ) { - return { x: 0, y: 0, pageX: 0, pageY: 0 }; - } + _nearestSnap: function (x, y) { + if ( !this.pages.length ) { + return { x: 0, y: 0, pageX: 0, pageY: 0 }; + } - var i = 0, - l = this.pages.length, - m = 0; + var i = 0, + l = this.pages.length, + m = 0; - // Check if we exceeded the snap threshold - if ( Math.abs(x - this.absStartX) < this.snapThresholdX && - Math.abs(y - this.absStartY) < this.snapThresholdY ) { - return this.currentPage; - } + // Check if we exceeded the snap threshold + if ( Math.abs(x - this.absStartX) < this.snapThresholdX && + Math.abs(y - this.absStartY) < this.snapThresholdY ) { + return this.currentPage; + } - if ( x > 0 ) { - x = 0; - } else if ( x < this.maxScrollX ) { - x = this.maxScrollX; - } + if ( x > 0 ) { + x = 0; + } else if ( x < this.maxScrollX ) { + x = this.maxScrollX; + } - if ( y > 0 ) { - y = 0; - } else if ( y < this.maxScrollY ) { - y = this.maxScrollY; - } + if ( y > 0 ) { + y = 0; + } else if ( y < this.maxScrollY ) { + y = this.maxScrollY; + } - for ( ; i < l; i++ ) { - if ( x >= this.pages[i][0].cx ) { - x = this.pages[i][0].x; - break; - } - } + for ( ; i < l; i++ ) { + if ( x >= this.pages[i][0].cx ) { + x = this.pages[i][0].x; + break; + } + } - l = this.pages[i].length; + l = this.pages[i].length; - for ( ; m < l; m++ ) { - if ( y >= this.pages[0][m].cy ) { - y = this.pages[0][m].y; - break; - } - } + for ( ; m < l; m++ ) { + if ( y >= this.pages[0][m].cy ) { + y = this.pages[0][m].y; + break; + } + } - if ( i == this.currentPage.pageX ) { - i += this.directionX; + if ( i == this.currentPage.pageX ) { + i += this.directionX; - if ( i < 0 ) { - i = 0; - } else if ( i >= this.pages.length ) { - i = this.pages.length - 1; - } + if ( i < 0 ) { + i = 0; + } else if ( i >= this.pages.length ) { + i = this.pages.length - 1; + } - x = this.pages[i][0].x; - } + x = this.pages[i][0].x; + } - if ( m == this.currentPage.pageY ) { - m += this.directionY; + if ( m == this.currentPage.pageY ) { + m += this.directionY; - if ( m < 0 ) { - m = 0; - } else if ( m >= this.pages[0].length ) { - m = this.pages[0].length - 1; - } + if ( m < 0 ) { + m = 0; + } else if ( m >= this.pages[0].length ) { + m = this.pages[0].length - 1; + } - y = this.pages[0][m].y; - } + y = this.pages[0][m].y; + } - return { - x: x, - y: y, - pageX: i, - pageY: m - }; - }, + return { + x: x, + y: y, + pageX: i, + pageY: m + }; + }, - goToPage: function (x, y, time, easing) { - easing = easing || this.options.bounceEasing; + goToPage: function (x, y, time, easing) { + easing = easing || this.options.bounceEasing; - if ( x >= this.pages.length ) { - x = this.pages.length - 1; - } else if ( x < 0 ) { - x = 0; - } + if ( x >= this.pages.length ) { + x = this.pages.length - 1; + } else if ( x < 0 ) { + x = 0; + } - if ( y >= this.pages[x].length ) { - y = this.pages[x].length - 1; - } else if ( y < 0 ) { - y = 0; - } + if ( y >= this.pages[x].length ) { + y = this.pages[x].length - 1; + } else if ( y < 0 ) { + y = 0; + } - var posX = this.pages[x][y].x, - posY = this.pages[x][y].y; + var posX = this.pages[x][y].x, + posY = this.pages[x][y].y; - time = time === undefined ? this.options.snapSpeed || Math.max( - Math.max( - Math.min(Math.abs(posX - this.x), 1000), - Math.min(Math.abs(posY - this.y), 1000) - ), 300) : time; + time = time === undefined ? this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(posX - this.x), 1000), + Math.min(Math.abs(posY - this.y), 1000) + ), 300) : time; - this.currentPage = { - x: posX, - y: posY, - pageX: x, - pageY: y - }; + this.currentPage = { + x: posX, + y: posY, + pageX: x, + pageY: y + }; - this.scrollTo(posX, posY, time, easing); - }, + this.scrollTo(posX, posY, time, easing); + }, - next: function (time, easing) { - var x = this.currentPage.pageX, - y = this.currentPage.pageY; + next: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; - x++; + x++; - if ( x >= this.pages.length && this.hasVerticalScroll ) { - x = 0; - y++; - } + if ( x >= this.pages.length && this.hasVerticalScroll ) { + x = 0; + y++; + } - this.goToPage(x, y, time, easing); - }, + this.goToPage(x, y, time, easing); + }, - prev: function (time, easing) { - var x = this.currentPage.pageX, - y = this.currentPage.pageY; + prev: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; - x--; + x--; - if ( x < 0 && this.hasVerticalScroll ) { - x = 0; - y--; - } + if ( x < 0 && this.hasVerticalScroll ) { + x = 0; + y--; + } - this.goToPage(x, y, time, easing); - }, + this.goToPage(x, y, time, easing); + }, - _initKeys: function (e) { - // default key bindings - var keys = { - pageUp: 33, - pageDown: 34, - end: 35, - home: 36, - left: 37, - up: 38, - right: 39, - down: 40 - }; - var i; + _initKeys: function (e) { + // default key bindings + var keys = { + pageUp: 33, + pageDown: 34, + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40 + }; + var i; - // if you give me characters I give you keycode - if ( typeof this.options.keyBindings == 'object' ) { - for ( i in this.options.keyBindings ) { - if ( typeof this.options.keyBindings[i] == 'string' ) { - this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0); - } - } - } else { - this.options.keyBindings = {}; - } + // if you give me characters I give you keycode + if ( typeof this.options.keyBindings == 'object' ) { + for ( i in this.options.keyBindings ) { + if ( typeof this.options.keyBindings[i] == 'string' ) { + this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0); + } + } + } else { + this.options.keyBindings = {}; + } - for ( i in keys ) { - this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i]; - } + for ( i in keys ) { + this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i]; + } - utils.addEvent(window, 'keydown', this); + utils.addEvent(window, 'keydown', this); - this.on('destroy', function () { - utils.removeEvent(window, 'keydown', this); - }); - }, + this.on('destroy', function () { + utils.removeEvent(window, 'keydown', this); + }); + }, - _key: function (e) { - if ( !this.enabled ) { - return; - } + _key: function (e) { + if ( !this.enabled ) { + return; + } - var snap = this.options.snap, // we are using this alot, better to cache it - newX = snap ? this.currentPage.pageX : this.x, - newY = snap ? this.currentPage.pageY : this.y, - now = utils.getTime(), - prevTime = this.keyTime || 0, - acceleration = 0.250, - pos; + var snap = this.options.snap, // we are using this alot, better to cache it + newX = snap ? this.currentPage.pageX : this.x, + newY = snap ? this.currentPage.pageY : this.y, + now = utils.getTime(), + prevTime = this.keyTime || 0, + acceleration = 0.250, + pos; - if ( this.options.useTransition && this.isInTransition ) { - pos = this.getComputedPosition(); + if ( this.options.useTransition && this.isInTransition ) { + pos = this.getComputedPosition(); - this._translate(Math.round(pos.x), Math.round(pos.y)); - this.isInTransition = false; - } + this._translate(Math.round(pos.x), Math.round(pos.y)); + this.isInTransition = false; + } - this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0; + this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0; - switch ( e.keyCode ) { - case this.options.keyBindings.pageUp: - if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { - newX += snap ? 1 : this.wrapperWidth; - } else { - newY += snap ? 1 : this.wrapperHeight; - } - break; - case this.options.keyBindings.pageDown: - if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { - newX -= snap ? 1 : this.wrapperWidth; - } else { - newY -= snap ? 1 : this.wrapperHeight; - } - break; - case this.options.keyBindings.end: - newX = snap ? this.pages.length-1 : this.maxScrollX; - newY = snap ? this.pages[0].length-1 : this.maxScrollY; - break; - case this.options.keyBindings.home: - newX = 0; - newY = 0; - break; - case this.options.keyBindings.left: - newX += snap ? -1 : 5 + this.keyAcceleration>>0; - break; - case this.options.keyBindings.up: - newY += snap ? 1 : 5 + this.keyAcceleration>>0; - break; - case this.options.keyBindings.right: - newX -= snap ? -1 : 5 + this.keyAcceleration>>0; - break; - case this.options.keyBindings.down: - newY -= snap ? 1 : 5 + this.keyAcceleration>>0; - break; - default: - return; - } + switch ( e.keyCode ) { + case this.options.keyBindings.pageUp: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX += snap ? 1 : this.wrapperWidth; + } else { + newY += snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.pageDown: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX -= snap ? 1 : this.wrapperWidth; + } else { + newY -= snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.end: + newX = snap ? this.pages.length-1 : this.maxScrollX; + newY = snap ? this.pages[0].length-1 : this.maxScrollY; + break; + case this.options.keyBindings.home: + newX = 0; + newY = 0; + break; + case this.options.keyBindings.left: + newX += snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.up: + newY += snap ? 1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.right: + newX -= snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.down: + newY -= snap ? 1 : 5 + this.keyAcceleration>>0; + break; + default: + return; + } - if ( snap ) { - this.goToPage(newX, newY); - return; - } + if ( snap ) { + this.goToPage(newX, newY); + return; + } - if ( newX > 0 ) { - newX = 0; - this.keyAcceleration = 0; - } else if ( newX < this.maxScrollX ) { - newX = this.maxScrollX; - this.keyAcceleration = 0; - } + if ( newX > 0 ) { + newX = 0; + this.keyAcceleration = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + this.keyAcceleration = 0; + } - if ( newY > 0 ) { - newY = 0; - this.keyAcceleration = 0; - } else if ( newY < this.maxScrollY ) { - newY = this.maxScrollY; - this.keyAcceleration = 0; - } + if ( newY > 0 ) { + newY = 0; + this.keyAcceleration = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + this.keyAcceleration = 0; + } - this.scrollTo(newX, newY, 0); + this.scrollTo(newX, newY, 0); - this.keyTime = now; - }, + this.keyTime = now; + }, - _animate: function (destX, destY, duration, easingFn) { - var that = this, - startX = this.x, - startY = this.y, - startTime = utils.getTime(), - destTime = startTime + duration; + _animate: function (destX, destY, duration, easingFn) { + var that = this, + startX = this.x, + startY = this.y, + startTime = utils.getTime(), + destTime = startTime + duration; - function step () { - var now = utils.getTime(), - newX, newY, - easing; + function step () { + var now = utils.getTime(), + newX, newY, + easing; - if ( now >= destTime ) { - that.isAnimating = false; - that._translate(destX, destY); + if ( now >= destTime ) { + that.isAnimating = false; + that._translate(destX, destY); - if ( !that.resetPosition(that.options.bounceTime) ) { - that._execEvent('scrollEnd'); - } + if ( !that.resetPosition(that.options.bounceTime) ) { + that._execEvent('scrollEnd'); + } - return; - } + return; + } - now = ( now - startTime ) / duration; - easing = easingFn(now); - newX = ( destX - startX ) * easing + startX; - newY = ( destY - startY ) * easing + startY; - that._translate(newX, newY); + now = ( now - startTime ) / duration; + easing = easingFn(now); + newX = ( destX - startX ) * easing + startX; + newY = ( destY - startY ) * easing + startY; + that._translate(newX, newY); - if ( that.isAnimating ) { - rAF(step); - } - } + if ( that.isAnimating ) { + rAF(step); + } + } - this.isAnimating = true; - step(); - }, - handleEvent: function (e) { - switch ( e.type ) { - case 'touchstart': - case 'pointerdown': - case 'MSPointerDown': - case 'mousedown': - this._start(e); - break; - case 'touchmove': - case 'pointermove': - case 'MSPointerMove': - case 'mousemove': - this._move(e); - break; - case 'touchend': - case 'pointerup': - case 'MSPointerUp': - case 'mouseup': - case 'touchcancel': - case 'pointercancel': - case 'MSPointerCancel': - case 'mousecancel': - this._end(e); - break; - case 'orientationchange': - case 'resize': - this._resize(); - break; - case 'transitionend': - case 'webkitTransitionEnd': - case 'oTransitionEnd': - case 'MSTransitionEnd': - this._transitionEnd(e); - break; - case 'wheel': - case 'DOMMouseScroll': - case 'mousewheel': - this._wheel(e); - break; - case 'keydown': - this._key(e); - break; - case 'click': - if ( !e._constructed ) { - e.preventDefault(); - e.stopPropagation(); - } - break; - } - } + this.isAnimating = true; + step(); + }, + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + case 'orientationchange': + case 'resize': + this._resize(); + break; + case 'transitionend': + case 'webkitTransitionEnd': + case 'oTransitionEnd': + case 'MSTransitionEnd': + this._transitionEnd(e); + break; + case 'wheel': + case 'DOMMouseScroll': + case 'mousewheel': + this._wheel(e); + break; + case 'keydown': + this._key(e); + break; + case 'click': + if ( this.enabled && !e._constructed ) { + e.preventDefault(); + e.stopPropagation(); + } + break; + } + } }; function createDefaultScrollbar (direction, interactive, type) { - var scrollbar = document.createElement('div'), - indicator = document.createElement('div'); + var scrollbar = document.createElement('div'), + indicator = document.createElement('div'); - if ( type === true ) { - scrollbar.style.cssText = 'position:absolute;z-index:9999'; - indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px'; - } + if ( type === true ) { + scrollbar.style.cssText = 'position:absolute;z-index:9999'; + indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px'; + } - indicator.className = 'iScrollIndicator'; + indicator.className = 'iScrollIndicator'; - if ( direction == 'h' ) { - if ( type === true ) { - scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0'; - indicator.style.height = '100%'; - } - scrollbar.className = 'iScrollHorizontalScrollbar'; - } else { - if ( type === true ) { - scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px'; - indicator.style.width = '100%'; - } - scrollbar.className = 'iScrollVerticalScrollbar'; - } + if ( direction == 'h' ) { + if ( type === true ) { + scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0'; + indicator.style.height = '100%'; + } + scrollbar.className = 'iScrollHorizontalScrollbar'; + } else { + if ( type === true ) { + scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px'; + indicator.style.width = '100%'; + } + scrollbar.className = 'iScrollVerticalScrollbar'; + } - scrollbar.style.cssText += ';overflow:hidden'; + scrollbar.style.cssText += ';overflow:hidden'; - if ( !interactive ) { - scrollbar.style.pointerEvents = 'none'; - } + if ( !interactive ) { + scrollbar.style.pointerEvents = 'none'; + } - scrollbar.appendChild(indicator); + scrollbar.appendChild(indicator); - return scrollbar; + return scrollbar; } function Indicator (scroller, options) { - this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el; - this.wrapperStyle = this.wrapper.style; - this.indicator = this.wrapper.children[0]; - this.indicatorStyle = this.indicator.style; - this.scroller = scroller; + this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el; + this.wrapperStyle = this.wrapper.style; + this.indicator = this.wrapper.children[0]; + this.indicatorStyle = this.indicator.style; + this.scroller = scroller; - this.options = { - listenX: true, - listenY: true, - interactive: false, - resize: true, - defaultScrollbars: false, - shrink: false, - fade: false, - speedRatioX: 0, - speedRatioY: 0 - }; + this.options = { + listenX: true, + listenY: true, + interactive: false, + resize: true, + defaultScrollbars: false, + shrink: false, + fade: false, + speedRatioX: 0, + speedRatioY: 0 + }; - for ( var i in options ) { - this.options[i] = options[i]; - } + for ( var i in options ) { + this.options[i] = options[i]; + } - this.sizeRatioX = 1; - this.sizeRatioY = 1; - this.maxPosX = 0; - this.maxPosY = 0; + this.sizeRatioX = 1; + this.sizeRatioY = 1; + this.maxPosX = 0; + this.maxPosY = 0; - if ( this.options.interactive ) { - if ( !this.options.disableTouch ) { - utils.addEvent(this.indicator, 'touchstart', this); - utils.addEvent(window, 'touchend', this); - } - if ( !this.options.disablePointer ) { - utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); - utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this); - } - if ( !this.options.disableMouse ) { - utils.addEvent(this.indicator, 'mousedown', this); - utils.addEvent(window, 'mouseup', this); - } - } + if ( this.options.interactive ) { + if ( !this.options.disableTouch ) { + utils.addEvent(this.indicator, 'touchstart', this); + utils.addEvent(window, 'touchend', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(this.indicator, 'mousedown', this); + utils.addEvent(window, 'mouseup', this); + } + } - if ( this.options.fade ) { - this.wrapperStyle[utils.style.transform] = this.scroller.translateZ; - this.wrapperStyle[utils.style.transitionDuration] = utils.isBadAndroid ? '0.001s' : '0ms'; - this.wrapperStyle.opacity = '0'; - } + if ( this.options.fade ) { + this.wrapperStyle[utils.style.transform] = this.scroller.translateZ; + var durationProp = utils.style.transitionDuration; + if(!durationProp) { + return; + } + this.wrapperStyle[durationProp] = utils.isBadAndroid ? '0.0001ms' : '0ms'; + // remove 0.0001ms + var self = this; + if(utils.isBadAndroid) { + rAF(function() { + if(self.wrapperStyle[durationProp] === '0.0001ms') { + self.wrapperStyle[durationProp] = '0s'; + } + }); + } + this.wrapperStyle.opacity = '0'; + } } Indicator.prototype = { - handleEvent: function (e) { - switch ( e.type ) { - case 'touchstart': - case 'pointerdown': - case 'MSPointerDown': - case 'mousedown': - this._start(e); - break; - case 'touchmove': - case 'pointermove': - case 'MSPointerMove': - case 'mousemove': - this._move(e); - break; - case 'touchend': - case 'pointerup': - case 'MSPointerUp': - case 'mouseup': - case 'touchcancel': - case 'pointercancel': - case 'MSPointerCancel': - case 'mousecancel': - this._end(e); - break; - } - }, + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + } + }, - destroy: function () { - if ( this.options.interactive ) { - utils.removeEvent(this.indicator, 'touchstart', this); - utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); - utils.removeEvent(this.indicator, 'mousedown', this); + destroy: function () { + if ( this.options.fadeScrollbars ) { + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; + } + if ( this.options.interactive ) { + utils.removeEvent(this.indicator, 'touchstart', this); + utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.removeEvent(this.indicator, 'mousedown', this); - utils.removeEvent(window, 'touchmove', this); - utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); - utils.removeEvent(window, 'mousemove', this); + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); - utils.removeEvent(window, 'touchend', this); - utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this); - utils.removeEvent(window, 'mouseup', this); - } + utils.removeEvent(window, 'touchend', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this); + utils.removeEvent(window, 'mouseup', this); + } - if ( this.options.defaultScrollbars ) { - this.wrapper.parentNode.removeChild(this.wrapper); - } - }, + if ( this.options.defaultScrollbars && this.wrapper.parentNode ) { + this.wrapper.parentNode.removeChild(this.wrapper); + } + }, - _start: function (e) { - var point = e.touches ? e.touches[0] : e; + _start: function (e) { + var point = e.touches ? e.touches[0] : e; - e.preventDefault(); - e.stopPropagation(); + e.preventDefault(); + e.stopPropagation(); - this.transitionTime(); + this.transitionTime(); - this.initiated = true; - this.moved = false; - this.lastPointX = point.pageX; - this.lastPointY = point.pageY; + this.initiated = true; + this.moved = false; + this.lastPointX = point.pageX; + this.lastPointY = point.pageY; - this.startTime = utils.getTime(); + this.startTime = utils.getTime(); - if ( !this.options.disableTouch ) { - utils.addEvent(window, 'touchmove', this); - } - if ( !this.options.disablePointer ) { - utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this); - } - if ( !this.options.disableMouse ) { - utils.addEvent(window, 'mousemove', this); - } + if ( !this.options.disableTouch ) { + utils.addEvent(window, 'touchmove', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(window, 'mousemove', this); + } - this.scroller._execEvent('beforeScrollStart'); - }, + this.scroller._execEvent('beforeScrollStart'); + }, - _move: function (e) { - var point = e.touches ? e.touches[0] : e, - deltaX, deltaY, - newX, newY, - timestamp = utils.getTime(); + _move: function (e) { + var point = e.touches ? e.touches[0] : e, + deltaX, deltaY, + newX, newY, + timestamp = utils.getTime(); - if ( !this.moved ) { - this.scroller._execEvent('scrollStart'); - } + if ( !this.moved ) { + this.scroller._execEvent('scrollStart'); + } - this.moved = true; + this.moved = true; - deltaX = point.pageX - this.lastPointX; - this.lastPointX = point.pageX; + deltaX = point.pageX - this.lastPointX; + this.lastPointX = point.pageX; - deltaY = point.pageY - this.lastPointY; - this.lastPointY = point.pageY; + deltaY = point.pageY - this.lastPointY; + this.lastPointY = point.pageY; - newX = this.x + deltaX; - newY = this.y + deltaY; + newX = this.x + deltaX; + newY = this.y + deltaY; - this._pos(newX, newY); + this._pos(newX, newY); // INSERT POINT: indicator._move - e.preventDefault(); - e.stopPropagation(); - }, + e.preventDefault(); + e.stopPropagation(); + }, + + _end: function (e) { + if ( !this.initiated ) { + return; + } - _end: function (e) { - if ( !this.initiated ) { - return; - } + this.initiated = false; - this.initiated = false; + e.preventDefault(); + e.stopPropagation(); - e.preventDefault(); - e.stopPropagation(); + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); - utils.removeEvent(window, 'touchmove', this); - utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); - utils.removeEvent(window, 'mousemove', this); + if ( this.scroller.options.snap ) { + var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y); - if ( this.scroller.options.snap ) { - var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y); + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.scroller.x - snap.x), 1000), + Math.min(Math.abs(this.scroller.y - snap.y), 1000) + ), 300); - var time = this.options.snapSpeed || Math.max( - Math.max( - Math.min(Math.abs(this.scroller.x - snap.x), 1000), - Math.min(Math.abs(this.scroller.y - snap.y), 1000) - ), 300); + if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) { + this.scroller.directionX = 0; + this.scroller.directionY = 0; + this.scroller.currentPage = snap; + this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing); + } + } - if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) { - this.scroller.directionX = 0; - this.scroller.directionY = 0; - this.scroller.currentPage = snap; - this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing); - } - } + if ( this.moved ) { + this.scroller._execEvent('scrollEnd'); + } + }, - if ( this.moved ) { - this.scroller._execEvent('scrollEnd'); - } - }, + transitionTime: function (time) { + time = time || 0; + var durationProp = utils.style.transitionDuration; + if(!durationProp) { + return; + } - transitionTime: function (time) { - time = time || 0; - this.indicatorStyle[utils.style.transitionDuration] = time + 'ms'; + this.indicatorStyle[durationProp] = time + 'ms'; - if ( !time && utils.isBadAndroid ) { - this.indicatorStyle[utils.style.transitionDuration] = '0.001s'; - } - }, + if ( !time && utils.isBadAndroid ) { + this.indicatorStyle[durationProp] = '0.0001ms'; + // remove 0.0001ms + var self = this; + rAF(function() { + if(self.indicatorStyle[durationProp] === '0.0001ms') { + self.indicatorStyle[durationProp] = '0s'; + } + }); + } + }, - transitionTimingFunction: function (easing) { - this.indicatorStyle[utils.style.transitionTimingFunction] = easing; - }, + transitionTimingFunction: function (easing) { + this.indicatorStyle[utils.style.transitionTimingFunction] = easing; + }, - refresh: function () { - this.transitionTime(); + refresh: function () { + this.transitionTime(); - if ( this.options.listenX && !this.options.listenY ) { - this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; - } else if ( this.options.listenY && !this.options.listenX ) { - this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; - } else { - this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; - } + if ( this.options.listenX && !this.options.listenY ) { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; + } else if ( this.options.listenY && !this.options.listenX ) { + this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; + } else { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; + } - if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) { - utils.addClass(this.wrapper, 'iScrollBothScrollbars'); - utils.removeClass(this.wrapper, 'iScrollLoneScrollbar'); + if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) { + utils.addClass(this.wrapper, 'iScrollBothScrollbars'); + utils.removeClass(this.wrapper, 'iScrollLoneScrollbar'); - if ( this.options.defaultScrollbars && this.options.customStyle ) { - if ( this.options.listenX ) { - this.wrapper.style.right = '8px'; - } else { - this.wrapper.style.bottom = '8px'; - } - } - } else { - utils.removeClass(this.wrapper, 'iScrollBothScrollbars'); - utils.addClass(this.wrapper, 'iScrollLoneScrollbar'); + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '8px'; + } else { + this.wrapper.style.bottom = '8px'; + } + } + } else { + utils.removeClass(this.wrapper, 'iScrollBothScrollbars'); + utils.addClass(this.wrapper, 'iScrollLoneScrollbar'); - if ( this.options.defaultScrollbars && this.options.customStyle ) { - if ( this.options.listenX ) { - this.wrapper.style.right = '2px'; - } else { - this.wrapper.style.bottom = '2px'; - } - } - } + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '2px'; + } else { + this.wrapper.style.bottom = '2px'; + } + } + } - var r = this.wrapper.offsetHeight; // force refresh + utils.getRect(this.wrapper); // force refresh - if ( this.options.listenX ) { - this.wrapperWidth = this.wrapper.clientWidth; - if ( this.options.resize ) { - this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); - this.indicatorStyle.width = this.indicatorWidth + 'px'; - } else { - this.indicatorWidth = this.indicator.clientWidth; - } + if ( this.options.listenX ) { + this.wrapperWidth = this.wrapper.clientWidth; + if ( this.options.resize ) { + this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); + this.indicatorStyle.width = this.indicatorWidth + 'px'; + } else { + this.indicatorWidth = this.indicator.clientWidth; + } - this.maxPosX = this.wrapperWidth - this.indicatorWidth; + this.maxPosX = this.wrapperWidth - this.indicatorWidth; - if ( this.options.shrink == 'clip' ) { - this.minBoundaryX = -this.indicatorWidth + 8; - this.maxBoundaryX = this.wrapperWidth - 8; - } else { - this.minBoundaryX = 0; - this.maxBoundaryX = this.maxPosX; - } + if ( this.options.shrink == 'clip' ) { + this.minBoundaryX = -this.indicatorWidth + 8; + this.maxBoundaryX = this.wrapperWidth - 8; + } else { + this.minBoundaryX = 0; + this.maxBoundaryX = this.maxPosX; + } - this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); - } + this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); + } - if ( this.options.listenY ) { - this.wrapperHeight = this.wrapper.clientHeight; - if ( this.options.resize ) { - this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); - this.indicatorStyle.height = this.indicatorHeight + 'px'; - } else { - this.indicatorHeight = this.indicator.clientHeight; - } + if ( this.options.listenY ) { + this.wrapperHeight = this.wrapper.clientHeight; + if ( this.options.resize ) { + this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); + this.indicatorStyle.height = this.indicatorHeight + 'px'; + } else { + this.indicatorHeight = this.indicator.clientHeight; + } - this.maxPosY = this.wrapperHeight - this.indicatorHeight; + this.maxPosY = this.wrapperHeight - this.indicatorHeight; - if ( this.options.shrink == 'clip' ) { - this.minBoundaryY = -this.indicatorHeight + 8; - this.maxBoundaryY = this.wrapperHeight - 8; - } else { - this.minBoundaryY = 0; - this.maxBoundaryY = this.maxPosY; - } + if ( this.options.shrink == 'clip' ) { + this.minBoundaryY = -this.indicatorHeight + 8; + this.maxBoundaryY = this.wrapperHeight - 8; + } else { + this.minBoundaryY = 0; + this.maxBoundaryY = this.maxPosY; + } - this.maxPosY = this.wrapperHeight - this.indicatorHeight; - this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); - } + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); + } - this.updatePosition(); - }, + this.updatePosition(); + }, - updatePosition: function () { - var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, - y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; + updatePosition: function () { + var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, + y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; - if ( !this.options.ignoreBoundaries ) { - if ( x < this.minBoundaryX ) { - if ( this.options.shrink == 'scale' ) { - this.width = Math.max(this.indicatorWidth + x, 8); - this.indicatorStyle.width = this.width + 'px'; - } - x = this.minBoundaryX; - } else if ( x > this.maxBoundaryX ) { - if ( this.options.shrink == 'scale' ) { - this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8); - this.indicatorStyle.width = this.width + 'px'; - x = this.maxPosX + this.indicatorWidth - this.width; - } else { - x = this.maxBoundaryX; - } - } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) { - this.width = this.indicatorWidth; - this.indicatorStyle.width = this.width + 'px'; - } + if ( !this.options.ignoreBoundaries ) { + if ( x < this.minBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth + x, 8); + this.indicatorStyle.width = this.width + 'px'; + } + x = this.minBoundaryX; + } else if ( x > this.maxBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8); + this.indicatorStyle.width = this.width + 'px'; + x = this.maxPosX + this.indicatorWidth - this.width; + } else { + x = this.maxBoundaryX; + } + } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) { + this.width = this.indicatorWidth; + this.indicatorStyle.width = this.width + 'px'; + } - if ( y < this.minBoundaryY ) { - if ( this.options.shrink == 'scale' ) { - this.height = Math.max(this.indicatorHeight + y * 3, 8); - this.indicatorStyle.height = this.height + 'px'; - } - y = this.minBoundaryY; - } else if ( y > this.maxBoundaryY ) { - if ( this.options.shrink == 'scale' ) { - this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); - this.indicatorStyle.height = this.height + 'px'; - y = this.maxPosY + this.indicatorHeight - this.height; - } else { - y = this.maxBoundaryY; - } - } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) { - this.height = this.indicatorHeight; - this.indicatorStyle.height = this.height + 'px'; - } - } + if ( y < this.minBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight + y * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + } + y = this.minBoundaryY; + } else if ( y > this.maxBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + y = this.maxPosY + this.indicatorHeight - this.height; + } else { + y = this.maxBoundaryY; + } + } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) { + this.height = this.indicatorHeight; + this.indicatorStyle.height = this.height + 'px'; + } + } - this.x = x; - this.y = y; + this.x = x; + this.y = y; - if ( this.scroller.options.useTransform ) { - this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ; - } else { - this.indicatorStyle.left = x + 'px'; - this.indicatorStyle.top = y + 'px'; - } - }, + if ( this.scroller.options.useTransform ) { + this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ; + } else { + this.indicatorStyle.left = x + 'px'; + this.indicatorStyle.top = y + 'px'; + } + }, - _pos: function (x, y) { - if ( x < 0 ) { - x = 0; - } else if ( x > this.maxPosX ) { - x = this.maxPosX; - } + _pos: function (x, y) { + if ( x < 0 ) { + x = 0; + } else if ( x > this.maxPosX ) { + x = this.maxPosX; + } - if ( y < 0 ) { - y = 0; - } else if ( y > this.maxPosY ) { - y = this.maxPosY; - } + if ( y < 0 ) { + y = 0; + } else if ( y > this.maxPosY ) { + y = this.maxPosY; + } - x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x; - y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y; + x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x; + y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y; - this.scroller.scrollTo(x, y); - }, + this.scroller.scrollTo(x, y); + }, - fade: function (val, hold) { - if ( hold && !this.visible ) { - return; - } + fade: function (val, hold) { + if ( hold && !this.visible ) { + return; + } - clearTimeout(this.fadeTimeout); - this.fadeTimeout = null; + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; - var time = val ? 250 : 500, - delay = val ? 0 : 300; + var time = val ? 250 : 500, + delay = val ? 0 : 300; - val = val ? '1' : '0'; + val = val ? '1' : '0'; - this.wrapperStyle[utils.style.transitionDuration] = time + 'ms'; + this.wrapperStyle[utils.style.transitionDuration] = time + 'ms'; - this.fadeTimeout = setTimeout((function (val) { - this.wrapperStyle.opacity = val; - this.visible = +val; - }).bind(this, val), delay); - } + this.fadeTimeout = setTimeout((function (val) { + this.wrapperStyle.opacity = val; + this.visible = +val; + }).bind(this, val), delay); + } }; IScroll.utils = utils; if ( typeof module != 'undefined' && module.exports ) { - module.exports = IScroll; + module.exports = IScroll; +} else if ( typeof define == 'function' && define.amd ) { + define( function () { return IScroll; } ); } else { - window.IScroll = IScroll; + window.IScroll = IScroll; } })(window, document, Math);
\ No newline at end of file diff --git a/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js b/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js new file mode 100644 index 00000000..8229b168 --- /dev/null +++ b/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js @@ -0,0 +1,1778 @@ +// Copyright 2013 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +var goog=goog||{};goog.global=this;goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!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]:c[d]={}:c[d]=b};goog.define=function(a,b){var c=b;goog.exportPath_(a,c)};goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.provide=function(a){goog.exportPath_(a)}; +goog.setTestOnly=function(a){if(!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");};goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else 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){if(goog.DEPENDENCIES_ENABLED){var d;a=a.replace(/\\/g,"/");for(var e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a,a in e.pathToNames||(e.pathToNames[a]={}),e.pathToNames[a][d]=!0;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.useStrictRequires=!1;goog.ENABLE_DEBUG_LOADER=!0;goog.require=function(){};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a){return a}; +goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){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.DEPENDENCIES_ENABLED=!1; +goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document,a=a.getElementsByTagName("script"),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.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==b.readyState){if(b=/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}b.write('<script type="text/javascript" src="'+ +a+'">\x3c/script>');return!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=!0,e in d.requires))for(var g in d.requires[e])if(!goog.isProvided_(g))if(g in d.nameToPath)a(d.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e<b.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error("Undefined script input"); +},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js")); +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.isDef=function(a){return void 0!==a};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.isString=function(a){return"string"==typeof a}; +goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};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){"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(a.clone)return a.clone();var b="array"==b?[]:{},c;for(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_&&(goog.global.eval("var _et_ = 1;"),"undefined"!=typeof goog.global._et_?(delete goog.global._et_,goog.evalWorksForGlobals_=!0):goog.evalWorksForGlobals_=!1),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.body.appendChild(c); +b.body.removeChild(c)}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;goog.getCssName=function(a,b){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};return b?a+"-"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b}; +goog.getMsg=function(a,b){var c=b||{},d;for(d in c){var e=(""+c[d]).replace(/\$/g,"$$$$");a=a.replace(RegExp("\\{\\$"+d+"\\}","gi"),e)}return a};goog.getMsgWithFallback=function(a){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}; +goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() expects not to be running in strict mode. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=!1,g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[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){a.call(goog.global)};goog.MODIFY_FUNCTION_PROTOTYPES=!0; +goog.MODIFY_FUNCTION_PROTOTYPES&&(Function.prototype.bind=Function.prototype.bind||function(a,b){if(1<arguments.length){var c=Array.prototype.slice.call(arguments,1);c.unshift(this,a);return goog.bind.apply(null,c)}return goog.bind(this,a)},Function.prototype.partial=function(a){var b=Array.prototype.slice.call(arguments);b.unshift(this,null);return goog.bind.apply(null,b)},Function.prototype.inherits=function(a){goog.inherits(this,a)},Function.prototype.mixin=function(a){goog.mixin(this.prototype, +a)});var cvox={VERBOSITY_VERBOSE:0,VERBOSITY_BRIEF:1,ChromeVox:function(){}};cvox.ChromeVox.host=null;cvox.ChromeVox.msgs=null;cvox.ChromeVox.isActive=!0;cvox.ChromeVox.version=null;cvox.ChromeVox.earcons=null;cvox.ChromeVox.navigationManager=null;cvox.ChromeVox.serializer=null;cvox.ChromeVox.isStickyOn=!1;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVox.verbosity=cvox.VERBOSITY_VERBOSE;cvox.ChromeVox.typingEcho=0;cvox.ChromeVox.keyEcho={};cvox.ChromeVox.position={};cvox.ChromeVox.isChromeOS=-1!=navigator.userAgent.indexOf("CrOS"); +cvox.ChromeVox.isMac=-1!=navigator.platform.indexOf("Mac");cvox.ChromeVox.modKeyStr=cvox.ChromeVox.isChromeOS?"Shift+Search":cvox.ChromeVox.isMac?"Ctrl+Cmd":"Ctrl+Meta";cvox.ChromeVox.sequenceSwitchKeyCodes=[];cvox.ChromeVox.visitedUrls={};cvox.ChromeVox.markInUserCommand=function(){};cvox.ChromeVox.syncToNode=function(){};cvox.ChromeVox.speakNode=function(){};cvox.ChromeVox.executeUserCommand=function(){};cvox.ChromeVox.entireDocumentIsHidden=!1; +cvox.ChromeVox.storeOn=function(a){a.isStickyOn=cvox.ChromeVox.isStickyOn;cvox.ChromeVox.navigationManager.storeOn(a)};cvox.ChromeVox.readFrom=function(a){cvox.ChromeVox.isStickyOn=a.isStickyOn;cvox.ChromeVox.navigationManager.readFrom(a)};cvox.Cursor=function(a,b,c){this.node=a;this.index=b;this.text=c};cvox.Cursor.prototype.clone=function(){return new cvox.Cursor(this.node,this.index,this.text)};cvox.Cursor.prototype.copyFrom=function(a){this.node=a.node;this.index=a.index;this.text=a.text};cvox.Cursor.prototype.equals=function(a){return this.node==a.node&&this.index==a.index&&this.text==a.text};goog.debug={};goog.debug.Error=function(a){Error.captureStackTrace?Error.captureStackTrace(this,goog.debug.Error):this.stack=Error().stack||"";a&&(this.message=String(a))};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.string={};goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))}; +goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};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.isEmpty=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.isEmptySafe=function(a){return goog.string.isEmpty(goog.string.makeSafe(a))}; +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=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")}; +goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c<d?-1:c==d?0:1};goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g; +goog.string.numerateCompare=function(a,b){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var c=a.toLowerCase().match(goog.string.numerateCompareRegExp_),d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=Math.min(c.length,d.length),f=0;f<e;f++){var g=c[f],h=d[f];if(g!=h)return c=parseInt(g,10),!isNaN(c)&&(d=parseInt(h,10),!isNaN(d)&&c-d)?c-d:g<h?-1:1}return c.length!=d.length?c.length-d.length:a<b?-1:1};goog.string.urlEncode=function(a){return encodeURIComponent(String(a))}; +goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")}; +goog.string.htmlEscape=function(a,b){if(b)return a.replace(goog.string.amperRe_,"&").replace(goog.string.ltRe_,"<").replace(goog.string.gtRe_,">").replace(goog.string.quotRe_,""");if(!goog.string.allRe_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.amperRe_,"&"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.ltRe_,"<"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.gtRe_,">"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.quotRe_,"""));return a}; +goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?"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={"&":"&","<":"<",">":">",""":'"'},d;d=b?b.createElement("div"):document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var g=c[a];if(g)return g;if("#"==b.charAt(0)){var h=Number("0"+b.substr(1));isNaN(h)||(g=String.fromCharCode(h))}g||(d.innerHTML=a+" ",g=d.firstChild.nodeValue.slice(0,-1));return c[a]=g})}; +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 d=Number("0"+c.substr(1));if(!isNaN(d))return String.fromCharCode(d)}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.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;b-=d;a=a.substring(0,b)+"..."+a.substring(e)}else a.length>b&&(e=Math.floor(b/2),d=a.length-e,e+=b%2,a=a.substring(0,e)+"..."+a.substring(d));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",'"':'\\"',"\\":"\\\\"};goog.string.jsEscapeCache_={"'":"\\'"}; +goog.string.quote=function(a){a=String(a);if(a.quote)return a.quote();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,c=a.charCodeAt(0);if(31<c&&127>c)b=a;else{if(256>c){if(b="\\x",16>c||256<c)b+="0"}else b="\\u",4096>c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.toMap=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=!0;return b}; +goog.string.contains=function(a,b){return-1!=a.indexOf(b)};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){var c=RegExp(goog.string.regExpEscape(b),"");return a.replace(c,"")};goog.string.removeAll=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"g");return a.replace(c,"")}; +goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=goog.isDef(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(){var a=2147483648;return Math.floor(Math.random()*a).toString(36)+Math.abs(Math.floor(Math.random()*a)^goog.now()).toString(36)}; +goog.string.compareVersions=function(a,b){for(var c=0,d=goog.string.trim(String(a)).split("."),e=goog.string.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]||"",l=/(\d*)(\D*)/g,m=/(\d*)(\D*)/g;do{var p=l.exec(h)||["","",""],q=m.exec(k)||["","",""];if(0==p[0].length&&0==q[0].length)break;var c=0==p[1].length?0:parseInt(p[1],10),n=0==q[1].length?0:parseInt(q[1],10),c=goog.string.compareElements_(c,n)||goog.string.compareElements_(0==p[2].length,0==q[2].length)|| +goog.string.compareElements_(p[2],q[2])}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c),b%=goog.string.HASHCODE_MAX_;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.isEmpty(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=goog.isString(b)?goog.string.regExpEscape(b):"\\s",c=c?"|["+c+"]+":"",c=RegExp("(^"+c+")([a-z])","g");return a.replace(c,function(a,b,c){return b+c.toUpperCase()})};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(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.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){b.unshift(a);goog.debug.Error.call(this,goog.string.subs.apply(null,b));b.shift()};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);throw new goog.asserts.AssertionError(""+e,f||[]);}; +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.fail=function(a,b){if(goog.asserts.ENABLE_ASSERTS)throw new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));}; +goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(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&&!goog.isString(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&&!goog.isBoolean(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_("instanceof check failed.",null,c,Array.prototype.slice.call(arguments,3));return a}; +goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.peek=function(a){return a[a.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype; +goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.indexOf?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.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(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1}; +goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(a,b,c){goog.asserts.assert(null!=a.length);c=null==c?a.length-1:c;return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(a,b,c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1}; +goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.forEach?function(a,b,c){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;--d)d in e&&b.call(c,e[d],d,a)}; +goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.filter?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(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.ARRAY_PROTOTYPE_.map?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(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.ARRAY_PROTOTYPE_.reduce?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.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.ARRAY_PROTOTYPE_.reduceRight?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.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.ARRAY_PROTOTYPE_.some?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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.ARRAY_PROTOTYPE_.every?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(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:goog.isString(a)?a.charAt(b):a[b]}; +goog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;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.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==goog.array.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.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,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],e;if(goog.isArray(d)||(e=goog.isArrayLike(d))&&Object.prototype.hasOwnProperty.call(d,"callee"))a.push.apply(a,d);else if(e)for(var f=a.length,g=d.length,h=0;h<g;h++)a[f+h]=d[h];else a.push(d)}};goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return goog.array.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?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(){return goog.isObject(g)?"o"+goog.getUid(g):(typeof g).charAt(0)+g};c=c||d;for(var d={},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>>1,l;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};goog.array.sort=function(a,b){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.sort.call(a,b||goog.array.defaultCompare)}; +goog.array.stableSort=function(a,b){function c(a,b){return e(a.value,b.value)||a.index-b.index}for(var d=0;d<a.length;d++)a[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(a,c);for(d=0;d<a.length;d++)a[d]=a[d].value};goog.array.sortObjectsByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(a[b],c[b])})}; +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.compare=function(a,b,c){return goog.array.equals(a,b,c)}; +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.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);goog.isDef(g)&&(g=d[g]||(d[g]=[]),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];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b}; +goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?goog.array.ARRAY_PROTOTYPE_.unshift.apply(a,a.splice(-b,b)):0>b&&goog.array.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=goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1);goog.array.ARRAY_PROTOTYPE_.splice.call(a,c,0,b[0])}; +goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e<arguments.length;e++){var f=arguments[e];if(c>=f.length)return b;d.push(f[c])}b.push(d)}};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.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||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)}; +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?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b){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]);for(var l=[],h=e,k=f;0<h&&0<k;)c(a[h-1],b[k-1])?(l.unshift(d(h-1,k-1)),h--,k--):g[h-1][k]>g[h][k-1]?h--:k--;return l}; +goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)}; +goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.floor(a+(b||2E-15))};goog.math.safeCeil=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.ceil(a-(b||2E-15))};goog.i18n={}; +goog.i18n.CompactNumberFormatSymbols_af={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0m"},1E7:{other:"00\u00a0m"},1E8:{other:"000\u00a0m"},1E9:{other:"0\u00a0mjd"},1E10:{other:"00\u00a0mjd"},1E11:{other:"000\u00a0mjd"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duisend"},1E4:{other:"00 duisend"},1E5:{other:"000 duisend"},1E6:{other:"0 miljoen"},1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"}, +1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_af_ZA=goog.i18n.CompactNumberFormatSymbols_af; +goog.i18n.CompactNumberFormatSymbols_am={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u123a"},1E4:{other:"00\u00a0\u123a"},1E5:{other:"000\u00a0\u123a"},1E6:{other:"0\u00a0\u121c\u1275\u122d"},1E7:{other:"00\u00a0\u121c\u1275\u122d"},1E8:{other:"000\u00a0\u121c\u1275\u122d"},1E9:{other:"0\u00a0\u1262"},1E10:{other:"00\u00a0\u1262"},1E11:{other:"000\u00a0\u1262"},1E12:{other:"0\u00a0\u1275"},1E13:{other:"00\u00a0\u1275"},1E14:{other:"000\u00a0\u1275"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u123a"}, +1E4:{other:"00 \u123a"},1E5:{other:"000 \u123a"},1E6:{other:"0 \u121a\u120a\u12ee\u1295"},1E7:{other:"00 \u121a\u120a\u12ee\u1295"},1E8:{other:"000 \u121a\u120a\u12ee\u1295"},1E9:{other:"0 \u1262\u120a\u12ee\u1295"},1E10:{other:"00 \u1262\u120a\u12ee\u1295"},1E11:{other:"000 \u1262\u120a\u12ee\u1295"},1E12:{other:"0 \u1275\u122a\u120a\u12ee\u1295"},1E13:{other:"00 \u1275\u122a\u120a\u12ee\u1295"},1E14:{other:"000 \u1275\u122a\u120a\u12ee\u1295"}}};goog.i18n.CompactNumberFormatSymbols_am_ET=goog.i18n.CompactNumberFormatSymbols_am; +goog.i18n.CompactNumberFormatSymbols_ar={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0623\u0644\u0641"},1E4:{other:"00\u00a0\u0623\u0644\u0641"},1E5:{other:"000\u00a0\u0623\u0644\u0641"},1E6:{other:"0\u00a0\u0645\u0644\u064a\u0648"},1E7:{other:"00\u00a0\u0645\u0644\u064a\u0648"},1E8:{other:"000\u00a0\u0645\u0644\u064a\u0648"},1E9:{other:"0\u00a0\u0628\u0644\u064a\u0648"},1E10:{other:"00\u00a0\u0628\u0644\u064a\u0648"},1E11:{other:"000\u00a0\u0628\u0644\u064a\u0648"},1E12:{other:"0\u00a0\u062a\u0631\u0644\u064a\u0648"}, +1E13:{other:"00\u00a0\u062a\u0631\u0644\u064a\u0648"},1E14:{other:"000\u00a0\u062a\u0631\u0644\u064a\u0648"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0623\u0644\u0641"},1E4:{other:"00 \u0623\u0644\u0641"},1E5:{other:"000 \u0623\u0644\u0641"},1E6:{other:"0 \u0645\u0644\u064a\u0648\u0646"},1E7:{other:"00 \u0645\u0644\u064a\u0648\u0646"},1E8:{other:"000 \u0645\u0644\u064a\u0648\u0646"},1E9:{other:"0 \u0628\u0644\u064a\u0648\u0646"},1E10:{other:"00 \u0628\u0644\u064a\u0648\u0646"},1E11:{other:"000 \u0628\u0644\u064a\u0648\u0646"}, +1E12:{other:"0 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E13:{other:"00 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E14:{other:"000 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"}}};goog.i18n.CompactNumberFormatSymbols_ar_001=goog.i18n.CompactNumberFormatSymbols_ar;goog.i18n.CompactNumberFormatSymbols_ar_EG=goog.i18n.CompactNumberFormatSymbols_ar; +goog.i18n.CompactNumberFormatSymbols_bg={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0425"},1E4:{other:"00\u00a0\u0425"},1E5:{other:"000\u00a0\u0425"},1E6:{other:"0\u00a0\u041c"},1E7:{other:"00\u00a0\u041c"},1E8:{other:"000\u00a0\u041c"},1E9:{other:"0\u00a0\u0411"},1E10:{other:"00\u00a0\u0411"},1E11:{other:"000\u00a0\u0411"},1E12:{other:"0\u00a0\u0422"},1E13:{other:"00\u00a0\u0422"},1E14:{other:"000\u00a0\u0422"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u043b\u044f\u0434\u0438"}, +1E4:{other:"00 \u0445\u0438\u043b\u044f\u0434\u0438"},1E5:{other:"000 \u0445\u0438\u043b\u044f\u0434\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}, +1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_bg_BG=goog.i18n.CompactNumberFormatSymbols_bg; +goog.i18n.CompactNumberFormatSymbols_bn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u09b9\u09be\u099c\u09be\u09b0"},1E4:{other:"00 \u09b9\u09be\u099c\u09be\u09b0"},1E5:{other:"000 \u09b9\u09be\u099c\u09be\u09b0"},1E6:{other:"0 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}, +1E7:{other:"00 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E8:{other:"000 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E9:{other:"0 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E10:{other:"00 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E11:{other:"000 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E12:{other:"0 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E13:{other:"00 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E14:{other:"000 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}}}; +goog.i18n.CompactNumberFormatSymbols_bn_BD=goog.i18n.CompactNumberFormatSymbols_bn;goog.i18n.CompactNumberFormatSymbols_br={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_br_FR=goog.i18n.CompactNumberFormatSymbols_br; +goog.i18n.CompactNumberFormatSymbols_ca={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milions"},1E7:{other:"00 milions"}, +1E8:{other:"000 milions"},1E9:{other:"0 miliards"},1E10:{other:"00 miliards"},1E11:{other:"000 miliards"},1E12:{other:"0 bilions"},1E13:{other:"00 bilions"},1E14:{other:"000 bilions"}}};goog.i18n.CompactNumberFormatSymbols_ca_AD=goog.i18n.CompactNumberFormatSymbols_ca;goog.i18n.CompactNumberFormatSymbols_ca_ES=goog.i18n.CompactNumberFormatSymbols_ca; +goog.i18n.CompactNumberFormatSymbols_chr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_chr_US=goog.i18n.CompactNumberFormatSymbols_chr; +goog.i18n.CompactNumberFormatSymbols_cs={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"}, +1E6:{other:"0 milion\u016f"},1E7:{other:"00 milion\u016f"},1E8:{other:"000 milion\u016f"},1E9:{other:"0 miliard"},1E10:{other:"00 miliard"},1E11:{other:"000 miliard"},1E12:{other:"0 bilion\u016f"},1E13:{other:"00 bilion\u016f"},1E14:{other:"000 bilion\u016f"}}};goog.i18n.CompactNumberFormatSymbols_cs_CZ=goog.i18n.CompactNumberFormatSymbols_cs; +goog.i18n.CompactNumberFormatSymbols_cy={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 miliwn"},1E7:{other:"00 miliwn"},1E8:{other:"000 miliwn"},1E9:{other:"0 biliwn"},1E10:{other:"00 biliwn"}, +1E11:{other:"000 biliwn"},1E12:{other:"0 triliwn"},1E13:{other:"00 triliwn"},1E14:{other:"000 triliwn"}}};goog.i18n.CompactNumberFormatSymbols_cy_GB=goog.i18n.CompactNumberFormatSymbols_cy; +goog.i18n.CompactNumberFormatSymbols_da={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mio"},1E7:{other:"00\u00a0mio"},1E8:{other:"000\u00a0mio"},1E9:{other:"0\u00a0mia"},1E10:{other:"00\u00a0mia"},1E11:{other:"000\u00a0mia"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusind"},1E4:{other:"00 tusind"},1E5:{other:"000 tusind"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_da_DK=goog.i18n.CompactNumberFormatSymbols_da; +goog.i18n.CompactNumberFormatSymbols_de={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}}; +goog.i18n.CompactNumberFormatSymbols_de_AT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_BE=goog.i18n.CompactNumberFormatSymbols_de; +goog.i18n.CompactNumberFormatSymbols_de_CH={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_DE=goog.i18n.CompactNumberFormatSymbols_de;goog.i18n.CompactNumberFormatSymbols_de_LU=goog.i18n.CompactNumberFormatSymbols_de; +goog.i18n.CompactNumberFormatSymbols_el={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u03c7\u03b9\u03bb."},1E4:{other:"00\u00a0\u03c7\u03b9\u03bb."},1E5:{other:"000\u00a0\u03c7\u03b9\u03bb."},1E6:{other:"0\u00a0\u03b5\u03ba."},1E7:{other:"00\u00a0\u03b5\u03ba."},1E8:{other:"000\u00a0\u03b5\u03ba."},1E9:{other:"0\u00a0\u03b4\u03b9\u03c2"},1E10:{other:"00\u00a0\u03b4\u03b9\u03c2"},1E11:{other:"000\u00a0\u03b4\u03b9\u03c2"},1E12:{other:"0\u00a0\u03c4\u03c1\u03b9\u03c2"},1E13:{other:"00\u00a0\u03c4\u03c1\u03b9\u03c2"}, +1E14:{other:"000\u00a0\u03c4\u03c1\u03b9\u03c2"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E4:{other:"00 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E5:{other:"000 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E6:{other:"0 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E7:{other:"00 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E8:{other:"000 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}, +1E9:{other:"0 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E10:{other:"00 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E11:{other:"000 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E12:{other:"0 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E13:{other:"00 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}, +1E14:{other:"000 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}}};goog.i18n.CompactNumberFormatSymbols_el_GR=goog.i18n.CompactNumberFormatSymbols_el; +goog.i18n.CompactNumberFormatSymbols_en={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_AS=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_AU={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_FM=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_GB={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_GU=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_IE={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}}; +goog.i18n.CompactNumberFormatSymbols_en_IN={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_MH=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_MP=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PR=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PW=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_SG={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_TC=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_UM=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_VG=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_VI=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_ZA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}}; +goog.i18n.CompactNumberFormatSymbols_es={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00\u00a0K\u00a0M"},1E11:{other:"000\u00a0K\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"}, +1E7:{other:"00 millones"},1E8:{other:"000 millones"},1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}}; +goog.i18n.CompactNumberFormatSymbols_es_419={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0k\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},1E7:{other:"00 millones"},1E8:{other:"000 millones"}, +1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};goog.i18n.CompactNumberFormatSymbols_es_EA=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_ES=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_IC=goog.i18n.CompactNumberFormatSymbols_es; +goog.i18n.CompactNumberFormatSymbols_et={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tuh"},1E4:{other:"00\u00a0tuh"},1E5:{other:"000\u00a0tuh"},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0trl"},1E13:{other:"00\u00a0trl"},1E14:{other:"000\u00a0trl"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhat"},1E4:{other:"00 tuhat"},1E5:{other:"000 tuhat"},1E6:{other:"0 miljonit"}, +1E7:{other:"00 miljonit"},1E8:{other:"000 miljonit"},1E9:{other:"0 miljardit"},1E10:{other:"00 miljardit"},1E11:{other:"000 miljardit"},1E12:{other:"0 triljonit"},1E13:{other:"00 triljonit"},1E14:{other:"000 triljonit"}}};goog.i18n.CompactNumberFormatSymbols_et_EE=goog.i18n.CompactNumberFormatSymbols_et; +goog.i18n.CompactNumberFormatSymbols_eu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milioi"},1E7:{other:"00 milioi"},1E8:{other:"000 milioi"},1E9:{other:"0000 milioi"}, +1E10:{other:"00000 milioi"},1E11:{other:"000000 milioi"},1E12:{other:"0 bilioi"},1E13:{other:"00 bilioi"},1E14:{other:"000 bilioi"}}};goog.i18n.CompactNumberFormatSymbols_eu_ES=goog.i18n.CompactNumberFormatSymbols_eu; +goog.i18n.CompactNumberFormatSymbols_fa={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0647\u0632\u0627\u0631"},1E4:{other:"00 \u0647\u0632\u0627\u0631"},1E5:{other:"000 \u0647\u0632\u0627\u0631"},1E6:{other:"0 \u0645\u06cc\u0644\u06cc\u0648\u0646"}, +1E7:{other:"00 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E8:{other:"000 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E9:{other:"0 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E10:{other:"00 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E11:{other:"000 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E12:{other:"0 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E13:{other:"00 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E14:{other:"000 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"}}}; +goog.i18n.CompactNumberFormatSymbols_fa_IR=goog.i18n.CompactNumberFormatSymbols_fa; +goog.i18n.CompactNumberFormatSymbols_fi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t."},1E4:{other:"00\u00a0t."},1E5:{other:"000\u00a0t."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bilj."},1E13:{other:"00\u00a0bilj."},1E14:{other:"000\u00a0bilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhatta"},1E4:{other:"00 tuhatta"},1E5:{other:"000 tuhatta"}, +1E6:{other:"0 miljoonaa"},1E7:{other:"00 miljoonaa"},1E8:{other:"000 miljoonaa"},1E9:{other:"0 miljardia"},1E10:{other:"00 miljardia"},1E11:{other:"000 miljardia"},1E12:{other:"0 biljoonaa"},1E13:{other:"00 biljoonaa"},1E14:{other:"000 biljoonaa"}}};goog.i18n.CompactNumberFormatSymbols_fi_FI=goog.i18n.CompactNumberFormatSymbols_fi; +goog.i18n.CompactNumberFormatSymbols_fil={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"}, +1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};goog.i18n.CompactNumberFormatSymbols_fil_PH=goog.i18n.CompactNumberFormatSymbols_fil; +goog.i18n.CompactNumberFormatSymbols_fr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"}, +1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_BL=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_fr_CA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"}, +1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_FR=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GP=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MC=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_fr_MF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MQ=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_RE=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_YT=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_gl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 mill\u00f3ns"},1E7:{other:"00 mill\u00f3ns"}, +1E8:{other:"000 mill\u00f3ns"},1E9:{other:"0 mil mill\u00f3ns"},1E10:{other:"00 mil mill\u00f3ns"},1E11:{other:"000 mil mill\u00f3ns"},1E12:{other:"0 bill\u00f3ns"},1E13:{other:"00 bill\u00f3ns"},1E14:{other:"000 bill\u00f3ns"}}};goog.i18n.CompactNumberFormatSymbols_gl_ES=goog.i18n.CompactNumberFormatSymbols_gl; +goog.i18n.CompactNumberFormatSymbols_gsw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tsd"},1E4:{other:"00\u00a0tsd"},1E5:{other:"000\u00a0tsd"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tausend"},1E4:{other:"00 tausend"},1E5:{other:"000 tausend"},1E6:{other:"0 Millionen"}, +1E7:{other:"00 Millionen"},1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_gsw_CH=goog.i18n.CompactNumberFormatSymbols_gsw; +goog.i18n.CompactNumberFormatSymbols_gu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0ab9\u0a9c\u0abe\u0ab0"},1E4:{other:"00 \u0ab9\u0a9c\u0abe\u0ab0"},1E5:{other:"000 \u0ab9\u0a9c\u0abe\u0ab0"},1E6:{other:"0 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}, +1E7:{other:"00 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E8:{other:"000 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E9:{other:"0 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E10:{other:"00 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E11:{other:"000 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E12:{other:"0 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E13:{other:"00 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E14:{other:"000 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}}}; +goog.i18n.CompactNumberFormatSymbols_gu_IN=goog.i18n.CompactNumberFormatSymbols_gu;goog.i18n.CompactNumberFormatSymbols_haw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_haw_US=goog.i18n.CompactNumberFormatSymbols_haw; +goog.i18n.CompactNumberFormatSymbols_he={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"}, +1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"}, +1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};goog.i18n.CompactNumberFormatSymbols_he_IL=goog.i18n.CompactNumberFormatSymbols_he; +goog.i18n.CompactNumberFormatSymbols_hi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0L"},1E6:{other:"00L"},1E7:{other:"0Cr"},1E8:{other:"00Cr"},1E9:{other:"000Cr"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093c\u093e\u0930"},1E5:{other:"0 \u0932\u093e\u0916"},1E6:{other:"00 \u0932\u093e\u0916"},1E7:{other:"0 \u0915\u0930\u094b\u0921\u093c"}, +1E8:{other:"00 \u0915\u0930\u094b\u0921\u093c"},1E9:{other:"0 \u0905\u0930\u092c"},1E10:{other:"00 \u0905\u0930\u092c"},1E11:{other:"0 \u0916\u0930\u092c"},1E12:{other:"00 \u0916\u0930\u092c"},1E13:{other:"000 \u0916\u0930\u092c"},1E14:{other:"0000 \u0916\u0930\u092c"}}};goog.i18n.CompactNumberFormatSymbols_hi_IN=goog.i18n.CompactNumberFormatSymbols_hi; +goog.i18n.CompactNumberFormatSymbols_hr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mlr."},1E10:{other:"00\u00a0mlr."},1E11:{other:"000\u00a0mlr."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milijuna"},1E7:{other:"00 milijuna"},1E8:{other:"000 milijuna"}, +1E9:{other:"0 milijarda"},1E10:{other:"00 milijarda"},1E11:{other:"000 milijarda"},1E12:{other:"0 bilijuna"},1E13:{other:"00 bilijuna"},1E14:{other:"000 bilijuna"}}};goog.i18n.CompactNumberFormatSymbols_hr_HR=goog.i18n.CompactNumberFormatSymbols_hr; +goog.i18n.CompactNumberFormatSymbols_hu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0E"},1E4:{other:"00\u00a0E"},1E5:{other:"000\u00a0E"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ezer"},1E4:{other:"00 ezer"},1E5:{other:"000 ezer"},1E6:{other:"0 milli\u00f3"},1E7:{other:"00 milli\u00f3"}, +1E8:{other:"000 milli\u00f3"},1E9:{other:"0 milli\u00e1rd"},1E10:{other:"00 milli\u00e1rd"},1E11:{other:"000 milli\u00e1rd"},1E12:{other:"0 billi\u00f3"},1E13:{other:"00 billi\u00f3"},1E14:{other:"000 billi\u00f3"}}};goog.i18n.CompactNumberFormatSymbols_hu_HU=goog.i18n.CompactNumberFormatSymbols_hu; +goog.i18n.CompactNumberFormatSymbols_id={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"}, +1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};goog.i18n.CompactNumberFormatSymbols_id_ID=goog.i18n.CompactNumberFormatSymbols_id; +goog.i18n.CompactNumberFormatSymbols_in={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"}, +1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}}; +goog.i18n.CompactNumberFormatSymbols_is={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u00fe."},1E4:{other:"00\u00a0\u00fe."},1E5:{other:"000\u00a0\u00fe."},1E6:{other:"0\u00a0m."},1E7:{other:"00\u00a0m."},1E8:{other:"000\u00a0m."},1E9:{other:"0\u00a0ma."},1E10:{other:"00\u00a0ma."},1E11:{other:"000\u00a0ma."},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u00fe\u00fasund"},1E4:{other:"00 \u00fe\u00fasund"},1E5:{other:"000 \u00fe\u00fasund"}, +1E6:{other:"0 millj\u00f3nir"},1E7:{other:"00 millj\u00f3nir"},1E8:{other:"000 millj\u00f3nir"},1E9:{other:"0 milljar\u00f0ar"},1E10:{other:"00 milljar\u00f0ar"},1E11:{other:"000 milljar\u00f0ar"},1E12:{other:"0 billj\u00f3nir"},1E13:{other:"00 billj\u00f3nir"},1E14:{other:"000 billj\u00f3nir"}}};goog.i18n.CompactNumberFormatSymbols_is_IS=goog.i18n.CompactNumberFormatSymbols_is; +goog.i18n.CompactNumberFormatSymbols_it={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mln"},1E7:{other:"00\u00a0Mln"},1E8:{other:"000\u00a0Mln"},1E9:{other:"0\u00a0Mld"},1E10:{other:"00\u00a0Mld"},1E11:{other:"000\u00a0Mld"},1E12:{other:"0\u00a0Bln"},1E13:{other:"00\u00a0Bln"},1E14:{other:"000\u00a0Bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 migliaia"},1E4:{other:"00 migliaia"},1E5:{other:"000 migliaia"},1E6:{other:"0 milioni"},1E7:{other:"00 milioni"}, +1E8:{other:"000 milioni"},1E9:{other:"0 miliardi"},1E10:{other:"00 miliardi"},1E11:{other:"000 miliardi"},1E12:{other:"0 bilioni"},1E13:{other:"00 bilioni"},1E14:{other:"000 bilioni"}}};goog.i18n.CompactNumberFormatSymbols_it_IT=goog.i18n.CompactNumberFormatSymbols_it;goog.i18n.CompactNumberFormatSymbols_it_SM=goog.i18n.CompactNumberFormatSymbols_it; +goog.i18n.CompactNumberFormatSymbols_iw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"}, +1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"}, +1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}}; +goog.i18n.CompactNumberFormatSymbols_ja={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"}, +1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_ja_JP=goog.i18n.CompactNumberFormatSymbols_ja; +goog.i18n.CompactNumberFormatSymbols_kn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E4:{other:"00 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E5:{other:"000 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E6:{other:"0 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"}, +1E7:{other:"00 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E8:{other:"000 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E9:{other:"0 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E10:{other:"00 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E11:{other:"000 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E12:{other:"0 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E13:{other:"00 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E14:{other:"000 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"}}}; +goog.i18n.CompactNumberFormatSymbols_kn_IN=goog.i18n.CompactNumberFormatSymbols_kn; +goog.i18n.CompactNumberFormatSymbols_ko={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"}, +1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}}};goog.i18n.CompactNumberFormatSymbols_ko_KR=goog.i18n.CompactNumberFormatSymbols_ko; +goog.i18n.CompactNumberFormatSymbols_ln={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_ln_CD=goog.i18n.CompactNumberFormatSymbols_ln; +goog.i18n.CompactNumberFormatSymbols_lt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0G"},1E10:{other:"00\u00a0G"},1E11:{other:"000\u00a0G"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bkstan\u010di\u0173"},1E4:{other:"00 t\u016bkstan\u010di\u0173"},1E5:{other:"000 t\u016bkstan\u010di\u0173"}, +1E6:{other:"0 milijon\u0173"},1E7:{other:"00 milijon\u0173"},1E8:{other:"000 milijon\u0173"},1E9:{other:"0 milijard\u0173"},1E10:{other:"00 milijard\u0173"},1E11:{other:"000 milijard\u0173"},1E12:{other:"0 trilijon\u0173"},1E13:{other:"00 trilijon\u0173"},1E14:{other:"000 trilijon\u0173"}}};goog.i18n.CompactNumberFormatSymbols_lt_LT=goog.i18n.CompactNumberFormatSymbols_lt; +goog.i18n.CompactNumberFormatSymbols_lv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t\u016bkst."},1E4:{other:"00\u00a0t\u016bkst."},1E5:{other:"000\u00a0t\u016bkst."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0trilj."},1E13:{other:"00\u00a0trilj."},1E14:{other:"000\u00a0trilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bksto\u0161i"},1E4:{other:"00 t\u016bksto\u0161i"}, +1E5:{other:"000 t\u016bksto\u0161i"},1E6:{other:"0 miljoni"},1E7:{other:"00 miljoni"},1E8:{other:"000 miljoni"},1E9:{other:"0 miljardi"},1E10:{other:"00 miljardi"},1E11:{other:"000 miljardi"},1E12:{other:"0 trilj."},1E13:{other:"00 trilj."},1E14:{other:"000 trilj."}}};goog.i18n.CompactNumberFormatSymbols_lv_LV=goog.i18n.CompactNumberFormatSymbols_lv; +goog.i18n.CompactNumberFormatSymbols_ml={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E4:{other:"00 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E5:{other:"000 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E6:{other:"0 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"}, +1E7:{other:"00 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E8:{other:"000 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E9:{other:"0 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E10:{other:"00 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E11:{other:"000 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E12:{other:"0 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E13:{other:"00 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E14:{other:"000 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"}}}; +goog.i18n.CompactNumberFormatSymbols_ml_IN=goog.i18n.CompactNumberFormatSymbols_ml; +goog.i18n.CompactNumberFormatSymbols_mr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093e\u0930"},1E5:{other:"000 \u0939\u091c\u093e\u0930"},1E6:{other:"0 \u0926\u0936\u0932\u0915\u094d\u0937"}, +1E7:{other:"00 \u0926\u0936\u0932\u0915\u094d\u0937"},1E8:{other:"000 \u0926\u0936\u0932\u0915\u094d\u0937"},1E9:{other:"0 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E10:{other:"00 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E11:{other:"000 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E12:{other:"0 \u0926\u0939\u093e \u0916\u0930\u092c"},1E13:{other:"00 \u0926\u0939\u093e \u0916\u0930\u092c"},1E14:{other:"000 \u0926\u0939\u093e \u0916\u0930\u092c"}}}; +goog.i18n.CompactNumberFormatSymbols_mr_IN=goog.i18n.CompactNumberFormatSymbols_mr; +goog.i18n.CompactNumberFormatSymbols_ms={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0J"},1E7:{other:"00J"},1E8:{other:"000J"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},1E8:{other:"000 juta"},1E9:{other:"0 bilion"},1E10:{other:"00 bilion"}, +1E11:{other:"000 bilion"},1E12:{other:"0 trilion"},1E13:{other:"00 trilion"},1E14:{other:"000 trilion"}}};goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY=goog.i18n.CompactNumberFormatSymbols_ms;goog.i18n.CompactNumberFormatSymbols_mt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}}; +goog.i18n.CompactNumberFormatSymbols_mt_MT=goog.i18n.CompactNumberFormatSymbols_mt; +goog.i18n.CompactNumberFormatSymbols_nb={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_nb_NO=goog.i18n.CompactNumberFormatSymbols_nb; +goog.i18n.CompactNumberFormatSymbols_nl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0\u00a0mln."},1E7:{other:"00\u00a0mln."},1E8:{other:"000\u00a0mln."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bln."},1E13:{other:"00\u00a0bln."},1E14:{other:"000\u00a0bln."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duizend"},1E4:{other:"00 duizend"},1E5:{other:"000 duizend"},1E6:{other:"0 miljoen"}, +1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_nl_NL=goog.i18n.CompactNumberFormatSymbols_nl; +goog.i18n.CompactNumberFormatSymbols_no={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_or={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}}; +goog.i18n.CompactNumberFormatSymbols_or_IN=goog.i18n.CompactNumberFormatSymbols_or; +goog.i18n.CompactNumberFormatSymbols_pl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tys."},1E4:{other:"00\u00a0tys."},1E5:{other:"000\u00a0tys."},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0bln"},1E13:{other:"00\u00a0bln"},1E14:{other:"000\u00a0bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tysi\u0105ca"},1E4:{other:"00 tysi\u0105ca"},1E5:{other:"000 tysi\u0105ca"}, +1E6:{other:"0 miliona"},1E7:{other:"00 miliona"},1E8:{other:"000 miliona"},1E9:{other:"0 miliarda"},1E10:{other:"00 miliarda"},1E11:{other:"000 miliarda"},1E12:{other:"0 biliona"},1E13:{other:"00 biliona"},1E14:{other:"000 biliona"}}};goog.i18n.CompactNumberFormatSymbols_pl_PL=goog.i18n.CompactNumberFormatSymbols_pl; +goog.i18n.CompactNumberFormatSymbols_pt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0mi"},1E7:{other:"00\u00a0mi"},1E8:{other:"000\u00a0mi"},1E9:{other:"0\u00a0bi"},1E10:{other:"00\u00a0bi"},1E11:{other:"000\u00a0bi"},1E12:{other:"0\u00a0tri"},1E13:{other:"00\u00a0tri"},1E14:{other:"000\u00a0tri"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"}, +1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 bilh\u00f5es"},1E10:{other:"00 bilh\u00f5es"},1E11:{other:"000 bilh\u00f5es"},1E12:{other:"0 trilh\u00f5es"},1E13:{other:"00 trilh\u00f5es"},1E14:{other:"000 trilh\u00f5es"}}};goog.i18n.CompactNumberFormatSymbols_pt_BR=goog.i18n.CompactNumberFormatSymbols_pt; +goog.i18n.CompactNumberFormatSymbols_pt_PT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0MM"},1E10:{other:"00\u00a0MM"},1E11:{other:"000\u00a0MM"},1E12:{other:"0\u00a0Bi"},1E13:{other:"00\u00a0Bi"},1E14:{other:"000\u00a0Bi"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"}, +1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 mil milh\u00f5es"},1E10:{other:"00 mil milh\u00f5es"},1E11:{other:"000 mil milh\u00f5es"},1E12:{other:"0 bili\u00f5es"},1E13:{other:"00 bili\u00f5es"},1E14:{other:"000 bili\u00f5es"}}}; +goog.i18n.CompactNumberFormatSymbols_ro={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 de mii"},1E4:{other:"00 de mii"},1E5:{other:"000 de mii"},1E6:{other:"0 de milioane"}, +1E7:{other:"00 de milioane"},1E8:{other:"000 de milioane"},1E9:{other:"0 de miliarde"},1E10:{other:"00 de miliarde"},1E11:{other:"000 de miliarde"},1E12:{other:"0 de trilioane"},1E13:{other:"00 de trilioane"},1E14:{other:"000 de trilioane"}}};goog.i18n.CompactNumberFormatSymbols_ro_RO=goog.i18n.CompactNumberFormatSymbols_ro; +goog.i18n.CompactNumberFormatSymbols_ru={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u044b\u0441."},1E4:{other:"00\u00a0\u0442\u044b\u0441."},1E5:{other:"000\u00a0\u0442\u044b\u0441."},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"}, +1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u044b\u0441\u044f\u0447\u0438"},1E4:{other:"00 \u0442\u044b\u0441\u044f\u0447\u0438"},1E5:{other:"000 \u0442\u044b\u0441\u044f\u0447\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"}, +1E10:{other:"00 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_ru_RU=goog.i18n.CompactNumberFormatSymbols_ru; +goog.i18n.CompactNumberFormatSymbols_sk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tis\u00edc"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"}, +1E6:{other:"0 mili\u00f3nov"},1E7:{other:"00 mili\u00f3nov"},1E8:{other:"000 mili\u00f3nov"},1E9:{other:"0 miliard"},1E10:{other:"00 mili\u00e1rd"},1E11:{other:"000 mili\u00e1rd"},1E12:{other:"0 bili\u00f3nov"},1E13:{other:"00 bili\u00f3nov"},1E14:{other:"000 bili\u00f3nov"}}};goog.i18n.CompactNumberFormatSymbols_sk_SK=goog.i18n.CompactNumberFormatSymbols_sk; +goog.i18n.CompactNumberFormatSymbols_sl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mio."},1E7:{other:"00\u00a0mio."},1E8:{other:"000\u00a0mio."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tiso\u010d"},1E4:{other:"00 tiso\u010d"},1E5:{other:"000 tiso\u010d"}, +1E6:{other:"0 milijonov"},1E7:{other:"00 milijonov"},1E8:{other:"000 milijonov"},1E9:{other:"0 milijard"},1E10:{other:"00 milijard"},1E11:{other:"000 milijard"},1E12:{other:"0 bilijonov"},1E13:{other:"00 bilijonov"},1E14:{other:"000 bilijonov"}}};goog.i18n.CompactNumberFormatSymbols_sl_SI=goog.i18n.CompactNumberFormatSymbols_sl; +goog.i18n.CompactNumberFormatSymbols_sq={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_sq_AL=goog.i18n.CompactNumberFormatSymbols_sq; +goog.i18n.CompactNumberFormatSymbols_sr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0\u0445\u0438\u0459"},1E5:{other:"000\u00a0\u0445\u0438\u0459"},1E6:{other:"0\u00a0\u043c\u0438\u043b"},1E7:{other:"00\u00a0\u043c\u0438\u043b"},1E8:{other:"000\u00a0\u043c\u0438\u043b"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0431\u0438\u043b"},1E13:{other:"00\u00a0\u0431\u0438\u043b"}, +1E14:{other:"000\u00a0\u0431\u0438\u043b"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u0459\u0430\u0434\u0430"},1E4:{other:"00 \u0445\u0438\u0459\u0430\u0434\u0430"},1E5:{other:"000 \u0445\u0438\u0459\u0430\u0434\u0430"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"}, +1E11:{other:"000 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS=goog.i18n.CompactNumberFormatSymbols_sr; +goog.i18n.CompactNumberFormatSymbols_sv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tn"},1E4:{other:"00\u00a0tn"},1E5:{other:"000\u00a0tn"},1E6:{other:"0\u00a0mn"},1E7:{other:"00\u00a0mn"},1E8:{other:"000\u00a0mn"},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 miljoner"}, +1E7:{other:"00 miljoner"},1E8:{other:"000 miljoner"},1E9:{other:"0 miljarder"},1E10:{other:"00 miljarder"},1E11:{other:"000 miljarder"},1E12:{other:"0 biljoner"},1E13:{other:"00 biljoner"},1E14:{other:"000 biljoner"}}};goog.i18n.CompactNumberFormatSymbols_sv_SE=goog.i18n.CompactNumberFormatSymbols_sv; +goog.i18n.CompactNumberFormatSymbols_sw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"elfu\u00a00"},1E4:{other:"elfu\u00a000"},1E5:{other:"laki0"},1E6:{other:"M0"},1E7:{other:"M00"},1E8:{other:"M000"},1E9:{other:"B0"},1E10:{other:"B00"},1E11:{other:"B000"},1E12:{other:"T0"},1E13:{other:"T00"},1E14:{other:"T000"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"Elfu 0"},1E4:{other:"Elfu 00"},1E5:{other:"Elfu 000"},1E6:{other:"Milioni 0"},1E7:{other:"Milioni 00"},1E8:{other:"Milioni 000"},1E9:{other:"Bilioni 0"}, +1E10:{other:"Bilioni 00"},1E11:{other:"Bilioni 000"},1E12:{other:"Trilioni 0"},1E13:{other:"Trilioni 00"},1E14:{other:"Trilioni 000"}}};goog.i18n.CompactNumberFormatSymbols_sw_TZ=goog.i18n.CompactNumberFormatSymbols_sw; +goog.i18n.CompactNumberFormatSymbols_ta={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E4:{other:"00 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E5:{other:"000 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E6:{other:"0 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}, +1E7:{other:"00 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E8:{other:"000 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E9:{other:"0 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E10:{other:"00 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E11:{other:"000 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E12:{other:"0 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E13:{other:"00 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}, +1E14:{other:"000 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}}};goog.i18n.CompactNumberFormatSymbols_ta_IN=goog.i18n.CompactNumberFormatSymbols_ta; +goog.i18n.CompactNumberFormatSymbols_te={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0c35\u0c47\u0c32\u0c41"},1E4:{other:"00 \u0c35\u0c47\u0c32\u0c41"},1E5:{other:"000 \u0c35\u0c47\u0c32\u0c41"},1E6:{other:"0 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}, +1E7:{other:"00 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E8:{other:"000 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E9:{other:"0 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E10:{other:"00 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E11:{other:"000 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E12:{other:"0 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E13:{other:"00 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E14:{other:"000 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}}}; +goog.i18n.CompactNumberFormatSymbols_te_IN=goog.i18n.CompactNumberFormatSymbols_te; +goog.i18n.CompactNumberFormatSymbols_th={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0e1e."},1E4:{other:"0\u00a0\u0e21."},1E5:{other:"0\u00a0\u0e2a."},1E6:{other:"0\u00a0\u0e25."},1E7:{other:"00\u00a0\u0e25."},1E8:{other:"000\u00a0\u0e25."},1E9:{other:"0\u00a0\u0e1e.\u0e25."},1E10:{other:"0\u00a0\u0e21.\u0e25."},1E11:{other:"0\u00a0\u0e2a.\u0e25."},1E12:{other:"0\u00a0\u0e25.\u0e25."},1E13:{other:"00\u00a0\u0e25.\u0e25."},1E14:{other:"000\u00a0\u0e25.\u0e25."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0e1e\u0e31\u0e19"}, +1E4:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19"},1E5:{other:"0 \u0e41\u0e2a\u0e19"},1E6:{other:"0 \u0e25\u0e49\u0e32\u0e19"},1E7:{other:"00 \u0e25\u0e49\u0e32\u0e19"},1E8:{other:"000 \u0e25\u0e49\u0e32\u0e19"},1E9:{other:"0 \u0e1e\u0e31\u0e19\u0e25\u0e49\u0e32\u0e19"},1E10:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19\u0e25\u0e49\u0e32\u0e19"},1E11:{other:"0 \u0e41\u0e2a\u0e19\u0e25\u0e49\u0e32\u0e19"},1E12:{other:"0 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},1E13:{other:"00 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}, +1E14:{other:"000 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}}};goog.i18n.CompactNumberFormatSymbols_th_TH=goog.i18n.CompactNumberFormatSymbols_th; +goog.i18n.CompactNumberFormatSymbols_tl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"}, +1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}}; +goog.i18n.CompactNumberFormatSymbols_tr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0B"},1E5:{other:"000\u00a0B"},1E6:{other:"0\u00a0Mn"},1E7:{other:"00\u00a0Mn"},1E8:{other:"000\u00a0Mn"},1E9:{other:"0\u00a0Mr"},1E10:{other:"00\u00a0Mr"},1E11:{other:"000\u00a0Mr"},1E12:{other:"0\u00a0Tn"},1E13:{other:"00\u00a0Tn"},1E14:{other:"000\u00a0Tn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 bin"},1E4:{other:"00 bin"},1E5:{other:"000 bin"},1E6:{other:"0 milyon"},1E7:{other:"00 milyon"}, +1E8:{other:"000 milyon"},1E9:{other:"0 milyar"},1E10:{other:"00 milyar"},1E11:{other:"000 milyar"},1E12:{other:"0 trilyon"},1E13:{other:"00 trilyon"},1E14:{other:"000 trilyon"}}};goog.i18n.CompactNumberFormatSymbols_tr_TR=goog.i18n.CompactNumberFormatSymbols_tr; +goog.i18n.CompactNumberFormatSymbols_uk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u0438\u0441"},1E4:{other:"00\u00a0\u0442\u0438\u0441"},1E5:{other:"000\u00a0\u0442\u0438\u0441"},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"}, +1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u0438\u0441\u044f\u0447\u0456"},1E4:{other:"00 \u0442\u0438\u0441\u044f\u0447\u0456"},1E5:{other:"000 \u0442\u0438\u0441\u044f\u0447\u0456"},1E6:{other:"0 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"}, +1E10:{other:"00 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_uk_UA=goog.i18n.CompactNumberFormatSymbols_uk; +goog.i18n.CompactNumberFormatSymbols_ur={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u06c1\u0632\u0627\u0631"},1E4:{other:"00\u00a0\u06c1\u0632\u0627\u0631"},1E5:{other:"0\u00a0\u0644\u0627\u06a9\u06be"},1E6:{other:"00\u00a0\u0644\u0627\u06a9\u06be"},1E7:{other:"0\u00a0\u06a9\u0631\u0648\u0691"},1E8:{other:"00\u00a0\u06a9\u0631\u0648\u0691"},1E9:{other:"0\u00a0\u0627\u0631\u0628"},1E10:{other:"00\u00a0\u0627\u0631\u0628"},1E11:{other:"0\u00a0\u06a9\u06be\u0631\u0628"},1E12:{other:"00\u00a0\u06a9\u06be\u0631\u0628"}, +1E13:{other:"000\u00a0\u06a9\u06be\u0631\u0628"},1E14:{other:"0000\u00a0\u06a9\u06be\u0631\u0628"}}};goog.i18n.CompactNumberFormatSymbols_ur_PK=goog.i18n.CompactNumberFormatSymbols_ur; +goog.i18n.CompactNumberFormatSymbols_vi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0N"},1E4:{other:"00\u00a0N"},1E5:{other:"000\u00a0N"},1E6:{other:"0\u00a0Tr"},1E7:{other:"00\u00a0Tr"},1E8:{other:"000\u00a0Tr"},1E9:{other:"0\u00a0T"},1E10:{other:"00\u00a0T"},1E11:{other:"000\u00a0T"},1E12:{other:"0\u00a0NT"},1E13:{other:"00\u00a0NT"},1E14:{other:"000\u00a0NT"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ngh\u00ecn"},1E4:{other:"00 ngh\u00ecn"},1E5:{other:"000 ngh\u00ecn"},1E6:{other:"0 tri\u1ec7u"}, +1E7:{other:"00 tri\u1ec7u"},1E8:{other:"000 tri\u1ec7u"},1E9:{other:"0 t\u1ef7"},1E10:{other:"00 t\u1ef7"},1E11:{other:"000 t\u1ef7"},1E12:{other:"0 ngh\u00ecn t\u1ef7"},1E13:{other:"00 ngh\u00ecn t\u1ef7"},1E14:{other:"000 ngh\u00ecn t\u1ef7"}}};goog.i18n.CompactNumberFormatSymbols_vi_VN=goog.i18n.CompactNumberFormatSymbols_vi; +goog.i18n.CompactNumberFormatSymbols_zh={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"}, +1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}}};goog.i18n.CompactNumberFormatSymbols_zh_CN=goog.i18n.CompactNumberFormatSymbols_zh; +goog.i18n.CompactNumberFormatSymbols_zh_HK={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"}, +1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN=goog.i18n.CompactNumberFormatSymbols_zh; +goog.i18n.CompactNumberFormatSymbols_zh_TW={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"}, +1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}}; +goog.i18n.CompactNumberFormatSymbols_zu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 inkulungwane"},1E4:{other:"00 inkulungwane"},1E5:{other:"000 inkulungwane"},1E6:{other:"0 isigidi"},1E7:{other:"00 isigidi"},1E8:{other:"000 isigidi"},1E9:{other:"0 isigidi sezigidi"}, +1E10:{other:"00 isigidi sezigidi"},1E11:{other:"000 isigidi sezigidi"},1E12:{other:"0 isigidintathu"},1E13:{other:"00 isigidintathu"},1E14:{other:"000 isigidintathu"}}};goog.i18n.CompactNumberFormatSymbols_zu_ZA=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;"af"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af); +if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar); +if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg; +"bn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn);if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca); +if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr; +"cs"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs;"cy"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da); +if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el); +if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_AU; +if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_GB;if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_SG;if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es; +if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et; +"eu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu);if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi); +if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi;"fil"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr); +if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr_CA;if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr; +if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr; +if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl);if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl; +"gsw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu; +"haw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he; +"hi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi);if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu); +if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu;"id"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is); +if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is;"it"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it; +"iw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja);if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn; +"ko"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko;"ln"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt); +if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv);if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml); +if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr;"ms"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms); +if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb); +if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or); +if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt); +if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro; +"ru"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru;"sk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl); +if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq);if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr); +if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv;"sw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw); +if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te); +if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr); +if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur); +if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur;"vi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh); +if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_HK;if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_TW; +"zu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.currency={};goog.i18n.currency.PRECISION_MASK_=7;goog.i18n.currency.POSITION_FLAG_=16;goog.i18n.currency.SPACE_FLAG_=32;goog.i18n.currency.tier2Enabled_=!1;goog.i18n.currency.addTier2Support=function(){if(!goog.i18n.currency.tier2Enabled_){for(var a in goog.i18n.currency.CurrencyInfoTier2)goog.i18n.currency.CurrencyInfo[a]=goog.i18n.currency.CurrencyInfoTier2[a];goog.i18n.currency.tier2Enabled_=!0}}; +goog.i18n.currency.getGlobalCurrencyPattern=function(a){var b=goog.i18n.currency.CurrencyInfo[a],c=b[0];return a==b[1]?goog.i18n.currency.getCurrencyPattern_(c,b[1]):a+" "+goog.i18n.currency.getCurrencyPattern_(c,b[1])};goog.i18n.currency.getGlobalCurrencySign=function(a){var b=goog.i18n.currency.CurrencyInfo[a];return a==b[1]?a:a+" "+b[1]};goog.i18n.currency.getLocalCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[1])}; +goog.i18n.currency.getLocalCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][1]};goog.i18n.currency.getPortableCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[2])};goog.i18n.currency.getPortableCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][2]};goog.i18n.currency.isPrefixSignPosition=function(a){return 0==(goog.i18n.currency.CurrencyInfo[a][0]&goog.i18n.currency.POSITION_FLAG_)}; +goog.i18n.currency.getCurrencyPattern_=function(a,b){var c=["#,##0"],d=a&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}0==(a&goog.i18n.currency.POSITION_FLAG_)?(c.unshift(a&goog.i18n.currency.SPACE_FLAG_?"' ":"'"),c.unshift(b),c.unshift("'")):c.push(a&goog.i18n.currency.SPACE_FLAG_?" '":"'",b,"'");return c.join("")}; +goog.i18n.currency.adjustPrecision=function(a,b){var c=["0"],d=goog.i18n.currency.CurrencyInfo[b],d=d[0]&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}return a.replace(/0.00/g,c.join(""))}; +goog.i18n.currency.CurrencyInfo={AED:[2,"dh","\u062f.\u0625.","DH"],ALL:[0,"Lek","Lek"],AUD:[2,"$","AU$"],BDT:[2,"\u09f3","Tk"],BGN:[2,"lev","lev"],BRL:[2,"R$","R$"],CAD:[2,"$","C$"],CDF:[2,"FrCD","CDF"],CHF:[2,"CHF","CHF"],CLP:[0,"$","CL$"],CNY:[2,"\u00a5","RMB\u00a5"],COP:[0,"$","COL$"],CRC:[0,"\u20a1","CR\u20a1"],CZK:[50,"K\u010d","K\u010d"],DKK:[18,"kr","kr"],DOP:[2,"$","RD$"],EGP:[2,"\u00a3","LE"],ETB:[2,"Birr","Birr"],EUR:[2,"\u20ac","\u20ac"],GBP:[2,"\u00a3","GB\u00a3"],HKD:[2,"$","HK$"],HRK:[2, +"kn","kn"],HUF:[0,"Ft","Ft"],IDR:[0,"Rp","Rp"],ILS:[2,"\u20aa","IL\u20aa"],INR:[2,"\u20b9","Rs"],IRR:[0,"Rial","IRR"],ISK:[0,"kr","kr"],JMD:[2,"$","JA$"],JPY:[0,"\u00a5","JP\u00a5"],KRW:[0,"\u20a9","KR\u20a9"],LKR:[2,"Rs","SLRs"],LTL:[2,"Lt","Lt"],LVL:[2,"Ls","Ls"],MNT:[0,"\u20ae","MN\u20ae"],MXN:[2,"$","Mex$"],MYR:[2,"RM","RM"],NOK:[50,"kr","NOkr"],PAB:[2,"B/.","B/."],PEN:[2,"S/.","S/."],PHP:[2,"\u20b1","Php"],PKR:[0,"Rs","PKRs."],PLN:[50,"z\u0142","z\u0142"],RON:[2,"RON","RON"],RSD:[0,"din","RSD"], +RUB:[50,"\u0440\u0443\u0431.","\u0440\u0443\u0431."],SAR:[2,"Rial","Rial"],SEK:[2,"kr","kr"],SGD:[2,"$","S$"],THB:[2,"\u0e3f","THB"],TRY:[2,"TL","YTL"],TWD:[2,"NT$","NT$"],TZS:[0,"TSh","TSh"],UAH:[2,"\u20b4","UAH"],USD:[2,"$","US$"],UYU:[2,"$","$U"],VND:[0,"\u20ab","VN\u20ab"],YER:[0,"Rial","Rial"],ZAR:[2,"R","ZAR"]}; +goog.i18n.currency.CurrencyInfoTier2={AFN:[48,"Af.","AFN"],AMD:[0,"Dram","dram"],AOA:[2,"Kz","Kz"],ARS:[2,"$","AR$"],AWG:[2,"Afl.","Afl."],AZN:[2,"man.","man."],BAM:[2,"KM","KM"],BBD:[2,"$","Bds$"],BHD:[3,"din","din"],BIF:[0,"FBu","FBu"],BMD:[2,"$","BD$"],BND:[2,"$","B$"],BOB:[2,"Bs","Bs"],BSD:[2,"$","BS$"],BTN:[2,"Nu.","Nu."],BWP:[2,"P","pula"],BYR:[0,"BYR","BYR"],BZD:[2,"$","BZ$"],CUC:[1,"$","CUC$"],CUP:[2,"$","CU$"],CVE:[2,"CVE","Esc"],DJF:[0,"Fdj","Fdj"],DZD:[2,"din","din"],ERN:[2,"Nfk","Nfk"], +FJD:[2,"$","FJ$"],FKP:[2,"\u00a3","FK\u00a3"],GEL:[2,"GEL","GEL"],GHS:[2,"GHS","GHS"],GIP:[2,"\u00a3","GI\u00a3"],GMD:[2,"GMD","GMD"],GNF:[0,"FG","FG"],GTQ:[2,"Q","GTQ"],GYD:[0,"$","GY$"],HNL:[2,"L","HNL"],HTG:[2,"HTG","HTG"],IQD:[0,"din","IQD"],JOD:[3,"din","JOD"],KES:[2,"Ksh","Ksh"],KGS:[2,"KGS","KGS"],KHR:[2,"Riel","KHR"],KMF:[0,"CF","KMF"],KPW:[0,"\u20a9KP","KPW"],KWD:[3,"din","KWD"],KYD:[2,"$","KY$"],KZT:[2,"\u20b8","KZT"],LAK:[0,"\u20ad","\u20ad"],LBP:[0,"L\u00a3","LBP"],LRD:[2,"$","L$"],LSL:[2, +"LSL","LSL"],LYD:[3,"din","LD"],MAD:[2,"dh","MAD"],MDL:[2,"MDL","MDL"],MGA:[0,"Ar","MGA"],MKD:[2,"din","MKD"],MMK:[0,"K","MMK"],MOP:[2,"MOP","MOP$"],MRO:[0,"MRO","MRO"],MUR:[0,"MURs","MURs"],MWK:[2,"MWK","MWK"],MZN:[2,"MTn","MTn"],NAD:[2,"$","N$"],NGN:[2,"\u20a6","NG\u20a6"],NIO:[2,"C$","C$"],NPR:[2,"Rs","NPRs"],NZD:[2,"$","NZ$"],OMR:[3,"Rial","OMR"],PGK:[2,"PGK","PGK"],PYG:[0,"Gs","PYG"],QAR:[2,"Rial","QR"],RWF:[0,"RF","RF"],SBD:[2,"$","SI$"],SCR:[2,"SCR","SCR"],SDG:[2,"SDG","SDG"],SHP:[2,"\u00a3", +"SH\u00a3"],SLL:[0,"SLL","SLL"],SOS:[0,"SOS","SOS"],SRD:[2,"$","SR$"],STD:[0,"Db","Db"],SYP:[0,"\u00a3","SY\u00a3"],SZL:[2,"SZL","SZL"],TJS:[2,"Som","TJS"],TND:[3,"din","DT"],TOP:[2,"T$","T$"],TTD:[2,"$","TT$"],UGX:[0,"UGX","UGX"],UZS:[0,"so\u02bcm","UZS"],VEF:[2,"Bs","Bs"],VUV:[0,"VUV","VUV"],WST:[2,"WST","WST"],XAF:[0,"FCFA","FCFA"],XCD:[2,"$","EC$"],XOF:[0,"CFA","CFA"],XPF:[0,"FCFP","FCFP"],ZMK:[0,"ZMK","ZMK"]};goog.i18n.NumberFormatSymbols_af={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_af_ZA=goog.i18n.NumberFormatSymbols_af; +goog.i18n.NumberFormatSymbols_am={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ETB"};goog.i18n.NumberFormatSymbols_am_ET=goog.i18n.NumberFormatSymbols_am; +goog.i18n.NumberFormatSymbols_ar={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u0660",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0627\u0633",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0644\u064a\u0633\u00a0\u0631\u0642\u0645",DECIMAL_PATTERN:"#0.###;#0.###-",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#0.00;\u00a4\u00a0#0.00-",DEF_CURRENCY_CODE:"EGP"};goog.i18n.NumberFormatSymbols_ar_001=goog.i18n.NumberFormatSymbols_ar; +goog.i18n.NumberFormatSymbols_ar_EG=goog.i18n.NumberFormatSymbols_ar;goog.i18n.NumberFormatSymbols_bg={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"BGN"};goog.i18n.NumberFormatSymbols_bg_BG=goog.i18n.NumberFormatSymbols_bg; +goog.i18n.NumberFormatSymbols_bn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u09e6",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u09b8\u0982\u0996\u09cd\u09af\u09be\u00a0\u09a8\u09be",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4;(#,##,##0.00\u00a4)",DEF_CURRENCY_CODE:"BDT"};goog.i18n.NumberFormatSymbols_bn_BD=goog.i18n.NumberFormatSymbols_bn; +goog.i18n.NumberFormatSymbols_br={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_br_FR=goog.i18n.NumberFormatSymbols_br; +goog.i18n.NumberFormatSymbols_ca={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_ca_AD=goog.i18n.NumberFormatSymbols_ca;goog.i18n.NumberFormatSymbols_ca_ES=goog.i18n.NumberFormatSymbols_ca; +goog.i18n.NumberFormatSymbols_chr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_chr_US=goog.i18n.NumberFormatSymbols_chr; +goog.i18n.NumberFormatSymbols_cs={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CZK"};goog.i18n.NumberFormatSymbols_cs_CZ=goog.i18n.NumberFormatSymbols_cs; +goog.i18n.NumberFormatSymbols_cy={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_cy_GB=goog.i18n.NumberFormatSymbols_cy; +goog.i18n.NumberFormatSymbols_da={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"DKK"};goog.i18n.NumberFormatSymbols_da_DK=goog.i18n.NumberFormatSymbols_da; +goog.i18n.NumberFormatSymbols_de={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_de_AT={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_de_BE=goog.i18n.NumberFormatSymbols_de; +goog.i18n.NumberFormatSymbols_de_CH={DECIMAL_SEP:".",GROUP_SEP:"'",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4-#,##0.00",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_de_DE=goog.i18n.NumberFormatSymbols_de;goog.i18n.NumberFormatSymbols_de_LU=goog.i18n.NumberFormatSymbols_de; +goog.i18n.NumberFormatSymbols_el={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"[#E0]",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_el_GR=goog.i18n.NumberFormatSymbols_el; +goog.i18n.NumberFormatSymbols_en={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_en_AS=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_AU={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"AUD"};goog.i18n.NumberFormatSymbols_en_Dsrt_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_FM=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_GB={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_en_GU=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_IE={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_en_IN={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_en_MH=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_MP=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_PR=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_PW=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_SG={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"SGD"}; +goog.i18n.NumberFormatSymbols_en_TC=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_UM=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VG=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VI=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_ZA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"}; +goog.i18n.NumberFormatSymbols_es={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_es_419={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"MXN"};goog.i18n.NumberFormatSymbols_es_EA=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_ES=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_IC=goog.i18n.NumberFormatSymbols_es; +goog.i18n.NumberFormatSymbols_et={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_et_EE=goog.i18n.NumberFormatSymbols_et; +goog.i18n.NumberFormatSymbols_eu={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%\u00a0#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_eu_ES=goog.i18n.NumberFormatSymbols_eu; +goog.i18n.NumberFormatSymbols_fa={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u06f0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d7\u06f1\u06f0^",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0646\u0627\u0639\u062f\u062f",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u200e\u00a4#,##0.00;\u200e(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"IRR"};goog.i18n.NumberFormatSymbols_fa_IR=goog.i18n.NumberFormatSymbols_fa; +goog.i18n.NumberFormatSymbols_fi={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"ep\u00e4luku",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fi_FI=goog.i18n.NumberFormatSymbols_fi; +goog.i18n.NumberFormatSymbols_fil={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};goog.i18n.NumberFormatSymbols_fil_PH=goog.i18n.NumberFormatSymbols_fil; +goog.i18n.NumberFormatSymbols_fr={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fr_BL=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_fr_CA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"CAD"};goog.i18n.NumberFormatSymbols_fr_FR=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_GF=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_fr_GP=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MC=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MF=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MQ=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_RE=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_YT=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_gl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_gl_ES=goog.i18n.NumberFormatSymbols_gl; +goog.i18n.NumberFormatSymbols_gsw={DECIMAL_SEP:".",GROUP_SEP:"\u2019",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_gsw_CH=goog.i18n.NumberFormatSymbols_gsw; +goog.i18n.NumberFormatSymbols_gu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_gu_IN=goog.i18n.NumberFormatSymbols_gu; +goog.i18n.NumberFormatSymbols_haw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_haw_US=goog.i18n.NumberFormatSymbols_haw; +goog.i18n.NumberFormatSymbols_he={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};goog.i18n.NumberFormatSymbols_he_IL=goog.i18n.NumberFormatSymbols_he; +goog.i18n.NumberFormatSymbols_hi={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_hi_IN=goog.i18n.NumberFormatSymbols_hi; +goog.i18n.NumberFormatSymbols_hr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HRK"};goog.i18n.NumberFormatSymbols_hr_HR=goog.i18n.NumberFormatSymbols_hr; +goog.i18n.NumberFormatSymbols_hu={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HUF"};goog.i18n.NumberFormatSymbols_hu_HU=goog.i18n.NumberFormatSymbols_hu; +goog.i18n.NumberFormatSymbols_id={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};goog.i18n.NumberFormatSymbols_id_ID=goog.i18n.NumberFormatSymbols_id; +goog.i18n.NumberFormatSymbols_in={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"}; +goog.i18n.NumberFormatSymbols_is={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ISK"};goog.i18n.NumberFormatSymbols_is_IS=goog.i18n.NumberFormatSymbols_is; +goog.i18n.NumberFormatSymbols_it={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_it_IT=goog.i18n.NumberFormatSymbols_it;goog.i18n.NumberFormatSymbols_it_SM=goog.i18n.NumberFormatSymbols_it; +goog.i18n.NumberFormatSymbols_iw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"}; +goog.i18n.NumberFormatSymbols_ja={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"JPY"};goog.i18n.NumberFormatSymbols_ja_JP=goog.i18n.NumberFormatSymbols_ja; +goog.i18n.NumberFormatSymbols_kn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0c88",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_kn_IN=goog.i18n.NumberFormatSymbols_kn; +goog.i18n.NumberFormatSymbols_ko={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"KRW"};goog.i18n.NumberFormatSymbols_ko_KR=goog.i18n.NumberFormatSymbols_ko; +goog.i18n.NumberFormatSymbols_ln={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CDF"};goog.i18n.NumberFormatSymbols_ln_CD=goog.i18n.NumberFormatSymbols_ln; +goog.i18n.NumberFormatSymbols_lt={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2013",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"LTL"};goog.i18n.NumberFormatSymbols_lt_LT=goog.i18n.NumberFormatSymbols_lt; +goog.i18n.NumberFormatSymbols_lv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"nav\u00a0skaitlis",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"LVL"};goog.i18n.NumberFormatSymbols_lv_LV=goog.i18n.NumberFormatSymbols_lv; +goog.i18n.NumberFormatSymbols_ml={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ml_IN=goog.i18n.NumberFormatSymbols_ml; +goog.i18n.NumberFormatSymbols_mr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u0966",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_mr_IN=goog.i18n.NumberFormatSymbols_mr; +goog.i18n.NumberFormatSymbols_ms={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"MYR"};goog.i18n.NumberFormatSymbols_ms_Latn_MY=goog.i18n.NumberFormatSymbols_ms; +goog.i18n.NumberFormatSymbols_mt={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_mt_MT=goog.i18n.NumberFormatSymbols_mt; +goog.i18n.NumberFormatSymbols_nb={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};goog.i18n.NumberFormatSymbols_nb_NO=goog.i18n.NumberFormatSymbols_nb; +goog.i18n.NumberFormatSymbols_nl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_nl_NL=goog.i18n.NumberFormatSymbols_nl; +goog.i18n.NumberFormatSymbols_no={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"}; +goog.i18n.NumberFormatSymbols_or={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_or_IN=goog.i18n.NumberFormatSymbols_or; +goog.i18n.NumberFormatSymbols_pl={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"PLN"};goog.i18n.NumberFormatSymbols_pl_PL=goog.i18n.NumberFormatSymbols_pl; +goog.i18n.NumberFormatSymbols_pt={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"BRL"};goog.i18n.NumberFormatSymbols_pt_BR=goog.i18n.NumberFormatSymbols_pt; +goog.i18n.NumberFormatSymbols_pt_PT={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_ro={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RON"};goog.i18n.NumberFormatSymbols_ro_RO=goog.i18n.NumberFormatSymbols_ro; +goog.i18n.NumberFormatSymbols_ru={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u043d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RUB"};goog.i18n.NumberFormatSymbols_ru_RU=goog.i18n.NumberFormatSymbols_ru; +goog.i18n.NumberFormatSymbols_sk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sk_SK=goog.i18n.NumberFormatSymbols_sk; +goog.i18n.NumberFormatSymbols_sl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sl_SI=goog.i18n.NumberFormatSymbols_sl; +goog.i18n.NumberFormatSymbols_sq={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"ALL"};goog.i18n.NumberFormatSymbols_sq_AL=goog.i18n.NumberFormatSymbols_sq; +goog.i18n.NumberFormatSymbols_sr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RSD"};goog.i18n.NumberFormatSymbols_sr_Cyrl_RS=goog.i18n.NumberFormatSymbols_sr; +goog.i18n.NumberFormatSymbols_sv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d710^",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u00a4\u00a4\u00a4",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"SEK"};goog.i18n.NumberFormatSymbols_sv_SE=goog.i18n.NumberFormatSymbols_sv; +goog.i18n.NumberFormatSymbols_sw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"TZS"};goog.i18n.NumberFormatSymbols_sw_TZ=goog.i18n.NumberFormatSymbols_sw; +goog.i18n.NumberFormatSymbols_ta={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ta_IN=goog.i18n.NumberFormatSymbols_ta; +goog.i18n.NumberFormatSymbols_te={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_te_IN=goog.i18n.NumberFormatSymbols_te; +goog.i18n.NumberFormatSymbols_th={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"THB"};goog.i18n.NumberFormatSymbols_th_TH=goog.i18n.NumberFormatSymbols_th; +goog.i18n.NumberFormatSymbols_tl={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"}; +goog.i18n.NumberFormatSymbols_tr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"TRY"};goog.i18n.NumberFormatSymbols_tr_TR=goog.i18n.NumberFormatSymbols_tr; +goog.i18n.NumberFormatSymbols_uk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0415",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u041d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"UAH"};goog.i18n.NumberFormatSymbols_uk_UA=goog.i18n.NumberFormatSymbols_uk; +goog.i18n.NumberFormatSymbols_ur={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"PKR"};goog.i18n.NumberFormatSymbols_ur_PK=goog.i18n.NumberFormatSymbols_ur; +goog.i18n.NumberFormatSymbols_vi={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"VND"};goog.i18n.NumberFormatSymbols_vi_VN=goog.i18n.NumberFormatSymbols_vi; +goog.i18n.NumberFormatSymbols_zh={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"CNY"};goog.i18n.NumberFormatSymbols_zh_CN=goog.i18n.NumberFormatSymbols_zh; +goog.i18n.NumberFormatSymbols_zh_HK={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"HKD"};goog.i18n.NumberFormatSymbols_zh_Hans_CN=goog.i18n.NumberFormatSymbols_zh; +goog.i18n.NumberFormatSymbols_zh_TW={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"TWD"}; +goog.i18n.NumberFormatSymbols_zu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"I-NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_zu_ZA=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +"af"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af);if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar); +if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg;"bn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn); +if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca);if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca; +if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr;"cs"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs; +"cy"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da);if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de); +if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de; +if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el);if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_AU;if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_GB; +if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_SG; +if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es; +if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et;"eu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu); +if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi);if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi; +"fil"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr);if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr_CA; +if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr; +if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl); +if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl;"gsw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu; +"haw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he;"hi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi); +if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu);if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu; +"id"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is);if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is; +"it"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;"iw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja); +if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn;"ko"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko; +"ln"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt);if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv); +if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml);if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr; +"ms"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms);if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb); +if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or); +if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt; +if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro;"ru"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru; +"sk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl);if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq); +if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr);if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv; +"sw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw);if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te); +if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr); +if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur);if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur; +"vi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_HK; +if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_TW;"zu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormat=function(a,b,c){this.intlCurrencyCode_=b||goog.i18n.NumberFormatSymbols.DEF_CURRENCY_CODE;this.currencyStyle_=c||goog.i18n.NumberFormat.CurrencyStyle.LOCAL;this.maximumIntegerDigits_=40;this.minimumIntegerDigits_=1;this.significantDigits_=0;this.maximumFractionDigits_=3;this.minExponentDigits_=this.minimumFractionDigits_=0;this.showTrailingZeros_=this.useSignForPositiveExponent_=!1;this.positiveSuffix_=this.positivePrefix_="";this.negativePrefix_="-";this.negativeSuffix_=""; +this.multiplier_=1;this.groupingSize_=3;this.useExponentialNotation_=this.decimalSeparatorAlwaysShown_=!1;this.compactStyle_=goog.i18n.NumberFormat.CompactStyle.NONE;this.baseFormattingNumber_=null;"number"==typeof a?this.applyStandardPattern_(a):this.applyPattern_(a)};goog.i18n.NumberFormat.Format={DECIMAL:1,SCIENTIFIC:2,PERCENT:3,CURRENCY:4,COMPACT_SHORT:5,COMPACT_LONG:6};goog.i18n.NumberFormat.CurrencyStyle={LOCAL:0,PORTABLE:1,GLOBAL:2};goog.i18n.NumberFormat.CompactStyle={NONE:0,SHORT:1,LONG:2}; +goog.i18n.NumberFormat.enforceAsciiDigits_=!1;goog.i18n.NumberFormat.setEnforceAsciiDigits=function(a){goog.i18n.NumberFormat.enforceAsciiDigits_=a};goog.i18n.NumberFormat.isEnforceAsciiDigits=function(){return goog.i18n.NumberFormat.enforceAsciiDigits_};goog.i18n.NumberFormat.prototype.setMinimumFractionDigits=function(a){if(0<this.significantDigits_&&0<a)throw Error("Can't combine significant digits and minimum fraction digits");this.minimumFractionDigits_=a}; +goog.i18n.NumberFormat.prototype.setMaximumFractionDigits=function(a){this.maximumFractionDigits_=a};goog.i18n.NumberFormat.prototype.setSignificantDigits=function(a){if(0<this.minimumFractionDigits_&&0<=a)throw Error("Can't combine significant digits and minimum fraction digits");this.significantDigits_=a}; +goog.i18n.NumberFormat.prototype.applyPattern_=function(a){a.replace(/ /g,"\u00a0");var b=[0];this.positivePrefix_=this.parseAffix_(a,b);var c=b[0];this.parseTrunk_(a,b);c=b[0]-c;this.positiveSuffix_=this.parseAffix_(a,b);b[0]<a.length&&a.charAt(b[0])==goog.i18n.NumberFormat.PATTERN_SEPARATOR_?(b[0]++,this.negativePrefix_=this.parseAffix_(a,b),b[0]+=c,this.negativeSuffix_=this.parseAffix_(a,b)):(this.negativePrefix_=this.positivePrefix_+this.negativePrefix_,this.negativeSuffix_+=this.positiveSuffix_)}; +goog.i18n.NumberFormat.prototype.applyStandardPattern_=function(a){switch(a){case goog.i18n.NumberFormat.Format.DECIMAL:this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);break;case goog.i18n.NumberFormat.Format.SCIENTIFIC:this.applyPattern_(goog.i18n.NumberFormatSymbols.SCIENTIFIC_PATTERN);break;case goog.i18n.NumberFormat.Format.PERCENT:this.applyPattern_(goog.i18n.NumberFormatSymbols.PERCENT_PATTERN);break;case goog.i18n.NumberFormat.Format.CURRENCY:this.applyPattern_(goog.i18n.currency.adjustPrecision(goog.i18n.NumberFormatSymbols.CURRENCY_PATTERN, +this.intlCurrencyCode_));break;case goog.i18n.NumberFormat.Format.COMPACT_SHORT:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.SHORT);break;case goog.i18n.NumberFormat.Format.COMPACT_LONG:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.LONG);break;default:throw Error("Unsupported pattern type.");}}; +goog.i18n.NumberFormat.prototype.applyCompactStyle_=function(a){this.compactStyle_=a;this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);this.setMinimumFractionDigits(0);this.setMaximumFractionDigits(2);this.setSignificantDigits(2)}; +goog.i18n.NumberFormat.prototype.parse=function(a,b){var c=b||[0];if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact numbers is unimplemented");var d=NaN;a=a.replace(/ /g,"\u00a0");var e=a.indexOf(this.positivePrefix_,c[0])==c[0],f=a.indexOf(this.negativePrefix_,c[0])==c[0];e&&f&&(this.positivePrefix_.length>this.negativePrefix_.length?f=!1:this.positivePrefix_.length<this.negativePrefix_.length&&(e=!1));e?c[0]+=this.positivePrefix_.length:f&&(c[0]+=this.negativePrefix_.length); +a.indexOf(goog.i18n.NumberFormatSymbols.INFINITY,c[0])==c[0]?(c[0]+=goog.i18n.NumberFormatSymbols.INFINITY.length,d=Infinity):d=this.parseNumber_(a,c);if(e){if(a.indexOf(this.positiveSuffix_,c[0])!=c[0])return NaN;c[0]+=this.positiveSuffix_.length}else if(f){if(a.indexOf(this.negativeSuffix_,c[0])!=c[0])return NaN;c[0]+=this.negativeSuffix_.length}return f?-d:d}; +goog.i18n.NumberFormat.prototype.parseNumber_=function(a,b){var c=!1,d=!1,e=!1,f=1,g=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,h=goog.i18n.NumberFormatSymbols.GROUP_SEP,k=goog.i18n.NumberFormatSymbols.EXP_SYMBOL;if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact style numbers is not implemented");for(var l="";b[0]<a.length;b[0]++){var m=a.charAt(b[0]),p=this.getDigit_(m);if(0<=p&&9>=p)l+=p,e=!0;else if(m==g.charAt(0)){if(c||d)break;l+=".";c=!0}else if(m== +h.charAt(0)&&("\u00a0"!=h.charAt(0)||b[0]+1<a.length&&0<=this.getDigit_(a.charAt(b[0]+1)))){if(c||d)break}else if(m==k.charAt(0)){if(d)break;l+="E";d=!0}else if("+"==m||"-"==m)l+=m;else if(m==goog.i18n.NumberFormatSymbols.PERCENT.charAt(0)){if(1!=f)break;f=100;if(e){b[0]++;break}}else if(m==goog.i18n.NumberFormatSymbols.PERMILL.charAt(0)){if(1!=f)break;f=1E3;if(e){b[0]++;break}}else break}return parseFloat(l)/f}; +goog.i18n.NumberFormat.prototype.format=function(a){if(isNaN(a))return goog.i18n.NumberFormatSymbols.NAN;var b=[],c=goog.isNull(this.baseFormattingNumber_)?a:this.baseFormattingNumber_,c=this.getUnitAfterRounding_(c,a);a/=Math.pow(10,c.divisorBase);b.push(c.prefix);var d=0>a||0==a&&0>1/a;b.push(d?this.negativePrefix_:this.positivePrefix_);isFinite(a)?(a*=d?-1:1,a*=this.multiplier_,this.useExponentialNotation_?this.subformatExponential_(a,b):this.subformatFixed_(a,this.minimumIntegerDigits_,b)):b.push(goog.i18n.NumberFormatSymbols.INFINITY); +b.push(d?this.negativeSuffix_:this.positiveSuffix_);b.push(c.suffix);return b.join("")};goog.i18n.NumberFormat.prototype.roundNumber_=function(a){var b=Math.pow(10,this.maximumFractionDigits_),c=0>=this.significantDigits_?Math.round(a*b):Math.floor(this.roundToSignificantDigits_(a*b,this.significantDigits_,this.maximumFractionDigits_));isFinite(c)?(a=Math.floor(c/b),b=Math.floor(c-a*b)):b=0;return{intValue:a,fracValue:b}}; +goog.i18n.NumberFormat.prototype.subformatFixed_=function(a,b,c){if(this.minimumFractionDigits_>this.maximumFractionDigits_)throw Error("Min value must be less than max value");a=this.roundNumber_(a);var d=Math.pow(10,this.maximumFractionDigits_),e=a.intValue,f=a.fracValue,g=0==e?0:this.intLog10_(e)+1,h=0<this.minimumFractionDigits_||0<f||this.showTrailingZeros_&&g<this.significantDigits_;a=this.minimumFractionDigits_;h&&(a=this.showTrailingZeros_&&0<this.significantDigits_?this.significantDigits_- +g:this.minimumFractionDigits_);for(var k="",g=e;1E20<g;)k="0"+k,g=Math.round(g/10);var k=g+k,l=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,m=goog.i18n.NumberFormatSymbols.GROUP_SEP,g=goog.i18n.NumberFormat.enforceAsciiDigits_?48:goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0),p=k.length;if(0<e||0<b){for(e=p;e<b;e++)c.push(String.fromCharCode(g));for(e=0;e<p;e++)c.push(String.fromCharCode(g+1*k.charAt(e))),1<p-e&&0<this.groupingSize_&&1==(p-e)%this.groupingSize_&&c.push(m)}else h||c.push(String.fromCharCode(g)); +(this.decimalSeparatorAlwaysShown_||h)&&c.push(l);b=""+(f+d);for(d=b.length;"0"==b.charAt(d-1)&&d>a+1;)d--;for(e=1;e<d;e++)c.push(String.fromCharCode(g+1*b.charAt(e)))}; +goog.i18n.NumberFormat.prototype.addExponentPart_=function(a,b){b.push(goog.i18n.NumberFormatSymbols.EXP_SYMBOL);0>a?(a=-a,b.push(goog.i18n.NumberFormatSymbols.MINUS_SIGN)):this.useSignForPositiveExponent_&&b.push(goog.i18n.NumberFormatSymbols.PLUS_SIGN);for(var c=""+a,d=goog.i18n.NumberFormat.enforceAsciiDigits_?"0":goog.i18n.NumberFormatSymbols.ZERO_DIGIT,e=c.length;e<this.minExponentDigits_;e++)b.push(d);b.push(c)}; +goog.i18n.NumberFormat.prototype.subformatExponential_=function(a,b){if(0==a)this.subformatFixed_(a,this.minimumIntegerDigits_,b),this.addExponentPart_(0,b);else{var c=goog.math.safeFloor(Math.log(a)/Math.log(10));a/=Math.pow(10,c);var d=this.minimumIntegerDigits_;if(1<this.maximumIntegerDigits_&&this.maximumIntegerDigits_>this.minimumIntegerDigits_){for(;0!=c%this.maximumIntegerDigits_;)a*=10,c--;d=1}else 1>this.minimumIntegerDigits_?(c++,a/=10):(c-=this.minimumIntegerDigits_-1,a*=Math.pow(10,this.minimumIntegerDigits_- +1));this.subformatFixed_(a,d,b);this.addExponentPart_(c,b)}};goog.i18n.NumberFormat.prototype.getDigit_=function(a){a=a.charCodeAt(0);if(48<=a&&58>a)return a-48;var b=goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0);return b<=a&&a<b+10?a-b:-1};goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_="0";goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_=",";goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_=".";goog.i18n.NumberFormat.PATTERN_PER_MILLE_="\u2030";goog.i18n.NumberFormat.PATTERN_PERCENT_="%"; +goog.i18n.NumberFormat.PATTERN_DIGIT_="#";goog.i18n.NumberFormat.PATTERN_SEPARATOR_=";";goog.i18n.NumberFormat.PATTERN_EXPONENT_="E";goog.i18n.NumberFormat.PATTERN_PLUS_="+";goog.i18n.NumberFormat.PATTERN_MINUS_="-";goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_="\u00a4";goog.i18n.NumberFormat.QUOTE_="'"; +goog.i18n.NumberFormat.prototype.parseAffix_=function(a,b){for(var c="",d=!1,e=a.length;b[0]<e;b[0]++){var f=a.charAt(b[0]);if(f==goog.i18n.NumberFormat.QUOTE_)b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.QUOTE_?(b[0]++,c+="'"):d=!d;else if(d)c+=f;else switch(f){case goog.i18n.NumberFormat.PATTERN_DIGIT_:case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_SEPARATOR_:return c; +case goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_:if(b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_)b[0]++,c+=this.intlCurrencyCode_;else switch(this.currencyStyle_){case goog.i18n.NumberFormat.CurrencyStyle.LOCAL:c+=goog.i18n.currency.getLocalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.GLOBAL:c+=goog.i18n.currency.getGlobalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.PORTABLE:c+=goog.i18n.currency.getPortableCurrencySign(this.intlCurrencyCode_)}break; +case goog.i18n.NumberFormat.PATTERN_PERCENT_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=100;c+=goog.i18n.NumberFormatSymbols.PERCENT;break;case goog.i18n.NumberFormat.PATTERN_PER_MILLE_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=1E3;c+=goog.i18n.NumberFormatSymbols.PERMILL;break;default:c+=f}}return c}; +goog.i18n.NumberFormat.prototype.parseTrunk_=function(a,b){for(var c=-1,d=0,e=0,f=0,g=-1,h=a.length,k=!0;b[0]<h&&k;b[0]++){var l=a.charAt(b[0]);switch(l){case goog.i18n.NumberFormat.PATTERN_DIGIT_:0<e?f++:d++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:if(0<f)throw Error('Unexpected "0" in pattern "'+a+'"');e++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:g=0;break;case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:if(0<=c)throw Error('Multiple decimal separators in pattern "'+ +a+'"');c=d+e+f;break;case goog.i18n.NumberFormat.PATTERN_EXPONENT_:if(this.useExponentialNotation_)throw Error('Multiple exponential symbols in pattern "'+a+'"');this.useExponentialNotation_=!0;this.minExponentDigits_=0;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_PLUS_&&(b[0]++,this.useSignForPositiveExponent_=!0);for(;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_;)b[0]++,this.minExponentDigits_++;if(1>d+e||1>this.minExponentDigits_)throw Error('Malformed exponential pattern "'+ +a+'"');k=!1;break;default:b[0]--,k=!1}}0==e&&0<d&&0<=c&&(e=c,0==e&&e++,f=d-e,d=e-1,e=1);if(0>c&&0<f||0<=c&&(c<d||c>d+e)||0==g)throw Error('Malformed pattern "'+a+'"');f=d+e+f;this.maximumFractionDigits_=0<=c?f-c:0;0<=c&&(this.minimumFractionDigits_=d+e-c,0>this.minimumFractionDigits_&&(this.minimumFractionDigits_=0));e=0<=c?c:f;this.minimumIntegerDigits_=e-d;this.useExponentialNotation_&&(this.maximumIntegerDigits_=d+this.minimumIntegerDigits_,0==this.maximumFractionDigits_&&0==this.minimumIntegerDigits_&& +(this.minimumIntegerDigits_=1));this.groupingSize_=Math.max(0,g);this.decimalSeparatorAlwaysShown_=0==c||c==f};goog.i18n.NumberFormat.NULL_UNIT_={prefix:"",suffix:"",divisorBase:0}; +goog.i18n.NumberFormat.prototype.getUnitFor_=function(a,b){var c=this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.SHORT?goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_SHORT_PATTERN:goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_LONG_PATTERN;if(3>a)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.min(14,a);c=c[Math.pow(10,a)];if(!c)return goog.i18n.NumberFormat.NULL_UNIT_;c=c[b];return c&&"0"!=c?(c=/([^0]*)(0+)(.*)/.exec(c))?{prefix:c[1],suffix:c[3],divisorBase:a-(c[2].length-1)}: +goog.i18n.NumberFormat.NULL_UNIT_:goog.i18n.NumberFormat.NULL_UNIT_}; +goog.i18n.NumberFormat.prototype.getUnitAfterRounding_=function(a,b){if(this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.NONE)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.abs(a);b=Math.abs(b);var c=this.pluralForm_(a),d=1>=a?0:this.intLog10_(a),c=this.getUnitFor_(d,c).divisorBase,d=b/Math.pow(10,c),d=this.roundNumber_(d),e=a/Math.pow(10,c),e=this.roundNumber_(e),d=this.pluralForm_(d.intValue+d.fracValue);return this.getUnitFor_(c+this.intLog10_(e.intValue),d)}; +goog.i18n.NumberFormat.prototype.intLog10_=function(a){for(var b=0;1<=(a/=10);)b++;return b};goog.i18n.NumberFormat.prototype.roundToSignificantDigits_=function(a,b,c){if(!a)return a;var d=this.intLog10_(a);b=b-d-1;if(b<-c)return c=Math.pow(10,c),Math.round(a/c)*c;c=Math.pow(10,b);a=Math.round(a*c);return a/c};goog.i18n.NumberFormat.prototype.pluralForm_=function(){return"other"};goog.i18n.ordinalRules={};goog.i18n.ordinalRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.ordinalRules.defaultSelect_=function(){return goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.frSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.huSelect_=function(a){return 1==a||5==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.svSelect_=function(a){return 1!=a%10&&2!=a%10||11==a%100||12==a%100?goog.i18n.ordinalRules.Keyword.OTHER:goog.i18n.ordinalRules.Keyword.ONE};goog.i18n.ordinalRules.enSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.ordinalRules.Keyword.ONE:2==a%10&&12!=a%100?goog.i18n.ordinalRules.Keyword.TWO:3==a%10&&13!=a%100?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.itSelect_=function(a){return 11==a||8==a||80==a||800==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.caSelect_=function(a){return 1==a||3==a?goog.i18n.ordinalRules.Keyword.ONE:2==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.mrSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.guSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.bnSelect_=function(a){return 1==a||5==a||7==a||8==a||9==a||10==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.zuSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:a==(a|0)&&2<=a&&9>=a?goog.i18n.ordinalRules.Keyword.FEW:a==(a|0)&&(10<=a&&19>=a||100<=a&&199>=a||1E3<=a&&1999>=a)?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"am"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ar"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bg"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.bnSelect_);"br"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ca"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.caSelect_);"chr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"cs"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"cy"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"da"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"de"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"el"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"en"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"et"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"eu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fa"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fil"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"fr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_); +if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_;"gl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gsw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"haw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"he"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"hr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.huSelect_);"id"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"is"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"it"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.itSelect_);"iw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ja"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ln"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ml"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"mr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.mrSelect_);"ms"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_); +"mt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nb"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"no"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"or"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"pl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"pt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"ro"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"ru"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"sk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sq"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.svSelect_);"sw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ta"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"te"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"th"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ur"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"vi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"zh"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_; +if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.zuSelect_);goog.i18n.pluralRules={};goog.i18n.pluralRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.pluralRules.defaultSelect_=function(){return goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.arSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&99>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.heSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:0!=a&&0==a%10?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.enSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.filSelect_=function(a){return 0==a||1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.frSelect_=function(a){return 0<=a&&2>=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.lvSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.iuSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.gaSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a&&6>=a?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&7<=a&&10>=a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.roSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||1!=a&&a==(a|0)&&1<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.ltSelect_=function(a){return 1==a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&9>=a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.beSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:0==a%10||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&11<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.csSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&4>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.plSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:1!=a&&(0==a%10||1==a%10)||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&12<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.slSelect_=function(a){return 1==a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%100?goog.i18n.pluralRules.Keyword.TWO:3==a%100||4==a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.mtSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||a==(a|0)&&2<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.mkSelect_=function(a){return 1==a%10&&11!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.cySelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:3==a?goog.i18n.pluralRules.Keyword.FEW:6==a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.lagSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:0<=a&&2>=a&&0!=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.shiSelect_=function(a){return 0<=a&&1>=a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&10>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.brSelect_=function(a){return 1==a%10&&11!=a%100&&71!=a%100&&91!=a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%10&&12!=a%100&&72!=a%100&&92!=a%100?goog.i18n.pluralRules.Keyword.TWO:(3==a%10||4==a%10||9==a%10)&&(10>a%100||19<a%100)&&(70>a%100||79<a%100)&&(90>a%100||99<a%100)?goog.i18n.pluralRules.Keyword.FEW:0!=a&&0==a%1E6?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.kshSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.tzmSelect_=function(a){return 0==a||1==a||a==(a|0)&&11<=a&&99>=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.gvSelect_=function(a){return 1==a%10||2==a%10||0==a%20?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.gdSelect_=function(a){return 1==a||11==a?goog.i18n.pluralRules.Keyword.ONE:2==a||12==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&(3<=a&&10>=a||13<=a&&19>=a)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"am"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_); +"ar"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.arSelect_);"bg"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"bn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"br"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.brSelect_);"ca"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"chr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"cs"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"cy"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.cySelect_);"da"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"de"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"el"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"en"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"et"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"eu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fa"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fil"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"fr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_);if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_; +"gl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gsw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"haw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"he"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"hi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_); +"hr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"hu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"id"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"is"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"it"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"iw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"ja"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ln"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"lt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ltSelect_); +"lv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.lvSelect_);"ml"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"mr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ms"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"mt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.mtSelect_);"nb"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"nl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"no"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"or"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"pl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.plSelect_);"pt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"ro"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.roSelect_);"ru"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"sl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.slSelect_);"sq"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"sr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"sw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ta"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"te"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"th"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_); +"tl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"tr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"ur"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"vi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"zh"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_); +if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);goog.i18n.MessageFormat=function(a){this.literals_=[];this.parsedPattern_=[];this.numberFormatter_=new goog.i18n.NumberFormat(goog.i18n.NumberFormat.Format.DECIMAL);this.parsePattern_(a)};goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_="\ufddf_";goog.i18n.MessageFormat.Element_={STRING:0,BLOCK:1};goog.i18n.MessageFormat.BlockType_={PLURAL:0,ORDINAL:1,SELECT:2,SIMPLE:3,STRING:4,UNKNOWN:5};goog.i18n.MessageFormat.OTHER_="other";goog.i18n.MessageFormat.REGEX_LITERAL_=/'([{}#].*?)'/g; +goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_=/''/g;goog.i18n.MessageFormat.prototype.format=function(a){return this.format_(a,!1)};goog.i18n.MessageFormat.prototype.format_=function(a,b){if(0==this.parsedPattern_.length)return"";var c=[];this.formatBlock_(this.parsedPattern_,a,b,c);c=c.join("");for(b||goog.asserts.assert(-1==c.search("#"),"Not all # were replaced.");0<this.literals_.length;)c=c.replace(this.buildPlaceholder_(this.literals_),this.literals_.pop());return c}; +goog.i18n.MessageFormat.prototype.formatBlock_=function(a,b,c,d){for(var e=0;e<a.length;e++)switch(a[e].type){case goog.i18n.MessageFormat.BlockType_.STRING:d.push(a[e].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:var f=a[e].value;this.formatSimplePlaceholder_(f,b,d);break;case goog.i18n.MessageFormat.BlockType_.SELECT:f=a[e].value;this.formatSelectBlock_(f,b,c,d);break;case goog.i18n.MessageFormat.BlockType_.PLURAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.pluralRules.select, +c,d);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.ordinalRules.select,c,d);break;default:goog.asserts.fail("Unrecognized block type.")}};goog.i18n.MessageFormat.prototype.formatSimplePlaceholder_=function(a,b,c){b=b[a];goog.isDef(b)?(this.literals_.push(b),c.push(this.buildPlaceholder_(this.literals_))):c.push("Undefined parameter - "+a)}; +goog.i18n.MessageFormat.prototype.formatSelectBlock_=function(a,b,c,d){var e=a.argumentIndex;goog.isDef(b[e])?(e=a[b[e]],goog.isDef(e)||(e=a[goog.i18n.MessageFormat.OTHER_],goog.asserts.assertArray(e,"Invalid option or missing other option for select block.")),this.formatBlock_(e,b,c,d)):d.push("Undefined parameter - "+e)}; +goog.i18n.MessageFormat.prototype.formatPluralOrdinalBlock_=function(a,b,c,d,e){var f=a.argumentIndex,g=a.argumentOffset,h=+b[f];isNaN(h)?e.push("Undefined or invalid parameter - "+f):(g=h-g,f=a[b[f]],goog.isDef(f)||(goog.asserts.assert(0<=g,"Argument index smaller than offset."),c=c(g),goog.asserts.assertString(c,"Invalid plural key."),f=a[c],goog.isDef(f)||(f=a[goog.i18n.MessageFormat.OTHER_]),goog.asserts.assertArray(f,"Invalid option or missing other option for plural block.")),a=[],this.formatBlock_(f, +b,d,a),b=a.join(""),goog.asserts.assertString(b,"Empty block in plural."),d?e.push(b):(d=this.numberFormatter_.format(g),e.push(b.replace(/#/g,d))))};goog.i18n.MessageFormat.prototype.parsePattern_=function(a){a&&(a=this.insertPlaceholders_(a),this.parsedPattern_=this.parseBlock_(a))}; +goog.i18n.MessageFormat.prototype.insertPlaceholders_=function(a){var b=this.literals_,c=goog.bind(this.buildPlaceholder_,this);a=a.replace(goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_,function(){b.push("'");return c(b)});return a=a.replace(goog.i18n.MessageFormat.REGEX_LITERAL_,function(a,e){b.push(e);return c(b)})}; +goog.i18n.MessageFormat.prototype.extractParts_=function(a){var b=0,c=[],d=[],e=/[{}]/g;e.lastIndex=0;for(var f;f=e.exec(a);){var g=f.index;"}"==f[0]?(f=c.pop(),goog.asserts.assert(goog.isDef(f)&&"{"==f,"No matching { for }."),0==c.length&&(f={},f.type=goog.i18n.MessageFormat.Element_.BLOCK,f.value=a.substring(b,g),d.push(f),b=g+1)):(0==c.length&&(b=a.substring(b,g),""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b}),b=g+1),c.push("{"))}goog.asserts.assert(0==c.length,"There are mismatched { or } in the pattern."); +b=a.substring(b);""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b});return d};goog.i18n.MessageFormat.PLURAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*plural\s*,(?:\s*offset:(\d+))?/;goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*selectordinal\s*,/;goog.i18n.MessageFormat.SELECT_BLOCK_RE_=/^\s*(\w+)\s*,\s*select\s*,/; +goog.i18n.MessageFormat.prototype.parseBlockType_=function(a){return goog.i18n.MessageFormat.PLURAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.PLURAL:goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.ORDINAL:goog.i18n.MessageFormat.SELECT_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.SELECT:/^\s*\w+\s*/.test(a)?goog.i18n.MessageFormat.BlockType_.SIMPLE:goog.i18n.MessageFormat.BlockType_.UNKNOWN}; +goog.i18n.MessageFormat.prototype.parseBlock_=function(a){var b=[];a=this.extractParts_(a);for(var c=0;c<a.length;c++){var d={};if(goog.i18n.MessageFormat.Element_.STRING==a[c].type)d.type=goog.i18n.MessageFormat.BlockType_.STRING,d.value=a[c].value;else if(goog.i18n.MessageFormat.Element_.BLOCK==a[c].type){var e=this.parseBlockType_(a[c].value);switch(e){case goog.i18n.MessageFormat.BlockType_.SELECT:d.type=goog.i18n.MessageFormat.BlockType_.SELECT;d.value=this.parseSelectBlock_(a[c].value);break; +case goog.i18n.MessageFormat.BlockType_.PLURAL:d.type=goog.i18n.MessageFormat.BlockType_.PLURAL;d.value=this.parsePluralBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:d.type=goog.i18n.MessageFormat.BlockType_.ORDINAL;d.value=this.parseOrdinalBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:d.type=goog.i18n.MessageFormat.BlockType_.SIMPLE;d.value=a[c].value;break;default:goog.asserts.fail("Unknown block type.")}}else goog.asserts.fail("Unknown part of the pattern."); +b.push(d)}return b}; +goog.i18n.MessageFormat.prototype.parseSelectBlock_=function(a){var b="",c=goog.i18n.MessageFormat.SELECT_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing select key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid select value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");c[e.replace(/\s/g, +"")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in select statement.");return c}; +goog.i18n.MessageFormat.prototype.parsePluralBlock_=function(a){var b="",c=0,d=goog.i18n.MessageFormat.PLURAL_BLOCK_RE_;a=a.replace(d,function(a,d,e){b=d;e&&(c=parseInt(e,10));return""});d={};d.argumentIndex=b;d.argumentOffset=c;a=this.extractParts_(a);for(var e=0;e<a.length;){var f=a[e].value;goog.asserts.assertString(f,"Missing plural key element.");e++;goog.asserts.assert(e<a.length,"Missing or invalid plural value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[e].type)var g=this.parseBlock_(a[e].value); +else goog.asserts.fail("Expected block type.");d[f.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=g;e++}goog.asserts.assertArray(d[goog.i18n.MessageFormat.OTHER_],"Missing other key in plural statement.");return d}; +goog.i18n.MessageFormat.prototype.parseOrdinalBlock_=function(a){var b="",c=goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;c.argumentOffset=0;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing ordinal key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid ordinal value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type."); +c[e.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in selectordinal statement.");return c};goog.i18n.MessageFormat.prototype.buildPlaceholder_=function(a){goog.asserts.assert(0<a.length,"Literal array is empty.");a=(a.length-1).toString(10);return goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_+a+"_"};cvox.TtsCapturingEventListener=function(){};cvox.TtsInterface=function(){};cvox.TtsInterface.prototype.speak=function(){};cvox.TtsInterface.prototype.isSpeaking=function(){};cvox.TtsInterface.prototype.stop=function(){};cvox.TtsInterface.prototype.increaseOrDecreaseProperty=function(){};cvox.TtsInterface.prototype.getDefaultProperty=function(){};cvox.AbstractTts=function(){this.ttsProperties={};this.propertyDefault={rate:0.5,pitch:0.5,volume:0.5};this.propertyMin={rate:0,pitch:0,volume:0};this.propertyMax={rate:1,pitch:1,volume:1};this.propertyStep={rate:0.1,pitch:0.1,volume:0.1};if(void 0==cvox.AbstractTts.pronunciationDictionaryRegexp_){var a=[],b;for(b in cvox.AbstractTts.PRONUNCIATION_DICTIONARY)a.push(b);a="\\b("+a.join("|")+")\\b";cvox.AbstractTts.pronunciationDictionaryRegexp_=RegExp(a,"ig")}if(void 0==cvox.AbstractTts.substitutionDictionaryRegexp_){var a= +[],c;for(c in cvox.AbstractTts.SUBSTITUTION_DICTIONARY)a.push(c);a="("+a.join("|")+")";cvox.AbstractTts.substitutionDictionaryRegexp_=RegExp(a,"ig")}};cvox.AbstractTts.prototype.speak=function(){return this};cvox.AbstractTts.prototype.isSpeaking=function(){return!1};cvox.AbstractTts.prototype.stop=function(){}; +cvox.AbstractTts.prototype.increaseOrDecreaseProperty=function(a,b){var c=this.propertyMin[a],d=this.propertyMax[a],e=this.propertyStep[a],f=this.ttsProperties[a],f=b?f+e:f-e;this.ttsProperties[a]=Math.max(Math.min(f,d),c)}; +cvox.AbstractTts.prototype.mergeProperties=function(a){var b={},c;if(this.ttsProperties)for(c in this.ttsProperties)b[c]=this.ttsProperties[c];if(a){c=cvox.AbstractTts;"number"==typeof a[c.VOLUME]&&(b[c.VOLUME]=a[c.VOLUME]);"number"==typeof a[c.PITCH]&&(b[c.PITCH]=a[c.PITCH]);"number"==typeof a[c.RATE]&&(b[c.RATE]=a[c.RATE]);"string"==typeof a[c.LANG]&&(b[c.LANG]=a[c.LANG]);var d=this,e=function(c,e){if("number"==typeof a[e]&&"number"==typeof b[c]){b[c]+=a[e];var h=d.propertyMin[c],k=d.propertyMax[c]; +b[c]>k?b[c]=k:b[c]<h&&(b[c]=h)}};e(c.VOLUME,c.RELATIVE_VOLUME);e(c.PITCH,c.RELATIVE_PITCH);e(c.RATE,c.RELATIVE_RATE)}return b};cvox.AbstractTts.RATE="rate";cvox.AbstractTts.PITCH="pitch";cvox.AbstractTts.VOLUME="volume";cvox.AbstractTts.LANG="lang";cvox.AbstractTts.RELATIVE_RATE="relativeRate";cvox.AbstractTts.RELATIVE_PITCH="relativePitch";cvox.AbstractTts.RELATIVE_VOLUME="relativeVolume";cvox.AbstractTts.COLOR="color";cvox.AbstractTts.FONT_WEIGHT="fontWeight";cvox.AbstractTts.PUNCTUATION_ECHO="punctuationEcho"; +cvox.AbstractTts.PAUSE="pause";cvox.AbstractTts.PERSONALITY_ANNOTATION={relativePitch:-0.25,color:"yellow",punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT={punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ASIDE={relativePitch:-0.1,color:"#669"};cvox.AbstractTts.PERSONALITY_CAPITAL={relativePitch:0.6};cvox.AbstractTts.PERSONALITY_DELETED={punctuationEcho:"none",relativePitch:-0.6};cvox.AbstractTts.PERSONALITY_QUOTE={relativePitch:0.1,color:"#b6b",fontWeight:"bold"}; +cvox.AbstractTts.PERSONALITY_STRONG={relativePitch:0.1,color:"#b66",fontWeight:"bold"};cvox.AbstractTts.PERSONALITY_EMPHASIS={relativeVolume:0.1,relativeRate:-0.1,color:"#6bb",fontWeight:"bold"};cvox.AbstractTts.DEBUG=!0;cvox.AbstractTts.QUEUE_MODE_FLUSH=0;cvox.AbstractTts.QUEUE_MODE_QUEUE=1; +cvox.AbstractTts.CHARACTER_DICTIONARY={" ":"space","`":"backtick","~":"tilde","!":"exclamation","@":"at","#":"pound",$:"dollar","%":"percent","^":"caret","&":"ampersand","*":"asterisk","(":"open_paren",")":"close_paren","-":"dash",_:"underscore","=":"equals","+":"plus","[":"left_bracket","]":"right_bracket","{":"left_brace","}":"right_brace","|":"pipe",";":"semicolon",":":"colon",",":"comma",".":"dot","<":"less_than",">":"greater_than","/":"slash","?":"question_mark",'"':"quote","'":"apostrophe", +"\t":"tab","\r":"return","\n":"new line","\\":"backslash"};cvox.AbstractTts.PRONUNCIATION_DICTIONARY={admob:"ad-mob",adsense:"ad-sense",adwords:"ad-words",angularjs:"angular j s",bcc:"B C C",cc:"C C",chromevox:"chrome vox",cr48:"C R 48",ctrl:"control",doubleclick:"double-click",gmail:"gee mail",gtalk:"gee talk",http:"H T T P",https:"H T T P S",igoogle:"eye google",pagerank:"page-rank",username:"user-name",www:"W W W",youtube:"you tube"}; +cvox.AbstractTts.SUBSTITUTION_DICTIONARY={"://":"colon slash slash","\u00bc":"one fourth","\u00bd":"one half","\u200e":"left to right mark","\u2190":"left arrow","\u2191":"up arrow","\u2192":"right arrow","\u2193":"down arrow","\u21d0":"left double arrow","\u21d1":"up double arrow","\u21d2":"right double arrow","\u21d3":"down double arrow","\u21e6":"left arrow","\u21e7":"up arrow","\u21e8":"right arrow","\u21e9":"down arrow","\u2303":"control","\u2318":"command","\u2325":"option","\u25b2":"up triangle", +"\u25b3":"up triangle","\u25b4":"up triangle","\u25b5":"up triangle","\u25b6":"right triangle","\u25b7":"right triangle","\u25b8":"right triangle","\u25b9":"right triangle","\u25ba":"right pointer","\u25bb":"right pointer","\u25bc":"down triangle","\u25bd":"down triangle","\u25be":"down triangle","\u25bf":"down triangle","\u25c0":"left triangle","\u25c1":"left triangle","\u25c2":"left triangle","\u25c3":"left triangle","\u25c4":"left pointer","\u25c5":"left pointer","\uf8ff":"apple"}; +cvox.AbstractTts.repetitionRegexp_=/([-\/\\|!@#$%^&*\(\)=_+\[\]\{\}.?;'":<>])\1{2,}/g;cvox.AbstractTts.repetitionReplace_=function(a){var b=a.length;return" "+(new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg(cvox.AbstractTts.CHARACTER_DICTIONARY[a[0]]))).format({COUNT:b})+" "};cvox.AbstractTts.prototype.getDefaultProperty=function(a){return this.propertyDefault[a]};cvox.AbstractEarcons=function(){this.enabled=!0};cvox.AbstractEarcons.prototype.playEarcon=function(){};cvox.AbstractEarcons.prototype.playEarconByName=function(a){this.playEarcon(this.getEarconId(a))};cvox.AbstractEarcons.prototype.earconsAvailable=function(){return!0}; +cvox.AbstractEarcons.prototype.getEarconId=function(a){this.earconNamesToIds||(this.earconNamesToIds={},this.earconNamesToIds.ALERT_MODAL=cvox.AbstractEarcons.ALERT_MODAL,this.earconNamesToIds.ALERT_NONMODAL=cvox.AbstractEarcons.ALERT_NONMODAL,this.earconNamesToIds.BULLET=cvox.AbstractEarcons.BULLET,this.earconNamesToIds.BUSY_PROGRESS_LOOP=cvox.AbstractEarcons.BUSY_PROGRESS_LOOP,this.earconNamesToIds.BUSY_WORKING_LOOP=cvox.AbstractEarcons.BUSY_WORKING_LOOP,this.earconNamesToIds.BUTTON=cvox.AbstractEarcons.BUTTON, +this.earconNamesToIds.CHECK_OFF=cvox.AbstractEarcons.CHECK_OFF,this.earconNamesToIds.CHECK_ON=cvox.AbstractEarcons.CHECK_ON,this.earconNamesToIds.CHROMEVOX_DISABLED=cvox.AbstractEarcons.CHROMEVOX_DISABLED,this.earconNamesToIds.CHROMEVOX_ENABLED=cvox.AbstractEarcons.CHROMEVOX_ENABLED,this.earconNamesToIds.COLLAPSED=cvox.AbstractEarcons.COLLAPSED,this.earconNamesToIds.EDITABLE_TEXT=cvox.AbstractEarcons.EDITABLE_TEXT,this.earconNamesToIds.ELLIPSIS=cvox.AbstractEarcons.ELLIPSIS,this.earconNamesToIds.EXPANDED= +cvox.AbstractEarcons.EXPANDED,this.earconNamesToIds.FONT_CHANGE=cvox.AbstractEarcons.FONT_CHANGE,this.earconNamesToIds.INVALID_KEYPRESS=cvox.AbstractEarcons.INVALID_KEYPRESS,this.earconNamesToIds.LINK=cvox.AbstractEarcons.LINK,this.earconNamesToIds.LISTBOX=cvox.AbstractEarcons.LISTBOX,this.earconNamesToIds.LIST_ITEM=cvox.AbstractEarcons.LIST_ITEM,this.earconNamesToIds.LONG_DESC=cvox.AbstractEarcons.LONG_DESC,this.earconNamesToIds.NEW_MAIL=cvox.AbstractEarcons.NEW_MAIL,this.earconNamesToIds.OBJECT_CLOSE= +cvox.AbstractEarcons.OBJECT_CLOSE,this.earconNamesToIds.OBJECT_DELETE=cvox.AbstractEarcons.OBJECT_DELETE,this.earconNamesToIds.OBJECT_DESELECT=cvox.AbstractEarcons.OBJECT_DESELECT,this.earconNamesToIds.OBJECT_ENTER=cvox.AbstractEarcons.OBJECT_ENTER,this.earconNamesToIds.OBJECT_EXIT=cvox.AbstractEarcons.OBJECT_EXIT,this.earconNamesToIds.OBJECT_OPEN=cvox.AbstractEarcons.OBJECT_OPEN,this.earconNamesToIds.OBJECT_SELECT=cvox.AbstractEarcons.OBJECT_SELECT,this.earconNamesToIds.PARAGRAPH_BREAK=cvox.AbstractEarcons.PARAGRAPH_BREAK, +this.earconNamesToIds.SEARCH_HIT=cvox.AbstractEarcons.SEARCH_HIT,this.earconNamesToIds.SEARCH_MISS=cvox.AbstractEarcons.SEARCH_MISS,this.earconNamesToIds.SECTION=cvox.AbstractEarcons.SECTION,this.earconNamesToIds.SELECTION=cvox.AbstractEarcons.SELECTION,this.earconNamesToIds.SELECTION_REVERSE=cvox.AbstractEarcons.SELECTION_REVERSE,this.earconNamesToIds.SPECIAL_CONTENT=cvox.AbstractEarcons.SPECIAL_CONTENT,this.earconNamesToIds.TASK_SUCCESS=cvox.AbstractEarcons.TASK_SUCCESS,this.earconNamesToIds.WRAP= +cvox.AbstractEarcons.WRAP,this.earconNamesToIds.WRAP_EDGE=cvox.AbstractEarcons.WRAP_EDGE);return this.earconNamesToIds[a]};cvox.AbstractEarcons.prototype.getEarconFilename=function(a){return cvox.AbstractEarcons.earconMap[a]};cvox.AbstractEarcons.prototype.toggle=function(){return this.enabled=!this.enabled};cvox.AbstractEarcons.ALERT_MODAL=0;cvox.AbstractEarcons.ALERT_NONMODAL=1;cvox.AbstractEarcons.BULLET=2;cvox.AbstractEarcons.BUSY_PROGRESS_LOOP=3;cvox.AbstractEarcons.BUSY_WORKING_LOOP=4; +cvox.AbstractEarcons.BUTTON=5;cvox.AbstractEarcons.CHECK_OFF=6;cvox.AbstractEarcons.CHECK_ON=7;cvox.AbstractEarcons.CHROMEVOX_DISABLED=8;cvox.AbstractEarcons.CHROMEVOX_ENABLED=9;cvox.AbstractEarcons.COLLAPSED=10;cvox.AbstractEarcons.EDITABLE_TEXT=11;cvox.AbstractEarcons.ELLIPSIS=12;cvox.AbstractEarcons.EXPANDED=13;cvox.AbstractEarcons.FONT_CHANGE=14;cvox.AbstractEarcons.INVALID_KEYPRESS=15;cvox.AbstractEarcons.LINK=16;cvox.AbstractEarcons.LISTBOX=17;cvox.AbstractEarcons.LIST_ITEM=18; +cvox.AbstractEarcons.LONG_DESC=19;cvox.AbstractEarcons.NEW_MAIL=20;cvox.AbstractEarcons.OBJECT_CLOSE=21;cvox.AbstractEarcons.OBJECT_DELETE=22;cvox.AbstractEarcons.OBJECT_DESELECT=23;cvox.AbstractEarcons.OBJECT_ENTER=24;cvox.AbstractEarcons.OBJECT_EXIT=25;cvox.AbstractEarcons.OBJECT_OPEN=26;cvox.AbstractEarcons.OBJECT_SELECT=27;cvox.AbstractEarcons.PARAGRAPH_BREAK=28;cvox.AbstractEarcons.SEARCH_HIT=29;cvox.AbstractEarcons.SEARCH_MISS=30;cvox.AbstractEarcons.SECTION=31; +cvox.AbstractEarcons.SELECTION=32;cvox.AbstractEarcons.SELECTION_REVERSE=33;cvox.AbstractEarcons.SPECIAL_CONTENT=34;cvox.AbstractEarcons.TASK_SUCCESS=35;cvox.AbstractEarcons.WRAP=36;cvox.AbstractEarcons.WRAP_EDGE=37;cvox.AbstractEarcons.earconMap={};cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_MODAL]="alert_modal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_NONMODAL]="alert_nonmodal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BULLET]="bullet.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_PROGRESS_LOOP]="busy_progress_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_WORKING_LOOP]="busy_working_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUTTON]="button.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_OFF]="check_off.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_ON]="check_on.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_DISABLED]="chromevox_disabled.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_ENABLED]="chromevox_enabled.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.COLLAPSED]="collapsed.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EDITABLE_TEXT]="editable_text.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ELLIPSIS]="ellipsis.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EXPANDED]="expanded.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.FONT_CHANGE]="font_change.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.INVALID_KEYPRESS]="invalid_keypress.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LINK]="link.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LISTBOX]="listbox.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LIST_ITEM]="bullet.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LONG_DESC]="long_desc.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.NEW_MAIL]="new_mail.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_CLOSE]="object_close.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DELETE]="object_delete.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DESELECT]="object_deselect.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_ENTER]="object_enter.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_EXIT]="object_exit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_OPEN]="object_open.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_SELECT]="object_select.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.PARAGRAPH_BREAK]="paragraph_break.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_HIT]="search_hit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_MISS]="search_miss.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SECTION]="section.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION]="selection.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION_REVERSE]="selection_reverse.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SPECIAL_CONTENT]="special_content.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.TASK_SUCCESS]="task_success.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP]="wrap.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP_EDGE]="wrap_edge.ogg";cvox.NodeStateUtil={};cvox.NodeStateUtil.expand=function(a){try{return a.map(function(a){if(1>a.length)throw Error("cvox.NodeState must have at least one entry");var b=a.slice(1).map(function(a){return"number"==typeof a?cvox.ChromeVox.msgs.getNumber(a):a});return cvox.ChromeVox.msgs.getMsg(a[0],b)}).join(" ")}catch(b){throw Error("error: "+b+" state: "+a);}};cvox.AriaUtil=function(){};cvox.AriaUtil.NO_ROLE_NAME=" "; +cvox.AriaUtil.WIDGET_ROLE_TO_NAME={alert:"aria_role_alert",alertdialog:"aria_role_alertdialog",button:"aria_role_button",checkbox:"aria_role_checkbox",columnheader:"aria_role_columnheader",combobox:"aria_role_combobox",dialog:"aria_role_dialog",grid:"aria_role_grid",gridcell:"aria_role_gridcell",link:"aria_role_link",listbox:"aria_role_listbox",log:"aria_role_log",marquee:"aria_role_marquee",menu:"aria_role_menu",menubar:"aria_role_menubar",menuitem:"aria_role_menuitem",menuitemcheckbox:"aria_role_menuitemcheckbox", +menuitemradio:"aria_role_menuitemradio",option:cvox.AriaUtil.NO_ROLE_NAME,progressbar:"aria_role_progressbar",radio:"aria_role_radio",radiogroup:"aria_role_radiogroup",rowheader:"aria_role_rowheader",scrollbar:"aria_role_scrollbar",slider:"aria_role_slider",spinbutton:"aria_role_spinbutton",status:"aria_role_status",tab:"aria_role_tab",tabpanel:"aria_role_tabpanel",textbox:"aria_role_textbox",timer:"aria_role_timer",toolbar:"aria_role_toolbar",tooltip:"aria_role_tooltip",treeitem:"aria_role_treeitem"}; +cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME={article:"aria_role_article",application:"aria_role_application",banner:"aria_role_banner",columnheader:"aria_role_columnheader",complementary:"aria_role_complementary",contentinfo:"aria_role_contentinfo",definition:"aria_role_definition",directory:"aria_role_directory",document:"aria_role_document",form:"aria_role_form",group:"aria_role_group",heading:"aria_role_heading",img:"aria_role_img",list:"aria_role_list",listitem:"aria_role_listitem",main:"aria_role_main", +math:"aria_role_math",navigation:"aria_role_navigation",note:"aria_role_note",region:"aria_role_region",rowheader:"aria_role_rowheader",search:"aria_role_search",separator:"aria_role_separator"}; +cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS=[{name:"aria-autocomplete",values:{inline:"aria_autocomplete_inline",list:"aria_autocomplete_list",both:"aria_autocomplete_both"}},{name:"aria-checked",values:{"true":"aria_checked_true","false":"aria_checked_false",mixed:"aria_checked_mixed"}},{name:"aria-disabled",values:{"true":"aria_disabled_true"}},{name:"aria-expanded",values:{"true":"aria_expanded_true","false":"aria_expanded_false"}},{name:"aria-invalid",values:{"true":"aria_invalid_true",grammar:"aria_invalid_grammar", +spelling:"aria_invalid_spelling"}},{name:"aria-multiline",values:{"true":"aria_multiline_true"}},{name:"aria-multiselectable",values:{"true":"aria_multiselectable_true"}},{name:"aria-pressed",values:{"true":"aria_pressed_true","false":"aria_pressed_false",mixed:"aria_pressed_mixed"}},{name:"aria-readonly",values:{"true":"aria_readonly_true"}},{name:"aria-required",values:{"true":"aria_required_true"}},{name:"aria-selected",values:{"true":"aria_selected_true","false":"aria_selected_false"}}]; +cvox.AriaUtil.isHiddenRecursive=function(a){if(cvox.AriaUtil.isHidden(a))return!0;for(a=a.parentElement;a;){if("true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return!0;a=a.parentElement}return!1};cvox.AriaUtil.isHidden=function(a){return!a||a.getAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")?!0:!1}; +cvox.AriaUtil.isForcedVisibleRecursive=function(a){for(;a;){if(a.getAttribute&&a.hasAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return"false"==a.getAttribute("aria-hidden");a=a.parentElement}return!1};cvox.AriaUtil.isLeafElement=function(a){var b=a.getAttribute("role");a=a.hasAttribute("aria-label")&&0<a.getAttribute("aria-label").length;return"img"==b||"progressbar"==b||a}; +cvox.AriaUtil.isDescendantOfRole=function(a,b){for(;a;){if(b&&a&&a.getAttribute("role")==b)return!0;a=a.parentNode}return!1};cvox.AriaUtil.getRoleNameMsgForRole_=function(a){return(a=cvox.AriaUtil.WIDGET_ROLE_TO_NAME[a])?a==cvox.AriaUtil.NO_ROLE_NAME?" ":a:null};cvox.AriaUtil.isButton=function(a){var b=cvox.AriaUtil.getRoleAttribute(a);return"button"==b||"BUTTON"==a.tagName?!0:"INPUT"==a.tagName?"submit"==a.type||"reset"==a.type||"button"==a.type:!1}; +cvox.AriaUtil.getRoleNameMsg=function(a){var b;if(a&&a.getAttribute){var c=cvox.AriaUtil.getRoleAttribute(a);if("true"==a.getAttribute("aria-haspopup")&&cvox.AriaUtil.isButton(a))return"aria_role_popup_button";c&&((b=cvox.AriaUtil.getRoleNameMsgForRole_(c))||(b=cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME[c]));if("menuitem"==c){for(a=a.parentElement;a&&(!a.getAttribute||"menu"!=cvox.AriaUtil.getRoleAttribute(a)&&"menubar"!=cvox.AriaUtil.getRoleAttribute(a));)a=a.parentElement;a&&"menubar"==cvox.AriaUtil.getRoleAttribute(a)&& +(b=cvox.AriaUtil.getRoleNameMsgForRole_("menu"))}}b||(b="");return b};cvox.AriaUtil.getRoleName=function(a){var b=cvox.AriaUtil.getRoleNameMsg(a),b=cvox.ChromeVox.msgs.getMsg(b),c=cvox.AriaUtil.getRoleAttribute(a);"heading"==c&&a.hasAttribute("aria-level")&&(b+=" "+a.getAttribute("aria-level"));return b?b:""}; +cvox.AriaUtil.getStateMsgs=function(a,b){var c=[];if(!a||!a.getAttribute)return c;for(var d=0,e;e=cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS[d];d++){var f=a.getAttribute(e.name);(e=e.values[f])&&c.push([e])}if("grid"==a.getAttribute("role"))return cvox.AriaUtil.getGridState_(a,a);e=cvox.AriaUtil.getRoleAttribute(a);"true"==a.getAttribute("aria-haspopup")&&("menuitem"==e?c.push(["has_submenu"]):cvox.AriaUtil.isButton(a)||c.push(["has_popup"]));if(d=a.getAttribute("aria-valuetext"))return c.push([d]), +c;var d=a.getAttribute("aria-valuenow"),f=a.getAttribute("aria-valuemin"),g=a.getAttribute("aria-valuemax");if(null!=d&&null!=f&&null!=g&&("scrollbar"==e||"progressbar"==e)){var h=Math.round(d/(g-f)*100);c.push(["state_percent",h]);return c}null!=d&&c.push(["aria_value_now",d]);null!=f&&c.push(["aria_value_min",f]);null!=g&&c.push(["aria_value_max",g]);f=a;d=null;if(cvox.AriaUtil.isCompositeControl(f)&&b)d=cvox.AriaUtil.getActiveDescendant(f);else if(e=cvox.AriaUtil.getRoleAttribute(a),"option"== +e||"menuitem"==e||"menuitemcheckbox"==e||"menuitemradio"==e||"radio"==e||"tab"==e||"treeitem"==e)for(d=a,f=a.parentElement;f&&!cvox.AriaUtil.isCompositeControl(f)&&(!(f=f.parentElement)||"treeitem"!=cvox.AriaUtil.getRoleAttribute(f)););if(f&&(cvox.AriaUtil.isCompositeControl(f)||"treeitem"==cvox.AriaUtil.getRoleAttribute(f))&&d){e=cvox.AriaUtil.getRoleAttribute(f);var k;switch(e){case "combobox":case "listbox":k=["option"];break;case "menu":k=["menuitem","menuitemcheck","menuitemradio"];break;case "radiogroup":k= +["radio"];break;case "tablist":k=["tab"];break;case "tree":case "treegrid":case "treeitem":k=["treeitem"]}if(k){var l;e=parseInt(d.getAttribute("aria-setsize"),10);isNaN(e)||(h=e);e=parseInt(d.getAttribute("aria-posinset"),10);isNaN(e)||(l=e);if(void 0==h||void 0==l)if(k=cvox.AriaUtil.getNextLevel(f,k),void 0==h&&(h=k.length),void 0==l)for(e=0;e<k.length;e++)k[e]==d&&(l=e+1);l&&h&&c.push(["list_position",l,h])}}return c}; +cvox.AriaUtil.getGridState_=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(b);if(c)for(var d='*[role~="row"]',d=b.querySelectorAll(d),e=0;e<d.length;e++)for(var f=d[e].querySelectorAll('*[role~="gridcell"]'),g=0;g<f.length;g++)if(f[g]==c)return[["aria_role_gridcell_pos",e+1,g+1]];return[]};cvox.AriaUtil.getActiveDescendantId_=function(a){return a.getAttribute?(a=a.getAttribute("aria-activedescendant"))?a:null:null}; +cvox.AriaUtil.getNextLevel=function(a,b){for(var c=[],d=a.childNodes,e=0;e<d.length;e++)if(!cvox.AriaUtil.isHidden(d[e])&&cvox.DomUtil.isVisible(d[e])){var f=cvox.AriaUtil.getNextLevelItems(d[e],b);0<f.length&&(c=c.concat(f))}return c}; +cvox.AriaUtil.getNextLevelItems=function(a,b){if(1!=a.nodeType)return[];if(-1!=b.indexOf(cvox.AriaUtil.getRoleAttribute(a)))return[a];var c=a.childNodes,d=c.length;if(0==d)return[];for(var e=[],f=0;f<d;f++){var g=cvox.AriaUtil.getNextLevelItems(c[f],b);0<g.length&&(e=e.concat(g))}return e};cvox.AriaUtil.getActiveDescendant=function(a){for(var b={},c=a;c;){var d=cvox.AriaUtil.getActiveDescendantId_(c);if(!d)break;if(d in b)return null;b[d]=!0;c=document.getElementById(d)}return c==a?null:c}; +cvox.AriaUtil.isControlWidget=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "button":case "checkbox":case "combobox":case "listbox":case "menu":case "menuitemcheckbox":case "menuitemradio":case "radio":case "slider":case "progressbar":case "scrollbar":case "spinbutton":case "tab":case "tablist":case "textbox":return!0}return!1};cvox.AriaUtil.isCompositeControl=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "combobox":case "grid":case "listbox":case "menu":case "menubar":case "radiogroup":case "tablist":case "tree":case "treegrid":return!0}return!1}; +cvox.AriaUtil.getAriaLive=function(a){if(!a.hasAttribute)return null;var b=a.getAttribute("aria-live");if("off"==b)return null;if(b)return b;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "alert":return"assertive";case "log":case "status":return"polite";default:return null}};cvox.AriaUtil.getAriaAtomic=function(a){if(!a.hasAttribute)return!1;var b=a.getAttribute("aria-atomic");if(b)return"true"===b;a=cvox.AriaUtil.getRoleAttribute(a);return"alert"==a?!0:!1}; +cvox.AriaUtil.getAriaBusy=function(a){return a.hasAttribute?(a=a.getAttribute("aria-busy"))?"true"===a:!1:!1};cvox.AriaUtil.getAriaRelevant=function(a,b){if(!a.hasAttribute)return!1;var c;c=a.hasAttribute("aria-relevant")?a.getAttribute("aria-relevant"):"additions text";"all"==c&&(c="additions removals text");c=c.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").split(" ");return"all"==b?0<=c.indexOf("additions")&&0<=c.indexOf("text")&&0<=c.indexOf("removals"):0<=c.indexOf(b)}; +cvox.AriaUtil.getLiveRegions=function(a){var b=[];if(a.querySelectorAll){var c=a.querySelectorAll('[role="alert"], [role="log"], [role="marquee"], [role="status"], [role="timer"], [aria-live]');if(c)for(var d=0;d<c.length;d++)b.push(c[d])}for(;a;){if(cvox.AriaUtil.getAriaLive(a)){b.push(a);break}a=a.parentElement}return b};cvox.AriaUtil.isLandmark=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "application":case "banner":case "complementary":case "contentinfo":case "form":case "main":case "navigation":case "search":return!0}return!1}; +cvox.AriaUtil.isGrid=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "grid":case "treegrid":return!0}return!1}; +cvox.AriaUtil.getEarcon=function(a){if(!a||!a.getAttribute)return null;var b=cvox.AriaUtil.getRoleAttribute(a);switch(b){case "button":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":case "menuitemcheckbox":case "menuitemradio":return a=a.getAttribute("aria-checked"),"true"==a?cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;case "combobox":case "listbox":return cvox.AbstractEarcons.LISTBOX;case "textbox":return cvox.AbstractEarcons.EDITABLE_TEXT;case "listitem":return cvox.AbstractEarcons.BULLET; +case "link":return cvox.AbstractEarcons.LINK}return null};cvox.AriaUtil.getRoleAttribute=function(a){if(!a.getAttribute)return"";var b=a.getAttribute("role");a.hasAttribute("chromevoxoriginalrole")&&(b=a.getAttribute("chromevoxoriginalrole"));return b};cvox.AriaUtil.isMath=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);return"math"==a};cvox.DomPredicates={};cvox.DomPredicates.checkboxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"checkbox"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"checkbox"==a[b].type)return a[b];return null};cvox.DomPredicates.radioPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"radio"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"radio"==a[b].type)return a[b];return null}; +cvox.DomPredicates.sliderPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"slider"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"range"==a[b].type)return a[b];return null};cvox.DomPredicates.graphicPredicate=function(a){for(var b=0;b<a.length;b++)if("IMG"==a[b].tagName||"INPUT"==a[b].tagName&&"img"==a[b].type)return a[b];return null}; +cvox.DomPredicates.buttonPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"button"==a[b].getAttribute("role")||"BUTTON"==a[b].tagName||"INPUT"==a[b].tagName&&"submit"==a[b].type||"INPUT"==a[b].tagName&&"button"==a[b].type||"INPUT"==a[b].tagName&&"reset"==a[b].type)return a[b];return null};cvox.DomPredicates.comboBoxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"combobox"==a[b].getAttribute("role")||"SELECT"==a[b].tagName)return a[b];return null}; +cvox.DomPredicates.editTextPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"textbox"==a[b].getAttribute("role")||"TEXTAREA"==a[b].tagName||a[b].isContentEditable||"INPUT"==a[b].tagName&&cvox.DomUtil.isInputTypeText(a[b]))return a[b];return null};cvox.DomPredicates.headingPredicate=function(a){for(var b=0;b<a.length;b++){if(a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null}; +cvox.DomPredicates.heading1Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H1")};cvox.DomPredicates.heading2Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H2")};cvox.DomPredicates.heading3Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H3")};cvox.DomPredicates.heading4Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H4")};cvox.DomPredicates.heading5Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H5")}; +cvox.DomPredicates.heading6Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H6")};cvox.DomPredicates.linkPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.tablePredicate=function(a){return(a=cvox.DomUtil.findTableNodeInList(a,{allowCaptions:!0}))&&!cvox.DomUtil.isLayoutTable(a)?a:null}; +cvox.DomPredicates.cellPredicate=function(a){for(var b=a.length-1;0<=b;--b){var c=a[b];if("TD"==c.tagName||"TH"==c.tagName||c.getAttribute&&"gridcell"==c.getAttribute("role"))return c}return null};cvox.DomPredicates.visitedLinkPredicate=function(a){for(var b=a.length-1;0<=b;--b)if(cvox.DomPredicates.linkPredicate([a[b]])&&cvox.ChromeVox.visitedUrls[a[b].href])return a[b]}; +cvox.DomPredicates.listPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"list"==a[b].getAttribute("role")||"UL"==a[b].tagName||"OL"==a[b].tagName)return a[b];return null};cvox.DomPredicates.listItemPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"listitem"==a[b].getAttribute("role")||"LI"==a[b].tagName)return a[b];return null};cvox.DomPredicates.blockquotePredicate=function(a){return cvox.DomPredicates.containsTagName_(a,"BLOCKQUOTE")}; +cvox.DomPredicates.formFieldPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b]))return a[b];return null};cvox.DomPredicates.landmarkPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.AriaUtil.isLandmark(a[b]))return a[b];return null};cvox.DomPredicates.containsTagName_=function(a,b){for(var c=a.length;c--;)if(a[c].tagName==b)return a[c];return null};cvox.DomPredicates.mathPredicate=function(a){return cvox.DomUtil.findMathNodeInList(a)}; +cvox.DomPredicates.sectionPredicate=function(a){for(var b=0;b<a.length;b++){if(cvox.DomUtil.isSemanticElt(a[b])||cvox.AriaUtil.isLandmark(a[b])||a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null}; +cvox.DomPredicates.controlPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b])||a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.captionPredicate=function(a){for(var b=0;b<a.length;b++)if("CAPTION"==a[b].tagName)return a[b];return null}; +cvox.DomPredicates.articlePredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"article"==a[b].getAttribute("role")||"ARTICLE"==a[b].tagName)return a[b];return null};cvox.DomPredicates.mediaPredicate=function(a){for(var b=0;b<a.length;b++)if("AUDIO"==a[b].tagName||"VIDEO"==a[b].tagName)return a[b];return null};cvox.DomPredicates.orderedListPredicate=function(a){for(var b=0;b<a.length;b++)if("OL"==a[b].tagName)return a[b];return null};cvox.XpathUtil=function(){};cvox.XpathUtil.nameSpaces_={xhtml:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML"};cvox.XpathUtil.resolveNameSpace=function(a){return cvox.XpathUtil.nameSpaces_[a]||null};cvox.XpathUtil.evalXPath=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(d){return[]}for(var e=[],f=c.iterateNext();f;f=c.iterateNext())e.push(f);return e}; +cvox.XpathUtil.getLeafNodes=function(a){try{var b=a.ownerDocument.evaluate(".//*[count(*)=0]",a,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(c){return[]}a=[];for(var d=b.iterateNext();d;d=b.iterateNext())a.push(d);return a};cvox.XpathUtil.xpathSupported=function(){return"undefined"==typeof XPathResult?!1:!0};cvox.XpathUtil.evaluateBoolean=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.BOOLEAN_TYPE,null)}catch(d){return!1}return c.booleanValue}; +cvox.XpathUtil.evaluateString=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.STRING_TYPE,null)}catch(d){return""}return c.stringValue};cvox.DomUtil=function(){}; +cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG={button:"input_type_button",checkbox:"input_type_checkbox",color:"input_type_color",datetime:"input_type_datetime","datetime-local":"input_type_datetime_local",date:"input_type_date",email:"input_type_email",file:"input_type_file",image:"input_type_image",month:"input_type_month",number:"input_type_number",password:"input_type_password",radio:"input_type_radio",range:"input_type_range",reset:"input_type_reset",search:"input_type_search",submit:"input_type_submit", +tel:"input_type_tel",text:"input_type_text",url:"input_type_url",week:"input_type_week"}; +cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG={A:"tag_link",ARTICLE:"tag_article",ASIDE:"tag_aside",AUDIO:"tag_audio",BUTTON:"tag_button",FOOTER:"tag_footer",H1:"tag_h1",H2:"tag_h2",H3:"tag_h3",H4:"tag_h4",H5:"tag_h5",H6:"tag_h6",HEADER:"tag_header",HGROUP:"tag_hgroup",LI:"tag_li",MARK:"tag_mark",NAV:"tag_nav",OL:"tag_ol",SECTION:"tag_section",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",TIME:"tag_time",UL:"tag_ul",VIDEO:"tag_video"}; +cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG={AUDIO:"tag_audio",BUTTON:"tag_button",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",VIDEO:"tag_video"};cvox.DomUtil.FORMATTING_TAGS="B BIG CITE CODE DFN EM I KBD SAMP SMALL SPAN STRIKE STRONG SUB SUP U VAR".split(" "); +cvox.DomUtil.isVisible=function(a,b){b=b||{};"undefined"===typeof b.checkAncestors&&(b.checkAncestors=!0);"undefined"===typeof b.checkDescendants&&(b.checkDescendants=!0);if("IFRAME"==a.tagName&&!a.src)return!1;if(cvox.AriaUtil.isForcedVisibleRecursive(a))return!0;if(b.checkAncestors&&cvox.DomUtil.hasInvisibleAncestor_(a))return!1;var c=b.checkDescendants;return cvox.DomUtil.hasVisibleNodeSubtree_(a,c)?!0:!1}; +cvox.DomUtil.hasInvisibleAncestor_=function(a){for(;a=a.parentElement;){var b=document.defaultView.getComputedStyle(a,null);if(cvox.DomUtil.isInvisibleStyle(b,!0))return!0}return!1}; +cvox.DomUtil.hasVisibleNodeSubtree_=function(a,b){if(!(a instanceof Element)){var c=document.defaultView.getComputedStyle(a.parentElement,null);return c=!cvox.DomUtil.isInvisibleStyle(c)}var c=document.defaultView.getComputedStyle(a,null),d=!cvox.DomUtil.isInvisibleStyle(c);if(d)return!0;c=cvox.DomUtil.isInvisibleStyle(c,!0);if(!b||c)return!1;c=a.childNodes;for(d=0;d<c.length;d++){var e=c[d];if(cvox.DomUtil.hasVisibleNodeSubtree_(e,b))return!0}return!1}; +cvox.DomUtil.isInvisibleStyle=function(a,b){return a?"none"!=a.display&&0!=parseFloat(a.opacity)&&(b||"hidden"!=a.visibility&&"collapse"!=a.visibility)?!1:!0:!1};cvox.DomUtil.isDisabled=function(a){if(a.disabled)return!0;for(;a=a.parentElement;)if("FIELDSET"==a.tagName&&a.disabled)return!0;return!1};cvox.DomUtil.isSemanticElt=function(a){return a.tagName&&(a=a.tagName,"SECTION"==a||"NAV"==a||"ARTICLE"==a||"ASIDE"==a||"HGROUP"==a||"HEADER"==a||"FOOTER"==a||"TIME"==a||"MARK"==a)?!0:!1}; +cvox.DomUtil.isLeafNode=function(a,b){if(!(a instanceof Element))return null==a.firstChild;var c=a;if(!b&&!cvox.DomUtil.isVisible(c,{checkAncestors:!1})||!b&&cvox.AriaUtil.isHidden(c)||cvox.AriaUtil.isLeafElement(c))return!0;switch(c.tagName){case "OBJECT":case "EMBED":case "VIDEO":case "AUDIO":case "IFRAME":case "FRAME":return!0}return cvox.DomPredicates.linkPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.headingPredicate([a])}):cvox.DomUtil.isLeafLevelControl(c)|| +!c.firstChild||cvox.DomUtil.isMath(c)?!0:cvox.DomPredicates.headingPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.controlPredicate([a])}):!1};cvox.DomUtil.isDescendantOf=function(a,b,c){for(;a;){if(b&&c&&a.tagName&&a.tagName==b&&a.className&&a.className==c||b&&!c&&a.tagName&&a.tagName==b||!b&&c&&a.className&&a.className==c)return!0;a=a.parentNode}return!1};cvox.DomUtil.isDescendantOfNode=function(a,b){for(;a&&b;){if(a.isSameNode(b))return!0;a=a.parentNode}return!1}; +cvox.DomUtil.collapseWhitespace=function(a){return a.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")}; +cvox.DomUtil.getBaseLabel_=function(a,b,c){var d="";if(a.hasAttribute){if(a.hasAttribute("aria-labelledby"))for(var e=a.getAttribute("aria-labelledby").split(" "),f,g=0;f=e[g];g++)(f=document.getElementById(f))&&(d+=" "+cvox.DomUtil.getName(f,!0,c,!0));else if(a.hasAttribute("aria-label"))d=a.getAttribute("aria-label");else if(a.constructor==HTMLImageElement)d=cvox.DomUtil.getImageTitle(a);else if("FIELDSET"==a.tagName)for(e=a.getElementsByTagName("LEGEND"),d="",g=0;f=e[g];g++)d+=" "+cvox.DomUtil.getName(f, +!0,c);0==d.length&&a&&a.id&&(a=document.querySelector('label[for="'+a.id+'"]'))&&(d=cvox.DomUtil.getName(a,b,c))}return cvox.DomUtil.collapseWhitespace(d)};cvox.DomUtil.getNearestAncestorLabel_=function(a){for(var b="";a&&"LABEL"!=a.tagName;)a=a.parentElement;a&&!a.hasAttribute("for")&&(b=cvox.DomUtil.getName(a,!0,!1));return b}; +cvox.DomUtil.getInputName_=function(a){var b="";"image"==a.type?b=cvox.DomUtil.getImageTitle(a):"submit"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Submit":"reset"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Reset":"button"==a.type&&a.hasAttribute("value")&&(b=a.getAttribute("value"));return b}; +cvox.DomUtil.getName=function(a,b,c,d){if(!a||!0==a.cvoxGetNameMarked)return"";a.cvoxGetNameMarked=!0;b=cvox.DomUtil.getName_(a,b,c,d);a.cvoxGetNameMarked=!1;a=cvox.DomUtil.getPrefixText(a);return a+b};cvox.DomUtil.hasChildrenBasedName_=function(a,b){return cvox.DomPredicates.linkPredicate([a])||cvox.DomPredicates.headingPredicate([a])||"BUTTON"==a.tagName||cvox.AriaUtil.isControlWidget(a)||!cvox.DomUtil.isLeafNode(a,b)?!0:!1}; +cvox.DomUtil.getName_=function(a,b,c,d){"undefined"===typeof b&&(b=!0);"undefined"===typeof c&&(c=!0);if(a.constructor==Text)return a.data;var e=cvox.DomUtil.getBaseLabel_(a,b,c);0==e.length&&cvox.DomUtil.isControl(a)&&(e=cvox.DomUtil.getNearestAncestorLabel_(a));0==e.length&&a.constructor==HTMLInputElement&&(e=cvox.DomUtil.getInputName_(a));return cvox.DomUtil.isInputTypeText(a)&&a.hasAttribute("placeholder")?(b=a.getAttribute("placeholder"),0<e.length?0<cvox.DomUtil.getValue(a).length?e:e+" with hint "+ +b:b):0<e.length?e:0==cvox.DomUtil.collapseWhitespace(a.textContent).length&&a.hasAttribute&&a.hasAttribute("title")?a.getAttribute("title"):!b||cvox.AriaUtil.isCompositeControl(a)?"":cvox.DomUtil.hasChildrenBasedName_(a,d)?cvox.DomUtil.getNameFromChildren(a,c,d):""}; +cvox.DomUtil.getNameFromChildren=function(a,b,c){void 0==b&&(b=!0);for(var d="",e="",f=0;f<a.childNodes.length;f++){var g=a.childNodes[f],e=a.childNodes[f-1]||g;if(b||!cvox.DomUtil.isControl(g)){var h=cvox.DomUtil.isVisible(g,{checkAncestors:!1});if(c||h&&!cvox.AriaUtil.isHidden(g))e="SPAN"==e.tagName||"SPAN"==g.tagName||"SPAN"==g.parentNode.tagName?"":" ",d+=e+cvox.DomUtil.getName(g,!0,b)}}return d}; +cvox.DomUtil.getPrefixText=function(a,b){b=b||0;for(var c=cvox.DomUtil.getAncestors(a),d="",e=c=cvox.DomPredicates.listItemPredicate(c);e&&e.firstChild;)e=e.firstChild;c&&c.parentNode&&0==b&&"OL"==c.parentNode.tagName&&a==e&&"none"!=document.defaultView.getComputedStyle(c.parentNode).listStyleType&&(d=cvox.DomUtil.toArray(c.parentNode.children).filter(function(a){return"LI"==a.tagName}),d=d.indexOf(c)+1,-1!=document.defaultView.getComputedStyle(c.parentNode).listStyleType.indexOf("latin")&&(d--,d= +String.fromCharCode(65+d%26)),d+=". ");return d}; +cvox.DomUtil.getControlLabelHeuristics=function(a){if(a.hasAttribute&&(a.hasAttribute("aria-label")&&""==a.getAttribute("aria-label")||a.hasAttribute("aria-title")&&""==a.getAttribute("aria-title")))return"";for(var b=cvox.DomUtil.previousLeafNode(a),c=0;b&&(!cvox.DomUtil.hasContent(b)||cvox.DomUtil.isControl(b));)b=cvox.DomUtil.previousLeafNode(b),c++;for(var c=cvox.DomUtil.directedNextLeafNode(a),d=0;c&&(!cvox.DomUtil.hasContent(c)||cvox.DomUtil.isControl(c));)c=cvox.DomUtil.directedNextLeafNode(c), +d++;if(b&&c){for(var d=a,e=0;d&&!cvox.DomUtil.isDescendantOfNode(b,d);)d=d.parentNode,e++;d=a;for(a=0;d&&!cvox.DomUtil.isDescendantOfNode(c,d);)d=d.parentNode,a++;b=a<e?c:b}else b=b||c;return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b)):""}; +cvox.DomUtil.getValue=function(a){var b=cvox.AriaUtil.getActiveDescendant(a);if(b)return cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b));if(a.constructor==HTMLSelectElement){var b="",c=a.selectedOptions?a.selectedOptions[0]:null;a=a.selectedOptions?a.selectedOptions[a.selectedOptions.length-1]:null;c&&a&&c!=a?b=cvox.ChromeVox.msgs.getMsg("selected_options_value",[c.text,a.text]):c&&(b=c.text+"");return b}if(a.constructor==HTMLTextAreaElement)return a.value;if(a.constructor== +HTMLInputElement)switch(a.type){case "hidden":case "image":case "submit":case "reset":case "button":case "checkbox":case "radio":return"";case "password":return a.value.replace(/./g,"dot ");default:return a.value}return a.isContentEditable?cvox.DomUtil.getNameFromChildren(a,!0):""}; +cvox.DomUtil.getImageTitle=function(a){a.hasAttribute("alt")?a=a.alt:a.hasAttribute("title")?a=a.title:(a=a.src,"data"!=a.substring(0,4)?(a=a.substring(a.lastIndexOf("/")+1,a.lastIndexOf(".")),a=1<=a.length&&16>=a.length?a+" Image":"Image"):a="Image");return a}; +cvox.DomUtil.hasContent=function(a){if(8==a.nodeType||cvox.DomUtil.isDescendantOf(a,"HEAD")||cvox.DomUtil.isDescendantOf(a,"SCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOSCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOEMBED")||cvox.DomUtil.isDescendantOf(a,"STYLE")||!cvox.DomUtil.isVisible(a)||cvox.AriaUtil.isHidden(a))return!1;if(cvox.DomUtil.isControl(a)||cvox.DomUtil.isDescendantOf(a,"VIDEO")||cvox.DomUtil.isDescendantOf(a,"AUDIO")||"IFRAME"==a.tagName&&a.src&&0!=a.src.indexOf("javascript:"))return!0; +for(var b="button,input,select,textarea",c=a.parentElement;c&&"LABEL"!=c.tagName;)c=c.parentElement;if(c){var d=c.querySelector(b);if(c.hasAttribute("for")){if(c=c.getAttribute("for"),(c=document.getElementById(c))&&cvox.DomUtil.isControl(c)&&!d)return!1}else if(d)return!1}for(d=a.parentElement;d&&"LEGEND"!=d.tagName;)d=d.parentElement;if(d){for(c=d.parentElement;c&&"FIELDSET"!=c.tagName;)c=c.parentElement;d=c&&c.querySelector(b);if(c&&!d)return!1}if(cvox.DomPredicates.linkPredicate([a])||"TABLE"== +a.tagName||cvox.DomUtil.isMath(a)||cvox.DomPredicates.headingPredicate([a]))return!0;b=cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a);a=cvox.DomUtil.getState(a,!0);return b.match(/^\s+$/)&&""===a?!1:!0};cvox.DomUtil.getAncestors=function(a){for(var b=[];a;)b.push(a),a=a.parentNode;for(b.reverse();b.length&&!b[0].tagName&&!b[0].nodeValue;)b.shift();return b};cvox.DomUtil.compareAncestors=function(a,b){for(var c=0;a[c]&&b[c]&&a[c]==b[c];)c++;a[c]||b[c]||(c=-1);return c}; +cvox.DomUtil.getUniqueAncestors=function(a,b,c){a=cvox.DomUtil.getAncestors(a);b=cvox.DomUtil.getAncestors(b);a=cvox.DomUtil.compareAncestors(a,b);a=b.slice(a);return 0==a.length&&c?b:a}; +cvox.DomUtil.getRoleMsg=function(a,b){var c;c=cvox.AriaUtil.getRoleNameMsg(a);c||("INPUT"==a.tagName?c=cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG[a.type]:"A"==a.tagName&&cvox.DomUtil.isInternalLink(a)?c="internal_link":"A"==a.tagName&&a.getAttribute("name")?c="":a.isContentEditable?c="input_type_text":cvox.DomUtil.isMath(a)?c="math_expr":"TABLE"==a.tagName&&cvox.DomUtil.isLayoutTable(a)?c="":b==cvox.VERBOSITY_BRIEF?c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG[a.tagName]:(c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG[a.tagName], +cvox.DomUtil.hasLongDesc(a)&&(c="image_with_long_desc"),!c&&a.onclick&&(c="clickable")));return c};cvox.DomUtil.getRole=function(a,b){var c=cvox.DomUtil.getRoleMsg(a,b)||"",d=c&&" "!=c?cvox.ChromeVox.msgs.getMsg(c):"";return d?d:c};cvox.DomUtil.getListLength=function(a){var b=0;for(a=a.firstChild;a;a=a.nextSibling)if("LI"==a.tagName||a.getAttribute&&"listitem"==a.getAttribute("role")){if(a.hasAttribute("aria-setsize")){var c=parseInt(a.getAttribute("aria-setsize"),10);if(!isNaN(c))return c}b++}return b}; +cvox.DomUtil.getStateMsgs=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(a);if(c)return cvox.DomUtil.getStateMsgs(c,b);var c=[],d=a.getAttribute?a.getAttribute("role"):"";(c=cvox.AriaUtil.getStateMsgs(a,b))||(c=[]);"INPUT"==a.tagName?a.hasAttribute("aria-checked")||(d={"checkbox-true":"checkbox_checked_state","checkbox-false":"checkbox_unchecked_state","radio-true":"radio_selected_state","radio-false":"radio_unselected_state"},(d=d[a.type+"-"+!!a.checked])&&c.push([d])):"SELECT"==a.tagName? +a.selectedOptions&&1>=a.selectedOptions.length?c.push(["list_position",cvox.ChromeVox.msgs.getNumber(a.selectedIndex+1),cvox.ChromeVox.msgs.getNumber(a.options.length)]):c.push(["selected_options_state",cvox.ChromeVox.msgs.getNumber(a.selectedOptions.length)]):"UL"!=a.tagName&&"OL"!=a.tagName&&"list"!=d||c.push(["list_with_items",cvox.ChromeVox.msgs.getNumber(cvox.DomUtil.getListLength(a))]);cvox.DomUtil.isDisabled(a)&&c.push(["aria_disabled_true"]);cvox.DomPredicates.linkPredicate([a])&&cvox.ChromeVox.visitedUrls[a.href]&& +c.push(["visited_url"]);a.accessKey&&c.push(["access_key",a.accessKey]);return c};cvox.DomUtil.getState=function(a,b){return cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,b))};cvox.DomUtil.isFocusable=function(a){return a&&"number"==typeof a.tabIndex&&("A"!=a.tagName||a.hasAttribute("href")||a.hasAttribute("tabindex"))?0<=a.tabIndex||a.hasAttribute&&a.hasAttribute("tabindex")&&"-1"==a.getAttribute("tabindex")?!0:!1:!1}; +cvox.DomUtil.findFocusableDescendant=function(a){return a&&(a=cvox.DomUtil.findNode(a,cvox.DomUtil.isFocusable))?a:null};cvox.DomUtil.countFocusableDescendants=function(a){return a?cvox.DomUtil.countNodes(a,cvox.DomUtil.isFocusable):0};cvox.DomUtil.isAttachedToDocument=function(a){for(;a;){if(a.tagName&&"HTML"==a.tagName)return!0;a=a.parentNode}return!1}; +cvox.DomUtil.clickElem=function(a,b,c,d){var e=cvox.AriaUtil.getActiveDescendant(a);e&&(a=e);if(c){c=null;a.onclick&&(c=a.onclick);!c&&1!=a.nodeType&&a.parentNode&&a.parentNode.onclick&&(c=a.parentNode.onclick);e=!0;if(c)try{e=c()}catch(f){}if(!e)return}c=document.createEvent("MouseEvents");d=d?"dblclick":"mousedown";c.initMouseEvent(d,!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(g){}c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup", +!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(h){}c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(k){}cvox.DomUtil.isInternalLink(a)&&cvox.DomUtil.syncInternalLink(a)}; +cvox.DomUtil.syncInternalLink=function(a){var b=a.href.split("#")[1];a=document.getElementById(b);a||(b=document.getElementsByName(b),0<b.length&&(a=b[0]));if(a){var b=a.parentNode,c=document.createElement("div");c.setAttribute("tabindex","-1");b.insertBefore(c,a);c.setAttribute("chromevoxignoreariahidden",1);c.focus();cvox.ChromeVox.syncToNode(a,!0)}}; +cvox.DomUtil.isInputTypeText=function(a){if(!a||a.constructor!=HTMLInputElement)return!1;switch(a.type){case "email":case "number":case "password":case "search":case "text":case "tel":case "url":case "":return!0;default:return!1}};cvox.DomUtil.isControl=function(a){if(cvox.AriaUtil.isControlWidget(a)&&cvox.DomUtil.isFocusable(a))return!0;if(a.tagName)switch(a.tagName){case "BUTTON":case "TEXTAREA":case "SELECT":return!0;case "INPUT":return"hidden"!=a.type}return a.isContentEditable?!0:!1}; +cvox.DomUtil.isLeafLevelControl=function(a){return cvox.DomUtil.isControl(a)?!(cvox.AriaUtil.isCompositeControl(a)&&cvox.DomUtil.findFocusableDescendant(a)):!1};cvox.DomUtil.getSurroundingControl=function(a){var b=null;if(!cvox.DomUtil.isControl(a)&&a.hasAttribute&&a.hasAttribute("role"))for(b=a.parentElement;b&&!cvox.AriaUtil.isCompositeControl(b);)b=b.parentElement;return b}; +cvox.DomUtil.directedNextLeafLikeNode=function(a,b,c){if(a!=document.body){for(;!cvox.DomUtil.directedNextSibling(a,b);){if(!a)return null;a=a.parentNode;if(a==document.body)return null}cvox.DomUtil.directedNextSibling(a,b)&&(a=cvox.DomUtil.directedNextSibling(a,b))}for(;cvox.DomUtil.directedFirstChild(a,b)&&!c(a);)a=cvox.DomUtil.directedFirstChild(a,b);return a==document.body?null:a};cvox.DomUtil.directedNextLeafNode=function(a,b){b=!!b;return cvox.DomUtil.directedNextLeafLikeNode(a,b,cvox.DomUtil.isLeafNode)}; +cvox.DomUtil.previousLeafNode=function(a){return cvox.DomUtil.directedNextLeafNode(a,!0)};cvox.DomUtil.directedFindFirstNode=function(a,b,c){for(a=cvox.DomUtil.directedFirstChild(a,b);a;){if(c(a))return a;var d=cvox.DomUtil.directedFindFirstNode(a,b,c);if(d)return d;a=cvox.DomUtil.directedNextSibling(a,b)}return null};cvox.DomUtil.directedFindDeepestNode=function(a,b,c){var d=cvox.DomUtil.directedFindFirstNode(a,b,c);return d?cvox.DomUtil.directedFindDeepestNode(d,b,c):c(a)?a:null}; +cvox.DomUtil.directedFindNextNode=function(a,b,c,d,e,f){e=!!e;f=!!f;if(!cvox.DomUtil.isDescendantOfNode(a,b)||a==b)return null;for(var g=cvox.DomUtil.directedNextSibling(a,c);g;){if(!f&&d(g))return g;var h=(f?cvox.DomUtil.directedFindDeepestNode:cvox.DomUtil.directedFindFirstNode)(g,c,d);if(h)return h;if(f&&d(g))return g;g=cvox.DomUtil.directedNextSibling(g,c)}a=a.parentNode;return e&&d(a)?a:cvox.DomUtil.directedFindNextNode(a,b,c,d,e,f)}; +cvox.DomUtil.getControlValueAndStateString=function(a){var b=cvox.DomUtil.getSurroundingControl(a);return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a)+" "+cvox.DomUtil.getState(a,!0)):cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getState(a,!0))};cvox.DomUtil.isInternalLink=function(a){return 1==a.nodeType&&(a=a.getAttribute("href"))&&-1!=a.indexOf("#")?(a=a.split("#")[0],""==a||a==window.location.pathname):!1}; +cvox.DomUtil.getLinkURL=function(a){if("A"==a.tagName){if(a.getAttribute("href"))return cvox.DomUtil.isInternalLink(a)?cvox.ChromeVox.msgs.getMsg("internal_link"):a.getAttribute("href")}else if(cvox.AriaUtil.getRoleName(a)==cvox.ChromeVox.msgs.getMsg("aria_role_link"))return cvox.ChromeVox.msgs.getMsg("unknown_link");return""};cvox.DomUtil.getContainingTable=function(a,b){var c=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findTableNodeInList(c,b)}; +cvox.DomUtil.findTableNodeInList=function(a,b){b=b||{allowCaptions:!1};for(var c=a.length-1,d;d=a[c];c--)if(d.constructor!=Text){if(!b.allowCaptions&&"CAPTION"==d.tagName)break;if("TABLE"==d.tagName||cvox.AriaUtil.isGrid(d))return d}return null}; +cvox.DomUtil.isLayoutTable=function(a){if(a.rows&&(1==a.rows.length||1==a.rows[0].childElementCount))return!0;if(cvox.AriaUtil.isGrid(a)||cvox.AriaUtil.isLandmark(a)||a.caption||a.summary||0<cvox.XpathUtil.evalXPath("tbody/tr/th",a).length&&0<cvox.XpathUtil.evalXPath("tbody/tr/td",a).length||0<cvox.XpathUtil.evalXPath("colgroup",a).length||0<cvox.XpathUtil.evalXPath("thead",a).length||0<cvox.XpathUtil.evalXPath("tfoot",a).length)return!1;if(0<cvox.XpathUtil.evalXPath("tbody/tr/td/embed",a).length|| +0<cvox.XpathUtil.evalXPath("tbody/tr/td/object",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/iframe",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/applet",a).length)return!0;var b=0;cvox.DomUtil.hasBorder(a)||b++;6>=a.rows.length&&b++;12>=cvox.DomUtil.countPreviousTags(a)&&b++;0<cvox.XpathUtil.evalXPath("tbody/tr/td/table",a).length&&b++;return 3<=b};cvox.DomUtil.countPreviousTags=function(a){var b=cvox.DomUtil.getAncestors(a);return b.length+cvox.DomUtil.countPreviousSiblings(a)}; +cvox.DomUtil.countPreviousSiblings=function(a){var b=0;for(a=a.previousSibling;null!=a;)a.constructor!=Text&&b++,a=a.previousSibling;return b};cvox.DomUtil.hasBorder=function(a){return a.frame?-1==a.frame.indexOf("void"):a.border?1==a.border.length?"0"!=a.border:0!=a.border.slice(0,-2):a.style.borderStyle&&"none"==a.style.borderStyle?!1:a.style.borderWidth?0!=a.style.borderWidth.slice(0,-2):a.style.borderColor?!0:!1}; +cvox.DomUtil.getFirstLeafNode=function(){for(var a=document.body;a&&a.firstChild;)a=a.firstChild;for(;a&&!cvox.DomUtil.hasContent(a);)a=cvox.DomUtil.directedNextLeafNode(a);return a};cvox.DomUtil.findNode=function(a,b){var c=[],d=cvox.DomUtil.findNodes_(a,b,c,!0,1E4);return d?c[0]:void 0};cvox.DomUtil.countNodes=function(a,b){var c=[];cvox.DomUtil.findNodes_(a,b,c,!1,1E4);return c.length}; +cvox.DomUtil.findNodes_=function(a,b,c,d,e){if(null!=a||0==e)for(a=a.firstChild;a;){if(b(a)&&(c.push(a),d))return!0;e-=1;if(cvox.DomUtil.findNodes_(a,b,c,d,e))return!0;a=a.nextSibling}return!1};cvox.DomUtil.toArray=function(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);return b}; +cvox.DomUtil.shallowChildlessClone=function(a,b){if("#text"==a.nodeName)return document.createTextNode(a.nodeValue);if("#comment"==a.nodeName)return document.createComment(a.nodeValue);for(var c=document.createElement(a.nodeName),d=0;d<a.attributes.length;++d){var e=a.attributes[d];b&&b[e.nodeName]||c.setAttribute(e.nodeName,e.nodeValue)}return c}; +cvox.DomUtil.deepClone=function(a,b){for(var c=cvox.DomUtil.shallowChildlessClone(a,b),d=0;d<a.childNodes.length;++d)c.appendChild(cvox.DomUtil.deepClone(a.childNodes[d],b));return c};cvox.DomUtil.directedFirstChild=function(a,b){return b?a.lastChild:a.firstChild};cvox.DomUtil.directedNextSibling=function(a,b){return a?b?a.previousSibling:a.nextSibling:null};cvox.DomUtil.createSimpleClickFunction=function(a){var b=a.cloneNode(!0);return function(){cvox.DomUtil.clickElem(b,!1,!1)}}; +cvox.DomUtil.addNodeToHead=function(a,b){if(!b||!document.getElementById(b)){var c=document.head||document.body;c.appendChild(a)}};cvox.DomUtil.getContainingMath=function(a){a=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findMathNodeInList(a)};cvox.DomUtil.findMathNodeInList=function(a){for(var b=0,c;c=a[b];b++)if(cvox.DomUtil.isMath(c))return c;return null};cvox.DomUtil.isMath=function(a){return cvox.DomUtil.isMathml(a)||cvox.DomUtil.isMathJax(a)||cvox.DomUtil.isMathImg(a)||cvox.AriaUtil.isMath(a)}; +cvox.DomUtil.ALT_MATH_CLASSES={tex:["tex","latex"],asciimath:["numberedequation","inlineformula","displayformula"]};cvox.DomUtil.altMathQuerySelector=function(a){return(a=cvox.DomUtil.ALT_MATH_CLASSES[a])?a.map(function(a){return"img."+a}).join(", "):""};cvox.DomUtil.isMathImg=function(a){if(!a||!a.tagName||!a.className||"IMG"!=a.tagName)return!1;a=a.className.toLowerCase();return-1!=cvox.DomUtil.ALT_MATH_CLASSES.tex.indexOf(a)||-1!=cvox.DomUtil.ALT_MATH_CLASSES.asciimath.indexOf(a)}; +cvox.DomUtil.isMathml=function(a){return a&&a.tagName?"math"==a.tagName.toLowerCase():!1};cvox.DomUtil.isMathJax=function(a){function b(a,b){return"SPAN"==a.tagName&&a.className.split(" ").some(function(a){return a.toLowerCase()==b})}return a&&a.tagName&&a.className?b(a,"math")?(a=cvox.DomUtil.getAncestors(a),a.some(function(a){return b(a,"mathjax")})):!1:!1};cvox.DomUtil.getMathSpanId=function(a){if(a=document.getElementById(a+"-Frame"))if(a=a.querySelector("span.math"))return a.id}; +cvox.DomUtil.hasLongDesc=function(a){return a&&a.longDesc?!0:!1};cvox.DomUtil.getNodeTagName=function(a){return a.nodeType==Node.ELEMENT_NODE?a.tagName:""};cvox.DomUtil.purgeNodes=function(a){return cvox.DomUtil.toArray(a).filter(function(a){return a.nodeType!=Node.TEXT_NODE||!a.textContent.match(/^\s+$/)})};cvox.DomUtil.elementToPoint=function(a){if(!a)return{x:0,y:0};a.constructor==Text&&(a=a.parentNode);a=a.getBoundingClientRect();return{x:a.left+a.width/2,y:a.top+a.height/2}};cvox.SelectionUtil=function(){};cvox.SelectionUtil.cleanUpParagraphForward=function(a){for(;3==a.focusNode.nodeType;){var b=a.focusNode,c=a.focusOffset;a.modify("extend","forward","sentence");if(b==a.focusNode&&c==a.focusOffset)return!1}return!0};cvox.SelectionUtil.cleanUpParagraphBack=function(a){for(var b,c;3==a.focusNode.nodeType&&(b=a.focusNode,c=a.focusOffset,a.modify("extend","backward","sentence"),b!=a.focusNode||c!=a.focusOffset););return!0}; +cvox.SelectionUtil.cleanUpSentence=function(a){for(var b=!0;b;)if(3==a.focusNode.nodeType){var c=a.focusNode,d=a.focusOffset;if(0<a.rangeCount&&0<a.getRangeAt(0).endOffset)if("."==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else if(" "==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else{if(a.modify("extend","forward","sentence"),c==a.focusNode&&d==a.focusOffset)return!1}else break}else break;return!0}; +cvox.SelectionUtil.findSelPosition=function(a){if(0==a.rangeCount)return[0,0];var b=a.getRangeAt(0).getBoundingClientRect();if(!b)return[0,0];a=window.pageYOffset+b.top;b=window.pageXOffset+b.left;return[a,b]};cvox.SelectionUtil.findTopLeftPosition=function(a){var b=0,c=0;if(a.offsetParent)for(b=a.offsetLeft,c=a.offsetTop,a=a.offsetParent;null!==a;)b+=a.offsetLeft,c+=a.offsetTop,a=a.offsetParent;return[c,b]}; +cvox.SelectionUtil.isSelectionValid=function(a){var b=RegExp(/^\s+$/);return!(b.test(a.toString())||""==a.toString())};cvox.SelectionUtil.isRangeValid=function(a){a=a.cloneContents().textContent;var b=RegExp(/^\s+$/);return!(b.test(a)||""==a)};cvox.SelectionUtil.findPos_=function(a){var b=0,c=0;if(a.offsetParent){do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent)}return[b,c]}; +cvox.SelectionUtil.scrollElementsToView=function(a){for(;a&&!a.getBoundingClientRect;)a=a.parentElement;if(a){for(var b=a,c=b.parentElement;b!=document.body&&c;)b.scrollTop=b.offsetTop,b.scrollLeft=b.offsetLeft,b=c,c=b.parentElement;a=cvox.SelectionUtil.findPos_(a);window.scrollTo(a[0]-window.innerWidth/2,a[1]-window.innerHeight/2)}}; +cvox.SelectionUtil.scrollToSelection=function(a){if(0!=a.rangeCount){cvox.SelectionUtil.scrollElementsToView(a.focusNode);var b=cvox.SelectionUtil.findSelPosition(a);a=b[0];var b=b[1],c=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=window.innerWidth||document.documentElement.innerWidth||document.body.clientWidth;b<e&&(b=0);c+d<a?(a-=d,window.scroll(b,a+100)):a<c&&window.scroll(b, +a-100)}};cvox.SelectionUtil.isAllWs=function(a){return!/[^\t\n\r ]/.test(a.data)};cvox.SelectionUtil.isIgnorable=function(a){return 8==a.nodeType||3==a.nodeType&&cvox.SelectionUtil.isAllWs(a)};cvox.SelectionUtil.nodeBefore=function(a){for(;a=a.previousSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};cvox.SelectionUtil.nodeAfter=function(a){for(;a=a.nextSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null}; +cvox.SelectionUtil.lastChildNode=function(a){for(a=a.lastChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.previousSibling}return null};cvox.SelectionUtil.firstChildNode=function(a){for(a=a.firstChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.nextSibling}return null};cvox.SelectionUtil.dataOf=function(a){a=a.data;a=a.replace(/[\t\n\r ]+/g," ");" "==a.charAt(0)&&(a=a.substring(1,a.length));" "==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));return a}; +cvox.SelectionUtil.hasContentWithTag=function(a,b){if(!a||!a.anchorNode||!a.focusNode)return!1;if(a.anchorNode.tagName&&a.anchorNode.tagName==b||a.focusNode.tagName&&a.focusNode.tagName==b||a.anchorNode.parentNode.tagName&&a.anchorNode.parentNode.tagName==b||a.focusNode.parentNode.tagName&&a.focusNode.parentNode.tagName==b)return!0;var c=a.getRangeAt(0).cloneContents(),d=document.createElement("span");d.appendChild(c);return 0<d.getElementsByTagName(b).length}; +cvox.SelectionUtil.selectText=function(a,b,c){var d=document.createRange();d.setStart(a,b);d.setEnd(a,c);a=window.getSelection();a.removeAllRanges();a.addRange(d)};cvox.SelectionUtil.selectAllTextInNode=function(a){var b=document.createRange();b.setStart(a,0);b.setEndAfter(a);a=window.getSelection();a.removeAllRanges();a.addRange(b)}; +cvox.SelectionUtil.collapseToStart=function(a){var b=window.getSelection(),c=b.anchorNode,d=b.anchorOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};cvox.SelectionUtil.collapseToEnd=function(a){var b=window.getSelection(),c=b.focusNode,d=b.focusOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)}; +cvox.SelectionUtil.getText=function(){var a=window.getSelection();if(cvox.SelectionUtil.hasContentWithTag(a,"IMG")){var b="",a=a.getRangeAt(0).cloneContents(),c=document.createElement("span");c.appendChild(a);for(var a=cvox.XpathUtil.getLeafNodes(c),c=0,d;d=a[c];c++)b=b+" "+cvox.DomUtil.getName(d);return b}return this.getSelectionText_()};cvox.SelectionUtil.getSelectionText_=function(){return""+window.getSelection()}; +cvox.SelectionUtil.getRangeText=function(a){return a?a.cloneContents().textContent.replace(/\s+/g," "):""};cvox.TraverseUtil=function(){};cvox.TraverseUtil.getNodeText=function(a){return a.constructor==Text?a.data:""};cvox.TraverseUtil.treatAsLeafNode=function(a){return 0==a.childNodes.length||"SELECT"==a.nodeName||"listbox"==a.getAttribute("role")||"OBJECT"==a.nodeName};cvox.TraverseUtil.isWhitespace=function(a){return" "==a||"\n"==a||"\r"==a||"\t"==a}; +cvox.TraverseUtil.setSelection=function(a,b){var c=window.getSelection();c.removeAllRanges();var d=document.createRange();d.setStart(a.node,a.index);d.setEnd(b.node,b.index);c.addRange(d);return c};cvox.TraverseUtil.isHidden=function(a){if(a instanceof HTMLElement&&"true"==a.getAttribute("aria-hidden"))return!0;switch(a.tagName){case "SCRIPT":case "NOSCRIPT":return!0}return!1}; +cvox.TraverseUtil.forwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index;e<a.node.childNodes.length;e++){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.index=0,a.text=cvox.TraverseUtil.getNodeText(a.node),a.node instanceof HTMLElement&&b.push(a.node);else{if(a.index<a.text.length)return a.text[a.index++];for(;null!= +a.node;){d=null;for(f=a.node.nextSibling;null!=f;f=f.nextSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=0;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof HTMLElement&&c.push(a.node),a.node=a.node.parentNode, +a.text=null,a.index=0;else return null}}}}; +cvox.TraverseUtil.backwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index-1;0<=e;e--){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.text=cvox.TraverseUtil.getNodeText(a.node),a.index=a.text.length?a.text.length:a.node.childNodes.length,a.node instanceof HTMLElement&&b.push(a.node);else{if(0<a.text.length&&0<a.index)return a.text[--a.index]; +for(;;){d=null;for(f=a.node.previousSibling;null!=f;f=f.previousSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=a.text.length?a.text.length:a.node.childNodes.length;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof +HTMLElement&&c.push(a.node),a.node=a.node.parentNode,a.text=null,a.index=0;else return null}}}}; +cvox.TraverseUtil.getNextChar=function(a,b,c,d,e){a.copyFrom(b);var f=cvox.TraverseUtil.forwardsChar(b,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(b.node);)if(f=cvox.TraverseUtil.forwardsChar(b,c,d),null==f)return null;if(e||!g)return a.copyFrom(b),a.index--,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return b.index--,a.copyFrom(b),a.index--," ";b.index--;return" "}; +cvox.TraverseUtil.getPreviousChar=function(a,b,c,d,e){b.copyFrom(a);var f=cvox.TraverseUtil.backwardsChar(a,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(a.node);)if(f=cvox.TraverseUtil.backwardsChar(a,c,d),null==f)return null;if(e||!g)return b.copyFrom(a),b.index++,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return a.index++,b.copyFrom(a),b.index++," ";a.index++;return" "}; +cvox.TraverseUtil.getNextWord=function(a,b,c,d){var e=b.clone(),f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.forwardsChar(e,c,d),null==f)return null;a.copyFrom(e);a.index--;b.copyFrom(e);a=f;c=[];d=[];f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return a;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d&&(a+=f,b.copyFrom(e),f=cvox.TraverseUtil.forwardsChar(e,c,d),null!= +f););return a}; +cvox.TraverseUtil.getPreviousWord=function(a,b,c,d){var e=a.clone(),f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.backwardsChar(e,c,d),null==f)return null;b.copyFrom(e);b.index++;a.copyFrom(e);b=f;c=[];d=[];f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return b;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d.length&&(b=f+b,a.copyFrom(e),f=cvox.TraverseUtil.backwardsChar(e,c, +d),null!=f););return b};cvox.TraverseUtil.includesBreakTagOrSkippedNode=function(a,b,c){for(var d=0;d<a.length;d++){if(cvox.TraverseUtil.isHidden(a[d]))return!0;var e=window.getComputedStyle(a[d],null);if(e&&"inline"!=e.display||c[a[d].tagName])return!0}for(d=0;d<b.length;d++)if((e=window.getComputedStyle(b[d],null))&&"inline"!=e.display||c[b[d].tagName])return!0;return!1}; +cvox.TraverseUtil.getNextSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){return"."==a.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};cvox.TraverseUtil.getPreviousSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){return"."==b.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})}; +cvox.TraverseUtil.getNextLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=b.clone();return cvox.TraverseUtil.getNextString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.bottom!=g.bottom&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(b.node)))return b.copyFrom(h),!0;g=c;h.copyFrom(b);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})}; +cvox.TraverseUtil.getPreviousLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=a.clone();return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.top!=g.top&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(a.node)))return a.copyFrom(h),!0;g=c;h.copyFrom(a);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})}; +cvox.TraverseUtil.getNextParagraph=function(a,b,c,d){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})}; +cvox.TraverseUtil.getPreviousParagraph=function(a,b,c,d){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})}; +cvox.TraverseUtil.getNextString=function(a,b,c,d,e){c=b.clone();d=b.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getNextWord(c,d,f,g);if(null==k)return null;for(a.copyFrom(c);!(h&&e(h,k,f,g)||(h&&(h+=" "),h+=k,b.copyFrom(d),f=[],g=[],k=cvox.TraverseUtil.getNextWord(c,d,f,g),null==k)););return h}; +cvox.TraverseUtil.getPreviousString=function(a,b,c,d,e){c=a.clone();d=a.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getPreviousWord(c,d,f,g);if(null==k)return null;for(b.copyFrom(d);!(h&&e(h,k,f,g)||(h&&(h=" "+h),h=k+h,a.copyFrom(c),f=[],g=[],k=cvox.TraverseUtil.getPreviousWord(c,d,f,g),null==k)););return h};cvox.CursorSelection=function(a,b,c){this.start=a.clone();this.end=b.clone();void 0==c&&(c=!1);if((this.isReversed_=c)&&this.start.node.compareDocumentPosition(this.end.node)==cvox.CursorSelection.BEFORE||!this.isReversed_&&this.end.node.compareDocumentPosition(this.start.node)==cvox.CursorSelection.BEFORE)a=this.start,this.start=this.end,this.end=a};cvox.CursorSelection.BEFORE=4; +cvox.CursorSelection.prototype.setReversed=function(a){if(a==this.isReversed_)return this;var b=this.start;this.start=this.end;this.end=b;this.isReversed_=a;return this};cvox.CursorSelection.prototype.isReversed=function(){return this.isReversed_};cvox.CursorSelection.prototype.absStart=function(){return this.isReversed_?this.end:this.start};cvox.CursorSelection.prototype.absEnd=function(){return this.isReversed_?this.start:this.end}; +cvox.CursorSelection.prototype.clone=function(){return new cvox.CursorSelection(this.start,this.end,this.isReversed_)};cvox.CursorSelection.prototype.select=function(){var a=window.getSelection();a.removeAllRanges();this.normalize();a.addRange(this.getRange())};cvox.CursorSelection.fromNode=function(a){if(!a)return null;var b=cvox.TraverseUtil.getNodeText(a);return new cvox.CursorSelection(new cvox.Cursor(a,0,b),new cvox.Cursor(a,0,b))};cvox.CursorSelection.fromBody=function(){return cvox.CursorSelection.fromNode(document.body)}; +cvox.CursorSelection.prototype.getText=function(){return this.start.equals(this.end)?cvox.TraverseUtil.getNodeText(this.start.node):cvox.SelectionUtil.getRangeText(this.getRange())};cvox.CursorSelection.prototype.getRange=function(){var a=document.createRange();this.isReversed_?(a.setStart(this.end.node,this.end.index),a.setEnd(this.start.node,this.start.index)):(a.setStart(this.start.node,this.start.index),a.setEnd(this.end.node,this.end.index));return a}; +cvox.CursorSelection.prototype.equals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)};cvox.CursorSelection.prototype.absEquals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)||this.end.equals(a.start)&&this.start.equals(a.end)};cvox.CursorSelection.prototype.directedBefore=function(a){var b=this.start.node.compareDocumentPosition(a.start.node)==cvox.CursorSelection.BEFORE;return this.start.node==a.start.node||(this.isReversed()?!b:b)}; +cvox.CursorSelection.prototype.normalize=function(){if(0==this.absEnd().index&&this.absEnd().node){var a=this.absEnd().node,b=document.createRange();b.selectNodeContents(a);this.absEnd().index=b.endOffset}return this};cvox.CursorSelection.prototype.collapse=function(){if(this.start.equals(this.end))return this;this.end.copyFrom(this.start);if(0==this.start.text.length)return this;this.isReversed()?0<this.end.index&&this.end.index--:this.end.index<this.end.text.length&&this.end.index++;return this};cvox.PlatformUtil={};cvox.PlatformFilter={NONE:0,WINDOWS:1,MAC:2,LINUX:4,WML:7,CHROMEOS:8,ANDROID:16};cvox.PlatformUtil.matchesPlatform=function(a){var b=navigator.userAgent;return void 0==a?!0:-1!=b.indexOf("Android")?0!=(a&cvox.PlatformFilter.ANDROID):-1!=b.indexOf("Win")?0!=(a&cvox.PlatformFilter.WINDOWS):-1!=b.indexOf("Mac")?0!=(a&cvox.PlatformFilter.MAC):-1!=b.indexOf("Linux")?0!=(a&cvox.PlatformFilter.LINUX):-1!=b.indexOf("CrOS")?0!=(a&cvox.PlatformFilter.CHROMEOS):!1};cvox.Spannable=function(a,b){this.string_=a||"";this.spans_=[];if(goog.isDef(b)){var c=this.string_.length;this.spans_.push({value:b,start:0,end:c})}};cvox.Spannable.prototype.toString=function(){return this.string_};cvox.Spannable.prototype.getLength=function(){return this.string_.length};cvox.Spannable.prototype.setSpan=function(a,b,c){this.removeSpan(a);if(0<=b&&b<=c&&c<=this.string_.length)this.spans_.push({value:a,start:b,end:c});else throw new RangeError("span out of range");}; +cvox.Spannable.prototype.removeSpan=function(a){for(var b=this.spans_.length-1;0<=b;b--)this.spans_[b].value===a&&this.spans_.splice(b,1)};cvox.Spannable.prototype.append=function(a){if(a instanceof cvox.Spannable){var b=a,c=this.getLength();this.string_+=b.string_;a.spans_.forEach(goog.bind(function(a){this.setSpan(a.value,a.start+c,a.end+c)},this))}else"string"===typeof a&&(this.string_+=a)}; +cvox.Spannable.prototype.getSpan=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.start<=a&&a<c.end)return c.value}};cvox.Spannable.prototype.getSpanInstanceOf=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value instanceof a)return c.value}};cvox.Spannable.prototype.getSpans=function(a){for(var b=[],c=0;c<this.spans_.length;c++){var d=this.spans_[c];d.start<=a&&a<d.end&&b.push(d.value)}return b}; +cvox.Spannable.prototype.getSpanStart=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.start}return null};cvox.Spannable.prototype.getSpanEnd=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.end}return null}; +cvox.Spannable.prototype.substring=function(a,b){var c=goog.isDef(b)?b:this.string_.length;if(0>a||c>this.string_.length||a>c)throw new RangeError("substring indices out of range");for(var d=new cvox.Spannable(this.string_.substring(a,c)),e=0;e<this.spans_.length;e++){var f=this.spans_[e];if(f.start<=c&&f.end>=a){var g=Math.max(0,f.start-a),h=Math.min(c-a,f.end-a);d.spans_.push({value:f.value,start:g,end:h})}}return d}; +cvox.Spannable.prototype.trim=function(){if(/^\s*$/.test(this.string_))return this.substring(0,0);var a=this.string_.match(/^\s*/)[0].length,b=this.string_.match(/\s*$/).index;return this.substring(a,b)};cvox.NavBraille=function(a){this.text=a.text instanceof cvox.Spannable?a.text:new cvox.Spannable(a.text);this.startIndex=a.startIndex?a.startIndex:0;this.endIndex=a.endIndex?a.endIndex:0};cvox.NavBraille.fromText=function(a){return new cvox.NavBraille({text:a})};cvox.NavBraille.prototype.isEmpty=function(){return 0==this.text.getLength()};cvox.NavBraille.prototype.toString=function(){return'NavBraille(text="'+this.text.toString()+'" startIndex="'+this.startIndex+'" endIndex="'+this.endIndex+'")'}; +cvox.NavBraille.prototype.toJson=function(){return{text:this.text.toString(),startIndex:this.startIndex,endIndex:this.endIndex}};cvox.NavBraille.prototype.write=function(){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.CHROMEOS|cvox.PlatformFilter.ANDROID)&&cvox.ChromeVox.braille.write(this)};cvox.BrailleKeyCommand={PAN_LEFT:"pan_left",PAN_RIGHT:"pan_right",LINE_UP:"line_up",LINE_DOWN:"line_down",TOP:"top",BOTTOM:"bottom",ROUTING:"routing",SECONDARY_ROUTING:"secondary_routing",DOTS:"dots",STANDARD_KEY:"standard_key"};cvox.BrailleKeyEvent={};cvox.BrailleInterface=function(){};cvox.BrailleInterface.prototype.write=function(){};cvox.AbstractBraille=function(){};cvox.AbstractHost=function(){};cvox.AbstractHost.State={ACTIVE:0,INACTIVE:1,KILLED:2};cvox.AbstractHost.prototype.init=function(){};cvox.AbstractHost.prototype.reinit=function(){};cvox.AbstractHost.prototype.onPageLoad=function(){};cvox.AbstractHost.prototype.getApiSrc=function(){return""};cvox.AbstractHost.prototype.getFileSrc=function(){return""};cvox.AbstractHost.prototype.hasTtsCallback=function(){return!0};cvox.AbstractHost.prototype.ttsLoaded=function(){return!0}; +cvox.AbstractHost.prototype.mustRedispatchClickEvent=function(){return!1};cvox.AbstractHost.prototype.activateOrDeactivateChromeVox=function(a){this.onStateChanged_(a?cvox.AbstractHost.State.ACTIVE:cvox.AbstractHost.State.INACTIVE)};cvox.AbstractHost.prototype.killChromeVox=function(){this.onStateChanged_(cvox.AbstractHost.State.KILLED)}; +cvox.AbstractHost.prototype.onStateChanged_=function(a){var b=a==cvox.AbstractHost.State.ACTIVE;if(b!=cvox.ChromeVox.isActive)switch(cvox.ChromeVoxEventWatcher.cleanup(window),a){case cvox.AbstractHost.State.ACTIVE:cvox.ChromeVox.isActive=!0;cvox.ChromeVox.navigationManager.showOrHideIndicator(!0);cvox.ChromeVoxEventWatcher.init(window);document.activeElement?(a=document.hasFocus()&&!document.webkitHidden,cvox.ApiImplementation.syncToNode(document.activeElement,a)):cvox.ChromeVox.navigationManager.updateIndicator(); +break;case cvox.AbstractHost.State.INACTIVE:cvox.ChromeVox.isActive=!1;cvox.ChromeVox.navigationManager.showOrHideIndicator(!1);cvox.ChromeVoxEventWatcher.init(window);break;case cvox.AbstractHost.State.KILLED:cvox.ChromeVox.isActive=!1,cvox.ChromeVox.navigationManager.showOrHideIndicator(!1)}};cvox.MathJaxInterface=function(){};cvox.MathJaxInterface.prototype.isMathjaxActive=function(){};cvox.MathJaxInterface.prototype.getAllJax=function(){};cvox.MathJaxInterface.prototype.registerSignal=function(){};cvox.MathJaxInterface.prototype.injectScripts=function(){};cvox.MathJaxInterface.prototype.configMediaWiki=function(){};cvox.MathJaxInterface.prototype.getTex=function(){};cvox.MathJaxInterface.prototype.getAsciiMath=function(){};cvox.AbstractMathJax=function(){};cvox.AbstractMathJax.prototype.getAllTexs=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("tex")),c=0,d;d=b[c];c++)this.getTex(a,d)};cvox.AbstractMathJax.prototype.getAllAsciiMaths=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("asciimath")),c=0,d;d=b[c];c++)this.getAsciiMath(a,d)}; +cvox.AbstractMathJax.prototype.convertMarkupToDom=function(a,b,c){if(b){var d=new DOMParser;b=b.replace(/>\s+</g,"><");a(d.parseFromString(b,"text/xml").firstChild,c)}};cvox.AbstractMsgs=function(){};cvox.AbstractMsgs.prototype.getMsg=function(){};cvox.AbstractMsgs.prototype.getNumber=function(){};cvox.HostFactory=function(){};cvox.HostFactory.getHost=function(){return new cvox.HostFactory.hostConstructor};cvox.HostFactory.getTts=function(){return new cvox.HostFactory.ttsConstructor};cvox.HostFactory.getBraille=function(){return new cvox.HostFactory.brailleConstructor};cvox.HostFactory.getMsgs=function(){return new cvox.HostFactory.msgsConstructor};cvox.HostFactory.getEarcons=function(){return new cvox.HostFactory.earconsConstructor};cvox.HostFactory.getMathJax=function(){return new cvox.HostFactory.mathJaxConstructor};cvox.SpokenMessage=function(){this.raw=this.id=this.count=null};cvox.SpokenMessages={};cvox.SpokenMessages.messages=[];cvox.SpokenMessages.speakFlush=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_FLUSH)};cvox.SpokenMessages.speakQueued=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_QUEUE)}; +cvox.SpokenMessages.speak=function(a){for(var b=0;b<cvox.SpokenMessages.messages.length;++b){var c=cvox.SpokenMessages.messages[b];if(!c||!c.id&&!c.raw)throw"Invalid message received.";var d="";if(null!=c.count)if(0>=c.count)try{d+=cvox.ChromeVox.msgs.getMsg(c.id[0]+"_optional_default")}catch(e){continue}else d=1==c.count?d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_singular"):d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_plural",[c.count]);else d=c.raw?d+c.raw:d+cvox.ChromeVox.msgs.getMsg.apply(cvox.ChromeVox.msgs, +c.id);cvox.ChromeVox.tts.speak(d,a,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=cvox.AbstractTts.QUEUE_MODE_QUEUE}cvox.SpokenMessages.messages=[]};cvox.SpokenMessages.currentMessage=function(){if(0==cvox.SpokenMessages.messages.length)throw"Invalid usage of SpokenMessages; start the chain using $m()";return cvox.SpokenMessages.messages[cvox.SpokenMessages.messages.length-1]};cvox.SpokenMessages.withCount=function(a){cvox.SpokenMessages.currentMessage().count=a;return cvox.SpokenMessages}; +cvox.SpokenMessages.andIndexTotal=function(a,b){var c=new cvox.SpokenMessage;c.raw=cvox.ChromeVox.msgs.getMsg("index_total",[a,b]);cvox.SpokenMessages.messages.push(c);return cvox.SpokenMessages};cvox.SpokenMessages.andEnd=function(){return cvox.SpokenMessages.andMessage("end")};cvox.SpokenMessages.andMessage=function(a){var b=new cvox.SpokenMessage;b.id="string"==typeof a?[a]:a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages}; +cvox.SpokenMessages.andRawMessage=function(a){var b=new cvox.SpokenMessage;b.raw=a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};cvox.SpokenMessages.andPause=function(){return cvox.SpokenMessages.andMessage("pause")};cvox.$m=cvox.SpokenMessages.andMessage;cvox.CompositeTts=function(){this.ttsEngines_=[]};cvox.CompositeTts.prototype.add=function(a){this.ttsEngines_.push(a);return this};cvox.CompositeTts.prototype.speak=function(a,b,c){this.ttsEngines_.forEach(function(d){d.speak(a,b,c)})};cvox.CompositeTts.prototype.isSpeaking=function(){return this.ttsEngines_.some(function(a){return a.isSpeaking()})};cvox.CompositeTts.prototype.stop=function(){this.ttsEngines_.forEach(function(a){a.stop()})}; +cvox.CompositeTts.prototype.increaseOrDecreaseProperty=function(a,b){this.ttsEngines_.forEach(function(c){c.increaseOrDecreaseProperty(a,b)})};cvox.CompositeTts.prototype.getDefaultProperty=function(a){for(var b=0,c;c=this.ttsEngines_[b];b++)if(c=c.getDefaultProperty(a))return c};cvox.BuildInfo={};cvox.BuildInfo.build="1384906195.369502";cvox.ChromeVoxJSON||(cvox.ChromeVoxJSON={}); +window.JSON&&"[object JSON]"==window.JSON.toString()?cvox.ChromeVoxJSON=window.JSON:function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,n,s,u=f,t,r=d[a];r&&"object"===typeof r&&"function"===typeof r.toJSON&&(r=r.toJSON(a));"function"===typeof k&&(r=k.call(d,a,r));switch(typeof r){case "string":return b(r); +case "number":return isFinite(r)?String(r):"null";case "boolean":case "null":return String(r);case "object":if(!r)return"null";f+=g;t=[];if("[object Array]"===Object.prototype.toString.apply(r)){s=r.length;for(e=0;e<s;e+=1)t[e]=c(e,r)||"null";n=0===t.length?"[]":f?"[\n"+f+t.join(",\n"+f)+"\n"+u+"]":"["+t.join(",")+"]";f=u;return n}if(k&&"object"===typeof k)for(s=k.length,e=0;e<s;e+=1)h=k[e],"string"===typeof h&&(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);else for(h in r)Object.hasOwnProperty.call(r,h)&& +(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);n=0===t.length?"{}":f?"{\n"+f+t.join(",\n"+f)+"\n"+u+"}":"{"+t.join(",")+"}";f=u;return n}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":"null"},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()}); +var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof cvox.ChromeVoxJSON.stringify&&(cvox.ChromeVoxJSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&& +(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});"function"!==typeof cvox.ChromeVoxJSON.parse&&(cvox.ChromeVoxJSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=String(a);d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})); +if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})}();"undefined"!=typeof goog&&goog.provide&&(cvox.ApiUtil={});window.cvox||(window.cvox={});cvox.ApiUtils=function(){};cvox.ApiUtils.nextCvoxId_=1; +cvox.ApiUtils.makeNodeReference=function(a){if(a.id&&document.getElementById(a.id)==a)return{id:a.id};if(a instanceof HTMLElement){var b=cvox.ApiUtils.nextCvoxId_;a.setAttribute("cvoxid",b);cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+1)%100;return{cvoxid:b}}if(a.parentElement){for(var c=a.parentElement,d=-1,b=0;b<c.childNodes.length;b++)if(c.childNodes[b]==a){d=b;break}if(0<=d)return b=cvox.ApiUtils.nextCvoxId_,c.setAttribute("cvoxid",b),cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+ +1)%100,{cvoxid:b,childIndex:d}}throw"Cannot reference node: "+a;};cvox.ApiUtils.getNodeFromRef=function(a){if(a.id)return document.getElementById(a.id);if(a.cvoxid){var b='*[cvoxid="'+a.cvoxid+'"]';(b=document.querySelector(b))&&b.removeAttribute&&b.removeAttribute("cvoxid");return null!=a.childIndex?b.childNodes[a.childIndex]:b}throw"Bad node reference: "+cvox.ChromeVoxJSON.stringify(a);};cvox.ScriptInstaller={}; +cvox.ScriptInstaller.installScript=function(a,b,c,d){if(document.querySelector("script["+b+"]")||!a)return!1;for(var e=0,f;f=a[e];e++){var g=new XMLHttpRequest,h=f+"?"+(new Date).getTime();g.onreadystatechange=function(){if(4==g.readyState){var a=g.responseText,a=a+("\n//# sourceURL="+f+"\n"),c=document.createElement("script");c.type="text/javascript";c.setAttribute(b,"1");c.textContent=a;d&&c.setAttribute("chromevoxScriptBase",d);cvox.DomUtil.addNodeToHead(c)}};try{g.open("GET",h,!1),g.send(null)}catch(k){return window.console.log("Warning: ChromeVox external script loading for "+ +document.location+" stopped after failing to install "+f),!1}}c&&c();return!0};cvox.ApiImplementation=function(){};cvox.ApiImplementation.init=function(a){window.addEventListener("message",cvox.ApiImplementation.portSetup,!0);var b=[];b.push(cvox.ChromeVox.host.getFileSrc("chromevox/injected/api_util.js"));b.push(cvox.ChromeVox.host.getApiSrc());b.push(cvox.ApiImplementation.siteSpecificScriptLoader);a=cvox.ScriptInstaller.installScript(b,"cvoxapi",a,cvox.ApiImplementation.siteSpecificScriptBase);a||(window.location.href="javascript:cvox.Api.internalEnable();")}; +cvox.ApiImplementation.portSetup=function(a){return"cvox.PortSetup"==a.data?(cvox.ApiImplementation.port=a.ports[0],cvox.ApiImplementation.port.onmessage=function(a){cvox.ApiImplementation.dispatchApiMessage(cvox.ChromeVoxJSON.parse(a.data))},a.stopPropagation(),!1):!0}; +cvox.ApiImplementation.dispatchApiMessage=function(a){var b;switch(a.cmd){case "speak":b=cvox.ApiImplementation.speak;break;case "speakNodeRef":b=cvox.ApiImplementation.speakNodeRef;break;case "stop":b=cvox.ApiImplementation.stop;break;case "playEarcon":b=cvox.ApiImplementation.playEarcon;break;case "syncToNodeRef":b=cvox.ApiImplementation.syncToNodeRef;break;case "clickNodeRef":b=cvox.ApiImplementation.clickNodeRef;break;case "getBuild":b=cvox.ApiImplementation.getBuild;break;case "getVersion":b= +cvox.ApiImplementation.getVersion;break;case "getCurrentNode":b=cvox.ApiImplementation.getCurrentNode;break;case "getCvoxModKeys":b=cvox.ApiImplementation.getCvoxModKeys;break;case "isKeyShortcut":b=cvox.ApiImplementation.isKeyShortcut;break;case "setKeyEcho":b=cvox.ApiImplementation.setKeyEcho;break;case "Math.defineRule":b=cvox.ApiImplementation.Math.defineRule}if(!b)throw"Unknown API call: "+a.cmd;b.apply(cvox.ApiImplementation,a.args)}; +function setupEndCallback_(a,b){var c=function(){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:b}))};a&&(a.endCallback=c)}cvox.ApiImplementation.speak=function(a,b,c,d){cvox.ChromeVox.isActive&&(d||(d={}),setupEndCallback_(d,a),cvox.ChromeVox.tts.speak(b,c,d))};cvox.ApiImplementation.speakNode=function(a,b,c){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.speak(cvox.DomUtil.getName(a),b,c)}; +cvox.ApiImplementation.speakNodeRef=function(a,b,c,d){b=cvox.ApiUtils.getNodeFromRef(b);d||(d={});setupEndCallback_(d,a);cvox.ApiImplementation.speakNode(b,c,d)};cvox.ApiImplementation.stop=function(){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.stop()};cvox.ApiImplementation.playEarcon=function(a){cvox.ChromeVox.isActive&&cvox.ChromeVox.earcons.playEarconByName(a)};cvox.ApiImplementation.syncToNodeRef=function(a,b){var c=cvox.ApiUtils.getNodeFromRef(a);cvox.ApiImplementation.syncToNode(c,b)}; +cvox.ApiImplementation.syncToNode=function(a,b,c){cvox.ChromeVox.isActive&&(void 0==c&&(c=cvox.AbstractTts.QUEUE_MODE_FLUSH),cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a,!0),cvox.ChromeVox.navigationManager.updateIndicator(),void 0==b&&(b=!1),cvox.AriaUtil.isHiddenRecursive(a)&&(b=!1),b&&cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ApiImplementation.getDesc_(a),c,null),cvox.ChromeVox.navigationManager.getBraille().write(),cvox.ChromeVox.navigationManager.updatePosition(a))}; +cvox.ApiImplementation.getCurrentNode=function(a){var b=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,currentNode:cvox.ApiUtils.makeNodeReference(b)}))}; +cvox.ApiImplementation.getDesc_=function(a){if(!a.hasAttribute("cvoxnodedesc"))return cvox.ChromeVox.navigationManager.getDescription();a=cvox.ChromeVoxJSON.parse(a.getAttribute("cvoxnodedesc"));for(var b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b};cvox.ApiImplementation.clickNodeRef=function(a,b){cvox.DomUtil.clickElem(cvox.ApiUtils.getNodeFromRef(a),b,!1)}; +cvox.ApiImplementation.getBuild=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,build:cvox.BuildInfo.build}))};cvox.ApiImplementation.getVersion=function(a){var b=cvox.ChromeVox.version;null==b?window.setTimeout(function(){cvox.ApiImplementation.getVersion(a)},1E3):cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,version:b}))}; +cvox.ApiImplementation.getCvoxModKeys=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,keyCodes:cvox.KeyUtil.cvoxModKeyCodes()}))};cvox.ApiImplementation.isKeyShortcut=function(a,b){var c=cvox.KeyUtil.keyEventToKeySequence(b);cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,isHandled:cvox.ChromeVoxKbHandler.handlerKeyMap.hasKey(c)}))}; +cvox.ApiImplementation.setKeyEcho=function(a){var b=cvox.ChromeVox.keyEcho;b[document.location.href]=a;JSON.stringify(b)};cvox.ApiImplementation.Math=function(){};cvox.ApiImplementation.Math.defineRule=function(a,b,c,d,e){var f=cvox.MathmlStore.getInstance(),g=Array.prototype.slice.call(arguments,4),g=[a,b,c,d].concat(g);f.defineRule.apply(f,g)};cvox.ConsoleTts=function(){this.enabled_=!1};goog.addSingletonGetter(cvox.ConsoleTts);cvox.ConsoleTts.prototype.speak=function(a,b,c){if(this.enabled_&&window.console){var d="Speak",d=b==cvox.AbstractTts.QUEUE_MODE_FLUSH?d+" (I)":d+" (Q)",d=d+(' "'+a+'"');window.console.log(d);c&&void 0!=c.startCallback&&window.console.log(" using startCallback");c&&void 0!=c.endCallback&&window.console.log(" using endCallback")}return this};cvox.ConsoleTts.prototype.isSpeaking=function(){return!1}; +cvox.ConsoleTts.prototype.stop=function(){this.enabled_&&window.console.log("Stop")};cvox.ConsoleTts.prototype.increaseOrDecreaseProperty=function(){};cvox.ConsoleTts.prototype.setEnabled=function(a){this.enabled_=a};cvox.ConsoleTts.prototype.getDefaultProperty=function(){};cvox.ChromeVoxHTMLDateWidget=function(a,b){var c=this;this.pos_=0;var d=2;if("month"==a.type||"week"==a.type)d=1;this.maxPos_=d;this.dateElem_=a;this.dateTts_=b;this.pDay_=this.pWeek_=this.pMonth_=this.pYear_=-1;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};0==this.dateElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e); +e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e)}this.dateElem_.addEventListener("keydown",this.keyListener_,!1);this.dateElem_.addEventListener("keyup",this.keyListener_,!1);this.dateElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)}; +cvox.ChromeVoxHTMLDateWidget.prototype.shutdown=function(){this.dateElem_.removeEventListener("blur",this.blurListener_,!1);this.dateElem_.removeEventListener("keydown",this.keyListener_,!1);this.dateElem_.removeEventListener("keyup",this.keyListener_,!1)}; +cvox.ChromeVoxHTMLDateWidget.prototype.forceInitTime_=function(){var a=new Date,b="",b=a.getFullYear()+"",c=a.getMonth()+1+"";2>c.length&&(c="0"+c);var d=a.getDate()+"";switch(this.dateElem_.type){case "month":b=b+"-"+c;break;case "week":a.setHours(0,0,0);a.setDate(a.getDate()+4-(a.getDay()||7));c=new Date(a.getFullYear(),0,1);a=Math.ceil(((a-c)/864E5+1)/7)+"";2>a.length&&(a="0"+a);a="W"+a;b=b+"-"+a;break;default:b=b+"-"+c+"-"+d}this.dateElem_.setAttribute("value",b)}; +cvox.ChromeVoxHTMLDateWidget.prototype.handlePosChange_=function(){this.pos_=Math.max(this.pos_,0);this.pos_=Math.min(this.pos_,this.maxPos_);switch(this.pos_){case 0:"week"==this.dateElem_.type?this.pWeek_=-1:this.pMonth_=-1;break;case 1:"date"==this.dateElem_.type?this.pDay_=-1:this.pYear_=-1;break;case 2:this.pYear_=-1}}; +cvox.ChromeVoxHTMLDateWidget.prototype.update_=function(a){var b=this.dateElem_.value.split("-");if(1>b.length)this.forceInitTime_();else{var c=-1,d=-1,e=-1,f=-1,c=parseInt(b[0],10);"week"==this.dateElem_.type?e=parseInt(b[1].replace("W",""),10):"date"==this.dateElem_.type?(d=parseInt(b[1],10),f=parseInt(b[2],10)):d=parseInt(b[1],10);b="";a&&(b=cvox.DomUtil.getName(this.dateElem_,!0,!0)+"\n");e!=this.pWeek_&&(b=b+cvox.ChromeVox.msgs.getMsg("datewidget_week")+e+"\n",this.pWeek_=e);if(d!=this.pMonth_){a= +"";switch(d){case 1:a=cvox.ChromeVox.msgs.getMsg("datewidget_january");break;case 2:a=cvox.ChromeVox.msgs.getMsg("datewidget_february");break;case 3:a=cvox.ChromeVox.msgs.getMsg("datewidget_march");break;case 4:a=cvox.ChromeVox.msgs.getMsg("datewidget_april");break;case 5:a=cvox.ChromeVox.msgs.getMsg("datewidget_may");break;case 6:a=cvox.ChromeVox.msgs.getMsg("datewidget_june");break;case 7:a=cvox.ChromeVox.msgs.getMsg("datewidget_july");break;case 8:a=cvox.ChromeVox.msgs.getMsg("datewidget_august"); +break;case 9:a=cvox.ChromeVox.msgs.getMsg("datewidget_september");break;case 10:a=cvox.ChromeVox.msgs.getMsg("datewidget_october");break;case 11:a=cvox.ChromeVox.msgs.getMsg("datewidget_november");break;case 12:a=cvox.ChromeVox.msgs.getMsg("datewidget_december")}b=b+a+"\n";this.pMonth_=d}f!=this.pDay_&&(b=b+f+"\n",this.pDay_=f);c!=this.pYear_&&(b=b+c+"\n",this.pYear_=c);0<b.length&&this.dateTts_.speak(b,0,null)}}; +cvox.ChromeVoxHTMLDateWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.BrailleTextHandler=function(a){this.braille_=a};cvox.BrailleTextHandler.prototype.changed=function(a,b,c,d){var e;d?(e=cvox.NavBraille.fromText(a),e.startIndex=b,e.endIndex=c):cvox.ChromeVox.navigationManager&&(e=cvox.ChromeVox.navigationManager.getBraille());e&&this.braille_.write(e)};cvox.ContentEditableExtractor=function(){this.text_="";this.end_=this.start_=0;this.lines_={};this.characterToLineMap_=[]}; +cvox.ContentEditableExtractor.prototype.update=function(a){for(var b={0:{startIndex:0,endIndex:0}},c=new cvox.Cursor(a,0,""),d=c.clone(),e=document.createRange(),f,g=0,h=null,k="",l=0,m=-1,p=-1,q=window.getSelection(),n=new cvox.Cursor(q.baseNode,q.baseOffset,""),q=new cvox.Cursor(q.extentNode,q.extentOffset,""),s=!1,u=!1;;){f=[];var t=[],r=cvox.TraverseUtil.forwardsChar(d,f,t),v=!1;r||(v=!0);for(f=0;f<t.length&&!v;f++)t[f]==a&&(v=!0);if(v)break;e.setStart(c.node,c.index);e.setEnd(d.node,d.index); +if((f=e.getBoundingClientRect())&&0!=f.width&&0!=f.height){null!==h&&f.bottom!=h&&0<l&&k.substr(-1).match(/\S/)&&r.match(/\S/)&&(k+="\n",l++);if(c.node!=d.node&&0<d.index&&(e.setStart(d.node,d.index-1),f=e.getBoundingClientRect(),!f||0==f.width||0==f.height))continue;!s&&-1==m&&d.node==n.node&&d.index>=n.index&&(d.index>n.index?m=l:s=!0);!u&&-1==p&&d.node==q.node&&d.index>=q.index&&(d.index>q.index?p=l:u=!0);null===h?h=f.bottom:f.bottom!=h&&(b[g].endIndex=l,g++,b[g]={startIndex:l,endIndex:l},h=f.bottom); +k+=r;l++;c=d.clone();s&&(m=l,s=!1);u&&(p=l,u=!1)}}b[g].endIndex=l;a=[];for(f=0;f<=g;f++)for(c=b[f].startIndex;c<=b[f].endIndex;c++)a[c]=f;this.text_=k;this.characterToLineMap_=a;this.lines_=b;this.start_=0<=m?m:k.length;this.end_=0<=p?p:k.length};cvox.ContentEditableExtractor.prototype.getText=function(){return this.text_};cvox.ContentEditableExtractor.prototype.getStartIndex=function(){return this.start_};cvox.ContentEditableExtractor.prototype.getEndIndex=function(){return this.end_}; +cvox.ContentEditableExtractor.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.ContentEditableExtractor.prototype.getLineStart=function(a){return this.lines_[a].startIndex};cvox.ContentEditableExtractor.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.EditableTextAreaShadow=function(){this.shadowElement_=document.createElement("div");this.lines_={};this.characterToLineMap_=[]}; +cvox.EditableTextAreaShadow.prototype.update=function(a){for(document.body.appendChild(this.shadowElement_);this.shadowElement_.childNodes.length;)this.shadowElement_.removeChild(this.shadowElement_.childNodes[0]);this.shadowElement_.style.cssText=window.getComputedStyle(a,null).cssText;this.shadowElement_.style.position="absolute";this.shadowElement_.style.top=-9999;this.shadowElement_.style.left=-9999;this.shadowElement_.setAttribute("aria-hidden","true");var b=a.value,c=document.createTextNode(b+ +".");this.shadowElement_.appendChild(c);a={0:{startIndex:0,endIndex:0}};for(var d=document.createRange(),e=0,f=0,g=0,h=null,k=!1,l;e<=b.length;){d.setStart(c,e);if(e+8>b.length||0<=b.substr(e,8).indexOf("\n"))k=!0;k?(e++,d.setEnd(c,e),l=d.getBoundingClientRect()):(d.setEnd(c,e+8),l=d.getBoundingClientRect(),l.bottom==h?e+=8:(l&&null!==h&&(k=!0),e++,d.setEnd(c,e),l=d.getBoundingClientRect()));0<e&&"\n"==b[e-1]?(a[g].endIndex=e-1,g++,a[g]={startIndex:e,endIndex:e},h=null,k=!1,f=e):l&&null===h?h=l.bottom: +l&&l.bottom!=h&&(a[g].endIndex=f,g++,a[g]={startIndex:f,endIndex:f},h=l?l.bottom:null,k=!1);l&&(f=e)}a[g].endIndex=b.length;b=[];for(c=0;c<=g;c++)for(d=a[c].startIndex;d<=a[c].endIndex;d++)b[d]=c;this.characterToLineMap_=b;this.lines_=a;document.body.removeChild(this.shadowElement_)};cvox.EditableTextAreaShadow.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.EditableTextAreaShadow.prototype.getLineStart=function(a){return this.lines_[a].startIndex}; +cvox.EditableTextAreaShadow.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.TextChangeEvent=function(a,b,c,d){this.value=a;this.start=b;this.end=c;this.triggeredByUser=d;this.start>this.end&&(a=this.end,this.end=this.start,this.start=a)};cvox.TypingEcho={CHARACTER:0,WORD:1,CHARACTER_AND_WORD:2,NONE:3,COUNT:4};cvox.TypingEcho.cycle=function(a){return(a+1)%cvox.TypingEcho.COUNT};cvox.TypingEcho.shouldSpeakChar=function(a){return a==cvox.TypingEcho.CHARACTER_AND_WORD||a==cvox.TypingEcho.CHARACTER};cvox.TextHandlerInterface=function(){}; +cvox.TextHandlerInterface.prototype.changed=function(){};cvox.ChromeVoxEditableTextBase=function(a,b,c,d,e){this.value=a;this.start=b;this.end=c;this.isPassword=d;this.tts=e;this.multiline=!1;this.brailleHandler_=cvox.ChromeVox.braille?new cvox.BrailleTextHandler(cvox.ChromeVox.braille):void 0};cvox.ChromeVoxEditableTextBase.useIBeamCursor=cvox.ChromeVox.isMac;cvox.ChromeVoxEditableTextBase.eventTypingEcho=!1;cvox.ChromeVoxEditableTextBase.prototype.maxShortPhraseLen=60; +cvox.ChromeVoxEditableTextBase.prototype.isPassword=!1;cvox.ChromeVoxEditableTextBase.prototype.lastChangeDescribed=!1;cvox.ChromeVoxEditableTextBase.prototype.getValue=function(){var a="";if(this.multiline){if(a+="multiline editable text. ",this.start==this.end)var b=this.getLine(this.getLineIndex(this.start)),a=b?a+b:a+"blank"}else a=this.node?a+cvox.DomUtil.getValue(this.node):a+this.value,a=a<=this.maxShortPhraseLen?a+", editable text":a.substring(0,this.maxShortPhraseLen)+", editable text";return a}; +cvox.ChromeVoxEditableTextBase.prototype.getLineIndex=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineStart=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineEnd=function(){return this.value.length};cvox.ChromeVoxEditableTextBase.prototype.getLine=function(a){var b=this.getLineStart(a);a=this.getLineEnd(a);b=this.value.substr(b,a-b);return b.replace(/^\s+|\s+$/g,"")};cvox.ChromeVoxEditableTextBase.prototype.isWordBreakChar=function(a){return!!a.match(/^\W$/)}; +cvox.ChromeVoxEditableTextBase.prototype.isLastChar=function(a){return void 0==this.getLineIndex(a.start+1)};cvox.ChromeVoxEditableTextBase.prototype.speak=function(a,b,c){if(!this.node||document.activeElement==this.node){var d=cvox.AbstractTts.QUEUE_MODE_QUEUE;!0===b&&(d=cvox.AbstractTts.QUEUE_MODE_FLUSH);this.tts.speak(a,d,c||{})}}; +cvox.ChromeVoxEditableTextBase.prototype.changed=function(a){if(a.value!=this.value||a.start!=this.start||a.end!=this.end||this.isLastChar(a)){if(a.value==this.value?this.describeSelectionChanged(a):this.describeTextChanged(a),this.lastChangeDescribed=!0,this.value=a.value,this.start=a.start,this.end=a.end,this.brailleHandler_){var b=this.getLine(this.getLineIndex(a.start)),c=this.getLineStart(this.getLineIndex(a.start)),d=a.start-c;a=a.end-c;this.brailleHandler_.changed(b,d,a,this.multiline)}}else this.lastChangeDescribed= +!1}; +cvox.ChromeVoxEditableTextBase.prototype.describeSelectionChanged=function(a){if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser);else if(a.start==a.end)if(this.start!=this.end)this.speak(cvox.ChromeVox.msgs.getMsg("Unselected"),a.triggeredByUser);else if(this.getLineIndex(this.start)!=this.getLineIndex(a.start)){var b=this.getLine(this.getLineIndex(a.start));""==b&&(b=cvox.ChromeVox.msgs.getMsg("text_box_blank"));this.speak(b, +a.triggeredByUser)}else this.start==a.start+1||this.start==a.start-1?cvox.ChromeVoxEditableTextBase.useIBeamCursor?this.speak(this.value.substr(Math.min(this.start,a.start),1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):a.start==this.value.length?this.speak(cvox.ChromeVox.msgs.getMsg("end"),a.triggeredByUser):this.speak(this.value.substr(a.start,1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):this.speak(this.value.substr(Math.min(this.start,a.start),Math.abs(this.start- +a.start)),a.triggeredByUser);else this.start+1==a.start&&this.end==this.value.length&&a.end==this.value.length?(this.speak(this.value.substr(this.start,1),a.triggeredByUser),this.speak(this.value.substr(a.start))):this.start==this.end?(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected"))):this.start==a.start&&this.end<a.end?(this.speak(this.value.substr(this.end,a.end-this.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))): +this.start==a.start&&this.end>a.end?(this.speak(this.value.substr(a.end,this.end-a.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):this.end==a.end&&this.start>a.start?(this.speak(this.value.substr(a.start,this.start-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):this.end==a.end&&this.start<a.start?(this.speak(this.value.substr(this.start,a.start-this.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))): +(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected")))}; +cvox.ChromeVoxEditableTextBase.prototype.describeTextChanged=function(a){var b={};a.value.length<this.value.length&&(b=cvox.AbstractTts.PERSONALITY_DELETED);if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser,b);else{var c=this.value,d=c.length,e=a.value.length,f="",g=a.value,h=a.end;a.start<h&&h==e&&(f=g.substr(a.start),g=g.substr(0,a.start),h=a.start);var k=this.start,l=d-this.end;if(e>=k+l+(h-a.start)&&g.substr(0,k)== +c.substr(0,k)&&g.substr(e-l)==c.substr(this.end))this instanceof cvox.ChromeVoxEditableContentEditable&&!(e<d||this.isWordBreakChar(a.value[e-1]||""))||this.describeTextChangedHelper(a,k,l,f,b);else if(k=a.start,l=e-h,this.start==this.end&&a.start==h&&g.substr(0,k)==c.substr(0,k)&&g.substr(e-l)==c.substr(d-l))this.describeTextChangedHelper(a,k,l,f,b);else{g+=f;if(g.length==c.length+1||g.length+1==c.length){if(g.length>c.length){if(0==g.indexOf(c)){this.speak(g[g.length-1],a.triggeredByUser,b);return}if(1== +g.indexOf(c)){this.speak(g[0],a.triggeredByUser,b);return}}if(g.length<c.length){if(0==c.indexOf(g)){this.speak(c[c.length-1],a.triggeredByUser,b);return}if(1==c.indexOf(g)){this.speak(c[0],a.triggeredByUser,b);return}}}if(this.multiline)a.value.length<this.value.length&&this.speak(cvox.ChromeVox.msgs.getMsg("text_deleted"),a.triggeredByUser,b);else if(e<=this.maxShortPhraseLen)this.describeTextChangedHelper(a,0,0,"",b);else{for(k=0;k<d&&k<e&&c[k]==g[k];)k++;for(;0<k&&!this.isWordBreakChar(c[k-1]);)k--; +for(l=0;l<d-k&&l<e-k&&c[d-l-1]==g[e-l-1];)l++;for(;0<l&&!this.isWordBreakChar(c[d-l]);)l--;this.describeTextChangedHelper(a,k,l,"",b)}}}}; +cvox.ChromeVoxEditableTextBase.prototype.describeTextChangedHelper=function(a,b,c,d,e){var f=this.value.length,g=a.value.length,f=f-b-c,h=this.value.substr(b,f),k=g-b-c;c=a.value.substr(b,k);var l="",g=a.triggeredByUser;if(1<k)l=c;else if(1==k)if((cvox.ChromeVox.typingEcho==cvox.TypingEcho.WORD||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)&&this.isWordBreakChar(c)&&0<b&&!this.isWordBreakChar(a.value.substr(b-1,1))){for(f=b;0<f&&!this.isWordBreakChar(a.value[f-1]);)f--;f<b?l=a.value.substr(f, +b+1-f):(l=c,g=!1)}else{if(cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)l=cvox.ChromeVoxEditableTextBase.eventTypingEcho?"":c}else 1<f&&!d?l=h+", deleted":1==f&&(l=h);d&&l?l+=", "+d:d&&(l=d);l&&this.speak(l,g,e)};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextCharacter=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousCharacter=function(){return!1}; +cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextParagraph=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousParagraph=function(){return!1}; +cvox.ChromeVoxEditableElement=function(a,b,c,d,e,f){cvox.ChromeVoxEditableTextBase.call(this,b,c,d,e,f);this.node=a;this.justSpokeDescription_=!1};goog.inherits(cvox.ChromeVoxEditableElement,cvox.ChromeVoxEditableTextBase);cvox.ChromeVoxEditableElement.prototype.changed=function(a){this.justSpokeDescription_&&this.value==a.value&&(this.value=a.value,this.start=a.start,this.end=a.end,this.justSpokeDescription_=!1);cvox.ChromeVoxEditableElement.superClass_.changed.call(this,a)}; +cvox.ChromeVoxEditableElement.prototype.getValue=function(){this.justSpokeDescription_=!0;return cvox.ChromeVoxEditableElement.superClass_.getValue.call(this)};cvox.ChromeVoxEditableElement.prototype.moveCursorToNextCharacter=function(){var a=this.node;a.selectionEnd++;a.selectionStart=a.selectionEnd;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousCharacter=function(){var a=this.node;a.selectionStart--;a.selectionEnd=a.selectionStart;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToNextWord=function(){var a=this.node,b=a.value.length,c=/\W+/gm,d=a.value.substring(a.selectionEnd),e=c.exec(d);null!==e&&0==e.index&&(e=c.exec(d));b=null===e?b:e.index+a.selectionEnd;a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousWord=function(){for(var a=this.node,b=/\W+/gm,c=a.value.substring(0,a.selectionStart),d=0;null!==b.exec(c);)b.lastIndex<a.selectionStart&&(d=b.lastIndex);a.selectionStart=a.selectionEnd=d;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToNextParagraph=function(){var a=this.node,b=a.value.length,c=a.selectionEnd>=b?b:a.value.indexOf("\n",a.selectionEnd);0>c&&(c=b);a.selectionStart=a.selectionEnd=c+1;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousParagraph=function(){var a=this.node,b=0>=a.selectionStart?0:a.value.lastIndexOf("\n",a.selectionStart-2)+1;0>b&&(b=0);a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableHTMLInput=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,"password"===a.type,b)};goog.inherits(cvox.ChromeVoxEditableHTMLInput,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableHTMLInput.prototype.update=function(a){var b=this.node.value;a=new cvox.TextChangeEvent(b,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,!1,b);this.multiline=!0;this.shadowIsCurrent_=!1};goog.inherits(cvox.ChromeVoxEditableTextArea,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableTextArea.prototype.update=function(a){this.node.value!=this.value&&(this.shadowIsCurrent_=!1);a=new cvox.TextChangeEvent(this.node.value,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineIndex=function(a){return this.getShadow().getLineIndex(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineStart=function(a){return this.getShadow().getLineStart(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineEnd=function(a){return this.getShadow().getLineEnd(a)}; +cvox.ChromeVoxEditableTextArea.prototype.getShadow=function(){var a=cvox.ChromeVoxEditableTextArea.shadow_;a||(a=cvox.ChromeVoxEditableTextArea.shadow_=new cvox.EditableTextAreaShadow);this.shadowIsCurrent_||(a.update(this.node),this.shadowIsCurrent_=!0);return a}; +cvox.ChromeVoxEditableTextArea.prototype.moveCursorToNextLine=function(){var a=this.node,b=a.value.length;if(a.selectionEnd>=b)return!1;var c=this.getShadow(),d=c.getLineIndex(a.selectionEnd),e=c.getLineStart(d),e=a.selectionEnd-e,f=0==b?0:c.getLineIndex(b-1),b=d>=f?b:Math.min(c.getLineStart(d+1)+e,c.getLineEnd(d+1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableTextArea.prototype.moveCursorToPreviousLine=function(){var a=this.node;if(0>=a.selectionStart)return!1;var b=this.getShadow(),c=b.getLineIndex(a.selectionStart),d=b.getLineStart(c),d=a.selectionStart-d,b=0>=c?0:Math.min(b.getLineStart(c-1)+d,b.getLineEnd(c-1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableContentEditable=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,"",0,0,!1,b);this.extractorIsCurrent_=!1;var c=this.getExtractor();this.value=c.getText();this.start=c.getStartIndex();this.end=c.getEndIndex();this.multiline=!0};goog.inherits(cvox.ChromeVoxEditableContentEditable,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableContentEditable.prototype.update=function(a){this.extractorIsCurrent_=!1;a=new cvox.TextChangeEvent(this.getExtractor().getText(),this.getExtractor().getStartIndex(),this.getExtractor().getEndIndex(),a);this.changed(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineIndex=function(a){return this.getExtractor().getLineIndex(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineStart=function(a){return this.getExtractor().getLineStart(a)}; +cvox.ChromeVoxEditableContentEditable.prototype.getLineEnd=function(a){return this.getExtractor().getLineEnd(a)};cvox.ChromeVoxEditableContentEditable.prototype.getExtractor=function(){var a=cvox.ChromeVoxEditableContentEditable.extractor_;a||(a=cvox.ChromeVoxEditableContentEditable.extractor_=new cvox.ContentEditableExtractor);this.extractorIsCurrent_||(a.update(this.node),this.extractorIsCurrent_=!0);return a}; +cvox.ChromeVoxEditableContentEditable.prototype.describeSelectionChanged=function(a){a.triggeredByUser&&(this.start==this.end&&a.start==a.end&&1!=Math.abs(this.start-a.start)&&this.isLastChar(a)?this.speak(cvox.ChromeVox.msgs.getMsg("text_box_blank"),!0):cvox.ChromeVoxEditableContentEditable.superClass_.describeSelectionChanged.call(this,a))}; +cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextCharacter=function(){window.getSelection().modify("move","forward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousCharacter=function(){window.getSelection().modify("move","backward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextParagraph=function(){window.getSelection().modify("move","forward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousParagraph=function(){window.getSelection().modify("move","backward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEventSuspender=function(){};cvox.ChromeVoxEventSuspender.suspendLevel_=0;cvox.ChromeVoxEventSuspender.enterSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_+=1};cvox.ChromeVoxEventSuspender.exitSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_-=1};cvox.ChromeVoxEventSuspender.areEventsSuspended=function(){return 0<cvox.ChromeVoxEventSuspender.suspendLevel_}; +cvox.ChromeVoxEventSuspender.withSuspendedEvents=function(a){return function(){cvox.ChromeVoxEventSuspender.enterSuspendEvents();var b=a.apply(this,arguments);cvox.ChromeVoxEventSuspender.exitSuspendEvents();return b}};cvox.ChromeVoxEventSuspender.makeSuspendableHandler=function(a,b){return function(){return cvox.ChromeVoxEventSuspender.areEventsSuspended()?b:a()}};cvox.Focuser={}; +cvox.Focuser.setFocus=function(a,b){var c=window.getSelection(),d;0<c.rangeCount&&(d=c.getRangeAt(0));document.activeElement&&!cvox.DomUtil.isDescendantOfNode(a,document.activeElement)&&document.activeElement.blur();a&&a.constructor==HTMLVideoElement&&(cvox.DomUtil.isFocusable(a)||a.setAttribute("tabIndex",0));if(b&&!cvox.DomUtil.isFocusable(a)){var e=cvox.DomUtil.findFocusableDescendant(a);e&&(a=e)}else for(;a&&!cvox.DomUtil.isFocusable(a);)a=a.parentNode;cvox.DomUtil.isFocusable(a)?"IFRAME"!=a.tagName&& +(cvox.ChromeVoxEventSuspender.areEventsSuspended()?(cvox.Focuser.shouldEnterSuspendEvents_(a)&&cvox.ChromeVoxEventSuspender.enterSuspendEvents(),window.setTimeout(function(){a.focus();cvox.ChromeVoxEventSuspender.exitSuspendEvents()},0)):window.setTimeout(function(){a.focus()},0)):document.activeElement&&"BODY"!=document.activeElement.tagName&&document.activeElement.blur();cvox.DomUtil.isInputTypeText(a)?a.select():d&&(c.removeAllRanges(),c.addRange(d))}; +cvox.Focuser.shouldEnterSuspendEvents_=function(a){if(a.constructor&&a.constructor==HTMLVideoElement)return!1;if(a.hasAttribute)switch(a.getAttribute("type")){case "time":case "date":case "week":case "month":return!1}return!0};cvox.ChromeVoxHTMLMediaWidget=function(a){var b=this;this.mediaElem_=a;this.keyListener_=function(a){b.eventHandler_(a)};this.blurListener_=function(){b.shutdown()};this.mediaElem_.addEventListener("keydown",this.keyListener_,!1);this.mediaElem_.addEventListener("keyup",this.keyListener_,!1);this.mediaElem_.addEventListener("blur",this.blurListener_,!1)}; +cvox.ChromeVoxHTMLMediaWidget.prototype.shutdown=function(){this.mediaElem_.removeEventListener("blur",this.blurListener_,!1);this.mediaElem_.removeEventListener("keydown",this.keyListener_,!1);this.mediaElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLMediaWidget.prototype.jumpToTime_=function(a){0>a&&(a=0);a>this.mediaElem_.duration&&(a=this.mediaElem_.duration);this.mediaElem_.currentTime=a}; +cvox.ChromeVoxHTMLMediaWidget.prototype.setVolume_=function(a){0>a&&(a=0);1<a&&(a=1);this.mediaElem_.volume=a}; +cvox.ChromeVoxHTMLMediaWidget.prototype.eventHandler_=function(a){"keydown"==a.type&&(13==a.keyCode||32==a.keyCode?this.mediaElem_.paused?this.mediaElem_.play():this.mediaElem_.pause():39==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime+this.mediaElem_.duration/10):37==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime-this.mediaElem_.duration/10):38==a.keyCode?this.setVolume_(this.mediaElem_.volume+0.1):40==a.keyCode&&this.setVolume_(this.mediaElem_.volume-0.1))};cvox.ChromeVoxHTMLTimeWidget=function(a,b){var c=this;this.timeElem_=a;this.timeTts_=b;this.pMinutes_=this.pHours_=-1;this.pMilliseconds_=this.pSeconds_=0;this.pAmpm_="";this.pos_=0;this.maxPos_=2;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};if(this.timeElem_.hasAttribute("step")){var d=this.timeElem_.getAttribute("step");0<d&&(this.maxPos_=1<=d?3:4)}0==this.timeElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent"); +e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e);e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e)}this.timeElem_.addEventListener("keydown",this.keyListener_,!1);this.timeElem_.addEventListener("keyup",this.keyListener_,!1);this.timeElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)}; +cvox.ChromeVoxHTMLTimeWidget.prototype.shutdown=function(){this.timeElem_.removeEventListener("blur",this.blurListener_,!1);this.timeElem_.removeEventListener("keydown",this.keyListener_,!1);this.timeElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLTimeWidget.prototype.forceInitTime_=function(){this.timeElem_.setAttribute("value","12:00")}; +cvox.ChromeVoxHTMLTimeWidget.prototype.handlePosChange_=function(){0>this.pos_&&(this.pos_=0);this.pos_>this.maxPos_&&(this.pos_=this.maxPos_);if(this.pos_==this.maxPos_)this.pAmpm_="";else switch(this.pos_){case 0:this.pHours_=-1;break;case 1:this.pMinutes_=-1;break;case 2:this.pSeconds_=-1;break;case 3:this.pMilliseconds_=-1}}; +cvox.ChromeVoxHTMLTimeWidget.prototype.update_=function(a){var b=this.timeElem_.value.split(":");if(1>b.length)this.forceInitTime_();else{var c=b[0],d=-1,e=0,f=0,g=cvox.ChromeVox.msgs.getMsg("timewidget_am");1<b.length&&(d=b[1]);2<b.length&&(b=b[2].split("."),e=b[0],1<b.length&&(f=b[1]));12<c&&(c-=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));12==c&&(g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));0==c&&(c=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_am"));b="";a&&(b=cvox.DomUtil.getName(this.timeElem_, +!0,!0)+"\n");c!=this.pHours_&&(b=b+c+" "+cvox.ChromeVox.msgs.getMsg("timewidget_hours")+"\n",this.pHours_=c);d!=this.pMinutes_&&(b=b+d+" "+cvox.ChromeVox.msgs.getMsg("timewidget_minutes")+"\n",this.pMinutes_=d);e!=this.pSeconds_&&(b=b+e+" "+cvox.ChromeVox.msgs.getMsg("timewidget_seconds")+"\n",this.pSeconds_=e);f!=this.pMilliseconds_&&(b=b+f+" "+cvox.ChromeVox.msgs.getMsg("timewidget_milliseconds")+"\n",this.pMilliseconds_=f);g!=this.pAmpm_&&(b+=g,this.pAmpm_=g);0<b.length&&this.timeTts_.speak(b, +0,null)}};cvox.ChromeVoxHTMLTimeWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.ActiveIndicator=function(){this.lastMoveTime_=0;this.zoom_=1;this.updateIndicatorTimeoutId_=this.lastClientRects_=this.lastSyncTarget_=this.container_=null;this.blurred_=!1;window.addEventListener("focus",goog.bind(function(){this.blurred_=!1;this.container_&&this.container_.classList.remove("cvox_indicator_window_not_focused")},this),!1);window.addEventListener("blur",goog.bind(function(){this.blurred_=!0;this.container_&&this.container_.classList.add("cvox_indicator_window_not_focused")},this), +!1)};cvox.ActiveIndicator.STYLE=".cvox_indicator_container { position: absolute !important; left: 0 !important; top: 0 !important; z-index: 2147483647 !important; pointer-events: none !important;}.cvox_indicator_window_not_focused { visibility: hidden !important;}.cvox_indicator_pulsing { -webkit-animation: cvox_indicator_pulsing_animation 0s 2 alternate !important; -webkit-animation-timing-function: ease-in-out !important;}.cvox_indicator_region { opacity: 0 !important; -webkit-transition: opacity 1s !important;}.cvox_indicator_visible { opacity: 1 !important;}.cvox_indicator_container .cvox_indicator_region * { position:absolute !important; box-shadow: 0 0 4px 4px #f7983a !important; border-radius: 6px !important; -webkit-transition: none !important;}.cvox_indicator_animate_normal .cvox_indicator_region * { -webkit-transition: all 0.3s !important;}.cvox_indicator_animate_quick .cvox_indicator_region * { -webkit-transition: all 0.1s !important;}.cvox_indicator_top { border-radius: inherit inherit 0 0 !important;}.cvox_indicator_middle_nw { border-radius: inherit 0 0 0 !important;}.cvox_indicator_middle_ne { border-radius: 0 inherit 0 0 !important;}.cvox_indicator_middle_se { border-radius: 0 0 inherit 0 !important;}.cvox_indicator_middle_sw { border-radius: 0 0 0 inherit !important;}.cvox_indicator_bottom { border-radius: 0 0 inherit inherit !important;}@-webkit-keyframes cvox_indicator_pulsing_animation { 0% {opacity: 1.0} 50% {opacity: 0.5} 100% {opacity: 1.0}}"; +cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS=100;cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS=300;cvox.ActiveIndicator.MARGIN=8;cvox.ActiveIndicator.prototype.removeFromDom=function(){this.container_&&this.container_.parentElement&&this.container_.parentElement.removeChild(this.container_)};cvox.ActiveIndicator.prototype.syncToNode=function(a){a&&(a==document.body?this.removeFromDom():this.syncToNodes([a]))}; +cvox.ActiveIndicator.prototype.syncToNodes=function(a){var b=this.clientRectsFromNodes_(a);this.moveIndicator_(b,cvox.ActiveIndicator.MARGIN);this.lastSyncTarget_=a;this.lastClientRects_=b;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)}; +cvox.ActiveIndicator.prototype.syncToRange=function(a){var b=cvox.ActiveIndicator.MARGIN;a.startContainer==a.endContainer&&a.startOffset+1==a.endOffset&&(b=1);var c=a.getClientRects();this.moveIndicator_(c,b);this.lastSyncTarget_=a;this.lastClientRects_=c;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)}; +cvox.ActiveIndicator.prototype.syncToCursorSelection=function(a){if(a.start.node==a.end.node&&a.start.index==a.end.index)this.syncToNode(a.start.node);else{var b=document.createRange();b.setStart(a.start.node,a.start.index);b.setEnd(a.end.node,a.end.index);this.syncToRange(b)}};cvox.ActiveIndicator.prototype.updateIndicatorIfChanged=function(){this.updateIndicatorTimeoutId_||(this.updateIndicatorTimeoutId_=window.setTimeout(goog.bind(function(){this.handleUpdateIndicatorIfChanged_()},this),100))}; +cvox.ActiveIndicator.prototype.handleUpdateIndicatorIfChanged_=function(){this.updateIndicatorTimeoutId_=null;if(this.lastSyncTarget_){var a;if((a=this.lastSyncTarget_ instanceof Array?this.clientRectsFromNodes_(this.lastSyncTarget_):this.lastSyncTarget_.getClientRects())&&0!=a.length){var b=!1;if(a.length!=this.lastClientRects_.length)b=!0;else for(var c=0;c<this.lastClientRects_.length;++c){var d=this.lastClientRects_[c],e=a[c];if(d.top!=e.top||d.right!=e.right||d.bottom!=e.bottom||d.left!=d.left){b= +!0;break}}b&&(this.moveIndicator_(a,cvox.ActiveIndicator.MARGIN),this.lastClientRects_=a)}else this.syncToNode(document.body)}};cvox.ActiveIndicator.prototype.clientRectsFromNodes_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(d.constructor==Text){var e=document.createRange();e.selectNode(d);e=e.getClientRects()}else{for(;!d.getClientRects;)d=d.parentElement;e=d.getClientRects()}for(d=0;d<e.length;++d)b.push(e[d])}return b}; +cvox.ActiveIndicator.prototype.moveIndicator_=function(a,b){if(document.body.isContentEditable)this.removeFromDom();else{var c=a.length;if(0!=c){var d,e;"static"!=window.getComputedStyle(document.body,null).position?(d=-document.body.getBoundingClientRect().left,e=-document.body.getBoundingClientRect().top):"static"!=window.getComputedStyle(document.documentElement,null).position?(d=-document.documentElement.getBoundingClientRect().left,e=-document.documentElement.getBoundingClientRect().top):(d= +window.pageXOffset,e=window.pageYOffset);for(var f=[],g=0;g<c;g++)f.push(this.inset_(a[g],d,e,-d,-e));if(!this.container_||!this.container_.parentElement){g=document.getElementsByClassName("cvox_indicator_container");for(c=0;d=g[c];c++)d.parentNode&&d.parentNode.removeChild(d);this.container_=this.createDiv_(document.body,"cvox_indicator_container",document.body.firstChild)}g=document.createElement("style");g.id="cvox_indicator_style";g.innerHTML=cvox.ActiveIndicator.STYLE;cvox.DomUtil.addNodeToHead(g, +g.id);g=(new Date).getTime();c=g-this.lastMoveTime_;this.container_.className="cvox_indicator_container";document.hasFocus()&&!this.blurred_||this.container_.classList.add("cvox_indicator_window_not_focused");c>cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS?this.container_.classList.add("cvox_indicator_animate_normal"):c>cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS&&this.container_.classList.add("cvox_indicator_animate_quick");this.lastMoveTime_=g;this.computeZoomLevel_();for(window.setTimeout(goog.bind(function(){this.container_.classList.add("cvox_indicator_pulsing")}, +this),0);1<this.container_.childElementCount;)this.container_.removeChild(this.container_.lastElementChild);d=[[f[0]]];e=[f[0]];for(g=1;g<f.length;g++){for(var h=!1,c=0;c<d.length&&!h;c++)this.intersects_(f[g],e[c])&&(d[c].push(f[g]),e[c]=this.union_(e[c],f[g]),h=!0);h||(d.push([f[g]]),e.push(f[g]))}do for(f=!1,g=0;g<d.length-1&&!f;g++)for(c=g+1;c<d.length&&!f;c++)this.intersects_(e[g],e[c])&&(d[g]=d[g].concat(d[c]),e[g]=this.union_(e[g],e[c]),d.splice(c,1),e.splice(c,1),f=!0);while(f);for(g=0;g< +d.length;g++)d[g].sort(function(a,b){return a.top!=b.top?a.top-b.top:a.left-b.left});for(g=0;g<d.length;g++)f=null,0==g&&1==this.container_.childElementCount&&6==this.container_.children[0].childElementCount&&(f=this.container_.children[0]),this.updateIndicatorRegion_(d[g],f,b)}}}; +cvox.ActiveIndicator.prototype.updateIndicatorRegion_=function(a,b,c){if(b)var d=b.children[0],e=b.children[1],f=b.children[2],g=b.children[3],h=b.children[4],k=b.children[5];else b=this.createDiv_(this.container_,"cvox_indicator_region"),window.setTimeout(function(){b.classList.add("cvox_indicator_visible")},0),d=this.createDiv_(b,"cvox_indicator_top"),e=this.createDiv_(b,"cvox_indicator_middle_nw"),f=this.createDiv_(b,"cvox_indicator_middle_ne"),g=this.createDiv_(b,"cvox_indicator_middle_sw"),h= +this.createDiv_(b,"cvox_indicator_middle_se"),k=this.createDiv_(b,"cvox_indicator_bottom");for(var l=a[0],m=Math.floor((l.top+l.bottom)/2),p=1,q=a.length;p<q&&a[p].top<m;)l=this.union_(l,a[p]),m=Math.floor((l.top+l.bottom)/2),p++;if(p==q)l=this.inset_(l,-c,-c,-c,-c),a=Math.floor((3*l.top+1*l.bottom)/4),c=Math.floor((2*l.top+2*l.bottom)/4),m=Math.floor((1*l.top+3*l.bottom)/4),this.setElementCoords_(d,l.left,l.top,l.right,a,!0,!0,!0,!1),this.setElementCoords_(e,l.left,a,l.left,c,!0,!0,!1,!1),this.setElementCoords_(g, +l.left,c,l.left,m,!0,!1,!1,!0),this.setElementCoords_(f,l.right,a,l.right,c,!1,!0,!0,!1),this.setElementCoords_(h,l.right,c,l.right,m,!1,!1,!0,!0),this.setElementCoords_(k,l.left,m,l.right,l.bottom,!0,!1,!0,!0);else{for(var m=a[q-1],n=Math.floor((m.top+m.bottom)/2),q=q-2;0<=q&&a[q].bottom>n;)m=this.union_(m,a[q]),n=Math.floor((m.top+m.bottom)/2),q--;l=this.inset_(l,-c,-c,-c,c);m=this.inset_(m,-c,c,-c,-c);if(p>q)n=this.union_(l,m),n.top=l.bottom,n.bottom=m.top,n.height=Math.floor((n.top+n.bottom)/ +2);else{n=a[p];for(p+=1;p<=q;)n=this.union_(n,a[p]),p++;n=this.inset_(n,-c,-c,-c,-c);n.left=Math.min(n.left,l.left,m.left);n.right=Math.max(n.right,l.right,m.right);n.width=n.right-n.left}l.right>n.right-40&&(l.right=n.right,l.width=l.right-l.left);l.left<n.left+40&&(l.left=n.left,l.width=l.right-l.left);m.right>n.right-40&&(m.right=n.right,m.width=m.right-m.left);m.left<n.left+40&&(m.left=n.left,m.width=m.right-m.left);a=Math.floor((n.top+n.bottom)/2);this.setElementRect_(d,l,!0,!0,!0,!1);this.setElementRect_(k, +m,!0,!1,!0,!0);this.setElementCoords_(e,n.left,l.bottom,l.left,a,!0,!0,!1,!1);this.setElementCoords_(f,l.right,l.bottom,n.right,a,!1,!0,!0,!1);this.setElementCoords_(g,n.left,a,m.left,m.top,!0,!1,!1,!0);this.setElementCoords_(h,m.right,a,n.right,m.top,!1,!1,!0,!0)}};cvox.ActiveIndicator.prototype.intersects_=function(a,b){var c=2*cvox.ActiveIndicator.MARGIN;return b.left<=a.right+c&&b.right>=a.left-c&&b.top<=a.bottom+c&&b.bottom>=a.top-c}; +cvox.ActiveIndicator.prototype.union_=function(a,b){var c={left:Math.min(a.left,b.left),top:Math.min(a.top,b.top),right:Math.max(a.right,b.right),bottom:Math.max(a.bottom,b.bottom)};c.width=c.right-c.left;c.height=c.bottom-c.top;return c};cvox.ActiveIndicator.prototype.inset_=function(a,b,c,d,e){a={left:a.left+b,top:a.top+c,right:a.right-d,bottom:a.bottom-e};a.width=a.right-a.left;a.height=a.bottom-a.top;return a}; +cvox.ActiveIndicator.prototype.createDiv_=function(a,b,c){var d=document.createElement("div");d.className=b;c?a.insertBefore(d,c):a.appendChild(d);return d};cvox.ActiveIndicator.prototype.fixZoom_=function(a){return(Math.round(a*this.zoom_)+0.1)/this.zoom_};cvox.ActiveIndicator.prototype.fixZoomSum_=function(a,b){var c=Math.round(a*this.zoom_),d=Math.round((a+b)*this.zoom_),c=d-c;return(c+0.1)/this.zoom_}; +cvox.ActiveIndicator.prototype.setElementCoords_=function(a,b,c,d,e,f,g,h,k){var l=d-b,m=e-c;d-=b;e-=c;var p=f?-20:0,q=g?-20:0,n=h?20:0,s=k?20:0;0==d&&(h?(b-=5,d+=5):f&&(d+=10),s=q=10,c-=10,e+=20);k||(e+=5);g||(c-=5,e+=5,q+=5,s+=5);n=0==n&&0==l?1:this.fixZoomSum_(b,n+l);s=this.fixZoomSum_(c,s+m);a.style.left=this.fixZoom_(b)+"px";a.style.top=this.fixZoom_(c)+"px";a.style.width=this.fixZoomSum_(b,d)+"px";a.style.height=this.fixZoomSum_(c,e)+"px";a.style.clip="rect("+[q,n,s,p].join("px ")+"px)"}; +cvox.ActiveIndicator.prototype.setElementRect_=function(a,b,c,d,e,f){this.setElementCoords_(a,b.left,b.top,b.right,b.bottom,c,d,e,f)}; +cvox.ActiveIndicator.prototype.computeZoomLevel_=function(){if(window.innerHeight!==this.innerHeight_||window.innerWidth!==this.innerWidth_){this.innerHeight_=window.innerHeight;this.innerWidth_=window.innerWidth;var a=document.createElement("div");a.innerHTML="X";a.setAttribute("style","font: 5000px/1em sans-serif !important; -webkit-text-size-adjust:none !important; visibility:hidden !important; left: -10000px !important; top: -10000px !important; position:absolute !important;");document.body.appendChild(a); +var b=5E3/a.clientHeight,b=Math.round(500*b)/500;0.1<b&&10>b&&(this.zoom_=b);a.parentNode.removeChild(a)}};cvox.NodeBreadcrumb=function(){this.cvTagCounter_=0};goog.addSingletonGetter(cvox.NodeBreadcrumb);cvox.NodeBreadcrumb.TOUCHED_TAG="chromevoxtag";cvox.NodeBreadcrumb.NEEDED_TAG_="chromevoxneeded"; +cvox.NodeBreadcrumb.prototype.tagCurrentNode=function(){for(var a,b=cvox.ChromeVox.navigationManager.getCurrentNode();b&&!b.hasAttribute;)b=b.parentNode;b?b.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a=b.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):(a=this.cvTagCounter_,b.setAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG,a),this.cvTagCounter_++):a=-1;return a}; +cvox.NodeBreadcrumb.prototype.smartStart_=function(a){for(var b=0;b<a.children.length;++b){var c=a.children[b];this.smartStart_(c);c.getAttribute&&!goog.isNull(c.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))&&this.setNeeded_(c)}};cvox.NodeBreadcrumb.prototype.setNeeded_=function(a){a&&a.getAttribute&&goog.isNull(a.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&(a.setAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_,!0),"body"!==a.nodeName&&this.setNeeded_(a.parentElement))}; +cvox.NodeBreadcrumb.prototype.smartClone_=function(a){var b={};b[cvox.NodeBreadcrumb.TOUCHED_TAG]=!0;b[cvox.NodeBreadcrumb.NEEDED_TAG_]=!0;if(a.getAttribute&&a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))return cvox.DomUtil.deepClone(a,b);for(var b=cvox.DomUtil.shallowChildlessClone(a,b),c=0;c<a.childNodes.length;++c){var d=a.childNodes[c];d.getAttribute&&!goog.isNull(d.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&b.appendChild(this.smartClone_(d))}return b}; +cvox.NodeBreadcrumb.prototype.dumpWalkedDom=function(){this.smartStart_(document.body);return this.smartClone_(document.body)};cvox.NodeBreadcrumb.getCurrentNodeTag=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a&&!a.hasAttribute;)a=a.parentNode;return a&&a.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):-1};cvox.HistoryEvent=function(a){this.spoken_=[];a?this.userCommand_=a.cmd:this.startTime_=(new Date).getTime()};cvox.HistoryEvent.prototype.withUserCommand=function(a){if(this.userCommand_)return window.console.error("Two user commands on "+a,this),this;this.userCommand_=a;return this};cvox.HistoryEvent.prototype.speak=function(a){this.spoken_.push(a);return this}; +cvox.HistoryEvent.prototype.done=function(){this.endTime_=(new Date).getTime();cvox.NodeBreadcrumb.getInstance().tagCurrentNode();window.console.log("User command done.",this);return this};cvox.HistoryEvent.prototype.outputObject=function(){return{start:this.startTime_,end:this.endTime_,cmd:this.userCommand_,spoken:this.spoken_}}; +cvox.HistoryEvent.prototype.outputHTML=function(){var a=document.createElement("div");a.className="cvoxHistoryEvent";var b=this.endTime_-this.startTime_;a.innerHTML=this.userCommand_+" ("+b+"ms)";for(b=0;b<this.spoken_.length;b++){var c=document.createElement("div");c.className="cvoxHistoryEventSpoken";c.innerHTML=this.spoken_[b].substr(0,20);20<this.spoken_[b].length&&(c.innerHTML+="...");a.appendChild(c)}return a}; +cvox.HistoryEvent.prototype.outputJs=function(){var a="this.waitForCalm(this.userCommand, '"+this.userCommand_+"')";return a=0<this.spoken_.length?a+("\n .waitForCalm(this.assertSpoken, '"+cvox.DomUtil.collapseWhitespace(this.spoken_.join(" "))+"');\n"):a+";\n"};cvox.History=function(){this.recording_=!1;this.events_=[];this.styleDiv_=this.listDiv_=this.mainDiv_=this.currentEvent_=null;this.nodeBreadcrumb_=cvox.NodeBreadcrumb.getInstance()};goog.addSingletonGetter(cvox.History); +cvox.History.prototype.addListDiv_=function(){this.mainDiv_=document.createElement("div");this.mainDiv_.style.position="fixed";this.mainDiv_.style.bottom="0";this.mainDiv_.style.right="0";this.mainDiv_.style.zIndex="999";this.listDiv_=document.createElement("div");this.listDiv_.id="cvoxEventList";this.mainDiv_.appendChild(this.listDiv_);var a=document.createElement("div"),b=document.createElement("button");b.onclick=cvox.History.sendToFeedback;b.innerHTML="Create bug";a.appendChild(b);this.mainDiv_.appendChild(a); +a=document.createElement("div");b=document.createElement("button");b.onclick=cvox.History.dumpJs;b.innerHTML="Dump test case";a.appendChild(b);this.mainDiv_.appendChild(a);document.body.appendChild(this.mainDiv_);this.styleDiv_=document.createElement("style");this.styleDiv_.innerHTML=".cvoxHistoryEventSpoken { color: gray; font-size: 75% }";document.body.appendChild(this.styleDiv_)}; +cvox.History.prototype.removeListDiv_=function(){document.body.removeChild(this.mainDiv_);document.body.removeChild(this.styleDiv_);this.styleDiv_=this.listDiv_=this.mainDiv_=null}; +cvox.History.prototype.addBigTextBox_=function(){function a(a,b){var c=document.createElement("button");c.onclick=b;c.innerHTML=a;d.appendChild(c)}var b=document.createElement("div");b.style.position="fixed";b.style.top="0";b.style.left="0";b.style.zIndex="999";var c=document.createElement("textarea");c.style.width="500px";c.style.height="500px";c.innerHTML=this.dumpJsOutput_();b.appendChild(c);var d=document.createElement("div");b.appendChild(d);a("Close dialog",function(){document.body.removeChild(b)}); +a("Remove fluff",goog.bind(function(){c.innerHTML=this.dumpJsOutput_(["stopSpeech","toggleKeyPrefix"])},this));document.body.appendChild(b)};cvox.History.prototype.startRecording=function(){this.recording_=!0;this.addListDiv_()};cvox.History.prototype.stopRecording=function(){this.recording_=!1;this.removeListDiv_();this.events_=[];this.currentEvent_=null}; +cvox.History.prototype.enterUserCommand=function(a){this.recording_&&(this.currentEvent_&&window.console.error("User command "+a+" overlaps current event",this.currentEvent_),this.currentEvent_=(new cvox.HistoryEvent).withUserCommand(a),this.events_.push(this.currentEvent_))};cvox.History.prototype.exitUserCommand=function(){this.recording_&&this.currentEvent_&&(this.currentEvent_.done(),this.listDiv_.appendChild(this.currentEvent_.outputHTML()),this.currentEvent_=null)}; +cvox.History.prototype.speak=function(a){if(!this.recording_)return this;if(!this.currentEvent_)return window.console.error("Speak called outside of a user command."),this;this.currentEvent_.speak(a);return this};cvox.History.prototype.isSpeaking=function(){return!1};cvox.History.prototype.stop=function(){};cvox.History.prototype.increaseOrDecreaseProperty=function(){};cvox.History.prototype.getDefaultProperty=function(){}; +cvox.History.dumpJs=function(){var a=cvox.History.getInstance();a.addBigTextBox_();window.console.log(a.dumpJsOutput_())};cvox.History.prototype.dumpJsOutput_=function(a){var b={};a&&a.forEach(function(a){b[a]=1});return["/*DOC: += ",this.nodeBreadcrumb_.dumpWalkedDom().innerHTML,"*/\n"].concat(this.events_.filter(function(a){return!(a.userCommand_ in b)}).map(function(a){return a.outputJs()})).join("")}; +cvox.History.sendToFeedback=function(){var a=cvox.History.getInstance(),a=a.events_.map(function(a){return a.outputObject()}),b=document.createElement("script");b.type="text/javascript";b.src="https://www.gstatic.com/feedback/api.js";var c=document.createElement("script");c.type="text/javascript";c.innerHTML="userfeedback.api.startFeedback({ productId: '76092' }, { cvoxHistory: "+cvox.ChromeVoxJSON.stringify(cvox.ChromeVoxJSON.stringify(a))+" });";b.onload=function(){document.body.appendChild(c)}; +document.body.appendChild(b)};cvox.KeySequence=function(a,b,c,d){this.doubleTap=!!d;this.cvoxModifier=void 0==b?this.isCVoxModifierActive(a):b;this.stickyMode=!!a.stickyMode;this.prefixKey=!!a.keyPrefix;this.skipStripping=!!c;if(this.stickyMode&&this.prefixKey)throw"Prefix key and sticky mode cannot both be enabled: "+a;a=this.resolveChromeOSSpecialKeys_(a);this.keys={ctrlKey:[],searchKeyHeld:[],altKey:[],altGraphKey:[],shiftKey:[],metaKey:[],keyCode:[]};this.extractKey_(a)}; +cvox.KeySequence.KEY_PRESS_CODE={39:222,44:188,45:189,46:190,47:191,59:186,91:219,92:220,93:221};cvox.KeySequence.doubleTapCache=[];cvox.KeySequence.prototype.addKeyEvent=function(a){if(1<this.keys.keyCode.length)return!1;this.extractKey_(a);return!0};cvox.KeySequence.prototype.equals=function(a){if(!this.checkKeyEquality_(a)||this.doubleTap!=a.doubleTap)return!1;if(this.cvoxModifier===a.cvoxModifier)return!0;a=this.cvoxModifier?a:this;return a.stickyMode||a.prefixKey}; +cvox.KeySequence.prototype.extractKey_=function(a){for(var b in this.keys)if("keyCode"==b){var c;"keypress"==a.type&&97<=a[b]&&122>=a[b]?c=a[b]-32:"keypress"==a.type&&(c=cvox.KeySequence.KEY_PRESS_CODE[a[b]]);this.keys[b].push(c||a[b])}else this.isKeyModifierActive(a,b)?this.keys[b].push(!0):this.keys[b].push(!1);this.cvoxModifier&&this.rationalizeKeys_()}; +cvox.KeySequence.prototype.rationalizeKeys_=function(){if(!this.skipStripping){var a=cvox.ChromeVox.modKeyStr.split(/\+/g),b=this.keys.keyCode.length-1;-1!=a.indexOf("Ctrl")&&(this.keys.ctrlKey[b]=!1);-1!=a.indexOf("Alt")&&(this.keys.altKey[b]=!1);-1!=a.indexOf("Shift")&&(this.keys.shiftKey[b]=!1);var c=this.getMetaKeyName_();if(-1!=a.indexOf(c))if("Search"==c)this.keys.searchKeyHeld[b]=!1;else if("Cmd"==c||"Win"==c)this.keys.metaKey[b]=!1}}; +cvox.KeySequence.prototype.getMetaKeyName_=function(){return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win"};cvox.KeySequence.prototype.checkKeyEquality_=function(a){for(var b in this.keys)for(var c=this.keys[b].length;c--;)if(this.keys[b][c]!==a.keys[b][c])return!1;return!0};cvox.KeySequence.prototype.length=function(){return this.keys.keyCode.length};cvox.KeySequence.prototype.isModifierKey=function(a){return 16==a||17==a||18==a||91==a||93==a}; +cvox.KeySequence.prototype.isCVoxModifierActive=function(a){var b=cvox.ChromeVox.modKeyStr.split(/\+/g);this.isKeyModifierActive(a,"ctrlKey")&&(b=b.filter(function(a){return"Ctrl"!=a}));this.isKeyModifierActive(a,"altKey")&&(b=b.filter(function(a){return"Alt"!=a}));this.isKeyModifierActive(a,"shiftKey")&&(b=b.filter(function(a){return"Shift"!=a}));if(this.isKeyModifierActive(a,"metaKey")||this.isKeyModifierActive(a,"searchKeyHeld"))var c=this.getMetaKeyName_(),b=b.filter(function(a){return a!=c}); +return 0==b.length};cvox.KeySequence.prototype.isKeyModifierActive=function(a,b){switch(b){case "ctrlKey":return a.ctrlKey||17==a.keyCode;case "altKey":return a.altKey||18==a.keyCode;case "shiftKey":return a.shiftKey||16==a.keyCode;case "metaKey":return a.metaKey||!cvox.ChromeVox.isChromeOS&&91==a.keyCode;case "searchKeyHeld":return cvox.ChromeVox.isChromeOS&&91==a.keyCode||a.searchKeyHeld}return!1}; +cvox.KeySequence.deserialize=function(a){var b={};b.stickyMode=void 0==a.stickyMode?!1:a.stickyMode;b.prefixKey=void 0==a.prefixKey?!1:a.prefixKey;var c=1<a.keys.keyCode.length,d={},e;for(e in a.keys)b[e]=a.keys[e][0],c&&(d[e]=a.keys[e][1]);e=new cvox.KeySequence(b,a.cvoxModifier,!0,a.doubleTap);c&&(cvox.ChromeVox.sequenceSwitchKeyCodes.push(new cvox.KeySequence(b,a.cvoxModifier)),e.addKeyEvent(d));a.doubleTap&&cvox.KeySequence.doubleTapCache.push(e);return e}; +cvox.KeySequence.fromStr=function(a){var b={},c={},d;d=-1==a.indexOf(">")?!1:!0;var e=!1;b.stickyMode=!1;b.prefixKey=!1;a=a.split("+");for(var f=0;f<a.length;f++)for(var g=a[f].split(">"),h=0;h<g.length;h++){if("#"==g[h].charAt(0)){var k=parseInt(g[h].substr(1),10);0<h?c.keyCode=k:b.keyCode=k}k=g[h];1==g[h].length?0<h?c.keyCode=g[h].charCodeAt(0):b.keyCode=g[h].charCodeAt(0):(0<h?cvox.KeySequence.setModifiersOnEvent_(k,c):cvox.KeySequence.setModifiersOnEvent_(k,b),"Cvox"==k&&(e=!0))}b=new cvox.KeySequence(b, +e);d&&b.addKeyEvent(c);return b};cvox.KeySequence.setModifiersOnEvent_=function(a,b){"Ctrl"==a?(b.ctrlKey=!0,b.keyCode=17):"Alt"==a?(b.altKey=!0,b.keyCode=18):"Shift"==a?(b.shiftKey=!0,b.keyCode=16):"Search"==a?(b.searchKeyHeld=!0,b.keyCode=91):"Cmd"==a?(b.metaKey=!0,b.keyCode=91):"Win"==a?(b.metaKey=!0,b.keyCode=91):"Insert"==a&&(b.keyCode=45)}; +cvox.KeySequence.prototype.resolveChromeOSSpecialKeys_=function(a){if(!this.cvoxModifier||this.stickyMode||this.prefixKey||!cvox.ChromeVox.isChromeOS)return a;var b={},c;for(c in a)b[c]=a[c];switch(b.keyCode){case 33:b.keyCode=38;break;case 34:b.keyCode=40;break;case 35:b.keyCode=39;break;case 36:b.keyCode=37;break;case 45:b.keyCode=190;break;case 46:b.keyCode=8;break;case 112:b.keyCode=49;break;case 113:b.keyCode=50;break;case 114:b.keyCode=51;break;case 115:b.keyCode=52;break;case 116:b.keyCode= +53;break;case 117:b.keyCode=54;break;case 118:b.keyCode=55;break;case 119:b.keyCode=56;break;case 120:b.keyCode=57;break;case 121:b.keyCode=48;break;case 122:b.keyCode=189;break;case 123:b.keyCode=187}return b};cvox.KeyUtil=function(){};cvox.KeyUtil.modeKeyPressTime=0;cvox.KeyUtil.sequencing=!1;cvox.KeyUtil.prevKeySequence=null;cvox.KeyUtil.stickyKeySequence=null;cvox.KeyUtil.maxSeqLength=2; +cvox.KeyUtil.keyEventToKeySequence=function(a){var b=cvox.KeyUtil;b.prevKeySequence&&b.maxSeqLength==b.prevKeySequence.length()&&(b.sequencing=!1,b.prevKeySequence=null);var c=b.sequencing||a.keyPrefix||a.stickyMode,d=new cvox.KeySequence(a),e=d.cvoxModifier;if(c||e){if(!b.sequencing&&b.isSequenceSwitchKeyCode(d))return b.sequencing=!0,b.prevKeySequence=d;if(b.sequencing){if(b.prevKeySequence.addKeyEvent(a))return d=b.prevKeySequence,b.prevKeySequence=null,b.sequencing=!1,d;throw"Think sequencing is enabled, yet util.prevKeySequence alreadyhas two key codes"+ +b.prevKeySequence;}}else b.sequencing=!1;c=(new Date).getTime();if(cvox.KeyUtil.isDoubleTapKey(d)&&b.prevKeySequence&&d.equals(b.prevKeySequence)&&(e=b.modeKeyPressTime,0<e&&300>c-e))return d=b.prevKeySequence,d.doubleTap=!0,b.prevKeySequence=null,b.sequencing=!1,cvox.ChromeVox.isChromeOS&&a.keyCode==cvox.KeyUtil.getStickyKeyCode()&&(cvox.ChromeVox.searchKeyHeld=!1),d;b.prevKeySequence=d;b.modeKeyPressTime=c;return d}; +cvox.KeyUtil.keyCodeToString=function(a){return 17==a?"Ctrl":18==a?"Alt":16==a?"Shift":91==a||93==a?cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win":45==a?"Insert":65<=a&&90>=a?String.fromCharCode(a):48<=a&&57>=a?String.fromCharCode(a):"#"+a};cvox.KeyUtil.modStringToKeyCode=function(a){switch(a){case "Ctrl":return 17;case "Alt":return 18;case "Shift":return 16;case "Cmd":case "Win":return 91}return-1}; +cvox.KeyUtil.cvoxModKeyCodes=function(){var a=cvox.ChromeVox.modKeyStr.split(/\+/g);return a=a.map(function(a){return cvox.KeyUtil.modStringToKeyCode(a)})};cvox.KeyUtil.isSequenceSwitchKeyCode=function(a){for(var b=0;b<cvox.ChromeVox.sequenceSwitchKeyCodes.length;b++){var c=cvox.ChromeVox.sequenceSwitchKeyCodes[b];if(c.equals(a))return!0}return!1}; +cvox.KeyUtil.getReadableNameForKeyCode=function(a){if(0==a)return"Power button";if(17==a)return"Control";if(18==a)return"Alt";if(16==a)return"Shift";if(9==a)return"Tab";if(91==a||93==a)return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win";if(8==a)return"Backspace";if(32==a)return"Space";if(35==a)return"end";if(36==a)return"home";if(37==a)return"Left arrow";if(38==a)return"Up arrow";if(39==a)return"Right arrow";if(40==a)return"Down arrow";if(45==a)return"Insert";if(13==a)return"Enter"; +if(27==a)return"Escape";if(112==a)return cvox.ChromeVox.isChromeOS?"Back":"F1";if(113==a)return cvox.ChromeVox.isChromeOS?"Forward":"F2";if(114==a)return cvox.ChromeVox.isChromeOS?"Refresh":"F3";if(115==a)return cvox.ChromeVox.isChromeOS?"Toggle full screen":"F4";if(116==a)return"F5";if(117==a)return"F6";if(118==a)return"F7";if(119==a)return"F8";if(120==a)return"F9";if(121==a)return"F10";if(122==a)return"F11";if(123==a)return"F12";if(186==a)return"Semicolon";if(187==a)return"Equal sign";if(188==a)return"Comma"; +if(189==a)return"Dash";if(190==a)return"Period";if(191==a)return"Forward slash";if(192==a)return"Grave accent";if(219==a)return"Open bracket";if(220==a)return"Back slash";if(221==a)return"Close bracket";if(222==a)return"Single quote";if(115==a)return"Toggle full screen";if(48<=a&&90>=a)return String.fromCharCode(a)};cvox.KeyUtil.getStickyKeyCode=function(){var a=45;if(cvox.ChromeVox.isChromeOS||cvox.ChromeVox.isMac)a=91;return a}; +cvox.KeyUtil.getStickyKeySequence=function(){if(null==cvox.KeyUtil.stickyKeySequence){var a=cvox.KeyUtil.getStickyKeyCode(),a={keyCode:a,stickyMode:!0},b=new cvox.KeySequence(a);b.addKeyEvent(a);cvox.KeyUtil.stickyKeySequence=b}return cvox.KeyUtil.stickyKeySequence};cvox.KeyUtil.getReadableNameForStr=function(){return null}; +cvox.KeyUtil.keySequenceToString=function(a,b,c){for(var d="",e=a.length(),f=0;f<e;f++){""==d||c?""!=d&&(d+="+"):d+=">";var g="",h;for(h in a.keys)if(a.keys[h][f]){var k="";switch(h){case "ctrlKey":k="Ctrl";break;case "searchKeyHeld":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "altKey":k="Alt";break;case "altGraphKey":k="AltGraph";break;case "shiftKey":k="Shift";break;case "metaKey":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "keyCode":var l=a.keys[h][f];a.isModifierKey(l)|| +c||(g=b?g+cvox.KeyUtil.getReadableNameForKeyCode(l):g+cvox.KeyUtil.keyCodeToString(l))}-1==d.indexOf(k)&&(g+=k+"+")}d+=g;"+"==d[d.length-1]&&(d=d.slice(0,-1))}a.cvoxModifier||a.prefixKey?d=""!=d?"Cvox+"+d:"Cvox":a.stickyMode&&(">"==d[d.length-1]&&(d=d.slice(0,-1)),d=d+"+"+d);return d};cvox.KeyUtil.isDoubleTapKey=function(a){var b=!1,c=a.doubleTap;a.doubleTap=!0;for(var d=0,e;e=cvox.KeySequence.doubleTapCache[d];d++)if(e.equals(a)){b=!0;break}a.doubleTap=c;return b};cvox.KeyMap=function(a){this.bindings_=a;this.commandToKey_={};this.buildCommandToKey_()};cvox.KeyMap.KEYMAP_PATH="chromevox/background/keymaps/";cvox.KeyMap.AVAILABLE_MAP_INFO={keymap_classic:{file:"classic_keymap.json"},keymap_flat:{file:"flat_keymap.json"},keymap_experimental:{file:"experimental.json"}};cvox.KeyMap.DEFAULT_KEYMAP=0;cvox.KeyMap.prototype.length=function(){return this.bindings_.length};cvox.KeyMap.prototype.keys=function(){return this.bindings_.map(function(a){return a.sequence})}; +cvox.KeyMap.prototype.bindings=function(){return this.bindings_};cvox.KeyMap.prototype.toJSON=function(){return JSON.stringify({bindings:this.bindings_})};cvox.KeyMap.prototype.hasKey=function(a){for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return!0}return!1};cvox.KeyMap.prototype.commandForKey=function(a){if(null!=a)for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return c.command}return null}; +cvox.KeyMap.fromDefaults=function(){return cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO.keymap_classic.file)};cvox.KeyMap.fromJSON=function(a){try{var b=JSON.parse(a).bindings,b=b.filter(function(a){return void 0===a.sequence.platformFilter||cvox.PlatformUtil.matchesPlatform(a.sequence.platformFilter)})}catch(c){return null}if("object"!=typeof b)return null;for(a=0;a<b.length;a++){if(void 0==b[a].command||void 0==b[a].sequence)return null;b[a].sequence=cvox.KeySequence.deserialize(b[a].sequence)}return new cvox.KeyMap(b)}; +cvox.KeyMap.fromLocalStorage=function(){return localStorage.keyBindings?cvox.KeyMap.fromJSON(localStorage.keyBindings):null};cvox.KeyMap.fromPath=function(a){return cvox.KeyMap.fromJSON(cvox.KeyMap.readJSON_(a))};cvox.KeyMap.fromCurrentKeyMap=function(){var a=localStorage.currentKeyMap;return a&&cvox.KeyMap.AVAILABLE_MAP_INFO[a]?cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO[a].file):cvox.KeyMap.fromDefaults()}; +cvox.KeyMap.readJSON_=function(a){var b=chrome.extension.getURL(a);if(!b)throw"Invalid path: "+a;a=new XMLHttpRequest;a.open("GET",b,!1);a.send();return a.responseText};cvox.KeyMap.prototype.buildCommandToKey_=function(){for(var a=0;a<this.bindings_.length;a++){var b=this.bindings_[a];void 0==this.commandToKey_[b.command]&&(this.commandToKey_[b.command]=b.sequence)}};cvox.CommandStore={};cvox.CommandStore.categories=function(){var a={},b;for(b in cvox.CommandStore.CMD_WHITELIST){var c=cvox.CommandStore.CMD_WHITELIST[b];c.category&&(a[c.category]=!0)}b=[];for(var d in a)b.push(d);return b};cvox.CommandStore.messageForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).msgId};cvox.CommandStore.categoryForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).category}; +cvox.CommandStore.commandsForCategory=function(a){var b=[],c;for(c in cvox.CommandStore.CMD_WHITELIST){var d=cvox.CommandStore.CMD_WHITELIST[c];a==d.category&&b.push(c)}return b}; +cvox.CommandStore.CMD_WHITELIST={toggleStickyMode:{announce:!1,msgId:"toggle_sticky_mode",disallowOOBE:!0,category:"modifier_keys"},toggleKeyPrefix:{announce:!1,skipInput:!0,msgId:"prefix_key",disallowOOBE:!0,category:"modifier_keys"},stopSpeech:{announce:!1,disallowContinuation:!0,doDefault:!0,msgId:"stop_speech_key",category:"controlling_speech"},toggleChromeVox:{announce:!1,platformFilter:cvox.PlatformFilter.WML,msgId:"toggle_chromevox_active",category:"controlling_speech"},decreaseTtsRate:{announce:!1, +msgId:"decrease_tts_rate",category:"controlling_speech"},increaseTtsRate:{announce:!1,msgId:"increase_tts_rate",category:"controlling_speech"},decreaseTtsPitch:{announce:!1,msgId:"decrease_tts_pitch",category:"controlling_speech"},increaseTtsPitch:{announce:!1,msgId:"increase_tts_pitch",category:"controlling_speech"},decreaseTtsVolume:{announce:!1,msgId:"decrease_tts_volume",category:"controlling_speech"},increaseTtsVolume:{announce:!1,msgId:"increase_tts_volume",category:"controlling_speech"},cyclePunctuationEcho:{announce:!1, +msgId:"cycle_punctuation_echo",category:"controlling_speech"},cycleTypingEcho:{announce:!1,msgId:"cycle_typing_echo",category:"controlling_speech"},toggleEarcons:{announce:!0,msgId:"toggle_earcons",category:"controlling_speech"},handleTab:{allowEvents:!0,msgId:"handle_tab_next",disallowContinuation:!0,category:"navigation"},handleTabPrev:{allowEvents:!0,msgId:"handle_tab_prev",disallowContinuation:!0,category:"navigation"},forward:{forward:!0,announce:!0,msgId:"forward",category:"navigation"},backward:{backward:!0, +announce:!0,msgId:"backward",category:"navigation"},right:{forward:!0,announce:!0,msgId:"right",category:"navigation"},left:{backward:!0,announce:!0,msgId:"left",category:"navigation"},previousGranularity:{announce:!0,msgId:"previous_granularity",category:"navigation"},nextGranularity:{announce:!0,msgId:"next_granularity",category:"navigation"},previousCharacter:{backward:!0,announce:!0,msgId:"previous_character",skipInput:!0,category:"navigation"},nextCharacter:{forward:!0,announce:!0,msgId:"next_character", +skipInput:!0,category:"navigation"},previousWord:{backward:!0,announce:!0,msgId:"previous_word",skipInput:!0,category:"navigation"},nextWord:{forward:!0,announce:!0,msgId:"next_word",skipInput:!0,category:"navigation"},previousLine:{backward:!0,announce:!0,msgId:"previous_line",category:"navigation"},nextLine:{forward:!0,announce:!0,msgId:"next_line",category:"navigation"},previousSentence:{backward:!0,announce:!0,msgId:"previous_sentence",skipInput:!0,category:"navigation"},nextSentence:{forward:!0, +announce:!0,msgId:"next_sentence",skipInput:!0,category:"navigation"},previousObject:{backward:!0,announce:!0,msgId:"previous_object",skipInput:!0,category:"navigation"},nextObject:{forward:!0,announce:!0,msgId:"next_object",skipInput:!0,category:"navigation"},previousGroup:{backward:!0,announce:!0,msgId:"previous_group",skipInput:!0,category:"navigation"},nextGroup:{forward:!0,announce:!0,msgId:"next_group",skipInput:!0,category:"navigation"},jumpToTop:{forward:!0,announce:!0,msgId:"jump_to_top", +category:"navigation"},jumpToBottom:{backward:!0,announce:!0,msgId:"jump_to_bottom",category:"navigation"},moveToStartOfLine:{forward:!0,announce:!0},moveToEndOfLine:{backward:!0,announce:!0},readFromHere:{forward:!0,announce:!1,msgId:"read_from_here",category:"navigation"},performDefaultAction:{disallowContinuation:!0,msgId:"perform_default_action",doDefault:!0,skipInput:!0,category:"navigation"},forceClickOnCurrentItem:{announce:!0,disallowContinuation:!0,allowEvents:!0,msgId:"force_click_on_current_item", +category:"navigation"},forceDoubleClickOnCurrentItem:{announce:!0,allowEvents:!0,disallowContinuation:!0},readLinkURL:{announce:!1,msgId:"read_link_url",category:"information"},readCurrentTitle:{announce:!1,msgId:"read_current_title",category:"information"},readCurrentURL:{announce:!1,msgId:"read_current_url",category:"information"},fullyDescribe:{announce:!1,msgId:"fully_describe",category:"information"},speakTimeAndDate:{announce:!1,msgId:"speak_time_and_date",category:"information"},toggleSelection:{announce:!0, +msgId:"toggle_selection",category:"information"},toggleSearchWidget:{announce:!1,disallowContinuation:!0,msgId:"toggle_search_widget",category:"information"},toggleKeyboardHelp:{announce:!1,disallowContinuation:!0,msgId:"show_power_key",category:"help_commands"},help:{announce:!1,msgId:"help",disallowOOBE:!0,disallowContinuation:!0,category:"help_commands"},contextMenu:{announce:!1,disallowContinuation:!0},showOptionsPage:{announce:!1,disallowContinuation:!0,msgId:"show_options_page",disallowOOBE:!0, +category:"help_commands"},showKbExplorerPage:{announce:!1,disallowContinuation:!0,msgId:"show_kb_explorer_page",disallowOOBE:!0,category:"help_commands"},showFormsList:{announce:!1,disallowContinuation:!0,nodeList:"formField",msgId:"show_forms_list",category:"overview"},showHeadingsList:{announce:!1,nodeList:"heading",disallowContinuation:!0,msgId:"show_headings_list",category:"overview"},showLandmarksList:{announce:!1,nodeList:"landmark",disallowContinuation:!0,msgId:"show_landmarks_list",category:"overview"}, +showLinksList:{announce:!1,nodeList:"link",disallowContinuation:!0,msgId:"show_links_list",category:"overview"},showTablesList:{announce:!1,nodeList:"table",disallowContinuation:!0,msgId:"show_tables_list",category:"overview"},startHistoryRecording:{announce:!1},stopHistoryRecording:{announce:!1},enableConsoleTts:{announce:!1},autorunner:{announce:!1},nextArticle:{forward:!0,findNext:"article"},nextButton:{forward:!0,findNext:"button",msgId:"next_button",category:"jump_commands"},nextCheckbox:{forward:!0, +findNext:"checkbox",msgId:"next_checkbox",category:"jump_commands"},nextComboBox:{forward:!0,findNext:"combobox",msgId:"next_combo_box",category:"jump_commands"},nextControl:{forward:!0,findNext:"control"},nextEditText:{forward:!0,findNext:"editText",msgId:"next_edit_text",category:"jump_commands"},nextFormField:{forward:!0,findNext:"formField",msgId:"next_form_field",category:"jump_commands"},nextGraphic:{forward:!0,findNext:"graphic",msgId:"next_graphic",category:"jump_commands"},nextHeading:{forward:!0, +findNext:"heading",msgId:"next_heading",category:"jump_commands"},nextHeading1:{forward:!0,findNext:"heading1",msgId:"next_heading1",category:"jump_commands"},nextHeading2:{forward:!0,findNext:"heading2",msgId:"next_heading2",category:"jump_commands"},nextHeading3:{forward:!0,findNext:"heading3",msgId:"next_heading3",category:"jump_commands"},nextHeading4:{forward:!0,findNext:"heading4",msgId:"next_heading4",category:"jump_commands"},nextHeading5:{forward:!0,findNext:"heading5",msgId:"next_heading5", +category:"jump_commands"},nextHeading6:{forward:!0,findNext:"heading6",msgId:"next_heading6",category:"jump_commands"},nextLandmark:{forward:!0,findNext:"landmark",msgId:"next_landmark",category:"jump_commands"},nextLink:{forward:!0,findNext:"link",msgId:"next_link",category:"jump_commands"},nextList:{forward:!0,findNext:"list",msgId:"next_list",category:"jump_commands"},nextListItem:{forward:!0,findNext:"listItem",msgId:"next_list_item",category:"jump_commands"},nextMath:{forward:!0,findNext:"math", +msgId:"next_math",category:"jump_commands"},nextMedia:{forward:!0,findNext:"media",msgId:"next_media",category:"jump_commands"},nextRadio:{forward:!0,findNext:"radio",msgId:"next_radio",category:"jump_commands"},nextSection:{forward:!0,findNext:"section"},nextSlider:{forward:!0,findNext:"slider"},nextTable:{forward:!0,findNext:"table",msgId:"next_table",category:"jump_commands"},nextVisitedLink:{forward:!0,findNext:"visitedLink",msgId:"next_visited_link",category:"jump_commands"},previousArticle:{backward:!0, +findNext:"article"},previousButton:{backward:!0,findNext:"button",msgId:"previous_button",category:"jump_commands"},previousCheckbox:{backward:!0,findNext:"checkbox",msgId:"previous_checkbox",category:"jump_commands"},previousComboBox:{backward:!0,findNext:"combobox",msgId:"previous_combo_box",category:"jump_commands"},previousControl:{backward:!0,findNext:"control"},previousEditText:{backward:!0,findNext:"editText",msgId:"previous_edit_text",category:"jump_commands"},previousFormField:{backward:!0, +findNext:"formField",msgId:"previous_form_field",category:"jump_commands"},previousGraphic:{backward:!0,findNext:"graphic",msgId:"previous_graphic",category:"jump_commands"},previousHeading:{backward:!0,findNext:"heading",msgId:"previous_heading",category:"jump_commands"},previousHeading1:{backward:!0,findNext:"heading1",msgId:"previous_heading1",category:"jump_commands"},previousHeading2:{backward:!0,findNext:"heading2",msgId:"previous_heading2",category:"jump_commands"},previousHeading3:{backward:!0, +findNext:"heading3",msgId:"previous_heading3",category:"jump_commands"},previousHeading4:{backward:!0,findNext:"heading4",msgId:"previous_heading4",category:"jump_commands"},previousHeading5:{backward:!0,findNext:"heading5",msgId:"previous_heading5",category:"jump_commands"},previousHeading6:{backward:!0,findNext:"heading6",msgId:"previous_heading6",category:"jump_commands"},previousLandmark:{backward:!0,findNext:"landmark",msgId:"previous_landmark",category:"jump_commands"},previousLink:{backward:!0, +findNext:"link",msgId:"previous_link",category:"jump_commands"},previousList:{backward:!0,findNext:"list",msgId:"previous_list",category:"jump_commands"},previousListItem:{backward:!0,findNext:"listItem",msgId:"previous_list_item",category:"jump_commands"},previousMath:{backward:!0,findNext:"math",msgId:"previous_math",category:"jump_commands"},previousMedia:{backward:!0,findNext:"media",msgId:"previous_media",category:"jump_commands"},previousRadio:{backward:!0,findNext:"radio",msgId:"previous_radio", +category:"jump_commands"},previousSection:{backward:!0,findNext:"section"},previousSlider:{backward:!0,findNext:"slider"},previousTable:{backward:!0,findNext:"table",msgId:"previous_table",category:"jump_commands"},previousVisitedLink:{backward:!0,findNext:"visitedLink",msgId:"previous_visited_link",category:"jump_commands"},announceHeaders:{announce:!1,msgId:"announce_headers",category:"tables"},speakTableLocation:{announce:!1,msgId:"speak_table_location",category:"tables"},goToFirstCell:{announce:!0, +msgId:"skip_to_beginning",category:"tables"},goToLastCell:{announce:!0,msgId:"skip_to_end",category:"tables"},goToRowFirstCell:{announce:!0,msgId:"skip_to_row_beginning",category:"tables"},goToRowLastCell:{announce:!0,msgId:"skip_to_row_end",category:"tables"},goToColFirstCell:{announce:!0,msgId:"skip_to_col_beginning",category:"tables"},goToColLastCell:{announce:!0,msgId:"skip_to_col_end",category:"tables"},previousRow:{backward:!0,announce:!0,skipInput:!0},previousCol:{backward:!0,announce:!0,skipInput:!0}, +nextRow:{forward:!0,announce:!0,skipInput:!0},nextCol:{forward:!0,announce:!0,skipInput:!0},enterShifter:{announce:!0,msgId:"enter_content",category:"navigation"},exitShifter:{announce:!0,msgId:"exit_content",category:"navigation"},exitShifterContent:{announce:!0},openLongDesc:{announce:!1,msgId:"open_long_desc",category:"information"},pauseAllMedia:{announce:!1,msgId:"pause_all_media",category:"information"},toggleSemantics:{announce:!1,msgId:"toggle_semantics",category:"information"},routing:{announce:!0, +msgId:"braille_routing",category:"braille"},pan_left:{backward:!0,announce:!0,msgId:"braille_pan_left",category:"braille"},pan_right:{forward:!0,announce:!0,msgId:"braille_pan_right",category:"braille"},line_up:{backward:!0,announce:!0,msgId:"braille_line_up",category:"braille"},line_down:{forward:!0,announce:!0,msgId:"braille_line_down",category:"braille"},top:{forward:!0,announce:!0,msgId:"braille_top",category:"braille"},bottom:{backward:!0,announce:!0,msgId:"braille_bottom",category:"braille"}, +debug:{announce:!1},nop:{announce:!1}}; +cvox.CommandStore.NODE_INFO_MAP={checkbox:{predicate:"checkboxPredicate",forwardError:"no_next_checkbox",backwardError:"no_previous_checkbox",typeMsg:"aria_role_checkbox"},radio:{predicate:"radioPredicate",forwardError:"no_next_radio_button",backwardError:"no_previous_radio_button",typeMsg:"aria_role_radio"},slider:{predicate:"sliderPredicate",forwardError:"no_next_slider",backwardError:"no_previous_slider",typeMsg:"aria_role_slider"},graphic:{predicate:"graphicPredicate",forwardError:"no_next_graphic", +backwardError:"no_previous_graphic",typeMsg:"UNUSED"},article:{predicate:"articlePredicate",forwardError:"no_next_ARTICLE",backwardError:"no_previous_ARTICLE",typeMsg:"TAG_ARTICLE"},button:{predicate:"buttonPredicate",forwardError:"no_next_button",backwardError:"no_previous_button",typeMsg:"aria_role_button"},combobox:{predicate:"comboBoxPredicate",forwardError:"no_next_combo_box",backwardError:"no_previous_combo_box",typeMsg:"aria_role_combobox"},editText:{predicate:"editTextPredicate",forwardError:"no_next_edit_text", +backwardError:"no_previous_edit_text",typeMsg:"input_type_text"},heading:{predicate:"headingPredicate",forwardError:"no_next_heading",backwardError:"no_previous_heading",typeMsg:"aria_role_heading"},heading1:{predicate:"heading1Predicate",forwardError:"no_next_heading_1",backwardError:"no_previous_heading_1"},heading2:{predicate:"heading2Predicate",forwardError:"no_next_heading_2",backwardError:"no_previous_heading_2"},heading3:{predicate:"heading3Predicate",forwardError:"no_next_heading_3",backwardError:"no_previous_heading_3"}, +heading4:{predicate:"heading4Predicate",forwardError:"no_next_heading_4",backwardError:"no_previous_heading_4"},heading5:{predicate:"heading5Predicate",forwardError:"no_next_heading_5",backwardError:"no_previous_heading_5"},heading6:{predicate:"heading6Predicate",forwardError:"no_next_heading_6",backwardError:"no_previous_heading_6"},link:{predicate:"linkPredicate",forwardError:"no_next_link",backwardError:"no_previous_link",typeMsg:"aria_role_link"},table:{predicate:"tablePredicate",forwardError:"no_next_table", +backwardError:"no_previous_table",typeMsg:"table_strategy"},visitedLink:{predicate:"visitedLinkPredicate",forwardError:"no_next_visited_link",backwardError:"no_previous_visited_link",typeMsg:"tag_link"},list:{predicate:"listPredicate",forwardError:"no_next_list",backwardError:"no_previous_list",typeMsg:"aria_role_list"},listItem:{predicate:"listItemPredicate",forwardError:"no_next_list_item",backwardError:"no_previous_list_item",typeMsg:"aria_role_listitem"},formField:{predicate:"formFieldPredicate", +forwardError:"no_next_form_field",backwardError:"no_previous_form_field",typeMsg:"aria_role_form"},landmark:{predicate:"landmarkPredicate",forwardError:"no_next_landmark",backwardError:"no_previous_landmark",typeMsg:"role_landmark"},math:{predicate:"mathPredicate",forwardError:"no_next_math",backwardError:"no_previous_math",typeMsg:"math_expr"},media:{predicate:"mediaPredicate",forwardError:"no_next_media_widget",backwardError:"no_previous_media_widget"},section:{predicate:"sectionPredicate",forwardError:"no_next_section", +backwardError:"no_previous_section"},control:{predicate:"controlPredicate",forwardError:"no_next_control",backwardError:"no_previous_control"}};cvox.Widget=function(){this.active=!1;this.initialNode=null;cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||(cvox.Widget.ref_=this)};cvox.Widget.prototype.isActive=function(){return this.active}; +cvox.Widget.prototype.show=function(){this.isActive()&&this.hide(!0);this.onKeyDown=goog.bind(this.onKeyDown,this);this.onKeyPress=goog.bind(this.onKeyPress,this);window.addEventListener("keydown",this.onKeyDown,!0);window.addEventListener("keypress",this.onKeyPress,!0);this.initialNode=cvox.ChromeVox.navigationManager.getCurrentNode();this.isStickyOn=cvox.ChromeVox.isStickyOn;this.getNameMsg()&&this.getHelpMsg()&&cvox.$m(this.getNameMsg()).andPause().andMessage(this.getHelpMsg()).speakFlush();cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_OPEN); +this.active=!0};cvox.Widget.prototype.hide=function(a){window.removeEventListener("keypress",this.onKeyPress,!0);window.removeEventListener("keydown",this.onKeyDown,!0);cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_CLOSE);a||(this.initialNode=1==this.initialNode.nodeType?this.initialNode:this.initialNode.parentNode,cvox.ApiImplementation.syncToNode(this.initialNode,!0,cvox.AbstractTts.QUEUE_MODE_QUEUE));this.active=!1}; +cvox.Widget.prototype.toggle=function(){this.isActive()?this.hide():this.show()};cvox.Widget.prototype.onKeyDown=function(a){if(27==a.keyCode)return this.hide(),a.preventDefault(),!0;if(9==a.keyCode)return this.hide(),!0;17==a.keyCode&&cvox.ChromeVox.tts.stop();a.stopPropagation();return!0};cvox.Widget.prototype.onKeyPress=function(){return!1};cvox.Widget.isActive=function(){return cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||!1};cvox.NavDescription=function(a){this.context=a.context?a.context:"";this.text=a.text?a.text:"";this.userValue=a.userValue?a.userValue:"";this.annotation=a.annotation?a.annotation:"";this.earcons=a.earcons?a.earcons:[];this.personality=a.personality};cvox.NavDescription.prototype.isEmpty=function(){return 0==this.context.length&&0==this.earcons.length&&0==this.text.length&&0==this.userValue.length&&0==this.annotation.length}; +cvox.NavDescription.prototype.toString=function(){return'NavDescription(context="'+this.context+'" text="'+this.text+'" userValue="'+this.userValue+'" annotation="'+this.annotation+'")'};cvox.NavDescription.prototype.pushEarcon=function(a){this.earcons.push(a)}; +cvox.NavDescription.prototype.speak=function(a,b,c){function d(){var a={},b=cvox.AbstractTts.PERSONALITY_ANNOTATION,c;for(c in b)a[c]=b[c];return a}var e=[];this.context&&(e.push([this.context,a,d()]),a=1);e.push([this.text,a,this.personality?this.personality:{}]);a=1;this.userValue&&e.push([this.userValue,a,{}]);this.annotation&&e.push([this.annotation,a,d()]);a=e.length;for(var f=0;f<a;f++)0==f&&b&&(e[f][2].startCallback=b),f==a-1&&c&&(e[f][2].endCallback=c),cvox.ChromeVox.tts.speak.apply(cvox.ChromeVox.tts, +e[f])};cvox.NavDescription.prototype.equals=function(a){return this.context==a.context&&this.text==a.text&&this.userValue==a.userValue&&this.annotation==a.annotation};cvox.NavMathDescription=function(a){cvox.NavDescription.call(this,a);var b=this.personality?this.personality:{},c={};c.domain=a.domain?a.domain:"";c.style=a.style?a.style:"";b.math=c;this.personality=b};goog.inherits(cvox.NavMathDescription,cvox.NavDescription);cvox.SemanticUtil=function(){};cvox.SemanticUtil.objectsToKeys=function(a){a=Array.prototype.slice.call(arguments,0);var b=[];return b.concat.apply(b,a.map(Object.keys))};cvox.SemanticUtil.objectsToValues=function(a){a=Array.prototype.slice.call(arguments,0);var b=[],c=function(a){for(var c in a)b.push(a[c])};a.forEach(c);return b}; +cvox.SemanticUtil.unicodeToNumber=function(a){if(!a||2<a.length)return null;if(2==a.length){var b=a.charCodeAt(0);a=a.charCodeAt(1);return 55296<=b&&56319>=b&&!isNaN(a)?1024*(b-55296)+(a-56320)+65536:null}return a.charCodeAt(0)};cvox.SemanticUtil.numberToUnicode=function(a){if(65536<=a){var b=(a-65536)/1024+55296;a=(a-65536)%1024+56320;return String.fromCharCode(b,a)}return String.fromCharCode(a)};cvox.SemanticUtil.tagName=function(a){return a.tagName.toUpperCase()};cvox.SemanticUtil.IGNORETAGS="MERROR MPHANTOM MSPACE MACTION MALIGNGROUP MALIGNMARK MACTION".split(" "); +cvox.SemanticUtil.EMPTYTAGS=["MATH","MROW","MPADDED","MSTYLE"];cvox.SemanticUtil.purgeNodes=function(a){for(var b=[],c=0,d;d=a[c];c++){var e=cvox.SemanticUtil.tagName(d);-1==cvox.SemanticUtil.IGNORETAGS.indexOf(e)&&(-1!=cvox.SemanticUtil.EMPTYTAGS.indexOf(e)&&0==d.childNodes.length||b.push(d))}return b};cvox.SemanticAttr=function(){this.generalPunctuations="!\"#%&'*,:;?@\\\u00a1\u00a7\u00b6\u00b7\u00bf\u2017\u2020\u2021\u2022\u2023\u2024\u2025\u2027\u2030\u2031\u2038\u203b\u203c\u203d\u203e\u2041\u2042\u2043\u2047\u2048\u2049\u204b\u204c\u204d\u204e\u204f\u2050\u2051\u2053\u2055\u2056\u2058\u2059\u205a\u205b\u205c\u205d\u205e\ufe10\ufe13\ufe14\ufe15\ufe16\ufe30\ufe45\ufe46\ufe49\ufe4a\ufe4b\ufe4c\ufe50\ufe54\ufe55\ufe56\ufe57\ufe5f\ufe60\ufe61\ufe68\ufe6a\ufe6b\uff01\uff02\uff03\uff05\uff06\uff07\uff0a\uff0c\uff0f\uff1a\uff1b\uff1f\uff20\uff3c".split(""); +this.invisibleComma_=cvox.SemanticUtil.numberToUnicode(8291);this.generalPunctuations.push(this.invisibleComma_);this.ellipses="\u2026\u22ee\u22ef\u22f0\u22f1\ufe19".split("");this.fullStops=[".","\ufe52","\uff0e"];this.dashes="\u2012\u2013\u2014\u2015\u301c\ufe31\ufe32\ufe58".split("");this.primes="\u2032\u2033\u2034\u2035\u2036\u2037\u2057".split("");this.openClosePairs={"(":")","[":"]","{":"}","\u2045":"\u2046","\u2329":"\u232a","\u2768":"\u2769","\u276a":"\u276b","\u276c":"\u276d","\u276e":"\u276f", +"\u2770":"\u2771","\u2772":"\u2773","\u2774":"\u2775","\u27c5":"\u27c6","\u27e6":"\u27e7","\u27e8":"\u27e9","\u27ea":"\u27eb","\u27ec":"\u27ed","\u27ee":"\u27ef","\u2983":"\u2984","\u2985":"\u2986","\u2987":"\u2988","\u2989":"\u298a","\u298b":"\u298c","\u298d":"\u298e","\u298f":"\u2990","\u2991":"\u2992","\u2993":"\u2994","\u2995":"\u2996","\u2997":"\u2998","\u29d8":"\u29d9","\u29da":"\u29db","\u29fc":"\u29fd","\u2e22":"\u2e23","\u2e24":"\u2e25","\u2e26":"\u2e27","\u2e28":"\u2e29","\u3008":"\u3009", +"\u300a":"\u300b","\u300c":"\u300d","\u300e":"\u300f","\u3010":"\u3011","\u3014":"\u3015","\u3016":"\u3017","\u3018":"\u3019","\u301a":"\u301b","\u301d":"\u301e","\ufd3e":"\ufd3f","\ufe17":"\ufe18","\ufe59":"\ufe5a","\ufe5b":"\ufe5c","\ufe5d":"\ufe5e","\uff08":"\uff09","\uff3b":"\uff3d","\uff5b":"\uff5d","\uff5f":"\uff60","\uff62":"\uff63","\u2308":"\u2309","\u230a":"\u230b","\u230c":"\u230d","\u230e":"\u230f","\u231c":"\u231d","\u231e":"\u231f","\u239b":"\u239e","\u239c":"\u239f","\u239d":"\u23a0", +"\u23a1":"\u23a4","\u23a2":"\u23a5","\u23a3":"\u23a6","\u23a7":"\u23ab","\u23a8":"\u23ac","\u23a9":"\u23ad","\u23b0":"\u23b1","\u23b8":"\u23b9"};this.topBottomPairs={"\u23b4":"\u23b5","\u23dc":"\u23dd","\u23de":"\u23df","\u23e0":"\u23e1","\ufe35":"\ufe36","\ufe37":"\ufe38","\ufe39":"\ufe3a","\ufe3b":"\ufe3c","\ufe3d":"\ufe3e","\ufe3f":"\ufe40","\ufe41":"\ufe42","\ufe43":"\ufe44","\ufe47":"\ufe48"};this.leftFences=cvox.SemanticUtil.objectsToKeys(this.openClosePairs);this.rightFences=cvox.SemanticUtil.objectsToValues(this.openClosePairs); +this.rightFences.push("\u301f");this.topFences=cvox.SemanticUtil.objectsToKeys(this.topBottomPairs);this.bottomFences=cvox.SemanticUtil.objectsToValues(this.topBottomPairs);this.neutralFences="|\u00a6\u2016\u2758\u2980\u2af4\uffe4\uff5c".split("");this.capitalLatin="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");this.smallLatin="abcdefghijklmnopqrstuvwxyz\u0131\u0237".split("");this.capitalLatinFullWidth="\uff21\uff22\uff23\uff24\uff25\uff26\uff27\uff28\uff29\uff2a\uff2b\uff2c\uff2d\uff2e\uff2f\uff30\uff31\uff32\uff33\uff34\uff35\uff36\uff37\uff38\uff39\uff3a".split(""); +this.smallLatinFullWidth="\uff41\uff42\uff43\uff44\uff45\uff46\uff47\uff48\uff49\uff4a\uff4b\uff4c\uff4d\uff4e\uff4f\uff50\uff51\uff52\uff53\uff54\uff55\uff56\uff57\uff58\uff59\uff5a".split("");this.capitalLatinBold="\ud835\udc00 \ud835\udc01 \ud835\udc02 \ud835\udc03 \ud835\udc04 \ud835\udc05 \ud835\udc06 \ud835\udc07 \ud835\udc08 \ud835\udc09 \ud835\udc0a \ud835\udc0b \ud835\udc0c \ud835\udc0d \ud835\udc0e \ud835\udc0f \ud835\udc10 \ud835\udc11 \ud835\udc12 \ud835\udc13 \ud835\udc14 \ud835\udc15 \ud835\udc16 \ud835\udc17 \ud835\udc18 \ud835\udc19".split(" "); +this.smallLatinBold="\ud835\udc1a \ud835\udc1b \ud835\udc1c \ud835\udc1d \ud835\udc1e \ud835\udc1f \ud835\udc20 \ud835\udc21 \ud835\udc22 \ud835\udc23 \ud835\udc24 \ud835\udc25 \ud835\udc26 \ud835\udc27 \ud835\udc28 \ud835\udc29 \ud835\udc2a \ud835\udc2b \ud835\udc2c \ud835\udc2d \ud835\udc2e \ud835\udc2f \ud835\udc30 \ud835\udc31 \ud835\udc32 \ud835\udc33".split(" ");this.capitalLatinItalic="\ud835\udc34 \ud835\udc35 \ud835\udc36 \ud835\udc37 \ud835\udc38 \ud835\udc39 \ud835\udc3a \ud835\udc3b \ud835\udc3c \ud835\udc3d \ud835\udc3e \ud835\udc3f \ud835\udc40 \ud835\udc41 \ud835\udc42 \ud835\udc43 \ud835\udc44 \ud835\udc45 \ud835\udc46 \ud835\udc47 \ud835\udc48 \ud835\udc49 \ud835\udc4a \ud835\udc4b \ud835\udc4c \ud835\udc4d".split(" "); +this.smallLatinItalic="\ud835\udc4e \ud835\udc4f \ud835\udc50 \ud835\udc51 \ud835\udc52 \ud835\udc53 \ud835\udc54 \u210e \ud835\udc56 \ud835\udc57 \ud835\udc58 \ud835\udc59 \ud835\udc5a \ud835\udc5b \ud835\udc5c \ud835\udc5d \ud835\udc5e \ud835\udc5f \ud835\udc60 \ud835\udc61 \ud835\udc62 \ud835\udc63 \ud835\udc64 \ud835\udc65 \ud835\udc66 \ud835\udc67 \ud835\udea4 \ud835\udea5".split(" ");this.capitalLatinScript="\ud835\udc9c \u212c \ud835\udc9e \ud835\udc9f \u2130 \u2131 \ud835\udca2 \u210b \u2110 \ud835\udca5 \ud835\udca6 \u2112 \u2133 \ud835\udca9 \ud835\udcaa \ud835\udcab \ud835\udcac \u211b \ud835\udcae \ud835\udcaf \ud835\udcb0 \ud835\udcb1 \ud835\udcb2 \ud835\udcb3 \ud835\udcb4 \ud835\udcb5 \u2118".split(" "); +this.smallLatinScript="\ud835\udcb6 \ud835\udcb7 \ud835\udcb8 \ud835\udcb9 \u212f \ud835\udcbb \u210a \ud835\udcbd \ud835\udcbe \ud835\udcbf \ud835\udcc0 \ud835\udcc1 \ud835\udcc2 \ud835\udcc3 \u2134 \ud835\udcc5 \ud835\udcc6 \ud835\udcc7 \ud835\udcc8 \ud835\udcc9 \ud835\udcca \ud835\udccb \ud835\udccc \ud835\udccd \ud835\udcce \ud835\udccf \u2113".split(" ");this.capitalLatinBoldScript="\ud835\udcd0 \ud835\udcd1 \ud835\udcd2 \ud835\udcd3 \ud835\udcd4 \ud835\udcd5 \ud835\udcd6 \ud835\udcd7 \ud835\udcd8 \ud835\udcd9 \ud835\udcda \ud835\udcdb \ud835\udcdc \ud835\udcdd \ud835\udcde \ud835\udcdf \ud835\udce0 \ud835\udce1 \ud835\udce2 \ud835\udce3 \ud835\udce4 \ud835\udce5 \ud835\udce6 \ud835\udce7 \ud835\udce8 \ud835\udce9".split(" "); +this.smallLatinBoldScript="\ud835\udcea \ud835\udceb \ud835\udcec \ud835\udced \ud835\udcee \ud835\udcef \ud835\udcf0 \ud835\udcf1 \ud835\udcf2 \ud835\udcf3 \ud835\udcf4 \ud835\udcf5 \ud835\udcf6 \ud835\udcf7 \ud835\udcf8 \ud835\udcf9 \ud835\udcfa \ud835\udcfb \ud835\udcfc \ud835\udcfd \ud835\udcfe \ud835\udcff \ud835\udd00 \ud835\udd01 \ud835\udd02 \ud835\udd03".split(" ");this.capitalLatinFraktur="\ud835\udd04 \ud835\udd05 \u212d \ud835\udd07 \ud835\udd08 \ud835\udd09 \ud835\udd0a \u210c \u2111 \ud835\udd0d \ud835\udd0e \ud835\udd0f \ud835\udd10 \ud835\udd11 \ud835\udd12 \ud835\udd13 \ud835\udd14 \u211c \ud835\udd16 \ud835\udd17 \ud835\udd18 \ud835\udd19 \ud835\udd1a \ud835\udd1b \ud835\udd1c \u2128".split(" "); +this.smallLatinFraktur="\ud835\udd1e \ud835\udd1f \ud835\udd20 \ud835\udd21 \ud835\udd22 \ud835\udd23 \ud835\udd24 \ud835\udd25 \ud835\udd26 \ud835\udd27 \ud835\udd28 \ud835\udd29 \ud835\udd2a \ud835\udd2b \ud835\udd2c \ud835\udd2d \ud835\udd2e \ud835\udd2f \ud835\udd30 \ud835\udd31 \ud835\udd32 \ud835\udd33 \ud835\udd34 \ud835\udd35 \ud835\udd36 \ud835\udd37".split(" ");this.capitalLatinDoubleStruck="\ud835\udd38 \ud835\udd39 \u2102 \ud835\udd3b \ud835\udd3c \ud835\udd3d \ud835\udd3e \u210d \ud835\udd40 \ud835\udd41 \ud835\udd42 \ud835\udd43 \ud835\udd44 \u2115 \ud835\udd46 \u2119 \u211a \u211d \ud835\udd4a \ud835\udd4b \ud835\udd4c \ud835\udd4d \ud835\udd4e \ud835\udd4f \ud835\udd50 \u2124".split(" "); +this.smallLatinDoubleStruck="\ud835\udd52 \ud835\udd53 \ud835\udd54 \ud835\udd55 \ud835\udd56 \ud835\udd57 \ud835\udd58 \ud835\udd59 \ud835\udd5a \ud835\udd5b \ud835\udd5c \ud835\udd5d \ud835\udd5e \ud835\udd5f \ud835\udd60 \ud835\udd61 \ud835\udd62 \ud835\udd63 \ud835\udd64 \ud835\udd65 \ud835\udd66 \ud835\udd67 \ud835\udd68 \ud835\udd69 \ud835\udd6a \ud835\udd6b".split(" ");this.capitalLatinBoldFraktur="\ud835\udd6c \ud835\udd6d \ud835\udd6e \ud835\udd6f \ud835\udd70 \ud835\udd71 \ud835\udd72 \ud835\udd73 \ud835\udd74 \ud835\udd75 \ud835\udd76 \ud835\udd77 \ud835\udd78 \ud835\udd79 \ud835\udd7a \ud835\udd7b \ud835\udd7c \ud835\udd7d \ud835\udd7e \ud835\udd7f \ud835\udd80 \ud835\udd81 \ud835\udd82 \ud835\udd83 \ud835\udd84 \ud835\udd85".split(" "); +this.smallLatinBoldFraktur="\ud835\udd86 \ud835\udd87 \ud835\udd88 \ud835\udd89 \ud835\udd8a \ud835\udd8b \ud835\udd8c \ud835\udd8d \ud835\udd8e \ud835\udd8f \ud835\udd90 \ud835\udd91 \ud835\udd92 \ud835\udd93 \ud835\udd94 \ud835\udd95 \ud835\udd96 \ud835\udd97 \ud835\udd98 \ud835\udd99 \ud835\udd9a \ud835\udd9b \ud835\udd9c \ud835\udd9d \ud835\udd9e \ud835\udd9f".split(" ");this.capitalLatinSansSerif="\ud835\udda0 \ud835\udda1 \ud835\udda2 \ud835\udda3 \ud835\udda4 \ud835\udda5 \ud835\udda6 \ud835\udda7 \ud835\udda8 \ud835\udda9 \ud835\uddaa \ud835\uddab \ud835\uddac \ud835\uddad \ud835\uddae \ud835\uddaf \ud835\uddb0 \ud835\uddb1 \ud835\uddb2 \ud835\uddb3 \ud835\uddb4 \ud835\uddb5 \ud835\uddb6 \ud835\uddb7 \ud835\uddb8 \ud835\uddb9".split(" "); +this.smallLatinSansSerif="\ud835\uddba \ud835\uddbb \ud835\uddbc \ud835\uddbd \ud835\uddbe \ud835\uddbf \ud835\uddc0 \ud835\uddc1 \ud835\uddc2 \ud835\uddc3 \ud835\uddc4 \ud835\uddc5 \ud835\uddc6 \ud835\uddc7 \ud835\uddc8 \ud835\uddc9 \ud835\uddca \ud835\uddcb \ud835\uddcc \ud835\uddcd \ud835\uddce \ud835\uddcf \ud835\uddd0 \ud835\uddd1 \ud835\uddd2 \ud835\uddd3".split(" ");this.capitalLatinSansSerifBold="\ud835\uddd4 \ud835\uddd5 \ud835\uddd6 \ud835\uddd7 \ud835\uddd8 \ud835\uddd9 \ud835\uddda \ud835\udddb \ud835\udddc \ud835\udddd \ud835\uddde \ud835\udddf \ud835\udde0 \ud835\udde1 \ud835\udde2 \ud835\udde3 \ud835\udde4 \ud835\udde5 \ud835\udde6 \ud835\udde7 \ud835\udde8 \ud835\udde9 \ud835\uddea \ud835\uddeb \ud835\uddec \ud835\udded".split(" "); +this.smallLatinSansSerifBold="\ud835\uddee \ud835\uddef \ud835\uddf0 \ud835\uddf1 \ud835\uddf2 \ud835\uddf3 \ud835\uddf4 \ud835\uddf5 \ud835\uddf6 \ud835\uddf7 \ud835\uddf8 \ud835\uddf9 \ud835\uddfa \ud835\uddfb \ud835\uddfc \ud835\uddfd \ud835\uddfe \ud835\uddff \ud835\ude00 \ud835\ude01 \ud835\ude02 \ud835\ude03 \ud835\ude04 \ud835\ude05 \ud835\ude06 \ud835\ude07".split(" ");this.capitalLatinSansSerifItalic="\ud835\ude08 \ud835\ude09 \ud835\ude0a \ud835\ude0b \ud835\ude0c \ud835\ude0d \ud835\ude0e \ud835\ude0f \ud835\ude10 \ud835\ude11 \ud835\ude12 \ud835\ude13 \ud835\ude14 \ud835\ude15 \ud835\ude16 \ud835\ude17 \ud835\ude18 \ud835\ude19 \ud835\ude1a \ud835\ude1b \ud835\ude1c \ud835\ude1d \ud835\ude1e \ud835\ude1f \ud835\ude20 \ud835\ude21".split(" "); +this.smallLatinSansSerifItalic="\ud835\ude22 \ud835\ude23 \ud835\ude24 \ud835\ude25 \ud835\ude26 \ud835\ude27 \ud835\ude28 \ud835\ude29 \ud835\ude2a \ud835\ude2b \ud835\ude2c \ud835\ude2d \ud835\ude2e \ud835\ude2f \ud835\ude30 \ud835\ude31 \ud835\ude32 \ud835\ude33 \ud835\ude34 \ud835\ude35 \ud835\ude36 \ud835\ude37 \ud835\ude38 \ud835\ude39 \ud835\ude3a \ud835\ude3b".split(" ");this.capitalLatinMonospace="\ud835\ude70 \ud835\ude71 \ud835\ude72 \ud835\ude73 \ud835\ude74 \ud835\ude75 \ud835\ude76 \ud835\ude77 \ud835\ude78 \ud835\ude79 \ud835\ude7a \ud835\ude7b \ud835\ude7c \ud835\ude7d \ud835\ude7e \ud835\ude7f \ud835\ude80 \ud835\ude81 \ud835\ude82 \ud835\ude83 \ud835\ude84 \ud835\ude85 \ud835\ude86 \ud835\ude87 \ud835\ude88 \ud835\ude89".split(" "); +this.smallLatinMonospace="\ud835\ude8a \ud835\ude8b \ud835\ude8c \ud835\ude8d \ud835\ude8e \ud835\ude8f \ud835\ude90 \ud835\ude91 \ud835\ude92 \ud835\ude93 \ud835\ude94 \ud835\ude95 \ud835\ude96 \ud835\ude97 \ud835\ude98 \ud835\ude99 \ud835\ude9a \ud835\ude9b \ud835\ude9c \ud835\ude9d \ud835\ude9e \ud835\ude9f \ud835\udea0 \ud835\udea1 \ud835\udea2 \ud835\udea3".split(" ");this.latinDoubleStruckItalic=["\u2145","\u2146","\u2147","\u2148","\u2149"];this.capitalGreek="\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9".split(""); +this.smallGreek="\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9".split("");this.capitalGreekBold="\ud835\udea8 \ud835\udea9 \ud835\udeaa \ud835\udeab \ud835\udeac \ud835\udead \ud835\udeae \ud835\udeaf \ud835\udeb0 \ud835\udeb1 \ud835\udeb2 \ud835\udeb3 \ud835\udeb4 \ud835\udeb5 \ud835\udeb6 \ud835\udeb7 \ud835\udeb8 \ud835\udeba \ud835\udebb \ud835\udebc \ud835\udebd \ud835\udebe \ud835\udebf \ud835\udec0".split(" "); +this.smallGreekBold="\ud835\udec2 \ud835\udec3 \ud835\udec4 \ud835\udec5 \ud835\udec6 \ud835\udec7 \ud835\udec8 \ud835\udec9 \ud835\udeca \ud835\udecb \ud835\udecc \ud835\udecd \ud835\udece \ud835\udecf \ud835\uded0 \ud835\uded1 \ud835\uded2 \ud835\uded3 \ud835\uded4 \ud835\uded5 \ud835\uded6 \ud835\uded7 \ud835\uded8 \ud835\uded9 \ud835\udeda".split(" ");this.capitalGreekItalic="\ud835\udee2 \ud835\udee3 \ud835\udee4 \ud835\udee5 \ud835\udee6 \ud835\udee7 \ud835\udee8 \ud835\udee9 \ud835\udeea \ud835\udeeb \ud835\udeec \ud835\udeed \ud835\udeee \ud835\udeef \ud835\udef0 \ud835\udef1 \ud835\udef2 \ud835\udef4 \ud835\udef5 \ud835\udef6 \ud835\udef7 \ud835\udef8 \ud835\udef9 \ud835\udefa".split(" "); +this.smallGreekItalic="\ud835\udefc \ud835\udefd \ud835\udefe \ud835\udeff \ud835\udf00 \ud835\udf01 \ud835\udf02 \ud835\udf03 \ud835\udf04 \ud835\udf05 \ud835\udf06 \ud835\udf07 \ud835\udf08 \ud835\udf09 \ud835\udf0a \ud835\udf0b \ud835\udf0c \ud835\udf0d \ud835\udf0e \ud835\udf0f \ud835\udf10 \ud835\udf11 \ud835\udf12 \ud835\udf13 \ud835\udf14".split(" ");this.capitalGreekSansSerifBold="\ud835\udf56 \ud835\udf57 \ud835\udf58 \ud835\udf59 \ud835\udf5a \ud835\udf5b \ud835\udf5c \ud835\udf5d \ud835\udf5e \ud835\udf5f \ud835\udf60 \ud835\udf61 \ud835\udf62 \ud835\udf63 \ud835\udf64 \ud835\udf65 \ud835\udf66 \ud835\udf68 \ud835\udf69 \ud835\udf6a \ud835\udf6b \ud835\udf6c \ud835\udf6d \ud835\udf6e".split(" "); +this.smallGreekSansSerifBold="\ud835\udf70 \ud835\udf71 \ud835\udf72 \ud835\udf73 \ud835\udf74 \ud835\udf75 \ud835\udf76 \ud835\udf77 \ud835\udf78 \ud835\udf79 \ud835\udf7a \ud835\udf7b \ud835\udf7c \ud835\udf7d \ud835\udf7e \ud835\udf7f \ud835\udf80 \ud835\udf81 \ud835\udf82 \ud835\udf83 \ud835\udf84 \ud835\udf85 \ud835\udf86 \ud835\udf87 \ud835\udf88".split(" ");this.greekDoubleStruck=["\u213c","\u213d","\u213e","\u213f"];this.hebrewLetters=["\u2135","\u2136","\u2137","\u2138"];this.additions="+\u00b1\u2213\u2214\u2227\u2228\u2229\u222a\u228c\u2293\u2294\u229d\u229e\u22a4\u22a5\u22ba\u22bb\u22bc\u22c4\u22ce\u22cf\u22d2\u22d3\u25b3\u25b7\u25bd\u25c1\u2a5e\u2295".split(""); +this.invisiblePlus_=cvox.SemanticUtil.numberToUnicode(8292);this.additions.push(this.invisiblePlus_);this.multiplications="\u2020\u2021\u2210\u2217\u2218\u2219\u2240\u229a\u229b\u22a0\u22a1\u22c5\u22c6\u22c7\u22c9\u22ca\u22cb\u22cc\u25cb".split("");this.invisibleTimes_=cvox.SemanticUtil.numberToUnicode(8290);this.multiplications.push(this.invisibleTimes_);this.subtractions="-\u2052\u207b\u208b\u2212\u2216\u2238\u2242\u2296\u229f\u2796\u2a29\u2a2a\u2a2b\u2a2c\u2a3a\u2a41\u2a6c\ufe63\uff0d\u2010\u2011".split(""); +this.divisions="/\u00f7\u2044\u2215\u2298\u27cc\u29bc\u2a38".split("");this.functionApplication_=cvox.SemanticUtil.numberToUnicode(8289);this.equalities="=~\u207c\u208c\u223c\u223d\u2243\u2245\u2248\u224a\u224b\u224c\u224d\u224e\u2251\u2252\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225a\u225b\u225c\u225d\u225e\u225f\u2261\u2263\u29e4\u2a66\u2a6e\u2a6f\u2a70\u2a71\u2a72\u2a73\u2a74\u2a75\u2a76\u2a77\u2a78\u22d5\u2a6d\u2a6a\u2a6b\u2a6c\ufe66\uff1d".split("");this.inequalities="<>\u2241\u2242\u2244\u2246\u2247\u2249\u224f\u2250\u2260\u2262\u2264\u2265\u2266\u2267\u2268\u2269\u226a\u226b\u226c\u226d\u226e\u226f\u2270\u2271\u2272\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227a\u227b\u227c\u227d\u227e\u227f\u2280\u2281\u22d6\u22d7\u22d8\u22d9\u22da\u22db\u22dc\u22dd\u22de\u22df\u22e0\u22e1\u22e2\u22e3\u22e4\u22e5\u22e6\u22e7\u22e8\u22e9\u2a79\u2a7a\u2a7b\u2a7c\u2a7d\u2a7e\u2a7f\u2a80\u2a81\u2a82\u2a83\u2a84\u2a85\u2a86\u2a87\u2a88\u2a89\u2a8a\u2a8b\u2a8c\u2a8d\u2a8e\u2a8f\u2a90\u2a91\u2a92\u2a93\u2a94\u2a95\u2a96\u2a97\u2a98\u2a99\u2a9a\u2a9b\u2a9c\u2a9d\u2a9e\u2a9f\u2aa0\u2aa1\u2aa2\u2aa3\u2aa4\u2aa5\u2aa6\u2aa7\u2aa8\u2aa9\u2aaa\u2aab\u2aac\u2aad\u2aae\u2aaf\u2ab0\u2ab1\u2ab2\u2ab3\u2ab4\u2ab5\u2ab6\u2ab7\u2ab8\u2ab9\u2aba\u2abb\u2abc\u2af7\u2af8\u2af9\u2afa\u29c0\u29c1\ufe64\ufe65\uff1c\uff1e".split(""); +this.relations=[];this.arrows="\u2190\u2191\u2192\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219a\u219b\u219c\u219d\u219e\u219f\u21a0\u21a1\u21a2\u21a3\u21a4\u21a5\u21a6\u21a7\u21a8\u21a9\u21aa\u21ab\u21ac\u21ad\u21ae\u21af\u21b0\u21b1\u21b2\u21b3\u21b4\u21b5\u21b6\u21b7\u21b8\u21b9\u21ba\u21bb\u21c4\u21c5\u21c6\u21c7\u21c8\u21c9\u21ca\u21cd\u21ce\u21cf\u21d0\u21d1\u21d2\u21d3\u21d4\u21d5\u21d6\u21d7\u21d8\u21d9\u21da\u21db\u21dc\u21dd\u21de\u21df\u21e0\u21e1\u21e2\u21e3\u21e4\u21e5\u21e6\u21e7\u21e8\u21e9\u21ea\u21eb\u21ec\u21ed\u21ee\u21ef\u21f0\u21f1\u21f2\u21f3\u21f4\u21f5\u21f6\u21f7\u21f8\u21f9\u21fa\u21fb\u21fc\u21fd\u21fe\u21ff\u2301\u2303\u2304\u2324\u238b\u2794\u2798\u2799\u279a\u279b\u279c\u279d\u279e\u279f\u27a0\u27a1\u27a2\u27a3\u27a4\u27a5\u27a6\u27a7\u27a8\u27a9\u27aa\u27ab\u27ac\u27ad\u27ae\u27af\u27b1\u27b2\u27b3\u27b4\u27b5\u27b6\u27b7\u27b8\u27b9\u27ba\u27bb\u27bc\u27bd\u27be\u27f0\u27f1\u27f2\u27f3\u27f4\u27f5\u27f6\u27f7\u27f8\u27f9\u27fa\u27fb\u27fc\u27fd\u27fe\u27ff\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907\u2908\u2909\u290a\u290b\u290c\u290d\u290e\u290f\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917\u2918\u2919\u291a\u291b\u291c\u291d\u291e\u291f\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927\u2928\u2929\u292a\u292d\u292e\u292f\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937\u2938\u2939\u293a\u293b\u293c\u293d\u293e\u293f\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947\u2948\u2949\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977\u2978\u2979\u297a\u297b\u29b3\u29b4\u29bd\u29ea\u29ec\u29ed\u2a17\u2b00\u2b01\u2b02\u2b03\u2b04\u2b05\u2b06\u2b07\u2b08\u2b09\u2b0a\u2b0b\u2b0c\u2b0d\u2b0e\u2b0f\u2b10\u2b11\u2b30\u2b31\u2b32\u2b33\u2b34\u2b35\u2b36\u2b37\u2b38\u2b39\u2b3a\u2b3b\u2b3c\u2b3d\u2b3e\u2b3f\u2b40\u2b41\u2b42\u2b43\u2b44\u2b45\u2b46\u2b47\u2b48\u2b49\u2b4a\u2b4b\u2b4c\uffe9\uffea\uffeb\uffec\u21bc\u21bd\u21be\u21bf\u21c0\u21c1\u21c2\u21c3\u21cb\u21cc\u294a\u294b\u294c\u294d\u294e\u294f\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957\u2958\u2959\u295a\u295b\u295c\u295d\u295e\u295f\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967\u2968\u2969\u296a\u296b\u296c\u296d\u296e\u296f\u297c\u297d\u297e\u297f".split(""); +this.sumOps="\u2140\u220f\u2210\u2211\u22c0\u22c1\u22c2\u22c3\u2a00\u2a01\u2a02\u2a03\u2a04\u2a05\u2a06\u2a07\u2a08\u2a09\u2a0a\u2a0b\u2afc\u2aff".split("");this.intOps="\u222b\u222c\u222d\u222e\u222f\u2230\u2231\u2232\u2233\u2a0c\u2a0d\u2a0e\u2a0f\u2a10\u2a11\u2a12\u2a13\u2a14\u2a15\u2a16\u2a17\u2a18\u2a19\u2a1a\u2a1b\u2a1c".split("");this.prefixOps=["\u2200","\u2203"];this.digitsNormal="0123456789".split("");this.digitsFullWidth="\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19".split(""); +this.digitsBold="\ud835\udfce \ud835\udfcf \ud835\udfd0 \ud835\udfd1 \ud835\udfd2 \ud835\udfd3 \ud835\udfd4 \ud835\udfd5 \ud835\udfd6 \ud835\udfd7".split(" ");this.digitsDoubleStruck="\ud835\udfd8 \ud835\udfd9 \ud835\udfda \ud835\udfdb \ud835\udfdc \ud835\udfdd \ud835\udfde \ud835\udfdf \ud835\udfe0 \ud835\udfe1".split(" ");this.digitsSansSerif="\ud835\udfe2 \ud835\udfe3 \ud835\udfe4 \ud835\udfe5 \ud835\udfe6 \ud835\udfe7 \ud835\udfe8 \ud835\udfe9 \ud835\udfea \ud835\udfeb".split(" ");this.digitsSansSerifBold= +"\ud835\udfec \ud835\udfed \ud835\udfee \ud835\udfef \ud835\udff0 \ud835\udff1 \ud835\udff2 \ud835\udff3 \ud835\udff4 \ud835\udff5".split(" ");this.digitsMonospace="\ud835\udff6 \ud835\udff7 \ud835\udff8 \ud835\udff9 \ud835\udffa \ud835\udffb \ud835\udffc \ud835\udffd \ud835\udffe \ud835\udfff".split(" ");this.digitsSuperscript="\u00b2\u00b3\u00b9\u2070\u2074\u2075\u2076\u2077\u2078\u2079".split("");this.digitsSubscript="\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089".split("");this.fractions= +"\u00bc\u00bd\u00be\u2150\u2151\u2152\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215a\u215b\u215c\u215d\u215e\u215f\u2189".split("");this.enclosedNumbers="\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468\u2469\u246a\u246b\u246c\u246d\u246e\u246f\u2470\u2471\u2472\u2473\u24ea\u24eb\u24ec\u24ed\u24ee\u24ef\u24f0\u24f1\u24f2\u24f3\u24f4\u24f5\u24f6\u24f7\u24f8\u24f9\u24fa\u24fb\u24fc\u24fd\u24fe\u24ff\u2776\u2777\u2778\u2779\u277a\u277b\u277c\u277d\u277e\u277f\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787\u2788\u2789\u278a\u278b\u278c\u278d\u278e\u278f\u2790\u2791\u2792\u2793\u3248\u3249\u324a\u324b\u324c\u324d\u324e\u324f\u3251\u3252\u3253\u3254\u3255\u3256\u3257\u3258\u3259\u325a\u325b\u325c\u325d\u325e\u325f\u32b1\u32b2\u32b3\u32b4\u32b5\u32b6\u32b7\u32b8\u32b9\u32ba\u32bb\u32bc\u32bd\u32be\u32bf".split(""); +this.fencedNumbers="\u2474\u2475\u2476\u2477\u2478\u2479\u247a\u247b\u247c\u247d\u247e\u247f\u2480\u2481\u2482\u2483\u2484\u2485\u2486\u2487".split("");this.punctuatedNumbers="\u2488 \u2489 \u248a \u248b \u248c \u248d \u248e \u248f \u2490 \u2491 \u2492 \u2493 \u2494 \u2495 \u2496 \u2497 \u2498 \u2499 \u249a \u249b \ud83c\udd00 \ud83c\udd01 \ud83c\udd02 \ud83c\udd03 \ud83c\udd04 \ud83c\udd05 \ud83c\udd06 \ud83c\udd07 \ud83c\udd08 \ud83c\udd09 \ud83c\udd0a".split(" ");this.numbers=this.fractions.concat(this.digitsSuperscript, +this.digitsSubscript,this.enclosedNumbers,this.fencedNumbers,this.punctuatedNumbers);this.trigonometricFunctions="cos cot csc sec sin tan arccos arccot arccsc arcsec arcsin arctan".split(" ");this.hyperbolicFunctions="cosh coth csch sech sinh tanh arcosh arcoth arcsch arsech arsinh artanh arccosh arccoth arccsch arcsech arcsinh arctanh".split(" ");this.algebraicFunctions="deg det dim hom ker Tr tr".split(" ");this.elementaryFunctions="log ln lg exp expt gcd gcd arg im re Pr".split(" ");this.prefixFunctions= +this.trigonometricFunctions.concat(this.hyperbolicFunctions,this.algebraicFunctions,this.elementaryFunctions);this.limitFunctions="inf lim liminf limsup max min sup injlim projlim".split(" ");this.infixFunctions=["mod","rem"];this.symbolSetToSemantic_=[{set:this.generalPunctuations,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.ellipses,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.ELLIPSIS},{set:this.fullStops,type:cvox.SemanticAttr.Type.PUNCTUATION, +role:cvox.SemanticAttr.Role.FULLSTOP},{set:this.dashes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.DASH},{set:this.primes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.PRIME},{set:this.leftFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.OPEN},{set:this.rightFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.CLOSE},{set:this.topFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.TOP},{set:this.bottomFences, +type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.BOTTOM},{set:this.neutralFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.NEUTRAL},{set:this.smallLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER, +role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD}, +{set:this.smallLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SCRIPT},{set:this.capitalLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER, +font:cvox.SemanticAttr.Font.SCRIPT},{set:this.smallLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.capitalLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.smallLatinFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.capitalLatinFraktur, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.smallLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.capitalLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.smallLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER, +font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.capitalLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.smallLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.capitalLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.smallLatinSansSerifBold, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalLatinSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.smallLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.capitalLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER, +role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.smallLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.capitalLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.latinDoubleStruckItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCKITALIC}, +{set:this.smallGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER, +font:cvox.SemanticAttr.Font.BOLD},{set:this.smallGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallGreekSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalGreekSansSerifBold, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.greekDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.hebrewLetters,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.OTHERLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsNormal,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER, +font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsFullWidth,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.BOLD},{set:this.digitsDoubleStruck,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.digitsSansSerif,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER, +font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.digitsSansSerifBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.digitsMonospace,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.numbers,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER},{set:this.additions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.ADDITION}, +{set:this.multiplications,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION},{set:this.subtractions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.SUBTRACTION},{set:this.divisions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.DIVISION},{set:this.prefixOps,type:cvox.SemanticAttr.Type.PREFIXOP,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.equalities,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.EQUALITY},{set:this.inequalities, +type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.INEQUALITY},{set:this.relations,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.arrows,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.ARROW},{set:this.sumOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.SUM},{set:this.intOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.INTEGRAL},{set:this.limitFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.LIMFUNC}, +{set:this.prefixFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.infixFunctions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION}]};goog.addSingletonGetter(cvox.SemanticAttr); +cvox.SemanticAttr.Type={PUNCTUATION:"punctuation",FENCE:"fence",NUMBER:"number",IDENTIFIER:"identifier",TEXT:"text",OPERATOR:"operator",RELATION:"relation",LARGEOP:"largeop",FUNCTION:"function",ACCENT:"accent",FENCED:"fenced",FRACTION:"fraction",PUNCTUATED:"punctuated",RELSEQ:"relseq",MULTIREL:"multirel",INFIXOP:"infixop",PREFIXOP:"prefixop",POSTFIXOP:"postfixop",APPL:"appl",INTEGRAL:"integral",BIGOP:"bigop",SQRT:"sqrt",ROOT:"root",LIMUPPER:"limupper",LIMLOWER:"limlower",LIMBOTH:"limboth",SUBSCRIPT:"subscript", +SUPERSCRIPT:"superscript",UNDERSCORE:"underscore",OVERSCORE:"overscore",TABLE:"table",MULTILINE:"multiline",MATRIX:"matrix",VECTOR:"vector",CASES:"cases",ROW:"row",LINE:"line",CELL:"cell",UNKNOWN:"unknown",EMPTY:"empty"}; +cvox.SemanticAttr.Role={ELLIPSIS:"ellipsis",FULLSTOP:"fullstop",DASH:"dash",PRIME:"prime",VBAR:"vbar",OPENFENCE:"openfence",CLOSEFENCE:"closefence",APPLICATION:"application",OPEN:"open",CLOSE:"close",TOP:"top",BOTTOM:"bottom",NEUTRAL:"neutral",LATINLETTER:"latinletter",GREEKLETTER:"greekletter",OTHERLETTER:"otherletter",INTEGER:"integer",FLOAT:"float",OTHERNUMBER:"othernumber",MULTIACCENT:"multiaccent",OVERACCENT:"overaccent",UNDERACCENT:"underaccent",LEFTRIGHT:"leftright",ABOVEBELOW:"abovebelow", +SEQUENCE:"sequence",ENDPUNCT:"endpunct",STARTPUNCT:"startpunct",NEGATIVE:"negative",NEGATION:"negation",MULTIOP:"multiop",LIMFUNC:"limit function",INFIXFUNC:"infix function",PREFIXFUNC:"prefix function",POSTFIXFUNC:"postfix function",SUM:"sum",INTEGRAL:"integral",ADDITION:"addition",MULTIPLICATION:"multiplication",DIVISION:"division",SUBTRACTION:"subtraction",IMPLICIT:"implicit",EQUALITY:"equality",INEQUALITY:"inequality",ELEMENT:"element",BINREL:"binrel",ARROW:"arrow",MULTILINE:"multiline",MATRIX:"matrix", +VECTOR:"vector",CASES:"cases",TABLE:"table",UNKNOWN:"unknown"};cvox.SemanticAttr.Font={BOLD:"bold",BOLDFRAKTUR:"bold-fraktur",BOLDITALIC:"bold-italic",BOLDSCRIPT:"bold-script",DOUBLESTRUCK:"double-struck",DOUBLESTRUCKITALIC:"double-struck-italic",FRAKTUR:"fraktur",ITALIC:"italic",MONOSPACE:"monospace",NORMAL:"normal",SCRIPT:"script",SANSSERIF:"sans-serif",SANSSERIFITALIC:"sans-serif-italic",SANSSERIFBOLD:"sans-serif-bold",SANSSERIFBOLDITALIC:"sans-serif-bold-italic",UNKNOWN:"unknown"}; +cvox.SemanticAttr.lookupMeaning=function(a){return cvox.SemanticAttr.getInstance().lookupMeaning_(a)};cvox.SemanticAttr.invisibleTimes=function(){return cvox.SemanticAttr.getInstance().invisibleTimes_};cvox.SemanticAttr.invisibleComma=function(){return cvox.SemanticAttr.getInstance().invisibleComma_};cvox.SemanticAttr.functionApplication=function(){return cvox.SemanticAttr.getInstance().functionApplication_}; +cvox.SemanticAttr.isMatchingFenceRole=function(a,b){return a==cvox.SemanticAttr.Role.OPEN&&b==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL&&b==cvox.SemanticAttr.Role.NEUTRAL||a==cvox.SemanticAttr.Role.TOP&&b==cvox.SemanticAttr.Role.BOTTOM};cvox.SemanticAttr.isMatchingFence=function(a,b){return cvox.SemanticAttr.getInstance().isMatchingFence_(a,b)};cvox.SemanticAttr.isOpeningFence=function(a){return a==cvox.SemanticAttr.Role.OPEN||a==cvox.SemanticAttr.Role.NEUTRAL}; +cvox.SemanticAttr.isClosingFence=function(a){return a==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL};cvox.SemanticAttr.isCharacterD=function(a){var b="d \u2146 \uff44 \ud835\udc1d \ud835\udc51 \ud835\udcb9 \ud835\udced \ud835\udd21 \ud835\udd55 \ud835\udd89 \ud835\uddbd \ud835\uddf1 \ud835\ude25 \ud835\ude8d".split(" ");return-1!=b.indexOf(a)}; +cvox.SemanticAttr.prototype.isMatchingFence_=function(a,b){return-1!=this.neutralFences.indexOf(a)?a==b:this.openClosePairs[a]==b||this.topBottomPairs[a]==b}; +cvox.SemanticAttr.prototype.lookupMeaning_=function(a){for(var b=0,c;c=this.symbolSetToSemantic_[b];b++)if(-1!=c.set.indexOf(a))return{role:c.role||cvox.SemanticAttr.Role.UNKNOWN,type:c.type||cvox.SemanticAttr.Type.UNKNOWN,font:c.font||cvox.SemanticAttr.Font.UNKNOWN};return{role:cvox.SemanticAttr.Role.UNKNOWN,type:cvox.SemanticAttr.Type.UNKNOWN,font:cvox.SemanticAttr.Font.UNKNOWN}};cvox.SemanticTree=function(a){this.idCounter_=0;this.mathml=a;this.root=this.parseMathml_(a)};cvox.SemanticTree.Node=function(a){this.id=a;this.mathml=[];this.parent=null;this.type=cvox.SemanticAttr.Type.UNKNOWN;this.role=cvox.SemanticAttr.Role.UNKNOWN;this.font=cvox.SemanticAttr.Font.UNKNOWN;this.childNodes=[];this.textContent="";this.contentNodes=[]}; +cvox.SemanticTree.Node.prototype.querySelectorAll=function(a){for(var b=[],c=0,d;d=this.childNodes[c];c++)b=b.concat(d.querySelectorAll(a));a(this)&&b.unshift(this);return b};cvox.SemanticTree.prototype.xml=function(a){var b=new DOMParser,b=b.parseFromString("<stree></stree>","text/xml");a=this.root.xml(b,a);b.childNodes[0].appendChild(a);return b.childNodes[0]}; +cvox.SemanticTree.Node.prototype.xml=function(a,b){var c=function(c,d){for(var g=d.map(function(c){return c.xml(a,b)}),h=a.createElement(c),k=0,l;l=g[k];k++)h.appendChild(l);return h},d=a.createElement(this.type);b||this.xmlAttributes_(d);d.textContent=this.textContent;0<this.contentNodes.length&&d.appendChild(c("content",this.contentNodes));0<this.childNodes.length&&d.appendChild(c("children",this.childNodes));return d};cvox.SemanticTree.prototype.toString=function(a){var b=new XMLSerializer;return b.serializeToString(this.xml(a))}; +cvox.SemanticTree.prototype.formatXml=function(a){a=this.toString(a);return cvox.SemanticTree.formatXml(a)};cvox.SemanticTree.formatXml=function(a){var b=/(>)(<)(\/*)/g;a=a.replace(b,"$1\r\n$2$3");b=/(>)(.+)(<c)/g;a=a.replace(b,"$1\r\n$2\r\n$3");var c="",d="";a.split("\r\n").forEach(function(a){a.match(/.+<\/\w[^>]*>$/)?c+=d+a+"\r\n":a.match(/^<\/\w/)?d&&(d=d.slice(2),c+=d+a+"\r\n"):a.match(/^<\w[^>]*[^\/]>.*$/)?(c+=d+a+"\r\n",d+=" "):c+=d+a+"\r\n"});return c}; +cvox.SemanticTree.Node.prototype.toString=function(a){var b=new XMLSerializer,c=new DOMParser,c=c.parseFromString("","text/xml");return b.serializeToString(this.xml(c,a))};cvox.SemanticTree.Node.prototype.xmlAttributes_=function(a){a.setAttribute("role",this.role);this.font!=cvox.SemanticAttr.Font.UNKNOWN&&a.setAttribute("font",this.font);a.setAttribute("id",this.id)};cvox.SemanticTree.prototype.createNode_=function(){return new cvox.SemanticTree.Node(this.idCounter_++)}; +cvox.SemanticTree.Node.prototype.updateContent_=function(a){a=a.trim();if(this.textContent!=a){var b=cvox.SemanticAttr.lookupMeaning(a);this.textContent=a;this.role=b.role;this.type=b.type;this.font=b.font}};cvox.SemanticTree.Node.prototype.addMathmlNodes_=function(a){for(var b=0,c;c=a[b];b++)-1==this.mathml.indexOf(c)&&this.mathml.push(c)};cvox.SemanticTree.Node.prototype.appendChild_=function(a){this.childNodes.push(a);this.addMathmlNodes_(a.mathml);a.parent=this}; +cvox.SemanticTree.Node.prototype.appendContentNode_=function(a){a&&(this.contentNodes.push(a),this.addMathmlNodes_(a.mathml),a.parent=this)}; +cvox.SemanticTree.prototype.parseMathml_=function(a){var b=cvox.DomUtil.toArray(a.children);switch(cvox.SemanticUtil.tagName(a)){case "MATH":case "MROW":case "MPADDED":case "MSTYLE":return b=cvox.SemanticUtil.purgeNodes(b),1==b.length?this.parseMathml_(b[0]):this.processRow_(this.parseMathmlChildren_(b));case "MFRAC":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.FRACTION,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]),a.role=cvox.SemanticAttr.Role.DIVISION,a;case "MSUB":case "MSUP":case "MSUBSUP":case "MOVER":case "MUNDER":case "MUNDEROVER":return this.makeLimitNode_(cvox.SemanticUtil.tagName(a), +this.parseMathmlChildren_(b));case "MROOT":return this.makeBranchNode_(cvox.SemanticAttr.Type.ROOT,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]);case "MSQRT":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),this.makeBranchNode_(cvox.SemanticAttr.Type.SQRT,[this.processRow_(b)],[]);case "MTABLE":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.TABLE,this.parseMathmlChildren_(b),[]),cvox.SemanticTree.tableIsMultiline_(a)&&this.tableToMultiline_(a),a;case "MTR":return a= +this.makeBranchNode_(cvox.SemanticAttr.Type.ROW,this.parseMathmlChildren_(b),[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTD":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),a=this.makeBranchNode_(cvox.SemanticAttr.Type.CELL,[this.processRow_(b)],[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTEXT":return a=this.makeLeafNode_(a),a.type=cvox.SemanticAttr.Type.TEXT,a;case "MI":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.IDENTIFIER), +a;case "MN":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.NUMBER),a;case "MO":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.OPERATOR),a;default:return this.makeUnprocessed_(a)}};cvox.SemanticTree.prototype.parseMathmlChildren_=function(a){for(var b=[],c=0,d;d=a[c];c++)b.push(this.parseMathml_(d));return b}; +cvox.SemanticTree.prototype.makeUnprocessed_=function(a){var b=this.createNode_();b.mathml=[a];return b};cvox.SemanticTree.prototype.makeEmptyNode_=function(){var a=this.createNode_();a.type=cvox.SemanticAttr.Type.EMPTY;return a};cvox.SemanticTree.prototype.makeLeafNode_=function(a){var b=this.createNode_();b.mathml=[a];b.updateContent_(a.textContent);b.font=a.getAttribute("mathvariant")||b.font;return b}; +cvox.SemanticTree.prototype.makeBranchNode_=function(a,b,c,d){var e=this.createNode_();d&&e.updateContent_(d);e.type=a;e.childNodes=b;e.contentNodes=c;b.concat(c).forEach(function(a){a.parent=e;e.addMathmlNodes_(a.mathml)});return e};cvox.SemanticTree.prototype.makeImplicitNode_=function(a){if(1==a.length)return a[0];var b=this.createNode_();b.updateContent_(cvox.SemanticAttr.invisibleTimes());a=this.makeInfixNode_(a,b);a.role=cvox.SemanticAttr.Role.IMPLICIT;return a}; +cvox.SemanticTree.prototype.makeInfixNode_=function(a,b){return this.makeBranchNode_(cvox.SemanticAttr.Type.INFIXOP,a,[b],b.textContent)};cvox.SemanticTree.prototype.makeConcatNode_=function(a,b,c){if(0==b.length)return a;var d=b.map(function(a){return a.textContent}).join(" ");a=this.makeBranchNode_(c,[a],b,d);0<b.length&&(a.role=cvox.SemanticAttr.Role.MULTIOP);return a}; +cvox.SemanticTree.prototype.makePrefixNode_=function(a,b){for(var c=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.attrPred_("role","SUBTRACTION")),d=this.makeConcatNode_(a,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);0<c.rel.length;)d=this.makeConcatNode_(d,[c.rel.pop()],cvox.SemanticAttr.Type.PREFIXOP),d.role=cvox.SemanticAttr.Role.NEGATIVE,d=this.makeConcatNode_(d,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);return d}; +cvox.SemanticTree.prototype.makePostfixNode_=function(a,b){return this.makeConcatNode_(a,b,cvox.SemanticAttr.Type.POSTFIXOP)};cvox.SemanticTree.prototype.processRow_=function(a){if(0==a.length)return this.makeEmptyNode_();a=this.getFencesInRow_(a);a=this.processTablesInRow_(a);a=this.getPunctuationInRow_(a);a=this.getFunctionsInRow_(a);return this.processRelationsInRow_(a)}; +cvox.SemanticTree.prototype.processRelationsInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","RELATION")),c=b.rel[0];if(!c)return this.processOperationsInRow_(a);if(1==a.length)return a[0];a=b.comp.map(goog.bind(this.processOperationsInRow_,this));return b.rel.every(function(a){return a.textContent==c.textContent})?this.makeBranchNode_(cvox.SemanticAttr.Type.RELSEQ,a,b.rel,c.textContent):this.makeBranchNode_(cvox.SemanticAttr.Type.MULTIREL,a,b.rel)}; +cvox.SemanticTree.prototype.processOperationsInRow_=function(a){if(0==a.length)return this.makeEmptyNode_();if(1==a.length)return a[0];for(var b=[];0<a.length&&a[0].type==cvox.SemanticAttr.Type.OPERATOR;)b.push(a.shift());if(0==a.length)return this.makePrefixNode_(b.pop(),b);if(1==a.length)return this.makePrefixNode_(a[0],b);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));b=this.makePrefixNode_(this.makeImplicitNode_(a.head),b);return a.div?this.makeOperationsTree_(a.tail, +b,a.div):b}; +cvox.SemanticTree.prototype.makeOperationsTree_=function(a,b,c,d){d=d||[];if(0==a.length)return d.unshift(c),b.type==cvox.SemanticAttr.Type.INFIXOP?(d=this.makePostfixNode_(b.childNodes.pop(),d),b.appendChild_(d),b):this.makePostfixNode_(b,d);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));if(0==a.head.length)return d.push(a.div),this.makeOperationsTree_(a.tail,b,c,d);d=this.makePrefixNode_(this.makeImplicitNode_(a.head),d);b=this.appendOperand_(b,c,d);return a.div? +this.makeOperationsTree_(a.tail,b,a.div,[]):b};cvox.SemanticTree.prototype.appendOperand_=function(a,b,c){return a.type!=cvox.SemanticAttr.Type.INFIXOP?this.makeInfixNode_([a,c],b):this.appendExistingOperator_(a,b,c)?a:b.role==cvox.SemanticAttr.Role.MULTIPLICATION?this.appendMultiplicativeOp_(a,b,c):this.appendAdditiveOp_(a,b,c)}; +cvox.SemanticTree.prototype.appendMultiplicativeOp_=function(a,b,c){for(var d=a,e=a.childNodes[a.childNodes.length-1];e&&e.type==cvox.SemanticAttr.Type.INFIXOP;)d=e,e=d.childNodes[a.childNodes.length-1];b=this.makeInfixNode_([d.childNodes.pop(),c],b);d.appendChild_(b);return a};cvox.SemanticTree.prototype.appendAdditiveOp_=function(a,b,c){return this.makeInfixNode_([a,c],b)}; +cvox.SemanticTree.prototype.appendExistingOperator_=function(a,b,c){if(!a||a.type!=cvox.SemanticAttr.Type.INFIXOP)return!1;if(a.textContent==b.textContent)return a.appendContentNode_(b),a.appendChild_(c),!0;this.appendExistingOperator_(a.childNodes[a.childNodes.length-1],b,c)};cvox.SemanticTree.prototype.getFencesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","FENCE"));var b=a.comp.shift();return this.processFences_(a.rel,a.comp,[],[b])}; +cvox.SemanticTree.prototype.processFences_=function(a,b,c,d){if(0==a.length&&0==c.length)return d[0];var e=cvox.SemanticTree.attrPred_("role","OPEN");if(0==a.length){for(a=d.shift();0<c.length;){if(e(c[0]))b=c.shift(),cvox.SemanticTree.fenceToPunct_(b),a.push(b);else{c=cvox.SemanticTree.sliceNodes_(c,e);var f=c.head.length-1,g=this.processNeutralFences_(c.head,d.slice(0,f));d=d.slice(f);a.push.apply(a,g);c.div&&c.tail.unshift(c.div);c=c.tail}a.push.apply(a,d.shift())}return a}f=c[c.length-1];g=a[0].role; +if(g==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&(!f||a[0].textContent!=f.textContent))return c.push(a.shift()),d.push(b.shift()),this.processFences_(a,b,c,d);if(f&&(g==cvox.SemanticAttr.Role.CLOSE&&f.role==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&a[0].textContent==f.textContent))return e=this.makeHorizontalFencedNode_(c.pop(),a.shift(),d.pop()),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c,d);if(f&&g==cvox.SemanticAttr.Role.CLOSE&&f.role== +cvox.SemanticAttr.Role.NEUTRAL&&c.some(e))return c=cvox.SemanticTree.sliceNodes_(c,e,!0),e=d.pop(),f=d.length-c.tail.length+1,g=this.processNeutralFences_(c.tail,d.slice(f)),d=d.slice(0,f),e=this.makeHorizontalFencedNode_(c.div,a.shift(),d.pop().concat(g,e)),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c.head,d);e=a.shift();cvox.SemanticTree.fenceToPunct_(e);d.push(d.pop().concat([e],b.shift()));return this.processFences_(a,b,c,d)}; +cvox.SemanticTree.prototype.processNeutralFences_=function(a,b){if(0==a.length)return a;if(1==a.length)return cvox.SemanticTree.fenceToPunct_(a[0]),a;var c=a.shift(),d=cvox.SemanticTree.sliceNodes_(a,function(a){return a.textContent==c.textContent});if(!d.div){cvox.SemanticTree.fenceToPunct_(c);var e=b.shift();e.unshift(c);return e.concat(this.processNeutralFences_(a,b))}var f=this.combineFencedContent_(c,d.div,d.head,b);return 0<d.tail.length?(e=f.shift(),d=this.processNeutralFences_(d.tail,f),e.concat(d)): +f[0]};cvox.SemanticTree.prototype.combineFencedContent_=function(a,b,c,d){if(0==c.length)return a=this.makeHorizontalFencedNode_(a,b,d.shift()),d.unshift(a),d;var e=d.shift(),f=c.length-1,g=d.slice(0,f);d=d.slice(f);f=d.shift();c=this.processNeutralFences_(c,g);e.push.apply(e,c);e.push.apply(e,f);a=this.makeHorizontalFencedNode_(a,b,e);0<d.length?d[0].unshift(a):d=[[a]];return d}; +cvox.SemanticTree.fenceToPunct_=function(a){a.type=cvox.SemanticAttr.Type.PUNCTUATION;switch(a.role){case cvox.SemanticAttr.Role.NEUTRAL:a.role=cvox.SemanticAttr.Role.VBAR;break;case cvox.SemanticAttr.Role.OPEN:a.role=cvox.SemanticAttr.Role.OPENFENCE;break;case cvox.SemanticAttr.Role.CLOSE:a.role=cvox.SemanticAttr.Role.CLOSEFENCE}}; +cvox.SemanticTree.prototype.makeHorizontalFencedNode_=function(a,b,c){c=this.processRow_(c);b=this.makeBranchNode_(cvox.SemanticAttr.Type.FENCED,[c],[a,b]);b.role=a.role==cvox.SemanticAttr.Role.OPEN?cvox.SemanticAttr.Role.LEFTRIGHT:a.role;return b}; +cvox.SemanticTree.prototype.getPunctuationInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,function(a){return cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)&&!cvox.SemanticTree.attrPred_("role","ELLIPSIS")(a)});if(0==b.rel.length)return a;a=[];var c=b.comp.shift();0<c.length&&a.push(this.processRow_(c));for(var d=0;0<b.comp.length;)a.push(b.rel[d++]),c=b.comp.shift(),0<c.length&&a.push(this.processRow_(c));return[this.makePunctuatedNode_(a,b.rel)]}; +cvox.SemanticTree.prototype.makePunctuatedNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.PUNCTUATED,a,b);c.role=1==b.length&&a[0].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.STARTPUNCT:1==b.length&&a[a.length-1].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.ENDPUNCT:cvox.SemanticAttr.Role.SEQUENCE;return c}; +cvox.SemanticTree.prototype.makeLimitNode_=function(a,b){var c=b[0],d=cvox.SemanticTree.attrPred_("type","FUNCTION")(c),d=cvox.SemanticTree.attrPred_("type","LARGEOP")(c)||cvox.SemanticTree.attrPred_("type","LIMBOTH")(c)||cvox.SemanticTree.attrPred_("type","LIMLOWER")(c)||cvox.SemanticTree.attrPred_("type","LIMUPPER")(c)||d&&cvox.SemanticTree.attrPred_("role","LIMFUNC")(c),e=cvox.SemanticAttr.Type.UNKNOWN;if(d)switch(a){case "MSUB":case "MUNDER":e=cvox.SemanticAttr.Type.LIMLOWER;break;case "MSUP":case "MOVER":e= +cvox.SemanticAttr.Type.LIMUPPER;break;case "MSUBSUP":case "MUNDEROVER":e=cvox.SemanticAttr.Type.LIMBOTH}else switch(a){case "MSUB":e=cvox.SemanticAttr.Type.SUBSCRIPT;break;case "MSUP":e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MSUBSUP":d=this.makeBranchNode_(cvox.SemanticAttr.Type.SUBSCRIPT,[c,b[1]],[]);d.role=c.role;b=[d,b[2]];e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MOVER":e=cvox.SemanticAttr.Type.OVERSCORE;break;case "MUNDER":e=cvox.SemanticAttr.Type.UNDERSCORE;break;default:d=this.makeBranchNode_(cvox.SemanticAttr.Type.UNDERSCORE, +[c,b[1]],[]),d.role=c.role,b=[d,b[2]],e=cvox.SemanticAttr.Type.OVERSCORE}d=this.makeBranchNode_(e,b,[]);d.role=c.role;return d};cvox.SemanticTree.prototype.getFunctionsInRow_=function(a,b){b=b||[];if(0==a.length)return b;var c=a.shift(),d=cvox.SemanticTree.classifyFunction_(c,a);if(!d)return b.push(c),this.getFunctionsInRow_(a,b);var e=this.getFunctionsInRow_(a,[]),c=this.getFunctionArgs_(c,e,d);return b.concat(c)}; +cvox.SemanticTree.classifyFunction_=function(a,b){if(a.type==cvox.SemanticAttr.Type.APPL||a.type==cvox.SemanticAttr.Type.BIGOP||a.type==cvox.SemanticAttr.Type.INTEGRAL)return"";if(b[0]&&b[0].textContent==cvox.SemanticAttr.functionApplication())return b.shift(),cvox.SemanticTree.propagatePrefixFunc_(a),"prefix";switch(a.role){case cvox.SemanticAttr.Role.INTEGRAL:return"integral";case cvox.SemanticAttr.Role.SUM:return"bigop";case cvox.SemanticAttr.Role.PREFIXFUNC:case cvox.SemanticAttr.Role.LIMFUNC:return"prefix"; +default:if(a.type==cvox.SemanticAttr.Type.IDENTIFIER)return"simple"}return""};cvox.SemanticTree.propagatePrefixFunc_=function(a){a&&(a.role=cvox.SemanticAttr.Role.PREFIXFUNC,cvox.SemanticTree.propagatePrefixFunc_(a.childNodes[0]))}; +cvox.SemanticTree.prototype.getFunctionArgs_=function(a,b,c){switch(c){case "integral":return b=this.getIntegralArgs_(b),c=this.processRow_(b.integrand),a=this.makeIntegralNode_(a,c,b.intvar),b.rest.unshift(a),b.rest;case "prefix":if(b[0]&&b[0].type==cvox.SemanticAttr.Type.FENCED)return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;case "bigop":b=cvox.SemanticTree.sliceNodes_(b,cvox.SemanticTree.prefixFunctionBoundary_);var d=this.processRow_(b.head);a="prefix"==c?this.makeFunctionNode_(a, +d):this.makeBigOpNode_(a,d);b.div&&b.tail.unshift(b.div);b.tail.unshift(a);return b.tail;case "simple":if(0==b.length)return[a];c=b[0];if(c.type==cvox.SemanticAttr.Type.FENCED&&c.role!=cvox.SemanticAttr.Role.NEUTRAL&&this.simpleFunctionHeuristic_(c))return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;b.unshift(a);return b}}; +cvox.SemanticTree.prototype.getIntegralArgs_=function(a,b){b=b||[];if(0==a.length)return{integrand:b,intvar:null,rest:a};var c=a[0];if(cvox.SemanticTree.generalFunctionBoundary_(c))return{integrand:b,intvar:null,rest:a};if(cvox.SemanticTree.integralDxBoundarySingle_(c))return{integrand:b,intvar:c,rest:a.slice(1)};if(a[1]&&cvox.SemanticTree.integralDxBoundary_(c,a[1])){var d=this.createNode_();d.updateContent_(cvox.SemanticAttr.invisibleComma());c=this.makePunctuatedNode_([c,d,a[1]],[d]);c.role=cvox.SemanticAttr.Role.INTEGRAL; +return{integrand:b,intvar:c,rest:a.slice(2)}}b.push(a.shift());return this.getIntegralArgs_(a,b)};cvox.SemanticTree.prototype.makeFunctionNode_=function(a,b){var c=this.createNode_();c.updateContent_(cvox.SemanticAttr.functionApplication());c.type=cvox.SemanticAttr.Type.PUNCTUATION;c.role=cvox.SemanticAttr.Role.APPLICATION;c=this.makeBranchNode_(cvox.SemanticAttr.Type.APPL,[a,b],[c]);c.role=a.role;return c}; +cvox.SemanticTree.prototype.makeBigOpNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.BIGOP,[a,b],[]);c.role=a.role;return c};cvox.SemanticTree.prototype.makeIntegralNode_=function(a,b,c){b=b||this.makeEmptyNode_();c=c||this.makeEmptyNode_();b=this.makeBranchNode_(cvox.SemanticAttr.Type.INTEGRAL,[a,b,c],[]);b.role=a.role;return b}; +cvox.SemanticTree.prototype.simpleFunctionHeuristic_=function(a){a=a.childNodes;if(0==a.length)return!0;if(1<a.length)return!1;a=a[0];return a.type!=cvox.SemanticAttr.Type.INFIXOP||a.role==cvox.SemanticAttr.Role.IMPLICIT&&!a.childNodes.some(cvox.SemanticTree.attrPred_("type","INFIXOP"))?!0:!1};cvox.SemanticTree.prefixFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","OPERATOR")(a)||cvox.SemanticTree.generalFunctionBoundary_(a)}; +cvox.SemanticTree.integralDxBoundary_=function(a,b){return!!b&&cvox.SemanticTree.attrPred_("type","IDENTIFIER")(b)&&cvox.SemanticAttr.isCharacterD(a.textContent)};cvox.SemanticTree.integralDxBoundarySingle_=function(a){if(cvox.SemanticTree.attrPred_("type","IDENTIFIER")(a)){var b=a.textContent[0];return b&&a.textContent[1]&&cvox.SemanticAttr.isCharacterD(b)}return!1}; +cvox.SemanticTree.generalFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","RELATION")(a)||cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)}; +cvox.SemanticTree.prototype.processTablesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.tableIsMatrixOrVector_);for(var b=[],c=0,d;d=a.rel[c];c++)b=b.concat(a.comp.shift()),b.push(this.tableToMatrixOrVector_(d));b=b.concat(a.comp.shift());a=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.isTableOrMultiline_);b=[];for(c=0;d=a.rel[c];c++){var e=a.comp.shift();cvox.SemanticTree.tableIsCases_(d,e)&&this.tableToCases_(d,e.pop());b=b.concat(e);b.push(d)}return b.concat(a.comp.shift())}; +cvox.SemanticTree.isTableOrMultiline_=function(a){return!!a&&(cvox.SemanticTree.attrPred_("type","TABLE")(a)||cvox.SemanticTree.attrPred_("type","MULTILINE")(a))};cvox.SemanticTree.tableIsMatrixOrVector_=function(a){return!!a&&cvox.SemanticTree.attrPred_("type","FENCED")(a)&&cvox.SemanticTree.attrPred_("role","LEFTRIGHT")(a)&&1==a.childNodes.length&&cvox.SemanticTree.isTableOrMultiline_(a.childNodes[0])}; +cvox.SemanticTree.prototype.tableToMatrixOrVector_=function(a){var b=a.childNodes[0],c=cvox.SemanticTree.attrPred_("type","MULTILINE")(b)?"VECTOR":"MATRIX";b.type=cvox.SemanticAttr.Type[c];a.contentNodes.forEach(goog.bind(b.appendContentNode_,b));a=0;for(var d;d=b.childNodes[a];a++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role[c]);return b};cvox.SemanticTree.tableIsCases_=function(a,b){return 0<b.length&&cvox.SemanticTree.attrPred_("role","OPENFENCE")(b[b.length-1])}; +cvox.SemanticTree.prototype.tableToCases_=function(a,b){for(var c=0,d;d=a.childNodes[c];c++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role.CASES);a.type=cvox.SemanticAttr.Type.CASES;a.appendContentNode_(b);return a};cvox.SemanticTree.tableIsMultiline_=function(a){return a.childNodes.every(function(a){a=a.childNodes.length;return 1>=a})}; +cvox.SemanticTree.prototype.tableToMultiline_=function(a){a.type=cvox.SemanticAttr.Type.MULTILINE;for(var b=0,c;c=a.childNodes[b];b++)cvox.SemanticTree.rowToLine_(c,cvox.SemanticAttr.Role.MULTILINE)};cvox.SemanticTree.rowToLine_=function(a,b){b=b||cvox.SemanticAttr.Role.UNKNOWN;cvox.SemanticTree.attrPred_("type","ROW")(a)&&1==a.childNodes.length&&cvox.SemanticTree.attrPred_("type","CELL")(a.childNodes[0])&&(a.type=cvox.SemanticAttr.Type.LINE,a.role=b,a.childNodes=a.childNodes[0].childNodes)}; +cvox.SemanticTree.assignRoleToRow_=function(a,b){if(cvox.SemanticTree.attrPred_("type","LINE")(a))a.role=b;else if(cvox.SemanticTree.attrPred_("type","ROW")(a)){a.role=b;var c=cvox.SemanticTree.attrPred_("type","CELL");a.childNodes.forEach(function(a){c(a)&&(a.role=b)})}}; +cvox.SemanticTree.sliceNodes_=function(a,b,c){c&&a.reverse();for(var d=[],e=0,f;f=a[e];e++){if(b(f))return c?{head:a.slice(e+1).reverse(),div:f,tail:d.reverse()}:{head:d,div:f,tail:a.slice(e+1)};d.push(f)}return c?{head:[],div:null,tail:d.reverse()}:{head:d,div:null,tail:[]}};cvox.SemanticTree.partitionNodes_=function(a,b){var c=a,d=[],e=[];do{var f=cvox.SemanticTree.sliceNodes_(c,b);e.push(f.head);d.push(f.div);c=f.tail}while(f.div);d.pop();return{rel:d,comp:e}}; +cvox.SemanticTree.attrPred_=function(a,b){return function(c){var d;o:{switch(a){case "type":d=cvox.SemanticAttr.Type[b];break o;case "role":d=cvox.SemanticAttr.Role[b];break o;case "font":d=cvox.SemanticAttr.Font[b];break o}d=void 0}return c[a]==d}};cvox.TraverseMath=function(){this.activeNode=this.activeMath=null;this.allTexs_={};this.allMathjaxs_={};this.activeMathmlHost=null;this.domain="default";this.style="short";cvox.ChromeVox.mathJax&&(this.initializeMathjaxs(),this.initializeAltMaths())};goog.addSingletonGetter(cvox.TraverseMath);cvox.TraverseMath.setSemantic_=!1;cvox.TraverseMath.toggleSemantic=function(){return cvox.TraverseMath.setSemantic_=!cvox.TraverseMath.setSemantic_}; +cvox.TraverseMath.prototype.initialize=function(a){if(cvox.DomUtil.isMathImg(a)){if(!a.hasAttribute("cvoxid"))return;a=a.getAttribute("cvoxid");a=this.allTexs_[a]}cvox.DomUtil.isMathJax(a)&&(this.activeMathmlHost=this.allMathjaxs_[a.getAttribute("id")]);this.activeMath=this.activeMathmlHost||a;(this.activeNode=this.activeMathmlHost||a)&&cvox.TraverseMath.setSemantic_&&this.activeNode.nodeType==Node.ELEMENT_NODE&&(this.activeNode=(new cvox.SemanticTree(this.activeNode)).xml())}; +cvox.TraverseMath.prototype.addMathjax=function(a,b){var c=cvox.DomUtil.getMathSpanId(b);c?this.allMathjaxs_[c]=a:this.redoMathjaxs(a,b)};cvox.TraverseMath.prototype.redoMathjaxs=function(a,b){var c=goog.bind(function(){this.addMathjax(a,b)},this);setTimeout(c,500)}; +cvox.TraverseMath.prototype.initializeMathjaxs=function(){var a=goog.bind(function(a,c){this.addMathjax(a,c)},this);cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.getAllJax(a),cvox.ChromeVox.mathJax.registerSignal(a,"New Math"))})}; +cvox.TraverseMath.prototype.initializeAltMaths=function(){if(document.querySelector(cvox.DomUtil.altMathQuerySelector("tex")+", "+cvox.DomUtil.altMathQuerySelector("asciimath"))){var a=goog.bind(function(a,c){this.allTexs_[c]=a},this);cvox.ChromeVox.mathJax.injectScripts();cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.configMediaWiki(),cvox.ChromeVox.mathJax.getAllTexs(a),cvox.ChromeVox.mathJax.getAllAsciiMaths(a))})}}; +cvox.TraverseMath.prototype.nextSibling=function(a){if(!this.activeNode||!this.activeMath)return null;var b=this.activeNode,b=a?b.previousSibling:b.nextSibling;return b?this.activeNode=b:null};cvox.TraverseMath.prototype.nextParentChild=function(a){if(!this.activeNode||!this.activeMath||this.activeNode==this.activeMath&&a)return null;var b=this.activeNode,b=a?b.parentNode:b.firstChild;return b?this.activeNode=b:null}; +cvox.TraverseMath.prototype.getAttachedActiveNode=function(){var a=this.activeNode;if(!a||a.nodeType!=Node.ELEMENT_NODE)return null;a=a.getAttribute("spanID");return document.getElementById(a)};cvox.MathUtil={};cvox.MathUtil.isMathmlNodeOfClass_=function(a,b){return-1!=b.indexOf(a.tagName.toUpperCase())};cvox.MathUtil.isMathjaxNodeOfClass_=function(a,b){if("SPAN"==a.tagName){var c=a.className.split(" ");return c.some(function(a){return-1!=b.indexOf(a.toUpperCase())})}return!1};cvox.MathUtil.isMathNodeOfClass_=function(a,b){return a.nodeType==Node.ELEMENT_NODE&&(cvox.MathUtil.isMathmlNodeOfClass_(a,b)||cvox.MathUtil.isMathjaxNodeOfClass_(a,b))};cvox.MathUtil.TOKEN_LIST="MI MN MO MTEXT MSPACE MS".split(" "); +cvox.MathUtil.isToken=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TOKEN_LIST)};cvox.MathUtil.LAYOUT_LIST="MROW MFRAC MSQRT MROOT MSTYLE MERROR MPADDED MPHANTOM MFENCED MENCLOSE".split(" ");cvox.MathUtil.isLayout=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.LAYOUT_LIST)};cvox.MathUtil.SCRIPT_LIST="MSUB MSUP MSUBSUP MUNDER MOVER MUNDEROVER MMULTISCRIPTS MPRESCRIPTS".split(" "); +cvox.MathUtil.isScript=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.SCRIPT_LIST)};cvox.MathUtil.TABLES_LIST="MTABLE MLABELEDTR MTR MTD MALIGNGROUP MALIGNMARK".split(" ");cvox.MathUtil.isTables=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TABLES_LIST)};cvox.MathUtil.ELEMENTARY_LIST="MSTACK MLONGDIV MSGROUP MSROW MSCARRIES MSCARRY MSLINE".split(" ");cvox.MathUtil.isElementary=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.ELEMENTARY_LIST)}; +cvox.MathUtil.MATHML_TAG_LIST=[cvox.MathUtil.TOKEN_LIST,cvox.MathUtil.LAYOUT_LIST,cvox.MathUtil.SCRIPT_LIST,cvox.MathUtil.TABLES_LIST,cvox.MathUtil.ELEMENTARY_LIST].reduce(function(a,b){return a.concat(b)});cvox.MathUtil.isMathmlTag=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.MATHML_TAG_LIST)};cvox.MathUtil.WHITESPACE_LIST=["MSROW","MROW","MSPACE","MPHANTOM","MPADDED"];cvox.MathUtil.isWhitespace=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.WHITESPACE_LIST)}; +cvox.MathUtil.isNotWhitespace=function(a){return cvox.MathUtil.isMathmlTag(a)&&!cvox.MathUtil.isWhitespace(a)};cvox.MathUtil.union=function(a,b){return a.concat(b.filter(function(b){return 0>a.indexOf(b)}))};cvox.SpeechRule=function(a,b,c,d){this.name=a;this.dynamicCstr=b;this.precondition=c;this.action=d};cvox.SpeechRule.prototype.toString=function(){var a=[],b;for(b in this.dynamicCstr)a.push(this.dynamicCstr[b]);return this.name+" | "+a.join(".")+" | "+this.precondition.toString()+" ==> "+this.action.toString()};cvox.SpeechRule.Type={NODE:"NODE",MULTI:"MULTI",TEXT:"TEXT",PERSONALITY:"PERSONALITY"}; +cvox.SpeechRule.Type.fromString=function(a){switch(a){case "[n]":return cvox.SpeechRule.Type.NODE;case "[m]":return cvox.SpeechRule.Type.MULTI;case "[t]":return cvox.SpeechRule.Type.TEXT;case "[p]":return cvox.SpeechRule.Type.PERSONALITY;default:throw"Parse error: "+a;}}; +cvox.SpeechRule.Type.toString=function(a){switch(a){case cvox.SpeechRule.Type.NODE:return"[n]";case cvox.SpeechRule.Type.MULTI:return"[m]";case cvox.SpeechRule.Type.TEXT:return"[t]";case cvox.SpeechRule.Type.PERSONALITY:return"[p]";default:throw"Unknown type error: "+a;}};cvox.SpeechRule.Component=function(a){this.type=a.type;this.content=a.content}; +cvox.SpeechRule.Component.fromString=function(a){var b={};b.type=cvox.SpeechRule.Type.fromString(a.substring(0,3));a=a.slice(3).trimLeft();if(!a)throw new cvox.SpeechRule.OutputError("Missing content.");switch(b.type){case cvox.SpeechRule.Type.TEXT:if('"'==a[0]){var c=cvox.SpeechRule.splitString_(a,"\\(")[0].trim();if('"'!=c.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid string syntax.");b.content=c;a=a.slice(c.length).trim();-1==a.indexOf("(")&&(a="");break}case cvox.SpeechRule.Type.NODE:case cvox.SpeechRule.Type.MULTI:c= +a.indexOf(" (");if(-1==c){b.content=a.trim();a="";break}b.content=a.substring(0,c).trim();a=a.slice(c).trimLeft()}b=new cvox.SpeechRule.Component(b);a&&b.addAttributes(a);return b};cvox.SpeechRule.Component.prototype.toString=function(){var a="",a=a+cvox.SpeechRule.Type.toString(this.type),a=a+(this.content?" "+this.content:""),b=this.getAttributes();0<b.length&&(a+=" ("+b.join(", ")+")");return a}; +cvox.SpeechRule.Component.prototype.addAttribute=function(a){var b=a.indexOf(":");-1==b?this[a.trim()]="true":this[a.substring(0,b).trim()]=a.slice(b+1).trim()};cvox.SpeechRule.Component.prototype.addAttributes=function(a){if("("!=a[0]||")"!=a.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid attribute expression: "+a);a=cvox.SpeechRule.splitString_(a.slice(1,-1),",");for(var b=0;b<a.length;b++)this.addAttribute(a[b])}; +cvox.SpeechRule.Component.prototype.getAttributes=function(){var a=[],b;for(b in this)"content"!=b&&"type"!=b&&"function"!=typeof this[b]&&a.push(b+":"+this[b]);return a};cvox.SpeechRule.Action=function(a){this.components=a};cvox.SpeechRule.Action.fromString=function(a){a=cvox.SpeechRule.splitString_(a,";").filter(function(a){return a.match(/\S/)}).map(function(a){return a.trim()});for(var b=[],c=0;c<a.length;c++){var d=cvox.SpeechRule.Component.fromString(a[c]);d&&b.push(d)}return new cvox.SpeechRule.Action(b)}; +cvox.SpeechRule.Action.prototype.toString=function(){var a=this.components.map(function(a){return a.toString()});return a.join("; ")};cvox.SpeechRule.Precondition=function(a,b){this.query=a;this.constraints=b||[]};cvox.SpeechRule.Precondition.prototype.toString=function(){var a=this.constraints.join(", ");return this.query+", "+a}; +cvox.SpeechRule.splitString_=function(a,b){for(var c=[],d="";""!=a;){var e=a.search(b);if(-1==e){if(0!=(a.match(/"/g)||[]).length%2)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);c.push(d+a);a=d=""}else if(0==(a.substring(0,e).match(/"/g)||[]).length%2)c.push(d+a.substring(0,e)),d="",a=a.substring(e+1);else{var f=a.substring(e).search('"');if(-1==f)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);d+=a.substring(0,e+f+1);a=a.substring(e+f+1)}}d&& +c.push(d);return c};cvox.SpeechRule.DynamicCstrAttrib={STYLE:"style"};cvox.SpeechRule.OutputError=function(a){this.name="RuleError";this.message=a||""};goog.inherits(cvox.SpeechRule.OutputError,Error);cvox.SpeechRuleFunctions=function(){};cvox.SpeechRuleFunctions.Store_=function(a,b){this.prefix_=a;this.store_=b};cvox.SpeechRuleFunctions.Store_.prototype.add=function(a,b){this.checkCustomFunctionSyntax_(a)&&(this.store_[a]=b)};cvox.SpeechRuleFunctions.Store_.prototype.lookup=function(a){return this.store_[a]};cvox.SpeechRuleFunctions.CustomQueries=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CQF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomQueries,cvox.SpeechRuleFunctions.Store_); +cvox.SpeechRuleFunctions.CustomStrings=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CSF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomStrings,cvox.SpeechRuleFunctions.Store_);cvox.SpeechRuleFunctions.ContextFunctions=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CTXF",a)};goog.inherits(cvox.SpeechRuleFunctions.ContextFunctions,cvox.SpeechRuleFunctions.Store_); +cvox.SpeechRuleFunctions.Store_.prototype.checkCustomFunctionSyntax_=function(a){var b=RegExp("^"+this.prefix_);return a.match(b)?!0:(console.log("FunctionError: Invalid function name. Expected prefix"+this.prefix_),!1)};cvox.BaseRuleStore=function(){this.customQueries=new cvox.SpeechRuleFunctions.CustomQueries;this.customStrings=new cvox.SpeechRuleFunctions.CustomStrings;this.contextFunctions=new cvox.SpeechRuleFunctions.ContextFunctions;this.speechRules_=[];this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[]}; +cvox.BaseRuleStore.prototype.lookupRule=function(a,b){if(!a||a.nodeType!=Node.ELEMENT_NODE&&a.nodeType!=Node.TEXT_NODE)return null;var c=this.speechRules_.filter(goog.bind(function(c){return this.testDynamicConstraints(b,c)&&this.testPrecondition_(a,c)},this));return 0<c.length?this.pickMostConstraint_(b,c):null}; +cvox.BaseRuleStore.prototype.defineRule=function(a,b,c,d,e){try{var f=cvox.SpeechRule.Action.fromString(c),g=Array.prototype.slice.call(arguments,4),h=new cvox.SpeechRule.Precondition(d,g),g={};g[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;var k=new cvox.SpeechRule(a,g,h,f)}catch(l){if("RuleError"==l.name)return console.log("Rule Error ",d,"("+b+"):",l.message),null;throw l;}this.addRule(k);return k};cvox.BaseRuleStore.prototype.addRule=function(a){this.speechRules_.unshift(a)}; +cvox.BaseRuleStore.prototype.deleteRule=function(a){a=this.speechRules_.indexOf(a);-1!=a&&this.speechRules_.splice(a,1)};cvox.BaseRuleStore.prototype.findRule=function(a){for(var b=0,c;c=this.speechRules_[b];b++)if(a(c))return c;return null};cvox.BaseRuleStore.prototype.findAllRules=function(a){return this.speechRules_.filter(a)};cvox.BaseRuleStore.prototype.evaluateDefault=function(a){return[new cvox.NavDescription({text:a.textContent})]}; +cvox.BaseRuleStore.prototype.removeDuplicates=function(a){for(var b=this.speechRules_.length-1,c;c=this.speechRules_[b];b--)c!=a&&cvox.BaseRuleStore.compareDynamicConstraints_(c.dynamicCstr,a.dynamicCstr)&&cvox.BaseRuleStore.comparePreconditions_(c,a)&&this.speechRules_.splice(b,1)};cvox.BaseRuleStore.prototype.applyCustomQuery=function(a,b){var c=this.customQueries.lookup(b);return c?c(a):null}; +cvox.BaseRuleStore.prototype.applySelector=function(a,b){var c=this.applyCustomQuery(a,b);return c||cvox.XpathUtil.evalXPath(b,a)};cvox.BaseRuleStore.prototype.applyQuery=function(a,b){var c=this.applySelector(a,b);return 0<c.length?c[0]:null};cvox.BaseRuleStore.prototype.applyConstraint=function(a,b){var c=this.applyQuery(a,b);return!!c||cvox.XpathUtil.evaluateBoolean(b,a)}; +cvox.BaseRuleStore.prototype.testDynamicConstraints=function(a,b){var c=Object.keys(a);return c.every(function(c){return a[c]==b.dynamicCstr[c]||"default"==b.dynamicCstr[c]})};cvox.BaseRuleStore.prototype.getDynamicConstraintValues=function(){for(var a={},b=0,c;c=this.speechRules_[b];b++)for(var d in c.dynamicCstr){var e=[c.dynamicCstr[d]];a[d]=a[d]?cvox.MathUtil.union(a[d],e):e}return a}; +cvox.BaseRuleStore.prototype.countMatchingDynamicConstraintValues_=function(a,b){for(var c=0,d=0,e;e=this.dynamicCstrAttribs[d];d++)if(a[e]==b.dynamicCstr[e])c++;else break;return c};cvox.BaseRuleStore.prototype.pickMostConstraint_=function(a,b){b.sort(goog.bind(function(b,d){var e=this.countMatchingDynamicConstraintValues_(a,b),f=this.countMatchingDynamicConstraintValues_(a,d);return e>f?-1:f>e?1:d.precondition.constraints.length-b.precondition.constraints.length},this));return b[0]}; +cvox.BaseRuleStore.prototype.testPrecondition_=function(a,b){var c=b.precondition;return this.applyQuery(a,c.query)===a&&c.constraints.every(goog.bind(function(b){return this.applyConstraint(a,b)},this))};cvox.BaseRuleStore.compareDynamicConstraints_=function(a,b){if(Object.keys(a).length!=Object.keys(b).length)return!1;for(var c in a)if(!b[c]||a[c]!==b[c])return!1;return!0}; +cvox.BaseRuleStore.compareStaticConstraints_=function(a,b){if(a.length!=b.length)return!1;for(var c=0,d;d=a[c];c++)if(-1==b.indexOf(d))return!1;return!0};cvox.BaseRuleStore.comparePreconditions_=function(a,b){var c=a.precondition,d=b.precondition;return c.query!=d.query?!1:cvox.BaseRuleStore.compareStaticConstraints_(c.constraints,d.constraints)};cvox.MathStore=function(){cvox.BaseRuleStore.call(this);this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN,cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[cvox.AbstractTts.PITCH,cvox.AbstractTts.RATE]};goog.inherits(cvox.MathStore,cvox.BaseRuleStore);cvox.SpeechRule.DynamicCstrAttrib.DOMAIN="domain"; +cvox.MathStore.prototype.defineRule=function(a,b,c,d,e){var f=this.parseDynamicConstraint(b),g=Array.prototype.slice.call(arguments,4),g=cvox.MathStore.superClass_.defineRule.apply(this,[a,f[cvox.SpeechRule.DynamicCstrAttrib.STYLE],c,d].concat(g));g.dynamicCstr=f;this.removeDuplicates(g);return g}; +cvox.MathStore.prototype.parseDynamicConstraint=function(a){var b=a.split(".");if(!b[0]||!b[1])throw new cvox.SpeechRule.OutputError("Invalid domain assignment:"+a);return cvox.MathStore.createDynamicConstraint(b[0],b[1])};cvox.MathStore.createDynamicConstraint=function(a,b){var c={};c[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN]=a;c[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;return c}; +cvox.MathStore.prototype.defineRuleAlias=function(a,b,c){var d=this.findRule(function(b){return b.name==a});if(!d)throw new cvox.SpeechRule.OutputError("Rule with named "+a+" does not exist.");this.addAlias_(d,b,Array.prototype.slice.call(arguments,2))};cvox.MathStore.prototype.addAlias_=function(a,b,c){b=new cvox.SpeechRule.Precondition(b,c);b=new cvox.SpeechRule(a.name,a.dynamicCstr,b,a.action);b.name=a.name;this.addRule(b)};cvox.MathStore.prototype.evaluateDefault=function(a){return this.evaluateString_(a.textContent)}; +cvox.MathStore.prototype.evaluateString_=function(a){var b=[];if(a.match(/^\s+$/))return b;a=cvox.MathStore.removeEmpty_(a.replace(/\s/g," ").split(" "));for(var c=0,d;d=a[c];c++)if(1==d.length)b.push(this.evaluate_(d));else if(d.match(/^[a-zA-Z]+$/))b.push(this.evaluate_(d));else for(;d;){var e=d.match(/^\d+/),f=d.match(/^[a-zA-Z]+/);e?(b.push(this.evaluate_(e[0])),d=d.substring(e[0].length)):f?(b.push(this.evaluate_(f[0])),d=d.substring(f[0].length)):(e=d[0],e=e.charCodeAt(0),55296<=e&&56319>=e&& +1<d.length&&!isNaN(d.charCodeAt(1))?(b.push(this.evaluate_(d.slice(0,2))),d=d.substring(2)):(b.push(this.evaluate_(d[0])),d=d.substring(1)))}return b};cvox.MathStore.prototype.evaluate_=function(a){return cvox.ChromeVox.host.mathMap?cvox.ChromeVox.host.mathMap.evaluate(a,cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style):new cvox.NavMathDescription({text:a,domain:cvox.TraverseMath.getInstance().domain,style:cvox.TraverseMath.getInstance().style})}; +cvox.MathStore.removeEmpty_=function(a){return a.filter(function(a){return a})};cvox.MathmlStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathmlStore,cvox.MathStore);goog.addSingletonGetter(cvox.MathmlStore);cvox.MathmlStore.prototype.defineDefaultMathmlRule=function(a,b){this.defineRule(a,"default.default",b,"self::mathml:"+a)};cvox.SpeechRuleEngine=function(){this.activeStore_=null;this.dynamicCstr={};this.dynamicCstr[cvox.SpeechRule.DynamicCstrAttrib.STYLE]="short"};goog.addSingletonGetter(cvox.SpeechRuleEngine);cvox.SpeechRuleEngine.prototype.parameterize=function(a){try{a.initialize()}catch(b){if("StoreError"==b.name)console.log("Store Error:",b.message);else throw b;}this.activeStore_=a};cvox.SpeechRuleEngine.prototype.setDynamicConstraint=function(a){a&&(this.dynamicCstr=a)}; +cvox.SpeechRuleEngine.prototype.constructString=function(a,b){if(!b)return"";if('"'==b.charAt(0))return b.slice(1,-1);var c=this.activeStore_.customStrings.lookup(b);return c?c(a):cvox.XpathUtil.evaluateString(b,a)};cvox.SpeechRuleEngine.prototype.evaluateNode=function(a){return a?this.evaluateTree_(a):[]}; +cvox.SpeechRuleEngine.prototype.evaluateTree_=function(a){var b=this.activeStore_.lookupRule(a,this.dynamicCstr);if(!b)return this.activeStore_.evaluateDefault(a);for(var b=b.action.components,c=[],d=0,e;e=b[d];d++){var f=[],g=e.content||"";switch(e.type){case cvox.SpeechRule.Type.NODE:(g=this.activeStore_.applyQuery(a,g))&&(f=this.evaluateTree_(g));break;case cvox.SpeechRule.Type.MULTI:g=this.activeStore_.applySelector(a,g);0<g.length&&(f=this.evaluateNodeList_(g,e.sepFunc,this.constructString(a, +e.separator),e.ctxtFunc,this.constructString(a,e.context)));break;case cvox.SpeechRule.Type.TEXT:(g=this.constructString(a,g))&&(f=[new cvox.NavDescription({text:g})]);break;default:f=[new cvox.NavDescription({text:g})]}f[0]&&e.context&&e.type!=cvox.SpeechRule.Type.MULTI&&(f[0].context=this.constructString(a,e.context)+(f[0].context||""));c=c.concat(this.addPersonality_(f,e))}return c}; +cvox.SpeechRuleEngine.prototype.evaluateNodeList_=function(a,b,c,d,e){if(a==[])return[];var f=c||"",g=e||"";c=(c=this.activeStore_.contextFunctions.lookup(d))?c(a,g):function(){return g};b=(b=this.activeStore_.contextFunctions.lookup(b))?b(a,f):function(){return f};d=[];e=0;for(var h;h=a[e];e++)h=this.evaluateTree_(h),0<h.length&&(h[0].context=c()+(h[0].context||""),d=d.concat(h),e<a.length-1&&(h=b())&&d.push(new cvox.NavDescription({text:h})));return d}; +cvox.SpeechRuleEngine.propMap={pitch:cvox.AbstractTts.RELATIVE_PITCH,rate:cvox.AbstractTts.RELATIVE_RATE,volume:cvox.AbstractTts.RELATIVE_VOLUME,pause:cvox.AbstractTts.PAUSE};cvox.SpeechRuleEngine.prototype.addPersonality_=function(a,b){var c={},d;for(d in cvox.SpeechRuleEngine.propMap){var e=parseFloat(b[d]);isNaN(e)||(c[cvox.SpeechRuleEngine.propMap[d]]=e)}a.forEach(goog.bind(function(a){this.addRelativePersonality_(a,c);this.resetPersonality_(a)},this));return a}; +cvox.SpeechRuleEngine.prototype.addRelativePersonality_=function(a,b){if(!a.personality)return a.personality=b,a;var c=a.personality,d;for(d in b)c[d]=c[d]&&"number"==typeof c[d]?c[d]+b[d]:b[d];return a};cvox.SpeechRuleEngine.prototype.resetPersonality_=function(a){if(this.activeStore_.defaultTtsProps)for(var b=0,c;c=this.activeStore_.defaultTtsProps[b];b++)a.personality[c]=cvox.ChromeVox.tts.getDefaultProperty(c)};cvox.SpeechRuleEngine.debugMode=!1; +cvox.SpeechRuleEngine.outputDebug=function(a){if(cvox.SpeechRuleEngine.debugMode){var b=Array.prototype.slice.call(arguments,0);console.log.apply(console,["Speech Rule Engine Debugger:"].concat(b))}};cvox.SpeechRuleEngine.prototype.toString=function(){var a=this.activeStore_.findAllRules(function(){return!0});return a.map(function(a){return a.toString()}).join("\n")}; +cvox.SpeechRuleEngine.debugSpeechRule=function(a,b){var c=cvox.SpeechRuleEngine.getInstance().activeStore_;if(c){var d=a.precondition;cvox.SpeechRuleEngine.outputDebug(d.query,c.applyQuery(b,d.query));d.constraints.forEach(function(a){cvox.SpeechRuleEngine.outputDebug(a,c.applyConstraint(b,a))})}}; +cvox.SpeechRuleEngine.debugNamedSpeechRule=function(a,b){for(var c=cvox.SpeechRuleEngine.getInstance().activeStore_,c=c.findAllRules(function(b){return b.name==a}),d=0,e;e=c[d];d++)cvox.SpeechRuleEngine.outputDebug("Rule",a,"number",d),cvox.SpeechRuleEngine.debugSpeechRule(e,b)};cvox.AbstractWalker=function(){};cvox.AbstractWalker.prototype.begin=function(a){a=a||{reversed:!1};return this.sync(cvox.CursorSelection.fromBody().setReversed(a.reversed))};cvox.AbstractWalker.prototype.hasAction=function(a){return"function"==typeof this[a]};cvox.AbstractWalker.prototype.performAction=function(a,b){return this.hasAction(a)?this[a](b):null};cvox.AbstractNodeWalker=function(){this.wasBegin_=!1};goog.inherits(cvox.AbstractNodeWalker,cvox.AbstractWalker);cvox.AbstractNodeWalker.prototype.next=function(a){var b=a.isReversed();a=a.end.node||document.body;do if(a=cvox.DomUtil.directedNextLeafLikeNode(a,b,goog.bind(this.stopNodeDescent,this)),!a)return null;while(a&&!cvox.DomUtil.hasContent(a));return cvox.CursorSelection.fromNode(a).setReversed(b)}; +cvox.AbstractNodeWalker.prototype.sync=function(a){a=this.privateSync_(a);this.wasBegin_=!1;return a}; +cvox.AbstractNodeWalker.prototype.privateSync_=function(a){var b=a.isReversed();if(a.equals(cvox.CursorSelection.fromBody())){if(this.wasBegin_)return cvox.CursorSelection.fromBody().setReversed(b);this.wasBegin_=!0}for(a=a.start.node;a!=document.body&&a.parentNode&&this.stopNodeDescent(a.parentNode);)a=a.parentNode;for(;!this.stopNodeDescent(a);)a=cvox.DomUtil.directedFirstChild(a,b);var c=cvox.CursorSelection.fromNode(a);cvox.DomUtil.hasContent(a)||(c=this.next(cvox.CursorSelection.fromNode(a).setReversed(b))); +return c?c.setReversed(b):this.begin({reversed:b})};cvox.BareObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.BareObjectWalker,cvox.AbstractNodeWalker);cvox.BareObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AuralStyleConverter={};cvox.AuralStyleUtil={}; +cvox.AuralProperty={VOLUME:"VOLUME",SPEAK:"SPEAK",PAUSE_BEFORE:"PAUSE_BEFORE",PAUSE_AFTER:"PAUSE_AFTER",PAUSE:"PAUSE",CUE_BEFORE:"CUE_BEFORE",CUE_AFTER:"CUE_AFTER",CUE:"CUE",PLAY_DURING:"PLAY_DURING",AZIMUTH:"AZIMUTH",ELEVATION:"ELEVATION",SPEECH_RATE:"SPEECH_RATE",VOICE_FAMILY:"VOICE_FAMILY",PITCH:"PITCH",PITCH_RANGE:"PITCH_RANGE",STRESS:"STRESS",RICHNESS:"RICHNESS",SPEAK_PUNCTUATION:"SPEAK_PUNCTUATION",SPEAK_NUMERIAL:"SPEAK_NUMERIAL",SPEAK_HEADER:"SPEAK_HEADER",NONE:"NONE"}; +cvox.AuralStyleConverter.identity=function(a){return a};cvox.AuralStyleConverter.propertyTable={VOLUME:"volume",SPEAK:"no-op",PAUSE_BEFORE:"no-op",PAUSE_AFTER:"no-op",PAUSE:"no-op",CUE_BEFORE:"no-op",CUE_AFTER:"no-op",CUE:"no-op",PLAY_DURING:"no-op",AZIMUTH:"no-op",ELEVATION:"no-op",SPEECH_RATE:"relativeRate",VOICE_FAMILY:"no-op",PITCH:"relativePitch",PITCH_RANGE:"no-op",STRESS:"no-op",RICHNESS:"no-op",SPEAK_PUNCTUATION:"no-op",SPEAK_NUMERIAL:"no-op",SPEAK_HEADER:"no-op",NONE:"no-op"}; +cvox.AuralStyleConverter.valueTable={VOLUME:cvox.AuralStyleConverter.identity,SPEAK:cvox.AuralStyleConverter.identity,PAUSE_BEFORE:cvox.AuralStyleConverter.identity,PAUSE_AFTER:cvox.AuralStyleConverter.identity,PAUSE:cvox.AuralStyleConverter.identity,CUE_BEFORE:cvox.AuralStyleConverter.identity,CUE_AFTER:cvox.AuralStyleConverter.identity,CUE:cvox.AuralStyleConverter.identity,PLAY_DURING:cvox.AuralStyleConverter.identity,AZIMUTH:cvox.AuralStyleConverter.identity,ELEVATION:cvox.AuralStyleConverter.identity, +SPEECH_RATE:cvox.AuralStyleConverter.identity,VOICE_FAMILY:cvox.AuralStyleConverter.identity,PITCH:cvox.AuralStyleConverter.identity,PITCH_RANGE:cvox.AuralStyleConverter.identity,STRESS:cvox.AuralStyleConverter.identity,RICHNESS:cvox.AuralStyleConverter.identity,SPEAK_PUNCTUATION:cvox.AuralStyleConverter.identity,SPEAK_NUMERIAL:cvox.AuralStyleConverter.identity,SPEAK_HEADER:cvox.AuralStyleConverter.identity,NONE:cvox.AuralStyleConverter.identity}; +cvox.AuralStyleConverter.convertRule=function(a,b){return{property:cvox.AuralStyleConverter.propertyTable[a],value:cvox.AuralStyleConverter.valueTable[a](b)}};cvox.AuralStyleConverter.convertStyle=function(a){var b={},c;for(c in a){var d=cvox.AuralStyleConverter.convertRule(c,a[c]);b[d.property]=d.value}return b};cvox.AuralStyleUtil.getStyleForNode=function(a){return(a=cvox.AuralStyleUtil.defaultStyles[a.tagName])?cvox.AuralStyleConverter.convertStyle(a):null}; +cvox.AuralStyleUtil.defaultStyles={ARTICLE:{PITCH:-0.1},ASIDE:{PITCH:-0.1},FOOTER:{PITCH:-0.1},H1:{PITCH:-0.3},H2:{PITCH:-0.25},H3:{PITCH:-0.2},H4:{PITCH:-0.15},H5:{PITCH:-0.1},H6:{PITCH:-0.05},HEADER:{PITCH:-0.1},HGROUP:{PITCH:-0.1},MARK:{PITCH:-0.1},NAV:{PITCH:-0.1},SECTION:{PITCH:-0.1},TIME:{PITCH:-0.1}};cvox.EarconUtil={}; +cvox.EarconUtil.getEarcon=function(a){var b=cvox.AriaUtil.getEarcon(a);if(null!=b)return b;switch(a.tagName){case "BUTTON":return cvox.AbstractEarcons.BUTTON;case "A":if(a.hasAttribute("href"))return cvox.AbstractEarcons.LINK;break;case "IMG":if(cvox.DomUtil.hasLongDesc(a))return cvox.AbstractEarcons.LONG_DESC;break;case "LI":return cvox.AbstractEarcons.LIST_ITEM;case "SELECT":return cvox.AbstractEarcons.LISTBOX;case "TEXTAREA":return cvox.AbstractEarcons.EDITABLE_TEXT;case "INPUT":switch(a.type){case "button":case "submit":case "reset":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":return a.checked? +cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;default:if(cvox.DomUtil.isInputTypeText(a))return cvox.AbstractEarcons.EDITABLE_TEXT}}return null};cvox.DescriptionUtil={};cvox.DescriptionUtil.COLLECTION_NODE_TYPE={H1:!0,H2:!0,H3:!0,H4:!0,H5:!0,H6:!0}; +cvox.DescriptionUtil.getControlDescription=function(a,b){var c=[a];if(b&&0<b.length)c=b;else{var d=cvox.DomUtil.getSurroundingControl(a);d&&(c=[d,a])}c=cvox.DescriptionUtil.getDescriptionFromAncestors(c,!0,cvox.VERBOSITY_VERBOSE);if(d){var e=cvox.DomUtil.getName(d);0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(d),0<e.length&&(c.context=e+" "+c.context))}else e=cvox.DomUtil.getName(a),0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(a),0<e.length&&(c.text=cvox.DomUtil.collapseWhitespace(e))), +d=cvox.DomUtil.getValue(a),0<d.length&&(c.userValue=cvox.DomUtil.collapseWhitespace(d));return c}; +cvox.DescriptionUtil.getDescriptionFromAncestors=function(a,b,c){"undefined"===typeof b&&(b=!0);var d=a.length,e="",f="",g="",h="",k=[],l=null;0<d&&(f=cvox.DomUtil.getName(a[d-1],b),g=cvox.DomUtil.getValue(a[d-1]));for(b=d-1;0<=b;b--){var m=a[b],p=m.getAttribute?m.getAttribute("role"):null;if("dialog"!=p&&"alertdialog"!=p){p=cvox.DomUtil.getRole(m,c);l||(l=cvox.AuralStyleUtil.getStyleForNode(m));if(b<d-1&&m.hasAttribute("role")){var q=cvox.DomUtil.getName(m,!1);q&&(p=q+" "+p)}0<p.length&&(0<e.length|| +0<h.length&&1<m.childElementCount?e=p+" "+cvox.DomUtil.getState(m,!1)+" "+e:h=0<h.length?h+(" "+p+" "+cvox.DomUtil.getState(m,!0)):p+" "+cvox.DomUtil.getState(m,!0));m=cvox.EarconUtil.getEarcon(m);null!=m&&-1==k.indexOf(m)&&k.push(m)}}return new cvox.NavDescription({context:cvox.DomUtil.collapseWhitespace(e),text:cvox.DomUtil.collapseWhitespace(f),userValue:cvox.DomUtil.collapseWhitespace(g),annotation:cvox.DomUtil.collapseWhitespace(h),earcons:k,personality:l})}; +cvox.DescriptionUtil.getDescriptionFromNavigation=function(a,b,c,d){if(!a||!b)return[];if(cvox.DomUtil.isMath(b)&&!cvox.AriaUtil.isMath(b))return cvox.DescriptionUtil.getMathDescription(b);if(cvox.DescriptionUtil.COLLECTION_NODE_TYPE[b.tagName])return cvox.DescriptionUtil.getCollectionDescription(cvox.CursorSelection.fromNode(a),cvox.CursorSelection.fromNode(b));var e=cvox.DomUtil.getUniqueAncestors(a,b,!0),e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,c,d);a=cvox.DomUtil.getUniqueAncestors(b, +a);cvox.DescriptionUtil.shouldDescribeExit_(a)&&(c=cvox.DescriptionUtil.getDescriptionFromAncestors(a,c,d),c.context&&!e.context&&(e.context=cvox.ChromeVox.msgs.getMsg("exited_container",[c.context])));return[e]};cvox.DescriptionUtil.getCollectionDescription=function(a,b){var c=cvox.DescriptionUtil.getRawDescriptions_(a,b);cvox.DescriptionUtil.insertCollectionDescription_(c);return c};cvox.DescriptionUtil.subWalker_=new cvox.BareObjectWalker; +cvox.DescriptionUtil.getRawDescriptions_=function(a,b){var c=[];b=b.clone().setReversed(!1);var d=cvox.DescriptionUtil.subWalker_.sync(b).start.node,e=a.end.node,f=cvox.CursorSelection.fromNode(d);if(!f)return[];for(;cvox.DomUtil.isDescendantOfNode(d,b.start.node);){e=cvox.DomUtil.getUniqueAncestors(e,d);cvox.DomUtil.isMath(d)&&!cvox.AriaUtil.isMath(d)?c=c.concat(cvox.DescriptionUtil.getMathDescription(d)):(e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,!0,cvox.ChromeVox.verbosity),c.push(e)); +f=cvox.DescriptionUtil.subWalker_.next(f);if(!f)break;e=d;d=f.start.node}return c}; +cvox.DescriptionUtil.getFullDescriptionsFromChildren=function(a,b){var c=[];if(!b)return c;var d;if(cvox.DomUtil.isLeafNode(b))return a?d=cvox.DomUtil.getUniqueAncestors(a,b):(d=[],d.push(b)),d=cvox.DescriptionUtil.getDescriptionFromAncestors(d,!0,cvox.ChromeVox.verbosity),c.push(d),c;d=b;var e=cvox.CursorSelection.fromNode(b);if(!e)return c;b=cvox.DescriptionUtil.subWalker_.sync(e).start.node;e=cvox.CursorSelection.fromNode(b);if(!e)return c;for(;cvox.DomUtil.isDescendantOfNode(b,d);){c=c.concat(cvox.DescriptionUtil.getFullDescriptionsFromChildren(a, +b));e=cvox.DescriptionUtil.subWalker_.next(e);if(!e)break;a=b;b=e.start.node}return c}; +cvox.DescriptionUtil.insertCollectionDescription_=function(a){var b=cvox.DescriptionUtil.getAnnotations_(a);if(3<=a.length&&0==a[0].context.length&&1==b.length&&0<b[0].length&&cvox.DescriptionUtil.isAnnotationCollection_(b[0])){var b=b[0],c=a[0].context;a[0].context="";for(var d=0;d<a.length;d++)a[d].annotation="";a.splice(0,0,new cvox.NavDescription({context:c,text:"",annotation:cvox.ChromeVox.msgs.getMsg("collection",[b,cvox.ChromeVox.msgs.getNumber(a.length)])}))}}; +cvox.DescriptionUtil.getAnnotations_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(-1==b.indexOf(d.annotation)){var e=cvox.ChromeVox.msgs.getMsg("tag_link");-1!=d.annotation.toLowerCase().indexOf(e.toLowerCase())?-1==b.indexOf(e)&&b.push(e):b.push(d.annotation)}}return b};cvox.DescriptionUtil.isAnnotationCollection_=function(a){return a==cvox.ChromeVox.msgs.getMsg("tag_link")};cvox.DescriptionUtil.shouldDescribeExit_=function(a){return a.some(function(a){switch(a.tagName){case "TABLE":case "MATH":return!0}return cvox.AriaUtil.isLandmark(a)})}; +cvox.DescriptionUtil.getMathDescription=function(a){var b=cvox.SpeechRuleEngine.getInstance(),c=cvox.TraverseMath.getInstance();b.parameterize(cvox.MathmlStore.getInstance());c.initialize(a);a=b.evaluateNode(c.activeNode);if(a==[])return[new cvox.NavDescription({text:"empty math"})];cvox.ChromeVox.verbosity==cvox.VERBOSITY_VERBOSE&&(a[a.length-1].annotation="math");a[0].pushEarcon(cvox.AbstractEarcons.SPECIAL_CONTENT);return a};cvox.FindUtil={};cvox.FindUtil.objectWalker_=new cvox.BareObjectWalker;cvox.FindUtil.findNext=function(a,b,c){var d=a.isReversed();a=(new cvox.CursorSelection(a.absStart(),a.absStart())).setReversed(d);var e;if(e=b(cvox.DomUtil.getAncestors(a.start.node)))if(a=cvox.CursorSelection.fromNode(e).setReversed(d),c)return a;for(;a;){a=cvox.FindUtil.objectWalker_.next(a);c=null;if(!a||(c=b(cvox.DomUtil.getAncestors(a.start.node))))return c?cvox.CursorSelection.fromNode(c):null;if("IFRAME"==a.start.node.tagName)return a}return null};cvox.Interframe=function(){};cvox.Interframe.IF_MSG_PREFIX="cvox.INTERFRAME:";cvox.Interframe.SET_ID="cvox.INTERFRAME_SET_ID";cvox.Interframe.listeners=[];cvox.Interframe.allowAccessToIframeContentWindow=!0; +cvox.Interframe.init=function(){cvox.Interframe.messageListener=function(a){if("string"===typeof a.data&&0==a.data.indexOf(cvox.Interframe.IF_MSG_PREFIX)){a=a.data.substr(cvox.Interframe.IF_MSG_PREFIX.length);a=cvox.ChromeVoxJSON.parse(a);a.command==cvox.Interframe.SET_ID&&(cvox.Interframe.id=a.id);for(var b=0,c;c=cvox.Interframe.listeners[b];b++)c(a)}return!1};window.addEventListener("message",cvox.Interframe.messageListener,!0)}; +cvox.Interframe.shutdown=function(){window.removeEventListener("message",cvox.Interframe.messageListener,!0)};cvox.Interframe.addListener=function(a){cvox.Interframe.listeners.push(a)};cvox.Interframe.sendMessageToWindow=function(a,b){var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null);b.postMessage(c,"*")}; +cvox.Interframe.sendMessageToIFrame=function(a,b){if(cvox.Interframe.allowAccessToIframeContentWindow&&b.contentWindow)cvox.Interframe.sendMessageToWindow(a,b.contentWindow);else{var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),d=document.createElement("script");d.type="text/javascript";if(b.hasAttribute("id")&&document.getElementById(b.id)==b)d.innerHTML="document.getElementById(decodeURI('"+encodeURI(b.id)+"')).contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"; +else{var e="cvox_iframe"+a.id;""===b.className?b.className=e:-1==b.className.indexOf(e)&&(b.className+=" "+e);d.innerHTML="document.getElementsByClassName(decodeURI('"+encodeURI(e)+"'))[0].contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"}document.head.appendChild(d);window.setTimeout(function(){document.head.removeChild(d)},1E3)}}; +cvox.Interframe.sendMessageToParentWindow=function(a){cvox.Interframe.isIframe()&&(a.sourceId=cvox.Interframe.id,window.parent?cvox.Interframe.sendMessageToWindow(a,window.parent):(a=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),window.location.href="javascript:window.parent.postMessage('"+encodeURI(a)+"', '*');"))};cvox.Interframe.sendIdToIFrame=function(a,b){var c={command:cvox.Interframe.SET_ID,id:a};cvox.Interframe.sendMessageToIFrame(c,b)}; +cvox.Interframe.isIframe=function(){return window!=window.parent};cvox.Interframe.init();cvox.PageSelection=function(a){this.sel_=a.clone();this.sel_.select();this.wasBegin_=!0}; +cvox.PageSelection.prototype.getDescription=function(a,b,c){var d=[];this.sel_.isReversed()!=c.isReversed()?(d=a.getDescription(c,b),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE)):(d=a.getDescription(b,c),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_selected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION),!this.wasBegin_&&this.sel_.absEquals(c.clone().normalize())&&(a=a.getDescription(c,b),a[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"), +a[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE),a[0].pushEarcon(cvox.AbstractEarcons.WRAP),d=a.concat(d)));return d};cvox.PageSelection.prototype.getFullDescription=function(){return[new cvox.NavDescription({text:window.getSelection().toString(),context:cvox.ChromeVox.msgs.getMsg("selection_is")})]}; +cvox.PageSelection.prototype.extend=function(a){this.sel_.directedBefore(a)?this.sel_.end=this.sel_.isReversed()==a.isReversed()?a.end.clone():a.start.clone():this.sel_=a.clone();this.sel_.select();this.wasBegin_=!1;return!this.sel_.absEquals(a)};cvox.BrailleUtil={};cvox.BrailleUtil.ITEM_SEPARATOR=" ";cvox.BrailleUtil.CONTAINER="tag_h1_brl tag_h2_brl tag_h3_brl tag_h4_brl tag_h5_brl tag_h6_brl".split(" "); +cvox.BrailleUtil.TEMPLATE={base:"c n v r s",aria_role_button:"[n]",aria_role_textbox:"n: v r",input_type_button:"[n]",input_type_checkbox:"n (s)",input_type_email:"n: v r",input_type_number:"n: v r",input_type_password:"n: v r",input_type_search:"n: v r",input_type_submit:"[n]",input_type_text:"n: v r",input_type_tel:"n: v r",input_type_url:"n: v r",tag_button:"[n]",tag_textarea:"n: v r"};cvox.BrailleUtil.ValueSpan=function(a){this.offset=a};cvox.BrailleUtil.ValueSelectionSpan=function(){}; +cvox.BrailleUtil.getName=function(a){return a?cvox.DomUtil.getName(a).trim():""};cvox.BrailleUtil.getRoleMsg=function(a){if(!a)return"";(a=cvox.DomUtil.getRoleMsg(a,cvox.VERBOSITY_VERBOSE))&&(a=cvox.DomUtil.collapseWhitespace(a));a&&0<a.length&&cvox.ChromeVox.msgs.getMsg(a+"_brl")&&(a+="_brl");return a};cvox.BrailleUtil.getRole=function(a){return a?(a=cvox.BrailleUtil.getRoleMsg(a))?cvox.ChromeVox.msgs.getMsg(a):"":""}; +cvox.BrailleUtil.getState=function(a){return a?cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,!0).map(function(a){cvox.ChromeVox.msgs.getMsg(a[0]+"_brl")&&(a[0]+="_brl");return a})):""};cvox.BrailleUtil.getContainer=function(a,b){if(!a||!b)return"";for(var c=cvox.DomUtil.getUniqueAncestors(a,b),d=0,e;e=c[d];d++)if((e=cvox.BrailleUtil.getRoleMsg(e))&&-1!=cvox.BrailleUtil.CONTAINER.indexOf(e))return cvox.ChromeVox.msgs.getMsg(e);return""}; +cvox.BrailleUtil.getValue=function(a){if(!a)return new cvox.Spannable;var b=new cvox.BrailleUtil.ValueSpan(0);if(cvox.DomUtil.isInputTypeText(a)){var c=a.value;"password"===a.type&&(c=c.replace(/./g,"*"));b=new cvox.Spannable(c,b);a===document.activeElement&&b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,a.selectionStart,a.selectionEnd);return b}if(a instanceof HTMLTextAreaElement){var d=new cvox.EditableTextAreaShadow;d.update(a);var e=d.getLineIndex(a.selectionEnd),c=d.getLineStart(e),d=d.getLineEnd(e), +d=a.value.substring(c,d);b.offset=c;b=new cvox.Spannable(d,b);a===document.activeElement&&(d=Math.max(a.selectionStart-c,0),a=Math.min(a.selectionEnd-c,b.getLength()),b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,d,a));return b}return new cvox.Spannable(cvox.DomUtil.getValue(a),b)}; +cvox.BrailleUtil.getTemplated=function(a,b,c){c=c?c:{};for(var d=c.roleMsg||(b?cvox.DomUtil.getRoleMsg(b,cvox.VERBOSITY_VERBOSE):""),d=cvox.BrailleUtil.TEMPLATE[d]||cvox.BrailleUtil.TEMPLATE.base,e=new cvox.Spannable,f=function(d){switch(d){case "n":return c.name||cvox.BrailleUtil.getName(b);case "r":return c.role||cvox.BrailleUtil.getRole(b);case "s":return c.state||cvox.BrailleUtil.getState(b);case "c":return c.container||cvox.BrailleUtil.getContainer(a,b);case "v":return c.value?new cvox.Spannable(c.value, +new cvox.BrailleUtil.ValueSpan(0)):cvox.BrailleUtil.getValue(b);default:return d}},g=0;g<d.length;g++){var h=f(d[g]);e.append(h);h.toString()||" "!=d[g+1]||g++}return e.trim()};cvox.MathmlStoreUtil={};cvox.MathmlStoreUtil.matchMathjaxToMathml=function(a){var b=cvox.TraverseMath.getInstance().activeMathmlHost;return b.querySelector("#"+a.id)};cvox.MathmlStoreUtil.retrieveMathjaxExtender=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};cvox.MathmlStoreUtil.retrieveMathjaxLeaf=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]}; +cvox.MathmlStoreUtil.checkMathjaxTag=function(a,b){var c=cvox.MathmlStoreUtil.matchMathjaxToMathml(a);return c&&c.tagName.toUpperCase()==b?[c]:[]};cvox.MathmlStoreUtil.checkMathjaxMunder=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MUNDER")};cvox.MathmlStoreUtil.checkMathjaxMover=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MOVER")};cvox.MathmlStoreUtil.checkMathjaxMsub=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUB")}; +cvox.MathmlStoreUtil.checkMathjaxMsup=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUP")};cvox.MathmlStoreUtil.nextSeparatorFunction=function(a){if(a){if(a.match(/^\s+$/))return null;var b=a.replace(/\s/g,"").split("").filter(function(a){return a})}else b=[","];return function(){return 1<b.length?b.shift():b[0]}};cvox.MathmlStoreUtil.mfencedSeparators=function(a,b){var c=cvox.MathmlStoreUtil.nextSeparatorFunction(b);return function(){return c?c():""}}; +cvox.MathmlStoreUtil.contentIterator=function(a,b){var c=0<a.length?cvox.XpathUtil.evalXPath("../../content/*",a[0]):[];return function(){var a=c.shift();return b+(a?a.textContent:"")}};cvox.StoreUtil={};cvox.StoreUtil.nodeCounter=function(a,b){var c=a.length,d=0,e=b;b||(e="");return function(){d<c&&(d+=1);return e+" "+d}};cvox.MathmlStoreRules=function(){cvox.MathmlStoreRules.initCustomFunctions_();cvox.MathmlStoreRules.initDefaultRules_();cvox.MathmlStoreRules.initMathjaxRules_();cvox.MathmlStoreRules.initAliases_();cvox.MathmlStoreRules.initSpecializationRules_();cvox.MathmlStoreRules.initSemanticRules_()};goog.addSingletonGetter(cvox.MathmlStoreRules);cvox.MathmlStoreRules.mathStore=cvox.MathmlStore.getInstance();cvox.MathmlStoreRules.mathStore.initialize=cvox.MathmlStoreRules.getInstance; +cvox.MathmlStoreRules.defineDefaultMathmlRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineDefaultMathmlRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRuleAlias_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRuleAlias,cvox.MathmlStoreRules.mathStore); +cvox.MathmlStoreRules.addContextFunction_=goog.bind(cvox.MathmlStoreRules.mathStore.contextFunctions.add,cvox.MathmlStoreRules.mathStore.contextFunctions);cvox.MathmlStoreRules.addCustomQuery_=goog.bind(cvox.MathmlStoreRules.mathStore.customQueries.add,cvox.MathmlStoreRules.mathStore.customQueries); +cvox.MathmlStoreRules.initCustomFunctions_=function(){(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFnodeCounter",cvox.StoreUtil.nodeCounter);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFmfSeparators",cvox.MathmlStoreUtil.mfencedSeparators);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFcontentIterator",cvox.MathmlStoreUtil.contentIterator);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFextender",cvox.MathmlStoreUtil.retrieveMathjaxExtender);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmunder", +cvox.MathmlStoreUtil.checkMathjaxMunder);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmover",cvox.MathmlStoreUtil.checkMathjaxMover);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsub",cvox.MathmlStoreUtil.checkMathjaxMsub);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsup",cvox.MathmlStoreUtil.checkMathjaxMsup);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFlookupleaf",cvox.MathmlStoreUtil.retrieveMathjaxLeaf)}; +cvox.MathmlStoreRules.initDefaultRules_=function(){(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("math","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mspace","[p] (pause:250)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mstyle","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mpadded","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("merror","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mphantom","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mtext", +"[t] text(); [p] (pause:200)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mi","[n] text()");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mo","[n] text() (rate:-0.1)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mn","[n] text()");(0,cvox.MathmlStoreRules.defineRule_)("mtext-variant","default.default",'[t] "begin"; [t] @mathvariant (pause:150);[t] text() (pause:150); [t] "end"; [t] @mathvariant (pause:200)',"self::mathml:mtext","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mi-variant", +"default.default","[t] @mathvariant; [n] text()","self::mathml:mi","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mi-variant","self::mathml:mn","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mo-variant","default.default","[t] @mathvariant; [n] text() (rate:-0.1)","self::mathml:mo","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("ms",'[t] "string" (pitch:0.5, rate:0.5); [t] text()');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msup", +'[n] ./*[1]; [t] "super";[n] ./*[2] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msubsup",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "super"; [n] ./*[3] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msub",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mover",'[n] ./*[2] (pitch:0.35); [p] (pause:200); [t] "over"; [n] ./*[1]; [p] (pause:400)'); +(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munder",'[n] ./*[2] (pitch:-0.35); [t] "under"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munderover",'[n] ./*[2] (pitch:-0.35); [t] "under and"; [n] ./*[3] (pitch:0.35); [t] "over"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mrow","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msqrt",'[t] "Square root of"; [m] ./* (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mroot", +'[t] "root of order"; [n] ./*[2]; [t] "of";[n] ./*[1] (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mfrac",' [p] (pause:400); [n] ./*[1] (pitch:0.3); [t] "divided by"; [n] ./*[2] (pitch:-0.3); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-single","default.default",'[t] @open (context:"opening"); [m] ./* (separator:@separators);[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-empty", +"default.default",'[t] @open (context:"opening"); [m] ./*;[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1",'string(@separators)=" "');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-comma","default.default",'[t] @open (context:"opening"); [m] ./* (separator:"comma");[t] @close (context:"closing")',"self::mathml:mfenced");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-multi","default.default",'[t] @open (context:"opening"); [m] ./* (sepFunc:CTXFmfSeparators,separator:@separators); [t] @close (context:"closing")', +"self::mathml:mfenced","string-length(string(@separators))>1");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.default",'[t] "matrix"; [m] ./* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)',"self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.default","[m] ./*","self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mtable", +"default.superbrief",'[t] count(child::mathml:mtr); [t] "by";[t] count(child::mathml:mtr[1]/mathml:mtd); [t] "matrix";',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.short",'[t] "matrix"; [m] ./*',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.short","[m] ./*","self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.short",'[t] "Element"; [t] count(./preceding-sibling::mathml:mtd)+1;[t] count(./parent::mathml:mtr/preceding-sibling::mathml:mtr)+1;[p] (pause:500); [m] ./*', +"self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-3", +"default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[5]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[6]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-2-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[5]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[6]")}; +cvox.MathmlStoreRules.initMathjaxRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("mj-math","default.default","[n] ./*[1]/*[1]/*[1]",'self::span[@class="math"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-leaf","default.default","[n] CQFlookupleaf",'self::span[@class="mi"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mo"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mn"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtext"]'); +(0,cvox.MathmlStoreRules.defineRule_)("mj-mo-ext","default.default","[n] CQFextender",'self::span[@class="mo"]',"./*[1]/*[1]/text()","./*[1]/*[2]/text()");(0,cvox.MathmlStoreRules.defineRule_)("mj-texatom","default.default","[n] ./*[1]",'self::span[@class="texatom"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msubsup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35);[p] (pause:200); [t] "super"; [n] ./*[1]/*[2]/*[1] (pitch:0.35);[p] (pause:300)','self::span[@class="msubsup"]'); +(0,cvox.MathmlStoreRules.defineRule_)("mj-msub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub";[n] ./*[1]/*[2]/*[1] (pitch:-0.35); [p] (pause:300)','self::span[@class="msub"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "super";[n] ./*[1]/*[2]/*[1] (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munderover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under and";[n] ./*[1]/*[3]/*[1] (pitch:-0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)', +'self::span[@class="munderover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munder","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="munder"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="mover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfrac","default.default",'[p] (pause:250); [n] ./*[1]/*[1]/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] ./*[1]/*[2]/*[1] (pitch:-0.3);[p] (pause:400)', +'self::span[@class="mfrac"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msqrt","default.default",'[t] "Square root of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="msqrt"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mroot","default.default",'[t] "root of order"; [n] ./*[1]/*[4]/*[1]; [t] "of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="mroot"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfenced","default.default",'[t] "opening"; [n] ./*[1]; [m] ./*[position()>1 and position()<last()]; [t] "closing"; [n] ./*[last()]', +'self::span[@class="mfenced"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtable"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mmultiscripts"]')}; +cvox.MathmlStoreRules.initAliases_=function(){(0,cvox.MathmlStoreRules.defineRuleAlias_)("mspace",'self::span[@class="mspace"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mstyle",'self::span[@class="mstyle"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mpadded",'self::span[@class="mpadded"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("merror",'self::span[@class="merror"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mphantom",'self::span[@class="mphantom"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("ms", +'self::span[@class="ms"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mrow",'self::span[@class="mrow"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msub",'self::span[@class="msubsup"]',"CQFmathmlmsub");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msup",'self::span[@class="msubsup"]',"CQFmathmlmsup");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-munder",'self::span[@class="munderover"]',"CQFmathmlmunder");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-mover",'self::span[@class="munderover"]', +"CQFmathmlmover")}; +cvox.MathmlStoreRules.initSpecializationRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] ./*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("cube","default.default",'[n] ./*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=3]"); +(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("square-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=2]"); +(0,cvox.MathmlStoreRules.defineRule_)("cube-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]', +"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]', +"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube", +'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]', +"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square-sub",'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube-sub", +'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]")}; +cvox.MathmlStoreRules.initSemanticRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("stree","default.default","[n] ./*[1]","self::stree");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default",'[t] "multirelation"; [m] children/* (sepFunc:CTXFcontentIterator)',"self::multirel");(0,cvox.MathmlStoreRules.defineRule_)("variable-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]', +"count(./children/*)>2",'./children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.short",'[t] "equation sequence"; [m] ./children/* (separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("equality", +"default.default",'[t] "equation"; [t] "left hand side"; [n] children/*[1];[p] (pause:200); [n] text() (pause:200);[t] "right hand side"; [n] children/*[2]','self::relseq[@role="equality"]',"count(./children/*)=2");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality","default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/identifier or ./children/number");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality2", +"default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/function or ./children/appl");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default","[m] children/* (separator:./text())","self::relseq");(0,cvox.MathmlStoreRules.defineRule_)("binary-operation","default.default","[m] children/* (separator:text());","self::infixop");(0,cvox.MathmlStoreRules.defineRule_)("variable-addition", +"default.default",'[t] "sum with variable number of summands";[p] (pause:400); [m] children/* (separator:./text())','self::infixop[@role="addition"]',"count(children/*)>2",'children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-addition","default.default",'[t] "sum with,"; [t] count(./children/*); [t] ", summands";[p] (pause:400); [m] ./children/* (separator:./text())','self::infixop[@role="addition"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("prefix", +"default.default",'[t] "prefix"; [n] text(); [t] "of" (pause 150);[n] children/*[1]',"self::prefixop");(0,cvox.MathmlStoreRules.defineRule_)("negative","default.default",'[t] "negative"; [n] children/*[1]',"self::prefixop",'self::prefixop[@role="negative"]');(0,cvox.MathmlStoreRules.defineRule_)("postfix","default.default",'[n] children/*[1]; [t] "postfix"; [n] text() (pause 300)',"self::postfixop");(0,cvox.MathmlStoreRules.defineRule_)("identifier","default.default","[n] text()","self::identifier"); +(0,cvox.MathmlStoreRules.defineRule_)("number","default.default","[n] text()","self::number");(0,cvox.MathmlStoreRules.defineRule_)("fraction","default.default",'[p] (pause:250); [n] children/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] children/*[2] (pitch:-0.3); [p] (pause:400)',"self::fraction");(0,cvox.MathmlStoreRules.defineRule_)("superscript","default.default",'[n] children/*[1]; [t] "super"; [n] children/*[2] (pitch:0.35);[p] (pause:300)',"self::superscript");(0,cvox.MathmlStoreRules.defineRule_)("subscript", +"default.default",'[n] children/*[1]; [t] "sub"; [n] children/*[2] (pitch:-0.35);[p] (pause:300)',"self::subscript");(0,cvox.MathmlStoreRules.defineRule_)("ellipsis","default.default",'[p] (pause:200); [t] "dot dot dot"; [p] (pause:300)',"self::punct",'self::punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("fence-single","default.default","[n] text()","self::punct",'self::punct[@role="openfence"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="closefence"]'); +(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="vbar"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="application"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-punct","default.default","[p] (pause:200);","self::punct");(0,cvox.MathmlStoreRules.defineRule_)("omit-empty","default.default","","self::empty");(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close","default.default",'[p] (pause:100); [t] "open"; [n] children/*[1]; [p] (pause:200);[t] "close"', +'self::fenced[@role="leftright"]');(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close-in-appl","default.default","[p] (pause:100); [n] children/*[1]; [p] (pause:200);",'self::fenced[@role="leftright"]',"./parent::children/parent::appl");(0,cvox.MathmlStoreRules.defineRule_)("fences-neutral","default.default",'[p] (pause:100); [t] "absolute value of"; [n] children/*[1];[p] (pause:350);',"self::fenced",'self::fenced[@role="neutral"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-fences","default.default", +"[p] (pause:500); [n] children/*[1]; [p] (pause:200);","self::fenced");(0,cvox.MathmlStoreRules.defineRule_)("matrix","default.default",'[t] "matrix"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::matrix");(0,cvox.MathmlStoreRules.defineRule_)("matrix-row","default.default",'[m] children/* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row[@role="matrix"]');(0,cvox.MathmlStoreRules.defineRule_)("matrix-cell","default.default","[n] children/*[1]",'self::cell[@role="matrix"]'); +(0,cvox.MathmlStoreRules.defineRule_)("vector","default.default",'[t] "vector"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"element",pause:100)',"self::vector");(0,cvox.MathmlStoreRules.defineRule_)("cases","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100)',"self::cases");(0,cvox.MathmlStoreRules.defineRule_)("cases-row","default.default","[m] children/*",'self::row[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("cases-cell", +"default.default","[n] children/*[1]",'self::cell[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("row","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row"');(0,cvox.MathmlStoreRules.defineRule_)("cases-end","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100);[t] "end cases"',"self::cases","following-sibling::*");(0,cvox.MathmlStoreRules.defineRule_)("multiline","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"line",pause:100)', +"self::multiline");(0,cvox.MathmlStoreRules.defineRule_)("line","default.default","[m] children/*","self::line");(0,cvox.MathmlStoreRules.defineRule_)("table","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:200)',"self::table");(0,cvox.MathmlStoreRules.defineRule_)("table-row","default.default","[m] children/* (pause:100)",'self::row[@role="table"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("cases-cell",'self::cell[@role="table"]');(0,cvox.MathmlStoreRules.defineRule_)("end-punct", +"default.default","[m] children/*; [p] (pause:300)","self::punctuated",'@role="endpunct"');(0,cvox.MathmlStoreRules.defineRule_)("start-punct","default.default","[n] content/*[1]; [p] (pause:200); [m] children/*","self::punctuated",'@role="startpunct"');(0,cvox.MathmlStoreRules.defineRule_)("integral-punct","default.default","[n] children/*[1] (rate:0.2); [n] children/*[3] (rate:0.2)","self::punctuated",'@role="integral"');(0,cvox.MathmlStoreRules.defineRule_)("punctuated","default.default","[m] children/* (pause:100)", +"self::punctuated");(0,cvox.MathmlStoreRules.defineRule_)("function","default.default","[n] text()","self::function");(0,cvox.MathmlStoreRules.defineRule_)("appl","default.default","[n] children/*[1]; [n] content/*[1]; [n] children/*[2]","self::appl");(0,cvox.MathmlStoreRules.defineRule_)("limboth","default.default",'[n] children/*[1]; [t] "from"; [n] children/*[2]; [t] "to";[n] children/*[3]',"self::limboth");(0,cvox.MathmlStoreRules.defineRule_)("sum-only","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);', +"self::limboth",'self::limboth[@role="sum"]');(0,cvox.MathmlStoreRules.defineRule_)("limlower","default.default",'[n] children/*[1]; [t] "over"; [n] children/*[2];',"self::limlower");(0,cvox.MathmlStoreRules.defineRule_)("limupper","default.default",'[n] children/*[1]; [t] "under"; [n] children/*[2];',"self::limupper");(0,cvox.MathmlStoreRules.defineRule_)("largeop","default.default","[n] text()","self::largeop");(0,cvox.MathmlStoreRules.defineRule_)("bigop","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);', +"self::bigop");(0,cvox.MathmlStoreRules.defineRule_)("integral","default.default","[n] children/*[1]; [p] (pause 100); [n] children/*[2]; [p] (pause 200);[n] children/*[3] (rate:0.35);","self::integral");(0,cvox.MathmlStoreRules.defineRule_)("sqrt","default.default",'[t] "Square root of"; [n] children/*[1] (rate:0.2); [p] (pause:400)',"self::sqrt");(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] children/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::superscript","children/*[2][text()=2]"); +(0,cvox.MathmlStoreRules.defineRule_)("text-no-mult","default.default","[n] children/*[1]; [p] (pause:200); [n] children/*[2]","self::infixop","children/text")};cvox.AbstractShifter=function(){this.isSubnavigating_=!1};cvox.AbstractShifter.prototype.begin=function(a,b){return this.currentWalker_.begin(b)};cvox.AbstractShifter.prototype.makeLessGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.makeMoreGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.ensureSubnavigating=function(){!1==this.isSubnavigating_&&(this.makeMoreGranular(),this.isSubnavigating_=!0)}; +cvox.AbstractShifter.prototype.ensureNotSubnavigating=function(){!0==this.isSubnavigating_&&(this.isSubnavigating_=!1,this.makeLessGranular())};cvox.AbstractShifter.prototype.isSubnavigating=function(){return this.isSubnavigating_};cvox.AbstractShifter.prototype.hasAction=function(a){return this.currentWalker_.hasAction(a)};cvox.AbstractShifter.prototype.performAction=function(a,b){return this.currentWalker_.performAction(a,b)};cvox.MathShifter=function(a){cvox.AbstractShifter.call(this);this.level_=0;this.bumped_=this.direction_=!1;cvox.TraverseMath.getInstance().initialize(a.start.node)};goog.inherits(cvox.MathShifter,cvox.AbstractShifter);cvox.MathShifter.prototype.next=function(a){var b=a.isReversed();this.bumped_=!cvox.TraverseMath.getInstance().nextSibling(b);return(b=cvox.TraverseMath.getInstance().getAttachedActiveNode())?cvox.CursorSelection.fromNode(b):a}; +cvox.MathShifter.prototype.sync=function(a){var b=cvox.TraverseMath.getInstance().getAttachedActiveNode();return b?cvox.CursorSelection.fromNode(b):a};cvox.MathShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("math_shifter")};cvox.MathShifter.prototype.getDescription=function(){var a=cvox.SpeechRuleEngine.getInstance().evaluateNode(cvox.TraverseMath.getInstance().activeNode);this.bumped_&&0<a.length&&a[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE);return a}; +cvox.MathShifter.prototype.getBraille=function(a,b){return new cvox.NavBraille({text:cvox.BrailleUtil.getTemplated(a.start.node,b.start.node)})};cvox.MathShifter.prototype.getGranularityMsg=function(){return this.direction_?"up to level "+this.level_:"down to level "+this.level_};cvox.MathShifter.prototype.makeLessGranular=function(){this.level_=0<this.level_?this.level_-1:0;this.direction_=!0;this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!0)}; +cvox.MathShifter.prototype.makeMoreGranular=function(){this.direction_=!1;(this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!1))||this.level_++}; +cvox.MathShifter.create=function(a){if(cvox.DomPredicates.mathPredicate(cvox.DomUtil.getAncestors(a.start.node))){var b=cvox.DomUtil.getContainingMath(a.end.node);cvox.TraverseMath.getInstance().initialize(b);cvox.SpeechRuleEngine.getInstance().parameterize(cvox.MathmlStore.getInstance());b=cvox.MathStore.createDynamicConstraint(cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style);cvox.SpeechRuleEngine.getInstance().setDynamicConstraint(b);return new cvox.MathShifter(a)}return null};cvox.TableUtil={};cvox.TableUtil.checkIfHeader=function(a){return"TH"==a.tagName||a.hasAttribute("scope")||a.hasAttribute("role")&&("rowheader"==a.getAttribute("role")||"columnheader"==a.getAttribute("role"))}; +cvox.TableUtil.determineColGroups=function(a){var b=[];if(0==a.length)return b;for(var c=0;c<a.length;c++){var d=a[c],e=cvox.TableUtil.getColNodes(d);if(0<e.length)for(d=0;d<e.length;d++){var f=e[d];if(f.hasAttribute("span"))for(var f=parseInt(f.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}else if(d.hasAttribute("span"))for(f=parseInt(d.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}return b};cvox.TableUtil.pushIfNotContained=function(a,b){-1==a.indexOf(b)&&a.push(b)}; +cvox.TableUtil.getChildRows=function(a){return cvox.XpathUtil.evalXPath('child::tbody/tr | child::thead/tr | child::*[attribute::role="row"]',a)};cvox.TableUtil.getChildCells=function(a){return cvox.XpathUtil.evalXPath('child::td | child::th | child::*[attribute::role="gridcell"] |child::*[attribute::role="rowheader"] |child::*[attribute::role="columnheader"]',a)};cvox.TableUtil.getCellWithID=function(a,b){return cvox.XpathUtil.evalXPath("id('"+b+"')",a)}; +cvox.TableUtil.getColGroups=function(a){return cvox.XpathUtil.evalXPath("child::colgroup",a)};cvox.TableUtil.getColNodes=function(a){return cvox.XpathUtil.evalXPath("child::col",a)};function ShadowTableNode(){}ShadowTableNode.prototype.rowHeaderCells=[];ShadowTableNode.prototype.colHeaderCells=[];cvox.TraverseTable=function(a){this.activeTable_=null;this.shadowTable_=[];this.candidateHeaders_=[];this.idToShadowNode_=[];this.initialize(a)};cvox.TraverseTable.prototype.colCount=null;cvox.TraverseTable.prototype.rowCount=null;cvox.TraverseTable.prototype.tableRowHeaders=null;cvox.TraverseTable.prototype.tableColHeaders=null; +cvox.TraverseTable.prototype.initialize=function(a){a&&a!=this.activeTable_&&(this.activeTable_=a,this.currentCellCursor=null,this.tableRowHeaders=[],this.tableColHeaders=[],this.buildShadowTable_(),this.colCount=this.shadowColCount_(),this.rowCount=this.countRows_(),this.findHeaderCells_(),this.activeTable_.addEventListener("DOMSubtreeModified",goog.bind(function(){this.buildShadowTable_();this.colCount=this.shadowColCount_();this.rowCount=this.countRows_();this.tableRowHeaders=[];this.tableColHeaders= +[];this.findHeaderCells_();0==this.colCount&&0==this.rowCount||null!=this.getCell()||this.attachCursorToNearestCell_()},this),!1))}; +cvox.TraverseTable.prototype.findNearestCursor=function(a){for(;a.firstElementChild&&"TABLE"!=a.firstElementChild.tagName&&!cvox.AriaUtil.isGrid(a.firstElementChild);)a=a.firstElementChild;for(;!cvox.DomPredicates.cellPredicate(cvox.DomUtil.getAncestors(a));)if(a=cvox.DomUtil.directedNextLeafNode(a),!cvox.DomUtil.getContainingTable(a,{allowCaptions:!0}))return null;for(var b=0;b<this.rowCount;++b)for(var c=0;c<this.colCount;++c)if(this.shadowTable_[b][c]&&cvox.DomUtil.isDescendantOfNode(a,this.shadowTable_[b][c].activeCell))return[b, +c];return null};cvox.TraverseTable.prototype.attachCursorToNearestCell_=function(){if(this.currentCellCursor){var a=this.currentCellCursor,b=this.shadowTable_[a[0]];if(b)this.currentCellCursor=[a[0],b.length-1];else if(b=this.shadowTable_.length,0==b)this.currentCellCursor=null;else{var c=this.shadowTable_[b-1][a[1]];c?this.currentCellCursor=[b-1,a[1]]:this.goToLastCell()}}else this.goToLastCell()}; +cvox.TraverseTable.prototype.buildShadowTable_=function(){this.shadowTable_=[];for(var a=cvox.TableUtil.getChildRows(this.activeTable_),b=null,c=null,d=cvox.TableUtil.getColGroups(this.activeTable_),d=cvox.TableUtil.determineColGroups(d),e=0;e<a.length;e++)this.shadowTable_.push([]);for(e=0;e<a.length;e++)for(var f=cvox.TableUtil.getChildCells(a[e]),g=0,h=0;g<f.length;)if(null==this.shadowTable_[e][h]){var k=f[g],l=1,m=1;k.hasAttribute("colspan")&&(l=parseInt(k.getAttribute("colspan"),10),isNaN(l)|| +0>=l)&&(l=1);k.hasAttribute("rowspan")&&(m=parseInt(k.getAttribute("rowspan"),10),isNaN(m)||0>=m)&&(m=1);for(var p=0;p<m;p++)for(var q=0;q<l;q++){var n=new ShadowTableNode;0==p&&0==q?(n.spanned=!1,n.rowSpan=!1,n.colSpan=!1):(n.spanned=!0,n.rowSpan=1<m,n.colSpan=1<l);n.i=e;n.j=h;n.activeCell=k;n.rowHeaderCells=[];n.colHeaderCells=[];n.isRowHeader=!1;n.isColHeader=!1;cvox.TableUtil.checkIfHeader(n.activeCell)?this.candidateHeaders_.push(n):n.activeCell.hasAttribute("headers")&&this.candidateHeaders_.push(n); +null==b?(b=a[e].parentNode,c=0):a[e].parentNode!=b&&(b=a[e].parentNode,c+=1);n.rowGroup=c;n.colGroup=0<d.length?d[h]:0;n.spanned||null!=k.id&&(this.idToShadowNode_[k.id]=n);this.shadowTable_[e+p][h+q]=n}h+=l;g++}else h+=1;return this.shadowTable_}; +cvox.TraverseTable.prototype.findHeaderCells_=function(){for(var a=0;a<this.candidateHeaders_.length;a++){var b=this.candidateHeaders_[a],c=b.activeCell,d=null,e=null;if(!b.spanned){"TH"!=c.tagName||c.hasAttribute("scope")?c.hasAttribute("scope")?e=c.getAttribute("scope"):c.hasAttribute("role")&&"rowheader"==c.getAttribute("role")?e="row":c.hasAttribute("role")&&"columnheader"==c.getAttribute("role")&&(e="col"):(0<b.j?"TH"==this.shadowTable_[b.i][b.j-1].activeCell.tagName&&(d="col"):b.j<this.shadowTable_[b.i].length- +1?"TH"==this.shadowTable_[b.i][b.j+1].activeCell.tagName&&(d="col"):d="col",null==d&&(0<b.i?"TH"==this.shadowTable_[b.i-1][b.j].activeCell.tagName&&(d="row"):b.i<this.shadowTable_.length-1?"TH"==this.shadowTable_[b.i+1][b.j].activeCell.tagName&&(d="row"):d="row"));if("row"==e||"row"==d){b.isRowHeader=!0;for(d=b.j;d<this.shadowTable_[b.i].length;d++)e=this.shadowTable_[b.i][d],e.rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("col"==e||"col"==d){b.isColHeader=!0;for(e=b.i;e<this.shadowTable_.length;e++){d= +this.shadowTable_[e][b.j];if(null==d)break;d.colHeaderCells.push(c)}this.tableColHeaders.push(c)}else if("rowgroup"==e){b.isRowHeader=!0;for(var f=b.rowGroup,d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].rowHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length&&this.shadowTable_[e][0].rowGroup==f;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("colgroup"==e){b.isColHeader=!0;f=b.colGroup; +for(d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].colGroup==f&&this.shadowTable_[b.i][d].colHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].colGroup==f&&this.shadowTable_[e][d].colHeaderCells.push(c);this.tableColHeaders.push(c)}c.hasAttribute("headers")&&this.findAttrbHeaders_(b);c.hasAttribute("aria-describedby")&&this.findAttrbDescribedBy_(b)}}}; +cvox.TraverseTable.prototype.findAttrbHeaders_=function(a){for(var b=a.activeCell,c=b.getAttribute("headers").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];if(!cvox.TableUtil.checkIfHeader(g.activeCell)){var h=Math.abs(g.i-a.i),k=Math.abs(g.j-a.j);0==h||h<k?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,g.activeCell)): +(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell))}}}; +cvox.TraverseTable.prototype.findAttrbDescribedBy_=function(a){for(var b=a.activeCell,c=b.getAttribute("aria-describedby").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];cvox.TableUtil.checkIfHeader(g.activeCell)||(g.activeCell.hasAttribute("role")&&"rowheader"==g.activeCell.getAttribute("role")?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders, +g.activeCell)):g.activeCell.hasAttribute("role")&&"columnheader"==g.activeCell.getAttribute("role")&&(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell)))}};cvox.TraverseTable.prototype.getCell=function(){if(!this.currentCellCursor||!this.shadowTable_)return null;var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a&&a.activeCell}; +cvox.TraverseTable.prototype.getCellAt=function(a){return a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]&&(a=this.shadowTable_[a[0]][a[1]],null!=a)?a.activeCell:null};cvox.TraverseTable.prototype.getCellRowHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.rowHeaderCells};cvox.TraverseTable.prototype.getCellColHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.colHeaderCells}; +cvox.TraverseTable.prototype.isSpanned=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.spanned};cvox.TraverseTable.prototype.isRowHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isRowHeader};cvox.TraverseTable.prototype.isColHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isColHeader}; +cvox.TraverseTable.prototype.getCol=function(){for(var a=[],b=0;b<this.shadowTable_.length;b++)if(this.shadowTable_[b][this.currentCellCursor[1]]){var c=this.shadowTable_[b][this.currentCellCursor[1]];if(c.colSpan&&c.rowSpan){var d=a[a.length-1];d!=c.activeCell&&a.push(c.activeCell)}else!c.colSpan&&c.rowSpan||a.push(c.activeCell)}return a};cvox.TraverseTable.prototype.summaryText=function(){return this.activeTable_.hasAttribute("summary")?this.activeTable_.getAttribute("summary"):null}; +cvox.TraverseTable.prototype.shadowColCount_=function(){for(var a=0,b=0;b<this.shadowTable_.length;b++)this.shadowTable_[b].length>a&&(a=this.shadowTable_[b].length);return a};cvox.TraverseTable.prototype.countRows_=function(){var a=cvox.TableUtil.getChildRows(this.activeTable_);return a.length};cvox.TraverseTable.prototype.nextRow=function(){return this.currentCellCursor?this.goToRow(this.currentCellCursor[0]+1):this.goToRow(0)}; +cvox.TraverseTable.prototype.nextCol=function(){return this.currentCellCursor?this.goToCol(this.currentCellCursor[1]+1):this.goToCol(0)};cvox.TraverseTable.prototype.goToRow=function(a){return null!=this.shadowTable_[a]?(this.currentCellCursor=null==this.currentCellCursor?[a,0]:[a,this.currentCellCursor[1]],!0):!1};cvox.TraverseTable.prototype.goToCol=function(a){if(0>a||a>=this.colCount)return!1;this.currentCellCursor=null==this.currentCellCursor?[0,a]:[this.currentCellCursor[0],a];return!0}; +cvox.TraverseTable.prototype.goToCell=function(a){if(a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]){var b=this.shadowTable_[a[0]][a[1]];if(null!=b)return this.currentCellCursor=a,!0}return!1};cvox.TraverseTable.prototype.goToLastCell=function(){var a=this.shadowTable_.length;if(0==a)return!1;var b=this.shadowTable_[a-1],a=[a-1,b.length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1}; +cvox.TraverseTable.prototype.goToRowLastCell=function(){var a=this.currentCellCursor[0],a=[a,this.shadowTable_[a].length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TraverseTable.prototype.goToColLastCell=function(){var a=this.getCol(),a=[a.length-1,this.currentCellCursor[1]],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TableWalker=function(){this.tt=new cvox.TraverseTable(null)};goog.inherits(cvox.TableWalker,cvox.AbstractWalker);cvox.TableWalker.prototype.next=function(a){return this.nextRow(a)};cvox.TableWalker.prototype.sync=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell(a)},this))}; +cvox.TableWalker.prototype.getDescription=function(a,b){var c=this.syncPosition_(b);if(!c)return[];this.tt.goToCell(c);c=cvox.DescriptionUtil.getCollectionDescription(a,b);0==c.length&&c.push(new cvox.NavDescription({annotation:cvox.ChromeVox.msgs.getMsg("empty_cell")}));return c};cvox.TableWalker.prototype.getBraille=function(a,b){new cvox.NavBraille({});var c=this.syncPosition_(b);if(c){var d=cvox.BrailleUtil.getTemplated(a.start.node,b.start.node);d.append(" "+ ++c[0]+"/"+ ++c[1])}return new cvox.NavBraille({text:d})}; +cvox.TableWalker.prototype.goToFirstCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToCell([0,0])},this))};cvox.TableWalker.prototype.goToLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToLastCell()},this))};cvox.TableWalker.prototype.goToRowFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([a[0],0])},this))}; +cvox.TableWalker.prototype.goToRowLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToRowLastCell()},this))};cvox.TableWalker.prototype.goToColFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([0,a[1]])},this))};cvox.TableWalker.prototype.goToColLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToColLastCell()},this))}; +cvox.TableWalker.prototype.nextRow=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0]+(a.isReversed()?-1:1),b[1]])},this))};cvox.TableWalker.prototype.nextCol=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0],b[1]+(a.isReversed()?-1:1)])},this))};cvox.TableWalker.prototype.announceHeaders=function(a){cvox.ChromeVox.tts.speak(this.getHeaderText_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);return a}; +cvox.TableWalker.prototype.speakTableLocation=function(a){cvox.ChromeVox.navigationManager.speakDescriptionArray(this.getLocationDescription_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,null);return a};cvox.TableWalker.prototype.exitShifterContent=function(a){a=this.getTableNode_(a);if(!a)return null;a=cvox.DomUtil.directedNextLeafNode(a,!1);return cvox.CursorSelection.fromNode(a)}; +cvox.TableWalker.prototype.getHeaderText_=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))&&this.tt.goToCell(a)?this.getRowHeaderText_(a)+" "+this.getColHeaderText_(a):cvox.ChromeVox.msgs.getMsg("not_inside_table")};cvox.TableWalker.prototype.getLocationDescription_=function(a){a=this.getLocationInfo(a);return null==a?null:[new cvox.NavDescription({text:cvox.ChromeVox.msgs.getMsg("table_location",a)})]}; +cvox.TableWalker.prototype.getRowHeaderText_=function(a){var b="",c=this.tt.getCellRowHeaders();if(0==c.length)return c=this.tt.getCellAt([a[0],0]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("row_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("row_header")+b}; +cvox.TableWalker.prototype.getColHeaderText_=function(a){var b="",c=this.tt.getCellColHeaders();if(0==c.length)return c=this.tt.getCellAt([0,a[1]]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("column_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("column_header")+ +b};cvox.TableWalker.prototype.getLocationInfo=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))?[a[0]+1,this.tt.rowCount,a[1]+1,this.tt.colCount].map(function(a){return cvox.ChromeVox.msgs.getNumber(a)}):null}; +cvox.TableWalker.prototype.goTo_=function(a,b){this.tt.initialize(this.getTableNode_(a));var c=this.tt.findNearestCursor(a.end.node);if(!c)return null;this.tt.goToCell(c);return b(c)?cvox.CursorSelection.fromNode(this.tt.getCell()).setReversed(a.isReversed()):null};cvox.TableWalker.prototype.getTableNode_=function(a){return cvox.DomUtil.getContainingTable(a.end.node)};cvox.TableWalker.prototype.syncPosition_=function(a){var b=this.getTableNode_(a);this.tt.initialize(b);return this.tt.findNearestCursor(a.end.node)};cvox.ColumnWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.ColumnWalker,cvox.TableWalker);cvox.ColumnWalker.prototype.next=function(a){return this.nextCol(a)};cvox.ColumnWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("column_granularity")};cvox.RowWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.RowWalker,cvox.TableWalker);cvox.RowWalker.prototype.next=function(a){return this.nextRow(a)};cvox.RowWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("row_granularity")};cvox.TableShifter=function(){this.rowWalker_=new cvox.RowWalker;this.columnWalker_=new cvox.ColumnWalker;this.currentWalker_=this.rowWalker_;this.bumpedEdge_=!1;this.begin_=!0;cvox.AbstractShifter.call(this)};goog.inherits(cvox.TableShifter,cvox.AbstractShifter);cvox.TableShifter.prototype.next=function(a){var b=this.currentWalker_.next(a);return b?b:(this.bumpedEdge_=!0,a)}; +cvox.TableShifter.prototype.sync=function(a){return"TABLE"==a.start.node.tagName?a.isReversed()?this.currentWalker_.goToLastCell(a):this.currentWalker_.goToFirstCell(a):this.currentWalker_.sync(a)};cvox.TableShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("table_shifter")}; +cvox.TableShifter.prototype.getDescription=function(a,b){var c=this.currentWalker_.getDescription(a,b);if(0<c.length&&(this.bumpedEdge_&&(c[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE),this.bumpedEdge_=!1),this.begin_)){var d=this.currentWalker_.tt.summaryText(),e=this.currentWalker_.getLocationInfo(b);null!=e&&c.push(new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("table_location",e),text:"",annotation:d?d+" ":""}));this.currentWalker_.tt.isSpanned()&&c.push(new cvox.NavDescription({text:"", +annotation:cvox.ChromeVox.msgs.getMsg("spanned")}));this.begin_=!1}return c};cvox.TableShifter.prototype.getBraille=function(a,b){return this.currentWalker_.getBraille(a,b)};cvox.TableShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};cvox.TableShifter.prototype.makeLessGranular=function(){cvox.TableShifter.superClass_.makeLessGranular.call(this);this.currentWalker_=this.rowWalker_}; +cvox.TableShifter.prototype.makeMoreGranular=function(){cvox.TableShifter.superClass_.makeMoreGranular.call(this);this.currentWalker_=this.columnWalker_};cvox.TableShifter.create=function(a){a=cvox.DomUtil.getAncestors(a.start.node);return cvox.DomPredicates.tablePredicate(a)&&!cvox.DomPredicates.captionPredicate(a)?new cvox.TableShifter:null};cvox.NavigationHistory=function(){this.reset_()};cvox.NavigationHistory.MAX_HISTORY_LEN_=30;cvox.NavigationHistory.prototype.reset_=function(){var a=document.body;this.history_=[a];this.arrivedValid_=!0};cvox.NavigationHistory.prototype.update=function(a){var b=this.history_[0];a&&a!=b&&this.history_.unshift(a);this.history_.length>cvox.NavigationHistory.MAX_HISTORY_LEN_&&this.history_.pop();this.arrivedValid_=this.isValidNode_(a)}; +cvox.NavigationHistory.prototype.becomeInvalid=function(a){this.clean_();return this.arrivedValid_?!this.isValidNode_(a):(this.arrivedValid_=!0,!1)};cvox.NavigationHistory.prototype.revert=function(a){var b=document.activeElement;b!=document.body&&this.isValidNode_(b)&&this.update(b);if(a)for(;0<this.history_.length;){b=this.history_[0];if(a(b))break;this.history_.shift()}return{current:this.history_[0],previous:this.history_[1]}}; +cvox.NavigationHistory.prototype.clean_=function(){for(var a=!1,b=this.history_.length-1;0<=b;b--){var c=this.isValidNode_(this.history_[b]);c||(this.history_.splice(b,1),a=!0)}return a};cvox.NavigationHistory.prototype.isValidNode_=function(a){return cvox.DomUtil.isAttachedToDocument(a)&&cvox.DomUtil.isVisible(a)?!0:!1};cvox.TraverseContent=function(a){this.currentDomObj=null!=a?a:document.body;var b=document.createRange();try{b.selectNode(this.currentDomObj),this.startCursor_=new cvox.Cursor(b.startContainer,b.startOffset,cvox.TraverseUtil.getNodeText(b.startContainer)),this.endCursor_=new cvox.Cursor(b.endContainer,b.endOffset,cvox.TraverseUtil.getNodeText(b.endContainer))}catch(c){window.console.log("Error: Unselectable node:"),window.console.log(a)}};goog.addSingletonGetter(cvox.TraverseContent); +cvox.TraverseContent.prototype.lastSelectionWasWhitespace=!1;cvox.TraverseContent.prototype.skipWhitespace=!1;cvox.TraverseContent.prototype.skipInvalidSelections=!0;cvox.TraverseContent.prototype.breakAtLinks=!0;cvox.TraverseContent.kCharacter="character";cvox.TraverseContent.kWord="word";cvox.TraverseContent.kSentence="sentence";cvox.TraverseContent.kLine="line";cvox.TraverseContent.kParagraph="paragraph"; +cvox.TraverseContent.kAllGrains=[cvox.TraverseContent.kParagraph,cvox.TraverseContent.kSentence,cvox.TraverseContent.kLine,cvox.TraverseContent.kWord,cvox.TraverseContent.kCharacter];cvox.TraverseContent.prototype.syncToCursorSelection=function(a){this.startCursor_=a.start.clone();this.endCursor_=a.end.clone()};cvox.TraverseContent.prototype.getCurrentCursorSelection=function(){return new cvox.CursorSelection(this.startCursor_,this.endCursor_)}; +cvox.TraverseContent.prototype.updateSelection=function(){cvox.TraverseUtil.setSelection(this.startCursor_,this.endCursor_);cvox.SelectionUtil.scrollToSelection(window.getSelection())};cvox.TraverseContent.prototype.getCurrentRange=function(){var a=document.createRange();try{a.setStart(this.startCursor_.node,this.startCursor_.index),a.setEnd(this.endCursor_.node,this.endCursor_.index)}catch(b){console.log("Invalid range ")}return a};cvox.TraverseContent.prototype.getCurrentText=function(){return cvox.SelectionUtil.getRangeText(this.getCurrentRange())}; +cvox.TraverseContent.prototype.collapseToEnd=function(){this.startCursor_=this.endCursor_.clone()};cvox.TraverseContent.prototype.collapseToStart=function(){this.endCursor_=this.startCursor_.clone()}; +cvox.TraverseContent.prototype.moveNext=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getNextWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getNextChar(this.startCursor_,this.endCursor_, +e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getNextParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getNextLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&& +g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.moveNext(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()}; +cvox.TraverseContent.prototype.movePrev=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getPreviousWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getPreviousChar(this.startCursor_,this.endCursor_, +e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getPreviousParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getPreviousLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&& +g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.movePrev(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};cvox.TraverseContent.prototype.getBreakTags=function(){return{A:this.breakAtLinks,BR:!0,HR:!0}}; +cvox.TraverseContent.prototype.nextElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.moveNext(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null}; +cvox.TraverseContent.prototype.prevElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.movePrev(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};cvox.TraverseContent.prototype.reset=function(){window.getSelection().removeAllRanges()};cvox.AbstractSelectionWalker=function(){this.objWalker_=new cvox.BareObjectWalker;this.tc_=cvox.TraverseContent.getInstance();this.grain=""};goog.inherits(cvox.AbstractSelectionWalker,cvox.AbstractWalker); +cvox.AbstractSelectionWalker.prototype.next=function(a){var b=a.isReversed();this.tc_.syncToCursorSelection(a.clone().setReversed(!1));var c=b?this.tc_.prevElement(this.grain):this.tc_.nextElement(this.grain);if(null==c)return this.objWalker_.next(a);var c=this.tc_.getCurrentCursorSelection().setReversed(b),d=this.objWalker_.next(a),d=d?d.setReversed(b):null;return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)|| +cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d}; +cvox.AbstractSelectionWalker.prototype.sync=function(a){var b=a.isReversed(),c=null;if(a.start.equals(a.end)&&"Text"!=a.start.node.constructor.name){for(c=a.start.node;c&&cvox.DomUtil.directedFirstChild(c,b)&&!cvox.TraverseUtil.treatAsLeafNode(c);){for(var d=cvox.DomUtil.directedFirstChild(c,b);d;)if(cvox.DomUtil.isVisible(d,{checkAncestors:!1,checkDescendants:!1})){c=d;break}else d=cvox.DomUtil.directedNextSibling(d,b);if(!d)break}c=cvox.CursorSelection.fromNode(c)}else c=a.clone(),b?c.start=c.end: +c.end=c.start;c=this.next(c.setReversed(!1));d=(d=this.objWalker_.sync(a))?d.setReversed(b):null;if(!c)return d;c.setReversed(b);return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d}; +cvox.AbstractSelectionWalker.prototype.getDescription=function(a,b){var c=cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getUniqueAncestors(a.end.node,b.start.node),!0,cvox.ChromeVox.verbosity);c.text=b.getText()||c.text;return[c]};cvox.AbstractSelectionWalker.prototype.getBraille=function(a,b){var c=b.absStart().node,d=cvox.TraverseUtil.getNodeText(c),e=new cvox.Spannable(d);e.setSpan(c,0,d.length);return new cvox.NavBraille({text:e,startIndex:b.absStart().index,endIndex:b.absEnd().index})};cvox.CharacterWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kCharacter};goog.inherits(cvox.CharacterWalker,cvox.AbstractSelectionWalker);cvox.CharacterWalker.prototype.getDescription=function(a,b){var c=cvox.CharacterWalker.superClass_.getDescription.call(this,a,b);c.forEach(function(a){a.personality||(a.personality={});a.personality.phoneticCharacters=!0});return c};cvox.CharacterWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("character_granularity")};cvox.GroupUtil={};cvox.GroupUtil.MAX_CHARCOUNT_=1500;cvox.GroupUtil.BREAKOUT_SELECTOR_='blockquote,button,code,form,frame,h1,h2,h3,h4,h5,h6,hr,iframe,input,object,ol,p,pre,select,table,tr,ul,math,span.math,[role~="alert alertdialog button checkbox combobox dialog log marquee menubar progressbar radio radiogroup scrollbar slider spinbutton status tab tabpanel textbox toolbar tooltip treeitem article document group heading img list math region row separator"]'; +cvox.GroupUtil.isLeafNode=function(a){if("LABEL"==a.tagName)return cvox.DomUtil.isLeafNode(a);if(cvox.DomUtil.isLeafNode(a))return!0;if(!cvox.DomUtil.isSemanticElt(a))for(var b=a.querySelectorAll(cvox.GroupUtil.BREAKOUT_SELECTOR_),c=0;c<b.length;++c)if(cvox.DomUtil.hasContent(b[c]))return!1;if(cvox.AriaUtil.isCompositeControl(a)&&!cvox.DomUtil.isFocusable(a))return!1;a=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a));return a.length>cvox.GroupUtil.MAX_CHARCOUNT_|| +""===a.replace(/\s/g,"")?!1:!0};cvox.GroupWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.GroupWalker,cvox.AbstractNodeWalker);cvox.GroupWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getCollectionDescription(a,b)};cvox.GroupWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};cvox.GroupWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("group_strategy")};cvox.GroupWalker.prototype.stopNodeDescent=function(a){return cvox.GroupUtil.isLeafNode(a)};cvox.StructuralLineWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kLine};goog.inherits(cvox.StructuralLineWalker,cvox.AbstractSelectionWalker);cvox.StructuralLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("structural_line")}; +cvox.StructuralLineWalker.prototype.getDescription=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getDescription.call(this,a,b);c[0].text=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index)+c[0].text;return c}; +cvox.StructuralLineWalker.prototype.getBraille=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getBraille.call(this,a,b),d=this.objWalker_.sync(b).absStart().node,e=a.absEnd().node,f=void 0;b.start.equals(b.end)||cvox.DomPredicates.editTextPredicate([d])||(f=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index),f+=b.getText());e=cvox.BrailleUtil.getTemplated(e,d,{name:f});e.setSpan(d,0,e.getLength());c.text=e;c.startIndex=0;c.endIndex=0;return c};cvox.LayoutLineWalker=function(){this.subWalker_=new cvox.StructuralLineWalker};goog.inherits(cvox.LayoutLineWalker,cvox.AbstractWalker);cvox.LayoutLineWalker.prototype.next=function(a){var b=new cvox.CursorSelection(a.end,a.end,a.isReversed()),c=this.subWalker_.sync(b);if(!c)return null;b=this.subWalker_.next(b);if(!b)return null;b.setReversed(a.isReversed());return this.extend_(b).setReversed(!1)}; +cvox.LayoutLineWalker.prototype.sync=function(a){var b=this.subWalker_.sync(a);if(!b)return null;var c=this.extend_(b),b=this.extend_(b.setReversed(!b.isReversed()));return new cvox.CursorSelection(b.end,c.end,a.isReversed())}; +cvox.LayoutLineWalker.prototype.getDescription=function(a,b){var c=[],d=a,e=b.clone().setReversed(!1),f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return[];if(e.start.node==e.end.node)return this.subWalker_.getDescription(a,b);for(;f&&!f.end.equals(e.end);)c.push.apply(c,this.subWalker_.getDescription(d,f)),d=f,f=this.subWalker_.next(f);f&&c.push.apply(c,this.subWalker_.getDescription(d,f));return c}; +cvox.LayoutLineWalker.prototype.getBraille=function(a,b){var c=new cvox.NavBraille({}),d=this.subWalker_.sync(b.clone().setReversed(!1)),e=this.sync(b).setReversed(!1);if(!e||!d)return c;var f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return c;for(;f&&!f.end.equals(e.end);)this.appendBraille_(a,d,f,c),a=f,f=this.subWalker_.next(f);f&&this.appendBraille_(a,d,f,c);return c};cvox.LayoutLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("layout_line")}; +cvox.LayoutLineWalker.prototype.isVisualLineBreak_=function(a,b){if(this.wantsOwnLine_(a.end.node)||this.wantsOwnLine_(b.start.node))return!0;var c=a.getRange().getBoundingClientRect(),d=b.getRange().getBoundingClientRect();0==c.width&&0==c.height&&a.end.node.nodeType==Node.ELEMENT_NODE&&(c=a.end.node.getBoundingClientRect());0==d.width&&0==d.height&&b.start.node.nodeType==Node.ELEMENT_NODE&&(d=b.start.node.getBoundingClientRect());return c.bottom!=d.bottom}; +cvox.LayoutLineWalker.prototype.wantsOwnLine_=function(a){return a instanceof HTMLTextAreaElement||a.parentNode instanceof HTMLTextAreaElement};cvox.LayoutLineWalker.prototype.extend_=function(a){var b=a,c=a;do b=c,c=this.subWalker_.next(b);while(c&&!this.isVisualLineBreak_(b,c));return new cvox.CursorSelection(a.start,b.end,a.isReversed())}; +cvox.LayoutLineWalker.prototype.appendBraille_=function(a,b,c,d){a=this.subWalker_.getBraille(a,c).text;var e=a.getSpanInstanceOf(cvox.BrailleUtil.ValueSelectionSpan);0<d.text.getLength()&&d.text.append(cvox.BrailleUtil.ITEM_SEPARATOR);for(var f=c.start.node;f.parentNode&&cvox.DomUtil.isLeafNode(f.parentNode);)f=f.parentNode;var g=d.text.getLength(),h=g+a.getLength();d.text.append(a.toString());d.text.setSpan(f,g,h);b&&c.absEquals(b)&&(e?(d.startIndex=g+a.getSpanStart(e),d.endIndex=g+a.getSpanEnd(e)): +(d.startIndex=g,d.endIndex=g+1))};cvox.ObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.ObjectWalker,cvox.AbstractNodeWalker);cvox.ObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AbstractNodeWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getDescriptionFromNavigation(a.end.node,b.start.node,!0,cvox.ChromeVox.verbosity)};cvox.ObjectWalker.prototype.getBraille=function(){throw"getBraille is unsupported";}; +cvox.ObjectWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("object_strategy")};cvox.SentenceWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kSentence};goog.inherits(cvox.SentenceWalker,cvox.AbstractSelectionWalker);cvox.SentenceWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("sentence_granularity")};cvox.WordWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kWord};goog.inherits(cvox.WordWalker,cvox.AbstractSelectionWalker);cvox.WordWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("word_granularity")};cvox.NavigationShifter=function(){this.reset_();cvox.AbstractShifter.call(this)};goog.inherits(cvox.NavigationShifter,cvox.AbstractShifter);cvox.NavigationShifter.GRANULARITIES={CHARACTER:0,WORD:1,LINE:2,SENTENCE:3,OBJECT:4,GROUP:5};cvox.NavigationShifter.prototype.storeOn=function(a){a.granularity=this.getGranularity()};cvox.NavigationShifter.prototype.readFrom=function(a){this.setGranularity(a.granularity)}; +cvox.NavigationShifter.prototype.next=function(a){a=this.currentWalker_.next(a);this.currentWalkerIndex_<=cvox.NavigationShifter.GRANULARITIES.LINE&&a&&(cvox.TraverseContent.getInstance().syncToCursorSelection(a.clone().setReversed(!1)),cvox.TraverseContent.getInstance().updateSelection());return a};cvox.NavigationShifter.prototype.sync=function(a){return this.currentWalker_.sync(a)};cvox.NavigationShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("navigation_shifter")}; +cvox.NavigationShifter.prototype.getDescription=function(a,b){return this.currentWalker_.getDescription(a,b)};cvox.NavigationShifter.prototype.getBraille=function(a,b){return this.lineWalker_.getBraille(a,b)};cvox.NavigationShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()}; +cvox.NavigationShifter.prototype.makeMoreGranular=function(){cvox.NavigationShifter.superClass_.makeMoreGranular.call(this);this.currentWalkerIndex_=Math.max(this.currentWalkerIndex_-1,0);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_--;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]}; +cvox.NavigationShifter.prototype.makeLessGranular=function(){cvox.NavigationShifter.superClass_.makeLessGranular.call(this);this.currentWalkerIndex_=Math.min(this.currentWalkerIndex_+1,this.walkers_.length-1);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_++;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]}; +cvox.NavigationShifter.prototype.setGranularity=function(a){this.ensureNotSubnavigating();this.currentWalkerIndex_=a;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.prototype.getGranularity=function(){var a=this.isSubnavigating();this.ensureNotSubnavigating();var b=this.currentWalkerIndex_;a&&this.ensureSubnavigating();return b}; +cvox.NavigationShifter.prototype.hasAction=function(a){return"toggleLineType"==a?!0:cvox.NavigationShifter.superClass_.hasAction.call(this,a)};cvox.NavigationShifter.create=function(){return new cvox.NavigationShifter}; +cvox.NavigationShifter.prototype.reset_=function(){this.groupWalker_=new cvox.GroupWalker;this.objectWalker_=new cvox.ObjectWalker;this.sentenceWalker_=new cvox.SentenceWalker;this.lineWalker_=new cvox.LayoutLineWalker;this.wordWalker_=new cvox.WordWalker;this.characterWalker_=new cvox.CharacterWalker;this.walkers_=[this.characterWalker_,this.wordWalker_,this.lineWalker_,this.sentenceWalker_,this.objectWalker_,this.groupWalker_];this.currentWalkerIndex_=this.walkers_.indexOf(this.groupWalker_);this.currentWalker_= +this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.allowSentence=!1;cvox.NavigationSpeaker=function(){this.stopReading=!1;this.id_=1}; +cvox.NavigationSpeaker.prototype.speakDescriptionArray=function(a,b,c){a=this.reorderAnnotations(a);this.stopReading=!1;this.id_=(this.id_+1)%1E4;var d=this,e=function(b,g,h){var k=a[b];if(k&&!d.stopReading&&d.id_==h){var l=function(){for(var a=0;a<k.earcons.length;a++)cvox.ChromeVox.earcons.playEarcon(k.earcons[a])},m=function(){e(b+1,cvox.AbstractTts.QUEUE_MODE_QUEUE,h)},p=function(){k.personality&&k.personality[cvox.AbstractTts.PAUSE]&&"number"==typeof k.personality[cvox.AbstractTts.PAUSE]?setTimeout(m, +k.personality[cvox.AbstractTts.PAUSE]):m();b==a.length-1&&c&&c()};k.isEmpty()?(l(),p()):(k.speak(g,l,p),cvox.ChromeVox.host.hasTtsCallback()||(l(),p()))}};e(0,b,this.id_);0==a.length&&c&&c()};cvox.NavigationSpeaker.structuredElement=function(a){switch(a){case "table":case "Math":return!0}return!1}; +cvox.NavigationSpeaker.prototype.reorderAnnotations=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];cvox.NavigationSpeaker.structuredElement(d.annotation)&&(b.push(new cvox.NavDescription({text:"",annotation:d.annotation})),d.annotation="");b.push(d)}return b};cvox.NavigationManager=function(){this.addInterframeListener_();this.reset()};cvox.NavigationManager.prototype.storeOn=function(a){a.reversed=this.isReversed();a.keepReading=this.keepReading_;a.findNext=this.predicate_;this.shifter_.storeOn(a)};cvox.NavigationManager.prototype.readFrom=function(a){this.curSel_.setReversed(a.reversed);this.shifter_.readFrom(a);a.keepReading&&this.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH)}; +cvox.NavigationManager.prototype.reset=function(){this.navSpeaker_=new cvox.NavigationSpeaker;this.shifterTypes_=[cvox.NavigationShifter,cvox.TableShifter,cvox.MathShifter];this.shifterStack_=[];this.shifter_=new cvox.NavigationShifter;this.curSel_=document.activeElement!=document.body?cvox.CursorSelection.fromNode(document.activeElement):this.shifter_.begin(this.curSel_,{reversed:!1});this.prevSel_=this.curSel_.clone();this.ignoreIframesNoMatterWhat_=this.exitedShifter_=this.enteredShifter_=this.pageEndAnnounced_= +this.pageEnd_=this.keepReading_=this.recovered_=this.skipped_=!1;this.pageSel_=null;this.predicate_="";this.saveSel_=null;this.activeIndicator&&this.activeIndicator.removeFromDom();this.activeIndicator=new cvox.ActiveIndicator;this.navigationHistory_=new cvox.NavigationHistory;this.focusRecovery_="chrome:"!=window.location.protocol;this.iframeIdMap={};this.nextIframeId=1;document.activeElement!=document.body&&this.sync();cvox.TraverseMath.getInstance()}; +cvox.NavigationManager.prototype.resolve=function(a){if(!this.getFocusRecovery())return!0;var b=this.getCurrentNode();if(!this.navigationHistory_.becomeInvalid(b)||this.hasNext_())return!0;b=this.navigationHistory_.revert(a);if(!b.current)return!0;a=cvox.CursorSelection.fromNode(b.current);b=cvox.CursorSelection.fromNode(b.previous);a=a||cvox.CursorSelection.fromBody();b=b||cvox.CursorSelection.fromBody();a.setReversed(this.isReversed());this.updateSel(a,b);this.recovered_=!0;return!1}; +cvox.NavigationManager.prototype.getFocusRecovery=function(){return this.focusRecovery_};cvox.NavigationManager.prototype.setFocusRecovery=function(a){this.focusRecovery_=a};cvox.NavigationManager.prototype.next_=function(a){return this.tryBoundaries_(this.shifter_.next(this.curSel_),a)?(this.pageSel_&&this.pageSel_.extend(this.curSel_),!0):!1}; +cvox.NavigationManager.prototype.hasNext_=function(){if(0<this.shifterStack_.length)return!0;var a=this.curSel_.clone(),b=!1,c=new cvox.NavigationShifter;c.setGranularity(this.shifter_.getGranularity());c.sync(a);c.next(a)&&(b=!0);return b}; +cvox.NavigationManager.prototype.findNext=function(a,b,c){this.predicate_=b||"";this.resolve();this.shifter_=this.shifterStack_[0]||this.shifter_;this.shifterStack_=[];a=cvox.FindUtil.findNext(this.curSel_,a,c);this.ignoreIframesNoMatterWhat_||this.tryIframe_(a&&a.start.node);a&&this.updateSelToArbitraryNode(a.start.node);this.predicate_="";return a};cvox.NavigationManager.prototype.sync=function(){this.resolve();var a=this.shifter_.sync(this.curSel_);a&&(this.curSel_=a)}; +cvox.NavigationManager.prototype.syncAll=function(a){this.sync();this.setFocus(a);this.updateIndicator()};cvox.NavigationManager.prototype.clearPageSel=function(a){var b=!!this.pageSel_;b&&a&&(a=cvox.ChromeVox.msgs.getMsg("clear_page_selection"),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION));this.pageSel_=null;return b}; +cvox.NavigationManager.prototype.togglePageSel=function(){this.pageSel_=this.pageSel_?null:new cvox.PageSelection(this.curSel_.setReversed(!1));return!!this.pageSel_}; +cvox.NavigationManager.prototype.getDescription=function(){if(this.getCurrentNode().hasAttribute&&this.getCurrentNode().hasAttribute("cvoxnodedesc")){for(var a=cvox.ChromeVoxJSON.parse(this.getCurrentNode().getAttribute("cvoxnodedesc")),b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b}var e=this.pageSel_?this.pageSel_.getDescription(this.shifter_,this.prevSel_,this.curSel_):this.shifter_.getDescription(this.prevSel_, +this.curSel_),a=[];this.skipped_&&(a.push(cvox.AbstractEarcons.PARAGRAPH_BREAK),this.skipped_=!1);this.recovered_&&(a.push(cvox.AbstractEarcons.FONT_CHANGE),this.recovered_=!1);this.pageEnd_&&(a.push(cvox.AbstractEarcons.WRAP),this.pageEnd_=!1);this.enteredShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_ENTER),this.enteredShifter_=!1);this.exitedShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_EXIT),this.exitedShifter_=!1);0<a.length&&0<e.length&&a.forEach(function(a){e[0].pushEarcon(a)});return e}; +cvox.NavigationManager.prototype.getBraille=function(){return cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.ANDROID|cvox.PlatformFilter.CHROMEOS)?this.shifter_.getBraille(this.prevSel_,this.curSel_):new cvox.NavBraille({})}; +cvox.NavigationManager.prototype.performAction=function(a){switch(a){case "enterShifter":case "enterShifterSilently":for(var b=this.shifterTypes_.length-1,c;c=this.shifterTypes_[b];b--)if((c=c.create(this.curSel_))&&c.getName()!=this.shifter_.getName()){this.shifterStack_.push(this.shifter_);this.shifter_=c;this.sync();this.enteredShifter_="enterShifterSilently"!=a;break}else if(c&&this.shifter_.getName()==c.getName())break;break;case "exitShifter":if(0==this.shifterStack_.length)return!1;this.shifter_= +this.shifterStack_.pop();this.sync();this.exitedShifter_=!0;break;case "exitShifterContent":if(0==this.shifterStack_.length)return!1;this.updateSel(this.shifter_.performAction(a,this.curSel_));this.shifter_=this.shifterStack_.pop()||this.shifter_;this.sync();this.exitedShifter_=!0;break;default:return this.shifter_.hasAction(a)?this.updateSel(this.shifter_.performAction(a,this.curSel_)):!1}return!0};cvox.NavigationManager.prototype.getGranularityMsg=function(){return this.shifter_.getGranularityMsg()}; +cvox.NavigationManager.prototype.makeMoreGranular=function(a){this.shifter_.makeMoreGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.makeLessGranular=function(a){this.shifter_.makeLessGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.setGranularity=function(a,b,c){!b&&0<this.shifterStack_.length||(this.shifter_=this.shifterStack_.shift()||this.shifter_,this.shifter_.setGranularity(a),this.persistGranularity_(c))}; +cvox.NavigationManager.prototype.getGranularity=function(){var a=this.shifterStack_[0]||this.shifter_;return a.getGranularity()};cvox.NavigationManager.prototype.ensureSubnavigating=function(){this.shifter_.isSubnavigating()||(this.shifter_.ensureSubnavigating(),this.sync())};cvox.NavigationManager.prototype.ensureNotSubnavigating=function(){this.shifter_.isSubnavigating()&&(this.shifter_.ensureNotSubnavigating(),this.sync())}; +cvox.NavigationManager.prototype.speakDescriptionArray=function(a,b,c,d){d&&a.every(function(a){a.personality||(a.personality=d)});this.navSpeaker_.speakDescriptionArray(a,b,c)};cvox.NavigationManager.prototype.updatePosition=function(a){var b=cvox.ChromeVox.position;b[document.location.href]=cvox.DomUtil.elementToPoint(a);JSON.stringify(b)}; +cvox.NavigationManager.prototype.finishNavCommand=function(a,b,c,d){if(this.pageEnd_&&!this.pageEndAnnounced_)this.pageEndAnnounced_=!0,cvox.ChromeVox.tts.stop(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),cvox.ChromeVox.verbosity===cvox.VERBOSITY_VERBOSE&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),this.isReversed()&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom")),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION));else{if(this.enteredShifter_|| +this.exitedShifter_)a=cvox.ChromeVox.msgs.getMsg("enter_content_say",[this.shifter_.getName()]);var e=cvox.ChromeVox.navigationManager.getDescription();(b=void 0===b?!0:b)&&this.setFocus();this.updateIndicator();b=c||cvox.AbstractTts.QUEUE_MODE_FLUSH;a&&(cvox.ChromeVox.tts.speak(a,b,cvox.AbstractTts.PERSONALITY_ANNOTATION),b=cvox.AbstractTts.QUEUE_MODE_QUEUE);this.speakDescriptionArray(e,b,d||null);this.getBraille().write();this.updatePosition(this.getCurrentNode())}}; +cvox.NavigationManager.prototype.navigate=function(a,b){this.pageEndAnnounced_=!1;if(this.pageEnd_)return this.pageEnd_=!1,this.syncToBeginning(a),!0;if(!this.resolve())return!1;this.ensureNotSubnavigating();void 0!==b&&(b!==this.getGranularity()||0<this.shifterStack_.length)&&(this.setGranularity(b,!0),this.sync());return this.next_(!a)};cvox.NavigationManager.prototype.subnavigate=function(){this.pageEndAnnounced_=!1;this.resolve()&&(this.ensureSubnavigating(),this.next_(!0))}; +cvox.NavigationManager.prototype.skip=function(){if(!this.keepReading_)return!1;cvox.ChromeVox.host.hasTtsCallback()&&(this.skipped_=!0,this.setReversed(!1),this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_FLUSH));return!0};cvox.NavigationManager.prototype.startReading=function(a){this.keepReading_=!0;cvox.ChromeVox.host.hasTtsCallback()?this.startCallbackReading_(a):this.startNonCallbackReading_(a);this.prevStickyState_=cvox.ChromeVox.isStickyOn}; +cvox.NavigationManager.prototype.stopReading=function(a){this.keepReading_=!1;this.navSpeaker_.stopReading=!0;a&&cvox.ChromeVox.tts.stop();void 0!=this.prevStickyState_&&(this.prevStickyState_=void 0)};cvox.NavigationManager.prototype.isReading=function(){return this.keepReading_}; +cvox.NavigationManager.prototype.startCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.finishNavCommand("",!0,a,goog.bind(function(){this.next_(!0)&&this.keepReading_&&this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_QUEUE)},this))}); +cvox.NavigationManager.prototype.startNonCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.keepReading_&&(cvox.ChromeVox.tts.isSpeaking()||(this.finishNavCommand("",!0,a,null),this.next_(!0)||(this.keepReading_=!1)),window.setTimeout(goog.bind(this.startNonCallbackReading_,this),1E3))}); +cvox.NavigationManager.prototype.getFullDescription=function(){return this.pageSel_?this.pageSel_.getFullDescription():[cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getAncestors(this.curSel_.start.node),!0,cvox.ChromeVox.verbosity)]};cvox.NavigationManager.prototype.setFocus=function(a){this.pageSel_||a&&this.curSel_.start.node.constructor==Text||cvox.Focuser.setFocus(this.curSel_.start.node)};cvox.NavigationManager.prototype.getCurrentNode=function(){return this.curSel_.absStart().node}; +cvox.NavigationManager.prototype.addInterframeListener_=function(){var a=this;cvox.Interframe.addListener(function(b){if("enterIframe"==b.command||"exitIframe"==b.command)cvox.ChromeVox.serializer.readFrom(b),a.keepReading_||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){window.focus();if(b.findNext){var c=b.findNext,d=cvox.DomPredicates[c],c=a.findNext(d,c,!0);if(d&&(!c||"IFRAME"==c.start.node.tagName))return}else if("exitIframe"==b.command)d=b.sourceId,d=a.iframeIdMap[d],c=b.reversed, +d&&a.updateSel(cvox.CursorSelection.fromNode(d)),a.setReversed(c),a.sync(),a.navigate();else if(a.syncToBeginning(),!cvox.DomUtil.hasContent(document.body)){a.tryIframe_(null);return}a.finishNavCommand("",!0)})()})};cvox.NavigationManager.prototype.updateIndicator=function(){this.activeIndicator.syncToCursorSelection(this.curSel_)};cvox.NavigationManager.prototype.updateIndicatorIfChanged=function(){this.activeIndicator.updateIndicatorIfChanged()}; +cvox.NavigationManager.prototype.showOrHideIndicator=function(a){a||this.activeIndicator.removeFromDom()};cvox.NavigationManager.prototype.collapseSelection=function(){this.curSel_.collapse()};cvox.NavigationManager.prototype.updateSelToArbitraryNode=function(a,b){a?(this.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0),this.updateSel(cvox.CursorSelection.fromNode(a)),b||this.sync()):this.syncToBeginning()}; +cvox.NavigationManager.prototype.updateSel=function(a,b){a&&(this.prevSel_=b||this.curSel_,this.curSel_=a);var c=this.getCurrentNode();this.navigationHistory_.update(c);return!!a};cvox.NavigationManager.prototype.setReversed=function(a){this.curSel_.setReversed(a)};cvox.NavigationManager.prototype.isReversed=function(){return this.curSel_.isReversed()}; +cvox.NavigationManager.prototype.tryBoundaries_=function(a,b){b=!!b&&!this.ignoreIframesNoMatterWhat_||!1;this.pageEnd_=!1;if(b&&this.tryIframe_(a&&a.start.node))return!0;if(a)return this.updateSel(a),!0;if(0<this.shifterStack_.length)return!0;this.syncToBeginning(!b);this.clearPageSel(!0);this.stopReading(!0);this.pageEnd_=!0;return!1}; +cvox.NavigationManager.prototype.tryIframe_=function(a){if(null==a&&cvox.Interframe.isIframe()){var b={command:"exitIframe",reversed:this.isReversed(),granularity:this.getGranularity()};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToParentWindow(b);return!0}if(null==a||"IFRAME"!=a.tagName||!a.src)return!1;var c=void 0;for(b in this.iframeIdMap)if(this.iframeIdMap[b]==a){c=b;break}void 0==c&&(c=this.nextIframeId,this.nextIframeId++,this.iframeIdMap[c]=a,cvox.Interframe.sendIdToIFrame(c, +a));b={command:"enterIframe",id:c};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToIFrame(b,a);return!0};cvox.NavigationManager.prototype.syncToBeginning=function(a){var b=this.shifter_.begin(this.curSel_,{reversed:this.curSel_.isReversed()});!a&&this.tryIframe_(b&&b.start.node)||this.updateSel(b)};cvox.NavigationManager.prototype.ignoreIframesNoMatterWhat=function(){this.ignoreIframesNoMatterWhat_=!0};cvox.NavigationManager.prototype.saveSel=function(){this.saveSel_=this.curSel_}; +cvox.NavigationManager.prototype.restoreSel=function(){this.curSel_=this.saveSel_||this.curSel_};cvox.NavigationManager.prototype.persistGranularity_=function(a){(a=void 0===a?!1:a)&&this.getGranularity()};cvox.SearchWidget=function(){this.txtNode_=this.containerNode_=null;this.PROMPT_="Search:";this.hasMatch_=this.caseSensitive_=!1;cvox.Widget.call(this)};goog.inherits(cvox.SearchWidget,cvox.Widget);goog.addSingletonGetter(cvox.SearchWidget); +cvox.SearchWidget.prototype.show=function(){cvox.SearchWidget.superClass_.show.call(this);this.active=!0;this.hasMatch_=!1;cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);cvox.ChromeVox.navigationManager.setReversed(!1);this.focusRecovery_=cvox.ChromeVox.navigationManager.getFocusRecovery();cvox.ChromeVox.navigationManager.setFocusRecovery(!1);var a=this.createContainerNode_();this.containerNode_=a;var b=this.createOverlayNode_();a.appendChild(b); +var c=document.createElement("span");c.innerHTML=this.PROMPT_;b.appendChild(c);this.txtNode_=this.createTextAreaNode_();b.appendChild(this.txtNode_);document.body.appendChild(a);this.txtNode_.focus();window.setTimeout(function(){a.style.opacity="1.0"},0)}; +cvox.SearchWidget.prototype.hide=function(a){if(this.isActive()){var b=this.containerNode_;b.style.opacity="0.0";window.setTimeout(function(){document.body.removeChild(b)},1E3);this.txtNode_=null;cvox.SearchWidget.containerNode=null;cvox.ChromeVox.navigationManager.setFocusRecovery(this.focusRecovery_);this.active=!1}cvox.$m("choice_widget_exited").andPause().andMessage(this.getNameMsg()).speakFlush();this.hasMatch_&&a||cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode);cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll, +cvox.ChromeVox.navigationManager))(!0);cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),cvox.AbstractTts.QUEUE_MODE_QUEUE,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=this.textFromCurrentDescription_();cvox.ChromeVox.braille.write(new cvox.NavBraille({text:a,startIndex:0,endIndex:0}));cvox.SearchWidget.superClass_.hide.call(this,!0)};cvox.SearchWidget.prototype.getNameMsg=function(){return["search_widget_intro"]}; +cvox.SearchWidget.prototype.getHelpMsg=function(){return"search_widget_intro_help"}; +cvox.SearchWidget.prototype.onKeyDown=function(a){if(!this.isActive())return!1;var b=this.txtNode_.value;if(8==a.keyCode)0<b.length?(b=b.substring(0,b.length-1),this.txtNode_.value=b,this.beginSearch_(b)):(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode),cvox.ChromeVox.navigationManager.syncAll());else if(40==a.keyCode)this.next_(b,!1);else if(38==a.keyCode)this.next_(b,!0);else if(13==a.keyCode)this.hide(!0);else if(27==a.keyCode)this.hide(!1);else if(a.ctrlKey&&67==a.keyCode)this.toggleCaseSensitivity_(); +else return cvox.SearchWidget.superClass_.onKeyDown.call(this,a);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onKeyPress=function(a){if(!this.isActive())return!1;this.txtNode_.value+=String.fromCharCode(a.charCode);var b=this.txtNode_.value;this.beginSearch_(b);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onNavigate=function(){};cvox.SearchWidget.prototype.getPredicate=function(){return null}; +cvox.SearchWidget.prototype.nextResult=function(a){if(!this.isActive())return null;var b=this.txtNode_.value;return this.next_(b,a)};cvox.SearchWidget.prototype.createContainerNode_=function(){var a=document.createElement("div");a.id="cvox-search";a.style.position="fixed";a.style.top="50%";a.style.left="50%";a.style["-webkit-transition"]="all 0.3s ease-in";a.style.opacity="0.0";a.style["z-index"]="2147483647";a.setAttribute("aria-hidden","true");return a}; +cvox.SearchWidget.prototype.createOverlayNode_=function(){var a=document.createElement("div");a.style.position="relative";a.style.left="-50%";a.style.top="-40px";a.style["line-height"]="1.2em";a.style["font-size"]="20px";a.style.padding="30px";a.style["min-width"]="150px";a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["border-radius"]="10px";return a}; +cvox.SearchWidget.prototype.createTextAreaNode_=function(){var a=document.createElement("textarea");a.setAttribute("aria-hidden","true");a.setAttribute("rows","1");a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["vertical-align"]="middle";a.addEventListener("textInput",this.handleSearchChanged_,!1);return a}; +cvox.SearchWidget.prototype.toggleCaseSensitivity_=function(){this.caseSensitive_?(cvox.SearchWidget.caseSensitive_=!1,cvox.ChromeVox.tts.speak("Ignoring case.",0,null)):(this.caseSensitive_=!0,cvox.ChromeVox.tts.speak("Case sensitive.",0,null))}; +cvox.SearchWidget.prototype.getNextResult_=function(a){var b=cvox.ChromeVox.navigationManager.isReversed();this.caseSensitive_||(a=a.toLowerCase());cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);do{if(this.getPredicate()){var c=this.getPredicate()(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()));if(!c)continue}for(var c=cvox.ChromeVox.navigationManager.getDescription(),d=0;d<c.length;d++){var e=this.caseSensitive_?c[d].text: +c[d].text.toLowerCase(),f=e.indexOf(a);-1!=f&&e.length>a.length&&(c[d].text=cvox.DomUtil.collapseWhitespace(e.substring(0,f))+", "+a+", "+e.substring(f+a.length),c[d].text=cvox.DomUtil.collapseWhitespace(c[d].text));if(-1!=f)return c}cvox.ChromeVox.navigationManager.setReversed(b)}while(cvox.ChromeVox.navigationManager.navigate(!0,cvox.NavigationShifter.GRANULARITIES.OBJECT))};cvox.SearchWidget.prototype.beginSearch_=function(a){var b=this.getNextResult_(a);this.outputSearchResult_(b,a);this.onNavigate()}; +cvox.SearchWidget.prototype.next_=function(a,b){cvox.ChromeVox.navigationManager.setReversed(!!b);var c=!1;this.getPredicate()?(c=cvox.ChromeVox.navigationManager.findNext(this.getPredicate()),cvox.ChromeVox.navigationManager.setReversed(!!b),c||(cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),c=!0)):c=cvox.ChromeVox.navigationManager.navigate(!0);c=c?this.getNextResult_(a):null;this.outputSearchResult_(c,a);this.onNavigate();return c}; +cvox.SearchWidget.prototype.outputSearchResult_=function(a,b){cvox.ChromeVox.tts.stop();a?(this.hasMatch_=!0,cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,cvox.ChromeVox.navigationManager))(!0),cvox.ChromeVox.navigationManager.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("search_help_item"),cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION), +this.outputSearchResultToBraille_(b)):(cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),this.hasMatch_=!1)}; +cvox.SearchWidget.prototype.outputSearchResultToBraille_=function(a){if(cvox.ChromeVox.braille){var b=this.textFromCurrentDescription_(),c=this.caseSensitive_?b:b.toLowerCase();a=this.caseSensitive_?a:a.toLowerCase();c=c.indexOf(a);if(-1==c)console.log("Search string not in result when preparing for Braille.");else{var d=b.length,b=cvox.ChromeVox.msgs.getMsg("mark_as_search_result_brl",[b]),e=b.length,c=c+(e-d);cvox.ChromeVox.braille.write(new cvox.NavBraille({text:b,startIndex:c+a.length,endIndex:c+ +a.length}))}}};cvox.SearchWidget.prototype.textFromCurrentDescription_=function(){for(var a=cvox.ChromeVox.navigationManager.getDescription(),b="",c=0;c<a.length;c++)b+=a[c].text+" ";return b};cvox.SearchWidget.prototype.handleSearchChanged_=function(a){a=a.target.value+a.data;cvox.SearchWidget.prototype.beginSearch_(a)};cvox.OverlayWidget=function(a){cvox.SearchWidget.call(this);this.snippet_=a};goog.inherits(cvox.OverlayWidget,cvox.SearchWidget); +cvox.OverlayWidget.prototype.show=function(){cvox.OverlayWidget.superClass_.show.call(this);var a=document.createElement("DIV");a.innerHTML=this.snippet_;var b=cvox.DomUtil.elementToPoint(cvox.ChromeVox.navigationManager.getCurrentNode());a.style.position="absolute";a.style.left=b.x;a.style.top=b.y;document.body.appendChild(a);cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a);this.host_=a};cvox.OverlayWidget.prototype.hide=function(){this.host_.remove();cvox.OverlayWidget.superClass_.hide.call(this)}; +cvox.OverlayWidget.prototype.onKeyDown=function(a){cvox.OverlayWidget.superClass_.onKeyDown.call(this,a);if(13==a.keyCode||27==a.keyCode)return!0;a=cvox.ChromeVox.navigationManager.isReversed();cvox.DomUtil.isDescendantOfNode(cvox.ChromeVox.navigationManager.getCurrentNode(),this.host_)||(a?cvox.ChromeVox.navigationManager.syncToBeginning():cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.host_),this.onNavigate(),cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(), +0,null))};cvox.KeyboardHelpWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");var a=cvox.ChromeVoxKbHandler.handlerKeyMap;a.bindings().forEach(goog.bind(function(a){var c=a.command;a=a.sequence;var d=c;try{var e=cvox.CommandStore.messageForCommand(c);if(!e)return;d=cvox.ChromeVox.msgs.getMsg(e)}catch(f){}e=document.createElement("p");e.id=c;e.setAttribute("role","menuitem");e.textContent=d+" - "+cvox.KeyUtil.keySequenceToString(a,!0);this.container_.appendChild(e)}, +this))};goog.inherits(cvox.KeyboardHelpWidget,cvox.OverlayWidget);goog.addSingletonGetter(cvox.KeyboardHelpWidget);cvox.KeyboardHelpWidget.prototype.show=function(){cvox.KeyboardHelpWidget.superClass_.show.call(this);this.host_.appendChild(this.container_)};cvox.KeyboardHelpWidget.prototype.getNameMsg=function(){return["keyboard_help_intro"]}; +cvox.KeyboardHelpWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;this.hide();cvox.ChromeVoxEventSuspender.withSuspendedEvents(cvox.ChromeVoxUserCommands.commands[b])();a.preventDefault();a.stopPropagation();return!0}return cvox.KeyboardHelpWidget.superClass_.onKeyDown.call(this,a)};goog.object={};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){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;c<d.length&&(a=a[d[c]],goog.isDef(a));c++);return a};goog.object.containsKey=function(a,b){return 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(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 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.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(a.clone)return a.clone();var b="array"==b?[]:{},c;for(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)};cvox.UserEventDetail=function(a){this.command=this.category="";-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)&&(this.command=a.command,this.category=cvox.UserEventDetail.Category.JUMP);this.customCommand="";a.customCommand&&(this.customCommand=a.customCommand,this.category=cvox.UserEventDetail.Category.CUSTOM);this.status=cvox.UserEventDetail.Status.PENDING;switch(a.status){case cvox.UserEventDetail.Status.SUCCESS:this.status=cvox.UserEventDetail.Status.SUCCESS;break;case cvox.UserEventDetail.Status.FAILURE:this.status= +cvox.UserEventDetail.Status.FAILURE}this.resultNode=null;a.resultNode&&cvox.DomUtil.isAttachedToDocument(a.resultNode)&&(this.resultNode=a.resultNode)};cvox.UserEventDetail.Category={JUMP:"ATJumpEvent",CUSTOM:"ATCustomEvent"};cvox.UserEventDetail.Status={PENDING:"PENDING",SUCCESS:"SUCCESS",FAILURE:"FAILURE"};cvox.UserEventDetail.JUMP_COMMANDS="nextCheckbox previousCheckbox nextRadio previousRadio nextSlider previousSlider nextGraphic previousGraphic nextButton previousButton nextComboBox previousComboBox nextEditText previousEditText nextHeading previousHeading nextHeading1 previousHeading1 nextHeading2 previousHeading2 nextHeading3 previousHeading3 nextHeading4 previousHeading4 nextHeading5 previousHeading5 nextHeading6 previousHeading6 nextLink previousLink nextMath previousMath nextTable previousTable nextList previousList nextListItem previousListItem nextFormField previousFormField nextLandmark previousLandmark nextSection previousSection nextControl previousControl".split(" "); +cvox.UserEventDetail.prototype.createEventObject=function(){var a=document.createEvent("CustomEvent");a.initCustomEvent(this.category,!0,!0,this);return a};var extractMenuList_=function(a){for(;a!==document;){var b=a.getAttribute("contextMenuActions");if(b)return JSON.parse(b);a=a.parentNode}return null},getCurrentElement_=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a.nodeType!==Node.ELEMENT_NODE;)a=a.parentNode;return a}; +cvox.ContextMenuWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");this.triggerElement_=getCurrentElement_();(this.menuList=extractMenuList_(this.triggerElement_))?this.menuList.forEach(goog.bind(function(a){if(a.desc||a.cmd){var b=a.desc;a=a.cmd;var c=document.createElement("p");c.id=a;c.textContent=b;c.setAttribute("role","menuitem");this.container_.appendChild(c)}},this)):console.log("No context menu found.")};goog.inherits(cvox.ContextMenuWidget,cvox.OverlayWidget); +cvox.ContextMenuWidget.prototype.show=function(){this.menuList&&(cvox.ContextMenuWidget.superClass_.show.call(this),this.host_.appendChild(this.container_))};cvox.ContextMenuWidget.prototype.getNameMsg=function(){return["context_menu_intro"]}; +cvox.ContextMenuWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode(),b=b.parentNode.id,b=new cvox.UserEventDetail({customCommand:b}),b=b.createEventObject();this.triggerElement_.dispatchEvent(b);this.hide();a.preventDefault();a.stopPropagation();return!0}return cvox.ContextMenuWidget.superClass_.onKeyDown.call(this,a)};cvox.NodeSearchWidget=function(a,b){this.typeMsg_=a;this.predicate_=b;cvox.SearchWidget.call(this)};goog.inherits(cvox.NodeSearchWidget,cvox.SearchWidget);cvox.NodeSearchWidget.prototype.getNameMsg=function(){return["choice_widget_name",[cvox.ChromeVox.msgs.getMsg(this.typeMsg_)]]};cvox.NodeSearchWidget.prototype.getHelpMsg=function(){return"choice_widget_help"};cvox.NodeSearchWidget.prototype.getPredicate=function(){return this.predicate_}; +cvox.NodeSearchWidget.create=function(a,b){return new cvox.NodeSearchWidget(a,b)};cvox.SelectWidget=function(a){cvox.OverlayWidget.call(this,"");this.selectNode_=a};goog.inherits(cvox.SelectWidget,cvox.OverlayWidget); +cvox.SelectWidget.prototype.show=function(){cvox.SelectWidget.superClass_.show.call(this);var a=document.createElement("div");a.setAttribute("role","menu");for(var b=0,c=null;c=this.selectNode_.options[b];b++){var d=document.createElement("p");d.innerHTML=c.innerHTML;d.id=b;d.setAttribute("role","menuitem");a.appendChild(d)}this.host_.appendChild(a);b=this.selectNode_.selectedIndex;"number"==typeof b&&cvox.ChromeVox.syncToNode(a.children[b],!0)}; +cvox.SelectWidget.prototype.hide=function(){var a=document.createEvent("Event");a.initEvent("change",!1,!1);this.selectNode_.dispatchEvent(a);cvox.SelectWidget.superClass_.hide.call(this,!0)};cvox.SelectWidget.prototype.onNavigate=function(){var a=this;cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;a.selectNode_.selectedIndex=b})()};cvox.SelectWidget.prototype.getNameMsg=function(){return["aria_role_menu"]};cvox.FocusUtil=function(){};cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE={hidden:!1,text:!0,search:!0,tel:!0,url:!0,email:!0,password:!0,datetime:!1,date:!1,month:!1,week:!1,time:!1,"datetime-local":!1,number:!1,range:!1,color:!1,checkbox:!1,radio:!1,file:!1,submit:!1,image:!1,reset:!1,button:!1}; +cvox.FocusUtil.isFocusInTextInputField=function(){var a=document.activeElement;return a?a.isContentEditable||"textbox"==a.getAttribute("role")?!0:"true"==a.getAttribute("readOnly")?!1:"TEXTAREA"===a.tagName||"SELECT"===a.tagName?!0:"INPUT"===a.tagName?a.hasAttribute("type")?(a=a.getAttribute("type").toLowerCase(),cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE[a]):!0:!1:!1};cvox.SpokenListBuilder=function(){this.list_=[]};cvox.SpokenListBuilder.prototype.flush=function(a){this.list_.push([a,cvox.AbstractTts.QUEUE_MODE_FLUSH]);return this};cvox.SpokenListBuilder.prototype.build=function(){return this.list_};cvox.RunnerInterface=function(){};cvox.RunnerInterface.prototype.setFocus=function(){};cvox.AbstractTestCase=function(){};cvox.TestTts=function(){cvox.AbstractTts.call(this);this.utterances_=[]};goog.inherits(cvox.TestTts,cvox.AbstractTts);cvox.TestTts.prototype.sentinelText_="@@@STOP@@@";cvox.TestTts.prototype.speak=function(a,b,c){this.utterances_.push({text:a,queueMode:b});c&&void 0!=c.endCallback&&(a=this.utterances_.length,this.utterances_[a-1].text!=this.sentinelText_&&c.endCallback())};cvox.HostFactory.ttsConstructor=cvox.TestTts;cvox.AutoRunner=function(){new cvox.TestTts};cvox.AutoRunner.TestSummary=function(a,b,c,d){this.tag=a;this.status=c;this.scope=d};cvox.AutoRunner.PASS="pass";cvox.AutoRunner.FAIL="fail";cvox.AutoRunner.prototype.setFocus=function(a){document.getElementById(a).focus();return this};cvox.ChromeVoxUserCommands={};cvox.ChromeVoxUserCommands.init_=function(){if(!cvox.ChromeVoxUserCommands.commands){cvox.ChromeVoxUserCommands.commands={};for(var a in cvox.CommandStore.CMD_WHITELIST)cvox.ChromeVoxUserCommands.commands[a]=cvox.ChromeVoxUserCommands.createCommand_(a)}};cvox.ChromeVoxUserCommands.wasMouseClicked=!1;cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage=!0; +cvox.ChromeVoxUserCommands.handleTabAction_=function(){cvox.ChromeVox.tts.stop();if(!cvox.ChromeVox.navigationManager.resolve(cvox.DomUtil.isFocusable))return cvox.ChromeVox.navigationManager.setFocus(),!1;var a=cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_();if(a)return!0;var b=a=null,b=window.getSelection();cvox.ChromeVoxUserCommands.wasMouseClicked?cvox.ChromeVoxUserCommands.wasMouseClicked=!1:b=null;null==b||null==b.anchorNode||null==b.focusNode?(a=cvox.ChromeVox.navigationManager.getCurrentNode(), +b=cvox.ChromeVox.navigationManager.getCurrentNode()):(a=b.anchorNode,b=b.focusNode);if(null==a||null==b)return!0;if(cvox.DomUtil.isFocusable(a))return a.focus(),!0;if(cvox.DomUtil.isFocusable(b))return b.focus(),!0;if(cvox.DomUtil.isFocusable(a.parentNode))return a.parentNode.focus(),!0;if(cvox.DomUtil.isFocusable(b.parentNode))return b.parentNode.focus(),!0;b=cvox.ChromeVoxUserCommands.createTabDummySpan_();a.parentNode.insertBefore(b,a);b.focus();return!0}; +cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_=function(){var a="A";return document.activeElement.tagName==a||cvox.DomUtil.isControl(document.activeElement)?!0:!1};cvox.ChromeVoxUserCommands.removeTabDummySpan=function(){var a=document.getElementById("ChromeVoxTabDummySpan");a&&document.activeElement!=a&&a.parentNode.removeChild(a)};cvox.ChromeVoxUserCommands.createTabDummySpan_=function(){var a=document.createElement("span");a.id="ChromeVoxTabDummySpan";a.tabIndex=-1;return a}; +cvox.ChromeVoxUserCommands.createCommand_=function(a){return goog.bind(function(b){b=cvox.ChromeVoxUserCommands.lookupCommand_(a,b);return cvox.ChromeVoxUserCommands.dispatchCommand_(b)},cvox.ChromeVoxUserCommands)}; +cvox.ChromeVoxUserCommands.dispatchCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField())return!0;if(cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage&&-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)){a=new cvox.UserEventDetail({command:a.command});a=a.createEventObject();var b=cvox.ChromeVox.navigationManager.getCurrentNode();b||(b=document.body);b.dispatchEvent(a);return!1}return cvox.ChromeVoxUserCommands.doCommand_(a)}; +cvox.ChromeVoxUserCommands.doCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField()||a.disallowOOBE&&document.URL.match(/^chrome:\/\/oobe/i))return!0;var b=a.command;a.allowEvents||cvox.ChromeVoxEventSuspender.enterSuspendEvents();a.disallowContinuation&&cvox.ChromeVox.navigationManager.stopReading(!0);a.forward?cvox.ChromeVox.navigationManager.setReversed(!1):a.backward&&cvox.ChromeVox.navigationManager.setReversed(!0); +a.findNext&&(b="find",a.announce=!0);var c="",d="",e=!1;switch(b){case "handleTab":case "handleTabPrev":e=cvox.ChromeVoxUserCommands.handleTabAction_();break;case "forward":case "backward":e=!cvox.ChromeVox.navigationManager.navigate();break;case "right":case "left":cvox.ChromeVox.navigationManager.subnavigate();break;case "find":if(!a.findNext)throw"Invalid find command.";var f=cvox.CommandStore.NODE_INFO_MAP[a.findNext],g=f.predicate,h=cvox.DomPredicates[g],k="",l="";a.forward?(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"), +k=cvox.ChromeVox.msgs.getMsg(f.forwardError)):a.backward&&(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom"),k=cvox.ChromeVox.msgs.getMsg(f.backwardError));var f=null,m=a.status||cvox.UserEventDetail.Status.PENDING,p=a.resultNode||null;switch(m){case cvox.UserEventDetail.Status.SUCCESS:p&&cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(p,!0);break;case cvox.UserEventDetail.Status.FAILURE:d=k;break;default:f=cvox.ChromeVox.navigationManager.findNext(h,g),f||(cvox.ChromeVox.navigationManager.saveSel(), +d=l,cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),f=cvox.ChromeVox.navigationManager.findNext(h,g,!0),f||(d=k,cvox.ChromeVox.navigationManager.restoreSel()))}f&&"IFRAME"==f.start.node.tagName&&(a.announce=!1);break;case "previousGranularity":cvox.ChromeVox.navigationManager.makeLessGranular(!0);d=cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "nextGranularity":cvox.ChromeVox.navigationManager.makeMoreGranular(!0);d= +cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "previousCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "nextCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "previousWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);break;case "nextWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD); +break;case "previousSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "nextSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "previousLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "nextLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "previousObject":cvox.ChromeVox.navigationManager.navigate(!1, +cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "nextObject":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "previousGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "nextGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "previousRow":case "previousCol":b="previousRow"==b?"nextRow":"nextCol";case "nextRow":case "nextCol":cvox.ChromeVox.navigationManager.performAction("enterShifterSilently"); +cvox.ChromeVox.navigationManager.performAction(b);break;case "moveToStartOfLine":case "moveToEndOfLine":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.LINE);cvox.ChromeVox.navigationManager.sync();cvox.ChromeVox.navigationManager.collapseSelection();break;case "readFromHere":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!0);cvox.ChromeVox.navigationManager.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH);break;case "cycleTypingEcho":break; +case "jumpToTop":case cvox.BrailleKeyCommand.TOP:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "jumpToBottom":case cvox.BrailleKeyCommand.BOTTOM:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "stopSpeech":cvox.ChromeVox.navigationManager.stopReading(!0);break;case "toggleKeyboardHelp":cvox.KeyboardHelpWidget.getInstance().toggle();break;case "help":cvox.ChromeVox.tts.stop();break;case "contextMenu":g=cvox.ChromeVox.navigationManager.getCurrentNode();"SELECT"!=g.tagName|| +g.multiple?(g=new cvox.ContextMenuWidget,g.toggle()):(new cvox.SelectWidget(g)).show();break;case "showBookmarkManager":break;case "showOptionsPage":cvox.ChromeVox.tts.stop();break;case "showKbExplorerPage":cvox.ChromeVox.tts.stop();break;case "readLinkURL":g=document.activeElement;h=window.getSelection().anchorNode;k="";"A"==g.tagName?k=cvox.DomUtil.getLinkURL(g):h&&(k=cvox.DomUtil.getLinkURL(h.parentNode));""!=k?cvox.ChromeVox.tts.speak(k):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_url_found")); +break;case "readCurrentTitle":cvox.ChromeVox.tts.speak(document.title);break;case "readCurrentURL":cvox.ChromeVox.tts.speak(document.URL);break;case "performDefaultAction":cvox.DomPredicates.linkPredicate([document.activeElement])&&(a.announce=!0,cvox.DomUtil.isInternalLink(document.activeElement)&&(cvox.DomUtil.syncInternalLink(document.activeElement),cvox.ChromeVox.navigationManager.sync()));break;case "forceClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode(); +cvox.DomUtil.clickElem(g,!1,!1);break;case "forceDoubleClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_double_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.clickElem(g,!1,!1,!0);break;case "toggleChromeVox":break;case "fullyDescribe":g=cvox.ChromeVox.navigationManager.getFullDescription();cvox.ChromeVox.navigationManager.speakDescriptionArray(g,cvox.AbstractTts.QUEUE_MODE_FLUSH,null);break;case "speakTimeAndDate":g=new Date;cvox.ChromeVox.tts.speak(g.toLocaleTimeString()+ +", "+g.toLocaleDateString());break;case "toggleSelection":d=cvox.ChromeVox.navigationManager.togglePageSel();d=cvox.ChromeVox.msgs.getMsg(d?"begin_selection":"end_selection");break;case "startHistoryRecording":cvox.History.getInstance().startRecording();break;case "stopHistoryRecording":cvox.History.getInstance().stopRecording();break;case "enableConsoleTts":cvox.ConsoleTts.getInstance().setEnabled(!0);break;case "goToFirstCell":case "goToLastCell":case "goToRowFirstCell":case "goToRowLastCell":case "goToColFirstCell":case "goToColLastCell":case "announceHeaders":case "speakTableLocation":case "exitShifterContent":cvox.DomPredicates.tablePredicate(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()))&& +cvox.ChromeVox.navigationManager.performAction(b)||(c="not_inside_table");break;case "enterShifter":case "exitShifter":cvox.ChromeVox.navigationManager.performAction(b);break;case "decreaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!1);break;case "increaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!0);break;case "decreaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,!1);break;case "increaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH, +!0);break;case "decreaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!1);break;case "increaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!0);break;case "cyclePunctuationEcho":break;case "toggleStickyMode":break;case "toggleKeyPrefix":cvox.ChromeVox.keyPrefixOn=!cvox.ChromeVox.keyPrefixOn;break;case "toggleSearchWidget":cvox.SearchWidget.getInstance().toggle();break;case "toggleEarcons":d=cvox.ChromeVox.earcons.toggle()?cvox.ChromeVox.msgs.getMsg("earcons_on"): +cvox.ChromeVox.msgs.getMsg("earcons_off");break;case "showHeadingsList":case "showLinksList":case "showFormsList":case "showTablesList":case "showLandmarksList":if(!a.nodeList)break;g=cvox.CommandStore.NODE_INFO_MAP[a.nodeList];cvox.NodeSearchWidget.create(g.typeMsg,cvox.DomPredicates[g.predicate]).show();break;case "openLongDesc":g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.hasLongDesc(g)||cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_long_desc"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION);break;case "pauseAllMedia":k=document.getElementsByTagName("VIDEO");for(g=0;h=k[g];g++)h.pause();k=document.getElementsByTagName("AUDIO");for(g=0;h=k[g];g++)h.pause();break;case "toggleSemantics":cvox.TraverseMath.toggleSemantic()?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_on")):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_off"));break;case cvox.BrailleKeyCommand.ROUTING:g=cvox.ChromeVox.navigationManager.getBraille(); +g=g.text.getSpans(a.displayPosition||0);g=g.filter(function(a){return a instanceof Node})[0];cvox.DomUtil.clickElem(g||cvox.ChromeVox.navigationManager.getCurrentNode(),!1,!0);break;case cvox.BrailleKeyCommand.PAN_LEFT:case cvox.BrailleKeyCommand.LINE_UP:case cvox.BrailleKeyCommand.PAN_RIGHT:case cvox.BrailleKeyCommand.LINE_DOWN:cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "debug":break;case "nop":break;default:throw"Command behavior not defined: "+ +b;}""!=c?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(c),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION):cvox.ChromeVox.navigationManager.isReading()?a.disallowContinuation?cvox.ChromeVox.navigationManager.stopReading(!0):"readFromHere"!=b&&cvox.ChromeVox.navigationManager.skip():a.announce&&cvox.ChromeVox.navigationManager.finishNavCommand(d);a.allowEvents||cvox.ChromeVoxEventSuspender.exitSuspendEvents();return!!a.doDefault||e}; +cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent=function(a){a=new cvox.UserEventDetail(a.detail);a.command&&cvox.ChromeVoxUserCommands.doCommand_(cvox.ChromeVoxUserCommands.lookupCommand_(a.command,a))};cvox.ChromeVoxUserCommands.lookupCommand_=function(a,b){var c=cvox.CommandStore.CMD_WHITELIST[a];if(!c)throw"Invalid command: "+a;c=goog.object.clone(c);c.command=a;b&&goog.object.extend(c,b);return c};cvox.ChromeVoxUserCommands.init_();cvox.ChromeVoxKbHandler={};cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable=function(a){window.JSON&&(cvox.ChromeVoxKbHandler.handlerKeyMap=cvox.KeyMap.fromJSON(a))};cvox.ChromeVoxKbHandler.sortKeyToFunctionsTable_=function(a){function b(a,b){return a[0].length<b[0].length?-1:b[0].length<a[0].length?1:a[0].localeCompare(b[0])}var c=[],d;for(d in a)c.push([d,a[d]]);c.sort(b);return c}; +cvox.ChromeVoxKbHandler.basicKeyDownActionsListener=function(a){var b=cvox.KeyUtil.keyEventToKeySequence(a);a=void 0!=cvox.ChromeVoxKbHandler.handlerKeyMap?cvox.ChromeVoxKbHandler.handlerKeyMap.commandForKey(b):null;if(!a)return!cvox.KeyUtil.sequencing;if(!cvox.ChromeVox.isActive&&"toggleChromeVox"!=a)return!0;var c=!0,d=cvox.ChromeVoxUserCommands.commands[a];d?(b=cvox.History.getInstance(),b.enterUserCommand(a),c=d(),b.exitUserCommand(a)):b.cvoxModifier&&(c=!1);cvox.ChromeVox.entireDocumentIsHidden&& +(c=!0);return c};cvox.LiveRegions=function(){};cvox.LiveRegions.pageLoadTime=null;cvox.LiveRegions.INITIAL_SILENCE_MS=2E3;cvox.LiveRegions.lastAnnouncedMap={};cvox.LiveRegions.MAX_DISCARD_DUPS_MS=2E3;cvox.LiveRegions.lastAnnouncedTime=null;cvox.LiveRegions.nodesAlreadyHandled=[]; +cvox.LiveRegions.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.pageLoadTime=a;if(c||!document.hasFocus())return!1;var d=!1;a=cvox.AriaUtil.getLiveRegions(document.body);for(c=0;c<a.length;c++)cvox.LiveRegions.handleOneChangedNode(a[c],a[c],!1,!1,function(a,c){a||b!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);var g=new cvox.NavigationSpeaker;g.speakDescriptionArray(c,b,null);d=!0});cvox.Interframe.addListener(function(a){if("speakLiveRegion"== +a.command)for(var b=document.getElementsByTagName("iframe"),c=0,d;d=b[c];c++)if(d.src==a.src){if(!cvox.DomUtil.isVisible(d))break;d=JSON.parse(a.content);for(var k=[],l=0,m;m=d[l];l++)k.push(new cvox.NavDescription(m));(new cvox.NavigationSpeaker).speakDescriptionArray(k,a.queueMode,null)}});return d}; +cvox.LiveRegions.processMutations=function(a,b){cvox.LiveRegions.nodesAlreadyHandled=[];a.forEach(function(a){if(!a.target.hasAttribute||!a.target.hasAttribute("cvoxIgnore")){if(a.addedNodes)for(var d=0;d<a.addedNodes.length;d++)a.addedNodes[d].hasAttribute&&a.addedNodes[d].hasAttribute("cvoxIgnore")||cvox.LiveRegions.handleOneChangedNode(a.addedNodes[d],a.target,!1,!0,b);if(a.removedNodes)for(d=0;d<a.removedNodes.length;d++)a.removedNodes[d].hasAttribute&&a.removedNodes[d].hasAttribute("cvoxIgnore")|| +cvox.LiveRegions.handleOneChangedNode(a.removedNodes[d],a.target,!0,!1,b);"characterData"==a.type&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!1,b);if("class"==a.attributeName||"style"==a.attributeName||"hidden"==a.attributeName){var e=a.attributeName,d=a.target,f=!cvox.DomUtil.isVisible(d),g=document.createElement("div");g.setAttribute("cvoxIgnore","1");g.setAttribute("class",d.getAttribute("class"));g.setAttribute("style",d.getAttribute("style"));g.setAttribute("hidden",d.getAttribute("hidden")); +g.setAttribute(e,a.oldValue);e=!0;d.parentElement?(d.parentElement.appendChild(g),e=!cvox.DomUtil.isVisible(g),d.parentElement.removeChild(g)):e=!cvox.DomUtil.isVisible(g);!0===e&&!1===f?cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!0,b):!1===e&&!0===f&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!0,!1,b)}}});cvox.LiveRegions.nodesAlreadyHandled.length=0}; +cvox.LiveRegions.handleOneChangedNode=function(a,b,c,d,e){var f=c?b:a;f instanceof Element||(f=f.parentElement);for(;f&&!cvox.AriaUtil.getAriaLive(f);)f=f.parentElement;if(!f){if(d&&a!=document.body)for(a=cvox.AriaUtil.getLiveRegions(a),d=0;d<a.length;d++)cvox.LiveRegions.handleOneChangedNode(a[d],b,c,!1,e)}else if(!(0<=cvox.LiveRegions.nodesAlreadyHandled.indexOf(a)||(cvox.LiveRegions.nodesAlreadyHandled.push(a),cvox.AriaUtil.getAriaBusy(f)))){if(c){if(!cvox.AriaUtil.getAriaRelevant(f,"removals"))return}else if(!cvox.AriaUtil.getAriaRelevant(f, +"additions"))return;cvox.LiveRegions.announceChange(a,f,c,e)}}; +cvox.LiveRegions.announceChange=function(a,b,c,d){var e=new Date-cvox.LiveRegions.pageLoadTime;if(!("alert"!=cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS)&&cvox.DomUtil.isVisible(b)){if(a!=b)for(var f=a.parentElement;f;){(cvox.AriaUtil.getAriaAtomic(f)||cvox.AriaUtil.isLeafElement(f)||cvox.AriaUtil.isControlWidget(f))&&!cvox.AriaUtil.isCompositeControl(f)&&(a=f);if(f==b)break;f=f.parentElement}a=cvox.LiveRegions.getNavDescriptionsRecursive(a);if(0!=a.length){c&&(a=[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"), +text:""})].concat(a));if("alert"==cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS){c="";for(e=0;e<a.length;e++)c+=a[e].text,c+=a[e].userValue;if(""==cvox.DomUtil.collapseWhitespace(c))return}c=new Date;for(var g in cvox.LiveRegions.lastAnnouncedMap)c-cvox.LiveRegions.lastAnnouncedMap[g]>cvox.LiveRegions.MAX_DISCARD_DUPS_MS&&delete cvox.LiveRegions.lastAnnouncedMap[g];g=a.reduce(function(a,b){return a+"|"+b.text},"");cvox.LiveRegions.lastAnnouncedMap[g]||(cvox.LiveRegions.lastAnnouncedMap[g]= +c,b="assertive"==cvox.AriaUtil.getAriaLive(b),cvox.Interframe.isIframe()&&!document.hasFocus()?cvox.Interframe.sendMessageToParentWindow({command:"speakLiveRegion",content:JSON.stringify(a),queueMode:b?0:1,src:window.location.href}):d(b,a))}}}; +cvox.LiveRegions.getNavDescriptionsRecursive=function(a){return cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)?(a=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity),a.isEmpty()?[]:[a]):cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a)};cvox.LiveRegionsDeprecated=function(){};cvox.LiveRegionsDeprecated.trackedRegions=[];cvox.LiveRegionsDeprecated.previousRegionValue=[];cvox.LiveRegionsDeprecated.pageLoadTime=null;cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS=2E3; +cvox.LiveRegionsDeprecated.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegionsDeprecated.pageLoadTime=a;a=!1;for(var d=cvox.AriaUtil.getLiveRegions(document.body),e=0;e<d.length;e++)cvox.LiveRegionsDeprecated.updateLiveRegion(d[e],b,c)&&(a=!0,b=cvox.AbstractTts.QUEUE_MODE_QUEUE);return a}; +cvox.LiveRegionsDeprecated.updateLiveRegion=function(a,b,c){if(cvox.AriaUtil.getAriaBusy(a)||!cvox.DomUtil.isVisible(a))return!1;var d=cvox.LiveRegionsDeprecated.trackedRegions.indexOf(a),e;0<=d?e=cvox.LiveRegionsDeprecated.previousRegionValue[d]:(d=cvox.LiveRegionsDeprecated.trackedRegions.length,e=[],cvox.LiveRegionsDeprecated.trackedRegions.push(a),cvox.LiveRegionsDeprecated.previousRegionValue.push([]));var f=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(a),g=new Date-cvox.LiveRegionsDeprecated.pageLoadTime; +if("alert"!=cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS)return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1;if("alert"==cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS){for(var h="",g=0;g<f.length;g++)h+=f[g].text,h+=f[g].userValue;if(""==cvox.DomUtil.collapseWhitespace(h))return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1}for(var k={},g=0;g<e.length;g++)k[e[g].toString()]=!0;for(var l={},g=0;g<f.length;g++)l[f[g].toString()]= +!0;h=[];if(cvox.AriaUtil.getAriaRelevant(a,"additions"))for(g=0;g<f.length;g++)k[f[g].toString()]||h.push(f[g]);k=[];if(cvox.AriaUtil.getAriaRelevant(a,"removals"))for(g=0;g<e.length;g++)l[e[g].toString()]||k.push(e[g]);e=[];e=0==h.length&&0<k.length?[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),text:""})].concat(k):h;cvox.LiveRegionsDeprecated.previousRegionValue[d]=f;if(c||0==e.length)return!1;a=cvox.AriaUtil.getAriaLive(a);"polite"==a&&(b=cvox.AbstractTts.QUEUE_MODE_QUEUE); +for(g=0;g<e.length;g++)e[g].speak(b),b=cvox.AbstractTts.QUEUE_MODE_QUEUE;return!0}; +cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue=function(a){if(cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)){var b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity);return b.isEmpty()?[]:[b]}var c=[],b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!1,cvox.ChromeVox.verbosity);b.isEmpty()||c.push(b);for(b=0;b<a.childNodes.length;b++){var d=a.childNodes[b];cvox.DomUtil.isVisible(d,{checkAncestors:!1})&&!cvox.AriaUtil.isHidden(d)&&(d=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(d), +c=c.concat(d))}return c};cvox.ChromeVoxEventWatcherUtil={};cvox.ChromeVoxEventWatcher=function(){};cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_=50;cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_=10;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_=1E3;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_=3;cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_=5;cvox.ChromeVoxEventWatcher.shouldEchoKeys=!0;cvox.ChromeVoxEventWatcher.processing_=!1; +cvox.ChromeVoxEventWatcher.init=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=null;cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=null;cvox.ChromeVoxEventWatcher.eventToEat=null;cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;cvox.ChromeVoxEventWatcher.lastKeypressTime=0;cvox.ChromeVoxEventWatcher.listeners_= +[];cvox.ChromeVoxEventWatcher.mutationObserver_=null;cvox.ChromeVoxEventWatcher.focusFollowsMouse=!1;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=500;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.lastEventTime=0;cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.readyCallbacks_=[];cvox.ChromeVox.searchKeyHeld=!1;cvox.ChromeVoxEventWatcher.textMutationObserver_=null;cvox.ChromeVoxEventWatcher.addEventListeners_(a); +cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=0;cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=0};cvox.ChromeVoxEventWatcher.storeOn=function(a){a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld};cvox.ChromeVoxEventWatcher.readFrom=function(a){cvox.ChromeVox.searchKeyHeld=a.searchKeyHeld}; +cvox.ChromeVoxEventWatcher.addEvent=function(a){if(!cvox.ChromeVox.isActive||document.webkitHidden)return!1;cvox.ChromeVoxEventWatcher.events_.push(a);cvox.ChromeVoxEventWatcher.lastEventTime=(new Date).getTime();-1==cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime&&(cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=(new Date).getTime());cvox.ChromeVoxEventWatcher.queueProcessingScheduled_||(cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!0,window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_, +cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_))};cvox.ChromeVoxEventWatcher.addReadyCallback=function(a){cvox.ChromeVoxEventWatcher.readyCallbacks_.push(a);cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()};cvox.ChromeVoxEventWatcher.hasPendingEvents_=function(){return-1!=cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime||cvox.ChromeVoxEventWatcher.queueProcessingScheduled_};cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1; +cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_=function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_||(cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!0,window.setTimeout(function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;!cvox.ChromeVoxEventWatcher.hasPendingEvents_()&&!cvox.ChromeVoxEventWatcher.queueProcessingScheduled_&&0<cvox.ChromeVoxEventWatcher.readyCallbacks_.length&&(cvox.ChromeVoxEventWatcher.readyCallbacks_.shift()(),cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_())}, +5))}; +cvox.ChromeVoxEventWatcher.addEventListeners_=function(a){cvox.ChromeVoxEventWatcher.addEventListener_(a,"keydown",cvox.ChromeVoxEventWatcher.keyDownEventWatcher,!0);if(cvox.ChromeVox.isActive&&!cvox.ChromeVox.entireDocumentIsHidden)if(cvox.ChromeVoxEventWatcher.addEventListener_(a,"keypress",cvox.ChromeVoxEventWatcher.keyPressEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"keyup",cvox.ChromeVoxEventWatcher.keyUpEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,cvox.UserEventDetail.Category.JUMP, +cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent,!1),cvox.ChromeVoxEventWatcher.addEventListener_(a,"focus",cvox.ChromeVoxEventWatcher.focusEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"blur",cvox.ChromeVoxEventWatcher.blurEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"change",cvox.ChromeVoxEventWatcher.changeEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"copy",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a, +"cut",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"paste",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"select",cvox.ChromeVoxEventWatcher.selectEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"webkitvisibilitychange",cvox.ChromeVoxEventWatcher.visibilityChangeWatcher,!0),cvox.ChromeVoxEventWatcher.events_=[],cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1,cvox.ChromeVoxEventWatcher.addEventListener_(a, +"mouseover",cvox.ChromeVoxEventWatcher.mouseOverEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"mouseout",cvox.ChromeVoxEventWatcher.mouseOutEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"click",cvox.ChromeVoxEventWatcher.mouseClickEventWatcher,!0),"undefined"!=typeof WebKitMutationObserver){cvox.ChromeVoxEventWatcher.mutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.mutationHandler);var b=null;a.documentElement?b=a.documentElement:a.document&& +a.document.documentElement&&(b=a.document.documentElement);b&&cvox.ChromeVoxEventWatcher.mutationObserver_.observe(b,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!0,characterDataOldValue:!0})}else cvox.ChromeVoxEventWatcher.addEventListener_(a,"DOMSubtreeModified",cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher,!0)}; +cvox.ChromeVoxEventWatcher.cleanup=function(a){for(var b=0;b<cvox.ChromeVoxEventWatcher.listeners_.length;b++){var c=cvox.ChromeVoxEventWatcher.listeners_[b];a.removeEventListener(c.type,c.listener,c.useCapture)}cvox.ChromeVoxEventWatcher.listeners_=[];cvox.ChromeVoxEventWatcher.currentDateHandler&&cvox.ChromeVoxEventWatcher.currentDateHandler.shutdown();cvox.ChromeVoxEventWatcher.currentTimeHandler&&cvox.ChromeVoxEventWatcher.currentTimeHandler.shutdown();cvox.ChromeVoxEventWatcher.currentMediaHandler&& +cvox.ChromeVoxEventWatcher.currentMediaHandler.shutdown();cvox.ChromeVoxEventWatcher.mutationObserver_&&cvox.ChromeVoxEventWatcher.mutationObserver_.disconnect();cvox.ChromeVoxEventWatcher.mutationObserver_=null};cvox.ChromeVoxEventWatcher.addEventListener_=function(a,b,c,d){cvox.ChromeVoxEventWatcher.listeners_.push({type:b,listener:c,useCapture:d});a.addEventListener(b,c,d)};cvox.ChromeVoxEventWatcher.getLastFocusedNode=function(){return cvox.ChromeVoxEventWatcher.lastFocusedNode}; +cvox.ChromeVoxEventWatcher.setLastFocusedNode_=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=a;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=a?cvox.DomUtil.getControlValueAndStateString(a):null}; +cvox.ChromeVoxEventWatcher.mutationHandler=function(a){if(cvox.ChromeVoxEventSuspender.areEventsSuspended())return!0;cvox.ChromeVox.navigationManager.updateIndicatorIfChanged();cvox.LiveRegions.processMutations(a,function(a,c){var d=new window.Event("LiveRegion");d.navDescriptions=c;d.assertive=a;cvox.ChromeVoxEventWatcher.addEvent(d);return!0})}; +cvox.ChromeVoxEventWatcher.mouseClickEventWatcher=function(a){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.WML)&&!a.fromCvox&&cvox.ApiImplementation.syncToNode(a.target,!0);return cvox.ChromeVox.host.mustRedispatchClickEvent()&&!a.fromCvox?(cvox.ChromeVoxUserCommands.wasMouseClicked=!0,a.stopPropagation(),a.preventDefault(),cvox.Focuser.setFocus(cvox.ChromeVox.navigationManager.getCurrentNode()),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.ChromeVox.navigationManager.getCurrentNode(),cvox.DomUtil.clickElem(a,!1,!0),!1):cvox.ChromeVoxUserCommands.wasMouseClicked=!0}; +cvox.ChromeVoxEventWatcher.mouseOverEventWatcher=function(a){if(!cvox.ChromeVoxEventWatcher.focusFollowsMouse||cvox.DomUtil.isDescendantOfNode(cvox.ChromeVoxEventWatcher.announcedMouseOverNode,a.target)||a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode)return!0;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=a.target;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null);if(a.target.tagName&& +"BODY"==a.target.tagName)return cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null,!0;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=window.setTimeout(function(){cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;if(a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode){cvox.ChromeVox.navigationManager.stopReading(!0);var b=a.target;cvox.Focuser.setFocus(b);cvox.ApiImplementation.syncToNode(b,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.ChromeVoxEventWatcher.announcedMouseOverNode= +b}},cvox.ChromeVoxEventWatcher.mouseoverDelayMs);return!0};cvox.ChromeVoxEventWatcher.mouseOutEventWatcher=function(a){a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode&&(cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null));return!0}; +cvox.ChromeVoxEventWatcher.focusEventWatcher=function(a){cvox.ChromeVoxUserCommands.removeTabDummySpan();cvox.ChromeVoxEventSuspender.areEventsSuspended()?a.target&&a.target.nodeType==Node.ELEMENT_NODE&&cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a.target):cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.focusHandler=function(a){if(a.target&&a.target.hasAttribute&&"true"==a.target.getAttribute("aria-hidden")&&"true"!=a.target.getAttribute("chromevoxignoreariahidden"))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.setUpTextHandler();else if(a.target&&a.target!=window){var b=a.target,c=cvox.DomUtil.getSurroundingControl(b);if(c&&c==cvox.ChromeVoxEventWatcher.lastFocusedNode)cvox.ChromeVoxEventWatcher.handleControlChanged(b);else{c?cvox.ChromeVoxEventWatcher.setLastFocusedNode_(c): +cvox.ChromeVoxEventWatcher.setLastFocusedNode_(b);c=cvox.ChromeVoxEventWatcher.queueMode_();if(cvox.ChromeVoxEventWatcher.getInitialVisibility()||cvox.ChromeVoxEventWatcher.handleDialogFocus(b))c=cvox.AbstractTts.QUEUE_MODE_QUEUE;cvox.ChromeVox.navigationManager.clearPageSel(!0)&&(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ApiImplementation.syncToNode(b,!document.webkitHidden,c);if(a.target.constructor==HTMLVideoElement||a.target.constructor==HTMLAudioElement)cvox.ChromeVoxEventWatcher.setUpMediaHandler_(); +else{if(a.target.hasAttribute)switch(a=a.target.getAttribute("type"),a){case "time":cvox.ChromeVoxEventWatcher.setUpTimeHandler_();return;case "date":case "month":case "week":cvox.ChromeVoxEventWatcher.setUpDateHandler_();return}cvox.ChromeVoxEventWatcher.setUpTextHandler()}}}else cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null)}; +cvox.ChromeVoxEventWatcher.blurEventWatcher=function(a){window.setTimeout(function(){document.activeElement||(cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.addEvent(a))},0);return!0}; +cvox.ChromeVoxEventWatcher.keyDownEventWatcher=function(a){cvox.ChromeVox.isChromeOS&&91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!0);a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld&&cvox.ChromeVox.isActive;a.stickyMode=cvox.ChromeVox.isStickyOn&&cvox.ChromeVox.isActive;a.keyPrefix=cvox.ChromeVox.keyPrefixOn&&cvox.ChromeVox.isActive;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVoxEventWatcher.eventToEat=null;if(!cvox.ChromeVoxKbHandler.basicKeyDownActionsListener(a)||cvox.ChromeVoxEventWatcher.handleControlAction(a))return a.preventDefault(), +a.stopPropagation(),cvox.ChromeVoxEventWatcher.eventToEat=a,!1;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.keyUpEventWatcher=function(a){91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!1);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.stopPropagation(),a.preventDefault(),!1):!0}; +cvox.ChromeVoxEventWatcher.keyPressEventWatcher=function(a){var b=document.location.href,c=cvox.TypingEcho.shouldSpeakChar(cvox.ChromeVox.typingEcho);"undefined"!==typeof cvox.ChromeVox.keyEcho[b]&&(c=cvox.ChromeVox.keyEcho[b]);cvox.ChromeVoxEditableTextBase.eventTypingEcho&&c&&cvox.DomPredicates.editTextPredicate([document.activeElement])&&"password"!==document.activeElement.type&&(b=(new Date).getTime(),150<b-cvox.ChromeVoxEventWatcher.lastKeypressTime&&cvox.ChromeVox.tts.stop(),cvox.ChromeVoxEventWatcher.lastKeypressTime= +b,cvox.ChromeVox.tts.speak(String.fromCharCode(a.charCode),1,{relativeRate:2}));cvox.ChromeVoxEventWatcher.addEvent(a);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.preventDefault(),a.stopPropagation(),!1):!0};cvox.ChromeVoxEventWatcher.changeEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.clipboardEventWatcher=function(a){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(a.type).toLowerCase());var b="";switch(a.type){case "paste":b=a.clipboardData.getData("text");break;case "copy":case "cut":b=window.getSelection().toString()}cvox.ChromeVox.tts.speak(b,cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ChromeVox.navigationManager.clearPageSel();return!0}; +cvox.ChromeVoxEventWatcher.changeHandler=function(a){cvox.ChromeVoxEventWatcher.setUpTextHandler()||document.activeElement==a.target&&cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement)};cvox.ChromeVoxEventWatcher.selectEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher=function(a){if(!a||!a.target)return!0;cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.visibilityChangeWatcher=function(){cvox.ChromeVoxEventWatcher.initialVisibility=!document.webkitHidden;document.webkitHidden&&cvox.ChromeVox.navigationManager.stopReading(!0)};cvox.ChromeVoxEventWatcher.getInitialVisibility=function(){var a=cvox.ChromeVoxEventWatcher.initialVisibility;cvox.ChromeVoxEventWatcher.initialVisibility=!1;return a}; +cvox.ChromeVoxEventWatcher.speakLiveRegion_=function(a,b){var c=cvox.ChromeVoxEventWatcher.queueMode_();a||c!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);var d=new cvox.NavigationSpeaker;d.speakDescriptionArray(b,c,null)}; +cvox.ChromeVoxEventWatcher.subtreeModifiedHandler=function(a){var b=(new Date).getTime();if(cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_+cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_>b){if(cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_++,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_>cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_)return}else cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=b,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_= +1;if(a&&a.target)for(a=a.target,a=cvox.AriaUtil.getLiveRegions(a),b=0;b<a.length&&b<cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_;b++)cvox.LiveRegionsDeprecated.updateLiveRegion(a[b],cvox.ChromeVoxEventWatcher.queueMode_(),!1)}; +cvox.ChromeVoxEventWatcher.setUpTextHandler=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);if(a!=cvox.ChromeVoxEventWatcher.currentTextControl){cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("click", +cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.textMutationObserver_&&(cvox.ChromeVoxEventWatcher.textMutationObserver_.disconnect(),cvox.ChromeVoxEventWatcher.textMutationObserver_=null));cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;if(null==a)return!1;if(a.constructor==HTMLInputElement&&cvox.DomUtil.isInputTypeText(a)&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler= +new cvox.ChromeVoxEditableHTMLInput(a,cvox.ChromeVox.tts);else if(a.constructor==HTMLTextAreaElement&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableTextArea(a,cvox.ChromeVox.tts);else if(a.isContentEditable||"textbox"==a.getAttribute("role"))cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableContentEditable(a,cvox.ChromeVox.tts); +cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("click",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),window.WebKitMutationObserver&&(cvox.ChromeVoxEventWatcher.textMutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.onTextMutation),cvox.ChromeVoxEventWatcher.textMutationObserver_.observe(cvox.ChromeVoxEventWatcher.currentTextControl, +{childList:!0,attributes:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1})),cvox.ChromeVoxEventSuspender.areEventsSuspended()||cvox.ChromeVox.navigationManager.updateSel(cvox.CursorSelection.fromNode(cvox.ChromeVoxEventWatcher.currentTextControl)));return null!=cvox.ChromeVoxEventWatcher.currentTextHandler}};cvox.ChromeVoxEventWatcher.handleTextChanged=function(a){if(cvox.ChromeVoxEventWatcher.currentTextHandler){var b=cvox.ChromeVoxEventWatcher.currentTextHandler;b.update(a);return!0}return!1}; +cvox.ChromeVoxEventWatcher.onTextMutation=function(){cvox.ChromeVoxEventWatcher.currentTextHandler&&window.setTimeout(function(){cvox.ChromeVoxEventWatcher.handleTextChanged(!1)},cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_)}; +cvox.ChromeVoxEventWatcher.handleControlChanged=function(a){var b=cvox.DomUtil.getControlValueAndStateString(a),c=cvox.DomUtil.getSurroundingControl(a),d=!1;if(a!=cvox.ChromeVoxEventWatcher.lastFocusedNode&&(null==c||c!=cvox.ChromeVoxEventWatcher.lastFocusedNode))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a);else if(b==cvox.ChromeVoxEventWatcher.lastFocusedNodeValue)return;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=b;if(cvox.DomPredicates.checkboxPredicate([a])||cvox.DomPredicates.radioPredicate([a]))d= +!0,a.checked?cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_ON):cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_OFF);"SELECT"==a.tagName&&(d=!0);if("INPUT"==a.tagName)switch(a.type){case "color":case "datetime":case "datetime-local":case "range":d=!0}a.hasAttribute&&a.hasAttribute("role")&&(d=!0);c&&c!=a&&document.activeElement==a?(cvox.ApiImplementation.syncToNode(a,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH),d=!1):cvox.AriaUtil.getActiveDescendant(a)&&(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(cvox.AriaUtil.getActiveDescendant(a), +!0),d=!0);d&&!cvox.ChromeVoxEventSuspender.areEventsSuspended()&&(cvox.ChromeVox.tts.speak(b,cvox.ChromeVoxEventWatcher.queueMode_(),null),cvox.NavBraille.fromText(b).write())}; +cvox.ChromeVoxEventWatcher.handleControlAction=function(a){if(!cvox.ChromeVox.isActive)return!1;var b=a.target;if("SELECT"==b.tagName&&1>=b.size&&(13==a.keyCode||32==a.keyCode))return a.preventDefault(),a.stopPropagation(),!0;if("INPUT"==b.tagName&&"range"==b.type){var c=parseFloat(b.value),d;b.step&&0<b.step?d=b.step:b.min&&b.max?(d=b.max-b.min,d=2<d&&31>d?1:(b.max-b.min)/10):d=1;if(37==a.keyCode||38==a.keyCode)c-=d;else if(39==a.keyCode||40==a.keyCode)c+=d;b.max&&c>b.max&&(c=b.max);b.min&&c<b.min&& +(c=b.min);b.value=c}return!1}; +cvox.ChromeVoxEventWatcher.handleDialogFocus=function(a){for(;a;){if(a.hasAttribute){var b=a.getAttribute("role");if("dialog"==b||"alertdialog"==b)break}a=a.parentElement}if(a==cvox.ChromeVox.navigationManager.currentDialog)return!1;if(cvox.ChromeVox.navigationManager.currentDialog&&!a){if(!cvox.DomUtil.isDescendantOfNode(document.activeElement,cvox.ChromeVox.navigationManager.currentDialog))return cvox.ChromeVox.navigationManager.currentDialog=null,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("exiting_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION),!0}else if(a)return cvox.ChromeVox.navigationManager.currentDialog=a,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("entering_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a),b=new cvox.NavigationSpeaker,b.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,null),!0;return!1}; +cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess=function(a,b,c){a=c-a;b=c-b;return a<cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_&&b<cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_};cvox.ChromeVoxEventWatcher.queueMode_=function(){return cvox.ChromeVoxEventWatcher.processing_?cvox.AbstractTts.QUEUE_MODE_QUEUE:cvox.AbstractTts.QUEUE_MODE_FLUSH}; +cvox.ChromeVoxEventWatcher.processQueue_=function(){if(0!=cvox.ChromeVoxEventWatcher.events_.length){var a=cvox.ChromeVoxEventWatcher.events_,b=-1,c=0,d,e;for(e=0;d=a[e];e++)"focus"==d.type&&(b=e,c=d.timeStamp);cvox.ChromeVoxEventWatcher.events_=[];for(e=0;d=a[e];e++){var f=a[e-1]||{};!(e>=b||"LiveRegion"==d.type||"DOMSubtreeModified"==d.type)||"focus"==f.type&&"change"==d.type||cvox.ChromeVoxEventWatcher.events_.push(d)}cvox.ChromeVoxEventWatcher.events_.sort(function(a,b){return"LiveRegion"!=b.type&& +"LiveRegion"==a.type||"DOMSubtreeModified"!=b.type&&"DOMSubtreeModified"==a.type?1:-1});a=(new Date).getTime();if(0<=b&&cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess(c,cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime,a))window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_);else{for(e=0;d=cvox.ChromeVoxEventWatcher.events_[e];e++)cvox.ChromeVoxEventWatcher.handleEvent_(d),cvox.ChromeVoxEventWatcher.processing_=!0;cvox.ChromeVoxEventWatcher.processing_= +!1;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()}}}; +cvox.ChromeVoxEventWatcher.handleEvent_=function(a){switch(a.type){case "keydown":cvox.ChromeVoxEventWatcher.setUpTextHandler();if(cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.handleTextChanged(!0),(a=cvox.ChromeVoxEventWatcher.currentTextHandler)&&a.lastChangeDescribed))break;cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement);break;case "keypress":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "focus":cvox.ChromeVoxEventWatcher.focusHandler(a); +break;case "blur":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "change":cvox.ChromeVoxEventWatcher.changeHandler(a);break;case "select":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "LiveRegion":cvox.ChromeVoxEventWatcher.speakLiveRegion_(a.assertive,a.navDescriptions);break;case "DOMSubtreeModified":cvox.ChromeVoxEventWatcher.subtreeModifiedHandler(a)}}; +cvox.ChromeVoxEventWatcher.setUpTimeHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentTimeHandler=a.constructor==HTMLInputElement&&a.type&&"time"==a.type?new cvox.ChromeVoxHTMLTimeWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentTimeHandler}; +cvox.ChromeVoxEventWatcher.setUpMediaHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentMediaHandler=a.constructor==HTMLVideoElement||a.constructor==HTMLAudioElement?new cvox.ChromeVoxHTMLMediaWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentMediaHandler}; +cvox.ChromeVoxEventWatcher.setUpDateHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentDateHandler=a.constructor!=HTMLInputElement||!a.type||"date"!=a.type&&"month"!=a.type&&"week"!=a.type?null:new cvox.ChromeVoxHTMLDateWidget(a,cvox.ChromeVox.tts);return null!=cvox.ChromeVoxEventWatcher.currentDateHandler};cvox.Serializer=function(){};cvox.Serializer.prototype.storeOn=function(a){cvox.ChromeVox.storeOn(a);cvox.ChromeVoxEventWatcher.storeOn(a)};cvox.Serializer.prototype.readFrom=function(a){cvox.ChromeVox.readFrom(a);cvox.ChromeVoxEventWatcher.readFrom(a)};cvox.InitGlobals=function(){}; +cvox.InitGlobals.initGlobals=function(){cvox.ChromeVox.host||(cvox.ChromeVox.host=cvox.HostFactory.getHost());cvox.ChromeVox.tts=(new cvox.CompositeTts).add(cvox.HostFactory.getTts()).add(cvox.History.getInstance()).add(cvox.ConsoleTts.getInstance());cvox.ChromeVox.braille||(cvox.ChromeVox.braille=cvox.HostFactory.getBraille());cvox.ChromeVox.mathJax=cvox.HostFactory.getMathJax();cvox.ChromeVox.earcons=cvox.HostFactory.getEarcons();cvox.ChromeVox.msgs=cvox.HostFactory.getMsgs();cvox.ChromeVox.isActive= +!0;cvox.ChromeVox.navigationManager=new cvox.NavigationManager;cvox.ChromeVox.navigationManager.updateIndicator();cvox.ChromeVox.syncToNode=cvox.ApiImplementation.syncToNode;cvox.ChromeVox.speakNode=cvox.ApiImplementation.speakNode;cvox.ChromeVox.serializer=new cvox.Serializer;cvox.ChromeVox.host.init();cvox.ChromeVoxEventWatcher.init(window);cvox.ChromeVox.executeUserCommand=function(a){cvox.ChromeVoxUserCommands.commands[a]()};cvox.ChromeVox.host.onPageLoad()};cvox.ChromeVoxInit={};cvox.ChromeVox.initTimeout_=100;cvox.ChromeVox.recallInit_=function(a){window.console.log(a+" Will try again in "+cvox.ChromeVox.initTimeout_+"ms");window.setTimeout(cvox.ChromeVox.initDocument,cvox.ChromeVox.initTimeout_);cvox.ChromeVox.initTimeout_*=2}; +cvox.ChromeVox.initDocument=function(){document.body?(cvox.ChromeVox.host=cvox.HostFactory.getHost(),cvox.ChromeVox.host.ttsLoaded()?(window.console.log("Starting ChromeVox."),cvox.InitGlobals.initGlobals(),window.disableChromeVox=function(){cvox.ChromeVox.host.killChromeVox()}):cvox.ChromeVox.recallInit_("ChromeVox not starting; waiting for TTS. "+document.location.href+".")):cvox.ChromeVox.recallInit_("ChromeVox not starting on unloaded page: "+document.location.href+".")}; +cvox.ChromeVox.reinit=function(){cvox.ChromeVox.host.reinit();cvox.ChromeVox.initDocument()};cvox.AndroidBraille=function(){};goog.inherits(cvox.AndroidBraille,cvox.AbstractBraille);cvox.AndroidBraille.prototype.write=function(a){accessibility.braille&&accessibility.braille(JSON.stringify(a.toJson()))};cvox.HostFactory.brailleConstructor=cvox.AndroidBraille;cvox.AndroidEarcons=function(){cvox.AbstractEarcons.call(this);this.audioMap={}};goog.inherits(cvox.AndroidEarcons,cvox.AbstractEarcons);cvox.AndroidEarcons.BASE_URL="https://ssl.gstatic.com/accessibility/javascript/android/earcons/"; +cvox.AndroidEarcons.prototype.playEarcon=function(a){if(this.earconsAvailable()){cvox.AndroidEarcons.superClass_.playEarcon.call(this,a);this.currentAudio=this.audioMap[a];this.currentAudio||(this.currentAudio=new Audio(cvox.AndroidEarcons.BASE_URL+this.getEarconFilename(a)),this.audioMap[a]=this.currentAudio);try{this.currentAudio.currentTime=0}catch(b){}this.currentAudio.paused&&this.currentAudio.play()}}; +cvox.AndroidEarcons.prototype.earconsAvailable=function(){return-1==navigator.userAgent.indexOf("Chrome")?!1:!0};cvox.HostFactory.earconsConstructor=cvox.AndroidEarcons;"undefined"!=typeof goog&&goog.provide&&(cvox.Api={},cvox.Api.Math={}); +(function(){function a(){d&&(d.port1.close(),d.port2.close(),d=null);d=new MessageChannel;window.postMessage("cvox.PortSetup",[d.port2],"*");d.port1.onmessage=function(a){"cvox.Disconnect"==a.data&&(d=null);try{var b=JSON.parse(a.data);b.id&&g[b.id]&&(g[b.id](b),delete g[b.id])}catch(c){}}}function b(a,b){var c=f;f++;void 0===a.args&&(a.args=[]);a.args=[c].concat(a.args);g[c]=b;d.port1.postMessage(JSON.stringify(a))}function c(a,c){var d=null;c&&c.endCallback&&(d=c.endCallback);b(a,d)}var d,e=!1, +f=1,g={};window.cvox||(window.cvox={});var h=window.cvox,k=null;"undefined"!=typeof h.ApiImplementation&&(k=h.ApiImplementation);h.Api=function(){};h.Api.internalEnable=function(){e=!0;k||a();var b=document.createEvent("UIEvents");b.initEvent("chromeVoxLoaded",!0,!1);document.dispatchEvent(b)};h.Api.internalDisable=function(){e=!1;d=null;var a=document.createEvent("UIEvents");a.initEvent("chromeVoxUnloaded",!0,!1);document.dispatchEvent(a)};h.Api.isChromeVoxActive=function(){return k?e:!!d};h.Api.speak= +function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(a,b,d):(a={cmd:"speak",args:[a,b,d]},c(a,d)))};h.Api.speakNode=function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(h.DomUtil.getName(a),b,d):(a={cmd:"speakNodeRef",args:[h.ApiUtils.makeNodeReference(a),b,d]},c(a,d)))};h.Api.stop=function(){if(h.Api.isChromeVoxActive())if(k)k.stop();else{var a={cmd:"stop"};d.port1.postMessage(JSON.stringify(a))}};h.Api.playEarcon=function(a){h.Api.isChromeVoxActive()&&(k?k.playEarcon(a):(a={cmd:"playEarcon",args:[a]}, +d.port1.postMessage(JSON.stringify(a))))};h.Api.syncToNode=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)k.syncToNode(a,b);else{var c={cmd:"syncToNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getCurrentNode=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.navigationManager.getCurrentNode()):b({cmd:"getCurrentNode"},function(b){a(h.ApiUtils.getNodeFromRef(b.currentNode))}))};h.Api.setSpeechForNode=function(a,b){h.Api.isChromeVoxActive()&& +a&&b&&a.setAttribute("cvoxnodedesc",JSON.stringify(b))};h.Api.click=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)h.DomUtil.clickElem(a,b,!0);else{var c={cmd:"clickNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getBuild=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.BuildInfo.build):b({cmd:"getBuild"},function(b){a(b.build)}))};h.Api.getVersion=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.version+""):b({cmd:"getVersion"},function(b){a(b.version)}))}; +h.Api.getCvoxModifierKeys=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.KeyUtil.cvoxModKeyCodes()):b({cmd:"getCvoxModKeys"},function(b){a(b.keyCodes)}))};h.Api.isKeyShortcut=function(a,c){if(c)if(h.Api.isChromeVoxActive()){var d=[37,39];if(!d.indexOf(a.keyCode)||a.altKey||a.shiftKey||a.ctrlKey||a.metaKey)if(k){var e=h.KeyUtil.keyEventToKeySequence(a);c(h.ChromeVoxKbHandler.handlerKeyMap.hasKey(e))}else{var d={},f=["target","srcElement","currentTarget","view"];for(e in a)-1===f.indexOf(e)&&(d[e]= +a[e]);e={cmd:"isKeyShortcut",args:[d]};b(e,function(a){c(a.isHandled)})}else c(!1)}else c(!1)};h.Api.setKeyEcho=function(a){h.Api.isChromeVoxActive()&&(k?k.setKeyEcho(a):(a={cmd:"setKeyEcho",args:[a]},d.port1.postMessage(JSON.stringify(a))))};h.Api.Math=function(){};h.Api.Math.defineRule=function(a,b,c,e,f){if(h.Api.isChromeVoxActive()){var g=Array.prototype.slice.call(arguments,4),g=[a,b,c,e].concat(g);k?k.Math.defineRule.apply(k.Math,g):(g={cmd:"Math.defineRule",args:g},d.port1.postMessage(JSON.stringify(g)))}}; +h.Api.internalEnable();h.NodeDescription=function(a,b,c,d){this.context=a?a:"";this.text=b?b:"";this.userValue=c?c:"";this.annotation=d?d:""}})();cvox.InitialSpeech={};window.INJECTED_AFTER_LOAD||(window.INJECTED_AFTER_LOAD=!1); +cvox.InitialSpeech.speak=function(){var a=window.INJECTED_AFTER_LOAD;if(!cvox.ChromeVox.isActive||document.webkitHidden)a=!0;window.top==window&&document.title&&!a&&cvox.ChromeVox.tts.speak(document.title,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.init(new Date,cvox.AbstractTts.QUEUE_MODE_QUEUE,a);document.hasFocus()&&document.activeElement==document.body&&cvox.ChromeVox.navigationManager.syncToBeginning();if(cvox.ChromeVox.position[document.location.href]){var b=cvox.ChromeVox.position[document.location.href]; +cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(document.elementFromPoint(b.x,b.y))}document.hasFocus()&&(a||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){cvox.ChromeVox.navigationManager.finishNavCommand("",!0,cvox.AbstractTts.QUEUE_MODE_QUEUE)})())};cvox.AndroidKeyMap=function(){}; +cvox.AndroidKeyMap.getStringifiedKeyMap=function(){return cvox.ChromeVoxJSON.stringify({'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[17]}}':"stopSpeech",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[9]}}':"handleTab",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[9]}}':"handleTabPrev", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[38]}}':"backward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"forward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[37]}}':"previousGranularity", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[39]}}':"nextGranularity",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[13]}}':"forceClickOnCurrentItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"readFromHere", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[85]}}':"readLinkURL",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[75]}}':"fullyDescribe",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[189]}}':"decreaseTtsPitch", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[187]}}':"increaseTtsPitch",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[219]}}':"decreaseTtsRate",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[221]}}':"increaseTtsRate", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[81]}}':"cyclePunctuationLevel",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[49]}}':"nextHeading1",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[49]}}':"previousHeading1", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[50]}}':"nextHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[50]}}':"previousHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[51]}}':"nextHeading3", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[51]}}':"previousHeading3",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[52]}}':"nextHeading4",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[52]}}':"previousHeading4", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[53]}}':"nextHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[53]}}':"previousHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[54]}}':"nextHeading6", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[54]}}':"previousHeading6",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[67]}}':"nextComboBox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[67]}}':"previousComboBox", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[69]}}':"nextEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[69]}}':"previousEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[70]}}':"nextFormField", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[70]}}':"previousFormField",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[71]}}':"nextGraphic",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[71]}}':"previousGraphic", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[72]}}':"nextHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[72]}}':"previousHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[73]}}':"nextListItem", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[73]}}':"previousListItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[76]}}':"nextLink",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[76]}}':"previousLink", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[79]}}':"nextList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[79]}}':"previousList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[82]}}':"nextRadio", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[82]}}':"previousRadio",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[84]}}':"nextTable",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[84]}}':"previousTable", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[66]}}':"nextButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[66]}}':"previousButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[88]}}':"nextCheckbox", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[88]}}':"previousCheckbox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[186]}}':"nextLandmark",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[186]}}':"previousLandmark"})};cvox.MathSimpleStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathSimpleStore,cvox.MathStore);cvox.MathSimpleStore.prototype.defineRulesFromMappings=function(a,b,c){for(var d in c)for(var e in c[d]){var f=c[d][e],g='self::text() = "'+b+'"';this.defineRule(a,d+"."+e,'[t] "'+f+'"',"self::text()",g)}};cvox.MathCompoundStore=function(){this.subStores_={}};goog.addSingletonGetter(cvox.MathCompoundStore); +cvox.MathCompoundStore.prototype.defineRules=function(a,b,c){var d=new cvox.MathSimpleStore;d.defineRulesFromMappings(a,b,c);this.subStores_[b]=d};cvox.MathCompoundStore.prototype.addSymbolRules=function(a){var b=cvox.MathSimpleStore.parseUnicode_(a.key);this.defineRules(a.key,b,a.mappings)};cvox.MathCompoundStore.prototype.addFunctionRules=function(a){var b=a.names;a=a.mappings;for(var c=0,d;d=b[c];c++)this.defineRules(d,d,a)}; +cvox.MathCompoundStore.prototype.lookupRule=function(a,b){var c=this.subStores_[a.textContent];if(c)return c.lookupRule(a,b)};cvox.MathCompoundStore.prototype.lookupString=function(a,b){var c=document.createTextNode(a);return(c=this.lookupRule(c,b))?c.action.components.map(function(a){return a.content.slice(1,-1)}).join(" "):""}; +cvox.MathCompoundStore.prototype.getDynamicConstraintValues=function(){var a={},b;for(b in this.subStores_){var c=this.subStores_[b].getDynamicConstraintValues(),d;for(d in c){var e=a[d];a[d]=e?cvox.MathUtil.union(e,c[d]):c[d]}}return a};cvox.MathSimpleStore.parseUnicode_=function(a){var b=parseInt(a,16);if(65536>b)return String.fromCharCode(b);b-=65536;a=(b>>10)+55296;b=(b&1023)+56320;return String.fromCharCode(a,b)};cvox.AndroidMathMap=function(){this.store_=cvox.MathCompoundStore.getInstance();cvox.AndroidMathMap.FUNCTION_MAPPINGS_.forEach(goog.bind(this.store_.addFunctionRules,this.store_));cvox.AndroidMathMap.SYMBOL_MAPPINGS_.forEach(goog.bind(this.store_.addSymbolRules,this.store_));this.store_.getDynamicConstraintValues()}; +cvox.AndroidMathMap.prototype.evaluate=function(a,b,c){var d="";b=cvox.MathStore.createDynamicConstraint(b,c);d=this.store_.lookupString(a,b);return new cvox.NavDescription({text:d?d:a})}; +cvox.AndroidMathMap.SYMBOL_MAPPINGS_=[{category:"Po",mappings:{"default":{"default":"exclamation mark"}},key:"0021"},{category:"Po",mappings:{"default":{"default":"quotation mark"}},key:"0022"},{category:"Po",mappings:{"default":{"default":"number sign",alternative:"hash","short":"number"}},key:"0023"},{category:"Sc",mappings:{"default":{"default":"dollar sign","short":"dollar"}},key:"0024"},{category:"Po",mappings:{"default":{"default":"percent sign","short":"percent"}},key:"0025"},{category:"Po", +mappings:{"default":{"default":"ampersand"}},key:"0026"},{category:"Po",mappings:{"default":{"default":"apostrophe",alternative:"apostrophe quote"}},key:"0027"},{category:"Po",mappings:{"default":{"default":"asterisk"}},key:"002A"},{category:"Sm",mappings:{"default":{"default":"plus sign","short":"plus"}},key:"002B"},{category:"Po",mappings:{"default":{"default":"comma"}},key:"002C"},{category:"Pd",mappings:{"default":{"default":"hyphen minus","short":"minus"}},key:"002D"},{category:"Po",mappings:{"default":{"default":"full stop", +alternative:"period"}},key:"002E"},{category:"Po",mappings:{"default":{"default":"solidus",alternative:"slash"}},key:"002F"},{category:"Po",mappings:{"default":{"default":"colon"}},key:"003A"},{category:"Po",mappings:{"default":{"default":"semicolon"}},key:"003B"},{category:"Sm",mappings:{"default":{"default":"less than sign","short":"less than"}},key:"003C"},{category:"Sm",mappings:{"default":{"default":"equals sign","short":"equals"}},key:"003D"},{category:"Sm",mappings:{"default":{"default":"greater than sign", +"short":"greater than"}},key:"003E"},{category:"Po",mappings:{"default":{"default":"question mark"}},key:"003F"},{category:"Po",mappings:{"default":{"default":"commercial at","short":"at"}},key:"0040"},{category:"Po",mappings:{"default":{"default":"reverse solidus",alternative:"backslash"}},key:"005C"},{category:"Sk",mappings:{"default":{"default":"circumflex accent",alternative:"spacing circumflex","short":"hat"}},key:"005E"},{category:"Pc",mappings:{"default":{"default":"low line",alternative:"spacing underscore"}}, +key:"005F"},{category:"Sk",mappings:{"default":{"default":"grave accent",alternative:"spacing grave","short":"grave"}},key:"0060"},{category:"Sm",mappings:{"default":{"default":"vertical line",alternative:"vertical bar"}},key:"007C"},{category:"Sm",mappings:{"default":{"default":"tilde"}},key:"007E"},{category:"Po",mappings:{"default":{"default":"inverted exclamation mark"}},key:"00A1"},{category:"Sc",mappings:{"default":{"default":"cent sign","short":"cent"}},key:"00A2"},{category:"Sc",mappings:{"default":{"default":"pound sign", +"short":"pound"}},key:"00A3"},{category:"Sc",mappings:{"default":{"default":"currency sign","short":"currency"}},key:"00A4"},{category:"Sc",mappings:{"default":{"default":"yen sign","short":"yen"}},key:"00A5"},{category:"So",mappings:{"default":{"default":"broken bar",alternative:"broken vertical bar"}},key:"00A6"},{category:"Po",mappings:{"default":{"default":"section sign","short":"section"}},key:"00A7"},{category:"Sk",mappings:{"default":{"default":"diaeresis",alternative:"spacing diaeresis","short":"double dot"}}, +key:"00A8"},{category:"So",mappings:{"default":{"default":"copyright sign","short":"copyright"}},key:"00A9"},{category:"Lo",mappings:{"default":{"default":"feminine ordinal indicator"}},key:"00AA"},{category:"Pi",mappings:{"default":{"default":"left pointing double angle quotation mark",alternative:"left pointing guillemet"}},key:"00AB"},{category:"Sm",mappings:{"default":{"default":"not sign","short":"not"}},key:"00AC"},{category:"So",mappings:{"default":{"default":"registered sign",alternative:"registered trade mark sign", +"short":"registered"}},key:"00AE"},{category:"Sk",mappings:{"default":{"default":"macron",alternative:"spacing macron"}},key:"00AF"},{category:"So",mappings:{"default":{"default":"degree sign","short":"degree"}},key:"00B0"},{category:"Sm",mappings:{"default":{"default":"plus minus sign",alternative:"plus or minus sign","short":"plus minus"}},key:"00B1"},{category:"Sk",mappings:{"default":{"default":"acute accent",alternative:"spacing acute","short":"acute"}},key:"00B4"},{category:"Ll",mappings:{"default":{"default":"micro sign", +"short":"micro"}},key:"00B5"},{category:"Po",mappings:{"default":{"default":"pilcrow sign",alternative:"paragraph sign","short":"pilcrow"}},key:"00B6"},{category:"Po",mappings:{"default":{"default":"middle dot"}},key:"00B7"},{category:"Sk",mappings:{"default":{"default":"cedilla",alternative:"spacing cedilla"}},key:"00B8"},{category:"Lo",mappings:{"default":{"default":"masculine ordinal indicator"}},key:"00BA"},{category:"Pf",mappings:{"default":{"default":"right pointing double angle quotation mark", +alternative:"right pointing guillemet"}},key:"00BB"},{category:"Po",mappings:{"default":{"default":"inverted question mark"}},key:"00BF"},{category:"Sm",mappings:{"default":{"default":"multiplication sign","short":"multiplication"}},key:"00D7"},{category:"Sm",mappings:{"default":{"default":"division sign","short":"division"}},key:"00F7"},{category:"Sk",mappings:{"default":{"default":"breve",alternative:"spacing breve"}},key:"02D8"},{category:"Sk",mappings:{"default":{"default":"dot above",alternative:"spacing dot above"}}, +key:"02D9"},{category:"Sk",mappings:{"default":{"default":"ring above",alternative:"spacing ring above"}},key:"02DA"},{category:"Sk",mappings:{"default":{"default":"ogonek",alternative:"spacing ogonek"}},key:"02DB"},{category:"Sk",mappings:{"default":{"default":"small tilde",alternative:"spacing tilde"}},key:"02DC"},{category:"Sk",mappings:{"default":{"default":"double acute accent",alternative:"spacing double acute"}},key:"02DD"},{category:"Pd",mappings:{"default":{"default":"hyphen"}},key:"2010"}, +{category:"Pd",mappings:{"default":{"default":"non breaking hyphen"}},key:"2011"},{category:"Pd",mappings:{"default":{"default":"figure dash"}},key:"2012"},{category:"Pd",mappings:{"default":{"default":"en dash"}},key:"2013"},{category:"Pd",mappings:{"default":{"default":"em dash"}},key:"2014"},{category:"Pd",mappings:{"default":{"default":"horizontal bar",alternative:"quotation dash"}},key:"2015"},{category:"Po",mappings:{"default":{"default":"double vertical line",alternative:"double vertical bar"}}, +key:"2016"},{category:"Po",mappings:{"default":{"default":"double low line",alternative:"spacing double underscore"}},key:"2017"},{category:"Pi",mappings:{"default":{"default":"left single quotation mark",alternative:"single turned comma quotation mark"}},key:"2018"},{category:"Pf",mappings:{"default":{"default":"right single quotation mark",alternative:"single comma quotation mark"}},key:"2019"},{category:"Ps",mappings:{"default":{"default":"single low 9 quotation mark",alternative:"low single comma quotation mark"}}, +key:"201A"},{category:"Pi",mappings:{"default":{"default":"single high reversed 9 quotation mark",alternative:"single reversed comma quotation mark"}},key:"201B"},{category:"Pi",mappings:{"default":{"default":"left double quotation mark",alternative:"double turned comma quotation mark"}},key:"201C"},{category:"Pf",mappings:{"default":{"default":"right double quotation mark",alternative:"double comma quotation mark"}},key:"201D"},{category:"Ps",mappings:{"default":{"default":"double low 9 quotation mark", +alternative:"low double comma quotation mark"}},key:"201E"},{category:"Pi",mappings:{"default":{"default":"double high reversed 9 quotation mark",alternative:"double reversed comma quotation mark"}},key:"201F"},{category:"Po",mappings:{"default":{"default":"dagger"}},key:"2020"},{category:"Po",mappings:{"default":{"default":"double dagger"}},key:"2021"},{category:"Po",mappings:{"default":{"default":"bullet"}},key:"2022"},{category:"Po",mappings:{"default":{"default":"triangular bullet"}},key:"2023"}, +{category:"Po",mappings:{"default":{"default":"one dot leader"}},key:"2024"},{category:"Po",mappings:{"default":{"default":"two dot leader"}},key:"2025"},{category:"Po",mappings:{"default":{"default":"horizontal ellipsis"}},key:"2026"},{category:"Po",mappings:{"default":{"default":"hyphenation point"}},key:"2027"},{category:"Po",mappings:{"default":{"default":"per mille sign","short":"per mille"}},key:"2030"},{category:"Po",mappings:{"default":{"default":"per ten thousand sign","short":"per ten thousand"}}, +key:"2031"},{category:"Po",mappings:{"default":{"default":"prime"}},key:"2032"},{category:"Po",mappings:{"default":{"default":"double prime"}},key:"2033"},{category:"Po",mappings:{"default":{"default":"triple prime"}},key:"2034"},{category:"Po",mappings:{"default":{"default":"reversed prime"}},key:"2035"},{category:"Po",mappings:{"default":{"default":"reversed double prime"}},key:"2036"},{category:"Po",mappings:{"default":{"default":"reversed triple prime"}},key:"2037"},{category:"Po",mappings:{"default":{"default":"caret"}}, +key:"2038"},{category:"Pi",mappings:{"default":{"default":"single left pointing angle quotation mark",alternative:"left pointing single guillemet"}},key:"2039"},{category:"Pf",mappings:{"default":{"default":"single right pointing angle quotation mark",alternative:"right pointing single guillemet"}},key:"203A"},{category:"Po",mappings:{"default":{"default":"reference mark"}},key:"203B"},{category:"Po",mappings:{"default":{"default":"double exclamation mark"}},key:"203C"},{category:"Po",mappings:{"default":{"default":"interrobang"}}, +key:"203D"},{category:"Po",mappings:{"default":{"default":"overline",alternative:"spacing overscore"}},key:"203E"},{category:"Pc",mappings:{"default":{"default":"undertie"}},key:"203F"},{category:"Pc",mappings:{"default":{"default":"character tie"}},key:"2040"},{category:"Po",mappings:{"default":{"default":"caret insertion point"}},key:"2041"},{category:"Po",mappings:{"default":{"default":"asterism"}},key:"2042"},{category:"Po",mappings:{"default":{"default":"hyphen bullet"}},key:"2043"},{category:"Sm", +mappings:{"default":{"default":"fraction slash"}},key:"2044"},{category:"Po",mappings:{"default":{"default":"double question mark"}},key:"2047"},{category:"Po",mappings:{"default":{"default":"question exclamation mark"}},key:"2048"},{category:"Po",mappings:{"default":{"default":"exclamation question mark"}},key:"2049"},{category:"Po",mappings:{"default":{"default":"reversed pilcrow sign","short":"reversed pilcrow"}},key:"204B"},{category:"Po",mappings:{"default":{"default":"black leftwards bullet"}}, +key:"204C"},{category:"Po",mappings:{"default":{"default":"black rightwards bullet"}},key:"204D"},{category:"Po",mappings:{"default":{"default":"low asterisk"}},key:"204E"},{category:"Po",mappings:{"default":{"default":"reversed semicolon"}},key:"204F"},{category:"Po",mappings:{"default":{"default":"close up"}},key:"2050"},{category:"Po",mappings:{"default":{"default":"two asterisks aligned vertically"}},key:"2051"},{category:"Sm",mappings:{"default":{"default":"commercial minus sign","short":"commercial minus"}}, +key:"2052"},{category:"Po",mappings:{"default":{"default":"swung dash"}},key:"2053"},{category:"Pc",mappings:{"default":{"default":"inverted undertie"}},key:"2054"},{category:"Po",mappings:{"default":{"default":"flower punctuation mark"}},key:"2055"},{category:"Po",mappings:{"default":{"default":"three dot punctuation"}},key:"2056"},{category:"Po",mappings:{"default":{"default":"quadruple prime"}},key:"2057"},{category:"Po",mappings:{"default":{"default":"four dot punctuation"}},key:"2058"},{category:"Po", +mappings:{"default":{"default":"five dot punctuation"}},key:"2059"},{category:"Po",mappings:{"default":{"default":"two dot punctuation"}},key:"205A"},{category:"Po",mappings:{"default":{"default":"four dot mark"}},key:"205B"},{category:"Po",mappings:{"default":{"default":"dotted cross"}},key:"205C"},{category:"Po",mappings:{"default":{"default":"tricolon"}},key:"205D"},{category:"Po",mappings:{"default":{"default":"vertical four dots"}},key:"205E"},{category:"Sm",mappings:{"default":{"default":"superscript plus sign", +"short":"superscript plus"}},key:"207A"},{category:"Sm",mappings:{"default":{"default":"superscript minus",alternative:"superscript hyphen minus"}},key:"207B"},{category:"Sm",mappings:{"default":{"default":"superscript equals sign","short":"superscript equals"}},key:"207C"},{category:"Ps",mappings:{"default":{"default":"superscript left parenthesis",alternative:"superscript opening parenthesis"}},key:"207D"},{category:"Pe",mappings:{"default":{"default":"superscript right parenthesis",alternative:"superscript closing parenthesis"}}, +key:"207E"},{category:"Sm",mappings:{"default":{"default":"subscript plus sign","short":"subscript plus"}},key:"208A"},{category:"Sm",mappings:{"default":{"default":"subscript minus",alternative:"subscript hyphen minus"}},key:"208B"},{category:"Sm",mappings:{"default":{"default":"subscript equals sign","short":"subscript equals"}},key:"208C"},{category:"Ps",mappings:{"default":{"default":"subscript left parenthesis",alternative:"subscript opening parenthesis"}},key:"208D"},{category:"Pe",mappings:{"default":{"default":"subscript right parenthesis", +alternative:"subscript closing parenthesis"}},key:"208E"},{category:"So",mappings:{"default":{"default":"property line"}},key:"214A"},{category:"Sm",mappings:{"default":{"default":"turned ampersand"}},key:"214B"},{category:"So",mappings:{"default":{"default":"per sign","short":"per"}},key:"214C"},{category:"So",mappings:{"default":{"default":"aktieselskab"}},key:"214D"},{category:"Ll",mappings:{"default":{"default":"turned small f"}},key:"214E"},{category:"Sm",mappings:{"default":{"default":"for all"}}, +key:"2200"},{category:"Sm",mappings:{"default":{"default":"complement"}},key:"2201"},{category:"Sm",mappings:{"default":{"default":"partial differential"}},key:"2202"},{category:"Sm",mappings:{"default":{"default":"there exists"}},key:"2203"},{category:"Sm",mappings:{"default":{"default":"there does not exist"}},key:"2204"},{category:"Sm",mappings:{"default":{"default":"empty set"}},key:"2205"},{category:"Sm",mappings:{"default":{"default":"increment"}},key:"2206"},{category:"Sm",mappings:{"default":{"default":"nabla"}}, +key:"2207"},{category:"Sm",mappings:{"default":{"default":"element of"}},key:"2208"},{category:"Sm",mappings:{"default":{"default":"not an element of"}},key:"2209"},{category:"Sm",mappings:{"default":{"default":"small element of"}},key:"220A"},{category:"Sm",mappings:{"default":{"default":"contains as member"}},key:"220B"},{category:"Sm",mappings:{"default":{"default":"does not contain as member"}},key:"220C"},{category:"Sm",mappings:{"default":{"default":"small contains as member"}},key:"220D"}, +{category:"Sm",mappings:{"default":{"default":"end of proof"}},key:"220E"},{category:"Sm",mappings:{"default":{"default":"n ary product"}},key:"220F"},{category:"Sm",mappings:{"default":{"default":"n ary coproduct"}},key:"2210"},{category:"Sm",mappings:{"default":{"default":"n ary summation"}},key:"2211"},{category:"Sm",mappings:{"default":{"default":"minus sign","short":"minus"}},key:"2212"},{category:"Sm",mappings:{"default":{"default":"minus or plus sign","short":"minus or plus"}},key:"2213"}, +{category:"Sm",mappings:{"default":{"default":"dot plus"}},key:"2214"},{category:"Sm",mappings:{"default":{"default":"division slash"}},key:"2215"},{category:"Sm",mappings:{"default":{"default":"set minus"}},key:"2216"},{category:"Sm",mappings:{"default":{"default":"asterisk operator"}},key:"2217"},{category:"Sm",mappings:{"default":{"default":"ring operator"}},key:"2218"},{category:"Sm",mappings:{"default":{"default":"bullet operator"}},key:"2219"},{category:"Sm",mappings:{"default":{"default":"square root"}}, +key:"221A"},{category:"Sm",mappings:{"default":{"default":"cube root"}},key:"221B"},{category:"Sm",mappings:{"default":{"default":"fourth root"}},key:"221C"},{category:"Sm",mappings:{"default":{"default":"proportional to"}},key:"221D"},{category:"Sm",mappings:{"default":{"default":"infinity"}},key:"221E"},{category:"Sm",mappings:{"default":{"default":"right angle"}},key:"221F"},{category:"Sm",mappings:{"default":{"default":"angle"}},key:"2220"},{category:"Sm",mappings:{"default":{"default":"measured angle"}}, +key:"2221"},{category:"Sm",mappings:{"default":{"default":"spherical angle"}},key:"2222"},{category:"Sm",mappings:{"default":{"default":"divides","short":"bar"}},key:"2223"},{category:"Sm",mappings:{"default":{"default":"does not divide"}},key:"2224"},{category:"Sm",mappings:{"default":{"default":"parallel to"}},key:"2225"},{category:"Sm",mappings:{"default":{"default":"not parallel to"}},key:"2226"},{category:"Sm",mappings:{"default":{"default":"logical and"}},key:"2227"},{category:"Sm",mappings:{"default":{"default":"logical or"}}, +key:"2228"},{category:"Sm",mappings:{"default":{"default":"intersection"}},key:"2229"},{category:"Sm",mappings:{"default":{"default":"union"}},key:"222A"},{category:"Sm",mappings:{"default":{"default":"integral"}},key:"222B"},{category:"Sm",mappings:{"default":{"default":"double integral"}},key:"222C"},{category:"Sm",mappings:{"default":{"default":"triple integral"}},key:"222D"},{category:"Sm",mappings:{"default":{"default":"contour integral"}},key:"222E"},{category:"Sm",mappings:{"default":{"default":"surface integral"}}, +key:"222F"},{category:"Sm",mappings:{"default":{"default":"volume integral"}},key:"2230"},{category:"Sm",mappings:{"default":{"default":"clockwise integral"}},key:"2231"},{category:"Sm",mappings:{"default":{"default":"clockwise contour integral"}},key:"2232"},{category:"Sm",mappings:{"default":{"default":"anticlockwise contour integral"}},key:"2233"},{category:"Sm",mappings:{"default":{"default":"therefore"}},key:"2234"},{category:"Sm",mappings:{"default":{"default":"because"}},key:"2235"},{category:"Sm", +mappings:{"default":{"default":"ratio"}},key:"2236"},{category:"Sm",mappings:{"default":{"default":"proportion"}},key:"2237"},{category:"Sm",mappings:{"default":{"default":"dot minus"}},key:"2238"},{category:"Sm",mappings:{"default":{"default":"excess"}},key:"2239"},{category:"Sm",mappings:{"default":{"default":"geometric proportion"}},key:"223A"},{category:"Sm",mappings:{"default":{"default":"homothetic"}},key:"223B"},{category:"Sm",mappings:{"default":{"default":"tilde operator"}},key:"223C"},{category:"Sm", +mappings:{"default":{"default":"reversed tilde"}},key:"223D"},{category:"Sm",mappings:{"default":{"default":"inverted lazy s"}},key:"223E"},{category:"Sm",mappings:{"default":{"default":"sine wave"}},key:"223F"},{category:"Sm",mappings:{"default":{"default":"wreath product"}},key:"2240"},{category:"Sm",mappings:{"default":{"default":"not tilde"}},key:"2241"},{category:"Sm",mappings:{"default":{"default":"minus tilde"}},key:"2242"},{category:"Sm",mappings:{"default":{"default":"asymptotically equal to"}}, +key:"2243"},{category:"Sm",mappings:{"default":{"default":"not asymptotically equal to"}},key:"2244"},{category:"Sm",mappings:{"default":{"default":"approximately equal to"}},key:"2245"},{category:"Sm",mappings:{"default":{"default":"approximately but not actually equal to"}},key:"2246"},{category:"Sm",mappings:{"default":{"default":"neither approximately nor actually equal to"}},key:"2247"},{category:"Sm",mappings:{"default":{"default":"almost equal to"}},key:"2248"},{category:"Sm",mappings:{"default":{"default":"not almost equal to"}}, +key:"2249"},{category:"Sm",mappings:{"default":{"default":"almost equal or equal to"}},key:"224A"},{category:"Sm",mappings:{"default":{"default":"triple tilde"}},key:"224B"},{category:"Sm",mappings:{"default":{"default":"all equal to"}},key:"224C"},{category:"Sm",mappings:{"default":{"default":"equivalent to"}},key:"224D"},{category:"Sm",mappings:{"default":{"default":"geometrically equivalent to"}},key:"224E"},{category:"Sm",mappings:{"default":{"default":"difference between"}},key:"224F"},{category:"Sm", +mappings:{"default":{"default":"approaches the limit"}},key:"2250"},{category:"Sm",mappings:{"default":{"default":"geometrically equal to"}},key:"2251"},{category:"Sm",mappings:{"default":{"default":"approximately equal to or the image of"}},key:"2252"},{category:"Sm",mappings:{"default":{"default":"image of or approximately equal to"}},key:"2253"},{category:"Sm",mappings:{"default":{"default":"colon equals",alternative:"colon equal"}},key:"2254"},{category:"Sm",mappings:{"default":{"default":"equals colon", +alternative:"equal colon"}},key:"2255"},{category:"Sm",mappings:{"default":{"default":"ring in equal to"}},key:"2256"},{category:"Sm",mappings:{"default":{"default":"ring equal to"}},key:"2257"},{category:"Sm",mappings:{"default":{"default":"corresponds to"}},key:"2258"},{category:"Sm",mappings:{"default":{"default":"estimates"}},key:"2259"},{category:"Sm",mappings:{"default":{"default":"equiangular to"}},key:"225A"},{category:"Sm",mappings:{"default":{"default":"star equals"}},key:"225B"},{category:"Sm", +mappings:{"default":{"default":"delta equal to"}},key:"225C"},{category:"Sm",mappings:{"default":{"default":"equal to by definition"}},key:"225D"},{category:"Sm",mappings:{"default":{"default":"measured by"}},key:"225E"},{category:"Sm",mappings:{"default":{"default":"questioned equal to"}},key:"225F"},{category:"Sm",mappings:{"default":{"default":"not equal to"}},key:"2260"},{category:"Sm",mappings:{"default":{"default":"identical to"}},key:"2261"},{category:"Sm",mappings:{"default":{"default":"not identical to"}}, +key:"2262"},{category:"Sm",mappings:{"default":{"default":"strictly equivalent to"}},key:"2263"},{category:"Sm",mappings:{"default":{"default":"less than or equal to",alternative:"less than or equal to"}},key:"2264"},{category:"Sm",mappings:{"default":{"default":"greater than or equal to",alternative:"greater than or equal to"}},key:"2265"},{category:"Sm",mappings:{"default":{"default":"less than over equal to",alternative:"less than over equal to"}},key:"2266"},{category:"Sm",mappings:{"default":{"default":"greater than over equal to", +alternative:"greater than over equal to"}},key:"2267"},{category:"Sm",mappings:{"default":{"default":"less than but not equal to",alternative:"less than but not equal to"}},key:"2268"},{category:"Sm",mappings:{"default":{"default":"greater than but not equal to",alternative:"greater than but not equal to"}},key:"2269"},{category:"Sm",mappings:{"default":{"default":"much less than",alternative:"much less than"}},key:"226A"},{category:"Sm",mappings:{"default":{"default":"much greater than",alternative:"much greater than"}}, +key:"226B"},{category:"Sm",mappings:{"default":{"default":"between"}},key:"226C"},{category:"Sm",mappings:{"default":{"default":"not equivalent to"}},key:"226D"},{category:"Sm",mappings:{"default":{"default":"not less than",alternative:"not less than"}},key:"226E"},{category:"Sm",mappings:{"default":{"default":"not greater than",alternative:"not greater than"}},key:"226F"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equal to",alternative:"neither less than nor equal to"}}, +key:"2270"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equal to",alternative:"neither greater than nor equal to"}},key:"2271"},{category:"Sm",mappings:{"default":{"default":"less than or equivalent to",alternative:"less than or equivalent to"}},key:"2272"},{category:"Sm",mappings:{"default":{"default":"greater than or equivalent to",alternative:"greater than or equivalent to"}},key:"2273"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equivalent to", +alternative:"neither less than nor equivalent to"}},key:"2274"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equivalent to",alternative:"neither greater than nor equivalent to"}},key:"2275"},{category:"Sm",mappings:{"default":{"default":"less than or greater than",alternative:"less than or greater than"}},key:"2276"},{category:"Sm",mappings:{"default":{"default":"greater than or less than",alternative:"greater than or less than"}},key:"2277"},{category:"Sm",mappings:{"default":{"default":"neither less than nor greater than", +alternative:"neither less than nor greater than"}},key:"2278"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor less than",alternative:"neither greater than nor less than"}},key:"2279"},{category:"Sm",mappings:{"default":{"default":"precedes"}},key:"227A"},{category:"Sm",mappings:{"default":{"default":"succeeds"}},key:"227B"},{category:"Sm",mappings:{"default":{"default":"precedes or equal to"}},key:"227C"},{category:"Sm",mappings:{"default":{"default":"succeeds or equal to"}}, +key:"227D"},{category:"Sm",mappings:{"default":{"default":"precedes or equivalent to"}},key:"227E"},{category:"Sm",mappings:{"default":{"default":"succeeds or equivalent to"}},key:"227F"},{category:"Sm",mappings:{"default":{"default":"does not precede"}},key:"2280"},{category:"Sm",mappings:{"default":{"default":"does not succeed"}},key:"2281"},{category:"Sm",mappings:{"default":{"default":"subset of"}},key:"2282"},{category:"Sm",mappings:{"default":{"default":"superset of"}},key:"2283"},{category:"Sm", +mappings:{"default":{"default":"not a subset of"}},key:"2284"},{category:"Sm",mappings:{"default":{"default":"not a superset of"}},key:"2285"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to"}},key:"2286"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to"}},key:"2287"},{category:"Sm",mappings:{"default":{"default":"neither a subset of nor equal to"}},key:"2288"},{category:"Sm",mappings:{"default":{"default":"neither a superset of nor equal to"}},key:"2289"}, +{category:"Sm",mappings:{"default":{"default":"subset of with not equal to",alternative:"subset of or not equal to","short":"subset of or not equal to"}},key:"228A"},{category:"Sm",mappings:{"default":{"default":"superset of with not equal to",alternative:"superset of or not equal to","short":"superset of or not equal to"}},key:"228B"},{category:"Sm",mappings:{"default":{"default":"multiset"}},key:"228C"},{category:"Sm",mappings:{"default":{"default":"multiset multiplication"}},key:"228D"},{category:"Sm", +mappings:{"default":{"default":"multiset union"}},key:"228E"},{category:"Sm",mappings:{"default":{"default":"square image of"}},key:"228F"},{category:"Sm",mappings:{"default":{"default":"square original of"}},key:"2290"},{category:"Sm",mappings:{"default":{"default":"square image of or equal to"}},key:"2291"},{category:"Sm",mappings:{"default":{"default":"square original of or equal to"}},key:"2292"},{category:"Sm",mappings:{"default":{"default":"square cap"}},key:"2293"},{category:"Sm",mappings:{"default":{"default":"square cup"}}, +key:"2294"},{category:"Sm",mappings:{"default":{"default":"circled plus"}},key:"2295"},{category:"Sm",mappings:{"default":{"default":"circled minus"}},key:"2296"},{category:"Sm",mappings:{"default":{"default":"circled times"}},key:"2297"},{category:"Sm",mappings:{"default":{"default":"circled division slash"}},key:"2298"},{category:"Sm",mappings:{"default":{"default":"circled dot operator"}},key:"2299"},{category:"Sm",mappings:{"default":{"default":"circled ring operator"}},key:"229A"},{category:"Sm", +mappings:{"default":{"default":"circled asterisk operator"}},key:"229B"},{category:"Sm",mappings:{"default":{"default":"circled equals"}},key:"229C"},{category:"Sm",mappings:{"default":{"default":"circled dash"}},key:"229D"},{category:"Sm",mappings:{"default":{"default":"squared plus"}},key:"229E"},{category:"Sm",mappings:{"default":{"default":"squared minus"}},key:"229F"},{category:"Sm",mappings:{"default":{"default":"squared times"}},key:"22A0"},{category:"Sm",mappings:{"default":{"default":"squared dot operator"}}, +key:"22A1"},{category:"Sm",mappings:{"default":{"default":"right tack"}},key:"22A2"},{category:"Sm",mappings:{"default":{"default":"left tack"}},key:"22A3"},{category:"Sm",mappings:{"default":{"default":"down tack"}},key:"22A4"},{category:"Sm",mappings:{"default":{"default":"up tack"}},key:"22A5"},{category:"Sm",mappings:{"default":{"default":"assertion"}},key:"22A6"},{category:"Sm",mappings:{"default":{"default":"models"}},key:"22A7"},{category:"Sm",mappings:{"default":{"default":"true"}},key:"22A8"}, +{category:"Sm",mappings:{"default":{"default":"forces"}},key:"22A9"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar right turnstile"}},key:"22AA"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double right turnstile"}},key:"22AB"},{category:"Sm",mappings:{"default":{"default":"does not prove"}},key:"22AC"},{category:"Sm",mappings:{"default":{"default":"not true"}},key:"22AD"},{category:"Sm",mappings:{"default":{"default":"does not force"}},key:"22AE"},{category:"Sm", +mappings:{"default":{"default":"negated double vertical bar double right turnstile"}},key:"22AF"},{category:"Sm",mappings:{"default":{"default":"precedes under relation"}},key:"22B0"},{category:"Sm",mappings:{"default":{"default":"succeeds under relation"}},key:"22B1"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of"}},key:"22B2"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup"}},key:"22B3"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of or equal to"}}, +key:"22B4"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup or equal to"}},key:"22B5"},{category:"Sm",mappings:{"default":{"default":"original of"}},key:"22B6"},{category:"Sm",mappings:{"default":{"default":"image of"}},key:"22B7"},{category:"Sm",mappings:{"default":{"default":"multimap"}},key:"22B8"},{category:"Sm",mappings:{"default":{"default":"hermitian conjugate matrix"}},key:"22B9"},{category:"Sm",mappings:{"default":{"default":"intercalate"}},key:"22BA"},{category:"Sm", +mappings:{"default":{"default":"xor"}},key:"22BB"},{category:"Sm",mappings:{"default":{"default":"nand"}},key:"22BC"},{category:"Sm",mappings:{"default":{"default":"nor"}},key:"22BD"},{category:"Sm",mappings:{"default":{"default":"right triangle"}},key:"22BF"},{category:"Sm",mappings:{"default":{"default":"n ary logical and"}},key:"22C0"},{category:"Sm",mappings:{"default":{"default":"n ary logical or"}},key:"22C1"},{category:"Sm",mappings:{"default":{"default":"n ary intersection"}},key:"22C2"}, +{category:"Sm",mappings:{"default":{"default":"n ary union"}},key:"22C3"},{category:"Sm",mappings:{"default":{"default":"diamond operator"}},key:"22C4"},{category:"Sm",mappings:{"default":{"default":"dot operator"}},key:"22C5"},{category:"Sm",mappings:{"default":{"default":"star operator"}},key:"22C6"},{category:"Sm",mappings:{"default":{"default":"division times"}},key:"22C7"},{category:"Sm",mappings:{"default":{"default":"bowtie"}},key:"22C8"},{category:"Sm",mappings:{"default":{"default":"left normal factor semidirect product"}}, +key:"22C9"},{category:"Sm",mappings:{"default":{"default":"right normal factor semidirect product"}},key:"22CA"},{category:"Sm",mappings:{"default":{"default":"left semidirect product"}},key:"22CB"},{category:"Sm",mappings:{"default":{"default":"right semidirect product"}},key:"22CC"},{category:"Sm",mappings:{"default":{"default":"reversed tilde equals"}},key:"22CD"},{category:"Sm",mappings:{"default":{"default":"curly logical or"}},key:"22CE"},{category:"Sm",mappings:{"default":{"default":"curly logical and"}}, +key:"22CF"},{category:"Sm",mappings:{"default":{"default":"double subset"}},key:"22D0"},{category:"Sm",mappings:{"default":{"default":"double superset"}},key:"22D1"},{category:"Sm",mappings:{"default":{"default":"double intersection"}},key:"22D2"},{category:"Sm",mappings:{"default":{"default":"double union"}},key:"22D3"},{category:"Sm",mappings:{"default":{"default":"pitchfork"}},key:"22D4"},{category:"Sm",mappings:{"default":{"default":"equal and parallel to"}},key:"22D5"},{category:"Sm",mappings:{"default":{"default":"less than with dot", +alternative:"less than with dot","short":"less than dot"}},key:"22D6"},{category:"Sm",mappings:{"default":{"default":"greater than with dot",alternative:"greater than with dot","short":"greater than dot"}},key:"22D7"},{category:"Sm",mappings:{"default":{"default":"very much less than",alternative:"very much less than"}},key:"22D8"},{category:"Sm",mappings:{"default":{"default":"very much greater than",alternative:"very much greater than"}},key:"22D9"},{category:"Sm",mappings:{"default":{"default":"less than equal to or greater than", +alternative:"less than equal to or greater than"}},key:"22DA"},{category:"Sm",mappings:{"default":{"default":"greater than equal to or less than",alternative:"greater than equal to or less than"}},key:"22DB"},{category:"Sm",mappings:{"default":{"default":"equal to or less than",alternative:"equal to or less than"}},key:"22DC"},{category:"Sm",mappings:{"default":{"default":"equal to or greater than",alternative:"equal to or greater than"}},key:"22DD"},{category:"Sm",mappings:{"default":{"default":"equal to or precedes"}}, +key:"22DE"},{category:"Sm",mappings:{"default":{"default":"equal to or succeeds"}},key:"22DF"},{category:"Sm",mappings:{"default":{"default":"does not precede or equal"}},key:"22E0"},{category:"Sm",mappings:{"default":{"default":"does not succeed or equal"}},key:"22E1"},{category:"Sm",mappings:{"default":{"default":"not square image of or equal to"}},key:"22E2"},{category:"Sm",mappings:{"default":{"default":"not square original of or equal to"}},key:"22E3"},{category:"Sm",mappings:{"default":{"default":"square image of or not equal to"}}, +key:"22E4"},{category:"Sm",mappings:{"default":{"default":"square original of or not equal to"}},key:"22E5"},{category:"Sm",mappings:{"default":{"default":"less than but not equivalent to",alternative:"less than but not equivalent to"}},key:"22E6"},{category:"Sm",mappings:{"default":{"default":"greater than but not equivalent to",alternative:"greater than but not equivalent to"}},key:"22E7"},{category:"Sm",mappings:{"default":{"default":"precedes but not equivalent to"}},key:"22E8"},{category:"Sm", +mappings:{"default":{"default":"succeeds but not equivalent to"}},key:"22E9"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of"}},key:"22EA"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup"}},key:"22EB"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of or equal to"}},key:"22EC"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup or equal"}},key:"22ED"},{category:"Sm",mappings:{"default":{"default":"vertical ellipsis", +"short":"dot dot dot"}},key:"22EE"},{category:"Sm",mappings:{"default":{"default":"midline horizontal ellipsis","short":"dot dot dot"}},key:"22EF"},{category:"Sm",mappings:{"default":{"default":"up right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F0"},{category:"Sm",mappings:{"default":{"default":"down right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F1"},{category:"Sm",mappings:{"default":{"default":"element of with long horizontal stroke"}},key:"22F2"},{category:"Sm", +mappings:{"default":{"default":"element of with vertical bar at end of horizontal stroke"}},key:"22F3"},{category:"Sm",mappings:{"default":{"default":"small element of with vertical bar at end of horizontal stroke"}},key:"22F4"},{category:"Sm",mappings:{"default":{"default":"element of with dot above"}},key:"22F5"},{category:"Sm",mappings:{"default":{"default":"element of with overbar"}},key:"22F6"},{category:"Sm",mappings:{"default":{"default":"small element of with overbar"}},key:"22F7"},{category:"Sm", +mappings:{"default":{"default":"element of with underbar"}},key:"22F8"},{category:"Sm",mappings:{"default":{"default":"element of with two horizontal strokes"}},key:"22F9"},{category:"Sm",mappings:{"default":{"default":"contains with long horizontal stroke"}},key:"22FA"},{category:"Sm",mappings:{"default":{"default":"contains with vertical bar at end of horizontal stroke"}},key:"22FB"},{category:"Sm",mappings:{"default":{"default":"small contains with vertical bar at end of horizontal stroke"}},key:"22FC"}, +{category:"Sm",mappings:{"default":{"default":"contains with overbar"}},key:"22FD"},{category:"Sm",mappings:{"default":{"default":"small contains with overbar"}},key:"22FE"},{category:"Sm",mappings:{"default":{"default":"z notation bag membership"}},key:"22FF"},{category:"So",mappings:{"default":{"default":"diameter sign","short":"diameter"}},key:"2300"},{category:"So",mappings:{"default":{"default":"house"}},key:"2302"},{category:"So",mappings:{"default":{"default":"projective"}},key:"2305"},{category:"So", +mappings:{"default":{"default":"perspective"}},key:"2306"},{category:"So",mappings:{"default":{"default":"wavy line"}},key:"2307"},{category:"So",mappings:{"default":{"default":"reversed not sign","short":"reversed not"}},key:"2310"},{category:"So",mappings:{"default":{"default":"square lozenge"}},key:"2311"},{category:"So",mappings:{"default":{"default":"arc"}},key:"2312"},{category:"So",mappings:{"default":{"default":"segment"}},key:"2313"},{category:"So",mappings:{"default":{"default":"sector"}}, +key:"2314"},{category:"So",mappings:{"default":{"default":"heavy plus sign",alternative:"heavy plus","short":"bold plus"}},key:"2795"},{category:"So",mappings:{"default":{"default":"heavy minus sign",alternative:"heavy minus","short":"bold minus"}},key:"2796"},{category:"So",mappings:{"default":{"default":"heavy division sign",alternative:"heavy division","short":"bold division"}},key:"2797"},{category:"So",mappings:{"default":{"default":"curly loop"}},key:"27B0"},{category:"So",mappings:{"default":{"default":"double curly loop"}}, +key:"27BF"},{category:"Sm",mappings:{"default":{"default":"white triangle containing small white triangle"}},key:"27C1"},{category:"Sm",mappings:{"default":{"default":"perpendicular"}},key:"27C2"},{category:"Sm",mappings:{"default":{"default":"open subset"}},key:"27C3"},{category:"Sm",mappings:{"default":{"default":"open superset"}},key:"27C4"},{category:"Sm",mappings:{"default":{"default":"or with dot inside"}},key:"27C7"},{category:"Sm",mappings:{"default":{"default":"reverse solidus preceding subset"}}, +key:"27C8"},{category:"Sm",mappings:{"default":{"default":"superset preceding solidus"}},key:"27C9"},{category:"Sm",mappings:{"default":{"default":"vertical bar with horizontal stroke"}},key:"27CA"},{category:"Sm",mappings:{"default":{"default":"mathematical rising diagonal"}},key:"27CB"},{category:"Sm",mappings:{"default":{"default":"long division"}},key:"27CC"},{category:"Sm",mappings:{"default":{"default":"mathematical falling diagonal"}},key:"27CD"},{category:"Sm",mappings:{"default":{"default":"squared logical and"}}, +key:"27CE"},{category:"Sm",mappings:{"default":{"default":"squared logical or"}},key:"27CF"},{category:"Sm",mappings:{"default":{"default":"white diamond with centered dot"}},key:"27D0"},{category:"Sm",mappings:{"default":{"default":"and with dot"}},key:"27D1"},{category:"Sm",mappings:{"default":{"default":"element of opening upwards"}},key:"27D2"},{category:"Sm",mappings:{"default":{"default":"lower right corner with dot"}},key:"27D3"},{category:"Sm",mappings:{"default":{"default":"upper left corner with dot"}}, +key:"27D4"},{category:"Sm",mappings:{"default":{"default":"left outer join"}},key:"27D5"},{category:"Sm",mappings:{"default":{"default":"right outer join"}},key:"27D6"},{category:"Sm",mappings:{"default":{"default":"full outer join"}},key:"27D7"},{category:"Sm",mappings:{"default":{"default":"large up tack"}},key:"27D8"},{category:"Sm",mappings:{"default":{"default":"large down tack"}},key:"27D9"},{category:"Sm",mappings:{"default":{"default":"left and right double turnstile"}},key:"27DA"},{category:"Sm", +mappings:{"default":{"default":"left and right tack"}},key:"27DB"},{category:"Sm",mappings:{"default":{"default":"left multimap"}},key:"27DC"},{category:"Sm",mappings:{"default":{"default":"long right tack"}},key:"27DD"},{category:"Sm",mappings:{"default":{"default":"long left tack"}},key:"27DE"},{category:"Sm",mappings:{"default":{"default":"up tack with circle above"}},key:"27DF"},{category:"Sm",mappings:{"default":{"default":"lozenge divided by horizontal rule"}},key:"27E0"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond"}}, +key:"27E1"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with leftwards tick"}},key:"27E2"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with rightwards tick"}},key:"27E3"},{category:"Sm",mappings:{"default":{"default":"white square with leftwards tick"}},key:"27E4"},{category:"Sm",mappings:{"default":{"default":"white square with rightwards tick"}},key:"27E5"},{category:"Sm",mappings:{"default":{"default":"rising diagonal crossing falling diagonal"}}, +key:"292B"},{category:"Sm",mappings:{"default":{"default":"falling diagonal crossing rising diagonal"}},key:"292C"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar delimiter"}},key:"2980"},{category:"Sm",mappings:{"default":{"default":"z notation spot"}},key:"2981"},{category:"Sm",mappings:{"default":{"default":"z notation type colon"}},key:"2982"},{category:"Sm",mappings:{"default":{"default":"dotted fence"}},key:"2999"},{category:"Sm",mappings:{"default":{"default":"vertical zigzag line"}}, +key:"299A"},{category:"Sm",mappings:{"default":{"default":"reversed empty set"}},key:"29B0"},{category:"Sm",mappings:{"default":{"default":"empty set with overbar"}},key:"29B1"},{category:"Sm",mappings:{"default":{"default":"empty set with small circle above"}},key:"29B2"},{category:"Sm",mappings:{"default":{"default":"circle with horizontal bar"}},key:"29B5"},{category:"Sm",mappings:{"default":{"default":"circled vertical bar"}},key:"29B6"},{category:"Sm",mappings:{"default":{"default":"circled parallel"}}, +key:"29B7"},{category:"Sm",mappings:{"default":{"default":"circled reverse solidus"}},key:"29B8"},{category:"Sm",mappings:{"default":{"default":"circled perpendicular"}},key:"29B9"},{category:"Sm",mappings:{"default":{"default":"circle divided by horizontal bar and top half divided by vertical bar"}},key:"29BA"},{category:"Sm",mappings:{"default":{"default":"circle with superimposed x"}},key:"29BB"},{category:"Sm",mappings:{"default":{"default":"circled anticlockwise rotated division sign","short":"circled anticlockwise rotated division"}}, +key:"29BC"},{category:"Sm",mappings:{"default":{"default":"circled white bullet"}},key:"29BE"},{category:"Sm",mappings:{"default":{"default":"circled bullet"}},key:"29BF"},{category:"Sm",mappings:{"default":{"default":"circled less than"}},key:"29C0"},{category:"Sm",mappings:{"default":{"default":"circled greater than"}},key:"29C1"},{category:"Sm",mappings:{"default":{"default":"circle with small circle to the right"}},key:"29C2"},{category:"Sm",mappings:{"default":{"default":"circle with two horizontal strokes to the right"}}, +key:"29C3"},{category:"Sm",mappings:{"default":{"default":"squared rising diagonal slash"}},key:"29C4"},{category:"Sm",mappings:{"default":{"default":"squared falling diagonal slash"}},key:"29C5"},{category:"Sm",mappings:{"default":{"default":"squared asterisk"}},key:"29C6"},{category:"Sm",mappings:{"default":{"default":"squared small circle"}},key:"29C7"},{category:"Sm",mappings:{"default":{"default":"squared square"}},key:"29C8"},{category:"Sm",mappings:{"default":{"default":"two joined squares"}}, +key:"29C9"},{category:"Sm",mappings:{"default":{"default":"triangle with dot above"}},key:"29CA"},{category:"Sm",mappings:{"default":{"default":"triangle with underbar"}},key:"29CB"},{category:"Sm",mappings:{"default":{"default":"s in triangle"}},key:"29CC"},{category:"Sm",mappings:{"default":{"default":"triangle with serifs at bottom"}},key:"29CD"},{category:"Sm",mappings:{"default":{"default":"right triangle above left triangle"}},key:"29CE"},{category:"Sm",mappings:{"default":{"default":"left triangle beside vertical bar"}}, +key:"29CF"},{category:"Sm",mappings:{"default":{"default":"vertical bar beside right triangle"}},key:"29D0"},{category:"Sm",mappings:{"default":{"default":"bowtie with left half black"}},key:"29D1"},{category:"Sm",mappings:{"default":{"default":"bowtie with right half black"}},key:"29D2"},{category:"Sm",mappings:{"default":{"default":"black bowtie"}},key:"29D3"},{category:"Sm",mappings:{"default":{"default":"times with left half black"}},key:"29D4"},{category:"Sm",mappings:{"default":{"default":"times with right half black"}}, +key:"29D5"},{category:"Sm",mappings:{"default":{"default":"white hourglass"}},key:"29D6"},{category:"Sm",mappings:{"default":{"default":"black hourglass"}},key:"29D7"},{category:"Sm",mappings:{"default":{"default":"incomplete infinity"}},key:"29DC"},{category:"Sm",mappings:{"default":{"default":"tie over infinity"}},key:"29DD"},{category:"Sm",mappings:{"default":{"default":"infinity negated with vertical bar"}},key:"29DE"},{category:"Sm",mappings:{"default":{"default":"double ended multimap"}},key:"29DF"}, +{category:"Sm",mappings:{"default":{"default":"square with contoured outline"}},key:"29E0"},{category:"Sm",mappings:{"default":{"default":"increases as"}},key:"29E1"},{category:"Sm",mappings:{"default":{"default":"shuffle product"}},key:"29E2"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel"}},key:"29E3"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel with tilde above"}},key:"29E4"},{category:"Sm",mappings:{"default":{"default":"identical to and slanted parallel"}}, +key:"29E5"},{category:"Sm",mappings:{"default":{"default":"gleich stark"}},key:"29E6"},{category:"Sm",mappings:{"default":{"default":"thermodynamic"}},key:"29E7"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with left half black"}},key:"29E8"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with right half black"}},key:"29E9"},{category:"Sm",mappings:{"default":{"default":"black lozenge"}},key:"29EB"},{category:"Sm",mappings:{"default":{"default":"error barred white square"}}, +key:"29EE"},{category:"Sm",mappings:{"default":{"default":"error barred black square"}},key:"29EF"},{category:"Sm",mappings:{"default":{"default":"error barred white diamond"}},key:"29F0"},{category:"Sm",mappings:{"default":{"default":"error barred black diamond"}},key:"29F1"},{category:"Sm",mappings:{"default":{"default":"error barred white circle"}},key:"29F2"},{category:"Sm",mappings:{"default":{"default":"error barred black circle"}},key:"29F3"},{category:"Sm",mappings:{"default":{"default":"rule delayed"}}, +key:"29F4"},{category:"Sm",mappings:{"default":{"default":"reverse solidus operator"}},key:"29F5"},{category:"Sm",mappings:{"default":{"default":"solidus with overbar"}},key:"29F6"},{category:"Sm",mappings:{"default":{"default":"reverse solidus with horizontal stroke"}},key:"29F7"},{category:"Sm",mappings:{"default":{"default":"big solidus"}},key:"29F8"},{category:"Sm",mappings:{"default":{"default":"big reverse solidus"}},key:"29F9"},{category:"Sm",mappings:{"default":{"default":"double plus"}}, +key:"29FA"},{category:"Sm",mappings:{"default":{"default":"triple plus"}},key:"29FB"},{category:"Sm",mappings:{"default":{"default":"tiny"}},key:"29FE"},{category:"Sm",mappings:{"default":{"default":"miny"}},key:"29FF"},{category:"Sm",mappings:{"default":{"default":"n ary circled dot operator"}},key:"2A00"},{category:"Sm",mappings:{"default":{"default":"n ary circled plus operator"}},key:"2A01"},{category:"Sm",mappings:{"default":{"default":"n ary circled times operator"}},key:"2A02"},{category:"Sm", +mappings:{"default":{"default":"n ary union operator with dot"}},key:"2A03"},{category:"Sm",mappings:{"default":{"default":"n ary union operator with plus"}},key:"2A04"},{category:"Sm",mappings:{"default":{"default":"n ary square intersection operator"}},key:"2A05"},{category:"Sm",mappings:{"default":{"default":"n ary square union operator"}},key:"2A06"},{category:"Sm",mappings:{"default":{"default":"two logical and operator"}},key:"2A07"},{category:"Sm",mappings:{"default":{"default":"two logical or operator"}}, +key:"2A08"},{category:"Sm",mappings:{"default":{"default":"n ary times operator"}},key:"2A09"},{category:"Sm",mappings:{"default":{"default":"modulo two sum"}},key:"2A0A"},{category:"Sm",mappings:{"default":{"default":"summation with integral"}},key:"2A0B"},{category:"Sm",mappings:{"default":{"default":"quadruple integral operator"}},key:"2A0C"},{category:"Sm",mappings:{"default":{"default":"finite part integral"}},key:"2A0D"},{category:"Sm",mappings:{"default":{"default":"integral with double stroke"}}, +key:"2A0E"},{category:"Sm",mappings:{"default":{"default":"integral average with slash"}},key:"2A0F"},{category:"Sm",mappings:{"default":{"default":"circulation function"}},key:"2A10"},{category:"Sm",mappings:{"default":{"default":"anticlockwise integration"}},key:"2A11"},{category:"Sm",mappings:{"default":{"default":"line integration with rectangular path around pole"}},key:"2A12"},{category:"Sm",mappings:{"default":{"default":"line integration with semicircular path around pole"}},key:"2A13"},{category:"Sm", +mappings:{"default":{"default":"line integration not including the pole"}},key:"2A14"},{category:"Sm",mappings:{"default":{"default":"integral around a point operator"}},key:"2A15"},{category:"Sm",mappings:{"default":{"default":"quaternion integral operator"}},key:"2A16"},{category:"Sm",mappings:{"default":{"default":"integral with times sign","short":"integral with times"}},key:"2A18"},{category:"Sm",mappings:{"default":{"default":"integral with intersection"}},key:"2A19"},{category:"Sm",mappings:{"default":{"default":"integral with union"}}, +key:"2A1A"},{category:"Sm",mappings:{"default":{"default":"integral with overbar"}},key:"2A1B"},{category:"Sm",mappings:{"default":{"default":"integral with underbar"}},key:"2A1C"},{category:"Sm",mappings:{"default":{"default":"join"}},key:"2A1D"},{category:"Sm",mappings:{"default":{"default":"large left triangle operator"}},key:"2A1E"},{category:"Sm",mappings:{"default":{"default":"z notation schema composition"}},key:"2A1F"},{category:"Sm",mappings:{"default":{"default":"z notation schema piping"}}, +key:"2A20"},{category:"Sm",mappings:{"default":{"default":"z notation schema projection"}},key:"2A21"},{category:"Sm",mappings:{"default":{"default":"plus sign with small circle above","short":"plus with circle above"}},key:"2A22"},{category:"Sm",mappings:{"default":{"default":"plus sign with circumflex accent above","short":"plus hat"}},key:"2A23"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde above","short":"plus tilde"}},key:"2A24"},{category:"Sm",mappings:{"default":{"default":"plus sign with dot below", +"short":"plus underdot"}},key:"2A25"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde below"}},key:"2A26"},{category:"Sm",mappings:{"default":{"default":"plus sign with subscript two"}},key:"2A27"},{category:"Sm",mappings:{"default":{"default":"plus sign with black triangle"}},key:"2A28"},{category:"Sm",mappings:{"default":{"default":"minus sign with comma above"}},key:"2A29"},{category:"Sm",mappings:{"default":{"default":"minus sign with dot below"}},key:"2A2A"},{category:"Sm", +mappings:{"default":{"default":"minus sign with falling dots"}},key:"2A2B"},{category:"Sm",mappings:{"default":{"default":"minus sign with rising dots"}},key:"2A2C"},{category:"Sm",mappings:{"default":{"default":"plus sign in left half circle"}},key:"2A2D"},{category:"Sm",mappings:{"default":{"default":"plus sign in right half circle"}},key:"2A2E"},{category:"Sm",mappings:{"default":{"default":"vector or cross product"}},key:"2A2F"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with dot above"}}, +key:"2A30"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with underbar"}},key:"2A31"},{category:"Sm",mappings:{"default":{"default":"semidirect product with bottom closed"}},key:"2A32"},{category:"Sm",mappings:{"default":{"default":"smash product"}},key:"2A33"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in left half circle"}},key:"2A34"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in right half circle"}},key:"2A35"},{category:"Sm", +mappings:{"default":{"default":"circled multiplication sign with circumflex accent"}},key:"2A36"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in double circle"}},key:"2A37"},{category:"Sm",mappings:{"default":{"default":"circled division sign","short":"circled division"}},key:"2A38"},{category:"Sm",mappings:{"default":{"default":"plus sign in triangle"}},key:"2A39"},{category:"Sm",mappings:{"default":{"default":"minus sign in triangle"}},key:"2A3A"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in triangle"}}, +key:"2A3B"},{category:"Sm",mappings:{"default":{"default":"interior product"}},key:"2A3C"},{category:"Sm",mappings:{"default":{"default":"righthand interior product"}},key:"2A3D"},{category:"Sm",mappings:{"default":{"default":"z notation relational composition"}},key:"2A3E"},{category:"Sm",mappings:{"default":{"default":"amalgamation or coproduct"}},key:"2A3F"},{category:"Sm",mappings:{"default":{"default":"intersection with dot"}},key:"2A40"},{category:"Sm",mappings:{"default":{"default":"union with minus sign", +"short":"union with minus"}},key:"2A41"},{category:"Sm",mappings:{"default":{"default":"union with overbar"}},key:"2A42"},{category:"Sm",mappings:{"default":{"default":"intersection with overbar"}},key:"2A43"},{category:"Sm",mappings:{"default":{"default":"intersection with logical and"}},key:"2A44"},{category:"Sm",mappings:{"default":{"default":"union with logical or"}},key:"2A45"},{category:"Sm",mappings:{"default":{"default":"union above intersection"}},key:"2A46"},{category:"Sm",mappings:{"default":{"default":"intersection above union"}}, +key:"2A47"},{category:"Sm",mappings:{"default":{"default":"union above bar above intersection"}},key:"2A48"},{category:"Sm",mappings:{"default":{"default":"intersection above bar above union"}},key:"2A49"},{category:"Sm",mappings:{"default":{"default":"union beside and joined with union"}},key:"2A4A"},{category:"Sm",mappings:{"default":{"default":"intersection beside and joined with intersection"}},key:"2A4B"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs"}},key:"2A4C"}, +{category:"Sm",mappings:{"default":{"default":"closed intersection with serifs"}},key:"2A4D"},{category:"Sm",mappings:{"default":{"default":"double square intersection"}},key:"2A4E"},{category:"Sm",mappings:{"default":{"default":"double square union"}},key:"2A4F"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs and smash product"}},key:"2A50"},{category:"Sm",mappings:{"default":{"default":"logical and with dot above"}},key:"2A51"},{category:"Sm",mappings:{"default":{"default":"logical or with dot above"}}, +key:"2A52"},{category:"Sm",mappings:{"default":{"default":"double logical and"}},key:"2A53"},{category:"Sm",mappings:{"default":{"default":"double logical or"}},key:"2A54"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical and"}},key:"2A55"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical or"}},key:"2A56"},{category:"Sm",mappings:{"default":{"default":"sloping large or"}},key:"2A57"},{category:"Sm",mappings:{"default":{"default":"sloping large and"}}, +key:"2A58"},{category:"Sm",mappings:{"default":{"default":"logical or overlapping logical and"}},key:"2A59"},{category:"Sm",mappings:{"default":{"default":"logical and with middle stem"}},key:"2A5A"},{category:"Sm",mappings:{"default":{"default":"logical or with middle stem"}},key:"2A5B"},{category:"Sm",mappings:{"default":{"default":"logical and with horizontal dash"}},key:"2A5C"},{category:"Sm",mappings:{"default":{"default":"logical or with horizontal dash"}},key:"2A5D"},{category:"Sm",mappings:{"default":{"default":"logical and with double overbar"}}, +key:"2A5E"},{category:"Sm",mappings:{"default":{"default":"logical and with underbar"}},key:"2A5F"},{category:"Sm",mappings:{"default":{"default":"logical and with double underbar"}},key:"2A60"},{category:"Sm",mappings:{"default":{"default":"small vee with underbar"}},key:"2A61"},{category:"Sm",mappings:{"default":{"default":"logical or with double overbar"}},key:"2A62"},{category:"Sm",mappings:{"default":{"default":"logical or with double underbar"}},key:"2A63"},{category:"Sm",mappings:{"default":{"default":"z notation domain antirestriction"}}, +key:"2A64"},{category:"Sm",mappings:{"default":{"default":"z notation range antirestriction"}},key:"2A65"},{category:"Sm",mappings:{"default":{"default":"equals sign with dot below"}},key:"2A66"},{category:"Sm",mappings:{"default":{"default":"identical with dot above"}},key:"2A67"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with double vertical stroke"}},key:"2A68"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with triple vertical stroke"}},key:"2A69"}, +{category:"Sm",mappings:{"default":{"default":"tilde operator with dot above"}},key:"2A6A"},{category:"Sm",mappings:{"default":{"default":"tilde operator with rising dots"}},key:"2A6B"},{category:"Sm",mappings:{"default":{"default":"similar minus similar"}},key:"2A6C"},{category:"Sm",mappings:{"default":{"default":"congruent with dot above"}},key:"2A6D"},{category:"Sm",mappings:{"default":{"default":"equals with asterisk"}},key:"2A6E"},{category:"Sm",mappings:{"default":{"default":"almost equal to with circumflex accent", +"short":"almost equal hat"}},key:"2A6F"},{category:"Sm",mappings:{"default":{"default":"approximately equal or equal to"}},key:"2A70"},{category:"Sm",mappings:{"default":{"default":"equals sign above plus sign","short":"equals above plus"}},key:"2A71"},{category:"Sm",mappings:{"default":{"default":"plus sign above equals sign","short":"plus above equals"}},key:"2A72"},{category:"Sm",mappings:{"default":{"default":"equals sign above tilde operator","short":"equals above tilde operator"}},key:"2A73"}, +{category:"Sm",mappings:{"default":{"default":"double colon equal"}},key:"2A74"},{category:"Sm",mappings:{"default":{"default":"two consecutive equals signs","short":"two consecutive equals"}},key:"2A75"},{category:"Sm",mappings:{"default":{"default":"three consecutive equals signs","short":"three consecutive equals"}},key:"2A76"},{category:"Sm",mappings:{"default":{"default":"equals sign with two dots above and two dots below"}},key:"2A77"},{category:"Sm",mappings:{"default":{"default":"equivalent with four dots above"}}, +key:"2A78"},{category:"Sm",mappings:{"default":{"default":"less than with circle inside"}},key:"2A79"},{category:"Sm",mappings:{"default":{"default":"greater than with circle inside"}},key:"2A7A"},{category:"Sm",mappings:{"default":{"default":"less than with question mark above"}},key:"2A7B"},{category:"Sm",mappings:{"default":{"default":"greater than with question mark above"}},key:"2A7C"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to"}},key:"2A7D"},{category:"Sm", +mappings:{"default":{"default":"greater than or slanted equal to"}},key:"2A7E"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot inside"}},key:"2A7F"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot inside"}},key:"2A80"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above"}},key:"2A81"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above"}}, +key:"2A82"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above right"}},key:"2A83"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above left"}},key:"2A84"},{category:"Sm",mappings:{"default":{"default":"less than or approximate"}},key:"2A85"},{category:"Sm",mappings:{"default":{"default":"greater than or approximate"}},key:"2A86"},{category:"Sm",mappings:{"default":{"default":"less than and single line not equal to"}}, +key:"2A87"},{category:"Sm",mappings:{"default":{"default":"greater than and single line not equal to"}},key:"2A88"},{category:"Sm",mappings:{"default":{"default":"less than and not approximate"}},key:"2A89"},{category:"Sm",mappings:{"default":{"default":"greater than and not approximate"}},key:"2A8A"},{category:"Sm",mappings:{"default":{"default":"less than above double line equal above greater than"}},key:"2A8B"},{category:"Sm",mappings:{"default":{"default":"greater than above double line equal above less than"}}, +key:"2A8C"},{category:"Sm",mappings:{"default":{"default":"less than above similar or equal"}},key:"2A8D"},{category:"Sm",mappings:{"default":{"default":"greater than above similar or equal"}},key:"2A8E"},{category:"Sm",mappings:{"default":{"default":"less than above similar above greater than"}},key:"2A8F"},{category:"Sm",mappings:{"default":{"default":"greater than above similar above less than"}},key:"2A90"},{category:"Sm",mappings:{"default":{"default":"less than above greater than above double line equal"}}, +key:"2A91"},{category:"Sm",mappings:{"default":{"default":"greater than above less than above double line equal"}},key:"2A92"},{category:"Sm",mappings:{"default":{"default":"less than above slanted equal above greater than above slanted equal"}},key:"2A93"},{category:"Sm",mappings:{"default":{"default":"greater than above slanted equal above less than above slanted equal"}},key:"2A94"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than"}},key:"2A95"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than"}}, +key:"2A96"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than with dot inside"}},key:"2A97"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than with dot inside"}},key:"2A98"},{category:"Sm",mappings:{"default":{"default":"double line equal to or less than"}},key:"2A99"},{category:"Sm",mappings:{"default":{"default":"double line equal to or greater than"}},key:"2A9A"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or less than"}}, +key:"2A9B"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or greater than"}},key:"2A9C"},{category:"Sm",mappings:{"default":{"default":"similar or less than"}},key:"2A9D"},{category:"Sm",mappings:{"default":{"default":"similar or greater than"}},key:"2A9E"},{category:"Sm",mappings:{"default":{"default":"similar above less than above equals sign"}},key:"2A9F"},{category:"Sm",mappings:{"default":{"default":"similar above greater than above equals sign"}},key:"2AA0"},{category:"Sm", +mappings:{"default":{"default":"double nested less than"}},key:"2AA1"},{category:"Sm",mappings:{"default":{"default":"double nested greater than"}},key:"2AA2"},{category:"Sm",mappings:{"default":{"default":"double nested less than with underbar"}},key:"2AA3"},{category:"Sm",mappings:{"default":{"default":"greater than overlapping less than"}},key:"2AA4"},{category:"Sm",mappings:{"default":{"default":"greater than beside less than"}},key:"2AA5"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve"}}, +key:"2AA6"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve"}},key:"2AA7"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve above slanted equal"}},key:"2AA8"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve above slanted equal"}},key:"2AA9"},{category:"Sm",mappings:{"default":{"default":"smaller than"}},key:"2AAA"},{category:"Sm",mappings:{"default":{"default":"larger than"}},key:"2AAB"},{category:"Sm",mappings:{"default":{"default":"smaller than or equal to"}}, +key:"2AAC"},{category:"Sm",mappings:{"default":{"default":"larger than or equal to"}},key:"2AAD"},{category:"Sm",mappings:{"default":{"default":"equals sign with bumpy above"}},key:"2AAE"},{category:"Sm",mappings:{"default":{"default":"precedes above single line equals sign"}},key:"2AAF"},{category:"Sm",mappings:{"default":{"default":"succeeds above single line equals sign"}},key:"2AB0"},{category:"Sm",mappings:{"default":{"default":"precedes above single line not equal to"}},key:"2AB1"},{category:"Sm", +mappings:{"default":{"default":"succeeds above single line not equal to"}},key:"2AB2"},{category:"Sm",mappings:{"default":{"default":"precedes above equals sign"}},key:"2AB3"},{category:"Sm",mappings:{"default":{"default":"succeeds above equals sign"}},key:"2AB4"},{category:"Sm",mappings:{"default":{"default":"precedes above not equal to"}},key:"2AB5"},{category:"Sm",mappings:{"default":{"default":"succeeds above not equal to"}},key:"2AB6"},{category:"Sm",mappings:{"default":{"default":"precedes above almost equal to"}}, +key:"2AB7"},{category:"Sm",mappings:{"default":{"default":"succeeds above almost equal to"}},key:"2AB8"},{category:"Sm",mappings:{"default":{"default":"precedes above not almost equal to"}},key:"2AB9"},{category:"Sm",mappings:{"default":{"default":"succeeds above not almost equal to"}},key:"2ABA"},{category:"Sm",mappings:{"default":{"default":"double precedes"}},key:"2ABB"},{category:"Sm",mappings:{"default":{"default":"double succeeds"}},key:"2ABC"},{category:"Sm",mappings:{"default":{"default":"subset with dot"}}, +key:"2ABD"},{category:"Sm",mappings:{"default":{"default":"superset with dot"}},key:"2ABE"},{category:"Sm",mappings:{"default":{"default":"subset with plus sign below"}},key:"2ABF"},{category:"Sm",mappings:{"default":{"default":"superset with plus sign below"}},key:"2AC0"},{category:"Sm",mappings:{"default":{"default":"subset with multiplication sign below"}},key:"2AC1"},{category:"Sm",mappings:{"default":{"default":"superset with multiplication sign below"}},key:"2AC2"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to with dot above"}}, +key:"2AC3"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to with dot above"}},key:"2AC4"},{category:"Sm",mappings:{"default":{"default":"subset of above equals sign"}},key:"2AC5"},{category:"Sm",mappings:{"default":{"default":"superset of above equals sign"}},key:"2AC6"},{category:"Sm",mappings:{"default":{"default":"subset of above tilde operator"}},key:"2AC7"},{category:"Sm",mappings:{"default":{"default":"superset of above tilde operator"}},key:"2AC8"},{category:"Sm",mappings:{"default":{"default":"subset of above almost equal to"}}, +key:"2AC9"},{category:"Sm",mappings:{"default":{"default":"superset of above almost equal to"}},key:"2ACA"},{category:"Sm",mappings:{"default":{"default":"subset of above not equal to"}},key:"2ACB"},{category:"Sm",mappings:{"default":{"default":"superset of above not equal to"}},key:"2ACC"},{category:"Sm",mappings:{"default":{"default":"square left open box operator"}},key:"2ACD"},{category:"Sm",mappings:{"default":{"default":"square right open box operator"}},key:"2ACE"},{category:"Sm",mappings:{"default":{"default":"closed subset"}}, +key:"2ACF"},{category:"Sm",mappings:{"default":{"default":"closed superset"}},key:"2AD0"},{category:"Sm",mappings:{"default":{"default":"closed subset or equal to"}},key:"2AD1"},{category:"Sm",mappings:{"default":{"default":"closed superset or equal to"}},key:"2AD2"},{category:"Sm",mappings:{"default":{"default":"subset above superset"}},key:"2AD3"},{category:"Sm",mappings:{"default":{"default":"superset above subset"}},key:"2AD4"},{category:"Sm",mappings:{"default":{"default":"subset above subset"}}, +key:"2AD5"},{category:"Sm",mappings:{"default":{"default":"superset above superset"}},key:"2AD6"},{category:"Sm",mappings:{"default":{"default":"superset beside subset"}},key:"2AD7"},{category:"Sm",mappings:{"default":{"default":"superset beside and joined by dash with subset"}},key:"2AD8"},{category:"Sm",mappings:{"default":{"default":"element of opening downwards"}},key:"2AD9"},{category:"Sm",mappings:{"default":{"default":"pitchfork with tee top"}},key:"2ADA"},{category:"Sm",mappings:{"default":{"default":"transversal intersection"}}, +key:"2ADB"},{category:"Sm",mappings:{"default":{"default":"forking"}},key:"2ADC"},{category:"Sm",mappings:{"default":{"default":"nonforking"}},key:"2ADD"},{category:"Sm",mappings:{"default":{"default":"short left tack"}},key:"2ADE"},{category:"Sm",mappings:{"default":{"default":"short down tack"}},key:"2ADF"},{category:"Sm",mappings:{"default":{"default":"short up tack"}},key:"2AE0"},{category:"Sm",mappings:{"default":{"default":"perpendicular with s"}},key:"2AE1"},{category:"Sm",mappings:{"default":{"default":"vertical bar triple right turnstile"}}, +key:"2AE2"},{category:"Sm",mappings:{"default":{"default":"double vertical bar left turnstile"}},key:"2AE3"},{category:"Sm",mappings:{"default":{"default":"vertical bar double left turnstile"}},key:"2AE4"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double left turnstile"}},key:"2AE5"},{category:"Sm",mappings:{"default":{"default":"long dash from left member of double vertical"}},key:"2AE6"},{category:"Sm",mappings:{"default":{"default":"short down tack with overbar"}},key:"2AE7"}, +{category:"Sm",mappings:{"default":{"default":"short up tack with underbar"}},key:"2AE8"},{category:"Sm",mappings:{"default":{"default":"short up tack above short down tack"}},key:"2AE9"},{category:"Sm",mappings:{"default":{"default":"double down tack"}},key:"2AEA"},{category:"Sm",mappings:{"default":{"default":"double up tack"}},key:"2AEB"},{category:"Sm",mappings:{"default":{"default":"double stroke not sign"}},key:"2AEC"},{category:"Sm",mappings:{"default":{"default":"reversed double stroke not sign"}}, +key:"2AED"},{category:"Sm",mappings:{"default":{"default":"does not divide with reversed negation slash"}},key:"2AEE"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle above"}},key:"2AEF"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle below"}},key:"2AF0"},{category:"Sm",mappings:{"default":{"default":"down tack with circle below"}},key:"2AF1"},{category:"Sm",mappings:{"default":{"default":"parallel with horizontal stroke"}},key:"2AF2"},{category:"Sm", +mappings:{"default":{"default":"parallel with tilde operator"}},key:"2AF3"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar binary relation"}},key:"2AF4"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar with horizontal stroke"}},key:"2AF5"},{category:"Sm",mappings:{"default":{"default":"triple colon operator"}},key:"2AF6"},{category:"Sm",mappings:{"default":{"default":"triple nested less than"}},key:"2AF7"},{category:"Sm",mappings:{"default":{"default":"triple nested greater than"}}, +key:"2AF8"},{category:"Sm",mappings:{"default":{"default":"double line slanted less than or equal to"}},key:"2AF9"},{category:"Sm",mappings:{"default":{"default":"double line slanted greater than or equal to"}},key:"2AFA"},{category:"Sm",mappings:{"default":{"default":"triple solidus binary relation"}},key:"2AFB"},{category:"Sm",mappings:{"default":{"default":"large triple vertical bar operator"}},key:"2AFC"},{category:"Sm",mappings:{"default":{"default":"double solidus operator"}},key:"2AFD"},{category:"Sm", +mappings:{"default":{"default":"white vertical bar"}},key:"2AFE"},{category:"Sm",mappings:{"default":{"default":"n ary white vertical bar"}},key:"2AFF"},{category:"Pd",mappings:{"default":{"default":"wave dash"}},key:"301C"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical comma"}},key:"FE10"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical colon"}},key:"FE13"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical semicolon"}}, +key:"FE14"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical exclamation mark"}},key:"FE15"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical question mark"}},key:"FE16"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical horizontal ellipsis"}},key:"FE19"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical two dot leader",alternative:"glyph for vertical two dot leader"}},key:"FE30"},{category:"Pd", +mappings:{"default":{"default":"presentation form for vertical em dash",alternative:"glyph for vertical em dash"}},key:"FE31"},{category:"Pd",mappings:{"default":{"default":"presentation form for vertical en dash",alternative:"glyph for vertical en dash"}},key:"FE32"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical low line",alternative:"glyph for vertical spacing underscore"}},key:"FE33"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical wavy low line", +alternative:"glyph for vertical spacing wavy underscore"}},key:"FE34"},{category:"Po",mappings:{"default":{"default":"sesame dot"}},key:"FE45"},{category:"Po",mappings:{"default":{"default":"white sesame dot"}},key:"FE46"},{category:"Po",mappings:{"default":{"default":"dashed overline",alternative:"spacing dashed overscore"}},key:"FE49"},{category:"Po",mappings:{"default":{"default":"centerline overline",alternative:"spacing centerline overscore"}},key:"FE4A"},{category:"Po",mappings:{"default":{"default":"wavy overline", +alternative:"spacing wavy overscore"}},key:"FE4B"},{category:"Po",mappings:{"default":{"default":"double wavy overline",alternative:"spacing double wavy overscore"}},key:"FE4C"},{category:"Pc",mappings:{"default":{"default":"dashed low line",alternative:"spacing dashed underscore"}},key:"FE4D"},{category:"Pc",mappings:{"default":{"default":"centerline low line",alternative:"spacing centerline underscore"}},key:"FE4E"},{category:"Pc",mappings:{"default":{"default":"wavy low line",alternative:"spacing wavy underscore"}}, +key:"FE4F"},{category:"Po",mappings:{"default":{"default":"small comma"}},key:"FE50"},{category:"Po",mappings:{"default":{"default":"small full stop",alternative:"small period"}},key:"FE52"},{category:"Po",mappings:{"default":{"default":"small semicolon"}},key:"FE54"},{category:"Po",mappings:{"default":{"default":"small colon"}},key:"FE55"},{category:"Po",mappings:{"default":{"default":"small question mark"}},key:"FE56"},{category:"Po",mappings:{"default":{"default":"small exclamation mark"}},key:"FE57"}, +{category:"Pd",mappings:{"default":{"default":"small em dash"}},key:"FE58"},{category:"Po",mappings:{"default":{"default":"small number sign"}},key:"FE5F"},{category:"Po",mappings:{"default":{"default":"small ampersand"}},key:"FE60"},{category:"Po",mappings:{"default":{"default":"small asterisk"}},key:"FE61"},{category:"Sm",mappings:{"default":{"default":"small plus sign"}},key:"FE62"},{category:"Pd",mappings:{"default":{"default":"small hyphen minus"}},key:"FE63"},{category:"Sm",mappings:{"default":{"default":"small less than sign"}}, +key:"FE64"},{category:"Sm",mappings:{"default":{"default":"small greater than sign"}},key:"FE65"},{category:"Sm",mappings:{"default":{"default":"small equals sign"}},key:"FE66"},{category:"Po",mappings:{"default":{"default":"small reverse solidus",alternative:"small backslash"}},key:"FE68"},{category:"Sc",mappings:{"default":{"default":"small dollar sign"}},key:"FE69"},{category:"Po",mappings:{"default":{"default":"small percent sign"}},key:"FE6A"},{category:"Po",mappings:{"default":{"default":"small commercial at"}}, +key:"FE6B"},{category:"Po",mappings:{"default":{"default":"fullwidth exclamation mark"}},key:"FF01"},{category:"Po",mappings:{"default":{"default":"fullwidth quotation mark"}},key:"FF02"},{category:"Po",mappings:{"default":{"default":"fullwidth number sign"}},key:"FF03"},{category:"Sc",mappings:{"default":{"default":"fullwidth dollar sign"}},key:"FF04"},{category:"Po",mappings:{"default":{"default":"fullwidth percent sign"}},key:"FF05"},{category:"Po",mappings:{"default":{"default":"fullwidth ampersand"}}, +key:"FF06"},{category:"Po",mappings:{"default":{"default":"fullwidth apostrophe"}},key:"FF07"},{category:"Po",mappings:{"default":{"default":"fullwidth asterisk"}},key:"FF0A"},{category:"Sm",mappings:{"default":{"default":"fullwidth plus sign"}},key:"FF0B"},{category:"Po",mappings:{"default":{"default":"fullwidth comma"}},key:"FF0C"},{category:"Pd",mappings:{"default":{"default":"fullwidth hyphen minus"}},key:"FF0D"},{category:"Po",mappings:{"default":{"default":"fullwidth full stop",alternative:"fullwidth period"}}, +key:"FF0E"},{category:"Po",mappings:{"default":{"default":"fullwidth solidus",alternative:"fullwidth slash"}},key:"FF0F"},{category:"Po",mappings:{"default":{"default":"fullwidth colon"}},key:"FF1A"},{category:"Po",mappings:{"default":{"default":"fullwidth semicolon"}},key:"FF1B"},{category:"Sm",mappings:{"default":{"default":"fullwidth less than sign"}},key:"FF1C"},{category:"Sm",mappings:{"default":{"default":"fullwidth equals sign"}},key:"FF1D"},{category:"Sm",mappings:{"default":{"default":"fullwidth greater than sign"}}, +key:"FF1E"},{category:"Po",mappings:{"default":{"default":"fullwidth question mark"}},key:"FF1F"},{category:"Po",mappings:{"default":{"default":"fullwidth commercial at"}},key:"FF20"},{category:"Po",mappings:{"default":{"default":"fullwidth reverse solidus",alternative:"fullwidth backslash"}},key:"FF3C"},{category:"Sk",mappings:{"default":{"default":"fullwidth circumflex accent",alternative:"fullwidth spacing circumflex"}},key:"FF3E"},{category:"Pc",mappings:{"default":{"default":"fullwidth low line", +alternative:"fullwidth spacing underscore"}},key:"FF3F"},{category:"Sk",mappings:{"default":{"default":"fullwidth grave accent",alternative:"fullwidth spacing grave"}},key:"FF40"},{category:"Sm",mappings:{"default":{"default":"fullwidth vertical line",alternative:"fullwidth vertical bar"}},key:"FF5C"},{category:"Sm",mappings:{"default":{"default":"fullwidth tilde",alternative:"fullwidth spacing tilde"}},key:"FF5E"},{category:"Sc",mappings:{"default":{"default":"fullwidth cent sign"}},key:"FFE0"}, +{category:"Sc",mappings:{"default":{"default":"fullwidth pound sign"}},key:"FFE1"},{category:"Sm",mappings:{"default":{"default":"fullwidth not sign"}},key:"FFE2"},{category:"Sk",mappings:{"default":{"default":"fullwidth macron",alternative:"fullwidth spacing macron"}},key:"FFE3"},{category:"So",mappings:{"default":{"default":"fullwidth broken bar",alternative:"fullwidth broken vertical bar"}},key:"FFE4"},{category:"Sc",mappings:{"default":{"default":"fullwidth yen sign"}},key:"FFE5"},{category:"Sc", +mappings:{"default":{"default":"fullwidth won sign"}},key:"FFE6"},{category:"So",mappings:{"default":{"default":"halfwidth forms light vertical"}},key:"FFE8"},{category:"So",mappings:{"default":{"default":"halfwidth black square"}},key:"FFED"},{category:"So",mappings:{"default":{"default":"halfwidth white circle"}},key:"FFEE"},{category:"Ll",names:[],key:"03B1",mappings:{"default":{"default":"greek small letter alpha","short":"alpha"}}},{category:"Ll",names:[],key:"03B2",mappings:{"default":{"default":"greek small letter beta", +"short":"beta"}}},{category:"Ll",names:[],key:"03B3",mappings:{"default":{"default":"greek small letter gamma","short":"gamma"}}},{category:"Ll",names:[],key:"03B4",mappings:{"default":{"default":"greek small letter delta","short":"delta"}}},{category:"Ll",names:[],key:"03B5",mappings:{"default":{"default":"greek small letter epsilon","short":"epsilon"}}},{category:"Ll",names:[],key:"03B6",mappings:{"default":{"default":"greek small letter zeta","short":"zeta"}}},{category:"Ll",names:[],key:"03B7", +mappings:{"default":{"default":"greek small letter eta","short":"eta"}}},{category:"Ll",names:[],key:"03B8",mappings:{"default":{"default":"greek small letter theta","short":"theta"}}},{category:"Ll",names:[],key:"03B9",mappings:{"default":{"default":"greek small letter iota","short":"iota"}}},{category:"Ll",names:[],key:"03BA",mappings:{"default":{"default":"greek small letter kappa","short":"kappa"}}},{category:"Ll",names:[],key:"03BB",mappings:{"default":{"default":"greek small letter lamda",alternative:"greek small letter lambda", +"short":"lamda"}}},{category:"Ll",names:[],key:"03BC",mappings:{"default":{"default":"greek small letter mu","short":"mu"}}},{category:"Ll",names:[],key:"03BD",mappings:{"default":{"default":"greek small letter nu","short":"nu"}}},{category:"Ll",names:[],key:"03BE",mappings:{"default":{"default":"greek small letter xi","short":"xi"}}},{category:"Ll",names:[],key:"03BF",mappings:{"default":{"default":"greek small letter omicron","short":"omicron"}}},{category:"Ll",names:[],key:"03C0",mappings:{"default":{"default":"greek small letter pi", +"short":"pi"}}},{category:"Ll",names:[],key:"03C1",mappings:{"default":{"default":"greek small letter rho","short":"rho"}}},{category:"Ll",names:[],key:"03C2",mappings:{"default":{"default":"greek small letter final sigma","short":"final sigma"}}},{category:"Ll",names:[],key:"03C3",mappings:{"default":{"default":"greek small letter sigma","short":"sigma"}}},{category:"Ll",names:[],key:"03C4",mappings:{"default":{"default":"greek small letter tau","short":"tau"}}},{category:"Ll",names:[],key:"03C5", +mappings:{"default":{"default":"greek small letter upsilon","short":"upsilon"}}},{category:"Ll",names:[],key:"03C6",mappings:{"default":{"default":"greek small letter phi","short":"phi"}}},{category:"Ll",names:[],key:"03C7",mappings:{"default":{"default":"greek small letter chi","short":"chi"}}},{category:"Ll",names:[],key:"03C8",mappings:{"default":{"default":"greek small letter psi","short":"psi"}}},{category:"Ll",names:[],key:"03C9",mappings:{"default":{"default":"greek small letter omega","short":"omega"}}}, +{category:"Ll",mappings:{"default":{"default":"greek beta symbol",alternative:"greek small letter curled beta","short":"beta"}},key:"03D0"},{category:"Ll",mappings:{"default":{"default":"greek theta symbol",alternative:"greek small letter script theta","short":"theta"}},key:"03D1"},{category:"Ll",mappings:{"default":{"default":"greek phi symbol",alternative:"greek small letter script phi","short":"phi"}},key:"03D5"},{category:"Ll",mappings:{"default":{"default":"greek pi symbol",alternative:"greek small letter omega pi", +"short":"pi"}},key:"03D6"},{category:"Ll",mappings:{"default":{"default":"greek kai symbol","short":"kai"}},key:"03D7"},{category:"Ll",mappings:{"default":{"default":"greek kappa symbol",alternative:"greek small letter script kappa","short":"kappa"}},key:"03F0"},{category:"Ll",mappings:{"default":{"default":"greek rho symbol",alternative:"greek small letter tailed rho","short":"rho"}},key:"03F1"},{category:"Ll",mappings:{"default":{"default":"greek lunate epsilon symbol","short":"epsilon"}},key:"03F5"}, +{category:"Sm",mappings:{"default":{"default":"greek reversed lunate epsilon symbol","short":"reversed epsilon"}},key:"03F6"},{category:"Lu",names:[],key:"0391",mappings:{"default":{"default":"greek capital letter alpha","short":"cap alpha"}}},{category:"Lu",names:[],key:"0392",mappings:{"default":{"default":"greek capital letter beta","short":"cap beta"}}},{category:"Lu",names:[],key:"0393",mappings:{"default":{"default":"greek capital letter gamma","short":"cap gamma"}}},{category:"Lu",names:[], +key:"0394",mappings:{"default":{"default":"greek capital letter delta","short":"cap delta"}}},{category:"Lu",names:[],key:"0395",mappings:{"default":{"default":"greek capital letter epsilon","short":"cap epsilon"}}},{category:"Lu",names:[],key:"0396",mappings:{"default":{"default":"greek capital letter zeta","short":"cap zeta"}}},{category:"Lu",names:[],key:"0397",mappings:{"default":{"default":"greek capital letter eta","short":"cap eta"}}},{category:"Lu",names:[],key:"0398",mappings:{"default":{"default":"greek capital letter theta", +"short":"cap theta"}}},{category:"Lu",names:[],key:"0399",mappings:{"default":{"default":"greek capital letter iota","short":"cap iota"}}},{category:"Lu",names:[],key:"039A",mappings:{"default":{"default":"greek capital letter kappa","short":"cap kappa"}}},{category:"Lu",names:[],key:"039B",mappings:{"default":{"default":"greek capital letter lamda",alternative:"greek capital letter lambda","short":"cap lamda"}}},{category:"Lu",names:[],key:"039C",mappings:{"default":{"default":"greek capital letter mu", +"short":"cap mu"}}},{category:"Lu",names:[],key:"039D",mappings:{"default":{"default":"greek capital letter nu","short":"cap nu"}}},{category:"Lu",names:[],key:"039E",mappings:{"default":{"default":"greek capital letter xi","short":"cap xi"}}},{category:"Lu",names:[],key:"039F",mappings:{"default":{"default":"greek capital letter omicron","short":"cap omicron"}}},{category:"Lu",names:[],key:"03A0",mappings:{"default":{"default":"greek capital letter pi","short":"cap pi"}}},{category:"Lu",names:[], +key:"03A1",mappings:{"default":{"default":"greek capital letter rho","short":"cap rho"}}},{category:"Lu",names:[],key:"03A3",mappings:{"default":{"default":"greek capital letter sigma","short":"cap sigma"}}},{category:"Lu",names:[],key:"03A4",mappings:{"default":{"default":"greek capital letter tau","short":"cap tau"}}},{category:"Lu",names:[],key:"03A5",mappings:{"default":{"default":"greek capital letter upsilon","short":"cap upsilon"}}},{category:"Lu",names:[],key:"03A6",mappings:{"default":{"default":"greek capital letter phi", +"short":"cap phi"}}},{category:"Lu",names:[],key:"03A7",mappings:{"default":{"default":"greek capital letter chi","short":"cap chi"}}},{category:"Lu",names:[],key:"03A8",mappings:{"default":{"default":"greek capital letter psi","short":"cap psi"}}},{category:"Lu",names:[],key:"03A9",mappings:{"default":{"default":"greek capital letter omega","short":"cap omega"}}},{category:"Lu",mappings:{"default":{"default":"greek capital theta symbol","short":"cap theta"}},key:"03F4"},{category:"Ps",mappings:{"default":{"default":"left parenthesis", +alternative:"opening parenthesis"}},key:"0028"},{category:"Pe",mappings:{"default":{"default":"right parenthesis",alternative:"closing parenthesis"}},key:"0029"},{category:"Ps",mappings:{"default":{"default":"left square bracket",alternative:"opening square bracket"}},key:"005B"},{category:"Pe",mappings:{"default":{"default":"right square bracket",alternative:"closing square bracket"}},key:"005D"},{category:"Ps",mappings:{"default":{"default":"left curly bracket",alternative:"opening curly bracket"}}, +key:"007B"},{category:"Pe",mappings:{"default":{"default":"right curly bracket",alternative:"closing curly bracket"}},key:"007D"},{category:"Ps",mappings:{"default":{"default":"left square bracket with quill"}},key:"2045"},{category:"Pe",mappings:{"default":{"default":"right square bracket with quill"}},key:"2046"},{category:"Sm",mappings:{"default":{"default":"left ceiling"}},key:"2308"},{category:"Sm",mappings:{"default":{"default":"right ceiling"}},key:"2309"},{category:"Sm",mappings:{"default":{"default":"left floor"}}, +key:"230A"},{category:"Sm",mappings:{"default":{"default":"right floor"}},key:"230B"},{category:"So",mappings:{"default":{"default":"bottom right crop"}},key:"230C"},{category:"So",mappings:{"default":{"default":"bottom left crop"}},key:"230D"},{category:"So",mappings:{"default":{"default":"top right crop"}},key:"230E"},{category:"So",mappings:{"default":{"default":"top left crop"}},key:"230F"},{category:"So",mappings:{"default":{"default":"top left corner"}},key:"231C"},{category:"So",mappings:{"default":{"default":"top right corner"}}, +key:"231D"},{category:"So",mappings:{"default":{"default":"bottom left corner"}},key:"231E"},{category:"So",mappings:{"default":{"default":"bottom right corner"}},key:"231F"},{category:"Sm",mappings:{"default":{"default":"top half integral"}},key:"2320"},{category:"Sm",mappings:{"default":{"default":"bottom half integral"}},key:"2321"},{category:"Ps",mappings:{"default":{"default":"left pointing angle bracket",alternative:"bra"}},key:"2329"},{category:"Pe",mappings:{"default":{"default":"right pointing angle bracket", +alternative:"ket"}},key:"232A"},{category:"Sm",mappings:{"default":{"default":"left parenthesis upper hook"}},key:"239B"},{category:"Sm",mappings:{"default":{"default":"left parenthesis extension"}},key:"239C"},{category:"Sm",mappings:{"default":{"default":"left parenthesis lower hook"}},key:"239D"},{category:"Sm",mappings:{"default":{"default":"right parenthesis upper hook"}},key:"239E"},{category:"Sm",mappings:{"default":{"default":"right parenthesis extension"}},key:"239F"},{category:"Sm",mappings:{"default":{"default":"right parenthesis lower hook"}}, +key:"23A0"},{category:"Sm",mappings:{"default":{"default":"left square bracket upper corner"}},key:"23A1"},{category:"Sm",mappings:{"default":{"default":"left square bracket extension"}},key:"23A2"},{category:"Sm",mappings:{"default":{"default":"left square bracket lower corner"}},key:"23A3"},{category:"Sm",mappings:{"default":{"default":"right square bracket upper corner"}},key:"23A4"},{category:"Sm",mappings:{"default":{"default":"right square bracket extension"}},key:"23A5"},{category:"Sm",mappings:{"default":{"default":"right square bracket lower corner"}}, +key:"23A6"},{category:"Sm",mappings:{"default":{"default":"left curly bracket upper hook"}},key:"23A7"},{category:"Sm",mappings:{"default":{"default":"left curly bracket middle piece"}},key:"23A8"},{category:"Sm",mappings:{"default":{"default":"left curly bracket lower hook"}},key:"23A9"},{category:"Sm",mappings:{"default":{"default":"curly bracket extension"}},key:"23AA"},{category:"Sm",mappings:{"default":{"default":"right curly bracket upper hook"}},key:"23AB"},{category:"Sm",mappings:{"default":{"default":"right curly bracket middle piece"}}, +key:"23AC"},{category:"Sm",mappings:{"default":{"default":"right curly bracket lower hook"}},key:"23AD"},{category:"Sm",mappings:{"default":{"default":"integral extension"}},key:"23AE"},{category:"Sm",mappings:{"default":{"default":"horizontal line extension"}},key:"23AF"},{category:"Sm",mappings:{"default":{"default":"upper left or lower right curly bracket section"}},key:"23B0"},{category:"Sm",mappings:{"default":{"default":"upper right or lower left curly bracket section"}},key:"23B1"},{category:"Sm", +mappings:{"default":{"default":"summation top"}},key:"23B2"},{category:"Sm",mappings:{"default":{"default":"summation bottom"}},key:"23B3"},{category:"So",mappings:{"default":{"default":"top square bracket"}},key:"23B4"},{category:"So",mappings:{"default":{"default":"bottom square bracket"}},key:"23B5"},{category:"So",mappings:{"default":{"default":"bottom square bracket over top square bracket"}},key:"23B6"},{category:"So",mappings:{"default":{"default":"radical symbol bottom"}},key:"23B7"},{category:"So", +mappings:{"default":{"default":"left vertical box line"}},key:"23B8"},{category:"So",mappings:{"default":{"default":"right vertical box line"}},key:"23B9"},{category:"Sm",mappings:{"default":{"default":"top parenthesis"}},key:"23DC"},{category:"Sm",mappings:{"default":{"default":"bottom parenthesis"}},key:"23DD"},{category:"Sm",mappings:{"default":{"default":"top curly bracket"}},key:"23DE"},{category:"Sm",mappings:{"default":{"default":"bottom curly bracket"}},key:"23DF"},{category:"Sm",mappings:{"default":{"default":"top tortoise shell bracket"}}, +key:"23E0"},{category:"Sm",mappings:{"default":{"default":"bottom tortoise shell bracket"}},key:"23E1"},{category:"Ps",mappings:{"default":{"default":"medium left parenthesis ornament"}},key:"2768"},{category:"Pe",mappings:{"default":{"default":"medium right parenthesis ornament"}},key:"2769"},{category:"Ps",mappings:{"default":{"default":"medium flattened left parenthesis ornament"}},key:"276A"},{category:"Pe",mappings:{"default":{"default":"medium flattened right parenthesis ornament"}},key:"276B"}, +{category:"Ps",mappings:{"default":{"default":"medium left pointing angle bracket ornament"}},key:"276C"},{category:"Pe",mappings:{"default":{"default":"medium right pointing angle bracket ornament"}},key:"276D"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle quotation mark ornament"}},key:"276E"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle quotation mark ornament"}},key:"276F"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle bracket ornament"}}, +key:"2770"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle bracket ornament"}},key:"2771"},{category:"Ps",mappings:{"default":{"default":"light left tortoise shell bracket ornament"}},key:"2772"},{category:"Pe",mappings:{"default":{"default":"light right tortoise shell bracket ornament"}},key:"2773"},{category:"Ps",mappings:{"default":{"default":"medium left curly bracket ornament"}},key:"2774"},{category:"Pe",mappings:{"default":{"default":"medium right curly bracket ornament"}}, +key:"2775"},{category:"Ps",mappings:{"default":{"default":"left s shaped bag delimiter"}},key:"27C5"},{category:"Pe",mappings:{"default":{"default":"right s shaped bag delimiter"}},key:"27C6"},{category:"Ps",mappings:{"default":{"default":"mathematical left white square bracket"}},key:"27E6"},{category:"Pe",mappings:{"default":{"default":"mathematical right white square bracket"}},key:"27E7"},{category:"Ps",mappings:{"default":{"default":"mathematical left angle bracket"}},key:"27E8"},{category:"Pe", +mappings:{"default":{"default":"mathematical right angle bracket"}},key:"27E9"},{category:"Ps",mappings:{"default":{"default":"mathematical left double angle bracket"}},key:"27EA"},{category:"Pe",mappings:{"default":{"default":"mathematical right double angle bracket"}},key:"27EB"},{category:"Ps",mappings:{"default":{"default":"mathematical left white tortoise shell bracket"}},key:"27EC"},{category:"Pe",mappings:{"default":{"default":"mathematical right white tortoise shell bracket"}},key:"27ED"}, +{category:"Ps",mappings:{"default":{"default":"mathematical left flattened parenthesis"}},key:"27EE"},{category:"Pe",mappings:{"default":{"default":"mathematical right flattened parenthesis"}},key:"27EF"},{category:"Ps",mappings:{"default":{"default":"left white curly bracket"}},key:"2983"},{category:"Pe",mappings:{"default":{"default":"right white curly bracket"}},key:"2984"},{category:"Ps",mappings:{"default":{"default":"left white parenthesis"}},key:"2985"},{category:"Pe",mappings:{"default":{"default":"right white parenthesis"}}, +key:"2986"},{category:"Ps",mappings:{"default":{"default":"z notation left image bracket"}},key:"2987"},{category:"Pe",mappings:{"default":{"default":"z notation right image bracket"}},key:"2988"},{category:"Ps",mappings:{"default":{"default":"z notation left binding bracket"}},key:"2989"},{category:"Pe",mappings:{"default":{"default":"z notation right binding bracket"}},key:"298A"},{category:"Ps",mappings:{"default":{"default":"left square bracket with underbar"}},key:"298B"},{category:"Pe",mappings:{"default":{"default":"right square bracket with underbar"}}, +key:"298C"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in top corner"}},key:"298D"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in bottom corner"}},key:"298E"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in bottom corner"}},key:"298F"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in top corner"}},key:"2990"},{category:"Ps",mappings:{"default":{"default":"left angle bracket with dot"}}, +key:"2991"},{category:"Pe",mappings:{"default":{"default":"right angle bracket with dot"}},key:"2992"},{category:"Ps",mappings:{"default":{"default":"left arc less than bracket"}},key:"2993"},{category:"Pe",mappings:{"default":{"default":"right arc greater than bracket"}},key:"2994"},{category:"Ps",mappings:{"default":{"default":"double left arc greater than bracket"}},key:"2995"},{category:"Pe",mappings:{"default":{"default":"double right arc less than bracket"}},key:"2996"},{category:"Ps",mappings:{"default":{"default":"left black tortoise shell bracket"}}, +key:"2997"},{category:"Pe",mappings:{"default":{"default":"right black tortoise shell bracket"}},key:"2998"},{category:"Ps",mappings:{"default":{"default":"left wiggly fence"}},key:"29D8"},{category:"Pe",mappings:{"default":{"default":"right wiggly fence"}},key:"29D9"},{category:"Ps",mappings:{"default":{"default":"left double wiggly fence"}},key:"29DA"},{category:"Pe",mappings:{"default":{"default":"right double wiggly fence"}},key:"29DB"},{category:"Ps",mappings:{"default":{"default":"left pointing curved angle bracket"}}, +key:"29FC"},{category:"Pe",mappings:{"default":{"default":"right pointing curved angle bracket"}},key:"29FD"},{category:"Ps",mappings:{"default":{"default":"top left half bracket"}},key:"2E22"},{category:"Pe",mappings:{"default":{"default":"top right half bracket"}},key:"2E23"},{category:"Ps",mappings:{"default":{"default":"bottom left half bracket"}},key:"2E24"},{category:"Pe",mappings:{"default":{"default":"bottom right half bracket"}},key:"2E25"},{category:"Ps",mappings:{"default":{"default":"left sideways u bracket"}}, +key:"2E26"},{category:"Pe",mappings:{"default":{"default":"right sideways u bracket"}},key:"2E27"},{category:"Ps",mappings:{"default":{"default":"left double parenthesis"}},key:"2E28"},{category:"Pe",mappings:{"default":{"default":"right double parenthesis"}},key:"2E29"},{category:"Ps",mappings:{"default":{"default":"left angle bracket",alternative:"opening angle bracket"}},key:"3008"},{category:"Pe",mappings:{"default":{"default":"right angle bracket",alternative:"closing angle bracket"}},key:"3009"}, +{category:"Ps",mappings:{"default":{"default":"left double angle bracket",alternative:"opening double angle bracket"}},key:"300A"},{category:"Pe",mappings:{"default":{"default":"right double angle bracket",alternative:"closing double angle bracket"}},key:"300B"},{category:"Ps",mappings:{"default":{"default":"left corner bracket",alternative:"opening corner bracket"}},key:"300C"},{category:"Pe",mappings:{"default":{"default":"right corner bracket",alternative:"closing corner bracket"}},key:"300D"}, +{category:"Ps",mappings:{"default":{"default":"left white corner bracket",alternative:"opening white corner bracket"}},key:"300E"},{category:"Pe",mappings:{"default":{"default":"right white corner bracket",alternative:"closing white corner bracket"}},key:"300F"},{category:"Ps",mappings:{"default":{"default":"left black lenticular bracket",alternative:"opening black lenticular bracket"}},key:"3010"},{category:"Pe",mappings:{"default":{"default":"right black lenticular bracket",alternative:"closing black lenticular bracket"}}, +key:"3011"},{category:"Ps",mappings:{"default":{"default":"left tortoise shell bracket",alternative:"opening tortoise shell bracket"}},key:"3014"},{category:"Pe",mappings:{"default":{"default":"right tortoise shell bracket",alternative:"closing tortoise shell bracket"}},key:"3015"},{category:"Ps",mappings:{"default":{"default":"left white lenticular bracket",alternative:"opening white lenticular bracket"}},key:"3016"},{category:"Pe",mappings:{"default":{"default":"right white lenticular bracket", +alternative:"closing white lenticular bracket"}},key:"3017"},{category:"Ps",mappings:{"default":{"default":"left white tortoise shell bracket",alternative:"opening white tortoise shell bracket"}},key:"3018"},{category:"Pe",mappings:{"default":{"default":"right white tortoise shell bracket",alternative:"closing white tortoise shell bracket"}},key:"3019"},{category:"Ps",mappings:{"default":{"default":"left white square bracket",alternative:"opening white square bracket"}},key:"301A"},{category:"Pe", +mappings:{"default":{"default":"right white square bracket",alternative:"closing white square bracket"}},key:"301B"},{category:"Ps",mappings:{"default":{"default":"reversed double prime quotation mark"}},key:"301D"},{category:"Pe",mappings:{"default":{"default":"double prime quotation mark"}},key:"301E"},{category:"Pe",mappings:{"default":{"default":"low double prime quotation mark"}},key:"301F"},{category:"Ps",mappings:{"default":{"default":"ornate left parenthesis"}},key:"FD3E"},{category:"Pe", +mappings:{"default":{"default":"ornate right parenthesis"}},key:"FD3F"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white lenticular bracket"}},key:"FE17"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white lenticular bracket"}},key:"FE18"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left parenthesis",alternative:"glyph for vertical opening parenthesis"}},key:"FE35"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right parenthesis", +alternative:"glyph for vertical closing parenthesis"}},key:"FE36"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left curly bracket",alternative:"glyph for vertical opening curly bracket"}},key:"FE37"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right curly bracket",alternative:"glyph for vertical closing curly bracket"}},key:"FE38"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left tortoise shell bracket", +alternative:"glyph for vertical opening tortoise shell bracket"}},key:"FE39"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right tortoise shell bracket",alternative:"glyph for vertical closing tortoise shell bracket"}},key:"FE3A"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left black lenticular bracket",alternative:"glyph for vertical opening black lenticular bracket"}},key:"FE3B"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right black lenticular bracket", +alternative:"glyph for vertical closing black lenticular bracket"}},key:"FE3C"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left double angle bracket",alternative:"glyph for vertical opening double angle bracket"}},key:"FE3D"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right double angle bracket",alternative:"glyph for vertical closing double angle bracket"}},key:"FE3E"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left angle bracket", +alternative:"glyph for vertical opening angle bracket"}},key:"FE3F"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right angle bracket",alternative:"glyph for vertical closing angle bracket"}},key:"FE40"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left corner bracket",alternative:"glyph for vertical opening corner bracket"}},key:"FE41"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right corner bracket", +alternative:"glyph for vertical closing corner bracket"}},key:"FE42"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white corner bracket",alternative:"glyph for vertical opening white corner bracket"}},key:"FE43"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white corner bracket",alternative:"glyph for vertical closing white corner bracket"}},key:"FE44"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left square bracket"}}, +key:"FE47"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right square bracket"}},key:"FE48"},{category:"Ps",mappings:{"default":{"default":"small left parenthesis",alternative:"small opening parenthesis"}},key:"FE59"},{category:"Pe",mappings:{"default":{"default":"small right parenthesis",alternative:"small closing parenthesis"}},key:"FE5A"},{category:"Ps",mappings:{"default":{"default":"small left curly bracket",alternative:"small opening curly bracket"}},key:"FE5B"}, +{category:"Pe",mappings:{"default":{"default":"small right curly bracket",alternative:"small closing curly bracket"}},key:"FE5C"},{category:"Ps",mappings:{"default":{"default":"small left tortoise shell bracket",alternative:"small opening tortoise shell bracket"}},key:"FE5D"},{category:"Pe",mappings:{"default":{"default":"small right tortoise shell bracket",alternative:"small closing tortoise shell bracket"}},key:"FE5E"},{category:"Ps",mappings:{"default":{"default":"fullwidth left parenthesis",alternative:"fullwidth opening parenthesis"}}, +key:"FF08"},{category:"Pe",mappings:{"default":{"default":"fullwidth right parenthesis",alternative:"fullwidth closing parenthesis"}},key:"FF09"},{category:"Ps",mappings:{"default":{"default":"fullwidth left square bracket",alternative:"fullwidth opening square bracket"}},key:"FF3B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right square bracket",alternative:"fullwidth closing square bracket"}},key:"FF3D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left curly bracket", +alternative:"fullwidth opening curly bracket"}},key:"FF5B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right curly bracket",alternative:"fullwidth closing curly bracket"}},key:"FF5D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left white parenthesis"}},key:"FF5F"},{category:"Pe",mappings:{"default":{"default":"fullwidth right white parenthesis"}},key:"FF60"},{category:"Ps",mappings:{"default":{"default":"halfwidth left corner bracket",alternative:"halfwidth opening corner bracket"}}, +key:"FF62"},{category:"Pe",mappings:{"default":{"default":"halfwidth right corner bracket",alternative:"halfwidth closing corner bracket"}},key:"FF63"}]; +cvox.AndroidMathMap.FUNCTION_MAPPINGS_=[{category:"Elementary",mappings:{"default":{"default":"logarithm",alternative:"logarithm function","short":"log"}},key:"log",names:["log"]},{category:"Elementary",mappings:{"default":{"default":"natural logarithm",alternative:"natural logarithm function","short":"natural log"}},key:"ln",names:["ln"]},{category:"Elementary",mappings:{"default":{"default":"logarithm base 10","short":"log base 10"}},key:"lg",names:["lg"]},{category:"Elementary",mappings:{"default":{"default":"exponential", +alternative:"exponential function","short":"exp"}},key:"exp",names:["exp","expt"]},{category:"Elementary",mappings:{"default":{"default":"greatest common divisor","short":"gcd"}},key:"gcd",names:["gcd"]},{category:"Elementary",mappings:{"default":{"default":"least common multiple","short":"lcm"}},key:"gcd",names:["gcd"]},{category:"Complex",mappings:{"default":{"default":"argument","short":"arg"}},key:"arg",names:["arg"]},{category:"Complex",mappings:{"default":{"default":"imaginary part","short":"imaginary"}}, +key:"im",names:["im"]},{category:"Complex",mappings:{"default":{"default":"real part","short":"real"}},key:"re",names:["re"]},{category:"Limits",mappings:{"default":{"default":"infimum","short":"inf"}},key:"inf",names:["inf"]},{category:"Limits",mappings:{"default":{"default":"limit","short":"lim"}},key:"lim",names:["lim"]},{category:"Limits",mappings:{"default":{"default":"infimum default",alternative:"inferior limit","short":"liminf"}},key:"liminf",names:["lim inf"]},{category:"Limits",mappings:{"default":{"default":"supremum limit", +alternative:"superior limit","short":"limsup"}},key:"limsup",names:["lim sup"]},{category:"Limits",mappings:{"default":{"default":"maximum","short":"max"}},key:"max",names:["max"]},{category:"Limits",mappings:{"default":{"default":"minimum","short":"min"}},key:"min",names:["min"]},{category:"Limits",mappings:{"default":{"default":"supremum","short":"sup"}},key:"sup",names:["sup"]},{category:"Limits",mappings:{"default":{"default":"injective limit",alternative:"direct limit","short":"colimit"}},key:"injlim", +names:["injlim","inj lim"]},{category:"Limits",mappings:{"default":{"default":"projective limit",alternative:"inverse limit","short":"limit"}},key:"projlim",names:["projlim","proj lim"]},{category:"Elementary",mappings:{"default":{"default":"modulo","short":"mod"}},key:"mod",names:["mod"]},{category:"Probability",mappings:{"default":{"default":"probability"}},key:"Pr",names:["Pr"]},{category:"Trigonometric",mappings:{"default":{"default":"cosine function","short":"cosine"}},key:"cos",names:["cos", +"cosine"]},{category:"Trigonometric",mappings:{"default":{"default":"cotangent function","short":"cotangent"}},key:"cot",names:["cot"]},{category:"Trigonometric",mappings:{"default":{"default":"cosecant function","short":"cosecant"}},key:"csc",names:["csc"]},{category:"Trigonometric",mappings:{"default":{"default":"secant function","short":"secant"}},key:"sec",names:["sec"]},{category:"Trigonometric",mappings:{"default":{"default":"sine function",alternative:"sine function","short":"sine"}},key:"sin", +names:["sin","sine"]},{category:"Trigonometric",mappings:{"default":{"default":"tangent function","short":"tangent"}},key:"tan",names:["tan"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cosine function",alternative:"arc cosine function","short":"arc cosine"}},key:"arccos",names:["arccos"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cotangent function",alternative:"arc cotangent function","short":"arc cotangent"}},key:"arccot",names:["arccot"]},{category:"Cyclometric", +mappings:{"default":{"default":"inverse cosecant function",alternative:"arc cosecant function","short":"arc cosecant"}},key:"arccsc",names:["arccsc"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse secant function",alternative:"arc secant function","short":"arc secant"}},key:"arcsec",names:["arcsec"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse sine function",alternative:"arc sine function","short":"arc sine"}},key:"arcsin",names:["arcsin"]},{category:"Cyclometric", +mappings:{"default":{"default":"inverse tangent function",alternative:"arc tangent function","short":"arc tangent"}},key:"arctan",names:["arctan"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosine function","short":"hyperbolic cosine"}},key:"cosh",names:["cosh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cotangent function","short":"hyperbolic cotangent"}},key:"coth",names:["coth"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosecant function", +"short":"hyperbolic cosecant"}},key:"csch",names:["csch"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic secant function","short":"hyperbolic secant"}},key:"sech",names:["sech"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic sine function","short":"hyperbolic sine"}},key:"sinh",names:["sinh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic tangent function","short":"hyperbolic tangent"}},key:"tanh",names:["tanh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosine function", +alternative:"area hyperbolic cosine function","short":"area hyperbolic cosine"}},key:"arcosh",names:["arcosh","arccosh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cotangent function",alternative:"area hyperbolic cotangent function","short":"area hyperbolic cotangent"}},key:"arcoth",names:["arcoth","arccoth"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosecant function",alternative:"area hyperbolic cosecant function","short":"area hyperbolic cosecant"}}, +key:"arcsch",names:["arcsch","arccsch"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic secant function",alternative:"area hyperbolic secant function","short":"area hyperbolic secant"}},key:"arsech",names:["arsech","arcsech"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic sine function",alternative:"area hyperbolic sine function","short":"area hyperbolic sine"}},key:"arsinh",names:["arsinh","arcsinh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic tangent function", +alternative:"area hyperbolic tangent function","short":"area hyperbolic tangent"}},key:"artanh",names:["artanh","arctanh"]},{category:"Algebra",mappings:{"default":{"default":"degree"}},key:"deg",names:["deg"]},{category:"Algebra",mappings:{"default":{"default":"determinant","short":"det"}},key:"det",names:["det"]},{category:"Algebra",mappings:{"default":{"default":"dimension"}},key:"dim",names:["dim"]},{category:"Algebra",mappings:{"default":{"default":"homomorphism","short":"hom"}},key:"hom",names:["hom", +"Hom"]},{category:"Algebra",mappings:{"default":{"default":"kernel"}},key:"ker",names:["ker"]},{category:"Algebra",mappings:{"default":{"default":"trace"}},key:"Tr",names:["Tr","tr"]}];cvox.AndroidVox=function(){cvox.ChromeVox.navigationManager.ignoreIframesNoMatterWhat()};goog.exportSymbol("cvox.AndroidVox",cvox.AndroidVox); +cvox.AndroidVox.performAction=function(a){var b=JSON.parse(a);a=b.action;var c=b.granularity,b=b.element,d=cvox.SearchWidget.getInstance().isActive();16==c&&512==a&&(cvox.ChromeVox.navigationManager.setReversed(!1),cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.navigationManager.updateIndicator());if(16==c)return cvox.ChromeVoxUserCommands.commands.readFromHere(),!0;cvox.ChromeVoxUserCommands.commands.stopSpeech();if(256==a||512==a)d||cvox.ChromeVoxEventWatcher.setUpTextHandler(); +var e=cvox.ChromeVoxEventWatcher.currentTextHandler;e||document.activeElement==document.body||console.log("no text handler, but there is an active element",document.activeElement);if(e&&1==c){if(256==a)return e.moveCursorToNextCharacter();if(512==a)return e.moveCursorToPreviousCharacter()}else if(e&&2==c){if(256==a)return e.moveCursorToNextWord();if(512==a)return e.moveCursorToPreviousWord()}else if(e&&8==c){if(256==a)return e.moveCursorToNextParagraph();if(512==a)return e.moveCursorToPreviousParagraph()}else if(e&& +4==c){var f=!1;256==a?f=e.moveCursorToNextLine():512==a&&(f=e.moveCursorToPreviousLine());if(f)return!0}switch(c){case -1:return cvox.ChromeVox.navigationManager.finishNavCommand(""),!0;case -2:return cvox.ChromeVoxUserCommands.commands.readCurrentTitle(),!0;case -3:return!0;case -4:return 512==a?cvox.ChromeVoxUserCommands.commands.exitShifter():cvox.ChromeVoxUserCommands.commands.enterShifter(),!0;case -5:return cvox.SearchWidget.getInstance().toggle(),!0}if(-275999999<=c&&-275E6>=c){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"), +cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);a=cvox.ChromeVox.navigationManager.getBraille();b=-275E6-c;if(c=a.text.getSpan(b))a=b-a.text.getSpanStart(c),cvox.AndroidVox.performClickAction(c,a);return!0}if(0>c)return!1;e=[];e[8]=cvox.NavigationShifter.GRANULARITIES.GROUP;e[4]=cvox.NavigationShifter.GRANULARITIES.LINE;e[2]=cvox.NavigationShifter.GRANULARITIES.WORD;e[1]=cvox.NavigationShifter.GRANULARITIES.CHARACTER;d||(c=c?e[c]:cvox.NavigationShifter.GRANULARITIES.OBJECT, +cvox.ChromeVox.navigationManager.setGranularity(c));c=!1;switch(a){case 16:if(d)break;cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);(c=cvox.ChromeVox.navigationManager.getCurrentNode())&&cvox.AndroidVox.performClickAction(c);c=!0;break;case 1024:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.nextSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.nextList();break;case "CONTROL":c= +!cvox.ChromeVoxUserCommands.commands.nextControl()}if(c)break;case 256:d?(cvox.SearchWidget.getInstance().nextResult(!1),c=!0):c=!cvox.ChromeVoxUserCommands.commands.forward();break;case 2048:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.previousSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.previousList();break;case "CONTROL":c=!cvox.ChromeVoxUserCommands.commands.previousControl()}if(c)break;case 512:d?(cvox.SearchWidget.getInstance().nextResult(!0),c=!0):c= +!cvox.ChromeVoxUserCommands.commands.backward()}return c};goog.exportSymbol("cvox.AndroidVox.performAction",cvox.AndroidVox.performAction); +cvox.AndroidVox.performClickAction=function(a,b){cvox.ChromeVox.navigationManager.getCurrentNode()!=a&&cvox.ApiImplementation.syncToNode(a,!1);cvox.Focuser.setFocus(a);var c=cvox.DomUtil.isInputTypeText(a)||a instanceof HTMLTextAreaElement;if(goog.isDef(b)&&c){var d=cvox.BrailleUtil.getTemplated(null,a),c=d.getSpanInstanceOf(cvox.BrailleUtil.ValueSpan),e=d.getSpanStart(c),d=d.getSpanEnd(c);e<=b&&b<=d&&(c=b-e+c.offset,a.selectionStart=a.selectionEnd=c,cvox.ChromeVoxEventWatcher.handleTextChanged(!0))}cvox.DomUtil.clickElem(a, +!1,!0)};cvox.AndroidHost=function(){};goog.inherits(cvox.AndroidHost,cvox.AbstractHost); +cvox.AndroidHost.prototype.init=function(){cvox.ChromeVox.version="AndroidVox";var a=cvox.AndroidKeyMap.getStringifiedKeyMap();cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable(a);cvox.ApiImplementation.siteSpecificScriptLoader="";cvox.ApiImplementation.siteSpecificScriptBase="";cvox.ApiImplementation.init();cvox.ChromeVox.earcons.earconsAvailable()&&(cvox.ChromeVox.verbosity=cvox.VERBOSITY_BRIEF);new cvox.AndroidMathMap;cvox.InitialSpeech.speak()};cvox.AndroidHost.prototype.reinit=function(){}; +cvox.AndroidHost.prototype.onPageLoad=function(){cvox.ChromeVoxEventWatcher.focusFollowsMouse=!0;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=0};cvox.AndroidHost.prototype.ttsLoaded=function(){return"undefined"!=typeof accessibility};cvox.AndroidHost.prototype.getApiSrc=function(){return""};cvox.AndroidHost.prototype.hasTtsCallback=function(){return!1};cvox.AndroidHost.prototype.mustRedispatchClickEvent=function(){return!0}; +cvox.AndroidHost.prototype.activateOrDeactivateChromeVox=function(a){cvox.ChromeVox.tts.stop();cvox.AndroidHost.superClass_.activateOrDeactivateChromeVox.call(this,a);this.onPageLoad()};goog.exportSymbol("cvox.AndroidHost.prototype.activateOrDeactivateChromeVox",cvox.AndroidHost.prototype.activateOrDeactivateChromeVox);cvox.HostFactory.hostConstructor=cvox.AndroidHost;window.cvox||(window.cvox={});cvox.MathJaxExternalUtil=function(){};cvox.MathJaxExternalUtil.mmlAttr=function(){return""}; +cvox.MathJaxExternalUtil.mfenced=function(a){null==a&&(a="");var b=[a+'<mrow mfenced="true"'+this.toMathMLattributes()+">"],c=a+" ";this.data.open&&b.push(this.data.open.toMathML(c));null!=this.data[0]&&b.push(this.data[0].toMathML(c));for(var d=1,e=this.data.length;d<e;d++)this.data[d]&&(this.data["sep"+d]&&b.push(this.data["sep"+d].toMathML(c)),b.push(this.data[d].toMathML(c)));this.data.close&&b.push(this.data.close.toMathML(c));b.push(a+"</mrow>");return b.join("\n")}; +cvox.MathJaxExternalUtil.getMathml=function(a,b){var c=MathJax.ElementJax.mml.mbase.prototype,d=MathJax.ElementJax.mml.mfenced.prototype;this.mmlAttr=c.toMathMLattributes;var e=d.toMathML;try{c.toMathMLattributes=cvox.MathJaxExternalUtil.mbase;d.toMathML=cvox.MathJaxExternalUtil.mfenced;var f=a.root.toMathML("");c.toMathMLattributes=this.mmlAttr;d.toMathML=e;MathJax.Callback(b)(f)}catch(g){c.toMathMLattributes=this.mmlAttr;d.toMathML=e;if(!g.restart)throw g;return MathJax.Callback.After([cvox.MathJaxExternalUtil.getMathml, +a,b],g.restart)}};cvox.MathJaxExternalUtil.mbase=function(){var a=cvox.MathJaxExternalUtil.mmlAttr.call(this);if(null!=this.spanID)var b=(this.id||"MathJax-Span-"+this.spanID)+MathJax.OutputJax["HTML-CSS"].idPostfix,a=a+(' spanID="'+b+'"');null!=this.texClass&&(a+=' texClass="'+this.texClass+'"');return a};cvox.MathJaxExternalUtil.isActive=function(){return"undefined"!=typeof MathJax&&"undefined"!=typeof MathJax.Hub&&"undefined"!=typeof MathJax.ElementJax&&"undefined"!=typeof MathJax.InputJax}; +cvox.MathJaxExternalUtil.getMathjaxCallback_=function(a,b){cvox.MathJaxExternalUtil.getMathml(b,function(c){b.root.inputID&&a(c,b.root.inputID)})};cvox.MathJaxExternalUtil.registerSignal=function(a,b){MathJax.Hub.Register.MessageHook(b,function(b){b=MathJax.Hub.getJaxFor(b[1]);cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};cvox.MathJaxExternalUtil.getAllJax=function(a){var b=MathJax.Hub.getAllJax();b&&b.forEach(function(b){b.root.spanID&&cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})}; +cvox.MathJaxExternalUtil.injectConfigScript=function(){var a=document.createElement("script");a.setAttribute("type","text/x-mathjax-config");a.textContent='MathJax.Hub.Config({\n jax: ["input/AsciiMath", "input/TeX"],\n extensions: ["toMathML.js"],\n skipStartupTypeset: true,\n messageStyle: "none",\n TeX: {extensions: ["AMSmath.js","AMSsymbols.js"]}\n});\nMathJax.Hub.Queue(\n function() {MathJax.Hub.inputJax["math/asciimath"].Process();\n MathJax.Hub.inputJax["math/tex"].Process()}\n);\n//\n// Prevent these from being loaded\n//\nif (!MathJax.Extension.MathMenu) {MathJax.Extension.MathMenu = {}};\nif (!MathJax.Extension.MathZoom) {MathJax.Extension.MathZoom = {}};'; +document.activeElement.appendChild(a)};cvox.MathJaxExternalUtil.injectLoadScript=function(){var a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src","http://cdn.mathjax.org/mathjax/latest/MathJax.js");document.activeElement.appendChild(a)}; +cvox.MathJaxExternalUtil.configMediaWiki=function(){mediaWiki&&MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var a=MathJax.ElementJax.mml;MathJax.Hub.Insert(MathJax.InputJax.TeX.Definitions,{mathchar0mi:{thetasym:"03B8",koppa:"03DF",stigma:"03DB",varstigma:"03DB",coppa:"03D9",varcoppa:"03D9",sampi:"03E1",C:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],cnums:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Complex:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],H:["210D",{mathvariant:a.VARIANT.DOUBLESTRUCK}], +N:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],natnums:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Q:["0051",{mathvariant:a.VARIANT.DOUBLESTRUCK}],R:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Z:["005A",{mathvariant:a.VARIANT.DOUBLESTRUCK}],sect:"00A7",P:"00B6",AA:["00C5",{mathvariant:a.VARIANT.NORMAL}],alef:["2135",{mathvariant:a.VARIANT.NORMAL}],alefsym:["2135",{mathvariant:a.VARIANT.NORMAL}], +weierp:["2118",{mathvariant:a.VARIANT.NORMAL}],real:["211C",{mathvariant:a.VARIANT.NORMAL}],part:["2202",{mathvariant:a.VARIANT.NORMAL}],infin:["221E",{mathvariant:a.VARIANT.NORMAL}],empty:["2205",{mathvariant:a.VARIANT.NORMAL}],O:["2205",{mathvariant:a.VARIANT.NORMAL}],ang:["2220",{mathvariant:a.VARIANT.NORMAL}],exist:["2203",{mathvariant:a.VARIANT.NORMAL}],clubs:["2663",{mathvariant:a.VARIANT.NORMAL}],diamonds:["2662",{mathvariant:a.VARIANT.NORMAL}],hearts:["2661",{mathvariant:a.VARIANT.NORMAL}], +spades:["2660",{mathvariant:a.VARIANT.NORMAL}],textvisiblespace:"2423",geneuro:"20AC",euro:"20AC"},mathchar0mo:{and:"2227",or:"2228",bull:"2219",plusmn:"00B1",sdot:"22C5",Dagger:"2021",sup:"2283",sub:"2282",supe:"2287",sube:"2286",isin:"2208",hAar:"21D4",hArr:"21D4",Harr:"21D4",Lrarr:"21D4",lrArr:"21D4",lArr:"21D0",Larr:"21D0",rArr:"21D2",Rarr:"21D2",harr:"2194",lrarr:"2194",larr:"2190",gets:"2190",rarr:"2192",oiint:["222F",{texClass:a.TEXCLASS.OP}],oiiint:["2230",{texClass:a.TEXCLASS.OP}]},mathchar7:{Alpha:"0391", +Beta:"0392",Epsilon:"0395",Zeta:"0396",Eta:"0397",Iota:"0399",Kappa:"039A",Mu:"039C",Nu:"039D",Omicron:"039F",Rho:"03A1",Tau:"03A4",Chi:"03A7",Koppa:"03DE",Stigma:"03DA",Digamma:"03DC",Coppa:"03D8",Sampi:"03E0"},delimiter:{"\\uarr":"2191","\\darr":"2193","\\Uarr":"21D1","\\uArr":"21D1","\\Darr":"21D3","\\dArr":"21D3","\\rang":"27E9","\\lang":"27E8"},macros:{sgn:"NamedFn",arccot:"NamedFn",arcsec:"NamedFn",arccsc:"NamedFn",sen:"NamedFn",image:["Macro","\\Im"],bold:["Macro","\\mathbf{#1}",1],pagecolor:["Macro", +"",1],emph:["Macro","\\textit{#1}",1],textsf:["Macro","\\mathord{\\sf{\\text{#1}}}",1],texttt:["Macro","\\mathord{\\tt{\\text{#1}}}",1],vline:["Macro","\\smash{\\large\\lvert}",0]}})})}; +cvox.MathJaxExternalUtil.convertToMml=function(a,b,c,d,e,f){var g=MathJax.HTML.Element("script",{type:c},[b]),g={math:b,script:g};MathJax.InputJax[d].prefilterHooks.Execute(g);var h;try{h=f(g.math)}catch(k){if(k[e])h=MathJax.ElementJax.mml.merror(k.message.replace(/\n.*/,""));else{if(k.restart)return MathJax.Callback.After([cvox.MathJaxExternalUtil.convertToMml,a,b,c,d,e,f],k.restart);throw k;}}h=h.inferred?MathJax.ElementJax.mml.apply(MathJax.ElementJax,h.data):MathJax.ElementJax.mml(h);h.root.display= +"block";g.math=h;g.script.MathJax={};MathJax.InputJax[d].postfilterHooks.Execute(g);return cvox.MathJaxExternalUtil.getMathml(g.math,a)};cvox.MathJaxExternalUtil.texToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/tex;mode=display","TeX","texError",function(a){return MathJax.InputJax.TeX.Parse(a).mml()})};cvox.MathJaxExternalUtil.asciiMathToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/asciimath","AsciiMath","asciimathError",MathJax.InputJax.AsciiMath.AM.parseMath)};cvox.AndroidMathJax=function(){this.altMathNodeId_=0};goog.inherits(cvox.AndroidMathJax,cvox.AbstractMathJax);cvox.AndroidMathJax.prototype.getMathmlToDomCallback_=function(a){return goog.bind(function(b,c){return this.convertMarkupToDom(a,b,c)},this)};cvox.AndroidMathJax.prototype.isMathjaxActive=function(a){var b=0,c=function(){b++;cvox.MathJaxExternalUtil.isActive()?a(!0):5>b&&setTimeout(c,1E3)};c()};cvox.AndroidMathJax.prototype.getAllJax=function(a){cvox.MathJaxExternalUtil.getAllJax(this.getMathmlToDomCallback_(a))}; +cvox.AndroidMathJax.prototype.registerSignal=function(a,b){cvox.MathJaxExternalUtil.registerSignal(this.getMathmlToDomCallback_(a),b)};cvox.AndroidMathJax.prototype.injectScripts=function(){cvox.MathJaxExternalUtil.injectConfigScript();cvox.MathJaxExternalUtil.injectLoadScript()};cvox.AndroidMathJax.prototype.configMediaWiki=function(){cvox.MathJaxExternalUtil.configMediaWiki()}; +cvox.AndroidMathJax.prototype.getTex=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.texToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};cvox.AndroidMathJax.prototype.getAsciiMath=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.asciiMathToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}}; +cvox.HostFactory.mathJaxConstructor=cvox.AndroidMathJax;cvox.AndroidTts=function(){cvox.AbstractTts.call(this);this.ttsProperties.rate=0.5;this.ttsProperties.pitch=0.5;this.ttsProperties.volume=1};goog.inherits(cvox.AndroidTts,cvox.AbstractTts);cvox.AndroidTts.prototype.speak=function(a,b,c){cvox.AndroidTts.superClass_.speak.call(this,a,b,c);c=this.mergeProperties(c);accessibility.speak(a,b,c);return this};cvox.AndroidTts.prototype.isSpeaking=function(){cvox.AndroidTts.superClass_.isSpeaking.call(this);return accessibility.isSpeaking()}; +cvox.AndroidTts.prototype.stop=function(){cvox.AndroidTts.superClass_.stop.call(this);accessibility.stop()};cvox.HostFactory.ttsConstructor=cvox.AndroidTts;cvox.TestMessages={locale:{message:"en"},chromevox_name:{message:"ChromeVox"},chromevox_description:{message:"ChromeVox - Giving Voice to Chrome"},chromevox_stop_speech_key:{message:"Stop speech"},chromevox_toggle_sticky_mode:{message:"Enable/Disable sticky mode"},chromevox_prefix_key:{message:"Prefix key"},chromevox_handle_tab_next:{message:"Jump to next focusable item"},chromevox_handle_tab_prev:{message:"Jump to previous focusable item"},chromevox_backward:{message:"Navigate backward"},chromevox_forward:{message:"Navigate forward"}, +chromevox_left:{message:"Move left"},chromevox_right:{message:"Move right"},chromevox_skip_backward:{message:"Skip backward during continuous reading"},chromevox_skip_forward:{message:"Skip forward during continuous reading"},chromevox_previous_granularity:{message:"Decrease navigation granularity"},chromevox_next_granularity:{message:"Increase navigation granularity"},chromevox_act_on_current_item:{message:"Take action on current item"},chromevox_force_click_on_current_item:{message:"Click on current item"}, +chromevox_read_link_url:{message:"Announce the URL behind a link"},chromevox_read_current_title:{message:"Announce the title of the current page"},chromevox_read_current_url:{message:"Announce the URL of the current page"},chromevox_read_from_here:{message:"Start reading from current location"},chromevox_show_power_key:{message:"Open ChromeVox keyboard help"},chromevox_hide_power_key:{message:"Hide ChromeVox help"},chromevox_power_key_help:{message:"Press up or down to review commands, press enter to activate"}, +chromevox_help:{message:"Open ChromeVox tutorial"},chromevox_toggle_search_widget:{message:"Toggle search widget"},chromevox_show_options_page:{message:"Open options page"},chromevox_show_kb_explorer_page:{message:"Open keyboard explorer"},chromevox_decrease_tts_rate:{message:"Decrease rate of speech"},chromevox_increase_tts_rate:{message:"Increase rate of speech"},chromevox_decrease_tts_pitch:{message:"Decrease pitch"},chromevox_increase_tts_pitch:{message:"Increase pitch"},chromevox_decrease_tts_volume:{message:"Decrease speech volume"}, +chromevox_increase_tts_volume:{message:"Increase speech volume"},chromevox_show_forms_list:{message:"Show forms list"},chromevox_show_headings_list:{message:"Show headings list"},chromevox_show_links_list:{message:"Show links list"},chromevox_show_tables_list:{message:"Show tables list"},chromevox_show_landmarks_list:{message:"Show landmarks list"},chromevox_previous_row:{message:"Previous table row"},chromevox_next_row:{message:"Next table row"},chromevox_previous_col:{message:"Previous table column"}, +chromevox_next_col:{message:"Next table column"},chromevox_announce_headers:{message:"Announce the headers of the current cell"},chromevox_speak_table_location:{message:"Announce current cell coordinates"},chromevox_guess_row_header:{message:"Make a guess at the row header of the current cell"},chromevox_guess_col_header:{message:"Make a guess at the column header of the current cell"},chromevox_skip_to_beginning:{message:"Go to beginning of table"},chromevox_skip_to_end:{message:"Go to end of table"}, +chromevox_skip_to_row_beginning:{message:"Go to beginning of the current row"},chromevox_skip_to_row_end:{message:"Go to end of the current row"},chromevox_skip_to_col_beginning:{message:"Go to beginning of the current column"},chromevox_skip_to_col_end:{message:"Go to end of the current column"},chromevox_next_heading1:{message:"Next level 1 heading"},chromevox_previous_heading1:{message:"Previous level 1 heading"},chromevox_next_heading2:{message:"Next level 2 heading"},chromevox_previous_heading2:{message:"Previous level 2 heading"}, +chromevox_next_heading3:{message:"Next level 3 heading"},chromevox_previous_heading3:{message:"Previous level 3 heading"},chromevox_next_heading4:{message:"Next level 4 heading"},chromevox_previous_heading4:{message:"Previous level 4 heading"},chromevox_next_heading5:{message:"Next level 5 heading"},chromevox_previous_heading5:{message:"Previous level 5 heading"},chromevox_next_heading6:{message:"Next level 6 heading"},chromevox_previous_heading6:{message:"Previous level 6 heading"},chromevox_next_combo_box:{message:"Next combo box"}, +chromevox_previous_combo_box:{message:"Previous combo box"},chromevox_next_edit_text:{message:"Next editable text area"},chromevox_previous_edit_text:{message:"Previous editable text area"},chromevox_next_form_field:{message:"Next form field"},chromevox_previous_form_field:{message:"Previous form field"},chromevox_next_graphic:{message:"Next graphic"},chromevox_previous_graphic:{message:"Previous graphic"},chromevox_next_heading:{message:"Next heading"},chromevox_previous_heading:{message:"Previous heading"}, +chromevox_next_list_item:{message:"Next list item"},chromevox_previous_list_item:{message:"Previous list item"},chromevox_next_jump:{message:"Next jump"},chromevox_previous_jump:{message:"Previous jump"},chromevox_next_link:{message:"Next link"},chromevox_previous_link:{message:"Previous link"},chromevox_next_list:{message:"Next list"},chromevox_previous_list:{message:"Previous list"},chromevox_next_math:{message:"Next math"},chromevox_previous_math:{message:"Previous math"},chromevox_next_media:{message:"Next media"}, +chromevox_previous_media:{message:"Previous media"},chromevox_next_blockquote:{message:"Next block quote"},chromevox_previous_blockquote:{message:"Previous block quote"},chromevox_next_radio:{message:"Next radio button"},chromevox_previous_radio:{message:"Previous radio button"},chromevox_next_slider:{message:"Next slider"},chromevox_previous_slider:{message:"Previous slider"},chromevox_next_table:{message:"Next table"},chromevox_next_visited_link:{message:"Next visited link"},chromevox_previous_table:{message:"Previous table"}, +chromevox_previous_visited_link:{message:"Previous visited link"},chromevox_next_button:{message:"Next button"},chromevox_previous_button:{message:"Previous button"},chromevox_next_checkbox:{message:"Next checkbox"},chromevox_previous_checkbox:{message:"Previous checkbox"},chromevox_next_landmark:{message:"Next landmark"},chromevox_previous_landmark:{message:"Previous landmark"},chromevox_benchmark:{message:"Debug benchmark"},chromevox_announce_position:{message:"Announces a brief description of the current position"}, +chromevox_fully_describe:{message:"Announces a complete description of the current position"},chromevox_options_page_title:{message:"ChromeVox Options"},chromevox_options_page_summary:{message:"Use the options below to customize ChromeVox. Changes take effect immediately."},chromevox_options_mouse_focus_follows:{message:"Use the mouse to change focus."},chromevox_options_site_specific_enhancements:{message:"Enhance specific sites (like Google Search)."},chromevox_options_verbosity_verbose:{message:"Enable verbose descriptions."}, +chromevox_options_cursor_between_characters:{message:"Place cursor between characters when editing text (like Mac OS X)."},chromevox_options_magnifier_show_checkbox:{message:"Show a magnified view of the page content."},chromevox_options_voices:{message:"Voices"},chromevox_options_voices_description:{message:"Change the current voice by selecting an option from the list below."},chromevox_options_braille:{message:"Braille"},chromevox_options_braille_table_type_6:{message:"Switch to 8 dot braille"}, +chromevox_options_braille_table_type_8:{message:"Switch to 6 dot braille"},chromevox_options_braille_description_6:{message:"Change the current 6 dot braille table by selecting an option from the list below."},chromevox_options_braille_locale_grade:{message:"$1, Grade $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_options_braille_description_8:{message:"Change the current 8 dot braille table by selecting an option from the list below."},chromevox_options_keyboard_shortcuts:{message:"Keyboard shortcuts"}, +chromevox_options_keymap_description:{message:"Change the current keymap by selecting an option from the list below."},chromevox_options_select_keys:{message:"Reset current keymap"},chromevox_options_shortcuts_description:{message:"Customize keyboard shortcuts for frequently used commands by typing them into the corresponding fields below."},chromevox_options_modifier_keys:{message:"Modifier keys"},chromevox_options_cvox_modifier_key:{message:"ChromeVox modifier key"},chromevox_kbexplorer_title:{message:"ChromeOS Keyboard Explorer"}, +chromevox_kbexplorer_instructions:{message:"Press any key to learn its name. Ctrl+W will close the keyboard explorer."},chromevox_chrome_system_need_restart:{message:"System was updated. Restart is recommended."},chromevox_chrome_brightness_changed:{message:"Brightness $1 percent",placeholders:{1:{content:"$1"}}},chromevox_chrome_tab_created:{message:"tab created"},chromevox_chrome_tab_selected:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_normal_window_selected:{message:"window $1 tab", +placeholders:{1:{content:"$1"}}},chromevox_chrome_incognito_window_selected:{message:"incognito window $1 tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_menu_opened:{message:"$1 menu opened",placeholders:{1:{content:"$1"}}},chromevox_describe_checkbox_checked:{message:"$1 checkbox checked",placeholders:{1:{content:"$1"}}},chromevox_checkbox_checked_state:{message:"checked"},chromevox_checkbox_checked_state_brl:{message:"x"},chromevox_describe_checkbox_unchecked:{message:"$1, checkbox not checked", +placeholders:{1:{content:"$1"}}},chromevox_checkbox_unchecked_state:{message:"not checked"},chromevox_checkbox_unchecked_state_brl:{message:" "},chromevox_describe_radio_selected:{message:"$1, radio button selected",placeholders:{1:{content:"$1"}}},chromevox_radio_selected_state:{message:"selected"},chromevox_radio_selected_state_brl:{message:"x"},chromevox_describe_radio_unselected:{message:"$1, radio button unselected",placeholders:{1:{content:"$1"}}},chromevox_radio_unselected_state:{message:"unselected"}, +chromevox_radio_unselected_state_brl:{message:" "},chromevox_describe_menu:{message:"$1, menu",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item:{message:"$1, menu item",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item_with_submenu:{message:"$1, menu item, with submenu",placeholders:{1:{content:"$1"}}},chromevox_describe_window:{message:"$1, window",placeholders:{1:{content:"$1"}}},chromevox_describe_textbox:{message:"$1, $2, text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}}, +chromevox_describe_unnamed_textbox:{message:"$1, text box",placeholders:{1:{content:"$1"}}},chromevox_describe_password:{message:"$1, $2, password text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_password:{message:"$1, password text box",placeholders:{1:{content:"$1"}}},chromevox_describe_button:{message:"$1, button",placeholders:{1:{content:"$1"}}},chromevox_describe_combobox:{message:"$1, $2, combo box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_combobox:{message:"$1, combo box", +placeholders:{1:{content:"$1"}}},chromevox_describe_listbox:{message:"$1, $2, list box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_listbox:{message:"$1, list box",placeholders:{1:{content:"$1"}}},chromevox_describe_link:{message:"$1, link",placeholders:{1:{content:"$1"}}},chromevox_describe_tab:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_describe_slider:{message:"$1, $2, slider",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_selected:{message:", selected"}, +chromevox_describe_unselected:{message:", unselected"},chromevox_describe_index:{message:" $1 of $2 ",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_announce_rate:{message:"Rate $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_pitch:{message:"Pitch $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_volume:{message:"Volume $1 percent",placeholders:{1:{content:"$1"}}},chromevox_exiting_dialog:{message:"Exited dialog."},chromevox_exited_container:{message:"Exited $1.", +placeholders:{1:{content:"$1"}}},chromevox_entering_dialog:{message:"Entered dialog"},chromevox_live_regions_removed:{message:"removed:"},chromevox_sticky_mode_enabled:{message:"Sticky mode enabled"},chromevox_sticky_mode_disabled:{message:"Sticky mode disabled"},chromevox_keyboard_help_intro:{message:"Keyboard Help"},chromevox_context_menu_intro:{message:"Context Menu"},chromevox_choice_widget_name:{message:"$1 list.",placeholders:{1:{content:"$1"}}},chromevox_choice_widget_help:{message:"Use up and down arrow keys to browse, or type to search."}, +chromevox_choice_widget_exited:{message:"Exited"},chromevox_choice_widget_type_generic:{message:" "},chromevox_end_of_cell:{message:"End of cell."},chromevox_no_url_found:{message:"No URL found"},chromevox_leaving_table:{message:"Leaving table."},chromevox_leaving_grid:{message:"Leaving grid."},chromevox_inside_table:{message:"Inside table"},chromevox_no_tables:{message:"No table found."},chromevox_not_inside_table:{message:"Not inside table."},chromevox_no_cell_below:{message:"No cell below."},chromevox_no_cell_above:{message:"No cell above."}, +chromevox_no_cell_right:{message:"No cell right."},chromevox_no_cell_left:{message:"No cell left."},chromevox_empty_cell:{message:"Empty cell."},chromevox_spanned:{message:"Spanned."},chromevox_row_header:{message:"Row header:"},chromevox_empty_row_header:{message:"Empty row header"},chromevox_column_header:{message:"Column header:"},chromevox_empty_column_header:{message:"Empty column header"},chromevox_no_headers:{message:"No headers"},chromevox_empty_headers:{message:"Empty headers"},chromevox_table_location:{message:"Row $1 of $2, Column $3 of $4", +placeholders:{1:{content:"$1"},2:{content:"$2"},3:{content:"$3"},4:{content:"$4"}}},chromevox_no_next_checkbox:{message:"No next checkbox."},chromevox_no_previous_checkbox:{message:"No previous checkbox."},chromevox_no_next_edit_text:{message:"No next editable text field."},chromevox_no_previous_edit_text:{message:"No previous editable text field."},chromevox_no_next_heading:{message:"No next heading."},chromevox_no_previous_heading:{message:"No previous heading."},chromevox_no_next_heading_1:{message:"No next level 1 heading."}, +chromevox_no_previous_heading_1:{message:"No previous level 1 heading."},chromevox_no_next_heading_2:{message:"No next level 2 heading."},chromevox_no_previous_heading_2:{message:"No previous level 2 heading."},chromevox_no_next_heading_3:{message:"No next level 3 heading."},chromevox_no_previous_heading_3:{message:"No previous level 3 heading."},chromevox_no_next_heading_4:{message:"No next level 4 heading."},chromevox_no_previous_heading_4:{message:"No previous level 4 heading."},chromevox_no_next_heading_5:{message:"No next level 5 heading."}, +chromevox_no_previous_heading_5:{message:"No previous level 5 heading."},chromevox_no_next_heading_6:{message:"No next level 6 heading."},chromevox_no_previous_heading_6:{message:"No previous level 6 heading."},chromevox_no_next_not_link:{message:"No next item that isn't a link."},chromevox_no_previous_not_link:{message:"No previous item that isn't a link."},chromevox_no_next_anchor:{message:"No next anchor."},chromevox_no_previous_anchor:{message:"No previous anchor."},chromevox_no_next_link:{message:"No next link."}, +chromevox_no_previous_link:{message:"No previous link."},chromevox_no_next_table:{message:"No next table."},chromevox_no_previous_table:{message:"No previous table."},chromevox_no_next_visited_link:{message:"No next visited link."},chromevox_no_previous_visited_link:{message:"No previous visited link."},chromevox_no_next_math:{message:"No next math expression."},chromevox_no_previous_math:{message:"No previous math expression."},chromevox_no_next_media_widget:{message:"No next media widget."},chromevox_no_previous_media_widget:{message:"No previous media widget."}, +chromevox_no_next_list:{message:"No next list."},chromevox_no_previous_list:{message:"No previous list."},chromevox_no_next_list_item:{message:"No next list item."},chromevox_no_previous_list_item:{message:"No previous list item."},chromevox_no_next_blockquote:{message:"No next blockquote."},chromevox_no_previous_blockquote:{message:"No previous blockquote."},chromevox_no_next_form_field:{message:"No next form field."},chromevox_no_previous_form_field:{message:"No previous form field."},chromevox_no_next_jump:{message:"No next jump point."}, +chromevox_no_previous_jump:{message:"No previous jump point."},chromevox_no_next_landmark:{message:"No next ARIA landmark."},chromevox_no_previous_landmark:{message:"No previous ARIA landmark."},chromevox_no_next_combo_box:{message:"No next combo box."},chromevox_no_previous_combo_box:{message:"No previous combo box."},chromevox_no_next_button:{message:"No next button."},chromevox_no_previous_button:{message:"No previous button."},chromevox_no_next_graphic:{message:"No next graphic."},chromevox_no_previous_graphic:{message:"No previous graphic."}, +chromevox_no_next_slider:{message:"No next slider."},chromevox_no_previous_slider:{message:"No previous slider."},chromevox_no_next_radio_button:{message:"No next radio button."},chromevox_no_previous_radio_button:{message:"No previous radio button."},chromevox_no_next_section:{message:"No next section."},chromevox_no_previous_section:{message:"No previous section."},chromevox_no_next_control:{message:"No next control."},chromevox_no_previous_control:{message:"No previous control."},chromevox_element_clicked:{message:"Clicked"}, +chromevox_element_double_clicked:{message:"double clicked"},chromevox_powerkey_no_headings:{message:"No headings."},chromevox_powerkey_no_links:{message:"No links."},chromevox_powerkey_no_forms:{message:"No forms."},chromevox_powerkey_no_tables:{message:"No tables."},chromevox_powerkey_no_landmarks:{message:"No ARIA landmarks."},chromevox_powerkey_no_jumps:{message:"No jumps."},chromevox_list_position:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_list_position_brl:{message:"$1/$2", +placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_aria_has_submenu:{message:"has submenu"},chromevox_aria_has_submenu_brl:{message:"+submnu"},chromevox_aria_has_popup:{message:"has pop up"},chromevox_aria_has_popup_brl:{message:"+popup"},chromevox_aria_value_min:{message:"Min $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_min_brl:{message:"min:$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max:{message:"Max $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max_brl:{message:"max:$1", +placeholders:{1:{content:"$1"}}},chromevox_aria_value_now:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_now_brl:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_role_alert:{message:"Alert"},chromevox_aria_role_alert_brl:{message:"alrt"},chromevox_aria_role_alertdialog:{message:"Alert dialog"},chromevox_aria_role_alertdialog_brl:{message:"alrt dlg"},chromevox_aria_role_button:{message:"Button"},chromevox_aria_role_button_brl:{message:"btn"},chromevox_aria_role_checkbox:{message:"Check box"}, +chromevox_aria_role_checkbox_brl:{message:"chx"},chromevox_aria_role_combobox:{message:"Combo box"},chromevox_aria_role_combobox_brl:{message:"cbx"},chromevox_aria_role_dialog:{message:"Dialog"},chromevox_aria_role_dialog_brl:{message:"dlg"},chromevox_aria_role_grid:{message:"Grid"},chromevox_aria_role_grid_brl:{message:"grd"},chromevox_aria_role_gridcell:{message:"Cell"},chromevox_aria_role_gridcell_brl:{message:"cl"},chromevox_aria_role_gridcell_pos:{message:"row $1 column $2",placeholders:{1:{content:"$1"}, +2:{content:"$2"}}},chromevox_aria_role_link:{message:"Link"},chromevox_aria_role_link_brl:{message:"lnk"},chromevox_aria_role_link_singular:{message:"1 link"},chromevox_aria_role_link_plural:{message:"$1 links",placeholders:{1:{content:"$1"}}},chromevox_aria_role_listbox:{message:"List box"},chromevox_aria_role_listbox_brl:{message:"lstbx"},chromevox_aria_role_log:{message:"Log"},chromevox_aria_role_log_brl:{message:"log"},chromevox_aria_role_marquee:{message:"Marquee"},chromevox_aria_role_marquee_brl:{message:"maqe"}, +chromevox_aria_role_menu:{message:"Menu"},chromevox_aria_role_menu_brl:{message:"mnu"},chromevox_aria_role_menubar:{message:"Menu bar"},chromevox_aria_role_menubar_brl:{message:"mnu br"},chromevox_aria_role_menuitem:{message:"Menu item"},chromevox_aria_role_menuitem_brl:{message:"mnu itm"},chromevox_aria_role_menuitemcheckbox:{message:"Menu item check box"},chromevox_aria_role_menuitemcheckbox_brl:{message:"mnu itm chx"},chromevox_aria_role_menuitemradio:{message:"Menu item radio button"},chromevox_aria_role_menuitemradio_brl:{message:"mnu itm rd"}, +chromevox_aria_role_option:{message:" "},chromevox_aria_role_option_brl:{message:" "},chromevox_aria_role_popup_button:{message:"Pop-up button"},chromevox_aria_role_popup_button_brl:{message:"pup btn"},chromevox_aria_role_progressbar:{message:"Progress bar"},chromevox_aria_role_progressbar_brl:{message:"prog br"},chromevox_aria_role_radio:{message:"Radio button"},chromevox_aria_role_radio_brl:{message:"rd"},chromevox_aria_role_radiogroup:{message:"Radio button group"},chromevox_aria_role_radiogroup_brl:{message:"rd grp"}, +chromevox_aria_role_scrollbar:{message:"Scroll bar"},chromevox_aria_role_scrollbar_brl:{message:"scr br"},chromevox_aria_role_slider:{message:"Slider"},chromevox_aria_role_slider_brl:{message:"slr"},chromevox_aria_role_spinbutton:{message:"Spin button"},chromevox_aria_role_spinbutton_brl:{message:"spn btn"},chromevox_aria_role_status:{message:"Status"},chromevox_aria_role_status_brl:{message:"sts"},chromevox_aria_role_tab:{message:"Tab"},chromevox_aria_role_tab_brl:{message:"tab"},chromevox_aria_role_tabpanel:{message:"Tab panel"}, +chromevox_aria_role_tabpanel_brl:{message:"tab pnl"},chromevox_aria_role_textbox:{message:"Text box"},chromevox_aria_role_textbox_brl:{message:"txtbx"},chromevox_aria_role_timer:{message:"Timer"},chromevox_aria_role_timer_brl:{message:"tmr"},chromevox_aria_role_toolbar:{message:"Tool bar"},chromevox_aria_role_toolbar_brl:{message:"tl br"},chromevox_aria_role_tooltip:{message:"Tool tip"},chromevox_aria_role_tooltip_brl:{message:"tl tp"},chromevox_aria_role_treeitem:{message:"Tree item"},chromevox_aria_role_treeitem_brl:{message:"tr itm"}, +chromevox_aria_role_article:{message:"Article"},chromevox_aria_role_article_brl:{message:"acl"},chromevox_aria_role_application:{message:"Application"},chromevox_aria_role_application_brl:{message:"app"},chromevox_aria_role_banner:{message:"Banner"},chromevox_aria_role_banner_brl:{message:"bnr"},chromevox_aria_role_columnheader:{message:"Column header"},chromevox_aria_role_columnheader_brl:{message:"clm hd"},chromevox_aria_role_complementary:{message:"Complementary"},chromevox_aria_role_complementary_brl:{message:"cmpy"}, +chromevox_aria_role_contentinfo:{message:"Content info"},chromevox_aria_role_contentinfo_brl:{message:"cnt in"},chromevox_aria_role_definition:{message:"Definition"},chromevox_aria_role_definition_brl:{message:"def"},chromevox_aria_role_directory:{message:"Directory"},chromevox_aria_role_directory_brl:{message:"dir"},chromevox_aria_role_document:{message:"Document"},chromevox_aria_role_document_brl:{message:"doc"},chromevox_aria_role_form:{message:"Form"},chromevox_aria_role_form_brl:{message:"frm"}, +chromevox_aria_role_form_singular:{message:"1 form"},chromevox_aria_role_form_plural:{message:"$1 forms",placeholders:{1:{content:"$1"}}},chromevox_aria_role_group:{message:"Group"},chromevox_aria_role_group_brl:{message:"grp"},chromevox_aria_role_heading:{message:"Heading"},chromevox_aria_role_heading_brl:{message:"hd"},chromevox_aria_role_img:{message:"Image"},chromevox_aria_role_img_brl:{message:"img"},chromevox_aria_role_list:{message:"List"},chromevox_aria_role_list_brl:{message:"lst"},chromevox_aria_role_listitem:{message:"List item"}, +chromevox_aria_role_listitem_brl:{message:"lstitm"},chromevox_aria_role_main:{message:"Main"},chromevox_aria_role_main_brl:{message:"main"},chromevox_aria_role_math:{message:"Math"},chromevox_aria_role_math_brl:{message:"math"},chromevox_aria_role_navigation:{message:"Navigation"},chromevox_aria_role_navigation_brl:{message:"nav"},chromevox_aria_role_note:{message:"Note"},chromevox_aria_role_note_brl:{message:"note"},chromevox_aria_role_region:{message:"Region"},chromevox_aria_role_region_brl:{message:"rgn"}, +chromevox_aria_role_rowheader:{message:"Row header"},chromevox_aria_role_rowheader_brl:{message:"rw hd"},chromevox_aria_role_search:{message:"Search"},chromevox_aria_role_search_brl:{message:"srch"},chromevox_aria_role_separator:{message:"Separator"},chromevox_aria_role_separator_brl:{message:"sprtr"},chromevox_aria_autocomplete_inline:{message:"Autocompletion inline"},chromevox_aria_autocomplete_inline_brl:{message:"autocomplete"},chromevox_aria_autocomplete_list:{message:"Autocompletion list"}, +chromevox_aria_autocomplete_list_brl:{message:"autocomplete lst"},chromevox_aria_autocomplete_both:{message:"Autocompletion inline and list"},chromevox_aria_autocomplete_both_brl:{message:"autocomplete lst"},chromevox_aria_checked_true:{message:"Checked"},chromevox_aria_checked_true_brl:{message:"x"},chromevox_aria_checked_false:{message:"Not checked"},chromevox_aria_checked_false_brl:{message:" "},chromevox_aria_checked_mixed:{message:"Partially checked"},chromevox_aria_checked_mixed_brl:{message:"/x"}, +chromevox_aria_disabled_true:{message:"Disabled"},chromevox_aria_disabled_true_brl:{message:"="},chromevox_aria_expanded_true:{message:"Expanded"},chromevox_aria_expanded_true_brl:{message:">"},chromevox_aria_expanded_false:{message:"Collapsed"},chromevox_aria_expanded_false_brl:{message:"<"},chromevox_aria_invalid_true:{message:"Invalid input"},chromevox_aria_invalid_true_brl:{message:"!"},chromevox_aria_invalid_grammar:{message:"Grammatical mistake detected"},chromevox_aria_invalid_grammar_brl:{message:"Grammatical mistake detected"}, +chromevox_aria_invalid_spelling:{message:"Spelling mistake detected"},chromevox_aria_invalid_spelling_brl:{message:"misspelled"},chromevox_aria_multiline_true:{message:"Multi line"},chromevox_aria_multiline_true_brl:{message:"mult ln"},chromevox_aria_multiselectable_true:{message:"Multi select"},chromevox_aria_multiselectable_true_brl:{message:"mult sel"},chromevox_aria_pressed_true:{message:"Pressed"},chromevox_aria_pressed_true_brl:{message:"x"},chromevox_aria_pressed_false:{message:"Not pressed"}, +chromevox_aria_pressed_false_brl:{message:" "},chromevox_aria_pressed_mixed:{message:"Partially pressed"},chromevox_aria_pressed_mixed_brl:{message:"/x"},chromevox_aria_readonly_true:{message:"Read only"},chromevox_aria_readonly_true_brl:{message:"rdonly"},chromevox_aria_required_true:{message:"Required"},chromevox_aria_required_true_brl:{message:"req"},chromevox_aria_selected_true:{message:"Selected"},chromevox_aria_selected_true_brl:{message:"x"},chromevox_aria_selected_false:{message:"Not selected"}, +chromevox_aria_selected_false_brl:{message:" "},chromevox_tag_link:{message:"Link"},chromevox_tag_link_brl:{message:"lnk"},chromevox_tag_button:{message:"Button"},chromevox_tag_button_brl:{message:"btn"},chromevox_tag_h1:{message:"Heading 1"},chromevox_tag_h1_brl:{message:"h1"},chromevox_tag_h2:{message:"Heading 2"},chromevox_tag_h2_brl:{message:"h2"},chromevox_tag_h3:{message:"Heading 3"},chromevox_tag_h3_brl:{message:"h3"},chromevox_tag_h4:{message:"Heading 4"},chromevox_tag_h4_brl:{message:"h4"}, +chromevox_tag_h5:{message:"Heading 5"},chromevox_tag_h5_brl:{message:"h5"},chromevox_tag_h6:{message:"Heading 6"},chromevox_tag_h6_brl:{message:"h6"},chromevox_tag_li:{message:"List item"},chromevox_tag_li_brl:{message:"lstitm"},chromevox_tag_ol:{message:"Ordered List"},chromevox_tag_ol_brl:{message:"lst"},chromevox_tag_select:{message:"Combo box"},chromevox_tag_select_brl:{message:"cbx"},chromevox_tag_textarea:{message:"Text area"},chromevox_tag_textarea_brl:{message:"txta"},chromevox_tag_table:{message:"table"}, +chromevox_tag_table_brl:{message:"tbl"},chromevox_tag_ul:{message:"List"},chromevox_tag_ul_brl:{message:"lst"},chromevox_tag_section:{message:"Section"},chromevox_tag_section_brl:{message:"stn"},chromevox_tag_nav:{message:"Navigation"},chromevox_tag_nav_brl:{message:"nav"},chromevox_tag_article:{message:"Article"},chromevox_tag_article_brl:{message:"article"},chromevox_tag_aside:{message:"Aside"},chromevox_tag_aside_brl:{message:"aside"},chromevox_tag_hgroup:{message:"Heading group"},chromevox_tag_hgroup_brl:{message:"hgrp"}, +chromevox_tag_header:{message:"Header"},chromevox_tag_header_brl:{message:"hdr"},chromevox_tag_footer:{message:"Footer"},chromevox_tag_footer_brl:{message:"ftr"},chromevox_tag_time:{message:"Time"},chromevox_tag_time_brl:{message:" "},chromevox_tag_mark:{message:"Mark"},chromevox_tag_mark_brl:{message:"mark"},chromevox_tag_video:{message:"Video"},chromevox_tag_video_brl:{message:"video"},chromevox_tag_audio:{message:"Audio"},chromevox_tag_audio_brl:{message:"audio"},chromevox_input_type_button:{message:"Button"}, +chromevox_input_type_button_brl:{message:"btn"},chromevox_input_type_checkbox:{message:"Check box"},chromevox_input_type_checkbox_brl:{message:"chx"},chromevox_input_type_color:{message:"Color picker"},chromevox_input_type_color_brl:{message:"color picker"},chromevox_input_type_datetime:{message:"Date time control"},chromevox_input_type_datetime_brl:{message:"date time"},chromevox_input_type_datetime_local:{message:"Date time control"},chromevox_input_type_datetime_local_brl:{message:"date time"}, +chromevox_input_type_date:{message:"Date control"},chromevox_input_type_date_brl:{message:"date"},chromevox_input_type_email:{message:"Edit text, email entry"},chromevox_input_type_email_brl:{message:"edtxt email"},chromevox_input_type_file:{message:"File selection"},chromevox_input_type_file_brl:{message:"file"},chromevox_input_type_image:{message:"Button"},chromevox_input_type_image_brl:{message:"btn"},chromevox_input_type_month:{message:"Month control"},chromevox_input_type_month_brl:{message:"month"}, +chromevox_input_type_number:{message:"Edit text numeric only"},chromevox_input_type_number_brl:{message:"edtxt#"},chromevox_input_type_password:{message:"Password edit text"},chromevox_input_type_password_brl:{message:"pwd edtxt"},chromevox_input_type_radio:{message:"Radio button"},chromevox_input_type_radio_brl:{message:"rd btn"},chromevox_input_type_range:{message:"Slider"},chromevox_input_type_range_brl:{message:"slr"},chromevox_input_type_reset:{message:"Reset"},chromevox_input_type_reset_brl:{message:"reset"}, +chromevox_input_type_search:{message:"Edit text, search entry"},chromevox_input_type_search_brl:{message:"search edtxt"},chromevox_input_type_submit:{message:"Button"},chromevox_input_type_submit_brl:{message:"btn"},chromevox_input_type_tel:{message:"Edit text, number entry"},chromevox_input_type_tel_brl:{message:"tele# edtxt"},chromevox_input_type_text:{message:"Edit text"},chromevox_input_type_text_brl:{message:"edtxt"},chromevox_input_type_url:{message:"Edit text, URL entry"},chromevox_input_type_url_brl:{message:"url edtxt"}, +chromevox_input_type_week:{message:"Week of the year control"},chromevox_input_type_week_brl:{message:"week"},chromevox_internal_link:{message:"Internal link"},chromevox_internal_link_brl:{message:"int lnk"},chromevox_text_box_blank:{message:"Blank"},chromevox_list_with_items:{message:"with $1 items",placeholders:{1:{content:"$1"}}},chromevox_list_with_items_brl:{message:"+$1",placeholders:{1:{content:"$1"}}},chromevox_state_percent:{message:"$1%",placeholders:{1:{content:"$1"}}},chromevox_state_percent_brl:{message:"$1%", +placeholders:{1:{content:"$1"}}},chromevox_has_submenu:{message:"with submenu"},chromevox_has_submenu_brl:{message:"+submnu"},chromevox_has_popup:{message:"has popup"},chromevox_has_popup_brl:{message:"has popup"},chromevox_collection:{message:"$1 collection with $2 items",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_key:{message:"Enter"},chromevox_space_key:{message:"Space"},chromevox_backspace_key:{message:"Backspace"},chromevox_tab_key:{message:"Tab"},chromevox_left_key:{message:"Left"}, +chromevox_up_key:{message:"Up"},chromevox_right_key:{message:"Right"},chromevox_down_key:{message:"Down"},chromevox_unknown_link:{message:"Unknown link"},chromevox_toggle_chromevox_active:{message:"Toggle ChromeVox active or inactive."},chromevox_chromevox_inactive:{message:"ChromeVox is now inactive."},chromevox_pause:{message:", "},chromevox_end:{message:". "},chromevox_previous_different_element:{message:"Previous different element."},chromevox_next_different_element:{message:"Next different element."}, +chromevox_previous_similar_element:{message:"Previous similar element."},chromevox_next_similar_element:{message:"Next similar element."},chromevox_no_more_similar_elements:{message:"No more similar elements."},chromevox_no_more_different_elements:{message:"No more different elements."},chromevox_index_total:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_css_space:{message:"Enter group exploration"},chromevox_enter_group_exploration:{message:"Exploring groups"}, +chromevox_pdf_header:{message:'This page contains the text automatically extracted from the PDF file <b>$1</b>. <a href="$2">Click here for the original.</a>',placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_object_strategy:{message:"Object"},chromevox_group_strategy:{message:"Group"},chromevox_table_strategy:{message:"Table"},chromevox_row_granularity:{message:"Row"},chromevox_column_granularity:{message:"Column"},chromevox_mathml_tree_granularity:{message:"Math ML Tree"},chromevox_mathml_layout_granularity:{message:"Math ML Layout"}, +chromevox_mathml_token_granularity:{message:"Math ML Token"},chromevox_mathml_leaf_granularity:{message:"Math ML Leaf"},chromevox_visual_strategy:{message:"Visual"},chromevox_custom_strategy:{message:"Custom"},chromevox_line_granularity:{message:"Line"},chromevox_sentence_granularity:{message:"Sentence"},chromevox_word_granularity:{message:"Word"},chromevox_character_granularity:{message:"Character"},chromevox_search_widget_intro:{message:"Find in page."},chromevox_search_widget_intro_help:{message:"Enter a search query."}, +chromevox_search_widget_outro:{message:"Exited find in page."},chromevox_search_widget_no_results:{message:"No more results."},chromevox_modifier_keys:{message:"Modifier Keys"},chromevox_navigation:{message:"ChromeVox Navigation"},chromevox_information:{message:"Information"},chromevox_help_commands:{message:"Help Commands"},chromevox_controlling_speech:{message:"Controlling Speech"},chromevox_overview:{message:"Overview"},chromevox_tables:{message:"Tables"},chromevox_jump_commands:{message:"Jump Commands"}, +chromevox_braille:{message:"Braille"},chromevox_developer:{message:"Developer"},chromevox_keymap_classic:{message:"Classic keymap"},chromevox_keymap_flat:{message:"Flat keymap"},chromevox_keymap_experimental:{message:"Experimental keymap"},chromevox_enable_tts_log:{message:"Enable TTS logging"},chromevox_begin_selection:{message:"Start selection"},chromevox_end_selection:{message:"End selection"},chromevox_selection_is:{message:"Selection is "},chromevox_toggle_selection:{message:"Start or end selection."}, +chromevox_copy:{message:"copy."},chromevox_cut:{message:"cut."},chromevox_paste:{message:"paste."},chromevox_selected:{message:"selected"},chromevox_unselected:{message:"unselected"},chromevox_added_to_selection:{message:"added to selection"},chromevox_removed_from_selection:{message:"removed from selection"},chromevox_then:{message:"then"},chromevox_followed_by:{message:"followed by"},chromevox_modifier_key:{message:"ChromeVox modifier"},chromevox_key_conflict:{message:"$1 is already assigned to a command.", +placeholders:{1:{content:"$1"}}},chromevox_math_expr:{message:"Math"},chromevox_math_expr_brl:{message:"Math"},chromevox_not_inside_math:{message:"Not inside math"},chromevox_timewidget_ampm:{message:"AM PM"},chromevox_timewidget_hours:{message:"hours"},chromevox_timewidget_minutes:{message:"minutes"},chromevox_timewidget_seconds:{message:"seconds"},chromevox_timewidget_milliseconds:{message:"milliseconds"},chromevox_timewidget_am:{message:"AM"},chromevox_timewidget_pm:{message:"PM"},chromevox_datewidget_week:{message:"week"}, +chromevox_datewidget_january:{message:"January"},chromevox_datewidget_february:{message:"February"},chromevox_datewidget_march:{message:"March"},chromevox_datewidget_april:{message:"April"},chromevox_datewidget_may:{message:"May"},chromevox_datewidget_june:{message:"June"},chromevox_datewidget_july:{message:"July"},chromevox_datewidget_august:{message:"August"},chromevox_datewidget_september:{message:"September"},chromevox_datewidget_october:{message:"October"},chromevox_datewidget_november:{message:"November"}, +chromevox_datewidget_december:{message:"December"},chromevox_no_punctuation:{message:"No punctuation"},chromevox_some_punctuation:{message:"Some punctuation"},chromevox_all_punctuation:{message:"All punctuation"},chromevox_search_help_item:{message:"Press enter to accept or escape to cancel, down for next and up for previous."},chromevox_clickable:{message:"clickable"},chromevox_clickable_brl:{message:"clickable"},chromevox_previous_character:{message:"Previous Character"},chromevox_next_character:{message:"Next Character"}, +chromevox_previous_word:{message:"Previous Word"},chromevox_next_word:{message:"Next Word"},chromevox_previous_sentence:{message:"Previous Sentence"},chromevox_next_sentence:{message:"Next Sentence"},chromevox_previous_line:{message:"Previous Line"},chromevox_next_line:{message:"Next Line"},chromevox_previous_object:{message:"Previous Object"},chromevox_next_object:{message:"Next Object"},chromevox_previous_group:{message:"Previous Group"},chromevox_next_group:{message:"Next Group"},chromevox_role_landmark:{message:"Landmark"}, +chromevox_modifier_entry_error:{message:"No modifier pressed; please press and hold one or more modifiers; lift your fingers once done and you will hear the keys set. Tab to exit."},chromevox_modifier_entry_set:{message:"$1 is now the new ChromeVox modifier.",placeholders:{1:{content:"$1"}}},chromevox_keymap_reset:{message:"$1 has been reset.",placeholders:{1:{content:"$1"}}},chromevox_keymap_switch:{message:"Switched to $1.",placeholders:{1:{content:"$1"}}},chromevox_jump_to_top:{message:"Jump to the top of the page"}, +chromevox_jump_to_bottom:{message:"Jump to the bottom of the page"},chromevox_wrapped_to_top:{message:"Wrapped to top"},chromevox_wrapped_to_bottom:{message:"Wrapped to bottom"},chromevox_cycle_punctuation_echo:{message:"Cycle punctuation echo"},chromevox_cycle_typing_echo:{message:"Cycle typing echo"},chromevox_pause_all_media:{message:"Pauses all currently playing media widgets"},chromevox_open_long_desc:{message:"Open long description in a new tab"},chromevox_no_long_desc:{message:"No long description"}, +chromevox_image_with_long_desc:{message:"Image with long description"},chromevox_selected_options_value:{message:"$1 to $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_value_brl:{message:"$1-$2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_state:{message:"selected $1 items",placeholders:{1:{content:"$1"}}},chromevox_selected_options_state_brl:{message:"sld $1",placeholders:{1:{content:"$1"}}},chromevox_clear_page_selection:{message:"cleared selection"}, +chromevox_character_echo:{message:"character echo"},chromevox_word_echo:{message:"word echo"},chromevox_character_and_word_echo:{message:"character and word echo"},chromevox_none_echo:{message:"no typing echo"},chromevox_enter_content:{message:"enter structured content, such as tables"},chromevox_exit_content:{message:"exit structured content, such as tables"},chromevox_enter_content_say:{message:"entered $1",placeholders:{1:{content:"$1"}}},chromevox_structural_line:{message:"structural line"},chromevox_layout_line:{message:"line"}, +chromevox_toggle_line_type:{message:"Toggle line type between structural or layout"},chromevox_table_shifter:{message:"table"},chromevox_navigation_shifter:{message:"default navigation"},chromevox_math_shifter:{message:"math"},chromevox_toggle_semantics:{message:"Toggle interpretation of math expressions between structural and semantic"},chromevox_semantics_on:{message:"Semantics on"},chromevox_semantics_off:{message:"Semantics off"},chromevox_phonetic_map:{message:'{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}'}, +chromevox_page_has_one_alert_singular:{message:"This page has 1 alert"},chromevox_page_has_alerts_plural:{message:"This page has $1 alerts",placeholders:{1:{content:"$1"}}},chromevox_review_alerts:{message:"Press Alt+Shift+A to review alerts"},chromevox_no_next_article:{message:"No next article."},chromevox_no_previous_article:{message:"No previous article."},chromevox_chromevox_intro:{message:"ChromeVox spoken feedback is ready"},chromevox_intro_brl:{message:"ChromeVox ready"},chromevox_earcons_on:{message:"Earcons on"}, +chromevox_earcons_off:{message:"Earcons off"},chromevox_toggle_earcons:{message:"Turn sound feedback (earcons) on or off."},chromevox_speak_time_and_date:{message:"Speak the current time and date."},chromevox_mark_as_search_result_brl:{message:"S:$1",placeholders:{1:{content:"$1"}}},chromevox_text_deleted:{message:"Deleted"},chromevox_perform_default_action:{message:"Perform default action"},chromevox_visited_url:{message:"visited"},chromevox_visited_url_brl:{message:"visited"},chromevox_exclamation:{message:"{COUNT, plural, =1 {exclamation point}other {# exclamation points}}"}, +chromevox_space:{message:"{COUNT, plural, =1 {space}other {# spaces}}"},chromevox_backtick:{message:"{COUNT, plural, =1 {backtick}other {# backticks}}"},chromevox_tilde:{message:"{COUNT, plural, =1 {TILDE}other {# tildes}}"},chromevox_at:{message:"{COUNT, plural, =1 {at}other {# at signs}}"},chromevox_pound:{message:"{COUNT, plural, =1 {pound}other {# pound signs}}"},chromevox_dollar:{message:"{COUNT, plural, =1 {dollar}other {# dollar signs}}"},chromevox_percent:{message:"{COUNT, plural, =1 {percent}other {# percent signs}}"}, +chromevox_caret:{message:"{COUNT, plural, =1 {caret}other {# carets}}"},chromevox_ampersand:{message:"{COUNT, plural, =1 {ampersand}other {# ampersands}}"},chromevox_asterisk:{message:"{COUNT, plural, =1 {asterisk}other {# asterisks}}"},chromevox_open_paren:{message:"{COUNT, plural, =1 {open paren}other {# open parens}}"},chromevox_close_paren:{message:"{COUNT, plural, =1 {close paren}other {# close parens}}"},chromevox_dash:{message:"{COUNT, plural, =1 {dash}other {# dashes}}"},chromevox_underscore:{message:"{COUNT, plural, =1 {underscore}other {# underscores}}"}, +chromevox_equals:{message:"{COUNT, plural, =1 {equal}other {# equal signs}}"},chromevox_plus:{message:"{COUNT, plural, =1 {plus}other {# plus signs}}"},chromevox_left_bracket:{message:"{COUNT, plural, =1 {left bracket}other {# left brackets}}"},chromevox_right_bracket:{message:"{COUNT, plural, =1 {right bracket}other {# right brackets}}"},chromevox_left_brace:{message:"{COUNT, plural, =1 {left brace}other {# left braces}}"},chromevox_right_brace:{message:"{COUNT, plural, =1 {right brace}other {# right braces}}"}, +chromevox_pipe:{message:"{COUNT, plural, =1 {pipe}other {# vertical pipes}}"},chromevox_semicolon:{message:"{COUNT, plural, =1 {semicolon}other {# semicolons}}"},chromevox_colon:{message:"{COUNT, plural, =1 {colon}other {# colons}}"},chromevox_comma:{message:"{COUNT, plural, =1 {comma}other {# commas}}"},chromevox_dot:{message:"{COUNT, plural, =1 {dot}=3 {ellipsis}other {# dots}}"},chromevox_less_than:{message:"{COUNT, plural, =1 {less than}other {# less than signs}}"},chromevox_greater_than:{message:"{COUNT, plural, =1 {greater than}other {# greater than signs}}"}, +chromevox_slash:{message:"{COUNT, plural, =1 {slash}other {# slashes}}"},chromevox_question_mark:{message:"{COUNT, plural, =1 {question mark}other {# question marks}}"},chromevox_quote:{message:"{COUNT, plural, =1 {quote}other {# quotes}}"},chromevox_apostrophe:{message:"{COUNT, plural, =1 {apostrophe}other {# apostrophes}}"},chromevox_tab:{message:"{COUNT, plural, =1 {tab}other {# tabs}}"},chromevox_backslash:{message:"{COUNT, plural, =1 {backslash}other {# backslashes}}"},chromevox_braille_routing:{message:"Click the item under a routing key"}, +chromevox_braille_pan_left:{message:"Pan backward"},chromevox_braille_pan_right:{message:"Pan bforward"},chromevox_braille_line_up:{message:"Braille previous Line"},chromevox_braille_line_down:{message:"Braille next Line"},chromevox_braille_top:{message:"Move braille display to top of page"},chromevox_braille_bottom:{message:"Move braille display to bottom of page"},chromevox_access_key:{message:"has access key, $1",placeholders:{1:{content:"$1"}}},chromevox_locale_dict:{message:'{"ar": "Arabic","bg": "Bulgarian","ca": "Catalan","hr": "Croatian","cs": "Czech","da": "Danish","nl": "Dutch","en_CA": "English (Canada)","en_GB": "English (United Kingdom)","en_US": "English (United States)","et": "Estonian","fr": "French","fr_CA": "French (Canada)","fr_FR": "French (France)","fi": "Finnish","de": "German","de_CH": "German (Switzerland)","de_DE": "German (Germany)","el": "Greek","hi": "Hindi","hu": "Hungarian","is": "Icelandic","it": "Italian","lv": "Latvian","lt": "Lithuanian","nb": "Norwegian Bokm\u00e5l","pl": "Polish","pt": "Portuguese","ro": "Romanian","ru": "Russian","sr": "Serbian","sk": "Slovak","sl": "Slovenian","es": "Spanish","sv": "Swedish","tr": "Turkish","vi": "Vietnamese","zh": "Chinese","zh_TW": "Chinese (Traditional Han)"}'}};cvox.TestMsgs=function(){};goog.inherits(cvox.TestMsgs,cvox.AbstractMsgs);cvox.TestMsgs.prototype.getMsg=function(a,b){if(!a){var c=Error();c.message="Message id required";throw c;}c=cvox.TestMessages["chromevox_"+a];if(void 0==c)throw c=Error(),c.message="missing-msg: "+a,c;var d=c.message;if(b)for(var e=0;e<b.length;e++){var f=c.placeholders[e+1];if(!f)throw c=Error(),c.message="Bad placeholder "+e+" for message id "+a,c;f=c.placeholders[e+1].content;d=d.replace(f,b[e])}return d}; +cvox.TestMsgs.prototype.getNumber=function(a){return""+a};cvox.HostFactory.msgsConstructor=cvox.TestMsgs;cvox.ChromeVox.initDocument(); diff --git a/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js b/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js new file mode 100644 index 00000000..8229b168 --- /dev/null +++ b/StoneIsland/platforms/android/assets/www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js @@ -0,0 +1,1778 @@ +// Copyright 2013 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +var goog=goog||{};goog.global=this;goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!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]:c[d]={}:c[d]=b};goog.define=function(a,b){var c=b;goog.exportPath_(a,c)};goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.provide=function(a){goog.exportPath_(a)}; +goog.setTestOnly=function(a){if(!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");};goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else 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){if(goog.DEPENDENCIES_ENABLED){var d;a=a.replace(/\\/g,"/");for(var e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a,a in e.pathToNames||(e.pathToNames[a]={}),e.pathToNames[a][d]=!0;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.useStrictRequires=!1;goog.ENABLE_DEBUG_LOADER=!0;goog.require=function(){};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a){return a}; +goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){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.DEPENDENCIES_ENABLED=!1; +goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document,a=a.getElementsByTagName("script"),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.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==b.readyState){if(b=/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}b.write('<script type="text/javascript" src="'+ +a+'">\x3c/script>');return!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=!0,e in d.requires))for(var g in d.requires[e])if(!goog.isProvided_(g))if(g in d.nameToPath)a(d.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e<b.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error("Undefined script input"); +},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js")); +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.isDef=function(a){return void 0!==a};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.isString=function(a){return"string"==typeof a}; +goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};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){"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(a.clone)return a.clone();var b="array"==b?[]:{},c;for(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_&&(goog.global.eval("var _et_ = 1;"),"undefined"!=typeof goog.global._et_?(delete goog.global._et_,goog.evalWorksForGlobals_=!0):goog.evalWorksForGlobals_=!1),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.body.appendChild(c); +b.body.removeChild(c)}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;goog.getCssName=function(a,b){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};return b?a+"-"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b}; +goog.getMsg=function(a,b){var c=b||{},d;for(d in c){var e=(""+c[d]).replace(/\$/g,"$$$$");a=a.replace(RegExp("\\{\\$"+d+"\\}","gi"),e)}return a};goog.getMsgWithFallback=function(a){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}; +goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() expects not to be running in strict mode. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=!1,g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[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){a.call(goog.global)};goog.MODIFY_FUNCTION_PROTOTYPES=!0; +goog.MODIFY_FUNCTION_PROTOTYPES&&(Function.prototype.bind=Function.prototype.bind||function(a,b){if(1<arguments.length){var c=Array.prototype.slice.call(arguments,1);c.unshift(this,a);return goog.bind.apply(null,c)}return goog.bind(this,a)},Function.prototype.partial=function(a){var b=Array.prototype.slice.call(arguments);b.unshift(this,null);return goog.bind.apply(null,b)},Function.prototype.inherits=function(a){goog.inherits(this,a)},Function.prototype.mixin=function(a){goog.mixin(this.prototype, +a)});var cvox={VERBOSITY_VERBOSE:0,VERBOSITY_BRIEF:1,ChromeVox:function(){}};cvox.ChromeVox.host=null;cvox.ChromeVox.msgs=null;cvox.ChromeVox.isActive=!0;cvox.ChromeVox.version=null;cvox.ChromeVox.earcons=null;cvox.ChromeVox.navigationManager=null;cvox.ChromeVox.serializer=null;cvox.ChromeVox.isStickyOn=!1;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVox.verbosity=cvox.VERBOSITY_VERBOSE;cvox.ChromeVox.typingEcho=0;cvox.ChromeVox.keyEcho={};cvox.ChromeVox.position={};cvox.ChromeVox.isChromeOS=-1!=navigator.userAgent.indexOf("CrOS"); +cvox.ChromeVox.isMac=-1!=navigator.platform.indexOf("Mac");cvox.ChromeVox.modKeyStr=cvox.ChromeVox.isChromeOS?"Shift+Search":cvox.ChromeVox.isMac?"Ctrl+Cmd":"Ctrl+Meta";cvox.ChromeVox.sequenceSwitchKeyCodes=[];cvox.ChromeVox.visitedUrls={};cvox.ChromeVox.markInUserCommand=function(){};cvox.ChromeVox.syncToNode=function(){};cvox.ChromeVox.speakNode=function(){};cvox.ChromeVox.executeUserCommand=function(){};cvox.ChromeVox.entireDocumentIsHidden=!1; +cvox.ChromeVox.storeOn=function(a){a.isStickyOn=cvox.ChromeVox.isStickyOn;cvox.ChromeVox.navigationManager.storeOn(a)};cvox.ChromeVox.readFrom=function(a){cvox.ChromeVox.isStickyOn=a.isStickyOn;cvox.ChromeVox.navigationManager.readFrom(a)};cvox.Cursor=function(a,b,c){this.node=a;this.index=b;this.text=c};cvox.Cursor.prototype.clone=function(){return new cvox.Cursor(this.node,this.index,this.text)};cvox.Cursor.prototype.copyFrom=function(a){this.node=a.node;this.index=a.index;this.text=a.text};cvox.Cursor.prototype.equals=function(a){return this.node==a.node&&this.index==a.index&&this.text==a.text};goog.debug={};goog.debug.Error=function(a){Error.captureStackTrace?Error.captureStackTrace(this,goog.debug.Error):this.stack=Error().stack||"";a&&(this.message=String(a))};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.string={};goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))}; +goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};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.isEmpty=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.isEmptySafe=function(a){return goog.string.isEmpty(goog.string.makeSafe(a))}; +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=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")}; +goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c<d?-1:c==d?0:1};goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g; +goog.string.numerateCompare=function(a,b){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var c=a.toLowerCase().match(goog.string.numerateCompareRegExp_),d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=Math.min(c.length,d.length),f=0;f<e;f++){var g=c[f],h=d[f];if(g!=h)return c=parseInt(g,10),!isNaN(c)&&(d=parseInt(h,10),!isNaN(d)&&c-d)?c-d:g<h?-1:1}return c.length!=d.length?c.length-d.length:a<b?-1:1};goog.string.urlEncode=function(a){return encodeURIComponent(String(a))}; +goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")}; +goog.string.htmlEscape=function(a,b){if(b)return a.replace(goog.string.amperRe_,"&").replace(goog.string.ltRe_,"<").replace(goog.string.gtRe_,">").replace(goog.string.quotRe_,""");if(!goog.string.allRe_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.amperRe_,"&"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.ltRe_,"<"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.gtRe_,">"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.quotRe_,"""));return a}; +goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?"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={"&":"&","<":"<",">":">",""":'"'},d;d=b?b.createElement("div"):document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var g=c[a];if(g)return g;if("#"==b.charAt(0)){var h=Number("0"+b.substr(1));isNaN(h)||(g=String.fromCharCode(h))}g||(d.innerHTML=a+" ",g=d.firstChild.nodeValue.slice(0,-1));return c[a]=g})}; +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 d=Number("0"+c.substr(1));if(!isNaN(d))return String.fromCharCode(d)}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.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;b-=d;a=a.substring(0,b)+"..."+a.substring(e)}else a.length>b&&(e=Math.floor(b/2),d=a.length-e,e+=b%2,a=a.substring(0,e)+"..."+a.substring(d));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",'"':'\\"',"\\":"\\\\"};goog.string.jsEscapeCache_={"'":"\\'"}; +goog.string.quote=function(a){a=String(a);if(a.quote)return a.quote();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,c=a.charCodeAt(0);if(31<c&&127>c)b=a;else{if(256>c){if(b="\\x",16>c||256<c)b+="0"}else b="\\u",4096>c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.toMap=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=!0;return b}; +goog.string.contains=function(a,b){return-1!=a.indexOf(b)};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){var c=RegExp(goog.string.regExpEscape(b),"");return a.replace(c,"")};goog.string.removeAll=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"g");return a.replace(c,"")}; +goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=goog.isDef(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(){var a=2147483648;return Math.floor(Math.random()*a).toString(36)+Math.abs(Math.floor(Math.random()*a)^goog.now()).toString(36)}; +goog.string.compareVersions=function(a,b){for(var c=0,d=goog.string.trim(String(a)).split("."),e=goog.string.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]||"",l=/(\d*)(\D*)/g,m=/(\d*)(\D*)/g;do{var p=l.exec(h)||["","",""],q=m.exec(k)||["","",""];if(0==p[0].length&&0==q[0].length)break;var c=0==p[1].length?0:parseInt(p[1],10),n=0==q[1].length?0:parseInt(q[1],10),c=goog.string.compareElements_(c,n)||goog.string.compareElements_(0==p[2].length,0==q[2].length)|| +goog.string.compareElements_(p[2],q[2])}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c),b%=goog.string.HASHCODE_MAX_;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.isEmpty(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=goog.isString(b)?goog.string.regExpEscape(b):"\\s",c=c?"|["+c+"]+":"",c=RegExp("(^"+c+")([a-z])","g");return a.replace(c,function(a,b,c){return b+c.toUpperCase()})};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(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.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){b.unshift(a);goog.debug.Error.call(this,goog.string.subs.apply(null,b));b.shift()};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);throw new goog.asserts.AssertionError(""+e,f||[]);}; +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.fail=function(a,b){if(goog.asserts.ENABLE_ASSERTS)throw new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));}; +goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(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&&!goog.isString(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&&!goog.isBoolean(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_("instanceof check failed.",null,c,Array.prototype.slice.call(arguments,3));return a}; +goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.peek=function(a){return a[a.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype; +goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.indexOf?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.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(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1}; +goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(a,b,c){goog.asserts.assert(null!=a.length);c=null==c?a.length-1:c;return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(a,b,c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1}; +goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.forEach?function(a,b,c){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;--d)d in e&&b.call(c,e[d],d,a)}; +goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.filter?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(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.ARRAY_PROTOTYPE_.map?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(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.ARRAY_PROTOTYPE_.reduce?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.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.ARRAY_PROTOTYPE_.reduceRight?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.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.ARRAY_PROTOTYPE_.some?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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.ARRAY_PROTOTYPE_.every?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(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:goog.isString(a)?a.charAt(b):a[b]}; +goog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;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.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==goog.array.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.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,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],e;if(goog.isArray(d)||(e=goog.isArrayLike(d))&&Object.prototype.hasOwnProperty.call(d,"callee"))a.push.apply(a,d);else if(e)for(var f=a.length,g=d.length,h=0;h<g;h++)a[f+h]=d[h];else a.push(d)}};goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return goog.array.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?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(){return goog.isObject(g)?"o"+goog.getUid(g):(typeof g).charAt(0)+g};c=c||d;for(var d={},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>>1,l;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};goog.array.sort=function(a,b){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.sort.call(a,b||goog.array.defaultCompare)}; +goog.array.stableSort=function(a,b){function c(a,b){return e(a.value,b.value)||a.index-b.index}for(var d=0;d<a.length;d++)a[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(a,c);for(d=0;d<a.length;d++)a[d]=a[d].value};goog.array.sortObjectsByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(a[b],c[b])})}; +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.compare=function(a,b,c){return goog.array.equals(a,b,c)}; +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.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);goog.isDef(g)&&(g=d[g]||(d[g]=[]),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];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b}; +goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?goog.array.ARRAY_PROTOTYPE_.unshift.apply(a,a.splice(-b,b)):0>b&&goog.array.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=goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1);goog.array.ARRAY_PROTOTYPE_.splice.call(a,c,0,b[0])}; +goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e<arguments.length;e++){var f=arguments[e];if(c>=f.length)return b;d.push(f[c])}b.push(d)}};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.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||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)}; +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?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b){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]);for(var l=[],h=e,k=f;0<h&&0<k;)c(a[h-1],b[k-1])?(l.unshift(d(h-1,k-1)),h--,k--):g[h-1][k]>g[h][k-1]?h--:k--;return l}; +goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)}; +goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.floor(a+(b||2E-15))};goog.math.safeCeil=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.ceil(a-(b||2E-15))};goog.i18n={}; +goog.i18n.CompactNumberFormatSymbols_af={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0m"},1E7:{other:"00\u00a0m"},1E8:{other:"000\u00a0m"},1E9:{other:"0\u00a0mjd"},1E10:{other:"00\u00a0mjd"},1E11:{other:"000\u00a0mjd"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duisend"},1E4:{other:"00 duisend"},1E5:{other:"000 duisend"},1E6:{other:"0 miljoen"},1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"}, +1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_af_ZA=goog.i18n.CompactNumberFormatSymbols_af; +goog.i18n.CompactNumberFormatSymbols_am={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u123a"},1E4:{other:"00\u00a0\u123a"},1E5:{other:"000\u00a0\u123a"},1E6:{other:"0\u00a0\u121c\u1275\u122d"},1E7:{other:"00\u00a0\u121c\u1275\u122d"},1E8:{other:"000\u00a0\u121c\u1275\u122d"},1E9:{other:"0\u00a0\u1262"},1E10:{other:"00\u00a0\u1262"},1E11:{other:"000\u00a0\u1262"},1E12:{other:"0\u00a0\u1275"},1E13:{other:"00\u00a0\u1275"},1E14:{other:"000\u00a0\u1275"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u123a"}, +1E4:{other:"00 \u123a"},1E5:{other:"000 \u123a"},1E6:{other:"0 \u121a\u120a\u12ee\u1295"},1E7:{other:"00 \u121a\u120a\u12ee\u1295"},1E8:{other:"000 \u121a\u120a\u12ee\u1295"},1E9:{other:"0 \u1262\u120a\u12ee\u1295"},1E10:{other:"00 \u1262\u120a\u12ee\u1295"},1E11:{other:"000 \u1262\u120a\u12ee\u1295"},1E12:{other:"0 \u1275\u122a\u120a\u12ee\u1295"},1E13:{other:"00 \u1275\u122a\u120a\u12ee\u1295"},1E14:{other:"000 \u1275\u122a\u120a\u12ee\u1295"}}};goog.i18n.CompactNumberFormatSymbols_am_ET=goog.i18n.CompactNumberFormatSymbols_am; +goog.i18n.CompactNumberFormatSymbols_ar={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0623\u0644\u0641"},1E4:{other:"00\u00a0\u0623\u0644\u0641"},1E5:{other:"000\u00a0\u0623\u0644\u0641"},1E6:{other:"0\u00a0\u0645\u0644\u064a\u0648"},1E7:{other:"00\u00a0\u0645\u0644\u064a\u0648"},1E8:{other:"000\u00a0\u0645\u0644\u064a\u0648"},1E9:{other:"0\u00a0\u0628\u0644\u064a\u0648"},1E10:{other:"00\u00a0\u0628\u0644\u064a\u0648"},1E11:{other:"000\u00a0\u0628\u0644\u064a\u0648"},1E12:{other:"0\u00a0\u062a\u0631\u0644\u064a\u0648"}, +1E13:{other:"00\u00a0\u062a\u0631\u0644\u064a\u0648"},1E14:{other:"000\u00a0\u062a\u0631\u0644\u064a\u0648"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0623\u0644\u0641"},1E4:{other:"00 \u0623\u0644\u0641"},1E5:{other:"000 \u0623\u0644\u0641"},1E6:{other:"0 \u0645\u0644\u064a\u0648\u0646"},1E7:{other:"00 \u0645\u0644\u064a\u0648\u0646"},1E8:{other:"000 \u0645\u0644\u064a\u0648\u0646"},1E9:{other:"0 \u0628\u0644\u064a\u0648\u0646"},1E10:{other:"00 \u0628\u0644\u064a\u0648\u0646"},1E11:{other:"000 \u0628\u0644\u064a\u0648\u0646"}, +1E12:{other:"0 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E13:{other:"00 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E14:{other:"000 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"}}};goog.i18n.CompactNumberFormatSymbols_ar_001=goog.i18n.CompactNumberFormatSymbols_ar;goog.i18n.CompactNumberFormatSymbols_ar_EG=goog.i18n.CompactNumberFormatSymbols_ar; +goog.i18n.CompactNumberFormatSymbols_bg={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0425"},1E4:{other:"00\u00a0\u0425"},1E5:{other:"000\u00a0\u0425"},1E6:{other:"0\u00a0\u041c"},1E7:{other:"00\u00a0\u041c"},1E8:{other:"000\u00a0\u041c"},1E9:{other:"0\u00a0\u0411"},1E10:{other:"00\u00a0\u0411"},1E11:{other:"000\u00a0\u0411"},1E12:{other:"0\u00a0\u0422"},1E13:{other:"00\u00a0\u0422"},1E14:{other:"000\u00a0\u0422"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u043b\u044f\u0434\u0438"}, +1E4:{other:"00 \u0445\u0438\u043b\u044f\u0434\u0438"},1E5:{other:"000 \u0445\u0438\u043b\u044f\u0434\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}, +1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_bg_BG=goog.i18n.CompactNumberFormatSymbols_bg; +goog.i18n.CompactNumberFormatSymbols_bn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u09b9\u09be\u099c\u09be\u09b0"},1E4:{other:"00 \u09b9\u09be\u099c\u09be\u09b0"},1E5:{other:"000 \u09b9\u09be\u099c\u09be\u09b0"},1E6:{other:"0 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}, +1E7:{other:"00 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E8:{other:"000 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E9:{other:"0 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E10:{other:"00 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E11:{other:"000 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E12:{other:"0 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E13:{other:"00 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E14:{other:"000 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}}}; +goog.i18n.CompactNumberFormatSymbols_bn_BD=goog.i18n.CompactNumberFormatSymbols_bn;goog.i18n.CompactNumberFormatSymbols_br={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_br_FR=goog.i18n.CompactNumberFormatSymbols_br; +goog.i18n.CompactNumberFormatSymbols_ca={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milions"},1E7:{other:"00 milions"}, +1E8:{other:"000 milions"},1E9:{other:"0 miliards"},1E10:{other:"00 miliards"},1E11:{other:"000 miliards"},1E12:{other:"0 bilions"},1E13:{other:"00 bilions"},1E14:{other:"000 bilions"}}};goog.i18n.CompactNumberFormatSymbols_ca_AD=goog.i18n.CompactNumberFormatSymbols_ca;goog.i18n.CompactNumberFormatSymbols_ca_ES=goog.i18n.CompactNumberFormatSymbols_ca; +goog.i18n.CompactNumberFormatSymbols_chr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_chr_US=goog.i18n.CompactNumberFormatSymbols_chr; +goog.i18n.CompactNumberFormatSymbols_cs={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"}, +1E6:{other:"0 milion\u016f"},1E7:{other:"00 milion\u016f"},1E8:{other:"000 milion\u016f"},1E9:{other:"0 miliard"},1E10:{other:"00 miliard"},1E11:{other:"000 miliard"},1E12:{other:"0 bilion\u016f"},1E13:{other:"00 bilion\u016f"},1E14:{other:"000 bilion\u016f"}}};goog.i18n.CompactNumberFormatSymbols_cs_CZ=goog.i18n.CompactNumberFormatSymbols_cs; +goog.i18n.CompactNumberFormatSymbols_cy={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 miliwn"},1E7:{other:"00 miliwn"},1E8:{other:"000 miliwn"},1E9:{other:"0 biliwn"},1E10:{other:"00 biliwn"}, +1E11:{other:"000 biliwn"},1E12:{other:"0 triliwn"},1E13:{other:"00 triliwn"},1E14:{other:"000 triliwn"}}};goog.i18n.CompactNumberFormatSymbols_cy_GB=goog.i18n.CompactNumberFormatSymbols_cy; +goog.i18n.CompactNumberFormatSymbols_da={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mio"},1E7:{other:"00\u00a0mio"},1E8:{other:"000\u00a0mio"},1E9:{other:"0\u00a0mia"},1E10:{other:"00\u00a0mia"},1E11:{other:"000\u00a0mia"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusind"},1E4:{other:"00 tusind"},1E5:{other:"000 tusind"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_da_DK=goog.i18n.CompactNumberFormatSymbols_da; +goog.i18n.CompactNumberFormatSymbols_de={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}}; +goog.i18n.CompactNumberFormatSymbols_de_AT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_BE=goog.i18n.CompactNumberFormatSymbols_de; +goog.i18n.CompactNumberFormatSymbols_de_CH={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_DE=goog.i18n.CompactNumberFormatSymbols_de;goog.i18n.CompactNumberFormatSymbols_de_LU=goog.i18n.CompactNumberFormatSymbols_de; +goog.i18n.CompactNumberFormatSymbols_el={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u03c7\u03b9\u03bb."},1E4:{other:"00\u00a0\u03c7\u03b9\u03bb."},1E5:{other:"000\u00a0\u03c7\u03b9\u03bb."},1E6:{other:"0\u00a0\u03b5\u03ba."},1E7:{other:"00\u00a0\u03b5\u03ba."},1E8:{other:"000\u00a0\u03b5\u03ba."},1E9:{other:"0\u00a0\u03b4\u03b9\u03c2"},1E10:{other:"00\u00a0\u03b4\u03b9\u03c2"},1E11:{other:"000\u00a0\u03b4\u03b9\u03c2"},1E12:{other:"0\u00a0\u03c4\u03c1\u03b9\u03c2"},1E13:{other:"00\u00a0\u03c4\u03c1\u03b9\u03c2"}, +1E14:{other:"000\u00a0\u03c4\u03c1\u03b9\u03c2"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E4:{other:"00 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E5:{other:"000 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E6:{other:"0 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E7:{other:"00 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E8:{other:"000 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}, +1E9:{other:"0 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E10:{other:"00 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E11:{other:"000 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E12:{other:"0 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E13:{other:"00 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}, +1E14:{other:"000 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}}};goog.i18n.CompactNumberFormatSymbols_el_GR=goog.i18n.CompactNumberFormatSymbols_el; +goog.i18n.CompactNumberFormatSymbols_en={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_AS=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_AU={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_FM=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_GB={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_GU=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_IE={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}}; +goog.i18n.CompactNumberFormatSymbols_en_IN={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_MH=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_MP=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PR=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PW=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_SG={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_TC=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_UM=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_VG=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_VI=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_ZA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}}; +goog.i18n.CompactNumberFormatSymbols_es={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00\u00a0K\u00a0M"},1E11:{other:"000\u00a0K\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"}, +1E7:{other:"00 millones"},1E8:{other:"000 millones"},1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}}; +goog.i18n.CompactNumberFormatSymbols_es_419={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0k\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},1E7:{other:"00 millones"},1E8:{other:"000 millones"}, +1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};goog.i18n.CompactNumberFormatSymbols_es_EA=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_ES=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_IC=goog.i18n.CompactNumberFormatSymbols_es; +goog.i18n.CompactNumberFormatSymbols_et={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tuh"},1E4:{other:"00\u00a0tuh"},1E5:{other:"000\u00a0tuh"},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0trl"},1E13:{other:"00\u00a0trl"},1E14:{other:"000\u00a0trl"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhat"},1E4:{other:"00 tuhat"},1E5:{other:"000 tuhat"},1E6:{other:"0 miljonit"}, +1E7:{other:"00 miljonit"},1E8:{other:"000 miljonit"},1E9:{other:"0 miljardit"},1E10:{other:"00 miljardit"},1E11:{other:"000 miljardit"},1E12:{other:"0 triljonit"},1E13:{other:"00 triljonit"},1E14:{other:"000 triljonit"}}};goog.i18n.CompactNumberFormatSymbols_et_EE=goog.i18n.CompactNumberFormatSymbols_et; +goog.i18n.CompactNumberFormatSymbols_eu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milioi"},1E7:{other:"00 milioi"},1E8:{other:"000 milioi"},1E9:{other:"0000 milioi"}, +1E10:{other:"00000 milioi"},1E11:{other:"000000 milioi"},1E12:{other:"0 bilioi"},1E13:{other:"00 bilioi"},1E14:{other:"000 bilioi"}}};goog.i18n.CompactNumberFormatSymbols_eu_ES=goog.i18n.CompactNumberFormatSymbols_eu; +goog.i18n.CompactNumberFormatSymbols_fa={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0647\u0632\u0627\u0631"},1E4:{other:"00 \u0647\u0632\u0627\u0631"},1E5:{other:"000 \u0647\u0632\u0627\u0631"},1E6:{other:"0 \u0645\u06cc\u0644\u06cc\u0648\u0646"}, +1E7:{other:"00 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E8:{other:"000 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E9:{other:"0 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E10:{other:"00 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E11:{other:"000 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E12:{other:"0 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E13:{other:"00 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E14:{other:"000 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"}}}; +goog.i18n.CompactNumberFormatSymbols_fa_IR=goog.i18n.CompactNumberFormatSymbols_fa; +goog.i18n.CompactNumberFormatSymbols_fi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t."},1E4:{other:"00\u00a0t."},1E5:{other:"000\u00a0t."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bilj."},1E13:{other:"00\u00a0bilj."},1E14:{other:"000\u00a0bilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhatta"},1E4:{other:"00 tuhatta"},1E5:{other:"000 tuhatta"}, +1E6:{other:"0 miljoonaa"},1E7:{other:"00 miljoonaa"},1E8:{other:"000 miljoonaa"},1E9:{other:"0 miljardia"},1E10:{other:"00 miljardia"},1E11:{other:"000 miljardia"},1E12:{other:"0 biljoonaa"},1E13:{other:"00 biljoonaa"},1E14:{other:"000 biljoonaa"}}};goog.i18n.CompactNumberFormatSymbols_fi_FI=goog.i18n.CompactNumberFormatSymbols_fi; +goog.i18n.CompactNumberFormatSymbols_fil={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"}, +1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};goog.i18n.CompactNumberFormatSymbols_fil_PH=goog.i18n.CompactNumberFormatSymbols_fil; +goog.i18n.CompactNumberFormatSymbols_fr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"}, +1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_BL=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_fr_CA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"}, +1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_FR=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GP=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MC=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_fr_MF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MQ=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_RE=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_YT=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_gl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 mill\u00f3ns"},1E7:{other:"00 mill\u00f3ns"}, +1E8:{other:"000 mill\u00f3ns"},1E9:{other:"0 mil mill\u00f3ns"},1E10:{other:"00 mil mill\u00f3ns"},1E11:{other:"000 mil mill\u00f3ns"},1E12:{other:"0 bill\u00f3ns"},1E13:{other:"00 bill\u00f3ns"},1E14:{other:"000 bill\u00f3ns"}}};goog.i18n.CompactNumberFormatSymbols_gl_ES=goog.i18n.CompactNumberFormatSymbols_gl; +goog.i18n.CompactNumberFormatSymbols_gsw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tsd"},1E4:{other:"00\u00a0tsd"},1E5:{other:"000\u00a0tsd"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tausend"},1E4:{other:"00 tausend"},1E5:{other:"000 tausend"},1E6:{other:"0 Millionen"}, +1E7:{other:"00 Millionen"},1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_gsw_CH=goog.i18n.CompactNumberFormatSymbols_gsw; +goog.i18n.CompactNumberFormatSymbols_gu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0ab9\u0a9c\u0abe\u0ab0"},1E4:{other:"00 \u0ab9\u0a9c\u0abe\u0ab0"},1E5:{other:"000 \u0ab9\u0a9c\u0abe\u0ab0"},1E6:{other:"0 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}, +1E7:{other:"00 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E8:{other:"000 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E9:{other:"0 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E10:{other:"00 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E11:{other:"000 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E12:{other:"0 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E13:{other:"00 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E14:{other:"000 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}}}; +goog.i18n.CompactNumberFormatSymbols_gu_IN=goog.i18n.CompactNumberFormatSymbols_gu;goog.i18n.CompactNumberFormatSymbols_haw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_haw_US=goog.i18n.CompactNumberFormatSymbols_haw; +goog.i18n.CompactNumberFormatSymbols_he={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"}, +1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"}, +1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};goog.i18n.CompactNumberFormatSymbols_he_IL=goog.i18n.CompactNumberFormatSymbols_he; +goog.i18n.CompactNumberFormatSymbols_hi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0L"},1E6:{other:"00L"},1E7:{other:"0Cr"},1E8:{other:"00Cr"},1E9:{other:"000Cr"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093c\u093e\u0930"},1E5:{other:"0 \u0932\u093e\u0916"},1E6:{other:"00 \u0932\u093e\u0916"},1E7:{other:"0 \u0915\u0930\u094b\u0921\u093c"}, +1E8:{other:"00 \u0915\u0930\u094b\u0921\u093c"},1E9:{other:"0 \u0905\u0930\u092c"},1E10:{other:"00 \u0905\u0930\u092c"},1E11:{other:"0 \u0916\u0930\u092c"},1E12:{other:"00 \u0916\u0930\u092c"},1E13:{other:"000 \u0916\u0930\u092c"},1E14:{other:"0000 \u0916\u0930\u092c"}}};goog.i18n.CompactNumberFormatSymbols_hi_IN=goog.i18n.CompactNumberFormatSymbols_hi; +goog.i18n.CompactNumberFormatSymbols_hr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mlr."},1E10:{other:"00\u00a0mlr."},1E11:{other:"000\u00a0mlr."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milijuna"},1E7:{other:"00 milijuna"},1E8:{other:"000 milijuna"}, +1E9:{other:"0 milijarda"},1E10:{other:"00 milijarda"},1E11:{other:"000 milijarda"},1E12:{other:"0 bilijuna"},1E13:{other:"00 bilijuna"},1E14:{other:"000 bilijuna"}}};goog.i18n.CompactNumberFormatSymbols_hr_HR=goog.i18n.CompactNumberFormatSymbols_hr; +goog.i18n.CompactNumberFormatSymbols_hu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0E"},1E4:{other:"00\u00a0E"},1E5:{other:"000\u00a0E"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ezer"},1E4:{other:"00 ezer"},1E5:{other:"000 ezer"},1E6:{other:"0 milli\u00f3"},1E7:{other:"00 milli\u00f3"}, +1E8:{other:"000 milli\u00f3"},1E9:{other:"0 milli\u00e1rd"},1E10:{other:"00 milli\u00e1rd"},1E11:{other:"000 milli\u00e1rd"},1E12:{other:"0 billi\u00f3"},1E13:{other:"00 billi\u00f3"},1E14:{other:"000 billi\u00f3"}}};goog.i18n.CompactNumberFormatSymbols_hu_HU=goog.i18n.CompactNumberFormatSymbols_hu; +goog.i18n.CompactNumberFormatSymbols_id={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"}, +1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};goog.i18n.CompactNumberFormatSymbols_id_ID=goog.i18n.CompactNumberFormatSymbols_id; +goog.i18n.CompactNumberFormatSymbols_in={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"}, +1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}}; +goog.i18n.CompactNumberFormatSymbols_is={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u00fe."},1E4:{other:"00\u00a0\u00fe."},1E5:{other:"000\u00a0\u00fe."},1E6:{other:"0\u00a0m."},1E7:{other:"00\u00a0m."},1E8:{other:"000\u00a0m."},1E9:{other:"0\u00a0ma."},1E10:{other:"00\u00a0ma."},1E11:{other:"000\u00a0ma."},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u00fe\u00fasund"},1E4:{other:"00 \u00fe\u00fasund"},1E5:{other:"000 \u00fe\u00fasund"}, +1E6:{other:"0 millj\u00f3nir"},1E7:{other:"00 millj\u00f3nir"},1E8:{other:"000 millj\u00f3nir"},1E9:{other:"0 milljar\u00f0ar"},1E10:{other:"00 milljar\u00f0ar"},1E11:{other:"000 milljar\u00f0ar"},1E12:{other:"0 billj\u00f3nir"},1E13:{other:"00 billj\u00f3nir"},1E14:{other:"000 billj\u00f3nir"}}};goog.i18n.CompactNumberFormatSymbols_is_IS=goog.i18n.CompactNumberFormatSymbols_is; +goog.i18n.CompactNumberFormatSymbols_it={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mln"},1E7:{other:"00\u00a0Mln"},1E8:{other:"000\u00a0Mln"},1E9:{other:"0\u00a0Mld"},1E10:{other:"00\u00a0Mld"},1E11:{other:"000\u00a0Mld"},1E12:{other:"0\u00a0Bln"},1E13:{other:"00\u00a0Bln"},1E14:{other:"000\u00a0Bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 migliaia"},1E4:{other:"00 migliaia"},1E5:{other:"000 migliaia"},1E6:{other:"0 milioni"},1E7:{other:"00 milioni"}, +1E8:{other:"000 milioni"},1E9:{other:"0 miliardi"},1E10:{other:"00 miliardi"},1E11:{other:"000 miliardi"},1E12:{other:"0 bilioni"},1E13:{other:"00 bilioni"},1E14:{other:"000 bilioni"}}};goog.i18n.CompactNumberFormatSymbols_it_IT=goog.i18n.CompactNumberFormatSymbols_it;goog.i18n.CompactNumberFormatSymbols_it_SM=goog.i18n.CompactNumberFormatSymbols_it; +goog.i18n.CompactNumberFormatSymbols_iw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"}, +1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"}, +1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}}; +goog.i18n.CompactNumberFormatSymbols_ja={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"}, +1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_ja_JP=goog.i18n.CompactNumberFormatSymbols_ja; +goog.i18n.CompactNumberFormatSymbols_kn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E4:{other:"00 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E5:{other:"000 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E6:{other:"0 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"}, +1E7:{other:"00 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E8:{other:"000 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E9:{other:"0 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E10:{other:"00 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E11:{other:"000 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E12:{other:"0 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E13:{other:"00 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E14:{other:"000 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"}}}; +goog.i18n.CompactNumberFormatSymbols_kn_IN=goog.i18n.CompactNumberFormatSymbols_kn; +goog.i18n.CompactNumberFormatSymbols_ko={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"}, +1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}}};goog.i18n.CompactNumberFormatSymbols_ko_KR=goog.i18n.CompactNumberFormatSymbols_ko; +goog.i18n.CompactNumberFormatSymbols_ln={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_ln_CD=goog.i18n.CompactNumberFormatSymbols_ln; +goog.i18n.CompactNumberFormatSymbols_lt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0G"},1E10:{other:"00\u00a0G"},1E11:{other:"000\u00a0G"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bkstan\u010di\u0173"},1E4:{other:"00 t\u016bkstan\u010di\u0173"},1E5:{other:"000 t\u016bkstan\u010di\u0173"}, +1E6:{other:"0 milijon\u0173"},1E7:{other:"00 milijon\u0173"},1E8:{other:"000 milijon\u0173"},1E9:{other:"0 milijard\u0173"},1E10:{other:"00 milijard\u0173"},1E11:{other:"000 milijard\u0173"},1E12:{other:"0 trilijon\u0173"},1E13:{other:"00 trilijon\u0173"},1E14:{other:"000 trilijon\u0173"}}};goog.i18n.CompactNumberFormatSymbols_lt_LT=goog.i18n.CompactNumberFormatSymbols_lt; +goog.i18n.CompactNumberFormatSymbols_lv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t\u016bkst."},1E4:{other:"00\u00a0t\u016bkst."},1E5:{other:"000\u00a0t\u016bkst."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0trilj."},1E13:{other:"00\u00a0trilj."},1E14:{other:"000\u00a0trilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bksto\u0161i"},1E4:{other:"00 t\u016bksto\u0161i"}, +1E5:{other:"000 t\u016bksto\u0161i"},1E6:{other:"0 miljoni"},1E7:{other:"00 miljoni"},1E8:{other:"000 miljoni"},1E9:{other:"0 miljardi"},1E10:{other:"00 miljardi"},1E11:{other:"000 miljardi"},1E12:{other:"0 trilj."},1E13:{other:"00 trilj."},1E14:{other:"000 trilj."}}};goog.i18n.CompactNumberFormatSymbols_lv_LV=goog.i18n.CompactNumberFormatSymbols_lv; +goog.i18n.CompactNumberFormatSymbols_ml={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E4:{other:"00 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E5:{other:"000 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E6:{other:"0 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"}, +1E7:{other:"00 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E8:{other:"000 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E9:{other:"0 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E10:{other:"00 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E11:{other:"000 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E12:{other:"0 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E13:{other:"00 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E14:{other:"000 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"}}}; +goog.i18n.CompactNumberFormatSymbols_ml_IN=goog.i18n.CompactNumberFormatSymbols_ml; +goog.i18n.CompactNumberFormatSymbols_mr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093e\u0930"},1E5:{other:"000 \u0939\u091c\u093e\u0930"},1E6:{other:"0 \u0926\u0936\u0932\u0915\u094d\u0937"}, +1E7:{other:"00 \u0926\u0936\u0932\u0915\u094d\u0937"},1E8:{other:"000 \u0926\u0936\u0932\u0915\u094d\u0937"},1E9:{other:"0 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E10:{other:"00 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E11:{other:"000 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E12:{other:"0 \u0926\u0939\u093e \u0916\u0930\u092c"},1E13:{other:"00 \u0926\u0939\u093e \u0916\u0930\u092c"},1E14:{other:"000 \u0926\u0939\u093e \u0916\u0930\u092c"}}}; +goog.i18n.CompactNumberFormatSymbols_mr_IN=goog.i18n.CompactNumberFormatSymbols_mr; +goog.i18n.CompactNumberFormatSymbols_ms={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0J"},1E7:{other:"00J"},1E8:{other:"000J"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},1E8:{other:"000 juta"},1E9:{other:"0 bilion"},1E10:{other:"00 bilion"}, +1E11:{other:"000 bilion"},1E12:{other:"0 trilion"},1E13:{other:"00 trilion"},1E14:{other:"000 trilion"}}};goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY=goog.i18n.CompactNumberFormatSymbols_ms;goog.i18n.CompactNumberFormatSymbols_mt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}}; +goog.i18n.CompactNumberFormatSymbols_mt_MT=goog.i18n.CompactNumberFormatSymbols_mt; +goog.i18n.CompactNumberFormatSymbols_nb={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_nb_NO=goog.i18n.CompactNumberFormatSymbols_nb; +goog.i18n.CompactNumberFormatSymbols_nl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0\u00a0mln."},1E7:{other:"00\u00a0mln."},1E8:{other:"000\u00a0mln."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bln."},1E13:{other:"00\u00a0bln."},1E14:{other:"000\u00a0bln."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duizend"},1E4:{other:"00 duizend"},1E5:{other:"000 duizend"},1E6:{other:"0 miljoen"}, +1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_nl_NL=goog.i18n.CompactNumberFormatSymbols_nl; +goog.i18n.CompactNumberFormatSymbols_no={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_or={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}}; +goog.i18n.CompactNumberFormatSymbols_or_IN=goog.i18n.CompactNumberFormatSymbols_or; +goog.i18n.CompactNumberFormatSymbols_pl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tys."},1E4:{other:"00\u00a0tys."},1E5:{other:"000\u00a0tys."},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0bln"},1E13:{other:"00\u00a0bln"},1E14:{other:"000\u00a0bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tysi\u0105ca"},1E4:{other:"00 tysi\u0105ca"},1E5:{other:"000 tysi\u0105ca"}, +1E6:{other:"0 miliona"},1E7:{other:"00 miliona"},1E8:{other:"000 miliona"},1E9:{other:"0 miliarda"},1E10:{other:"00 miliarda"},1E11:{other:"000 miliarda"},1E12:{other:"0 biliona"},1E13:{other:"00 biliona"},1E14:{other:"000 biliona"}}};goog.i18n.CompactNumberFormatSymbols_pl_PL=goog.i18n.CompactNumberFormatSymbols_pl; +goog.i18n.CompactNumberFormatSymbols_pt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0mi"},1E7:{other:"00\u00a0mi"},1E8:{other:"000\u00a0mi"},1E9:{other:"0\u00a0bi"},1E10:{other:"00\u00a0bi"},1E11:{other:"000\u00a0bi"},1E12:{other:"0\u00a0tri"},1E13:{other:"00\u00a0tri"},1E14:{other:"000\u00a0tri"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"}, +1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 bilh\u00f5es"},1E10:{other:"00 bilh\u00f5es"},1E11:{other:"000 bilh\u00f5es"},1E12:{other:"0 trilh\u00f5es"},1E13:{other:"00 trilh\u00f5es"},1E14:{other:"000 trilh\u00f5es"}}};goog.i18n.CompactNumberFormatSymbols_pt_BR=goog.i18n.CompactNumberFormatSymbols_pt; +goog.i18n.CompactNumberFormatSymbols_pt_PT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0MM"},1E10:{other:"00\u00a0MM"},1E11:{other:"000\u00a0MM"},1E12:{other:"0\u00a0Bi"},1E13:{other:"00\u00a0Bi"},1E14:{other:"000\u00a0Bi"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"}, +1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 mil milh\u00f5es"},1E10:{other:"00 mil milh\u00f5es"},1E11:{other:"000 mil milh\u00f5es"},1E12:{other:"0 bili\u00f5es"},1E13:{other:"00 bili\u00f5es"},1E14:{other:"000 bili\u00f5es"}}}; +goog.i18n.CompactNumberFormatSymbols_ro={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 de mii"},1E4:{other:"00 de mii"},1E5:{other:"000 de mii"},1E6:{other:"0 de milioane"}, +1E7:{other:"00 de milioane"},1E8:{other:"000 de milioane"},1E9:{other:"0 de miliarde"},1E10:{other:"00 de miliarde"},1E11:{other:"000 de miliarde"},1E12:{other:"0 de trilioane"},1E13:{other:"00 de trilioane"},1E14:{other:"000 de trilioane"}}};goog.i18n.CompactNumberFormatSymbols_ro_RO=goog.i18n.CompactNumberFormatSymbols_ro; +goog.i18n.CompactNumberFormatSymbols_ru={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u044b\u0441."},1E4:{other:"00\u00a0\u0442\u044b\u0441."},1E5:{other:"000\u00a0\u0442\u044b\u0441."},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"}, +1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u044b\u0441\u044f\u0447\u0438"},1E4:{other:"00 \u0442\u044b\u0441\u044f\u0447\u0438"},1E5:{other:"000 \u0442\u044b\u0441\u044f\u0447\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"}, +1E10:{other:"00 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_ru_RU=goog.i18n.CompactNumberFormatSymbols_ru; +goog.i18n.CompactNumberFormatSymbols_sk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tis\u00edc"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"}, +1E6:{other:"0 mili\u00f3nov"},1E7:{other:"00 mili\u00f3nov"},1E8:{other:"000 mili\u00f3nov"},1E9:{other:"0 miliard"},1E10:{other:"00 mili\u00e1rd"},1E11:{other:"000 mili\u00e1rd"},1E12:{other:"0 bili\u00f3nov"},1E13:{other:"00 bili\u00f3nov"},1E14:{other:"000 bili\u00f3nov"}}};goog.i18n.CompactNumberFormatSymbols_sk_SK=goog.i18n.CompactNumberFormatSymbols_sk; +goog.i18n.CompactNumberFormatSymbols_sl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mio."},1E7:{other:"00\u00a0mio."},1E8:{other:"000\u00a0mio."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tiso\u010d"},1E4:{other:"00 tiso\u010d"},1E5:{other:"000 tiso\u010d"}, +1E6:{other:"0 milijonov"},1E7:{other:"00 milijonov"},1E8:{other:"000 milijonov"},1E9:{other:"0 milijard"},1E10:{other:"00 milijard"},1E11:{other:"000 milijard"},1E12:{other:"0 bilijonov"},1E13:{other:"00 bilijonov"},1E14:{other:"000 bilijonov"}}};goog.i18n.CompactNumberFormatSymbols_sl_SI=goog.i18n.CompactNumberFormatSymbols_sl; +goog.i18n.CompactNumberFormatSymbols_sq={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_sq_AL=goog.i18n.CompactNumberFormatSymbols_sq; +goog.i18n.CompactNumberFormatSymbols_sr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0\u0445\u0438\u0459"},1E5:{other:"000\u00a0\u0445\u0438\u0459"},1E6:{other:"0\u00a0\u043c\u0438\u043b"},1E7:{other:"00\u00a0\u043c\u0438\u043b"},1E8:{other:"000\u00a0\u043c\u0438\u043b"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0431\u0438\u043b"},1E13:{other:"00\u00a0\u0431\u0438\u043b"}, +1E14:{other:"000\u00a0\u0431\u0438\u043b"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u0459\u0430\u0434\u0430"},1E4:{other:"00 \u0445\u0438\u0459\u0430\u0434\u0430"},1E5:{other:"000 \u0445\u0438\u0459\u0430\u0434\u0430"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"}, +1E11:{other:"000 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS=goog.i18n.CompactNumberFormatSymbols_sr; +goog.i18n.CompactNumberFormatSymbols_sv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tn"},1E4:{other:"00\u00a0tn"},1E5:{other:"000\u00a0tn"},1E6:{other:"0\u00a0mn"},1E7:{other:"00\u00a0mn"},1E8:{other:"000\u00a0mn"},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 miljoner"}, +1E7:{other:"00 miljoner"},1E8:{other:"000 miljoner"},1E9:{other:"0 miljarder"},1E10:{other:"00 miljarder"},1E11:{other:"000 miljarder"},1E12:{other:"0 biljoner"},1E13:{other:"00 biljoner"},1E14:{other:"000 biljoner"}}};goog.i18n.CompactNumberFormatSymbols_sv_SE=goog.i18n.CompactNumberFormatSymbols_sv; +goog.i18n.CompactNumberFormatSymbols_sw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"elfu\u00a00"},1E4:{other:"elfu\u00a000"},1E5:{other:"laki0"},1E6:{other:"M0"},1E7:{other:"M00"},1E8:{other:"M000"},1E9:{other:"B0"},1E10:{other:"B00"},1E11:{other:"B000"},1E12:{other:"T0"},1E13:{other:"T00"},1E14:{other:"T000"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"Elfu 0"},1E4:{other:"Elfu 00"},1E5:{other:"Elfu 000"},1E6:{other:"Milioni 0"},1E7:{other:"Milioni 00"},1E8:{other:"Milioni 000"},1E9:{other:"Bilioni 0"}, +1E10:{other:"Bilioni 00"},1E11:{other:"Bilioni 000"},1E12:{other:"Trilioni 0"},1E13:{other:"Trilioni 00"},1E14:{other:"Trilioni 000"}}};goog.i18n.CompactNumberFormatSymbols_sw_TZ=goog.i18n.CompactNumberFormatSymbols_sw; +goog.i18n.CompactNumberFormatSymbols_ta={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E4:{other:"00 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E5:{other:"000 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E6:{other:"0 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}, +1E7:{other:"00 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E8:{other:"000 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E9:{other:"0 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E10:{other:"00 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E11:{other:"000 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E12:{other:"0 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E13:{other:"00 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}, +1E14:{other:"000 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}}};goog.i18n.CompactNumberFormatSymbols_ta_IN=goog.i18n.CompactNumberFormatSymbols_ta; +goog.i18n.CompactNumberFormatSymbols_te={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0c35\u0c47\u0c32\u0c41"},1E4:{other:"00 \u0c35\u0c47\u0c32\u0c41"},1E5:{other:"000 \u0c35\u0c47\u0c32\u0c41"},1E6:{other:"0 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}, +1E7:{other:"00 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E8:{other:"000 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E9:{other:"0 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E10:{other:"00 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E11:{other:"000 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E12:{other:"0 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E13:{other:"00 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E14:{other:"000 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}}}; +goog.i18n.CompactNumberFormatSymbols_te_IN=goog.i18n.CompactNumberFormatSymbols_te; +goog.i18n.CompactNumberFormatSymbols_th={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0e1e."},1E4:{other:"0\u00a0\u0e21."},1E5:{other:"0\u00a0\u0e2a."},1E6:{other:"0\u00a0\u0e25."},1E7:{other:"00\u00a0\u0e25."},1E8:{other:"000\u00a0\u0e25."},1E9:{other:"0\u00a0\u0e1e.\u0e25."},1E10:{other:"0\u00a0\u0e21.\u0e25."},1E11:{other:"0\u00a0\u0e2a.\u0e25."},1E12:{other:"0\u00a0\u0e25.\u0e25."},1E13:{other:"00\u00a0\u0e25.\u0e25."},1E14:{other:"000\u00a0\u0e25.\u0e25."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0e1e\u0e31\u0e19"}, +1E4:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19"},1E5:{other:"0 \u0e41\u0e2a\u0e19"},1E6:{other:"0 \u0e25\u0e49\u0e32\u0e19"},1E7:{other:"00 \u0e25\u0e49\u0e32\u0e19"},1E8:{other:"000 \u0e25\u0e49\u0e32\u0e19"},1E9:{other:"0 \u0e1e\u0e31\u0e19\u0e25\u0e49\u0e32\u0e19"},1E10:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19\u0e25\u0e49\u0e32\u0e19"},1E11:{other:"0 \u0e41\u0e2a\u0e19\u0e25\u0e49\u0e32\u0e19"},1E12:{other:"0 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},1E13:{other:"00 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}, +1E14:{other:"000 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}}};goog.i18n.CompactNumberFormatSymbols_th_TH=goog.i18n.CompactNumberFormatSymbols_th; +goog.i18n.CompactNumberFormatSymbols_tl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"}, +1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}}; +goog.i18n.CompactNumberFormatSymbols_tr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0B"},1E5:{other:"000\u00a0B"},1E6:{other:"0\u00a0Mn"},1E7:{other:"00\u00a0Mn"},1E8:{other:"000\u00a0Mn"},1E9:{other:"0\u00a0Mr"},1E10:{other:"00\u00a0Mr"},1E11:{other:"000\u00a0Mr"},1E12:{other:"0\u00a0Tn"},1E13:{other:"00\u00a0Tn"},1E14:{other:"000\u00a0Tn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 bin"},1E4:{other:"00 bin"},1E5:{other:"000 bin"},1E6:{other:"0 milyon"},1E7:{other:"00 milyon"}, +1E8:{other:"000 milyon"},1E9:{other:"0 milyar"},1E10:{other:"00 milyar"},1E11:{other:"000 milyar"},1E12:{other:"0 trilyon"},1E13:{other:"00 trilyon"},1E14:{other:"000 trilyon"}}};goog.i18n.CompactNumberFormatSymbols_tr_TR=goog.i18n.CompactNumberFormatSymbols_tr; +goog.i18n.CompactNumberFormatSymbols_uk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u0438\u0441"},1E4:{other:"00\u00a0\u0442\u0438\u0441"},1E5:{other:"000\u00a0\u0442\u0438\u0441"},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"}, +1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u0438\u0441\u044f\u0447\u0456"},1E4:{other:"00 \u0442\u0438\u0441\u044f\u0447\u0456"},1E5:{other:"000 \u0442\u0438\u0441\u044f\u0447\u0456"},1E6:{other:"0 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"}, +1E10:{other:"00 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_uk_UA=goog.i18n.CompactNumberFormatSymbols_uk; +goog.i18n.CompactNumberFormatSymbols_ur={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u06c1\u0632\u0627\u0631"},1E4:{other:"00\u00a0\u06c1\u0632\u0627\u0631"},1E5:{other:"0\u00a0\u0644\u0627\u06a9\u06be"},1E6:{other:"00\u00a0\u0644\u0627\u06a9\u06be"},1E7:{other:"0\u00a0\u06a9\u0631\u0648\u0691"},1E8:{other:"00\u00a0\u06a9\u0631\u0648\u0691"},1E9:{other:"0\u00a0\u0627\u0631\u0628"},1E10:{other:"00\u00a0\u0627\u0631\u0628"},1E11:{other:"0\u00a0\u06a9\u06be\u0631\u0628"},1E12:{other:"00\u00a0\u06a9\u06be\u0631\u0628"}, +1E13:{other:"000\u00a0\u06a9\u06be\u0631\u0628"},1E14:{other:"0000\u00a0\u06a9\u06be\u0631\u0628"}}};goog.i18n.CompactNumberFormatSymbols_ur_PK=goog.i18n.CompactNumberFormatSymbols_ur; +goog.i18n.CompactNumberFormatSymbols_vi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0N"},1E4:{other:"00\u00a0N"},1E5:{other:"000\u00a0N"},1E6:{other:"0\u00a0Tr"},1E7:{other:"00\u00a0Tr"},1E8:{other:"000\u00a0Tr"},1E9:{other:"0\u00a0T"},1E10:{other:"00\u00a0T"},1E11:{other:"000\u00a0T"},1E12:{other:"0\u00a0NT"},1E13:{other:"00\u00a0NT"},1E14:{other:"000\u00a0NT"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ngh\u00ecn"},1E4:{other:"00 ngh\u00ecn"},1E5:{other:"000 ngh\u00ecn"},1E6:{other:"0 tri\u1ec7u"}, +1E7:{other:"00 tri\u1ec7u"},1E8:{other:"000 tri\u1ec7u"},1E9:{other:"0 t\u1ef7"},1E10:{other:"00 t\u1ef7"},1E11:{other:"000 t\u1ef7"},1E12:{other:"0 ngh\u00ecn t\u1ef7"},1E13:{other:"00 ngh\u00ecn t\u1ef7"},1E14:{other:"000 ngh\u00ecn t\u1ef7"}}};goog.i18n.CompactNumberFormatSymbols_vi_VN=goog.i18n.CompactNumberFormatSymbols_vi; +goog.i18n.CompactNumberFormatSymbols_zh={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"}, +1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}}};goog.i18n.CompactNumberFormatSymbols_zh_CN=goog.i18n.CompactNumberFormatSymbols_zh; +goog.i18n.CompactNumberFormatSymbols_zh_HK={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"}, +1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN=goog.i18n.CompactNumberFormatSymbols_zh; +goog.i18n.CompactNumberFormatSymbols_zh_TW={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"}, +1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}}; +goog.i18n.CompactNumberFormatSymbols_zu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 inkulungwane"},1E4:{other:"00 inkulungwane"},1E5:{other:"000 inkulungwane"},1E6:{other:"0 isigidi"},1E7:{other:"00 isigidi"},1E8:{other:"000 isigidi"},1E9:{other:"0 isigidi sezigidi"}, +1E10:{other:"00 isigidi sezigidi"},1E11:{other:"000 isigidi sezigidi"},1E12:{other:"0 isigidintathu"},1E13:{other:"00 isigidintathu"},1E14:{other:"000 isigidintathu"}}};goog.i18n.CompactNumberFormatSymbols_zu_ZA=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;"af"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af); +if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar); +if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg; +"bn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn);if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca); +if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr; +"cs"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs;"cy"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da); +if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el); +if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_AU; +if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_GB;if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_SG;if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es; +if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et; +"eu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu);if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi); +if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi;"fil"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr); +if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr_CA;if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr; +if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr; +if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl);if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl; +"gsw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu; +"haw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he; +"hi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi);if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu); +if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu;"id"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is); +if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is;"it"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it; +"iw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja);if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn; +"ko"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko;"ln"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt); +if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv);if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml); +if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr;"ms"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms); +if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb); +if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or); +if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt); +if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro; +"ru"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru;"sk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl); +if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq);if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr); +if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv;"sw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw); +if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te); +if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr); +if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur); +if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur;"vi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh); +if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_HK;if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_TW; +"zu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.currency={};goog.i18n.currency.PRECISION_MASK_=7;goog.i18n.currency.POSITION_FLAG_=16;goog.i18n.currency.SPACE_FLAG_=32;goog.i18n.currency.tier2Enabled_=!1;goog.i18n.currency.addTier2Support=function(){if(!goog.i18n.currency.tier2Enabled_){for(var a in goog.i18n.currency.CurrencyInfoTier2)goog.i18n.currency.CurrencyInfo[a]=goog.i18n.currency.CurrencyInfoTier2[a];goog.i18n.currency.tier2Enabled_=!0}}; +goog.i18n.currency.getGlobalCurrencyPattern=function(a){var b=goog.i18n.currency.CurrencyInfo[a],c=b[0];return a==b[1]?goog.i18n.currency.getCurrencyPattern_(c,b[1]):a+" "+goog.i18n.currency.getCurrencyPattern_(c,b[1])};goog.i18n.currency.getGlobalCurrencySign=function(a){var b=goog.i18n.currency.CurrencyInfo[a];return a==b[1]?a:a+" "+b[1]};goog.i18n.currency.getLocalCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[1])}; +goog.i18n.currency.getLocalCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][1]};goog.i18n.currency.getPortableCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[2])};goog.i18n.currency.getPortableCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][2]};goog.i18n.currency.isPrefixSignPosition=function(a){return 0==(goog.i18n.currency.CurrencyInfo[a][0]&goog.i18n.currency.POSITION_FLAG_)}; +goog.i18n.currency.getCurrencyPattern_=function(a,b){var c=["#,##0"],d=a&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}0==(a&goog.i18n.currency.POSITION_FLAG_)?(c.unshift(a&goog.i18n.currency.SPACE_FLAG_?"' ":"'"),c.unshift(b),c.unshift("'")):c.push(a&goog.i18n.currency.SPACE_FLAG_?" '":"'",b,"'");return c.join("")}; +goog.i18n.currency.adjustPrecision=function(a,b){var c=["0"],d=goog.i18n.currency.CurrencyInfo[b],d=d[0]&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}return a.replace(/0.00/g,c.join(""))}; +goog.i18n.currency.CurrencyInfo={AED:[2,"dh","\u062f.\u0625.","DH"],ALL:[0,"Lek","Lek"],AUD:[2,"$","AU$"],BDT:[2,"\u09f3","Tk"],BGN:[2,"lev","lev"],BRL:[2,"R$","R$"],CAD:[2,"$","C$"],CDF:[2,"FrCD","CDF"],CHF:[2,"CHF","CHF"],CLP:[0,"$","CL$"],CNY:[2,"\u00a5","RMB\u00a5"],COP:[0,"$","COL$"],CRC:[0,"\u20a1","CR\u20a1"],CZK:[50,"K\u010d","K\u010d"],DKK:[18,"kr","kr"],DOP:[2,"$","RD$"],EGP:[2,"\u00a3","LE"],ETB:[2,"Birr","Birr"],EUR:[2,"\u20ac","\u20ac"],GBP:[2,"\u00a3","GB\u00a3"],HKD:[2,"$","HK$"],HRK:[2, +"kn","kn"],HUF:[0,"Ft","Ft"],IDR:[0,"Rp","Rp"],ILS:[2,"\u20aa","IL\u20aa"],INR:[2,"\u20b9","Rs"],IRR:[0,"Rial","IRR"],ISK:[0,"kr","kr"],JMD:[2,"$","JA$"],JPY:[0,"\u00a5","JP\u00a5"],KRW:[0,"\u20a9","KR\u20a9"],LKR:[2,"Rs","SLRs"],LTL:[2,"Lt","Lt"],LVL:[2,"Ls","Ls"],MNT:[0,"\u20ae","MN\u20ae"],MXN:[2,"$","Mex$"],MYR:[2,"RM","RM"],NOK:[50,"kr","NOkr"],PAB:[2,"B/.","B/."],PEN:[2,"S/.","S/."],PHP:[2,"\u20b1","Php"],PKR:[0,"Rs","PKRs."],PLN:[50,"z\u0142","z\u0142"],RON:[2,"RON","RON"],RSD:[0,"din","RSD"], +RUB:[50,"\u0440\u0443\u0431.","\u0440\u0443\u0431."],SAR:[2,"Rial","Rial"],SEK:[2,"kr","kr"],SGD:[2,"$","S$"],THB:[2,"\u0e3f","THB"],TRY:[2,"TL","YTL"],TWD:[2,"NT$","NT$"],TZS:[0,"TSh","TSh"],UAH:[2,"\u20b4","UAH"],USD:[2,"$","US$"],UYU:[2,"$","$U"],VND:[0,"\u20ab","VN\u20ab"],YER:[0,"Rial","Rial"],ZAR:[2,"R","ZAR"]}; +goog.i18n.currency.CurrencyInfoTier2={AFN:[48,"Af.","AFN"],AMD:[0,"Dram","dram"],AOA:[2,"Kz","Kz"],ARS:[2,"$","AR$"],AWG:[2,"Afl.","Afl."],AZN:[2,"man.","man."],BAM:[2,"KM","KM"],BBD:[2,"$","Bds$"],BHD:[3,"din","din"],BIF:[0,"FBu","FBu"],BMD:[2,"$","BD$"],BND:[2,"$","B$"],BOB:[2,"Bs","Bs"],BSD:[2,"$","BS$"],BTN:[2,"Nu.","Nu."],BWP:[2,"P","pula"],BYR:[0,"BYR","BYR"],BZD:[2,"$","BZ$"],CUC:[1,"$","CUC$"],CUP:[2,"$","CU$"],CVE:[2,"CVE","Esc"],DJF:[0,"Fdj","Fdj"],DZD:[2,"din","din"],ERN:[2,"Nfk","Nfk"], +FJD:[2,"$","FJ$"],FKP:[2,"\u00a3","FK\u00a3"],GEL:[2,"GEL","GEL"],GHS:[2,"GHS","GHS"],GIP:[2,"\u00a3","GI\u00a3"],GMD:[2,"GMD","GMD"],GNF:[0,"FG","FG"],GTQ:[2,"Q","GTQ"],GYD:[0,"$","GY$"],HNL:[2,"L","HNL"],HTG:[2,"HTG","HTG"],IQD:[0,"din","IQD"],JOD:[3,"din","JOD"],KES:[2,"Ksh","Ksh"],KGS:[2,"KGS","KGS"],KHR:[2,"Riel","KHR"],KMF:[0,"CF","KMF"],KPW:[0,"\u20a9KP","KPW"],KWD:[3,"din","KWD"],KYD:[2,"$","KY$"],KZT:[2,"\u20b8","KZT"],LAK:[0,"\u20ad","\u20ad"],LBP:[0,"L\u00a3","LBP"],LRD:[2,"$","L$"],LSL:[2, +"LSL","LSL"],LYD:[3,"din","LD"],MAD:[2,"dh","MAD"],MDL:[2,"MDL","MDL"],MGA:[0,"Ar","MGA"],MKD:[2,"din","MKD"],MMK:[0,"K","MMK"],MOP:[2,"MOP","MOP$"],MRO:[0,"MRO","MRO"],MUR:[0,"MURs","MURs"],MWK:[2,"MWK","MWK"],MZN:[2,"MTn","MTn"],NAD:[2,"$","N$"],NGN:[2,"\u20a6","NG\u20a6"],NIO:[2,"C$","C$"],NPR:[2,"Rs","NPRs"],NZD:[2,"$","NZ$"],OMR:[3,"Rial","OMR"],PGK:[2,"PGK","PGK"],PYG:[0,"Gs","PYG"],QAR:[2,"Rial","QR"],RWF:[0,"RF","RF"],SBD:[2,"$","SI$"],SCR:[2,"SCR","SCR"],SDG:[2,"SDG","SDG"],SHP:[2,"\u00a3", +"SH\u00a3"],SLL:[0,"SLL","SLL"],SOS:[0,"SOS","SOS"],SRD:[2,"$","SR$"],STD:[0,"Db","Db"],SYP:[0,"\u00a3","SY\u00a3"],SZL:[2,"SZL","SZL"],TJS:[2,"Som","TJS"],TND:[3,"din","DT"],TOP:[2,"T$","T$"],TTD:[2,"$","TT$"],UGX:[0,"UGX","UGX"],UZS:[0,"so\u02bcm","UZS"],VEF:[2,"Bs","Bs"],VUV:[0,"VUV","VUV"],WST:[2,"WST","WST"],XAF:[0,"FCFA","FCFA"],XCD:[2,"$","EC$"],XOF:[0,"CFA","CFA"],XPF:[0,"FCFP","FCFP"],ZMK:[0,"ZMK","ZMK"]};goog.i18n.NumberFormatSymbols_af={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_af_ZA=goog.i18n.NumberFormatSymbols_af; +goog.i18n.NumberFormatSymbols_am={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ETB"};goog.i18n.NumberFormatSymbols_am_ET=goog.i18n.NumberFormatSymbols_am; +goog.i18n.NumberFormatSymbols_ar={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u0660",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0627\u0633",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0644\u064a\u0633\u00a0\u0631\u0642\u0645",DECIMAL_PATTERN:"#0.###;#0.###-",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#0.00;\u00a4\u00a0#0.00-",DEF_CURRENCY_CODE:"EGP"};goog.i18n.NumberFormatSymbols_ar_001=goog.i18n.NumberFormatSymbols_ar; +goog.i18n.NumberFormatSymbols_ar_EG=goog.i18n.NumberFormatSymbols_ar;goog.i18n.NumberFormatSymbols_bg={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"BGN"};goog.i18n.NumberFormatSymbols_bg_BG=goog.i18n.NumberFormatSymbols_bg; +goog.i18n.NumberFormatSymbols_bn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u09e6",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u09b8\u0982\u0996\u09cd\u09af\u09be\u00a0\u09a8\u09be",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4;(#,##,##0.00\u00a4)",DEF_CURRENCY_CODE:"BDT"};goog.i18n.NumberFormatSymbols_bn_BD=goog.i18n.NumberFormatSymbols_bn; +goog.i18n.NumberFormatSymbols_br={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_br_FR=goog.i18n.NumberFormatSymbols_br; +goog.i18n.NumberFormatSymbols_ca={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_ca_AD=goog.i18n.NumberFormatSymbols_ca;goog.i18n.NumberFormatSymbols_ca_ES=goog.i18n.NumberFormatSymbols_ca; +goog.i18n.NumberFormatSymbols_chr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_chr_US=goog.i18n.NumberFormatSymbols_chr; +goog.i18n.NumberFormatSymbols_cs={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CZK"};goog.i18n.NumberFormatSymbols_cs_CZ=goog.i18n.NumberFormatSymbols_cs; +goog.i18n.NumberFormatSymbols_cy={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_cy_GB=goog.i18n.NumberFormatSymbols_cy; +goog.i18n.NumberFormatSymbols_da={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"DKK"};goog.i18n.NumberFormatSymbols_da_DK=goog.i18n.NumberFormatSymbols_da; +goog.i18n.NumberFormatSymbols_de={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_de_AT={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_de_BE=goog.i18n.NumberFormatSymbols_de; +goog.i18n.NumberFormatSymbols_de_CH={DECIMAL_SEP:".",GROUP_SEP:"'",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4-#,##0.00",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_de_DE=goog.i18n.NumberFormatSymbols_de;goog.i18n.NumberFormatSymbols_de_LU=goog.i18n.NumberFormatSymbols_de; +goog.i18n.NumberFormatSymbols_el={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"[#E0]",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_el_GR=goog.i18n.NumberFormatSymbols_el; +goog.i18n.NumberFormatSymbols_en={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_en_AS=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_AU={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"AUD"};goog.i18n.NumberFormatSymbols_en_Dsrt_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_FM=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_GB={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_en_GU=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_IE={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_en_IN={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_en_MH=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_MP=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_PR=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_PW=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_SG={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"SGD"}; +goog.i18n.NumberFormatSymbols_en_TC=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_UM=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VG=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VI=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_ZA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"}; +goog.i18n.NumberFormatSymbols_es={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_es_419={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"MXN"};goog.i18n.NumberFormatSymbols_es_EA=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_ES=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_IC=goog.i18n.NumberFormatSymbols_es; +goog.i18n.NumberFormatSymbols_et={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_et_EE=goog.i18n.NumberFormatSymbols_et; +goog.i18n.NumberFormatSymbols_eu={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%\u00a0#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_eu_ES=goog.i18n.NumberFormatSymbols_eu; +goog.i18n.NumberFormatSymbols_fa={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u06f0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d7\u06f1\u06f0^",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0646\u0627\u0639\u062f\u062f",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u200e\u00a4#,##0.00;\u200e(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"IRR"};goog.i18n.NumberFormatSymbols_fa_IR=goog.i18n.NumberFormatSymbols_fa; +goog.i18n.NumberFormatSymbols_fi={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"ep\u00e4luku",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fi_FI=goog.i18n.NumberFormatSymbols_fi; +goog.i18n.NumberFormatSymbols_fil={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};goog.i18n.NumberFormatSymbols_fil_PH=goog.i18n.NumberFormatSymbols_fil; +goog.i18n.NumberFormatSymbols_fr={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fr_BL=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_fr_CA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"CAD"};goog.i18n.NumberFormatSymbols_fr_FR=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_GF=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_fr_GP=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MC=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MF=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MQ=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_RE=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_YT=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_gl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_gl_ES=goog.i18n.NumberFormatSymbols_gl; +goog.i18n.NumberFormatSymbols_gsw={DECIMAL_SEP:".",GROUP_SEP:"\u2019",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_gsw_CH=goog.i18n.NumberFormatSymbols_gsw; +goog.i18n.NumberFormatSymbols_gu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_gu_IN=goog.i18n.NumberFormatSymbols_gu; +goog.i18n.NumberFormatSymbols_haw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_haw_US=goog.i18n.NumberFormatSymbols_haw; +goog.i18n.NumberFormatSymbols_he={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};goog.i18n.NumberFormatSymbols_he_IL=goog.i18n.NumberFormatSymbols_he; +goog.i18n.NumberFormatSymbols_hi={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_hi_IN=goog.i18n.NumberFormatSymbols_hi; +goog.i18n.NumberFormatSymbols_hr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HRK"};goog.i18n.NumberFormatSymbols_hr_HR=goog.i18n.NumberFormatSymbols_hr; +goog.i18n.NumberFormatSymbols_hu={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HUF"};goog.i18n.NumberFormatSymbols_hu_HU=goog.i18n.NumberFormatSymbols_hu; +goog.i18n.NumberFormatSymbols_id={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};goog.i18n.NumberFormatSymbols_id_ID=goog.i18n.NumberFormatSymbols_id; +goog.i18n.NumberFormatSymbols_in={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"}; +goog.i18n.NumberFormatSymbols_is={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ISK"};goog.i18n.NumberFormatSymbols_is_IS=goog.i18n.NumberFormatSymbols_is; +goog.i18n.NumberFormatSymbols_it={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_it_IT=goog.i18n.NumberFormatSymbols_it;goog.i18n.NumberFormatSymbols_it_SM=goog.i18n.NumberFormatSymbols_it; +goog.i18n.NumberFormatSymbols_iw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"}; +goog.i18n.NumberFormatSymbols_ja={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"JPY"};goog.i18n.NumberFormatSymbols_ja_JP=goog.i18n.NumberFormatSymbols_ja; +goog.i18n.NumberFormatSymbols_kn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0c88",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_kn_IN=goog.i18n.NumberFormatSymbols_kn; +goog.i18n.NumberFormatSymbols_ko={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"KRW"};goog.i18n.NumberFormatSymbols_ko_KR=goog.i18n.NumberFormatSymbols_ko; +goog.i18n.NumberFormatSymbols_ln={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CDF"};goog.i18n.NumberFormatSymbols_ln_CD=goog.i18n.NumberFormatSymbols_ln; +goog.i18n.NumberFormatSymbols_lt={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2013",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"LTL"};goog.i18n.NumberFormatSymbols_lt_LT=goog.i18n.NumberFormatSymbols_lt; +goog.i18n.NumberFormatSymbols_lv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"nav\u00a0skaitlis",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"LVL"};goog.i18n.NumberFormatSymbols_lv_LV=goog.i18n.NumberFormatSymbols_lv; +goog.i18n.NumberFormatSymbols_ml={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ml_IN=goog.i18n.NumberFormatSymbols_ml; +goog.i18n.NumberFormatSymbols_mr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u0966",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_mr_IN=goog.i18n.NumberFormatSymbols_mr; +goog.i18n.NumberFormatSymbols_ms={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"MYR"};goog.i18n.NumberFormatSymbols_ms_Latn_MY=goog.i18n.NumberFormatSymbols_ms; +goog.i18n.NumberFormatSymbols_mt={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_mt_MT=goog.i18n.NumberFormatSymbols_mt; +goog.i18n.NumberFormatSymbols_nb={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};goog.i18n.NumberFormatSymbols_nb_NO=goog.i18n.NumberFormatSymbols_nb; +goog.i18n.NumberFormatSymbols_nl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_nl_NL=goog.i18n.NumberFormatSymbols_nl; +goog.i18n.NumberFormatSymbols_no={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"}; +goog.i18n.NumberFormatSymbols_or={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_or_IN=goog.i18n.NumberFormatSymbols_or; +goog.i18n.NumberFormatSymbols_pl={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"PLN"};goog.i18n.NumberFormatSymbols_pl_PL=goog.i18n.NumberFormatSymbols_pl; +goog.i18n.NumberFormatSymbols_pt={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"BRL"};goog.i18n.NumberFormatSymbols_pt_BR=goog.i18n.NumberFormatSymbols_pt; +goog.i18n.NumberFormatSymbols_pt_PT={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_ro={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RON"};goog.i18n.NumberFormatSymbols_ro_RO=goog.i18n.NumberFormatSymbols_ro; +goog.i18n.NumberFormatSymbols_ru={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u043d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RUB"};goog.i18n.NumberFormatSymbols_ru_RU=goog.i18n.NumberFormatSymbols_ru; +goog.i18n.NumberFormatSymbols_sk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sk_SK=goog.i18n.NumberFormatSymbols_sk; +goog.i18n.NumberFormatSymbols_sl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sl_SI=goog.i18n.NumberFormatSymbols_sl; +goog.i18n.NumberFormatSymbols_sq={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"ALL"};goog.i18n.NumberFormatSymbols_sq_AL=goog.i18n.NumberFormatSymbols_sq; +goog.i18n.NumberFormatSymbols_sr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RSD"};goog.i18n.NumberFormatSymbols_sr_Cyrl_RS=goog.i18n.NumberFormatSymbols_sr; +goog.i18n.NumberFormatSymbols_sv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d710^",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u00a4\u00a4\u00a4",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"SEK"};goog.i18n.NumberFormatSymbols_sv_SE=goog.i18n.NumberFormatSymbols_sv; +goog.i18n.NumberFormatSymbols_sw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"TZS"};goog.i18n.NumberFormatSymbols_sw_TZ=goog.i18n.NumberFormatSymbols_sw; +goog.i18n.NumberFormatSymbols_ta={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ta_IN=goog.i18n.NumberFormatSymbols_ta; +goog.i18n.NumberFormatSymbols_te={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_te_IN=goog.i18n.NumberFormatSymbols_te; +goog.i18n.NumberFormatSymbols_th={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"THB"};goog.i18n.NumberFormatSymbols_th_TH=goog.i18n.NumberFormatSymbols_th; +goog.i18n.NumberFormatSymbols_tl={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"}; +goog.i18n.NumberFormatSymbols_tr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"TRY"};goog.i18n.NumberFormatSymbols_tr_TR=goog.i18n.NumberFormatSymbols_tr; +goog.i18n.NumberFormatSymbols_uk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0415",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u041d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"UAH"};goog.i18n.NumberFormatSymbols_uk_UA=goog.i18n.NumberFormatSymbols_uk; +goog.i18n.NumberFormatSymbols_ur={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"PKR"};goog.i18n.NumberFormatSymbols_ur_PK=goog.i18n.NumberFormatSymbols_ur; +goog.i18n.NumberFormatSymbols_vi={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"VND"};goog.i18n.NumberFormatSymbols_vi_VN=goog.i18n.NumberFormatSymbols_vi; +goog.i18n.NumberFormatSymbols_zh={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"CNY"};goog.i18n.NumberFormatSymbols_zh_CN=goog.i18n.NumberFormatSymbols_zh; +goog.i18n.NumberFormatSymbols_zh_HK={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"HKD"};goog.i18n.NumberFormatSymbols_zh_Hans_CN=goog.i18n.NumberFormatSymbols_zh; +goog.i18n.NumberFormatSymbols_zh_TW={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"TWD"}; +goog.i18n.NumberFormatSymbols_zu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"I-NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_zu_ZA=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +"af"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af);if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar); +if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg;"bn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn); +if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca);if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca; +if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr;"cs"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs; +"cy"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da);if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de); +if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de; +if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el);if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_AU;if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_GB; +if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_SG; +if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es; +if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et;"eu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu); +if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi);if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi; +"fil"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr);if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr_CA; +if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr; +if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl); +if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl;"gsw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu; +"haw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he;"hi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi); +if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu);if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu; +"id"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is);if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is; +"it"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;"iw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja); +if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn;"ko"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko; +"ln"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt);if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv); +if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml);if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr; +"ms"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms);if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb); +if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or); +if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt; +if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro;"ru"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru; +"sk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl);if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq); +if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr);if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv; +"sw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw);if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te); +if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr); +if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur);if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur; +"vi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_HK; +if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_TW;"zu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormat=function(a,b,c){this.intlCurrencyCode_=b||goog.i18n.NumberFormatSymbols.DEF_CURRENCY_CODE;this.currencyStyle_=c||goog.i18n.NumberFormat.CurrencyStyle.LOCAL;this.maximumIntegerDigits_=40;this.minimumIntegerDigits_=1;this.significantDigits_=0;this.maximumFractionDigits_=3;this.minExponentDigits_=this.minimumFractionDigits_=0;this.showTrailingZeros_=this.useSignForPositiveExponent_=!1;this.positiveSuffix_=this.positivePrefix_="";this.negativePrefix_="-";this.negativeSuffix_=""; +this.multiplier_=1;this.groupingSize_=3;this.useExponentialNotation_=this.decimalSeparatorAlwaysShown_=!1;this.compactStyle_=goog.i18n.NumberFormat.CompactStyle.NONE;this.baseFormattingNumber_=null;"number"==typeof a?this.applyStandardPattern_(a):this.applyPattern_(a)};goog.i18n.NumberFormat.Format={DECIMAL:1,SCIENTIFIC:2,PERCENT:3,CURRENCY:4,COMPACT_SHORT:5,COMPACT_LONG:6};goog.i18n.NumberFormat.CurrencyStyle={LOCAL:0,PORTABLE:1,GLOBAL:2};goog.i18n.NumberFormat.CompactStyle={NONE:0,SHORT:1,LONG:2}; +goog.i18n.NumberFormat.enforceAsciiDigits_=!1;goog.i18n.NumberFormat.setEnforceAsciiDigits=function(a){goog.i18n.NumberFormat.enforceAsciiDigits_=a};goog.i18n.NumberFormat.isEnforceAsciiDigits=function(){return goog.i18n.NumberFormat.enforceAsciiDigits_};goog.i18n.NumberFormat.prototype.setMinimumFractionDigits=function(a){if(0<this.significantDigits_&&0<a)throw Error("Can't combine significant digits and minimum fraction digits");this.minimumFractionDigits_=a}; +goog.i18n.NumberFormat.prototype.setMaximumFractionDigits=function(a){this.maximumFractionDigits_=a};goog.i18n.NumberFormat.prototype.setSignificantDigits=function(a){if(0<this.minimumFractionDigits_&&0<=a)throw Error("Can't combine significant digits and minimum fraction digits");this.significantDigits_=a}; +goog.i18n.NumberFormat.prototype.applyPattern_=function(a){a.replace(/ /g,"\u00a0");var b=[0];this.positivePrefix_=this.parseAffix_(a,b);var c=b[0];this.parseTrunk_(a,b);c=b[0]-c;this.positiveSuffix_=this.parseAffix_(a,b);b[0]<a.length&&a.charAt(b[0])==goog.i18n.NumberFormat.PATTERN_SEPARATOR_?(b[0]++,this.negativePrefix_=this.parseAffix_(a,b),b[0]+=c,this.negativeSuffix_=this.parseAffix_(a,b)):(this.negativePrefix_=this.positivePrefix_+this.negativePrefix_,this.negativeSuffix_+=this.positiveSuffix_)}; +goog.i18n.NumberFormat.prototype.applyStandardPattern_=function(a){switch(a){case goog.i18n.NumberFormat.Format.DECIMAL:this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);break;case goog.i18n.NumberFormat.Format.SCIENTIFIC:this.applyPattern_(goog.i18n.NumberFormatSymbols.SCIENTIFIC_PATTERN);break;case goog.i18n.NumberFormat.Format.PERCENT:this.applyPattern_(goog.i18n.NumberFormatSymbols.PERCENT_PATTERN);break;case goog.i18n.NumberFormat.Format.CURRENCY:this.applyPattern_(goog.i18n.currency.adjustPrecision(goog.i18n.NumberFormatSymbols.CURRENCY_PATTERN, +this.intlCurrencyCode_));break;case goog.i18n.NumberFormat.Format.COMPACT_SHORT:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.SHORT);break;case goog.i18n.NumberFormat.Format.COMPACT_LONG:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.LONG);break;default:throw Error("Unsupported pattern type.");}}; +goog.i18n.NumberFormat.prototype.applyCompactStyle_=function(a){this.compactStyle_=a;this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);this.setMinimumFractionDigits(0);this.setMaximumFractionDigits(2);this.setSignificantDigits(2)}; +goog.i18n.NumberFormat.prototype.parse=function(a,b){var c=b||[0];if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact numbers is unimplemented");var d=NaN;a=a.replace(/ /g,"\u00a0");var e=a.indexOf(this.positivePrefix_,c[0])==c[0],f=a.indexOf(this.negativePrefix_,c[0])==c[0];e&&f&&(this.positivePrefix_.length>this.negativePrefix_.length?f=!1:this.positivePrefix_.length<this.negativePrefix_.length&&(e=!1));e?c[0]+=this.positivePrefix_.length:f&&(c[0]+=this.negativePrefix_.length); +a.indexOf(goog.i18n.NumberFormatSymbols.INFINITY,c[0])==c[0]?(c[0]+=goog.i18n.NumberFormatSymbols.INFINITY.length,d=Infinity):d=this.parseNumber_(a,c);if(e){if(a.indexOf(this.positiveSuffix_,c[0])!=c[0])return NaN;c[0]+=this.positiveSuffix_.length}else if(f){if(a.indexOf(this.negativeSuffix_,c[0])!=c[0])return NaN;c[0]+=this.negativeSuffix_.length}return f?-d:d}; +goog.i18n.NumberFormat.prototype.parseNumber_=function(a,b){var c=!1,d=!1,e=!1,f=1,g=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,h=goog.i18n.NumberFormatSymbols.GROUP_SEP,k=goog.i18n.NumberFormatSymbols.EXP_SYMBOL;if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact style numbers is not implemented");for(var l="";b[0]<a.length;b[0]++){var m=a.charAt(b[0]),p=this.getDigit_(m);if(0<=p&&9>=p)l+=p,e=!0;else if(m==g.charAt(0)){if(c||d)break;l+=".";c=!0}else if(m== +h.charAt(0)&&("\u00a0"!=h.charAt(0)||b[0]+1<a.length&&0<=this.getDigit_(a.charAt(b[0]+1)))){if(c||d)break}else if(m==k.charAt(0)){if(d)break;l+="E";d=!0}else if("+"==m||"-"==m)l+=m;else if(m==goog.i18n.NumberFormatSymbols.PERCENT.charAt(0)){if(1!=f)break;f=100;if(e){b[0]++;break}}else if(m==goog.i18n.NumberFormatSymbols.PERMILL.charAt(0)){if(1!=f)break;f=1E3;if(e){b[0]++;break}}else break}return parseFloat(l)/f}; +goog.i18n.NumberFormat.prototype.format=function(a){if(isNaN(a))return goog.i18n.NumberFormatSymbols.NAN;var b=[],c=goog.isNull(this.baseFormattingNumber_)?a:this.baseFormattingNumber_,c=this.getUnitAfterRounding_(c,a);a/=Math.pow(10,c.divisorBase);b.push(c.prefix);var d=0>a||0==a&&0>1/a;b.push(d?this.negativePrefix_:this.positivePrefix_);isFinite(a)?(a*=d?-1:1,a*=this.multiplier_,this.useExponentialNotation_?this.subformatExponential_(a,b):this.subformatFixed_(a,this.minimumIntegerDigits_,b)):b.push(goog.i18n.NumberFormatSymbols.INFINITY); +b.push(d?this.negativeSuffix_:this.positiveSuffix_);b.push(c.suffix);return b.join("")};goog.i18n.NumberFormat.prototype.roundNumber_=function(a){var b=Math.pow(10,this.maximumFractionDigits_),c=0>=this.significantDigits_?Math.round(a*b):Math.floor(this.roundToSignificantDigits_(a*b,this.significantDigits_,this.maximumFractionDigits_));isFinite(c)?(a=Math.floor(c/b),b=Math.floor(c-a*b)):b=0;return{intValue:a,fracValue:b}}; +goog.i18n.NumberFormat.prototype.subformatFixed_=function(a,b,c){if(this.minimumFractionDigits_>this.maximumFractionDigits_)throw Error("Min value must be less than max value");a=this.roundNumber_(a);var d=Math.pow(10,this.maximumFractionDigits_),e=a.intValue,f=a.fracValue,g=0==e?0:this.intLog10_(e)+1,h=0<this.minimumFractionDigits_||0<f||this.showTrailingZeros_&&g<this.significantDigits_;a=this.minimumFractionDigits_;h&&(a=this.showTrailingZeros_&&0<this.significantDigits_?this.significantDigits_- +g:this.minimumFractionDigits_);for(var k="",g=e;1E20<g;)k="0"+k,g=Math.round(g/10);var k=g+k,l=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,m=goog.i18n.NumberFormatSymbols.GROUP_SEP,g=goog.i18n.NumberFormat.enforceAsciiDigits_?48:goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0),p=k.length;if(0<e||0<b){for(e=p;e<b;e++)c.push(String.fromCharCode(g));for(e=0;e<p;e++)c.push(String.fromCharCode(g+1*k.charAt(e))),1<p-e&&0<this.groupingSize_&&1==(p-e)%this.groupingSize_&&c.push(m)}else h||c.push(String.fromCharCode(g)); +(this.decimalSeparatorAlwaysShown_||h)&&c.push(l);b=""+(f+d);for(d=b.length;"0"==b.charAt(d-1)&&d>a+1;)d--;for(e=1;e<d;e++)c.push(String.fromCharCode(g+1*b.charAt(e)))}; +goog.i18n.NumberFormat.prototype.addExponentPart_=function(a,b){b.push(goog.i18n.NumberFormatSymbols.EXP_SYMBOL);0>a?(a=-a,b.push(goog.i18n.NumberFormatSymbols.MINUS_SIGN)):this.useSignForPositiveExponent_&&b.push(goog.i18n.NumberFormatSymbols.PLUS_SIGN);for(var c=""+a,d=goog.i18n.NumberFormat.enforceAsciiDigits_?"0":goog.i18n.NumberFormatSymbols.ZERO_DIGIT,e=c.length;e<this.minExponentDigits_;e++)b.push(d);b.push(c)}; +goog.i18n.NumberFormat.prototype.subformatExponential_=function(a,b){if(0==a)this.subformatFixed_(a,this.minimumIntegerDigits_,b),this.addExponentPart_(0,b);else{var c=goog.math.safeFloor(Math.log(a)/Math.log(10));a/=Math.pow(10,c);var d=this.minimumIntegerDigits_;if(1<this.maximumIntegerDigits_&&this.maximumIntegerDigits_>this.minimumIntegerDigits_){for(;0!=c%this.maximumIntegerDigits_;)a*=10,c--;d=1}else 1>this.minimumIntegerDigits_?(c++,a/=10):(c-=this.minimumIntegerDigits_-1,a*=Math.pow(10,this.minimumIntegerDigits_- +1));this.subformatFixed_(a,d,b);this.addExponentPart_(c,b)}};goog.i18n.NumberFormat.prototype.getDigit_=function(a){a=a.charCodeAt(0);if(48<=a&&58>a)return a-48;var b=goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0);return b<=a&&a<b+10?a-b:-1};goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_="0";goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_=",";goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_=".";goog.i18n.NumberFormat.PATTERN_PER_MILLE_="\u2030";goog.i18n.NumberFormat.PATTERN_PERCENT_="%"; +goog.i18n.NumberFormat.PATTERN_DIGIT_="#";goog.i18n.NumberFormat.PATTERN_SEPARATOR_=";";goog.i18n.NumberFormat.PATTERN_EXPONENT_="E";goog.i18n.NumberFormat.PATTERN_PLUS_="+";goog.i18n.NumberFormat.PATTERN_MINUS_="-";goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_="\u00a4";goog.i18n.NumberFormat.QUOTE_="'"; +goog.i18n.NumberFormat.prototype.parseAffix_=function(a,b){for(var c="",d=!1,e=a.length;b[0]<e;b[0]++){var f=a.charAt(b[0]);if(f==goog.i18n.NumberFormat.QUOTE_)b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.QUOTE_?(b[0]++,c+="'"):d=!d;else if(d)c+=f;else switch(f){case goog.i18n.NumberFormat.PATTERN_DIGIT_:case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_SEPARATOR_:return c; +case goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_:if(b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_)b[0]++,c+=this.intlCurrencyCode_;else switch(this.currencyStyle_){case goog.i18n.NumberFormat.CurrencyStyle.LOCAL:c+=goog.i18n.currency.getLocalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.GLOBAL:c+=goog.i18n.currency.getGlobalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.PORTABLE:c+=goog.i18n.currency.getPortableCurrencySign(this.intlCurrencyCode_)}break; +case goog.i18n.NumberFormat.PATTERN_PERCENT_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=100;c+=goog.i18n.NumberFormatSymbols.PERCENT;break;case goog.i18n.NumberFormat.PATTERN_PER_MILLE_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=1E3;c+=goog.i18n.NumberFormatSymbols.PERMILL;break;default:c+=f}}return c}; +goog.i18n.NumberFormat.prototype.parseTrunk_=function(a,b){for(var c=-1,d=0,e=0,f=0,g=-1,h=a.length,k=!0;b[0]<h&&k;b[0]++){var l=a.charAt(b[0]);switch(l){case goog.i18n.NumberFormat.PATTERN_DIGIT_:0<e?f++:d++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:if(0<f)throw Error('Unexpected "0" in pattern "'+a+'"');e++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:g=0;break;case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:if(0<=c)throw Error('Multiple decimal separators in pattern "'+ +a+'"');c=d+e+f;break;case goog.i18n.NumberFormat.PATTERN_EXPONENT_:if(this.useExponentialNotation_)throw Error('Multiple exponential symbols in pattern "'+a+'"');this.useExponentialNotation_=!0;this.minExponentDigits_=0;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_PLUS_&&(b[0]++,this.useSignForPositiveExponent_=!0);for(;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_;)b[0]++,this.minExponentDigits_++;if(1>d+e||1>this.minExponentDigits_)throw Error('Malformed exponential pattern "'+ +a+'"');k=!1;break;default:b[0]--,k=!1}}0==e&&0<d&&0<=c&&(e=c,0==e&&e++,f=d-e,d=e-1,e=1);if(0>c&&0<f||0<=c&&(c<d||c>d+e)||0==g)throw Error('Malformed pattern "'+a+'"');f=d+e+f;this.maximumFractionDigits_=0<=c?f-c:0;0<=c&&(this.minimumFractionDigits_=d+e-c,0>this.minimumFractionDigits_&&(this.minimumFractionDigits_=0));e=0<=c?c:f;this.minimumIntegerDigits_=e-d;this.useExponentialNotation_&&(this.maximumIntegerDigits_=d+this.minimumIntegerDigits_,0==this.maximumFractionDigits_&&0==this.minimumIntegerDigits_&& +(this.minimumIntegerDigits_=1));this.groupingSize_=Math.max(0,g);this.decimalSeparatorAlwaysShown_=0==c||c==f};goog.i18n.NumberFormat.NULL_UNIT_={prefix:"",suffix:"",divisorBase:0}; +goog.i18n.NumberFormat.prototype.getUnitFor_=function(a,b){var c=this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.SHORT?goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_SHORT_PATTERN:goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_LONG_PATTERN;if(3>a)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.min(14,a);c=c[Math.pow(10,a)];if(!c)return goog.i18n.NumberFormat.NULL_UNIT_;c=c[b];return c&&"0"!=c?(c=/([^0]*)(0+)(.*)/.exec(c))?{prefix:c[1],suffix:c[3],divisorBase:a-(c[2].length-1)}: +goog.i18n.NumberFormat.NULL_UNIT_:goog.i18n.NumberFormat.NULL_UNIT_}; +goog.i18n.NumberFormat.prototype.getUnitAfterRounding_=function(a,b){if(this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.NONE)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.abs(a);b=Math.abs(b);var c=this.pluralForm_(a),d=1>=a?0:this.intLog10_(a),c=this.getUnitFor_(d,c).divisorBase,d=b/Math.pow(10,c),d=this.roundNumber_(d),e=a/Math.pow(10,c),e=this.roundNumber_(e),d=this.pluralForm_(d.intValue+d.fracValue);return this.getUnitFor_(c+this.intLog10_(e.intValue),d)}; +goog.i18n.NumberFormat.prototype.intLog10_=function(a){for(var b=0;1<=(a/=10);)b++;return b};goog.i18n.NumberFormat.prototype.roundToSignificantDigits_=function(a,b,c){if(!a)return a;var d=this.intLog10_(a);b=b-d-1;if(b<-c)return c=Math.pow(10,c),Math.round(a/c)*c;c=Math.pow(10,b);a=Math.round(a*c);return a/c};goog.i18n.NumberFormat.prototype.pluralForm_=function(){return"other"};goog.i18n.ordinalRules={};goog.i18n.ordinalRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.ordinalRules.defaultSelect_=function(){return goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.frSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.huSelect_=function(a){return 1==a||5==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.svSelect_=function(a){return 1!=a%10&&2!=a%10||11==a%100||12==a%100?goog.i18n.ordinalRules.Keyword.OTHER:goog.i18n.ordinalRules.Keyword.ONE};goog.i18n.ordinalRules.enSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.ordinalRules.Keyword.ONE:2==a%10&&12!=a%100?goog.i18n.ordinalRules.Keyword.TWO:3==a%10&&13!=a%100?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.itSelect_=function(a){return 11==a||8==a||80==a||800==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.caSelect_=function(a){return 1==a||3==a?goog.i18n.ordinalRules.Keyword.ONE:2==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.mrSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.guSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.bnSelect_=function(a){return 1==a||5==a||7==a||8==a||9==a||10==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.zuSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:a==(a|0)&&2<=a&&9>=a?goog.i18n.ordinalRules.Keyword.FEW:a==(a|0)&&(10<=a&&19>=a||100<=a&&199>=a||1E3<=a&&1999>=a)?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"am"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ar"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bg"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.bnSelect_);"br"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ca"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.caSelect_);"chr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"cs"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"cy"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"da"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"de"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"el"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"en"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"et"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"eu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fa"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fil"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"fr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_); +if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_;"gl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gsw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"haw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"he"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"hr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.huSelect_);"id"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"is"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"it"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.itSelect_);"iw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ja"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ln"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ml"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"mr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.mrSelect_);"ms"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_); +"mt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nb"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"no"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"or"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"pl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"pt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"ro"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"ru"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"sk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sq"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.svSelect_);"sw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ta"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"te"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"th"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ur"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"vi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"zh"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_; +if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.zuSelect_);goog.i18n.pluralRules={};goog.i18n.pluralRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.pluralRules.defaultSelect_=function(){return goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.arSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&99>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.heSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:0!=a&&0==a%10?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.enSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.filSelect_=function(a){return 0==a||1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.frSelect_=function(a){return 0<=a&&2>=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.lvSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.iuSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.gaSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a&&6>=a?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&7<=a&&10>=a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.roSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||1!=a&&a==(a|0)&&1<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.ltSelect_=function(a){return 1==a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&9>=a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.beSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:0==a%10||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&11<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.csSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&4>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.plSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:1!=a&&(0==a%10||1==a%10)||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&12<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.slSelect_=function(a){return 1==a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%100?goog.i18n.pluralRules.Keyword.TWO:3==a%100||4==a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.mtSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||a==(a|0)&&2<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.mkSelect_=function(a){return 1==a%10&&11!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.cySelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:3==a?goog.i18n.pluralRules.Keyword.FEW:6==a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.lagSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:0<=a&&2>=a&&0!=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.shiSelect_=function(a){return 0<=a&&1>=a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&10>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.brSelect_=function(a){return 1==a%10&&11!=a%100&&71!=a%100&&91!=a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%10&&12!=a%100&&72!=a%100&&92!=a%100?goog.i18n.pluralRules.Keyword.TWO:(3==a%10||4==a%10||9==a%10)&&(10>a%100||19<a%100)&&(70>a%100||79<a%100)&&(90>a%100||99<a%100)?goog.i18n.pluralRules.Keyword.FEW:0!=a&&0==a%1E6?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.kshSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.tzmSelect_=function(a){return 0==a||1==a||a==(a|0)&&11<=a&&99>=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.gvSelect_=function(a){return 1==a%10||2==a%10||0==a%20?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.gdSelect_=function(a){return 1==a||11==a?goog.i18n.pluralRules.Keyword.ONE:2==a||12==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&(3<=a&&10>=a||13<=a&&19>=a)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"am"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_); +"ar"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.arSelect_);"bg"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"bn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"br"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.brSelect_);"ca"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"chr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"cs"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"cy"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.cySelect_);"da"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"de"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"el"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"en"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"et"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"eu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fa"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fil"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"fr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_);if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_; +"gl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gsw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"haw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"he"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"hi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_); +"hr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"hu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"id"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"is"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"it"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"iw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"ja"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ln"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"lt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ltSelect_); +"lv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.lvSelect_);"ml"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"mr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ms"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"mt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.mtSelect_);"nb"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"nl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"no"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"or"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"pl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.plSelect_);"pt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"ro"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.roSelect_);"ru"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"sl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.slSelect_);"sq"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"sr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"sw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ta"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"te"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"th"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_); +"tl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"tr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"ur"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"vi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"zh"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_); +if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);goog.i18n.MessageFormat=function(a){this.literals_=[];this.parsedPattern_=[];this.numberFormatter_=new goog.i18n.NumberFormat(goog.i18n.NumberFormat.Format.DECIMAL);this.parsePattern_(a)};goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_="\ufddf_";goog.i18n.MessageFormat.Element_={STRING:0,BLOCK:1};goog.i18n.MessageFormat.BlockType_={PLURAL:0,ORDINAL:1,SELECT:2,SIMPLE:3,STRING:4,UNKNOWN:5};goog.i18n.MessageFormat.OTHER_="other";goog.i18n.MessageFormat.REGEX_LITERAL_=/'([{}#].*?)'/g; +goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_=/''/g;goog.i18n.MessageFormat.prototype.format=function(a){return this.format_(a,!1)};goog.i18n.MessageFormat.prototype.format_=function(a,b){if(0==this.parsedPattern_.length)return"";var c=[];this.formatBlock_(this.parsedPattern_,a,b,c);c=c.join("");for(b||goog.asserts.assert(-1==c.search("#"),"Not all # were replaced.");0<this.literals_.length;)c=c.replace(this.buildPlaceholder_(this.literals_),this.literals_.pop());return c}; +goog.i18n.MessageFormat.prototype.formatBlock_=function(a,b,c,d){for(var e=0;e<a.length;e++)switch(a[e].type){case goog.i18n.MessageFormat.BlockType_.STRING:d.push(a[e].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:var f=a[e].value;this.formatSimplePlaceholder_(f,b,d);break;case goog.i18n.MessageFormat.BlockType_.SELECT:f=a[e].value;this.formatSelectBlock_(f,b,c,d);break;case goog.i18n.MessageFormat.BlockType_.PLURAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.pluralRules.select, +c,d);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.ordinalRules.select,c,d);break;default:goog.asserts.fail("Unrecognized block type.")}};goog.i18n.MessageFormat.prototype.formatSimplePlaceholder_=function(a,b,c){b=b[a];goog.isDef(b)?(this.literals_.push(b),c.push(this.buildPlaceholder_(this.literals_))):c.push("Undefined parameter - "+a)}; +goog.i18n.MessageFormat.prototype.formatSelectBlock_=function(a,b,c,d){var e=a.argumentIndex;goog.isDef(b[e])?(e=a[b[e]],goog.isDef(e)||(e=a[goog.i18n.MessageFormat.OTHER_],goog.asserts.assertArray(e,"Invalid option or missing other option for select block.")),this.formatBlock_(e,b,c,d)):d.push("Undefined parameter - "+e)}; +goog.i18n.MessageFormat.prototype.formatPluralOrdinalBlock_=function(a,b,c,d,e){var f=a.argumentIndex,g=a.argumentOffset,h=+b[f];isNaN(h)?e.push("Undefined or invalid parameter - "+f):(g=h-g,f=a[b[f]],goog.isDef(f)||(goog.asserts.assert(0<=g,"Argument index smaller than offset."),c=c(g),goog.asserts.assertString(c,"Invalid plural key."),f=a[c],goog.isDef(f)||(f=a[goog.i18n.MessageFormat.OTHER_]),goog.asserts.assertArray(f,"Invalid option or missing other option for plural block.")),a=[],this.formatBlock_(f, +b,d,a),b=a.join(""),goog.asserts.assertString(b,"Empty block in plural."),d?e.push(b):(d=this.numberFormatter_.format(g),e.push(b.replace(/#/g,d))))};goog.i18n.MessageFormat.prototype.parsePattern_=function(a){a&&(a=this.insertPlaceholders_(a),this.parsedPattern_=this.parseBlock_(a))}; +goog.i18n.MessageFormat.prototype.insertPlaceholders_=function(a){var b=this.literals_,c=goog.bind(this.buildPlaceholder_,this);a=a.replace(goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_,function(){b.push("'");return c(b)});return a=a.replace(goog.i18n.MessageFormat.REGEX_LITERAL_,function(a,e){b.push(e);return c(b)})}; +goog.i18n.MessageFormat.prototype.extractParts_=function(a){var b=0,c=[],d=[],e=/[{}]/g;e.lastIndex=0;for(var f;f=e.exec(a);){var g=f.index;"}"==f[0]?(f=c.pop(),goog.asserts.assert(goog.isDef(f)&&"{"==f,"No matching { for }."),0==c.length&&(f={},f.type=goog.i18n.MessageFormat.Element_.BLOCK,f.value=a.substring(b,g),d.push(f),b=g+1)):(0==c.length&&(b=a.substring(b,g),""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b}),b=g+1),c.push("{"))}goog.asserts.assert(0==c.length,"There are mismatched { or } in the pattern."); +b=a.substring(b);""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b});return d};goog.i18n.MessageFormat.PLURAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*plural\s*,(?:\s*offset:(\d+))?/;goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*selectordinal\s*,/;goog.i18n.MessageFormat.SELECT_BLOCK_RE_=/^\s*(\w+)\s*,\s*select\s*,/; +goog.i18n.MessageFormat.prototype.parseBlockType_=function(a){return goog.i18n.MessageFormat.PLURAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.PLURAL:goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.ORDINAL:goog.i18n.MessageFormat.SELECT_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.SELECT:/^\s*\w+\s*/.test(a)?goog.i18n.MessageFormat.BlockType_.SIMPLE:goog.i18n.MessageFormat.BlockType_.UNKNOWN}; +goog.i18n.MessageFormat.prototype.parseBlock_=function(a){var b=[];a=this.extractParts_(a);for(var c=0;c<a.length;c++){var d={};if(goog.i18n.MessageFormat.Element_.STRING==a[c].type)d.type=goog.i18n.MessageFormat.BlockType_.STRING,d.value=a[c].value;else if(goog.i18n.MessageFormat.Element_.BLOCK==a[c].type){var e=this.parseBlockType_(a[c].value);switch(e){case goog.i18n.MessageFormat.BlockType_.SELECT:d.type=goog.i18n.MessageFormat.BlockType_.SELECT;d.value=this.parseSelectBlock_(a[c].value);break; +case goog.i18n.MessageFormat.BlockType_.PLURAL:d.type=goog.i18n.MessageFormat.BlockType_.PLURAL;d.value=this.parsePluralBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:d.type=goog.i18n.MessageFormat.BlockType_.ORDINAL;d.value=this.parseOrdinalBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:d.type=goog.i18n.MessageFormat.BlockType_.SIMPLE;d.value=a[c].value;break;default:goog.asserts.fail("Unknown block type.")}}else goog.asserts.fail("Unknown part of the pattern."); +b.push(d)}return b}; +goog.i18n.MessageFormat.prototype.parseSelectBlock_=function(a){var b="",c=goog.i18n.MessageFormat.SELECT_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing select key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid select value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");c[e.replace(/\s/g, +"")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in select statement.");return c}; +goog.i18n.MessageFormat.prototype.parsePluralBlock_=function(a){var b="",c=0,d=goog.i18n.MessageFormat.PLURAL_BLOCK_RE_;a=a.replace(d,function(a,d,e){b=d;e&&(c=parseInt(e,10));return""});d={};d.argumentIndex=b;d.argumentOffset=c;a=this.extractParts_(a);for(var e=0;e<a.length;){var f=a[e].value;goog.asserts.assertString(f,"Missing plural key element.");e++;goog.asserts.assert(e<a.length,"Missing or invalid plural value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[e].type)var g=this.parseBlock_(a[e].value); +else goog.asserts.fail("Expected block type.");d[f.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=g;e++}goog.asserts.assertArray(d[goog.i18n.MessageFormat.OTHER_],"Missing other key in plural statement.");return d}; +goog.i18n.MessageFormat.prototype.parseOrdinalBlock_=function(a){var b="",c=goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;c.argumentOffset=0;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing ordinal key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid ordinal value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type."); +c[e.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in selectordinal statement.");return c};goog.i18n.MessageFormat.prototype.buildPlaceholder_=function(a){goog.asserts.assert(0<a.length,"Literal array is empty.");a=(a.length-1).toString(10);return goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_+a+"_"};cvox.TtsCapturingEventListener=function(){};cvox.TtsInterface=function(){};cvox.TtsInterface.prototype.speak=function(){};cvox.TtsInterface.prototype.isSpeaking=function(){};cvox.TtsInterface.prototype.stop=function(){};cvox.TtsInterface.prototype.increaseOrDecreaseProperty=function(){};cvox.TtsInterface.prototype.getDefaultProperty=function(){};cvox.AbstractTts=function(){this.ttsProperties={};this.propertyDefault={rate:0.5,pitch:0.5,volume:0.5};this.propertyMin={rate:0,pitch:0,volume:0};this.propertyMax={rate:1,pitch:1,volume:1};this.propertyStep={rate:0.1,pitch:0.1,volume:0.1};if(void 0==cvox.AbstractTts.pronunciationDictionaryRegexp_){var a=[],b;for(b in cvox.AbstractTts.PRONUNCIATION_DICTIONARY)a.push(b);a="\\b("+a.join("|")+")\\b";cvox.AbstractTts.pronunciationDictionaryRegexp_=RegExp(a,"ig")}if(void 0==cvox.AbstractTts.substitutionDictionaryRegexp_){var a= +[],c;for(c in cvox.AbstractTts.SUBSTITUTION_DICTIONARY)a.push(c);a="("+a.join("|")+")";cvox.AbstractTts.substitutionDictionaryRegexp_=RegExp(a,"ig")}};cvox.AbstractTts.prototype.speak=function(){return this};cvox.AbstractTts.prototype.isSpeaking=function(){return!1};cvox.AbstractTts.prototype.stop=function(){}; +cvox.AbstractTts.prototype.increaseOrDecreaseProperty=function(a,b){var c=this.propertyMin[a],d=this.propertyMax[a],e=this.propertyStep[a],f=this.ttsProperties[a],f=b?f+e:f-e;this.ttsProperties[a]=Math.max(Math.min(f,d),c)}; +cvox.AbstractTts.prototype.mergeProperties=function(a){var b={},c;if(this.ttsProperties)for(c in this.ttsProperties)b[c]=this.ttsProperties[c];if(a){c=cvox.AbstractTts;"number"==typeof a[c.VOLUME]&&(b[c.VOLUME]=a[c.VOLUME]);"number"==typeof a[c.PITCH]&&(b[c.PITCH]=a[c.PITCH]);"number"==typeof a[c.RATE]&&(b[c.RATE]=a[c.RATE]);"string"==typeof a[c.LANG]&&(b[c.LANG]=a[c.LANG]);var d=this,e=function(c,e){if("number"==typeof a[e]&&"number"==typeof b[c]){b[c]+=a[e];var h=d.propertyMin[c],k=d.propertyMax[c]; +b[c]>k?b[c]=k:b[c]<h&&(b[c]=h)}};e(c.VOLUME,c.RELATIVE_VOLUME);e(c.PITCH,c.RELATIVE_PITCH);e(c.RATE,c.RELATIVE_RATE)}return b};cvox.AbstractTts.RATE="rate";cvox.AbstractTts.PITCH="pitch";cvox.AbstractTts.VOLUME="volume";cvox.AbstractTts.LANG="lang";cvox.AbstractTts.RELATIVE_RATE="relativeRate";cvox.AbstractTts.RELATIVE_PITCH="relativePitch";cvox.AbstractTts.RELATIVE_VOLUME="relativeVolume";cvox.AbstractTts.COLOR="color";cvox.AbstractTts.FONT_WEIGHT="fontWeight";cvox.AbstractTts.PUNCTUATION_ECHO="punctuationEcho"; +cvox.AbstractTts.PAUSE="pause";cvox.AbstractTts.PERSONALITY_ANNOTATION={relativePitch:-0.25,color:"yellow",punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT={punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ASIDE={relativePitch:-0.1,color:"#669"};cvox.AbstractTts.PERSONALITY_CAPITAL={relativePitch:0.6};cvox.AbstractTts.PERSONALITY_DELETED={punctuationEcho:"none",relativePitch:-0.6};cvox.AbstractTts.PERSONALITY_QUOTE={relativePitch:0.1,color:"#b6b",fontWeight:"bold"}; +cvox.AbstractTts.PERSONALITY_STRONG={relativePitch:0.1,color:"#b66",fontWeight:"bold"};cvox.AbstractTts.PERSONALITY_EMPHASIS={relativeVolume:0.1,relativeRate:-0.1,color:"#6bb",fontWeight:"bold"};cvox.AbstractTts.DEBUG=!0;cvox.AbstractTts.QUEUE_MODE_FLUSH=0;cvox.AbstractTts.QUEUE_MODE_QUEUE=1; +cvox.AbstractTts.CHARACTER_DICTIONARY={" ":"space","`":"backtick","~":"tilde","!":"exclamation","@":"at","#":"pound",$:"dollar","%":"percent","^":"caret","&":"ampersand","*":"asterisk","(":"open_paren",")":"close_paren","-":"dash",_:"underscore","=":"equals","+":"plus","[":"left_bracket","]":"right_bracket","{":"left_brace","}":"right_brace","|":"pipe",";":"semicolon",":":"colon",",":"comma",".":"dot","<":"less_than",">":"greater_than","/":"slash","?":"question_mark",'"':"quote","'":"apostrophe", +"\t":"tab","\r":"return","\n":"new line","\\":"backslash"};cvox.AbstractTts.PRONUNCIATION_DICTIONARY={admob:"ad-mob",adsense:"ad-sense",adwords:"ad-words",angularjs:"angular j s",bcc:"B C C",cc:"C C",chromevox:"chrome vox",cr48:"C R 48",ctrl:"control",doubleclick:"double-click",gmail:"gee mail",gtalk:"gee talk",http:"H T T P",https:"H T T P S",igoogle:"eye google",pagerank:"page-rank",username:"user-name",www:"W W W",youtube:"you tube"}; +cvox.AbstractTts.SUBSTITUTION_DICTIONARY={"://":"colon slash slash","\u00bc":"one fourth","\u00bd":"one half","\u200e":"left to right mark","\u2190":"left arrow","\u2191":"up arrow","\u2192":"right arrow","\u2193":"down arrow","\u21d0":"left double arrow","\u21d1":"up double arrow","\u21d2":"right double arrow","\u21d3":"down double arrow","\u21e6":"left arrow","\u21e7":"up arrow","\u21e8":"right arrow","\u21e9":"down arrow","\u2303":"control","\u2318":"command","\u2325":"option","\u25b2":"up triangle", +"\u25b3":"up triangle","\u25b4":"up triangle","\u25b5":"up triangle","\u25b6":"right triangle","\u25b7":"right triangle","\u25b8":"right triangle","\u25b9":"right triangle","\u25ba":"right pointer","\u25bb":"right pointer","\u25bc":"down triangle","\u25bd":"down triangle","\u25be":"down triangle","\u25bf":"down triangle","\u25c0":"left triangle","\u25c1":"left triangle","\u25c2":"left triangle","\u25c3":"left triangle","\u25c4":"left pointer","\u25c5":"left pointer","\uf8ff":"apple"}; +cvox.AbstractTts.repetitionRegexp_=/([-\/\\|!@#$%^&*\(\)=_+\[\]\{\}.?;'":<>])\1{2,}/g;cvox.AbstractTts.repetitionReplace_=function(a){var b=a.length;return" "+(new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg(cvox.AbstractTts.CHARACTER_DICTIONARY[a[0]]))).format({COUNT:b})+" "};cvox.AbstractTts.prototype.getDefaultProperty=function(a){return this.propertyDefault[a]};cvox.AbstractEarcons=function(){this.enabled=!0};cvox.AbstractEarcons.prototype.playEarcon=function(){};cvox.AbstractEarcons.prototype.playEarconByName=function(a){this.playEarcon(this.getEarconId(a))};cvox.AbstractEarcons.prototype.earconsAvailable=function(){return!0}; +cvox.AbstractEarcons.prototype.getEarconId=function(a){this.earconNamesToIds||(this.earconNamesToIds={},this.earconNamesToIds.ALERT_MODAL=cvox.AbstractEarcons.ALERT_MODAL,this.earconNamesToIds.ALERT_NONMODAL=cvox.AbstractEarcons.ALERT_NONMODAL,this.earconNamesToIds.BULLET=cvox.AbstractEarcons.BULLET,this.earconNamesToIds.BUSY_PROGRESS_LOOP=cvox.AbstractEarcons.BUSY_PROGRESS_LOOP,this.earconNamesToIds.BUSY_WORKING_LOOP=cvox.AbstractEarcons.BUSY_WORKING_LOOP,this.earconNamesToIds.BUTTON=cvox.AbstractEarcons.BUTTON, +this.earconNamesToIds.CHECK_OFF=cvox.AbstractEarcons.CHECK_OFF,this.earconNamesToIds.CHECK_ON=cvox.AbstractEarcons.CHECK_ON,this.earconNamesToIds.CHROMEVOX_DISABLED=cvox.AbstractEarcons.CHROMEVOX_DISABLED,this.earconNamesToIds.CHROMEVOX_ENABLED=cvox.AbstractEarcons.CHROMEVOX_ENABLED,this.earconNamesToIds.COLLAPSED=cvox.AbstractEarcons.COLLAPSED,this.earconNamesToIds.EDITABLE_TEXT=cvox.AbstractEarcons.EDITABLE_TEXT,this.earconNamesToIds.ELLIPSIS=cvox.AbstractEarcons.ELLIPSIS,this.earconNamesToIds.EXPANDED= +cvox.AbstractEarcons.EXPANDED,this.earconNamesToIds.FONT_CHANGE=cvox.AbstractEarcons.FONT_CHANGE,this.earconNamesToIds.INVALID_KEYPRESS=cvox.AbstractEarcons.INVALID_KEYPRESS,this.earconNamesToIds.LINK=cvox.AbstractEarcons.LINK,this.earconNamesToIds.LISTBOX=cvox.AbstractEarcons.LISTBOX,this.earconNamesToIds.LIST_ITEM=cvox.AbstractEarcons.LIST_ITEM,this.earconNamesToIds.LONG_DESC=cvox.AbstractEarcons.LONG_DESC,this.earconNamesToIds.NEW_MAIL=cvox.AbstractEarcons.NEW_MAIL,this.earconNamesToIds.OBJECT_CLOSE= +cvox.AbstractEarcons.OBJECT_CLOSE,this.earconNamesToIds.OBJECT_DELETE=cvox.AbstractEarcons.OBJECT_DELETE,this.earconNamesToIds.OBJECT_DESELECT=cvox.AbstractEarcons.OBJECT_DESELECT,this.earconNamesToIds.OBJECT_ENTER=cvox.AbstractEarcons.OBJECT_ENTER,this.earconNamesToIds.OBJECT_EXIT=cvox.AbstractEarcons.OBJECT_EXIT,this.earconNamesToIds.OBJECT_OPEN=cvox.AbstractEarcons.OBJECT_OPEN,this.earconNamesToIds.OBJECT_SELECT=cvox.AbstractEarcons.OBJECT_SELECT,this.earconNamesToIds.PARAGRAPH_BREAK=cvox.AbstractEarcons.PARAGRAPH_BREAK, +this.earconNamesToIds.SEARCH_HIT=cvox.AbstractEarcons.SEARCH_HIT,this.earconNamesToIds.SEARCH_MISS=cvox.AbstractEarcons.SEARCH_MISS,this.earconNamesToIds.SECTION=cvox.AbstractEarcons.SECTION,this.earconNamesToIds.SELECTION=cvox.AbstractEarcons.SELECTION,this.earconNamesToIds.SELECTION_REVERSE=cvox.AbstractEarcons.SELECTION_REVERSE,this.earconNamesToIds.SPECIAL_CONTENT=cvox.AbstractEarcons.SPECIAL_CONTENT,this.earconNamesToIds.TASK_SUCCESS=cvox.AbstractEarcons.TASK_SUCCESS,this.earconNamesToIds.WRAP= +cvox.AbstractEarcons.WRAP,this.earconNamesToIds.WRAP_EDGE=cvox.AbstractEarcons.WRAP_EDGE);return this.earconNamesToIds[a]};cvox.AbstractEarcons.prototype.getEarconFilename=function(a){return cvox.AbstractEarcons.earconMap[a]};cvox.AbstractEarcons.prototype.toggle=function(){return this.enabled=!this.enabled};cvox.AbstractEarcons.ALERT_MODAL=0;cvox.AbstractEarcons.ALERT_NONMODAL=1;cvox.AbstractEarcons.BULLET=2;cvox.AbstractEarcons.BUSY_PROGRESS_LOOP=3;cvox.AbstractEarcons.BUSY_WORKING_LOOP=4; +cvox.AbstractEarcons.BUTTON=5;cvox.AbstractEarcons.CHECK_OFF=6;cvox.AbstractEarcons.CHECK_ON=7;cvox.AbstractEarcons.CHROMEVOX_DISABLED=8;cvox.AbstractEarcons.CHROMEVOX_ENABLED=9;cvox.AbstractEarcons.COLLAPSED=10;cvox.AbstractEarcons.EDITABLE_TEXT=11;cvox.AbstractEarcons.ELLIPSIS=12;cvox.AbstractEarcons.EXPANDED=13;cvox.AbstractEarcons.FONT_CHANGE=14;cvox.AbstractEarcons.INVALID_KEYPRESS=15;cvox.AbstractEarcons.LINK=16;cvox.AbstractEarcons.LISTBOX=17;cvox.AbstractEarcons.LIST_ITEM=18; +cvox.AbstractEarcons.LONG_DESC=19;cvox.AbstractEarcons.NEW_MAIL=20;cvox.AbstractEarcons.OBJECT_CLOSE=21;cvox.AbstractEarcons.OBJECT_DELETE=22;cvox.AbstractEarcons.OBJECT_DESELECT=23;cvox.AbstractEarcons.OBJECT_ENTER=24;cvox.AbstractEarcons.OBJECT_EXIT=25;cvox.AbstractEarcons.OBJECT_OPEN=26;cvox.AbstractEarcons.OBJECT_SELECT=27;cvox.AbstractEarcons.PARAGRAPH_BREAK=28;cvox.AbstractEarcons.SEARCH_HIT=29;cvox.AbstractEarcons.SEARCH_MISS=30;cvox.AbstractEarcons.SECTION=31; +cvox.AbstractEarcons.SELECTION=32;cvox.AbstractEarcons.SELECTION_REVERSE=33;cvox.AbstractEarcons.SPECIAL_CONTENT=34;cvox.AbstractEarcons.TASK_SUCCESS=35;cvox.AbstractEarcons.WRAP=36;cvox.AbstractEarcons.WRAP_EDGE=37;cvox.AbstractEarcons.earconMap={};cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_MODAL]="alert_modal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_NONMODAL]="alert_nonmodal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BULLET]="bullet.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_PROGRESS_LOOP]="busy_progress_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_WORKING_LOOP]="busy_working_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUTTON]="button.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_OFF]="check_off.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_ON]="check_on.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_DISABLED]="chromevox_disabled.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_ENABLED]="chromevox_enabled.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.COLLAPSED]="collapsed.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EDITABLE_TEXT]="editable_text.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ELLIPSIS]="ellipsis.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EXPANDED]="expanded.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.FONT_CHANGE]="font_change.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.INVALID_KEYPRESS]="invalid_keypress.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LINK]="link.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LISTBOX]="listbox.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LIST_ITEM]="bullet.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LONG_DESC]="long_desc.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.NEW_MAIL]="new_mail.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_CLOSE]="object_close.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DELETE]="object_delete.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DESELECT]="object_deselect.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_ENTER]="object_enter.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_EXIT]="object_exit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_OPEN]="object_open.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_SELECT]="object_select.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.PARAGRAPH_BREAK]="paragraph_break.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_HIT]="search_hit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_MISS]="search_miss.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SECTION]="section.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION]="selection.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION_REVERSE]="selection_reverse.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SPECIAL_CONTENT]="special_content.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.TASK_SUCCESS]="task_success.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP]="wrap.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP_EDGE]="wrap_edge.ogg";cvox.NodeStateUtil={};cvox.NodeStateUtil.expand=function(a){try{return a.map(function(a){if(1>a.length)throw Error("cvox.NodeState must have at least one entry");var b=a.slice(1).map(function(a){return"number"==typeof a?cvox.ChromeVox.msgs.getNumber(a):a});return cvox.ChromeVox.msgs.getMsg(a[0],b)}).join(" ")}catch(b){throw Error("error: "+b+" state: "+a);}};cvox.AriaUtil=function(){};cvox.AriaUtil.NO_ROLE_NAME=" "; +cvox.AriaUtil.WIDGET_ROLE_TO_NAME={alert:"aria_role_alert",alertdialog:"aria_role_alertdialog",button:"aria_role_button",checkbox:"aria_role_checkbox",columnheader:"aria_role_columnheader",combobox:"aria_role_combobox",dialog:"aria_role_dialog",grid:"aria_role_grid",gridcell:"aria_role_gridcell",link:"aria_role_link",listbox:"aria_role_listbox",log:"aria_role_log",marquee:"aria_role_marquee",menu:"aria_role_menu",menubar:"aria_role_menubar",menuitem:"aria_role_menuitem",menuitemcheckbox:"aria_role_menuitemcheckbox", +menuitemradio:"aria_role_menuitemradio",option:cvox.AriaUtil.NO_ROLE_NAME,progressbar:"aria_role_progressbar",radio:"aria_role_radio",radiogroup:"aria_role_radiogroup",rowheader:"aria_role_rowheader",scrollbar:"aria_role_scrollbar",slider:"aria_role_slider",spinbutton:"aria_role_spinbutton",status:"aria_role_status",tab:"aria_role_tab",tabpanel:"aria_role_tabpanel",textbox:"aria_role_textbox",timer:"aria_role_timer",toolbar:"aria_role_toolbar",tooltip:"aria_role_tooltip",treeitem:"aria_role_treeitem"}; +cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME={article:"aria_role_article",application:"aria_role_application",banner:"aria_role_banner",columnheader:"aria_role_columnheader",complementary:"aria_role_complementary",contentinfo:"aria_role_contentinfo",definition:"aria_role_definition",directory:"aria_role_directory",document:"aria_role_document",form:"aria_role_form",group:"aria_role_group",heading:"aria_role_heading",img:"aria_role_img",list:"aria_role_list",listitem:"aria_role_listitem",main:"aria_role_main", +math:"aria_role_math",navigation:"aria_role_navigation",note:"aria_role_note",region:"aria_role_region",rowheader:"aria_role_rowheader",search:"aria_role_search",separator:"aria_role_separator"}; +cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS=[{name:"aria-autocomplete",values:{inline:"aria_autocomplete_inline",list:"aria_autocomplete_list",both:"aria_autocomplete_both"}},{name:"aria-checked",values:{"true":"aria_checked_true","false":"aria_checked_false",mixed:"aria_checked_mixed"}},{name:"aria-disabled",values:{"true":"aria_disabled_true"}},{name:"aria-expanded",values:{"true":"aria_expanded_true","false":"aria_expanded_false"}},{name:"aria-invalid",values:{"true":"aria_invalid_true",grammar:"aria_invalid_grammar", +spelling:"aria_invalid_spelling"}},{name:"aria-multiline",values:{"true":"aria_multiline_true"}},{name:"aria-multiselectable",values:{"true":"aria_multiselectable_true"}},{name:"aria-pressed",values:{"true":"aria_pressed_true","false":"aria_pressed_false",mixed:"aria_pressed_mixed"}},{name:"aria-readonly",values:{"true":"aria_readonly_true"}},{name:"aria-required",values:{"true":"aria_required_true"}},{name:"aria-selected",values:{"true":"aria_selected_true","false":"aria_selected_false"}}]; +cvox.AriaUtil.isHiddenRecursive=function(a){if(cvox.AriaUtil.isHidden(a))return!0;for(a=a.parentElement;a;){if("true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return!0;a=a.parentElement}return!1};cvox.AriaUtil.isHidden=function(a){return!a||a.getAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")?!0:!1}; +cvox.AriaUtil.isForcedVisibleRecursive=function(a){for(;a;){if(a.getAttribute&&a.hasAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return"false"==a.getAttribute("aria-hidden");a=a.parentElement}return!1};cvox.AriaUtil.isLeafElement=function(a){var b=a.getAttribute("role");a=a.hasAttribute("aria-label")&&0<a.getAttribute("aria-label").length;return"img"==b||"progressbar"==b||a}; +cvox.AriaUtil.isDescendantOfRole=function(a,b){for(;a;){if(b&&a&&a.getAttribute("role")==b)return!0;a=a.parentNode}return!1};cvox.AriaUtil.getRoleNameMsgForRole_=function(a){return(a=cvox.AriaUtil.WIDGET_ROLE_TO_NAME[a])?a==cvox.AriaUtil.NO_ROLE_NAME?" ":a:null};cvox.AriaUtil.isButton=function(a){var b=cvox.AriaUtil.getRoleAttribute(a);return"button"==b||"BUTTON"==a.tagName?!0:"INPUT"==a.tagName?"submit"==a.type||"reset"==a.type||"button"==a.type:!1}; +cvox.AriaUtil.getRoleNameMsg=function(a){var b;if(a&&a.getAttribute){var c=cvox.AriaUtil.getRoleAttribute(a);if("true"==a.getAttribute("aria-haspopup")&&cvox.AriaUtil.isButton(a))return"aria_role_popup_button";c&&((b=cvox.AriaUtil.getRoleNameMsgForRole_(c))||(b=cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME[c]));if("menuitem"==c){for(a=a.parentElement;a&&(!a.getAttribute||"menu"!=cvox.AriaUtil.getRoleAttribute(a)&&"menubar"!=cvox.AriaUtil.getRoleAttribute(a));)a=a.parentElement;a&&"menubar"==cvox.AriaUtil.getRoleAttribute(a)&& +(b=cvox.AriaUtil.getRoleNameMsgForRole_("menu"))}}b||(b="");return b};cvox.AriaUtil.getRoleName=function(a){var b=cvox.AriaUtil.getRoleNameMsg(a),b=cvox.ChromeVox.msgs.getMsg(b),c=cvox.AriaUtil.getRoleAttribute(a);"heading"==c&&a.hasAttribute("aria-level")&&(b+=" "+a.getAttribute("aria-level"));return b?b:""}; +cvox.AriaUtil.getStateMsgs=function(a,b){var c=[];if(!a||!a.getAttribute)return c;for(var d=0,e;e=cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS[d];d++){var f=a.getAttribute(e.name);(e=e.values[f])&&c.push([e])}if("grid"==a.getAttribute("role"))return cvox.AriaUtil.getGridState_(a,a);e=cvox.AriaUtil.getRoleAttribute(a);"true"==a.getAttribute("aria-haspopup")&&("menuitem"==e?c.push(["has_submenu"]):cvox.AriaUtil.isButton(a)||c.push(["has_popup"]));if(d=a.getAttribute("aria-valuetext"))return c.push([d]), +c;var d=a.getAttribute("aria-valuenow"),f=a.getAttribute("aria-valuemin"),g=a.getAttribute("aria-valuemax");if(null!=d&&null!=f&&null!=g&&("scrollbar"==e||"progressbar"==e)){var h=Math.round(d/(g-f)*100);c.push(["state_percent",h]);return c}null!=d&&c.push(["aria_value_now",d]);null!=f&&c.push(["aria_value_min",f]);null!=g&&c.push(["aria_value_max",g]);f=a;d=null;if(cvox.AriaUtil.isCompositeControl(f)&&b)d=cvox.AriaUtil.getActiveDescendant(f);else if(e=cvox.AriaUtil.getRoleAttribute(a),"option"== +e||"menuitem"==e||"menuitemcheckbox"==e||"menuitemradio"==e||"radio"==e||"tab"==e||"treeitem"==e)for(d=a,f=a.parentElement;f&&!cvox.AriaUtil.isCompositeControl(f)&&(!(f=f.parentElement)||"treeitem"!=cvox.AriaUtil.getRoleAttribute(f)););if(f&&(cvox.AriaUtil.isCompositeControl(f)||"treeitem"==cvox.AriaUtil.getRoleAttribute(f))&&d){e=cvox.AriaUtil.getRoleAttribute(f);var k;switch(e){case "combobox":case "listbox":k=["option"];break;case "menu":k=["menuitem","menuitemcheck","menuitemradio"];break;case "radiogroup":k= +["radio"];break;case "tablist":k=["tab"];break;case "tree":case "treegrid":case "treeitem":k=["treeitem"]}if(k){var l;e=parseInt(d.getAttribute("aria-setsize"),10);isNaN(e)||(h=e);e=parseInt(d.getAttribute("aria-posinset"),10);isNaN(e)||(l=e);if(void 0==h||void 0==l)if(k=cvox.AriaUtil.getNextLevel(f,k),void 0==h&&(h=k.length),void 0==l)for(e=0;e<k.length;e++)k[e]==d&&(l=e+1);l&&h&&c.push(["list_position",l,h])}}return c}; +cvox.AriaUtil.getGridState_=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(b);if(c)for(var d='*[role~="row"]',d=b.querySelectorAll(d),e=0;e<d.length;e++)for(var f=d[e].querySelectorAll('*[role~="gridcell"]'),g=0;g<f.length;g++)if(f[g]==c)return[["aria_role_gridcell_pos",e+1,g+1]];return[]};cvox.AriaUtil.getActiveDescendantId_=function(a){return a.getAttribute?(a=a.getAttribute("aria-activedescendant"))?a:null:null}; +cvox.AriaUtil.getNextLevel=function(a,b){for(var c=[],d=a.childNodes,e=0;e<d.length;e++)if(!cvox.AriaUtil.isHidden(d[e])&&cvox.DomUtil.isVisible(d[e])){var f=cvox.AriaUtil.getNextLevelItems(d[e],b);0<f.length&&(c=c.concat(f))}return c}; +cvox.AriaUtil.getNextLevelItems=function(a,b){if(1!=a.nodeType)return[];if(-1!=b.indexOf(cvox.AriaUtil.getRoleAttribute(a)))return[a];var c=a.childNodes,d=c.length;if(0==d)return[];for(var e=[],f=0;f<d;f++){var g=cvox.AriaUtil.getNextLevelItems(c[f],b);0<g.length&&(e=e.concat(g))}return e};cvox.AriaUtil.getActiveDescendant=function(a){for(var b={},c=a;c;){var d=cvox.AriaUtil.getActiveDescendantId_(c);if(!d)break;if(d in b)return null;b[d]=!0;c=document.getElementById(d)}return c==a?null:c}; +cvox.AriaUtil.isControlWidget=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "button":case "checkbox":case "combobox":case "listbox":case "menu":case "menuitemcheckbox":case "menuitemradio":case "radio":case "slider":case "progressbar":case "scrollbar":case "spinbutton":case "tab":case "tablist":case "textbox":return!0}return!1};cvox.AriaUtil.isCompositeControl=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "combobox":case "grid":case "listbox":case "menu":case "menubar":case "radiogroup":case "tablist":case "tree":case "treegrid":return!0}return!1}; +cvox.AriaUtil.getAriaLive=function(a){if(!a.hasAttribute)return null;var b=a.getAttribute("aria-live");if("off"==b)return null;if(b)return b;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "alert":return"assertive";case "log":case "status":return"polite";default:return null}};cvox.AriaUtil.getAriaAtomic=function(a){if(!a.hasAttribute)return!1;var b=a.getAttribute("aria-atomic");if(b)return"true"===b;a=cvox.AriaUtil.getRoleAttribute(a);return"alert"==a?!0:!1}; +cvox.AriaUtil.getAriaBusy=function(a){return a.hasAttribute?(a=a.getAttribute("aria-busy"))?"true"===a:!1:!1};cvox.AriaUtil.getAriaRelevant=function(a,b){if(!a.hasAttribute)return!1;var c;c=a.hasAttribute("aria-relevant")?a.getAttribute("aria-relevant"):"additions text";"all"==c&&(c="additions removals text");c=c.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").split(" ");return"all"==b?0<=c.indexOf("additions")&&0<=c.indexOf("text")&&0<=c.indexOf("removals"):0<=c.indexOf(b)}; +cvox.AriaUtil.getLiveRegions=function(a){var b=[];if(a.querySelectorAll){var c=a.querySelectorAll('[role="alert"], [role="log"], [role="marquee"], [role="status"], [role="timer"], [aria-live]');if(c)for(var d=0;d<c.length;d++)b.push(c[d])}for(;a;){if(cvox.AriaUtil.getAriaLive(a)){b.push(a);break}a=a.parentElement}return b};cvox.AriaUtil.isLandmark=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "application":case "banner":case "complementary":case "contentinfo":case "form":case "main":case "navigation":case "search":return!0}return!1}; +cvox.AriaUtil.isGrid=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "grid":case "treegrid":return!0}return!1}; +cvox.AriaUtil.getEarcon=function(a){if(!a||!a.getAttribute)return null;var b=cvox.AriaUtil.getRoleAttribute(a);switch(b){case "button":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":case "menuitemcheckbox":case "menuitemradio":return a=a.getAttribute("aria-checked"),"true"==a?cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;case "combobox":case "listbox":return cvox.AbstractEarcons.LISTBOX;case "textbox":return cvox.AbstractEarcons.EDITABLE_TEXT;case "listitem":return cvox.AbstractEarcons.BULLET; +case "link":return cvox.AbstractEarcons.LINK}return null};cvox.AriaUtil.getRoleAttribute=function(a){if(!a.getAttribute)return"";var b=a.getAttribute("role");a.hasAttribute("chromevoxoriginalrole")&&(b=a.getAttribute("chromevoxoriginalrole"));return b};cvox.AriaUtil.isMath=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);return"math"==a};cvox.DomPredicates={};cvox.DomPredicates.checkboxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"checkbox"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"checkbox"==a[b].type)return a[b];return null};cvox.DomPredicates.radioPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"radio"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"radio"==a[b].type)return a[b];return null}; +cvox.DomPredicates.sliderPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"slider"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"range"==a[b].type)return a[b];return null};cvox.DomPredicates.graphicPredicate=function(a){for(var b=0;b<a.length;b++)if("IMG"==a[b].tagName||"INPUT"==a[b].tagName&&"img"==a[b].type)return a[b];return null}; +cvox.DomPredicates.buttonPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"button"==a[b].getAttribute("role")||"BUTTON"==a[b].tagName||"INPUT"==a[b].tagName&&"submit"==a[b].type||"INPUT"==a[b].tagName&&"button"==a[b].type||"INPUT"==a[b].tagName&&"reset"==a[b].type)return a[b];return null};cvox.DomPredicates.comboBoxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"combobox"==a[b].getAttribute("role")||"SELECT"==a[b].tagName)return a[b];return null}; +cvox.DomPredicates.editTextPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"textbox"==a[b].getAttribute("role")||"TEXTAREA"==a[b].tagName||a[b].isContentEditable||"INPUT"==a[b].tagName&&cvox.DomUtil.isInputTypeText(a[b]))return a[b];return null};cvox.DomPredicates.headingPredicate=function(a){for(var b=0;b<a.length;b++){if(a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null}; +cvox.DomPredicates.heading1Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H1")};cvox.DomPredicates.heading2Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H2")};cvox.DomPredicates.heading3Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H3")};cvox.DomPredicates.heading4Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H4")};cvox.DomPredicates.heading5Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H5")}; +cvox.DomPredicates.heading6Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H6")};cvox.DomPredicates.linkPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.tablePredicate=function(a){return(a=cvox.DomUtil.findTableNodeInList(a,{allowCaptions:!0}))&&!cvox.DomUtil.isLayoutTable(a)?a:null}; +cvox.DomPredicates.cellPredicate=function(a){for(var b=a.length-1;0<=b;--b){var c=a[b];if("TD"==c.tagName||"TH"==c.tagName||c.getAttribute&&"gridcell"==c.getAttribute("role"))return c}return null};cvox.DomPredicates.visitedLinkPredicate=function(a){for(var b=a.length-1;0<=b;--b)if(cvox.DomPredicates.linkPredicate([a[b]])&&cvox.ChromeVox.visitedUrls[a[b].href])return a[b]}; +cvox.DomPredicates.listPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"list"==a[b].getAttribute("role")||"UL"==a[b].tagName||"OL"==a[b].tagName)return a[b];return null};cvox.DomPredicates.listItemPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"listitem"==a[b].getAttribute("role")||"LI"==a[b].tagName)return a[b];return null};cvox.DomPredicates.blockquotePredicate=function(a){return cvox.DomPredicates.containsTagName_(a,"BLOCKQUOTE")}; +cvox.DomPredicates.formFieldPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b]))return a[b];return null};cvox.DomPredicates.landmarkPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.AriaUtil.isLandmark(a[b]))return a[b];return null};cvox.DomPredicates.containsTagName_=function(a,b){for(var c=a.length;c--;)if(a[c].tagName==b)return a[c];return null};cvox.DomPredicates.mathPredicate=function(a){return cvox.DomUtil.findMathNodeInList(a)}; +cvox.DomPredicates.sectionPredicate=function(a){for(var b=0;b<a.length;b++){if(cvox.DomUtil.isSemanticElt(a[b])||cvox.AriaUtil.isLandmark(a[b])||a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null}; +cvox.DomPredicates.controlPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b])||a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.captionPredicate=function(a){for(var b=0;b<a.length;b++)if("CAPTION"==a[b].tagName)return a[b];return null}; +cvox.DomPredicates.articlePredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"article"==a[b].getAttribute("role")||"ARTICLE"==a[b].tagName)return a[b];return null};cvox.DomPredicates.mediaPredicate=function(a){for(var b=0;b<a.length;b++)if("AUDIO"==a[b].tagName||"VIDEO"==a[b].tagName)return a[b];return null};cvox.DomPredicates.orderedListPredicate=function(a){for(var b=0;b<a.length;b++)if("OL"==a[b].tagName)return a[b];return null};cvox.XpathUtil=function(){};cvox.XpathUtil.nameSpaces_={xhtml:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML"};cvox.XpathUtil.resolveNameSpace=function(a){return cvox.XpathUtil.nameSpaces_[a]||null};cvox.XpathUtil.evalXPath=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(d){return[]}for(var e=[],f=c.iterateNext();f;f=c.iterateNext())e.push(f);return e}; +cvox.XpathUtil.getLeafNodes=function(a){try{var b=a.ownerDocument.evaluate(".//*[count(*)=0]",a,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(c){return[]}a=[];for(var d=b.iterateNext();d;d=b.iterateNext())a.push(d);return a};cvox.XpathUtil.xpathSupported=function(){return"undefined"==typeof XPathResult?!1:!0};cvox.XpathUtil.evaluateBoolean=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.BOOLEAN_TYPE,null)}catch(d){return!1}return c.booleanValue}; +cvox.XpathUtil.evaluateString=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.STRING_TYPE,null)}catch(d){return""}return c.stringValue};cvox.DomUtil=function(){}; +cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG={button:"input_type_button",checkbox:"input_type_checkbox",color:"input_type_color",datetime:"input_type_datetime","datetime-local":"input_type_datetime_local",date:"input_type_date",email:"input_type_email",file:"input_type_file",image:"input_type_image",month:"input_type_month",number:"input_type_number",password:"input_type_password",radio:"input_type_radio",range:"input_type_range",reset:"input_type_reset",search:"input_type_search",submit:"input_type_submit", +tel:"input_type_tel",text:"input_type_text",url:"input_type_url",week:"input_type_week"}; +cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG={A:"tag_link",ARTICLE:"tag_article",ASIDE:"tag_aside",AUDIO:"tag_audio",BUTTON:"tag_button",FOOTER:"tag_footer",H1:"tag_h1",H2:"tag_h2",H3:"tag_h3",H4:"tag_h4",H5:"tag_h5",H6:"tag_h6",HEADER:"tag_header",HGROUP:"tag_hgroup",LI:"tag_li",MARK:"tag_mark",NAV:"tag_nav",OL:"tag_ol",SECTION:"tag_section",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",TIME:"tag_time",UL:"tag_ul",VIDEO:"tag_video"}; +cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG={AUDIO:"tag_audio",BUTTON:"tag_button",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",VIDEO:"tag_video"};cvox.DomUtil.FORMATTING_TAGS="B BIG CITE CODE DFN EM I KBD SAMP SMALL SPAN STRIKE STRONG SUB SUP U VAR".split(" "); +cvox.DomUtil.isVisible=function(a,b){b=b||{};"undefined"===typeof b.checkAncestors&&(b.checkAncestors=!0);"undefined"===typeof b.checkDescendants&&(b.checkDescendants=!0);if("IFRAME"==a.tagName&&!a.src)return!1;if(cvox.AriaUtil.isForcedVisibleRecursive(a))return!0;if(b.checkAncestors&&cvox.DomUtil.hasInvisibleAncestor_(a))return!1;var c=b.checkDescendants;return cvox.DomUtil.hasVisibleNodeSubtree_(a,c)?!0:!1}; +cvox.DomUtil.hasInvisibleAncestor_=function(a){for(;a=a.parentElement;){var b=document.defaultView.getComputedStyle(a,null);if(cvox.DomUtil.isInvisibleStyle(b,!0))return!0}return!1}; +cvox.DomUtil.hasVisibleNodeSubtree_=function(a,b){if(!(a instanceof Element)){var c=document.defaultView.getComputedStyle(a.parentElement,null);return c=!cvox.DomUtil.isInvisibleStyle(c)}var c=document.defaultView.getComputedStyle(a,null),d=!cvox.DomUtil.isInvisibleStyle(c);if(d)return!0;c=cvox.DomUtil.isInvisibleStyle(c,!0);if(!b||c)return!1;c=a.childNodes;for(d=0;d<c.length;d++){var e=c[d];if(cvox.DomUtil.hasVisibleNodeSubtree_(e,b))return!0}return!1}; +cvox.DomUtil.isInvisibleStyle=function(a,b){return a?"none"!=a.display&&0!=parseFloat(a.opacity)&&(b||"hidden"!=a.visibility&&"collapse"!=a.visibility)?!1:!0:!1};cvox.DomUtil.isDisabled=function(a){if(a.disabled)return!0;for(;a=a.parentElement;)if("FIELDSET"==a.tagName&&a.disabled)return!0;return!1};cvox.DomUtil.isSemanticElt=function(a){return a.tagName&&(a=a.tagName,"SECTION"==a||"NAV"==a||"ARTICLE"==a||"ASIDE"==a||"HGROUP"==a||"HEADER"==a||"FOOTER"==a||"TIME"==a||"MARK"==a)?!0:!1}; +cvox.DomUtil.isLeafNode=function(a,b){if(!(a instanceof Element))return null==a.firstChild;var c=a;if(!b&&!cvox.DomUtil.isVisible(c,{checkAncestors:!1})||!b&&cvox.AriaUtil.isHidden(c)||cvox.AriaUtil.isLeafElement(c))return!0;switch(c.tagName){case "OBJECT":case "EMBED":case "VIDEO":case "AUDIO":case "IFRAME":case "FRAME":return!0}return cvox.DomPredicates.linkPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.headingPredicate([a])}):cvox.DomUtil.isLeafLevelControl(c)|| +!c.firstChild||cvox.DomUtil.isMath(c)?!0:cvox.DomPredicates.headingPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.controlPredicate([a])}):!1};cvox.DomUtil.isDescendantOf=function(a,b,c){for(;a;){if(b&&c&&a.tagName&&a.tagName==b&&a.className&&a.className==c||b&&!c&&a.tagName&&a.tagName==b||!b&&c&&a.className&&a.className==c)return!0;a=a.parentNode}return!1};cvox.DomUtil.isDescendantOfNode=function(a,b){for(;a&&b;){if(a.isSameNode(b))return!0;a=a.parentNode}return!1}; +cvox.DomUtil.collapseWhitespace=function(a){return a.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")}; +cvox.DomUtil.getBaseLabel_=function(a,b,c){var d="";if(a.hasAttribute){if(a.hasAttribute("aria-labelledby"))for(var e=a.getAttribute("aria-labelledby").split(" "),f,g=0;f=e[g];g++)(f=document.getElementById(f))&&(d+=" "+cvox.DomUtil.getName(f,!0,c,!0));else if(a.hasAttribute("aria-label"))d=a.getAttribute("aria-label");else if(a.constructor==HTMLImageElement)d=cvox.DomUtil.getImageTitle(a);else if("FIELDSET"==a.tagName)for(e=a.getElementsByTagName("LEGEND"),d="",g=0;f=e[g];g++)d+=" "+cvox.DomUtil.getName(f, +!0,c);0==d.length&&a&&a.id&&(a=document.querySelector('label[for="'+a.id+'"]'))&&(d=cvox.DomUtil.getName(a,b,c))}return cvox.DomUtil.collapseWhitespace(d)};cvox.DomUtil.getNearestAncestorLabel_=function(a){for(var b="";a&&"LABEL"!=a.tagName;)a=a.parentElement;a&&!a.hasAttribute("for")&&(b=cvox.DomUtil.getName(a,!0,!1));return b}; +cvox.DomUtil.getInputName_=function(a){var b="";"image"==a.type?b=cvox.DomUtil.getImageTitle(a):"submit"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Submit":"reset"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Reset":"button"==a.type&&a.hasAttribute("value")&&(b=a.getAttribute("value"));return b}; +cvox.DomUtil.getName=function(a,b,c,d){if(!a||!0==a.cvoxGetNameMarked)return"";a.cvoxGetNameMarked=!0;b=cvox.DomUtil.getName_(a,b,c,d);a.cvoxGetNameMarked=!1;a=cvox.DomUtil.getPrefixText(a);return a+b};cvox.DomUtil.hasChildrenBasedName_=function(a,b){return cvox.DomPredicates.linkPredicate([a])||cvox.DomPredicates.headingPredicate([a])||"BUTTON"==a.tagName||cvox.AriaUtil.isControlWidget(a)||!cvox.DomUtil.isLeafNode(a,b)?!0:!1}; +cvox.DomUtil.getName_=function(a,b,c,d){"undefined"===typeof b&&(b=!0);"undefined"===typeof c&&(c=!0);if(a.constructor==Text)return a.data;var e=cvox.DomUtil.getBaseLabel_(a,b,c);0==e.length&&cvox.DomUtil.isControl(a)&&(e=cvox.DomUtil.getNearestAncestorLabel_(a));0==e.length&&a.constructor==HTMLInputElement&&(e=cvox.DomUtil.getInputName_(a));return cvox.DomUtil.isInputTypeText(a)&&a.hasAttribute("placeholder")?(b=a.getAttribute("placeholder"),0<e.length?0<cvox.DomUtil.getValue(a).length?e:e+" with hint "+ +b:b):0<e.length?e:0==cvox.DomUtil.collapseWhitespace(a.textContent).length&&a.hasAttribute&&a.hasAttribute("title")?a.getAttribute("title"):!b||cvox.AriaUtil.isCompositeControl(a)?"":cvox.DomUtil.hasChildrenBasedName_(a,d)?cvox.DomUtil.getNameFromChildren(a,c,d):""}; +cvox.DomUtil.getNameFromChildren=function(a,b,c){void 0==b&&(b=!0);for(var d="",e="",f=0;f<a.childNodes.length;f++){var g=a.childNodes[f],e=a.childNodes[f-1]||g;if(b||!cvox.DomUtil.isControl(g)){var h=cvox.DomUtil.isVisible(g,{checkAncestors:!1});if(c||h&&!cvox.AriaUtil.isHidden(g))e="SPAN"==e.tagName||"SPAN"==g.tagName||"SPAN"==g.parentNode.tagName?"":" ",d+=e+cvox.DomUtil.getName(g,!0,b)}}return d}; +cvox.DomUtil.getPrefixText=function(a,b){b=b||0;for(var c=cvox.DomUtil.getAncestors(a),d="",e=c=cvox.DomPredicates.listItemPredicate(c);e&&e.firstChild;)e=e.firstChild;c&&c.parentNode&&0==b&&"OL"==c.parentNode.tagName&&a==e&&"none"!=document.defaultView.getComputedStyle(c.parentNode).listStyleType&&(d=cvox.DomUtil.toArray(c.parentNode.children).filter(function(a){return"LI"==a.tagName}),d=d.indexOf(c)+1,-1!=document.defaultView.getComputedStyle(c.parentNode).listStyleType.indexOf("latin")&&(d--,d= +String.fromCharCode(65+d%26)),d+=". ");return d}; +cvox.DomUtil.getControlLabelHeuristics=function(a){if(a.hasAttribute&&(a.hasAttribute("aria-label")&&""==a.getAttribute("aria-label")||a.hasAttribute("aria-title")&&""==a.getAttribute("aria-title")))return"";for(var b=cvox.DomUtil.previousLeafNode(a),c=0;b&&(!cvox.DomUtil.hasContent(b)||cvox.DomUtil.isControl(b));)b=cvox.DomUtil.previousLeafNode(b),c++;for(var c=cvox.DomUtil.directedNextLeafNode(a),d=0;c&&(!cvox.DomUtil.hasContent(c)||cvox.DomUtil.isControl(c));)c=cvox.DomUtil.directedNextLeafNode(c), +d++;if(b&&c){for(var d=a,e=0;d&&!cvox.DomUtil.isDescendantOfNode(b,d);)d=d.parentNode,e++;d=a;for(a=0;d&&!cvox.DomUtil.isDescendantOfNode(c,d);)d=d.parentNode,a++;b=a<e?c:b}else b=b||c;return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b)):""}; +cvox.DomUtil.getValue=function(a){var b=cvox.AriaUtil.getActiveDescendant(a);if(b)return cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b));if(a.constructor==HTMLSelectElement){var b="",c=a.selectedOptions?a.selectedOptions[0]:null;a=a.selectedOptions?a.selectedOptions[a.selectedOptions.length-1]:null;c&&a&&c!=a?b=cvox.ChromeVox.msgs.getMsg("selected_options_value",[c.text,a.text]):c&&(b=c.text+"");return b}if(a.constructor==HTMLTextAreaElement)return a.value;if(a.constructor== +HTMLInputElement)switch(a.type){case "hidden":case "image":case "submit":case "reset":case "button":case "checkbox":case "radio":return"";case "password":return a.value.replace(/./g,"dot ");default:return a.value}return a.isContentEditable?cvox.DomUtil.getNameFromChildren(a,!0):""}; +cvox.DomUtil.getImageTitle=function(a){a.hasAttribute("alt")?a=a.alt:a.hasAttribute("title")?a=a.title:(a=a.src,"data"!=a.substring(0,4)?(a=a.substring(a.lastIndexOf("/")+1,a.lastIndexOf(".")),a=1<=a.length&&16>=a.length?a+" Image":"Image"):a="Image");return a}; +cvox.DomUtil.hasContent=function(a){if(8==a.nodeType||cvox.DomUtil.isDescendantOf(a,"HEAD")||cvox.DomUtil.isDescendantOf(a,"SCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOSCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOEMBED")||cvox.DomUtil.isDescendantOf(a,"STYLE")||!cvox.DomUtil.isVisible(a)||cvox.AriaUtil.isHidden(a))return!1;if(cvox.DomUtil.isControl(a)||cvox.DomUtil.isDescendantOf(a,"VIDEO")||cvox.DomUtil.isDescendantOf(a,"AUDIO")||"IFRAME"==a.tagName&&a.src&&0!=a.src.indexOf("javascript:"))return!0; +for(var b="button,input,select,textarea",c=a.parentElement;c&&"LABEL"!=c.tagName;)c=c.parentElement;if(c){var d=c.querySelector(b);if(c.hasAttribute("for")){if(c=c.getAttribute("for"),(c=document.getElementById(c))&&cvox.DomUtil.isControl(c)&&!d)return!1}else if(d)return!1}for(d=a.parentElement;d&&"LEGEND"!=d.tagName;)d=d.parentElement;if(d){for(c=d.parentElement;c&&"FIELDSET"!=c.tagName;)c=c.parentElement;d=c&&c.querySelector(b);if(c&&!d)return!1}if(cvox.DomPredicates.linkPredicate([a])||"TABLE"== +a.tagName||cvox.DomUtil.isMath(a)||cvox.DomPredicates.headingPredicate([a]))return!0;b=cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a);a=cvox.DomUtil.getState(a,!0);return b.match(/^\s+$/)&&""===a?!1:!0};cvox.DomUtil.getAncestors=function(a){for(var b=[];a;)b.push(a),a=a.parentNode;for(b.reverse();b.length&&!b[0].tagName&&!b[0].nodeValue;)b.shift();return b};cvox.DomUtil.compareAncestors=function(a,b){for(var c=0;a[c]&&b[c]&&a[c]==b[c];)c++;a[c]||b[c]||(c=-1);return c}; +cvox.DomUtil.getUniqueAncestors=function(a,b,c){a=cvox.DomUtil.getAncestors(a);b=cvox.DomUtil.getAncestors(b);a=cvox.DomUtil.compareAncestors(a,b);a=b.slice(a);return 0==a.length&&c?b:a}; +cvox.DomUtil.getRoleMsg=function(a,b){var c;c=cvox.AriaUtil.getRoleNameMsg(a);c||("INPUT"==a.tagName?c=cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG[a.type]:"A"==a.tagName&&cvox.DomUtil.isInternalLink(a)?c="internal_link":"A"==a.tagName&&a.getAttribute("name")?c="":a.isContentEditable?c="input_type_text":cvox.DomUtil.isMath(a)?c="math_expr":"TABLE"==a.tagName&&cvox.DomUtil.isLayoutTable(a)?c="":b==cvox.VERBOSITY_BRIEF?c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG[a.tagName]:(c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG[a.tagName], +cvox.DomUtil.hasLongDesc(a)&&(c="image_with_long_desc"),!c&&a.onclick&&(c="clickable")));return c};cvox.DomUtil.getRole=function(a,b){var c=cvox.DomUtil.getRoleMsg(a,b)||"",d=c&&" "!=c?cvox.ChromeVox.msgs.getMsg(c):"";return d?d:c};cvox.DomUtil.getListLength=function(a){var b=0;for(a=a.firstChild;a;a=a.nextSibling)if("LI"==a.tagName||a.getAttribute&&"listitem"==a.getAttribute("role")){if(a.hasAttribute("aria-setsize")){var c=parseInt(a.getAttribute("aria-setsize"),10);if(!isNaN(c))return c}b++}return b}; +cvox.DomUtil.getStateMsgs=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(a);if(c)return cvox.DomUtil.getStateMsgs(c,b);var c=[],d=a.getAttribute?a.getAttribute("role"):"";(c=cvox.AriaUtil.getStateMsgs(a,b))||(c=[]);"INPUT"==a.tagName?a.hasAttribute("aria-checked")||(d={"checkbox-true":"checkbox_checked_state","checkbox-false":"checkbox_unchecked_state","radio-true":"radio_selected_state","radio-false":"radio_unselected_state"},(d=d[a.type+"-"+!!a.checked])&&c.push([d])):"SELECT"==a.tagName? +a.selectedOptions&&1>=a.selectedOptions.length?c.push(["list_position",cvox.ChromeVox.msgs.getNumber(a.selectedIndex+1),cvox.ChromeVox.msgs.getNumber(a.options.length)]):c.push(["selected_options_state",cvox.ChromeVox.msgs.getNumber(a.selectedOptions.length)]):"UL"!=a.tagName&&"OL"!=a.tagName&&"list"!=d||c.push(["list_with_items",cvox.ChromeVox.msgs.getNumber(cvox.DomUtil.getListLength(a))]);cvox.DomUtil.isDisabled(a)&&c.push(["aria_disabled_true"]);cvox.DomPredicates.linkPredicate([a])&&cvox.ChromeVox.visitedUrls[a.href]&& +c.push(["visited_url"]);a.accessKey&&c.push(["access_key",a.accessKey]);return c};cvox.DomUtil.getState=function(a,b){return cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,b))};cvox.DomUtil.isFocusable=function(a){return a&&"number"==typeof a.tabIndex&&("A"!=a.tagName||a.hasAttribute("href")||a.hasAttribute("tabindex"))?0<=a.tabIndex||a.hasAttribute&&a.hasAttribute("tabindex")&&"-1"==a.getAttribute("tabindex")?!0:!1:!1}; +cvox.DomUtil.findFocusableDescendant=function(a){return a&&(a=cvox.DomUtil.findNode(a,cvox.DomUtil.isFocusable))?a:null};cvox.DomUtil.countFocusableDescendants=function(a){return a?cvox.DomUtil.countNodes(a,cvox.DomUtil.isFocusable):0};cvox.DomUtil.isAttachedToDocument=function(a){for(;a;){if(a.tagName&&"HTML"==a.tagName)return!0;a=a.parentNode}return!1}; +cvox.DomUtil.clickElem=function(a,b,c,d){var e=cvox.AriaUtil.getActiveDescendant(a);e&&(a=e);if(c){c=null;a.onclick&&(c=a.onclick);!c&&1!=a.nodeType&&a.parentNode&&a.parentNode.onclick&&(c=a.parentNode.onclick);e=!0;if(c)try{e=c()}catch(f){}if(!e)return}c=document.createEvent("MouseEvents");d=d?"dblclick":"mousedown";c.initMouseEvent(d,!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(g){}c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup", +!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(h){}c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(k){}cvox.DomUtil.isInternalLink(a)&&cvox.DomUtil.syncInternalLink(a)}; +cvox.DomUtil.syncInternalLink=function(a){var b=a.href.split("#")[1];a=document.getElementById(b);a||(b=document.getElementsByName(b),0<b.length&&(a=b[0]));if(a){var b=a.parentNode,c=document.createElement("div");c.setAttribute("tabindex","-1");b.insertBefore(c,a);c.setAttribute("chromevoxignoreariahidden",1);c.focus();cvox.ChromeVox.syncToNode(a,!0)}}; +cvox.DomUtil.isInputTypeText=function(a){if(!a||a.constructor!=HTMLInputElement)return!1;switch(a.type){case "email":case "number":case "password":case "search":case "text":case "tel":case "url":case "":return!0;default:return!1}};cvox.DomUtil.isControl=function(a){if(cvox.AriaUtil.isControlWidget(a)&&cvox.DomUtil.isFocusable(a))return!0;if(a.tagName)switch(a.tagName){case "BUTTON":case "TEXTAREA":case "SELECT":return!0;case "INPUT":return"hidden"!=a.type}return a.isContentEditable?!0:!1}; +cvox.DomUtil.isLeafLevelControl=function(a){return cvox.DomUtil.isControl(a)?!(cvox.AriaUtil.isCompositeControl(a)&&cvox.DomUtil.findFocusableDescendant(a)):!1};cvox.DomUtil.getSurroundingControl=function(a){var b=null;if(!cvox.DomUtil.isControl(a)&&a.hasAttribute&&a.hasAttribute("role"))for(b=a.parentElement;b&&!cvox.AriaUtil.isCompositeControl(b);)b=b.parentElement;return b}; +cvox.DomUtil.directedNextLeafLikeNode=function(a,b,c){if(a!=document.body){for(;!cvox.DomUtil.directedNextSibling(a,b);){if(!a)return null;a=a.parentNode;if(a==document.body)return null}cvox.DomUtil.directedNextSibling(a,b)&&(a=cvox.DomUtil.directedNextSibling(a,b))}for(;cvox.DomUtil.directedFirstChild(a,b)&&!c(a);)a=cvox.DomUtil.directedFirstChild(a,b);return a==document.body?null:a};cvox.DomUtil.directedNextLeafNode=function(a,b){b=!!b;return cvox.DomUtil.directedNextLeafLikeNode(a,b,cvox.DomUtil.isLeafNode)}; +cvox.DomUtil.previousLeafNode=function(a){return cvox.DomUtil.directedNextLeafNode(a,!0)};cvox.DomUtil.directedFindFirstNode=function(a,b,c){for(a=cvox.DomUtil.directedFirstChild(a,b);a;){if(c(a))return a;var d=cvox.DomUtil.directedFindFirstNode(a,b,c);if(d)return d;a=cvox.DomUtil.directedNextSibling(a,b)}return null};cvox.DomUtil.directedFindDeepestNode=function(a,b,c){var d=cvox.DomUtil.directedFindFirstNode(a,b,c);return d?cvox.DomUtil.directedFindDeepestNode(d,b,c):c(a)?a:null}; +cvox.DomUtil.directedFindNextNode=function(a,b,c,d,e,f){e=!!e;f=!!f;if(!cvox.DomUtil.isDescendantOfNode(a,b)||a==b)return null;for(var g=cvox.DomUtil.directedNextSibling(a,c);g;){if(!f&&d(g))return g;var h=(f?cvox.DomUtil.directedFindDeepestNode:cvox.DomUtil.directedFindFirstNode)(g,c,d);if(h)return h;if(f&&d(g))return g;g=cvox.DomUtil.directedNextSibling(g,c)}a=a.parentNode;return e&&d(a)?a:cvox.DomUtil.directedFindNextNode(a,b,c,d,e,f)}; +cvox.DomUtil.getControlValueAndStateString=function(a){var b=cvox.DomUtil.getSurroundingControl(a);return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a)+" "+cvox.DomUtil.getState(a,!0)):cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getState(a,!0))};cvox.DomUtil.isInternalLink=function(a){return 1==a.nodeType&&(a=a.getAttribute("href"))&&-1!=a.indexOf("#")?(a=a.split("#")[0],""==a||a==window.location.pathname):!1}; +cvox.DomUtil.getLinkURL=function(a){if("A"==a.tagName){if(a.getAttribute("href"))return cvox.DomUtil.isInternalLink(a)?cvox.ChromeVox.msgs.getMsg("internal_link"):a.getAttribute("href")}else if(cvox.AriaUtil.getRoleName(a)==cvox.ChromeVox.msgs.getMsg("aria_role_link"))return cvox.ChromeVox.msgs.getMsg("unknown_link");return""};cvox.DomUtil.getContainingTable=function(a,b){var c=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findTableNodeInList(c,b)}; +cvox.DomUtil.findTableNodeInList=function(a,b){b=b||{allowCaptions:!1};for(var c=a.length-1,d;d=a[c];c--)if(d.constructor!=Text){if(!b.allowCaptions&&"CAPTION"==d.tagName)break;if("TABLE"==d.tagName||cvox.AriaUtil.isGrid(d))return d}return null}; +cvox.DomUtil.isLayoutTable=function(a){if(a.rows&&(1==a.rows.length||1==a.rows[0].childElementCount))return!0;if(cvox.AriaUtil.isGrid(a)||cvox.AriaUtil.isLandmark(a)||a.caption||a.summary||0<cvox.XpathUtil.evalXPath("tbody/tr/th",a).length&&0<cvox.XpathUtil.evalXPath("tbody/tr/td",a).length||0<cvox.XpathUtil.evalXPath("colgroup",a).length||0<cvox.XpathUtil.evalXPath("thead",a).length||0<cvox.XpathUtil.evalXPath("tfoot",a).length)return!1;if(0<cvox.XpathUtil.evalXPath("tbody/tr/td/embed",a).length|| +0<cvox.XpathUtil.evalXPath("tbody/tr/td/object",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/iframe",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/applet",a).length)return!0;var b=0;cvox.DomUtil.hasBorder(a)||b++;6>=a.rows.length&&b++;12>=cvox.DomUtil.countPreviousTags(a)&&b++;0<cvox.XpathUtil.evalXPath("tbody/tr/td/table",a).length&&b++;return 3<=b};cvox.DomUtil.countPreviousTags=function(a){var b=cvox.DomUtil.getAncestors(a);return b.length+cvox.DomUtil.countPreviousSiblings(a)}; +cvox.DomUtil.countPreviousSiblings=function(a){var b=0;for(a=a.previousSibling;null!=a;)a.constructor!=Text&&b++,a=a.previousSibling;return b};cvox.DomUtil.hasBorder=function(a){return a.frame?-1==a.frame.indexOf("void"):a.border?1==a.border.length?"0"!=a.border:0!=a.border.slice(0,-2):a.style.borderStyle&&"none"==a.style.borderStyle?!1:a.style.borderWidth?0!=a.style.borderWidth.slice(0,-2):a.style.borderColor?!0:!1}; +cvox.DomUtil.getFirstLeafNode=function(){for(var a=document.body;a&&a.firstChild;)a=a.firstChild;for(;a&&!cvox.DomUtil.hasContent(a);)a=cvox.DomUtil.directedNextLeafNode(a);return a};cvox.DomUtil.findNode=function(a,b){var c=[],d=cvox.DomUtil.findNodes_(a,b,c,!0,1E4);return d?c[0]:void 0};cvox.DomUtil.countNodes=function(a,b){var c=[];cvox.DomUtil.findNodes_(a,b,c,!1,1E4);return c.length}; +cvox.DomUtil.findNodes_=function(a,b,c,d,e){if(null!=a||0==e)for(a=a.firstChild;a;){if(b(a)&&(c.push(a),d))return!0;e-=1;if(cvox.DomUtil.findNodes_(a,b,c,d,e))return!0;a=a.nextSibling}return!1};cvox.DomUtil.toArray=function(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);return b}; +cvox.DomUtil.shallowChildlessClone=function(a,b){if("#text"==a.nodeName)return document.createTextNode(a.nodeValue);if("#comment"==a.nodeName)return document.createComment(a.nodeValue);for(var c=document.createElement(a.nodeName),d=0;d<a.attributes.length;++d){var e=a.attributes[d];b&&b[e.nodeName]||c.setAttribute(e.nodeName,e.nodeValue)}return c}; +cvox.DomUtil.deepClone=function(a,b){for(var c=cvox.DomUtil.shallowChildlessClone(a,b),d=0;d<a.childNodes.length;++d)c.appendChild(cvox.DomUtil.deepClone(a.childNodes[d],b));return c};cvox.DomUtil.directedFirstChild=function(a,b){return b?a.lastChild:a.firstChild};cvox.DomUtil.directedNextSibling=function(a,b){return a?b?a.previousSibling:a.nextSibling:null};cvox.DomUtil.createSimpleClickFunction=function(a){var b=a.cloneNode(!0);return function(){cvox.DomUtil.clickElem(b,!1,!1)}}; +cvox.DomUtil.addNodeToHead=function(a,b){if(!b||!document.getElementById(b)){var c=document.head||document.body;c.appendChild(a)}};cvox.DomUtil.getContainingMath=function(a){a=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findMathNodeInList(a)};cvox.DomUtil.findMathNodeInList=function(a){for(var b=0,c;c=a[b];b++)if(cvox.DomUtil.isMath(c))return c;return null};cvox.DomUtil.isMath=function(a){return cvox.DomUtil.isMathml(a)||cvox.DomUtil.isMathJax(a)||cvox.DomUtil.isMathImg(a)||cvox.AriaUtil.isMath(a)}; +cvox.DomUtil.ALT_MATH_CLASSES={tex:["tex","latex"],asciimath:["numberedequation","inlineformula","displayformula"]};cvox.DomUtil.altMathQuerySelector=function(a){return(a=cvox.DomUtil.ALT_MATH_CLASSES[a])?a.map(function(a){return"img."+a}).join(", "):""};cvox.DomUtil.isMathImg=function(a){if(!a||!a.tagName||!a.className||"IMG"!=a.tagName)return!1;a=a.className.toLowerCase();return-1!=cvox.DomUtil.ALT_MATH_CLASSES.tex.indexOf(a)||-1!=cvox.DomUtil.ALT_MATH_CLASSES.asciimath.indexOf(a)}; +cvox.DomUtil.isMathml=function(a){return a&&a.tagName?"math"==a.tagName.toLowerCase():!1};cvox.DomUtil.isMathJax=function(a){function b(a,b){return"SPAN"==a.tagName&&a.className.split(" ").some(function(a){return a.toLowerCase()==b})}return a&&a.tagName&&a.className?b(a,"math")?(a=cvox.DomUtil.getAncestors(a),a.some(function(a){return b(a,"mathjax")})):!1:!1};cvox.DomUtil.getMathSpanId=function(a){if(a=document.getElementById(a+"-Frame"))if(a=a.querySelector("span.math"))return a.id}; +cvox.DomUtil.hasLongDesc=function(a){return a&&a.longDesc?!0:!1};cvox.DomUtil.getNodeTagName=function(a){return a.nodeType==Node.ELEMENT_NODE?a.tagName:""};cvox.DomUtil.purgeNodes=function(a){return cvox.DomUtil.toArray(a).filter(function(a){return a.nodeType!=Node.TEXT_NODE||!a.textContent.match(/^\s+$/)})};cvox.DomUtil.elementToPoint=function(a){if(!a)return{x:0,y:0};a.constructor==Text&&(a=a.parentNode);a=a.getBoundingClientRect();return{x:a.left+a.width/2,y:a.top+a.height/2}};cvox.SelectionUtil=function(){};cvox.SelectionUtil.cleanUpParagraphForward=function(a){for(;3==a.focusNode.nodeType;){var b=a.focusNode,c=a.focusOffset;a.modify("extend","forward","sentence");if(b==a.focusNode&&c==a.focusOffset)return!1}return!0};cvox.SelectionUtil.cleanUpParagraphBack=function(a){for(var b,c;3==a.focusNode.nodeType&&(b=a.focusNode,c=a.focusOffset,a.modify("extend","backward","sentence"),b!=a.focusNode||c!=a.focusOffset););return!0}; +cvox.SelectionUtil.cleanUpSentence=function(a){for(var b=!0;b;)if(3==a.focusNode.nodeType){var c=a.focusNode,d=a.focusOffset;if(0<a.rangeCount&&0<a.getRangeAt(0).endOffset)if("."==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else if(" "==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else{if(a.modify("extend","forward","sentence"),c==a.focusNode&&d==a.focusOffset)return!1}else break}else break;return!0}; +cvox.SelectionUtil.findSelPosition=function(a){if(0==a.rangeCount)return[0,0];var b=a.getRangeAt(0).getBoundingClientRect();if(!b)return[0,0];a=window.pageYOffset+b.top;b=window.pageXOffset+b.left;return[a,b]};cvox.SelectionUtil.findTopLeftPosition=function(a){var b=0,c=0;if(a.offsetParent)for(b=a.offsetLeft,c=a.offsetTop,a=a.offsetParent;null!==a;)b+=a.offsetLeft,c+=a.offsetTop,a=a.offsetParent;return[c,b]}; +cvox.SelectionUtil.isSelectionValid=function(a){var b=RegExp(/^\s+$/);return!(b.test(a.toString())||""==a.toString())};cvox.SelectionUtil.isRangeValid=function(a){a=a.cloneContents().textContent;var b=RegExp(/^\s+$/);return!(b.test(a)||""==a)};cvox.SelectionUtil.findPos_=function(a){var b=0,c=0;if(a.offsetParent){do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent)}return[b,c]}; +cvox.SelectionUtil.scrollElementsToView=function(a){for(;a&&!a.getBoundingClientRect;)a=a.parentElement;if(a){for(var b=a,c=b.parentElement;b!=document.body&&c;)b.scrollTop=b.offsetTop,b.scrollLeft=b.offsetLeft,b=c,c=b.parentElement;a=cvox.SelectionUtil.findPos_(a);window.scrollTo(a[0]-window.innerWidth/2,a[1]-window.innerHeight/2)}}; +cvox.SelectionUtil.scrollToSelection=function(a){if(0!=a.rangeCount){cvox.SelectionUtil.scrollElementsToView(a.focusNode);var b=cvox.SelectionUtil.findSelPosition(a);a=b[0];var b=b[1],c=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=window.innerWidth||document.documentElement.innerWidth||document.body.clientWidth;b<e&&(b=0);c+d<a?(a-=d,window.scroll(b,a+100)):a<c&&window.scroll(b, +a-100)}};cvox.SelectionUtil.isAllWs=function(a){return!/[^\t\n\r ]/.test(a.data)};cvox.SelectionUtil.isIgnorable=function(a){return 8==a.nodeType||3==a.nodeType&&cvox.SelectionUtil.isAllWs(a)};cvox.SelectionUtil.nodeBefore=function(a){for(;a=a.previousSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};cvox.SelectionUtil.nodeAfter=function(a){for(;a=a.nextSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null}; +cvox.SelectionUtil.lastChildNode=function(a){for(a=a.lastChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.previousSibling}return null};cvox.SelectionUtil.firstChildNode=function(a){for(a=a.firstChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.nextSibling}return null};cvox.SelectionUtil.dataOf=function(a){a=a.data;a=a.replace(/[\t\n\r ]+/g," ");" "==a.charAt(0)&&(a=a.substring(1,a.length));" "==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));return a}; +cvox.SelectionUtil.hasContentWithTag=function(a,b){if(!a||!a.anchorNode||!a.focusNode)return!1;if(a.anchorNode.tagName&&a.anchorNode.tagName==b||a.focusNode.tagName&&a.focusNode.tagName==b||a.anchorNode.parentNode.tagName&&a.anchorNode.parentNode.tagName==b||a.focusNode.parentNode.tagName&&a.focusNode.parentNode.tagName==b)return!0;var c=a.getRangeAt(0).cloneContents(),d=document.createElement("span");d.appendChild(c);return 0<d.getElementsByTagName(b).length}; +cvox.SelectionUtil.selectText=function(a,b,c){var d=document.createRange();d.setStart(a,b);d.setEnd(a,c);a=window.getSelection();a.removeAllRanges();a.addRange(d)};cvox.SelectionUtil.selectAllTextInNode=function(a){var b=document.createRange();b.setStart(a,0);b.setEndAfter(a);a=window.getSelection();a.removeAllRanges();a.addRange(b)}; +cvox.SelectionUtil.collapseToStart=function(a){var b=window.getSelection(),c=b.anchorNode,d=b.anchorOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};cvox.SelectionUtil.collapseToEnd=function(a){var b=window.getSelection(),c=b.focusNode,d=b.focusOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)}; +cvox.SelectionUtil.getText=function(){var a=window.getSelection();if(cvox.SelectionUtil.hasContentWithTag(a,"IMG")){var b="",a=a.getRangeAt(0).cloneContents(),c=document.createElement("span");c.appendChild(a);for(var a=cvox.XpathUtil.getLeafNodes(c),c=0,d;d=a[c];c++)b=b+" "+cvox.DomUtil.getName(d);return b}return this.getSelectionText_()};cvox.SelectionUtil.getSelectionText_=function(){return""+window.getSelection()}; +cvox.SelectionUtil.getRangeText=function(a){return a?a.cloneContents().textContent.replace(/\s+/g," "):""};cvox.TraverseUtil=function(){};cvox.TraverseUtil.getNodeText=function(a){return a.constructor==Text?a.data:""};cvox.TraverseUtil.treatAsLeafNode=function(a){return 0==a.childNodes.length||"SELECT"==a.nodeName||"listbox"==a.getAttribute("role")||"OBJECT"==a.nodeName};cvox.TraverseUtil.isWhitespace=function(a){return" "==a||"\n"==a||"\r"==a||"\t"==a}; +cvox.TraverseUtil.setSelection=function(a,b){var c=window.getSelection();c.removeAllRanges();var d=document.createRange();d.setStart(a.node,a.index);d.setEnd(b.node,b.index);c.addRange(d);return c};cvox.TraverseUtil.isHidden=function(a){if(a instanceof HTMLElement&&"true"==a.getAttribute("aria-hidden"))return!0;switch(a.tagName){case "SCRIPT":case "NOSCRIPT":return!0}return!1}; +cvox.TraverseUtil.forwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index;e<a.node.childNodes.length;e++){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.index=0,a.text=cvox.TraverseUtil.getNodeText(a.node),a.node instanceof HTMLElement&&b.push(a.node);else{if(a.index<a.text.length)return a.text[a.index++];for(;null!= +a.node;){d=null;for(f=a.node.nextSibling;null!=f;f=f.nextSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=0;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof HTMLElement&&c.push(a.node),a.node=a.node.parentNode, +a.text=null,a.index=0;else return null}}}}; +cvox.TraverseUtil.backwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index-1;0<=e;e--){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.text=cvox.TraverseUtil.getNodeText(a.node),a.index=a.text.length?a.text.length:a.node.childNodes.length,a.node instanceof HTMLElement&&b.push(a.node);else{if(0<a.text.length&&0<a.index)return a.text[--a.index]; +for(;;){d=null;for(f=a.node.previousSibling;null!=f;f=f.previousSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=a.text.length?a.text.length:a.node.childNodes.length;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof +HTMLElement&&c.push(a.node),a.node=a.node.parentNode,a.text=null,a.index=0;else return null}}}}; +cvox.TraverseUtil.getNextChar=function(a,b,c,d,e){a.copyFrom(b);var f=cvox.TraverseUtil.forwardsChar(b,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(b.node);)if(f=cvox.TraverseUtil.forwardsChar(b,c,d),null==f)return null;if(e||!g)return a.copyFrom(b),a.index--,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return b.index--,a.copyFrom(b),a.index--," ";b.index--;return" "}; +cvox.TraverseUtil.getPreviousChar=function(a,b,c,d,e){b.copyFrom(a);var f=cvox.TraverseUtil.backwardsChar(a,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(a.node);)if(f=cvox.TraverseUtil.backwardsChar(a,c,d),null==f)return null;if(e||!g)return b.copyFrom(a),b.index++,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return a.index++,b.copyFrom(a),b.index++," ";a.index++;return" "}; +cvox.TraverseUtil.getNextWord=function(a,b,c,d){var e=b.clone(),f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.forwardsChar(e,c,d),null==f)return null;a.copyFrom(e);a.index--;b.copyFrom(e);a=f;c=[];d=[];f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return a;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d&&(a+=f,b.copyFrom(e),f=cvox.TraverseUtil.forwardsChar(e,c,d),null!= +f););return a}; +cvox.TraverseUtil.getPreviousWord=function(a,b,c,d){var e=a.clone(),f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.backwardsChar(e,c,d),null==f)return null;b.copyFrom(e);b.index++;a.copyFrom(e);b=f;c=[];d=[];f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return b;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d.length&&(b=f+b,a.copyFrom(e),f=cvox.TraverseUtil.backwardsChar(e,c, +d),null!=f););return b};cvox.TraverseUtil.includesBreakTagOrSkippedNode=function(a,b,c){for(var d=0;d<a.length;d++){if(cvox.TraverseUtil.isHidden(a[d]))return!0;var e=window.getComputedStyle(a[d],null);if(e&&"inline"!=e.display||c[a[d].tagName])return!0}for(d=0;d<b.length;d++)if((e=window.getComputedStyle(b[d],null))&&"inline"!=e.display||c[b[d].tagName])return!0;return!1}; +cvox.TraverseUtil.getNextSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){return"."==a.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};cvox.TraverseUtil.getPreviousSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){return"."==b.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})}; +cvox.TraverseUtil.getNextLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=b.clone();return cvox.TraverseUtil.getNextString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.bottom!=g.bottom&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(b.node)))return b.copyFrom(h),!0;g=c;h.copyFrom(b);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})}; +cvox.TraverseUtil.getPreviousLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=a.clone();return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.top!=g.top&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(a.node)))return a.copyFrom(h),!0;g=c;h.copyFrom(a);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})}; +cvox.TraverseUtil.getNextParagraph=function(a,b,c,d){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})}; +cvox.TraverseUtil.getPreviousParagraph=function(a,b,c,d){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})}; +cvox.TraverseUtil.getNextString=function(a,b,c,d,e){c=b.clone();d=b.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getNextWord(c,d,f,g);if(null==k)return null;for(a.copyFrom(c);!(h&&e(h,k,f,g)||(h&&(h+=" "),h+=k,b.copyFrom(d),f=[],g=[],k=cvox.TraverseUtil.getNextWord(c,d,f,g),null==k)););return h}; +cvox.TraverseUtil.getPreviousString=function(a,b,c,d,e){c=a.clone();d=a.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getPreviousWord(c,d,f,g);if(null==k)return null;for(b.copyFrom(d);!(h&&e(h,k,f,g)||(h&&(h=" "+h),h=k+h,a.copyFrom(c),f=[],g=[],k=cvox.TraverseUtil.getPreviousWord(c,d,f,g),null==k)););return h};cvox.CursorSelection=function(a,b,c){this.start=a.clone();this.end=b.clone();void 0==c&&(c=!1);if((this.isReversed_=c)&&this.start.node.compareDocumentPosition(this.end.node)==cvox.CursorSelection.BEFORE||!this.isReversed_&&this.end.node.compareDocumentPosition(this.start.node)==cvox.CursorSelection.BEFORE)a=this.start,this.start=this.end,this.end=a};cvox.CursorSelection.BEFORE=4; +cvox.CursorSelection.prototype.setReversed=function(a){if(a==this.isReversed_)return this;var b=this.start;this.start=this.end;this.end=b;this.isReversed_=a;return this};cvox.CursorSelection.prototype.isReversed=function(){return this.isReversed_};cvox.CursorSelection.prototype.absStart=function(){return this.isReversed_?this.end:this.start};cvox.CursorSelection.prototype.absEnd=function(){return this.isReversed_?this.start:this.end}; +cvox.CursorSelection.prototype.clone=function(){return new cvox.CursorSelection(this.start,this.end,this.isReversed_)};cvox.CursorSelection.prototype.select=function(){var a=window.getSelection();a.removeAllRanges();this.normalize();a.addRange(this.getRange())};cvox.CursorSelection.fromNode=function(a){if(!a)return null;var b=cvox.TraverseUtil.getNodeText(a);return new cvox.CursorSelection(new cvox.Cursor(a,0,b),new cvox.Cursor(a,0,b))};cvox.CursorSelection.fromBody=function(){return cvox.CursorSelection.fromNode(document.body)}; +cvox.CursorSelection.prototype.getText=function(){return this.start.equals(this.end)?cvox.TraverseUtil.getNodeText(this.start.node):cvox.SelectionUtil.getRangeText(this.getRange())};cvox.CursorSelection.prototype.getRange=function(){var a=document.createRange();this.isReversed_?(a.setStart(this.end.node,this.end.index),a.setEnd(this.start.node,this.start.index)):(a.setStart(this.start.node,this.start.index),a.setEnd(this.end.node,this.end.index));return a}; +cvox.CursorSelection.prototype.equals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)};cvox.CursorSelection.prototype.absEquals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)||this.end.equals(a.start)&&this.start.equals(a.end)};cvox.CursorSelection.prototype.directedBefore=function(a){var b=this.start.node.compareDocumentPosition(a.start.node)==cvox.CursorSelection.BEFORE;return this.start.node==a.start.node||(this.isReversed()?!b:b)}; +cvox.CursorSelection.prototype.normalize=function(){if(0==this.absEnd().index&&this.absEnd().node){var a=this.absEnd().node,b=document.createRange();b.selectNodeContents(a);this.absEnd().index=b.endOffset}return this};cvox.CursorSelection.prototype.collapse=function(){if(this.start.equals(this.end))return this;this.end.copyFrom(this.start);if(0==this.start.text.length)return this;this.isReversed()?0<this.end.index&&this.end.index--:this.end.index<this.end.text.length&&this.end.index++;return this};cvox.PlatformUtil={};cvox.PlatformFilter={NONE:0,WINDOWS:1,MAC:2,LINUX:4,WML:7,CHROMEOS:8,ANDROID:16};cvox.PlatformUtil.matchesPlatform=function(a){var b=navigator.userAgent;return void 0==a?!0:-1!=b.indexOf("Android")?0!=(a&cvox.PlatformFilter.ANDROID):-1!=b.indexOf("Win")?0!=(a&cvox.PlatformFilter.WINDOWS):-1!=b.indexOf("Mac")?0!=(a&cvox.PlatformFilter.MAC):-1!=b.indexOf("Linux")?0!=(a&cvox.PlatformFilter.LINUX):-1!=b.indexOf("CrOS")?0!=(a&cvox.PlatformFilter.CHROMEOS):!1};cvox.Spannable=function(a,b){this.string_=a||"";this.spans_=[];if(goog.isDef(b)){var c=this.string_.length;this.spans_.push({value:b,start:0,end:c})}};cvox.Spannable.prototype.toString=function(){return this.string_};cvox.Spannable.prototype.getLength=function(){return this.string_.length};cvox.Spannable.prototype.setSpan=function(a,b,c){this.removeSpan(a);if(0<=b&&b<=c&&c<=this.string_.length)this.spans_.push({value:a,start:b,end:c});else throw new RangeError("span out of range");}; +cvox.Spannable.prototype.removeSpan=function(a){for(var b=this.spans_.length-1;0<=b;b--)this.spans_[b].value===a&&this.spans_.splice(b,1)};cvox.Spannable.prototype.append=function(a){if(a instanceof cvox.Spannable){var b=a,c=this.getLength();this.string_+=b.string_;a.spans_.forEach(goog.bind(function(a){this.setSpan(a.value,a.start+c,a.end+c)},this))}else"string"===typeof a&&(this.string_+=a)}; +cvox.Spannable.prototype.getSpan=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.start<=a&&a<c.end)return c.value}};cvox.Spannable.prototype.getSpanInstanceOf=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value instanceof a)return c.value}};cvox.Spannable.prototype.getSpans=function(a){for(var b=[],c=0;c<this.spans_.length;c++){var d=this.spans_[c];d.start<=a&&a<d.end&&b.push(d.value)}return b}; +cvox.Spannable.prototype.getSpanStart=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.start}return null};cvox.Spannable.prototype.getSpanEnd=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.end}return null}; +cvox.Spannable.prototype.substring=function(a,b){var c=goog.isDef(b)?b:this.string_.length;if(0>a||c>this.string_.length||a>c)throw new RangeError("substring indices out of range");for(var d=new cvox.Spannable(this.string_.substring(a,c)),e=0;e<this.spans_.length;e++){var f=this.spans_[e];if(f.start<=c&&f.end>=a){var g=Math.max(0,f.start-a),h=Math.min(c-a,f.end-a);d.spans_.push({value:f.value,start:g,end:h})}}return d}; +cvox.Spannable.prototype.trim=function(){if(/^\s*$/.test(this.string_))return this.substring(0,0);var a=this.string_.match(/^\s*/)[0].length,b=this.string_.match(/\s*$/).index;return this.substring(a,b)};cvox.NavBraille=function(a){this.text=a.text instanceof cvox.Spannable?a.text:new cvox.Spannable(a.text);this.startIndex=a.startIndex?a.startIndex:0;this.endIndex=a.endIndex?a.endIndex:0};cvox.NavBraille.fromText=function(a){return new cvox.NavBraille({text:a})};cvox.NavBraille.prototype.isEmpty=function(){return 0==this.text.getLength()};cvox.NavBraille.prototype.toString=function(){return'NavBraille(text="'+this.text.toString()+'" startIndex="'+this.startIndex+'" endIndex="'+this.endIndex+'")'}; +cvox.NavBraille.prototype.toJson=function(){return{text:this.text.toString(),startIndex:this.startIndex,endIndex:this.endIndex}};cvox.NavBraille.prototype.write=function(){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.CHROMEOS|cvox.PlatformFilter.ANDROID)&&cvox.ChromeVox.braille.write(this)};cvox.BrailleKeyCommand={PAN_LEFT:"pan_left",PAN_RIGHT:"pan_right",LINE_UP:"line_up",LINE_DOWN:"line_down",TOP:"top",BOTTOM:"bottom",ROUTING:"routing",SECONDARY_ROUTING:"secondary_routing",DOTS:"dots",STANDARD_KEY:"standard_key"};cvox.BrailleKeyEvent={};cvox.BrailleInterface=function(){};cvox.BrailleInterface.prototype.write=function(){};cvox.AbstractBraille=function(){};cvox.AbstractHost=function(){};cvox.AbstractHost.State={ACTIVE:0,INACTIVE:1,KILLED:2};cvox.AbstractHost.prototype.init=function(){};cvox.AbstractHost.prototype.reinit=function(){};cvox.AbstractHost.prototype.onPageLoad=function(){};cvox.AbstractHost.prototype.getApiSrc=function(){return""};cvox.AbstractHost.prototype.getFileSrc=function(){return""};cvox.AbstractHost.prototype.hasTtsCallback=function(){return!0};cvox.AbstractHost.prototype.ttsLoaded=function(){return!0}; +cvox.AbstractHost.prototype.mustRedispatchClickEvent=function(){return!1};cvox.AbstractHost.prototype.activateOrDeactivateChromeVox=function(a){this.onStateChanged_(a?cvox.AbstractHost.State.ACTIVE:cvox.AbstractHost.State.INACTIVE)};cvox.AbstractHost.prototype.killChromeVox=function(){this.onStateChanged_(cvox.AbstractHost.State.KILLED)}; +cvox.AbstractHost.prototype.onStateChanged_=function(a){var b=a==cvox.AbstractHost.State.ACTIVE;if(b!=cvox.ChromeVox.isActive)switch(cvox.ChromeVoxEventWatcher.cleanup(window),a){case cvox.AbstractHost.State.ACTIVE:cvox.ChromeVox.isActive=!0;cvox.ChromeVox.navigationManager.showOrHideIndicator(!0);cvox.ChromeVoxEventWatcher.init(window);document.activeElement?(a=document.hasFocus()&&!document.webkitHidden,cvox.ApiImplementation.syncToNode(document.activeElement,a)):cvox.ChromeVox.navigationManager.updateIndicator(); +break;case cvox.AbstractHost.State.INACTIVE:cvox.ChromeVox.isActive=!1;cvox.ChromeVox.navigationManager.showOrHideIndicator(!1);cvox.ChromeVoxEventWatcher.init(window);break;case cvox.AbstractHost.State.KILLED:cvox.ChromeVox.isActive=!1,cvox.ChromeVox.navigationManager.showOrHideIndicator(!1)}};cvox.MathJaxInterface=function(){};cvox.MathJaxInterface.prototype.isMathjaxActive=function(){};cvox.MathJaxInterface.prototype.getAllJax=function(){};cvox.MathJaxInterface.prototype.registerSignal=function(){};cvox.MathJaxInterface.prototype.injectScripts=function(){};cvox.MathJaxInterface.prototype.configMediaWiki=function(){};cvox.MathJaxInterface.prototype.getTex=function(){};cvox.MathJaxInterface.prototype.getAsciiMath=function(){};cvox.AbstractMathJax=function(){};cvox.AbstractMathJax.prototype.getAllTexs=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("tex")),c=0,d;d=b[c];c++)this.getTex(a,d)};cvox.AbstractMathJax.prototype.getAllAsciiMaths=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("asciimath")),c=0,d;d=b[c];c++)this.getAsciiMath(a,d)}; +cvox.AbstractMathJax.prototype.convertMarkupToDom=function(a,b,c){if(b){var d=new DOMParser;b=b.replace(/>\s+</g,"><");a(d.parseFromString(b,"text/xml").firstChild,c)}};cvox.AbstractMsgs=function(){};cvox.AbstractMsgs.prototype.getMsg=function(){};cvox.AbstractMsgs.prototype.getNumber=function(){};cvox.HostFactory=function(){};cvox.HostFactory.getHost=function(){return new cvox.HostFactory.hostConstructor};cvox.HostFactory.getTts=function(){return new cvox.HostFactory.ttsConstructor};cvox.HostFactory.getBraille=function(){return new cvox.HostFactory.brailleConstructor};cvox.HostFactory.getMsgs=function(){return new cvox.HostFactory.msgsConstructor};cvox.HostFactory.getEarcons=function(){return new cvox.HostFactory.earconsConstructor};cvox.HostFactory.getMathJax=function(){return new cvox.HostFactory.mathJaxConstructor};cvox.SpokenMessage=function(){this.raw=this.id=this.count=null};cvox.SpokenMessages={};cvox.SpokenMessages.messages=[];cvox.SpokenMessages.speakFlush=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_FLUSH)};cvox.SpokenMessages.speakQueued=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_QUEUE)}; +cvox.SpokenMessages.speak=function(a){for(var b=0;b<cvox.SpokenMessages.messages.length;++b){var c=cvox.SpokenMessages.messages[b];if(!c||!c.id&&!c.raw)throw"Invalid message received.";var d="";if(null!=c.count)if(0>=c.count)try{d+=cvox.ChromeVox.msgs.getMsg(c.id[0]+"_optional_default")}catch(e){continue}else d=1==c.count?d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_singular"):d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_plural",[c.count]);else d=c.raw?d+c.raw:d+cvox.ChromeVox.msgs.getMsg.apply(cvox.ChromeVox.msgs, +c.id);cvox.ChromeVox.tts.speak(d,a,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=cvox.AbstractTts.QUEUE_MODE_QUEUE}cvox.SpokenMessages.messages=[]};cvox.SpokenMessages.currentMessage=function(){if(0==cvox.SpokenMessages.messages.length)throw"Invalid usage of SpokenMessages; start the chain using $m()";return cvox.SpokenMessages.messages[cvox.SpokenMessages.messages.length-1]};cvox.SpokenMessages.withCount=function(a){cvox.SpokenMessages.currentMessage().count=a;return cvox.SpokenMessages}; +cvox.SpokenMessages.andIndexTotal=function(a,b){var c=new cvox.SpokenMessage;c.raw=cvox.ChromeVox.msgs.getMsg("index_total",[a,b]);cvox.SpokenMessages.messages.push(c);return cvox.SpokenMessages};cvox.SpokenMessages.andEnd=function(){return cvox.SpokenMessages.andMessage("end")};cvox.SpokenMessages.andMessage=function(a){var b=new cvox.SpokenMessage;b.id="string"==typeof a?[a]:a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages}; +cvox.SpokenMessages.andRawMessage=function(a){var b=new cvox.SpokenMessage;b.raw=a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};cvox.SpokenMessages.andPause=function(){return cvox.SpokenMessages.andMessage("pause")};cvox.$m=cvox.SpokenMessages.andMessage;cvox.CompositeTts=function(){this.ttsEngines_=[]};cvox.CompositeTts.prototype.add=function(a){this.ttsEngines_.push(a);return this};cvox.CompositeTts.prototype.speak=function(a,b,c){this.ttsEngines_.forEach(function(d){d.speak(a,b,c)})};cvox.CompositeTts.prototype.isSpeaking=function(){return this.ttsEngines_.some(function(a){return a.isSpeaking()})};cvox.CompositeTts.prototype.stop=function(){this.ttsEngines_.forEach(function(a){a.stop()})}; +cvox.CompositeTts.prototype.increaseOrDecreaseProperty=function(a,b){this.ttsEngines_.forEach(function(c){c.increaseOrDecreaseProperty(a,b)})};cvox.CompositeTts.prototype.getDefaultProperty=function(a){for(var b=0,c;c=this.ttsEngines_[b];b++)if(c=c.getDefaultProperty(a))return c};cvox.BuildInfo={};cvox.BuildInfo.build="1384906195.369502";cvox.ChromeVoxJSON||(cvox.ChromeVoxJSON={}); +window.JSON&&"[object JSON]"==window.JSON.toString()?cvox.ChromeVoxJSON=window.JSON:function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,n,s,u=f,t,r=d[a];r&&"object"===typeof r&&"function"===typeof r.toJSON&&(r=r.toJSON(a));"function"===typeof k&&(r=k.call(d,a,r));switch(typeof r){case "string":return b(r); +case "number":return isFinite(r)?String(r):"null";case "boolean":case "null":return String(r);case "object":if(!r)return"null";f+=g;t=[];if("[object Array]"===Object.prototype.toString.apply(r)){s=r.length;for(e=0;e<s;e+=1)t[e]=c(e,r)||"null";n=0===t.length?"[]":f?"[\n"+f+t.join(",\n"+f)+"\n"+u+"]":"["+t.join(",")+"]";f=u;return n}if(k&&"object"===typeof k)for(s=k.length,e=0;e<s;e+=1)h=k[e],"string"===typeof h&&(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);else for(h in r)Object.hasOwnProperty.call(r,h)&& +(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);n=0===t.length?"{}":f?"{\n"+f+t.join(",\n"+f)+"\n"+u+"}":"{"+t.join(",")+"}";f=u;return n}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":"null"},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()}); +var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof cvox.ChromeVoxJSON.stringify&&(cvox.ChromeVoxJSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&& +(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});"function"!==typeof cvox.ChromeVoxJSON.parse&&(cvox.ChromeVoxJSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=String(a);d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})); +if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})}();"undefined"!=typeof goog&&goog.provide&&(cvox.ApiUtil={});window.cvox||(window.cvox={});cvox.ApiUtils=function(){};cvox.ApiUtils.nextCvoxId_=1; +cvox.ApiUtils.makeNodeReference=function(a){if(a.id&&document.getElementById(a.id)==a)return{id:a.id};if(a instanceof HTMLElement){var b=cvox.ApiUtils.nextCvoxId_;a.setAttribute("cvoxid",b);cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+1)%100;return{cvoxid:b}}if(a.parentElement){for(var c=a.parentElement,d=-1,b=0;b<c.childNodes.length;b++)if(c.childNodes[b]==a){d=b;break}if(0<=d)return b=cvox.ApiUtils.nextCvoxId_,c.setAttribute("cvoxid",b),cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+ +1)%100,{cvoxid:b,childIndex:d}}throw"Cannot reference node: "+a;};cvox.ApiUtils.getNodeFromRef=function(a){if(a.id)return document.getElementById(a.id);if(a.cvoxid){var b='*[cvoxid="'+a.cvoxid+'"]';(b=document.querySelector(b))&&b.removeAttribute&&b.removeAttribute("cvoxid");return null!=a.childIndex?b.childNodes[a.childIndex]:b}throw"Bad node reference: "+cvox.ChromeVoxJSON.stringify(a);};cvox.ScriptInstaller={}; +cvox.ScriptInstaller.installScript=function(a,b,c,d){if(document.querySelector("script["+b+"]")||!a)return!1;for(var e=0,f;f=a[e];e++){var g=new XMLHttpRequest,h=f+"?"+(new Date).getTime();g.onreadystatechange=function(){if(4==g.readyState){var a=g.responseText,a=a+("\n//# sourceURL="+f+"\n"),c=document.createElement("script");c.type="text/javascript";c.setAttribute(b,"1");c.textContent=a;d&&c.setAttribute("chromevoxScriptBase",d);cvox.DomUtil.addNodeToHead(c)}};try{g.open("GET",h,!1),g.send(null)}catch(k){return window.console.log("Warning: ChromeVox external script loading for "+ +document.location+" stopped after failing to install "+f),!1}}c&&c();return!0};cvox.ApiImplementation=function(){};cvox.ApiImplementation.init=function(a){window.addEventListener("message",cvox.ApiImplementation.portSetup,!0);var b=[];b.push(cvox.ChromeVox.host.getFileSrc("chromevox/injected/api_util.js"));b.push(cvox.ChromeVox.host.getApiSrc());b.push(cvox.ApiImplementation.siteSpecificScriptLoader);a=cvox.ScriptInstaller.installScript(b,"cvoxapi",a,cvox.ApiImplementation.siteSpecificScriptBase);a||(window.location.href="javascript:cvox.Api.internalEnable();")}; +cvox.ApiImplementation.portSetup=function(a){return"cvox.PortSetup"==a.data?(cvox.ApiImplementation.port=a.ports[0],cvox.ApiImplementation.port.onmessage=function(a){cvox.ApiImplementation.dispatchApiMessage(cvox.ChromeVoxJSON.parse(a.data))},a.stopPropagation(),!1):!0}; +cvox.ApiImplementation.dispatchApiMessage=function(a){var b;switch(a.cmd){case "speak":b=cvox.ApiImplementation.speak;break;case "speakNodeRef":b=cvox.ApiImplementation.speakNodeRef;break;case "stop":b=cvox.ApiImplementation.stop;break;case "playEarcon":b=cvox.ApiImplementation.playEarcon;break;case "syncToNodeRef":b=cvox.ApiImplementation.syncToNodeRef;break;case "clickNodeRef":b=cvox.ApiImplementation.clickNodeRef;break;case "getBuild":b=cvox.ApiImplementation.getBuild;break;case "getVersion":b= +cvox.ApiImplementation.getVersion;break;case "getCurrentNode":b=cvox.ApiImplementation.getCurrentNode;break;case "getCvoxModKeys":b=cvox.ApiImplementation.getCvoxModKeys;break;case "isKeyShortcut":b=cvox.ApiImplementation.isKeyShortcut;break;case "setKeyEcho":b=cvox.ApiImplementation.setKeyEcho;break;case "Math.defineRule":b=cvox.ApiImplementation.Math.defineRule}if(!b)throw"Unknown API call: "+a.cmd;b.apply(cvox.ApiImplementation,a.args)}; +function setupEndCallback_(a,b){var c=function(){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:b}))};a&&(a.endCallback=c)}cvox.ApiImplementation.speak=function(a,b,c,d){cvox.ChromeVox.isActive&&(d||(d={}),setupEndCallback_(d,a),cvox.ChromeVox.tts.speak(b,c,d))};cvox.ApiImplementation.speakNode=function(a,b,c){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.speak(cvox.DomUtil.getName(a),b,c)}; +cvox.ApiImplementation.speakNodeRef=function(a,b,c,d){b=cvox.ApiUtils.getNodeFromRef(b);d||(d={});setupEndCallback_(d,a);cvox.ApiImplementation.speakNode(b,c,d)};cvox.ApiImplementation.stop=function(){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.stop()};cvox.ApiImplementation.playEarcon=function(a){cvox.ChromeVox.isActive&&cvox.ChromeVox.earcons.playEarconByName(a)};cvox.ApiImplementation.syncToNodeRef=function(a,b){var c=cvox.ApiUtils.getNodeFromRef(a);cvox.ApiImplementation.syncToNode(c,b)}; +cvox.ApiImplementation.syncToNode=function(a,b,c){cvox.ChromeVox.isActive&&(void 0==c&&(c=cvox.AbstractTts.QUEUE_MODE_FLUSH),cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a,!0),cvox.ChromeVox.navigationManager.updateIndicator(),void 0==b&&(b=!1),cvox.AriaUtil.isHiddenRecursive(a)&&(b=!1),b&&cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ApiImplementation.getDesc_(a),c,null),cvox.ChromeVox.navigationManager.getBraille().write(),cvox.ChromeVox.navigationManager.updatePosition(a))}; +cvox.ApiImplementation.getCurrentNode=function(a){var b=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,currentNode:cvox.ApiUtils.makeNodeReference(b)}))}; +cvox.ApiImplementation.getDesc_=function(a){if(!a.hasAttribute("cvoxnodedesc"))return cvox.ChromeVox.navigationManager.getDescription();a=cvox.ChromeVoxJSON.parse(a.getAttribute("cvoxnodedesc"));for(var b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b};cvox.ApiImplementation.clickNodeRef=function(a,b){cvox.DomUtil.clickElem(cvox.ApiUtils.getNodeFromRef(a),b,!1)}; +cvox.ApiImplementation.getBuild=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,build:cvox.BuildInfo.build}))};cvox.ApiImplementation.getVersion=function(a){var b=cvox.ChromeVox.version;null==b?window.setTimeout(function(){cvox.ApiImplementation.getVersion(a)},1E3):cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,version:b}))}; +cvox.ApiImplementation.getCvoxModKeys=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,keyCodes:cvox.KeyUtil.cvoxModKeyCodes()}))};cvox.ApiImplementation.isKeyShortcut=function(a,b){var c=cvox.KeyUtil.keyEventToKeySequence(b);cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,isHandled:cvox.ChromeVoxKbHandler.handlerKeyMap.hasKey(c)}))}; +cvox.ApiImplementation.setKeyEcho=function(a){var b=cvox.ChromeVox.keyEcho;b[document.location.href]=a;JSON.stringify(b)};cvox.ApiImplementation.Math=function(){};cvox.ApiImplementation.Math.defineRule=function(a,b,c,d,e){var f=cvox.MathmlStore.getInstance(),g=Array.prototype.slice.call(arguments,4),g=[a,b,c,d].concat(g);f.defineRule.apply(f,g)};cvox.ConsoleTts=function(){this.enabled_=!1};goog.addSingletonGetter(cvox.ConsoleTts);cvox.ConsoleTts.prototype.speak=function(a,b,c){if(this.enabled_&&window.console){var d="Speak",d=b==cvox.AbstractTts.QUEUE_MODE_FLUSH?d+" (I)":d+" (Q)",d=d+(' "'+a+'"');window.console.log(d);c&&void 0!=c.startCallback&&window.console.log(" using startCallback");c&&void 0!=c.endCallback&&window.console.log(" using endCallback")}return this};cvox.ConsoleTts.prototype.isSpeaking=function(){return!1}; +cvox.ConsoleTts.prototype.stop=function(){this.enabled_&&window.console.log("Stop")};cvox.ConsoleTts.prototype.increaseOrDecreaseProperty=function(){};cvox.ConsoleTts.prototype.setEnabled=function(a){this.enabled_=a};cvox.ConsoleTts.prototype.getDefaultProperty=function(){};cvox.ChromeVoxHTMLDateWidget=function(a,b){var c=this;this.pos_=0;var d=2;if("month"==a.type||"week"==a.type)d=1;this.maxPos_=d;this.dateElem_=a;this.dateTts_=b;this.pDay_=this.pWeek_=this.pMonth_=this.pYear_=-1;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};0==this.dateElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e); +e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e)}this.dateElem_.addEventListener("keydown",this.keyListener_,!1);this.dateElem_.addEventListener("keyup",this.keyListener_,!1);this.dateElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)}; +cvox.ChromeVoxHTMLDateWidget.prototype.shutdown=function(){this.dateElem_.removeEventListener("blur",this.blurListener_,!1);this.dateElem_.removeEventListener("keydown",this.keyListener_,!1);this.dateElem_.removeEventListener("keyup",this.keyListener_,!1)}; +cvox.ChromeVoxHTMLDateWidget.prototype.forceInitTime_=function(){var a=new Date,b="",b=a.getFullYear()+"",c=a.getMonth()+1+"";2>c.length&&(c="0"+c);var d=a.getDate()+"";switch(this.dateElem_.type){case "month":b=b+"-"+c;break;case "week":a.setHours(0,0,0);a.setDate(a.getDate()+4-(a.getDay()||7));c=new Date(a.getFullYear(),0,1);a=Math.ceil(((a-c)/864E5+1)/7)+"";2>a.length&&(a="0"+a);a="W"+a;b=b+"-"+a;break;default:b=b+"-"+c+"-"+d}this.dateElem_.setAttribute("value",b)}; +cvox.ChromeVoxHTMLDateWidget.prototype.handlePosChange_=function(){this.pos_=Math.max(this.pos_,0);this.pos_=Math.min(this.pos_,this.maxPos_);switch(this.pos_){case 0:"week"==this.dateElem_.type?this.pWeek_=-1:this.pMonth_=-1;break;case 1:"date"==this.dateElem_.type?this.pDay_=-1:this.pYear_=-1;break;case 2:this.pYear_=-1}}; +cvox.ChromeVoxHTMLDateWidget.prototype.update_=function(a){var b=this.dateElem_.value.split("-");if(1>b.length)this.forceInitTime_();else{var c=-1,d=-1,e=-1,f=-1,c=parseInt(b[0],10);"week"==this.dateElem_.type?e=parseInt(b[1].replace("W",""),10):"date"==this.dateElem_.type?(d=parseInt(b[1],10),f=parseInt(b[2],10)):d=parseInt(b[1],10);b="";a&&(b=cvox.DomUtil.getName(this.dateElem_,!0,!0)+"\n");e!=this.pWeek_&&(b=b+cvox.ChromeVox.msgs.getMsg("datewidget_week")+e+"\n",this.pWeek_=e);if(d!=this.pMonth_){a= +"";switch(d){case 1:a=cvox.ChromeVox.msgs.getMsg("datewidget_january");break;case 2:a=cvox.ChromeVox.msgs.getMsg("datewidget_february");break;case 3:a=cvox.ChromeVox.msgs.getMsg("datewidget_march");break;case 4:a=cvox.ChromeVox.msgs.getMsg("datewidget_april");break;case 5:a=cvox.ChromeVox.msgs.getMsg("datewidget_may");break;case 6:a=cvox.ChromeVox.msgs.getMsg("datewidget_june");break;case 7:a=cvox.ChromeVox.msgs.getMsg("datewidget_july");break;case 8:a=cvox.ChromeVox.msgs.getMsg("datewidget_august"); +break;case 9:a=cvox.ChromeVox.msgs.getMsg("datewidget_september");break;case 10:a=cvox.ChromeVox.msgs.getMsg("datewidget_october");break;case 11:a=cvox.ChromeVox.msgs.getMsg("datewidget_november");break;case 12:a=cvox.ChromeVox.msgs.getMsg("datewidget_december")}b=b+a+"\n";this.pMonth_=d}f!=this.pDay_&&(b=b+f+"\n",this.pDay_=f);c!=this.pYear_&&(b=b+c+"\n",this.pYear_=c);0<b.length&&this.dateTts_.speak(b,0,null)}}; +cvox.ChromeVoxHTMLDateWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.BrailleTextHandler=function(a){this.braille_=a};cvox.BrailleTextHandler.prototype.changed=function(a,b,c,d){var e;d?(e=cvox.NavBraille.fromText(a),e.startIndex=b,e.endIndex=c):cvox.ChromeVox.navigationManager&&(e=cvox.ChromeVox.navigationManager.getBraille());e&&this.braille_.write(e)};cvox.ContentEditableExtractor=function(){this.text_="";this.end_=this.start_=0;this.lines_={};this.characterToLineMap_=[]}; +cvox.ContentEditableExtractor.prototype.update=function(a){for(var b={0:{startIndex:0,endIndex:0}},c=new cvox.Cursor(a,0,""),d=c.clone(),e=document.createRange(),f,g=0,h=null,k="",l=0,m=-1,p=-1,q=window.getSelection(),n=new cvox.Cursor(q.baseNode,q.baseOffset,""),q=new cvox.Cursor(q.extentNode,q.extentOffset,""),s=!1,u=!1;;){f=[];var t=[],r=cvox.TraverseUtil.forwardsChar(d,f,t),v=!1;r||(v=!0);for(f=0;f<t.length&&!v;f++)t[f]==a&&(v=!0);if(v)break;e.setStart(c.node,c.index);e.setEnd(d.node,d.index); +if((f=e.getBoundingClientRect())&&0!=f.width&&0!=f.height){null!==h&&f.bottom!=h&&0<l&&k.substr(-1).match(/\S/)&&r.match(/\S/)&&(k+="\n",l++);if(c.node!=d.node&&0<d.index&&(e.setStart(d.node,d.index-1),f=e.getBoundingClientRect(),!f||0==f.width||0==f.height))continue;!s&&-1==m&&d.node==n.node&&d.index>=n.index&&(d.index>n.index?m=l:s=!0);!u&&-1==p&&d.node==q.node&&d.index>=q.index&&(d.index>q.index?p=l:u=!0);null===h?h=f.bottom:f.bottom!=h&&(b[g].endIndex=l,g++,b[g]={startIndex:l,endIndex:l},h=f.bottom); +k+=r;l++;c=d.clone();s&&(m=l,s=!1);u&&(p=l,u=!1)}}b[g].endIndex=l;a=[];for(f=0;f<=g;f++)for(c=b[f].startIndex;c<=b[f].endIndex;c++)a[c]=f;this.text_=k;this.characterToLineMap_=a;this.lines_=b;this.start_=0<=m?m:k.length;this.end_=0<=p?p:k.length};cvox.ContentEditableExtractor.prototype.getText=function(){return this.text_};cvox.ContentEditableExtractor.prototype.getStartIndex=function(){return this.start_};cvox.ContentEditableExtractor.prototype.getEndIndex=function(){return this.end_}; +cvox.ContentEditableExtractor.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.ContentEditableExtractor.prototype.getLineStart=function(a){return this.lines_[a].startIndex};cvox.ContentEditableExtractor.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.EditableTextAreaShadow=function(){this.shadowElement_=document.createElement("div");this.lines_={};this.characterToLineMap_=[]}; +cvox.EditableTextAreaShadow.prototype.update=function(a){for(document.body.appendChild(this.shadowElement_);this.shadowElement_.childNodes.length;)this.shadowElement_.removeChild(this.shadowElement_.childNodes[0]);this.shadowElement_.style.cssText=window.getComputedStyle(a,null).cssText;this.shadowElement_.style.position="absolute";this.shadowElement_.style.top=-9999;this.shadowElement_.style.left=-9999;this.shadowElement_.setAttribute("aria-hidden","true");var b=a.value,c=document.createTextNode(b+ +".");this.shadowElement_.appendChild(c);a={0:{startIndex:0,endIndex:0}};for(var d=document.createRange(),e=0,f=0,g=0,h=null,k=!1,l;e<=b.length;){d.setStart(c,e);if(e+8>b.length||0<=b.substr(e,8).indexOf("\n"))k=!0;k?(e++,d.setEnd(c,e),l=d.getBoundingClientRect()):(d.setEnd(c,e+8),l=d.getBoundingClientRect(),l.bottom==h?e+=8:(l&&null!==h&&(k=!0),e++,d.setEnd(c,e),l=d.getBoundingClientRect()));0<e&&"\n"==b[e-1]?(a[g].endIndex=e-1,g++,a[g]={startIndex:e,endIndex:e},h=null,k=!1,f=e):l&&null===h?h=l.bottom: +l&&l.bottom!=h&&(a[g].endIndex=f,g++,a[g]={startIndex:f,endIndex:f},h=l?l.bottom:null,k=!1);l&&(f=e)}a[g].endIndex=b.length;b=[];for(c=0;c<=g;c++)for(d=a[c].startIndex;d<=a[c].endIndex;d++)b[d]=c;this.characterToLineMap_=b;this.lines_=a;document.body.removeChild(this.shadowElement_)};cvox.EditableTextAreaShadow.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.EditableTextAreaShadow.prototype.getLineStart=function(a){return this.lines_[a].startIndex}; +cvox.EditableTextAreaShadow.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.TextChangeEvent=function(a,b,c,d){this.value=a;this.start=b;this.end=c;this.triggeredByUser=d;this.start>this.end&&(a=this.end,this.end=this.start,this.start=a)};cvox.TypingEcho={CHARACTER:0,WORD:1,CHARACTER_AND_WORD:2,NONE:3,COUNT:4};cvox.TypingEcho.cycle=function(a){return(a+1)%cvox.TypingEcho.COUNT};cvox.TypingEcho.shouldSpeakChar=function(a){return a==cvox.TypingEcho.CHARACTER_AND_WORD||a==cvox.TypingEcho.CHARACTER};cvox.TextHandlerInterface=function(){}; +cvox.TextHandlerInterface.prototype.changed=function(){};cvox.ChromeVoxEditableTextBase=function(a,b,c,d,e){this.value=a;this.start=b;this.end=c;this.isPassword=d;this.tts=e;this.multiline=!1;this.brailleHandler_=cvox.ChromeVox.braille?new cvox.BrailleTextHandler(cvox.ChromeVox.braille):void 0};cvox.ChromeVoxEditableTextBase.useIBeamCursor=cvox.ChromeVox.isMac;cvox.ChromeVoxEditableTextBase.eventTypingEcho=!1;cvox.ChromeVoxEditableTextBase.prototype.maxShortPhraseLen=60; +cvox.ChromeVoxEditableTextBase.prototype.isPassword=!1;cvox.ChromeVoxEditableTextBase.prototype.lastChangeDescribed=!1;cvox.ChromeVoxEditableTextBase.prototype.getValue=function(){var a="";if(this.multiline){if(a+="multiline editable text. ",this.start==this.end)var b=this.getLine(this.getLineIndex(this.start)),a=b?a+b:a+"blank"}else a=this.node?a+cvox.DomUtil.getValue(this.node):a+this.value,a=a<=this.maxShortPhraseLen?a+", editable text":a.substring(0,this.maxShortPhraseLen)+", editable text";return a}; +cvox.ChromeVoxEditableTextBase.prototype.getLineIndex=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineStart=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineEnd=function(){return this.value.length};cvox.ChromeVoxEditableTextBase.prototype.getLine=function(a){var b=this.getLineStart(a);a=this.getLineEnd(a);b=this.value.substr(b,a-b);return b.replace(/^\s+|\s+$/g,"")};cvox.ChromeVoxEditableTextBase.prototype.isWordBreakChar=function(a){return!!a.match(/^\W$/)}; +cvox.ChromeVoxEditableTextBase.prototype.isLastChar=function(a){return void 0==this.getLineIndex(a.start+1)};cvox.ChromeVoxEditableTextBase.prototype.speak=function(a,b,c){if(!this.node||document.activeElement==this.node){var d=cvox.AbstractTts.QUEUE_MODE_QUEUE;!0===b&&(d=cvox.AbstractTts.QUEUE_MODE_FLUSH);this.tts.speak(a,d,c||{})}}; +cvox.ChromeVoxEditableTextBase.prototype.changed=function(a){if(a.value!=this.value||a.start!=this.start||a.end!=this.end||this.isLastChar(a)){if(a.value==this.value?this.describeSelectionChanged(a):this.describeTextChanged(a),this.lastChangeDescribed=!0,this.value=a.value,this.start=a.start,this.end=a.end,this.brailleHandler_){var b=this.getLine(this.getLineIndex(a.start)),c=this.getLineStart(this.getLineIndex(a.start)),d=a.start-c;a=a.end-c;this.brailleHandler_.changed(b,d,a,this.multiline)}}else this.lastChangeDescribed= +!1}; +cvox.ChromeVoxEditableTextBase.prototype.describeSelectionChanged=function(a){if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser);else if(a.start==a.end)if(this.start!=this.end)this.speak(cvox.ChromeVox.msgs.getMsg("Unselected"),a.triggeredByUser);else if(this.getLineIndex(this.start)!=this.getLineIndex(a.start)){var b=this.getLine(this.getLineIndex(a.start));""==b&&(b=cvox.ChromeVox.msgs.getMsg("text_box_blank"));this.speak(b, +a.triggeredByUser)}else this.start==a.start+1||this.start==a.start-1?cvox.ChromeVoxEditableTextBase.useIBeamCursor?this.speak(this.value.substr(Math.min(this.start,a.start),1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):a.start==this.value.length?this.speak(cvox.ChromeVox.msgs.getMsg("end"),a.triggeredByUser):this.speak(this.value.substr(a.start,1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):this.speak(this.value.substr(Math.min(this.start,a.start),Math.abs(this.start- +a.start)),a.triggeredByUser);else this.start+1==a.start&&this.end==this.value.length&&a.end==this.value.length?(this.speak(this.value.substr(this.start,1),a.triggeredByUser),this.speak(this.value.substr(a.start))):this.start==this.end?(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected"))):this.start==a.start&&this.end<a.end?(this.speak(this.value.substr(this.end,a.end-this.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))): +this.start==a.start&&this.end>a.end?(this.speak(this.value.substr(a.end,this.end-a.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):this.end==a.end&&this.start>a.start?(this.speak(this.value.substr(a.start,this.start-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):this.end==a.end&&this.start<a.start?(this.speak(this.value.substr(this.start,a.start-this.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))): +(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected")))}; +cvox.ChromeVoxEditableTextBase.prototype.describeTextChanged=function(a){var b={};a.value.length<this.value.length&&(b=cvox.AbstractTts.PERSONALITY_DELETED);if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser,b);else{var c=this.value,d=c.length,e=a.value.length,f="",g=a.value,h=a.end;a.start<h&&h==e&&(f=g.substr(a.start),g=g.substr(0,a.start),h=a.start);var k=this.start,l=d-this.end;if(e>=k+l+(h-a.start)&&g.substr(0,k)== +c.substr(0,k)&&g.substr(e-l)==c.substr(this.end))this instanceof cvox.ChromeVoxEditableContentEditable&&!(e<d||this.isWordBreakChar(a.value[e-1]||""))||this.describeTextChangedHelper(a,k,l,f,b);else if(k=a.start,l=e-h,this.start==this.end&&a.start==h&&g.substr(0,k)==c.substr(0,k)&&g.substr(e-l)==c.substr(d-l))this.describeTextChangedHelper(a,k,l,f,b);else{g+=f;if(g.length==c.length+1||g.length+1==c.length){if(g.length>c.length){if(0==g.indexOf(c)){this.speak(g[g.length-1],a.triggeredByUser,b);return}if(1== +g.indexOf(c)){this.speak(g[0],a.triggeredByUser,b);return}}if(g.length<c.length){if(0==c.indexOf(g)){this.speak(c[c.length-1],a.triggeredByUser,b);return}if(1==c.indexOf(g)){this.speak(c[0],a.triggeredByUser,b);return}}}if(this.multiline)a.value.length<this.value.length&&this.speak(cvox.ChromeVox.msgs.getMsg("text_deleted"),a.triggeredByUser,b);else if(e<=this.maxShortPhraseLen)this.describeTextChangedHelper(a,0,0,"",b);else{for(k=0;k<d&&k<e&&c[k]==g[k];)k++;for(;0<k&&!this.isWordBreakChar(c[k-1]);)k--; +for(l=0;l<d-k&&l<e-k&&c[d-l-1]==g[e-l-1];)l++;for(;0<l&&!this.isWordBreakChar(c[d-l]);)l--;this.describeTextChangedHelper(a,k,l,"",b)}}}}; +cvox.ChromeVoxEditableTextBase.prototype.describeTextChangedHelper=function(a,b,c,d,e){var f=this.value.length,g=a.value.length,f=f-b-c,h=this.value.substr(b,f),k=g-b-c;c=a.value.substr(b,k);var l="",g=a.triggeredByUser;if(1<k)l=c;else if(1==k)if((cvox.ChromeVox.typingEcho==cvox.TypingEcho.WORD||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)&&this.isWordBreakChar(c)&&0<b&&!this.isWordBreakChar(a.value.substr(b-1,1))){for(f=b;0<f&&!this.isWordBreakChar(a.value[f-1]);)f--;f<b?l=a.value.substr(f, +b+1-f):(l=c,g=!1)}else{if(cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)l=cvox.ChromeVoxEditableTextBase.eventTypingEcho?"":c}else 1<f&&!d?l=h+", deleted":1==f&&(l=h);d&&l?l+=", "+d:d&&(l=d);l&&this.speak(l,g,e)};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextCharacter=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousCharacter=function(){return!1}; +cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextParagraph=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousParagraph=function(){return!1}; +cvox.ChromeVoxEditableElement=function(a,b,c,d,e,f){cvox.ChromeVoxEditableTextBase.call(this,b,c,d,e,f);this.node=a;this.justSpokeDescription_=!1};goog.inherits(cvox.ChromeVoxEditableElement,cvox.ChromeVoxEditableTextBase);cvox.ChromeVoxEditableElement.prototype.changed=function(a){this.justSpokeDescription_&&this.value==a.value&&(this.value=a.value,this.start=a.start,this.end=a.end,this.justSpokeDescription_=!1);cvox.ChromeVoxEditableElement.superClass_.changed.call(this,a)}; +cvox.ChromeVoxEditableElement.prototype.getValue=function(){this.justSpokeDescription_=!0;return cvox.ChromeVoxEditableElement.superClass_.getValue.call(this)};cvox.ChromeVoxEditableElement.prototype.moveCursorToNextCharacter=function(){var a=this.node;a.selectionEnd++;a.selectionStart=a.selectionEnd;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousCharacter=function(){var a=this.node;a.selectionStart--;a.selectionEnd=a.selectionStart;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToNextWord=function(){var a=this.node,b=a.value.length,c=/\W+/gm,d=a.value.substring(a.selectionEnd),e=c.exec(d);null!==e&&0==e.index&&(e=c.exec(d));b=null===e?b:e.index+a.selectionEnd;a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousWord=function(){for(var a=this.node,b=/\W+/gm,c=a.value.substring(0,a.selectionStart),d=0;null!==b.exec(c);)b.lastIndex<a.selectionStart&&(d=b.lastIndex);a.selectionStart=a.selectionEnd=d;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToNextParagraph=function(){var a=this.node,b=a.value.length,c=a.selectionEnd>=b?b:a.value.indexOf("\n",a.selectionEnd);0>c&&(c=b);a.selectionStart=a.selectionEnd=c+1;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousParagraph=function(){var a=this.node,b=0>=a.selectionStart?0:a.value.lastIndexOf("\n",a.selectionStart-2)+1;0>b&&(b=0);a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableHTMLInput=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,"password"===a.type,b)};goog.inherits(cvox.ChromeVoxEditableHTMLInput,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableHTMLInput.prototype.update=function(a){var b=this.node.value;a=new cvox.TextChangeEvent(b,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,!1,b);this.multiline=!0;this.shadowIsCurrent_=!1};goog.inherits(cvox.ChromeVoxEditableTextArea,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableTextArea.prototype.update=function(a){this.node.value!=this.value&&(this.shadowIsCurrent_=!1);a=new cvox.TextChangeEvent(this.node.value,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineIndex=function(a){return this.getShadow().getLineIndex(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineStart=function(a){return this.getShadow().getLineStart(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineEnd=function(a){return this.getShadow().getLineEnd(a)}; +cvox.ChromeVoxEditableTextArea.prototype.getShadow=function(){var a=cvox.ChromeVoxEditableTextArea.shadow_;a||(a=cvox.ChromeVoxEditableTextArea.shadow_=new cvox.EditableTextAreaShadow);this.shadowIsCurrent_||(a.update(this.node),this.shadowIsCurrent_=!0);return a}; +cvox.ChromeVoxEditableTextArea.prototype.moveCursorToNextLine=function(){var a=this.node,b=a.value.length;if(a.selectionEnd>=b)return!1;var c=this.getShadow(),d=c.getLineIndex(a.selectionEnd),e=c.getLineStart(d),e=a.selectionEnd-e,f=0==b?0:c.getLineIndex(b-1),b=d>=f?b:Math.min(c.getLineStart(d+1)+e,c.getLineEnd(d+1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableTextArea.prototype.moveCursorToPreviousLine=function(){var a=this.node;if(0>=a.selectionStart)return!1;var b=this.getShadow(),c=b.getLineIndex(a.selectionStart),d=b.getLineStart(c),d=a.selectionStart-d,b=0>=c?0:Math.min(b.getLineStart(c-1)+d,b.getLineEnd(c-1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableContentEditable=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,"",0,0,!1,b);this.extractorIsCurrent_=!1;var c=this.getExtractor();this.value=c.getText();this.start=c.getStartIndex();this.end=c.getEndIndex();this.multiline=!0};goog.inherits(cvox.ChromeVoxEditableContentEditable,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableContentEditable.prototype.update=function(a){this.extractorIsCurrent_=!1;a=new cvox.TextChangeEvent(this.getExtractor().getText(),this.getExtractor().getStartIndex(),this.getExtractor().getEndIndex(),a);this.changed(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineIndex=function(a){return this.getExtractor().getLineIndex(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineStart=function(a){return this.getExtractor().getLineStart(a)}; +cvox.ChromeVoxEditableContentEditable.prototype.getLineEnd=function(a){return this.getExtractor().getLineEnd(a)};cvox.ChromeVoxEditableContentEditable.prototype.getExtractor=function(){var a=cvox.ChromeVoxEditableContentEditable.extractor_;a||(a=cvox.ChromeVoxEditableContentEditable.extractor_=new cvox.ContentEditableExtractor);this.extractorIsCurrent_||(a.update(this.node),this.extractorIsCurrent_=!0);return a}; +cvox.ChromeVoxEditableContentEditable.prototype.describeSelectionChanged=function(a){a.triggeredByUser&&(this.start==this.end&&a.start==a.end&&1!=Math.abs(this.start-a.start)&&this.isLastChar(a)?this.speak(cvox.ChromeVox.msgs.getMsg("text_box_blank"),!0):cvox.ChromeVoxEditableContentEditable.superClass_.describeSelectionChanged.call(this,a))}; +cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextCharacter=function(){window.getSelection().modify("move","forward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousCharacter=function(){window.getSelection().modify("move","backward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextParagraph=function(){window.getSelection().modify("move","forward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousParagraph=function(){window.getSelection().modify("move","backward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEventSuspender=function(){};cvox.ChromeVoxEventSuspender.suspendLevel_=0;cvox.ChromeVoxEventSuspender.enterSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_+=1};cvox.ChromeVoxEventSuspender.exitSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_-=1};cvox.ChromeVoxEventSuspender.areEventsSuspended=function(){return 0<cvox.ChromeVoxEventSuspender.suspendLevel_}; +cvox.ChromeVoxEventSuspender.withSuspendedEvents=function(a){return function(){cvox.ChromeVoxEventSuspender.enterSuspendEvents();var b=a.apply(this,arguments);cvox.ChromeVoxEventSuspender.exitSuspendEvents();return b}};cvox.ChromeVoxEventSuspender.makeSuspendableHandler=function(a,b){return function(){return cvox.ChromeVoxEventSuspender.areEventsSuspended()?b:a()}};cvox.Focuser={}; +cvox.Focuser.setFocus=function(a,b){var c=window.getSelection(),d;0<c.rangeCount&&(d=c.getRangeAt(0));document.activeElement&&!cvox.DomUtil.isDescendantOfNode(a,document.activeElement)&&document.activeElement.blur();a&&a.constructor==HTMLVideoElement&&(cvox.DomUtil.isFocusable(a)||a.setAttribute("tabIndex",0));if(b&&!cvox.DomUtil.isFocusable(a)){var e=cvox.DomUtil.findFocusableDescendant(a);e&&(a=e)}else for(;a&&!cvox.DomUtil.isFocusable(a);)a=a.parentNode;cvox.DomUtil.isFocusable(a)?"IFRAME"!=a.tagName&& +(cvox.ChromeVoxEventSuspender.areEventsSuspended()?(cvox.Focuser.shouldEnterSuspendEvents_(a)&&cvox.ChromeVoxEventSuspender.enterSuspendEvents(),window.setTimeout(function(){a.focus();cvox.ChromeVoxEventSuspender.exitSuspendEvents()},0)):window.setTimeout(function(){a.focus()},0)):document.activeElement&&"BODY"!=document.activeElement.tagName&&document.activeElement.blur();cvox.DomUtil.isInputTypeText(a)?a.select():d&&(c.removeAllRanges(),c.addRange(d))}; +cvox.Focuser.shouldEnterSuspendEvents_=function(a){if(a.constructor&&a.constructor==HTMLVideoElement)return!1;if(a.hasAttribute)switch(a.getAttribute("type")){case "time":case "date":case "week":case "month":return!1}return!0};cvox.ChromeVoxHTMLMediaWidget=function(a){var b=this;this.mediaElem_=a;this.keyListener_=function(a){b.eventHandler_(a)};this.blurListener_=function(){b.shutdown()};this.mediaElem_.addEventListener("keydown",this.keyListener_,!1);this.mediaElem_.addEventListener("keyup",this.keyListener_,!1);this.mediaElem_.addEventListener("blur",this.blurListener_,!1)}; +cvox.ChromeVoxHTMLMediaWidget.prototype.shutdown=function(){this.mediaElem_.removeEventListener("blur",this.blurListener_,!1);this.mediaElem_.removeEventListener("keydown",this.keyListener_,!1);this.mediaElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLMediaWidget.prototype.jumpToTime_=function(a){0>a&&(a=0);a>this.mediaElem_.duration&&(a=this.mediaElem_.duration);this.mediaElem_.currentTime=a}; +cvox.ChromeVoxHTMLMediaWidget.prototype.setVolume_=function(a){0>a&&(a=0);1<a&&(a=1);this.mediaElem_.volume=a}; +cvox.ChromeVoxHTMLMediaWidget.prototype.eventHandler_=function(a){"keydown"==a.type&&(13==a.keyCode||32==a.keyCode?this.mediaElem_.paused?this.mediaElem_.play():this.mediaElem_.pause():39==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime+this.mediaElem_.duration/10):37==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime-this.mediaElem_.duration/10):38==a.keyCode?this.setVolume_(this.mediaElem_.volume+0.1):40==a.keyCode&&this.setVolume_(this.mediaElem_.volume-0.1))};cvox.ChromeVoxHTMLTimeWidget=function(a,b){var c=this;this.timeElem_=a;this.timeTts_=b;this.pMinutes_=this.pHours_=-1;this.pMilliseconds_=this.pSeconds_=0;this.pAmpm_="";this.pos_=0;this.maxPos_=2;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};if(this.timeElem_.hasAttribute("step")){var d=this.timeElem_.getAttribute("step");0<d&&(this.maxPos_=1<=d?3:4)}0==this.timeElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent"); +e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e);e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e)}this.timeElem_.addEventListener("keydown",this.keyListener_,!1);this.timeElem_.addEventListener("keyup",this.keyListener_,!1);this.timeElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)}; +cvox.ChromeVoxHTMLTimeWidget.prototype.shutdown=function(){this.timeElem_.removeEventListener("blur",this.blurListener_,!1);this.timeElem_.removeEventListener("keydown",this.keyListener_,!1);this.timeElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLTimeWidget.prototype.forceInitTime_=function(){this.timeElem_.setAttribute("value","12:00")}; +cvox.ChromeVoxHTMLTimeWidget.prototype.handlePosChange_=function(){0>this.pos_&&(this.pos_=0);this.pos_>this.maxPos_&&(this.pos_=this.maxPos_);if(this.pos_==this.maxPos_)this.pAmpm_="";else switch(this.pos_){case 0:this.pHours_=-1;break;case 1:this.pMinutes_=-1;break;case 2:this.pSeconds_=-1;break;case 3:this.pMilliseconds_=-1}}; +cvox.ChromeVoxHTMLTimeWidget.prototype.update_=function(a){var b=this.timeElem_.value.split(":");if(1>b.length)this.forceInitTime_();else{var c=b[0],d=-1,e=0,f=0,g=cvox.ChromeVox.msgs.getMsg("timewidget_am");1<b.length&&(d=b[1]);2<b.length&&(b=b[2].split("."),e=b[0],1<b.length&&(f=b[1]));12<c&&(c-=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));12==c&&(g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));0==c&&(c=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_am"));b="";a&&(b=cvox.DomUtil.getName(this.timeElem_, +!0,!0)+"\n");c!=this.pHours_&&(b=b+c+" "+cvox.ChromeVox.msgs.getMsg("timewidget_hours")+"\n",this.pHours_=c);d!=this.pMinutes_&&(b=b+d+" "+cvox.ChromeVox.msgs.getMsg("timewidget_minutes")+"\n",this.pMinutes_=d);e!=this.pSeconds_&&(b=b+e+" "+cvox.ChromeVox.msgs.getMsg("timewidget_seconds")+"\n",this.pSeconds_=e);f!=this.pMilliseconds_&&(b=b+f+" "+cvox.ChromeVox.msgs.getMsg("timewidget_milliseconds")+"\n",this.pMilliseconds_=f);g!=this.pAmpm_&&(b+=g,this.pAmpm_=g);0<b.length&&this.timeTts_.speak(b, +0,null)}};cvox.ChromeVoxHTMLTimeWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.ActiveIndicator=function(){this.lastMoveTime_=0;this.zoom_=1;this.updateIndicatorTimeoutId_=this.lastClientRects_=this.lastSyncTarget_=this.container_=null;this.blurred_=!1;window.addEventListener("focus",goog.bind(function(){this.blurred_=!1;this.container_&&this.container_.classList.remove("cvox_indicator_window_not_focused")},this),!1);window.addEventListener("blur",goog.bind(function(){this.blurred_=!0;this.container_&&this.container_.classList.add("cvox_indicator_window_not_focused")},this), +!1)};cvox.ActiveIndicator.STYLE=".cvox_indicator_container { position: absolute !important; left: 0 !important; top: 0 !important; z-index: 2147483647 !important; pointer-events: none !important;}.cvox_indicator_window_not_focused { visibility: hidden !important;}.cvox_indicator_pulsing { -webkit-animation: cvox_indicator_pulsing_animation 0s 2 alternate !important; -webkit-animation-timing-function: ease-in-out !important;}.cvox_indicator_region { opacity: 0 !important; -webkit-transition: opacity 1s !important;}.cvox_indicator_visible { opacity: 1 !important;}.cvox_indicator_container .cvox_indicator_region * { position:absolute !important; box-shadow: 0 0 4px 4px #f7983a !important; border-radius: 6px !important; -webkit-transition: none !important;}.cvox_indicator_animate_normal .cvox_indicator_region * { -webkit-transition: all 0.3s !important;}.cvox_indicator_animate_quick .cvox_indicator_region * { -webkit-transition: all 0.1s !important;}.cvox_indicator_top { border-radius: inherit inherit 0 0 !important;}.cvox_indicator_middle_nw { border-radius: inherit 0 0 0 !important;}.cvox_indicator_middle_ne { border-radius: 0 inherit 0 0 !important;}.cvox_indicator_middle_se { border-radius: 0 0 inherit 0 !important;}.cvox_indicator_middle_sw { border-radius: 0 0 0 inherit !important;}.cvox_indicator_bottom { border-radius: 0 0 inherit inherit !important;}@-webkit-keyframes cvox_indicator_pulsing_animation { 0% {opacity: 1.0} 50% {opacity: 0.5} 100% {opacity: 1.0}}"; +cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS=100;cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS=300;cvox.ActiveIndicator.MARGIN=8;cvox.ActiveIndicator.prototype.removeFromDom=function(){this.container_&&this.container_.parentElement&&this.container_.parentElement.removeChild(this.container_)};cvox.ActiveIndicator.prototype.syncToNode=function(a){a&&(a==document.body?this.removeFromDom():this.syncToNodes([a]))}; +cvox.ActiveIndicator.prototype.syncToNodes=function(a){var b=this.clientRectsFromNodes_(a);this.moveIndicator_(b,cvox.ActiveIndicator.MARGIN);this.lastSyncTarget_=a;this.lastClientRects_=b;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)}; +cvox.ActiveIndicator.prototype.syncToRange=function(a){var b=cvox.ActiveIndicator.MARGIN;a.startContainer==a.endContainer&&a.startOffset+1==a.endOffset&&(b=1);var c=a.getClientRects();this.moveIndicator_(c,b);this.lastSyncTarget_=a;this.lastClientRects_=c;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)}; +cvox.ActiveIndicator.prototype.syncToCursorSelection=function(a){if(a.start.node==a.end.node&&a.start.index==a.end.index)this.syncToNode(a.start.node);else{var b=document.createRange();b.setStart(a.start.node,a.start.index);b.setEnd(a.end.node,a.end.index);this.syncToRange(b)}};cvox.ActiveIndicator.prototype.updateIndicatorIfChanged=function(){this.updateIndicatorTimeoutId_||(this.updateIndicatorTimeoutId_=window.setTimeout(goog.bind(function(){this.handleUpdateIndicatorIfChanged_()},this),100))}; +cvox.ActiveIndicator.prototype.handleUpdateIndicatorIfChanged_=function(){this.updateIndicatorTimeoutId_=null;if(this.lastSyncTarget_){var a;if((a=this.lastSyncTarget_ instanceof Array?this.clientRectsFromNodes_(this.lastSyncTarget_):this.lastSyncTarget_.getClientRects())&&0!=a.length){var b=!1;if(a.length!=this.lastClientRects_.length)b=!0;else for(var c=0;c<this.lastClientRects_.length;++c){var d=this.lastClientRects_[c],e=a[c];if(d.top!=e.top||d.right!=e.right||d.bottom!=e.bottom||d.left!=d.left){b= +!0;break}}b&&(this.moveIndicator_(a,cvox.ActiveIndicator.MARGIN),this.lastClientRects_=a)}else this.syncToNode(document.body)}};cvox.ActiveIndicator.prototype.clientRectsFromNodes_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(d.constructor==Text){var e=document.createRange();e.selectNode(d);e=e.getClientRects()}else{for(;!d.getClientRects;)d=d.parentElement;e=d.getClientRects()}for(d=0;d<e.length;++d)b.push(e[d])}return b}; +cvox.ActiveIndicator.prototype.moveIndicator_=function(a,b){if(document.body.isContentEditable)this.removeFromDom();else{var c=a.length;if(0!=c){var d,e;"static"!=window.getComputedStyle(document.body,null).position?(d=-document.body.getBoundingClientRect().left,e=-document.body.getBoundingClientRect().top):"static"!=window.getComputedStyle(document.documentElement,null).position?(d=-document.documentElement.getBoundingClientRect().left,e=-document.documentElement.getBoundingClientRect().top):(d= +window.pageXOffset,e=window.pageYOffset);for(var f=[],g=0;g<c;g++)f.push(this.inset_(a[g],d,e,-d,-e));if(!this.container_||!this.container_.parentElement){g=document.getElementsByClassName("cvox_indicator_container");for(c=0;d=g[c];c++)d.parentNode&&d.parentNode.removeChild(d);this.container_=this.createDiv_(document.body,"cvox_indicator_container",document.body.firstChild)}g=document.createElement("style");g.id="cvox_indicator_style";g.innerHTML=cvox.ActiveIndicator.STYLE;cvox.DomUtil.addNodeToHead(g, +g.id);g=(new Date).getTime();c=g-this.lastMoveTime_;this.container_.className="cvox_indicator_container";document.hasFocus()&&!this.blurred_||this.container_.classList.add("cvox_indicator_window_not_focused");c>cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS?this.container_.classList.add("cvox_indicator_animate_normal"):c>cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS&&this.container_.classList.add("cvox_indicator_animate_quick");this.lastMoveTime_=g;this.computeZoomLevel_();for(window.setTimeout(goog.bind(function(){this.container_.classList.add("cvox_indicator_pulsing")}, +this),0);1<this.container_.childElementCount;)this.container_.removeChild(this.container_.lastElementChild);d=[[f[0]]];e=[f[0]];for(g=1;g<f.length;g++){for(var h=!1,c=0;c<d.length&&!h;c++)this.intersects_(f[g],e[c])&&(d[c].push(f[g]),e[c]=this.union_(e[c],f[g]),h=!0);h||(d.push([f[g]]),e.push(f[g]))}do for(f=!1,g=0;g<d.length-1&&!f;g++)for(c=g+1;c<d.length&&!f;c++)this.intersects_(e[g],e[c])&&(d[g]=d[g].concat(d[c]),e[g]=this.union_(e[g],e[c]),d.splice(c,1),e.splice(c,1),f=!0);while(f);for(g=0;g< +d.length;g++)d[g].sort(function(a,b){return a.top!=b.top?a.top-b.top:a.left-b.left});for(g=0;g<d.length;g++)f=null,0==g&&1==this.container_.childElementCount&&6==this.container_.children[0].childElementCount&&(f=this.container_.children[0]),this.updateIndicatorRegion_(d[g],f,b)}}}; +cvox.ActiveIndicator.prototype.updateIndicatorRegion_=function(a,b,c){if(b)var d=b.children[0],e=b.children[1],f=b.children[2],g=b.children[3],h=b.children[4],k=b.children[5];else b=this.createDiv_(this.container_,"cvox_indicator_region"),window.setTimeout(function(){b.classList.add("cvox_indicator_visible")},0),d=this.createDiv_(b,"cvox_indicator_top"),e=this.createDiv_(b,"cvox_indicator_middle_nw"),f=this.createDiv_(b,"cvox_indicator_middle_ne"),g=this.createDiv_(b,"cvox_indicator_middle_sw"),h= +this.createDiv_(b,"cvox_indicator_middle_se"),k=this.createDiv_(b,"cvox_indicator_bottom");for(var l=a[0],m=Math.floor((l.top+l.bottom)/2),p=1,q=a.length;p<q&&a[p].top<m;)l=this.union_(l,a[p]),m=Math.floor((l.top+l.bottom)/2),p++;if(p==q)l=this.inset_(l,-c,-c,-c,-c),a=Math.floor((3*l.top+1*l.bottom)/4),c=Math.floor((2*l.top+2*l.bottom)/4),m=Math.floor((1*l.top+3*l.bottom)/4),this.setElementCoords_(d,l.left,l.top,l.right,a,!0,!0,!0,!1),this.setElementCoords_(e,l.left,a,l.left,c,!0,!0,!1,!1),this.setElementCoords_(g, +l.left,c,l.left,m,!0,!1,!1,!0),this.setElementCoords_(f,l.right,a,l.right,c,!1,!0,!0,!1),this.setElementCoords_(h,l.right,c,l.right,m,!1,!1,!0,!0),this.setElementCoords_(k,l.left,m,l.right,l.bottom,!0,!1,!0,!0);else{for(var m=a[q-1],n=Math.floor((m.top+m.bottom)/2),q=q-2;0<=q&&a[q].bottom>n;)m=this.union_(m,a[q]),n=Math.floor((m.top+m.bottom)/2),q--;l=this.inset_(l,-c,-c,-c,c);m=this.inset_(m,-c,c,-c,-c);if(p>q)n=this.union_(l,m),n.top=l.bottom,n.bottom=m.top,n.height=Math.floor((n.top+n.bottom)/ +2);else{n=a[p];for(p+=1;p<=q;)n=this.union_(n,a[p]),p++;n=this.inset_(n,-c,-c,-c,-c);n.left=Math.min(n.left,l.left,m.left);n.right=Math.max(n.right,l.right,m.right);n.width=n.right-n.left}l.right>n.right-40&&(l.right=n.right,l.width=l.right-l.left);l.left<n.left+40&&(l.left=n.left,l.width=l.right-l.left);m.right>n.right-40&&(m.right=n.right,m.width=m.right-m.left);m.left<n.left+40&&(m.left=n.left,m.width=m.right-m.left);a=Math.floor((n.top+n.bottom)/2);this.setElementRect_(d,l,!0,!0,!0,!1);this.setElementRect_(k, +m,!0,!1,!0,!0);this.setElementCoords_(e,n.left,l.bottom,l.left,a,!0,!0,!1,!1);this.setElementCoords_(f,l.right,l.bottom,n.right,a,!1,!0,!0,!1);this.setElementCoords_(g,n.left,a,m.left,m.top,!0,!1,!1,!0);this.setElementCoords_(h,m.right,a,n.right,m.top,!1,!1,!0,!0)}};cvox.ActiveIndicator.prototype.intersects_=function(a,b){var c=2*cvox.ActiveIndicator.MARGIN;return b.left<=a.right+c&&b.right>=a.left-c&&b.top<=a.bottom+c&&b.bottom>=a.top-c}; +cvox.ActiveIndicator.prototype.union_=function(a,b){var c={left:Math.min(a.left,b.left),top:Math.min(a.top,b.top),right:Math.max(a.right,b.right),bottom:Math.max(a.bottom,b.bottom)};c.width=c.right-c.left;c.height=c.bottom-c.top;return c};cvox.ActiveIndicator.prototype.inset_=function(a,b,c,d,e){a={left:a.left+b,top:a.top+c,right:a.right-d,bottom:a.bottom-e};a.width=a.right-a.left;a.height=a.bottom-a.top;return a}; +cvox.ActiveIndicator.prototype.createDiv_=function(a,b,c){var d=document.createElement("div");d.className=b;c?a.insertBefore(d,c):a.appendChild(d);return d};cvox.ActiveIndicator.prototype.fixZoom_=function(a){return(Math.round(a*this.zoom_)+0.1)/this.zoom_};cvox.ActiveIndicator.prototype.fixZoomSum_=function(a,b){var c=Math.round(a*this.zoom_),d=Math.round((a+b)*this.zoom_),c=d-c;return(c+0.1)/this.zoom_}; +cvox.ActiveIndicator.prototype.setElementCoords_=function(a,b,c,d,e,f,g,h,k){var l=d-b,m=e-c;d-=b;e-=c;var p=f?-20:0,q=g?-20:0,n=h?20:0,s=k?20:0;0==d&&(h?(b-=5,d+=5):f&&(d+=10),s=q=10,c-=10,e+=20);k||(e+=5);g||(c-=5,e+=5,q+=5,s+=5);n=0==n&&0==l?1:this.fixZoomSum_(b,n+l);s=this.fixZoomSum_(c,s+m);a.style.left=this.fixZoom_(b)+"px";a.style.top=this.fixZoom_(c)+"px";a.style.width=this.fixZoomSum_(b,d)+"px";a.style.height=this.fixZoomSum_(c,e)+"px";a.style.clip="rect("+[q,n,s,p].join("px ")+"px)"}; +cvox.ActiveIndicator.prototype.setElementRect_=function(a,b,c,d,e,f){this.setElementCoords_(a,b.left,b.top,b.right,b.bottom,c,d,e,f)}; +cvox.ActiveIndicator.prototype.computeZoomLevel_=function(){if(window.innerHeight!==this.innerHeight_||window.innerWidth!==this.innerWidth_){this.innerHeight_=window.innerHeight;this.innerWidth_=window.innerWidth;var a=document.createElement("div");a.innerHTML="X";a.setAttribute("style","font: 5000px/1em sans-serif !important; -webkit-text-size-adjust:none !important; visibility:hidden !important; left: -10000px !important; top: -10000px !important; position:absolute !important;");document.body.appendChild(a); +var b=5E3/a.clientHeight,b=Math.round(500*b)/500;0.1<b&&10>b&&(this.zoom_=b);a.parentNode.removeChild(a)}};cvox.NodeBreadcrumb=function(){this.cvTagCounter_=0};goog.addSingletonGetter(cvox.NodeBreadcrumb);cvox.NodeBreadcrumb.TOUCHED_TAG="chromevoxtag";cvox.NodeBreadcrumb.NEEDED_TAG_="chromevoxneeded"; +cvox.NodeBreadcrumb.prototype.tagCurrentNode=function(){for(var a,b=cvox.ChromeVox.navigationManager.getCurrentNode();b&&!b.hasAttribute;)b=b.parentNode;b?b.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a=b.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):(a=this.cvTagCounter_,b.setAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG,a),this.cvTagCounter_++):a=-1;return a}; +cvox.NodeBreadcrumb.prototype.smartStart_=function(a){for(var b=0;b<a.children.length;++b){var c=a.children[b];this.smartStart_(c);c.getAttribute&&!goog.isNull(c.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))&&this.setNeeded_(c)}};cvox.NodeBreadcrumb.prototype.setNeeded_=function(a){a&&a.getAttribute&&goog.isNull(a.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&(a.setAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_,!0),"body"!==a.nodeName&&this.setNeeded_(a.parentElement))}; +cvox.NodeBreadcrumb.prototype.smartClone_=function(a){var b={};b[cvox.NodeBreadcrumb.TOUCHED_TAG]=!0;b[cvox.NodeBreadcrumb.NEEDED_TAG_]=!0;if(a.getAttribute&&a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))return cvox.DomUtil.deepClone(a,b);for(var b=cvox.DomUtil.shallowChildlessClone(a,b),c=0;c<a.childNodes.length;++c){var d=a.childNodes[c];d.getAttribute&&!goog.isNull(d.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&b.appendChild(this.smartClone_(d))}return b}; +cvox.NodeBreadcrumb.prototype.dumpWalkedDom=function(){this.smartStart_(document.body);return this.smartClone_(document.body)};cvox.NodeBreadcrumb.getCurrentNodeTag=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a&&!a.hasAttribute;)a=a.parentNode;return a&&a.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):-1};cvox.HistoryEvent=function(a){this.spoken_=[];a?this.userCommand_=a.cmd:this.startTime_=(new Date).getTime()};cvox.HistoryEvent.prototype.withUserCommand=function(a){if(this.userCommand_)return window.console.error("Two user commands on "+a,this),this;this.userCommand_=a;return this};cvox.HistoryEvent.prototype.speak=function(a){this.spoken_.push(a);return this}; +cvox.HistoryEvent.prototype.done=function(){this.endTime_=(new Date).getTime();cvox.NodeBreadcrumb.getInstance().tagCurrentNode();window.console.log("User command done.",this);return this};cvox.HistoryEvent.prototype.outputObject=function(){return{start:this.startTime_,end:this.endTime_,cmd:this.userCommand_,spoken:this.spoken_}}; +cvox.HistoryEvent.prototype.outputHTML=function(){var a=document.createElement("div");a.className="cvoxHistoryEvent";var b=this.endTime_-this.startTime_;a.innerHTML=this.userCommand_+" ("+b+"ms)";for(b=0;b<this.spoken_.length;b++){var c=document.createElement("div");c.className="cvoxHistoryEventSpoken";c.innerHTML=this.spoken_[b].substr(0,20);20<this.spoken_[b].length&&(c.innerHTML+="...");a.appendChild(c)}return a}; +cvox.HistoryEvent.prototype.outputJs=function(){var a="this.waitForCalm(this.userCommand, '"+this.userCommand_+"')";return a=0<this.spoken_.length?a+("\n .waitForCalm(this.assertSpoken, '"+cvox.DomUtil.collapseWhitespace(this.spoken_.join(" "))+"');\n"):a+";\n"};cvox.History=function(){this.recording_=!1;this.events_=[];this.styleDiv_=this.listDiv_=this.mainDiv_=this.currentEvent_=null;this.nodeBreadcrumb_=cvox.NodeBreadcrumb.getInstance()};goog.addSingletonGetter(cvox.History); +cvox.History.prototype.addListDiv_=function(){this.mainDiv_=document.createElement("div");this.mainDiv_.style.position="fixed";this.mainDiv_.style.bottom="0";this.mainDiv_.style.right="0";this.mainDiv_.style.zIndex="999";this.listDiv_=document.createElement("div");this.listDiv_.id="cvoxEventList";this.mainDiv_.appendChild(this.listDiv_);var a=document.createElement("div"),b=document.createElement("button");b.onclick=cvox.History.sendToFeedback;b.innerHTML="Create bug";a.appendChild(b);this.mainDiv_.appendChild(a); +a=document.createElement("div");b=document.createElement("button");b.onclick=cvox.History.dumpJs;b.innerHTML="Dump test case";a.appendChild(b);this.mainDiv_.appendChild(a);document.body.appendChild(this.mainDiv_);this.styleDiv_=document.createElement("style");this.styleDiv_.innerHTML=".cvoxHistoryEventSpoken { color: gray; font-size: 75% }";document.body.appendChild(this.styleDiv_)}; +cvox.History.prototype.removeListDiv_=function(){document.body.removeChild(this.mainDiv_);document.body.removeChild(this.styleDiv_);this.styleDiv_=this.listDiv_=this.mainDiv_=null}; +cvox.History.prototype.addBigTextBox_=function(){function a(a,b){var c=document.createElement("button");c.onclick=b;c.innerHTML=a;d.appendChild(c)}var b=document.createElement("div");b.style.position="fixed";b.style.top="0";b.style.left="0";b.style.zIndex="999";var c=document.createElement("textarea");c.style.width="500px";c.style.height="500px";c.innerHTML=this.dumpJsOutput_();b.appendChild(c);var d=document.createElement("div");b.appendChild(d);a("Close dialog",function(){document.body.removeChild(b)}); +a("Remove fluff",goog.bind(function(){c.innerHTML=this.dumpJsOutput_(["stopSpeech","toggleKeyPrefix"])},this));document.body.appendChild(b)};cvox.History.prototype.startRecording=function(){this.recording_=!0;this.addListDiv_()};cvox.History.prototype.stopRecording=function(){this.recording_=!1;this.removeListDiv_();this.events_=[];this.currentEvent_=null}; +cvox.History.prototype.enterUserCommand=function(a){this.recording_&&(this.currentEvent_&&window.console.error("User command "+a+" overlaps current event",this.currentEvent_),this.currentEvent_=(new cvox.HistoryEvent).withUserCommand(a),this.events_.push(this.currentEvent_))};cvox.History.prototype.exitUserCommand=function(){this.recording_&&this.currentEvent_&&(this.currentEvent_.done(),this.listDiv_.appendChild(this.currentEvent_.outputHTML()),this.currentEvent_=null)}; +cvox.History.prototype.speak=function(a){if(!this.recording_)return this;if(!this.currentEvent_)return window.console.error("Speak called outside of a user command."),this;this.currentEvent_.speak(a);return this};cvox.History.prototype.isSpeaking=function(){return!1};cvox.History.prototype.stop=function(){};cvox.History.prototype.increaseOrDecreaseProperty=function(){};cvox.History.prototype.getDefaultProperty=function(){}; +cvox.History.dumpJs=function(){var a=cvox.History.getInstance();a.addBigTextBox_();window.console.log(a.dumpJsOutput_())};cvox.History.prototype.dumpJsOutput_=function(a){var b={};a&&a.forEach(function(a){b[a]=1});return["/*DOC: += ",this.nodeBreadcrumb_.dumpWalkedDom().innerHTML,"*/\n"].concat(this.events_.filter(function(a){return!(a.userCommand_ in b)}).map(function(a){return a.outputJs()})).join("")}; +cvox.History.sendToFeedback=function(){var a=cvox.History.getInstance(),a=a.events_.map(function(a){return a.outputObject()}),b=document.createElement("script");b.type="text/javascript";b.src="https://www.gstatic.com/feedback/api.js";var c=document.createElement("script");c.type="text/javascript";c.innerHTML="userfeedback.api.startFeedback({ productId: '76092' }, { cvoxHistory: "+cvox.ChromeVoxJSON.stringify(cvox.ChromeVoxJSON.stringify(a))+" });";b.onload=function(){document.body.appendChild(c)}; +document.body.appendChild(b)};cvox.KeySequence=function(a,b,c,d){this.doubleTap=!!d;this.cvoxModifier=void 0==b?this.isCVoxModifierActive(a):b;this.stickyMode=!!a.stickyMode;this.prefixKey=!!a.keyPrefix;this.skipStripping=!!c;if(this.stickyMode&&this.prefixKey)throw"Prefix key and sticky mode cannot both be enabled: "+a;a=this.resolveChromeOSSpecialKeys_(a);this.keys={ctrlKey:[],searchKeyHeld:[],altKey:[],altGraphKey:[],shiftKey:[],metaKey:[],keyCode:[]};this.extractKey_(a)}; +cvox.KeySequence.KEY_PRESS_CODE={39:222,44:188,45:189,46:190,47:191,59:186,91:219,92:220,93:221};cvox.KeySequence.doubleTapCache=[];cvox.KeySequence.prototype.addKeyEvent=function(a){if(1<this.keys.keyCode.length)return!1;this.extractKey_(a);return!0};cvox.KeySequence.prototype.equals=function(a){if(!this.checkKeyEquality_(a)||this.doubleTap!=a.doubleTap)return!1;if(this.cvoxModifier===a.cvoxModifier)return!0;a=this.cvoxModifier?a:this;return a.stickyMode||a.prefixKey}; +cvox.KeySequence.prototype.extractKey_=function(a){for(var b in this.keys)if("keyCode"==b){var c;"keypress"==a.type&&97<=a[b]&&122>=a[b]?c=a[b]-32:"keypress"==a.type&&(c=cvox.KeySequence.KEY_PRESS_CODE[a[b]]);this.keys[b].push(c||a[b])}else this.isKeyModifierActive(a,b)?this.keys[b].push(!0):this.keys[b].push(!1);this.cvoxModifier&&this.rationalizeKeys_()}; +cvox.KeySequence.prototype.rationalizeKeys_=function(){if(!this.skipStripping){var a=cvox.ChromeVox.modKeyStr.split(/\+/g),b=this.keys.keyCode.length-1;-1!=a.indexOf("Ctrl")&&(this.keys.ctrlKey[b]=!1);-1!=a.indexOf("Alt")&&(this.keys.altKey[b]=!1);-1!=a.indexOf("Shift")&&(this.keys.shiftKey[b]=!1);var c=this.getMetaKeyName_();if(-1!=a.indexOf(c))if("Search"==c)this.keys.searchKeyHeld[b]=!1;else if("Cmd"==c||"Win"==c)this.keys.metaKey[b]=!1}}; +cvox.KeySequence.prototype.getMetaKeyName_=function(){return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win"};cvox.KeySequence.prototype.checkKeyEquality_=function(a){for(var b in this.keys)for(var c=this.keys[b].length;c--;)if(this.keys[b][c]!==a.keys[b][c])return!1;return!0};cvox.KeySequence.prototype.length=function(){return this.keys.keyCode.length};cvox.KeySequence.prototype.isModifierKey=function(a){return 16==a||17==a||18==a||91==a||93==a}; +cvox.KeySequence.prototype.isCVoxModifierActive=function(a){var b=cvox.ChromeVox.modKeyStr.split(/\+/g);this.isKeyModifierActive(a,"ctrlKey")&&(b=b.filter(function(a){return"Ctrl"!=a}));this.isKeyModifierActive(a,"altKey")&&(b=b.filter(function(a){return"Alt"!=a}));this.isKeyModifierActive(a,"shiftKey")&&(b=b.filter(function(a){return"Shift"!=a}));if(this.isKeyModifierActive(a,"metaKey")||this.isKeyModifierActive(a,"searchKeyHeld"))var c=this.getMetaKeyName_(),b=b.filter(function(a){return a!=c}); +return 0==b.length};cvox.KeySequence.prototype.isKeyModifierActive=function(a,b){switch(b){case "ctrlKey":return a.ctrlKey||17==a.keyCode;case "altKey":return a.altKey||18==a.keyCode;case "shiftKey":return a.shiftKey||16==a.keyCode;case "metaKey":return a.metaKey||!cvox.ChromeVox.isChromeOS&&91==a.keyCode;case "searchKeyHeld":return cvox.ChromeVox.isChromeOS&&91==a.keyCode||a.searchKeyHeld}return!1}; +cvox.KeySequence.deserialize=function(a){var b={};b.stickyMode=void 0==a.stickyMode?!1:a.stickyMode;b.prefixKey=void 0==a.prefixKey?!1:a.prefixKey;var c=1<a.keys.keyCode.length,d={},e;for(e in a.keys)b[e]=a.keys[e][0],c&&(d[e]=a.keys[e][1]);e=new cvox.KeySequence(b,a.cvoxModifier,!0,a.doubleTap);c&&(cvox.ChromeVox.sequenceSwitchKeyCodes.push(new cvox.KeySequence(b,a.cvoxModifier)),e.addKeyEvent(d));a.doubleTap&&cvox.KeySequence.doubleTapCache.push(e);return e}; +cvox.KeySequence.fromStr=function(a){var b={},c={},d;d=-1==a.indexOf(">")?!1:!0;var e=!1;b.stickyMode=!1;b.prefixKey=!1;a=a.split("+");for(var f=0;f<a.length;f++)for(var g=a[f].split(">"),h=0;h<g.length;h++){if("#"==g[h].charAt(0)){var k=parseInt(g[h].substr(1),10);0<h?c.keyCode=k:b.keyCode=k}k=g[h];1==g[h].length?0<h?c.keyCode=g[h].charCodeAt(0):b.keyCode=g[h].charCodeAt(0):(0<h?cvox.KeySequence.setModifiersOnEvent_(k,c):cvox.KeySequence.setModifiersOnEvent_(k,b),"Cvox"==k&&(e=!0))}b=new cvox.KeySequence(b, +e);d&&b.addKeyEvent(c);return b};cvox.KeySequence.setModifiersOnEvent_=function(a,b){"Ctrl"==a?(b.ctrlKey=!0,b.keyCode=17):"Alt"==a?(b.altKey=!0,b.keyCode=18):"Shift"==a?(b.shiftKey=!0,b.keyCode=16):"Search"==a?(b.searchKeyHeld=!0,b.keyCode=91):"Cmd"==a?(b.metaKey=!0,b.keyCode=91):"Win"==a?(b.metaKey=!0,b.keyCode=91):"Insert"==a&&(b.keyCode=45)}; +cvox.KeySequence.prototype.resolveChromeOSSpecialKeys_=function(a){if(!this.cvoxModifier||this.stickyMode||this.prefixKey||!cvox.ChromeVox.isChromeOS)return a;var b={},c;for(c in a)b[c]=a[c];switch(b.keyCode){case 33:b.keyCode=38;break;case 34:b.keyCode=40;break;case 35:b.keyCode=39;break;case 36:b.keyCode=37;break;case 45:b.keyCode=190;break;case 46:b.keyCode=8;break;case 112:b.keyCode=49;break;case 113:b.keyCode=50;break;case 114:b.keyCode=51;break;case 115:b.keyCode=52;break;case 116:b.keyCode= +53;break;case 117:b.keyCode=54;break;case 118:b.keyCode=55;break;case 119:b.keyCode=56;break;case 120:b.keyCode=57;break;case 121:b.keyCode=48;break;case 122:b.keyCode=189;break;case 123:b.keyCode=187}return b};cvox.KeyUtil=function(){};cvox.KeyUtil.modeKeyPressTime=0;cvox.KeyUtil.sequencing=!1;cvox.KeyUtil.prevKeySequence=null;cvox.KeyUtil.stickyKeySequence=null;cvox.KeyUtil.maxSeqLength=2; +cvox.KeyUtil.keyEventToKeySequence=function(a){var b=cvox.KeyUtil;b.prevKeySequence&&b.maxSeqLength==b.prevKeySequence.length()&&(b.sequencing=!1,b.prevKeySequence=null);var c=b.sequencing||a.keyPrefix||a.stickyMode,d=new cvox.KeySequence(a),e=d.cvoxModifier;if(c||e){if(!b.sequencing&&b.isSequenceSwitchKeyCode(d))return b.sequencing=!0,b.prevKeySequence=d;if(b.sequencing){if(b.prevKeySequence.addKeyEvent(a))return d=b.prevKeySequence,b.prevKeySequence=null,b.sequencing=!1,d;throw"Think sequencing is enabled, yet util.prevKeySequence alreadyhas two key codes"+ +b.prevKeySequence;}}else b.sequencing=!1;c=(new Date).getTime();if(cvox.KeyUtil.isDoubleTapKey(d)&&b.prevKeySequence&&d.equals(b.prevKeySequence)&&(e=b.modeKeyPressTime,0<e&&300>c-e))return d=b.prevKeySequence,d.doubleTap=!0,b.prevKeySequence=null,b.sequencing=!1,cvox.ChromeVox.isChromeOS&&a.keyCode==cvox.KeyUtil.getStickyKeyCode()&&(cvox.ChromeVox.searchKeyHeld=!1),d;b.prevKeySequence=d;b.modeKeyPressTime=c;return d}; +cvox.KeyUtil.keyCodeToString=function(a){return 17==a?"Ctrl":18==a?"Alt":16==a?"Shift":91==a||93==a?cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win":45==a?"Insert":65<=a&&90>=a?String.fromCharCode(a):48<=a&&57>=a?String.fromCharCode(a):"#"+a};cvox.KeyUtil.modStringToKeyCode=function(a){switch(a){case "Ctrl":return 17;case "Alt":return 18;case "Shift":return 16;case "Cmd":case "Win":return 91}return-1}; +cvox.KeyUtil.cvoxModKeyCodes=function(){var a=cvox.ChromeVox.modKeyStr.split(/\+/g);return a=a.map(function(a){return cvox.KeyUtil.modStringToKeyCode(a)})};cvox.KeyUtil.isSequenceSwitchKeyCode=function(a){for(var b=0;b<cvox.ChromeVox.sequenceSwitchKeyCodes.length;b++){var c=cvox.ChromeVox.sequenceSwitchKeyCodes[b];if(c.equals(a))return!0}return!1}; +cvox.KeyUtil.getReadableNameForKeyCode=function(a){if(0==a)return"Power button";if(17==a)return"Control";if(18==a)return"Alt";if(16==a)return"Shift";if(9==a)return"Tab";if(91==a||93==a)return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win";if(8==a)return"Backspace";if(32==a)return"Space";if(35==a)return"end";if(36==a)return"home";if(37==a)return"Left arrow";if(38==a)return"Up arrow";if(39==a)return"Right arrow";if(40==a)return"Down arrow";if(45==a)return"Insert";if(13==a)return"Enter"; +if(27==a)return"Escape";if(112==a)return cvox.ChromeVox.isChromeOS?"Back":"F1";if(113==a)return cvox.ChromeVox.isChromeOS?"Forward":"F2";if(114==a)return cvox.ChromeVox.isChromeOS?"Refresh":"F3";if(115==a)return cvox.ChromeVox.isChromeOS?"Toggle full screen":"F4";if(116==a)return"F5";if(117==a)return"F6";if(118==a)return"F7";if(119==a)return"F8";if(120==a)return"F9";if(121==a)return"F10";if(122==a)return"F11";if(123==a)return"F12";if(186==a)return"Semicolon";if(187==a)return"Equal sign";if(188==a)return"Comma"; +if(189==a)return"Dash";if(190==a)return"Period";if(191==a)return"Forward slash";if(192==a)return"Grave accent";if(219==a)return"Open bracket";if(220==a)return"Back slash";if(221==a)return"Close bracket";if(222==a)return"Single quote";if(115==a)return"Toggle full screen";if(48<=a&&90>=a)return String.fromCharCode(a)};cvox.KeyUtil.getStickyKeyCode=function(){var a=45;if(cvox.ChromeVox.isChromeOS||cvox.ChromeVox.isMac)a=91;return a}; +cvox.KeyUtil.getStickyKeySequence=function(){if(null==cvox.KeyUtil.stickyKeySequence){var a=cvox.KeyUtil.getStickyKeyCode(),a={keyCode:a,stickyMode:!0},b=new cvox.KeySequence(a);b.addKeyEvent(a);cvox.KeyUtil.stickyKeySequence=b}return cvox.KeyUtil.stickyKeySequence};cvox.KeyUtil.getReadableNameForStr=function(){return null}; +cvox.KeyUtil.keySequenceToString=function(a,b,c){for(var d="",e=a.length(),f=0;f<e;f++){""==d||c?""!=d&&(d+="+"):d+=">";var g="",h;for(h in a.keys)if(a.keys[h][f]){var k="";switch(h){case "ctrlKey":k="Ctrl";break;case "searchKeyHeld":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "altKey":k="Alt";break;case "altGraphKey":k="AltGraph";break;case "shiftKey":k="Shift";break;case "metaKey":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "keyCode":var l=a.keys[h][f];a.isModifierKey(l)|| +c||(g=b?g+cvox.KeyUtil.getReadableNameForKeyCode(l):g+cvox.KeyUtil.keyCodeToString(l))}-1==d.indexOf(k)&&(g+=k+"+")}d+=g;"+"==d[d.length-1]&&(d=d.slice(0,-1))}a.cvoxModifier||a.prefixKey?d=""!=d?"Cvox+"+d:"Cvox":a.stickyMode&&(">"==d[d.length-1]&&(d=d.slice(0,-1)),d=d+"+"+d);return d};cvox.KeyUtil.isDoubleTapKey=function(a){var b=!1,c=a.doubleTap;a.doubleTap=!0;for(var d=0,e;e=cvox.KeySequence.doubleTapCache[d];d++)if(e.equals(a)){b=!0;break}a.doubleTap=c;return b};cvox.KeyMap=function(a){this.bindings_=a;this.commandToKey_={};this.buildCommandToKey_()};cvox.KeyMap.KEYMAP_PATH="chromevox/background/keymaps/";cvox.KeyMap.AVAILABLE_MAP_INFO={keymap_classic:{file:"classic_keymap.json"},keymap_flat:{file:"flat_keymap.json"},keymap_experimental:{file:"experimental.json"}};cvox.KeyMap.DEFAULT_KEYMAP=0;cvox.KeyMap.prototype.length=function(){return this.bindings_.length};cvox.KeyMap.prototype.keys=function(){return this.bindings_.map(function(a){return a.sequence})}; +cvox.KeyMap.prototype.bindings=function(){return this.bindings_};cvox.KeyMap.prototype.toJSON=function(){return JSON.stringify({bindings:this.bindings_})};cvox.KeyMap.prototype.hasKey=function(a){for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return!0}return!1};cvox.KeyMap.prototype.commandForKey=function(a){if(null!=a)for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return c.command}return null}; +cvox.KeyMap.fromDefaults=function(){return cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO.keymap_classic.file)};cvox.KeyMap.fromJSON=function(a){try{var b=JSON.parse(a).bindings,b=b.filter(function(a){return void 0===a.sequence.platformFilter||cvox.PlatformUtil.matchesPlatform(a.sequence.platformFilter)})}catch(c){return null}if("object"!=typeof b)return null;for(a=0;a<b.length;a++){if(void 0==b[a].command||void 0==b[a].sequence)return null;b[a].sequence=cvox.KeySequence.deserialize(b[a].sequence)}return new cvox.KeyMap(b)}; +cvox.KeyMap.fromLocalStorage=function(){return localStorage.keyBindings?cvox.KeyMap.fromJSON(localStorage.keyBindings):null};cvox.KeyMap.fromPath=function(a){return cvox.KeyMap.fromJSON(cvox.KeyMap.readJSON_(a))};cvox.KeyMap.fromCurrentKeyMap=function(){var a=localStorage.currentKeyMap;return a&&cvox.KeyMap.AVAILABLE_MAP_INFO[a]?cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO[a].file):cvox.KeyMap.fromDefaults()}; +cvox.KeyMap.readJSON_=function(a){var b=chrome.extension.getURL(a);if(!b)throw"Invalid path: "+a;a=new XMLHttpRequest;a.open("GET",b,!1);a.send();return a.responseText};cvox.KeyMap.prototype.buildCommandToKey_=function(){for(var a=0;a<this.bindings_.length;a++){var b=this.bindings_[a];void 0==this.commandToKey_[b.command]&&(this.commandToKey_[b.command]=b.sequence)}};cvox.CommandStore={};cvox.CommandStore.categories=function(){var a={},b;for(b in cvox.CommandStore.CMD_WHITELIST){var c=cvox.CommandStore.CMD_WHITELIST[b];c.category&&(a[c.category]=!0)}b=[];for(var d in a)b.push(d);return b};cvox.CommandStore.messageForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).msgId};cvox.CommandStore.categoryForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).category}; +cvox.CommandStore.commandsForCategory=function(a){var b=[],c;for(c in cvox.CommandStore.CMD_WHITELIST){var d=cvox.CommandStore.CMD_WHITELIST[c];a==d.category&&b.push(c)}return b}; +cvox.CommandStore.CMD_WHITELIST={toggleStickyMode:{announce:!1,msgId:"toggle_sticky_mode",disallowOOBE:!0,category:"modifier_keys"},toggleKeyPrefix:{announce:!1,skipInput:!0,msgId:"prefix_key",disallowOOBE:!0,category:"modifier_keys"},stopSpeech:{announce:!1,disallowContinuation:!0,doDefault:!0,msgId:"stop_speech_key",category:"controlling_speech"},toggleChromeVox:{announce:!1,platformFilter:cvox.PlatformFilter.WML,msgId:"toggle_chromevox_active",category:"controlling_speech"},decreaseTtsRate:{announce:!1, +msgId:"decrease_tts_rate",category:"controlling_speech"},increaseTtsRate:{announce:!1,msgId:"increase_tts_rate",category:"controlling_speech"},decreaseTtsPitch:{announce:!1,msgId:"decrease_tts_pitch",category:"controlling_speech"},increaseTtsPitch:{announce:!1,msgId:"increase_tts_pitch",category:"controlling_speech"},decreaseTtsVolume:{announce:!1,msgId:"decrease_tts_volume",category:"controlling_speech"},increaseTtsVolume:{announce:!1,msgId:"increase_tts_volume",category:"controlling_speech"},cyclePunctuationEcho:{announce:!1, +msgId:"cycle_punctuation_echo",category:"controlling_speech"},cycleTypingEcho:{announce:!1,msgId:"cycle_typing_echo",category:"controlling_speech"},toggleEarcons:{announce:!0,msgId:"toggle_earcons",category:"controlling_speech"},handleTab:{allowEvents:!0,msgId:"handle_tab_next",disallowContinuation:!0,category:"navigation"},handleTabPrev:{allowEvents:!0,msgId:"handle_tab_prev",disallowContinuation:!0,category:"navigation"},forward:{forward:!0,announce:!0,msgId:"forward",category:"navigation"},backward:{backward:!0, +announce:!0,msgId:"backward",category:"navigation"},right:{forward:!0,announce:!0,msgId:"right",category:"navigation"},left:{backward:!0,announce:!0,msgId:"left",category:"navigation"},previousGranularity:{announce:!0,msgId:"previous_granularity",category:"navigation"},nextGranularity:{announce:!0,msgId:"next_granularity",category:"navigation"},previousCharacter:{backward:!0,announce:!0,msgId:"previous_character",skipInput:!0,category:"navigation"},nextCharacter:{forward:!0,announce:!0,msgId:"next_character", +skipInput:!0,category:"navigation"},previousWord:{backward:!0,announce:!0,msgId:"previous_word",skipInput:!0,category:"navigation"},nextWord:{forward:!0,announce:!0,msgId:"next_word",skipInput:!0,category:"navigation"},previousLine:{backward:!0,announce:!0,msgId:"previous_line",category:"navigation"},nextLine:{forward:!0,announce:!0,msgId:"next_line",category:"navigation"},previousSentence:{backward:!0,announce:!0,msgId:"previous_sentence",skipInput:!0,category:"navigation"},nextSentence:{forward:!0, +announce:!0,msgId:"next_sentence",skipInput:!0,category:"navigation"},previousObject:{backward:!0,announce:!0,msgId:"previous_object",skipInput:!0,category:"navigation"},nextObject:{forward:!0,announce:!0,msgId:"next_object",skipInput:!0,category:"navigation"},previousGroup:{backward:!0,announce:!0,msgId:"previous_group",skipInput:!0,category:"navigation"},nextGroup:{forward:!0,announce:!0,msgId:"next_group",skipInput:!0,category:"navigation"},jumpToTop:{forward:!0,announce:!0,msgId:"jump_to_top", +category:"navigation"},jumpToBottom:{backward:!0,announce:!0,msgId:"jump_to_bottom",category:"navigation"},moveToStartOfLine:{forward:!0,announce:!0},moveToEndOfLine:{backward:!0,announce:!0},readFromHere:{forward:!0,announce:!1,msgId:"read_from_here",category:"navigation"},performDefaultAction:{disallowContinuation:!0,msgId:"perform_default_action",doDefault:!0,skipInput:!0,category:"navigation"},forceClickOnCurrentItem:{announce:!0,disallowContinuation:!0,allowEvents:!0,msgId:"force_click_on_current_item", +category:"navigation"},forceDoubleClickOnCurrentItem:{announce:!0,allowEvents:!0,disallowContinuation:!0},readLinkURL:{announce:!1,msgId:"read_link_url",category:"information"},readCurrentTitle:{announce:!1,msgId:"read_current_title",category:"information"},readCurrentURL:{announce:!1,msgId:"read_current_url",category:"information"},fullyDescribe:{announce:!1,msgId:"fully_describe",category:"information"},speakTimeAndDate:{announce:!1,msgId:"speak_time_and_date",category:"information"},toggleSelection:{announce:!0, +msgId:"toggle_selection",category:"information"},toggleSearchWidget:{announce:!1,disallowContinuation:!0,msgId:"toggle_search_widget",category:"information"},toggleKeyboardHelp:{announce:!1,disallowContinuation:!0,msgId:"show_power_key",category:"help_commands"},help:{announce:!1,msgId:"help",disallowOOBE:!0,disallowContinuation:!0,category:"help_commands"},contextMenu:{announce:!1,disallowContinuation:!0},showOptionsPage:{announce:!1,disallowContinuation:!0,msgId:"show_options_page",disallowOOBE:!0, +category:"help_commands"},showKbExplorerPage:{announce:!1,disallowContinuation:!0,msgId:"show_kb_explorer_page",disallowOOBE:!0,category:"help_commands"},showFormsList:{announce:!1,disallowContinuation:!0,nodeList:"formField",msgId:"show_forms_list",category:"overview"},showHeadingsList:{announce:!1,nodeList:"heading",disallowContinuation:!0,msgId:"show_headings_list",category:"overview"},showLandmarksList:{announce:!1,nodeList:"landmark",disallowContinuation:!0,msgId:"show_landmarks_list",category:"overview"}, +showLinksList:{announce:!1,nodeList:"link",disallowContinuation:!0,msgId:"show_links_list",category:"overview"},showTablesList:{announce:!1,nodeList:"table",disallowContinuation:!0,msgId:"show_tables_list",category:"overview"},startHistoryRecording:{announce:!1},stopHistoryRecording:{announce:!1},enableConsoleTts:{announce:!1},autorunner:{announce:!1},nextArticle:{forward:!0,findNext:"article"},nextButton:{forward:!0,findNext:"button",msgId:"next_button",category:"jump_commands"},nextCheckbox:{forward:!0, +findNext:"checkbox",msgId:"next_checkbox",category:"jump_commands"},nextComboBox:{forward:!0,findNext:"combobox",msgId:"next_combo_box",category:"jump_commands"},nextControl:{forward:!0,findNext:"control"},nextEditText:{forward:!0,findNext:"editText",msgId:"next_edit_text",category:"jump_commands"},nextFormField:{forward:!0,findNext:"formField",msgId:"next_form_field",category:"jump_commands"},nextGraphic:{forward:!0,findNext:"graphic",msgId:"next_graphic",category:"jump_commands"},nextHeading:{forward:!0, +findNext:"heading",msgId:"next_heading",category:"jump_commands"},nextHeading1:{forward:!0,findNext:"heading1",msgId:"next_heading1",category:"jump_commands"},nextHeading2:{forward:!0,findNext:"heading2",msgId:"next_heading2",category:"jump_commands"},nextHeading3:{forward:!0,findNext:"heading3",msgId:"next_heading3",category:"jump_commands"},nextHeading4:{forward:!0,findNext:"heading4",msgId:"next_heading4",category:"jump_commands"},nextHeading5:{forward:!0,findNext:"heading5",msgId:"next_heading5", +category:"jump_commands"},nextHeading6:{forward:!0,findNext:"heading6",msgId:"next_heading6",category:"jump_commands"},nextLandmark:{forward:!0,findNext:"landmark",msgId:"next_landmark",category:"jump_commands"},nextLink:{forward:!0,findNext:"link",msgId:"next_link",category:"jump_commands"},nextList:{forward:!0,findNext:"list",msgId:"next_list",category:"jump_commands"},nextListItem:{forward:!0,findNext:"listItem",msgId:"next_list_item",category:"jump_commands"},nextMath:{forward:!0,findNext:"math", +msgId:"next_math",category:"jump_commands"},nextMedia:{forward:!0,findNext:"media",msgId:"next_media",category:"jump_commands"},nextRadio:{forward:!0,findNext:"radio",msgId:"next_radio",category:"jump_commands"},nextSection:{forward:!0,findNext:"section"},nextSlider:{forward:!0,findNext:"slider"},nextTable:{forward:!0,findNext:"table",msgId:"next_table",category:"jump_commands"},nextVisitedLink:{forward:!0,findNext:"visitedLink",msgId:"next_visited_link",category:"jump_commands"},previousArticle:{backward:!0, +findNext:"article"},previousButton:{backward:!0,findNext:"button",msgId:"previous_button",category:"jump_commands"},previousCheckbox:{backward:!0,findNext:"checkbox",msgId:"previous_checkbox",category:"jump_commands"},previousComboBox:{backward:!0,findNext:"combobox",msgId:"previous_combo_box",category:"jump_commands"},previousControl:{backward:!0,findNext:"control"},previousEditText:{backward:!0,findNext:"editText",msgId:"previous_edit_text",category:"jump_commands"},previousFormField:{backward:!0, +findNext:"formField",msgId:"previous_form_field",category:"jump_commands"},previousGraphic:{backward:!0,findNext:"graphic",msgId:"previous_graphic",category:"jump_commands"},previousHeading:{backward:!0,findNext:"heading",msgId:"previous_heading",category:"jump_commands"},previousHeading1:{backward:!0,findNext:"heading1",msgId:"previous_heading1",category:"jump_commands"},previousHeading2:{backward:!0,findNext:"heading2",msgId:"previous_heading2",category:"jump_commands"},previousHeading3:{backward:!0, +findNext:"heading3",msgId:"previous_heading3",category:"jump_commands"},previousHeading4:{backward:!0,findNext:"heading4",msgId:"previous_heading4",category:"jump_commands"},previousHeading5:{backward:!0,findNext:"heading5",msgId:"previous_heading5",category:"jump_commands"},previousHeading6:{backward:!0,findNext:"heading6",msgId:"previous_heading6",category:"jump_commands"},previousLandmark:{backward:!0,findNext:"landmark",msgId:"previous_landmark",category:"jump_commands"},previousLink:{backward:!0, +findNext:"link",msgId:"previous_link",category:"jump_commands"},previousList:{backward:!0,findNext:"list",msgId:"previous_list",category:"jump_commands"},previousListItem:{backward:!0,findNext:"listItem",msgId:"previous_list_item",category:"jump_commands"},previousMath:{backward:!0,findNext:"math",msgId:"previous_math",category:"jump_commands"},previousMedia:{backward:!0,findNext:"media",msgId:"previous_media",category:"jump_commands"},previousRadio:{backward:!0,findNext:"radio",msgId:"previous_radio", +category:"jump_commands"},previousSection:{backward:!0,findNext:"section"},previousSlider:{backward:!0,findNext:"slider"},previousTable:{backward:!0,findNext:"table",msgId:"previous_table",category:"jump_commands"},previousVisitedLink:{backward:!0,findNext:"visitedLink",msgId:"previous_visited_link",category:"jump_commands"},announceHeaders:{announce:!1,msgId:"announce_headers",category:"tables"},speakTableLocation:{announce:!1,msgId:"speak_table_location",category:"tables"},goToFirstCell:{announce:!0, +msgId:"skip_to_beginning",category:"tables"},goToLastCell:{announce:!0,msgId:"skip_to_end",category:"tables"},goToRowFirstCell:{announce:!0,msgId:"skip_to_row_beginning",category:"tables"},goToRowLastCell:{announce:!0,msgId:"skip_to_row_end",category:"tables"},goToColFirstCell:{announce:!0,msgId:"skip_to_col_beginning",category:"tables"},goToColLastCell:{announce:!0,msgId:"skip_to_col_end",category:"tables"},previousRow:{backward:!0,announce:!0,skipInput:!0},previousCol:{backward:!0,announce:!0,skipInput:!0}, +nextRow:{forward:!0,announce:!0,skipInput:!0},nextCol:{forward:!0,announce:!0,skipInput:!0},enterShifter:{announce:!0,msgId:"enter_content",category:"navigation"},exitShifter:{announce:!0,msgId:"exit_content",category:"navigation"},exitShifterContent:{announce:!0},openLongDesc:{announce:!1,msgId:"open_long_desc",category:"information"},pauseAllMedia:{announce:!1,msgId:"pause_all_media",category:"information"},toggleSemantics:{announce:!1,msgId:"toggle_semantics",category:"information"},routing:{announce:!0, +msgId:"braille_routing",category:"braille"},pan_left:{backward:!0,announce:!0,msgId:"braille_pan_left",category:"braille"},pan_right:{forward:!0,announce:!0,msgId:"braille_pan_right",category:"braille"},line_up:{backward:!0,announce:!0,msgId:"braille_line_up",category:"braille"},line_down:{forward:!0,announce:!0,msgId:"braille_line_down",category:"braille"},top:{forward:!0,announce:!0,msgId:"braille_top",category:"braille"},bottom:{backward:!0,announce:!0,msgId:"braille_bottom",category:"braille"}, +debug:{announce:!1},nop:{announce:!1}}; +cvox.CommandStore.NODE_INFO_MAP={checkbox:{predicate:"checkboxPredicate",forwardError:"no_next_checkbox",backwardError:"no_previous_checkbox",typeMsg:"aria_role_checkbox"},radio:{predicate:"radioPredicate",forwardError:"no_next_radio_button",backwardError:"no_previous_radio_button",typeMsg:"aria_role_radio"},slider:{predicate:"sliderPredicate",forwardError:"no_next_slider",backwardError:"no_previous_slider",typeMsg:"aria_role_slider"},graphic:{predicate:"graphicPredicate",forwardError:"no_next_graphic", +backwardError:"no_previous_graphic",typeMsg:"UNUSED"},article:{predicate:"articlePredicate",forwardError:"no_next_ARTICLE",backwardError:"no_previous_ARTICLE",typeMsg:"TAG_ARTICLE"},button:{predicate:"buttonPredicate",forwardError:"no_next_button",backwardError:"no_previous_button",typeMsg:"aria_role_button"},combobox:{predicate:"comboBoxPredicate",forwardError:"no_next_combo_box",backwardError:"no_previous_combo_box",typeMsg:"aria_role_combobox"},editText:{predicate:"editTextPredicate",forwardError:"no_next_edit_text", +backwardError:"no_previous_edit_text",typeMsg:"input_type_text"},heading:{predicate:"headingPredicate",forwardError:"no_next_heading",backwardError:"no_previous_heading",typeMsg:"aria_role_heading"},heading1:{predicate:"heading1Predicate",forwardError:"no_next_heading_1",backwardError:"no_previous_heading_1"},heading2:{predicate:"heading2Predicate",forwardError:"no_next_heading_2",backwardError:"no_previous_heading_2"},heading3:{predicate:"heading3Predicate",forwardError:"no_next_heading_3",backwardError:"no_previous_heading_3"}, +heading4:{predicate:"heading4Predicate",forwardError:"no_next_heading_4",backwardError:"no_previous_heading_4"},heading5:{predicate:"heading5Predicate",forwardError:"no_next_heading_5",backwardError:"no_previous_heading_5"},heading6:{predicate:"heading6Predicate",forwardError:"no_next_heading_6",backwardError:"no_previous_heading_6"},link:{predicate:"linkPredicate",forwardError:"no_next_link",backwardError:"no_previous_link",typeMsg:"aria_role_link"},table:{predicate:"tablePredicate",forwardError:"no_next_table", +backwardError:"no_previous_table",typeMsg:"table_strategy"},visitedLink:{predicate:"visitedLinkPredicate",forwardError:"no_next_visited_link",backwardError:"no_previous_visited_link",typeMsg:"tag_link"},list:{predicate:"listPredicate",forwardError:"no_next_list",backwardError:"no_previous_list",typeMsg:"aria_role_list"},listItem:{predicate:"listItemPredicate",forwardError:"no_next_list_item",backwardError:"no_previous_list_item",typeMsg:"aria_role_listitem"},formField:{predicate:"formFieldPredicate", +forwardError:"no_next_form_field",backwardError:"no_previous_form_field",typeMsg:"aria_role_form"},landmark:{predicate:"landmarkPredicate",forwardError:"no_next_landmark",backwardError:"no_previous_landmark",typeMsg:"role_landmark"},math:{predicate:"mathPredicate",forwardError:"no_next_math",backwardError:"no_previous_math",typeMsg:"math_expr"},media:{predicate:"mediaPredicate",forwardError:"no_next_media_widget",backwardError:"no_previous_media_widget"},section:{predicate:"sectionPredicate",forwardError:"no_next_section", +backwardError:"no_previous_section"},control:{predicate:"controlPredicate",forwardError:"no_next_control",backwardError:"no_previous_control"}};cvox.Widget=function(){this.active=!1;this.initialNode=null;cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||(cvox.Widget.ref_=this)};cvox.Widget.prototype.isActive=function(){return this.active}; +cvox.Widget.prototype.show=function(){this.isActive()&&this.hide(!0);this.onKeyDown=goog.bind(this.onKeyDown,this);this.onKeyPress=goog.bind(this.onKeyPress,this);window.addEventListener("keydown",this.onKeyDown,!0);window.addEventListener("keypress",this.onKeyPress,!0);this.initialNode=cvox.ChromeVox.navigationManager.getCurrentNode();this.isStickyOn=cvox.ChromeVox.isStickyOn;this.getNameMsg()&&this.getHelpMsg()&&cvox.$m(this.getNameMsg()).andPause().andMessage(this.getHelpMsg()).speakFlush();cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_OPEN); +this.active=!0};cvox.Widget.prototype.hide=function(a){window.removeEventListener("keypress",this.onKeyPress,!0);window.removeEventListener("keydown",this.onKeyDown,!0);cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_CLOSE);a||(this.initialNode=1==this.initialNode.nodeType?this.initialNode:this.initialNode.parentNode,cvox.ApiImplementation.syncToNode(this.initialNode,!0,cvox.AbstractTts.QUEUE_MODE_QUEUE));this.active=!1}; +cvox.Widget.prototype.toggle=function(){this.isActive()?this.hide():this.show()};cvox.Widget.prototype.onKeyDown=function(a){if(27==a.keyCode)return this.hide(),a.preventDefault(),!0;if(9==a.keyCode)return this.hide(),!0;17==a.keyCode&&cvox.ChromeVox.tts.stop();a.stopPropagation();return!0};cvox.Widget.prototype.onKeyPress=function(){return!1};cvox.Widget.isActive=function(){return cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||!1};cvox.NavDescription=function(a){this.context=a.context?a.context:"";this.text=a.text?a.text:"";this.userValue=a.userValue?a.userValue:"";this.annotation=a.annotation?a.annotation:"";this.earcons=a.earcons?a.earcons:[];this.personality=a.personality};cvox.NavDescription.prototype.isEmpty=function(){return 0==this.context.length&&0==this.earcons.length&&0==this.text.length&&0==this.userValue.length&&0==this.annotation.length}; +cvox.NavDescription.prototype.toString=function(){return'NavDescription(context="'+this.context+'" text="'+this.text+'" userValue="'+this.userValue+'" annotation="'+this.annotation+'")'};cvox.NavDescription.prototype.pushEarcon=function(a){this.earcons.push(a)}; +cvox.NavDescription.prototype.speak=function(a,b,c){function d(){var a={},b=cvox.AbstractTts.PERSONALITY_ANNOTATION,c;for(c in b)a[c]=b[c];return a}var e=[];this.context&&(e.push([this.context,a,d()]),a=1);e.push([this.text,a,this.personality?this.personality:{}]);a=1;this.userValue&&e.push([this.userValue,a,{}]);this.annotation&&e.push([this.annotation,a,d()]);a=e.length;for(var f=0;f<a;f++)0==f&&b&&(e[f][2].startCallback=b),f==a-1&&c&&(e[f][2].endCallback=c),cvox.ChromeVox.tts.speak.apply(cvox.ChromeVox.tts, +e[f])};cvox.NavDescription.prototype.equals=function(a){return this.context==a.context&&this.text==a.text&&this.userValue==a.userValue&&this.annotation==a.annotation};cvox.NavMathDescription=function(a){cvox.NavDescription.call(this,a);var b=this.personality?this.personality:{},c={};c.domain=a.domain?a.domain:"";c.style=a.style?a.style:"";b.math=c;this.personality=b};goog.inherits(cvox.NavMathDescription,cvox.NavDescription);cvox.SemanticUtil=function(){};cvox.SemanticUtil.objectsToKeys=function(a){a=Array.prototype.slice.call(arguments,0);var b=[];return b.concat.apply(b,a.map(Object.keys))};cvox.SemanticUtil.objectsToValues=function(a){a=Array.prototype.slice.call(arguments,0);var b=[],c=function(a){for(var c in a)b.push(a[c])};a.forEach(c);return b}; +cvox.SemanticUtil.unicodeToNumber=function(a){if(!a||2<a.length)return null;if(2==a.length){var b=a.charCodeAt(0);a=a.charCodeAt(1);return 55296<=b&&56319>=b&&!isNaN(a)?1024*(b-55296)+(a-56320)+65536:null}return a.charCodeAt(0)};cvox.SemanticUtil.numberToUnicode=function(a){if(65536<=a){var b=(a-65536)/1024+55296;a=(a-65536)%1024+56320;return String.fromCharCode(b,a)}return String.fromCharCode(a)};cvox.SemanticUtil.tagName=function(a){return a.tagName.toUpperCase()};cvox.SemanticUtil.IGNORETAGS="MERROR MPHANTOM MSPACE MACTION MALIGNGROUP MALIGNMARK MACTION".split(" "); +cvox.SemanticUtil.EMPTYTAGS=["MATH","MROW","MPADDED","MSTYLE"];cvox.SemanticUtil.purgeNodes=function(a){for(var b=[],c=0,d;d=a[c];c++){var e=cvox.SemanticUtil.tagName(d);-1==cvox.SemanticUtil.IGNORETAGS.indexOf(e)&&(-1!=cvox.SemanticUtil.EMPTYTAGS.indexOf(e)&&0==d.childNodes.length||b.push(d))}return b};cvox.SemanticAttr=function(){this.generalPunctuations="!\"#%&'*,:;?@\\\u00a1\u00a7\u00b6\u00b7\u00bf\u2017\u2020\u2021\u2022\u2023\u2024\u2025\u2027\u2030\u2031\u2038\u203b\u203c\u203d\u203e\u2041\u2042\u2043\u2047\u2048\u2049\u204b\u204c\u204d\u204e\u204f\u2050\u2051\u2053\u2055\u2056\u2058\u2059\u205a\u205b\u205c\u205d\u205e\ufe10\ufe13\ufe14\ufe15\ufe16\ufe30\ufe45\ufe46\ufe49\ufe4a\ufe4b\ufe4c\ufe50\ufe54\ufe55\ufe56\ufe57\ufe5f\ufe60\ufe61\ufe68\ufe6a\ufe6b\uff01\uff02\uff03\uff05\uff06\uff07\uff0a\uff0c\uff0f\uff1a\uff1b\uff1f\uff20\uff3c".split(""); +this.invisibleComma_=cvox.SemanticUtil.numberToUnicode(8291);this.generalPunctuations.push(this.invisibleComma_);this.ellipses="\u2026\u22ee\u22ef\u22f0\u22f1\ufe19".split("");this.fullStops=[".","\ufe52","\uff0e"];this.dashes="\u2012\u2013\u2014\u2015\u301c\ufe31\ufe32\ufe58".split("");this.primes="\u2032\u2033\u2034\u2035\u2036\u2037\u2057".split("");this.openClosePairs={"(":")","[":"]","{":"}","\u2045":"\u2046","\u2329":"\u232a","\u2768":"\u2769","\u276a":"\u276b","\u276c":"\u276d","\u276e":"\u276f", +"\u2770":"\u2771","\u2772":"\u2773","\u2774":"\u2775","\u27c5":"\u27c6","\u27e6":"\u27e7","\u27e8":"\u27e9","\u27ea":"\u27eb","\u27ec":"\u27ed","\u27ee":"\u27ef","\u2983":"\u2984","\u2985":"\u2986","\u2987":"\u2988","\u2989":"\u298a","\u298b":"\u298c","\u298d":"\u298e","\u298f":"\u2990","\u2991":"\u2992","\u2993":"\u2994","\u2995":"\u2996","\u2997":"\u2998","\u29d8":"\u29d9","\u29da":"\u29db","\u29fc":"\u29fd","\u2e22":"\u2e23","\u2e24":"\u2e25","\u2e26":"\u2e27","\u2e28":"\u2e29","\u3008":"\u3009", +"\u300a":"\u300b","\u300c":"\u300d","\u300e":"\u300f","\u3010":"\u3011","\u3014":"\u3015","\u3016":"\u3017","\u3018":"\u3019","\u301a":"\u301b","\u301d":"\u301e","\ufd3e":"\ufd3f","\ufe17":"\ufe18","\ufe59":"\ufe5a","\ufe5b":"\ufe5c","\ufe5d":"\ufe5e","\uff08":"\uff09","\uff3b":"\uff3d","\uff5b":"\uff5d","\uff5f":"\uff60","\uff62":"\uff63","\u2308":"\u2309","\u230a":"\u230b","\u230c":"\u230d","\u230e":"\u230f","\u231c":"\u231d","\u231e":"\u231f","\u239b":"\u239e","\u239c":"\u239f","\u239d":"\u23a0", +"\u23a1":"\u23a4","\u23a2":"\u23a5","\u23a3":"\u23a6","\u23a7":"\u23ab","\u23a8":"\u23ac","\u23a9":"\u23ad","\u23b0":"\u23b1","\u23b8":"\u23b9"};this.topBottomPairs={"\u23b4":"\u23b5","\u23dc":"\u23dd","\u23de":"\u23df","\u23e0":"\u23e1","\ufe35":"\ufe36","\ufe37":"\ufe38","\ufe39":"\ufe3a","\ufe3b":"\ufe3c","\ufe3d":"\ufe3e","\ufe3f":"\ufe40","\ufe41":"\ufe42","\ufe43":"\ufe44","\ufe47":"\ufe48"};this.leftFences=cvox.SemanticUtil.objectsToKeys(this.openClosePairs);this.rightFences=cvox.SemanticUtil.objectsToValues(this.openClosePairs); +this.rightFences.push("\u301f");this.topFences=cvox.SemanticUtil.objectsToKeys(this.topBottomPairs);this.bottomFences=cvox.SemanticUtil.objectsToValues(this.topBottomPairs);this.neutralFences="|\u00a6\u2016\u2758\u2980\u2af4\uffe4\uff5c".split("");this.capitalLatin="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");this.smallLatin="abcdefghijklmnopqrstuvwxyz\u0131\u0237".split("");this.capitalLatinFullWidth="\uff21\uff22\uff23\uff24\uff25\uff26\uff27\uff28\uff29\uff2a\uff2b\uff2c\uff2d\uff2e\uff2f\uff30\uff31\uff32\uff33\uff34\uff35\uff36\uff37\uff38\uff39\uff3a".split(""); +this.smallLatinFullWidth="\uff41\uff42\uff43\uff44\uff45\uff46\uff47\uff48\uff49\uff4a\uff4b\uff4c\uff4d\uff4e\uff4f\uff50\uff51\uff52\uff53\uff54\uff55\uff56\uff57\uff58\uff59\uff5a".split("");this.capitalLatinBold="\ud835\udc00 \ud835\udc01 \ud835\udc02 \ud835\udc03 \ud835\udc04 \ud835\udc05 \ud835\udc06 \ud835\udc07 \ud835\udc08 \ud835\udc09 \ud835\udc0a \ud835\udc0b \ud835\udc0c \ud835\udc0d \ud835\udc0e \ud835\udc0f \ud835\udc10 \ud835\udc11 \ud835\udc12 \ud835\udc13 \ud835\udc14 \ud835\udc15 \ud835\udc16 \ud835\udc17 \ud835\udc18 \ud835\udc19".split(" "); +this.smallLatinBold="\ud835\udc1a \ud835\udc1b \ud835\udc1c \ud835\udc1d \ud835\udc1e \ud835\udc1f \ud835\udc20 \ud835\udc21 \ud835\udc22 \ud835\udc23 \ud835\udc24 \ud835\udc25 \ud835\udc26 \ud835\udc27 \ud835\udc28 \ud835\udc29 \ud835\udc2a \ud835\udc2b \ud835\udc2c \ud835\udc2d \ud835\udc2e \ud835\udc2f \ud835\udc30 \ud835\udc31 \ud835\udc32 \ud835\udc33".split(" ");this.capitalLatinItalic="\ud835\udc34 \ud835\udc35 \ud835\udc36 \ud835\udc37 \ud835\udc38 \ud835\udc39 \ud835\udc3a \ud835\udc3b \ud835\udc3c \ud835\udc3d \ud835\udc3e \ud835\udc3f \ud835\udc40 \ud835\udc41 \ud835\udc42 \ud835\udc43 \ud835\udc44 \ud835\udc45 \ud835\udc46 \ud835\udc47 \ud835\udc48 \ud835\udc49 \ud835\udc4a \ud835\udc4b \ud835\udc4c \ud835\udc4d".split(" "); +this.smallLatinItalic="\ud835\udc4e \ud835\udc4f \ud835\udc50 \ud835\udc51 \ud835\udc52 \ud835\udc53 \ud835\udc54 \u210e \ud835\udc56 \ud835\udc57 \ud835\udc58 \ud835\udc59 \ud835\udc5a \ud835\udc5b \ud835\udc5c \ud835\udc5d \ud835\udc5e \ud835\udc5f \ud835\udc60 \ud835\udc61 \ud835\udc62 \ud835\udc63 \ud835\udc64 \ud835\udc65 \ud835\udc66 \ud835\udc67 \ud835\udea4 \ud835\udea5".split(" ");this.capitalLatinScript="\ud835\udc9c \u212c \ud835\udc9e \ud835\udc9f \u2130 \u2131 \ud835\udca2 \u210b \u2110 \ud835\udca5 \ud835\udca6 \u2112 \u2133 \ud835\udca9 \ud835\udcaa \ud835\udcab \ud835\udcac \u211b \ud835\udcae \ud835\udcaf \ud835\udcb0 \ud835\udcb1 \ud835\udcb2 \ud835\udcb3 \ud835\udcb4 \ud835\udcb5 \u2118".split(" "); +this.smallLatinScript="\ud835\udcb6 \ud835\udcb7 \ud835\udcb8 \ud835\udcb9 \u212f \ud835\udcbb \u210a \ud835\udcbd \ud835\udcbe \ud835\udcbf \ud835\udcc0 \ud835\udcc1 \ud835\udcc2 \ud835\udcc3 \u2134 \ud835\udcc5 \ud835\udcc6 \ud835\udcc7 \ud835\udcc8 \ud835\udcc9 \ud835\udcca \ud835\udccb \ud835\udccc \ud835\udccd \ud835\udcce \ud835\udccf \u2113".split(" ");this.capitalLatinBoldScript="\ud835\udcd0 \ud835\udcd1 \ud835\udcd2 \ud835\udcd3 \ud835\udcd4 \ud835\udcd5 \ud835\udcd6 \ud835\udcd7 \ud835\udcd8 \ud835\udcd9 \ud835\udcda \ud835\udcdb \ud835\udcdc \ud835\udcdd \ud835\udcde \ud835\udcdf \ud835\udce0 \ud835\udce1 \ud835\udce2 \ud835\udce3 \ud835\udce4 \ud835\udce5 \ud835\udce6 \ud835\udce7 \ud835\udce8 \ud835\udce9".split(" "); +this.smallLatinBoldScript="\ud835\udcea \ud835\udceb \ud835\udcec \ud835\udced \ud835\udcee \ud835\udcef \ud835\udcf0 \ud835\udcf1 \ud835\udcf2 \ud835\udcf3 \ud835\udcf4 \ud835\udcf5 \ud835\udcf6 \ud835\udcf7 \ud835\udcf8 \ud835\udcf9 \ud835\udcfa \ud835\udcfb \ud835\udcfc \ud835\udcfd \ud835\udcfe \ud835\udcff \ud835\udd00 \ud835\udd01 \ud835\udd02 \ud835\udd03".split(" ");this.capitalLatinFraktur="\ud835\udd04 \ud835\udd05 \u212d \ud835\udd07 \ud835\udd08 \ud835\udd09 \ud835\udd0a \u210c \u2111 \ud835\udd0d \ud835\udd0e \ud835\udd0f \ud835\udd10 \ud835\udd11 \ud835\udd12 \ud835\udd13 \ud835\udd14 \u211c \ud835\udd16 \ud835\udd17 \ud835\udd18 \ud835\udd19 \ud835\udd1a \ud835\udd1b \ud835\udd1c \u2128".split(" "); +this.smallLatinFraktur="\ud835\udd1e \ud835\udd1f \ud835\udd20 \ud835\udd21 \ud835\udd22 \ud835\udd23 \ud835\udd24 \ud835\udd25 \ud835\udd26 \ud835\udd27 \ud835\udd28 \ud835\udd29 \ud835\udd2a \ud835\udd2b \ud835\udd2c \ud835\udd2d \ud835\udd2e \ud835\udd2f \ud835\udd30 \ud835\udd31 \ud835\udd32 \ud835\udd33 \ud835\udd34 \ud835\udd35 \ud835\udd36 \ud835\udd37".split(" ");this.capitalLatinDoubleStruck="\ud835\udd38 \ud835\udd39 \u2102 \ud835\udd3b \ud835\udd3c \ud835\udd3d \ud835\udd3e \u210d \ud835\udd40 \ud835\udd41 \ud835\udd42 \ud835\udd43 \ud835\udd44 \u2115 \ud835\udd46 \u2119 \u211a \u211d \ud835\udd4a \ud835\udd4b \ud835\udd4c \ud835\udd4d \ud835\udd4e \ud835\udd4f \ud835\udd50 \u2124".split(" "); +this.smallLatinDoubleStruck="\ud835\udd52 \ud835\udd53 \ud835\udd54 \ud835\udd55 \ud835\udd56 \ud835\udd57 \ud835\udd58 \ud835\udd59 \ud835\udd5a \ud835\udd5b \ud835\udd5c \ud835\udd5d \ud835\udd5e \ud835\udd5f \ud835\udd60 \ud835\udd61 \ud835\udd62 \ud835\udd63 \ud835\udd64 \ud835\udd65 \ud835\udd66 \ud835\udd67 \ud835\udd68 \ud835\udd69 \ud835\udd6a \ud835\udd6b".split(" ");this.capitalLatinBoldFraktur="\ud835\udd6c \ud835\udd6d \ud835\udd6e \ud835\udd6f \ud835\udd70 \ud835\udd71 \ud835\udd72 \ud835\udd73 \ud835\udd74 \ud835\udd75 \ud835\udd76 \ud835\udd77 \ud835\udd78 \ud835\udd79 \ud835\udd7a \ud835\udd7b \ud835\udd7c \ud835\udd7d \ud835\udd7e \ud835\udd7f \ud835\udd80 \ud835\udd81 \ud835\udd82 \ud835\udd83 \ud835\udd84 \ud835\udd85".split(" "); +this.smallLatinBoldFraktur="\ud835\udd86 \ud835\udd87 \ud835\udd88 \ud835\udd89 \ud835\udd8a \ud835\udd8b \ud835\udd8c \ud835\udd8d \ud835\udd8e \ud835\udd8f \ud835\udd90 \ud835\udd91 \ud835\udd92 \ud835\udd93 \ud835\udd94 \ud835\udd95 \ud835\udd96 \ud835\udd97 \ud835\udd98 \ud835\udd99 \ud835\udd9a \ud835\udd9b \ud835\udd9c \ud835\udd9d \ud835\udd9e \ud835\udd9f".split(" ");this.capitalLatinSansSerif="\ud835\udda0 \ud835\udda1 \ud835\udda2 \ud835\udda3 \ud835\udda4 \ud835\udda5 \ud835\udda6 \ud835\udda7 \ud835\udda8 \ud835\udda9 \ud835\uddaa \ud835\uddab \ud835\uddac \ud835\uddad \ud835\uddae \ud835\uddaf \ud835\uddb0 \ud835\uddb1 \ud835\uddb2 \ud835\uddb3 \ud835\uddb4 \ud835\uddb5 \ud835\uddb6 \ud835\uddb7 \ud835\uddb8 \ud835\uddb9".split(" "); +this.smallLatinSansSerif="\ud835\uddba \ud835\uddbb \ud835\uddbc \ud835\uddbd \ud835\uddbe \ud835\uddbf \ud835\uddc0 \ud835\uddc1 \ud835\uddc2 \ud835\uddc3 \ud835\uddc4 \ud835\uddc5 \ud835\uddc6 \ud835\uddc7 \ud835\uddc8 \ud835\uddc9 \ud835\uddca \ud835\uddcb \ud835\uddcc \ud835\uddcd \ud835\uddce \ud835\uddcf \ud835\uddd0 \ud835\uddd1 \ud835\uddd2 \ud835\uddd3".split(" ");this.capitalLatinSansSerifBold="\ud835\uddd4 \ud835\uddd5 \ud835\uddd6 \ud835\uddd7 \ud835\uddd8 \ud835\uddd9 \ud835\uddda \ud835\udddb \ud835\udddc \ud835\udddd \ud835\uddde \ud835\udddf \ud835\udde0 \ud835\udde1 \ud835\udde2 \ud835\udde3 \ud835\udde4 \ud835\udde5 \ud835\udde6 \ud835\udde7 \ud835\udde8 \ud835\udde9 \ud835\uddea \ud835\uddeb \ud835\uddec \ud835\udded".split(" "); +this.smallLatinSansSerifBold="\ud835\uddee \ud835\uddef \ud835\uddf0 \ud835\uddf1 \ud835\uddf2 \ud835\uddf3 \ud835\uddf4 \ud835\uddf5 \ud835\uddf6 \ud835\uddf7 \ud835\uddf8 \ud835\uddf9 \ud835\uddfa \ud835\uddfb \ud835\uddfc \ud835\uddfd \ud835\uddfe \ud835\uddff \ud835\ude00 \ud835\ude01 \ud835\ude02 \ud835\ude03 \ud835\ude04 \ud835\ude05 \ud835\ude06 \ud835\ude07".split(" ");this.capitalLatinSansSerifItalic="\ud835\ude08 \ud835\ude09 \ud835\ude0a \ud835\ude0b \ud835\ude0c \ud835\ude0d \ud835\ude0e \ud835\ude0f \ud835\ude10 \ud835\ude11 \ud835\ude12 \ud835\ude13 \ud835\ude14 \ud835\ude15 \ud835\ude16 \ud835\ude17 \ud835\ude18 \ud835\ude19 \ud835\ude1a \ud835\ude1b \ud835\ude1c \ud835\ude1d \ud835\ude1e \ud835\ude1f \ud835\ude20 \ud835\ude21".split(" "); +this.smallLatinSansSerifItalic="\ud835\ude22 \ud835\ude23 \ud835\ude24 \ud835\ude25 \ud835\ude26 \ud835\ude27 \ud835\ude28 \ud835\ude29 \ud835\ude2a \ud835\ude2b \ud835\ude2c \ud835\ude2d \ud835\ude2e \ud835\ude2f \ud835\ude30 \ud835\ude31 \ud835\ude32 \ud835\ude33 \ud835\ude34 \ud835\ude35 \ud835\ude36 \ud835\ude37 \ud835\ude38 \ud835\ude39 \ud835\ude3a \ud835\ude3b".split(" ");this.capitalLatinMonospace="\ud835\ude70 \ud835\ude71 \ud835\ude72 \ud835\ude73 \ud835\ude74 \ud835\ude75 \ud835\ude76 \ud835\ude77 \ud835\ude78 \ud835\ude79 \ud835\ude7a \ud835\ude7b \ud835\ude7c \ud835\ude7d \ud835\ude7e \ud835\ude7f \ud835\ude80 \ud835\ude81 \ud835\ude82 \ud835\ude83 \ud835\ude84 \ud835\ude85 \ud835\ude86 \ud835\ude87 \ud835\ude88 \ud835\ude89".split(" "); +this.smallLatinMonospace="\ud835\ude8a \ud835\ude8b \ud835\ude8c \ud835\ude8d \ud835\ude8e \ud835\ude8f \ud835\ude90 \ud835\ude91 \ud835\ude92 \ud835\ude93 \ud835\ude94 \ud835\ude95 \ud835\ude96 \ud835\ude97 \ud835\ude98 \ud835\ude99 \ud835\ude9a \ud835\ude9b \ud835\ude9c \ud835\ude9d \ud835\ude9e \ud835\ude9f \ud835\udea0 \ud835\udea1 \ud835\udea2 \ud835\udea3".split(" ");this.latinDoubleStruckItalic=["\u2145","\u2146","\u2147","\u2148","\u2149"];this.capitalGreek="\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9".split(""); +this.smallGreek="\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9".split("");this.capitalGreekBold="\ud835\udea8 \ud835\udea9 \ud835\udeaa \ud835\udeab \ud835\udeac \ud835\udead \ud835\udeae \ud835\udeaf \ud835\udeb0 \ud835\udeb1 \ud835\udeb2 \ud835\udeb3 \ud835\udeb4 \ud835\udeb5 \ud835\udeb6 \ud835\udeb7 \ud835\udeb8 \ud835\udeba \ud835\udebb \ud835\udebc \ud835\udebd \ud835\udebe \ud835\udebf \ud835\udec0".split(" "); +this.smallGreekBold="\ud835\udec2 \ud835\udec3 \ud835\udec4 \ud835\udec5 \ud835\udec6 \ud835\udec7 \ud835\udec8 \ud835\udec9 \ud835\udeca \ud835\udecb \ud835\udecc \ud835\udecd \ud835\udece \ud835\udecf \ud835\uded0 \ud835\uded1 \ud835\uded2 \ud835\uded3 \ud835\uded4 \ud835\uded5 \ud835\uded6 \ud835\uded7 \ud835\uded8 \ud835\uded9 \ud835\udeda".split(" ");this.capitalGreekItalic="\ud835\udee2 \ud835\udee3 \ud835\udee4 \ud835\udee5 \ud835\udee6 \ud835\udee7 \ud835\udee8 \ud835\udee9 \ud835\udeea \ud835\udeeb \ud835\udeec \ud835\udeed \ud835\udeee \ud835\udeef \ud835\udef0 \ud835\udef1 \ud835\udef2 \ud835\udef4 \ud835\udef5 \ud835\udef6 \ud835\udef7 \ud835\udef8 \ud835\udef9 \ud835\udefa".split(" "); +this.smallGreekItalic="\ud835\udefc \ud835\udefd \ud835\udefe \ud835\udeff \ud835\udf00 \ud835\udf01 \ud835\udf02 \ud835\udf03 \ud835\udf04 \ud835\udf05 \ud835\udf06 \ud835\udf07 \ud835\udf08 \ud835\udf09 \ud835\udf0a \ud835\udf0b \ud835\udf0c \ud835\udf0d \ud835\udf0e \ud835\udf0f \ud835\udf10 \ud835\udf11 \ud835\udf12 \ud835\udf13 \ud835\udf14".split(" ");this.capitalGreekSansSerifBold="\ud835\udf56 \ud835\udf57 \ud835\udf58 \ud835\udf59 \ud835\udf5a \ud835\udf5b \ud835\udf5c \ud835\udf5d \ud835\udf5e \ud835\udf5f \ud835\udf60 \ud835\udf61 \ud835\udf62 \ud835\udf63 \ud835\udf64 \ud835\udf65 \ud835\udf66 \ud835\udf68 \ud835\udf69 \ud835\udf6a \ud835\udf6b \ud835\udf6c \ud835\udf6d \ud835\udf6e".split(" "); +this.smallGreekSansSerifBold="\ud835\udf70 \ud835\udf71 \ud835\udf72 \ud835\udf73 \ud835\udf74 \ud835\udf75 \ud835\udf76 \ud835\udf77 \ud835\udf78 \ud835\udf79 \ud835\udf7a \ud835\udf7b \ud835\udf7c \ud835\udf7d \ud835\udf7e \ud835\udf7f \ud835\udf80 \ud835\udf81 \ud835\udf82 \ud835\udf83 \ud835\udf84 \ud835\udf85 \ud835\udf86 \ud835\udf87 \ud835\udf88".split(" ");this.greekDoubleStruck=["\u213c","\u213d","\u213e","\u213f"];this.hebrewLetters=["\u2135","\u2136","\u2137","\u2138"];this.additions="+\u00b1\u2213\u2214\u2227\u2228\u2229\u222a\u228c\u2293\u2294\u229d\u229e\u22a4\u22a5\u22ba\u22bb\u22bc\u22c4\u22ce\u22cf\u22d2\u22d3\u25b3\u25b7\u25bd\u25c1\u2a5e\u2295".split(""); +this.invisiblePlus_=cvox.SemanticUtil.numberToUnicode(8292);this.additions.push(this.invisiblePlus_);this.multiplications="\u2020\u2021\u2210\u2217\u2218\u2219\u2240\u229a\u229b\u22a0\u22a1\u22c5\u22c6\u22c7\u22c9\u22ca\u22cb\u22cc\u25cb".split("");this.invisibleTimes_=cvox.SemanticUtil.numberToUnicode(8290);this.multiplications.push(this.invisibleTimes_);this.subtractions="-\u2052\u207b\u208b\u2212\u2216\u2238\u2242\u2296\u229f\u2796\u2a29\u2a2a\u2a2b\u2a2c\u2a3a\u2a41\u2a6c\ufe63\uff0d\u2010\u2011".split(""); +this.divisions="/\u00f7\u2044\u2215\u2298\u27cc\u29bc\u2a38".split("");this.functionApplication_=cvox.SemanticUtil.numberToUnicode(8289);this.equalities="=~\u207c\u208c\u223c\u223d\u2243\u2245\u2248\u224a\u224b\u224c\u224d\u224e\u2251\u2252\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225a\u225b\u225c\u225d\u225e\u225f\u2261\u2263\u29e4\u2a66\u2a6e\u2a6f\u2a70\u2a71\u2a72\u2a73\u2a74\u2a75\u2a76\u2a77\u2a78\u22d5\u2a6d\u2a6a\u2a6b\u2a6c\ufe66\uff1d".split("");this.inequalities="<>\u2241\u2242\u2244\u2246\u2247\u2249\u224f\u2250\u2260\u2262\u2264\u2265\u2266\u2267\u2268\u2269\u226a\u226b\u226c\u226d\u226e\u226f\u2270\u2271\u2272\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227a\u227b\u227c\u227d\u227e\u227f\u2280\u2281\u22d6\u22d7\u22d8\u22d9\u22da\u22db\u22dc\u22dd\u22de\u22df\u22e0\u22e1\u22e2\u22e3\u22e4\u22e5\u22e6\u22e7\u22e8\u22e9\u2a79\u2a7a\u2a7b\u2a7c\u2a7d\u2a7e\u2a7f\u2a80\u2a81\u2a82\u2a83\u2a84\u2a85\u2a86\u2a87\u2a88\u2a89\u2a8a\u2a8b\u2a8c\u2a8d\u2a8e\u2a8f\u2a90\u2a91\u2a92\u2a93\u2a94\u2a95\u2a96\u2a97\u2a98\u2a99\u2a9a\u2a9b\u2a9c\u2a9d\u2a9e\u2a9f\u2aa0\u2aa1\u2aa2\u2aa3\u2aa4\u2aa5\u2aa6\u2aa7\u2aa8\u2aa9\u2aaa\u2aab\u2aac\u2aad\u2aae\u2aaf\u2ab0\u2ab1\u2ab2\u2ab3\u2ab4\u2ab5\u2ab6\u2ab7\u2ab8\u2ab9\u2aba\u2abb\u2abc\u2af7\u2af8\u2af9\u2afa\u29c0\u29c1\ufe64\ufe65\uff1c\uff1e".split(""); +this.relations=[];this.arrows="\u2190\u2191\u2192\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219a\u219b\u219c\u219d\u219e\u219f\u21a0\u21a1\u21a2\u21a3\u21a4\u21a5\u21a6\u21a7\u21a8\u21a9\u21aa\u21ab\u21ac\u21ad\u21ae\u21af\u21b0\u21b1\u21b2\u21b3\u21b4\u21b5\u21b6\u21b7\u21b8\u21b9\u21ba\u21bb\u21c4\u21c5\u21c6\u21c7\u21c8\u21c9\u21ca\u21cd\u21ce\u21cf\u21d0\u21d1\u21d2\u21d3\u21d4\u21d5\u21d6\u21d7\u21d8\u21d9\u21da\u21db\u21dc\u21dd\u21de\u21df\u21e0\u21e1\u21e2\u21e3\u21e4\u21e5\u21e6\u21e7\u21e8\u21e9\u21ea\u21eb\u21ec\u21ed\u21ee\u21ef\u21f0\u21f1\u21f2\u21f3\u21f4\u21f5\u21f6\u21f7\u21f8\u21f9\u21fa\u21fb\u21fc\u21fd\u21fe\u21ff\u2301\u2303\u2304\u2324\u238b\u2794\u2798\u2799\u279a\u279b\u279c\u279d\u279e\u279f\u27a0\u27a1\u27a2\u27a3\u27a4\u27a5\u27a6\u27a7\u27a8\u27a9\u27aa\u27ab\u27ac\u27ad\u27ae\u27af\u27b1\u27b2\u27b3\u27b4\u27b5\u27b6\u27b7\u27b8\u27b9\u27ba\u27bb\u27bc\u27bd\u27be\u27f0\u27f1\u27f2\u27f3\u27f4\u27f5\u27f6\u27f7\u27f8\u27f9\u27fa\u27fb\u27fc\u27fd\u27fe\u27ff\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907\u2908\u2909\u290a\u290b\u290c\u290d\u290e\u290f\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917\u2918\u2919\u291a\u291b\u291c\u291d\u291e\u291f\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927\u2928\u2929\u292a\u292d\u292e\u292f\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937\u2938\u2939\u293a\u293b\u293c\u293d\u293e\u293f\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947\u2948\u2949\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977\u2978\u2979\u297a\u297b\u29b3\u29b4\u29bd\u29ea\u29ec\u29ed\u2a17\u2b00\u2b01\u2b02\u2b03\u2b04\u2b05\u2b06\u2b07\u2b08\u2b09\u2b0a\u2b0b\u2b0c\u2b0d\u2b0e\u2b0f\u2b10\u2b11\u2b30\u2b31\u2b32\u2b33\u2b34\u2b35\u2b36\u2b37\u2b38\u2b39\u2b3a\u2b3b\u2b3c\u2b3d\u2b3e\u2b3f\u2b40\u2b41\u2b42\u2b43\u2b44\u2b45\u2b46\u2b47\u2b48\u2b49\u2b4a\u2b4b\u2b4c\uffe9\uffea\uffeb\uffec\u21bc\u21bd\u21be\u21bf\u21c0\u21c1\u21c2\u21c3\u21cb\u21cc\u294a\u294b\u294c\u294d\u294e\u294f\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957\u2958\u2959\u295a\u295b\u295c\u295d\u295e\u295f\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967\u2968\u2969\u296a\u296b\u296c\u296d\u296e\u296f\u297c\u297d\u297e\u297f".split(""); +this.sumOps="\u2140\u220f\u2210\u2211\u22c0\u22c1\u22c2\u22c3\u2a00\u2a01\u2a02\u2a03\u2a04\u2a05\u2a06\u2a07\u2a08\u2a09\u2a0a\u2a0b\u2afc\u2aff".split("");this.intOps="\u222b\u222c\u222d\u222e\u222f\u2230\u2231\u2232\u2233\u2a0c\u2a0d\u2a0e\u2a0f\u2a10\u2a11\u2a12\u2a13\u2a14\u2a15\u2a16\u2a17\u2a18\u2a19\u2a1a\u2a1b\u2a1c".split("");this.prefixOps=["\u2200","\u2203"];this.digitsNormal="0123456789".split("");this.digitsFullWidth="\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19".split(""); +this.digitsBold="\ud835\udfce \ud835\udfcf \ud835\udfd0 \ud835\udfd1 \ud835\udfd2 \ud835\udfd3 \ud835\udfd4 \ud835\udfd5 \ud835\udfd6 \ud835\udfd7".split(" ");this.digitsDoubleStruck="\ud835\udfd8 \ud835\udfd9 \ud835\udfda \ud835\udfdb \ud835\udfdc \ud835\udfdd \ud835\udfde \ud835\udfdf \ud835\udfe0 \ud835\udfe1".split(" ");this.digitsSansSerif="\ud835\udfe2 \ud835\udfe3 \ud835\udfe4 \ud835\udfe5 \ud835\udfe6 \ud835\udfe7 \ud835\udfe8 \ud835\udfe9 \ud835\udfea \ud835\udfeb".split(" ");this.digitsSansSerifBold= +"\ud835\udfec \ud835\udfed \ud835\udfee \ud835\udfef \ud835\udff0 \ud835\udff1 \ud835\udff2 \ud835\udff3 \ud835\udff4 \ud835\udff5".split(" ");this.digitsMonospace="\ud835\udff6 \ud835\udff7 \ud835\udff8 \ud835\udff9 \ud835\udffa \ud835\udffb \ud835\udffc \ud835\udffd \ud835\udffe \ud835\udfff".split(" ");this.digitsSuperscript="\u00b2\u00b3\u00b9\u2070\u2074\u2075\u2076\u2077\u2078\u2079".split("");this.digitsSubscript="\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089".split("");this.fractions= +"\u00bc\u00bd\u00be\u2150\u2151\u2152\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215a\u215b\u215c\u215d\u215e\u215f\u2189".split("");this.enclosedNumbers="\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468\u2469\u246a\u246b\u246c\u246d\u246e\u246f\u2470\u2471\u2472\u2473\u24ea\u24eb\u24ec\u24ed\u24ee\u24ef\u24f0\u24f1\u24f2\u24f3\u24f4\u24f5\u24f6\u24f7\u24f8\u24f9\u24fa\u24fb\u24fc\u24fd\u24fe\u24ff\u2776\u2777\u2778\u2779\u277a\u277b\u277c\u277d\u277e\u277f\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787\u2788\u2789\u278a\u278b\u278c\u278d\u278e\u278f\u2790\u2791\u2792\u2793\u3248\u3249\u324a\u324b\u324c\u324d\u324e\u324f\u3251\u3252\u3253\u3254\u3255\u3256\u3257\u3258\u3259\u325a\u325b\u325c\u325d\u325e\u325f\u32b1\u32b2\u32b3\u32b4\u32b5\u32b6\u32b7\u32b8\u32b9\u32ba\u32bb\u32bc\u32bd\u32be\u32bf".split(""); +this.fencedNumbers="\u2474\u2475\u2476\u2477\u2478\u2479\u247a\u247b\u247c\u247d\u247e\u247f\u2480\u2481\u2482\u2483\u2484\u2485\u2486\u2487".split("");this.punctuatedNumbers="\u2488 \u2489 \u248a \u248b \u248c \u248d \u248e \u248f \u2490 \u2491 \u2492 \u2493 \u2494 \u2495 \u2496 \u2497 \u2498 \u2499 \u249a \u249b \ud83c\udd00 \ud83c\udd01 \ud83c\udd02 \ud83c\udd03 \ud83c\udd04 \ud83c\udd05 \ud83c\udd06 \ud83c\udd07 \ud83c\udd08 \ud83c\udd09 \ud83c\udd0a".split(" ");this.numbers=this.fractions.concat(this.digitsSuperscript, +this.digitsSubscript,this.enclosedNumbers,this.fencedNumbers,this.punctuatedNumbers);this.trigonometricFunctions="cos cot csc sec sin tan arccos arccot arccsc arcsec arcsin arctan".split(" ");this.hyperbolicFunctions="cosh coth csch sech sinh tanh arcosh arcoth arcsch arsech arsinh artanh arccosh arccoth arccsch arcsech arcsinh arctanh".split(" ");this.algebraicFunctions="deg det dim hom ker Tr tr".split(" ");this.elementaryFunctions="log ln lg exp expt gcd gcd arg im re Pr".split(" ");this.prefixFunctions= +this.trigonometricFunctions.concat(this.hyperbolicFunctions,this.algebraicFunctions,this.elementaryFunctions);this.limitFunctions="inf lim liminf limsup max min sup injlim projlim".split(" ");this.infixFunctions=["mod","rem"];this.symbolSetToSemantic_=[{set:this.generalPunctuations,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.ellipses,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.ELLIPSIS},{set:this.fullStops,type:cvox.SemanticAttr.Type.PUNCTUATION, +role:cvox.SemanticAttr.Role.FULLSTOP},{set:this.dashes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.DASH},{set:this.primes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.PRIME},{set:this.leftFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.OPEN},{set:this.rightFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.CLOSE},{set:this.topFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.TOP},{set:this.bottomFences, +type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.BOTTOM},{set:this.neutralFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.NEUTRAL},{set:this.smallLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER, +role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD}, +{set:this.smallLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SCRIPT},{set:this.capitalLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER, +font:cvox.SemanticAttr.Font.SCRIPT},{set:this.smallLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.capitalLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.smallLatinFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.capitalLatinFraktur, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.smallLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.capitalLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.smallLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER, +font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.capitalLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.smallLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.capitalLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.smallLatinSansSerifBold, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalLatinSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.smallLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.capitalLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER, +role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.smallLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.capitalLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.latinDoubleStruckItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCKITALIC}, +{set:this.smallGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER, +font:cvox.SemanticAttr.Font.BOLD},{set:this.smallGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallGreekSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalGreekSansSerifBold, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.greekDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.hebrewLetters,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.OTHERLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsNormal,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER, +font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsFullWidth,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.BOLD},{set:this.digitsDoubleStruck,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.digitsSansSerif,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER, +font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.digitsSansSerifBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.digitsMonospace,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.numbers,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER},{set:this.additions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.ADDITION}, +{set:this.multiplications,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION},{set:this.subtractions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.SUBTRACTION},{set:this.divisions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.DIVISION},{set:this.prefixOps,type:cvox.SemanticAttr.Type.PREFIXOP,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.equalities,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.EQUALITY},{set:this.inequalities, +type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.INEQUALITY},{set:this.relations,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.arrows,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.ARROW},{set:this.sumOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.SUM},{set:this.intOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.INTEGRAL},{set:this.limitFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.LIMFUNC}, +{set:this.prefixFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.infixFunctions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION}]};goog.addSingletonGetter(cvox.SemanticAttr); +cvox.SemanticAttr.Type={PUNCTUATION:"punctuation",FENCE:"fence",NUMBER:"number",IDENTIFIER:"identifier",TEXT:"text",OPERATOR:"operator",RELATION:"relation",LARGEOP:"largeop",FUNCTION:"function",ACCENT:"accent",FENCED:"fenced",FRACTION:"fraction",PUNCTUATED:"punctuated",RELSEQ:"relseq",MULTIREL:"multirel",INFIXOP:"infixop",PREFIXOP:"prefixop",POSTFIXOP:"postfixop",APPL:"appl",INTEGRAL:"integral",BIGOP:"bigop",SQRT:"sqrt",ROOT:"root",LIMUPPER:"limupper",LIMLOWER:"limlower",LIMBOTH:"limboth",SUBSCRIPT:"subscript", +SUPERSCRIPT:"superscript",UNDERSCORE:"underscore",OVERSCORE:"overscore",TABLE:"table",MULTILINE:"multiline",MATRIX:"matrix",VECTOR:"vector",CASES:"cases",ROW:"row",LINE:"line",CELL:"cell",UNKNOWN:"unknown",EMPTY:"empty"}; +cvox.SemanticAttr.Role={ELLIPSIS:"ellipsis",FULLSTOP:"fullstop",DASH:"dash",PRIME:"prime",VBAR:"vbar",OPENFENCE:"openfence",CLOSEFENCE:"closefence",APPLICATION:"application",OPEN:"open",CLOSE:"close",TOP:"top",BOTTOM:"bottom",NEUTRAL:"neutral",LATINLETTER:"latinletter",GREEKLETTER:"greekletter",OTHERLETTER:"otherletter",INTEGER:"integer",FLOAT:"float",OTHERNUMBER:"othernumber",MULTIACCENT:"multiaccent",OVERACCENT:"overaccent",UNDERACCENT:"underaccent",LEFTRIGHT:"leftright",ABOVEBELOW:"abovebelow", +SEQUENCE:"sequence",ENDPUNCT:"endpunct",STARTPUNCT:"startpunct",NEGATIVE:"negative",NEGATION:"negation",MULTIOP:"multiop",LIMFUNC:"limit function",INFIXFUNC:"infix function",PREFIXFUNC:"prefix function",POSTFIXFUNC:"postfix function",SUM:"sum",INTEGRAL:"integral",ADDITION:"addition",MULTIPLICATION:"multiplication",DIVISION:"division",SUBTRACTION:"subtraction",IMPLICIT:"implicit",EQUALITY:"equality",INEQUALITY:"inequality",ELEMENT:"element",BINREL:"binrel",ARROW:"arrow",MULTILINE:"multiline",MATRIX:"matrix", +VECTOR:"vector",CASES:"cases",TABLE:"table",UNKNOWN:"unknown"};cvox.SemanticAttr.Font={BOLD:"bold",BOLDFRAKTUR:"bold-fraktur",BOLDITALIC:"bold-italic",BOLDSCRIPT:"bold-script",DOUBLESTRUCK:"double-struck",DOUBLESTRUCKITALIC:"double-struck-italic",FRAKTUR:"fraktur",ITALIC:"italic",MONOSPACE:"monospace",NORMAL:"normal",SCRIPT:"script",SANSSERIF:"sans-serif",SANSSERIFITALIC:"sans-serif-italic",SANSSERIFBOLD:"sans-serif-bold",SANSSERIFBOLDITALIC:"sans-serif-bold-italic",UNKNOWN:"unknown"}; +cvox.SemanticAttr.lookupMeaning=function(a){return cvox.SemanticAttr.getInstance().lookupMeaning_(a)};cvox.SemanticAttr.invisibleTimes=function(){return cvox.SemanticAttr.getInstance().invisibleTimes_};cvox.SemanticAttr.invisibleComma=function(){return cvox.SemanticAttr.getInstance().invisibleComma_};cvox.SemanticAttr.functionApplication=function(){return cvox.SemanticAttr.getInstance().functionApplication_}; +cvox.SemanticAttr.isMatchingFenceRole=function(a,b){return a==cvox.SemanticAttr.Role.OPEN&&b==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL&&b==cvox.SemanticAttr.Role.NEUTRAL||a==cvox.SemanticAttr.Role.TOP&&b==cvox.SemanticAttr.Role.BOTTOM};cvox.SemanticAttr.isMatchingFence=function(a,b){return cvox.SemanticAttr.getInstance().isMatchingFence_(a,b)};cvox.SemanticAttr.isOpeningFence=function(a){return a==cvox.SemanticAttr.Role.OPEN||a==cvox.SemanticAttr.Role.NEUTRAL}; +cvox.SemanticAttr.isClosingFence=function(a){return a==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL};cvox.SemanticAttr.isCharacterD=function(a){var b="d \u2146 \uff44 \ud835\udc1d \ud835\udc51 \ud835\udcb9 \ud835\udced \ud835\udd21 \ud835\udd55 \ud835\udd89 \ud835\uddbd \ud835\uddf1 \ud835\ude25 \ud835\ude8d".split(" ");return-1!=b.indexOf(a)}; +cvox.SemanticAttr.prototype.isMatchingFence_=function(a,b){return-1!=this.neutralFences.indexOf(a)?a==b:this.openClosePairs[a]==b||this.topBottomPairs[a]==b}; +cvox.SemanticAttr.prototype.lookupMeaning_=function(a){for(var b=0,c;c=this.symbolSetToSemantic_[b];b++)if(-1!=c.set.indexOf(a))return{role:c.role||cvox.SemanticAttr.Role.UNKNOWN,type:c.type||cvox.SemanticAttr.Type.UNKNOWN,font:c.font||cvox.SemanticAttr.Font.UNKNOWN};return{role:cvox.SemanticAttr.Role.UNKNOWN,type:cvox.SemanticAttr.Type.UNKNOWN,font:cvox.SemanticAttr.Font.UNKNOWN}};cvox.SemanticTree=function(a){this.idCounter_=0;this.mathml=a;this.root=this.parseMathml_(a)};cvox.SemanticTree.Node=function(a){this.id=a;this.mathml=[];this.parent=null;this.type=cvox.SemanticAttr.Type.UNKNOWN;this.role=cvox.SemanticAttr.Role.UNKNOWN;this.font=cvox.SemanticAttr.Font.UNKNOWN;this.childNodes=[];this.textContent="";this.contentNodes=[]}; +cvox.SemanticTree.Node.prototype.querySelectorAll=function(a){for(var b=[],c=0,d;d=this.childNodes[c];c++)b=b.concat(d.querySelectorAll(a));a(this)&&b.unshift(this);return b};cvox.SemanticTree.prototype.xml=function(a){var b=new DOMParser,b=b.parseFromString("<stree></stree>","text/xml");a=this.root.xml(b,a);b.childNodes[0].appendChild(a);return b.childNodes[0]}; +cvox.SemanticTree.Node.prototype.xml=function(a,b){var c=function(c,d){for(var g=d.map(function(c){return c.xml(a,b)}),h=a.createElement(c),k=0,l;l=g[k];k++)h.appendChild(l);return h},d=a.createElement(this.type);b||this.xmlAttributes_(d);d.textContent=this.textContent;0<this.contentNodes.length&&d.appendChild(c("content",this.contentNodes));0<this.childNodes.length&&d.appendChild(c("children",this.childNodes));return d};cvox.SemanticTree.prototype.toString=function(a){var b=new XMLSerializer;return b.serializeToString(this.xml(a))}; +cvox.SemanticTree.prototype.formatXml=function(a){a=this.toString(a);return cvox.SemanticTree.formatXml(a)};cvox.SemanticTree.formatXml=function(a){var b=/(>)(<)(\/*)/g;a=a.replace(b,"$1\r\n$2$3");b=/(>)(.+)(<c)/g;a=a.replace(b,"$1\r\n$2\r\n$3");var c="",d="";a.split("\r\n").forEach(function(a){a.match(/.+<\/\w[^>]*>$/)?c+=d+a+"\r\n":a.match(/^<\/\w/)?d&&(d=d.slice(2),c+=d+a+"\r\n"):a.match(/^<\w[^>]*[^\/]>.*$/)?(c+=d+a+"\r\n",d+=" "):c+=d+a+"\r\n"});return c}; +cvox.SemanticTree.Node.prototype.toString=function(a){var b=new XMLSerializer,c=new DOMParser,c=c.parseFromString("","text/xml");return b.serializeToString(this.xml(c,a))};cvox.SemanticTree.Node.prototype.xmlAttributes_=function(a){a.setAttribute("role",this.role);this.font!=cvox.SemanticAttr.Font.UNKNOWN&&a.setAttribute("font",this.font);a.setAttribute("id",this.id)};cvox.SemanticTree.prototype.createNode_=function(){return new cvox.SemanticTree.Node(this.idCounter_++)}; +cvox.SemanticTree.Node.prototype.updateContent_=function(a){a=a.trim();if(this.textContent!=a){var b=cvox.SemanticAttr.lookupMeaning(a);this.textContent=a;this.role=b.role;this.type=b.type;this.font=b.font}};cvox.SemanticTree.Node.prototype.addMathmlNodes_=function(a){for(var b=0,c;c=a[b];b++)-1==this.mathml.indexOf(c)&&this.mathml.push(c)};cvox.SemanticTree.Node.prototype.appendChild_=function(a){this.childNodes.push(a);this.addMathmlNodes_(a.mathml);a.parent=this}; +cvox.SemanticTree.Node.prototype.appendContentNode_=function(a){a&&(this.contentNodes.push(a),this.addMathmlNodes_(a.mathml),a.parent=this)}; +cvox.SemanticTree.prototype.parseMathml_=function(a){var b=cvox.DomUtil.toArray(a.children);switch(cvox.SemanticUtil.tagName(a)){case "MATH":case "MROW":case "MPADDED":case "MSTYLE":return b=cvox.SemanticUtil.purgeNodes(b),1==b.length?this.parseMathml_(b[0]):this.processRow_(this.parseMathmlChildren_(b));case "MFRAC":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.FRACTION,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]),a.role=cvox.SemanticAttr.Role.DIVISION,a;case "MSUB":case "MSUP":case "MSUBSUP":case "MOVER":case "MUNDER":case "MUNDEROVER":return this.makeLimitNode_(cvox.SemanticUtil.tagName(a), +this.parseMathmlChildren_(b));case "MROOT":return this.makeBranchNode_(cvox.SemanticAttr.Type.ROOT,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]);case "MSQRT":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),this.makeBranchNode_(cvox.SemanticAttr.Type.SQRT,[this.processRow_(b)],[]);case "MTABLE":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.TABLE,this.parseMathmlChildren_(b),[]),cvox.SemanticTree.tableIsMultiline_(a)&&this.tableToMultiline_(a),a;case "MTR":return a= +this.makeBranchNode_(cvox.SemanticAttr.Type.ROW,this.parseMathmlChildren_(b),[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTD":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),a=this.makeBranchNode_(cvox.SemanticAttr.Type.CELL,[this.processRow_(b)],[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTEXT":return a=this.makeLeafNode_(a),a.type=cvox.SemanticAttr.Type.TEXT,a;case "MI":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.IDENTIFIER), +a;case "MN":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.NUMBER),a;case "MO":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.OPERATOR),a;default:return this.makeUnprocessed_(a)}};cvox.SemanticTree.prototype.parseMathmlChildren_=function(a){for(var b=[],c=0,d;d=a[c];c++)b.push(this.parseMathml_(d));return b}; +cvox.SemanticTree.prototype.makeUnprocessed_=function(a){var b=this.createNode_();b.mathml=[a];return b};cvox.SemanticTree.prototype.makeEmptyNode_=function(){var a=this.createNode_();a.type=cvox.SemanticAttr.Type.EMPTY;return a};cvox.SemanticTree.prototype.makeLeafNode_=function(a){var b=this.createNode_();b.mathml=[a];b.updateContent_(a.textContent);b.font=a.getAttribute("mathvariant")||b.font;return b}; +cvox.SemanticTree.prototype.makeBranchNode_=function(a,b,c,d){var e=this.createNode_();d&&e.updateContent_(d);e.type=a;e.childNodes=b;e.contentNodes=c;b.concat(c).forEach(function(a){a.parent=e;e.addMathmlNodes_(a.mathml)});return e};cvox.SemanticTree.prototype.makeImplicitNode_=function(a){if(1==a.length)return a[0];var b=this.createNode_();b.updateContent_(cvox.SemanticAttr.invisibleTimes());a=this.makeInfixNode_(a,b);a.role=cvox.SemanticAttr.Role.IMPLICIT;return a}; +cvox.SemanticTree.prototype.makeInfixNode_=function(a,b){return this.makeBranchNode_(cvox.SemanticAttr.Type.INFIXOP,a,[b],b.textContent)};cvox.SemanticTree.prototype.makeConcatNode_=function(a,b,c){if(0==b.length)return a;var d=b.map(function(a){return a.textContent}).join(" ");a=this.makeBranchNode_(c,[a],b,d);0<b.length&&(a.role=cvox.SemanticAttr.Role.MULTIOP);return a}; +cvox.SemanticTree.prototype.makePrefixNode_=function(a,b){for(var c=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.attrPred_("role","SUBTRACTION")),d=this.makeConcatNode_(a,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);0<c.rel.length;)d=this.makeConcatNode_(d,[c.rel.pop()],cvox.SemanticAttr.Type.PREFIXOP),d.role=cvox.SemanticAttr.Role.NEGATIVE,d=this.makeConcatNode_(d,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);return d}; +cvox.SemanticTree.prototype.makePostfixNode_=function(a,b){return this.makeConcatNode_(a,b,cvox.SemanticAttr.Type.POSTFIXOP)};cvox.SemanticTree.prototype.processRow_=function(a){if(0==a.length)return this.makeEmptyNode_();a=this.getFencesInRow_(a);a=this.processTablesInRow_(a);a=this.getPunctuationInRow_(a);a=this.getFunctionsInRow_(a);return this.processRelationsInRow_(a)}; +cvox.SemanticTree.prototype.processRelationsInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","RELATION")),c=b.rel[0];if(!c)return this.processOperationsInRow_(a);if(1==a.length)return a[0];a=b.comp.map(goog.bind(this.processOperationsInRow_,this));return b.rel.every(function(a){return a.textContent==c.textContent})?this.makeBranchNode_(cvox.SemanticAttr.Type.RELSEQ,a,b.rel,c.textContent):this.makeBranchNode_(cvox.SemanticAttr.Type.MULTIREL,a,b.rel)}; +cvox.SemanticTree.prototype.processOperationsInRow_=function(a){if(0==a.length)return this.makeEmptyNode_();if(1==a.length)return a[0];for(var b=[];0<a.length&&a[0].type==cvox.SemanticAttr.Type.OPERATOR;)b.push(a.shift());if(0==a.length)return this.makePrefixNode_(b.pop(),b);if(1==a.length)return this.makePrefixNode_(a[0],b);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));b=this.makePrefixNode_(this.makeImplicitNode_(a.head),b);return a.div?this.makeOperationsTree_(a.tail, +b,a.div):b}; +cvox.SemanticTree.prototype.makeOperationsTree_=function(a,b,c,d){d=d||[];if(0==a.length)return d.unshift(c),b.type==cvox.SemanticAttr.Type.INFIXOP?(d=this.makePostfixNode_(b.childNodes.pop(),d),b.appendChild_(d),b):this.makePostfixNode_(b,d);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));if(0==a.head.length)return d.push(a.div),this.makeOperationsTree_(a.tail,b,c,d);d=this.makePrefixNode_(this.makeImplicitNode_(a.head),d);b=this.appendOperand_(b,c,d);return a.div? +this.makeOperationsTree_(a.tail,b,a.div,[]):b};cvox.SemanticTree.prototype.appendOperand_=function(a,b,c){return a.type!=cvox.SemanticAttr.Type.INFIXOP?this.makeInfixNode_([a,c],b):this.appendExistingOperator_(a,b,c)?a:b.role==cvox.SemanticAttr.Role.MULTIPLICATION?this.appendMultiplicativeOp_(a,b,c):this.appendAdditiveOp_(a,b,c)}; +cvox.SemanticTree.prototype.appendMultiplicativeOp_=function(a,b,c){for(var d=a,e=a.childNodes[a.childNodes.length-1];e&&e.type==cvox.SemanticAttr.Type.INFIXOP;)d=e,e=d.childNodes[a.childNodes.length-1];b=this.makeInfixNode_([d.childNodes.pop(),c],b);d.appendChild_(b);return a};cvox.SemanticTree.prototype.appendAdditiveOp_=function(a,b,c){return this.makeInfixNode_([a,c],b)}; +cvox.SemanticTree.prototype.appendExistingOperator_=function(a,b,c){if(!a||a.type!=cvox.SemanticAttr.Type.INFIXOP)return!1;if(a.textContent==b.textContent)return a.appendContentNode_(b),a.appendChild_(c),!0;this.appendExistingOperator_(a.childNodes[a.childNodes.length-1],b,c)};cvox.SemanticTree.prototype.getFencesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","FENCE"));var b=a.comp.shift();return this.processFences_(a.rel,a.comp,[],[b])}; +cvox.SemanticTree.prototype.processFences_=function(a,b,c,d){if(0==a.length&&0==c.length)return d[0];var e=cvox.SemanticTree.attrPred_("role","OPEN");if(0==a.length){for(a=d.shift();0<c.length;){if(e(c[0]))b=c.shift(),cvox.SemanticTree.fenceToPunct_(b),a.push(b);else{c=cvox.SemanticTree.sliceNodes_(c,e);var f=c.head.length-1,g=this.processNeutralFences_(c.head,d.slice(0,f));d=d.slice(f);a.push.apply(a,g);c.div&&c.tail.unshift(c.div);c=c.tail}a.push.apply(a,d.shift())}return a}f=c[c.length-1];g=a[0].role; +if(g==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&(!f||a[0].textContent!=f.textContent))return c.push(a.shift()),d.push(b.shift()),this.processFences_(a,b,c,d);if(f&&(g==cvox.SemanticAttr.Role.CLOSE&&f.role==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&a[0].textContent==f.textContent))return e=this.makeHorizontalFencedNode_(c.pop(),a.shift(),d.pop()),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c,d);if(f&&g==cvox.SemanticAttr.Role.CLOSE&&f.role== +cvox.SemanticAttr.Role.NEUTRAL&&c.some(e))return c=cvox.SemanticTree.sliceNodes_(c,e,!0),e=d.pop(),f=d.length-c.tail.length+1,g=this.processNeutralFences_(c.tail,d.slice(f)),d=d.slice(0,f),e=this.makeHorizontalFencedNode_(c.div,a.shift(),d.pop().concat(g,e)),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c.head,d);e=a.shift();cvox.SemanticTree.fenceToPunct_(e);d.push(d.pop().concat([e],b.shift()));return this.processFences_(a,b,c,d)}; +cvox.SemanticTree.prototype.processNeutralFences_=function(a,b){if(0==a.length)return a;if(1==a.length)return cvox.SemanticTree.fenceToPunct_(a[0]),a;var c=a.shift(),d=cvox.SemanticTree.sliceNodes_(a,function(a){return a.textContent==c.textContent});if(!d.div){cvox.SemanticTree.fenceToPunct_(c);var e=b.shift();e.unshift(c);return e.concat(this.processNeutralFences_(a,b))}var f=this.combineFencedContent_(c,d.div,d.head,b);return 0<d.tail.length?(e=f.shift(),d=this.processNeutralFences_(d.tail,f),e.concat(d)): +f[0]};cvox.SemanticTree.prototype.combineFencedContent_=function(a,b,c,d){if(0==c.length)return a=this.makeHorizontalFencedNode_(a,b,d.shift()),d.unshift(a),d;var e=d.shift(),f=c.length-1,g=d.slice(0,f);d=d.slice(f);f=d.shift();c=this.processNeutralFences_(c,g);e.push.apply(e,c);e.push.apply(e,f);a=this.makeHorizontalFencedNode_(a,b,e);0<d.length?d[0].unshift(a):d=[[a]];return d}; +cvox.SemanticTree.fenceToPunct_=function(a){a.type=cvox.SemanticAttr.Type.PUNCTUATION;switch(a.role){case cvox.SemanticAttr.Role.NEUTRAL:a.role=cvox.SemanticAttr.Role.VBAR;break;case cvox.SemanticAttr.Role.OPEN:a.role=cvox.SemanticAttr.Role.OPENFENCE;break;case cvox.SemanticAttr.Role.CLOSE:a.role=cvox.SemanticAttr.Role.CLOSEFENCE}}; +cvox.SemanticTree.prototype.makeHorizontalFencedNode_=function(a,b,c){c=this.processRow_(c);b=this.makeBranchNode_(cvox.SemanticAttr.Type.FENCED,[c],[a,b]);b.role=a.role==cvox.SemanticAttr.Role.OPEN?cvox.SemanticAttr.Role.LEFTRIGHT:a.role;return b}; +cvox.SemanticTree.prototype.getPunctuationInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,function(a){return cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)&&!cvox.SemanticTree.attrPred_("role","ELLIPSIS")(a)});if(0==b.rel.length)return a;a=[];var c=b.comp.shift();0<c.length&&a.push(this.processRow_(c));for(var d=0;0<b.comp.length;)a.push(b.rel[d++]),c=b.comp.shift(),0<c.length&&a.push(this.processRow_(c));return[this.makePunctuatedNode_(a,b.rel)]}; +cvox.SemanticTree.prototype.makePunctuatedNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.PUNCTUATED,a,b);c.role=1==b.length&&a[0].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.STARTPUNCT:1==b.length&&a[a.length-1].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.ENDPUNCT:cvox.SemanticAttr.Role.SEQUENCE;return c}; +cvox.SemanticTree.prototype.makeLimitNode_=function(a,b){var c=b[0],d=cvox.SemanticTree.attrPred_("type","FUNCTION")(c),d=cvox.SemanticTree.attrPred_("type","LARGEOP")(c)||cvox.SemanticTree.attrPred_("type","LIMBOTH")(c)||cvox.SemanticTree.attrPred_("type","LIMLOWER")(c)||cvox.SemanticTree.attrPred_("type","LIMUPPER")(c)||d&&cvox.SemanticTree.attrPred_("role","LIMFUNC")(c),e=cvox.SemanticAttr.Type.UNKNOWN;if(d)switch(a){case "MSUB":case "MUNDER":e=cvox.SemanticAttr.Type.LIMLOWER;break;case "MSUP":case "MOVER":e= +cvox.SemanticAttr.Type.LIMUPPER;break;case "MSUBSUP":case "MUNDEROVER":e=cvox.SemanticAttr.Type.LIMBOTH}else switch(a){case "MSUB":e=cvox.SemanticAttr.Type.SUBSCRIPT;break;case "MSUP":e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MSUBSUP":d=this.makeBranchNode_(cvox.SemanticAttr.Type.SUBSCRIPT,[c,b[1]],[]);d.role=c.role;b=[d,b[2]];e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MOVER":e=cvox.SemanticAttr.Type.OVERSCORE;break;case "MUNDER":e=cvox.SemanticAttr.Type.UNDERSCORE;break;default:d=this.makeBranchNode_(cvox.SemanticAttr.Type.UNDERSCORE, +[c,b[1]],[]),d.role=c.role,b=[d,b[2]],e=cvox.SemanticAttr.Type.OVERSCORE}d=this.makeBranchNode_(e,b,[]);d.role=c.role;return d};cvox.SemanticTree.prototype.getFunctionsInRow_=function(a,b){b=b||[];if(0==a.length)return b;var c=a.shift(),d=cvox.SemanticTree.classifyFunction_(c,a);if(!d)return b.push(c),this.getFunctionsInRow_(a,b);var e=this.getFunctionsInRow_(a,[]),c=this.getFunctionArgs_(c,e,d);return b.concat(c)}; +cvox.SemanticTree.classifyFunction_=function(a,b){if(a.type==cvox.SemanticAttr.Type.APPL||a.type==cvox.SemanticAttr.Type.BIGOP||a.type==cvox.SemanticAttr.Type.INTEGRAL)return"";if(b[0]&&b[0].textContent==cvox.SemanticAttr.functionApplication())return b.shift(),cvox.SemanticTree.propagatePrefixFunc_(a),"prefix";switch(a.role){case cvox.SemanticAttr.Role.INTEGRAL:return"integral";case cvox.SemanticAttr.Role.SUM:return"bigop";case cvox.SemanticAttr.Role.PREFIXFUNC:case cvox.SemanticAttr.Role.LIMFUNC:return"prefix"; +default:if(a.type==cvox.SemanticAttr.Type.IDENTIFIER)return"simple"}return""};cvox.SemanticTree.propagatePrefixFunc_=function(a){a&&(a.role=cvox.SemanticAttr.Role.PREFIXFUNC,cvox.SemanticTree.propagatePrefixFunc_(a.childNodes[0]))}; +cvox.SemanticTree.prototype.getFunctionArgs_=function(a,b,c){switch(c){case "integral":return b=this.getIntegralArgs_(b),c=this.processRow_(b.integrand),a=this.makeIntegralNode_(a,c,b.intvar),b.rest.unshift(a),b.rest;case "prefix":if(b[0]&&b[0].type==cvox.SemanticAttr.Type.FENCED)return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;case "bigop":b=cvox.SemanticTree.sliceNodes_(b,cvox.SemanticTree.prefixFunctionBoundary_);var d=this.processRow_(b.head);a="prefix"==c?this.makeFunctionNode_(a, +d):this.makeBigOpNode_(a,d);b.div&&b.tail.unshift(b.div);b.tail.unshift(a);return b.tail;case "simple":if(0==b.length)return[a];c=b[0];if(c.type==cvox.SemanticAttr.Type.FENCED&&c.role!=cvox.SemanticAttr.Role.NEUTRAL&&this.simpleFunctionHeuristic_(c))return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;b.unshift(a);return b}}; +cvox.SemanticTree.prototype.getIntegralArgs_=function(a,b){b=b||[];if(0==a.length)return{integrand:b,intvar:null,rest:a};var c=a[0];if(cvox.SemanticTree.generalFunctionBoundary_(c))return{integrand:b,intvar:null,rest:a};if(cvox.SemanticTree.integralDxBoundarySingle_(c))return{integrand:b,intvar:c,rest:a.slice(1)};if(a[1]&&cvox.SemanticTree.integralDxBoundary_(c,a[1])){var d=this.createNode_();d.updateContent_(cvox.SemanticAttr.invisibleComma());c=this.makePunctuatedNode_([c,d,a[1]],[d]);c.role=cvox.SemanticAttr.Role.INTEGRAL; +return{integrand:b,intvar:c,rest:a.slice(2)}}b.push(a.shift());return this.getIntegralArgs_(a,b)};cvox.SemanticTree.prototype.makeFunctionNode_=function(a,b){var c=this.createNode_();c.updateContent_(cvox.SemanticAttr.functionApplication());c.type=cvox.SemanticAttr.Type.PUNCTUATION;c.role=cvox.SemanticAttr.Role.APPLICATION;c=this.makeBranchNode_(cvox.SemanticAttr.Type.APPL,[a,b],[c]);c.role=a.role;return c}; +cvox.SemanticTree.prototype.makeBigOpNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.BIGOP,[a,b],[]);c.role=a.role;return c};cvox.SemanticTree.prototype.makeIntegralNode_=function(a,b,c){b=b||this.makeEmptyNode_();c=c||this.makeEmptyNode_();b=this.makeBranchNode_(cvox.SemanticAttr.Type.INTEGRAL,[a,b,c],[]);b.role=a.role;return b}; +cvox.SemanticTree.prototype.simpleFunctionHeuristic_=function(a){a=a.childNodes;if(0==a.length)return!0;if(1<a.length)return!1;a=a[0];return a.type!=cvox.SemanticAttr.Type.INFIXOP||a.role==cvox.SemanticAttr.Role.IMPLICIT&&!a.childNodes.some(cvox.SemanticTree.attrPred_("type","INFIXOP"))?!0:!1};cvox.SemanticTree.prefixFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","OPERATOR")(a)||cvox.SemanticTree.generalFunctionBoundary_(a)}; +cvox.SemanticTree.integralDxBoundary_=function(a,b){return!!b&&cvox.SemanticTree.attrPred_("type","IDENTIFIER")(b)&&cvox.SemanticAttr.isCharacterD(a.textContent)};cvox.SemanticTree.integralDxBoundarySingle_=function(a){if(cvox.SemanticTree.attrPred_("type","IDENTIFIER")(a)){var b=a.textContent[0];return b&&a.textContent[1]&&cvox.SemanticAttr.isCharacterD(b)}return!1}; +cvox.SemanticTree.generalFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","RELATION")(a)||cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)}; +cvox.SemanticTree.prototype.processTablesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.tableIsMatrixOrVector_);for(var b=[],c=0,d;d=a.rel[c];c++)b=b.concat(a.comp.shift()),b.push(this.tableToMatrixOrVector_(d));b=b.concat(a.comp.shift());a=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.isTableOrMultiline_);b=[];for(c=0;d=a.rel[c];c++){var e=a.comp.shift();cvox.SemanticTree.tableIsCases_(d,e)&&this.tableToCases_(d,e.pop());b=b.concat(e);b.push(d)}return b.concat(a.comp.shift())}; +cvox.SemanticTree.isTableOrMultiline_=function(a){return!!a&&(cvox.SemanticTree.attrPred_("type","TABLE")(a)||cvox.SemanticTree.attrPred_("type","MULTILINE")(a))};cvox.SemanticTree.tableIsMatrixOrVector_=function(a){return!!a&&cvox.SemanticTree.attrPred_("type","FENCED")(a)&&cvox.SemanticTree.attrPred_("role","LEFTRIGHT")(a)&&1==a.childNodes.length&&cvox.SemanticTree.isTableOrMultiline_(a.childNodes[0])}; +cvox.SemanticTree.prototype.tableToMatrixOrVector_=function(a){var b=a.childNodes[0],c=cvox.SemanticTree.attrPred_("type","MULTILINE")(b)?"VECTOR":"MATRIX";b.type=cvox.SemanticAttr.Type[c];a.contentNodes.forEach(goog.bind(b.appendContentNode_,b));a=0;for(var d;d=b.childNodes[a];a++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role[c]);return b};cvox.SemanticTree.tableIsCases_=function(a,b){return 0<b.length&&cvox.SemanticTree.attrPred_("role","OPENFENCE")(b[b.length-1])}; +cvox.SemanticTree.prototype.tableToCases_=function(a,b){for(var c=0,d;d=a.childNodes[c];c++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role.CASES);a.type=cvox.SemanticAttr.Type.CASES;a.appendContentNode_(b);return a};cvox.SemanticTree.tableIsMultiline_=function(a){return a.childNodes.every(function(a){a=a.childNodes.length;return 1>=a})}; +cvox.SemanticTree.prototype.tableToMultiline_=function(a){a.type=cvox.SemanticAttr.Type.MULTILINE;for(var b=0,c;c=a.childNodes[b];b++)cvox.SemanticTree.rowToLine_(c,cvox.SemanticAttr.Role.MULTILINE)};cvox.SemanticTree.rowToLine_=function(a,b){b=b||cvox.SemanticAttr.Role.UNKNOWN;cvox.SemanticTree.attrPred_("type","ROW")(a)&&1==a.childNodes.length&&cvox.SemanticTree.attrPred_("type","CELL")(a.childNodes[0])&&(a.type=cvox.SemanticAttr.Type.LINE,a.role=b,a.childNodes=a.childNodes[0].childNodes)}; +cvox.SemanticTree.assignRoleToRow_=function(a,b){if(cvox.SemanticTree.attrPred_("type","LINE")(a))a.role=b;else if(cvox.SemanticTree.attrPred_("type","ROW")(a)){a.role=b;var c=cvox.SemanticTree.attrPred_("type","CELL");a.childNodes.forEach(function(a){c(a)&&(a.role=b)})}}; +cvox.SemanticTree.sliceNodes_=function(a,b,c){c&&a.reverse();for(var d=[],e=0,f;f=a[e];e++){if(b(f))return c?{head:a.slice(e+1).reverse(),div:f,tail:d.reverse()}:{head:d,div:f,tail:a.slice(e+1)};d.push(f)}return c?{head:[],div:null,tail:d.reverse()}:{head:d,div:null,tail:[]}};cvox.SemanticTree.partitionNodes_=function(a,b){var c=a,d=[],e=[];do{var f=cvox.SemanticTree.sliceNodes_(c,b);e.push(f.head);d.push(f.div);c=f.tail}while(f.div);d.pop();return{rel:d,comp:e}}; +cvox.SemanticTree.attrPred_=function(a,b){return function(c){var d;o:{switch(a){case "type":d=cvox.SemanticAttr.Type[b];break o;case "role":d=cvox.SemanticAttr.Role[b];break o;case "font":d=cvox.SemanticAttr.Font[b];break o}d=void 0}return c[a]==d}};cvox.TraverseMath=function(){this.activeNode=this.activeMath=null;this.allTexs_={};this.allMathjaxs_={};this.activeMathmlHost=null;this.domain="default";this.style="short";cvox.ChromeVox.mathJax&&(this.initializeMathjaxs(),this.initializeAltMaths())};goog.addSingletonGetter(cvox.TraverseMath);cvox.TraverseMath.setSemantic_=!1;cvox.TraverseMath.toggleSemantic=function(){return cvox.TraverseMath.setSemantic_=!cvox.TraverseMath.setSemantic_}; +cvox.TraverseMath.prototype.initialize=function(a){if(cvox.DomUtil.isMathImg(a)){if(!a.hasAttribute("cvoxid"))return;a=a.getAttribute("cvoxid");a=this.allTexs_[a]}cvox.DomUtil.isMathJax(a)&&(this.activeMathmlHost=this.allMathjaxs_[a.getAttribute("id")]);this.activeMath=this.activeMathmlHost||a;(this.activeNode=this.activeMathmlHost||a)&&cvox.TraverseMath.setSemantic_&&this.activeNode.nodeType==Node.ELEMENT_NODE&&(this.activeNode=(new cvox.SemanticTree(this.activeNode)).xml())}; +cvox.TraverseMath.prototype.addMathjax=function(a,b){var c=cvox.DomUtil.getMathSpanId(b);c?this.allMathjaxs_[c]=a:this.redoMathjaxs(a,b)};cvox.TraverseMath.prototype.redoMathjaxs=function(a,b){var c=goog.bind(function(){this.addMathjax(a,b)},this);setTimeout(c,500)}; +cvox.TraverseMath.prototype.initializeMathjaxs=function(){var a=goog.bind(function(a,c){this.addMathjax(a,c)},this);cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.getAllJax(a),cvox.ChromeVox.mathJax.registerSignal(a,"New Math"))})}; +cvox.TraverseMath.prototype.initializeAltMaths=function(){if(document.querySelector(cvox.DomUtil.altMathQuerySelector("tex")+", "+cvox.DomUtil.altMathQuerySelector("asciimath"))){var a=goog.bind(function(a,c){this.allTexs_[c]=a},this);cvox.ChromeVox.mathJax.injectScripts();cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.configMediaWiki(),cvox.ChromeVox.mathJax.getAllTexs(a),cvox.ChromeVox.mathJax.getAllAsciiMaths(a))})}}; +cvox.TraverseMath.prototype.nextSibling=function(a){if(!this.activeNode||!this.activeMath)return null;var b=this.activeNode,b=a?b.previousSibling:b.nextSibling;return b?this.activeNode=b:null};cvox.TraverseMath.prototype.nextParentChild=function(a){if(!this.activeNode||!this.activeMath||this.activeNode==this.activeMath&&a)return null;var b=this.activeNode,b=a?b.parentNode:b.firstChild;return b?this.activeNode=b:null}; +cvox.TraverseMath.prototype.getAttachedActiveNode=function(){var a=this.activeNode;if(!a||a.nodeType!=Node.ELEMENT_NODE)return null;a=a.getAttribute("spanID");return document.getElementById(a)};cvox.MathUtil={};cvox.MathUtil.isMathmlNodeOfClass_=function(a,b){return-1!=b.indexOf(a.tagName.toUpperCase())};cvox.MathUtil.isMathjaxNodeOfClass_=function(a,b){if("SPAN"==a.tagName){var c=a.className.split(" ");return c.some(function(a){return-1!=b.indexOf(a.toUpperCase())})}return!1};cvox.MathUtil.isMathNodeOfClass_=function(a,b){return a.nodeType==Node.ELEMENT_NODE&&(cvox.MathUtil.isMathmlNodeOfClass_(a,b)||cvox.MathUtil.isMathjaxNodeOfClass_(a,b))};cvox.MathUtil.TOKEN_LIST="MI MN MO MTEXT MSPACE MS".split(" "); +cvox.MathUtil.isToken=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TOKEN_LIST)};cvox.MathUtil.LAYOUT_LIST="MROW MFRAC MSQRT MROOT MSTYLE MERROR MPADDED MPHANTOM MFENCED MENCLOSE".split(" ");cvox.MathUtil.isLayout=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.LAYOUT_LIST)};cvox.MathUtil.SCRIPT_LIST="MSUB MSUP MSUBSUP MUNDER MOVER MUNDEROVER MMULTISCRIPTS MPRESCRIPTS".split(" "); +cvox.MathUtil.isScript=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.SCRIPT_LIST)};cvox.MathUtil.TABLES_LIST="MTABLE MLABELEDTR MTR MTD MALIGNGROUP MALIGNMARK".split(" ");cvox.MathUtil.isTables=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TABLES_LIST)};cvox.MathUtil.ELEMENTARY_LIST="MSTACK MLONGDIV MSGROUP MSROW MSCARRIES MSCARRY MSLINE".split(" ");cvox.MathUtil.isElementary=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.ELEMENTARY_LIST)}; +cvox.MathUtil.MATHML_TAG_LIST=[cvox.MathUtil.TOKEN_LIST,cvox.MathUtil.LAYOUT_LIST,cvox.MathUtil.SCRIPT_LIST,cvox.MathUtil.TABLES_LIST,cvox.MathUtil.ELEMENTARY_LIST].reduce(function(a,b){return a.concat(b)});cvox.MathUtil.isMathmlTag=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.MATHML_TAG_LIST)};cvox.MathUtil.WHITESPACE_LIST=["MSROW","MROW","MSPACE","MPHANTOM","MPADDED"];cvox.MathUtil.isWhitespace=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.WHITESPACE_LIST)}; +cvox.MathUtil.isNotWhitespace=function(a){return cvox.MathUtil.isMathmlTag(a)&&!cvox.MathUtil.isWhitespace(a)};cvox.MathUtil.union=function(a,b){return a.concat(b.filter(function(b){return 0>a.indexOf(b)}))};cvox.SpeechRule=function(a,b,c,d){this.name=a;this.dynamicCstr=b;this.precondition=c;this.action=d};cvox.SpeechRule.prototype.toString=function(){var a=[],b;for(b in this.dynamicCstr)a.push(this.dynamicCstr[b]);return this.name+" | "+a.join(".")+" | "+this.precondition.toString()+" ==> "+this.action.toString()};cvox.SpeechRule.Type={NODE:"NODE",MULTI:"MULTI",TEXT:"TEXT",PERSONALITY:"PERSONALITY"}; +cvox.SpeechRule.Type.fromString=function(a){switch(a){case "[n]":return cvox.SpeechRule.Type.NODE;case "[m]":return cvox.SpeechRule.Type.MULTI;case "[t]":return cvox.SpeechRule.Type.TEXT;case "[p]":return cvox.SpeechRule.Type.PERSONALITY;default:throw"Parse error: "+a;}}; +cvox.SpeechRule.Type.toString=function(a){switch(a){case cvox.SpeechRule.Type.NODE:return"[n]";case cvox.SpeechRule.Type.MULTI:return"[m]";case cvox.SpeechRule.Type.TEXT:return"[t]";case cvox.SpeechRule.Type.PERSONALITY:return"[p]";default:throw"Unknown type error: "+a;}};cvox.SpeechRule.Component=function(a){this.type=a.type;this.content=a.content}; +cvox.SpeechRule.Component.fromString=function(a){var b={};b.type=cvox.SpeechRule.Type.fromString(a.substring(0,3));a=a.slice(3).trimLeft();if(!a)throw new cvox.SpeechRule.OutputError("Missing content.");switch(b.type){case cvox.SpeechRule.Type.TEXT:if('"'==a[0]){var c=cvox.SpeechRule.splitString_(a,"\\(")[0].trim();if('"'!=c.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid string syntax.");b.content=c;a=a.slice(c.length).trim();-1==a.indexOf("(")&&(a="");break}case cvox.SpeechRule.Type.NODE:case cvox.SpeechRule.Type.MULTI:c= +a.indexOf(" (");if(-1==c){b.content=a.trim();a="";break}b.content=a.substring(0,c).trim();a=a.slice(c).trimLeft()}b=new cvox.SpeechRule.Component(b);a&&b.addAttributes(a);return b};cvox.SpeechRule.Component.prototype.toString=function(){var a="",a=a+cvox.SpeechRule.Type.toString(this.type),a=a+(this.content?" "+this.content:""),b=this.getAttributes();0<b.length&&(a+=" ("+b.join(", ")+")");return a}; +cvox.SpeechRule.Component.prototype.addAttribute=function(a){var b=a.indexOf(":");-1==b?this[a.trim()]="true":this[a.substring(0,b).trim()]=a.slice(b+1).trim()};cvox.SpeechRule.Component.prototype.addAttributes=function(a){if("("!=a[0]||")"!=a.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid attribute expression: "+a);a=cvox.SpeechRule.splitString_(a.slice(1,-1),",");for(var b=0;b<a.length;b++)this.addAttribute(a[b])}; +cvox.SpeechRule.Component.prototype.getAttributes=function(){var a=[],b;for(b in this)"content"!=b&&"type"!=b&&"function"!=typeof this[b]&&a.push(b+":"+this[b]);return a};cvox.SpeechRule.Action=function(a){this.components=a};cvox.SpeechRule.Action.fromString=function(a){a=cvox.SpeechRule.splitString_(a,";").filter(function(a){return a.match(/\S/)}).map(function(a){return a.trim()});for(var b=[],c=0;c<a.length;c++){var d=cvox.SpeechRule.Component.fromString(a[c]);d&&b.push(d)}return new cvox.SpeechRule.Action(b)}; +cvox.SpeechRule.Action.prototype.toString=function(){var a=this.components.map(function(a){return a.toString()});return a.join("; ")};cvox.SpeechRule.Precondition=function(a,b){this.query=a;this.constraints=b||[]};cvox.SpeechRule.Precondition.prototype.toString=function(){var a=this.constraints.join(", ");return this.query+", "+a}; +cvox.SpeechRule.splitString_=function(a,b){for(var c=[],d="";""!=a;){var e=a.search(b);if(-1==e){if(0!=(a.match(/"/g)||[]).length%2)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);c.push(d+a);a=d=""}else if(0==(a.substring(0,e).match(/"/g)||[]).length%2)c.push(d+a.substring(0,e)),d="",a=a.substring(e+1);else{var f=a.substring(e).search('"');if(-1==f)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);d+=a.substring(0,e+f+1);a=a.substring(e+f+1)}}d&& +c.push(d);return c};cvox.SpeechRule.DynamicCstrAttrib={STYLE:"style"};cvox.SpeechRule.OutputError=function(a){this.name="RuleError";this.message=a||""};goog.inherits(cvox.SpeechRule.OutputError,Error);cvox.SpeechRuleFunctions=function(){};cvox.SpeechRuleFunctions.Store_=function(a,b){this.prefix_=a;this.store_=b};cvox.SpeechRuleFunctions.Store_.prototype.add=function(a,b){this.checkCustomFunctionSyntax_(a)&&(this.store_[a]=b)};cvox.SpeechRuleFunctions.Store_.prototype.lookup=function(a){return this.store_[a]};cvox.SpeechRuleFunctions.CustomQueries=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CQF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomQueries,cvox.SpeechRuleFunctions.Store_); +cvox.SpeechRuleFunctions.CustomStrings=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CSF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomStrings,cvox.SpeechRuleFunctions.Store_);cvox.SpeechRuleFunctions.ContextFunctions=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CTXF",a)};goog.inherits(cvox.SpeechRuleFunctions.ContextFunctions,cvox.SpeechRuleFunctions.Store_); +cvox.SpeechRuleFunctions.Store_.prototype.checkCustomFunctionSyntax_=function(a){var b=RegExp("^"+this.prefix_);return a.match(b)?!0:(console.log("FunctionError: Invalid function name. Expected prefix"+this.prefix_),!1)};cvox.BaseRuleStore=function(){this.customQueries=new cvox.SpeechRuleFunctions.CustomQueries;this.customStrings=new cvox.SpeechRuleFunctions.CustomStrings;this.contextFunctions=new cvox.SpeechRuleFunctions.ContextFunctions;this.speechRules_=[];this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[]}; +cvox.BaseRuleStore.prototype.lookupRule=function(a,b){if(!a||a.nodeType!=Node.ELEMENT_NODE&&a.nodeType!=Node.TEXT_NODE)return null;var c=this.speechRules_.filter(goog.bind(function(c){return this.testDynamicConstraints(b,c)&&this.testPrecondition_(a,c)},this));return 0<c.length?this.pickMostConstraint_(b,c):null}; +cvox.BaseRuleStore.prototype.defineRule=function(a,b,c,d,e){try{var f=cvox.SpeechRule.Action.fromString(c),g=Array.prototype.slice.call(arguments,4),h=new cvox.SpeechRule.Precondition(d,g),g={};g[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;var k=new cvox.SpeechRule(a,g,h,f)}catch(l){if("RuleError"==l.name)return console.log("Rule Error ",d,"("+b+"):",l.message),null;throw l;}this.addRule(k);return k};cvox.BaseRuleStore.prototype.addRule=function(a){this.speechRules_.unshift(a)}; +cvox.BaseRuleStore.prototype.deleteRule=function(a){a=this.speechRules_.indexOf(a);-1!=a&&this.speechRules_.splice(a,1)};cvox.BaseRuleStore.prototype.findRule=function(a){for(var b=0,c;c=this.speechRules_[b];b++)if(a(c))return c;return null};cvox.BaseRuleStore.prototype.findAllRules=function(a){return this.speechRules_.filter(a)};cvox.BaseRuleStore.prototype.evaluateDefault=function(a){return[new cvox.NavDescription({text:a.textContent})]}; +cvox.BaseRuleStore.prototype.removeDuplicates=function(a){for(var b=this.speechRules_.length-1,c;c=this.speechRules_[b];b--)c!=a&&cvox.BaseRuleStore.compareDynamicConstraints_(c.dynamicCstr,a.dynamicCstr)&&cvox.BaseRuleStore.comparePreconditions_(c,a)&&this.speechRules_.splice(b,1)};cvox.BaseRuleStore.prototype.applyCustomQuery=function(a,b){var c=this.customQueries.lookup(b);return c?c(a):null}; +cvox.BaseRuleStore.prototype.applySelector=function(a,b){var c=this.applyCustomQuery(a,b);return c||cvox.XpathUtil.evalXPath(b,a)};cvox.BaseRuleStore.prototype.applyQuery=function(a,b){var c=this.applySelector(a,b);return 0<c.length?c[0]:null};cvox.BaseRuleStore.prototype.applyConstraint=function(a,b){var c=this.applyQuery(a,b);return!!c||cvox.XpathUtil.evaluateBoolean(b,a)}; +cvox.BaseRuleStore.prototype.testDynamicConstraints=function(a,b){var c=Object.keys(a);return c.every(function(c){return a[c]==b.dynamicCstr[c]||"default"==b.dynamicCstr[c]})};cvox.BaseRuleStore.prototype.getDynamicConstraintValues=function(){for(var a={},b=0,c;c=this.speechRules_[b];b++)for(var d in c.dynamicCstr){var e=[c.dynamicCstr[d]];a[d]=a[d]?cvox.MathUtil.union(a[d],e):e}return a}; +cvox.BaseRuleStore.prototype.countMatchingDynamicConstraintValues_=function(a,b){for(var c=0,d=0,e;e=this.dynamicCstrAttribs[d];d++)if(a[e]==b.dynamicCstr[e])c++;else break;return c};cvox.BaseRuleStore.prototype.pickMostConstraint_=function(a,b){b.sort(goog.bind(function(b,d){var e=this.countMatchingDynamicConstraintValues_(a,b),f=this.countMatchingDynamicConstraintValues_(a,d);return e>f?-1:f>e?1:d.precondition.constraints.length-b.precondition.constraints.length},this));return b[0]}; +cvox.BaseRuleStore.prototype.testPrecondition_=function(a,b){var c=b.precondition;return this.applyQuery(a,c.query)===a&&c.constraints.every(goog.bind(function(b){return this.applyConstraint(a,b)},this))};cvox.BaseRuleStore.compareDynamicConstraints_=function(a,b){if(Object.keys(a).length!=Object.keys(b).length)return!1;for(var c in a)if(!b[c]||a[c]!==b[c])return!1;return!0}; +cvox.BaseRuleStore.compareStaticConstraints_=function(a,b){if(a.length!=b.length)return!1;for(var c=0,d;d=a[c];c++)if(-1==b.indexOf(d))return!1;return!0};cvox.BaseRuleStore.comparePreconditions_=function(a,b){var c=a.precondition,d=b.precondition;return c.query!=d.query?!1:cvox.BaseRuleStore.compareStaticConstraints_(c.constraints,d.constraints)};cvox.MathStore=function(){cvox.BaseRuleStore.call(this);this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN,cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[cvox.AbstractTts.PITCH,cvox.AbstractTts.RATE]};goog.inherits(cvox.MathStore,cvox.BaseRuleStore);cvox.SpeechRule.DynamicCstrAttrib.DOMAIN="domain"; +cvox.MathStore.prototype.defineRule=function(a,b,c,d,e){var f=this.parseDynamicConstraint(b),g=Array.prototype.slice.call(arguments,4),g=cvox.MathStore.superClass_.defineRule.apply(this,[a,f[cvox.SpeechRule.DynamicCstrAttrib.STYLE],c,d].concat(g));g.dynamicCstr=f;this.removeDuplicates(g);return g}; +cvox.MathStore.prototype.parseDynamicConstraint=function(a){var b=a.split(".");if(!b[0]||!b[1])throw new cvox.SpeechRule.OutputError("Invalid domain assignment:"+a);return cvox.MathStore.createDynamicConstraint(b[0],b[1])};cvox.MathStore.createDynamicConstraint=function(a,b){var c={};c[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN]=a;c[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;return c}; +cvox.MathStore.prototype.defineRuleAlias=function(a,b,c){var d=this.findRule(function(b){return b.name==a});if(!d)throw new cvox.SpeechRule.OutputError("Rule with named "+a+" does not exist.");this.addAlias_(d,b,Array.prototype.slice.call(arguments,2))};cvox.MathStore.prototype.addAlias_=function(a,b,c){b=new cvox.SpeechRule.Precondition(b,c);b=new cvox.SpeechRule(a.name,a.dynamicCstr,b,a.action);b.name=a.name;this.addRule(b)};cvox.MathStore.prototype.evaluateDefault=function(a){return this.evaluateString_(a.textContent)}; +cvox.MathStore.prototype.evaluateString_=function(a){var b=[];if(a.match(/^\s+$/))return b;a=cvox.MathStore.removeEmpty_(a.replace(/\s/g," ").split(" "));for(var c=0,d;d=a[c];c++)if(1==d.length)b.push(this.evaluate_(d));else if(d.match(/^[a-zA-Z]+$/))b.push(this.evaluate_(d));else for(;d;){var e=d.match(/^\d+/),f=d.match(/^[a-zA-Z]+/);e?(b.push(this.evaluate_(e[0])),d=d.substring(e[0].length)):f?(b.push(this.evaluate_(f[0])),d=d.substring(f[0].length)):(e=d[0],e=e.charCodeAt(0),55296<=e&&56319>=e&& +1<d.length&&!isNaN(d.charCodeAt(1))?(b.push(this.evaluate_(d.slice(0,2))),d=d.substring(2)):(b.push(this.evaluate_(d[0])),d=d.substring(1)))}return b};cvox.MathStore.prototype.evaluate_=function(a){return cvox.ChromeVox.host.mathMap?cvox.ChromeVox.host.mathMap.evaluate(a,cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style):new cvox.NavMathDescription({text:a,domain:cvox.TraverseMath.getInstance().domain,style:cvox.TraverseMath.getInstance().style})}; +cvox.MathStore.removeEmpty_=function(a){return a.filter(function(a){return a})};cvox.MathmlStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathmlStore,cvox.MathStore);goog.addSingletonGetter(cvox.MathmlStore);cvox.MathmlStore.prototype.defineDefaultMathmlRule=function(a,b){this.defineRule(a,"default.default",b,"self::mathml:"+a)};cvox.SpeechRuleEngine=function(){this.activeStore_=null;this.dynamicCstr={};this.dynamicCstr[cvox.SpeechRule.DynamicCstrAttrib.STYLE]="short"};goog.addSingletonGetter(cvox.SpeechRuleEngine);cvox.SpeechRuleEngine.prototype.parameterize=function(a){try{a.initialize()}catch(b){if("StoreError"==b.name)console.log("Store Error:",b.message);else throw b;}this.activeStore_=a};cvox.SpeechRuleEngine.prototype.setDynamicConstraint=function(a){a&&(this.dynamicCstr=a)}; +cvox.SpeechRuleEngine.prototype.constructString=function(a,b){if(!b)return"";if('"'==b.charAt(0))return b.slice(1,-1);var c=this.activeStore_.customStrings.lookup(b);return c?c(a):cvox.XpathUtil.evaluateString(b,a)};cvox.SpeechRuleEngine.prototype.evaluateNode=function(a){return a?this.evaluateTree_(a):[]}; +cvox.SpeechRuleEngine.prototype.evaluateTree_=function(a){var b=this.activeStore_.lookupRule(a,this.dynamicCstr);if(!b)return this.activeStore_.evaluateDefault(a);for(var b=b.action.components,c=[],d=0,e;e=b[d];d++){var f=[],g=e.content||"";switch(e.type){case cvox.SpeechRule.Type.NODE:(g=this.activeStore_.applyQuery(a,g))&&(f=this.evaluateTree_(g));break;case cvox.SpeechRule.Type.MULTI:g=this.activeStore_.applySelector(a,g);0<g.length&&(f=this.evaluateNodeList_(g,e.sepFunc,this.constructString(a, +e.separator),e.ctxtFunc,this.constructString(a,e.context)));break;case cvox.SpeechRule.Type.TEXT:(g=this.constructString(a,g))&&(f=[new cvox.NavDescription({text:g})]);break;default:f=[new cvox.NavDescription({text:g})]}f[0]&&e.context&&e.type!=cvox.SpeechRule.Type.MULTI&&(f[0].context=this.constructString(a,e.context)+(f[0].context||""));c=c.concat(this.addPersonality_(f,e))}return c}; +cvox.SpeechRuleEngine.prototype.evaluateNodeList_=function(a,b,c,d,e){if(a==[])return[];var f=c||"",g=e||"";c=(c=this.activeStore_.contextFunctions.lookup(d))?c(a,g):function(){return g};b=(b=this.activeStore_.contextFunctions.lookup(b))?b(a,f):function(){return f};d=[];e=0;for(var h;h=a[e];e++)h=this.evaluateTree_(h),0<h.length&&(h[0].context=c()+(h[0].context||""),d=d.concat(h),e<a.length-1&&(h=b())&&d.push(new cvox.NavDescription({text:h})));return d}; +cvox.SpeechRuleEngine.propMap={pitch:cvox.AbstractTts.RELATIVE_PITCH,rate:cvox.AbstractTts.RELATIVE_RATE,volume:cvox.AbstractTts.RELATIVE_VOLUME,pause:cvox.AbstractTts.PAUSE};cvox.SpeechRuleEngine.prototype.addPersonality_=function(a,b){var c={},d;for(d in cvox.SpeechRuleEngine.propMap){var e=parseFloat(b[d]);isNaN(e)||(c[cvox.SpeechRuleEngine.propMap[d]]=e)}a.forEach(goog.bind(function(a){this.addRelativePersonality_(a,c);this.resetPersonality_(a)},this));return a}; +cvox.SpeechRuleEngine.prototype.addRelativePersonality_=function(a,b){if(!a.personality)return a.personality=b,a;var c=a.personality,d;for(d in b)c[d]=c[d]&&"number"==typeof c[d]?c[d]+b[d]:b[d];return a};cvox.SpeechRuleEngine.prototype.resetPersonality_=function(a){if(this.activeStore_.defaultTtsProps)for(var b=0,c;c=this.activeStore_.defaultTtsProps[b];b++)a.personality[c]=cvox.ChromeVox.tts.getDefaultProperty(c)};cvox.SpeechRuleEngine.debugMode=!1; +cvox.SpeechRuleEngine.outputDebug=function(a){if(cvox.SpeechRuleEngine.debugMode){var b=Array.prototype.slice.call(arguments,0);console.log.apply(console,["Speech Rule Engine Debugger:"].concat(b))}};cvox.SpeechRuleEngine.prototype.toString=function(){var a=this.activeStore_.findAllRules(function(){return!0});return a.map(function(a){return a.toString()}).join("\n")}; +cvox.SpeechRuleEngine.debugSpeechRule=function(a,b){var c=cvox.SpeechRuleEngine.getInstance().activeStore_;if(c){var d=a.precondition;cvox.SpeechRuleEngine.outputDebug(d.query,c.applyQuery(b,d.query));d.constraints.forEach(function(a){cvox.SpeechRuleEngine.outputDebug(a,c.applyConstraint(b,a))})}}; +cvox.SpeechRuleEngine.debugNamedSpeechRule=function(a,b){for(var c=cvox.SpeechRuleEngine.getInstance().activeStore_,c=c.findAllRules(function(b){return b.name==a}),d=0,e;e=c[d];d++)cvox.SpeechRuleEngine.outputDebug("Rule",a,"number",d),cvox.SpeechRuleEngine.debugSpeechRule(e,b)};cvox.AbstractWalker=function(){};cvox.AbstractWalker.prototype.begin=function(a){a=a||{reversed:!1};return this.sync(cvox.CursorSelection.fromBody().setReversed(a.reversed))};cvox.AbstractWalker.prototype.hasAction=function(a){return"function"==typeof this[a]};cvox.AbstractWalker.prototype.performAction=function(a,b){return this.hasAction(a)?this[a](b):null};cvox.AbstractNodeWalker=function(){this.wasBegin_=!1};goog.inherits(cvox.AbstractNodeWalker,cvox.AbstractWalker);cvox.AbstractNodeWalker.prototype.next=function(a){var b=a.isReversed();a=a.end.node||document.body;do if(a=cvox.DomUtil.directedNextLeafLikeNode(a,b,goog.bind(this.stopNodeDescent,this)),!a)return null;while(a&&!cvox.DomUtil.hasContent(a));return cvox.CursorSelection.fromNode(a).setReversed(b)}; +cvox.AbstractNodeWalker.prototype.sync=function(a){a=this.privateSync_(a);this.wasBegin_=!1;return a}; +cvox.AbstractNodeWalker.prototype.privateSync_=function(a){var b=a.isReversed();if(a.equals(cvox.CursorSelection.fromBody())){if(this.wasBegin_)return cvox.CursorSelection.fromBody().setReversed(b);this.wasBegin_=!0}for(a=a.start.node;a!=document.body&&a.parentNode&&this.stopNodeDescent(a.parentNode);)a=a.parentNode;for(;!this.stopNodeDescent(a);)a=cvox.DomUtil.directedFirstChild(a,b);var c=cvox.CursorSelection.fromNode(a);cvox.DomUtil.hasContent(a)||(c=this.next(cvox.CursorSelection.fromNode(a).setReversed(b))); +return c?c.setReversed(b):this.begin({reversed:b})};cvox.BareObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.BareObjectWalker,cvox.AbstractNodeWalker);cvox.BareObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AuralStyleConverter={};cvox.AuralStyleUtil={}; +cvox.AuralProperty={VOLUME:"VOLUME",SPEAK:"SPEAK",PAUSE_BEFORE:"PAUSE_BEFORE",PAUSE_AFTER:"PAUSE_AFTER",PAUSE:"PAUSE",CUE_BEFORE:"CUE_BEFORE",CUE_AFTER:"CUE_AFTER",CUE:"CUE",PLAY_DURING:"PLAY_DURING",AZIMUTH:"AZIMUTH",ELEVATION:"ELEVATION",SPEECH_RATE:"SPEECH_RATE",VOICE_FAMILY:"VOICE_FAMILY",PITCH:"PITCH",PITCH_RANGE:"PITCH_RANGE",STRESS:"STRESS",RICHNESS:"RICHNESS",SPEAK_PUNCTUATION:"SPEAK_PUNCTUATION",SPEAK_NUMERIAL:"SPEAK_NUMERIAL",SPEAK_HEADER:"SPEAK_HEADER",NONE:"NONE"}; +cvox.AuralStyleConverter.identity=function(a){return a};cvox.AuralStyleConverter.propertyTable={VOLUME:"volume",SPEAK:"no-op",PAUSE_BEFORE:"no-op",PAUSE_AFTER:"no-op",PAUSE:"no-op",CUE_BEFORE:"no-op",CUE_AFTER:"no-op",CUE:"no-op",PLAY_DURING:"no-op",AZIMUTH:"no-op",ELEVATION:"no-op",SPEECH_RATE:"relativeRate",VOICE_FAMILY:"no-op",PITCH:"relativePitch",PITCH_RANGE:"no-op",STRESS:"no-op",RICHNESS:"no-op",SPEAK_PUNCTUATION:"no-op",SPEAK_NUMERIAL:"no-op",SPEAK_HEADER:"no-op",NONE:"no-op"}; +cvox.AuralStyleConverter.valueTable={VOLUME:cvox.AuralStyleConverter.identity,SPEAK:cvox.AuralStyleConverter.identity,PAUSE_BEFORE:cvox.AuralStyleConverter.identity,PAUSE_AFTER:cvox.AuralStyleConverter.identity,PAUSE:cvox.AuralStyleConverter.identity,CUE_BEFORE:cvox.AuralStyleConverter.identity,CUE_AFTER:cvox.AuralStyleConverter.identity,CUE:cvox.AuralStyleConverter.identity,PLAY_DURING:cvox.AuralStyleConverter.identity,AZIMUTH:cvox.AuralStyleConverter.identity,ELEVATION:cvox.AuralStyleConverter.identity, +SPEECH_RATE:cvox.AuralStyleConverter.identity,VOICE_FAMILY:cvox.AuralStyleConverter.identity,PITCH:cvox.AuralStyleConverter.identity,PITCH_RANGE:cvox.AuralStyleConverter.identity,STRESS:cvox.AuralStyleConverter.identity,RICHNESS:cvox.AuralStyleConverter.identity,SPEAK_PUNCTUATION:cvox.AuralStyleConverter.identity,SPEAK_NUMERIAL:cvox.AuralStyleConverter.identity,SPEAK_HEADER:cvox.AuralStyleConverter.identity,NONE:cvox.AuralStyleConverter.identity}; +cvox.AuralStyleConverter.convertRule=function(a,b){return{property:cvox.AuralStyleConverter.propertyTable[a],value:cvox.AuralStyleConverter.valueTable[a](b)}};cvox.AuralStyleConverter.convertStyle=function(a){var b={},c;for(c in a){var d=cvox.AuralStyleConverter.convertRule(c,a[c]);b[d.property]=d.value}return b};cvox.AuralStyleUtil.getStyleForNode=function(a){return(a=cvox.AuralStyleUtil.defaultStyles[a.tagName])?cvox.AuralStyleConverter.convertStyle(a):null}; +cvox.AuralStyleUtil.defaultStyles={ARTICLE:{PITCH:-0.1},ASIDE:{PITCH:-0.1},FOOTER:{PITCH:-0.1},H1:{PITCH:-0.3},H2:{PITCH:-0.25},H3:{PITCH:-0.2},H4:{PITCH:-0.15},H5:{PITCH:-0.1},H6:{PITCH:-0.05},HEADER:{PITCH:-0.1},HGROUP:{PITCH:-0.1},MARK:{PITCH:-0.1},NAV:{PITCH:-0.1},SECTION:{PITCH:-0.1},TIME:{PITCH:-0.1}};cvox.EarconUtil={}; +cvox.EarconUtil.getEarcon=function(a){var b=cvox.AriaUtil.getEarcon(a);if(null!=b)return b;switch(a.tagName){case "BUTTON":return cvox.AbstractEarcons.BUTTON;case "A":if(a.hasAttribute("href"))return cvox.AbstractEarcons.LINK;break;case "IMG":if(cvox.DomUtil.hasLongDesc(a))return cvox.AbstractEarcons.LONG_DESC;break;case "LI":return cvox.AbstractEarcons.LIST_ITEM;case "SELECT":return cvox.AbstractEarcons.LISTBOX;case "TEXTAREA":return cvox.AbstractEarcons.EDITABLE_TEXT;case "INPUT":switch(a.type){case "button":case "submit":case "reset":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":return a.checked? +cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;default:if(cvox.DomUtil.isInputTypeText(a))return cvox.AbstractEarcons.EDITABLE_TEXT}}return null};cvox.DescriptionUtil={};cvox.DescriptionUtil.COLLECTION_NODE_TYPE={H1:!0,H2:!0,H3:!0,H4:!0,H5:!0,H6:!0}; +cvox.DescriptionUtil.getControlDescription=function(a,b){var c=[a];if(b&&0<b.length)c=b;else{var d=cvox.DomUtil.getSurroundingControl(a);d&&(c=[d,a])}c=cvox.DescriptionUtil.getDescriptionFromAncestors(c,!0,cvox.VERBOSITY_VERBOSE);if(d){var e=cvox.DomUtil.getName(d);0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(d),0<e.length&&(c.context=e+" "+c.context))}else e=cvox.DomUtil.getName(a),0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(a),0<e.length&&(c.text=cvox.DomUtil.collapseWhitespace(e))), +d=cvox.DomUtil.getValue(a),0<d.length&&(c.userValue=cvox.DomUtil.collapseWhitespace(d));return c}; +cvox.DescriptionUtil.getDescriptionFromAncestors=function(a,b,c){"undefined"===typeof b&&(b=!0);var d=a.length,e="",f="",g="",h="",k=[],l=null;0<d&&(f=cvox.DomUtil.getName(a[d-1],b),g=cvox.DomUtil.getValue(a[d-1]));for(b=d-1;0<=b;b--){var m=a[b],p=m.getAttribute?m.getAttribute("role"):null;if("dialog"!=p&&"alertdialog"!=p){p=cvox.DomUtil.getRole(m,c);l||(l=cvox.AuralStyleUtil.getStyleForNode(m));if(b<d-1&&m.hasAttribute("role")){var q=cvox.DomUtil.getName(m,!1);q&&(p=q+" "+p)}0<p.length&&(0<e.length|| +0<h.length&&1<m.childElementCount?e=p+" "+cvox.DomUtil.getState(m,!1)+" "+e:h=0<h.length?h+(" "+p+" "+cvox.DomUtil.getState(m,!0)):p+" "+cvox.DomUtil.getState(m,!0));m=cvox.EarconUtil.getEarcon(m);null!=m&&-1==k.indexOf(m)&&k.push(m)}}return new cvox.NavDescription({context:cvox.DomUtil.collapseWhitespace(e),text:cvox.DomUtil.collapseWhitespace(f),userValue:cvox.DomUtil.collapseWhitespace(g),annotation:cvox.DomUtil.collapseWhitespace(h),earcons:k,personality:l})}; +cvox.DescriptionUtil.getDescriptionFromNavigation=function(a,b,c,d){if(!a||!b)return[];if(cvox.DomUtil.isMath(b)&&!cvox.AriaUtil.isMath(b))return cvox.DescriptionUtil.getMathDescription(b);if(cvox.DescriptionUtil.COLLECTION_NODE_TYPE[b.tagName])return cvox.DescriptionUtil.getCollectionDescription(cvox.CursorSelection.fromNode(a),cvox.CursorSelection.fromNode(b));var e=cvox.DomUtil.getUniqueAncestors(a,b,!0),e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,c,d);a=cvox.DomUtil.getUniqueAncestors(b, +a);cvox.DescriptionUtil.shouldDescribeExit_(a)&&(c=cvox.DescriptionUtil.getDescriptionFromAncestors(a,c,d),c.context&&!e.context&&(e.context=cvox.ChromeVox.msgs.getMsg("exited_container",[c.context])));return[e]};cvox.DescriptionUtil.getCollectionDescription=function(a,b){var c=cvox.DescriptionUtil.getRawDescriptions_(a,b);cvox.DescriptionUtil.insertCollectionDescription_(c);return c};cvox.DescriptionUtil.subWalker_=new cvox.BareObjectWalker; +cvox.DescriptionUtil.getRawDescriptions_=function(a,b){var c=[];b=b.clone().setReversed(!1);var d=cvox.DescriptionUtil.subWalker_.sync(b).start.node,e=a.end.node,f=cvox.CursorSelection.fromNode(d);if(!f)return[];for(;cvox.DomUtil.isDescendantOfNode(d,b.start.node);){e=cvox.DomUtil.getUniqueAncestors(e,d);cvox.DomUtil.isMath(d)&&!cvox.AriaUtil.isMath(d)?c=c.concat(cvox.DescriptionUtil.getMathDescription(d)):(e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,!0,cvox.ChromeVox.verbosity),c.push(e)); +f=cvox.DescriptionUtil.subWalker_.next(f);if(!f)break;e=d;d=f.start.node}return c}; +cvox.DescriptionUtil.getFullDescriptionsFromChildren=function(a,b){var c=[];if(!b)return c;var d;if(cvox.DomUtil.isLeafNode(b))return a?d=cvox.DomUtil.getUniqueAncestors(a,b):(d=[],d.push(b)),d=cvox.DescriptionUtil.getDescriptionFromAncestors(d,!0,cvox.ChromeVox.verbosity),c.push(d),c;d=b;var e=cvox.CursorSelection.fromNode(b);if(!e)return c;b=cvox.DescriptionUtil.subWalker_.sync(e).start.node;e=cvox.CursorSelection.fromNode(b);if(!e)return c;for(;cvox.DomUtil.isDescendantOfNode(b,d);){c=c.concat(cvox.DescriptionUtil.getFullDescriptionsFromChildren(a, +b));e=cvox.DescriptionUtil.subWalker_.next(e);if(!e)break;a=b;b=e.start.node}return c}; +cvox.DescriptionUtil.insertCollectionDescription_=function(a){var b=cvox.DescriptionUtil.getAnnotations_(a);if(3<=a.length&&0==a[0].context.length&&1==b.length&&0<b[0].length&&cvox.DescriptionUtil.isAnnotationCollection_(b[0])){var b=b[0],c=a[0].context;a[0].context="";for(var d=0;d<a.length;d++)a[d].annotation="";a.splice(0,0,new cvox.NavDescription({context:c,text:"",annotation:cvox.ChromeVox.msgs.getMsg("collection",[b,cvox.ChromeVox.msgs.getNumber(a.length)])}))}}; +cvox.DescriptionUtil.getAnnotations_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(-1==b.indexOf(d.annotation)){var e=cvox.ChromeVox.msgs.getMsg("tag_link");-1!=d.annotation.toLowerCase().indexOf(e.toLowerCase())?-1==b.indexOf(e)&&b.push(e):b.push(d.annotation)}}return b};cvox.DescriptionUtil.isAnnotationCollection_=function(a){return a==cvox.ChromeVox.msgs.getMsg("tag_link")};cvox.DescriptionUtil.shouldDescribeExit_=function(a){return a.some(function(a){switch(a.tagName){case "TABLE":case "MATH":return!0}return cvox.AriaUtil.isLandmark(a)})}; +cvox.DescriptionUtil.getMathDescription=function(a){var b=cvox.SpeechRuleEngine.getInstance(),c=cvox.TraverseMath.getInstance();b.parameterize(cvox.MathmlStore.getInstance());c.initialize(a);a=b.evaluateNode(c.activeNode);if(a==[])return[new cvox.NavDescription({text:"empty math"})];cvox.ChromeVox.verbosity==cvox.VERBOSITY_VERBOSE&&(a[a.length-1].annotation="math");a[0].pushEarcon(cvox.AbstractEarcons.SPECIAL_CONTENT);return a};cvox.FindUtil={};cvox.FindUtil.objectWalker_=new cvox.BareObjectWalker;cvox.FindUtil.findNext=function(a,b,c){var d=a.isReversed();a=(new cvox.CursorSelection(a.absStart(),a.absStart())).setReversed(d);var e;if(e=b(cvox.DomUtil.getAncestors(a.start.node)))if(a=cvox.CursorSelection.fromNode(e).setReversed(d),c)return a;for(;a;){a=cvox.FindUtil.objectWalker_.next(a);c=null;if(!a||(c=b(cvox.DomUtil.getAncestors(a.start.node))))return c?cvox.CursorSelection.fromNode(c):null;if("IFRAME"==a.start.node.tagName)return a}return null};cvox.Interframe=function(){};cvox.Interframe.IF_MSG_PREFIX="cvox.INTERFRAME:";cvox.Interframe.SET_ID="cvox.INTERFRAME_SET_ID";cvox.Interframe.listeners=[];cvox.Interframe.allowAccessToIframeContentWindow=!0; +cvox.Interframe.init=function(){cvox.Interframe.messageListener=function(a){if("string"===typeof a.data&&0==a.data.indexOf(cvox.Interframe.IF_MSG_PREFIX)){a=a.data.substr(cvox.Interframe.IF_MSG_PREFIX.length);a=cvox.ChromeVoxJSON.parse(a);a.command==cvox.Interframe.SET_ID&&(cvox.Interframe.id=a.id);for(var b=0,c;c=cvox.Interframe.listeners[b];b++)c(a)}return!1};window.addEventListener("message",cvox.Interframe.messageListener,!0)}; +cvox.Interframe.shutdown=function(){window.removeEventListener("message",cvox.Interframe.messageListener,!0)};cvox.Interframe.addListener=function(a){cvox.Interframe.listeners.push(a)};cvox.Interframe.sendMessageToWindow=function(a,b){var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null);b.postMessage(c,"*")}; +cvox.Interframe.sendMessageToIFrame=function(a,b){if(cvox.Interframe.allowAccessToIframeContentWindow&&b.contentWindow)cvox.Interframe.sendMessageToWindow(a,b.contentWindow);else{var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),d=document.createElement("script");d.type="text/javascript";if(b.hasAttribute("id")&&document.getElementById(b.id)==b)d.innerHTML="document.getElementById(decodeURI('"+encodeURI(b.id)+"')).contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"; +else{var e="cvox_iframe"+a.id;""===b.className?b.className=e:-1==b.className.indexOf(e)&&(b.className+=" "+e);d.innerHTML="document.getElementsByClassName(decodeURI('"+encodeURI(e)+"'))[0].contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"}document.head.appendChild(d);window.setTimeout(function(){document.head.removeChild(d)},1E3)}}; +cvox.Interframe.sendMessageToParentWindow=function(a){cvox.Interframe.isIframe()&&(a.sourceId=cvox.Interframe.id,window.parent?cvox.Interframe.sendMessageToWindow(a,window.parent):(a=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),window.location.href="javascript:window.parent.postMessage('"+encodeURI(a)+"', '*');"))};cvox.Interframe.sendIdToIFrame=function(a,b){var c={command:cvox.Interframe.SET_ID,id:a};cvox.Interframe.sendMessageToIFrame(c,b)}; +cvox.Interframe.isIframe=function(){return window!=window.parent};cvox.Interframe.init();cvox.PageSelection=function(a){this.sel_=a.clone();this.sel_.select();this.wasBegin_=!0}; +cvox.PageSelection.prototype.getDescription=function(a,b,c){var d=[];this.sel_.isReversed()!=c.isReversed()?(d=a.getDescription(c,b),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE)):(d=a.getDescription(b,c),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_selected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION),!this.wasBegin_&&this.sel_.absEquals(c.clone().normalize())&&(a=a.getDescription(c,b),a[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"), +a[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE),a[0].pushEarcon(cvox.AbstractEarcons.WRAP),d=a.concat(d)));return d};cvox.PageSelection.prototype.getFullDescription=function(){return[new cvox.NavDescription({text:window.getSelection().toString(),context:cvox.ChromeVox.msgs.getMsg("selection_is")})]}; +cvox.PageSelection.prototype.extend=function(a){this.sel_.directedBefore(a)?this.sel_.end=this.sel_.isReversed()==a.isReversed()?a.end.clone():a.start.clone():this.sel_=a.clone();this.sel_.select();this.wasBegin_=!1;return!this.sel_.absEquals(a)};cvox.BrailleUtil={};cvox.BrailleUtil.ITEM_SEPARATOR=" ";cvox.BrailleUtil.CONTAINER="tag_h1_brl tag_h2_brl tag_h3_brl tag_h4_brl tag_h5_brl tag_h6_brl".split(" "); +cvox.BrailleUtil.TEMPLATE={base:"c n v r s",aria_role_button:"[n]",aria_role_textbox:"n: v r",input_type_button:"[n]",input_type_checkbox:"n (s)",input_type_email:"n: v r",input_type_number:"n: v r",input_type_password:"n: v r",input_type_search:"n: v r",input_type_submit:"[n]",input_type_text:"n: v r",input_type_tel:"n: v r",input_type_url:"n: v r",tag_button:"[n]",tag_textarea:"n: v r"};cvox.BrailleUtil.ValueSpan=function(a){this.offset=a};cvox.BrailleUtil.ValueSelectionSpan=function(){}; +cvox.BrailleUtil.getName=function(a){return a?cvox.DomUtil.getName(a).trim():""};cvox.BrailleUtil.getRoleMsg=function(a){if(!a)return"";(a=cvox.DomUtil.getRoleMsg(a,cvox.VERBOSITY_VERBOSE))&&(a=cvox.DomUtil.collapseWhitespace(a));a&&0<a.length&&cvox.ChromeVox.msgs.getMsg(a+"_brl")&&(a+="_brl");return a};cvox.BrailleUtil.getRole=function(a){return a?(a=cvox.BrailleUtil.getRoleMsg(a))?cvox.ChromeVox.msgs.getMsg(a):"":""}; +cvox.BrailleUtil.getState=function(a){return a?cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,!0).map(function(a){cvox.ChromeVox.msgs.getMsg(a[0]+"_brl")&&(a[0]+="_brl");return a})):""};cvox.BrailleUtil.getContainer=function(a,b){if(!a||!b)return"";for(var c=cvox.DomUtil.getUniqueAncestors(a,b),d=0,e;e=c[d];d++)if((e=cvox.BrailleUtil.getRoleMsg(e))&&-1!=cvox.BrailleUtil.CONTAINER.indexOf(e))return cvox.ChromeVox.msgs.getMsg(e);return""}; +cvox.BrailleUtil.getValue=function(a){if(!a)return new cvox.Spannable;var b=new cvox.BrailleUtil.ValueSpan(0);if(cvox.DomUtil.isInputTypeText(a)){var c=a.value;"password"===a.type&&(c=c.replace(/./g,"*"));b=new cvox.Spannable(c,b);a===document.activeElement&&b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,a.selectionStart,a.selectionEnd);return b}if(a instanceof HTMLTextAreaElement){var d=new cvox.EditableTextAreaShadow;d.update(a);var e=d.getLineIndex(a.selectionEnd),c=d.getLineStart(e),d=d.getLineEnd(e), +d=a.value.substring(c,d);b.offset=c;b=new cvox.Spannable(d,b);a===document.activeElement&&(d=Math.max(a.selectionStart-c,0),a=Math.min(a.selectionEnd-c,b.getLength()),b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,d,a));return b}return new cvox.Spannable(cvox.DomUtil.getValue(a),b)}; +cvox.BrailleUtil.getTemplated=function(a,b,c){c=c?c:{};for(var d=c.roleMsg||(b?cvox.DomUtil.getRoleMsg(b,cvox.VERBOSITY_VERBOSE):""),d=cvox.BrailleUtil.TEMPLATE[d]||cvox.BrailleUtil.TEMPLATE.base,e=new cvox.Spannable,f=function(d){switch(d){case "n":return c.name||cvox.BrailleUtil.getName(b);case "r":return c.role||cvox.BrailleUtil.getRole(b);case "s":return c.state||cvox.BrailleUtil.getState(b);case "c":return c.container||cvox.BrailleUtil.getContainer(a,b);case "v":return c.value?new cvox.Spannable(c.value, +new cvox.BrailleUtil.ValueSpan(0)):cvox.BrailleUtil.getValue(b);default:return d}},g=0;g<d.length;g++){var h=f(d[g]);e.append(h);h.toString()||" "!=d[g+1]||g++}return e.trim()};cvox.MathmlStoreUtil={};cvox.MathmlStoreUtil.matchMathjaxToMathml=function(a){var b=cvox.TraverseMath.getInstance().activeMathmlHost;return b.querySelector("#"+a.id)};cvox.MathmlStoreUtil.retrieveMathjaxExtender=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};cvox.MathmlStoreUtil.retrieveMathjaxLeaf=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]}; +cvox.MathmlStoreUtil.checkMathjaxTag=function(a,b){var c=cvox.MathmlStoreUtil.matchMathjaxToMathml(a);return c&&c.tagName.toUpperCase()==b?[c]:[]};cvox.MathmlStoreUtil.checkMathjaxMunder=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MUNDER")};cvox.MathmlStoreUtil.checkMathjaxMover=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MOVER")};cvox.MathmlStoreUtil.checkMathjaxMsub=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUB")}; +cvox.MathmlStoreUtil.checkMathjaxMsup=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUP")};cvox.MathmlStoreUtil.nextSeparatorFunction=function(a){if(a){if(a.match(/^\s+$/))return null;var b=a.replace(/\s/g,"").split("").filter(function(a){return a})}else b=[","];return function(){return 1<b.length?b.shift():b[0]}};cvox.MathmlStoreUtil.mfencedSeparators=function(a,b){var c=cvox.MathmlStoreUtil.nextSeparatorFunction(b);return function(){return c?c():""}}; +cvox.MathmlStoreUtil.contentIterator=function(a,b){var c=0<a.length?cvox.XpathUtil.evalXPath("../../content/*",a[0]):[];return function(){var a=c.shift();return b+(a?a.textContent:"")}};cvox.StoreUtil={};cvox.StoreUtil.nodeCounter=function(a,b){var c=a.length,d=0,e=b;b||(e="");return function(){d<c&&(d+=1);return e+" "+d}};cvox.MathmlStoreRules=function(){cvox.MathmlStoreRules.initCustomFunctions_();cvox.MathmlStoreRules.initDefaultRules_();cvox.MathmlStoreRules.initMathjaxRules_();cvox.MathmlStoreRules.initAliases_();cvox.MathmlStoreRules.initSpecializationRules_();cvox.MathmlStoreRules.initSemanticRules_()};goog.addSingletonGetter(cvox.MathmlStoreRules);cvox.MathmlStoreRules.mathStore=cvox.MathmlStore.getInstance();cvox.MathmlStoreRules.mathStore.initialize=cvox.MathmlStoreRules.getInstance; +cvox.MathmlStoreRules.defineDefaultMathmlRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineDefaultMathmlRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRuleAlias_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRuleAlias,cvox.MathmlStoreRules.mathStore); +cvox.MathmlStoreRules.addContextFunction_=goog.bind(cvox.MathmlStoreRules.mathStore.contextFunctions.add,cvox.MathmlStoreRules.mathStore.contextFunctions);cvox.MathmlStoreRules.addCustomQuery_=goog.bind(cvox.MathmlStoreRules.mathStore.customQueries.add,cvox.MathmlStoreRules.mathStore.customQueries); +cvox.MathmlStoreRules.initCustomFunctions_=function(){(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFnodeCounter",cvox.StoreUtil.nodeCounter);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFmfSeparators",cvox.MathmlStoreUtil.mfencedSeparators);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFcontentIterator",cvox.MathmlStoreUtil.contentIterator);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFextender",cvox.MathmlStoreUtil.retrieveMathjaxExtender);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmunder", +cvox.MathmlStoreUtil.checkMathjaxMunder);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmover",cvox.MathmlStoreUtil.checkMathjaxMover);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsub",cvox.MathmlStoreUtil.checkMathjaxMsub);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsup",cvox.MathmlStoreUtil.checkMathjaxMsup);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFlookupleaf",cvox.MathmlStoreUtil.retrieveMathjaxLeaf)}; +cvox.MathmlStoreRules.initDefaultRules_=function(){(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("math","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mspace","[p] (pause:250)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mstyle","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mpadded","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("merror","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mphantom","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mtext", +"[t] text(); [p] (pause:200)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mi","[n] text()");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mo","[n] text() (rate:-0.1)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mn","[n] text()");(0,cvox.MathmlStoreRules.defineRule_)("mtext-variant","default.default",'[t] "begin"; [t] @mathvariant (pause:150);[t] text() (pause:150); [t] "end"; [t] @mathvariant (pause:200)',"self::mathml:mtext","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mi-variant", +"default.default","[t] @mathvariant; [n] text()","self::mathml:mi","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mi-variant","self::mathml:mn","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mo-variant","default.default","[t] @mathvariant; [n] text() (rate:-0.1)","self::mathml:mo","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("ms",'[t] "string" (pitch:0.5, rate:0.5); [t] text()');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msup", +'[n] ./*[1]; [t] "super";[n] ./*[2] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msubsup",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "super"; [n] ./*[3] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msub",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mover",'[n] ./*[2] (pitch:0.35); [p] (pause:200); [t] "over"; [n] ./*[1]; [p] (pause:400)'); +(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munder",'[n] ./*[2] (pitch:-0.35); [t] "under"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munderover",'[n] ./*[2] (pitch:-0.35); [t] "under and"; [n] ./*[3] (pitch:0.35); [t] "over"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mrow","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msqrt",'[t] "Square root of"; [m] ./* (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mroot", +'[t] "root of order"; [n] ./*[2]; [t] "of";[n] ./*[1] (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mfrac",' [p] (pause:400); [n] ./*[1] (pitch:0.3); [t] "divided by"; [n] ./*[2] (pitch:-0.3); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-single","default.default",'[t] @open (context:"opening"); [m] ./* (separator:@separators);[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-empty", +"default.default",'[t] @open (context:"opening"); [m] ./*;[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1",'string(@separators)=" "');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-comma","default.default",'[t] @open (context:"opening"); [m] ./* (separator:"comma");[t] @close (context:"closing")',"self::mathml:mfenced");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-multi","default.default",'[t] @open (context:"opening"); [m] ./* (sepFunc:CTXFmfSeparators,separator:@separators); [t] @close (context:"closing")', +"self::mathml:mfenced","string-length(string(@separators))>1");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.default",'[t] "matrix"; [m] ./* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)',"self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.default","[m] ./*","self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mtable", +"default.superbrief",'[t] count(child::mathml:mtr); [t] "by";[t] count(child::mathml:mtr[1]/mathml:mtd); [t] "matrix";',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.short",'[t] "matrix"; [m] ./*',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.short","[m] ./*","self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.short",'[t] "Element"; [t] count(./preceding-sibling::mathml:mtd)+1;[t] count(./parent::mathml:mtr/preceding-sibling::mathml:mtr)+1;[p] (pause:500); [m] ./*', +"self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-3", +"default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[5]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[6]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-2-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[5]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[6]")}; +cvox.MathmlStoreRules.initMathjaxRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("mj-math","default.default","[n] ./*[1]/*[1]/*[1]",'self::span[@class="math"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-leaf","default.default","[n] CQFlookupleaf",'self::span[@class="mi"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mo"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mn"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtext"]'); +(0,cvox.MathmlStoreRules.defineRule_)("mj-mo-ext","default.default","[n] CQFextender",'self::span[@class="mo"]',"./*[1]/*[1]/text()","./*[1]/*[2]/text()");(0,cvox.MathmlStoreRules.defineRule_)("mj-texatom","default.default","[n] ./*[1]",'self::span[@class="texatom"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msubsup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35);[p] (pause:200); [t] "super"; [n] ./*[1]/*[2]/*[1] (pitch:0.35);[p] (pause:300)','self::span[@class="msubsup"]'); +(0,cvox.MathmlStoreRules.defineRule_)("mj-msub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub";[n] ./*[1]/*[2]/*[1] (pitch:-0.35); [p] (pause:300)','self::span[@class="msub"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "super";[n] ./*[1]/*[2]/*[1] (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munderover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under and";[n] ./*[1]/*[3]/*[1] (pitch:-0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)', +'self::span[@class="munderover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munder","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="munder"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="mover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfrac","default.default",'[p] (pause:250); [n] ./*[1]/*[1]/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] ./*[1]/*[2]/*[1] (pitch:-0.3);[p] (pause:400)', +'self::span[@class="mfrac"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msqrt","default.default",'[t] "Square root of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="msqrt"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mroot","default.default",'[t] "root of order"; [n] ./*[1]/*[4]/*[1]; [t] "of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="mroot"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfenced","default.default",'[t] "opening"; [n] ./*[1]; [m] ./*[position()>1 and position()<last()]; [t] "closing"; [n] ./*[last()]', +'self::span[@class="mfenced"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtable"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mmultiscripts"]')}; +cvox.MathmlStoreRules.initAliases_=function(){(0,cvox.MathmlStoreRules.defineRuleAlias_)("mspace",'self::span[@class="mspace"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mstyle",'self::span[@class="mstyle"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mpadded",'self::span[@class="mpadded"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("merror",'self::span[@class="merror"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mphantom",'self::span[@class="mphantom"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("ms", +'self::span[@class="ms"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mrow",'self::span[@class="mrow"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msub",'self::span[@class="msubsup"]',"CQFmathmlmsub");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msup",'self::span[@class="msubsup"]',"CQFmathmlmsup");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-munder",'self::span[@class="munderover"]',"CQFmathmlmunder");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-mover",'self::span[@class="munderover"]', +"CQFmathmlmover")}; +cvox.MathmlStoreRules.initSpecializationRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] ./*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("cube","default.default",'[n] ./*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=3]"); +(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("square-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=2]"); +(0,cvox.MathmlStoreRules.defineRule_)("cube-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]', +"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]', +"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube", +'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]', +"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square-sub",'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube-sub", +'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]")}; +cvox.MathmlStoreRules.initSemanticRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("stree","default.default","[n] ./*[1]","self::stree");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default",'[t] "multirelation"; [m] children/* (sepFunc:CTXFcontentIterator)',"self::multirel");(0,cvox.MathmlStoreRules.defineRule_)("variable-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]', +"count(./children/*)>2",'./children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.short",'[t] "equation sequence"; [m] ./children/* (separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("equality", +"default.default",'[t] "equation"; [t] "left hand side"; [n] children/*[1];[p] (pause:200); [n] text() (pause:200);[t] "right hand side"; [n] children/*[2]','self::relseq[@role="equality"]',"count(./children/*)=2");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality","default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/identifier or ./children/number");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality2", +"default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/function or ./children/appl");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default","[m] children/* (separator:./text())","self::relseq");(0,cvox.MathmlStoreRules.defineRule_)("binary-operation","default.default","[m] children/* (separator:text());","self::infixop");(0,cvox.MathmlStoreRules.defineRule_)("variable-addition", +"default.default",'[t] "sum with variable number of summands";[p] (pause:400); [m] children/* (separator:./text())','self::infixop[@role="addition"]',"count(children/*)>2",'children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-addition","default.default",'[t] "sum with,"; [t] count(./children/*); [t] ", summands";[p] (pause:400); [m] ./children/* (separator:./text())','self::infixop[@role="addition"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("prefix", +"default.default",'[t] "prefix"; [n] text(); [t] "of" (pause 150);[n] children/*[1]',"self::prefixop");(0,cvox.MathmlStoreRules.defineRule_)("negative","default.default",'[t] "negative"; [n] children/*[1]',"self::prefixop",'self::prefixop[@role="negative"]');(0,cvox.MathmlStoreRules.defineRule_)("postfix","default.default",'[n] children/*[1]; [t] "postfix"; [n] text() (pause 300)',"self::postfixop");(0,cvox.MathmlStoreRules.defineRule_)("identifier","default.default","[n] text()","self::identifier"); +(0,cvox.MathmlStoreRules.defineRule_)("number","default.default","[n] text()","self::number");(0,cvox.MathmlStoreRules.defineRule_)("fraction","default.default",'[p] (pause:250); [n] children/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] children/*[2] (pitch:-0.3); [p] (pause:400)',"self::fraction");(0,cvox.MathmlStoreRules.defineRule_)("superscript","default.default",'[n] children/*[1]; [t] "super"; [n] children/*[2] (pitch:0.35);[p] (pause:300)',"self::superscript");(0,cvox.MathmlStoreRules.defineRule_)("subscript", +"default.default",'[n] children/*[1]; [t] "sub"; [n] children/*[2] (pitch:-0.35);[p] (pause:300)',"self::subscript");(0,cvox.MathmlStoreRules.defineRule_)("ellipsis","default.default",'[p] (pause:200); [t] "dot dot dot"; [p] (pause:300)',"self::punct",'self::punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("fence-single","default.default","[n] text()","self::punct",'self::punct[@role="openfence"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="closefence"]'); +(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="vbar"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="application"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-punct","default.default","[p] (pause:200);","self::punct");(0,cvox.MathmlStoreRules.defineRule_)("omit-empty","default.default","","self::empty");(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close","default.default",'[p] (pause:100); [t] "open"; [n] children/*[1]; [p] (pause:200);[t] "close"', +'self::fenced[@role="leftright"]');(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close-in-appl","default.default","[p] (pause:100); [n] children/*[1]; [p] (pause:200);",'self::fenced[@role="leftright"]',"./parent::children/parent::appl");(0,cvox.MathmlStoreRules.defineRule_)("fences-neutral","default.default",'[p] (pause:100); [t] "absolute value of"; [n] children/*[1];[p] (pause:350);',"self::fenced",'self::fenced[@role="neutral"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-fences","default.default", +"[p] (pause:500); [n] children/*[1]; [p] (pause:200);","self::fenced");(0,cvox.MathmlStoreRules.defineRule_)("matrix","default.default",'[t] "matrix"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::matrix");(0,cvox.MathmlStoreRules.defineRule_)("matrix-row","default.default",'[m] children/* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row[@role="matrix"]');(0,cvox.MathmlStoreRules.defineRule_)("matrix-cell","default.default","[n] children/*[1]",'self::cell[@role="matrix"]'); +(0,cvox.MathmlStoreRules.defineRule_)("vector","default.default",'[t] "vector"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"element",pause:100)',"self::vector");(0,cvox.MathmlStoreRules.defineRule_)("cases","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100)',"self::cases");(0,cvox.MathmlStoreRules.defineRule_)("cases-row","default.default","[m] children/*",'self::row[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("cases-cell", +"default.default","[n] children/*[1]",'self::cell[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("row","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row"');(0,cvox.MathmlStoreRules.defineRule_)("cases-end","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100);[t] "end cases"',"self::cases","following-sibling::*");(0,cvox.MathmlStoreRules.defineRule_)("multiline","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"line",pause:100)', +"self::multiline");(0,cvox.MathmlStoreRules.defineRule_)("line","default.default","[m] children/*","self::line");(0,cvox.MathmlStoreRules.defineRule_)("table","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:200)',"self::table");(0,cvox.MathmlStoreRules.defineRule_)("table-row","default.default","[m] children/* (pause:100)",'self::row[@role="table"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("cases-cell",'self::cell[@role="table"]');(0,cvox.MathmlStoreRules.defineRule_)("end-punct", +"default.default","[m] children/*; [p] (pause:300)","self::punctuated",'@role="endpunct"');(0,cvox.MathmlStoreRules.defineRule_)("start-punct","default.default","[n] content/*[1]; [p] (pause:200); [m] children/*","self::punctuated",'@role="startpunct"');(0,cvox.MathmlStoreRules.defineRule_)("integral-punct","default.default","[n] children/*[1] (rate:0.2); [n] children/*[3] (rate:0.2)","self::punctuated",'@role="integral"');(0,cvox.MathmlStoreRules.defineRule_)("punctuated","default.default","[m] children/* (pause:100)", +"self::punctuated");(0,cvox.MathmlStoreRules.defineRule_)("function","default.default","[n] text()","self::function");(0,cvox.MathmlStoreRules.defineRule_)("appl","default.default","[n] children/*[1]; [n] content/*[1]; [n] children/*[2]","self::appl");(0,cvox.MathmlStoreRules.defineRule_)("limboth","default.default",'[n] children/*[1]; [t] "from"; [n] children/*[2]; [t] "to";[n] children/*[3]',"self::limboth");(0,cvox.MathmlStoreRules.defineRule_)("sum-only","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);', +"self::limboth",'self::limboth[@role="sum"]');(0,cvox.MathmlStoreRules.defineRule_)("limlower","default.default",'[n] children/*[1]; [t] "over"; [n] children/*[2];',"self::limlower");(0,cvox.MathmlStoreRules.defineRule_)("limupper","default.default",'[n] children/*[1]; [t] "under"; [n] children/*[2];',"self::limupper");(0,cvox.MathmlStoreRules.defineRule_)("largeop","default.default","[n] text()","self::largeop");(0,cvox.MathmlStoreRules.defineRule_)("bigop","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);', +"self::bigop");(0,cvox.MathmlStoreRules.defineRule_)("integral","default.default","[n] children/*[1]; [p] (pause 100); [n] children/*[2]; [p] (pause 200);[n] children/*[3] (rate:0.35);","self::integral");(0,cvox.MathmlStoreRules.defineRule_)("sqrt","default.default",'[t] "Square root of"; [n] children/*[1] (rate:0.2); [p] (pause:400)',"self::sqrt");(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] children/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::superscript","children/*[2][text()=2]"); +(0,cvox.MathmlStoreRules.defineRule_)("text-no-mult","default.default","[n] children/*[1]; [p] (pause:200); [n] children/*[2]","self::infixop","children/text")};cvox.AbstractShifter=function(){this.isSubnavigating_=!1};cvox.AbstractShifter.prototype.begin=function(a,b){return this.currentWalker_.begin(b)};cvox.AbstractShifter.prototype.makeLessGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.makeMoreGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.ensureSubnavigating=function(){!1==this.isSubnavigating_&&(this.makeMoreGranular(),this.isSubnavigating_=!0)}; +cvox.AbstractShifter.prototype.ensureNotSubnavigating=function(){!0==this.isSubnavigating_&&(this.isSubnavigating_=!1,this.makeLessGranular())};cvox.AbstractShifter.prototype.isSubnavigating=function(){return this.isSubnavigating_};cvox.AbstractShifter.prototype.hasAction=function(a){return this.currentWalker_.hasAction(a)};cvox.AbstractShifter.prototype.performAction=function(a,b){return this.currentWalker_.performAction(a,b)};cvox.MathShifter=function(a){cvox.AbstractShifter.call(this);this.level_=0;this.bumped_=this.direction_=!1;cvox.TraverseMath.getInstance().initialize(a.start.node)};goog.inherits(cvox.MathShifter,cvox.AbstractShifter);cvox.MathShifter.prototype.next=function(a){var b=a.isReversed();this.bumped_=!cvox.TraverseMath.getInstance().nextSibling(b);return(b=cvox.TraverseMath.getInstance().getAttachedActiveNode())?cvox.CursorSelection.fromNode(b):a}; +cvox.MathShifter.prototype.sync=function(a){var b=cvox.TraverseMath.getInstance().getAttachedActiveNode();return b?cvox.CursorSelection.fromNode(b):a};cvox.MathShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("math_shifter")};cvox.MathShifter.prototype.getDescription=function(){var a=cvox.SpeechRuleEngine.getInstance().evaluateNode(cvox.TraverseMath.getInstance().activeNode);this.bumped_&&0<a.length&&a[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE);return a}; +cvox.MathShifter.prototype.getBraille=function(a,b){return new cvox.NavBraille({text:cvox.BrailleUtil.getTemplated(a.start.node,b.start.node)})};cvox.MathShifter.prototype.getGranularityMsg=function(){return this.direction_?"up to level "+this.level_:"down to level "+this.level_};cvox.MathShifter.prototype.makeLessGranular=function(){this.level_=0<this.level_?this.level_-1:0;this.direction_=!0;this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!0)}; +cvox.MathShifter.prototype.makeMoreGranular=function(){this.direction_=!1;(this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!1))||this.level_++}; +cvox.MathShifter.create=function(a){if(cvox.DomPredicates.mathPredicate(cvox.DomUtil.getAncestors(a.start.node))){var b=cvox.DomUtil.getContainingMath(a.end.node);cvox.TraverseMath.getInstance().initialize(b);cvox.SpeechRuleEngine.getInstance().parameterize(cvox.MathmlStore.getInstance());b=cvox.MathStore.createDynamicConstraint(cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style);cvox.SpeechRuleEngine.getInstance().setDynamicConstraint(b);return new cvox.MathShifter(a)}return null};cvox.TableUtil={};cvox.TableUtil.checkIfHeader=function(a){return"TH"==a.tagName||a.hasAttribute("scope")||a.hasAttribute("role")&&("rowheader"==a.getAttribute("role")||"columnheader"==a.getAttribute("role"))}; +cvox.TableUtil.determineColGroups=function(a){var b=[];if(0==a.length)return b;for(var c=0;c<a.length;c++){var d=a[c],e=cvox.TableUtil.getColNodes(d);if(0<e.length)for(d=0;d<e.length;d++){var f=e[d];if(f.hasAttribute("span"))for(var f=parseInt(f.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}else if(d.hasAttribute("span"))for(f=parseInt(d.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}return b};cvox.TableUtil.pushIfNotContained=function(a,b){-1==a.indexOf(b)&&a.push(b)}; +cvox.TableUtil.getChildRows=function(a){return cvox.XpathUtil.evalXPath('child::tbody/tr | child::thead/tr | child::*[attribute::role="row"]',a)};cvox.TableUtil.getChildCells=function(a){return cvox.XpathUtil.evalXPath('child::td | child::th | child::*[attribute::role="gridcell"] |child::*[attribute::role="rowheader"] |child::*[attribute::role="columnheader"]',a)};cvox.TableUtil.getCellWithID=function(a,b){return cvox.XpathUtil.evalXPath("id('"+b+"')",a)}; +cvox.TableUtil.getColGroups=function(a){return cvox.XpathUtil.evalXPath("child::colgroup",a)};cvox.TableUtil.getColNodes=function(a){return cvox.XpathUtil.evalXPath("child::col",a)};function ShadowTableNode(){}ShadowTableNode.prototype.rowHeaderCells=[];ShadowTableNode.prototype.colHeaderCells=[];cvox.TraverseTable=function(a){this.activeTable_=null;this.shadowTable_=[];this.candidateHeaders_=[];this.idToShadowNode_=[];this.initialize(a)};cvox.TraverseTable.prototype.colCount=null;cvox.TraverseTable.prototype.rowCount=null;cvox.TraverseTable.prototype.tableRowHeaders=null;cvox.TraverseTable.prototype.tableColHeaders=null; +cvox.TraverseTable.prototype.initialize=function(a){a&&a!=this.activeTable_&&(this.activeTable_=a,this.currentCellCursor=null,this.tableRowHeaders=[],this.tableColHeaders=[],this.buildShadowTable_(),this.colCount=this.shadowColCount_(),this.rowCount=this.countRows_(),this.findHeaderCells_(),this.activeTable_.addEventListener("DOMSubtreeModified",goog.bind(function(){this.buildShadowTable_();this.colCount=this.shadowColCount_();this.rowCount=this.countRows_();this.tableRowHeaders=[];this.tableColHeaders= +[];this.findHeaderCells_();0==this.colCount&&0==this.rowCount||null!=this.getCell()||this.attachCursorToNearestCell_()},this),!1))}; +cvox.TraverseTable.prototype.findNearestCursor=function(a){for(;a.firstElementChild&&"TABLE"!=a.firstElementChild.tagName&&!cvox.AriaUtil.isGrid(a.firstElementChild);)a=a.firstElementChild;for(;!cvox.DomPredicates.cellPredicate(cvox.DomUtil.getAncestors(a));)if(a=cvox.DomUtil.directedNextLeafNode(a),!cvox.DomUtil.getContainingTable(a,{allowCaptions:!0}))return null;for(var b=0;b<this.rowCount;++b)for(var c=0;c<this.colCount;++c)if(this.shadowTable_[b][c]&&cvox.DomUtil.isDescendantOfNode(a,this.shadowTable_[b][c].activeCell))return[b, +c];return null};cvox.TraverseTable.prototype.attachCursorToNearestCell_=function(){if(this.currentCellCursor){var a=this.currentCellCursor,b=this.shadowTable_[a[0]];if(b)this.currentCellCursor=[a[0],b.length-1];else if(b=this.shadowTable_.length,0==b)this.currentCellCursor=null;else{var c=this.shadowTable_[b-1][a[1]];c?this.currentCellCursor=[b-1,a[1]]:this.goToLastCell()}}else this.goToLastCell()}; +cvox.TraverseTable.prototype.buildShadowTable_=function(){this.shadowTable_=[];for(var a=cvox.TableUtil.getChildRows(this.activeTable_),b=null,c=null,d=cvox.TableUtil.getColGroups(this.activeTable_),d=cvox.TableUtil.determineColGroups(d),e=0;e<a.length;e++)this.shadowTable_.push([]);for(e=0;e<a.length;e++)for(var f=cvox.TableUtil.getChildCells(a[e]),g=0,h=0;g<f.length;)if(null==this.shadowTable_[e][h]){var k=f[g],l=1,m=1;k.hasAttribute("colspan")&&(l=parseInt(k.getAttribute("colspan"),10),isNaN(l)|| +0>=l)&&(l=1);k.hasAttribute("rowspan")&&(m=parseInt(k.getAttribute("rowspan"),10),isNaN(m)||0>=m)&&(m=1);for(var p=0;p<m;p++)for(var q=0;q<l;q++){var n=new ShadowTableNode;0==p&&0==q?(n.spanned=!1,n.rowSpan=!1,n.colSpan=!1):(n.spanned=!0,n.rowSpan=1<m,n.colSpan=1<l);n.i=e;n.j=h;n.activeCell=k;n.rowHeaderCells=[];n.colHeaderCells=[];n.isRowHeader=!1;n.isColHeader=!1;cvox.TableUtil.checkIfHeader(n.activeCell)?this.candidateHeaders_.push(n):n.activeCell.hasAttribute("headers")&&this.candidateHeaders_.push(n); +null==b?(b=a[e].parentNode,c=0):a[e].parentNode!=b&&(b=a[e].parentNode,c+=1);n.rowGroup=c;n.colGroup=0<d.length?d[h]:0;n.spanned||null!=k.id&&(this.idToShadowNode_[k.id]=n);this.shadowTable_[e+p][h+q]=n}h+=l;g++}else h+=1;return this.shadowTable_}; +cvox.TraverseTable.prototype.findHeaderCells_=function(){for(var a=0;a<this.candidateHeaders_.length;a++){var b=this.candidateHeaders_[a],c=b.activeCell,d=null,e=null;if(!b.spanned){"TH"!=c.tagName||c.hasAttribute("scope")?c.hasAttribute("scope")?e=c.getAttribute("scope"):c.hasAttribute("role")&&"rowheader"==c.getAttribute("role")?e="row":c.hasAttribute("role")&&"columnheader"==c.getAttribute("role")&&(e="col"):(0<b.j?"TH"==this.shadowTable_[b.i][b.j-1].activeCell.tagName&&(d="col"):b.j<this.shadowTable_[b.i].length- +1?"TH"==this.shadowTable_[b.i][b.j+1].activeCell.tagName&&(d="col"):d="col",null==d&&(0<b.i?"TH"==this.shadowTable_[b.i-1][b.j].activeCell.tagName&&(d="row"):b.i<this.shadowTable_.length-1?"TH"==this.shadowTable_[b.i+1][b.j].activeCell.tagName&&(d="row"):d="row"));if("row"==e||"row"==d){b.isRowHeader=!0;for(d=b.j;d<this.shadowTable_[b.i].length;d++)e=this.shadowTable_[b.i][d],e.rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("col"==e||"col"==d){b.isColHeader=!0;for(e=b.i;e<this.shadowTable_.length;e++){d= +this.shadowTable_[e][b.j];if(null==d)break;d.colHeaderCells.push(c)}this.tableColHeaders.push(c)}else if("rowgroup"==e){b.isRowHeader=!0;for(var f=b.rowGroup,d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].rowHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length&&this.shadowTable_[e][0].rowGroup==f;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("colgroup"==e){b.isColHeader=!0;f=b.colGroup; +for(d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].colGroup==f&&this.shadowTable_[b.i][d].colHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].colGroup==f&&this.shadowTable_[e][d].colHeaderCells.push(c);this.tableColHeaders.push(c)}c.hasAttribute("headers")&&this.findAttrbHeaders_(b);c.hasAttribute("aria-describedby")&&this.findAttrbDescribedBy_(b)}}}; +cvox.TraverseTable.prototype.findAttrbHeaders_=function(a){for(var b=a.activeCell,c=b.getAttribute("headers").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];if(!cvox.TableUtil.checkIfHeader(g.activeCell)){var h=Math.abs(g.i-a.i),k=Math.abs(g.j-a.j);0==h||h<k?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,g.activeCell)): +(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell))}}}; +cvox.TraverseTable.prototype.findAttrbDescribedBy_=function(a){for(var b=a.activeCell,c=b.getAttribute("aria-describedby").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];cvox.TableUtil.checkIfHeader(g.activeCell)||(g.activeCell.hasAttribute("role")&&"rowheader"==g.activeCell.getAttribute("role")?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders, +g.activeCell)):g.activeCell.hasAttribute("role")&&"columnheader"==g.activeCell.getAttribute("role")&&(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell)))}};cvox.TraverseTable.prototype.getCell=function(){if(!this.currentCellCursor||!this.shadowTable_)return null;var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a&&a.activeCell}; +cvox.TraverseTable.prototype.getCellAt=function(a){return a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]&&(a=this.shadowTable_[a[0]][a[1]],null!=a)?a.activeCell:null};cvox.TraverseTable.prototype.getCellRowHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.rowHeaderCells};cvox.TraverseTable.prototype.getCellColHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.colHeaderCells}; +cvox.TraverseTable.prototype.isSpanned=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.spanned};cvox.TraverseTable.prototype.isRowHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isRowHeader};cvox.TraverseTable.prototype.isColHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isColHeader}; +cvox.TraverseTable.prototype.getCol=function(){for(var a=[],b=0;b<this.shadowTable_.length;b++)if(this.shadowTable_[b][this.currentCellCursor[1]]){var c=this.shadowTable_[b][this.currentCellCursor[1]];if(c.colSpan&&c.rowSpan){var d=a[a.length-1];d!=c.activeCell&&a.push(c.activeCell)}else!c.colSpan&&c.rowSpan||a.push(c.activeCell)}return a};cvox.TraverseTable.prototype.summaryText=function(){return this.activeTable_.hasAttribute("summary")?this.activeTable_.getAttribute("summary"):null}; +cvox.TraverseTable.prototype.shadowColCount_=function(){for(var a=0,b=0;b<this.shadowTable_.length;b++)this.shadowTable_[b].length>a&&(a=this.shadowTable_[b].length);return a};cvox.TraverseTable.prototype.countRows_=function(){var a=cvox.TableUtil.getChildRows(this.activeTable_);return a.length};cvox.TraverseTable.prototype.nextRow=function(){return this.currentCellCursor?this.goToRow(this.currentCellCursor[0]+1):this.goToRow(0)}; +cvox.TraverseTable.prototype.nextCol=function(){return this.currentCellCursor?this.goToCol(this.currentCellCursor[1]+1):this.goToCol(0)};cvox.TraverseTable.prototype.goToRow=function(a){return null!=this.shadowTable_[a]?(this.currentCellCursor=null==this.currentCellCursor?[a,0]:[a,this.currentCellCursor[1]],!0):!1};cvox.TraverseTable.prototype.goToCol=function(a){if(0>a||a>=this.colCount)return!1;this.currentCellCursor=null==this.currentCellCursor?[0,a]:[this.currentCellCursor[0],a];return!0}; +cvox.TraverseTable.prototype.goToCell=function(a){if(a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]){var b=this.shadowTable_[a[0]][a[1]];if(null!=b)return this.currentCellCursor=a,!0}return!1};cvox.TraverseTable.prototype.goToLastCell=function(){var a=this.shadowTable_.length;if(0==a)return!1;var b=this.shadowTable_[a-1],a=[a-1,b.length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1}; +cvox.TraverseTable.prototype.goToRowLastCell=function(){var a=this.currentCellCursor[0],a=[a,this.shadowTable_[a].length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TraverseTable.prototype.goToColLastCell=function(){var a=this.getCol(),a=[a.length-1,this.currentCellCursor[1]],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TableWalker=function(){this.tt=new cvox.TraverseTable(null)};goog.inherits(cvox.TableWalker,cvox.AbstractWalker);cvox.TableWalker.prototype.next=function(a){return this.nextRow(a)};cvox.TableWalker.prototype.sync=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell(a)},this))}; +cvox.TableWalker.prototype.getDescription=function(a,b){var c=this.syncPosition_(b);if(!c)return[];this.tt.goToCell(c);c=cvox.DescriptionUtil.getCollectionDescription(a,b);0==c.length&&c.push(new cvox.NavDescription({annotation:cvox.ChromeVox.msgs.getMsg("empty_cell")}));return c};cvox.TableWalker.prototype.getBraille=function(a,b){new cvox.NavBraille({});var c=this.syncPosition_(b);if(c){var d=cvox.BrailleUtil.getTemplated(a.start.node,b.start.node);d.append(" "+ ++c[0]+"/"+ ++c[1])}return new cvox.NavBraille({text:d})}; +cvox.TableWalker.prototype.goToFirstCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToCell([0,0])},this))};cvox.TableWalker.prototype.goToLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToLastCell()},this))};cvox.TableWalker.prototype.goToRowFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([a[0],0])},this))}; +cvox.TableWalker.prototype.goToRowLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToRowLastCell()},this))};cvox.TableWalker.prototype.goToColFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([0,a[1]])},this))};cvox.TableWalker.prototype.goToColLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToColLastCell()},this))}; +cvox.TableWalker.prototype.nextRow=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0]+(a.isReversed()?-1:1),b[1]])},this))};cvox.TableWalker.prototype.nextCol=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0],b[1]+(a.isReversed()?-1:1)])},this))};cvox.TableWalker.prototype.announceHeaders=function(a){cvox.ChromeVox.tts.speak(this.getHeaderText_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);return a}; +cvox.TableWalker.prototype.speakTableLocation=function(a){cvox.ChromeVox.navigationManager.speakDescriptionArray(this.getLocationDescription_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,null);return a};cvox.TableWalker.prototype.exitShifterContent=function(a){a=this.getTableNode_(a);if(!a)return null;a=cvox.DomUtil.directedNextLeafNode(a,!1);return cvox.CursorSelection.fromNode(a)}; +cvox.TableWalker.prototype.getHeaderText_=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))&&this.tt.goToCell(a)?this.getRowHeaderText_(a)+" "+this.getColHeaderText_(a):cvox.ChromeVox.msgs.getMsg("not_inside_table")};cvox.TableWalker.prototype.getLocationDescription_=function(a){a=this.getLocationInfo(a);return null==a?null:[new cvox.NavDescription({text:cvox.ChromeVox.msgs.getMsg("table_location",a)})]}; +cvox.TableWalker.prototype.getRowHeaderText_=function(a){var b="",c=this.tt.getCellRowHeaders();if(0==c.length)return c=this.tt.getCellAt([a[0],0]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("row_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("row_header")+b}; +cvox.TableWalker.prototype.getColHeaderText_=function(a){var b="",c=this.tt.getCellColHeaders();if(0==c.length)return c=this.tt.getCellAt([0,a[1]]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("column_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("column_header")+ +b};cvox.TableWalker.prototype.getLocationInfo=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))?[a[0]+1,this.tt.rowCount,a[1]+1,this.tt.colCount].map(function(a){return cvox.ChromeVox.msgs.getNumber(a)}):null}; +cvox.TableWalker.prototype.goTo_=function(a,b){this.tt.initialize(this.getTableNode_(a));var c=this.tt.findNearestCursor(a.end.node);if(!c)return null;this.tt.goToCell(c);return b(c)?cvox.CursorSelection.fromNode(this.tt.getCell()).setReversed(a.isReversed()):null};cvox.TableWalker.prototype.getTableNode_=function(a){return cvox.DomUtil.getContainingTable(a.end.node)};cvox.TableWalker.prototype.syncPosition_=function(a){var b=this.getTableNode_(a);this.tt.initialize(b);return this.tt.findNearestCursor(a.end.node)};cvox.ColumnWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.ColumnWalker,cvox.TableWalker);cvox.ColumnWalker.prototype.next=function(a){return this.nextCol(a)};cvox.ColumnWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("column_granularity")};cvox.RowWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.RowWalker,cvox.TableWalker);cvox.RowWalker.prototype.next=function(a){return this.nextRow(a)};cvox.RowWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("row_granularity")};cvox.TableShifter=function(){this.rowWalker_=new cvox.RowWalker;this.columnWalker_=new cvox.ColumnWalker;this.currentWalker_=this.rowWalker_;this.bumpedEdge_=!1;this.begin_=!0;cvox.AbstractShifter.call(this)};goog.inherits(cvox.TableShifter,cvox.AbstractShifter);cvox.TableShifter.prototype.next=function(a){var b=this.currentWalker_.next(a);return b?b:(this.bumpedEdge_=!0,a)}; +cvox.TableShifter.prototype.sync=function(a){return"TABLE"==a.start.node.tagName?a.isReversed()?this.currentWalker_.goToLastCell(a):this.currentWalker_.goToFirstCell(a):this.currentWalker_.sync(a)};cvox.TableShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("table_shifter")}; +cvox.TableShifter.prototype.getDescription=function(a,b){var c=this.currentWalker_.getDescription(a,b);if(0<c.length&&(this.bumpedEdge_&&(c[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE),this.bumpedEdge_=!1),this.begin_)){var d=this.currentWalker_.tt.summaryText(),e=this.currentWalker_.getLocationInfo(b);null!=e&&c.push(new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("table_location",e),text:"",annotation:d?d+" ":""}));this.currentWalker_.tt.isSpanned()&&c.push(new cvox.NavDescription({text:"", +annotation:cvox.ChromeVox.msgs.getMsg("spanned")}));this.begin_=!1}return c};cvox.TableShifter.prototype.getBraille=function(a,b){return this.currentWalker_.getBraille(a,b)};cvox.TableShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};cvox.TableShifter.prototype.makeLessGranular=function(){cvox.TableShifter.superClass_.makeLessGranular.call(this);this.currentWalker_=this.rowWalker_}; +cvox.TableShifter.prototype.makeMoreGranular=function(){cvox.TableShifter.superClass_.makeMoreGranular.call(this);this.currentWalker_=this.columnWalker_};cvox.TableShifter.create=function(a){a=cvox.DomUtil.getAncestors(a.start.node);return cvox.DomPredicates.tablePredicate(a)&&!cvox.DomPredicates.captionPredicate(a)?new cvox.TableShifter:null};cvox.NavigationHistory=function(){this.reset_()};cvox.NavigationHistory.MAX_HISTORY_LEN_=30;cvox.NavigationHistory.prototype.reset_=function(){var a=document.body;this.history_=[a];this.arrivedValid_=!0};cvox.NavigationHistory.prototype.update=function(a){var b=this.history_[0];a&&a!=b&&this.history_.unshift(a);this.history_.length>cvox.NavigationHistory.MAX_HISTORY_LEN_&&this.history_.pop();this.arrivedValid_=this.isValidNode_(a)}; +cvox.NavigationHistory.prototype.becomeInvalid=function(a){this.clean_();return this.arrivedValid_?!this.isValidNode_(a):(this.arrivedValid_=!0,!1)};cvox.NavigationHistory.prototype.revert=function(a){var b=document.activeElement;b!=document.body&&this.isValidNode_(b)&&this.update(b);if(a)for(;0<this.history_.length;){b=this.history_[0];if(a(b))break;this.history_.shift()}return{current:this.history_[0],previous:this.history_[1]}}; +cvox.NavigationHistory.prototype.clean_=function(){for(var a=!1,b=this.history_.length-1;0<=b;b--){var c=this.isValidNode_(this.history_[b]);c||(this.history_.splice(b,1),a=!0)}return a};cvox.NavigationHistory.prototype.isValidNode_=function(a){return cvox.DomUtil.isAttachedToDocument(a)&&cvox.DomUtil.isVisible(a)?!0:!1};cvox.TraverseContent=function(a){this.currentDomObj=null!=a?a:document.body;var b=document.createRange();try{b.selectNode(this.currentDomObj),this.startCursor_=new cvox.Cursor(b.startContainer,b.startOffset,cvox.TraverseUtil.getNodeText(b.startContainer)),this.endCursor_=new cvox.Cursor(b.endContainer,b.endOffset,cvox.TraverseUtil.getNodeText(b.endContainer))}catch(c){window.console.log("Error: Unselectable node:"),window.console.log(a)}};goog.addSingletonGetter(cvox.TraverseContent); +cvox.TraverseContent.prototype.lastSelectionWasWhitespace=!1;cvox.TraverseContent.prototype.skipWhitespace=!1;cvox.TraverseContent.prototype.skipInvalidSelections=!0;cvox.TraverseContent.prototype.breakAtLinks=!0;cvox.TraverseContent.kCharacter="character";cvox.TraverseContent.kWord="word";cvox.TraverseContent.kSentence="sentence";cvox.TraverseContent.kLine="line";cvox.TraverseContent.kParagraph="paragraph"; +cvox.TraverseContent.kAllGrains=[cvox.TraverseContent.kParagraph,cvox.TraverseContent.kSentence,cvox.TraverseContent.kLine,cvox.TraverseContent.kWord,cvox.TraverseContent.kCharacter];cvox.TraverseContent.prototype.syncToCursorSelection=function(a){this.startCursor_=a.start.clone();this.endCursor_=a.end.clone()};cvox.TraverseContent.prototype.getCurrentCursorSelection=function(){return new cvox.CursorSelection(this.startCursor_,this.endCursor_)}; +cvox.TraverseContent.prototype.updateSelection=function(){cvox.TraverseUtil.setSelection(this.startCursor_,this.endCursor_);cvox.SelectionUtil.scrollToSelection(window.getSelection())};cvox.TraverseContent.prototype.getCurrentRange=function(){var a=document.createRange();try{a.setStart(this.startCursor_.node,this.startCursor_.index),a.setEnd(this.endCursor_.node,this.endCursor_.index)}catch(b){console.log("Invalid range ")}return a};cvox.TraverseContent.prototype.getCurrentText=function(){return cvox.SelectionUtil.getRangeText(this.getCurrentRange())}; +cvox.TraverseContent.prototype.collapseToEnd=function(){this.startCursor_=this.endCursor_.clone()};cvox.TraverseContent.prototype.collapseToStart=function(){this.endCursor_=this.startCursor_.clone()}; +cvox.TraverseContent.prototype.moveNext=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getNextWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getNextChar(this.startCursor_,this.endCursor_, +e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getNextParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getNextLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&& +g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.moveNext(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()}; +cvox.TraverseContent.prototype.movePrev=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getPreviousWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getPreviousChar(this.startCursor_,this.endCursor_, +e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getPreviousParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getPreviousLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&& +g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.movePrev(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};cvox.TraverseContent.prototype.getBreakTags=function(){return{A:this.breakAtLinks,BR:!0,HR:!0}}; +cvox.TraverseContent.prototype.nextElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.moveNext(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null}; +cvox.TraverseContent.prototype.prevElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.movePrev(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};cvox.TraverseContent.prototype.reset=function(){window.getSelection().removeAllRanges()};cvox.AbstractSelectionWalker=function(){this.objWalker_=new cvox.BareObjectWalker;this.tc_=cvox.TraverseContent.getInstance();this.grain=""};goog.inherits(cvox.AbstractSelectionWalker,cvox.AbstractWalker); +cvox.AbstractSelectionWalker.prototype.next=function(a){var b=a.isReversed();this.tc_.syncToCursorSelection(a.clone().setReversed(!1));var c=b?this.tc_.prevElement(this.grain):this.tc_.nextElement(this.grain);if(null==c)return this.objWalker_.next(a);var c=this.tc_.getCurrentCursorSelection().setReversed(b),d=this.objWalker_.next(a),d=d?d.setReversed(b):null;return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)|| +cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d}; +cvox.AbstractSelectionWalker.prototype.sync=function(a){var b=a.isReversed(),c=null;if(a.start.equals(a.end)&&"Text"!=a.start.node.constructor.name){for(c=a.start.node;c&&cvox.DomUtil.directedFirstChild(c,b)&&!cvox.TraverseUtil.treatAsLeafNode(c);){for(var d=cvox.DomUtil.directedFirstChild(c,b);d;)if(cvox.DomUtil.isVisible(d,{checkAncestors:!1,checkDescendants:!1})){c=d;break}else d=cvox.DomUtil.directedNextSibling(d,b);if(!d)break}c=cvox.CursorSelection.fromNode(c)}else c=a.clone(),b?c.start=c.end: +c.end=c.start;c=this.next(c.setReversed(!1));d=(d=this.objWalker_.sync(a))?d.setReversed(b):null;if(!c)return d;c.setReversed(b);return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d}; +cvox.AbstractSelectionWalker.prototype.getDescription=function(a,b){var c=cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getUniqueAncestors(a.end.node,b.start.node),!0,cvox.ChromeVox.verbosity);c.text=b.getText()||c.text;return[c]};cvox.AbstractSelectionWalker.prototype.getBraille=function(a,b){var c=b.absStart().node,d=cvox.TraverseUtil.getNodeText(c),e=new cvox.Spannable(d);e.setSpan(c,0,d.length);return new cvox.NavBraille({text:e,startIndex:b.absStart().index,endIndex:b.absEnd().index})};cvox.CharacterWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kCharacter};goog.inherits(cvox.CharacterWalker,cvox.AbstractSelectionWalker);cvox.CharacterWalker.prototype.getDescription=function(a,b){var c=cvox.CharacterWalker.superClass_.getDescription.call(this,a,b);c.forEach(function(a){a.personality||(a.personality={});a.personality.phoneticCharacters=!0});return c};cvox.CharacterWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("character_granularity")};cvox.GroupUtil={};cvox.GroupUtil.MAX_CHARCOUNT_=1500;cvox.GroupUtil.BREAKOUT_SELECTOR_='blockquote,button,code,form,frame,h1,h2,h3,h4,h5,h6,hr,iframe,input,object,ol,p,pre,select,table,tr,ul,math,span.math,[role~="alert alertdialog button checkbox combobox dialog log marquee menubar progressbar radio radiogroup scrollbar slider spinbutton status tab tabpanel textbox toolbar tooltip treeitem article document group heading img list math region row separator"]'; +cvox.GroupUtil.isLeafNode=function(a){if("LABEL"==a.tagName)return cvox.DomUtil.isLeafNode(a);if(cvox.DomUtil.isLeafNode(a))return!0;if(!cvox.DomUtil.isSemanticElt(a))for(var b=a.querySelectorAll(cvox.GroupUtil.BREAKOUT_SELECTOR_),c=0;c<b.length;++c)if(cvox.DomUtil.hasContent(b[c]))return!1;if(cvox.AriaUtil.isCompositeControl(a)&&!cvox.DomUtil.isFocusable(a))return!1;a=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a));return a.length>cvox.GroupUtil.MAX_CHARCOUNT_|| +""===a.replace(/\s/g,"")?!1:!0};cvox.GroupWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.GroupWalker,cvox.AbstractNodeWalker);cvox.GroupWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getCollectionDescription(a,b)};cvox.GroupWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};cvox.GroupWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("group_strategy")};cvox.GroupWalker.prototype.stopNodeDescent=function(a){return cvox.GroupUtil.isLeafNode(a)};cvox.StructuralLineWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kLine};goog.inherits(cvox.StructuralLineWalker,cvox.AbstractSelectionWalker);cvox.StructuralLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("structural_line")}; +cvox.StructuralLineWalker.prototype.getDescription=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getDescription.call(this,a,b);c[0].text=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index)+c[0].text;return c}; +cvox.StructuralLineWalker.prototype.getBraille=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getBraille.call(this,a,b),d=this.objWalker_.sync(b).absStart().node,e=a.absEnd().node,f=void 0;b.start.equals(b.end)||cvox.DomPredicates.editTextPredicate([d])||(f=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index),f+=b.getText());e=cvox.BrailleUtil.getTemplated(e,d,{name:f});e.setSpan(d,0,e.getLength());c.text=e;c.startIndex=0;c.endIndex=0;return c};cvox.LayoutLineWalker=function(){this.subWalker_=new cvox.StructuralLineWalker};goog.inherits(cvox.LayoutLineWalker,cvox.AbstractWalker);cvox.LayoutLineWalker.prototype.next=function(a){var b=new cvox.CursorSelection(a.end,a.end,a.isReversed()),c=this.subWalker_.sync(b);if(!c)return null;b=this.subWalker_.next(b);if(!b)return null;b.setReversed(a.isReversed());return this.extend_(b).setReversed(!1)}; +cvox.LayoutLineWalker.prototype.sync=function(a){var b=this.subWalker_.sync(a);if(!b)return null;var c=this.extend_(b),b=this.extend_(b.setReversed(!b.isReversed()));return new cvox.CursorSelection(b.end,c.end,a.isReversed())}; +cvox.LayoutLineWalker.prototype.getDescription=function(a,b){var c=[],d=a,e=b.clone().setReversed(!1),f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return[];if(e.start.node==e.end.node)return this.subWalker_.getDescription(a,b);for(;f&&!f.end.equals(e.end);)c.push.apply(c,this.subWalker_.getDescription(d,f)),d=f,f=this.subWalker_.next(f);f&&c.push.apply(c,this.subWalker_.getDescription(d,f));return c}; +cvox.LayoutLineWalker.prototype.getBraille=function(a,b){var c=new cvox.NavBraille({}),d=this.subWalker_.sync(b.clone().setReversed(!1)),e=this.sync(b).setReversed(!1);if(!e||!d)return c;var f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return c;for(;f&&!f.end.equals(e.end);)this.appendBraille_(a,d,f,c),a=f,f=this.subWalker_.next(f);f&&this.appendBraille_(a,d,f,c);return c};cvox.LayoutLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("layout_line")}; +cvox.LayoutLineWalker.prototype.isVisualLineBreak_=function(a,b){if(this.wantsOwnLine_(a.end.node)||this.wantsOwnLine_(b.start.node))return!0;var c=a.getRange().getBoundingClientRect(),d=b.getRange().getBoundingClientRect();0==c.width&&0==c.height&&a.end.node.nodeType==Node.ELEMENT_NODE&&(c=a.end.node.getBoundingClientRect());0==d.width&&0==d.height&&b.start.node.nodeType==Node.ELEMENT_NODE&&(d=b.start.node.getBoundingClientRect());return c.bottom!=d.bottom}; +cvox.LayoutLineWalker.prototype.wantsOwnLine_=function(a){return a instanceof HTMLTextAreaElement||a.parentNode instanceof HTMLTextAreaElement};cvox.LayoutLineWalker.prototype.extend_=function(a){var b=a,c=a;do b=c,c=this.subWalker_.next(b);while(c&&!this.isVisualLineBreak_(b,c));return new cvox.CursorSelection(a.start,b.end,a.isReversed())}; +cvox.LayoutLineWalker.prototype.appendBraille_=function(a,b,c,d){a=this.subWalker_.getBraille(a,c).text;var e=a.getSpanInstanceOf(cvox.BrailleUtil.ValueSelectionSpan);0<d.text.getLength()&&d.text.append(cvox.BrailleUtil.ITEM_SEPARATOR);for(var f=c.start.node;f.parentNode&&cvox.DomUtil.isLeafNode(f.parentNode);)f=f.parentNode;var g=d.text.getLength(),h=g+a.getLength();d.text.append(a.toString());d.text.setSpan(f,g,h);b&&c.absEquals(b)&&(e?(d.startIndex=g+a.getSpanStart(e),d.endIndex=g+a.getSpanEnd(e)): +(d.startIndex=g,d.endIndex=g+1))};cvox.ObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.ObjectWalker,cvox.AbstractNodeWalker);cvox.ObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AbstractNodeWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getDescriptionFromNavigation(a.end.node,b.start.node,!0,cvox.ChromeVox.verbosity)};cvox.ObjectWalker.prototype.getBraille=function(){throw"getBraille is unsupported";}; +cvox.ObjectWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("object_strategy")};cvox.SentenceWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kSentence};goog.inherits(cvox.SentenceWalker,cvox.AbstractSelectionWalker);cvox.SentenceWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("sentence_granularity")};cvox.WordWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kWord};goog.inherits(cvox.WordWalker,cvox.AbstractSelectionWalker);cvox.WordWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("word_granularity")};cvox.NavigationShifter=function(){this.reset_();cvox.AbstractShifter.call(this)};goog.inherits(cvox.NavigationShifter,cvox.AbstractShifter);cvox.NavigationShifter.GRANULARITIES={CHARACTER:0,WORD:1,LINE:2,SENTENCE:3,OBJECT:4,GROUP:5};cvox.NavigationShifter.prototype.storeOn=function(a){a.granularity=this.getGranularity()};cvox.NavigationShifter.prototype.readFrom=function(a){this.setGranularity(a.granularity)}; +cvox.NavigationShifter.prototype.next=function(a){a=this.currentWalker_.next(a);this.currentWalkerIndex_<=cvox.NavigationShifter.GRANULARITIES.LINE&&a&&(cvox.TraverseContent.getInstance().syncToCursorSelection(a.clone().setReversed(!1)),cvox.TraverseContent.getInstance().updateSelection());return a};cvox.NavigationShifter.prototype.sync=function(a){return this.currentWalker_.sync(a)};cvox.NavigationShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("navigation_shifter")}; +cvox.NavigationShifter.prototype.getDescription=function(a,b){return this.currentWalker_.getDescription(a,b)};cvox.NavigationShifter.prototype.getBraille=function(a,b){return this.lineWalker_.getBraille(a,b)};cvox.NavigationShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()}; +cvox.NavigationShifter.prototype.makeMoreGranular=function(){cvox.NavigationShifter.superClass_.makeMoreGranular.call(this);this.currentWalkerIndex_=Math.max(this.currentWalkerIndex_-1,0);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_--;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]}; +cvox.NavigationShifter.prototype.makeLessGranular=function(){cvox.NavigationShifter.superClass_.makeLessGranular.call(this);this.currentWalkerIndex_=Math.min(this.currentWalkerIndex_+1,this.walkers_.length-1);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_++;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]}; +cvox.NavigationShifter.prototype.setGranularity=function(a){this.ensureNotSubnavigating();this.currentWalkerIndex_=a;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.prototype.getGranularity=function(){var a=this.isSubnavigating();this.ensureNotSubnavigating();var b=this.currentWalkerIndex_;a&&this.ensureSubnavigating();return b}; +cvox.NavigationShifter.prototype.hasAction=function(a){return"toggleLineType"==a?!0:cvox.NavigationShifter.superClass_.hasAction.call(this,a)};cvox.NavigationShifter.create=function(){return new cvox.NavigationShifter}; +cvox.NavigationShifter.prototype.reset_=function(){this.groupWalker_=new cvox.GroupWalker;this.objectWalker_=new cvox.ObjectWalker;this.sentenceWalker_=new cvox.SentenceWalker;this.lineWalker_=new cvox.LayoutLineWalker;this.wordWalker_=new cvox.WordWalker;this.characterWalker_=new cvox.CharacterWalker;this.walkers_=[this.characterWalker_,this.wordWalker_,this.lineWalker_,this.sentenceWalker_,this.objectWalker_,this.groupWalker_];this.currentWalkerIndex_=this.walkers_.indexOf(this.groupWalker_);this.currentWalker_= +this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.allowSentence=!1;cvox.NavigationSpeaker=function(){this.stopReading=!1;this.id_=1}; +cvox.NavigationSpeaker.prototype.speakDescriptionArray=function(a,b,c){a=this.reorderAnnotations(a);this.stopReading=!1;this.id_=(this.id_+1)%1E4;var d=this,e=function(b,g,h){var k=a[b];if(k&&!d.stopReading&&d.id_==h){var l=function(){for(var a=0;a<k.earcons.length;a++)cvox.ChromeVox.earcons.playEarcon(k.earcons[a])},m=function(){e(b+1,cvox.AbstractTts.QUEUE_MODE_QUEUE,h)},p=function(){k.personality&&k.personality[cvox.AbstractTts.PAUSE]&&"number"==typeof k.personality[cvox.AbstractTts.PAUSE]?setTimeout(m, +k.personality[cvox.AbstractTts.PAUSE]):m();b==a.length-1&&c&&c()};k.isEmpty()?(l(),p()):(k.speak(g,l,p),cvox.ChromeVox.host.hasTtsCallback()||(l(),p()))}};e(0,b,this.id_);0==a.length&&c&&c()};cvox.NavigationSpeaker.structuredElement=function(a){switch(a){case "table":case "Math":return!0}return!1}; +cvox.NavigationSpeaker.prototype.reorderAnnotations=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];cvox.NavigationSpeaker.structuredElement(d.annotation)&&(b.push(new cvox.NavDescription({text:"",annotation:d.annotation})),d.annotation="");b.push(d)}return b};cvox.NavigationManager=function(){this.addInterframeListener_();this.reset()};cvox.NavigationManager.prototype.storeOn=function(a){a.reversed=this.isReversed();a.keepReading=this.keepReading_;a.findNext=this.predicate_;this.shifter_.storeOn(a)};cvox.NavigationManager.prototype.readFrom=function(a){this.curSel_.setReversed(a.reversed);this.shifter_.readFrom(a);a.keepReading&&this.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH)}; +cvox.NavigationManager.prototype.reset=function(){this.navSpeaker_=new cvox.NavigationSpeaker;this.shifterTypes_=[cvox.NavigationShifter,cvox.TableShifter,cvox.MathShifter];this.shifterStack_=[];this.shifter_=new cvox.NavigationShifter;this.curSel_=document.activeElement!=document.body?cvox.CursorSelection.fromNode(document.activeElement):this.shifter_.begin(this.curSel_,{reversed:!1});this.prevSel_=this.curSel_.clone();this.ignoreIframesNoMatterWhat_=this.exitedShifter_=this.enteredShifter_=this.pageEndAnnounced_= +this.pageEnd_=this.keepReading_=this.recovered_=this.skipped_=!1;this.pageSel_=null;this.predicate_="";this.saveSel_=null;this.activeIndicator&&this.activeIndicator.removeFromDom();this.activeIndicator=new cvox.ActiveIndicator;this.navigationHistory_=new cvox.NavigationHistory;this.focusRecovery_="chrome:"!=window.location.protocol;this.iframeIdMap={};this.nextIframeId=1;document.activeElement!=document.body&&this.sync();cvox.TraverseMath.getInstance()}; +cvox.NavigationManager.prototype.resolve=function(a){if(!this.getFocusRecovery())return!0;var b=this.getCurrentNode();if(!this.navigationHistory_.becomeInvalid(b)||this.hasNext_())return!0;b=this.navigationHistory_.revert(a);if(!b.current)return!0;a=cvox.CursorSelection.fromNode(b.current);b=cvox.CursorSelection.fromNode(b.previous);a=a||cvox.CursorSelection.fromBody();b=b||cvox.CursorSelection.fromBody();a.setReversed(this.isReversed());this.updateSel(a,b);this.recovered_=!0;return!1}; +cvox.NavigationManager.prototype.getFocusRecovery=function(){return this.focusRecovery_};cvox.NavigationManager.prototype.setFocusRecovery=function(a){this.focusRecovery_=a};cvox.NavigationManager.prototype.next_=function(a){return this.tryBoundaries_(this.shifter_.next(this.curSel_),a)?(this.pageSel_&&this.pageSel_.extend(this.curSel_),!0):!1}; +cvox.NavigationManager.prototype.hasNext_=function(){if(0<this.shifterStack_.length)return!0;var a=this.curSel_.clone(),b=!1,c=new cvox.NavigationShifter;c.setGranularity(this.shifter_.getGranularity());c.sync(a);c.next(a)&&(b=!0);return b}; +cvox.NavigationManager.prototype.findNext=function(a,b,c){this.predicate_=b||"";this.resolve();this.shifter_=this.shifterStack_[0]||this.shifter_;this.shifterStack_=[];a=cvox.FindUtil.findNext(this.curSel_,a,c);this.ignoreIframesNoMatterWhat_||this.tryIframe_(a&&a.start.node);a&&this.updateSelToArbitraryNode(a.start.node);this.predicate_="";return a};cvox.NavigationManager.prototype.sync=function(){this.resolve();var a=this.shifter_.sync(this.curSel_);a&&(this.curSel_=a)}; +cvox.NavigationManager.prototype.syncAll=function(a){this.sync();this.setFocus(a);this.updateIndicator()};cvox.NavigationManager.prototype.clearPageSel=function(a){var b=!!this.pageSel_;b&&a&&(a=cvox.ChromeVox.msgs.getMsg("clear_page_selection"),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION));this.pageSel_=null;return b}; +cvox.NavigationManager.prototype.togglePageSel=function(){this.pageSel_=this.pageSel_?null:new cvox.PageSelection(this.curSel_.setReversed(!1));return!!this.pageSel_}; +cvox.NavigationManager.prototype.getDescription=function(){if(this.getCurrentNode().hasAttribute&&this.getCurrentNode().hasAttribute("cvoxnodedesc")){for(var a=cvox.ChromeVoxJSON.parse(this.getCurrentNode().getAttribute("cvoxnodedesc")),b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b}var e=this.pageSel_?this.pageSel_.getDescription(this.shifter_,this.prevSel_,this.curSel_):this.shifter_.getDescription(this.prevSel_, +this.curSel_),a=[];this.skipped_&&(a.push(cvox.AbstractEarcons.PARAGRAPH_BREAK),this.skipped_=!1);this.recovered_&&(a.push(cvox.AbstractEarcons.FONT_CHANGE),this.recovered_=!1);this.pageEnd_&&(a.push(cvox.AbstractEarcons.WRAP),this.pageEnd_=!1);this.enteredShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_ENTER),this.enteredShifter_=!1);this.exitedShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_EXIT),this.exitedShifter_=!1);0<a.length&&0<e.length&&a.forEach(function(a){e[0].pushEarcon(a)});return e}; +cvox.NavigationManager.prototype.getBraille=function(){return cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.ANDROID|cvox.PlatformFilter.CHROMEOS)?this.shifter_.getBraille(this.prevSel_,this.curSel_):new cvox.NavBraille({})}; +cvox.NavigationManager.prototype.performAction=function(a){switch(a){case "enterShifter":case "enterShifterSilently":for(var b=this.shifterTypes_.length-1,c;c=this.shifterTypes_[b];b--)if((c=c.create(this.curSel_))&&c.getName()!=this.shifter_.getName()){this.shifterStack_.push(this.shifter_);this.shifter_=c;this.sync();this.enteredShifter_="enterShifterSilently"!=a;break}else if(c&&this.shifter_.getName()==c.getName())break;break;case "exitShifter":if(0==this.shifterStack_.length)return!1;this.shifter_= +this.shifterStack_.pop();this.sync();this.exitedShifter_=!0;break;case "exitShifterContent":if(0==this.shifterStack_.length)return!1;this.updateSel(this.shifter_.performAction(a,this.curSel_));this.shifter_=this.shifterStack_.pop()||this.shifter_;this.sync();this.exitedShifter_=!0;break;default:return this.shifter_.hasAction(a)?this.updateSel(this.shifter_.performAction(a,this.curSel_)):!1}return!0};cvox.NavigationManager.prototype.getGranularityMsg=function(){return this.shifter_.getGranularityMsg()}; +cvox.NavigationManager.prototype.makeMoreGranular=function(a){this.shifter_.makeMoreGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.makeLessGranular=function(a){this.shifter_.makeLessGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.setGranularity=function(a,b,c){!b&&0<this.shifterStack_.length||(this.shifter_=this.shifterStack_.shift()||this.shifter_,this.shifter_.setGranularity(a),this.persistGranularity_(c))}; +cvox.NavigationManager.prototype.getGranularity=function(){var a=this.shifterStack_[0]||this.shifter_;return a.getGranularity()};cvox.NavigationManager.prototype.ensureSubnavigating=function(){this.shifter_.isSubnavigating()||(this.shifter_.ensureSubnavigating(),this.sync())};cvox.NavigationManager.prototype.ensureNotSubnavigating=function(){this.shifter_.isSubnavigating()&&(this.shifter_.ensureNotSubnavigating(),this.sync())}; +cvox.NavigationManager.prototype.speakDescriptionArray=function(a,b,c,d){d&&a.every(function(a){a.personality||(a.personality=d)});this.navSpeaker_.speakDescriptionArray(a,b,c)};cvox.NavigationManager.prototype.updatePosition=function(a){var b=cvox.ChromeVox.position;b[document.location.href]=cvox.DomUtil.elementToPoint(a);JSON.stringify(b)}; +cvox.NavigationManager.prototype.finishNavCommand=function(a,b,c,d){if(this.pageEnd_&&!this.pageEndAnnounced_)this.pageEndAnnounced_=!0,cvox.ChromeVox.tts.stop(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),cvox.ChromeVox.verbosity===cvox.VERBOSITY_VERBOSE&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),this.isReversed()&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom")),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION));else{if(this.enteredShifter_|| +this.exitedShifter_)a=cvox.ChromeVox.msgs.getMsg("enter_content_say",[this.shifter_.getName()]);var e=cvox.ChromeVox.navigationManager.getDescription();(b=void 0===b?!0:b)&&this.setFocus();this.updateIndicator();b=c||cvox.AbstractTts.QUEUE_MODE_FLUSH;a&&(cvox.ChromeVox.tts.speak(a,b,cvox.AbstractTts.PERSONALITY_ANNOTATION),b=cvox.AbstractTts.QUEUE_MODE_QUEUE);this.speakDescriptionArray(e,b,d||null);this.getBraille().write();this.updatePosition(this.getCurrentNode())}}; +cvox.NavigationManager.prototype.navigate=function(a,b){this.pageEndAnnounced_=!1;if(this.pageEnd_)return this.pageEnd_=!1,this.syncToBeginning(a),!0;if(!this.resolve())return!1;this.ensureNotSubnavigating();void 0!==b&&(b!==this.getGranularity()||0<this.shifterStack_.length)&&(this.setGranularity(b,!0),this.sync());return this.next_(!a)};cvox.NavigationManager.prototype.subnavigate=function(){this.pageEndAnnounced_=!1;this.resolve()&&(this.ensureSubnavigating(),this.next_(!0))}; +cvox.NavigationManager.prototype.skip=function(){if(!this.keepReading_)return!1;cvox.ChromeVox.host.hasTtsCallback()&&(this.skipped_=!0,this.setReversed(!1),this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_FLUSH));return!0};cvox.NavigationManager.prototype.startReading=function(a){this.keepReading_=!0;cvox.ChromeVox.host.hasTtsCallback()?this.startCallbackReading_(a):this.startNonCallbackReading_(a);this.prevStickyState_=cvox.ChromeVox.isStickyOn}; +cvox.NavigationManager.prototype.stopReading=function(a){this.keepReading_=!1;this.navSpeaker_.stopReading=!0;a&&cvox.ChromeVox.tts.stop();void 0!=this.prevStickyState_&&(this.prevStickyState_=void 0)};cvox.NavigationManager.prototype.isReading=function(){return this.keepReading_}; +cvox.NavigationManager.prototype.startCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.finishNavCommand("",!0,a,goog.bind(function(){this.next_(!0)&&this.keepReading_&&this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_QUEUE)},this))}); +cvox.NavigationManager.prototype.startNonCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.keepReading_&&(cvox.ChromeVox.tts.isSpeaking()||(this.finishNavCommand("",!0,a,null),this.next_(!0)||(this.keepReading_=!1)),window.setTimeout(goog.bind(this.startNonCallbackReading_,this),1E3))}); +cvox.NavigationManager.prototype.getFullDescription=function(){return this.pageSel_?this.pageSel_.getFullDescription():[cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getAncestors(this.curSel_.start.node),!0,cvox.ChromeVox.verbosity)]};cvox.NavigationManager.prototype.setFocus=function(a){this.pageSel_||a&&this.curSel_.start.node.constructor==Text||cvox.Focuser.setFocus(this.curSel_.start.node)};cvox.NavigationManager.prototype.getCurrentNode=function(){return this.curSel_.absStart().node}; +cvox.NavigationManager.prototype.addInterframeListener_=function(){var a=this;cvox.Interframe.addListener(function(b){if("enterIframe"==b.command||"exitIframe"==b.command)cvox.ChromeVox.serializer.readFrom(b),a.keepReading_||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){window.focus();if(b.findNext){var c=b.findNext,d=cvox.DomPredicates[c],c=a.findNext(d,c,!0);if(d&&(!c||"IFRAME"==c.start.node.tagName))return}else if("exitIframe"==b.command)d=b.sourceId,d=a.iframeIdMap[d],c=b.reversed, +d&&a.updateSel(cvox.CursorSelection.fromNode(d)),a.setReversed(c),a.sync(),a.navigate();else if(a.syncToBeginning(),!cvox.DomUtil.hasContent(document.body)){a.tryIframe_(null);return}a.finishNavCommand("",!0)})()})};cvox.NavigationManager.prototype.updateIndicator=function(){this.activeIndicator.syncToCursorSelection(this.curSel_)};cvox.NavigationManager.prototype.updateIndicatorIfChanged=function(){this.activeIndicator.updateIndicatorIfChanged()}; +cvox.NavigationManager.prototype.showOrHideIndicator=function(a){a||this.activeIndicator.removeFromDom()};cvox.NavigationManager.prototype.collapseSelection=function(){this.curSel_.collapse()};cvox.NavigationManager.prototype.updateSelToArbitraryNode=function(a,b){a?(this.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0),this.updateSel(cvox.CursorSelection.fromNode(a)),b||this.sync()):this.syncToBeginning()}; +cvox.NavigationManager.prototype.updateSel=function(a,b){a&&(this.prevSel_=b||this.curSel_,this.curSel_=a);var c=this.getCurrentNode();this.navigationHistory_.update(c);return!!a};cvox.NavigationManager.prototype.setReversed=function(a){this.curSel_.setReversed(a)};cvox.NavigationManager.prototype.isReversed=function(){return this.curSel_.isReversed()}; +cvox.NavigationManager.prototype.tryBoundaries_=function(a,b){b=!!b&&!this.ignoreIframesNoMatterWhat_||!1;this.pageEnd_=!1;if(b&&this.tryIframe_(a&&a.start.node))return!0;if(a)return this.updateSel(a),!0;if(0<this.shifterStack_.length)return!0;this.syncToBeginning(!b);this.clearPageSel(!0);this.stopReading(!0);this.pageEnd_=!0;return!1}; +cvox.NavigationManager.prototype.tryIframe_=function(a){if(null==a&&cvox.Interframe.isIframe()){var b={command:"exitIframe",reversed:this.isReversed(),granularity:this.getGranularity()};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToParentWindow(b);return!0}if(null==a||"IFRAME"!=a.tagName||!a.src)return!1;var c=void 0;for(b in this.iframeIdMap)if(this.iframeIdMap[b]==a){c=b;break}void 0==c&&(c=this.nextIframeId,this.nextIframeId++,this.iframeIdMap[c]=a,cvox.Interframe.sendIdToIFrame(c, +a));b={command:"enterIframe",id:c};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToIFrame(b,a);return!0};cvox.NavigationManager.prototype.syncToBeginning=function(a){var b=this.shifter_.begin(this.curSel_,{reversed:this.curSel_.isReversed()});!a&&this.tryIframe_(b&&b.start.node)||this.updateSel(b)};cvox.NavigationManager.prototype.ignoreIframesNoMatterWhat=function(){this.ignoreIframesNoMatterWhat_=!0};cvox.NavigationManager.prototype.saveSel=function(){this.saveSel_=this.curSel_}; +cvox.NavigationManager.prototype.restoreSel=function(){this.curSel_=this.saveSel_||this.curSel_};cvox.NavigationManager.prototype.persistGranularity_=function(a){(a=void 0===a?!1:a)&&this.getGranularity()};cvox.SearchWidget=function(){this.txtNode_=this.containerNode_=null;this.PROMPT_="Search:";this.hasMatch_=this.caseSensitive_=!1;cvox.Widget.call(this)};goog.inherits(cvox.SearchWidget,cvox.Widget);goog.addSingletonGetter(cvox.SearchWidget); +cvox.SearchWidget.prototype.show=function(){cvox.SearchWidget.superClass_.show.call(this);this.active=!0;this.hasMatch_=!1;cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);cvox.ChromeVox.navigationManager.setReversed(!1);this.focusRecovery_=cvox.ChromeVox.navigationManager.getFocusRecovery();cvox.ChromeVox.navigationManager.setFocusRecovery(!1);var a=this.createContainerNode_();this.containerNode_=a;var b=this.createOverlayNode_();a.appendChild(b); +var c=document.createElement("span");c.innerHTML=this.PROMPT_;b.appendChild(c);this.txtNode_=this.createTextAreaNode_();b.appendChild(this.txtNode_);document.body.appendChild(a);this.txtNode_.focus();window.setTimeout(function(){a.style.opacity="1.0"},0)}; +cvox.SearchWidget.prototype.hide=function(a){if(this.isActive()){var b=this.containerNode_;b.style.opacity="0.0";window.setTimeout(function(){document.body.removeChild(b)},1E3);this.txtNode_=null;cvox.SearchWidget.containerNode=null;cvox.ChromeVox.navigationManager.setFocusRecovery(this.focusRecovery_);this.active=!1}cvox.$m("choice_widget_exited").andPause().andMessage(this.getNameMsg()).speakFlush();this.hasMatch_&&a||cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode);cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll, +cvox.ChromeVox.navigationManager))(!0);cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),cvox.AbstractTts.QUEUE_MODE_QUEUE,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=this.textFromCurrentDescription_();cvox.ChromeVox.braille.write(new cvox.NavBraille({text:a,startIndex:0,endIndex:0}));cvox.SearchWidget.superClass_.hide.call(this,!0)};cvox.SearchWidget.prototype.getNameMsg=function(){return["search_widget_intro"]}; +cvox.SearchWidget.prototype.getHelpMsg=function(){return"search_widget_intro_help"}; +cvox.SearchWidget.prototype.onKeyDown=function(a){if(!this.isActive())return!1;var b=this.txtNode_.value;if(8==a.keyCode)0<b.length?(b=b.substring(0,b.length-1),this.txtNode_.value=b,this.beginSearch_(b)):(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode),cvox.ChromeVox.navigationManager.syncAll());else if(40==a.keyCode)this.next_(b,!1);else if(38==a.keyCode)this.next_(b,!0);else if(13==a.keyCode)this.hide(!0);else if(27==a.keyCode)this.hide(!1);else if(a.ctrlKey&&67==a.keyCode)this.toggleCaseSensitivity_(); +else return cvox.SearchWidget.superClass_.onKeyDown.call(this,a);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onKeyPress=function(a){if(!this.isActive())return!1;this.txtNode_.value+=String.fromCharCode(a.charCode);var b=this.txtNode_.value;this.beginSearch_(b);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onNavigate=function(){};cvox.SearchWidget.prototype.getPredicate=function(){return null}; +cvox.SearchWidget.prototype.nextResult=function(a){if(!this.isActive())return null;var b=this.txtNode_.value;return this.next_(b,a)};cvox.SearchWidget.prototype.createContainerNode_=function(){var a=document.createElement("div");a.id="cvox-search";a.style.position="fixed";a.style.top="50%";a.style.left="50%";a.style["-webkit-transition"]="all 0.3s ease-in";a.style.opacity="0.0";a.style["z-index"]="2147483647";a.setAttribute("aria-hidden","true");return a}; +cvox.SearchWidget.prototype.createOverlayNode_=function(){var a=document.createElement("div");a.style.position="relative";a.style.left="-50%";a.style.top="-40px";a.style["line-height"]="1.2em";a.style["font-size"]="20px";a.style.padding="30px";a.style["min-width"]="150px";a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["border-radius"]="10px";return a}; +cvox.SearchWidget.prototype.createTextAreaNode_=function(){var a=document.createElement("textarea");a.setAttribute("aria-hidden","true");a.setAttribute("rows","1");a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["vertical-align"]="middle";a.addEventListener("textInput",this.handleSearchChanged_,!1);return a}; +cvox.SearchWidget.prototype.toggleCaseSensitivity_=function(){this.caseSensitive_?(cvox.SearchWidget.caseSensitive_=!1,cvox.ChromeVox.tts.speak("Ignoring case.",0,null)):(this.caseSensitive_=!0,cvox.ChromeVox.tts.speak("Case sensitive.",0,null))}; +cvox.SearchWidget.prototype.getNextResult_=function(a){var b=cvox.ChromeVox.navigationManager.isReversed();this.caseSensitive_||(a=a.toLowerCase());cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);do{if(this.getPredicate()){var c=this.getPredicate()(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()));if(!c)continue}for(var c=cvox.ChromeVox.navigationManager.getDescription(),d=0;d<c.length;d++){var e=this.caseSensitive_?c[d].text: +c[d].text.toLowerCase(),f=e.indexOf(a);-1!=f&&e.length>a.length&&(c[d].text=cvox.DomUtil.collapseWhitespace(e.substring(0,f))+", "+a+", "+e.substring(f+a.length),c[d].text=cvox.DomUtil.collapseWhitespace(c[d].text));if(-1!=f)return c}cvox.ChromeVox.navigationManager.setReversed(b)}while(cvox.ChromeVox.navigationManager.navigate(!0,cvox.NavigationShifter.GRANULARITIES.OBJECT))};cvox.SearchWidget.prototype.beginSearch_=function(a){var b=this.getNextResult_(a);this.outputSearchResult_(b,a);this.onNavigate()}; +cvox.SearchWidget.prototype.next_=function(a,b){cvox.ChromeVox.navigationManager.setReversed(!!b);var c=!1;this.getPredicate()?(c=cvox.ChromeVox.navigationManager.findNext(this.getPredicate()),cvox.ChromeVox.navigationManager.setReversed(!!b),c||(cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),c=!0)):c=cvox.ChromeVox.navigationManager.navigate(!0);c=c?this.getNextResult_(a):null;this.outputSearchResult_(c,a);this.onNavigate();return c}; +cvox.SearchWidget.prototype.outputSearchResult_=function(a,b){cvox.ChromeVox.tts.stop();a?(this.hasMatch_=!0,cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,cvox.ChromeVox.navigationManager))(!0),cvox.ChromeVox.navigationManager.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("search_help_item"),cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION), +this.outputSearchResultToBraille_(b)):(cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),this.hasMatch_=!1)}; +cvox.SearchWidget.prototype.outputSearchResultToBraille_=function(a){if(cvox.ChromeVox.braille){var b=this.textFromCurrentDescription_(),c=this.caseSensitive_?b:b.toLowerCase();a=this.caseSensitive_?a:a.toLowerCase();c=c.indexOf(a);if(-1==c)console.log("Search string not in result when preparing for Braille.");else{var d=b.length,b=cvox.ChromeVox.msgs.getMsg("mark_as_search_result_brl",[b]),e=b.length,c=c+(e-d);cvox.ChromeVox.braille.write(new cvox.NavBraille({text:b,startIndex:c+a.length,endIndex:c+ +a.length}))}}};cvox.SearchWidget.prototype.textFromCurrentDescription_=function(){for(var a=cvox.ChromeVox.navigationManager.getDescription(),b="",c=0;c<a.length;c++)b+=a[c].text+" ";return b};cvox.SearchWidget.prototype.handleSearchChanged_=function(a){a=a.target.value+a.data;cvox.SearchWidget.prototype.beginSearch_(a)};cvox.OverlayWidget=function(a){cvox.SearchWidget.call(this);this.snippet_=a};goog.inherits(cvox.OverlayWidget,cvox.SearchWidget); +cvox.OverlayWidget.prototype.show=function(){cvox.OverlayWidget.superClass_.show.call(this);var a=document.createElement("DIV");a.innerHTML=this.snippet_;var b=cvox.DomUtil.elementToPoint(cvox.ChromeVox.navigationManager.getCurrentNode());a.style.position="absolute";a.style.left=b.x;a.style.top=b.y;document.body.appendChild(a);cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a);this.host_=a};cvox.OverlayWidget.prototype.hide=function(){this.host_.remove();cvox.OverlayWidget.superClass_.hide.call(this)}; +cvox.OverlayWidget.prototype.onKeyDown=function(a){cvox.OverlayWidget.superClass_.onKeyDown.call(this,a);if(13==a.keyCode||27==a.keyCode)return!0;a=cvox.ChromeVox.navigationManager.isReversed();cvox.DomUtil.isDescendantOfNode(cvox.ChromeVox.navigationManager.getCurrentNode(),this.host_)||(a?cvox.ChromeVox.navigationManager.syncToBeginning():cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.host_),this.onNavigate(),cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(), +0,null))};cvox.KeyboardHelpWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");var a=cvox.ChromeVoxKbHandler.handlerKeyMap;a.bindings().forEach(goog.bind(function(a){var c=a.command;a=a.sequence;var d=c;try{var e=cvox.CommandStore.messageForCommand(c);if(!e)return;d=cvox.ChromeVox.msgs.getMsg(e)}catch(f){}e=document.createElement("p");e.id=c;e.setAttribute("role","menuitem");e.textContent=d+" - "+cvox.KeyUtil.keySequenceToString(a,!0);this.container_.appendChild(e)}, +this))};goog.inherits(cvox.KeyboardHelpWidget,cvox.OverlayWidget);goog.addSingletonGetter(cvox.KeyboardHelpWidget);cvox.KeyboardHelpWidget.prototype.show=function(){cvox.KeyboardHelpWidget.superClass_.show.call(this);this.host_.appendChild(this.container_)};cvox.KeyboardHelpWidget.prototype.getNameMsg=function(){return["keyboard_help_intro"]}; +cvox.KeyboardHelpWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;this.hide();cvox.ChromeVoxEventSuspender.withSuspendedEvents(cvox.ChromeVoxUserCommands.commands[b])();a.preventDefault();a.stopPropagation();return!0}return cvox.KeyboardHelpWidget.superClass_.onKeyDown.call(this,a)};goog.object={};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){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;c<d.length&&(a=a[d[c]],goog.isDef(a));c++);return a};goog.object.containsKey=function(a,b){return 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(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 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.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(a.clone)return a.clone();var b="array"==b?[]:{},c;for(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)};cvox.UserEventDetail=function(a){this.command=this.category="";-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)&&(this.command=a.command,this.category=cvox.UserEventDetail.Category.JUMP);this.customCommand="";a.customCommand&&(this.customCommand=a.customCommand,this.category=cvox.UserEventDetail.Category.CUSTOM);this.status=cvox.UserEventDetail.Status.PENDING;switch(a.status){case cvox.UserEventDetail.Status.SUCCESS:this.status=cvox.UserEventDetail.Status.SUCCESS;break;case cvox.UserEventDetail.Status.FAILURE:this.status= +cvox.UserEventDetail.Status.FAILURE}this.resultNode=null;a.resultNode&&cvox.DomUtil.isAttachedToDocument(a.resultNode)&&(this.resultNode=a.resultNode)};cvox.UserEventDetail.Category={JUMP:"ATJumpEvent",CUSTOM:"ATCustomEvent"};cvox.UserEventDetail.Status={PENDING:"PENDING",SUCCESS:"SUCCESS",FAILURE:"FAILURE"};cvox.UserEventDetail.JUMP_COMMANDS="nextCheckbox previousCheckbox nextRadio previousRadio nextSlider previousSlider nextGraphic previousGraphic nextButton previousButton nextComboBox previousComboBox nextEditText previousEditText nextHeading previousHeading nextHeading1 previousHeading1 nextHeading2 previousHeading2 nextHeading3 previousHeading3 nextHeading4 previousHeading4 nextHeading5 previousHeading5 nextHeading6 previousHeading6 nextLink previousLink nextMath previousMath nextTable previousTable nextList previousList nextListItem previousListItem nextFormField previousFormField nextLandmark previousLandmark nextSection previousSection nextControl previousControl".split(" "); +cvox.UserEventDetail.prototype.createEventObject=function(){var a=document.createEvent("CustomEvent");a.initCustomEvent(this.category,!0,!0,this);return a};var extractMenuList_=function(a){for(;a!==document;){var b=a.getAttribute("contextMenuActions");if(b)return JSON.parse(b);a=a.parentNode}return null},getCurrentElement_=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a.nodeType!==Node.ELEMENT_NODE;)a=a.parentNode;return a}; +cvox.ContextMenuWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");this.triggerElement_=getCurrentElement_();(this.menuList=extractMenuList_(this.triggerElement_))?this.menuList.forEach(goog.bind(function(a){if(a.desc||a.cmd){var b=a.desc;a=a.cmd;var c=document.createElement("p");c.id=a;c.textContent=b;c.setAttribute("role","menuitem");this.container_.appendChild(c)}},this)):console.log("No context menu found.")};goog.inherits(cvox.ContextMenuWidget,cvox.OverlayWidget); +cvox.ContextMenuWidget.prototype.show=function(){this.menuList&&(cvox.ContextMenuWidget.superClass_.show.call(this),this.host_.appendChild(this.container_))};cvox.ContextMenuWidget.prototype.getNameMsg=function(){return["context_menu_intro"]}; +cvox.ContextMenuWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode(),b=b.parentNode.id,b=new cvox.UserEventDetail({customCommand:b}),b=b.createEventObject();this.triggerElement_.dispatchEvent(b);this.hide();a.preventDefault();a.stopPropagation();return!0}return cvox.ContextMenuWidget.superClass_.onKeyDown.call(this,a)};cvox.NodeSearchWidget=function(a,b){this.typeMsg_=a;this.predicate_=b;cvox.SearchWidget.call(this)};goog.inherits(cvox.NodeSearchWidget,cvox.SearchWidget);cvox.NodeSearchWidget.prototype.getNameMsg=function(){return["choice_widget_name",[cvox.ChromeVox.msgs.getMsg(this.typeMsg_)]]};cvox.NodeSearchWidget.prototype.getHelpMsg=function(){return"choice_widget_help"};cvox.NodeSearchWidget.prototype.getPredicate=function(){return this.predicate_}; +cvox.NodeSearchWidget.create=function(a,b){return new cvox.NodeSearchWidget(a,b)};cvox.SelectWidget=function(a){cvox.OverlayWidget.call(this,"");this.selectNode_=a};goog.inherits(cvox.SelectWidget,cvox.OverlayWidget); +cvox.SelectWidget.prototype.show=function(){cvox.SelectWidget.superClass_.show.call(this);var a=document.createElement("div");a.setAttribute("role","menu");for(var b=0,c=null;c=this.selectNode_.options[b];b++){var d=document.createElement("p");d.innerHTML=c.innerHTML;d.id=b;d.setAttribute("role","menuitem");a.appendChild(d)}this.host_.appendChild(a);b=this.selectNode_.selectedIndex;"number"==typeof b&&cvox.ChromeVox.syncToNode(a.children[b],!0)}; +cvox.SelectWidget.prototype.hide=function(){var a=document.createEvent("Event");a.initEvent("change",!1,!1);this.selectNode_.dispatchEvent(a);cvox.SelectWidget.superClass_.hide.call(this,!0)};cvox.SelectWidget.prototype.onNavigate=function(){var a=this;cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;a.selectNode_.selectedIndex=b})()};cvox.SelectWidget.prototype.getNameMsg=function(){return["aria_role_menu"]};cvox.FocusUtil=function(){};cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE={hidden:!1,text:!0,search:!0,tel:!0,url:!0,email:!0,password:!0,datetime:!1,date:!1,month:!1,week:!1,time:!1,"datetime-local":!1,number:!1,range:!1,color:!1,checkbox:!1,radio:!1,file:!1,submit:!1,image:!1,reset:!1,button:!1}; +cvox.FocusUtil.isFocusInTextInputField=function(){var a=document.activeElement;return a?a.isContentEditable||"textbox"==a.getAttribute("role")?!0:"true"==a.getAttribute("readOnly")?!1:"TEXTAREA"===a.tagName||"SELECT"===a.tagName?!0:"INPUT"===a.tagName?a.hasAttribute("type")?(a=a.getAttribute("type").toLowerCase(),cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE[a]):!0:!1:!1};cvox.SpokenListBuilder=function(){this.list_=[]};cvox.SpokenListBuilder.prototype.flush=function(a){this.list_.push([a,cvox.AbstractTts.QUEUE_MODE_FLUSH]);return this};cvox.SpokenListBuilder.prototype.build=function(){return this.list_};cvox.RunnerInterface=function(){};cvox.RunnerInterface.prototype.setFocus=function(){};cvox.AbstractTestCase=function(){};cvox.TestTts=function(){cvox.AbstractTts.call(this);this.utterances_=[]};goog.inherits(cvox.TestTts,cvox.AbstractTts);cvox.TestTts.prototype.sentinelText_="@@@STOP@@@";cvox.TestTts.prototype.speak=function(a,b,c){this.utterances_.push({text:a,queueMode:b});c&&void 0!=c.endCallback&&(a=this.utterances_.length,this.utterances_[a-1].text!=this.sentinelText_&&c.endCallback())};cvox.HostFactory.ttsConstructor=cvox.TestTts;cvox.AutoRunner=function(){new cvox.TestTts};cvox.AutoRunner.TestSummary=function(a,b,c,d){this.tag=a;this.status=c;this.scope=d};cvox.AutoRunner.PASS="pass";cvox.AutoRunner.FAIL="fail";cvox.AutoRunner.prototype.setFocus=function(a){document.getElementById(a).focus();return this};cvox.ChromeVoxUserCommands={};cvox.ChromeVoxUserCommands.init_=function(){if(!cvox.ChromeVoxUserCommands.commands){cvox.ChromeVoxUserCommands.commands={};for(var a in cvox.CommandStore.CMD_WHITELIST)cvox.ChromeVoxUserCommands.commands[a]=cvox.ChromeVoxUserCommands.createCommand_(a)}};cvox.ChromeVoxUserCommands.wasMouseClicked=!1;cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage=!0; +cvox.ChromeVoxUserCommands.handleTabAction_=function(){cvox.ChromeVox.tts.stop();if(!cvox.ChromeVox.navigationManager.resolve(cvox.DomUtil.isFocusable))return cvox.ChromeVox.navigationManager.setFocus(),!1;var a=cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_();if(a)return!0;var b=a=null,b=window.getSelection();cvox.ChromeVoxUserCommands.wasMouseClicked?cvox.ChromeVoxUserCommands.wasMouseClicked=!1:b=null;null==b||null==b.anchorNode||null==b.focusNode?(a=cvox.ChromeVox.navigationManager.getCurrentNode(), +b=cvox.ChromeVox.navigationManager.getCurrentNode()):(a=b.anchorNode,b=b.focusNode);if(null==a||null==b)return!0;if(cvox.DomUtil.isFocusable(a))return a.focus(),!0;if(cvox.DomUtil.isFocusable(b))return b.focus(),!0;if(cvox.DomUtil.isFocusable(a.parentNode))return a.parentNode.focus(),!0;if(cvox.DomUtil.isFocusable(b.parentNode))return b.parentNode.focus(),!0;b=cvox.ChromeVoxUserCommands.createTabDummySpan_();a.parentNode.insertBefore(b,a);b.focus();return!0}; +cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_=function(){var a="A";return document.activeElement.tagName==a||cvox.DomUtil.isControl(document.activeElement)?!0:!1};cvox.ChromeVoxUserCommands.removeTabDummySpan=function(){var a=document.getElementById("ChromeVoxTabDummySpan");a&&document.activeElement!=a&&a.parentNode.removeChild(a)};cvox.ChromeVoxUserCommands.createTabDummySpan_=function(){var a=document.createElement("span");a.id="ChromeVoxTabDummySpan";a.tabIndex=-1;return a}; +cvox.ChromeVoxUserCommands.createCommand_=function(a){return goog.bind(function(b){b=cvox.ChromeVoxUserCommands.lookupCommand_(a,b);return cvox.ChromeVoxUserCommands.dispatchCommand_(b)},cvox.ChromeVoxUserCommands)}; +cvox.ChromeVoxUserCommands.dispatchCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField())return!0;if(cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage&&-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)){a=new cvox.UserEventDetail({command:a.command});a=a.createEventObject();var b=cvox.ChromeVox.navigationManager.getCurrentNode();b||(b=document.body);b.dispatchEvent(a);return!1}return cvox.ChromeVoxUserCommands.doCommand_(a)}; +cvox.ChromeVoxUserCommands.doCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField()||a.disallowOOBE&&document.URL.match(/^chrome:\/\/oobe/i))return!0;var b=a.command;a.allowEvents||cvox.ChromeVoxEventSuspender.enterSuspendEvents();a.disallowContinuation&&cvox.ChromeVox.navigationManager.stopReading(!0);a.forward?cvox.ChromeVox.navigationManager.setReversed(!1):a.backward&&cvox.ChromeVox.navigationManager.setReversed(!0); +a.findNext&&(b="find",a.announce=!0);var c="",d="",e=!1;switch(b){case "handleTab":case "handleTabPrev":e=cvox.ChromeVoxUserCommands.handleTabAction_();break;case "forward":case "backward":e=!cvox.ChromeVox.navigationManager.navigate();break;case "right":case "left":cvox.ChromeVox.navigationManager.subnavigate();break;case "find":if(!a.findNext)throw"Invalid find command.";var f=cvox.CommandStore.NODE_INFO_MAP[a.findNext],g=f.predicate,h=cvox.DomPredicates[g],k="",l="";a.forward?(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"), +k=cvox.ChromeVox.msgs.getMsg(f.forwardError)):a.backward&&(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom"),k=cvox.ChromeVox.msgs.getMsg(f.backwardError));var f=null,m=a.status||cvox.UserEventDetail.Status.PENDING,p=a.resultNode||null;switch(m){case cvox.UserEventDetail.Status.SUCCESS:p&&cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(p,!0);break;case cvox.UserEventDetail.Status.FAILURE:d=k;break;default:f=cvox.ChromeVox.navigationManager.findNext(h,g),f||(cvox.ChromeVox.navigationManager.saveSel(), +d=l,cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),f=cvox.ChromeVox.navigationManager.findNext(h,g,!0),f||(d=k,cvox.ChromeVox.navigationManager.restoreSel()))}f&&"IFRAME"==f.start.node.tagName&&(a.announce=!1);break;case "previousGranularity":cvox.ChromeVox.navigationManager.makeLessGranular(!0);d=cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "nextGranularity":cvox.ChromeVox.navigationManager.makeMoreGranular(!0);d= +cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "previousCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "nextCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "previousWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);break;case "nextWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD); +break;case "previousSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "nextSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "previousLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "nextLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "previousObject":cvox.ChromeVox.navigationManager.navigate(!1, +cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "nextObject":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "previousGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "nextGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "previousRow":case "previousCol":b="previousRow"==b?"nextRow":"nextCol";case "nextRow":case "nextCol":cvox.ChromeVox.navigationManager.performAction("enterShifterSilently"); +cvox.ChromeVox.navigationManager.performAction(b);break;case "moveToStartOfLine":case "moveToEndOfLine":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.LINE);cvox.ChromeVox.navigationManager.sync();cvox.ChromeVox.navigationManager.collapseSelection();break;case "readFromHere":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!0);cvox.ChromeVox.navigationManager.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH);break;case "cycleTypingEcho":break; +case "jumpToTop":case cvox.BrailleKeyCommand.TOP:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "jumpToBottom":case cvox.BrailleKeyCommand.BOTTOM:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "stopSpeech":cvox.ChromeVox.navigationManager.stopReading(!0);break;case "toggleKeyboardHelp":cvox.KeyboardHelpWidget.getInstance().toggle();break;case "help":cvox.ChromeVox.tts.stop();break;case "contextMenu":g=cvox.ChromeVox.navigationManager.getCurrentNode();"SELECT"!=g.tagName|| +g.multiple?(g=new cvox.ContextMenuWidget,g.toggle()):(new cvox.SelectWidget(g)).show();break;case "showBookmarkManager":break;case "showOptionsPage":cvox.ChromeVox.tts.stop();break;case "showKbExplorerPage":cvox.ChromeVox.tts.stop();break;case "readLinkURL":g=document.activeElement;h=window.getSelection().anchorNode;k="";"A"==g.tagName?k=cvox.DomUtil.getLinkURL(g):h&&(k=cvox.DomUtil.getLinkURL(h.parentNode));""!=k?cvox.ChromeVox.tts.speak(k):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_url_found")); +break;case "readCurrentTitle":cvox.ChromeVox.tts.speak(document.title);break;case "readCurrentURL":cvox.ChromeVox.tts.speak(document.URL);break;case "performDefaultAction":cvox.DomPredicates.linkPredicate([document.activeElement])&&(a.announce=!0,cvox.DomUtil.isInternalLink(document.activeElement)&&(cvox.DomUtil.syncInternalLink(document.activeElement),cvox.ChromeVox.navigationManager.sync()));break;case "forceClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode(); +cvox.DomUtil.clickElem(g,!1,!1);break;case "forceDoubleClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_double_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.clickElem(g,!1,!1,!0);break;case "toggleChromeVox":break;case "fullyDescribe":g=cvox.ChromeVox.navigationManager.getFullDescription();cvox.ChromeVox.navigationManager.speakDescriptionArray(g,cvox.AbstractTts.QUEUE_MODE_FLUSH,null);break;case "speakTimeAndDate":g=new Date;cvox.ChromeVox.tts.speak(g.toLocaleTimeString()+ +", "+g.toLocaleDateString());break;case "toggleSelection":d=cvox.ChromeVox.navigationManager.togglePageSel();d=cvox.ChromeVox.msgs.getMsg(d?"begin_selection":"end_selection");break;case "startHistoryRecording":cvox.History.getInstance().startRecording();break;case "stopHistoryRecording":cvox.History.getInstance().stopRecording();break;case "enableConsoleTts":cvox.ConsoleTts.getInstance().setEnabled(!0);break;case "goToFirstCell":case "goToLastCell":case "goToRowFirstCell":case "goToRowLastCell":case "goToColFirstCell":case "goToColLastCell":case "announceHeaders":case "speakTableLocation":case "exitShifterContent":cvox.DomPredicates.tablePredicate(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()))&& +cvox.ChromeVox.navigationManager.performAction(b)||(c="not_inside_table");break;case "enterShifter":case "exitShifter":cvox.ChromeVox.navigationManager.performAction(b);break;case "decreaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!1);break;case "increaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!0);break;case "decreaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,!1);break;case "increaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH, +!0);break;case "decreaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!1);break;case "increaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!0);break;case "cyclePunctuationEcho":break;case "toggleStickyMode":break;case "toggleKeyPrefix":cvox.ChromeVox.keyPrefixOn=!cvox.ChromeVox.keyPrefixOn;break;case "toggleSearchWidget":cvox.SearchWidget.getInstance().toggle();break;case "toggleEarcons":d=cvox.ChromeVox.earcons.toggle()?cvox.ChromeVox.msgs.getMsg("earcons_on"): +cvox.ChromeVox.msgs.getMsg("earcons_off");break;case "showHeadingsList":case "showLinksList":case "showFormsList":case "showTablesList":case "showLandmarksList":if(!a.nodeList)break;g=cvox.CommandStore.NODE_INFO_MAP[a.nodeList];cvox.NodeSearchWidget.create(g.typeMsg,cvox.DomPredicates[g.predicate]).show();break;case "openLongDesc":g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.hasLongDesc(g)||cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_long_desc"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION);break;case "pauseAllMedia":k=document.getElementsByTagName("VIDEO");for(g=0;h=k[g];g++)h.pause();k=document.getElementsByTagName("AUDIO");for(g=0;h=k[g];g++)h.pause();break;case "toggleSemantics":cvox.TraverseMath.toggleSemantic()?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_on")):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_off"));break;case cvox.BrailleKeyCommand.ROUTING:g=cvox.ChromeVox.navigationManager.getBraille(); +g=g.text.getSpans(a.displayPosition||0);g=g.filter(function(a){return a instanceof Node})[0];cvox.DomUtil.clickElem(g||cvox.ChromeVox.navigationManager.getCurrentNode(),!1,!0);break;case cvox.BrailleKeyCommand.PAN_LEFT:case cvox.BrailleKeyCommand.LINE_UP:case cvox.BrailleKeyCommand.PAN_RIGHT:case cvox.BrailleKeyCommand.LINE_DOWN:cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "debug":break;case "nop":break;default:throw"Command behavior not defined: "+ +b;}""!=c?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(c),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION):cvox.ChromeVox.navigationManager.isReading()?a.disallowContinuation?cvox.ChromeVox.navigationManager.stopReading(!0):"readFromHere"!=b&&cvox.ChromeVox.navigationManager.skip():a.announce&&cvox.ChromeVox.navigationManager.finishNavCommand(d);a.allowEvents||cvox.ChromeVoxEventSuspender.exitSuspendEvents();return!!a.doDefault||e}; +cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent=function(a){a=new cvox.UserEventDetail(a.detail);a.command&&cvox.ChromeVoxUserCommands.doCommand_(cvox.ChromeVoxUserCommands.lookupCommand_(a.command,a))};cvox.ChromeVoxUserCommands.lookupCommand_=function(a,b){var c=cvox.CommandStore.CMD_WHITELIST[a];if(!c)throw"Invalid command: "+a;c=goog.object.clone(c);c.command=a;b&&goog.object.extend(c,b);return c};cvox.ChromeVoxUserCommands.init_();cvox.ChromeVoxKbHandler={};cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable=function(a){window.JSON&&(cvox.ChromeVoxKbHandler.handlerKeyMap=cvox.KeyMap.fromJSON(a))};cvox.ChromeVoxKbHandler.sortKeyToFunctionsTable_=function(a){function b(a,b){return a[0].length<b[0].length?-1:b[0].length<a[0].length?1:a[0].localeCompare(b[0])}var c=[],d;for(d in a)c.push([d,a[d]]);c.sort(b);return c}; +cvox.ChromeVoxKbHandler.basicKeyDownActionsListener=function(a){var b=cvox.KeyUtil.keyEventToKeySequence(a);a=void 0!=cvox.ChromeVoxKbHandler.handlerKeyMap?cvox.ChromeVoxKbHandler.handlerKeyMap.commandForKey(b):null;if(!a)return!cvox.KeyUtil.sequencing;if(!cvox.ChromeVox.isActive&&"toggleChromeVox"!=a)return!0;var c=!0,d=cvox.ChromeVoxUserCommands.commands[a];d?(b=cvox.History.getInstance(),b.enterUserCommand(a),c=d(),b.exitUserCommand(a)):b.cvoxModifier&&(c=!1);cvox.ChromeVox.entireDocumentIsHidden&& +(c=!0);return c};cvox.LiveRegions=function(){};cvox.LiveRegions.pageLoadTime=null;cvox.LiveRegions.INITIAL_SILENCE_MS=2E3;cvox.LiveRegions.lastAnnouncedMap={};cvox.LiveRegions.MAX_DISCARD_DUPS_MS=2E3;cvox.LiveRegions.lastAnnouncedTime=null;cvox.LiveRegions.nodesAlreadyHandled=[]; +cvox.LiveRegions.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.pageLoadTime=a;if(c||!document.hasFocus())return!1;var d=!1;a=cvox.AriaUtil.getLiveRegions(document.body);for(c=0;c<a.length;c++)cvox.LiveRegions.handleOneChangedNode(a[c],a[c],!1,!1,function(a,c){a||b!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);var g=new cvox.NavigationSpeaker;g.speakDescriptionArray(c,b,null);d=!0});cvox.Interframe.addListener(function(a){if("speakLiveRegion"== +a.command)for(var b=document.getElementsByTagName("iframe"),c=0,d;d=b[c];c++)if(d.src==a.src){if(!cvox.DomUtil.isVisible(d))break;d=JSON.parse(a.content);for(var k=[],l=0,m;m=d[l];l++)k.push(new cvox.NavDescription(m));(new cvox.NavigationSpeaker).speakDescriptionArray(k,a.queueMode,null)}});return d}; +cvox.LiveRegions.processMutations=function(a,b){cvox.LiveRegions.nodesAlreadyHandled=[];a.forEach(function(a){if(!a.target.hasAttribute||!a.target.hasAttribute("cvoxIgnore")){if(a.addedNodes)for(var d=0;d<a.addedNodes.length;d++)a.addedNodes[d].hasAttribute&&a.addedNodes[d].hasAttribute("cvoxIgnore")||cvox.LiveRegions.handleOneChangedNode(a.addedNodes[d],a.target,!1,!0,b);if(a.removedNodes)for(d=0;d<a.removedNodes.length;d++)a.removedNodes[d].hasAttribute&&a.removedNodes[d].hasAttribute("cvoxIgnore")|| +cvox.LiveRegions.handleOneChangedNode(a.removedNodes[d],a.target,!0,!1,b);"characterData"==a.type&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!1,b);if("class"==a.attributeName||"style"==a.attributeName||"hidden"==a.attributeName){var e=a.attributeName,d=a.target,f=!cvox.DomUtil.isVisible(d),g=document.createElement("div");g.setAttribute("cvoxIgnore","1");g.setAttribute("class",d.getAttribute("class"));g.setAttribute("style",d.getAttribute("style"));g.setAttribute("hidden",d.getAttribute("hidden")); +g.setAttribute(e,a.oldValue);e=!0;d.parentElement?(d.parentElement.appendChild(g),e=!cvox.DomUtil.isVisible(g),d.parentElement.removeChild(g)):e=!cvox.DomUtil.isVisible(g);!0===e&&!1===f?cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!0,b):!1===e&&!0===f&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!0,!1,b)}}});cvox.LiveRegions.nodesAlreadyHandled.length=0}; +cvox.LiveRegions.handleOneChangedNode=function(a,b,c,d,e){var f=c?b:a;f instanceof Element||(f=f.parentElement);for(;f&&!cvox.AriaUtil.getAriaLive(f);)f=f.parentElement;if(!f){if(d&&a!=document.body)for(a=cvox.AriaUtil.getLiveRegions(a),d=0;d<a.length;d++)cvox.LiveRegions.handleOneChangedNode(a[d],b,c,!1,e)}else if(!(0<=cvox.LiveRegions.nodesAlreadyHandled.indexOf(a)||(cvox.LiveRegions.nodesAlreadyHandled.push(a),cvox.AriaUtil.getAriaBusy(f)))){if(c){if(!cvox.AriaUtil.getAriaRelevant(f,"removals"))return}else if(!cvox.AriaUtil.getAriaRelevant(f, +"additions"))return;cvox.LiveRegions.announceChange(a,f,c,e)}}; +cvox.LiveRegions.announceChange=function(a,b,c,d){var e=new Date-cvox.LiveRegions.pageLoadTime;if(!("alert"!=cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS)&&cvox.DomUtil.isVisible(b)){if(a!=b)for(var f=a.parentElement;f;){(cvox.AriaUtil.getAriaAtomic(f)||cvox.AriaUtil.isLeafElement(f)||cvox.AriaUtil.isControlWidget(f))&&!cvox.AriaUtil.isCompositeControl(f)&&(a=f);if(f==b)break;f=f.parentElement}a=cvox.LiveRegions.getNavDescriptionsRecursive(a);if(0!=a.length){c&&(a=[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"), +text:""})].concat(a));if("alert"==cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS){c="";for(e=0;e<a.length;e++)c+=a[e].text,c+=a[e].userValue;if(""==cvox.DomUtil.collapseWhitespace(c))return}c=new Date;for(var g in cvox.LiveRegions.lastAnnouncedMap)c-cvox.LiveRegions.lastAnnouncedMap[g]>cvox.LiveRegions.MAX_DISCARD_DUPS_MS&&delete cvox.LiveRegions.lastAnnouncedMap[g];g=a.reduce(function(a,b){return a+"|"+b.text},"");cvox.LiveRegions.lastAnnouncedMap[g]||(cvox.LiveRegions.lastAnnouncedMap[g]= +c,b="assertive"==cvox.AriaUtil.getAriaLive(b),cvox.Interframe.isIframe()&&!document.hasFocus()?cvox.Interframe.sendMessageToParentWindow({command:"speakLiveRegion",content:JSON.stringify(a),queueMode:b?0:1,src:window.location.href}):d(b,a))}}}; +cvox.LiveRegions.getNavDescriptionsRecursive=function(a){return cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)?(a=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity),a.isEmpty()?[]:[a]):cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a)};cvox.LiveRegionsDeprecated=function(){};cvox.LiveRegionsDeprecated.trackedRegions=[];cvox.LiveRegionsDeprecated.previousRegionValue=[];cvox.LiveRegionsDeprecated.pageLoadTime=null;cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS=2E3; +cvox.LiveRegionsDeprecated.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegionsDeprecated.pageLoadTime=a;a=!1;for(var d=cvox.AriaUtil.getLiveRegions(document.body),e=0;e<d.length;e++)cvox.LiveRegionsDeprecated.updateLiveRegion(d[e],b,c)&&(a=!0,b=cvox.AbstractTts.QUEUE_MODE_QUEUE);return a}; +cvox.LiveRegionsDeprecated.updateLiveRegion=function(a,b,c){if(cvox.AriaUtil.getAriaBusy(a)||!cvox.DomUtil.isVisible(a))return!1;var d=cvox.LiveRegionsDeprecated.trackedRegions.indexOf(a),e;0<=d?e=cvox.LiveRegionsDeprecated.previousRegionValue[d]:(d=cvox.LiveRegionsDeprecated.trackedRegions.length,e=[],cvox.LiveRegionsDeprecated.trackedRegions.push(a),cvox.LiveRegionsDeprecated.previousRegionValue.push([]));var f=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(a),g=new Date-cvox.LiveRegionsDeprecated.pageLoadTime; +if("alert"!=cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS)return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1;if("alert"==cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS){for(var h="",g=0;g<f.length;g++)h+=f[g].text,h+=f[g].userValue;if(""==cvox.DomUtil.collapseWhitespace(h))return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1}for(var k={},g=0;g<e.length;g++)k[e[g].toString()]=!0;for(var l={},g=0;g<f.length;g++)l[f[g].toString()]= +!0;h=[];if(cvox.AriaUtil.getAriaRelevant(a,"additions"))for(g=0;g<f.length;g++)k[f[g].toString()]||h.push(f[g]);k=[];if(cvox.AriaUtil.getAriaRelevant(a,"removals"))for(g=0;g<e.length;g++)l[e[g].toString()]||k.push(e[g]);e=[];e=0==h.length&&0<k.length?[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),text:""})].concat(k):h;cvox.LiveRegionsDeprecated.previousRegionValue[d]=f;if(c||0==e.length)return!1;a=cvox.AriaUtil.getAriaLive(a);"polite"==a&&(b=cvox.AbstractTts.QUEUE_MODE_QUEUE); +for(g=0;g<e.length;g++)e[g].speak(b),b=cvox.AbstractTts.QUEUE_MODE_QUEUE;return!0}; +cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue=function(a){if(cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)){var b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity);return b.isEmpty()?[]:[b]}var c=[],b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!1,cvox.ChromeVox.verbosity);b.isEmpty()||c.push(b);for(b=0;b<a.childNodes.length;b++){var d=a.childNodes[b];cvox.DomUtil.isVisible(d,{checkAncestors:!1})&&!cvox.AriaUtil.isHidden(d)&&(d=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(d), +c=c.concat(d))}return c};cvox.ChromeVoxEventWatcherUtil={};cvox.ChromeVoxEventWatcher=function(){};cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_=50;cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_=10;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_=1E3;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_=3;cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_=5;cvox.ChromeVoxEventWatcher.shouldEchoKeys=!0;cvox.ChromeVoxEventWatcher.processing_=!1; +cvox.ChromeVoxEventWatcher.init=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=null;cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=null;cvox.ChromeVoxEventWatcher.eventToEat=null;cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;cvox.ChromeVoxEventWatcher.lastKeypressTime=0;cvox.ChromeVoxEventWatcher.listeners_= +[];cvox.ChromeVoxEventWatcher.mutationObserver_=null;cvox.ChromeVoxEventWatcher.focusFollowsMouse=!1;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=500;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.lastEventTime=0;cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.readyCallbacks_=[];cvox.ChromeVox.searchKeyHeld=!1;cvox.ChromeVoxEventWatcher.textMutationObserver_=null;cvox.ChromeVoxEventWatcher.addEventListeners_(a); +cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=0;cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=0};cvox.ChromeVoxEventWatcher.storeOn=function(a){a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld};cvox.ChromeVoxEventWatcher.readFrom=function(a){cvox.ChromeVox.searchKeyHeld=a.searchKeyHeld}; +cvox.ChromeVoxEventWatcher.addEvent=function(a){if(!cvox.ChromeVox.isActive||document.webkitHidden)return!1;cvox.ChromeVoxEventWatcher.events_.push(a);cvox.ChromeVoxEventWatcher.lastEventTime=(new Date).getTime();-1==cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime&&(cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=(new Date).getTime());cvox.ChromeVoxEventWatcher.queueProcessingScheduled_||(cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!0,window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_, +cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_))};cvox.ChromeVoxEventWatcher.addReadyCallback=function(a){cvox.ChromeVoxEventWatcher.readyCallbacks_.push(a);cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()};cvox.ChromeVoxEventWatcher.hasPendingEvents_=function(){return-1!=cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime||cvox.ChromeVoxEventWatcher.queueProcessingScheduled_};cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1; +cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_=function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_||(cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!0,window.setTimeout(function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;!cvox.ChromeVoxEventWatcher.hasPendingEvents_()&&!cvox.ChromeVoxEventWatcher.queueProcessingScheduled_&&0<cvox.ChromeVoxEventWatcher.readyCallbacks_.length&&(cvox.ChromeVoxEventWatcher.readyCallbacks_.shift()(),cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_())}, +5))}; +cvox.ChromeVoxEventWatcher.addEventListeners_=function(a){cvox.ChromeVoxEventWatcher.addEventListener_(a,"keydown",cvox.ChromeVoxEventWatcher.keyDownEventWatcher,!0);if(cvox.ChromeVox.isActive&&!cvox.ChromeVox.entireDocumentIsHidden)if(cvox.ChromeVoxEventWatcher.addEventListener_(a,"keypress",cvox.ChromeVoxEventWatcher.keyPressEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"keyup",cvox.ChromeVoxEventWatcher.keyUpEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,cvox.UserEventDetail.Category.JUMP, +cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent,!1),cvox.ChromeVoxEventWatcher.addEventListener_(a,"focus",cvox.ChromeVoxEventWatcher.focusEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"blur",cvox.ChromeVoxEventWatcher.blurEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"change",cvox.ChromeVoxEventWatcher.changeEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"copy",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a, +"cut",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"paste",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"select",cvox.ChromeVoxEventWatcher.selectEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"webkitvisibilitychange",cvox.ChromeVoxEventWatcher.visibilityChangeWatcher,!0),cvox.ChromeVoxEventWatcher.events_=[],cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1,cvox.ChromeVoxEventWatcher.addEventListener_(a, +"mouseover",cvox.ChromeVoxEventWatcher.mouseOverEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"mouseout",cvox.ChromeVoxEventWatcher.mouseOutEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"click",cvox.ChromeVoxEventWatcher.mouseClickEventWatcher,!0),"undefined"!=typeof WebKitMutationObserver){cvox.ChromeVoxEventWatcher.mutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.mutationHandler);var b=null;a.documentElement?b=a.documentElement:a.document&& +a.document.documentElement&&(b=a.document.documentElement);b&&cvox.ChromeVoxEventWatcher.mutationObserver_.observe(b,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!0,characterDataOldValue:!0})}else cvox.ChromeVoxEventWatcher.addEventListener_(a,"DOMSubtreeModified",cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher,!0)}; +cvox.ChromeVoxEventWatcher.cleanup=function(a){for(var b=0;b<cvox.ChromeVoxEventWatcher.listeners_.length;b++){var c=cvox.ChromeVoxEventWatcher.listeners_[b];a.removeEventListener(c.type,c.listener,c.useCapture)}cvox.ChromeVoxEventWatcher.listeners_=[];cvox.ChromeVoxEventWatcher.currentDateHandler&&cvox.ChromeVoxEventWatcher.currentDateHandler.shutdown();cvox.ChromeVoxEventWatcher.currentTimeHandler&&cvox.ChromeVoxEventWatcher.currentTimeHandler.shutdown();cvox.ChromeVoxEventWatcher.currentMediaHandler&& +cvox.ChromeVoxEventWatcher.currentMediaHandler.shutdown();cvox.ChromeVoxEventWatcher.mutationObserver_&&cvox.ChromeVoxEventWatcher.mutationObserver_.disconnect();cvox.ChromeVoxEventWatcher.mutationObserver_=null};cvox.ChromeVoxEventWatcher.addEventListener_=function(a,b,c,d){cvox.ChromeVoxEventWatcher.listeners_.push({type:b,listener:c,useCapture:d});a.addEventListener(b,c,d)};cvox.ChromeVoxEventWatcher.getLastFocusedNode=function(){return cvox.ChromeVoxEventWatcher.lastFocusedNode}; +cvox.ChromeVoxEventWatcher.setLastFocusedNode_=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=a;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=a?cvox.DomUtil.getControlValueAndStateString(a):null}; +cvox.ChromeVoxEventWatcher.mutationHandler=function(a){if(cvox.ChromeVoxEventSuspender.areEventsSuspended())return!0;cvox.ChromeVox.navigationManager.updateIndicatorIfChanged();cvox.LiveRegions.processMutations(a,function(a,c){var d=new window.Event("LiveRegion");d.navDescriptions=c;d.assertive=a;cvox.ChromeVoxEventWatcher.addEvent(d);return!0})}; +cvox.ChromeVoxEventWatcher.mouseClickEventWatcher=function(a){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.WML)&&!a.fromCvox&&cvox.ApiImplementation.syncToNode(a.target,!0);return cvox.ChromeVox.host.mustRedispatchClickEvent()&&!a.fromCvox?(cvox.ChromeVoxUserCommands.wasMouseClicked=!0,a.stopPropagation(),a.preventDefault(),cvox.Focuser.setFocus(cvox.ChromeVox.navigationManager.getCurrentNode()),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.ChromeVox.navigationManager.getCurrentNode(),cvox.DomUtil.clickElem(a,!1,!0),!1):cvox.ChromeVoxUserCommands.wasMouseClicked=!0}; +cvox.ChromeVoxEventWatcher.mouseOverEventWatcher=function(a){if(!cvox.ChromeVoxEventWatcher.focusFollowsMouse||cvox.DomUtil.isDescendantOfNode(cvox.ChromeVoxEventWatcher.announcedMouseOverNode,a.target)||a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode)return!0;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=a.target;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null);if(a.target.tagName&& +"BODY"==a.target.tagName)return cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null,!0;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=window.setTimeout(function(){cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;if(a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode){cvox.ChromeVox.navigationManager.stopReading(!0);var b=a.target;cvox.Focuser.setFocus(b);cvox.ApiImplementation.syncToNode(b,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.ChromeVoxEventWatcher.announcedMouseOverNode= +b}},cvox.ChromeVoxEventWatcher.mouseoverDelayMs);return!0};cvox.ChromeVoxEventWatcher.mouseOutEventWatcher=function(a){a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode&&(cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null));return!0}; +cvox.ChromeVoxEventWatcher.focusEventWatcher=function(a){cvox.ChromeVoxUserCommands.removeTabDummySpan();cvox.ChromeVoxEventSuspender.areEventsSuspended()?a.target&&a.target.nodeType==Node.ELEMENT_NODE&&cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a.target):cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.focusHandler=function(a){if(a.target&&a.target.hasAttribute&&"true"==a.target.getAttribute("aria-hidden")&&"true"!=a.target.getAttribute("chromevoxignoreariahidden"))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.setUpTextHandler();else if(a.target&&a.target!=window){var b=a.target,c=cvox.DomUtil.getSurroundingControl(b);if(c&&c==cvox.ChromeVoxEventWatcher.lastFocusedNode)cvox.ChromeVoxEventWatcher.handleControlChanged(b);else{c?cvox.ChromeVoxEventWatcher.setLastFocusedNode_(c): +cvox.ChromeVoxEventWatcher.setLastFocusedNode_(b);c=cvox.ChromeVoxEventWatcher.queueMode_();if(cvox.ChromeVoxEventWatcher.getInitialVisibility()||cvox.ChromeVoxEventWatcher.handleDialogFocus(b))c=cvox.AbstractTts.QUEUE_MODE_QUEUE;cvox.ChromeVox.navigationManager.clearPageSel(!0)&&(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ApiImplementation.syncToNode(b,!document.webkitHidden,c);if(a.target.constructor==HTMLVideoElement||a.target.constructor==HTMLAudioElement)cvox.ChromeVoxEventWatcher.setUpMediaHandler_(); +else{if(a.target.hasAttribute)switch(a=a.target.getAttribute("type"),a){case "time":cvox.ChromeVoxEventWatcher.setUpTimeHandler_();return;case "date":case "month":case "week":cvox.ChromeVoxEventWatcher.setUpDateHandler_();return}cvox.ChromeVoxEventWatcher.setUpTextHandler()}}}else cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null)}; +cvox.ChromeVoxEventWatcher.blurEventWatcher=function(a){window.setTimeout(function(){document.activeElement||(cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.addEvent(a))},0);return!0}; +cvox.ChromeVoxEventWatcher.keyDownEventWatcher=function(a){cvox.ChromeVox.isChromeOS&&91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!0);a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld&&cvox.ChromeVox.isActive;a.stickyMode=cvox.ChromeVox.isStickyOn&&cvox.ChromeVox.isActive;a.keyPrefix=cvox.ChromeVox.keyPrefixOn&&cvox.ChromeVox.isActive;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVoxEventWatcher.eventToEat=null;if(!cvox.ChromeVoxKbHandler.basicKeyDownActionsListener(a)||cvox.ChromeVoxEventWatcher.handleControlAction(a))return a.preventDefault(), +a.stopPropagation(),cvox.ChromeVoxEventWatcher.eventToEat=a,!1;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.keyUpEventWatcher=function(a){91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!1);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.stopPropagation(),a.preventDefault(),!1):!0}; +cvox.ChromeVoxEventWatcher.keyPressEventWatcher=function(a){var b=document.location.href,c=cvox.TypingEcho.shouldSpeakChar(cvox.ChromeVox.typingEcho);"undefined"!==typeof cvox.ChromeVox.keyEcho[b]&&(c=cvox.ChromeVox.keyEcho[b]);cvox.ChromeVoxEditableTextBase.eventTypingEcho&&c&&cvox.DomPredicates.editTextPredicate([document.activeElement])&&"password"!==document.activeElement.type&&(b=(new Date).getTime(),150<b-cvox.ChromeVoxEventWatcher.lastKeypressTime&&cvox.ChromeVox.tts.stop(),cvox.ChromeVoxEventWatcher.lastKeypressTime= +b,cvox.ChromeVox.tts.speak(String.fromCharCode(a.charCode),1,{relativeRate:2}));cvox.ChromeVoxEventWatcher.addEvent(a);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.preventDefault(),a.stopPropagation(),!1):!0};cvox.ChromeVoxEventWatcher.changeEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.clipboardEventWatcher=function(a){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(a.type).toLowerCase());var b="";switch(a.type){case "paste":b=a.clipboardData.getData("text");break;case "copy":case "cut":b=window.getSelection().toString()}cvox.ChromeVox.tts.speak(b,cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ChromeVox.navigationManager.clearPageSel();return!0}; +cvox.ChromeVoxEventWatcher.changeHandler=function(a){cvox.ChromeVoxEventWatcher.setUpTextHandler()||document.activeElement==a.target&&cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement)};cvox.ChromeVoxEventWatcher.selectEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher=function(a){if(!a||!a.target)return!0;cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.visibilityChangeWatcher=function(){cvox.ChromeVoxEventWatcher.initialVisibility=!document.webkitHidden;document.webkitHidden&&cvox.ChromeVox.navigationManager.stopReading(!0)};cvox.ChromeVoxEventWatcher.getInitialVisibility=function(){var a=cvox.ChromeVoxEventWatcher.initialVisibility;cvox.ChromeVoxEventWatcher.initialVisibility=!1;return a}; +cvox.ChromeVoxEventWatcher.speakLiveRegion_=function(a,b){var c=cvox.ChromeVoxEventWatcher.queueMode_();a||c!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);var d=new cvox.NavigationSpeaker;d.speakDescriptionArray(b,c,null)}; +cvox.ChromeVoxEventWatcher.subtreeModifiedHandler=function(a){var b=(new Date).getTime();if(cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_+cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_>b){if(cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_++,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_>cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_)return}else cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=b,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_= +1;if(a&&a.target)for(a=a.target,a=cvox.AriaUtil.getLiveRegions(a),b=0;b<a.length&&b<cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_;b++)cvox.LiveRegionsDeprecated.updateLiveRegion(a[b],cvox.ChromeVoxEventWatcher.queueMode_(),!1)}; +cvox.ChromeVoxEventWatcher.setUpTextHandler=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);if(a!=cvox.ChromeVoxEventWatcher.currentTextControl){cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("click", +cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.textMutationObserver_&&(cvox.ChromeVoxEventWatcher.textMutationObserver_.disconnect(),cvox.ChromeVoxEventWatcher.textMutationObserver_=null));cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;if(null==a)return!1;if(a.constructor==HTMLInputElement&&cvox.DomUtil.isInputTypeText(a)&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler= +new cvox.ChromeVoxEditableHTMLInput(a,cvox.ChromeVox.tts);else if(a.constructor==HTMLTextAreaElement&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableTextArea(a,cvox.ChromeVox.tts);else if(a.isContentEditable||"textbox"==a.getAttribute("role"))cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableContentEditable(a,cvox.ChromeVox.tts); +cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("click",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),window.WebKitMutationObserver&&(cvox.ChromeVoxEventWatcher.textMutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.onTextMutation),cvox.ChromeVoxEventWatcher.textMutationObserver_.observe(cvox.ChromeVoxEventWatcher.currentTextControl, +{childList:!0,attributes:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1})),cvox.ChromeVoxEventSuspender.areEventsSuspended()||cvox.ChromeVox.navigationManager.updateSel(cvox.CursorSelection.fromNode(cvox.ChromeVoxEventWatcher.currentTextControl)));return null!=cvox.ChromeVoxEventWatcher.currentTextHandler}};cvox.ChromeVoxEventWatcher.handleTextChanged=function(a){if(cvox.ChromeVoxEventWatcher.currentTextHandler){var b=cvox.ChromeVoxEventWatcher.currentTextHandler;b.update(a);return!0}return!1}; +cvox.ChromeVoxEventWatcher.onTextMutation=function(){cvox.ChromeVoxEventWatcher.currentTextHandler&&window.setTimeout(function(){cvox.ChromeVoxEventWatcher.handleTextChanged(!1)},cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_)}; +cvox.ChromeVoxEventWatcher.handleControlChanged=function(a){var b=cvox.DomUtil.getControlValueAndStateString(a),c=cvox.DomUtil.getSurroundingControl(a),d=!1;if(a!=cvox.ChromeVoxEventWatcher.lastFocusedNode&&(null==c||c!=cvox.ChromeVoxEventWatcher.lastFocusedNode))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a);else if(b==cvox.ChromeVoxEventWatcher.lastFocusedNodeValue)return;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=b;if(cvox.DomPredicates.checkboxPredicate([a])||cvox.DomPredicates.radioPredicate([a]))d= +!0,a.checked?cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_ON):cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_OFF);"SELECT"==a.tagName&&(d=!0);if("INPUT"==a.tagName)switch(a.type){case "color":case "datetime":case "datetime-local":case "range":d=!0}a.hasAttribute&&a.hasAttribute("role")&&(d=!0);c&&c!=a&&document.activeElement==a?(cvox.ApiImplementation.syncToNode(a,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH),d=!1):cvox.AriaUtil.getActiveDescendant(a)&&(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(cvox.AriaUtil.getActiveDescendant(a), +!0),d=!0);d&&!cvox.ChromeVoxEventSuspender.areEventsSuspended()&&(cvox.ChromeVox.tts.speak(b,cvox.ChromeVoxEventWatcher.queueMode_(),null),cvox.NavBraille.fromText(b).write())}; +cvox.ChromeVoxEventWatcher.handleControlAction=function(a){if(!cvox.ChromeVox.isActive)return!1;var b=a.target;if("SELECT"==b.tagName&&1>=b.size&&(13==a.keyCode||32==a.keyCode))return a.preventDefault(),a.stopPropagation(),!0;if("INPUT"==b.tagName&&"range"==b.type){var c=parseFloat(b.value),d;b.step&&0<b.step?d=b.step:b.min&&b.max?(d=b.max-b.min,d=2<d&&31>d?1:(b.max-b.min)/10):d=1;if(37==a.keyCode||38==a.keyCode)c-=d;else if(39==a.keyCode||40==a.keyCode)c+=d;b.max&&c>b.max&&(c=b.max);b.min&&c<b.min&& +(c=b.min);b.value=c}return!1}; +cvox.ChromeVoxEventWatcher.handleDialogFocus=function(a){for(;a;){if(a.hasAttribute){var b=a.getAttribute("role");if("dialog"==b||"alertdialog"==b)break}a=a.parentElement}if(a==cvox.ChromeVox.navigationManager.currentDialog)return!1;if(cvox.ChromeVox.navigationManager.currentDialog&&!a){if(!cvox.DomUtil.isDescendantOfNode(document.activeElement,cvox.ChromeVox.navigationManager.currentDialog))return cvox.ChromeVox.navigationManager.currentDialog=null,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("exiting_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION),!0}else if(a)return cvox.ChromeVox.navigationManager.currentDialog=a,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("entering_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a),b=new cvox.NavigationSpeaker,b.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,null),!0;return!1}; +cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess=function(a,b,c){a=c-a;b=c-b;return a<cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_&&b<cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_};cvox.ChromeVoxEventWatcher.queueMode_=function(){return cvox.ChromeVoxEventWatcher.processing_?cvox.AbstractTts.QUEUE_MODE_QUEUE:cvox.AbstractTts.QUEUE_MODE_FLUSH}; +cvox.ChromeVoxEventWatcher.processQueue_=function(){if(0!=cvox.ChromeVoxEventWatcher.events_.length){var a=cvox.ChromeVoxEventWatcher.events_,b=-1,c=0,d,e;for(e=0;d=a[e];e++)"focus"==d.type&&(b=e,c=d.timeStamp);cvox.ChromeVoxEventWatcher.events_=[];for(e=0;d=a[e];e++){var f=a[e-1]||{};!(e>=b||"LiveRegion"==d.type||"DOMSubtreeModified"==d.type)||"focus"==f.type&&"change"==d.type||cvox.ChromeVoxEventWatcher.events_.push(d)}cvox.ChromeVoxEventWatcher.events_.sort(function(a,b){return"LiveRegion"!=b.type&& +"LiveRegion"==a.type||"DOMSubtreeModified"!=b.type&&"DOMSubtreeModified"==a.type?1:-1});a=(new Date).getTime();if(0<=b&&cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess(c,cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime,a))window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_);else{for(e=0;d=cvox.ChromeVoxEventWatcher.events_[e];e++)cvox.ChromeVoxEventWatcher.handleEvent_(d),cvox.ChromeVoxEventWatcher.processing_=!0;cvox.ChromeVoxEventWatcher.processing_= +!1;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()}}}; +cvox.ChromeVoxEventWatcher.handleEvent_=function(a){switch(a.type){case "keydown":cvox.ChromeVoxEventWatcher.setUpTextHandler();if(cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.handleTextChanged(!0),(a=cvox.ChromeVoxEventWatcher.currentTextHandler)&&a.lastChangeDescribed))break;cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement);break;case "keypress":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "focus":cvox.ChromeVoxEventWatcher.focusHandler(a); +break;case "blur":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "change":cvox.ChromeVoxEventWatcher.changeHandler(a);break;case "select":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "LiveRegion":cvox.ChromeVoxEventWatcher.speakLiveRegion_(a.assertive,a.navDescriptions);break;case "DOMSubtreeModified":cvox.ChromeVoxEventWatcher.subtreeModifiedHandler(a)}}; +cvox.ChromeVoxEventWatcher.setUpTimeHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentTimeHandler=a.constructor==HTMLInputElement&&a.type&&"time"==a.type?new cvox.ChromeVoxHTMLTimeWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentTimeHandler}; +cvox.ChromeVoxEventWatcher.setUpMediaHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentMediaHandler=a.constructor==HTMLVideoElement||a.constructor==HTMLAudioElement?new cvox.ChromeVoxHTMLMediaWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentMediaHandler}; +cvox.ChromeVoxEventWatcher.setUpDateHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentDateHandler=a.constructor!=HTMLInputElement||!a.type||"date"!=a.type&&"month"!=a.type&&"week"!=a.type?null:new cvox.ChromeVoxHTMLDateWidget(a,cvox.ChromeVox.tts);return null!=cvox.ChromeVoxEventWatcher.currentDateHandler};cvox.Serializer=function(){};cvox.Serializer.prototype.storeOn=function(a){cvox.ChromeVox.storeOn(a);cvox.ChromeVoxEventWatcher.storeOn(a)};cvox.Serializer.prototype.readFrom=function(a){cvox.ChromeVox.readFrom(a);cvox.ChromeVoxEventWatcher.readFrom(a)};cvox.InitGlobals=function(){}; +cvox.InitGlobals.initGlobals=function(){cvox.ChromeVox.host||(cvox.ChromeVox.host=cvox.HostFactory.getHost());cvox.ChromeVox.tts=(new cvox.CompositeTts).add(cvox.HostFactory.getTts()).add(cvox.History.getInstance()).add(cvox.ConsoleTts.getInstance());cvox.ChromeVox.braille||(cvox.ChromeVox.braille=cvox.HostFactory.getBraille());cvox.ChromeVox.mathJax=cvox.HostFactory.getMathJax();cvox.ChromeVox.earcons=cvox.HostFactory.getEarcons();cvox.ChromeVox.msgs=cvox.HostFactory.getMsgs();cvox.ChromeVox.isActive= +!0;cvox.ChromeVox.navigationManager=new cvox.NavigationManager;cvox.ChromeVox.navigationManager.updateIndicator();cvox.ChromeVox.syncToNode=cvox.ApiImplementation.syncToNode;cvox.ChromeVox.speakNode=cvox.ApiImplementation.speakNode;cvox.ChromeVox.serializer=new cvox.Serializer;cvox.ChromeVox.host.init();cvox.ChromeVoxEventWatcher.init(window);cvox.ChromeVox.executeUserCommand=function(a){cvox.ChromeVoxUserCommands.commands[a]()};cvox.ChromeVox.host.onPageLoad()};cvox.ChromeVoxInit={};cvox.ChromeVox.initTimeout_=100;cvox.ChromeVox.recallInit_=function(a){window.console.log(a+" Will try again in "+cvox.ChromeVox.initTimeout_+"ms");window.setTimeout(cvox.ChromeVox.initDocument,cvox.ChromeVox.initTimeout_);cvox.ChromeVox.initTimeout_*=2}; +cvox.ChromeVox.initDocument=function(){document.body?(cvox.ChromeVox.host=cvox.HostFactory.getHost(),cvox.ChromeVox.host.ttsLoaded()?(window.console.log("Starting ChromeVox."),cvox.InitGlobals.initGlobals(),window.disableChromeVox=function(){cvox.ChromeVox.host.killChromeVox()}):cvox.ChromeVox.recallInit_("ChromeVox not starting; waiting for TTS. "+document.location.href+".")):cvox.ChromeVox.recallInit_("ChromeVox not starting on unloaded page: "+document.location.href+".")}; +cvox.ChromeVox.reinit=function(){cvox.ChromeVox.host.reinit();cvox.ChromeVox.initDocument()};cvox.AndroidBraille=function(){};goog.inherits(cvox.AndroidBraille,cvox.AbstractBraille);cvox.AndroidBraille.prototype.write=function(a){accessibility.braille&&accessibility.braille(JSON.stringify(a.toJson()))};cvox.HostFactory.brailleConstructor=cvox.AndroidBraille;cvox.AndroidEarcons=function(){cvox.AbstractEarcons.call(this);this.audioMap={}};goog.inherits(cvox.AndroidEarcons,cvox.AbstractEarcons);cvox.AndroidEarcons.BASE_URL="https://ssl.gstatic.com/accessibility/javascript/android/earcons/"; +cvox.AndroidEarcons.prototype.playEarcon=function(a){if(this.earconsAvailable()){cvox.AndroidEarcons.superClass_.playEarcon.call(this,a);this.currentAudio=this.audioMap[a];this.currentAudio||(this.currentAudio=new Audio(cvox.AndroidEarcons.BASE_URL+this.getEarconFilename(a)),this.audioMap[a]=this.currentAudio);try{this.currentAudio.currentTime=0}catch(b){}this.currentAudio.paused&&this.currentAudio.play()}}; +cvox.AndroidEarcons.prototype.earconsAvailable=function(){return-1==navigator.userAgent.indexOf("Chrome")?!1:!0};cvox.HostFactory.earconsConstructor=cvox.AndroidEarcons;"undefined"!=typeof goog&&goog.provide&&(cvox.Api={},cvox.Api.Math={}); +(function(){function a(){d&&(d.port1.close(),d.port2.close(),d=null);d=new MessageChannel;window.postMessage("cvox.PortSetup",[d.port2],"*");d.port1.onmessage=function(a){"cvox.Disconnect"==a.data&&(d=null);try{var b=JSON.parse(a.data);b.id&&g[b.id]&&(g[b.id](b),delete g[b.id])}catch(c){}}}function b(a,b){var c=f;f++;void 0===a.args&&(a.args=[]);a.args=[c].concat(a.args);g[c]=b;d.port1.postMessage(JSON.stringify(a))}function c(a,c){var d=null;c&&c.endCallback&&(d=c.endCallback);b(a,d)}var d,e=!1, +f=1,g={};window.cvox||(window.cvox={});var h=window.cvox,k=null;"undefined"!=typeof h.ApiImplementation&&(k=h.ApiImplementation);h.Api=function(){};h.Api.internalEnable=function(){e=!0;k||a();var b=document.createEvent("UIEvents");b.initEvent("chromeVoxLoaded",!0,!1);document.dispatchEvent(b)};h.Api.internalDisable=function(){e=!1;d=null;var a=document.createEvent("UIEvents");a.initEvent("chromeVoxUnloaded",!0,!1);document.dispatchEvent(a)};h.Api.isChromeVoxActive=function(){return k?e:!!d};h.Api.speak= +function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(a,b,d):(a={cmd:"speak",args:[a,b,d]},c(a,d)))};h.Api.speakNode=function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(h.DomUtil.getName(a),b,d):(a={cmd:"speakNodeRef",args:[h.ApiUtils.makeNodeReference(a),b,d]},c(a,d)))};h.Api.stop=function(){if(h.Api.isChromeVoxActive())if(k)k.stop();else{var a={cmd:"stop"};d.port1.postMessage(JSON.stringify(a))}};h.Api.playEarcon=function(a){h.Api.isChromeVoxActive()&&(k?k.playEarcon(a):(a={cmd:"playEarcon",args:[a]}, +d.port1.postMessage(JSON.stringify(a))))};h.Api.syncToNode=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)k.syncToNode(a,b);else{var c={cmd:"syncToNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getCurrentNode=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.navigationManager.getCurrentNode()):b({cmd:"getCurrentNode"},function(b){a(h.ApiUtils.getNodeFromRef(b.currentNode))}))};h.Api.setSpeechForNode=function(a,b){h.Api.isChromeVoxActive()&& +a&&b&&a.setAttribute("cvoxnodedesc",JSON.stringify(b))};h.Api.click=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)h.DomUtil.clickElem(a,b,!0);else{var c={cmd:"clickNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getBuild=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.BuildInfo.build):b({cmd:"getBuild"},function(b){a(b.build)}))};h.Api.getVersion=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.version+""):b({cmd:"getVersion"},function(b){a(b.version)}))}; +h.Api.getCvoxModifierKeys=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.KeyUtil.cvoxModKeyCodes()):b({cmd:"getCvoxModKeys"},function(b){a(b.keyCodes)}))};h.Api.isKeyShortcut=function(a,c){if(c)if(h.Api.isChromeVoxActive()){var d=[37,39];if(!d.indexOf(a.keyCode)||a.altKey||a.shiftKey||a.ctrlKey||a.metaKey)if(k){var e=h.KeyUtil.keyEventToKeySequence(a);c(h.ChromeVoxKbHandler.handlerKeyMap.hasKey(e))}else{var d={},f=["target","srcElement","currentTarget","view"];for(e in a)-1===f.indexOf(e)&&(d[e]= +a[e]);e={cmd:"isKeyShortcut",args:[d]};b(e,function(a){c(a.isHandled)})}else c(!1)}else c(!1)};h.Api.setKeyEcho=function(a){h.Api.isChromeVoxActive()&&(k?k.setKeyEcho(a):(a={cmd:"setKeyEcho",args:[a]},d.port1.postMessage(JSON.stringify(a))))};h.Api.Math=function(){};h.Api.Math.defineRule=function(a,b,c,e,f){if(h.Api.isChromeVoxActive()){var g=Array.prototype.slice.call(arguments,4),g=[a,b,c,e].concat(g);k?k.Math.defineRule.apply(k.Math,g):(g={cmd:"Math.defineRule",args:g},d.port1.postMessage(JSON.stringify(g)))}}; +h.Api.internalEnable();h.NodeDescription=function(a,b,c,d){this.context=a?a:"";this.text=b?b:"";this.userValue=c?c:"";this.annotation=d?d:""}})();cvox.InitialSpeech={};window.INJECTED_AFTER_LOAD||(window.INJECTED_AFTER_LOAD=!1); +cvox.InitialSpeech.speak=function(){var a=window.INJECTED_AFTER_LOAD;if(!cvox.ChromeVox.isActive||document.webkitHidden)a=!0;window.top==window&&document.title&&!a&&cvox.ChromeVox.tts.speak(document.title,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.init(new Date,cvox.AbstractTts.QUEUE_MODE_QUEUE,a);document.hasFocus()&&document.activeElement==document.body&&cvox.ChromeVox.navigationManager.syncToBeginning();if(cvox.ChromeVox.position[document.location.href]){var b=cvox.ChromeVox.position[document.location.href]; +cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(document.elementFromPoint(b.x,b.y))}document.hasFocus()&&(a||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){cvox.ChromeVox.navigationManager.finishNavCommand("",!0,cvox.AbstractTts.QUEUE_MODE_QUEUE)})())};cvox.AndroidKeyMap=function(){}; +cvox.AndroidKeyMap.getStringifiedKeyMap=function(){return cvox.ChromeVoxJSON.stringify({'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[17]}}':"stopSpeech",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[9]}}':"handleTab",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[9]}}':"handleTabPrev", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[38]}}':"backward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"forward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[37]}}':"previousGranularity", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[39]}}':"nextGranularity",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[13]}}':"forceClickOnCurrentItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"readFromHere", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[85]}}':"readLinkURL",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[75]}}':"fullyDescribe",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[189]}}':"decreaseTtsPitch", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[187]}}':"increaseTtsPitch",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[219]}}':"decreaseTtsRate",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[221]}}':"increaseTtsRate", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[81]}}':"cyclePunctuationLevel",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[49]}}':"nextHeading1",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[49]}}':"previousHeading1", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[50]}}':"nextHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[50]}}':"previousHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[51]}}':"nextHeading3", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[51]}}':"previousHeading3",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[52]}}':"nextHeading4",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[52]}}':"previousHeading4", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[53]}}':"nextHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[53]}}':"previousHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[54]}}':"nextHeading6", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[54]}}':"previousHeading6",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[67]}}':"nextComboBox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[67]}}':"previousComboBox", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[69]}}':"nextEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[69]}}':"previousEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[70]}}':"nextFormField", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[70]}}':"previousFormField",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[71]}}':"nextGraphic",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[71]}}':"previousGraphic", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[72]}}':"nextHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[72]}}':"previousHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[73]}}':"nextListItem", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[73]}}':"previousListItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[76]}}':"nextLink",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[76]}}':"previousLink", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[79]}}':"nextList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[79]}}':"previousList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[82]}}':"nextRadio", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[82]}}':"previousRadio",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[84]}}':"nextTable",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[84]}}':"previousTable", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[66]}}':"nextButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[66]}}':"previousButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[88]}}':"nextCheckbox", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[88]}}':"previousCheckbox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[186]}}':"nextLandmark",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[186]}}':"previousLandmark"})};cvox.MathSimpleStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathSimpleStore,cvox.MathStore);cvox.MathSimpleStore.prototype.defineRulesFromMappings=function(a,b,c){for(var d in c)for(var e in c[d]){var f=c[d][e],g='self::text() = "'+b+'"';this.defineRule(a,d+"."+e,'[t] "'+f+'"',"self::text()",g)}};cvox.MathCompoundStore=function(){this.subStores_={}};goog.addSingletonGetter(cvox.MathCompoundStore); +cvox.MathCompoundStore.prototype.defineRules=function(a,b,c){var d=new cvox.MathSimpleStore;d.defineRulesFromMappings(a,b,c);this.subStores_[b]=d};cvox.MathCompoundStore.prototype.addSymbolRules=function(a){var b=cvox.MathSimpleStore.parseUnicode_(a.key);this.defineRules(a.key,b,a.mappings)};cvox.MathCompoundStore.prototype.addFunctionRules=function(a){var b=a.names;a=a.mappings;for(var c=0,d;d=b[c];c++)this.defineRules(d,d,a)}; +cvox.MathCompoundStore.prototype.lookupRule=function(a,b){var c=this.subStores_[a.textContent];if(c)return c.lookupRule(a,b)};cvox.MathCompoundStore.prototype.lookupString=function(a,b){var c=document.createTextNode(a);return(c=this.lookupRule(c,b))?c.action.components.map(function(a){return a.content.slice(1,-1)}).join(" "):""}; +cvox.MathCompoundStore.prototype.getDynamicConstraintValues=function(){var a={},b;for(b in this.subStores_){var c=this.subStores_[b].getDynamicConstraintValues(),d;for(d in c){var e=a[d];a[d]=e?cvox.MathUtil.union(e,c[d]):c[d]}}return a};cvox.MathSimpleStore.parseUnicode_=function(a){var b=parseInt(a,16);if(65536>b)return String.fromCharCode(b);b-=65536;a=(b>>10)+55296;b=(b&1023)+56320;return String.fromCharCode(a,b)};cvox.AndroidMathMap=function(){this.store_=cvox.MathCompoundStore.getInstance();cvox.AndroidMathMap.FUNCTION_MAPPINGS_.forEach(goog.bind(this.store_.addFunctionRules,this.store_));cvox.AndroidMathMap.SYMBOL_MAPPINGS_.forEach(goog.bind(this.store_.addSymbolRules,this.store_));this.store_.getDynamicConstraintValues()}; +cvox.AndroidMathMap.prototype.evaluate=function(a,b,c){var d="";b=cvox.MathStore.createDynamicConstraint(b,c);d=this.store_.lookupString(a,b);return new cvox.NavDescription({text:d?d:a})}; +cvox.AndroidMathMap.SYMBOL_MAPPINGS_=[{category:"Po",mappings:{"default":{"default":"exclamation mark"}},key:"0021"},{category:"Po",mappings:{"default":{"default":"quotation mark"}},key:"0022"},{category:"Po",mappings:{"default":{"default":"number sign",alternative:"hash","short":"number"}},key:"0023"},{category:"Sc",mappings:{"default":{"default":"dollar sign","short":"dollar"}},key:"0024"},{category:"Po",mappings:{"default":{"default":"percent sign","short":"percent"}},key:"0025"},{category:"Po", +mappings:{"default":{"default":"ampersand"}},key:"0026"},{category:"Po",mappings:{"default":{"default":"apostrophe",alternative:"apostrophe quote"}},key:"0027"},{category:"Po",mappings:{"default":{"default":"asterisk"}},key:"002A"},{category:"Sm",mappings:{"default":{"default":"plus sign","short":"plus"}},key:"002B"},{category:"Po",mappings:{"default":{"default":"comma"}},key:"002C"},{category:"Pd",mappings:{"default":{"default":"hyphen minus","short":"minus"}},key:"002D"},{category:"Po",mappings:{"default":{"default":"full stop", +alternative:"period"}},key:"002E"},{category:"Po",mappings:{"default":{"default":"solidus",alternative:"slash"}},key:"002F"},{category:"Po",mappings:{"default":{"default":"colon"}},key:"003A"},{category:"Po",mappings:{"default":{"default":"semicolon"}},key:"003B"},{category:"Sm",mappings:{"default":{"default":"less than sign","short":"less than"}},key:"003C"},{category:"Sm",mappings:{"default":{"default":"equals sign","short":"equals"}},key:"003D"},{category:"Sm",mappings:{"default":{"default":"greater than sign", +"short":"greater than"}},key:"003E"},{category:"Po",mappings:{"default":{"default":"question mark"}},key:"003F"},{category:"Po",mappings:{"default":{"default":"commercial at","short":"at"}},key:"0040"},{category:"Po",mappings:{"default":{"default":"reverse solidus",alternative:"backslash"}},key:"005C"},{category:"Sk",mappings:{"default":{"default":"circumflex accent",alternative:"spacing circumflex","short":"hat"}},key:"005E"},{category:"Pc",mappings:{"default":{"default":"low line",alternative:"spacing underscore"}}, +key:"005F"},{category:"Sk",mappings:{"default":{"default":"grave accent",alternative:"spacing grave","short":"grave"}},key:"0060"},{category:"Sm",mappings:{"default":{"default":"vertical line",alternative:"vertical bar"}},key:"007C"},{category:"Sm",mappings:{"default":{"default":"tilde"}},key:"007E"},{category:"Po",mappings:{"default":{"default":"inverted exclamation mark"}},key:"00A1"},{category:"Sc",mappings:{"default":{"default":"cent sign","short":"cent"}},key:"00A2"},{category:"Sc",mappings:{"default":{"default":"pound sign", +"short":"pound"}},key:"00A3"},{category:"Sc",mappings:{"default":{"default":"currency sign","short":"currency"}},key:"00A4"},{category:"Sc",mappings:{"default":{"default":"yen sign","short":"yen"}},key:"00A5"},{category:"So",mappings:{"default":{"default":"broken bar",alternative:"broken vertical bar"}},key:"00A6"},{category:"Po",mappings:{"default":{"default":"section sign","short":"section"}},key:"00A7"},{category:"Sk",mappings:{"default":{"default":"diaeresis",alternative:"spacing diaeresis","short":"double dot"}}, +key:"00A8"},{category:"So",mappings:{"default":{"default":"copyright sign","short":"copyright"}},key:"00A9"},{category:"Lo",mappings:{"default":{"default":"feminine ordinal indicator"}},key:"00AA"},{category:"Pi",mappings:{"default":{"default":"left pointing double angle quotation mark",alternative:"left pointing guillemet"}},key:"00AB"},{category:"Sm",mappings:{"default":{"default":"not sign","short":"not"}},key:"00AC"},{category:"So",mappings:{"default":{"default":"registered sign",alternative:"registered trade mark sign", +"short":"registered"}},key:"00AE"},{category:"Sk",mappings:{"default":{"default":"macron",alternative:"spacing macron"}},key:"00AF"},{category:"So",mappings:{"default":{"default":"degree sign","short":"degree"}},key:"00B0"},{category:"Sm",mappings:{"default":{"default":"plus minus sign",alternative:"plus or minus sign","short":"plus minus"}},key:"00B1"},{category:"Sk",mappings:{"default":{"default":"acute accent",alternative:"spacing acute","short":"acute"}},key:"00B4"},{category:"Ll",mappings:{"default":{"default":"micro sign", +"short":"micro"}},key:"00B5"},{category:"Po",mappings:{"default":{"default":"pilcrow sign",alternative:"paragraph sign","short":"pilcrow"}},key:"00B6"},{category:"Po",mappings:{"default":{"default":"middle dot"}},key:"00B7"},{category:"Sk",mappings:{"default":{"default":"cedilla",alternative:"spacing cedilla"}},key:"00B8"},{category:"Lo",mappings:{"default":{"default":"masculine ordinal indicator"}},key:"00BA"},{category:"Pf",mappings:{"default":{"default":"right pointing double angle quotation mark", +alternative:"right pointing guillemet"}},key:"00BB"},{category:"Po",mappings:{"default":{"default":"inverted question mark"}},key:"00BF"},{category:"Sm",mappings:{"default":{"default":"multiplication sign","short":"multiplication"}},key:"00D7"},{category:"Sm",mappings:{"default":{"default":"division sign","short":"division"}},key:"00F7"},{category:"Sk",mappings:{"default":{"default":"breve",alternative:"spacing breve"}},key:"02D8"},{category:"Sk",mappings:{"default":{"default":"dot above",alternative:"spacing dot above"}}, +key:"02D9"},{category:"Sk",mappings:{"default":{"default":"ring above",alternative:"spacing ring above"}},key:"02DA"},{category:"Sk",mappings:{"default":{"default":"ogonek",alternative:"spacing ogonek"}},key:"02DB"},{category:"Sk",mappings:{"default":{"default":"small tilde",alternative:"spacing tilde"}},key:"02DC"},{category:"Sk",mappings:{"default":{"default":"double acute accent",alternative:"spacing double acute"}},key:"02DD"},{category:"Pd",mappings:{"default":{"default":"hyphen"}},key:"2010"}, +{category:"Pd",mappings:{"default":{"default":"non breaking hyphen"}},key:"2011"},{category:"Pd",mappings:{"default":{"default":"figure dash"}},key:"2012"},{category:"Pd",mappings:{"default":{"default":"en dash"}},key:"2013"},{category:"Pd",mappings:{"default":{"default":"em dash"}},key:"2014"},{category:"Pd",mappings:{"default":{"default":"horizontal bar",alternative:"quotation dash"}},key:"2015"},{category:"Po",mappings:{"default":{"default":"double vertical line",alternative:"double vertical bar"}}, +key:"2016"},{category:"Po",mappings:{"default":{"default":"double low line",alternative:"spacing double underscore"}},key:"2017"},{category:"Pi",mappings:{"default":{"default":"left single quotation mark",alternative:"single turned comma quotation mark"}},key:"2018"},{category:"Pf",mappings:{"default":{"default":"right single quotation mark",alternative:"single comma quotation mark"}},key:"2019"},{category:"Ps",mappings:{"default":{"default":"single low 9 quotation mark",alternative:"low single comma quotation mark"}}, +key:"201A"},{category:"Pi",mappings:{"default":{"default":"single high reversed 9 quotation mark",alternative:"single reversed comma quotation mark"}},key:"201B"},{category:"Pi",mappings:{"default":{"default":"left double quotation mark",alternative:"double turned comma quotation mark"}},key:"201C"},{category:"Pf",mappings:{"default":{"default":"right double quotation mark",alternative:"double comma quotation mark"}},key:"201D"},{category:"Ps",mappings:{"default":{"default":"double low 9 quotation mark", +alternative:"low double comma quotation mark"}},key:"201E"},{category:"Pi",mappings:{"default":{"default":"double high reversed 9 quotation mark",alternative:"double reversed comma quotation mark"}},key:"201F"},{category:"Po",mappings:{"default":{"default":"dagger"}},key:"2020"},{category:"Po",mappings:{"default":{"default":"double dagger"}},key:"2021"},{category:"Po",mappings:{"default":{"default":"bullet"}},key:"2022"},{category:"Po",mappings:{"default":{"default":"triangular bullet"}},key:"2023"}, +{category:"Po",mappings:{"default":{"default":"one dot leader"}},key:"2024"},{category:"Po",mappings:{"default":{"default":"two dot leader"}},key:"2025"},{category:"Po",mappings:{"default":{"default":"horizontal ellipsis"}},key:"2026"},{category:"Po",mappings:{"default":{"default":"hyphenation point"}},key:"2027"},{category:"Po",mappings:{"default":{"default":"per mille sign","short":"per mille"}},key:"2030"},{category:"Po",mappings:{"default":{"default":"per ten thousand sign","short":"per ten thousand"}}, +key:"2031"},{category:"Po",mappings:{"default":{"default":"prime"}},key:"2032"},{category:"Po",mappings:{"default":{"default":"double prime"}},key:"2033"},{category:"Po",mappings:{"default":{"default":"triple prime"}},key:"2034"},{category:"Po",mappings:{"default":{"default":"reversed prime"}},key:"2035"},{category:"Po",mappings:{"default":{"default":"reversed double prime"}},key:"2036"},{category:"Po",mappings:{"default":{"default":"reversed triple prime"}},key:"2037"},{category:"Po",mappings:{"default":{"default":"caret"}}, +key:"2038"},{category:"Pi",mappings:{"default":{"default":"single left pointing angle quotation mark",alternative:"left pointing single guillemet"}},key:"2039"},{category:"Pf",mappings:{"default":{"default":"single right pointing angle quotation mark",alternative:"right pointing single guillemet"}},key:"203A"},{category:"Po",mappings:{"default":{"default":"reference mark"}},key:"203B"},{category:"Po",mappings:{"default":{"default":"double exclamation mark"}},key:"203C"},{category:"Po",mappings:{"default":{"default":"interrobang"}}, +key:"203D"},{category:"Po",mappings:{"default":{"default":"overline",alternative:"spacing overscore"}},key:"203E"},{category:"Pc",mappings:{"default":{"default":"undertie"}},key:"203F"},{category:"Pc",mappings:{"default":{"default":"character tie"}},key:"2040"},{category:"Po",mappings:{"default":{"default":"caret insertion point"}},key:"2041"},{category:"Po",mappings:{"default":{"default":"asterism"}},key:"2042"},{category:"Po",mappings:{"default":{"default":"hyphen bullet"}},key:"2043"},{category:"Sm", +mappings:{"default":{"default":"fraction slash"}},key:"2044"},{category:"Po",mappings:{"default":{"default":"double question mark"}},key:"2047"},{category:"Po",mappings:{"default":{"default":"question exclamation mark"}},key:"2048"},{category:"Po",mappings:{"default":{"default":"exclamation question mark"}},key:"2049"},{category:"Po",mappings:{"default":{"default":"reversed pilcrow sign","short":"reversed pilcrow"}},key:"204B"},{category:"Po",mappings:{"default":{"default":"black leftwards bullet"}}, +key:"204C"},{category:"Po",mappings:{"default":{"default":"black rightwards bullet"}},key:"204D"},{category:"Po",mappings:{"default":{"default":"low asterisk"}},key:"204E"},{category:"Po",mappings:{"default":{"default":"reversed semicolon"}},key:"204F"},{category:"Po",mappings:{"default":{"default":"close up"}},key:"2050"},{category:"Po",mappings:{"default":{"default":"two asterisks aligned vertically"}},key:"2051"},{category:"Sm",mappings:{"default":{"default":"commercial minus sign","short":"commercial minus"}}, +key:"2052"},{category:"Po",mappings:{"default":{"default":"swung dash"}},key:"2053"},{category:"Pc",mappings:{"default":{"default":"inverted undertie"}},key:"2054"},{category:"Po",mappings:{"default":{"default":"flower punctuation mark"}},key:"2055"},{category:"Po",mappings:{"default":{"default":"three dot punctuation"}},key:"2056"},{category:"Po",mappings:{"default":{"default":"quadruple prime"}},key:"2057"},{category:"Po",mappings:{"default":{"default":"four dot punctuation"}},key:"2058"},{category:"Po", +mappings:{"default":{"default":"five dot punctuation"}},key:"2059"},{category:"Po",mappings:{"default":{"default":"two dot punctuation"}},key:"205A"},{category:"Po",mappings:{"default":{"default":"four dot mark"}},key:"205B"},{category:"Po",mappings:{"default":{"default":"dotted cross"}},key:"205C"},{category:"Po",mappings:{"default":{"default":"tricolon"}},key:"205D"},{category:"Po",mappings:{"default":{"default":"vertical four dots"}},key:"205E"},{category:"Sm",mappings:{"default":{"default":"superscript plus sign", +"short":"superscript plus"}},key:"207A"},{category:"Sm",mappings:{"default":{"default":"superscript minus",alternative:"superscript hyphen minus"}},key:"207B"},{category:"Sm",mappings:{"default":{"default":"superscript equals sign","short":"superscript equals"}},key:"207C"},{category:"Ps",mappings:{"default":{"default":"superscript left parenthesis",alternative:"superscript opening parenthesis"}},key:"207D"},{category:"Pe",mappings:{"default":{"default":"superscript right parenthesis",alternative:"superscript closing parenthesis"}}, +key:"207E"},{category:"Sm",mappings:{"default":{"default":"subscript plus sign","short":"subscript plus"}},key:"208A"},{category:"Sm",mappings:{"default":{"default":"subscript minus",alternative:"subscript hyphen minus"}},key:"208B"},{category:"Sm",mappings:{"default":{"default":"subscript equals sign","short":"subscript equals"}},key:"208C"},{category:"Ps",mappings:{"default":{"default":"subscript left parenthesis",alternative:"subscript opening parenthesis"}},key:"208D"},{category:"Pe",mappings:{"default":{"default":"subscript right parenthesis", +alternative:"subscript closing parenthesis"}},key:"208E"},{category:"So",mappings:{"default":{"default":"property line"}},key:"214A"},{category:"Sm",mappings:{"default":{"default":"turned ampersand"}},key:"214B"},{category:"So",mappings:{"default":{"default":"per sign","short":"per"}},key:"214C"},{category:"So",mappings:{"default":{"default":"aktieselskab"}},key:"214D"},{category:"Ll",mappings:{"default":{"default":"turned small f"}},key:"214E"},{category:"Sm",mappings:{"default":{"default":"for all"}}, +key:"2200"},{category:"Sm",mappings:{"default":{"default":"complement"}},key:"2201"},{category:"Sm",mappings:{"default":{"default":"partial differential"}},key:"2202"},{category:"Sm",mappings:{"default":{"default":"there exists"}},key:"2203"},{category:"Sm",mappings:{"default":{"default":"there does not exist"}},key:"2204"},{category:"Sm",mappings:{"default":{"default":"empty set"}},key:"2205"},{category:"Sm",mappings:{"default":{"default":"increment"}},key:"2206"},{category:"Sm",mappings:{"default":{"default":"nabla"}}, +key:"2207"},{category:"Sm",mappings:{"default":{"default":"element of"}},key:"2208"},{category:"Sm",mappings:{"default":{"default":"not an element of"}},key:"2209"},{category:"Sm",mappings:{"default":{"default":"small element of"}},key:"220A"},{category:"Sm",mappings:{"default":{"default":"contains as member"}},key:"220B"},{category:"Sm",mappings:{"default":{"default":"does not contain as member"}},key:"220C"},{category:"Sm",mappings:{"default":{"default":"small contains as member"}},key:"220D"}, +{category:"Sm",mappings:{"default":{"default":"end of proof"}},key:"220E"},{category:"Sm",mappings:{"default":{"default":"n ary product"}},key:"220F"},{category:"Sm",mappings:{"default":{"default":"n ary coproduct"}},key:"2210"},{category:"Sm",mappings:{"default":{"default":"n ary summation"}},key:"2211"},{category:"Sm",mappings:{"default":{"default":"minus sign","short":"minus"}},key:"2212"},{category:"Sm",mappings:{"default":{"default":"minus or plus sign","short":"minus or plus"}},key:"2213"}, +{category:"Sm",mappings:{"default":{"default":"dot plus"}},key:"2214"},{category:"Sm",mappings:{"default":{"default":"division slash"}},key:"2215"},{category:"Sm",mappings:{"default":{"default":"set minus"}},key:"2216"},{category:"Sm",mappings:{"default":{"default":"asterisk operator"}},key:"2217"},{category:"Sm",mappings:{"default":{"default":"ring operator"}},key:"2218"},{category:"Sm",mappings:{"default":{"default":"bullet operator"}},key:"2219"},{category:"Sm",mappings:{"default":{"default":"square root"}}, +key:"221A"},{category:"Sm",mappings:{"default":{"default":"cube root"}},key:"221B"},{category:"Sm",mappings:{"default":{"default":"fourth root"}},key:"221C"},{category:"Sm",mappings:{"default":{"default":"proportional to"}},key:"221D"},{category:"Sm",mappings:{"default":{"default":"infinity"}},key:"221E"},{category:"Sm",mappings:{"default":{"default":"right angle"}},key:"221F"},{category:"Sm",mappings:{"default":{"default":"angle"}},key:"2220"},{category:"Sm",mappings:{"default":{"default":"measured angle"}}, +key:"2221"},{category:"Sm",mappings:{"default":{"default":"spherical angle"}},key:"2222"},{category:"Sm",mappings:{"default":{"default":"divides","short":"bar"}},key:"2223"},{category:"Sm",mappings:{"default":{"default":"does not divide"}},key:"2224"},{category:"Sm",mappings:{"default":{"default":"parallel to"}},key:"2225"},{category:"Sm",mappings:{"default":{"default":"not parallel to"}},key:"2226"},{category:"Sm",mappings:{"default":{"default":"logical and"}},key:"2227"},{category:"Sm",mappings:{"default":{"default":"logical or"}}, +key:"2228"},{category:"Sm",mappings:{"default":{"default":"intersection"}},key:"2229"},{category:"Sm",mappings:{"default":{"default":"union"}},key:"222A"},{category:"Sm",mappings:{"default":{"default":"integral"}},key:"222B"},{category:"Sm",mappings:{"default":{"default":"double integral"}},key:"222C"},{category:"Sm",mappings:{"default":{"default":"triple integral"}},key:"222D"},{category:"Sm",mappings:{"default":{"default":"contour integral"}},key:"222E"},{category:"Sm",mappings:{"default":{"default":"surface integral"}}, +key:"222F"},{category:"Sm",mappings:{"default":{"default":"volume integral"}},key:"2230"},{category:"Sm",mappings:{"default":{"default":"clockwise integral"}},key:"2231"},{category:"Sm",mappings:{"default":{"default":"clockwise contour integral"}},key:"2232"},{category:"Sm",mappings:{"default":{"default":"anticlockwise contour integral"}},key:"2233"},{category:"Sm",mappings:{"default":{"default":"therefore"}},key:"2234"},{category:"Sm",mappings:{"default":{"default":"because"}},key:"2235"},{category:"Sm", +mappings:{"default":{"default":"ratio"}},key:"2236"},{category:"Sm",mappings:{"default":{"default":"proportion"}},key:"2237"},{category:"Sm",mappings:{"default":{"default":"dot minus"}},key:"2238"},{category:"Sm",mappings:{"default":{"default":"excess"}},key:"2239"},{category:"Sm",mappings:{"default":{"default":"geometric proportion"}},key:"223A"},{category:"Sm",mappings:{"default":{"default":"homothetic"}},key:"223B"},{category:"Sm",mappings:{"default":{"default":"tilde operator"}},key:"223C"},{category:"Sm", +mappings:{"default":{"default":"reversed tilde"}},key:"223D"},{category:"Sm",mappings:{"default":{"default":"inverted lazy s"}},key:"223E"},{category:"Sm",mappings:{"default":{"default":"sine wave"}},key:"223F"},{category:"Sm",mappings:{"default":{"default":"wreath product"}},key:"2240"},{category:"Sm",mappings:{"default":{"default":"not tilde"}},key:"2241"},{category:"Sm",mappings:{"default":{"default":"minus tilde"}},key:"2242"},{category:"Sm",mappings:{"default":{"default":"asymptotically equal to"}}, +key:"2243"},{category:"Sm",mappings:{"default":{"default":"not asymptotically equal to"}},key:"2244"},{category:"Sm",mappings:{"default":{"default":"approximately equal to"}},key:"2245"},{category:"Sm",mappings:{"default":{"default":"approximately but not actually equal to"}},key:"2246"},{category:"Sm",mappings:{"default":{"default":"neither approximately nor actually equal to"}},key:"2247"},{category:"Sm",mappings:{"default":{"default":"almost equal to"}},key:"2248"},{category:"Sm",mappings:{"default":{"default":"not almost equal to"}}, +key:"2249"},{category:"Sm",mappings:{"default":{"default":"almost equal or equal to"}},key:"224A"},{category:"Sm",mappings:{"default":{"default":"triple tilde"}},key:"224B"},{category:"Sm",mappings:{"default":{"default":"all equal to"}},key:"224C"},{category:"Sm",mappings:{"default":{"default":"equivalent to"}},key:"224D"},{category:"Sm",mappings:{"default":{"default":"geometrically equivalent to"}},key:"224E"},{category:"Sm",mappings:{"default":{"default":"difference between"}},key:"224F"},{category:"Sm", +mappings:{"default":{"default":"approaches the limit"}},key:"2250"},{category:"Sm",mappings:{"default":{"default":"geometrically equal to"}},key:"2251"},{category:"Sm",mappings:{"default":{"default":"approximately equal to or the image of"}},key:"2252"},{category:"Sm",mappings:{"default":{"default":"image of or approximately equal to"}},key:"2253"},{category:"Sm",mappings:{"default":{"default":"colon equals",alternative:"colon equal"}},key:"2254"},{category:"Sm",mappings:{"default":{"default":"equals colon", +alternative:"equal colon"}},key:"2255"},{category:"Sm",mappings:{"default":{"default":"ring in equal to"}},key:"2256"},{category:"Sm",mappings:{"default":{"default":"ring equal to"}},key:"2257"},{category:"Sm",mappings:{"default":{"default":"corresponds to"}},key:"2258"},{category:"Sm",mappings:{"default":{"default":"estimates"}},key:"2259"},{category:"Sm",mappings:{"default":{"default":"equiangular to"}},key:"225A"},{category:"Sm",mappings:{"default":{"default":"star equals"}},key:"225B"},{category:"Sm", +mappings:{"default":{"default":"delta equal to"}},key:"225C"},{category:"Sm",mappings:{"default":{"default":"equal to by definition"}},key:"225D"},{category:"Sm",mappings:{"default":{"default":"measured by"}},key:"225E"},{category:"Sm",mappings:{"default":{"default":"questioned equal to"}},key:"225F"},{category:"Sm",mappings:{"default":{"default":"not equal to"}},key:"2260"},{category:"Sm",mappings:{"default":{"default":"identical to"}},key:"2261"},{category:"Sm",mappings:{"default":{"default":"not identical to"}}, +key:"2262"},{category:"Sm",mappings:{"default":{"default":"strictly equivalent to"}},key:"2263"},{category:"Sm",mappings:{"default":{"default":"less than or equal to",alternative:"less than or equal to"}},key:"2264"},{category:"Sm",mappings:{"default":{"default":"greater than or equal to",alternative:"greater than or equal to"}},key:"2265"},{category:"Sm",mappings:{"default":{"default":"less than over equal to",alternative:"less than over equal to"}},key:"2266"},{category:"Sm",mappings:{"default":{"default":"greater than over equal to", +alternative:"greater than over equal to"}},key:"2267"},{category:"Sm",mappings:{"default":{"default":"less than but not equal to",alternative:"less than but not equal to"}},key:"2268"},{category:"Sm",mappings:{"default":{"default":"greater than but not equal to",alternative:"greater than but not equal to"}},key:"2269"},{category:"Sm",mappings:{"default":{"default":"much less than",alternative:"much less than"}},key:"226A"},{category:"Sm",mappings:{"default":{"default":"much greater than",alternative:"much greater than"}}, +key:"226B"},{category:"Sm",mappings:{"default":{"default":"between"}},key:"226C"},{category:"Sm",mappings:{"default":{"default":"not equivalent to"}},key:"226D"},{category:"Sm",mappings:{"default":{"default":"not less than",alternative:"not less than"}},key:"226E"},{category:"Sm",mappings:{"default":{"default":"not greater than",alternative:"not greater than"}},key:"226F"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equal to",alternative:"neither less than nor equal to"}}, +key:"2270"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equal to",alternative:"neither greater than nor equal to"}},key:"2271"},{category:"Sm",mappings:{"default":{"default":"less than or equivalent to",alternative:"less than or equivalent to"}},key:"2272"},{category:"Sm",mappings:{"default":{"default":"greater than or equivalent to",alternative:"greater than or equivalent to"}},key:"2273"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equivalent to", +alternative:"neither less than nor equivalent to"}},key:"2274"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equivalent to",alternative:"neither greater than nor equivalent to"}},key:"2275"},{category:"Sm",mappings:{"default":{"default":"less than or greater than",alternative:"less than or greater than"}},key:"2276"},{category:"Sm",mappings:{"default":{"default":"greater than or less than",alternative:"greater than or less than"}},key:"2277"},{category:"Sm",mappings:{"default":{"default":"neither less than nor greater than", +alternative:"neither less than nor greater than"}},key:"2278"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor less than",alternative:"neither greater than nor less than"}},key:"2279"},{category:"Sm",mappings:{"default":{"default":"precedes"}},key:"227A"},{category:"Sm",mappings:{"default":{"default":"succeeds"}},key:"227B"},{category:"Sm",mappings:{"default":{"default":"precedes or equal to"}},key:"227C"},{category:"Sm",mappings:{"default":{"default":"succeeds or equal to"}}, +key:"227D"},{category:"Sm",mappings:{"default":{"default":"precedes or equivalent to"}},key:"227E"},{category:"Sm",mappings:{"default":{"default":"succeeds or equivalent to"}},key:"227F"},{category:"Sm",mappings:{"default":{"default":"does not precede"}},key:"2280"},{category:"Sm",mappings:{"default":{"default":"does not succeed"}},key:"2281"},{category:"Sm",mappings:{"default":{"default":"subset of"}},key:"2282"},{category:"Sm",mappings:{"default":{"default":"superset of"}},key:"2283"},{category:"Sm", +mappings:{"default":{"default":"not a subset of"}},key:"2284"},{category:"Sm",mappings:{"default":{"default":"not a superset of"}},key:"2285"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to"}},key:"2286"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to"}},key:"2287"},{category:"Sm",mappings:{"default":{"default":"neither a subset of nor equal to"}},key:"2288"},{category:"Sm",mappings:{"default":{"default":"neither a superset of nor equal to"}},key:"2289"}, +{category:"Sm",mappings:{"default":{"default":"subset of with not equal to",alternative:"subset of or not equal to","short":"subset of or not equal to"}},key:"228A"},{category:"Sm",mappings:{"default":{"default":"superset of with not equal to",alternative:"superset of or not equal to","short":"superset of or not equal to"}},key:"228B"},{category:"Sm",mappings:{"default":{"default":"multiset"}},key:"228C"},{category:"Sm",mappings:{"default":{"default":"multiset multiplication"}},key:"228D"},{category:"Sm", +mappings:{"default":{"default":"multiset union"}},key:"228E"},{category:"Sm",mappings:{"default":{"default":"square image of"}},key:"228F"},{category:"Sm",mappings:{"default":{"default":"square original of"}},key:"2290"},{category:"Sm",mappings:{"default":{"default":"square image of or equal to"}},key:"2291"},{category:"Sm",mappings:{"default":{"default":"square original of or equal to"}},key:"2292"},{category:"Sm",mappings:{"default":{"default":"square cap"}},key:"2293"},{category:"Sm",mappings:{"default":{"default":"square cup"}}, +key:"2294"},{category:"Sm",mappings:{"default":{"default":"circled plus"}},key:"2295"},{category:"Sm",mappings:{"default":{"default":"circled minus"}},key:"2296"},{category:"Sm",mappings:{"default":{"default":"circled times"}},key:"2297"},{category:"Sm",mappings:{"default":{"default":"circled division slash"}},key:"2298"},{category:"Sm",mappings:{"default":{"default":"circled dot operator"}},key:"2299"},{category:"Sm",mappings:{"default":{"default":"circled ring operator"}},key:"229A"},{category:"Sm", +mappings:{"default":{"default":"circled asterisk operator"}},key:"229B"},{category:"Sm",mappings:{"default":{"default":"circled equals"}},key:"229C"},{category:"Sm",mappings:{"default":{"default":"circled dash"}},key:"229D"},{category:"Sm",mappings:{"default":{"default":"squared plus"}},key:"229E"},{category:"Sm",mappings:{"default":{"default":"squared minus"}},key:"229F"},{category:"Sm",mappings:{"default":{"default":"squared times"}},key:"22A0"},{category:"Sm",mappings:{"default":{"default":"squared dot operator"}}, +key:"22A1"},{category:"Sm",mappings:{"default":{"default":"right tack"}},key:"22A2"},{category:"Sm",mappings:{"default":{"default":"left tack"}},key:"22A3"},{category:"Sm",mappings:{"default":{"default":"down tack"}},key:"22A4"},{category:"Sm",mappings:{"default":{"default":"up tack"}},key:"22A5"},{category:"Sm",mappings:{"default":{"default":"assertion"}},key:"22A6"},{category:"Sm",mappings:{"default":{"default":"models"}},key:"22A7"},{category:"Sm",mappings:{"default":{"default":"true"}},key:"22A8"}, +{category:"Sm",mappings:{"default":{"default":"forces"}},key:"22A9"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar right turnstile"}},key:"22AA"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double right turnstile"}},key:"22AB"},{category:"Sm",mappings:{"default":{"default":"does not prove"}},key:"22AC"},{category:"Sm",mappings:{"default":{"default":"not true"}},key:"22AD"},{category:"Sm",mappings:{"default":{"default":"does not force"}},key:"22AE"},{category:"Sm", +mappings:{"default":{"default":"negated double vertical bar double right turnstile"}},key:"22AF"},{category:"Sm",mappings:{"default":{"default":"precedes under relation"}},key:"22B0"},{category:"Sm",mappings:{"default":{"default":"succeeds under relation"}},key:"22B1"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of"}},key:"22B2"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup"}},key:"22B3"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of or equal to"}}, +key:"22B4"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup or equal to"}},key:"22B5"},{category:"Sm",mappings:{"default":{"default":"original of"}},key:"22B6"},{category:"Sm",mappings:{"default":{"default":"image of"}},key:"22B7"},{category:"Sm",mappings:{"default":{"default":"multimap"}},key:"22B8"},{category:"Sm",mappings:{"default":{"default":"hermitian conjugate matrix"}},key:"22B9"},{category:"Sm",mappings:{"default":{"default":"intercalate"}},key:"22BA"},{category:"Sm", +mappings:{"default":{"default":"xor"}},key:"22BB"},{category:"Sm",mappings:{"default":{"default":"nand"}},key:"22BC"},{category:"Sm",mappings:{"default":{"default":"nor"}},key:"22BD"},{category:"Sm",mappings:{"default":{"default":"right triangle"}},key:"22BF"},{category:"Sm",mappings:{"default":{"default":"n ary logical and"}},key:"22C0"},{category:"Sm",mappings:{"default":{"default":"n ary logical or"}},key:"22C1"},{category:"Sm",mappings:{"default":{"default":"n ary intersection"}},key:"22C2"}, +{category:"Sm",mappings:{"default":{"default":"n ary union"}},key:"22C3"},{category:"Sm",mappings:{"default":{"default":"diamond operator"}},key:"22C4"},{category:"Sm",mappings:{"default":{"default":"dot operator"}},key:"22C5"},{category:"Sm",mappings:{"default":{"default":"star operator"}},key:"22C6"},{category:"Sm",mappings:{"default":{"default":"division times"}},key:"22C7"},{category:"Sm",mappings:{"default":{"default":"bowtie"}},key:"22C8"},{category:"Sm",mappings:{"default":{"default":"left normal factor semidirect product"}}, +key:"22C9"},{category:"Sm",mappings:{"default":{"default":"right normal factor semidirect product"}},key:"22CA"},{category:"Sm",mappings:{"default":{"default":"left semidirect product"}},key:"22CB"},{category:"Sm",mappings:{"default":{"default":"right semidirect product"}},key:"22CC"},{category:"Sm",mappings:{"default":{"default":"reversed tilde equals"}},key:"22CD"},{category:"Sm",mappings:{"default":{"default":"curly logical or"}},key:"22CE"},{category:"Sm",mappings:{"default":{"default":"curly logical and"}}, +key:"22CF"},{category:"Sm",mappings:{"default":{"default":"double subset"}},key:"22D0"},{category:"Sm",mappings:{"default":{"default":"double superset"}},key:"22D1"},{category:"Sm",mappings:{"default":{"default":"double intersection"}},key:"22D2"},{category:"Sm",mappings:{"default":{"default":"double union"}},key:"22D3"},{category:"Sm",mappings:{"default":{"default":"pitchfork"}},key:"22D4"},{category:"Sm",mappings:{"default":{"default":"equal and parallel to"}},key:"22D5"},{category:"Sm",mappings:{"default":{"default":"less than with dot", +alternative:"less than with dot","short":"less than dot"}},key:"22D6"},{category:"Sm",mappings:{"default":{"default":"greater than with dot",alternative:"greater than with dot","short":"greater than dot"}},key:"22D7"},{category:"Sm",mappings:{"default":{"default":"very much less than",alternative:"very much less than"}},key:"22D8"},{category:"Sm",mappings:{"default":{"default":"very much greater than",alternative:"very much greater than"}},key:"22D9"},{category:"Sm",mappings:{"default":{"default":"less than equal to or greater than", +alternative:"less than equal to or greater than"}},key:"22DA"},{category:"Sm",mappings:{"default":{"default":"greater than equal to or less than",alternative:"greater than equal to or less than"}},key:"22DB"},{category:"Sm",mappings:{"default":{"default":"equal to or less than",alternative:"equal to or less than"}},key:"22DC"},{category:"Sm",mappings:{"default":{"default":"equal to or greater than",alternative:"equal to or greater than"}},key:"22DD"},{category:"Sm",mappings:{"default":{"default":"equal to or precedes"}}, +key:"22DE"},{category:"Sm",mappings:{"default":{"default":"equal to or succeeds"}},key:"22DF"},{category:"Sm",mappings:{"default":{"default":"does not precede or equal"}},key:"22E0"},{category:"Sm",mappings:{"default":{"default":"does not succeed or equal"}},key:"22E1"},{category:"Sm",mappings:{"default":{"default":"not square image of or equal to"}},key:"22E2"},{category:"Sm",mappings:{"default":{"default":"not square original of or equal to"}},key:"22E3"},{category:"Sm",mappings:{"default":{"default":"square image of or not equal to"}}, +key:"22E4"},{category:"Sm",mappings:{"default":{"default":"square original of or not equal to"}},key:"22E5"},{category:"Sm",mappings:{"default":{"default":"less than but not equivalent to",alternative:"less than but not equivalent to"}},key:"22E6"},{category:"Sm",mappings:{"default":{"default":"greater than but not equivalent to",alternative:"greater than but not equivalent to"}},key:"22E7"},{category:"Sm",mappings:{"default":{"default":"precedes but not equivalent to"}},key:"22E8"},{category:"Sm", +mappings:{"default":{"default":"succeeds but not equivalent to"}},key:"22E9"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of"}},key:"22EA"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup"}},key:"22EB"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of or equal to"}},key:"22EC"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup or equal"}},key:"22ED"},{category:"Sm",mappings:{"default":{"default":"vertical ellipsis", +"short":"dot dot dot"}},key:"22EE"},{category:"Sm",mappings:{"default":{"default":"midline horizontal ellipsis","short":"dot dot dot"}},key:"22EF"},{category:"Sm",mappings:{"default":{"default":"up right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F0"},{category:"Sm",mappings:{"default":{"default":"down right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F1"},{category:"Sm",mappings:{"default":{"default":"element of with long horizontal stroke"}},key:"22F2"},{category:"Sm", +mappings:{"default":{"default":"element of with vertical bar at end of horizontal stroke"}},key:"22F3"},{category:"Sm",mappings:{"default":{"default":"small element of with vertical bar at end of horizontal stroke"}},key:"22F4"},{category:"Sm",mappings:{"default":{"default":"element of with dot above"}},key:"22F5"},{category:"Sm",mappings:{"default":{"default":"element of with overbar"}},key:"22F6"},{category:"Sm",mappings:{"default":{"default":"small element of with overbar"}},key:"22F7"},{category:"Sm", +mappings:{"default":{"default":"element of with underbar"}},key:"22F8"},{category:"Sm",mappings:{"default":{"default":"element of with two horizontal strokes"}},key:"22F9"},{category:"Sm",mappings:{"default":{"default":"contains with long horizontal stroke"}},key:"22FA"},{category:"Sm",mappings:{"default":{"default":"contains with vertical bar at end of horizontal stroke"}},key:"22FB"},{category:"Sm",mappings:{"default":{"default":"small contains with vertical bar at end of horizontal stroke"}},key:"22FC"}, +{category:"Sm",mappings:{"default":{"default":"contains with overbar"}},key:"22FD"},{category:"Sm",mappings:{"default":{"default":"small contains with overbar"}},key:"22FE"},{category:"Sm",mappings:{"default":{"default":"z notation bag membership"}},key:"22FF"},{category:"So",mappings:{"default":{"default":"diameter sign","short":"diameter"}},key:"2300"},{category:"So",mappings:{"default":{"default":"house"}},key:"2302"},{category:"So",mappings:{"default":{"default":"projective"}},key:"2305"},{category:"So", +mappings:{"default":{"default":"perspective"}},key:"2306"},{category:"So",mappings:{"default":{"default":"wavy line"}},key:"2307"},{category:"So",mappings:{"default":{"default":"reversed not sign","short":"reversed not"}},key:"2310"},{category:"So",mappings:{"default":{"default":"square lozenge"}},key:"2311"},{category:"So",mappings:{"default":{"default":"arc"}},key:"2312"},{category:"So",mappings:{"default":{"default":"segment"}},key:"2313"},{category:"So",mappings:{"default":{"default":"sector"}}, +key:"2314"},{category:"So",mappings:{"default":{"default":"heavy plus sign",alternative:"heavy plus","short":"bold plus"}},key:"2795"},{category:"So",mappings:{"default":{"default":"heavy minus sign",alternative:"heavy minus","short":"bold minus"}},key:"2796"},{category:"So",mappings:{"default":{"default":"heavy division sign",alternative:"heavy division","short":"bold division"}},key:"2797"},{category:"So",mappings:{"default":{"default":"curly loop"}},key:"27B0"},{category:"So",mappings:{"default":{"default":"double curly loop"}}, +key:"27BF"},{category:"Sm",mappings:{"default":{"default":"white triangle containing small white triangle"}},key:"27C1"},{category:"Sm",mappings:{"default":{"default":"perpendicular"}},key:"27C2"},{category:"Sm",mappings:{"default":{"default":"open subset"}},key:"27C3"},{category:"Sm",mappings:{"default":{"default":"open superset"}},key:"27C4"},{category:"Sm",mappings:{"default":{"default":"or with dot inside"}},key:"27C7"},{category:"Sm",mappings:{"default":{"default":"reverse solidus preceding subset"}}, +key:"27C8"},{category:"Sm",mappings:{"default":{"default":"superset preceding solidus"}},key:"27C9"},{category:"Sm",mappings:{"default":{"default":"vertical bar with horizontal stroke"}},key:"27CA"},{category:"Sm",mappings:{"default":{"default":"mathematical rising diagonal"}},key:"27CB"},{category:"Sm",mappings:{"default":{"default":"long division"}},key:"27CC"},{category:"Sm",mappings:{"default":{"default":"mathematical falling diagonal"}},key:"27CD"},{category:"Sm",mappings:{"default":{"default":"squared logical and"}}, +key:"27CE"},{category:"Sm",mappings:{"default":{"default":"squared logical or"}},key:"27CF"},{category:"Sm",mappings:{"default":{"default":"white diamond with centered dot"}},key:"27D0"},{category:"Sm",mappings:{"default":{"default":"and with dot"}},key:"27D1"},{category:"Sm",mappings:{"default":{"default":"element of opening upwards"}},key:"27D2"},{category:"Sm",mappings:{"default":{"default":"lower right corner with dot"}},key:"27D3"},{category:"Sm",mappings:{"default":{"default":"upper left corner with dot"}}, +key:"27D4"},{category:"Sm",mappings:{"default":{"default":"left outer join"}},key:"27D5"},{category:"Sm",mappings:{"default":{"default":"right outer join"}},key:"27D6"},{category:"Sm",mappings:{"default":{"default":"full outer join"}},key:"27D7"},{category:"Sm",mappings:{"default":{"default":"large up tack"}},key:"27D8"},{category:"Sm",mappings:{"default":{"default":"large down tack"}},key:"27D9"},{category:"Sm",mappings:{"default":{"default":"left and right double turnstile"}},key:"27DA"},{category:"Sm", +mappings:{"default":{"default":"left and right tack"}},key:"27DB"},{category:"Sm",mappings:{"default":{"default":"left multimap"}},key:"27DC"},{category:"Sm",mappings:{"default":{"default":"long right tack"}},key:"27DD"},{category:"Sm",mappings:{"default":{"default":"long left tack"}},key:"27DE"},{category:"Sm",mappings:{"default":{"default":"up tack with circle above"}},key:"27DF"},{category:"Sm",mappings:{"default":{"default":"lozenge divided by horizontal rule"}},key:"27E0"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond"}}, +key:"27E1"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with leftwards tick"}},key:"27E2"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with rightwards tick"}},key:"27E3"},{category:"Sm",mappings:{"default":{"default":"white square with leftwards tick"}},key:"27E4"},{category:"Sm",mappings:{"default":{"default":"white square with rightwards tick"}},key:"27E5"},{category:"Sm",mappings:{"default":{"default":"rising diagonal crossing falling diagonal"}}, +key:"292B"},{category:"Sm",mappings:{"default":{"default":"falling diagonal crossing rising diagonal"}},key:"292C"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar delimiter"}},key:"2980"},{category:"Sm",mappings:{"default":{"default":"z notation spot"}},key:"2981"},{category:"Sm",mappings:{"default":{"default":"z notation type colon"}},key:"2982"},{category:"Sm",mappings:{"default":{"default":"dotted fence"}},key:"2999"},{category:"Sm",mappings:{"default":{"default":"vertical zigzag line"}}, +key:"299A"},{category:"Sm",mappings:{"default":{"default":"reversed empty set"}},key:"29B0"},{category:"Sm",mappings:{"default":{"default":"empty set with overbar"}},key:"29B1"},{category:"Sm",mappings:{"default":{"default":"empty set with small circle above"}},key:"29B2"},{category:"Sm",mappings:{"default":{"default":"circle with horizontal bar"}},key:"29B5"},{category:"Sm",mappings:{"default":{"default":"circled vertical bar"}},key:"29B6"},{category:"Sm",mappings:{"default":{"default":"circled parallel"}}, +key:"29B7"},{category:"Sm",mappings:{"default":{"default":"circled reverse solidus"}},key:"29B8"},{category:"Sm",mappings:{"default":{"default":"circled perpendicular"}},key:"29B9"},{category:"Sm",mappings:{"default":{"default":"circle divided by horizontal bar and top half divided by vertical bar"}},key:"29BA"},{category:"Sm",mappings:{"default":{"default":"circle with superimposed x"}},key:"29BB"},{category:"Sm",mappings:{"default":{"default":"circled anticlockwise rotated division sign","short":"circled anticlockwise rotated division"}}, +key:"29BC"},{category:"Sm",mappings:{"default":{"default":"circled white bullet"}},key:"29BE"},{category:"Sm",mappings:{"default":{"default":"circled bullet"}},key:"29BF"},{category:"Sm",mappings:{"default":{"default":"circled less than"}},key:"29C0"},{category:"Sm",mappings:{"default":{"default":"circled greater than"}},key:"29C1"},{category:"Sm",mappings:{"default":{"default":"circle with small circle to the right"}},key:"29C2"},{category:"Sm",mappings:{"default":{"default":"circle with two horizontal strokes to the right"}}, +key:"29C3"},{category:"Sm",mappings:{"default":{"default":"squared rising diagonal slash"}},key:"29C4"},{category:"Sm",mappings:{"default":{"default":"squared falling diagonal slash"}},key:"29C5"},{category:"Sm",mappings:{"default":{"default":"squared asterisk"}},key:"29C6"},{category:"Sm",mappings:{"default":{"default":"squared small circle"}},key:"29C7"},{category:"Sm",mappings:{"default":{"default":"squared square"}},key:"29C8"},{category:"Sm",mappings:{"default":{"default":"two joined squares"}}, +key:"29C9"},{category:"Sm",mappings:{"default":{"default":"triangle with dot above"}},key:"29CA"},{category:"Sm",mappings:{"default":{"default":"triangle with underbar"}},key:"29CB"},{category:"Sm",mappings:{"default":{"default":"s in triangle"}},key:"29CC"},{category:"Sm",mappings:{"default":{"default":"triangle with serifs at bottom"}},key:"29CD"},{category:"Sm",mappings:{"default":{"default":"right triangle above left triangle"}},key:"29CE"},{category:"Sm",mappings:{"default":{"default":"left triangle beside vertical bar"}}, +key:"29CF"},{category:"Sm",mappings:{"default":{"default":"vertical bar beside right triangle"}},key:"29D0"},{category:"Sm",mappings:{"default":{"default":"bowtie with left half black"}},key:"29D1"},{category:"Sm",mappings:{"default":{"default":"bowtie with right half black"}},key:"29D2"},{category:"Sm",mappings:{"default":{"default":"black bowtie"}},key:"29D3"},{category:"Sm",mappings:{"default":{"default":"times with left half black"}},key:"29D4"},{category:"Sm",mappings:{"default":{"default":"times with right half black"}}, +key:"29D5"},{category:"Sm",mappings:{"default":{"default":"white hourglass"}},key:"29D6"},{category:"Sm",mappings:{"default":{"default":"black hourglass"}},key:"29D7"},{category:"Sm",mappings:{"default":{"default":"incomplete infinity"}},key:"29DC"},{category:"Sm",mappings:{"default":{"default":"tie over infinity"}},key:"29DD"},{category:"Sm",mappings:{"default":{"default":"infinity negated with vertical bar"}},key:"29DE"},{category:"Sm",mappings:{"default":{"default":"double ended multimap"}},key:"29DF"}, +{category:"Sm",mappings:{"default":{"default":"square with contoured outline"}},key:"29E0"},{category:"Sm",mappings:{"default":{"default":"increases as"}},key:"29E1"},{category:"Sm",mappings:{"default":{"default":"shuffle product"}},key:"29E2"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel"}},key:"29E3"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel with tilde above"}},key:"29E4"},{category:"Sm",mappings:{"default":{"default":"identical to and slanted parallel"}}, +key:"29E5"},{category:"Sm",mappings:{"default":{"default":"gleich stark"}},key:"29E6"},{category:"Sm",mappings:{"default":{"default":"thermodynamic"}},key:"29E7"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with left half black"}},key:"29E8"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with right half black"}},key:"29E9"},{category:"Sm",mappings:{"default":{"default":"black lozenge"}},key:"29EB"},{category:"Sm",mappings:{"default":{"default":"error barred white square"}}, +key:"29EE"},{category:"Sm",mappings:{"default":{"default":"error barred black square"}},key:"29EF"},{category:"Sm",mappings:{"default":{"default":"error barred white diamond"}},key:"29F0"},{category:"Sm",mappings:{"default":{"default":"error barred black diamond"}},key:"29F1"},{category:"Sm",mappings:{"default":{"default":"error barred white circle"}},key:"29F2"},{category:"Sm",mappings:{"default":{"default":"error barred black circle"}},key:"29F3"},{category:"Sm",mappings:{"default":{"default":"rule delayed"}}, +key:"29F4"},{category:"Sm",mappings:{"default":{"default":"reverse solidus operator"}},key:"29F5"},{category:"Sm",mappings:{"default":{"default":"solidus with overbar"}},key:"29F6"},{category:"Sm",mappings:{"default":{"default":"reverse solidus with horizontal stroke"}},key:"29F7"},{category:"Sm",mappings:{"default":{"default":"big solidus"}},key:"29F8"},{category:"Sm",mappings:{"default":{"default":"big reverse solidus"}},key:"29F9"},{category:"Sm",mappings:{"default":{"default":"double plus"}}, +key:"29FA"},{category:"Sm",mappings:{"default":{"default":"triple plus"}},key:"29FB"},{category:"Sm",mappings:{"default":{"default":"tiny"}},key:"29FE"},{category:"Sm",mappings:{"default":{"default":"miny"}},key:"29FF"},{category:"Sm",mappings:{"default":{"default":"n ary circled dot operator"}},key:"2A00"},{category:"Sm",mappings:{"default":{"default":"n ary circled plus operator"}},key:"2A01"},{category:"Sm",mappings:{"default":{"default":"n ary circled times operator"}},key:"2A02"},{category:"Sm", +mappings:{"default":{"default":"n ary union operator with dot"}},key:"2A03"},{category:"Sm",mappings:{"default":{"default":"n ary union operator with plus"}},key:"2A04"},{category:"Sm",mappings:{"default":{"default":"n ary square intersection operator"}},key:"2A05"},{category:"Sm",mappings:{"default":{"default":"n ary square union operator"}},key:"2A06"},{category:"Sm",mappings:{"default":{"default":"two logical and operator"}},key:"2A07"},{category:"Sm",mappings:{"default":{"default":"two logical or operator"}}, +key:"2A08"},{category:"Sm",mappings:{"default":{"default":"n ary times operator"}},key:"2A09"},{category:"Sm",mappings:{"default":{"default":"modulo two sum"}},key:"2A0A"},{category:"Sm",mappings:{"default":{"default":"summation with integral"}},key:"2A0B"},{category:"Sm",mappings:{"default":{"default":"quadruple integral operator"}},key:"2A0C"},{category:"Sm",mappings:{"default":{"default":"finite part integral"}},key:"2A0D"},{category:"Sm",mappings:{"default":{"default":"integral with double stroke"}}, +key:"2A0E"},{category:"Sm",mappings:{"default":{"default":"integral average with slash"}},key:"2A0F"},{category:"Sm",mappings:{"default":{"default":"circulation function"}},key:"2A10"},{category:"Sm",mappings:{"default":{"default":"anticlockwise integration"}},key:"2A11"},{category:"Sm",mappings:{"default":{"default":"line integration with rectangular path around pole"}},key:"2A12"},{category:"Sm",mappings:{"default":{"default":"line integration with semicircular path around pole"}},key:"2A13"},{category:"Sm", +mappings:{"default":{"default":"line integration not including the pole"}},key:"2A14"},{category:"Sm",mappings:{"default":{"default":"integral around a point operator"}},key:"2A15"},{category:"Sm",mappings:{"default":{"default":"quaternion integral operator"}},key:"2A16"},{category:"Sm",mappings:{"default":{"default":"integral with times sign","short":"integral with times"}},key:"2A18"},{category:"Sm",mappings:{"default":{"default":"integral with intersection"}},key:"2A19"},{category:"Sm",mappings:{"default":{"default":"integral with union"}}, +key:"2A1A"},{category:"Sm",mappings:{"default":{"default":"integral with overbar"}},key:"2A1B"},{category:"Sm",mappings:{"default":{"default":"integral with underbar"}},key:"2A1C"},{category:"Sm",mappings:{"default":{"default":"join"}},key:"2A1D"},{category:"Sm",mappings:{"default":{"default":"large left triangle operator"}},key:"2A1E"},{category:"Sm",mappings:{"default":{"default":"z notation schema composition"}},key:"2A1F"},{category:"Sm",mappings:{"default":{"default":"z notation schema piping"}}, +key:"2A20"},{category:"Sm",mappings:{"default":{"default":"z notation schema projection"}},key:"2A21"},{category:"Sm",mappings:{"default":{"default":"plus sign with small circle above","short":"plus with circle above"}},key:"2A22"},{category:"Sm",mappings:{"default":{"default":"plus sign with circumflex accent above","short":"plus hat"}},key:"2A23"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde above","short":"plus tilde"}},key:"2A24"},{category:"Sm",mappings:{"default":{"default":"plus sign with dot below", +"short":"plus underdot"}},key:"2A25"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde below"}},key:"2A26"},{category:"Sm",mappings:{"default":{"default":"plus sign with subscript two"}},key:"2A27"},{category:"Sm",mappings:{"default":{"default":"plus sign with black triangle"}},key:"2A28"},{category:"Sm",mappings:{"default":{"default":"minus sign with comma above"}},key:"2A29"},{category:"Sm",mappings:{"default":{"default":"minus sign with dot below"}},key:"2A2A"},{category:"Sm", +mappings:{"default":{"default":"minus sign with falling dots"}},key:"2A2B"},{category:"Sm",mappings:{"default":{"default":"minus sign with rising dots"}},key:"2A2C"},{category:"Sm",mappings:{"default":{"default":"plus sign in left half circle"}},key:"2A2D"},{category:"Sm",mappings:{"default":{"default":"plus sign in right half circle"}},key:"2A2E"},{category:"Sm",mappings:{"default":{"default":"vector or cross product"}},key:"2A2F"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with dot above"}}, +key:"2A30"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with underbar"}},key:"2A31"},{category:"Sm",mappings:{"default":{"default":"semidirect product with bottom closed"}},key:"2A32"},{category:"Sm",mappings:{"default":{"default":"smash product"}},key:"2A33"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in left half circle"}},key:"2A34"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in right half circle"}},key:"2A35"},{category:"Sm", +mappings:{"default":{"default":"circled multiplication sign with circumflex accent"}},key:"2A36"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in double circle"}},key:"2A37"},{category:"Sm",mappings:{"default":{"default":"circled division sign","short":"circled division"}},key:"2A38"},{category:"Sm",mappings:{"default":{"default":"plus sign in triangle"}},key:"2A39"},{category:"Sm",mappings:{"default":{"default":"minus sign in triangle"}},key:"2A3A"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in triangle"}}, +key:"2A3B"},{category:"Sm",mappings:{"default":{"default":"interior product"}},key:"2A3C"},{category:"Sm",mappings:{"default":{"default":"righthand interior product"}},key:"2A3D"},{category:"Sm",mappings:{"default":{"default":"z notation relational composition"}},key:"2A3E"},{category:"Sm",mappings:{"default":{"default":"amalgamation or coproduct"}},key:"2A3F"},{category:"Sm",mappings:{"default":{"default":"intersection with dot"}},key:"2A40"},{category:"Sm",mappings:{"default":{"default":"union with minus sign", +"short":"union with minus"}},key:"2A41"},{category:"Sm",mappings:{"default":{"default":"union with overbar"}},key:"2A42"},{category:"Sm",mappings:{"default":{"default":"intersection with overbar"}},key:"2A43"},{category:"Sm",mappings:{"default":{"default":"intersection with logical and"}},key:"2A44"},{category:"Sm",mappings:{"default":{"default":"union with logical or"}},key:"2A45"},{category:"Sm",mappings:{"default":{"default":"union above intersection"}},key:"2A46"},{category:"Sm",mappings:{"default":{"default":"intersection above union"}}, +key:"2A47"},{category:"Sm",mappings:{"default":{"default":"union above bar above intersection"}},key:"2A48"},{category:"Sm",mappings:{"default":{"default":"intersection above bar above union"}},key:"2A49"},{category:"Sm",mappings:{"default":{"default":"union beside and joined with union"}},key:"2A4A"},{category:"Sm",mappings:{"default":{"default":"intersection beside and joined with intersection"}},key:"2A4B"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs"}},key:"2A4C"}, +{category:"Sm",mappings:{"default":{"default":"closed intersection with serifs"}},key:"2A4D"},{category:"Sm",mappings:{"default":{"default":"double square intersection"}},key:"2A4E"},{category:"Sm",mappings:{"default":{"default":"double square union"}},key:"2A4F"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs and smash product"}},key:"2A50"},{category:"Sm",mappings:{"default":{"default":"logical and with dot above"}},key:"2A51"},{category:"Sm",mappings:{"default":{"default":"logical or with dot above"}}, +key:"2A52"},{category:"Sm",mappings:{"default":{"default":"double logical and"}},key:"2A53"},{category:"Sm",mappings:{"default":{"default":"double logical or"}},key:"2A54"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical and"}},key:"2A55"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical or"}},key:"2A56"},{category:"Sm",mappings:{"default":{"default":"sloping large or"}},key:"2A57"},{category:"Sm",mappings:{"default":{"default":"sloping large and"}}, +key:"2A58"},{category:"Sm",mappings:{"default":{"default":"logical or overlapping logical and"}},key:"2A59"},{category:"Sm",mappings:{"default":{"default":"logical and with middle stem"}},key:"2A5A"},{category:"Sm",mappings:{"default":{"default":"logical or with middle stem"}},key:"2A5B"},{category:"Sm",mappings:{"default":{"default":"logical and with horizontal dash"}},key:"2A5C"},{category:"Sm",mappings:{"default":{"default":"logical or with horizontal dash"}},key:"2A5D"},{category:"Sm",mappings:{"default":{"default":"logical and with double overbar"}}, +key:"2A5E"},{category:"Sm",mappings:{"default":{"default":"logical and with underbar"}},key:"2A5F"},{category:"Sm",mappings:{"default":{"default":"logical and with double underbar"}},key:"2A60"},{category:"Sm",mappings:{"default":{"default":"small vee with underbar"}},key:"2A61"},{category:"Sm",mappings:{"default":{"default":"logical or with double overbar"}},key:"2A62"},{category:"Sm",mappings:{"default":{"default":"logical or with double underbar"}},key:"2A63"},{category:"Sm",mappings:{"default":{"default":"z notation domain antirestriction"}}, +key:"2A64"},{category:"Sm",mappings:{"default":{"default":"z notation range antirestriction"}},key:"2A65"},{category:"Sm",mappings:{"default":{"default":"equals sign with dot below"}},key:"2A66"},{category:"Sm",mappings:{"default":{"default":"identical with dot above"}},key:"2A67"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with double vertical stroke"}},key:"2A68"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with triple vertical stroke"}},key:"2A69"}, +{category:"Sm",mappings:{"default":{"default":"tilde operator with dot above"}},key:"2A6A"},{category:"Sm",mappings:{"default":{"default":"tilde operator with rising dots"}},key:"2A6B"},{category:"Sm",mappings:{"default":{"default":"similar minus similar"}},key:"2A6C"},{category:"Sm",mappings:{"default":{"default":"congruent with dot above"}},key:"2A6D"},{category:"Sm",mappings:{"default":{"default":"equals with asterisk"}},key:"2A6E"},{category:"Sm",mappings:{"default":{"default":"almost equal to with circumflex accent", +"short":"almost equal hat"}},key:"2A6F"},{category:"Sm",mappings:{"default":{"default":"approximately equal or equal to"}},key:"2A70"},{category:"Sm",mappings:{"default":{"default":"equals sign above plus sign","short":"equals above plus"}},key:"2A71"},{category:"Sm",mappings:{"default":{"default":"plus sign above equals sign","short":"plus above equals"}},key:"2A72"},{category:"Sm",mappings:{"default":{"default":"equals sign above tilde operator","short":"equals above tilde operator"}},key:"2A73"}, +{category:"Sm",mappings:{"default":{"default":"double colon equal"}},key:"2A74"},{category:"Sm",mappings:{"default":{"default":"two consecutive equals signs","short":"two consecutive equals"}},key:"2A75"},{category:"Sm",mappings:{"default":{"default":"three consecutive equals signs","short":"three consecutive equals"}},key:"2A76"},{category:"Sm",mappings:{"default":{"default":"equals sign with two dots above and two dots below"}},key:"2A77"},{category:"Sm",mappings:{"default":{"default":"equivalent with four dots above"}}, +key:"2A78"},{category:"Sm",mappings:{"default":{"default":"less than with circle inside"}},key:"2A79"},{category:"Sm",mappings:{"default":{"default":"greater than with circle inside"}},key:"2A7A"},{category:"Sm",mappings:{"default":{"default":"less than with question mark above"}},key:"2A7B"},{category:"Sm",mappings:{"default":{"default":"greater than with question mark above"}},key:"2A7C"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to"}},key:"2A7D"},{category:"Sm", +mappings:{"default":{"default":"greater than or slanted equal to"}},key:"2A7E"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot inside"}},key:"2A7F"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot inside"}},key:"2A80"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above"}},key:"2A81"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above"}}, +key:"2A82"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above right"}},key:"2A83"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above left"}},key:"2A84"},{category:"Sm",mappings:{"default":{"default":"less than or approximate"}},key:"2A85"},{category:"Sm",mappings:{"default":{"default":"greater than or approximate"}},key:"2A86"},{category:"Sm",mappings:{"default":{"default":"less than and single line not equal to"}}, +key:"2A87"},{category:"Sm",mappings:{"default":{"default":"greater than and single line not equal to"}},key:"2A88"},{category:"Sm",mappings:{"default":{"default":"less than and not approximate"}},key:"2A89"},{category:"Sm",mappings:{"default":{"default":"greater than and not approximate"}},key:"2A8A"},{category:"Sm",mappings:{"default":{"default":"less than above double line equal above greater than"}},key:"2A8B"},{category:"Sm",mappings:{"default":{"default":"greater than above double line equal above less than"}}, +key:"2A8C"},{category:"Sm",mappings:{"default":{"default":"less than above similar or equal"}},key:"2A8D"},{category:"Sm",mappings:{"default":{"default":"greater than above similar or equal"}},key:"2A8E"},{category:"Sm",mappings:{"default":{"default":"less than above similar above greater than"}},key:"2A8F"},{category:"Sm",mappings:{"default":{"default":"greater than above similar above less than"}},key:"2A90"},{category:"Sm",mappings:{"default":{"default":"less than above greater than above double line equal"}}, +key:"2A91"},{category:"Sm",mappings:{"default":{"default":"greater than above less than above double line equal"}},key:"2A92"},{category:"Sm",mappings:{"default":{"default":"less than above slanted equal above greater than above slanted equal"}},key:"2A93"},{category:"Sm",mappings:{"default":{"default":"greater than above slanted equal above less than above slanted equal"}},key:"2A94"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than"}},key:"2A95"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than"}}, +key:"2A96"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than with dot inside"}},key:"2A97"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than with dot inside"}},key:"2A98"},{category:"Sm",mappings:{"default":{"default":"double line equal to or less than"}},key:"2A99"},{category:"Sm",mappings:{"default":{"default":"double line equal to or greater than"}},key:"2A9A"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or less than"}}, +key:"2A9B"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or greater than"}},key:"2A9C"},{category:"Sm",mappings:{"default":{"default":"similar or less than"}},key:"2A9D"},{category:"Sm",mappings:{"default":{"default":"similar or greater than"}},key:"2A9E"},{category:"Sm",mappings:{"default":{"default":"similar above less than above equals sign"}},key:"2A9F"},{category:"Sm",mappings:{"default":{"default":"similar above greater than above equals sign"}},key:"2AA0"},{category:"Sm", +mappings:{"default":{"default":"double nested less than"}},key:"2AA1"},{category:"Sm",mappings:{"default":{"default":"double nested greater than"}},key:"2AA2"},{category:"Sm",mappings:{"default":{"default":"double nested less than with underbar"}},key:"2AA3"},{category:"Sm",mappings:{"default":{"default":"greater than overlapping less than"}},key:"2AA4"},{category:"Sm",mappings:{"default":{"default":"greater than beside less than"}},key:"2AA5"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve"}}, +key:"2AA6"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve"}},key:"2AA7"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve above slanted equal"}},key:"2AA8"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve above slanted equal"}},key:"2AA9"},{category:"Sm",mappings:{"default":{"default":"smaller than"}},key:"2AAA"},{category:"Sm",mappings:{"default":{"default":"larger than"}},key:"2AAB"},{category:"Sm",mappings:{"default":{"default":"smaller than or equal to"}}, +key:"2AAC"},{category:"Sm",mappings:{"default":{"default":"larger than or equal to"}},key:"2AAD"},{category:"Sm",mappings:{"default":{"default":"equals sign with bumpy above"}},key:"2AAE"},{category:"Sm",mappings:{"default":{"default":"precedes above single line equals sign"}},key:"2AAF"},{category:"Sm",mappings:{"default":{"default":"succeeds above single line equals sign"}},key:"2AB0"},{category:"Sm",mappings:{"default":{"default":"precedes above single line not equal to"}},key:"2AB1"},{category:"Sm", +mappings:{"default":{"default":"succeeds above single line not equal to"}},key:"2AB2"},{category:"Sm",mappings:{"default":{"default":"precedes above equals sign"}},key:"2AB3"},{category:"Sm",mappings:{"default":{"default":"succeeds above equals sign"}},key:"2AB4"},{category:"Sm",mappings:{"default":{"default":"precedes above not equal to"}},key:"2AB5"},{category:"Sm",mappings:{"default":{"default":"succeeds above not equal to"}},key:"2AB6"},{category:"Sm",mappings:{"default":{"default":"precedes above almost equal to"}}, +key:"2AB7"},{category:"Sm",mappings:{"default":{"default":"succeeds above almost equal to"}},key:"2AB8"},{category:"Sm",mappings:{"default":{"default":"precedes above not almost equal to"}},key:"2AB9"},{category:"Sm",mappings:{"default":{"default":"succeeds above not almost equal to"}},key:"2ABA"},{category:"Sm",mappings:{"default":{"default":"double precedes"}},key:"2ABB"},{category:"Sm",mappings:{"default":{"default":"double succeeds"}},key:"2ABC"},{category:"Sm",mappings:{"default":{"default":"subset with dot"}}, +key:"2ABD"},{category:"Sm",mappings:{"default":{"default":"superset with dot"}},key:"2ABE"},{category:"Sm",mappings:{"default":{"default":"subset with plus sign below"}},key:"2ABF"},{category:"Sm",mappings:{"default":{"default":"superset with plus sign below"}},key:"2AC0"},{category:"Sm",mappings:{"default":{"default":"subset with multiplication sign below"}},key:"2AC1"},{category:"Sm",mappings:{"default":{"default":"superset with multiplication sign below"}},key:"2AC2"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to with dot above"}}, +key:"2AC3"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to with dot above"}},key:"2AC4"},{category:"Sm",mappings:{"default":{"default":"subset of above equals sign"}},key:"2AC5"},{category:"Sm",mappings:{"default":{"default":"superset of above equals sign"}},key:"2AC6"},{category:"Sm",mappings:{"default":{"default":"subset of above tilde operator"}},key:"2AC7"},{category:"Sm",mappings:{"default":{"default":"superset of above tilde operator"}},key:"2AC8"},{category:"Sm",mappings:{"default":{"default":"subset of above almost equal to"}}, +key:"2AC9"},{category:"Sm",mappings:{"default":{"default":"superset of above almost equal to"}},key:"2ACA"},{category:"Sm",mappings:{"default":{"default":"subset of above not equal to"}},key:"2ACB"},{category:"Sm",mappings:{"default":{"default":"superset of above not equal to"}},key:"2ACC"},{category:"Sm",mappings:{"default":{"default":"square left open box operator"}},key:"2ACD"},{category:"Sm",mappings:{"default":{"default":"square right open box operator"}},key:"2ACE"},{category:"Sm",mappings:{"default":{"default":"closed subset"}}, +key:"2ACF"},{category:"Sm",mappings:{"default":{"default":"closed superset"}},key:"2AD0"},{category:"Sm",mappings:{"default":{"default":"closed subset or equal to"}},key:"2AD1"},{category:"Sm",mappings:{"default":{"default":"closed superset or equal to"}},key:"2AD2"},{category:"Sm",mappings:{"default":{"default":"subset above superset"}},key:"2AD3"},{category:"Sm",mappings:{"default":{"default":"superset above subset"}},key:"2AD4"},{category:"Sm",mappings:{"default":{"default":"subset above subset"}}, +key:"2AD5"},{category:"Sm",mappings:{"default":{"default":"superset above superset"}},key:"2AD6"},{category:"Sm",mappings:{"default":{"default":"superset beside subset"}},key:"2AD7"},{category:"Sm",mappings:{"default":{"default":"superset beside and joined by dash with subset"}},key:"2AD8"},{category:"Sm",mappings:{"default":{"default":"element of opening downwards"}},key:"2AD9"},{category:"Sm",mappings:{"default":{"default":"pitchfork with tee top"}},key:"2ADA"},{category:"Sm",mappings:{"default":{"default":"transversal intersection"}}, +key:"2ADB"},{category:"Sm",mappings:{"default":{"default":"forking"}},key:"2ADC"},{category:"Sm",mappings:{"default":{"default":"nonforking"}},key:"2ADD"},{category:"Sm",mappings:{"default":{"default":"short left tack"}},key:"2ADE"},{category:"Sm",mappings:{"default":{"default":"short down tack"}},key:"2ADF"},{category:"Sm",mappings:{"default":{"default":"short up tack"}},key:"2AE0"},{category:"Sm",mappings:{"default":{"default":"perpendicular with s"}},key:"2AE1"},{category:"Sm",mappings:{"default":{"default":"vertical bar triple right turnstile"}}, +key:"2AE2"},{category:"Sm",mappings:{"default":{"default":"double vertical bar left turnstile"}},key:"2AE3"},{category:"Sm",mappings:{"default":{"default":"vertical bar double left turnstile"}},key:"2AE4"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double left turnstile"}},key:"2AE5"},{category:"Sm",mappings:{"default":{"default":"long dash from left member of double vertical"}},key:"2AE6"},{category:"Sm",mappings:{"default":{"default":"short down tack with overbar"}},key:"2AE7"}, +{category:"Sm",mappings:{"default":{"default":"short up tack with underbar"}},key:"2AE8"},{category:"Sm",mappings:{"default":{"default":"short up tack above short down tack"}},key:"2AE9"},{category:"Sm",mappings:{"default":{"default":"double down tack"}},key:"2AEA"},{category:"Sm",mappings:{"default":{"default":"double up tack"}},key:"2AEB"},{category:"Sm",mappings:{"default":{"default":"double stroke not sign"}},key:"2AEC"},{category:"Sm",mappings:{"default":{"default":"reversed double stroke not sign"}}, +key:"2AED"},{category:"Sm",mappings:{"default":{"default":"does not divide with reversed negation slash"}},key:"2AEE"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle above"}},key:"2AEF"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle below"}},key:"2AF0"},{category:"Sm",mappings:{"default":{"default":"down tack with circle below"}},key:"2AF1"},{category:"Sm",mappings:{"default":{"default":"parallel with horizontal stroke"}},key:"2AF2"},{category:"Sm", +mappings:{"default":{"default":"parallel with tilde operator"}},key:"2AF3"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar binary relation"}},key:"2AF4"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar with horizontal stroke"}},key:"2AF5"},{category:"Sm",mappings:{"default":{"default":"triple colon operator"}},key:"2AF6"},{category:"Sm",mappings:{"default":{"default":"triple nested less than"}},key:"2AF7"},{category:"Sm",mappings:{"default":{"default":"triple nested greater than"}}, +key:"2AF8"},{category:"Sm",mappings:{"default":{"default":"double line slanted less than or equal to"}},key:"2AF9"},{category:"Sm",mappings:{"default":{"default":"double line slanted greater than or equal to"}},key:"2AFA"},{category:"Sm",mappings:{"default":{"default":"triple solidus binary relation"}},key:"2AFB"},{category:"Sm",mappings:{"default":{"default":"large triple vertical bar operator"}},key:"2AFC"},{category:"Sm",mappings:{"default":{"default":"double solidus operator"}},key:"2AFD"},{category:"Sm", +mappings:{"default":{"default":"white vertical bar"}},key:"2AFE"},{category:"Sm",mappings:{"default":{"default":"n ary white vertical bar"}},key:"2AFF"},{category:"Pd",mappings:{"default":{"default":"wave dash"}},key:"301C"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical comma"}},key:"FE10"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical colon"}},key:"FE13"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical semicolon"}}, +key:"FE14"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical exclamation mark"}},key:"FE15"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical question mark"}},key:"FE16"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical horizontal ellipsis"}},key:"FE19"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical two dot leader",alternative:"glyph for vertical two dot leader"}},key:"FE30"},{category:"Pd", +mappings:{"default":{"default":"presentation form for vertical em dash",alternative:"glyph for vertical em dash"}},key:"FE31"},{category:"Pd",mappings:{"default":{"default":"presentation form for vertical en dash",alternative:"glyph for vertical en dash"}},key:"FE32"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical low line",alternative:"glyph for vertical spacing underscore"}},key:"FE33"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical wavy low line", +alternative:"glyph for vertical spacing wavy underscore"}},key:"FE34"},{category:"Po",mappings:{"default":{"default":"sesame dot"}},key:"FE45"},{category:"Po",mappings:{"default":{"default":"white sesame dot"}},key:"FE46"},{category:"Po",mappings:{"default":{"default":"dashed overline",alternative:"spacing dashed overscore"}},key:"FE49"},{category:"Po",mappings:{"default":{"default":"centerline overline",alternative:"spacing centerline overscore"}},key:"FE4A"},{category:"Po",mappings:{"default":{"default":"wavy overline", +alternative:"spacing wavy overscore"}},key:"FE4B"},{category:"Po",mappings:{"default":{"default":"double wavy overline",alternative:"spacing double wavy overscore"}},key:"FE4C"},{category:"Pc",mappings:{"default":{"default":"dashed low line",alternative:"spacing dashed underscore"}},key:"FE4D"},{category:"Pc",mappings:{"default":{"default":"centerline low line",alternative:"spacing centerline underscore"}},key:"FE4E"},{category:"Pc",mappings:{"default":{"default":"wavy low line",alternative:"spacing wavy underscore"}}, +key:"FE4F"},{category:"Po",mappings:{"default":{"default":"small comma"}},key:"FE50"},{category:"Po",mappings:{"default":{"default":"small full stop",alternative:"small period"}},key:"FE52"},{category:"Po",mappings:{"default":{"default":"small semicolon"}},key:"FE54"},{category:"Po",mappings:{"default":{"default":"small colon"}},key:"FE55"},{category:"Po",mappings:{"default":{"default":"small question mark"}},key:"FE56"},{category:"Po",mappings:{"default":{"default":"small exclamation mark"}},key:"FE57"}, +{category:"Pd",mappings:{"default":{"default":"small em dash"}},key:"FE58"},{category:"Po",mappings:{"default":{"default":"small number sign"}},key:"FE5F"},{category:"Po",mappings:{"default":{"default":"small ampersand"}},key:"FE60"},{category:"Po",mappings:{"default":{"default":"small asterisk"}},key:"FE61"},{category:"Sm",mappings:{"default":{"default":"small plus sign"}},key:"FE62"},{category:"Pd",mappings:{"default":{"default":"small hyphen minus"}},key:"FE63"},{category:"Sm",mappings:{"default":{"default":"small less than sign"}}, +key:"FE64"},{category:"Sm",mappings:{"default":{"default":"small greater than sign"}},key:"FE65"},{category:"Sm",mappings:{"default":{"default":"small equals sign"}},key:"FE66"},{category:"Po",mappings:{"default":{"default":"small reverse solidus",alternative:"small backslash"}},key:"FE68"},{category:"Sc",mappings:{"default":{"default":"small dollar sign"}},key:"FE69"},{category:"Po",mappings:{"default":{"default":"small percent sign"}},key:"FE6A"},{category:"Po",mappings:{"default":{"default":"small commercial at"}}, +key:"FE6B"},{category:"Po",mappings:{"default":{"default":"fullwidth exclamation mark"}},key:"FF01"},{category:"Po",mappings:{"default":{"default":"fullwidth quotation mark"}},key:"FF02"},{category:"Po",mappings:{"default":{"default":"fullwidth number sign"}},key:"FF03"},{category:"Sc",mappings:{"default":{"default":"fullwidth dollar sign"}},key:"FF04"},{category:"Po",mappings:{"default":{"default":"fullwidth percent sign"}},key:"FF05"},{category:"Po",mappings:{"default":{"default":"fullwidth ampersand"}}, +key:"FF06"},{category:"Po",mappings:{"default":{"default":"fullwidth apostrophe"}},key:"FF07"},{category:"Po",mappings:{"default":{"default":"fullwidth asterisk"}},key:"FF0A"},{category:"Sm",mappings:{"default":{"default":"fullwidth plus sign"}},key:"FF0B"},{category:"Po",mappings:{"default":{"default":"fullwidth comma"}},key:"FF0C"},{category:"Pd",mappings:{"default":{"default":"fullwidth hyphen minus"}},key:"FF0D"},{category:"Po",mappings:{"default":{"default":"fullwidth full stop",alternative:"fullwidth period"}}, +key:"FF0E"},{category:"Po",mappings:{"default":{"default":"fullwidth solidus",alternative:"fullwidth slash"}},key:"FF0F"},{category:"Po",mappings:{"default":{"default":"fullwidth colon"}},key:"FF1A"},{category:"Po",mappings:{"default":{"default":"fullwidth semicolon"}},key:"FF1B"},{category:"Sm",mappings:{"default":{"default":"fullwidth less than sign"}},key:"FF1C"},{category:"Sm",mappings:{"default":{"default":"fullwidth equals sign"}},key:"FF1D"},{category:"Sm",mappings:{"default":{"default":"fullwidth greater than sign"}}, +key:"FF1E"},{category:"Po",mappings:{"default":{"default":"fullwidth question mark"}},key:"FF1F"},{category:"Po",mappings:{"default":{"default":"fullwidth commercial at"}},key:"FF20"},{category:"Po",mappings:{"default":{"default":"fullwidth reverse solidus",alternative:"fullwidth backslash"}},key:"FF3C"},{category:"Sk",mappings:{"default":{"default":"fullwidth circumflex accent",alternative:"fullwidth spacing circumflex"}},key:"FF3E"},{category:"Pc",mappings:{"default":{"default":"fullwidth low line", +alternative:"fullwidth spacing underscore"}},key:"FF3F"},{category:"Sk",mappings:{"default":{"default":"fullwidth grave accent",alternative:"fullwidth spacing grave"}},key:"FF40"},{category:"Sm",mappings:{"default":{"default":"fullwidth vertical line",alternative:"fullwidth vertical bar"}},key:"FF5C"},{category:"Sm",mappings:{"default":{"default":"fullwidth tilde",alternative:"fullwidth spacing tilde"}},key:"FF5E"},{category:"Sc",mappings:{"default":{"default":"fullwidth cent sign"}},key:"FFE0"}, +{category:"Sc",mappings:{"default":{"default":"fullwidth pound sign"}},key:"FFE1"},{category:"Sm",mappings:{"default":{"default":"fullwidth not sign"}},key:"FFE2"},{category:"Sk",mappings:{"default":{"default":"fullwidth macron",alternative:"fullwidth spacing macron"}},key:"FFE3"},{category:"So",mappings:{"default":{"default":"fullwidth broken bar",alternative:"fullwidth broken vertical bar"}},key:"FFE4"},{category:"Sc",mappings:{"default":{"default":"fullwidth yen sign"}},key:"FFE5"},{category:"Sc", +mappings:{"default":{"default":"fullwidth won sign"}},key:"FFE6"},{category:"So",mappings:{"default":{"default":"halfwidth forms light vertical"}},key:"FFE8"},{category:"So",mappings:{"default":{"default":"halfwidth black square"}},key:"FFED"},{category:"So",mappings:{"default":{"default":"halfwidth white circle"}},key:"FFEE"},{category:"Ll",names:[],key:"03B1",mappings:{"default":{"default":"greek small letter alpha","short":"alpha"}}},{category:"Ll",names:[],key:"03B2",mappings:{"default":{"default":"greek small letter beta", +"short":"beta"}}},{category:"Ll",names:[],key:"03B3",mappings:{"default":{"default":"greek small letter gamma","short":"gamma"}}},{category:"Ll",names:[],key:"03B4",mappings:{"default":{"default":"greek small letter delta","short":"delta"}}},{category:"Ll",names:[],key:"03B5",mappings:{"default":{"default":"greek small letter epsilon","short":"epsilon"}}},{category:"Ll",names:[],key:"03B6",mappings:{"default":{"default":"greek small letter zeta","short":"zeta"}}},{category:"Ll",names:[],key:"03B7", +mappings:{"default":{"default":"greek small letter eta","short":"eta"}}},{category:"Ll",names:[],key:"03B8",mappings:{"default":{"default":"greek small letter theta","short":"theta"}}},{category:"Ll",names:[],key:"03B9",mappings:{"default":{"default":"greek small letter iota","short":"iota"}}},{category:"Ll",names:[],key:"03BA",mappings:{"default":{"default":"greek small letter kappa","short":"kappa"}}},{category:"Ll",names:[],key:"03BB",mappings:{"default":{"default":"greek small letter lamda",alternative:"greek small letter lambda", +"short":"lamda"}}},{category:"Ll",names:[],key:"03BC",mappings:{"default":{"default":"greek small letter mu","short":"mu"}}},{category:"Ll",names:[],key:"03BD",mappings:{"default":{"default":"greek small letter nu","short":"nu"}}},{category:"Ll",names:[],key:"03BE",mappings:{"default":{"default":"greek small letter xi","short":"xi"}}},{category:"Ll",names:[],key:"03BF",mappings:{"default":{"default":"greek small letter omicron","short":"omicron"}}},{category:"Ll",names:[],key:"03C0",mappings:{"default":{"default":"greek small letter pi", +"short":"pi"}}},{category:"Ll",names:[],key:"03C1",mappings:{"default":{"default":"greek small letter rho","short":"rho"}}},{category:"Ll",names:[],key:"03C2",mappings:{"default":{"default":"greek small letter final sigma","short":"final sigma"}}},{category:"Ll",names:[],key:"03C3",mappings:{"default":{"default":"greek small letter sigma","short":"sigma"}}},{category:"Ll",names:[],key:"03C4",mappings:{"default":{"default":"greek small letter tau","short":"tau"}}},{category:"Ll",names:[],key:"03C5", +mappings:{"default":{"default":"greek small letter upsilon","short":"upsilon"}}},{category:"Ll",names:[],key:"03C6",mappings:{"default":{"default":"greek small letter phi","short":"phi"}}},{category:"Ll",names:[],key:"03C7",mappings:{"default":{"default":"greek small letter chi","short":"chi"}}},{category:"Ll",names:[],key:"03C8",mappings:{"default":{"default":"greek small letter psi","short":"psi"}}},{category:"Ll",names:[],key:"03C9",mappings:{"default":{"default":"greek small letter omega","short":"omega"}}}, +{category:"Ll",mappings:{"default":{"default":"greek beta symbol",alternative:"greek small letter curled beta","short":"beta"}},key:"03D0"},{category:"Ll",mappings:{"default":{"default":"greek theta symbol",alternative:"greek small letter script theta","short":"theta"}},key:"03D1"},{category:"Ll",mappings:{"default":{"default":"greek phi symbol",alternative:"greek small letter script phi","short":"phi"}},key:"03D5"},{category:"Ll",mappings:{"default":{"default":"greek pi symbol",alternative:"greek small letter omega pi", +"short":"pi"}},key:"03D6"},{category:"Ll",mappings:{"default":{"default":"greek kai symbol","short":"kai"}},key:"03D7"},{category:"Ll",mappings:{"default":{"default":"greek kappa symbol",alternative:"greek small letter script kappa","short":"kappa"}},key:"03F0"},{category:"Ll",mappings:{"default":{"default":"greek rho symbol",alternative:"greek small letter tailed rho","short":"rho"}},key:"03F1"},{category:"Ll",mappings:{"default":{"default":"greek lunate epsilon symbol","short":"epsilon"}},key:"03F5"}, +{category:"Sm",mappings:{"default":{"default":"greek reversed lunate epsilon symbol","short":"reversed epsilon"}},key:"03F6"},{category:"Lu",names:[],key:"0391",mappings:{"default":{"default":"greek capital letter alpha","short":"cap alpha"}}},{category:"Lu",names:[],key:"0392",mappings:{"default":{"default":"greek capital letter beta","short":"cap beta"}}},{category:"Lu",names:[],key:"0393",mappings:{"default":{"default":"greek capital letter gamma","short":"cap gamma"}}},{category:"Lu",names:[], +key:"0394",mappings:{"default":{"default":"greek capital letter delta","short":"cap delta"}}},{category:"Lu",names:[],key:"0395",mappings:{"default":{"default":"greek capital letter epsilon","short":"cap epsilon"}}},{category:"Lu",names:[],key:"0396",mappings:{"default":{"default":"greek capital letter zeta","short":"cap zeta"}}},{category:"Lu",names:[],key:"0397",mappings:{"default":{"default":"greek capital letter eta","short":"cap eta"}}},{category:"Lu",names:[],key:"0398",mappings:{"default":{"default":"greek capital letter theta", +"short":"cap theta"}}},{category:"Lu",names:[],key:"0399",mappings:{"default":{"default":"greek capital letter iota","short":"cap iota"}}},{category:"Lu",names:[],key:"039A",mappings:{"default":{"default":"greek capital letter kappa","short":"cap kappa"}}},{category:"Lu",names:[],key:"039B",mappings:{"default":{"default":"greek capital letter lamda",alternative:"greek capital letter lambda","short":"cap lamda"}}},{category:"Lu",names:[],key:"039C",mappings:{"default":{"default":"greek capital letter mu", +"short":"cap mu"}}},{category:"Lu",names:[],key:"039D",mappings:{"default":{"default":"greek capital letter nu","short":"cap nu"}}},{category:"Lu",names:[],key:"039E",mappings:{"default":{"default":"greek capital letter xi","short":"cap xi"}}},{category:"Lu",names:[],key:"039F",mappings:{"default":{"default":"greek capital letter omicron","short":"cap omicron"}}},{category:"Lu",names:[],key:"03A0",mappings:{"default":{"default":"greek capital letter pi","short":"cap pi"}}},{category:"Lu",names:[], +key:"03A1",mappings:{"default":{"default":"greek capital letter rho","short":"cap rho"}}},{category:"Lu",names:[],key:"03A3",mappings:{"default":{"default":"greek capital letter sigma","short":"cap sigma"}}},{category:"Lu",names:[],key:"03A4",mappings:{"default":{"default":"greek capital letter tau","short":"cap tau"}}},{category:"Lu",names:[],key:"03A5",mappings:{"default":{"default":"greek capital letter upsilon","short":"cap upsilon"}}},{category:"Lu",names:[],key:"03A6",mappings:{"default":{"default":"greek capital letter phi", +"short":"cap phi"}}},{category:"Lu",names:[],key:"03A7",mappings:{"default":{"default":"greek capital letter chi","short":"cap chi"}}},{category:"Lu",names:[],key:"03A8",mappings:{"default":{"default":"greek capital letter psi","short":"cap psi"}}},{category:"Lu",names:[],key:"03A9",mappings:{"default":{"default":"greek capital letter omega","short":"cap omega"}}},{category:"Lu",mappings:{"default":{"default":"greek capital theta symbol","short":"cap theta"}},key:"03F4"},{category:"Ps",mappings:{"default":{"default":"left parenthesis", +alternative:"opening parenthesis"}},key:"0028"},{category:"Pe",mappings:{"default":{"default":"right parenthesis",alternative:"closing parenthesis"}},key:"0029"},{category:"Ps",mappings:{"default":{"default":"left square bracket",alternative:"opening square bracket"}},key:"005B"},{category:"Pe",mappings:{"default":{"default":"right square bracket",alternative:"closing square bracket"}},key:"005D"},{category:"Ps",mappings:{"default":{"default":"left curly bracket",alternative:"opening curly bracket"}}, +key:"007B"},{category:"Pe",mappings:{"default":{"default":"right curly bracket",alternative:"closing curly bracket"}},key:"007D"},{category:"Ps",mappings:{"default":{"default":"left square bracket with quill"}},key:"2045"},{category:"Pe",mappings:{"default":{"default":"right square bracket with quill"}},key:"2046"},{category:"Sm",mappings:{"default":{"default":"left ceiling"}},key:"2308"},{category:"Sm",mappings:{"default":{"default":"right ceiling"}},key:"2309"},{category:"Sm",mappings:{"default":{"default":"left floor"}}, +key:"230A"},{category:"Sm",mappings:{"default":{"default":"right floor"}},key:"230B"},{category:"So",mappings:{"default":{"default":"bottom right crop"}},key:"230C"},{category:"So",mappings:{"default":{"default":"bottom left crop"}},key:"230D"},{category:"So",mappings:{"default":{"default":"top right crop"}},key:"230E"},{category:"So",mappings:{"default":{"default":"top left crop"}},key:"230F"},{category:"So",mappings:{"default":{"default":"top left corner"}},key:"231C"},{category:"So",mappings:{"default":{"default":"top right corner"}}, +key:"231D"},{category:"So",mappings:{"default":{"default":"bottom left corner"}},key:"231E"},{category:"So",mappings:{"default":{"default":"bottom right corner"}},key:"231F"},{category:"Sm",mappings:{"default":{"default":"top half integral"}},key:"2320"},{category:"Sm",mappings:{"default":{"default":"bottom half integral"}},key:"2321"},{category:"Ps",mappings:{"default":{"default":"left pointing angle bracket",alternative:"bra"}},key:"2329"},{category:"Pe",mappings:{"default":{"default":"right pointing angle bracket", +alternative:"ket"}},key:"232A"},{category:"Sm",mappings:{"default":{"default":"left parenthesis upper hook"}},key:"239B"},{category:"Sm",mappings:{"default":{"default":"left parenthesis extension"}},key:"239C"},{category:"Sm",mappings:{"default":{"default":"left parenthesis lower hook"}},key:"239D"},{category:"Sm",mappings:{"default":{"default":"right parenthesis upper hook"}},key:"239E"},{category:"Sm",mappings:{"default":{"default":"right parenthesis extension"}},key:"239F"},{category:"Sm",mappings:{"default":{"default":"right parenthesis lower hook"}}, +key:"23A0"},{category:"Sm",mappings:{"default":{"default":"left square bracket upper corner"}},key:"23A1"},{category:"Sm",mappings:{"default":{"default":"left square bracket extension"}},key:"23A2"},{category:"Sm",mappings:{"default":{"default":"left square bracket lower corner"}},key:"23A3"},{category:"Sm",mappings:{"default":{"default":"right square bracket upper corner"}},key:"23A4"},{category:"Sm",mappings:{"default":{"default":"right square bracket extension"}},key:"23A5"},{category:"Sm",mappings:{"default":{"default":"right square bracket lower corner"}}, +key:"23A6"},{category:"Sm",mappings:{"default":{"default":"left curly bracket upper hook"}},key:"23A7"},{category:"Sm",mappings:{"default":{"default":"left curly bracket middle piece"}},key:"23A8"},{category:"Sm",mappings:{"default":{"default":"left curly bracket lower hook"}},key:"23A9"},{category:"Sm",mappings:{"default":{"default":"curly bracket extension"}},key:"23AA"},{category:"Sm",mappings:{"default":{"default":"right curly bracket upper hook"}},key:"23AB"},{category:"Sm",mappings:{"default":{"default":"right curly bracket middle piece"}}, +key:"23AC"},{category:"Sm",mappings:{"default":{"default":"right curly bracket lower hook"}},key:"23AD"},{category:"Sm",mappings:{"default":{"default":"integral extension"}},key:"23AE"},{category:"Sm",mappings:{"default":{"default":"horizontal line extension"}},key:"23AF"},{category:"Sm",mappings:{"default":{"default":"upper left or lower right curly bracket section"}},key:"23B0"},{category:"Sm",mappings:{"default":{"default":"upper right or lower left curly bracket section"}},key:"23B1"},{category:"Sm", +mappings:{"default":{"default":"summation top"}},key:"23B2"},{category:"Sm",mappings:{"default":{"default":"summation bottom"}},key:"23B3"},{category:"So",mappings:{"default":{"default":"top square bracket"}},key:"23B4"},{category:"So",mappings:{"default":{"default":"bottom square bracket"}},key:"23B5"},{category:"So",mappings:{"default":{"default":"bottom square bracket over top square bracket"}},key:"23B6"},{category:"So",mappings:{"default":{"default":"radical symbol bottom"}},key:"23B7"},{category:"So", +mappings:{"default":{"default":"left vertical box line"}},key:"23B8"},{category:"So",mappings:{"default":{"default":"right vertical box line"}},key:"23B9"},{category:"Sm",mappings:{"default":{"default":"top parenthesis"}},key:"23DC"},{category:"Sm",mappings:{"default":{"default":"bottom parenthesis"}},key:"23DD"},{category:"Sm",mappings:{"default":{"default":"top curly bracket"}},key:"23DE"},{category:"Sm",mappings:{"default":{"default":"bottom curly bracket"}},key:"23DF"},{category:"Sm",mappings:{"default":{"default":"top tortoise shell bracket"}}, +key:"23E0"},{category:"Sm",mappings:{"default":{"default":"bottom tortoise shell bracket"}},key:"23E1"},{category:"Ps",mappings:{"default":{"default":"medium left parenthesis ornament"}},key:"2768"},{category:"Pe",mappings:{"default":{"default":"medium right parenthesis ornament"}},key:"2769"},{category:"Ps",mappings:{"default":{"default":"medium flattened left parenthesis ornament"}},key:"276A"},{category:"Pe",mappings:{"default":{"default":"medium flattened right parenthesis ornament"}},key:"276B"}, +{category:"Ps",mappings:{"default":{"default":"medium left pointing angle bracket ornament"}},key:"276C"},{category:"Pe",mappings:{"default":{"default":"medium right pointing angle bracket ornament"}},key:"276D"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle quotation mark ornament"}},key:"276E"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle quotation mark ornament"}},key:"276F"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle bracket ornament"}}, +key:"2770"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle bracket ornament"}},key:"2771"},{category:"Ps",mappings:{"default":{"default":"light left tortoise shell bracket ornament"}},key:"2772"},{category:"Pe",mappings:{"default":{"default":"light right tortoise shell bracket ornament"}},key:"2773"},{category:"Ps",mappings:{"default":{"default":"medium left curly bracket ornament"}},key:"2774"},{category:"Pe",mappings:{"default":{"default":"medium right curly bracket ornament"}}, +key:"2775"},{category:"Ps",mappings:{"default":{"default":"left s shaped bag delimiter"}},key:"27C5"},{category:"Pe",mappings:{"default":{"default":"right s shaped bag delimiter"}},key:"27C6"},{category:"Ps",mappings:{"default":{"default":"mathematical left white square bracket"}},key:"27E6"},{category:"Pe",mappings:{"default":{"default":"mathematical right white square bracket"}},key:"27E7"},{category:"Ps",mappings:{"default":{"default":"mathematical left angle bracket"}},key:"27E8"},{category:"Pe", +mappings:{"default":{"default":"mathematical right angle bracket"}},key:"27E9"},{category:"Ps",mappings:{"default":{"default":"mathematical left double angle bracket"}},key:"27EA"},{category:"Pe",mappings:{"default":{"default":"mathematical right double angle bracket"}},key:"27EB"},{category:"Ps",mappings:{"default":{"default":"mathematical left white tortoise shell bracket"}},key:"27EC"},{category:"Pe",mappings:{"default":{"default":"mathematical right white tortoise shell bracket"}},key:"27ED"}, +{category:"Ps",mappings:{"default":{"default":"mathematical left flattened parenthesis"}},key:"27EE"},{category:"Pe",mappings:{"default":{"default":"mathematical right flattened parenthesis"}},key:"27EF"},{category:"Ps",mappings:{"default":{"default":"left white curly bracket"}},key:"2983"},{category:"Pe",mappings:{"default":{"default":"right white curly bracket"}},key:"2984"},{category:"Ps",mappings:{"default":{"default":"left white parenthesis"}},key:"2985"},{category:"Pe",mappings:{"default":{"default":"right white parenthesis"}}, +key:"2986"},{category:"Ps",mappings:{"default":{"default":"z notation left image bracket"}},key:"2987"},{category:"Pe",mappings:{"default":{"default":"z notation right image bracket"}},key:"2988"},{category:"Ps",mappings:{"default":{"default":"z notation left binding bracket"}},key:"2989"},{category:"Pe",mappings:{"default":{"default":"z notation right binding bracket"}},key:"298A"},{category:"Ps",mappings:{"default":{"default":"left square bracket with underbar"}},key:"298B"},{category:"Pe",mappings:{"default":{"default":"right square bracket with underbar"}}, +key:"298C"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in top corner"}},key:"298D"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in bottom corner"}},key:"298E"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in bottom corner"}},key:"298F"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in top corner"}},key:"2990"},{category:"Ps",mappings:{"default":{"default":"left angle bracket with dot"}}, +key:"2991"},{category:"Pe",mappings:{"default":{"default":"right angle bracket with dot"}},key:"2992"},{category:"Ps",mappings:{"default":{"default":"left arc less than bracket"}},key:"2993"},{category:"Pe",mappings:{"default":{"default":"right arc greater than bracket"}},key:"2994"},{category:"Ps",mappings:{"default":{"default":"double left arc greater than bracket"}},key:"2995"},{category:"Pe",mappings:{"default":{"default":"double right arc less than bracket"}},key:"2996"},{category:"Ps",mappings:{"default":{"default":"left black tortoise shell bracket"}}, +key:"2997"},{category:"Pe",mappings:{"default":{"default":"right black tortoise shell bracket"}},key:"2998"},{category:"Ps",mappings:{"default":{"default":"left wiggly fence"}},key:"29D8"},{category:"Pe",mappings:{"default":{"default":"right wiggly fence"}},key:"29D9"},{category:"Ps",mappings:{"default":{"default":"left double wiggly fence"}},key:"29DA"},{category:"Pe",mappings:{"default":{"default":"right double wiggly fence"}},key:"29DB"},{category:"Ps",mappings:{"default":{"default":"left pointing curved angle bracket"}}, +key:"29FC"},{category:"Pe",mappings:{"default":{"default":"right pointing curved angle bracket"}},key:"29FD"},{category:"Ps",mappings:{"default":{"default":"top left half bracket"}},key:"2E22"},{category:"Pe",mappings:{"default":{"default":"top right half bracket"}},key:"2E23"},{category:"Ps",mappings:{"default":{"default":"bottom left half bracket"}},key:"2E24"},{category:"Pe",mappings:{"default":{"default":"bottom right half bracket"}},key:"2E25"},{category:"Ps",mappings:{"default":{"default":"left sideways u bracket"}}, +key:"2E26"},{category:"Pe",mappings:{"default":{"default":"right sideways u bracket"}},key:"2E27"},{category:"Ps",mappings:{"default":{"default":"left double parenthesis"}},key:"2E28"},{category:"Pe",mappings:{"default":{"default":"right double parenthesis"}},key:"2E29"},{category:"Ps",mappings:{"default":{"default":"left angle bracket",alternative:"opening angle bracket"}},key:"3008"},{category:"Pe",mappings:{"default":{"default":"right angle bracket",alternative:"closing angle bracket"}},key:"3009"}, +{category:"Ps",mappings:{"default":{"default":"left double angle bracket",alternative:"opening double angle bracket"}},key:"300A"},{category:"Pe",mappings:{"default":{"default":"right double angle bracket",alternative:"closing double angle bracket"}},key:"300B"},{category:"Ps",mappings:{"default":{"default":"left corner bracket",alternative:"opening corner bracket"}},key:"300C"},{category:"Pe",mappings:{"default":{"default":"right corner bracket",alternative:"closing corner bracket"}},key:"300D"}, +{category:"Ps",mappings:{"default":{"default":"left white corner bracket",alternative:"opening white corner bracket"}},key:"300E"},{category:"Pe",mappings:{"default":{"default":"right white corner bracket",alternative:"closing white corner bracket"}},key:"300F"},{category:"Ps",mappings:{"default":{"default":"left black lenticular bracket",alternative:"opening black lenticular bracket"}},key:"3010"},{category:"Pe",mappings:{"default":{"default":"right black lenticular bracket",alternative:"closing black lenticular bracket"}}, +key:"3011"},{category:"Ps",mappings:{"default":{"default":"left tortoise shell bracket",alternative:"opening tortoise shell bracket"}},key:"3014"},{category:"Pe",mappings:{"default":{"default":"right tortoise shell bracket",alternative:"closing tortoise shell bracket"}},key:"3015"},{category:"Ps",mappings:{"default":{"default":"left white lenticular bracket",alternative:"opening white lenticular bracket"}},key:"3016"},{category:"Pe",mappings:{"default":{"default":"right white lenticular bracket", +alternative:"closing white lenticular bracket"}},key:"3017"},{category:"Ps",mappings:{"default":{"default":"left white tortoise shell bracket",alternative:"opening white tortoise shell bracket"}},key:"3018"},{category:"Pe",mappings:{"default":{"default":"right white tortoise shell bracket",alternative:"closing white tortoise shell bracket"}},key:"3019"},{category:"Ps",mappings:{"default":{"default":"left white square bracket",alternative:"opening white square bracket"}},key:"301A"},{category:"Pe", +mappings:{"default":{"default":"right white square bracket",alternative:"closing white square bracket"}},key:"301B"},{category:"Ps",mappings:{"default":{"default":"reversed double prime quotation mark"}},key:"301D"},{category:"Pe",mappings:{"default":{"default":"double prime quotation mark"}},key:"301E"},{category:"Pe",mappings:{"default":{"default":"low double prime quotation mark"}},key:"301F"},{category:"Ps",mappings:{"default":{"default":"ornate left parenthesis"}},key:"FD3E"},{category:"Pe", +mappings:{"default":{"default":"ornate right parenthesis"}},key:"FD3F"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white lenticular bracket"}},key:"FE17"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white lenticular bracket"}},key:"FE18"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left parenthesis",alternative:"glyph for vertical opening parenthesis"}},key:"FE35"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right parenthesis", +alternative:"glyph for vertical closing parenthesis"}},key:"FE36"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left curly bracket",alternative:"glyph for vertical opening curly bracket"}},key:"FE37"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right curly bracket",alternative:"glyph for vertical closing curly bracket"}},key:"FE38"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left tortoise shell bracket", +alternative:"glyph for vertical opening tortoise shell bracket"}},key:"FE39"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right tortoise shell bracket",alternative:"glyph for vertical closing tortoise shell bracket"}},key:"FE3A"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left black lenticular bracket",alternative:"glyph for vertical opening black lenticular bracket"}},key:"FE3B"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right black lenticular bracket", +alternative:"glyph for vertical closing black lenticular bracket"}},key:"FE3C"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left double angle bracket",alternative:"glyph for vertical opening double angle bracket"}},key:"FE3D"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right double angle bracket",alternative:"glyph for vertical closing double angle bracket"}},key:"FE3E"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left angle bracket", +alternative:"glyph for vertical opening angle bracket"}},key:"FE3F"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right angle bracket",alternative:"glyph for vertical closing angle bracket"}},key:"FE40"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left corner bracket",alternative:"glyph for vertical opening corner bracket"}},key:"FE41"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right corner bracket", +alternative:"glyph for vertical closing corner bracket"}},key:"FE42"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white corner bracket",alternative:"glyph for vertical opening white corner bracket"}},key:"FE43"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white corner bracket",alternative:"glyph for vertical closing white corner bracket"}},key:"FE44"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left square bracket"}}, +key:"FE47"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right square bracket"}},key:"FE48"},{category:"Ps",mappings:{"default":{"default":"small left parenthesis",alternative:"small opening parenthesis"}},key:"FE59"},{category:"Pe",mappings:{"default":{"default":"small right parenthesis",alternative:"small closing parenthesis"}},key:"FE5A"},{category:"Ps",mappings:{"default":{"default":"small left curly bracket",alternative:"small opening curly bracket"}},key:"FE5B"}, +{category:"Pe",mappings:{"default":{"default":"small right curly bracket",alternative:"small closing curly bracket"}},key:"FE5C"},{category:"Ps",mappings:{"default":{"default":"small left tortoise shell bracket",alternative:"small opening tortoise shell bracket"}},key:"FE5D"},{category:"Pe",mappings:{"default":{"default":"small right tortoise shell bracket",alternative:"small closing tortoise shell bracket"}},key:"FE5E"},{category:"Ps",mappings:{"default":{"default":"fullwidth left parenthesis",alternative:"fullwidth opening parenthesis"}}, +key:"FF08"},{category:"Pe",mappings:{"default":{"default":"fullwidth right parenthesis",alternative:"fullwidth closing parenthesis"}},key:"FF09"},{category:"Ps",mappings:{"default":{"default":"fullwidth left square bracket",alternative:"fullwidth opening square bracket"}},key:"FF3B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right square bracket",alternative:"fullwidth closing square bracket"}},key:"FF3D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left curly bracket", +alternative:"fullwidth opening curly bracket"}},key:"FF5B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right curly bracket",alternative:"fullwidth closing curly bracket"}},key:"FF5D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left white parenthesis"}},key:"FF5F"},{category:"Pe",mappings:{"default":{"default":"fullwidth right white parenthesis"}},key:"FF60"},{category:"Ps",mappings:{"default":{"default":"halfwidth left corner bracket",alternative:"halfwidth opening corner bracket"}}, +key:"FF62"},{category:"Pe",mappings:{"default":{"default":"halfwidth right corner bracket",alternative:"halfwidth closing corner bracket"}},key:"FF63"}]; +cvox.AndroidMathMap.FUNCTION_MAPPINGS_=[{category:"Elementary",mappings:{"default":{"default":"logarithm",alternative:"logarithm function","short":"log"}},key:"log",names:["log"]},{category:"Elementary",mappings:{"default":{"default":"natural logarithm",alternative:"natural logarithm function","short":"natural log"}},key:"ln",names:["ln"]},{category:"Elementary",mappings:{"default":{"default":"logarithm base 10","short":"log base 10"}},key:"lg",names:["lg"]},{category:"Elementary",mappings:{"default":{"default":"exponential", +alternative:"exponential function","short":"exp"}},key:"exp",names:["exp","expt"]},{category:"Elementary",mappings:{"default":{"default":"greatest common divisor","short":"gcd"}},key:"gcd",names:["gcd"]},{category:"Elementary",mappings:{"default":{"default":"least common multiple","short":"lcm"}},key:"gcd",names:["gcd"]},{category:"Complex",mappings:{"default":{"default":"argument","short":"arg"}},key:"arg",names:["arg"]},{category:"Complex",mappings:{"default":{"default":"imaginary part","short":"imaginary"}}, +key:"im",names:["im"]},{category:"Complex",mappings:{"default":{"default":"real part","short":"real"}},key:"re",names:["re"]},{category:"Limits",mappings:{"default":{"default":"infimum","short":"inf"}},key:"inf",names:["inf"]},{category:"Limits",mappings:{"default":{"default":"limit","short":"lim"}},key:"lim",names:["lim"]},{category:"Limits",mappings:{"default":{"default":"infimum default",alternative:"inferior limit","short":"liminf"}},key:"liminf",names:["lim inf"]},{category:"Limits",mappings:{"default":{"default":"supremum limit", +alternative:"superior limit","short":"limsup"}},key:"limsup",names:["lim sup"]},{category:"Limits",mappings:{"default":{"default":"maximum","short":"max"}},key:"max",names:["max"]},{category:"Limits",mappings:{"default":{"default":"minimum","short":"min"}},key:"min",names:["min"]},{category:"Limits",mappings:{"default":{"default":"supremum","short":"sup"}},key:"sup",names:["sup"]},{category:"Limits",mappings:{"default":{"default":"injective limit",alternative:"direct limit","short":"colimit"}},key:"injlim", +names:["injlim","inj lim"]},{category:"Limits",mappings:{"default":{"default":"projective limit",alternative:"inverse limit","short":"limit"}},key:"projlim",names:["projlim","proj lim"]},{category:"Elementary",mappings:{"default":{"default":"modulo","short":"mod"}},key:"mod",names:["mod"]},{category:"Probability",mappings:{"default":{"default":"probability"}},key:"Pr",names:["Pr"]},{category:"Trigonometric",mappings:{"default":{"default":"cosine function","short":"cosine"}},key:"cos",names:["cos", +"cosine"]},{category:"Trigonometric",mappings:{"default":{"default":"cotangent function","short":"cotangent"}},key:"cot",names:["cot"]},{category:"Trigonometric",mappings:{"default":{"default":"cosecant function","short":"cosecant"}},key:"csc",names:["csc"]},{category:"Trigonometric",mappings:{"default":{"default":"secant function","short":"secant"}},key:"sec",names:["sec"]},{category:"Trigonometric",mappings:{"default":{"default":"sine function",alternative:"sine function","short":"sine"}},key:"sin", +names:["sin","sine"]},{category:"Trigonometric",mappings:{"default":{"default":"tangent function","short":"tangent"}},key:"tan",names:["tan"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cosine function",alternative:"arc cosine function","short":"arc cosine"}},key:"arccos",names:["arccos"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cotangent function",alternative:"arc cotangent function","short":"arc cotangent"}},key:"arccot",names:["arccot"]},{category:"Cyclometric", +mappings:{"default":{"default":"inverse cosecant function",alternative:"arc cosecant function","short":"arc cosecant"}},key:"arccsc",names:["arccsc"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse secant function",alternative:"arc secant function","short":"arc secant"}},key:"arcsec",names:["arcsec"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse sine function",alternative:"arc sine function","short":"arc sine"}},key:"arcsin",names:["arcsin"]},{category:"Cyclometric", +mappings:{"default":{"default":"inverse tangent function",alternative:"arc tangent function","short":"arc tangent"}},key:"arctan",names:["arctan"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosine function","short":"hyperbolic cosine"}},key:"cosh",names:["cosh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cotangent function","short":"hyperbolic cotangent"}},key:"coth",names:["coth"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosecant function", +"short":"hyperbolic cosecant"}},key:"csch",names:["csch"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic secant function","short":"hyperbolic secant"}},key:"sech",names:["sech"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic sine function","short":"hyperbolic sine"}},key:"sinh",names:["sinh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic tangent function","short":"hyperbolic tangent"}},key:"tanh",names:["tanh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosine function", +alternative:"area hyperbolic cosine function","short":"area hyperbolic cosine"}},key:"arcosh",names:["arcosh","arccosh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cotangent function",alternative:"area hyperbolic cotangent function","short":"area hyperbolic cotangent"}},key:"arcoth",names:["arcoth","arccoth"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosecant function",alternative:"area hyperbolic cosecant function","short":"area hyperbolic cosecant"}}, +key:"arcsch",names:["arcsch","arccsch"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic secant function",alternative:"area hyperbolic secant function","short":"area hyperbolic secant"}},key:"arsech",names:["arsech","arcsech"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic sine function",alternative:"area hyperbolic sine function","short":"area hyperbolic sine"}},key:"arsinh",names:["arsinh","arcsinh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic tangent function", +alternative:"area hyperbolic tangent function","short":"area hyperbolic tangent"}},key:"artanh",names:["artanh","arctanh"]},{category:"Algebra",mappings:{"default":{"default":"degree"}},key:"deg",names:["deg"]},{category:"Algebra",mappings:{"default":{"default":"determinant","short":"det"}},key:"det",names:["det"]},{category:"Algebra",mappings:{"default":{"default":"dimension"}},key:"dim",names:["dim"]},{category:"Algebra",mappings:{"default":{"default":"homomorphism","short":"hom"}},key:"hom",names:["hom", +"Hom"]},{category:"Algebra",mappings:{"default":{"default":"kernel"}},key:"ker",names:["ker"]},{category:"Algebra",mappings:{"default":{"default":"trace"}},key:"Tr",names:["Tr","tr"]}];cvox.AndroidVox=function(){cvox.ChromeVox.navigationManager.ignoreIframesNoMatterWhat()};goog.exportSymbol("cvox.AndroidVox",cvox.AndroidVox); +cvox.AndroidVox.performAction=function(a){var b=JSON.parse(a);a=b.action;var c=b.granularity,b=b.element,d=cvox.SearchWidget.getInstance().isActive();16==c&&512==a&&(cvox.ChromeVox.navigationManager.setReversed(!1),cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.navigationManager.updateIndicator());if(16==c)return cvox.ChromeVoxUserCommands.commands.readFromHere(),!0;cvox.ChromeVoxUserCommands.commands.stopSpeech();if(256==a||512==a)d||cvox.ChromeVoxEventWatcher.setUpTextHandler(); +var e=cvox.ChromeVoxEventWatcher.currentTextHandler;e||document.activeElement==document.body||console.log("no text handler, but there is an active element",document.activeElement);if(e&&1==c){if(256==a)return e.moveCursorToNextCharacter();if(512==a)return e.moveCursorToPreviousCharacter()}else if(e&&2==c){if(256==a)return e.moveCursorToNextWord();if(512==a)return e.moveCursorToPreviousWord()}else if(e&&8==c){if(256==a)return e.moveCursorToNextParagraph();if(512==a)return e.moveCursorToPreviousParagraph()}else if(e&& +4==c){var f=!1;256==a?f=e.moveCursorToNextLine():512==a&&(f=e.moveCursorToPreviousLine());if(f)return!0}switch(c){case -1:return cvox.ChromeVox.navigationManager.finishNavCommand(""),!0;case -2:return cvox.ChromeVoxUserCommands.commands.readCurrentTitle(),!0;case -3:return!0;case -4:return 512==a?cvox.ChromeVoxUserCommands.commands.exitShifter():cvox.ChromeVoxUserCommands.commands.enterShifter(),!0;case -5:return cvox.SearchWidget.getInstance().toggle(),!0}if(-275999999<=c&&-275E6>=c){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"), +cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);a=cvox.ChromeVox.navigationManager.getBraille();b=-275E6-c;if(c=a.text.getSpan(b))a=b-a.text.getSpanStart(c),cvox.AndroidVox.performClickAction(c,a);return!0}if(0>c)return!1;e=[];e[8]=cvox.NavigationShifter.GRANULARITIES.GROUP;e[4]=cvox.NavigationShifter.GRANULARITIES.LINE;e[2]=cvox.NavigationShifter.GRANULARITIES.WORD;e[1]=cvox.NavigationShifter.GRANULARITIES.CHARACTER;d||(c=c?e[c]:cvox.NavigationShifter.GRANULARITIES.OBJECT, +cvox.ChromeVox.navigationManager.setGranularity(c));c=!1;switch(a){case 16:if(d)break;cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);(c=cvox.ChromeVox.navigationManager.getCurrentNode())&&cvox.AndroidVox.performClickAction(c);c=!0;break;case 1024:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.nextSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.nextList();break;case "CONTROL":c= +!cvox.ChromeVoxUserCommands.commands.nextControl()}if(c)break;case 256:d?(cvox.SearchWidget.getInstance().nextResult(!1),c=!0):c=!cvox.ChromeVoxUserCommands.commands.forward();break;case 2048:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.previousSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.previousList();break;case "CONTROL":c=!cvox.ChromeVoxUserCommands.commands.previousControl()}if(c)break;case 512:d?(cvox.SearchWidget.getInstance().nextResult(!0),c=!0):c= +!cvox.ChromeVoxUserCommands.commands.backward()}return c};goog.exportSymbol("cvox.AndroidVox.performAction",cvox.AndroidVox.performAction); +cvox.AndroidVox.performClickAction=function(a,b){cvox.ChromeVox.navigationManager.getCurrentNode()!=a&&cvox.ApiImplementation.syncToNode(a,!1);cvox.Focuser.setFocus(a);var c=cvox.DomUtil.isInputTypeText(a)||a instanceof HTMLTextAreaElement;if(goog.isDef(b)&&c){var d=cvox.BrailleUtil.getTemplated(null,a),c=d.getSpanInstanceOf(cvox.BrailleUtil.ValueSpan),e=d.getSpanStart(c),d=d.getSpanEnd(c);e<=b&&b<=d&&(c=b-e+c.offset,a.selectionStart=a.selectionEnd=c,cvox.ChromeVoxEventWatcher.handleTextChanged(!0))}cvox.DomUtil.clickElem(a, +!1,!0)};cvox.AndroidHost=function(){};goog.inherits(cvox.AndroidHost,cvox.AbstractHost); +cvox.AndroidHost.prototype.init=function(){cvox.ChromeVox.version="AndroidVox";var a=cvox.AndroidKeyMap.getStringifiedKeyMap();cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable(a);cvox.ApiImplementation.siteSpecificScriptLoader="";cvox.ApiImplementation.siteSpecificScriptBase="";cvox.ApiImplementation.init();cvox.ChromeVox.earcons.earconsAvailable()&&(cvox.ChromeVox.verbosity=cvox.VERBOSITY_BRIEF);new cvox.AndroidMathMap;cvox.InitialSpeech.speak()};cvox.AndroidHost.prototype.reinit=function(){}; +cvox.AndroidHost.prototype.onPageLoad=function(){cvox.ChromeVoxEventWatcher.focusFollowsMouse=!0;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=0};cvox.AndroidHost.prototype.ttsLoaded=function(){return"undefined"!=typeof accessibility};cvox.AndroidHost.prototype.getApiSrc=function(){return""};cvox.AndroidHost.prototype.hasTtsCallback=function(){return!1};cvox.AndroidHost.prototype.mustRedispatchClickEvent=function(){return!0}; +cvox.AndroidHost.prototype.activateOrDeactivateChromeVox=function(a){cvox.ChromeVox.tts.stop();cvox.AndroidHost.superClass_.activateOrDeactivateChromeVox.call(this,a);this.onPageLoad()};goog.exportSymbol("cvox.AndroidHost.prototype.activateOrDeactivateChromeVox",cvox.AndroidHost.prototype.activateOrDeactivateChromeVox);cvox.HostFactory.hostConstructor=cvox.AndroidHost;window.cvox||(window.cvox={});cvox.MathJaxExternalUtil=function(){};cvox.MathJaxExternalUtil.mmlAttr=function(){return""}; +cvox.MathJaxExternalUtil.mfenced=function(a){null==a&&(a="");var b=[a+'<mrow mfenced="true"'+this.toMathMLattributes()+">"],c=a+" ";this.data.open&&b.push(this.data.open.toMathML(c));null!=this.data[0]&&b.push(this.data[0].toMathML(c));for(var d=1,e=this.data.length;d<e;d++)this.data[d]&&(this.data["sep"+d]&&b.push(this.data["sep"+d].toMathML(c)),b.push(this.data[d].toMathML(c)));this.data.close&&b.push(this.data.close.toMathML(c));b.push(a+"</mrow>");return b.join("\n")}; +cvox.MathJaxExternalUtil.getMathml=function(a,b){var c=MathJax.ElementJax.mml.mbase.prototype,d=MathJax.ElementJax.mml.mfenced.prototype;this.mmlAttr=c.toMathMLattributes;var e=d.toMathML;try{c.toMathMLattributes=cvox.MathJaxExternalUtil.mbase;d.toMathML=cvox.MathJaxExternalUtil.mfenced;var f=a.root.toMathML("");c.toMathMLattributes=this.mmlAttr;d.toMathML=e;MathJax.Callback(b)(f)}catch(g){c.toMathMLattributes=this.mmlAttr;d.toMathML=e;if(!g.restart)throw g;return MathJax.Callback.After([cvox.MathJaxExternalUtil.getMathml, +a,b],g.restart)}};cvox.MathJaxExternalUtil.mbase=function(){var a=cvox.MathJaxExternalUtil.mmlAttr.call(this);if(null!=this.spanID)var b=(this.id||"MathJax-Span-"+this.spanID)+MathJax.OutputJax["HTML-CSS"].idPostfix,a=a+(' spanID="'+b+'"');null!=this.texClass&&(a+=' texClass="'+this.texClass+'"');return a};cvox.MathJaxExternalUtil.isActive=function(){return"undefined"!=typeof MathJax&&"undefined"!=typeof MathJax.Hub&&"undefined"!=typeof MathJax.ElementJax&&"undefined"!=typeof MathJax.InputJax}; +cvox.MathJaxExternalUtil.getMathjaxCallback_=function(a,b){cvox.MathJaxExternalUtil.getMathml(b,function(c){b.root.inputID&&a(c,b.root.inputID)})};cvox.MathJaxExternalUtil.registerSignal=function(a,b){MathJax.Hub.Register.MessageHook(b,function(b){b=MathJax.Hub.getJaxFor(b[1]);cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};cvox.MathJaxExternalUtil.getAllJax=function(a){var b=MathJax.Hub.getAllJax();b&&b.forEach(function(b){b.root.spanID&&cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})}; +cvox.MathJaxExternalUtil.injectConfigScript=function(){var a=document.createElement("script");a.setAttribute("type","text/x-mathjax-config");a.textContent='MathJax.Hub.Config({\n jax: ["input/AsciiMath", "input/TeX"],\n extensions: ["toMathML.js"],\n skipStartupTypeset: true,\n messageStyle: "none",\n TeX: {extensions: ["AMSmath.js","AMSsymbols.js"]}\n});\nMathJax.Hub.Queue(\n function() {MathJax.Hub.inputJax["math/asciimath"].Process();\n MathJax.Hub.inputJax["math/tex"].Process()}\n);\n//\n// Prevent these from being loaded\n//\nif (!MathJax.Extension.MathMenu) {MathJax.Extension.MathMenu = {}};\nif (!MathJax.Extension.MathZoom) {MathJax.Extension.MathZoom = {}};'; +document.activeElement.appendChild(a)};cvox.MathJaxExternalUtil.injectLoadScript=function(){var a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src","http://cdn.mathjax.org/mathjax/latest/MathJax.js");document.activeElement.appendChild(a)}; +cvox.MathJaxExternalUtil.configMediaWiki=function(){mediaWiki&&MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var a=MathJax.ElementJax.mml;MathJax.Hub.Insert(MathJax.InputJax.TeX.Definitions,{mathchar0mi:{thetasym:"03B8",koppa:"03DF",stigma:"03DB",varstigma:"03DB",coppa:"03D9",varcoppa:"03D9",sampi:"03E1",C:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],cnums:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Complex:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],H:["210D",{mathvariant:a.VARIANT.DOUBLESTRUCK}], +N:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],natnums:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Q:["0051",{mathvariant:a.VARIANT.DOUBLESTRUCK}],R:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Z:["005A",{mathvariant:a.VARIANT.DOUBLESTRUCK}],sect:"00A7",P:"00B6",AA:["00C5",{mathvariant:a.VARIANT.NORMAL}],alef:["2135",{mathvariant:a.VARIANT.NORMAL}],alefsym:["2135",{mathvariant:a.VARIANT.NORMAL}], +weierp:["2118",{mathvariant:a.VARIANT.NORMAL}],real:["211C",{mathvariant:a.VARIANT.NORMAL}],part:["2202",{mathvariant:a.VARIANT.NORMAL}],infin:["221E",{mathvariant:a.VARIANT.NORMAL}],empty:["2205",{mathvariant:a.VARIANT.NORMAL}],O:["2205",{mathvariant:a.VARIANT.NORMAL}],ang:["2220",{mathvariant:a.VARIANT.NORMAL}],exist:["2203",{mathvariant:a.VARIANT.NORMAL}],clubs:["2663",{mathvariant:a.VARIANT.NORMAL}],diamonds:["2662",{mathvariant:a.VARIANT.NORMAL}],hearts:["2661",{mathvariant:a.VARIANT.NORMAL}], +spades:["2660",{mathvariant:a.VARIANT.NORMAL}],textvisiblespace:"2423",geneuro:"20AC",euro:"20AC"},mathchar0mo:{and:"2227",or:"2228",bull:"2219",plusmn:"00B1",sdot:"22C5",Dagger:"2021",sup:"2283",sub:"2282",supe:"2287",sube:"2286",isin:"2208",hAar:"21D4",hArr:"21D4",Harr:"21D4",Lrarr:"21D4",lrArr:"21D4",lArr:"21D0",Larr:"21D0",rArr:"21D2",Rarr:"21D2",harr:"2194",lrarr:"2194",larr:"2190",gets:"2190",rarr:"2192",oiint:["222F",{texClass:a.TEXCLASS.OP}],oiiint:["2230",{texClass:a.TEXCLASS.OP}]},mathchar7:{Alpha:"0391", +Beta:"0392",Epsilon:"0395",Zeta:"0396",Eta:"0397",Iota:"0399",Kappa:"039A",Mu:"039C",Nu:"039D",Omicron:"039F",Rho:"03A1",Tau:"03A4",Chi:"03A7",Koppa:"03DE",Stigma:"03DA",Digamma:"03DC",Coppa:"03D8",Sampi:"03E0"},delimiter:{"\\uarr":"2191","\\darr":"2193","\\Uarr":"21D1","\\uArr":"21D1","\\Darr":"21D3","\\dArr":"21D3","\\rang":"27E9","\\lang":"27E8"},macros:{sgn:"NamedFn",arccot:"NamedFn",arcsec:"NamedFn",arccsc:"NamedFn",sen:"NamedFn",image:["Macro","\\Im"],bold:["Macro","\\mathbf{#1}",1],pagecolor:["Macro", +"",1],emph:["Macro","\\textit{#1}",1],textsf:["Macro","\\mathord{\\sf{\\text{#1}}}",1],texttt:["Macro","\\mathord{\\tt{\\text{#1}}}",1],vline:["Macro","\\smash{\\large\\lvert}",0]}})})}; +cvox.MathJaxExternalUtil.convertToMml=function(a,b,c,d,e,f){var g=MathJax.HTML.Element("script",{type:c},[b]),g={math:b,script:g};MathJax.InputJax[d].prefilterHooks.Execute(g);var h;try{h=f(g.math)}catch(k){if(k[e])h=MathJax.ElementJax.mml.merror(k.message.replace(/\n.*/,""));else{if(k.restart)return MathJax.Callback.After([cvox.MathJaxExternalUtil.convertToMml,a,b,c,d,e,f],k.restart);throw k;}}h=h.inferred?MathJax.ElementJax.mml.apply(MathJax.ElementJax,h.data):MathJax.ElementJax.mml(h);h.root.display= +"block";g.math=h;g.script.MathJax={};MathJax.InputJax[d].postfilterHooks.Execute(g);return cvox.MathJaxExternalUtil.getMathml(g.math,a)};cvox.MathJaxExternalUtil.texToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/tex;mode=display","TeX","texError",function(a){return MathJax.InputJax.TeX.Parse(a).mml()})};cvox.MathJaxExternalUtil.asciiMathToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/asciimath","AsciiMath","asciimathError",MathJax.InputJax.AsciiMath.AM.parseMath)};cvox.AndroidMathJax=function(){this.altMathNodeId_=0};goog.inherits(cvox.AndroidMathJax,cvox.AbstractMathJax);cvox.AndroidMathJax.prototype.getMathmlToDomCallback_=function(a){return goog.bind(function(b,c){return this.convertMarkupToDom(a,b,c)},this)};cvox.AndroidMathJax.prototype.isMathjaxActive=function(a){var b=0,c=function(){b++;cvox.MathJaxExternalUtil.isActive()?a(!0):5>b&&setTimeout(c,1E3)};c()};cvox.AndroidMathJax.prototype.getAllJax=function(a){cvox.MathJaxExternalUtil.getAllJax(this.getMathmlToDomCallback_(a))}; +cvox.AndroidMathJax.prototype.registerSignal=function(a,b){cvox.MathJaxExternalUtil.registerSignal(this.getMathmlToDomCallback_(a),b)};cvox.AndroidMathJax.prototype.injectScripts=function(){cvox.MathJaxExternalUtil.injectConfigScript();cvox.MathJaxExternalUtil.injectLoadScript()};cvox.AndroidMathJax.prototype.configMediaWiki=function(){cvox.MathJaxExternalUtil.configMediaWiki()}; +cvox.AndroidMathJax.prototype.getTex=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.texToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};cvox.AndroidMathJax.prototype.getAsciiMath=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.asciiMathToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}}; +cvox.HostFactory.mathJaxConstructor=cvox.AndroidMathJax;cvox.AndroidTts=function(){cvox.AbstractTts.call(this);this.ttsProperties.rate=0.5;this.ttsProperties.pitch=0.5;this.ttsProperties.volume=1};goog.inherits(cvox.AndroidTts,cvox.AbstractTts);cvox.AndroidTts.prototype.speak=function(a,b,c){cvox.AndroidTts.superClass_.speak.call(this,a,b,c);c=this.mergeProperties(c);accessibility.speak(a,b,c);return this};cvox.AndroidTts.prototype.isSpeaking=function(){cvox.AndroidTts.superClass_.isSpeaking.call(this);return accessibility.isSpeaking()}; +cvox.AndroidTts.prototype.stop=function(){cvox.AndroidTts.superClass_.stop.call(this);accessibility.stop()};cvox.HostFactory.ttsConstructor=cvox.AndroidTts;cvox.TestMessages={locale:{message:"en"},chromevox_name:{message:"ChromeVox"},chromevox_description:{message:"ChromeVox - Giving Voice to Chrome"},chromevox_stop_speech_key:{message:"Stop speech"},chromevox_toggle_sticky_mode:{message:"Enable/Disable sticky mode"},chromevox_prefix_key:{message:"Prefix key"},chromevox_handle_tab_next:{message:"Jump to next focusable item"},chromevox_handle_tab_prev:{message:"Jump to previous focusable item"},chromevox_backward:{message:"Navigate backward"},chromevox_forward:{message:"Navigate forward"}, +chromevox_left:{message:"Move left"},chromevox_right:{message:"Move right"},chromevox_skip_backward:{message:"Skip backward during continuous reading"},chromevox_skip_forward:{message:"Skip forward during continuous reading"},chromevox_previous_granularity:{message:"Decrease navigation granularity"},chromevox_next_granularity:{message:"Increase navigation granularity"},chromevox_act_on_current_item:{message:"Take action on current item"},chromevox_force_click_on_current_item:{message:"Click on current item"}, +chromevox_read_link_url:{message:"Announce the URL behind a link"},chromevox_read_current_title:{message:"Announce the title of the current page"},chromevox_read_current_url:{message:"Announce the URL of the current page"},chromevox_read_from_here:{message:"Start reading from current location"},chromevox_show_power_key:{message:"Open ChromeVox keyboard help"},chromevox_hide_power_key:{message:"Hide ChromeVox help"},chromevox_power_key_help:{message:"Press up or down to review commands, press enter to activate"}, +chromevox_help:{message:"Open ChromeVox tutorial"},chromevox_toggle_search_widget:{message:"Toggle search widget"},chromevox_show_options_page:{message:"Open options page"},chromevox_show_kb_explorer_page:{message:"Open keyboard explorer"},chromevox_decrease_tts_rate:{message:"Decrease rate of speech"},chromevox_increase_tts_rate:{message:"Increase rate of speech"},chromevox_decrease_tts_pitch:{message:"Decrease pitch"},chromevox_increase_tts_pitch:{message:"Increase pitch"},chromevox_decrease_tts_volume:{message:"Decrease speech volume"}, +chromevox_increase_tts_volume:{message:"Increase speech volume"},chromevox_show_forms_list:{message:"Show forms list"},chromevox_show_headings_list:{message:"Show headings list"},chromevox_show_links_list:{message:"Show links list"},chromevox_show_tables_list:{message:"Show tables list"},chromevox_show_landmarks_list:{message:"Show landmarks list"},chromevox_previous_row:{message:"Previous table row"},chromevox_next_row:{message:"Next table row"},chromevox_previous_col:{message:"Previous table column"}, +chromevox_next_col:{message:"Next table column"},chromevox_announce_headers:{message:"Announce the headers of the current cell"},chromevox_speak_table_location:{message:"Announce current cell coordinates"},chromevox_guess_row_header:{message:"Make a guess at the row header of the current cell"},chromevox_guess_col_header:{message:"Make a guess at the column header of the current cell"},chromevox_skip_to_beginning:{message:"Go to beginning of table"},chromevox_skip_to_end:{message:"Go to end of table"}, +chromevox_skip_to_row_beginning:{message:"Go to beginning of the current row"},chromevox_skip_to_row_end:{message:"Go to end of the current row"},chromevox_skip_to_col_beginning:{message:"Go to beginning of the current column"},chromevox_skip_to_col_end:{message:"Go to end of the current column"},chromevox_next_heading1:{message:"Next level 1 heading"},chromevox_previous_heading1:{message:"Previous level 1 heading"},chromevox_next_heading2:{message:"Next level 2 heading"},chromevox_previous_heading2:{message:"Previous level 2 heading"}, +chromevox_next_heading3:{message:"Next level 3 heading"},chromevox_previous_heading3:{message:"Previous level 3 heading"},chromevox_next_heading4:{message:"Next level 4 heading"},chromevox_previous_heading4:{message:"Previous level 4 heading"},chromevox_next_heading5:{message:"Next level 5 heading"},chromevox_previous_heading5:{message:"Previous level 5 heading"},chromevox_next_heading6:{message:"Next level 6 heading"},chromevox_previous_heading6:{message:"Previous level 6 heading"},chromevox_next_combo_box:{message:"Next combo box"}, +chromevox_previous_combo_box:{message:"Previous combo box"},chromevox_next_edit_text:{message:"Next editable text area"},chromevox_previous_edit_text:{message:"Previous editable text area"},chromevox_next_form_field:{message:"Next form field"},chromevox_previous_form_field:{message:"Previous form field"},chromevox_next_graphic:{message:"Next graphic"},chromevox_previous_graphic:{message:"Previous graphic"},chromevox_next_heading:{message:"Next heading"},chromevox_previous_heading:{message:"Previous heading"}, +chromevox_next_list_item:{message:"Next list item"},chromevox_previous_list_item:{message:"Previous list item"},chromevox_next_jump:{message:"Next jump"},chromevox_previous_jump:{message:"Previous jump"},chromevox_next_link:{message:"Next link"},chromevox_previous_link:{message:"Previous link"},chromevox_next_list:{message:"Next list"},chromevox_previous_list:{message:"Previous list"},chromevox_next_math:{message:"Next math"},chromevox_previous_math:{message:"Previous math"},chromevox_next_media:{message:"Next media"}, +chromevox_previous_media:{message:"Previous media"},chromevox_next_blockquote:{message:"Next block quote"},chromevox_previous_blockquote:{message:"Previous block quote"},chromevox_next_radio:{message:"Next radio button"},chromevox_previous_radio:{message:"Previous radio button"},chromevox_next_slider:{message:"Next slider"},chromevox_previous_slider:{message:"Previous slider"},chromevox_next_table:{message:"Next table"},chromevox_next_visited_link:{message:"Next visited link"},chromevox_previous_table:{message:"Previous table"}, +chromevox_previous_visited_link:{message:"Previous visited link"},chromevox_next_button:{message:"Next button"},chromevox_previous_button:{message:"Previous button"},chromevox_next_checkbox:{message:"Next checkbox"},chromevox_previous_checkbox:{message:"Previous checkbox"},chromevox_next_landmark:{message:"Next landmark"},chromevox_previous_landmark:{message:"Previous landmark"},chromevox_benchmark:{message:"Debug benchmark"},chromevox_announce_position:{message:"Announces a brief description of the current position"}, +chromevox_fully_describe:{message:"Announces a complete description of the current position"},chromevox_options_page_title:{message:"ChromeVox Options"},chromevox_options_page_summary:{message:"Use the options below to customize ChromeVox. Changes take effect immediately."},chromevox_options_mouse_focus_follows:{message:"Use the mouse to change focus."},chromevox_options_site_specific_enhancements:{message:"Enhance specific sites (like Google Search)."},chromevox_options_verbosity_verbose:{message:"Enable verbose descriptions."}, +chromevox_options_cursor_between_characters:{message:"Place cursor between characters when editing text (like Mac OS X)."},chromevox_options_magnifier_show_checkbox:{message:"Show a magnified view of the page content."},chromevox_options_voices:{message:"Voices"},chromevox_options_voices_description:{message:"Change the current voice by selecting an option from the list below."},chromevox_options_braille:{message:"Braille"},chromevox_options_braille_table_type_6:{message:"Switch to 8 dot braille"}, +chromevox_options_braille_table_type_8:{message:"Switch to 6 dot braille"},chromevox_options_braille_description_6:{message:"Change the current 6 dot braille table by selecting an option from the list below."},chromevox_options_braille_locale_grade:{message:"$1, Grade $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_options_braille_description_8:{message:"Change the current 8 dot braille table by selecting an option from the list below."},chromevox_options_keyboard_shortcuts:{message:"Keyboard shortcuts"}, +chromevox_options_keymap_description:{message:"Change the current keymap by selecting an option from the list below."},chromevox_options_select_keys:{message:"Reset current keymap"},chromevox_options_shortcuts_description:{message:"Customize keyboard shortcuts for frequently used commands by typing them into the corresponding fields below."},chromevox_options_modifier_keys:{message:"Modifier keys"},chromevox_options_cvox_modifier_key:{message:"ChromeVox modifier key"},chromevox_kbexplorer_title:{message:"ChromeOS Keyboard Explorer"}, +chromevox_kbexplorer_instructions:{message:"Press any key to learn its name. Ctrl+W will close the keyboard explorer."},chromevox_chrome_system_need_restart:{message:"System was updated. Restart is recommended."},chromevox_chrome_brightness_changed:{message:"Brightness $1 percent",placeholders:{1:{content:"$1"}}},chromevox_chrome_tab_created:{message:"tab created"},chromevox_chrome_tab_selected:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_normal_window_selected:{message:"window $1 tab", +placeholders:{1:{content:"$1"}}},chromevox_chrome_incognito_window_selected:{message:"incognito window $1 tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_menu_opened:{message:"$1 menu opened",placeholders:{1:{content:"$1"}}},chromevox_describe_checkbox_checked:{message:"$1 checkbox checked",placeholders:{1:{content:"$1"}}},chromevox_checkbox_checked_state:{message:"checked"},chromevox_checkbox_checked_state_brl:{message:"x"},chromevox_describe_checkbox_unchecked:{message:"$1, checkbox not checked", +placeholders:{1:{content:"$1"}}},chromevox_checkbox_unchecked_state:{message:"not checked"},chromevox_checkbox_unchecked_state_brl:{message:" "},chromevox_describe_radio_selected:{message:"$1, radio button selected",placeholders:{1:{content:"$1"}}},chromevox_radio_selected_state:{message:"selected"},chromevox_radio_selected_state_brl:{message:"x"},chromevox_describe_radio_unselected:{message:"$1, radio button unselected",placeholders:{1:{content:"$1"}}},chromevox_radio_unselected_state:{message:"unselected"}, +chromevox_radio_unselected_state_brl:{message:" "},chromevox_describe_menu:{message:"$1, menu",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item:{message:"$1, menu item",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item_with_submenu:{message:"$1, menu item, with submenu",placeholders:{1:{content:"$1"}}},chromevox_describe_window:{message:"$1, window",placeholders:{1:{content:"$1"}}},chromevox_describe_textbox:{message:"$1, $2, text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}}, +chromevox_describe_unnamed_textbox:{message:"$1, text box",placeholders:{1:{content:"$1"}}},chromevox_describe_password:{message:"$1, $2, password text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_password:{message:"$1, password text box",placeholders:{1:{content:"$1"}}},chromevox_describe_button:{message:"$1, button",placeholders:{1:{content:"$1"}}},chromevox_describe_combobox:{message:"$1, $2, combo box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_combobox:{message:"$1, combo box", +placeholders:{1:{content:"$1"}}},chromevox_describe_listbox:{message:"$1, $2, list box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_listbox:{message:"$1, list box",placeholders:{1:{content:"$1"}}},chromevox_describe_link:{message:"$1, link",placeholders:{1:{content:"$1"}}},chromevox_describe_tab:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_describe_slider:{message:"$1, $2, slider",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_selected:{message:", selected"}, +chromevox_describe_unselected:{message:", unselected"},chromevox_describe_index:{message:" $1 of $2 ",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_announce_rate:{message:"Rate $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_pitch:{message:"Pitch $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_volume:{message:"Volume $1 percent",placeholders:{1:{content:"$1"}}},chromevox_exiting_dialog:{message:"Exited dialog."},chromevox_exited_container:{message:"Exited $1.", +placeholders:{1:{content:"$1"}}},chromevox_entering_dialog:{message:"Entered dialog"},chromevox_live_regions_removed:{message:"removed:"},chromevox_sticky_mode_enabled:{message:"Sticky mode enabled"},chromevox_sticky_mode_disabled:{message:"Sticky mode disabled"},chromevox_keyboard_help_intro:{message:"Keyboard Help"},chromevox_context_menu_intro:{message:"Context Menu"},chromevox_choice_widget_name:{message:"$1 list.",placeholders:{1:{content:"$1"}}},chromevox_choice_widget_help:{message:"Use up and down arrow keys to browse, or type to search."}, +chromevox_choice_widget_exited:{message:"Exited"},chromevox_choice_widget_type_generic:{message:" "},chromevox_end_of_cell:{message:"End of cell."},chromevox_no_url_found:{message:"No URL found"},chromevox_leaving_table:{message:"Leaving table."},chromevox_leaving_grid:{message:"Leaving grid."},chromevox_inside_table:{message:"Inside table"},chromevox_no_tables:{message:"No table found."},chromevox_not_inside_table:{message:"Not inside table."},chromevox_no_cell_below:{message:"No cell below."},chromevox_no_cell_above:{message:"No cell above."}, +chromevox_no_cell_right:{message:"No cell right."},chromevox_no_cell_left:{message:"No cell left."},chromevox_empty_cell:{message:"Empty cell."},chromevox_spanned:{message:"Spanned."},chromevox_row_header:{message:"Row header:"},chromevox_empty_row_header:{message:"Empty row header"},chromevox_column_header:{message:"Column header:"},chromevox_empty_column_header:{message:"Empty column header"},chromevox_no_headers:{message:"No headers"},chromevox_empty_headers:{message:"Empty headers"},chromevox_table_location:{message:"Row $1 of $2, Column $3 of $4", +placeholders:{1:{content:"$1"},2:{content:"$2"},3:{content:"$3"},4:{content:"$4"}}},chromevox_no_next_checkbox:{message:"No next checkbox."},chromevox_no_previous_checkbox:{message:"No previous checkbox."},chromevox_no_next_edit_text:{message:"No next editable text field."},chromevox_no_previous_edit_text:{message:"No previous editable text field."},chromevox_no_next_heading:{message:"No next heading."},chromevox_no_previous_heading:{message:"No previous heading."},chromevox_no_next_heading_1:{message:"No next level 1 heading."}, +chromevox_no_previous_heading_1:{message:"No previous level 1 heading."},chromevox_no_next_heading_2:{message:"No next level 2 heading."},chromevox_no_previous_heading_2:{message:"No previous level 2 heading."},chromevox_no_next_heading_3:{message:"No next level 3 heading."},chromevox_no_previous_heading_3:{message:"No previous level 3 heading."},chromevox_no_next_heading_4:{message:"No next level 4 heading."},chromevox_no_previous_heading_4:{message:"No previous level 4 heading."},chromevox_no_next_heading_5:{message:"No next level 5 heading."}, +chromevox_no_previous_heading_5:{message:"No previous level 5 heading."},chromevox_no_next_heading_6:{message:"No next level 6 heading."},chromevox_no_previous_heading_6:{message:"No previous level 6 heading."},chromevox_no_next_not_link:{message:"No next item that isn't a link."},chromevox_no_previous_not_link:{message:"No previous item that isn't a link."},chromevox_no_next_anchor:{message:"No next anchor."},chromevox_no_previous_anchor:{message:"No previous anchor."},chromevox_no_next_link:{message:"No next link."}, +chromevox_no_previous_link:{message:"No previous link."},chromevox_no_next_table:{message:"No next table."},chromevox_no_previous_table:{message:"No previous table."},chromevox_no_next_visited_link:{message:"No next visited link."},chromevox_no_previous_visited_link:{message:"No previous visited link."},chromevox_no_next_math:{message:"No next math expression."},chromevox_no_previous_math:{message:"No previous math expression."},chromevox_no_next_media_widget:{message:"No next media widget."},chromevox_no_previous_media_widget:{message:"No previous media widget."}, +chromevox_no_next_list:{message:"No next list."},chromevox_no_previous_list:{message:"No previous list."},chromevox_no_next_list_item:{message:"No next list item."},chromevox_no_previous_list_item:{message:"No previous list item."},chromevox_no_next_blockquote:{message:"No next blockquote."},chromevox_no_previous_blockquote:{message:"No previous blockquote."},chromevox_no_next_form_field:{message:"No next form field."},chromevox_no_previous_form_field:{message:"No previous form field."},chromevox_no_next_jump:{message:"No next jump point."}, +chromevox_no_previous_jump:{message:"No previous jump point."},chromevox_no_next_landmark:{message:"No next ARIA landmark."},chromevox_no_previous_landmark:{message:"No previous ARIA landmark."},chromevox_no_next_combo_box:{message:"No next combo box."},chromevox_no_previous_combo_box:{message:"No previous combo box."},chromevox_no_next_button:{message:"No next button."},chromevox_no_previous_button:{message:"No previous button."},chromevox_no_next_graphic:{message:"No next graphic."},chromevox_no_previous_graphic:{message:"No previous graphic."}, +chromevox_no_next_slider:{message:"No next slider."},chromevox_no_previous_slider:{message:"No previous slider."},chromevox_no_next_radio_button:{message:"No next radio button."},chromevox_no_previous_radio_button:{message:"No previous radio button."},chromevox_no_next_section:{message:"No next section."},chromevox_no_previous_section:{message:"No previous section."},chromevox_no_next_control:{message:"No next control."},chromevox_no_previous_control:{message:"No previous control."},chromevox_element_clicked:{message:"Clicked"}, +chromevox_element_double_clicked:{message:"double clicked"},chromevox_powerkey_no_headings:{message:"No headings."},chromevox_powerkey_no_links:{message:"No links."},chromevox_powerkey_no_forms:{message:"No forms."},chromevox_powerkey_no_tables:{message:"No tables."},chromevox_powerkey_no_landmarks:{message:"No ARIA landmarks."},chromevox_powerkey_no_jumps:{message:"No jumps."},chromevox_list_position:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_list_position_brl:{message:"$1/$2", +placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_aria_has_submenu:{message:"has submenu"},chromevox_aria_has_submenu_brl:{message:"+submnu"},chromevox_aria_has_popup:{message:"has pop up"},chromevox_aria_has_popup_brl:{message:"+popup"},chromevox_aria_value_min:{message:"Min $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_min_brl:{message:"min:$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max:{message:"Max $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max_brl:{message:"max:$1", +placeholders:{1:{content:"$1"}}},chromevox_aria_value_now:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_now_brl:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_role_alert:{message:"Alert"},chromevox_aria_role_alert_brl:{message:"alrt"},chromevox_aria_role_alertdialog:{message:"Alert dialog"},chromevox_aria_role_alertdialog_brl:{message:"alrt dlg"},chromevox_aria_role_button:{message:"Button"},chromevox_aria_role_button_brl:{message:"btn"},chromevox_aria_role_checkbox:{message:"Check box"}, +chromevox_aria_role_checkbox_brl:{message:"chx"},chromevox_aria_role_combobox:{message:"Combo box"},chromevox_aria_role_combobox_brl:{message:"cbx"},chromevox_aria_role_dialog:{message:"Dialog"},chromevox_aria_role_dialog_brl:{message:"dlg"},chromevox_aria_role_grid:{message:"Grid"},chromevox_aria_role_grid_brl:{message:"grd"},chromevox_aria_role_gridcell:{message:"Cell"},chromevox_aria_role_gridcell_brl:{message:"cl"},chromevox_aria_role_gridcell_pos:{message:"row $1 column $2",placeholders:{1:{content:"$1"}, +2:{content:"$2"}}},chromevox_aria_role_link:{message:"Link"},chromevox_aria_role_link_brl:{message:"lnk"},chromevox_aria_role_link_singular:{message:"1 link"},chromevox_aria_role_link_plural:{message:"$1 links",placeholders:{1:{content:"$1"}}},chromevox_aria_role_listbox:{message:"List box"},chromevox_aria_role_listbox_brl:{message:"lstbx"},chromevox_aria_role_log:{message:"Log"},chromevox_aria_role_log_brl:{message:"log"},chromevox_aria_role_marquee:{message:"Marquee"},chromevox_aria_role_marquee_brl:{message:"maqe"}, +chromevox_aria_role_menu:{message:"Menu"},chromevox_aria_role_menu_brl:{message:"mnu"},chromevox_aria_role_menubar:{message:"Menu bar"},chromevox_aria_role_menubar_brl:{message:"mnu br"},chromevox_aria_role_menuitem:{message:"Menu item"},chromevox_aria_role_menuitem_brl:{message:"mnu itm"},chromevox_aria_role_menuitemcheckbox:{message:"Menu item check box"},chromevox_aria_role_menuitemcheckbox_brl:{message:"mnu itm chx"},chromevox_aria_role_menuitemradio:{message:"Menu item radio button"},chromevox_aria_role_menuitemradio_brl:{message:"mnu itm rd"}, +chromevox_aria_role_option:{message:" "},chromevox_aria_role_option_brl:{message:" "},chromevox_aria_role_popup_button:{message:"Pop-up button"},chromevox_aria_role_popup_button_brl:{message:"pup btn"},chromevox_aria_role_progressbar:{message:"Progress bar"},chromevox_aria_role_progressbar_brl:{message:"prog br"},chromevox_aria_role_radio:{message:"Radio button"},chromevox_aria_role_radio_brl:{message:"rd"},chromevox_aria_role_radiogroup:{message:"Radio button group"},chromevox_aria_role_radiogroup_brl:{message:"rd grp"}, +chromevox_aria_role_scrollbar:{message:"Scroll bar"},chromevox_aria_role_scrollbar_brl:{message:"scr br"},chromevox_aria_role_slider:{message:"Slider"},chromevox_aria_role_slider_brl:{message:"slr"},chromevox_aria_role_spinbutton:{message:"Spin button"},chromevox_aria_role_spinbutton_brl:{message:"spn btn"},chromevox_aria_role_status:{message:"Status"},chromevox_aria_role_status_brl:{message:"sts"},chromevox_aria_role_tab:{message:"Tab"},chromevox_aria_role_tab_brl:{message:"tab"},chromevox_aria_role_tabpanel:{message:"Tab panel"}, +chromevox_aria_role_tabpanel_brl:{message:"tab pnl"},chromevox_aria_role_textbox:{message:"Text box"},chromevox_aria_role_textbox_brl:{message:"txtbx"},chromevox_aria_role_timer:{message:"Timer"},chromevox_aria_role_timer_brl:{message:"tmr"},chromevox_aria_role_toolbar:{message:"Tool bar"},chromevox_aria_role_toolbar_brl:{message:"tl br"},chromevox_aria_role_tooltip:{message:"Tool tip"},chromevox_aria_role_tooltip_brl:{message:"tl tp"},chromevox_aria_role_treeitem:{message:"Tree item"},chromevox_aria_role_treeitem_brl:{message:"tr itm"}, +chromevox_aria_role_article:{message:"Article"},chromevox_aria_role_article_brl:{message:"acl"},chromevox_aria_role_application:{message:"Application"},chromevox_aria_role_application_brl:{message:"app"},chromevox_aria_role_banner:{message:"Banner"},chromevox_aria_role_banner_brl:{message:"bnr"},chromevox_aria_role_columnheader:{message:"Column header"},chromevox_aria_role_columnheader_brl:{message:"clm hd"},chromevox_aria_role_complementary:{message:"Complementary"},chromevox_aria_role_complementary_brl:{message:"cmpy"}, +chromevox_aria_role_contentinfo:{message:"Content info"},chromevox_aria_role_contentinfo_brl:{message:"cnt in"},chromevox_aria_role_definition:{message:"Definition"},chromevox_aria_role_definition_brl:{message:"def"},chromevox_aria_role_directory:{message:"Directory"},chromevox_aria_role_directory_brl:{message:"dir"},chromevox_aria_role_document:{message:"Document"},chromevox_aria_role_document_brl:{message:"doc"},chromevox_aria_role_form:{message:"Form"},chromevox_aria_role_form_brl:{message:"frm"}, +chromevox_aria_role_form_singular:{message:"1 form"},chromevox_aria_role_form_plural:{message:"$1 forms",placeholders:{1:{content:"$1"}}},chromevox_aria_role_group:{message:"Group"},chromevox_aria_role_group_brl:{message:"grp"},chromevox_aria_role_heading:{message:"Heading"},chromevox_aria_role_heading_brl:{message:"hd"},chromevox_aria_role_img:{message:"Image"},chromevox_aria_role_img_brl:{message:"img"},chromevox_aria_role_list:{message:"List"},chromevox_aria_role_list_brl:{message:"lst"},chromevox_aria_role_listitem:{message:"List item"}, +chromevox_aria_role_listitem_brl:{message:"lstitm"},chromevox_aria_role_main:{message:"Main"},chromevox_aria_role_main_brl:{message:"main"},chromevox_aria_role_math:{message:"Math"},chromevox_aria_role_math_brl:{message:"math"},chromevox_aria_role_navigation:{message:"Navigation"},chromevox_aria_role_navigation_brl:{message:"nav"},chromevox_aria_role_note:{message:"Note"},chromevox_aria_role_note_brl:{message:"note"},chromevox_aria_role_region:{message:"Region"},chromevox_aria_role_region_brl:{message:"rgn"}, +chromevox_aria_role_rowheader:{message:"Row header"},chromevox_aria_role_rowheader_brl:{message:"rw hd"},chromevox_aria_role_search:{message:"Search"},chromevox_aria_role_search_brl:{message:"srch"},chromevox_aria_role_separator:{message:"Separator"},chromevox_aria_role_separator_brl:{message:"sprtr"},chromevox_aria_autocomplete_inline:{message:"Autocompletion inline"},chromevox_aria_autocomplete_inline_brl:{message:"autocomplete"},chromevox_aria_autocomplete_list:{message:"Autocompletion list"}, +chromevox_aria_autocomplete_list_brl:{message:"autocomplete lst"},chromevox_aria_autocomplete_both:{message:"Autocompletion inline and list"},chromevox_aria_autocomplete_both_brl:{message:"autocomplete lst"},chromevox_aria_checked_true:{message:"Checked"},chromevox_aria_checked_true_brl:{message:"x"},chromevox_aria_checked_false:{message:"Not checked"},chromevox_aria_checked_false_brl:{message:" "},chromevox_aria_checked_mixed:{message:"Partially checked"},chromevox_aria_checked_mixed_brl:{message:"/x"}, +chromevox_aria_disabled_true:{message:"Disabled"},chromevox_aria_disabled_true_brl:{message:"="},chromevox_aria_expanded_true:{message:"Expanded"},chromevox_aria_expanded_true_brl:{message:">"},chromevox_aria_expanded_false:{message:"Collapsed"},chromevox_aria_expanded_false_brl:{message:"<"},chromevox_aria_invalid_true:{message:"Invalid input"},chromevox_aria_invalid_true_brl:{message:"!"},chromevox_aria_invalid_grammar:{message:"Grammatical mistake detected"},chromevox_aria_invalid_grammar_brl:{message:"Grammatical mistake detected"}, +chromevox_aria_invalid_spelling:{message:"Spelling mistake detected"},chromevox_aria_invalid_spelling_brl:{message:"misspelled"},chromevox_aria_multiline_true:{message:"Multi line"},chromevox_aria_multiline_true_brl:{message:"mult ln"},chromevox_aria_multiselectable_true:{message:"Multi select"},chromevox_aria_multiselectable_true_brl:{message:"mult sel"},chromevox_aria_pressed_true:{message:"Pressed"},chromevox_aria_pressed_true_brl:{message:"x"},chromevox_aria_pressed_false:{message:"Not pressed"}, +chromevox_aria_pressed_false_brl:{message:" "},chromevox_aria_pressed_mixed:{message:"Partially pressed"},chromevox_aria_pressed_mixed_brl:{message:"/x"},chromevox_aria_readonly_true:{message:"Read only"},chromevox_aria_readonly_true_brl:{message:"rdonly"},chromevox_aria_required_true:{message:"Required"},chromevox_aria_required_true_brl:{message:"req"},chromevox_aria_selected_true:{message:"Selected"},chromevox_aria_selected_true_brl:{message:"x"},chromevox_aria_selected_false:{message:"Not selected"}, +chromevox_aria_selected_false_brl:{message:" "},chromevox_tag_link:{message:"Link"},chromevox_tag_link_brl:{message:"lnk"},chromevox_tag_button:{message:"Button"},chromevox_tag_button_brl:{message:"btn"},chromevox_tag_h1:{message:"Heading 1"},chromevox_tag_h1_brl:{message:"h1"},chromevox_tag_h2:{message:"Heading 2"},chromevox_tag_h2_brl:{message:"h2"},chromevox_tag_h3:{message:"Heading 3"},chromevox_tag_h3_brl:{message:"h3"},chromevox_tag_h4:{message:"Heading 4"},chromevox_tag_h4_brl:{message:"h4"}, +chromevox_tag_h5:{message:"Heading 5"},chromevox_tag_h5_brl:{message:"h5"},chromevox_tag_h6:{message:"Heading 6"},chromevox_tag_h6_brl:{message:"h6"},chromevox_tag_li:{message:"List item"},chromevox_tag_li_brl:{message:"lstitm"},chromevox_tag_ol:{message:"Ordered List"},chromevox_tag_ol_brl:{message:"lst"},chromevox_tag_select:{message:"Combo box"},chromevox_tag_select_brl:{message:"cbx"},chromevox_tag_textarea:{message:"Text area"},chromevox_tag_textarea_brl:{message:"txta"},chromevox_tag_table:{message:"table"}, +chromevox_tag_table_brl:{message:"tbl"},chromevox_tag_ul:{message:"List"},chromevox_tag_ul_brl:{message:"lst"},chromevox_tag_section:{message:"Section"},chromevox_tag_section_brl:{message:"stn"},chromevox_tag_nav:{message:"Navigation"},chromevox_tag_nav_brl:{message:"nav"},chromevox_tag_article:{message:"Article"},chromevox_tag_article_brl:{message:"article"},chromevox_tag_aside:{message:"Aside"},chromevox_tag_aside_brl:{message:"aside"},chromevox_tag_hgroup:{message:"Heading group"},chromevox_tag_hgroup_brl:{message:"hgrp"}, +chromevox_tag_header:{message:"Header"},chromevox_tag_header_brl:{message:"hdr"},chromevox_tag_footer:{message:"Footer"},chromevox_tag_footer_brl:{message:"ftr"},chromevox_tag_time:{message:"Time"},chromevox_tag_time_brl:{message:" "},chromevox_tag_mark:{message:"Mark"},chromevox_tag_mark_brl:{message:"mark"},chromevox_tag_video:{message:"Video"},chromevox_tag_video_brl:{message:"video"},chromevox_tag_audio:{message:"Audio"},chromevox_tag_audio_brl:{message:"audio"},chromevox_input_type_button:{message:"Button"}, +chromevox_input_type_button_brl:{message:"btn"},chromevox_input_type_checkbox:{message:"Check box"},chromevox_input_type_checkbox_brl:{message:"chx"},chromevox_input_type_color:{message:"Color picker"},chromevox_input_type_color_brl:{message:"color picker"},chromevox_input_type_datetime:{message:"Date time control"},chromevox_input_type_datetime_brl:{message:"date time"},chromevox_input_type_datetime_local:{message:"Date time control"},chromevox_input_type_datetime_local_brl:{message:"date time"}, +chromevox_input_type_date:{message:"Date control"},chromevox_input_type_date_brl:{message:"date"},chromevox_input_type_email:{message:"Edit text, email entry"},chromevox_input_type_email_brl:{message:"edtxt email"},chromevox_input_type_file:{message:"File selection"},chromevox_input_type_file_brl:{message:"file"},chromevox_input_type_image:{message:"Button"},chromevox_input_type_image_brl:{message:"btn"},chromevox_input_type_month:{message:"Month control"},chromevox_input_type_month_brl:{message:"month"}, +chromevox_input_type_number:{message:"Edit text numeric only"},chromevox_input_type_number_brl:{message:"edtxt#"},chromevox_input_type_password:{message:"Password edit text"},chromevox_input_type_password_brl:{message:"pwd edtxt"},chromevox_input_type_radio:{message:"Radio button"},chromevox_input_type_radio_brl:{message:"rd btn"},chromevox_input_type_range:{message:"Slider"},chromevox_input_type_range_brl:{message:"slr"},chromevox_input_type_reset:{message:"Reset"},chromevox_input_type_reset_brl:{message:"reset"}, +chromevox_input_type_search:{message:"Edit text, search entry"},chromevox_input_type_search_brl:{message:"search edtxt"},chromevox_input_type_submit:{message:"Button"},chromevox_input_type_submit_brl:{message:"btn"},chromevox_input_type_tel:{message:"Edit text, number entry"},chromevox_input_type_tel_brl:{message:"tele# edtxt"},chromevox_input_type_text:{message:"Edit text"},chromevox_input_type_text_brl:{message:"edtxt"},chromevox_input_type_url:{message:"Edit text, URL entry"},chromevox_input_type_url_brl:{message:"url edtxt"}, +chromevox_input_type_week:{message:"Week of the year control"},chromevox_input_type_week_brl:{message:"week"},chromevox_internal_link:{message:"Internal link"},chromevox_internal_link_brl:{message:"int lnk"},chromevox_text_box_blank:{message:"Blank"},chromevox_list_with_items:{message:"with $1 items",placeholders:{1:{content:"$1"}}},chromevox_list_with_items_brl:{message:"+$1",placeholders:{1:{content:"$1"}}},chromevox_state_percent:{message:"$1%",placeholders:{1:{content:"$1"}}},chromevox_state_percent_brl:{message:"$1%", +placeholders:{1:{content:"$1"}}},chromevox_has_submenu:{message:"with submenu"},chromevox_has_submenu_brl:{message:"+submnu"},chromevox_has_popup:{message:"has popup"},chromevox_has_popup_brl:{message:"has popup"},chromevox_collection:{message:"$1 collection with $2 items",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_key:{message:"Enter"},chromevox_space_key:{message:"Space"},chromevox_backspace_key:{message:"Backspace"},chromevox_tab_key:{message:"Tab"},chromevox_left_key:{message:"Left"}, +chromevox_up_key:{message:"Up"},chromevox_right_key:{message:"Right"},chromevox_down_key:{message:"Down"},chromevox_unknown_link:{message:"Unknown link"},chromevox_toggle_chromevox_active:{message:"Toggle ChromeVox active or inactive."},chromevox_chromevox_inactive:{message:"ChromeVox is now inactive."},chromevox_pause:{message:", "},chromevox_end:{message:". "},chromevox_previous_different_element:{message:"Previous different element."},chromevox_next_different_element:{message:"Next different element."}, +chromevox_previous_similar_element:{message:"Previous similar element."},chromevox_next_similar_element:{message:"Next similar element."},chromevox_no_more_similar_elements:{message:"No more similar elements."},chromevox_no_more_different_elements:{message:"No more different elements."},chromevox_index_total:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_css_space:{message:"Enter group exploration"},chromevox_enter_group_exploration:{message:"Exploring groups"}, +chromevox_pdf_header:{message:'This page contains the text automatically extracted from the PDF file <b>$1</b>. <a href="$2">Click here for the original.</a>',placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_object_strategy:{message:"Object"},chromevox_group_strategy:{message:"Group"},chromevox_table_strategy:{message:"Table"},chromevox_row_granularity:{message:"Row"},chromevox_column_granularity:{message:"Column"},chromevox_mathml_tree_granularity:{message:"Math ML Tree"},chromevox_mathml_layout_granularity:{message:"Math ML Layout"}, +chromevox_mathml_token_granularity:{message:"Math ML Token"},chromevox_mathml_leaf_granularity:{message:"Math ML Leaf"},chromevox_visual_strategy:{message:"Visual"},chromevox_custom_strategy:{message:"Custom"},chromevox_line_granularity:{message:"Line"},chromevox_sentence_granularity:{message:"Sentence"},chromevox_word_granularity:{message:"Word"},chromevox_character_granularity:{message:"Character"},chromevox_search_widget_intro:{message:"Find in page."},chromevox_search_widget_intro_help:{message:"Enter a search query."}, +chromevox_search_widget_outro:{message:"Exited find in page."},chromevox_search_widget_no_results:{message:"No more results."},chromevox_modifier_keys:{message:"Modifier Keys"},chromevox_navigation:{message:"ChromeVox Navigation"},chromevox_information:{message:"Information"},chromevox_help_commands:{message:"Help Commands"},chromevox_controlling_speech:{message:"Controlling Speech"},chromevox_overview:{message:"Overview"},chromevox_tables:{message:"Tables"},chromevox_jump_commands:{message:"Jump Commands"}, +chromevox_braille:{message:"Braille"},chromevox_developer:{message:"Developer"},chromevox_keymap_classic:{message:"Classic keymap"},chromevox_keymap_flat:{message:"Flat keymap"},chromevox_keymap_experimental:{message:"Experimental keymap"},chromevox_enable_tts_log:{message:"Enable TTS logging"},chromevox_begin_selection:{message:"Start selection"},chromevox_end_selection:{message:"End selection"},chromevox_selection_is:{message:"Selection is "},chromevox_toggle_selection:{message:"Start or end selection."}, +chromevox_copy:{message:"copy."},chromevox_cut:{message:"cut."},chromevox_paste:{message:"paste."},chromevox_selected:{message:"selected"},chromevox_unselected:{message:"unselected"},chromevox_added_to_selection:{message:"added to selection"},chromevox_removed_from_selection:{message:"removed from selection"},chromevox_then:{message:"then"},chromevox_followed_by:{message:"followed by"},chromevox_modifier_key:{message:"ChromeVox modifier"},chromevox_key_conflict:{message:"$1 is already assigned to a command.", +placeholders:{1:{content:"$1"}}},chromevox_math_expr:{message:"Math"},chromevox_math_expr_brl:{message:"Math"},chromevox_not_inside_math:{message:"Not inside math"},chromevox_timewidget_ampm:{message:"AM PM"},chromevox_timewidget_hours:{message:"hours"},chromevox_timewidget_minutes:{message:"minutes"},chromevox_timewidget_seconds:{message:"seconds"},chromevox_timewidget_milliseconds:{message:"milliseconds"},chromevox_timewidget_am:{message:"AM"},chromevox_timewidget_pm:{message:"PM"},chromevox_datewidget_week:{message:"week"}, +chromevox_datewidget_january:{message:"January"},chromevox_datewidget_february:{message:"February"},chromevox_datewidget_march:{message:"March"},chromevox_datewidget_april:{message:"April"},chromevox_datewidget_may:{message:"May"},chromevox_datewidget_june:{message:"June"},chromevox_datewidget_july:{message:"July"},chromevox_datewidget_august:{message:"August"},chromevox_datewidget_september:{message:"September"},chromevox_datewidget_october:{message:"October"},chromevox_datewidget_november:{message:"November"}, +chromevox_datewidget_december:{message:"December"},chromevox_no_punctuation:{message:"No punctuation"},chromevox_some_punctuation:{message:"Some punctuation"},chromevox_all_punctuation:{message:"All punctuation"},chromevox_search_help_item:{message:"Press enter to accept or escape to cancel, down for next and up for previous."},chromevox_clickable:{message:"clickable"},chromevox_clickable_brl:{message:"clickable"},chromevox_previous_character:{message:"Previous Character"},chromevox_next_character:{message:"Next Character"}, +chromevox_previous_word:{message:"Previous Word"},chromevox_next_word:{message:"Next Word"},chromevox_previous_sentence:{message:"Previous Sentence"},chromevox_next_sentence:{message:"Next Sentence"},chromevox_previous_line:{message:"Previous Line"},chromevox_next_line:{message:"Next Line"},chromevox_previous_object:{message:"Previous Object"},chromevox_next_object:{message:"Next Object"},chromevox_previous_group:{message:"Previous Group"},chromevox_next_group:{message:"Next Group"},chromevox_role_landmark:{message:"Landmark"}, +chromevox_modifier_entry_error:{message:"No modifier pressed; please press and hold one or more modifiers; lift your fingers once done and you will hear the keys set. Tab to exit."},chromevox_modifier_entry_set:{message:"$1 is now the new ChromeVox modifier.",placeholders:{1:{content:"$1"}}},chromevox_keymap_reset:{message:"$1 has been reset.",placeholders:{1:{content:"$1"}}},chromevox_keymap_switch:{message:"Switched to $1.",placeholders:{1:{content:"$1"}}},chromevox_jump_to_top:{message:"Jump to the top of the page"}, +chromevox_jump_to_bottom:{message:"Jump to the bottom of the page"},chromevox_wrapped_to_top:{message:"Wrapped to top"},chromevox_wrapped_to_bottom:{message:"Wrapped to bottom"},chromevox_cycle_punctuation_echo:{message:"Cycle punctuation echo"},chromevox_cycle_typing_echo:{message:"Cycle typing echo"},chromevox_pause_all_media:{message:"Pauses all currently playing media widgets"},chromevox_open_long_desc:{message:"Open long description in a new tab"},chromevox_no_long_desc:{message:"No long description"}, +chromevox_image_with_long_desc:{message:"Image with long description"},chromevox_selected_options_value:{message:"$1 to $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_value_brl:{message:"$1-$2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_state:{message:"selected $1 items",placeholders:{1:{content:"$1"}}},chromevox_selected_options_state_brl:{message:"sld $1",placeholders:{1:{content:"$1"}}},chromevox_clear_page_selection:{message:"cleared selection"}, +chromevox_character_echo:{message:"character echo"},chromevox_word_echo:{message:"word echo"},chromevox_character_and_word_echo:{message:"character and word echo"},chromevox_none_echo:{message:"no typing echo"},chromevox_enter_content:{message:"enter structured content, such as tables"},chromevox_exit_content:{message:"exit structured content, such as tables"},chromevox_enter_content_say:{message:"entered $1",placeholders:{1:{content:"$1"}}},chromevox_structural_line:{message:"structural line"},chromevox_layout_line:{message:"line"}, +chromevox_toggle_line_type:{message:"Toggle line type between structural or layout"},chromevox_table_shifter:{message:"table"},chromevox_navigation_shifter:{message:"default navigation"},chromevox_math_shifter:{message:"math"},chromevox_toggle_semantics:{message:"Toggle interpretation of math expressions between structural and semantic"},chromevox_semantics_on:{message:"Semantics on"},chromevox_semantics_off:{message:"Semantics off"},chromevox_phonetic_map:{message:'{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}'}, +chromevox_page_has_one_alert_singular:{message:"This page has 1 alert"},chromevox_page_has_alerts_plural:{message:"This page has $1 alerts",placeholders:{1:{content:"$1"}}},chromevox_review_alerts:{message:"Press Alt+Shift+A to review alerts"},chromevox_no_next_article:{message:"No next article."},chromevox_no_previous_article:{message:"No previous article."},chromevox_chromevox_intro:{message:"ChromeVox spoken feedback is ready"},chromevox_intro_brl:{message:"ChromeVox ready"},chromevox_earcons_on:{message:"Earcons on"}, +chromevox_earcons_off:{message:"Earcons off"},chromevox_toggle_earcons:{message:"Turn sound feedback (earcons) on or off."},chromevox_speak_time_and_date:{message:"Speak the current time and date."},chromevox_mark_as_search_result_brl:{message:"S:$1",placeholders:{1:{content:"$1"}}},chromevox_text_deleted:{message:"Deleted"},chromevox_perform_default_action:{message:"Perform default action"},chromevox_visited_url:{message:"visited"},chromevox_visited_url_brl:{message:"visited"},chromevox_exclamation:{message:"{COUNT, plural, =1 {exclamation point}other {# exclamation points}}"}, +chromevox_space:{message:"{COUNT, plural, =1 {space}other {# spaces}}"},chromevox_backtick:{message:"{COUNT, plural, =1 {backtick}other {# backticks}}"},chromevox_tilde:{message:"{COUNT, plural, =1 {TILDE}other {# tildes}}"},chromevox_at:{message:"{COUNT, plural, =1 {at}other {# at signs}}"},chromevox_pound:{message:"{COUNT, plural, =1 {pound}other {# pound signs}}"},chromevox_dollar:{message:"{COUNT, plural, =1 {dollar}other {# dollar signs}}"},chromevox_percent:{message:"{COUNT, plural, =1 {percent}other {# percent signs}}"}, +chromevox_caret:{message:"{COUNT, plural, =1 {caret}other {# carets}}"},chromevox_ampersand:{message:"{COUNT, plural, =1 {ampersand}other {# ampersands}}"},chromevox_asterisk:{message:"{COUNT, plural, =1 {asterisk}other {# asterisks}}"},chromevox_open_paren:{message:"{COUNT, plural, =1 {open paren}other {# open parens}}"},chromevox_close_paren:{message:"{COUNT, plural, =1 {close paren}other {# close parens}}"},chromevox_dash:{message:"{COUNT, plural, =1 {dash}other {# dashes}}"},chromevox_underscore:{message:"{COUNT, plural, =1 {underscore}other {# underscores}}"}, +chromevox_equals:{message:"{COUNT, plural, =1 {equal}other {# equal signs}}"},chromevox_plus:{message:"{COUNT, plural, =1 {plus}other {# plus signs}}"},chromevox_left_bracket:{message:"{COUNT, plural, =1 {left bracket}other {# left brackets}}"},chromevox_right_bracket:{message:"{COUNT, plural, =1 {right bracket}other {# right brackets}}"},chromevox_left_brace:{message:"{COUNT, plural, =1 {left brace}other {# left braces}}"},chromevox_right_brace:{message:"{COUNT, plural, =1 {right brace}other {# right braces}}"}, +chromevox_pipe:{message:"{COUNT, plural, =1 {pipe}other {# vertical pipes}}"},chromevox_semicolon:{message:"{COUNT, plural, =1 {semicolon}other {# semicolons}}"},chromevox_colon:{message:"{COUNT, plural, =1 {colon}other {# colons}}"},chromevox_comma:{message:"{COUNT, plural, =1 {comma}other {# commas}}"},chromevox_dot:{message:"{COUNT, plural, =1 {dot}=3 {ellipsis}other {# dots}}"},chromevox_less_than:{message:"{COUNT, plural, =1 {less than}other {# less than signs}}"},chromevox_greater_than:{message:"{COUNT, plural, =1 {greater than}other {# greater than signs}}"}, +chromevox_slash:{message:"{COUNT, plural, =1 {slash}other {# slashes}}"},chromevox_question_mark:{message:"{COUNT, plural, =1 {question mark}other {# question marks}}"},chromevox_quote:{message:"{COUNT, plural, =1 {quote}other {# quotes}}"},chromevox_apostrophe:{message:"{COUNT, plural, =1 {apostrophe}other {# apostrophes}}"},chromevox_tab:{message:"{COUNT, plural, =1 {tab}other {# tabs}}"},chromevox_backslash:{message:"{COUNT, plural, =1 {backslash}other {# backslashes}}"},chromevox_braille_routing:{message:"Click the item under a routing key"}, +chromevox_braille_pan_left:{message:"Pan backward"},chromevox_braille_pan_right:{message:"Pan bforward"},chromevox_braille_line_up:{message:"Braille previous Line"},chromevox_braille_line_down:{message:"Braille next Line"},chromevox_braille_top:{message:"Move braille display to top of page"},chromevox_braille_bottom:{message:"Move braille display to bottom of page"},chromevox_access_key:{message:"has access key, $1",placeholders:{1:{content:"$1"}}},chromevox_locale_dict:{message:'{"ar": "Arabic","bg": "Bulgarian","ca": "Catalan","hr": "Croatian","cs": "Czech","da": "Danish","nl": "Dutch","en_CA": "English (Canada)","en_GB": "English (United Kingdom)","en_US": "English (United States)","et": "Estonian","fr": "French","fr_CA": "French (Canada)","fr_FR": "French (France)","fi": "Finnish","de": "German","de_CH": "German (Switzerland)","de_DE": "German (Germany)","el": "Greek","hi": "Hindi","hu": "Hungarian","is": "Icelandic","it": "Italian","lv": "Latvian","lt": "Lithuanian","nb": "Norwegian Bokm\u00e5l","pl": "Polish","pt": "Portuguese","ro": "Romanian","ru": "Russian","sr": "Serbian","sk": "Slovak","sl": "Slovenian","es": "Spanish","sv": "Swedish","tr": "Turkish","vi": "Vietnamese","zh": "Chinese","zh_TW": "Chinese (Traditional Han)"}'}};cvox.TestMsgs=function(){};goog.inherits(cvox.TestMsgs,cvox.AbstractMsgs);cvox.TestMsgs.prototype.getMsg=function(a,b){if(!a){var c=Error();c.message="Message id required";throw c;}c=cvox.TestMessages["chromevox_"+a];if(void 0==c)throw c=Error(),c.message="missing-msg: "+a,c;var d=c.message;if(b)for(var e=0;e<b.length;e++){var f=c.placeholders[e+1];if(!f)throw c=Error(),c.message="Bad placeholder "+e+" for message id "+a,c;f=c.placeholders[e+1].content;d=d.replace(f,b[e])}return d}; +cvox.TestMsgs.prototype.getNumber=function(a){return""+a};cvox.HostFactory.msgsConstructor=cvox.TestMsgs;cvox.ChromeVox.initDocument(); diff --git a/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js b/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js new file mode 100644 index 00000000..f5d0aaf7 --- /dev/null +++ b/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js @@ -0,0 +1,53 @@ +cordova.define("phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", function(require, exports, module) { +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +/** + * Mobile Accessibility Notification event constants + */ +module.exports = { + /* MobileAccessibility window events */ + SCREEN_READER_STATUS_CHANGED : "screenreaderstatuschanged", + CLOSED_CAPTIONING_STATUS_CHANGED : "closedcaptioningstatuschanged", + GUIDED_ACCESS_STATUS_CHANGED : "guidedaccessstatuschanged", + INVERT_COLORS_STATUS_CHANGED : "invertcolorsstatuschanged", + MONO_AUDIO_STATUS_CHANGED : "monoaudiostatuschanged", + REDUCE_MOTION_STATUS_CHANGED : "reducemotionstatuschanged", + TOUCH_EXPLORATION_STATUS_CHANGED : "touchexplorationstatechanged", + BOLD_TEXT_STATUS_CHANGED : "boldtextstatuschanged", + DARKER_SYSTEM_COLORS_STATUS_CHANGED : "darkersystemcolorsstatuschanged", + GRAYSCALE_STATUS_CHANGED : "grayscalestatuschanged", + REDUCE_TRANSPARENCY_STATUS_CHANGED : "reducetransparencystatuschanged", + SPEAK_SCREEN_STATUS_CHANGED : "speakscreenstatuschanged", + SPEAK_SELECTION_STATUS_CHANGED : "speakselectionstatuschanged", + SWITCH_CONTROL_STATUS_CHANGED : "switchcontrolstatuschanged", + + /* iOS specific UIAccessibilityNotifications */ + SCREEN_CHANGED : 1000, + LAYOUT_CHANGED : 1001, + ANNOUNCEMENT : 1008, + PAGE_SCROLLED : 1009, + + /* Windows specific high contrast event */ + HIGH_CONTRAST_CHANGED : "highcontrastchanged" +}; + +}); diff --git a/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js b/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js new file mode 100644 index 00000000..852b8d34 --- /dev/null +++ b/StoneIsland/platforms/android/assets/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js @@ -0,0 +1,502 @@ +cordova.define("phonegap-plugin-mobile-accessibility.mobile-accessibility", function(require, exports, module) { +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +var argscheck = require('cordova/argscheck'), + utils = require('cordova/utils'), + exec = require('cordova/exec'), + device = require('cordova-plugin-device.device'), + network = require('cordova-plugin-network-information.network'), + connection = require('cordova-plugin-network-information.Connection'), + MobileAccessibilityNotifications = require('phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications'); + +var MobileAccessibility = function() { + this._isBoldTextEnabled = false; + this._isClosedCaptioningEnabled = false; + this._isDarkerSystemColorsEnabled = false; + this._isGrayscaleEnabled = false; + this._isGuidedAccessEnabled = false; + this._isInvertColorsEnabled = false; + this._isMonoAudioEnabled = false; + this._isReduceMotionEnabled = false; + this._isReduceTransparencyEnabled = false; + this._isScreenReaderRunning = false; + this._isSpeakScreenEnabled = false; + this._isSpeakSelectionEnabled = false; + this._isSwitchControlRunning = false; + this._isTouchExplorationEnabled = false; + this._usePreferredTextZoom = false; + this._isHighContrastEnabled = false; + this._highContrastScheme = undefined; + + // Create new event handlers on the window (returns a channel instance) + this.channels = { + boldtextstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED), + closedcaptioningstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED), + darkersystemcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED), + grayscalestatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED), + guidedaccessstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED), + invertcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED), + monoaudiostatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED), + reducemotionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED), + reducetransparencystatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED), + screenreaderstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED), + speakscreenstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED), + speakselectionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED), + switchcontrolstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED), + touchexplorationstatechanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED), + highcontrastchanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED) + }; + for (var key in this.channels) { + this.channels[key].onHasSubscribersChange = MobileAccessibility.onHasSubscribersChange; + } +}; + +/** + * @private + * @ignore + */ +function handlers() { + return mobileAccessibility.channels.boldtextstatuschanged.numHandlers + + mobileAccessibility.channels.closedcaptioningstatuschanged.numHandlers + + mobileAccessibility.channels.darkersystemcolorsstatuschanged.numHandlers + + mobileAccessibility.channels.grayscalestatuschanged.numHandlers + + mobileAccessibility.channels.guidedaccessstatuschanged.numHandlers + + mobileAccessibility.channels.invertcolorsstatuschanged.numHandlers + + mobileAccessibility.channels.monoaudiostatuschanged.numHandlers + + mobileAccessibility.channels.reducemotionstatuschanged.numHandlers + + mobileAccessibility.channels.reducetransparencystatuschanged.numHandlers + + mobileAccessibility.channels.screenreaderstatuschanged.numHandlers + + mobileAccessibility.channels.speakscreenstatuschanged.numHandlers + + mobileAccessibility.channels.speakselectionstatuschanged.numHandlers + + mobileAccessibility.channels.switchcontrolstatuschanged.numHandlers + + mobileAccessibility.channels.touchexplorationstatechanged.numHandlers + + mobileAccessibility.channels.highcontrastchanged.numHandlers; +}; + +/** + * + * Event handlers for when callback methods get registered for mobileAccessibility. + * Keep track of how many handlers we have so we can start and stop the native MobileAccessibility listener + * appropriately. + * @private + * @ignore + */ +MobileAccessibility.onHasSubscribersChange = function() { + // If we just registered the first handler, make sure native listener is started. + if (this.numHandlers === 1 && handlers() === 1) { + exec(mobileAccessibility._status, mobileAccessibility._error, "MobileAccessibility", "start", []); + } else if (handlers() === 0) { + exec(null, null, "MobileAccessibility", "stop", []); + } +}; + +/** + * Asynchronous call to native MobileAccessibility determine if a screen reader is running. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isScreenReaderRunning = function(callback) { + exec(function(bool) { + mobileAccessibility.activateOrDeactivateChromeVox(bool); + callback(Boolean(bool)); + }, null, "MobileAccessibility", "isScreenReaderRunning", []); +}; +MobileAccessibility.prototype.isVoiceOverRunning = function(callback) { + if (device.platform.toLowerCase() === "ios") { + MobileAccessibility.prototype.isScreenReaderRunning(callback); + } else { + callback(false); + } +}; +MobileAccessibility.prototype.isTalkBackRunning = function(callback) { + if (device.platform.toLowerCase() === "android" || device.platform.toLowerCase() === "amazon-fireos") { + MobileAccessibility.prototype.isScreenReaderRunning(callback); + } else { + callback(false); + } +}; +MobileAccessibility.prototype.isChromeVoxActive = function () { + return typeof cvox !== "undefined" && cvox.ChromeVox.host.ttsLoaded() && cvox.Api.isChromeVoxActive(); +}; +MobileAccessibility.prototype.activateOrDeactivateChromeVox = function(bool) { + if (device.platform !== "Android") return; + if (typeof cvox === "undefined") { + if (bool) { + console.warn('A screen reader is running but ChromeVox has failed to initialize.'); + if (navigator.connection.type === Connection.UNKNOWN || navigator.connection.type === Connection.NONE) { + mobileAccessibility.injectLocalAndroidVoxScript(); + } + } + } else { + // activate or deactivate ChromeVox based on whether or not or not the screen reader is running. + try { + cvox.ChromeVox.host.activateOrDeactivateChromeVox(bool); + } catch (err) { + console.error(err); + } + } + + if (bool) { + if (!mobileAccessibility.hasOrientationChangeListener) { + window.addEventListener("orientationchange", mobileAccessibility.onOrientationChange); + mobileAccessibility.hasOrientationChangeListener = true; + } + } else if(mobileAccessibility.hasOrientationChangeListener) { + window.removeEventListener("orientationchange", mobileAccessibility.onOrientationChange); + mobileAccessibility.hasOrientationChangeListener = false; + } +}; + +MobileAccessibility.prototype.hasOrientationChangeListener = false; +MobileAccessibility.prototype.onOrientationChange = function(event) { + if (!mobileAccessibility.isChromeVoxActive()) return; + cvox.ChromeVox.navigationManager.updateIndicator(); +}; + +MobileAccessibility.prototype.scriptInjected = false; +MobileAccessibility.prototype.injectLocalAndroidVoxScript = function() { + var versionsplit = device.version.split('.'); + if (device.platform !== "Android" || + !(versionsplit[0] > 4 || (versionsplit[0] == 4 && versionsplit[1] >= 1)) || + typeof cvox !== "undefined" || mobileAccessibility.scriptInjected) return; + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.onload = function(){ + // console.log(this.src + ' has loaded'); + if (mobileAccessibility.isChromeVoxActive()) { + cordova.fireWindowEvent("screenreaderstatuschanged", { + isScreenReaderRunning: true + }); + } + }; + + script.src = (versionsplit[0] > 4 || versionsplit[1] > 3) + ? "plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js" + : "plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js"; + document.getElementsByTagName('head')[0].appendChild(script); + mobileAccessibility.scriptInjected = true; +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Bold Text is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isBoldTextEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isBoldTextEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Closed Captioning is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isClosedCaptioningEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isClosedCaptioningEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Darker System Colors are enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isDarkerSystemColorsEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isDarkerSystemColorsEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Grayscale is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isGrayscaleEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isGrayscaleEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Guided Access is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isGuidedAccessEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isGuidedAccessEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if the display colors have been inverted. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isInvertColorsEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isInvertColorsEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Mono Audio is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isMonoAudioEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isMonoAudioEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Reduce Motion is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isReduceMotionEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isReduceMotionEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Reduce Transparency is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isReduceTransparencyEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isReduceTransparencyEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Speak Screen is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSpeakScreenEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isSpeakScreenEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Speak Selection is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSpeakSelectionEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isSpeakSelectionEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Switch Control is running. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSwitchControlRunning = function(callback) { + exec(callback, null, "MobileAccessibility", "isSwitchControlRunning", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Touch Exploration is enabled on Android. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isTouchExplorationEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isTouchExplorationEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if High Contrast is enabled on Windows. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isHighContrastEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isHighContrastEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to return the current text zoom percent value for the WebView. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.getTextZoom = function(callback) { + exec(callback, null, "MobileAccessibility", "getTextZoom", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to set the current text zoom percent value for the WebView. + * @param {Number} textZoom A percentage value by which text in the WebView should be scaled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.setTextZoom = function(textZoom, callback) { + exec(callback, null, "MobileAccessibility", "setTextZoom", [textZoom]); +}; + +/** + * Asynchronous call to native MobileAccessibility to retrieve the user's preferred text zoom from system settings and apply it to the application WebView. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.updateTextZoom = function(callback) { + exec(callback, null, "MobileAccessibility", "updateTextZoom", []); +}; + +MobileAccessibility.prototype.usePreferredTextZoom = function(bool) { + var currentValue = window.localStorage.getItem("MobileAccessibility.usePreferredTextZoom") === "true"; + + if (arguments.length === 0) { + return currentValue; + } + + if (currentValue != bool) { + window.localStorage.setItem("MobileAccessibility.usePreferredTextZoom", bool); + } + + var callback = function(){ + // Wrapping updateTextZoom call in a function to stop + // the event parameter propagation. This fixes an error + // on resume where cordova tried to call apply() on the + // event, expecting a function. + mobileAccessibility.updateTextZoom(); + }; + + document.removeEventListener("resume", callback); + + if (bool) { + // console.log("We should update the text zoom at this point: " + bool) + document.addEventListener("resume", callback, false); + mobileAccessibility.updateTextZoom(); + } else { + mobileAccessibility.setTextZoom(100); + } + + return Boolean(bool); +}; + +MobileAccessibility.prototype.MobileAccessibilityNotifications = MobileAccessibilityNotifications; + +/** + * Posts a notification with a string for a screen reader to announce, if it is running. + * @param {uint} mobileAccessibilityNotification A numeric constant for the type of notification to send. Constants are defined in MobileAccessibility.MobileAccessibilityNotifications. + * @param {string} string A string to be announced by a screen reader. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility, when the announcement is finished, the function should expect an object containing the stringValue that was voiced and a boolean indicating that the announcement wasSuccessful. + */ +MobileAccessibility.prototype.postNotification = function(mobileAccessibilityNotification, string, callback) { + exec(callback, null, "MobileAccessibility", "postNotification", [mobileAccessibilityNotification, string]); +}; + +/** + * Speaks the given string, and if ChromeVox is active, it will use the specified queueMode and properties. + * @param {string} string A string to be announced by a screen reader. + * @param {number} [queueMode] Optional number. Valid modes are 0 for flush; 1 for queue. + * @param {Object} [properties] Speech properties to use for this utterance. + */ +MobileAccessibility.prototype.speak = function(string, queueMode, properties) { + if (this.isChromeVoxActive()) { + cvox.ChromeVox.tts.speak(string, queueMode, properties); + } else { + exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, string]); + } +} + +/** + * Stops speech. + */ +MobileAccessibility.prototype.stop = function() { + if (this.isChromeVoxActive()) { + cvox.ChromeVox.tts.stop(); + } else { + exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, "\u200b"]); + } +} + +/** + * Callback from native MobileAccessibility returning an object which describes the status of MobileAccessibility features. + * + * @param {Object} info + * @config {Boolean} [isBoldTextEnabled] Boolean to indicate bold text status (ios). + * @config {Boolean} [isClosedCaptioningEnabled] Boolean to indicate closed captioning status. + * @config {Boolean} [isDarkerSystemColorsEnabled] Boolean to indicate darker system colors status (ios). + * @config {Boolean} [isGrayscaleEnabled] Boolean to indicate grayscale status (ios). + * @config {Boolean} [isGuidedAccessEnabled] Boolean to indicate guided access status (ios). + * @config {Boolean} [isInvertColorsEnabled] Boolean to indicate invert colors status (ios). + * @config {Boolean} [isMonoAudioEnabled] Boolean to indicate mono audio status (ios). + * @config {Boolean} [isReduceMotionEnabled] Boolean to indicate reduce motion status (ios). + * @config {Boolean} [isReduceTransparencyEnabled] Boolean to indicate reduce transparency status (ios). + * @config {Boolean} [isScreenReaderRunning] Boolean to indicate screen reader status. + * @config {Boolean} [isSpeakScreenEnabled] Boolean to indicate speak screen status (ios). + * @config {Boolean} [isSpeakSelectionEnabled] Boolean to indicate speak selection status (ios). + * @config {Boolean} [isSwitchControlRunning] Boolean to indicate switch control status (ios). + * @config {Boolean} [isTouchExplorationEnabled] Boolean to indicate touch exploration status (android). + */ +MobileAccessibility.prototype._status = function(info) { + if (info) { + mobileAccessibility.activateOrDeactivateChromeVox(info.isScreenReaderRunning); + if (mobileAccessibility._isBoldTextEnabled !== info.isBoldTextEnabled) { + mobileAccessibility._isBoldTextEnabled = info.isBoldTextEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED, info); + } + if (mobileAccessibility._isClosedCaptioningEnabled !== info.isClosedCaptioningEnabled) { + mobileAccessibility._isClosedCaptioningEnabled = info.isClosedCaptioningEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED, info); + } + if (mobileAccessibility._isDarkerSystemColorsEnabled !== info.isDarkerSystemColorsEnabled) { + mobileAccessibility._isDarkerSystemColorsEnabled = info.isDarkerSystemColorsEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isGrayscaleEnabled !== info.isGrayscaleEnabled) { + mobileAccessibility._isGrayscaleEnabled = info.isGrayscaleEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED, info); + } + if (mobileAccessibility._isGuidedAccessEnabled !== info.isGuidedAccessEnabled) { + mobileAccessibility._isGuidedAccessEnabled = info.isGuidedAccessEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isInvertColorsEnabled !== info.isInvertColorsEnabled) { + mobileAccessibility._isInvertColorsEnabled = info.isInvertColorsEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isMonoAudioEnabled !== info.isMonoAudioEnabled) { + mobileAccessibility._isMonoAudioEnabled = info.isMonoAudioEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED, info); + } + if (mobileAccessibility._isReduceMotionEnabled !== info.isReduceMotionEnabled) { + mobileAccessibility._isReduceMotionEnabled = info.isReduceMotionEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isReduceTransparencyEnabled !== info.isReduceTransparencyEnabled) { + mobileAccessibility._isReduceTransparencyEnabled = info.isReduceTransparencyEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED, info); + } + if (mobileAccessibility._isScreenReaderRunning !== info.isScreenReaderRunning) { + mobileAccessibility._isScreenReaderRunning = info.isScreenReaderRunning; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSpeakScreenEnabled !== info.isSpeakScreenEnabled) { + mobileAccessibility._isSpeakScreenEnabled = info.isSpeakScreenEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSpeakSelectionEnabled !== info.isSpeakSelectionEnabled) { + mobileAccessibility._isSpeakSelectionEnabled = info.isSpeakSelectionEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSwitchControlRunning !== info.isSwitchControlRunning) { + mobileAccessibility._isSwitchControlRunning = info.isSwitchControlRunning; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED, info); + } + if (mobileAccessibility._isTouchExplorationEnabled !== info.isTouchExplorationEnabled) { + mobileAccessibility._isTouchExplorationEnabled = info.isTouchExplorationEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isHighContrastEnabled !== info.isHighContrastEnabled) { + mobileAccessibility._isHighContrastEnabled = info.isHighContrastEnabled; + mobileAccessibility._highContrastScheme = info.highContrastScheme; + cordova.fireWindowEvent(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED, info); + } + } +}; + +/** + * Error callback for MobileAccessibility start + */ +MobileAccessibility.prototype._error = function(e) { + console.log("Error initializing MobileAccessibility: " + e); +}; + +var mobileAccessibility = new MobileAccessibility(); + +module.exports = mobileAccessibility; + +}); diff --git a/StoneIsland/platforms/android/platform_www/cordova_plugins.js b/StoneIsland/platforms/android/platform_www/cordova_plugins.js index 770bd946..2b01e07f 100755 --- a/StoneIsland/platforms/android/platform_www/cordova_plugins.js +++ b/StoneIsland/platforms/android/platform_www/cordova_plugins.js @@ -128,6 +128,22 @@ module.exports = [ "merges": [ "window.plugins.sim" ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "window.MobileAccessibility" + ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "MobileAccessibilityNotifications" + ] } ]; module.exports.metadata = @@ -147,7 +163,8 @@ module.exports.metadata = "cordova-plugin-app-name": "1.0.4", "cordova-plugin-splashscreen": "4.0.3", "phonegap-plugin-push": "1.9.2", - "cordova-plugin-sim": "1.3.3" + "cordova-plugin-sim": "1.3.3", + "phonegap-plugin-mobile-accessibility": "1.0.5-dev" }; // BOTTOM OF METADATA });
\ No newline at end of file diff --git a/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js b/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js new file mode 100644 index 00000000..8229b168 --- /dev/null +++ b/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js @@ -0,0 +1,1778 @@ +// Copyright 2013 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +var goog=goog||{};goog.global=this;goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!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]:c[d]={}:c[d]=b};goog.define=function(a,b){var c=b;goog.exportPath_(a,c)};goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.provide=function(a){goog.exportPath_(a)}; +goog.setTestOnly=function(a){if(!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");};goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else 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){if(goog.DEPENDENCIES_ENABLED){var d;a=a.replace(/\\/g,"/");for(var e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a,a in e.pathToNames||(e.pathToNames[a]={}),e.pathToNames[a][d]=!0;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.useStrictRequires=!1;goog.ENABLE_DEBUG_LOADER=!0;goog.require=function(){};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a){return a}; +goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){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.DEPENDENCIES_ENABLED=!1; +goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document,a=a.getElementsByTagName("script"),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.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==b.readyState){if(b=/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}b.write('<script type="text/javascript" src="'+ +a+'">\x3c/script>');return!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=!0,e in d.requires))for(var g in d.requires[e])if(!goog.isProvided_(g))if(g in d.nameToPath)a(d.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e<b.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error("Undefined script input"); +},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js")); +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.isDef=function(a){return void 0!==a};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.isString=function(a){return"string"==typeof a}; +goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};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){"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(a.clone)return a.clone();var b="array"==b?[]:{},c;for(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_&&(goog.global.eval("var _et_ = 1;"),"undefined"!=typeof goog.global._et_?(delete goog.global._et_,goog.evalWorksForGlobals_=!0):goog.evalWorksForGlobals_=!1),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.body.appendChild(c); +b.body.removeChild(c)}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;goog.getCssName=function(a,b){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};return b?a+"-"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b}; +goog.getMsg=function(a,b){var c=b||{},d;for(d in c){var e=(""+c[d]).replace(/\$/g,"$$$$");a=a.replace(RegExp("\\{\\$"+d+"\\}","gi"),e)}return a};goog.getMsgWithFallback=function(a){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}; +goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() expects not to be running in strict mode. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=!1,g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[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){a.call(goog.global)};goog.MODIFY_FUNCTION_PROTOTYPES=!0; +goog.MODIFY_FUNCTION_PROTOTYPES&&(Function.prototype.bind=Function.prototype.bind||function(a,b){if(1<arguments.length){var c=Array.prototype.slice.call(arguments,1);c.unshift(this,a);return goog.bind.apply(null,c)}return goog.bind(this,a)},Function.prototype.partial=function(a){var b=Array.prototype.slice.call(arguments);b.unshift(this,null);return goog.bind.apply(null,b)},Function.prototype.inherits=function(a){goog.inherits(this,a)},Function.prototype.mixin=function(a){goog.mixin(this.prototype, +a)});var cvox={VERBOSITY_VERBOSE:0,VERBOSITY_BRIEF:1,ChromeVox:function(){}};cvox.ChromeVox.host=null;cvox.ChromeVox.msgs=null;cvox.ChromeVox.isActive=!0;cvox.ChromeVox.version=null;cvox.ChromeVox.earcons=null;cvox.ChromeVox.navigationManager=null;cvox.ChromeVox.serializer=null;cvox.ChromeVox.isStickyOn=!1;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVox.verbosity=cvox.VERBOSITY_VERBOSE;cvox.ChromeVox.typingEcho=0;cvox.ChromeVox.keyEcho={};cvox.ChromeVox.position={};cvox.ChromeVox.isChromeOS=-1!=navigator.userAgent.indexOf("CrOS"); +cvox.ChromeVox.isMac=-1!=navigator.platform.indexOf("Mac");cvox.ChromeVox.modKeyStr=cvox.ChromeVox.isChromeOS?"Shift+Search":cvox.ChromeVox.isMac?"Ctrl+Cmd":"Ctrl+Meta";cvox.ChromeVox.sequenceSwitchKeyCodes=[];cvox.ChromeVox.visitedUrls={};cvox.ChromeVox.markInUserCommand=function(){};cvox.ChromeVox.syncToNode=function(){};cvox.ChromeVox.speakNode=function(){};cvox.ChromeVox.executeUserCommand=function(){};cvox.ChromeVox.entireDocumentIsHidden=!1; +cvox.ChromeVox.storeOn=function(a){a.isStickyOn=cvox.ChromeVox.isStickyOn;cvox.ChromeVox.navigationManager.storeOn(a)};cvox.ChromeVox.readFrom=function(a){cvox.ChromeVox.isStickyOn=a.isStickyOn;cvox.ChromeVox.navigationManager.readFrom(a)};cvox.Cursor=function(a,b,c){this.node=a;this.index=b;this.text=c};cvox.Cursor.prototype.clone=function(){return new cvox.Cursor(this.node,this.index,this.text)};cvox.Cursor.prototype.copyFrom=function(a){this.node=a.node;this.index=a.index;this.text=a.text};cvox.Cursor.prototype.equals=function(a){return this.node==a.node&&this.index==a.index&&this.text==a.text};goog.debug={};goog.debug.Error=function(a){Error.captureStackTrace?Error.captureStackTrace(this,goog.debug.Error):this.stack=Error().stack||"";a&&(this.message=String(a))};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.string={};goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))}; +goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};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.isEmpty=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.isEmptySafe=function(a){return goog.string.isEmpty(goog.string.makeSafe(a))}; +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=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")}; +goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c<d?-1:c==d?0:1};goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g; +goog.string.numerateCompare=function(a,b){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var c=a.toLowerCase().match(goog.string.numerateCompareRegExp_),d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=Math.min(c.length,d.length),f=0;f<e;f++){var g=c[f],h=d[f];if(g!=h)return c=parseInt(g,10),!isNaN(c)&&(d=parseInt(h,10),!isNaN(d)&&c-d)?c-d:g<h?-1:1}return c.length!=d.length?c.length-d.length:a<b?-1:1};goog.string.urlEncode=function(a){return encodeURIComponent(String(a))}; +goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")}; +goog.string.htmlEscape=function(a,b){if(b)return a.replace(goog.string.amperRe_,"&").replace(goog.string.ltRe_,"<").replace(goog.string.gtRe_,">").replace(goog.string.quotRe_,""");if(!goog.string.allRe_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.amperRe_,"&"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.ltRe_,"<"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.gtRe_,">"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.quotRe_,"""));return a}; +goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?"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={"&":"&","<":"<",">":">",""":'"'},d;d=b?b.createElement("div"):document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var g=c[a];if(g)return g;if("#"==b.charAt(0)){var h=Number("0"+b.substr(1));isNaN(h)||(g=String.fromCharCode(h))}g||(d.innerHTML=a+" ",g=d.firstChild.nodeValue.slice(0,-1));return c[a]=g})}; +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 d=Number("0"+c.substr(1));if(!isNaN(d))return String.fromCharCode(d)}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.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;b-=d;a=a.substring(0,b)+"..."+a.substring(e)}else a.length>b&&(e=Math.floor(b/2),d=a.length-e,e+=b%2,a=a.substring(0,e)+"..."+a.substring(d));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",'"':'\\"',"\\":"\\\\"};goog.string.jsEscapeCache_={"'":"\\'"}; +goog.string.quote=function(a){a=String(a);if(a.quote)return a.quote();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,c=a.charCodeAt(0);if(31<c&&127>c)b=a;else{if(256>c){if(b="\\x",16>c||256<c)b+="0"}else b="\\u",4096>c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.toMap=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=!0;return b}; +goog.string.contains=function(a,b){return-1!=a.indexOf(b)};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){var c=RegExp(goog.string.regExpEscape(b),"");return a.replace(c,"")};goog.string.removeAll=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"g");return a.replace(c,"")}; +goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=goog.isDef(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(){var a=2147483648;return Math.floor(Math.random()*a).toString(36)+Math.abs(Math.floor(Math.random()*a)^goog.now()).toString(36)}; +goog.string.compareVersions=function(a,b){for(var c=0,d=goog.string.trim(String(a)).split("."),e=goog.string.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]||"",l=/(\d*)(\D*)/g,m=/(\d*)(\D*)/g;do{var p=l.exec(h)||["","",""],q=m.exec(k)||["","",""];if(0==p[0].length&&0==q[0].length)break;var c=0==p[1].length?0:parseInt(p[1],10),n=0==q[1].length?0:parseInt(q[1],10),c=goog.string.compareElements_(c,n)||goog.string.compareElements_(0==p[2].length,0==q[2].length)|| +goog.string.compareElements_(p[2],q[2])}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c),b%=goog.string.HASHCODE_MAX_;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.isEmpty(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=goog.isString(b)?goog.string.regExpEscape(b):"\\s",c=c?"|["+c+"]+":"",c=RegExp("(^"+c+")([a-z])","g");return a.replace(c,function(a,b,c){return b+c.toUpperCase()})};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(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.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){b.unshift(a);goog.debug.Error.call(this,goog.string.subs.apply(null,b));b.shift()};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);throw new goog.asserts.AssertionError(""+e,f||[]);}; +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.fail=function(a,b){if(goog.asserts.ENABLE_ASSERTS)throw new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));}; +goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(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&&!goog.isString(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&&!goog.isBoolean(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_("instanceof check failed.",null,c,Array.prototype.slice.call(arguments,3));return a}; +goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.peek=function(a){return a[a.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype; +goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.indexOf?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.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(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1}; +goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(a,b,c){goog.asserts.assert(null!=a.length);c=null==c?a.length-1:c;return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(a,b,c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1}; +goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.forEach?function(a,b,c){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;--d)d in e&&b.call(c,e[d],d,a)}; +goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.filter?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(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.ARRAY_PROTOTYPE_.map?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(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.ARRAY_PROTOTYPE_.reduce?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.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.ARRAY_PROTOTYPE_.reduceRight?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.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.ARRAY_PROTOTYPE_.some?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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.ARRAY_PROTOTYPE_.every?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(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:goog.isString(a)?a.charAt(b):a[b]}; +goog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;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.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==goog.array.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.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,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],e;if(goog.isArray(d)||(e=goog.isArrayLike(d))&&Object.prototype.hasOwnProperty.call(d,"callee"))a.push.apply(a,d);else if(e)for(var f=a.length,g=d.length,h=0;h<g;h++)a[f+h]=d[h];else a.push(d)}};goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return goog.array.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?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(){return goog.isObject(g)?"o"+goog.getUid(g):(typeof g).charAt(0)+g};c=c||d;for(var d={},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>>1,l;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};goog.array.sort=function(a,b){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.sort.call(a,b||goog.array.defaultCompare)}; +goog.array.stableSort=function(a,b){function c(a,b){return e(a.value,b.value)||a.index-b.index}for(var d=0;d<a.length;d++)a[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(a,c);for(d=0;d<a.length;d++)a[d]=a[d].value};goog.array.sortObjectsByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(a[b],c[b])})}; +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.compare=function(a,b,c){return goog.array.equals(a,b,c)}; +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.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);goog.isDef(g)&&(g=d[g]||(d[g]=[]),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];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b}; +goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?goog.array.ARRAY_PROTOTYPE_.unshift.apply(a,a.splice(-b,b)):0>b&&goog.array.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=goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1);goog.array.ARRAY_PROTOTYPE_.splice.call(a,c,0,b[0])}; +goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e<arguments.length;e++){var f=arguments[e];if(c>=f.length)return b;d.push(f[c])}b.push(d)}};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.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||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)}; +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?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b){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]);for(var l=[],h=e,k=f;0<h&&0<k;)c(a[h-1],b[k-1])?(l.unshift(d(h-1,k-1)),h--,k--):g[h-1][k]>g[h][k-1]?h--:k--;return l}; +goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)}; +goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.floor(a+(b||2E-15))};goog.math.safeCeil=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.ceil(a-(b||2E-15))};goog.i18n={}; +goog.i18n.CompactNumberFormatSymbols_af={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0m"},1E7:{other:"00\u00a0m"},1E8:{other:"000\u00a0m"},1E9:{other:"0\u00a0mjd"},1E10:{other:"00\u00a0mjd"},1E11:{other:"000\u00a0mjd"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duisend"},1E4:{other:"00 duisend"},1E5:{other:"000 duisend"},1E6:{other:"0 miljoen"},1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"}, +1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_af_ZA=goog.i18n.CompactNumberFormatSymbols_af; +goog.i18n.CompactNumberFormatSymbols_am={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u123a"},1E4:{other:"00\u00a0\u123a"},1E5:{other:"000\u00a0\u123a"},1E6:{other:"0\u00a0\u121c\u1275\u122d"},1E7:{other:"00\u00a0\u121c\u1275\u122d"},1E8:{other:"000\u00a0\u121c\u1275\u122d"},1E9:{other:"0\u00a0\u1262"},1E10:{other:"00\u00a0\u1262"},1E11:{other:"000\u00a0\u1262"},1E12:{other:"0\u00a0\u1275"},1E13:{other:"00\u00a0\u1275"},1E14:{other:"000\u00a0\u1275"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u123a"}, +1E4:{other:"00 \u123a"},1E5:{other:"000 \u123a"},1E6:{other:"0 \u121a\u120a\u12ee\u1295"},1E7:{other:"00 \u121a\u120a\u12ee\u1295"},1E8:{other:"000 \u121a\u120a\u12ee\u1295"},1E9:{other:"0 \u1262\u120a\u12ee\u1295"},1E10:{other:"00 \u1262\u120a\u12ee\u1295"},1E11:{other:"000 \u1262\u120a\u12ee\u1295"},1E12:{other:"0 \u1275\u122a\u120a\u12ee\u1295"},1E13:{other:"00 \u1275\u122a\u120a\u12ee\u1295"},1E14:{other:"000 \u1275\u122a\u120a\u12ee\u1295"}}};goog.i18n.CompactNumberFormatSymbols_am_ET=goog.i18n.CompactNumberFormatSymbols_am; +goog.i18n.CompactNumberFormatSymbols_ar={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0623\u0644\u0641"},1E4:{other:"00\u00a0\u0623\u0644\u0641"},1E5:{other:"000\u00a0\u0623\u0644\u0641"},1E6:{other:"0\u00a0\u0645\u0644\u064a\u0648"},1E7:{other:"00\u00a0\u0645\u0644\u064a\u0648"},1E8:{other:"000\u00a0\u0645\u0644\u064a\u0648"},1E9:{other:"0\u00a0\u0628\u0644\u064a\u0648"},1E10:{other:"00\u00a0\u0628\u0644\u064a\u0648"},1E11:{other:"000\u00a0\u0628\u0644\u064a\u0648"},1E12:{other:"0\u00a0\u062a\u0631\u0644\u064a\u0648"}, +1E13:{other:"00\u00a0\u062a\u0631\u0644\u064a\u0648"},1E14:{other:"000\u00a0\u062a\u0631\u0644\u064a\u0648"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0623\u0644\u0641"},1E4:{other:"00 \u0623\u0644\u0641"},1E5:{other:"000 \u0623\u0644\u0641"},1E6:{other:"0 \u0645\u0644\u064a\u0648\u0646"},1E7:{other:"00 \u0645\u0644\u064a\u0648\u0646"},1E8:{other:"000 \u0645\u0644\u064a\u0648\u0646"},1E9:{other:"0 \u0628\u0644\u064a\u0648\u0646"},1E10:{other:"00 \u0628\u0644\u064a\u0648\u0646"},1E11:{other:"000 \u0628\u0644\u064a\u0648\u0646"}, +1E12:{other:"0 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E13:{other:"00 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E14:{other:"000 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"}}};goog.i18n.CompactNumberFormatSymbols_ar_001=goog.i18n.CompactNumberFormatSymbols_ar;goog.i18n.CompactNumberFormatSymbols_ar_EG=goog.i18n.CompactNumberFormatSymbols_ar; +goog.i18n.CompactNumberFormatSymbols_bg={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0425"},1E4:{other:"00\u00a0\u0425"},1E5:{other:"000\u00a0\u0425"},1E6:{other:"0\u00a0\u041c"},1E7:{other:"00\u00a0\u041c"},1E8:{other:"000\u00a0\u041c"},1E9:{other:"0\u00a0\u0411"},1E10:{other:"00\u00a0\u0411"},1E11:{other:"000\u00a0\u0411"},1E12:{other:"0\u00a0\u0422"},1E13:{other:"00\u00a0\u0422"},1E14:{other:"000\u00a0\u0422"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u043b\u044f\u0434\u0438"}, +1E4:{other:"00 \u0445\u0438\u043b\u044f\u0434\u0438"},1E5:{other:"000 \u0445\u0438\u043b\u044f\u0434\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}, +1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_bg_BG=goog.i18n.CompactNumberFormatSymbols_bg; +goog.i18n.CompactNumberFormatSymbols_bn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u09b9\u09be\u099c\u09be\u09b0"},1E4:{other:"00 \u09b9\u09be\u099c\u09be\u09b0"},1E5:{other:"000 \u09b9\u09be\u099c\u09be\u09b0"},1E6:{other:"0 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}, +1E7:{other:"00 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E8:{other:"000 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E9:{other:"0 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E10:{other:"00 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E11:{other:"000 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E12:{other:"0 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E13:{other:"00 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E14:{other:"000 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}}}; +goog.i18n.CompactNumberFormatSymbols_bn_BD=goog.i18n.CompactNumberFormatSymbols_bn;goog.i18n.CompactNumberFormatSymbols_br={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_br_FR=goog.i18n.CompactNumberFormatSymbols_br; +goog.i18n.CompactNumberFormatSymbols_ca={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milions"},1E7:{other:"00 milions"}, +1E8:{other:"000 milions"},1E9:{other:"0 miliards"},1E10:{other:"00 miliards"},1E11:{other:"000 miliards"},1E12:{other:"0 bilions"},1E13:{other:"00 bilions"},1E14:{other:"000 bilions"}}};goog.i18n.CompactNumberFormatSymbols_ca_AD=goog.i18n.CompactNumberFormatSymbols_ca;goog.i18n.CompactNumberFormatSymbols_ca_ES=goog.i18n.CompactNumberFormatSymbols_ca; +goog.i18n.CompactNumberFormatSymbols_chr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_chr_US=goog.i18n.CompactNumberFormatSymbols_chr; +goog.i18n.CompactNumberFormatSymbols_cs={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"}, +1E6:{other:"0 milion\u016f"},1E7:{other:"00 milion\u016f"},1E8:{other:"000 milion\u016f"},1E9:{other:"0 miliard"},1E10:{other:"00 miliard"},1E11:{other:"000 miliard"},1E12:{other:"0 bilion\u016f"},1E13:{other:"00 bilion\u016f"},1E14:{other:"000 bilion\u016f"}}};goog.i18n.CompactNumberFormatSymbols_cs_CZ=goog.i18n.CompactNumberFormatSymbols_cs; +goog.i18n.CompactNumberFormatSymbols_cy={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 miliwn"},1E7:{other:"00 miliwn"},1E8:{other:"000 miliwn"},1E9:{other:"0 biliwn"},1E10:{other:"00 biliwn"}, +1E11:{other:"000 biliwn"},1E12:{other:"0 triliwn"},1E13:{other:"00 triliwn"},1E14:{other:"000 triliwn"}}};goog.i18n.CompactNumberFormatSymbols_cy_GB=goog.i18n.CompactNumberFormatSymbols_cy; +goog.i18n.CompactNumberFormatSymbols_da={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mio"},1E7:{other:"00\u00a0mio"},1E8:{other:"000\u00a0mio"},1E9:{other:"0\u00a0mia"},1E10:{other:"00\u00a0mia"},1E11:{other:"000\u00a0mia"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusind"},1E4:{other:"00 tusind"},1E5:{other:"000 tusind"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_da_DK=goog.i18n.CompactNumberFormatSymbols_da; +goog.i18n.CompactNumberFormatSymbols_de={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}}; +goog.i18n.CompactNumberFormatSymbols_de_AT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_BE=goog.i18n.CompactNumberFormatSymbols_de; +goog.i18n.CompactNumberFormatSymbols_de_CH={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_DE=goog.i18n.CompactNumberFormatSymbols_de;goog.i18n.CompactNumberFormatSymbols_de_LU=goog.i18n.CompactNumberFormatSymbols_de; +goog.i18n.CompactNumberFormatSymbols_el={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u03c7\u03b9\u03bb."},1E4:{other:"00\u00a0\u03c7\u03b9\u03bb."},1E5:{other:"000\u00a0\u03c7\u03b9\u03bb."},1E6:{other:"0\u00a0\u03b5\u03ba."},1E7:{other:"00\u00a0\u03b5\u03ba."},1E8:{other:"000\u00a0\u03b5\u03ba."},1E9:{other:"0\u00a0\u03b4\u03b9\u03c2"},1E10:{other:"00\u00a0\u03b4\u03b9\u03c2"},1E11:{other:"000\u00a0\u03b4\u03b9\u03c2"},1E12:{other:"0\u00a0\u03c4\u03c1\u03b9\u03c2"},1E13:{other:"00\u00a0\u03c4\u03c1\u03b9\u03c2"}, +1E14:{other:"000\u00a0\u03c4\u03c1\u03b9\u03c2"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E4:{other:"00 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E5:{other:"000 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E6:{other:"0 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E7:{other:"00 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E8:{other:"000 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}, +1E9:{other:"0 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E10:{other:"00 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E11:{other:"000 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E12:{other:"0 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E13:{other:"00 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}, +1E14:{other:"000 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}}};goog.i18n.CompactNumberFormatSymbols_el_GR=goog.i18n.CompactNumberFormatSymbols_el; +goog.i18n.CompactNumberFormatSymbols_en={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_AS=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_AU={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_FM=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_GB={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_GU=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_IE={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}}; +goog.i18n.CompactNumberFormatSymbols_en_IN={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_MH=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_MP=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PR=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PW=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_SG={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_TC=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_UM=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_VG=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_VI=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_ZA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}}; +goog.i18n.CompactNumberFormatSymbols_es={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00\u00a0K\u00a0M"},1E11:{other:"000\u00a0K\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"}, +1E7:{other:"00 millones"},1E8:{other:"000 millones"},1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}}; +goog.i18n.CompactNumberFormatSymbols_es_419={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0k\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},1E7:{other:"00 millones"},1E8:{other:"000 millones"}, +1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};goog.i18n.CompactNumberFormatSymbols_es_EA=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_ES=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_IC=goog.i18n.CompactNumberFormatSymbols_es; +goog.i18n.CompactNumberFormatSymbols_et={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tuh"},1E4:{other:"00\u00a0tuh"},1E5:{other:"000\u00a0tuh"},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0trl"},1E13:{other:"00\u00a0trl"},1E14:{other:"000\u00a0trl"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhat"},1E4:{other:"00 tuhat"},1E5:{other:"000 tuhat"},1E6:{other:"0 miljonit"}, +1E7:{other:"00 miljonit"},1E8:{other:"000 miljonit"},1E9:{other:"0 miljardit"},1E10:{other:"00 miljardit"},1E11:{other:"000 miljardit"},1E12:{other:"0 triljonit"},1E13:{other:"00 triljonit"},1E14:{other:"000 triljonit"}}};goog.i18n.CompactNumberFormatSymbols_et_EE=goog.i18n.CompactNumberFormatSymbols_et; +goog.i18n.CompactNumberFormatSymbols_eu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milioi"},1E7:{other:"00 milioi"},1E8:{other:"000 milioi"},1E9:{other:"0000 milioi"}, +1E10:{other:"00000 milioi"},1E11:{other:"000000 milioi"},1E12:{other:"0 bilioi"},1E13:{other:"00 bilioi"},1E14:{other:"000 bilioi"}}};goog.i18n.CompactNumberFormatSymbols_eu_ES=goog.i18n.CompactNumberFormatSymbols_eu; +goog.i18n.CompactNumberFormatSymbols_fa={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0647\u0632\u0627\u0631"},1E4:{other:"00 \u0647\u0632\u0627\u0631"},1E5:{other:"000 \u0647\u0632\u0627\u0631"},1E6:{other:"0 \u0645\u06cc\u0644\u06cc\u0648\u0646"}, +1E7:{other:"00 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E8:{other:"000 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E9:{other:"0 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E10:{other:"00 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E11:{other:"000 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E12:{other:"0 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E13:{other:"00 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E14:{other:"000 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"}}}; +goog.i18n.CompactNumberFormatSymbols_fa_IR=goog.i18n.CompactNumberFormatSymbols_fa; +goog.i18n.CompactNumberFormatSymbols_fi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t."},1E4:{other:"00\u00a0t."},1E5:{other:"000\u00a0t."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bilj."},1E13:{other:"00\u00a0bilj."},1E14:{other:"000\u00a0bilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhatta"},1E4:{other:"00 tuhatta"},1E5:{other:"000 tuhatta"}, +1E6:{other:"0 miljoonaa"},1E7:{other:"00 miljoonaa"},1E8:{other:"000 miljoonaa"},1E9:{other:"0 miljardia"},1E10:{other:"00 miljardia"},1E11:{other:"000 miljardia"},1E12:{other:"0 biljoonaa"},1E13:{other:"00 biljoonaa"},1E14:{other:"000 biljoonaa"}}};goog.i18n.CompactNumberFormatSymbols_fi_FI=goog.i18n.CompactNumberFormatSymbols_fi; +goog.i18n.CompactNumberFormatSymbols_fil={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"}, +1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};goog.i18n.CompactNumberFormatSymbols_fil_PH=goog.i18n.CompactNumberFormatSymbols_fil; +goog.i18n.CompactNumberFormatSymbols_fr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"}, +1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_BL=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_fr_CA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"}, +1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_FR=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GP=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MC=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_fr_MF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MQ=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_RE=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_YT=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_gl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 mill\u00f3ns"},1E7:{other:"00 mill\u00f3ns"}, +1E8:{other:"000 mill\u00f3ns"},1E9:{other:"0 mil mill\u00f3ns"},1E10:{other:"00 mil mill\u00f3ns"},1E11:{other:"000 mil mill\u00f3ns"},1E12:{other:"0 bill\u00f3ns"},1E13:{other:"00 bill\u00f3ns"},1E14:{other:"000 bill\u00f3ns"}}};goog.i18n.CompactNumberFormatSymbols_gl_ES=goog.i18n.CompactNumberFormatSymbols_gl; +goog.i18n.CompactNumberFormatSymbols_gsw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tsd"},1E4:{other:"00\u00a0tsd"},1E5:{other:"000\u00a0tsd"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tausend"},1E4:{other:"00 tausend"},1E5:{other:"000 tausend"},1E6:{other:"0 Millionen"}, +1E7:{other:"00 Millionen"},1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_gsw_CH=goog.i18n.CompactNumberFormatSymbols_gsw; +goog.i18n.CompactNumberFormatSymbols_gu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0ab9\u0a9c\u0abe\u0ab0"},1E4:{other:"00 \u0ab9\u0a9c\u0abe\u0ab0"},1E5:{other:"000 \u0ab9\u0a9c\u0abe\u0ab0"},1E6:{other:"0 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}, +1E7:{other:"00 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E8:{other:"000 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E9:{other:"0 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E10:{other:"00 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E11:{other:"000 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E12:{other:"0 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E13:{other:"00 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E14:{other:"000 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}}}; +goog.i18n.CompactNumberFormatSymbols_gu_IN=goog.i18n.CompactNumberFormatSymbols_gu;goog.i18n.CompactNumberFormatSymbols_haw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_haw_US=goog.i18n.CompactNumberFormatSymbols_haw; +goog.i18n.CompactNumberFormatSymbols_he={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"}, +1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"}, +1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};goog.i18n.CompactNumberFormatSymbols_he_IL=goog.i18n.CompactNumberFormatSymbols_he; +goog.i18n.CompactNumberFormatSymbols_hi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0L"},1E6:{other:"00L"},1E7:{other:"0Cr"},1E8:{other:"00Cr"},1E9:{other:"000Cr"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093c\u093e\u0930"},1E5:{other:"0 \u0932\u093e\u0916"},1E6:{other:"00 \u0932\u093e\u0916"},1E7:{other:"0 \u0915\u0930\u094b\u0921\u093c"}, +1E8:{other:"00 \u0915\u0930\u094b\u0921\u093c"},1E9:{other:"0 \u0905\u0930\u092c"},1E10:{other:"00 \u0905\u0930\u092c"},1E11:{other:"0 \u0916\u0930\u092c"},1E12:{other:"00 \u0916\u0930\u092c"},1E13:{other:"000 \u0916\u0930\u092c"},1E14:{other:"0000 \u0916\u0930\u092c"}}};goog.i18n.CompactNumberFormatSymbols_hi_IN=goog.i18n.CompactNumberFormatSymbols_hi; +goog.i18n.CompactNumberFormatSymbols_hr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mlr."},1E10:{other:"00\u00a0mlr."},1E11:{other:"000\u00a0mlr."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milijuna"},1E7:{other:"00 milijuna"},1E8:{other:"000 milijuna"}, +1E9:{other:"0 milijarda"},1E10:{other:"00 milijarda"},1E11:{other:"000 milijarda"},1E12:{other:"0 bilijuna"},1E13:{other:"00 bilijuna"},1E14:{other:"000 bilijuna"}}};goog.i18n.CompactNumberFormatSymbols_hr_HR=goog.i18n.CompactNumberFormatSymbols_hr; +goog.i18n.CompactNumberFormatSymbols_hu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0E"},1E4:{other:"00\u00a0E"},1E5:{other:"000\u00a0E"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ezer"},1E4:{other:"00 ezer"},1E5:{other:"000 ezer"},1E6:{other:"0 milli\u00f3"},1E7:{other:"00 milli\u00f3"}, +1E8:{other:"000 milli\u00f3"},1E9:{other:"0 milli\u00e1rd"},1E10:{other:"00 milli\u00e1rd"},1E11:{other:"000 milli\u00e1rd"},1E12:{other:"0 billi\u00f3"},1E13:{other:"00 billi\u00f3"},1E14:{other:"000 billi\u00f3"}}};goog.i18n.CompactNumberFormatSymbols_hu_HU=goog.i18n.CompactNumberFormatSymbols_hu; +goog.i18n.CompactNumberFormatSymbols_id={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"}, +1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};goog.i18n.CompactNumberFormatSymbols_id_ID=goog.i18n.CompactNumberFormatSymbols_id; +goog.i18n.CompactNumberFormatSymbols_in={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"}, +1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}}; +goog.i18n.CompactNumberFormatSymbols_is={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u00fe."},1E4:{other:"00\u00a0\u00fe."},1E5:{other:"000\u00a0\u00fe."},1E6:{other:"0\u00a0m."},1E7:{other:"00\u00a0m."},1E8:{other:"000\u00a0m."},1E9:{other:"0\u00a0ma."},1E10:{other:"00\u00a0ma."},1E11:{other:"000\u00a0ma."},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u00fe\u00fasund"},1E4:{other:"00 \u00fe\u00fasund"},1E5:{other:"000 \u00fe\u00fasund"}, +1E6:{other:"0 millj\u00f3nir"},1E7:{other:"00 millj\u00f3nir"},1E8:{other:"000 millj\u00f3nir"},1E9:{other:"0 milljar\u00f0ar"},1E10:{other:"00 milljar\u00f0ar"},1E11:{other:"000 milljar\u00f0ar"},1E12:{other:"0 billj\u00f3nir"},1E13:{other:"00 billj\u00f3nir"},1E14:{other:"000 billj\u00f3nir"}}};goog.i18n.CompactNumberFormatSymbols_is_IS=goog.i18n.CompactNumberFormatSymbols_is; +goog.i18n.CompactNumberFormatSymbols_it={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mln"},1E7:{other:"00\u00a0Mln"},1E8:{other:"000\u00a0Mln"},1E9:{other:"0\u00a0Mld"},1E10:{other:"00\u00a0Mld"},1E11:{other:"000\u00a0Mld"},1E12:{other:"0\u00a0Bln"},1E13:{other:"00\u00a0Bln"},1E14:{other:"000\u00a0Bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 migliaia"},1E4:{other:"00 migliaia"},1E5:{other:"000 migliaia"},1E6:{other:"0 milioni"},1E7:{other:"00 milioni"}, +1E8:{other:"000 milioni"},1E9:{other:"0 miliardi"},1E10:{other:"00 miliardi"},1E11:{other:"000 miliardi"},1E12:{other:"0 bilioni"},1E13:{other:"00 bilioni"},1E14:{other:"000 bilioni"}}};goog.i18n.CompactNumberFormatSymbols_it_IT=goog.i18n.CompactNumberFormatSymbols_it;goog.i18n.CompactNumberFormatSymbols_it_SM=goog.i18n.CompactNumberFormatSymbols_it; +goog.i18n.CompactNumberFormatSymbols_iw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"}, +1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"}, +1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}}; +goog.i18n.CompactNumberFormatSymbols_ja={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"}, +1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_ja_JP=goog.i18n.CompactNumberFormatSymbols_ja; +goog.i18n.CompactNumberFormatSymbols_kn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E4:{other:"00 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E5:{other:"000 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E6:{other:"0 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"}, +1E7:{other:"00 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E8:{other:"000 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E9:{other:"0 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E10:{other:"00 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E11:{other:"000 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E12:{other:"0 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E13:{other:"00 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E14:{other:"000 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"}}}; +goog.i18n.CompactNumberFormatSymbols_kn_IN=goog.i18n.CompactNumberFormatSymbols_kn; +goog.i18n.CompactNumberFormatSymbols_ko={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"}, +1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}}};goog.i18n.CompactNumberFormatSymbols_ko_KR=goog.i18n.CompactNumberFormatSymbols_ko; +goog.i18n.CompactNumberFormatSymbols_ln={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_ln_CD=goog.i18n.CompactNumberFormatSymbols_ln; +goog.i18n.CompactNumberFormatSymbols_lt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0G"},1E10:{other:"00\u00a0G"},1E11:{other:"000\u00a0G"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bkstan\u010di\u0173"},1E4:{other:"00 t\u016bkstan\u010di\u0173"},1E5:{other:"000 t\u016bkstan\u010di\u0173"}, +1E6:{other:"0 milijon\u0173"},1E7:{other:"00 milijon\u0173"},1E8:{other:"000 milijon\u0173"},1E9:{other:"0 milijard\u0173"},1E10:{other:"00 milijard\u0173"},1E11:{other:"000 milijard\u0173"},1E12:{other:"0 trilijon\u0173"},1E13:{other:"00 trilijon\u0173"},1E14:{other:"000 trilijon\u0173"}}};goog.i18n.CompactNumberFormatSymbols_lt_LT=goog.i18n.CompactNumberFormatSymbols_lt; +goog.i18n.CompactNumberFormatSymbols_lv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t\u016bkst."},1E4:{other:"00\u00a0t\u016bkst."},1E5:{other:"000\u00a0t\u016bkst."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0trilj."},1E13:{other:"00\u00a0trilj."},1E14:{other:"000\u00a0trilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bksto\u0161i"},1E4:{other:"00 t\u016bksto\u0161i"}, +1E5:{other:"000 t\u016bksto\u0161i"},1E6:{other:"0 miljoni"},1E7:{other:"00 miljoni"},1E8:{other:"000 miljoni"},1E9:{other:"0 miljardi"},1E10:{other:"00 miljardi"},1E11:{other:"000 miljardi"},1E12:{other:"0 trilj."},1E13:{other:"00 trilj."},1E14:{other:"000 trilj."}}};goog.i18n.CompactNumberFormatSymbols_lv_LV=goog.i18n.CompactNumberFormatSymbols_lv; +goog.i18n.CompactNumberFormatSymbols_ml={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E4:{other:"00 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E5:{other:"000 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E6:{other:"0 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"}, +1E7:{other:"00 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E8:{other:"000 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E9:{other:"0 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E10:{other:"00 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E11:{other:"000 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E12:{other:"0 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E13:{other:"00 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E14:{other:"000 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"}}}; +goog.i18n.CompactNumberFormatSymbols_ml_IN=goog.i18n.CompactNumberFormatSymbols_ml; +goog.i18n.CompactNumberFormatSymbols_mr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093e\u0930"},1E5:{other:"000 \u0939\u091c\u093e\u0930"},1E6:{other:"0 \u0926\u0936\u0932\u0915\u094d\u0937"}, +1E7:{other:"00 \u0926\u0936\u0932\u0915\u094d\u0937"},1E8:{other:"000 \u0926\u0936\u0932\u0915\u094d\u0937"},1E9:{other:"0 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E10:{other:"00 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E11:{other:"000 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E12:{other:"0 \u0926\u0939\u093e \u0916\u0930\u092c"},1E13:{other:"00 \u0926\u0939\u093e \u0916\u0930\u092c"},1E14:{other:"000 \u0926\u0939\u093e \u0916\u0930\u092c"}}}; +goog.i18n.CompactNumberFormatSymbols_mr_IN=goog.i18n.CompactNumberFormatSymbols_mr; +goog.i18n.CompactNumberFormatSymbols_ms={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0J"},1E7:{other:"00J"},1E8:{other:"000J"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},1E8:{other:"000 juta"},1E9:{other:"0 bilion"},1E10:{other:"00 bilion"}, +1E11:{other:"000 bilion"},1E12:{other:"0 trilion"},1E13:{other:"00 trilion"},1E14:{other:"000 trilion"}}};goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY=goog.i18n.CompactNumberFormatSymbols_ms;goog.i18n.CompactNumberFormatSymbols_mt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}}; +goog.i18n.CompactNumberFormatSymbols_mt_MT=goog.i18n.CompactNumberFormatSymbols_mt; +goog.i18n.CompactNumberFormatSymbols_nb={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_nb_NO=goog.i18n.CompactNumberFormatSymbols_nb; +goog.i18n.CompactNumberFormatSymbols_nl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0\u00a0mln."},1E7:{other:"00\u00a0mln."},1E8:{other:"000\u00a0mln."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bln."},1E13:{other:"00\u00a0bln."},1E14:{other:"000\u00a0bln."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duizend"},1E4:{other:"00 duizend"},1E5:{other:"000 duizend"},1E6:{other:"0 miljoen"}, +1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_nl_NL=goog.i18n.CompactNumberFormatSymbols_nl; +goog.i18n.CompactNumberFormatSymbols_no={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_or={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}}; +goog.i18n.CompactNumberFormatSymbols_or_IN=goog.i18n.CompactNumberFormatSymbols_or; +goog.i18n.CompactNumberFormatSymbols_pl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tys."},1E4:{other:"00\u00a0tys."},1E5:{other:"000\u00a0tys."},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0bln"},1E13:{other:"00\u00a0bln"},1E14:{other:"000\u00a0bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tysi\u0105ca"},1E4:{other:"00 tysi\u0105ca"},1E5:{other:"000 tysi\u0105ca"}, +1E6:{other:"0 miliona"},1E7:{other:"00 miliona"},1E8:{other:"000 miliona"},1E9:{other:"0 miliarda"},1E10:{other:"00 miliarda"},1E11:{other:"000 miliarda"},1E12:{other:"0 biliona"},1E13:{other:"00 biliona"},1E14:{other:"000 biliona"}}};goog.i18n.CompactNumberFormatSymbols_pl_PL=goog.i18n.CompactNumberFormatSymbols_pl; +goog.i18n.CompactNumberFormatSymbols_pt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0mi"},1E7:{other:"00\u00a0mi"},1E8:{other:"000\u00a0mi"},1E9:{other:"0\u00a0bi"},1E10:{other:"00\u00a0bi"},1E11:{other:"000\u00a0bi"},1E12:{other:"0\u00a0tri"},1E13:{other:"00\u00a0tri"},1E14:{other:"000\u00a0tri"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"}, +1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 bilh\u00f5es"},1E10:{other:"00 bilh\u00f5es"},1E11:{other:"000 bilh\u00f5es"},1E12:{other:"0 trilh\u00f5es"},1E13:{other:"00 trilh\u00f5es"},1E14:{other:"000 trilh\u00f5es"}}};goog.i18n.CompactNumberFormatSymbols_pt_BR=goog.i18n.CompactNumberFormatSymbols_pt; +goog.i18n.CompactNumberFormatSymbols_pt_PT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0MM"},1E10:{other:"00\u00a0MM"},1E11:{other:"000\u00a0MM"},1E12:{other:"0\u00a0Bi"},1E13:{other:"00\u00a0Bi"},1E14:{other:"000\u00a0Bi"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"}, +1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 mil milh\u00f5es"},1E10:{other:"00 mil milh\u00f5es"},1E11:{other:"000 mil milh\u00f5es"},1E12:{other:"0 bili\u00f5es"},1E13:{other:"00 bili\u00f5es"},1E14:{other:"000 bili\u00f5es"}}}; +goog.i18n.CompactNumberFormatSymbols_ro={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 de mii"},1E4:{other:"00 de mii"},1E5:{other:"000 de mii"},1E6:{other:"0 de milioane"}, +1E7:{other:"00 de milioane"},1E8:{other:"000 de milioane"},1E9:{other:"0 de miliarde"},1E10:{other:"00 de miliarde"},1E11:{other:"000 de miliarde"},1E12:{other:"0 de trilioane"},1E13:{other:"00 de trilioane"},1E14:{other:"000 de trilioane"}}};goog.i18n.CompactNumberFormatSymbols_ro_RO=goog.i18n.CompactNumberFormatSymbols_ro; +goog.i18n.CompactNumberFormatSymbols_ru={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u044b\u0441."},1E4:{other:"00\u00a0\u0442\u044b\u0441."},1E5:{other:"000\u00a0\u0442\u044b\u0441."},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"}, +1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u044b\u0441\u044f\u0447\u0438"},1E4:{other:"00 \u0442\u044b\u0441\u044f\u0447\u0438"},1E5:{other:"000 \u0442\u044b\u0441\u044f\u0447\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"}, +1E10:{other:"00 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_ru_RU=goog.i18n.CompactNumberFormatSymbols_ru; +goog.i18n.CompactNumberFormatSymbols_sk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tis\u00edc"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"}, +1E6:{other:"0 mili\u00f3nov"},1E7:{other:"00 mili\u00f3nov"},1E8:{other:"000 mili\u00f3nov"},1E9:{other:"0 miliard"},1E10:{other:"00 mili\u00e1rd"},1E11:{other:"000 mili\u00e1rd"},1E12:{other:"0 bili\u00f3nov"},1E13:{other:"00 bili\u00f3nov"},1E14:{other:"000 bili\u00f3nov"}}};goog.i18n.CompactNumberFormatSymbols_sk_SK=goog.i18n.CompactNumberFormatSymbols_sk; +goog.i18n.CompactNumberFormatSymbols_sl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mio."},1E7:{other:"00\u00a0mio."},1E8:{other:"000\u00a0mio."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tiso\u010d"},1E4:{other:"00 tiso\u010d"},1E5:{other:"000 tiso\u010d"}, +1E6:{other:"0 milijonov"},1E7:{other:"00 milijonov"},1E8:{other:"000 milijonov"},1E9:{other:"0 milijard"},1E10:{other:"00 milijard"},1E11:{other:"000 milijard"},1E12:{other:"0 bilijonov"},1E13:{other:"00 bilijonov"},1E14:{other:"000 bilijonov"}}};goog.i18n.CompactNumberFormatSymbols_sl_SI=goog.i18n.CompactNumberFormatSymbols_sl; +goog.i18n.CompactNumberFormatSymbols_sq={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_sq_AL=goog.i18n.CompactNumberFormatSymbols_sq; +goog.i18n.CompactNumberFormatSymbols_sr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0\u0445\u0438\u0459"},1E5:{other:"000\u00a0\u0445\u0438\u0459"},1E6:{other:"0\u00a0\u043c\u0438\u043b"},1E7:{other:"00\u00a0\u043c\u0438\u043b"},1E8:{other:"000\u00a0\u043c\u0438\u043b"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0431\u0438\u043b"},1E13:{other:"00\u00a0\u0431\u0438\u043b"}, +1E14:{other:"000\u00a0\u0431\u0438\u043b"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u0459\u0430\u0434\u0430"},1E4:{other:"00 \u0445\u0438\u0459\u0430\u0434\u0430"},1E5:{other:"000 \u0445\u0438\u0459\u0430\u0434\u0430"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"}, +1E11:{other:"000 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS=goog.i18n.CompactNumberFormatSymbols_sr; +goog.i18n.CompactNumberFormatSymbols_sv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tn"},1E4:{other:"00\u00a0tn"},1E5:{other:"000\u00a0tn"},1E6:{other:"0\u00a0mn"},1E7:{other:"00\u00a0mn"},1E8:{other:"000\u00a0mn"},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 miljoner"}, +1E7:{other:"00 miljoner"},1E8:{other:"000 miljoner"},1E9:{other:"0 miljarder"},1E10:{other:"00 miljarder"},1E11:{other:"000 miljarder"},1E12:{other:"0 biljoner"},1E13:{other:"00 biljoner"},1E14:{other:"000 biljoner"}}};goog.i18n.CompactNumberFormatSymbols_sv_SE=goog.i18n.CompactNumberFormatSymbols_sv; +goog.i18n.CompactNumberFormatSymbols_sw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"elfu\u00a00"},1E4:{other:"elfu\u00a000"},1E5:{other:"laki0"},1E6:{other:"M0"},1E7:{other:"M00"},1E8:{other:"M000"},1E9:{other:"B0"},1E10:{other:"B00"},1E11:{other:"B000"},1E12:{other:"T0"},1E13:{other:"T00"},1E14:{other:"T000"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"Elfu 0"},1E4:{other:"Elfu 00"},1E5:{other:"Elfu 000"},1E6:{other:"Milioni 0"},1E7:{other:"Milioni 00"},1E8:{other:"Milioni 000"},1E9:{other:"Bilioni 0"}, +1E10:{other:"Bilioni 00"},1E11:{other:"Bilioni 000"},1E12:{other:"Trilioni 0"},1E13:{other:"Trilioni 00"},1E14:{other:"Trilioni 000"}}};goog.i18n.CompactNumberFormatSymbols_sw_TZ=goog.i18n.CompactNumberFormatSymbols_sw; +goog.i18n.CompactNumberFormatSymbols_ta={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E4:{other:"00 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E5:{other:"000 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E6:{other:"0 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}, +1E7:{other:"00 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E8:{other:"000 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E9:{other:"0 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E10:{other:"00 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E11:{other:"000 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E12:{other:"0 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E13:{other:"00 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}, +1E14:{other:"000 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}}};goog.i18n.CompactNumberFormatSymbols_ta_IN=goog.i18n.CompactNumberFormatSymbols_ta; +goog.i18n.CompactNumberFormatSymbols_te={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0c35\u0c47\u0c32\u0c41"},1E4:{other:"00 \u0c35\u0c47\u0c32\u0c41"},1E5:{other:"000 \u0c35\u0c47\u0c32\u0c41"},1E6:{other:"0 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}, +1E7:{other:"00 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E8:{other:"000 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E9:{other:"0 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E10:{other:"00 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E11:{other:"000 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E12:{other:"0 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E13:{other:"00 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E14:{other:"000 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}}}; +goog.i18n.CompactNumberFormatSymbols_te_IN=goog.i18n.CompactNumberFormatSymbols_te; +goog.i18n.CompactNumberFormatSymbols_th={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0e1e."},1E4:{other:"0\u00a0\u0e21."},1E5:{other:"0\u00a0\u0e2a."},1E6:{other:"0\u00a0\u0e25."},1E7:{other:"00\u00a0\u0e25."},1E8:{other:"000\u00a0\u0e25."},1E9:{other:"0\u00a0\u0e1e.\u0e25."},1E10:{other:"0\u00a0\u0e21.\u0e25."},1E11:{other:"0\u00a0\u0e2a.\u0e25."},1E12:{other:"0\u00a0\u0e25.\u0e25."},1E13:{other:"00\u00a0\u0e25.\u0e25."},1E14:{other:"000\u00a0\u0e25.\u0e25."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0e1e\u0e31\u0e19"}, +1E4:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19"},1E5:{other:"0 \u0e41\u0e2a\u0e19"},1E6:{other:"0 \u0e25\u0e49\u0e32\u0e19"},1E7:{other:"00 \u0e25\u0e49\u0e32\u0e19"},1E8:{other:"000 \u0e25\u0e49\u0e32\u0e19"},1E9:{other:"0 \u0e1e\u0e31\u0e19\u0e25\u0e49\u0e32\u0e19"},1E10:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19\u0e25\u0e49\u0e32\u0e19"},1E11:{other:"0 \u0e41\u0e2a\u0e19\u0e25\u0e49\u0e32\u0e19"},1E12:{other:"0 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},1E13:{other:"00 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}, +1E14:{other:"000 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}}};goog.i18n.CompactNumberFormatSymbols_th_TH=goog.i18n.CompactNumberFormatSymbols_th; +goog.i18n.CompactNumberFormatSymbols_tl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"}, +1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}}; +goog.i18n.CompactNumberFormatSymbols_tr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0B"},1E5:{other:"000\u00a0B"},1E6:{other:"0\u00a0Mn"},1E7:{other:"00\u00a0Mn"},1E8:{other:"000\u00a0Mn"},1E9:{other:"0\u00a0Mr"},1E10:{other:"00\u00a0Mr"},1E11:{other:"000\u00a0Mr"},1E12:{other:"0\u00a0Tn"},1E13:{other:"00\u00a0Tn"},1E14:{other:"000\u00a0Tn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 bin"},1E4:{other:"00 bin"},1E5:{other:"000 bin"},1E6:{other:"0 milyon"},1E7:{other:"00 milyon"}, +1E8:{other:"000 milyon"},1E9:{other:"0 milyar"},1E10:{other:"00 milyar"},1E11:{other:"000 milyar"},1E12:{other:"0 trilyon"},1E13:{other:"00 trilyon"},1E14:{other:"000 trilyon"}}};goog.i18n.CompactNumberFormatSymbols_tr_TR=goog.i18n.CompactNumberFormatSymbols_tr; +goog.i18n.CompactNumberFormatSymbols_uk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u0438\u0441"},1E4:{other:"00\u00a0\u0442\u0438\u0441"},1E5:{other:"000\u00a0\u0442\u0438\u0441"},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"}, +1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u0438\u0441\u044f\u0447\u0456"},1E4:{other:"00 \u0442\u0438\u0441\u044f\u0447\u0456"},1E5:{other:"000 \u0442\u0438\u0441\u044f\u0447\u0456"},1E6:{other:"0 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"}, +1E10:{other:"00 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_uk_UA=goog.i18n.CompactNumberFormatSymbols_uk; +goog.i18n.CompactNumberFormatSymbols_ur={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u06c1\u0632\u0627\u0631"},1E4:{other:"00\u00a0\u06c1\u0632\u0627\u0631"},1E5:{other:"0\u00a0\u0644\u0627\u06a9\u06be"},1E6:{other:"00\u00a0\u0644\u0627\u06a9\u06be"},1E7:{other:"0\u00a0\u06a9\u0631\u0648\u0691"},1E8:{other:"00\u00a0\u06a9\u0631\u0648\u0691"},1E9:{other:"0\u00a0\u0627\u0631\u0628"},1E10:{other:"00\u00a0\u0627\u0631\u0628"},1E11:{other:"0\u00a0\u06a9\u06be\u0631\u0628"},1E12:{other:"00\u00a0\u06a9\u06be\u0631\u0628"}, +1E13:{other:"000\u00a0\u06a9\u06be\u0631\u0628"},1E14:{other:"0000\u00a0\u06a9\u06be\u0631\u0628"}}};goog.i18n.CompactNumberFormatSymbols_ur_PK=goog.i18n.CompactNumberFormatSymbols_ur; +goog.i18n.CompactNumberFormatSymbols_vi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0N"},1E4:{other:"00\u00a0N"},1E5:{other:"000\u00a0N"},1E6:{other:"0\u00a0Tr"},1E7:{other:"00\u00a0Tr"},1E8:{other:"000\u00a0Tr"},1E9:{other:"0\u00a0T"},1E10:{other:"00\u00a0T"},1E11:{other:"000\u00a0T"},1E12:{other:"0\u00a0NT"},1E13:{other:"00\u00a0NT"},1E14:{other:"000\u00a0NT"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ngh\u00ecn"},1E4:{other:"00 ngh\u00ecn"},1E5:{other:"000 ngh\u00ecn"},1E6:{other:"0 tri\u1ec7u"}, +1E7:{other:"00 tri\u1ec7u"},1E8:{other:"000 tri\u1ec7u"},1E9:{other:"0 t\u1ef7"},1E10:{other:"00 t\u1ef7"},1E11:{other:"000 t\u1ef7"},1E12:{other:"0 ngh\u00ecn t\u1ef7"},1E13:{other:"00 ngh\u00ecn t\u1ef7"},1E14:{other:"000 ngh\u00ecn t\u1ef7"}}};goog.i18n.CompactNumberFormatSymbols_vi_VN=goog.i18n.CompactNumberFormatSymbols_vi; +goog.i18n.CompactNumberFormatSymbols_zh={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"}, +1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}}};goog.i18n.CompactNumberFormatSymbols_zh_CN=goog.i18n.CompactNumberFormatSymbols_zh; +goog.i18n.CompactNumberFormatSymbols_zh_HK={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"}, +1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN=goog.i18n.CompactNumberFormatSymbols_zh; +goog.i18n.CompactNumberFormatSymbols_zh_TW={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"}, +1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}}; +goog.i18n.CompactNumberFormatSymbols_zu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 inkulungwane"},1E4:{other:"00 inkulungwane"},1E5:{other:"000 inkulungwane"},1E6:{other:"0 isigidi"},1E7:{other:"00 isigidi"},1E8:{other:"000 isigidi"},1E9:{other:"0 isigidi sezigidi"}, +1E10:{other:"00 isigidi sezigidi"},1E11:{other:"000 isigidi sezigidi"},1E12:{other:"0 isigidintathu"},1E13:{other:"00 isigidintathu"},1E14:{other:"000 isigidintathu"}}};goog.i18n.CompactNumberFormatSymbols_zu_ZA=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;"af"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af); +if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar); +if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg; +"bn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn);if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca); +if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr; +"cs"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs;"cy"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da); +if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el); +if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_AU; +if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_GB;if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_SG;if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es; +if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et; +"eu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu);if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi); +if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi;"fil"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr); +if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr_CA;if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr; +if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr; +if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl);if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl; +"gsw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu; +"haw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he; +"hi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi);if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu); +if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu;"id"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is); +if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is;"it"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it; +"iw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja);if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn; +"ko"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko;"ln"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt); +if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv);if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml); +if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr;"ms"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms); +if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb); +if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or); +if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt); +if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro; +"ru"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru;"sk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl); +if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq);if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr); +if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv;"sw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw); +if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te); +if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr); +if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur); +if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur;"vi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh); +if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_HK;if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_TW; +"zu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.currency={};goog.i18n.currency.PRECISION_MASK_=7;goog.i18n.currency.POSITION_FLAG_=16;goog.i18n.currency.SPACE_FLAG_=32;goog.i18n.currency.tier2Enabled_=!1;goog.i18n.currency.addTier2Support=function(){if(!goog.i18n.currency.tier2Enabled_){for(var a in goog.i18n.currency.CurrencyInfoTier2)goog.i18n.currency.CurrencyInfo[a]=goog.i18n.currency.CurrencyInfoTier2[a];goog.i18n.currency.tier2Enabled_=!0}}; +goog.i18n.currency.getGlobalCurrencyPattern=function(a){var b=goog.i18n.currency.CurrencyInfo[a],c=b[0];return a==b[1]?goog.i18n.currency.getCurrencyPattern_(c,b[1]):a+" "+goog.i18n.currency.getCurrencyPattern_(c,b[1])};goog.i18n.currency.getGlobalCurrencySign=function(a){var b=goog.i18n.currency.CurrencyInfo[a];return a==b[1]?a:a+" "+b[1]};goog.i18n.currency.getLocalCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[1])}; +goog.i18n.currency.getLocalCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][1]};goog.i18n.currency.getPortableCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[2])};goog.i18n.currency.getPortableCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][2]};goog.i18n.currency.isPrefixSignPosition=function(a){return 0==(goog.i18n.currency.CurrencyInfo[a][0]&goog.i18n.currency.POSITION_FLAG_)}; +goog.i18n.currency.getCurrencyPattern_=function(a,b){var c=["#,##0"],d=a&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}0==(a&goog.i18n.currency.POSITION_FLAG_)?(c.unshift(a&goog.i18n.currency.SPACE_FLAG_?"' ":"'"),c.unshift(b),c.unshift("'")):c.push(a&goog.i18n.currency.SPACE_FLAG_?" '":"'",b,"'");return c.join("")}; +goog.i18n.currency.adjustPrecision=function(a,b){var c=["0"],d=goog.i18n.currency.CurrencyInfo[b],d=d[0]&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}return a.replace(/0.00/g,c.join(""))}; +goog.i18n.currency.CurrencyInfo={AED:[2,"dh","\u062f.\u0625.","DH"],ALL:[0,"Lek","Lek"],AUD:[2,"$","AU$"],BDT:[2,"\u09f3","Tk"],BGN:[2,"lev","lev"],BRL:[2,"R$","R$"],CAD:[2,"$","C$"],CDF:[2,"FrCD","CDF"],CHF:[2,"CHF","CHF"],CLP:[0,"$","CL$"],CNY:[2,"\u00a5","RMB\u00a5"],COP:[0,"$","COL$"],CRC:[0,"\u20a1","CR\u20a1"],CZK:[50,"K\u010d","K\u010d"],DKK:[18,"kr","kr"],DOP:[2,"$","RD$"],EGP:[2,"\u00a3","LE"],ETB:[2,"Birr","Birr"],EUR:[2,"\u20ac","\u20ac"],GBP:[2,"\u00a3","GB\u00a3"],HKD:[2,"$","HK$"],HRK:[2, +"kn","kn"],HUF:[0,"Ft","Ft"],IDR:[0,"Rp","Rp"],ILS:[2,"\u20aa","IL\u20aa"],INR:[2,"\u20b9","Rs"],IRR:[0,"Rial","IRR"],ISK:[0,"kr","kr"],JMD:[2,"$","JA$"],JPY:[0,"\u00a5","JP\u00a5"],KRW:[0,"\u20a9","KR\u20a9"],LKR:[2,"Rs","SLRs"],LTL:[2,"Lt","Lt"],LVL:[2,"Ls","Ls"],MNT:[0,"\u20ae","MN\u20ae"],MXN:[2,"$","Mex$"],MYR:[2,"RM","RM"],NOK:[50,"kr","NOkr"],PAB:[2,"B/.","B/."],PEN:[2,"S/.","S/."],PHP:[2,"\u20b1","Php"],PKR:[0,"Rs","PKRs."],PLN:[50,"z\u0142","z\u0142"],RON:[2,"RON","RON"],RSD:[0,"din","RSD"], +RUB:[50,"\u0440\u0443\u0431.","\u0440\u0443\u0431."],SAR:[2,"Rial","Rial"],SEK:[2,"kr","kr"],SGD:[2,"$","S$"],THB:[2,"\u0e3f","THB"],TRY:[2,"TL","YTL"],TWD:[2,"NT$","NT$"],TZS:[0,"TSh","TSh"],UAH:[2,"\u20b4","UAH"],USD:[2,"$","US$"],UYU:[2,"$","$U"],VND:[0,"\u20ab","VN\u20ab"],YER:[0,"Rial","Rial"],ZAR:[2,"R","ZAR"]}; +goog.i18n.currency.CurrencyInfoTier2={AFN:[48,"Af.","AFN"],AMD:[0,"Dram","dram"],AOA:[2,"Kz","Kz"],ARS:[2,"$","AR$"],AWG:[2,"Afl.","Afl."],AZN:[2,"man.","man."],BAM:[2,"KM","KM"],BBD:[2,"$","Bds$"],BHD:[3,"din","din"],BIF:[0,"FBu","FBu"],BMD:[2,"$","BD$"],BND:[2,"$","B$"],BOB:[2,"Bs","Bs"],BSD:[2,"$","BS$"],BTN:[2,"Nu.","Nu."],BWP:[2,"P","pula"],BYR:[0,"BYR","BYR"],BZD:[2,"$","BZ$"],CUC:[1,"$","CUC$"],CUP:[2,"$","CU$"],CVE:[2,"CVE","Esc"],DJF:[0,"Fdj","Fdj"],DZD:[2,"din","din"],ERN:[2,"Nfk","Nfk"], +FJD:[2,"$","FJ$"],FKP:[2,"\u00a3","FK\u00a3"],GEL:[2,"GEL","GEL"],GHS:[2,"GHS","GHS"],GIP:[2,"\u00a3","GI\u00a3"],GMD:[2,"GMD","GMD"],GNF:[0,"FG","FG"],GTQ:[2,"Q","GTQ"],GYD:[0,"$","GY$"],HNL:[2,"L","HNL"],HTG:[2,"HTG","HTG"],IQD:[0,"din","IQD"],JOD:[3,"din","JOD"],KES:[2,"Ksh","Ksh"],KGS:[2,"KGS","KGS"],KHR:[2,"Riel","KHR"],KMF:[0,"CF","KMF"],KPW:[0,"\u20a9KP","KPW"],KWD:[3,"din","KWD"],KYD:[2,"$","KY$"],KZT:[2,"\u20b8","KZT"],LAK:[0,"\u20ad","\u20ad"],LBP:[0,"L\u00a3","LBP"],LRD:[2,"$","L$"],LSL:[2, +"LSL","LSL"],LYD:[3,"din","LD"],MAD:[2,"dh","MAD"],MDL:[2,"MDL","MDL"],MGA:[0,"Ar","MGA"],MKD:[2,"din","MKD"],MMK:[0,"K","MMK"],MOP:[2,"MOP","MOP$"],MRO:[0,"MRO","MRO"],MUR:[0,"MURs","MURs"],MWK:[2,"MWK","MWK"],MZN:[2,"MTn","MTn"],NAD:[2,"$","N$"],NGN:[2,"\u20a6","NG\u20a6"],NIO:[2,"C$","C$"],NPR:[2,"Rs","NPRs"],NZD:[2,"$","NZ$"],OMR:[3,"Rial","OMR"],PGK:[2,"PGK","PGK"],PYG:[0,"Gs","PYG"],QAR:[2,"Rial","QR"],RWF:[0,"RF","RF"],SBD:[2,"$","SI$"],SCR:[2,"SCR","SCR"],SDG:[2,"SDG","SDG"],SHP:[2,"\u00a3", +"SH\u00a3"],SLL:[0,"SLL","SLL"],SOS:[0,"SOS","SOS"],SRD:[2,"$","SR$"],STD:[0,"Db","Db"],SYP:[0,"\u00a3","SY\u00a3"],SZL:[2,"SZL","SZL"],TJS:[2,"Som","TJS"],TND:[3,"din","DT"],TOP:[2,"T$","T$"],TTD:[2,"$","TT$"],UGX:[0,"UGX","UGX"],UZS:[0,"so\u02bcm","UZS"],VEF:[2,"Bs","Bs"],VUV:[0,"VUV","VUV"],WST:[2,"WST","WST"],XAF:[0,"FCFA","FCFA"],XCD:[2,"$","EC$"],XOF:[0,"CFA","CFA"],XPF:[0,"FCFP","FCFP"],ZMK:[0,"ZMK","ZMK"]};goog.i18n.NumberFormatSymbols_af={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_af_ZA=goog.i18n.NumberFormatSymbols_af; +goog.i18n.NumberFormatSymbols_am={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ETB"};goog.i18n.NumberFormatSymbols_am_ET=goog.i18n.NumberFormatSymbols_am; +goog.i18n.NumberFormatSymbols_ar={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u0660",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0627\u0633",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0644\u064a\u0633\u00a0\u0631\u0642\u0645",DECIMAL_PATTERN:"#0.###;#0.###-",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#0.00;\u00a4\u00a0#0.00-",DEF_CURRENCY_CODE:"EGP"};goog.i18n.NumberFormatSymbols_ar_001=goog.i18n.NumberFormatSymbols_ar; +goog.i18n.NumberFormatSymbols_ar_EG=goog.i18n.NumberFormatSymbols_ar;goog.i18n.NumberFormatSymbols_bg={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"BGN"};goog.i18n.NumberFormatSymbols_bg_BG=goog.i18n.NumberFormatSymbols_bg; +goog.i18n.NumberFormatSymbols_bn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u09e6",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u09b8\u0982\u0996\u09cd\u09af\u09be\u00a0\u09a8\u09be",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4;(#,##,##0.00\u00a4)",DEF_CURRENCY_CODE:"BDT"};goog.i18n.NumberFormatSymbols_bn_BD=goog.i18n.NumberFormatSymbols_bn; +goog.i18n.NumberFormatSymbols_br={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_br_FR=goog.i18n.NumberFormatSymbols_br; +goog.i18n.NumberFormatSymbols_ca={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_ca_AD=goog.i18n.NumberFormatSymbols_ca;goog.i18n.NumberFormatSymbols_ca_ES=goog.i18n.NumberFormatSymbols_ca; +goog.i18n.NumberFormatSymbols_chr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_chr_US=goog.i18n.NumberFormatSymbols_chr; +goog.i18n.NumberFormatSymbols_cs={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CZK"};goog.i18n.NumberFormatSymbols_cs_CZ=goog.i18n.NumberFormatSymbols_cs; +goog.i18n.NumberFormatSymbols_cy={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_cy_GB=goog.i18n.NumberFormatSymbols_cy; +goog.i18n.NumberFormatSymbols_da={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"DKK"};goog.i18n.NumberFormatSymbols_da_DK=goog.i18n.NumberFormatSymbols_da; +goog.i18n.NumberFormatSymbols_de={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_de_AT={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_de_BE=goog.i18n.NumberFormatSymbols_de; +goog.i18n.NumberFormatSymbols_de_CH={DECIMAL_SEP:".",GROUP_SEP:"'",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4-#,##0.00",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_de_DE=goog.i18n.NumberFormatSymbols_de;goog.i18n.NumberFormatSymbols_de_LU=goog.i18n.NumberFormatSymbols_de; +goog.i18n.NumberFormatSymbols_el={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"[#E0]",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_el_GR=goog.i18n.NumberFormatSymbols_el; +goog.i18n.NumberFormatSymbols_en={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_en_AS=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_AU={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"AUD"};goog.i18n.NumberFormatSymbols_en_Dsrt_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_FM=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_GB={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_en_GU=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_IE={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_en_IN={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_en_MH=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_MP=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_PR=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_PW=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_SG={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"SGD"}; +goog.i18n.NumberFormatSymbols_en_TC=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_UM=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VG=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VI=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_ZA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"}; +goog.i18n.NumberFormatSymbols_es={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_es_419={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"MXN"};goog.i18n.NumberFormatSymbols_es_EA=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_ES=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_IC=goog.i18n.NumberFormatSymbols_es; +goog.i18n.NumberFormatSymbols_et={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_et_EE=goog.i18n.NumberFormatSymbols_et; +goog.i18n.NumberFormatSymbols_eu={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%\u00a0#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_eu_ES=goog.i18n.NumberFormatSymbols_eu; +goog.i18n.NumberFormatSymbols_fa={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u06f0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d7\u06f1\u06f0^",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0646\u0627\u0639\u062f\u062f",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u200e\u00a4#,##0.00;\u200e(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"IRR"};goog.i18n.NumberFormatSymbols_fa_IR=goog.i18n.NumberFormatSymbols_fa; +goog.i18n.NumberFormatSymbols_fi={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"ep\u00e4luku",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fi_FI=goog.i18n.NumberFormatSymbols_fi; +goog.i18n.NumberFormatSymbols_fil={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};goog.i18n.NumberFormatSymbols_fil_PH=goog.i18n.NumberFormatSymbols_fil; +goog.i18n.NumberFormatSymbols_fr={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fr_BL=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_fr_CA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"CAD"};goog.i18n.NumberFormatSymbols_fr_FR=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_GF=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_fr_GP=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MC=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MF=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MQ=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_RE=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_YT=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_gl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_gl_ES=goog.i18n.NumberFormatSymbols_gl; +goog.i18n.NumberFormatSymbols_gsw={DECIMAL_SEP:".",GROUP_SEP:"\u2019",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_gsw_CH=goog.i18n.NumberFormatSymbols_gsw; +goog.i18n.NumberFormatSymbols_gu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_gu_IN=goog.i18n.NumberFormatSymbols_gu; +goog.i18n.NumberFormatSymbols_haw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_haw_US=goog.i18n.NumberFormatSymbols_haw; +goog.i18n.NumberFormatSymbols_he={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};goog.i18n.NumberFormatSymbols_he_IL=goog.i18n.NumberFormatSymbols_he; +goog.i18n.NumberFormatSymbols_hi={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_hi_IN=goog.i18n.NumberFormatSymbols_hi; +goog.i18n.NumberFormatSymbols_hr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HRK"};goog.i18n.NumberFormatSymbols_hr_HR=goog.i18n.NumberFormatSymbols_hr; +goog.i18n.NumberFormatSymbols_hu={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HUF"};goog.i18n.NumberFormatSymbols_hu_HU=goog.i18n.NumberFormatSymbols_hu; +goog.i18n.NumberFormatSymbols_id={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};goog.i18n.NumberFormatSymbols_id_ID=goog.i18n.NumberFormatSymbols_id; +goog.i18n.NumberFormatSymbols_in={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"}; +goog.i18n.NumberFormatSymbols_is={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ISK"};goog.i18n.NumberFormatSymbols_is_IS=goog.i18n.NumberFormatSymbols_is; +goog.i18n.NumberFormatSymbols_it={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_it_IT=goog.i18n.NumberFormatSymbols_it;goog.i18n.NumberFormatSymbols_it_SM=goog.i18n.NumberFormatSymbols_it; +goog.i18n.NumberFormatSymbols_iw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"}; +goog.i18n.NumberFormatSymbols_ja={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"JPY"};goog.i18n.NumberFormatSymbols_ja_JP=goog.i18n.NumberFormatSymbols_ja; +goog.i18n.NumberFormatSymbols_kn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0c88",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_kn_IN=goog.i18n.NumberFormatSymbols_kn; +goog.i18n.NumberFormatSymbols_ko={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"KRW"};goog.i18n.NumberFormatSymbols_ko_KR=goog.i18n.NumberFormatSymbols_ko; +goog.i18n.NumberFormatSymbols_ln={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CDF"};goog.i18n.NumberFormatSymbols_ln_CD=goog.i18n.NumberFormatSymbols_ln; +goog.i18n.NumberFormatSymbols_lt={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2013",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"LTL"};goog.i18n.NumberFormatSymbols_lt_LT=goog.i18n.NumberFormatSymbols_lt; +goog.i18n.NumberFormatSymbols_lv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"nav\u00a0skaitlis",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"LVL"};goog.i18n.NumberFormatSymbols_lv_LV=goog.i18n.NumberFormatSymbols_lv; +goog.i18n.NumberFormatSymbols_ml={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ml_IN=goog.i18n.NumberFormatSymbols_ml; +goog.i18n.NumberFormatSymbols_mr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u0966",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_mr_IN=goog.i18n.NumberFormatSymbols_mr; +goog.i18n.NumberFormatSymbols_ms={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"MYR"};goog.i18n.NumberFormatSymbols_ms_Latn_MY=goog.i18n.NumberFormatSymbols_ms; +goog.i18n.NumberFormatSymbols_mt={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_mt_MT=goog.i18n.NumberFormatSymbols_mt; +goog.i18n.NumberFormatSymbols_nb={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};goog.i18n.NumberFormatSymbols_nb_NO=goog.i18n.NumberFormatSymbols_nb; +goog.i18n.NumberFormatSymbols_nl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_nl_NL=goog.i18n.NumberFormatSymbols_nl; +goog.i18n.NumberFormatSymbols_no={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"}; +goog.i18n.NumberFormatSymbols_or={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_or_IN=goog.i18n.NumberFormatSymbols_or; +goog.i18n.NumberFormatSymbols_pl={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"PLN"};goog.i18n.NumberFormatSymbols_pl_PL=goog.i18n.NumberFormatSymbols_pl; +goog.i18n.NumberFormatSymbols_pt={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"BRL"};goog.i18n.NumberFormatSymbols_pt_BR=goog.i18n.NumberFormatSymbols_pt; +goog.i18n.NumberFormatSymbols_pt_PT={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_ro={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RON"};goog.i18n.NumberFormatSymbols_ro_RO=goog.i18n.NumberFormatSymbols_ro; +goog.i18n.NumberFormatSymbols_ru={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u043d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RUB"};goog.i18n.NumberFormatSymbols_ru_RU=goog.i18n.NumberFormatSymbols_ru; +goog.i18n.NumberFormatSymbols_sk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sk_SK=goog.i18n.NumberFormatSymbols_sk; +goog.i18n.NumberFormatSymbols_sl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sl_SI=goog.i18n.NumberFormatSymbols_sl; +goog.i18n.NumberFormatSymbols_sq={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"ALL"};goog.i18n.NumberFormatSymbols_sq_AL=goog.i18n.NumberFormatSymbols_sq; +goog.i18n.NumberFormatSymbols_sr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RSD"};goog.i18n.NumberFormatSymbols_sr_Cyrl_RS=goog.i18n.NumberFormatSymbols_sr; +goog.i18n.NumberFormatSymbols_sv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d710^",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u00a4\u00a4\u00a4",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"SEK"};goog.i18n.NumberFormatSymbols_sv_SE=goog.i18n.NumberFormatSymbols_sv; +goog.i18n.NumberFormatSymbols_sw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"TZS"};goog.i18n.NumberFormatSymbols_sw_TZ=goog.i18n.NumberFormatSymbols_sw; +goog.i18n.NumberFormatSymbols_ta={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ta_IN=goog.i18n.NumberFormatSymbols_ta; +goog.i18n.NumberFormatSymbols_te={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_te_IN=goog.i18n.NumberFormatSymbols_te; +goog.i18n.NumberFormatSymbols_th={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"THB"};goog.i18n.NumberFormatSymbols_th_TH=goog.i18n.NumberFormatSymbols_th; +goog.i18n.NumberFormatSymbols_tl={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"}; +goog.i18n.NumberFormatSymbols_tr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"TRY"};goog.i18n.NumberFormatSymbols_tr_TR=goog.i18n.NumberFormatSymbols_tr; +goog.i18n.NumberFormatSymbols_uk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0415",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u041d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"UAH"};goog.i18n.NumberFormatSymbols_uk_UA=goog.i18n.NumberFormatSymbols_uk; +goog.i18n.NumberFormatSymbols_ur={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"PKR"};goog.i18n.NumberFormatSymbols_ur_PK=goog.i18n.NumberFormatSymbols_ur; +goog.i18n.NumberFormatSymbols_vi={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"VND"};goog.i18n.NumberFormatSymbols_vi_VN=goog.i18n.NumberFormatSymbols_vi; +goog.i18n.NumberFormatSymbols_zh={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"CNY"};goog.i18n.NumberFormatSymbols_zh_CN=goog.i18n.NumberFormatSymbols_zh; +goog.i18n.NumberFormatSymbols_zh_HK={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"HKD"};goog.i18n.NumberFormatSymbols_zh_Hans_CN=goog.i18n.NumberFormatSymbols_zh; +goog.i18n.NumberFormatSymbols_zh_TW={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"TWD"}; +goog.i18n.NumberFormatSymbols_zu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"I-NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_zu_ZA=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +"af"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af);if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar); +if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg;"bn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn); +if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca);if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca; +if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr;"cs"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs; +"cy"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da);if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de); +if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de; +if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el);if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_AU;if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_GB; +if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_SG; +if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es; +if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et;"eu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu); +if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi);if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi; +"fil"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr);if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr_CA; +if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr; +if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl); +if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl;"gsw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu; +"haw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he;"hi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi); +if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu);if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu; +"id"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is);if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is; +"it"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;"iw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja); +if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn;"ko"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko; +"ln"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt);if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv); +if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml);if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr; +"ms"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms);if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb); +if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or); +if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt; +if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro;"ru"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru; +"sk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl);if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq); +if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr);if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv; +"sw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw);if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te); +if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr); +if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur);if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur; +"vi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_HK; +if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_TW;"zu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormat=function(a,b,c){this.intlCurrencyCode_=b||goog.i18n.NumberFormatSymbols.DEF_CURRENCY_CODE;this.currencyStyle_=c||goog.i18n.NumberFormat.CurrencyStyle.LOCAL;this.maximumIntegerDigits_=40;this.minimumIntegerDigits_=1;this.significantDigits_=0;this.maximumFractionDigits_=3;this.minExponentDigits_=this.minimumFractionDigits_=0;this.showTrailingZeros_=this.useSignForPositiveExponent_=!1;this.positiveSuffix_=this.positivePrefix_="";this.negativePrefix_="-";this.negativeSuffix_=""; +this.multiplier_=1;this.groupingSize_=3;this.useExponentialNotation_=this.decimalSeparatorAlwaysShown_=!1;this.compactStyle_=goog.i18n.NumberFormat.CompactStyle.NONE;this.baseFormattingNumber_=null;"number"==typeof a?this.applyStandardPattern_(a):this.applyPattern_(a)};goog.i18n.NumberFormat.Format={DECIMAL:1,SCIENTIFIC:2,PERCENT:3,CURRENCY:4,COMPACT_SHORT:5,COMPACT_LONG:6};goog.i18n.NumberFormat.CurrencyStyle={LOCAL:0,PORTABLE:1,GLOBAL:2};goog.i18n.NumberFormat.CompactStyle={NONE:0,SHORT:1,LONG:2}; +goog.i18n.NumberFormat.enforceAsciiDigits_=!1;goog.i18n.NumberFormat.setEnforceAsciiDigits=function(a){goog.i18n.NumberFormat.enforceAsciiDigits_=a};goog.i18n.NumberFormat.isEnforceAsciiDigits=function(){return goog.i18n.NumberFormat.enforceAsciiDigits_};goog.i18n.NumberFormat.prototype.setMinimumFractionDigits=function(a){if(0<this.significantDigits_&&0<a)throw Error("Can't combine significant digits and minimum fraction digits");this.minimumFractionDigits_=a}; +goog.i18n.NumberFormat.prototype.setMaximumFractionDigits=function(a){this.maximumFractionDigits_=a};goog.i18n.NumberFormat.prototype.setSignificantDigits=function(a){if(0<this.minimumFractionDigits_&&0<=a)throw Error("Can't combine significant digits and minimum fraction digits");this.significantDigits_=a}; +goog.i18n.NumberFormat.prototype.applyPattern_=function(a){a.replace(/ /g,"\u00a0");var b=[0];this.positivePrefix_=this.parseAffix_(a,b);var c=b[0];this.parseTrunk_(a,b);c=b[0]-c;this.positiveSuffix_=this.parseAffix_(a,b);b[0]<a.length&&a.charAt(b[0])==goog.i18n.NumberFormat.PATTERN_SEPARATOR_?(b[0]++,this.negativePrefix_=this.parseAffix_(a,b),b[0]+=c,this.negativeSuffix_=this.parseAffix_(a,b)):(this.negativePrefix_=this.positivePrefix_+this.negativePrefix_,this.negativeSuffix_+=this.positiveSuffix_)}; +goog.i18n.NumberFormat.prototype.applyStandardPattern_=function(a){switch(a){case goog.i18n.NumberFormat.Format.DECIMAL:this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);break;case goog.i18n.NumberFormat.Format.SCIENTIFIC:this.applyPattern_(goog.i18n.NumberFormatSymbols.SCIENTIFIC_PATTERN);break;case goog.i18n.NumberFormat.Format.PERCENT:this.applyPattern_(goog.i18n.NumberFormatSymbols.PERCENT_PATTERN);break;case goog.i18n.NumberFormat.Format.CURRENCY:this.applyPattern_(goog.i18n.currency.adjustPrecision(goog.i18n.NumberFormatSymbols.CURRENCY_PATTERN, +this.intlCurrencyCode_));break;case goog.i18n.NumberFormat.Format.COMPACT_SHORT:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.SHORT);break;case goog.i18n.NumberFormat.Format.COMPACT_LONG:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.LONG);break;default:throw Error("Unsupported pattern type.");}}; +goog.i18n.NumberFormat.prototype.applyCompactStyle_=function(a){this.compactStyle_=a;this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);this.setMinimumFractionDigits(0);this.setMaximumFractionDigits(2);this.setSignificantDigits(2)}; +goog.i18n.NumberFormat.prototype.parse=function(a,b){var c=b||[0];if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact numbers is unimplemented");var d=NaN;a=a.replace(/ /g,"\u00a0");var e=a.indexOf(this.positivePrefix_,c[0])==c[0],f=a.indexOf(this.negativePrefix_,c[0])==c[0];e&&f&&(this.positivePrefix_.length>this.negativePrefix_.length?f=!1:this.positivePrefix_.length<this.negativePrefix_.length&&(e=!1));e?c[0]+=this.positivePrefix_.length:f&&(c[0]+=this.negativePrefix_.length); +a.indexOf(goog.i18n.NumberFormatSymbols.INFINITY,c[0])==c[0]?(c[0]+=goog.i18n.NumberFormatSymbols.INFINITY.length,d=Infinity):d=this.parseNumber_(a,c);if(e){if(a.indexOf(this.positiveSuffix_,c[0])!=c[0])return NaN;c[0]+=this.positiveSuffix_.length}else if(f){if(a.indexOf(this.negativeSuffix_,c[0])!=c[0])return NaN;c[0]+=this.negativeSuffix_.length}return f?-d:d}; +goog.i18n.NumberFormat.prototype.parseNumber_=function(a,b){var c=!1,d=!1,e=!1,f=1,g=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,h=goog.i18n.NumberFormatSymbols.GROUP_SEP,k=goog.i18n.NumberFormatSymbols.EXP_SYMBOL;if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact style numbers is not implemented");for(var l="";b[0]<a.length;b[0]++){var m=a.charAt(b[0]),p=this.getDigit_(m);if(0<=p&&9>=p)l+=p,e=!0;else if(m==g.charAt(0)){if(c||d)break;l+=".";c=!0}else if(m== +h.charAt(0)&&("\u00a0"!=h.charAt(0)||b[0]+1<a.length&&0<=this.getDigit_(a.charAt(b[0]+1)))){if(c||d)break}else if(m==k.charAt(0)){if(d)break;l+="E";d=!0}else if("+"==m||"-"==m)l+=m;else if(m==goog.i18n.NumberFormatSymbols.PERCENT.charAt(0)){if(1!=f)break;f=100;if(e){b[0]++;break}}else if(m==goog.i18n.NumberFormatSymbols.PERMILL.charAt(0)){if(1!=f)break;f=1E3;if(e){b[0]++;break}}else break}return parseFloat(l)/f}; +goog.i18n.NumberFormat.prototype.format=function(a){if(isNaN(a))return goog.i18n.NumberFormatSymbols.NAN;var b=[],c=goog.isNull(this.baseFormattingNumber_)?a:this.baseFormattingNumber_,c=this.getUnitAfterRounding_(c,a);a/=Math.pow(10,c.divisorBase);b.push(c.prefix);var d=0>a||0==a&&0>1/a;b.push(d?this.negativePrefix_:this.positivePrefix_);isFinite(a)?(a*=d?-1:1,a*=this.multiplier_,this.useExponentialNotation_?this.subformatExponential_(a,b):this.subformatFixed_(a,this.minimumIntegerDigits_,b)):b.push(goog.i18n.NumberFormatSymbols.INFINITY); +b.push(d?this.negativeSuffix_:this.positiveSuffix_);b.push(c.suffix);return b.join("")};goog.i18n.NumberFormat.prototype.roundNumber_=function(a){var b=Math.pow(10,this.maximumFractionDigits_),c=0>=this.significantDigits_?Math.round(a*b):Math.floor(this.roundToSignificantDigits_(a*b,this.significantDigits_,this.maximumFractionDigits_));isFinite(c)?(a=Math.floor(c/b),b=Math.floor(c-a*b)):b=0;return{intValue:a,fracValue:b}}; +goog.i18n.NumberFormat.prototype.subformatFixed_=function(a,b,c){if(this.minimumFractionDigits_>this.maximumFractionDigits_)throw Error("Min value must be less than max value");a=this.roundNumber_(a);var d=Math.pow(10,this.maximumFractionDigits_),e=a.intValue,f=a.fracValue,g=0==e?0:this.intLog10_(e)+1,h=0<this.minimumFractionDigits_||0<f||this.showTrailingZeros_&&g<this.significantDigits_;a=this.minimumFractionDigits_;h&&(a=this.showTrailingZeros_&&0<this.significantDigits_?this.significantDigits_- +g:this.minimumFractionDigits_);for(var k="",g=e;1E20<g;)k="0"+k,g=Math.round(g/10);var k=g+k,l=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,m=goog.i18n.NumberFormatSymbols.GROUP_SEP,g=goog.i18n.NumberFormat.enforceAsciiDigits_?48:goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0),p=k.length;if(0<e||0<b){for(e=p;e<b;e++)c.push(String.fromCharCode(g));for(e=0;e<p;e++)c.push(String.fromCharCode(g+1*k.charAt(e))),1<p-e&&0<this.groupingSize_&&1==(p-e)%this.groupingSize_&&c.push(m)}else h||c.push(String.fromCharCode(g)); +(this.decimalSeparatorAlwaysShown_||h)&&c.push(l);b=""+(f+d);for(d=b.length;"0"==b.charAt(d-1)&&d>a+1;)d--;for(e=1;e<d;e++)c.push(String.fromCharCode(g+1*b.charAt(e)))}; +goog.i18n.NumberFormat.prototype.addExponentPart_=function(a,b){b.push(goog.i18n.NumberFormatSymbols.EXP_SYMBOL);0>a?(a=-a,b.push(goog.i18n.NumberFormatSymbols.MINUS_SIGN)):this.useSignForPositiveExponent_&&b.push(goog.i18n.NumberFormatSymbols.PLUS_SIGN);for(var c=""+a,d=goog.i18n.NumberFormat.enforceAsciiDigits_?"0":goog.i18n.NumberFormatSymbols.ZERO_DIGIT,e=c.length;e<this.minExponentDigits_;e++)b.push(d);b.push(c)}; +goog.i18n.NumberFormat.prototype.subformatExponential_=function(a,b){if(0==a)this.subformatFixed_(a,this.minimumIntegerDigits_,b),this.addExponentPart_(0,b);else{var c=goog.math.safeFloor(Math.log(a)/Math.log(10));a/=Math.pow(10,c);var d=this.minimumIntegerDigits_;if(1<this.maximumIntegerDigits_&&this.maximumIntegerDigits_>this.minimumIntegerDigits_){for(;0!=c%this.maximumIntegerDigits_;)a*=10,c--;d=1}else 1>this.minimumIntegerDigits_?(c++,a/=10):(c-=this.minimumIntegerDigits_-1,a*=Math.pow(10,this.minimumIntegerDigits_- +1));this.subformatFixed_(a,d,b);this.addExponentPart_(c,b)}};goog.i18n.NumberFormat.prototype.getDigit_=function(a){a=a.charCodeAt(0);if(48<=a&&58>a)return a-48;var b=goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0);return b<=a&&a<b+10?a-b:-1};goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_="0";goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_=",";goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_=".";goog.i18n.NumberFormat.PATTERN_PER_MILLE_="\u2030";goog.i18n.NumberFormat.PATTERN_PERCENT_="%"; +goog.i18n.NumberFormat.PATTERN_DIGIT_="#";goog.i18n.NumberFormat.PATTERN_SEPARATOR_=";";goog.i18n.NumberFormat.PATTERN_EXPONENT_="E";goog.i18n.NumberFormat.PATTERN_PLUS_="+";goog.i18n.NumberFormat.PATTERN_MINUS_="-";goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_="\u00a4";goog.i18n.NumberFormat.QUOTE_="'"; +goog.i18n.NumberFormat.prototype.parseAffix_=function(a,b){for(var c="",d=!1,e=a.length;b[0]<e;b[0]++){var f=a.charAt(b[0]);if(f==goog.i18n.NumberFormat.QUOTE_)b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.QUOTE_?(b[0]++,c+="'"):d=!d;else if(d)c+=f;else switch(f){case goog.i18n.NumberFormat.PATTERN_DIGIT_:case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_SEPARATOR_:return c; +case goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_:if(b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_)b[0]++,c+=this.intlCurrencyCode_;else switch(this.currencyStyle_){case goog.i18n.NumberFormat.CurrencyStyle.LOCAL:c+=goog.i18n.currency.getLocalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.GLOBAL:c+=goog.i18n.currency.getGlobalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.PORTABLE:c+=goog.i18n.currency.getPortableCurrencySign(this.intlCurrencyCode_)}break; +case goog.i18n.NumberFormat.PATTERN_PERCENT_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=100;c+=goog.i18n.NumberFormatSymbols.PERCENT;break;case goog.i18n.NumberFormat.PATTERN_PER_MILLE_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=1E3;c+=goog.i18n.NumberFormatSymbols.PERMILL;break;default:c+=f}}return c}; +goog.i18n.NumberFormat.prototype.parseTrunk_=function(a,b){for(var c=-1,d=0,e=0,f=0,g=-1,h=a.length,k=!0;b[0]<h&&k;b[0]++){var l=a.charAt(b[0]);switch(l){case goog.i18n.NumberFormat.PATTERN_DIGIT_:0<e?f++:d++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:if(0<f)throw Error('Unexpected "0" in pattern "'+a+'"');e++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:g=0;break;case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:if(0<=c)throw Error('Multiple decimal separators in pattern "'+ +a+'"');c=d+e+f;break;case goog.i18n.NumberFormat.PATTERN_EXPONENT_:if(this.useExponentialNotation_)throw Error('Multiple exponential symbols in pattern "'+a+'"');this.useExponentialNotation_=!0;this.minExponentDigits_=0;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_PLUS_&&(b[0]++,this.useSignForPositiveExponent_=!0);for(;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_;)b[0]++,this.minExponentDigits_++;if(1>d+e||1>this.minExponentDigits_)throw Error('Malformed exponential pattern "'+ +a+'"');k=!1;break;default:b[0]--,k=!1}}0==e&&0<d&&0<=c&&(e=c,0==e&&e++,f=d-e,d=e-1,e=1);if(0>c&&0<f||0<=c&&(c<d||c>d+e)||0==g)throw Error('Malformed pattern "'+a+'"');f=d+e+f;this.maximumFractionDigits_=0<=c?f-c:0;0<=c&&(this.minimumFractionDigits_=d+e-c,0>this.minimumFractionDigits_&&(this.minimumFractionDigits_=0));e=0<=c?c:f;this.minimumIntegerDigits_=e-d;this.useExponentialNotation_&&(this.maximumIntegerDigits_=d+this.minimumIntegerDigits_,0==this.maximumFractionDigits_&&0==this.minimumIntegerDigits_&& +(this.minimumIntegerDigits_=1));this.groupingSize_=Math.max(0,g);this.decimalSeparatorAlwaysShown_=0==c||c==f};goog.i18n.NumberFormat.NULL_UNIT_={prefix:"",suffix:"",divisorBase:0}; +goog.i18n.NumberFormat.prototype.getUnitFor_=function(a,b){var c=this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.SHORT?goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_SHORT_PATTERN:goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_LONG_PATTERN;if(3>a)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.min(14,a);c=c[Math.pow(10,a)];if(!c)return goog.i18n.NumberFormat.NULL_UNIT_;c=c[b];return c&&"0"!=c?(c=/([^0]*)(0+)(.*)/.exec(c))?{prefix:c[1],suffix:c[3],divisorBase:a-(c[2].length-1)}: +goog.i18n.NumberFormat.NULL_UNIT_:goog.i18n.NumberFormat.NULL_UNIT_}; +goog.i18n.NumberFormat.prototype.getUnitAfterRounding_=function(a,b){if(this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.NONE)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.abs(a);b=Math.abs(b);var c=this.pluralForm_(a),d=1>=a?0:this.intLog10_(a),c=this.getUnitFor_(d,c).divisorBase,d=b/Math.pow(10,c),d=this.roundNumber_(d),e=a/Math.pow(10,c),e=this.roundNumber_(e),d=this.pluralForm_(d.intValue+d.fracValue);return this.getUnitFor_(c+this.intLog10_(e.intValue),d)}; +goog.i18n.NumberFormat.prototype.intLog10_=function(a){for(var b=0;1<=(a/=10);)b++;return b};goog.i18n.NumberFormat.prototype.roundToSignificantDigits_=function(a,b,c){if(!a)return a;var d=this.intLog10_(a);b=b-d-1;if(b<-c)return c=Math.pow(10,c),Math.round(a/c)*c;c=Math.pow(10,b);a=Math.round(a*c);return a/c};goog.i18n.NumberFormat.prototype.pluralForm_=function(){return"other"};goog.i18n.ordinalRules={};goog.i18n.ordinalRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.ordinalRules.defaultSelect_=function(){return goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.frSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.huSelect_=function(a){return 1==a||5==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.svSelect_=function(a){return 1!=a%10&&2!=a%10||11==a%100||12==a%100?goog.i18n.ordinalRules.Keyword.OTHER:goog.i18n.ordinalRules.Keyword.ONE};goog.i18n.ordinalRules.enSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.ordinalRules.Keyword.ONE:2==a%10&&12!=a%100?goog.i18n.ordinalRules.Keyword.TWO:3==a%10&&13!=a%100?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.itSelect_=function(a){return 11==a||8==a||80==a||800==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.caSelect_=function(a){return 1==a||3==a?goog.i18n.ordinalRules.Keyword.ONE:2==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.mrSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.guSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.bnSelect_=function(a){return 1==a||5==a||7==a||8==a||9==a||10==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.zuSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:a==(a|0)&&2<=a&&9>=a?goog.i18n.ordinalRules.Keyword.FEW:a==(a|0)&&(10<=a&&19>=a||100<=a&&199>=a||1E3<=a&&1999>=a)?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"am"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ar"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bg"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.bnSelect_);"br"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ca"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.caSelect_);"chr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"cs"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"cy"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"da"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"de"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"el"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"en"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"et"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"eu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fa"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fil"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"fr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_); +if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_;"gl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gsw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"haw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"he"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"hr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.huSelect_);"id"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"is"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"it"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.itSelect_);"iw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ja"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ln"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ml"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"mr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.mrSelect_);"ms"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_); +"mt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nb"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"no"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"or"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"pl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"pt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"ro"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"ru"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"sk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sq"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.svSelect_);"sw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ta"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"te"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"th"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ur"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"vi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"zh"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_; +if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.zuSelect_);goog.i18n.pluralRules={};goog.i18n.pluralRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.pluralRules.defaultSelect_=function(){return goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.arSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&99>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.heSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:0!=a&&0==a%10?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.enSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.filSelect_=function(a){return 0==a||1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.frSelect_=function(a){return 0<=a&&2>=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.lvSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.iuSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.gaSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a&&6>=a?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&7<=a&&10>=a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.roSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||1!=a&&a==(a|0)&&1<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.ltSelect_=function(a){return 1==a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&9>=a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.beSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:0==a%10||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&11<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.csSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&4>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.plSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:1!=a&&(0==a%10||1==a%10)||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&12<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.slSelect_=function(a){return 1==a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%100?goog.i18n.pluralRules.Keyword.TWO:3==a%100||4==a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.mtSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||a==(a|0)&&2<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.mkSelect_=function(a){return 1==a%10&&11!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.cySelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:3==a?goog.i18n.pluralRules.Keyword.FEW:6==a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.lagSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:0<=a&&2>=a&&0!=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.shiSelect_=function(a){return 0<=a&&1>=a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&10>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.brSelect_=function(a){return 1==a%10&&11!=a%100&&71!=a%100&&91!=a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%10&&12!=a%100&&72!=a%100&&92!=a%100?goog.i18n.pluralRules.Keyword.TWO:(3==a%10||4==a%10||9==a%10)&&(10>a%100||19<a%100)&&(70>a%100||79<a%100)&&(90>a%100||99<a%100)?goog.i18n.pluralRules.Keyword.FEW:0!=a&&0==a%1E6?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.kshSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.tzmSelect_=function(a){return 0==a||1==a||a==(a|0)&&11<=a&&99>=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.gvSelect_=function(a){return 1==a%10||2==a%10||0==a%20?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.gdSelect_=function(a){return 1==a||11==a?goog.i18n.pluralRules.Keyword.ONE:2==a||12==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&(3<=a&&10>=a||13<=a&&19>=a)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"am"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_); +"ar"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.arSelect_);"bg"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"bn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"br"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.brSelect_);"ca"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"chr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"cs"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"cy"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.cySelect_);"da"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"de"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"el"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"en"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"et"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"eu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fa"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fil"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"fr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_);if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_; +"gl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gsw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"haw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"he"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"hi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_); +"hr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"hu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"id"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"is"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"it"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"iw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"ja"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ln"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"lt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ltSelect_); +"lv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.lvSelect_);"ml"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"mr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ms"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"mt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.mtSelect_);"nb"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"nl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"no"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"or"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"pl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.plSelect_);"pt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"ro"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.roSelect_);"ru"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"sl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.slSelect_);"sq"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"sr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"sw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ta"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"te"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"th"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_); +"tl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"tr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"ur"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"vi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"zh"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_); +if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);goog.i18n.MessageFormat=function(a){this.literals_=[];this.parsedPattern_=[];this.numberFormatter_=new goog.i18n.NumberFormat(goog.i18n.NumberFormat.Format.DECIMAL);this.parsePattern_(a)};goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_="\ufddf_";goog.i18n.MessageFormat.Element_={STRING:0,BLOCK:1};goog.i18n.MessageFormat.BlockType_={PLURAL:0,ORDINAL:1,SELECT:2,SIMPLE:3,STRING:4,UNKNOWN:5};goog.i18n.MessageFormat.OTHER_="other";goog.i18n.MessageFormat.REGEX_LITERAL_=/'([{}#].*?)'/g; +goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_=/''/g;goog.i18n.MessageFormat.prototype.format=function(a){return this.format_(a,!1)};goog.i18n.MessageFormat.prototype.format_=function(a,b){if(0==this.parsedPattern_.length)return"";var c=[];this.formatBlock_(this.parsedPattern_,a,b,c);c=c.join("");for(b||goog.asserts.assert(-1==c.search("#"),"Not all # were replaced.");0<this.literals_.length;)c=c.replace(this.buildPlaceholder_(this.literals_),this.literals_.pop());return c}; +goog.i18n.MessageFormat.prototype.formatBlock_=function(a,b,c,d){for(var e=0;e<a.length;e++)switch(a[e].type){case goog.i18n.MessageFormat.BlockType_.STRING:d.push(a[e].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:var f=a[e].value;this.formatSimplePlaceholder_(f,b,d);break;case goog.i18n.MessageFormat.BlockType_.SELECT:f=a[e].value;this.formatSelectBlock_(f,b,c,d);break;case goog.i18n.MessageFormat.BlockType_.PLURAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.pluralRules.select, +c,d);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.ordinalRules.select,c,d);break;default:goog.asserts.fail("Unrecognized block type.")}};goog.i18n.MessageFormat.prototype.formatSimplePlaceholder_=function(a,b,c){b=b[a];goog.isDef(b)?(this.literals_.push(b),c.push(this.buildPlaceholder_(this.literals_))):c.push("Undefined parameter - "+a)}; +goog.i18n.MessageFormat.prototype.formatSelectBlock_=function(a,b,c,d){var e=a.argumentIndex;goog.isDef(b[e])?(e=a[b[e]],goog.isDef(e)||(e=a[goog.i18n.MessageFormat.OTHER_],goog.asserts.assertArray(e,"Invalid option or missing other option for select block.")),this.formatBlock_(e,b,c,d)):d.push("Undefined parameter - "+e)}; +goog.i18n.MessageFormat.prototype.formatPluralOrdinalBlock_=function(a,b,c,d,e){var f=a.argumentIndex,g=a.argumentOffset,h=+b[f];isNaN(h)?e.push("Undefined or invalid parameter - "+f):(g=h-g,f=a[b[f]],goog.isDef(f)||(goog.asserts.assert(0<=g,"Argument index smaller than offset."),c=c(g),goog.asserts.assertString(c,"Invalid plural key."),f=a[c],goog.isDef(f)||(f=a[goog.i18n.MessageFormat.OTHER_]),goog.asserts.assertArray(f,"Invalid option or missing other option for plural block.")),a=[],this.formatBlock_(f, +b,d,a),b=a.join(""),goog.asserts.assertString(b,"Empty block in plural."),d?e.push(b):(d=this.numberFormatter_.format(g),e.push(b.replace(/#/g,d))))};goog.i18n.MessageFormat.prototype.parsePattern_=function(a){a&&(a=this.insertPlaceholders_(a),this.parsedPattern_=this.parseBlock_(a))}; +goog.i18n.MessageFormat.prototype.insertPlaceholders_=function(a){var b=this.literals_,c=goog.bind(this.buildPlaceholder_,this);a=a.replace(goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_,function(){b.push("'");return c(b)});return a=a.replace(goog.i18n.MessageFormat.REGEX_LITERAL_,function(a,e){b.push(e);return c(b)})}; +goog.i18n.MessageFormat.prototype.extractParts_=function(a){var b=0,c=[],d=[],e=/[{}]/g;e.lastIndex=0;for(var f;f=e.exec(a);){var g=f.index;"}"==f[0]?(f=c.pop(),goog.asserts.assert(goog.isDef(f)&&"{"==f,"No matching { for }."),0==c.length&&(f={},f.type=goog.i18n.MessageFormat.Element_.BLOCK,f.value=a.substring(b,g),d.push(f),b=g+1)):(0==c.length&&(b=a.substring(b,g),""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b}),b=g+1),c.push("{"))}goog.asserts.assert(0==c.length,"There are mismatched { or } in the pattern."); +b=a.substring(b);""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b});return d};goog.i18n.MessageFormat.PLURAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*plural\s*,(?:\s*offset:(\d+))?/;goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*selectordinal\s*,/;goog.i18n.MessageFormat.SELECT_BLOCK_RE_=/^\s*(\w+)\s*,\s*select\s*,/; +goog.i18n.MessageFormat.prototype.parseBlockType_=function(a){return goog.i18n.MessageFormat.PLURAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.PLURAL:goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.ORDINAL:goog.i18n.MessageFormat.SELECT_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.SELECT:/^\s*\w+\s*/.test(a)?goog.i18n.MessageFormat.BlockType_.SIMPLE:goog.i18n.MessageFormat.BlockType_.UNKNOWN}; +goog.i18n.MessageFormat.prototype.parseBlock_=function(a){var b=[];a=this.extractParts_(a);for(var c=0;c<a.length;c++){var d={};if(goog.i18n.MessageFormat.Element_.STRING==a[c].type)d.type=goog.i18n.MessageFormat.BlockType_.STRING,d.value=a[c].value;else if(goog.i18n.MessageFormat.Element_.BLOCK==a[c].type){var e=this.parseBlockType_(a[c].value);switch(e){case goog.i18n.MessageFormat.BlockType_.SELECT:d.type=goog.i18n.MessageFormat.BlockType_.SELECT;d.value=this.parseSelectBlock_(a[c].value);break; +case goog.i18n.MessageFormat.BlockType_.PLURAL:d.type=goog.i18n.MessageFormat.BlockType_.PLURAL;d.value=this.parsePluralBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:d.type=goog.i18n.MessageFormat.BlockType_.ORDINAL;d.value=this.parseOrdinalBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:d.type=goog.i18n.MessageFormat.BlockType_.SIMPLE;d.value=a[c].value;break;default:goog.asserts.fail("Unknown block type.")}}else goog.asserts.fail("Unknown part of the pattern."); +b.push(d)}return b}; +goog.i18n.MessageFormat.prototype.parseSelectBlock_=function(a){var b="",c=goog.i18n.MessageFormat.SELECT_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing select key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid select value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");c[e.replace(/\s/g, +"")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in select statement.");return c}; +goog.i18n.MessageFormat.prototype.parsePluralBlock_=function(a){var b="",c=0,d=goog.i18n.MessageFormat.PLURAL_BLOCK_RE_;a=a.replace(d,function(a,d,e){b=d;e&&(c=parseInt(e,10));return""});d={};d.argumentIndex=b;d.argumentOffset=c;a=this.extractParts_(a);for(var e=0;e<a.length;){var f=a[e].value;goog.asserts.assertString(f,"Missing plural key element.");e++;goog.asserts.assert(e<a.length,"Missing or invalid plural value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[e].type)var g=this.parseBlock_(a[e].value); +else goog.asserts.fail("Expected block type.");d[f.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=g;e++}goog.asserts.assertArray(d[goog.i18n.MessageFormat.OTHER_],"Missing other key in plural statement.");return d}; +goog.i18n.MessageFormat.prototype.parseOrdinalBlock_=function(a){var b="",c=goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;c.argumentOffset=0;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing ordinal key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid ordinal value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type."); +c[e.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in selectordinal statement.");return c};goog.i18n.MessageFormat.prototype.buildPlaceholder_=function(a){goog.asserts.assert(0<a.length,"Literal array is empty.");a=(a.length-1).toString(10);return goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_+a+"_"};cvox.TtsCapturingEventListener=function(){};cvox.TtsInterface=function(){};cvox.TtsInterface.prototype.speak=function(){};cvox.TtsInterface.prototype.isSpeaking=function(){};cvox.TtsInterface.prototype.stop=function(){};cvox.TtsInterface.prototype.increaseOrDecreaseProperty=function(){};cvox.TtsInterface.prototype.getDefaultProperty=function(){};cvox.AbstractTts=function(){this.ttsProperties={};this.propertyDefault={rate:0.5,pitch:0.5,volume:0.5};this.propertyMin={rate:0,pitch:0,volume:0};this.propertyMax={rate:1,pitch:1,volume:1};this.propertyStep={rate:0.1,pitch:0.1,volume:0.1};if(void 0==cvox.AbstractTts.pronunciationDictionaryRegexp_){var a=[],b;for(b in cvox.AbstractTts.PRONUNCIATION_DICTIONARY)a.push(b);a="\\b("+a.join("|")+")\\b";cvox.AbstractTts.pronunciationDictionaryRegexp_=RegExp(a,"ig")}if(void 0==cvox.AbstractTts.substitutionDictionaryRegexp_){var a= +[],c;for(c in cvox.AbstractTts.SUBSTITUTION_DICTIONARY)a.push(c);a="("+a.join("|")+")";cvox.AbstractTts.substitutionDictionaryRegexp_=RegExp(a,"ig")}};cvox.AbstractTts.prototype.speak=function(){return this};cvox.AbstractTts.prototype.isSpeaking=function(){return!1};cvox.AbstractTts.prototype.stop=function(){}; +cvox.AbstractTts.prototype.increaseOrDecreaseProperty=function(a,b){var c=this.propertyMin[a],d=this.propertyMax[a],e=this.propertyStep[a],f=this.ttsProperties[a],f=b?f+e:f-e;this.ttsProperties[a]=Math.max(Math.min(f,d),c)}; +cvox.AbstractTts.prototype.mergeProperties=function(a){var b={},c;if(this.ttsProperties)for(c in this.ttsProperties)b[c]=this.ttsProperties[c];if(a){c=cvox.AbstractTts;"number"==typeof a[c.VOLUME]&&(b[c.VOLUME]=a[c.VOLUME]);"number"==typeof a[c.PITCH]&&(b[c.PITCH]=a[c.PITCH]);"number"==typeof a[c.RATE]&&(b[c.RATE]=a[c.RATE]);"string"==typeof a[c.LANG]&&(b[c.LANG]=a[c.LANG]);var d=this,e=function(c,e){if("number"==typeof a[e]&&"number"==typeof b[c]){b[c]+=a[e];var h=d.propertyMin[c],k=d.propertyMax[c]; +b[c]>k?b[c]=k:b[c]<h&&(b[c]=h)}};e(c.VOLUME,c.RELATIVE_VOLUME);e(c.PITCH,c.RELATIVE_PITCH);e(c.RATE,c.RELATIVE_RATE)}return b};cvox.AbstractTts.RATE="rate";cvox.AbstractTts.PITCH="pitch";cvox.AbstractTts.VOLUME="volume";cvox.AbstractTts.LANG="lang";cvox.AbstractTts.RELATIVE_RATE="relativeRate";cvox.AbstractTts.RELATIVE_PITCH="relativePitch";cvox.AbstractTts.RELATIVE_VOLUME="relativeVolume";cvox.AbstractTts.COLOR="color";cvox.AbstractTts.FONT_WEIGHT="fontWeight";cvox.AbstractTts.PUNCTUATION_ECHO="punctuationEcho"; +cvox.AbstractTts.PAUSE="pause";cvox.AbstractTts.PERSONALITY_ANNOTATION={relativePitch:-0.25,color:"yellow",punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT={punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ASIDE={relativePitch:-0.1,color:"#669"};cvox.AbstractTts.PERSONALITY_CAPITAL={relativePitch:0.6};cvox.AbstractTts.PERSONALITY_DELETED={punctuationEcho:"none",relativePitch:-0.6};cvox.AbstractTts.PERSONALITY_QUOTE={relativePitch:0.1,color:"#b6b",fontWeight:"bold"}; +cvox.AbstractTts.PERSONALITY_STRONG={relativePitch:0.1,color:"#b66",fontWeight:"bold"};cvox.AbstractTts.PERSONALITY_EMPHASIS={relativeVolume:0.1,relativeRate:-0.1,color:"#6bb",fontWeight:"bold"};cvox.AbstractTts.DEBUG=!0;cvox.AbstractTts.QUEUE_MODE_FLUSH=0;cvox.AbstractTts.QUEUE_MODE_QUEUE=1; +cvox.AbstractTts.CHARACTER_DICTIONARY={" ":"space","`":"backtick","~":"tilde","!":"exclamation","@":"at","#":"pound",$:"dollar","%":"percent","^":"caret","&":"ampersand","*":"asterisk","(":"open_paren",")":"close_paren","-":"dash",_:"underscore","=":"equals","+":"plus","[":"left_bracket","]":"right_bracket","{":"left_brace","}":"right_brace","|":"pipe",";":"semicolon",":":"colon",",":"comma",".":"dot","<":"less_than",">":"greater_than","/":"slash","?":"question_mark",'"':"quote","'":"apostrophe", +"\t":"tab","\r":"return","\n":"new line","\\":"backslash"};cvox.AbstractTts.PRONUNCIATION_DICTIONARY={admob:"ad-mob",adsense:"ad-sense",adwords:"ad-words",angularjs:"angular j s",bcc:"B C C",cc:"C C",chromevox:"chrome vox",cr48:"C R 48",ctrl:"control",doubleclick:"double-click",gmail:"gee mail",gtalk:"gee talk",http:"H T T P",https:"H T T P S",igoogle:"eye google",pagerank:"page-rank",username:"user-name",www:"W W W",youtube:"you tube"}; +cvox.AbstractTts.SUBSTITUTION_DICTIONARY={"://":"colon slash slash","\u00bc":"one fourth","\u00bd":"one half","\u200e":"left to right mark","\u2190":"left arrow","\u2191":"up arrow","\u2192":"right arrow","\u2193":"down arrow","\u21d0":"left double arrow","\u21d1":"up double arrow","\u21d2":"right double arrow","\u21d3":"down double arrow","\u21e6":"left arrow","\u21e7":"up arrow","\u21e8":"right arrow","\u21e9":"down arrow","\u2303":"control","\u2318":"command","\u2325":"option","\u25b2":"up triangle", +"\u25b3":"up triangle","\u25b4":"up triangle","\u25b5":"up triangle","\u25b6":"right triangle","\u25b7":"right triangle","\u25b8":"right triangle","\u25b9":"right triangle","\u25ba":"right pointer","\u25bb":"right pointer","\u25bc":"down triangle","\u25bd":"down triangle","\u25be":"down triangle","\u25bf":"down triangle","\u25c0":"left triangle","\u25c1":"left triangle","\u25c2":"left triangle","\u25c3":"left triangle","\u25c4":"left pointer","\u25c5":"left pointer","\uf8ff":"apple"}; +cvox.AbstractTts.repetitionRegexp_=/([-\/\\|!@#$%^&*\(\)=_+\[\]\{\}.?;'":<>])\1{2,}/g;cvox.AbstractTts.repetitionReplace_=function(a){var b=a.length;return" "+(new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg(cvox.AbstractTts.CHARACTER_DICTIONARY[a[0]]))).format({COUNT:b})+" "};cvox.AbstractTts.prototype.getDefaultProperty=function(a){return this.propertyDefault[a]};cvox.AbstractEarcons=function(){this.enabled=!0};cvox.AbstractEarcons.prototype.playEarcon=function(){};cvox.AbstractEarcons.prototype.playEarconByName=function(a){this.playEarcon(this.getEarconId(a))};cvox.AbstractEarcons.prototype.earconsAvailable=function(){return!0}; +cvox.AbstractEarcons.prototype.getEarconId=function(a){this.earconNamesToIds||(this.earconNamesToIds={},this.earconNamesToIds.ALERT_MODAL=cvox.AbstractEarcons.ALERT_MODAL,this.earconNamesToIds.ALERT_NONMODAL=cvox.AbstractEarcons.ALERT_NONMODAL,this.earconNamesToIds.BULLET=cvox.AbstractEarcons.BULLET,this.earconNamesToIds.BUSY_PROGRESS_LOOP=cvox.AbstractEarcons.BUSY_PROGRESS_LOOP,this.earconNamesToIds.BUSY_WORKING_LOOP=cvox.AbstractEarcons.BUSY_WORKING_LOOP,this.earconNamesToIds.BUTTON=cvox.AbstractEarcons.BUTTON, +this.earconNamesToIds.CHECK_OFF=cvox.AbstractEarcons.CHECK_OFF,this.earconNamesToIds.CHECK_ON=cvox.AbstractEarcons.CHECK_ON,this.earconNamesToIds.CHROMEVOX_DISABLED=cvox.AbstractEarcons.CHROMEVOX_DISABLED,this.earconNamesToIds.CHROMEVOX_ENABLED=cvox.AbstractEarcons.CHROMEVOX_ENABLED,this.earconNamesToIds.COLLAPSED=cvox.AbstractEarcons.COLLAPSED,this.earconNamesToIds.EDITABLE_TEXT=cvox.AbstractEarcons.EDITABLE_TEXT,this.earconNamesToIds.ELLIPSIS=cvox.AbstractEarcons.ELLIPSIS,this.earconNamesToIds.EXPANDED= +cvox.AbstractEarcons.EXPANDED,this.earconNamesToIds.FONT_CHANGE=cvox.AbstractEarcons.FONT_CHANGE,this.earconNamesToIds.INVALID_KEYPRESS=cvox.AbstractEarcons.INVALID_KEYPRESS,this.earconNamesToIds.LINK=cvox.AbstractEarcons.LINK,this.earconNamesToIds.LISTBOX=cvox.AbstractEarcons.LISTBOX,this.earconNamesToIds.LIST_ITEM=cvox.AbstractEarcons.LIST_ITEM,this.earconNamesToIds.LONG_DESC=cvox.AbstractEarcons.LONG_DESC,this.earconNamesToIds.NEW_MAIL=cvox.AbstractEarcons.NEW_MAIL,this.earconNamesToIds.OBJECT_CLOSE= +cvox.AbstractEarcons.OBJECT_CLOSE,this.earconNamesToIds.OBJECT_DELETE=cvox.AbstractEarcons.OBJECT_DELETE,this.earconNamesToIds.OBJECT_DESELECT=cvox.AbstractEarcons.OBJECT_DESELECT,this.earconNamesToIds.OBJECT_ENTER=cvox.AbstractEarcons.OBJECT_ENTER,this.earconNamesToIds.OBJECT_EXIT=cvox.AbstractEarcons.OBJECT_EXIT,this.earconNamesToIds.OBJECT_OPEN=cvox.AbstractEarcons.OBJECT_OPEN,this.earconNamesToIds.OBJECT_SELECT=cvox.AbstractEarcons.OBJECT_SELECT,this.earconNamesToIds.PARAGRAPH_BREAK=cvox.AbstractEarcons.PARAGRAPH_BREAK, +this.earconNamesToIds.SEARCH_HIT=cvox.AbstractEarcons.SEARCH_HIT,this.earconNamesToIds.SEARCH_MISS=cvox.AbstractEarcons.SEARCH_MISS,this.earconNamesToIds.SECTION=cvox.AbstractEarcons.SECTION,this.earconNamesToIds.SELECTION=cvox.AbstractEarcons.SELECTION,this.earconNamesToIds.SELECTION_REVERSE=cvox.AbstractEarcons.SELECTION_REVERSE,this.earconNamesToIds.SPECIAL_CONTENT=cvox.AbstractEarcons.SPECIAL_CONTENT,this.earconNamesToIds.TASK_SUCCESS=cvox.AbstractEarcons.TASK_SUCCESS,this.earconNamesToIds.WRAP= +cvox.AbstractEarcons.WRAP,this.earconNamesToIds.WRAP_EDGE=cvox.AbstractEarcons.WRAP_EDGE);return this.earconNamesToIds[a]};cvox.AbstractEarcons.prototype.getEarconFilename=function(a){return cvox.AbstractEarcons.earconMap[a]};cvox.AbstractEarcons.prototype.toggle=function(){return this.enabled=!this.enabled};cvox.AbstractEarcons.ALERT_MODAL=0;cvox.AbstractEarcons.ALERT_NONMODAL=1;cvox.AbstractEarcons.BULLET=2;cvox.AbstractEarcons.BUSY_PROGRESS_LOOP=3;cvox.AbstractEarcons.BUSY_WORKING_LOOP=4; +cvox.AbstractEarcons.BUTTON=5;cvox.AbstractEarcons.CHECK_OFF=6;cvox.AbstractEarcons.CHECK_ON=7;cvox.AbstractEarcons.CHROMEVOX_DISABLED=8;cvox.AbstractEarcons.CHROMEVOX_ENABLED=9;cvox.AbstractEarcons.COLLAPSED=10;cvox.AbstractEarcons.EDITABLE_TEXT=11;cvox.AbstractEarcons.ELLIPSIS=12;cvox.AbstractEarcons.EXPANDED=13;cvox.AbstractEarcons.FONT_CHANGE=14;cvox.AbstractEarcons.INVALID_KEYPRESS=15;cvox.AbstractEarcons.LINK=16;cvox.AbstractEarcons.LISTBOX=17;cvox.AbstractEarcons.LIST_ITEM=18; +cvox.AbstractEarcons.LONG_DESC=19;cvox.AbstractEarcons.NEW_MAIL=20;cvox.AbstractEarcons.OBJECT_CLOSE=21;cvox.AbstractEarcons.OBJECT_DELETE=22;cvox.AbstractEarcons.OBJECT_DESELECT=23;cvox.AbstractEarcons.OBJECT_ENTER=24;cvox.AbstractEarcons.OBJECT_EXIT=25;cvox.AbstractEarcons.OBJECT_OPEN=26;cvox.AbstractEarcons.OBJECT_SELECT=27;cvox.AbstractEarcons.PARAGRAPH_BREAK=28;cvox.AbstractEarcons.SEARCH_HIT=29;cvox.AbstractEarcons.SEARCH_MISS=30;cvox.AbstractEarcons.SECTION=31; +cvox.AbstractEarcons.SELECTION=32;cvox.AbstractEarcons.SELECTION_REVERSE=33;cvox.AbstractEarcons.SPECIAL_CONTENT=34;cvox.AbstractEarcons.TASK_SUCCESS=35;cvox.AbstractEarcons.WRAP=36;cvox.AbstractEarcons.WRAP_EDGE=37;cvox.AbstractEarcons.earconMap={};cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_MODAL]="alert_modal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_NONMODAL]="alert_nonmodal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BULLET]="bullet.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_PROGRESS_LOOP]="busy_progress_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_WORKING_LOOP]="busy_working_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUTTON]="button.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_OFF]="check_off.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_ON]="check_on.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_DISABLED]="chromevox_disabled.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_ENABLED]="chromevox_enabled.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.COLLAPSED]="collapsed.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EDITABLE_TEXT]="editable_text.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ELLIPSIS]="ellipsis.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EXPANDED]="expanded.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.FONT_CHANGE]="font_change.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.INVALID_KEYPRESS]="invalid_keypress.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LINK]="link.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LISTBOX]="listbox.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LIST_ITEM]="bullet.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LONG_DESC]="long_desc.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.NEW_MAIL]="new_mail.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_CLOSE]="object_close.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DELETE]="object_delete.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DESELECT]="object_deselect.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_ENTER]="object_enter.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_EXIT]="object_exit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_OPEN]="object_open.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_SELECT]="object_select.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.PARAGRAPH_BREAK]="paragraph_break.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_HIT]="search_hit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_MISS]="search_miss.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SECTION]="section.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION]="selection.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION_REVERSE]="selection_reverse.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SPECIAL_CONTENT]="special_content.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.TASK_SUCCESS]="task_success.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP]="wrap.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP_EDGE]="wrap_edge.ogg";cvox.NodeStateUtil={};cvox.NodeStateUtil.expand=function(a){try{return a.map(function(a){if(1>a.length)throw Error("cvox.NodeState must have at least one entry");var b=a.slice(1).map(function(a){return"number"==typeof a?cvox.ChromeVox.msgs.getNumber(a):a});return cvox.ChromeVox.msgs.getMsg(a[0],b)}).join(" ")}catch(b){throw Error("error: "+b+" state: "+a);}};cvox.AriaUtil=function(){};cvox.AriaUtil.NO_ROLE_NAME=" "; +cvox.AriaUtil.WIDGET_ROLE_TO_NAME={alert:"aria_role_alert",alertdialog:"aria_role_alertdialog",button:"aria_role_button",checkbox:"aria_role_checkbox",columnheader:"aria_role_columnheader",combobox:"aria_role_combobox",dialog:"aria_role_dialog",grid:"aria_role_grid",gridcell:"aria_role_gridcell",link:"aria_role_link",listbox:"aria_role_listbox",log:"aria_role_log",marquee:"aria_role_marquee",menu:"aria_role_menu",menubar:"aria_role_menubar",menuitem:"aria_role_menuitem",menuitemcheckbox:"aria_role_menuitemcheckbox", +menuitemradio:"aria_role_menuitemradio",option:cvox.AriaUtil.NO_ROLE_NAME,progressbar:"aria_role_progressbar",radio:"aria_role_radio",radiogroup:"aria_role_radiogroup",rowheader:"aria_role_rowheader",scrollbar:"aria_role_scrollbar",slider:"aria_role_slider",spinbutton:"aria_role_spinbutton",status:"aria_role_status",tab:"aria_role_tab",tabpanel:"aria_role_tabpanel",textbox:"aria_role_textbox",timer:"aria_role_timer",toolbar:"aria_role_toolbar",tooltip:"aria_role_tooltip",treeitem:"aria_role_treeitem"}; +cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME={article:"aria_role_article",application:"aria_role_application",banner:"aria_role_banner",columnheader:"aria_role_columnheader",complementary:"aria_role_complementary",contentinfo:"aria_role_contentinfo",definition:"aria_role_definition",directory:"aria_role_directory",document:"aria_role_document",form:"aria_role_form",group:"aria_role_group",heading:"aria_role_heading",img:"aria_role_img",list:"aria_role_list",listitem:"aria_role_listitem",main:"aria_role_main", +math:"aria_role_math",navigation:"aria_role_navigation",note:"aria_role_note",region:"aria_role_region",rowheader:"aria_role_rowheader",search:"aria_role_search",separator:"aria_role_separator"}; +cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS=[{name:"aria-autocomplete",values:{inline:"aria_autocomplete_inline",list:"aria_autocomplete_list",both:"aria_autocomplete_both"}},{name:"aria-checked",values:{"true":"aria_checked_true","false":"aria_checked_false",mixed:"aria_checked_mixed"}},{name:"aria-disabled",values:{"true":"aria_disabled_true"}},{name:"aria-expanded",values:{"true":"aria_expanded_true","false":"aria_expanded_false"}},{name:"aria-invalid",values:{"true":"aria_invalid_true",grammar:"aria_invalid_grammar", +spelling:"aria_invalid_spelling"}},{name:"aria-multiline",values:{"true":"aria_multiline_true"}},{name:"aria-multiselectable",values:{"true":"aria_multiselectable_true"}},{name:"aria-pressed",values:{"true":"aria_pressed_true","false":"aria_pressed_false",mixed:"aria_pressed_mixed"}},{name:"aria-readonly",values:{"true":"aria_readonly_true"}},{name:"aria-required",values:{"true":"aria_required_true"}},{name:"aria-selected",values:{"true":"aria_selected_true","false":"aria_selected_false"}}]; +cvox.AriaUtil.isHiddenRecursive=function(a){if(cvox.AriaUtil.isHidden(a))return!0;for(a=a.parentElement;a;){if("true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return!0;a=a.parentElement}return!1};cvox.AriaUtil.isHidden=function(a){return!a||a.getAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")?!0:!1}; +cvox.AriaUtil.isForcedVisibleRecursive=function(a){for(;a;){if(a.getAttribute&&a.hasAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return"false"==a.getAttribute("aria-hidden");a=a.parentElement}return!1};cvox.AriaUtil.isLeafElement=function(a){var b=a.getAttribute("role");a=a.hasAttribute("aria-label")&&0<a.getAttribute("aria-label").length;return"img"==b||"progressbar"==b||a}; +cvox.AriaUtil.isDescendantOfRole=function(a,b){for(;a;){if(b&&a&&a.getAttribute("role")==b)return!0;a=a.parentNode}return!1};cvox.AriaUtil.getRoleNameMsgForRole_=function(a){return(a=cvox.AriaUtil.WIDGET_ROLE_TO_NAME[a])?a==cvox.AriaUtil.NO_ROLE_NAME?" ":a:null};cvox.AriaUtil.isButton=function(a){var b=cvox.AriaUtil.getRoleAttribute(a);return"button"==b||"BUTTON"==a.tagName?!0:"INPUT"==a.tagName?"submit"==a.type||"reset"==a.type||"button"==a.type:!1}; +cvox.AriaUtil.getRoleNameMsg=function(a){var b;if(a&&a.getAttribute){var c=cvox.AriaUtil.getRoleAttribute(a);if("true"==a.getAttribute("aria-haspopup")&&cvox.AriaUtil.isButton(a))return"aria_role_popup_button";c&&((b=cvox.AriaUtil.getRoleNameMsgForRole_(c))||(b=cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME[c]));if("menuitem"==c){for(a=a.parentElement;a&&(!a.getAttribute||"menu"!=cvox.AriaUtil.getRoleAttribute(a)&&"menubar"!=cvox.AriaUtil.getRoleAttribute(a));)a=a.parentElement;a&&"menubar"==cvox.AriaUtil.getRoleAttribute(a)&& +(b=cvox.AriaUtil.getRoleNameMsgForRole_("menu"))}}b||(b="");return b};cvox.AriaUtil.getRoleName=function(a){var b=cvox.AriaUtil.getRoleNameMsg(a),b=cvox.ChromeVox.msgs.getMsg(b),c=cvox.AriaUtil.getRoleAttribute(a);"heading"==c&&a.hasAttribute("aria-level")&&(b+=" "+a.getAttribute("aria-level"));return b?b:""}; +cvox.AriaUtil.getStateMsgs=function(a,b){var c=[];if(!a||!a.getAttribute)return c;for(var d=0,e;e=cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS[d];d++){var f=a.getAttribute(e.name);(e=e.values[f])&&c.push([e])}if("grid"==a.getAttribute("role"))return cvox.AriaUtil.getGridState_(a,a);e=cvox.AriaUtil.getRoleAttribute(a);"true"==a.getAttribute("aria-haspopup")&&("menuitem"==e?c.push(["has_submenu"]):cvox.AriaUtil.isButton(a)||c.push(["has_popup"]));if(d=a.getAttribute("aria-valuetext"))return c.push([d]), +c;var d=a.getAttribute("aria-valuenow"),f=a.getAttribute("aria-valuemin"),g=a.getAttribute("aria-valuemax");if(null!=d&&null!=f&&null!=g&&("scrollbar"==e||"progressbar"==e)){var h=Math.round(d/(g-f)*100);c.push(["state_percent",h]);return c}null!=d&&c.push(["aria_value_now",d]);null!=f&&c.push(["aria_value_min",f]);null!=g&&c.push(["aria_value_max",g]);f=a;d=null;if(cvox.AriaUtil.isCompositeControl(f)&&b)d=cvox.AriaUtil.getActiveDescendant(f);else if(e=cvox.AriaUtil.getRoleAttribute(a),"option"== +e||"menuitem"==e||"menuitemcheckbox"==e||"menuitemradio"==e||"radio"==e||"tab"==e||"treeitem"==e)for(d=a,f=a.parentElement;f&&!cvox.AriaUtil.isCompositeControl(f)&&(!(f=f.parentElement)||"treeitem"!=cvox.AriaUtil.getRoleAttribute(f)););if(f&&(cvox.AriaUtil.isCompositeControl(f)||"treeitem"==cvox.AriaUtil.getRoleAttribute(f))&&d){e=cvox.AriaUtil.getRoleAttribute(f);var k;switch(e){case "combobox":case "listbox":k=["option"];break;case "menu":k=["menuitem","menuitemcheck","menuitemradio"];break;case "radiogroup":k= +["radio"];break;case "tablist":k=["tab"];break;case "tree":case "treegrid":case "treeitem":k=["treeitem"]}if(k){var l;e=parseInt(d.getAttribute("aria-setsize"),10);isNaN(e)||(h=e);e=parseInt(d.getAttribute("aria-posinset"),10);isNaN(e)||(l=e);if(void 0==h||void 0==l)if(k=cvox.AriaUtil.getNextLevel(f,k),void 0==h&&(h=k.length),void 0==l)for(e=0;e<k.length;e++)k[e]==d&&(l=e+1);l&&h&&c.push(["list_position",l,h])}}return c}; +cvox.AriaUtil.getGridState_=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(b);if(c)for(var d='*[role~="row"]',d=b.querySelectorAll(d),e=0;e<d.length;e++)for(var f=d[e].querySelectorAll('*[role~="gridcell"]'),g=0;g<f.length;g++)if(f[g]==c)return[["aria_role_gridcell_pos",e+1,g+1]];return[]};cvox.AriaUtil.getActiveDescendantId_=function(a){return a.getAttribute?(a=a.getAttribute("aria-activedescendant"))?a:null:null}; +cvox.AriaUtil.getNextLevel=function(a,b){for(var c=[],d=a.childNodes,e=0;e<d.length;e++)if(!cvox.AriaUtil.isHidden(d[e])&&cvox.DomUtil.isVisible(d[e])){var f=cvox.AriaUtil.getNextLevelItems(d[e],b);0<f.length&&(c=c.concat(f))}return c}; +cvox.AriaUtil.getNextLevelItems=function(a,b){if(1!=a.nodeType)return[];if(-1!=b.indexOf(cvox.AriaUtil.getRoleAttribute(a)))return[a];var c=a.childNodes,d=c.length;if(0==d)return[];for(var e=[],f=0;f<d;f++){var g=cvox.AriaUtil.getNextLevelItems(c[f],b);0<g.length&&(e=e.concat(g))}return e};cvox.AriaUtil.getActiveDescendant=function(a){for(var b={},c=a;c;){var d=cvox.AriaUtil.getActiveDescendantId_(c);if(!d)break;if(d in b)return null;b[d]=!0;c=document.getElementById(d)}return c==a?null:c}; +cvox.AriaUtil.isControlWidget=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "button":case "checkbox":case "combobox":case "listbox":case "menu":case "menuitemcheckbox":case "menuitemradio":case "radio":case "slider":case "progressbar":case "scrollbar":case "spinbutton":case "tab":case "tablist":case "textbox":return!0}return!1};cvox.AriaUtil.isCompositeControl=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "combobox":case "grid":case "listbox":case "menu":case "menubar":case "radiogroup":case "tablist":case "tree":case "treegrid":return!0}return!1}; +cvox.AriaUtil.getAriaLive=function(a){if(!a.hasAttribute)return null;var b=a.getAttribute("aria-live");if("off"==b)return null;if(b)return b;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "alert":return"assertive";case "log":case "status":return"polite";default:return null}};cvox.AriaUtil.getAriaAtomic=function(a){if(!a.hasAttribute)return!1;var b=a.getAttribute("aria-atomic");if(b)return"true"===b;a=cvox.AriaUtil.getRoleAttribute(a);return"alert"==a?!0:!1}; +cvox.AriaUtil.getAriaBusy=function(a){return a.hasAttribute?(a=a.getAttribute("aria-busy"))?"true"===a:!1:!1};cvox.AriaUtil.getAriaRelevant=function(a,b){if(!a.hasAttribute)return!1;var c;c=a.hasAttribute("aria-relevant")?a.getAttribute("aria-relevant"):"additions text";"all"==c&&(c="additions removals text");c=c.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").split(" ");return"all"==b?0<=c.indexOf("additions")&&0<=c.indexOf("text")&&0<=c.indexOf("removals"):0<=c.indexOf(b)}; +cvox.AriaUtil.getLiveRegions=function(a){var b=[];if(a.querySelectorAll){var c=a.querySelectorAll('[role="alert"], [role="log"], [role="marquee"], [role="status"], [role="timer"], [aria-live]');if(c)for(var d=0;d<c.length;d++)b.push(c[d])}for(;a;){if(cvox.AriaUtil.getAriaLive(a)){b.push(a);break}a=a.parentElement}return b};cvox.AriaUtil.isLandmark=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "application":case "banner":case "complementary":case "contentinfo":case "form":case "main":case "navigation":case "search":return!0}return!1}; +cvox.AriaUtil.isGrid=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "grid":case "treegrid":return!0}return!1}; +cvox.AriaUtil.getEarcon=function(a){if(!a||!a.getAttribute)return null;var b=cvox.AriaUtil.getRoleAttribute(a);switch(b){case "button":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":case "menuitemcheckbox":case "menuitemradio":return a=a.getAttribute("aria-checked"),"true"==a?cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;case "combobox":case "listbox":return cvox.AbstractEarcons.LISTBOX;case "textbox":return cvox.AbstractEarcons.EDITABLE_TEXT;case "listitem":return cvox.AbstractEarcons.BULLET; +case "link":return cvox.AbstractEarcons.LINK}return null};cvox.AriaUtil.getRoleAttribute=function(a){if(!a.getAttribute)return"";var b=a.getAttribute("role");a.hasAttribute("chromevoxoriginalrole")&&(b=a.getAttribute("chromevoxoriginalrole"));return b};cvox.AriaUtil.isMath=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);return"math"==a};cvox.DomPredicates={};cvox.DomPredicates.checkboxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"checkbox"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"checkbox"==a[b].type)return a[b];return null};cvox.DomPredicates.radioPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"radio"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"radio"==a[b].type)return a[b];return null}; +cvox.DomPredicates.sliderPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"slider"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"range"==a[b].type)return a[b];return null};cvox.DomPredicates.graphicPredicate=function(a){for(var b=0;b<a.length;b++)if("IMG"==a[b].tagName||"INPUT"==a[b].tagName&&"img"==a[b].type)return a[b];return null}; +cvox.DomPredicates.buttonPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"button"==a[b].getAttribute("role")||"BUTTON"==a[b].tagName||"INPUT"==a[b].tagName&&"submit"==a[b].type||"INPUT"==a[b].tagName&&"button"==a[b].type||"INPUT"==a[b].tagName&&"reset"==a[b].type)return a[b];return null};cvox.DomPredicates.comboBoxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"combobox"==a[b].getAttribute("role")||"SELECT"==a[b].tagName)return a[b];return null}; +cvox.DomPredicates.editTextPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"textbox"==a[b].getAttribute("role")||"TEXTAREA"==a[b].tagName||a[b].isContentEditable||"INPUT"==a[b].tagName&&cvox.DomUtil.isInputTypeText(a[b]))return a[b];return null};cvox.DomPredicates.headingPredicate=function(a){for(var b=0;b<a.length;b++){if(a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null}; +cvox.DomPredicates.heading1Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H1")};cvox.DomPredicates.heading2Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H2")};cvox.DomPredicates.heading3Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H3")};cvox.DomPredicates.heading4Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H4")};cvox.DomPredicates.heading5Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H5")}; +cvox.DomPredicates.heading6Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H6")};cvox.DomPredicates.linkPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.tablePredicate=function(a){return(a=cvox.DomUtil.findTableNodeInList(a,{allowCaptions:!0}))&&!cvox.DomUtil.isLayoutTable(a)?a:null}; +cvox.DomPredicates.cellPredicate=function(a){for(var b=a.length-1;0<=b;--b){var c=a[b];if("TD"==c.tagName||"TH"==c.tagName||c.getAttribute&&"gridcell"==c.getAttribute("role"))return c}return null};cvox.DomPredicates.visitedLinkPredicate=function(a){for(var b=a.length-1;0<=b;--b)if(cvox.DomPredicates.linkPredicate([a[b]])&&cvox.ChromeVox.visitedUrls[a[b].href])return a[b]}; +cvox.DomPredicates.listPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"list"==a[b].getAttribute("role")||"UL"==a[b].tagName||"OL"==a[b].tagName)return a[b];return null};cvox.DomPredicates.listItemPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"listitem"==a[b].getAttribute("role")||"LI"==a[b].tagName)return a[b];return null};cvox.DomPredicates.blockquotePredicate=function(a){return cvox.DomPredicates.containsTagName_(a,"BLOCKQUOTE")}; +cvox.DomPredicates.formFieldPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b]))return a[b];return null};cvox.DomPredicates.landmarkPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.AriaUtil.isLandmark(a[b]))return a[b];return null};cvox.DomPredicates.containsTagName_=function(a,b){for(var c=a.length;c--;)if(a[c].tagName==b)return a[c];return null};cvox.DomPredicates.mathPredicate=function(a){return cvox.DomUtil.findMathNodeInList(a)}; +cvox.DomPredicates.sectionPredicate=function(a){for(var b=0;b<a.length;b++){if(cvox.DomUtil.isSemanticElt(a[b])||cvox.AriaUtil.isLandmark(a[b])||a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null}; +cvox.DomPredicates.controlPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b])||a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.captionPredicate=function(a){for(var b=0;b<a.length;b++)if("CAPTION"==a[b].tagName)return a[b];return null}; +cvox.DomPredicates.articlePredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"article"==a[b].getAttribute("role")||"ARTICLE"==a[b].tagName)return a[b];return null};cvox.DomPredicates.mediaPredicate=function(a){for(var b=0;b<a.length;b++)if("AUDIO"==a[b].tagName||"VIDEO"==a[b].tagName)return a[b];return null};cvox.DomPredicates.orderedListPredicate=function(a){for(var b=0;b<a.length;b++)if("OL"==a[b].tagName)return a[b];return null};cvox.XpathUtil=function(){};cvox.XpathUtil.nameSpaces_={xhtml:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML"};cvox.XpathUtil.resolveNameSpace=function(a){return cvox.XpathUtil.nameSpaces_[a]||null};cvox.XpathUtil.evalXPath=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(d){return[]}for(var e=[],f=c.iterateNext();f;f=c.iterateNext())e.push(f);return e}; +cvox.XpathUtil.getLeafNodes=function(a){try{var b=a.ownerDocument.evaluate(".//*[count(*)=0]",a,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(c){return[]}a=[];for(var d=b.iterateNext();d;d=b.iterateNext())a.push(d);return a};cvox.XpathUtil.xpathSupported=function(){return"undefined"==typeof XPathResult?!1:!0};cvox.XpathUtil.evaluateBoolean=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.BOOLEAN_TYPE,null)}catch(d){return!1}return c.booleanValue}; +cvox.XpathUtil.evaluateString=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.STRING_TYPE,null)}catch(d){return""}return c.stringValue};cvox.DomUtil=function(){}; +cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG={button:"input_type_button",checkbox:"input_type_checkbox",color:"input_type_color",datetime:"input_type_datetime","datetime-local":"input_type_datetime_local",date:"input_type_date",email:"input_type_email",file:"input_type_file",image:"input_type_image",month:"input_type_month",number:"input_type_number",password:"input_type_password",radio:"input_type_radio",range:"input_type_range",reset:"input_type_reset",search:"input_type_search",submit:"input_type_submit", +tel:"input_type_tel",text:"input_type_text",url:"input_type_url",week:"input_type_week"}; +cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG={A:"tag_link",ARTICLE:"tag_article",ASIDE:"tag_aside",AUDIO:"tag_audio",BUTTON:"tag_button",FOOTER:"tag_footer",H1:"tag_h1",H2:"tag_h2",H3:"tag_h3",H4:"tag_h4",H5:"tag_h5",H6:"tag_h6",HEADER:"tag_header",HGROUP:"tag_hgroup",LI:"tag_li",MARK:"tag_mark",NAV:"tag_nav",OL:"tag_ol",SECTION:"tag_section",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",TIME:"tag_time",UL:"tag_ul",VIDEO:"tag_video"}; +cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG={AUDIO:"tag_audio",BUTTON:"tag_button",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",VIDEO:"tag_video"};cvox.DomUtil.FORMATTING_TAGS="B BIG CITE CODE DFN EM I KBD SAMP SMALL SPAN STRIKE STRONG SUB SUP U VAR".split(" "); +cvox.DomUtil.isVisible=function(a,b){b=b||{};"undefined"===typeof b.checkAncestors&&(b.checkAncestors=!0);"undefined"===typeof b.checkDescendants&&(b.checkDescendants=!0);if("IFRAME"==a.tagName&&!a.src)return!1;if(cvox.AriaUtil.isForcedVisibleRecursive(a))return!0;if(b.checkAncestors&&cvox.DomUtil.hasInvisibleAncestor_(a))return!1;var c=b.checkDescendants;return cvox.DomUtil.hasVisibleNodeSubtree_(a,c)?!0:!1}; +cvox.DomUtil.hasInvisibleAncestor_=function(a){for(;a=a.parentElement;){var b=document.defaultView.getComputedStyle(a,null);if(cvox.DomUtil.isInvisibleStyle(b,!0))return!0}return!1}; +cvox.DomUtil.hasVisibleNodeSubtree_=function(a,b){if(!(a instanceof Element)){var c=document.defaultView.getComputedStyle(a.parentElement,null);return c=!cvox.DomUtil.isInvisibleStyle(c)}var c=document.defaultView.getComputedStyle(a,null),d=!cvox.DomUtil.isInvisibleStyle(c);if(d)return!0;c=cvox.DomUtil.isInvisibleStyle(c,!0);if(!b||c)return!1;c=a.childNodes;for(d=0;d<c.length;d++){var e=c[d];if(cvox.DomUtil.hasVisibleNodeSubtree_(e,b))return!0}return!1}; +cvox.DomUtil.isInvisibleStyle=function(a,b){return a?"none"!=a.display&&0!=parseFloat(a.opacity)&&(b||"hidden"!=a.visibility&&"collapse"!=a.visibility)?!1:!0:!1};cvox.DomUtil.isDisabled=function(a){if(a.disabled)return!0;for(;a=a.parentElement;)if("FIELDSET"==a.tagName&&a.disabled)return!0;return!1};cvox.DomUtil.isSemanticElt=function(a){return a.tagName&&(a=a.tagName,"SECTION"==a||"NAV"==a||"ARTICLE"==a||"ASIDE"==a||"HGROUP"==a||"HEADER"==a||"FOOTER"==a||"TIME"==a||"MARK"==a)?!0:!1}; +cvox.DomUtil.isLeafNode=function(a,b){if(!(a instanceof Element))return null==a.firstChild;var c=a;if(!b&&!cvox.DomUtil.isVisible(c,{checkAncestors:!1})||!b&&cvox.AriaUtil.isHidden(c)||cvox.AriaUtil.isLeafElement(c))return!0;switch(c.tagName){case "OBJECT":case "EMBED":case "VIDEO":case "AUDIO":case "IFRAME":case "FRAME":return!0}return cvox.DomPredicates.linkPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.headingPredicate([a])}):cvox.DomUtil.isLeafLevelControl(c)|| +!c.firstChild||cvox.DomUtil.isMath(c)?!0:cvox.DomPredicates.headingPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.controlPredicate([a])}):!1};cvox.DomUtil.isDescendantOf=function(a,b,c){for(;a;){if(b&&c&&a.tagName&&a.tagName==b&&a.className&&a.className==c||b&&!c&&a.tagName&&a.tagName==b||!b&&c&&a.className&&a.className==c)return!0;a=a.parentNode}return!1};cvox.DomUtil.isDescendantOfNode=function(a,b){for(;a&&b;){if(a.isSameNode(b))return!0;a=a.parentNode}return!1}; +cvox.DomUtil.collapseWhitespace=function(a){return a.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")}; +cvox.DomUtil.getBaseLabel_=function(a,b,c){var d="";if(a.hasAttribute){if(a.hasAttribute("aria-labelledby"))for(var e=a.getAttribute("aria-labelledby").split(" "),f,g=0;f=e[g];g++)(f=document.getElementById(f))&&(d+=" "+cvox.DomUtil.getName(f,!0,c,!0));else if(a.hasAttribute("aria-label"))d=a.getAttribute("aria-label");else if(a.constructor==HTMLImageElement)d=cvox.DomUtil.getImageTitle(a);else if("FIELDSET"==a.tagName)for(e=a.getElementsByTagName("LEGEND"),d="",g=0;f=e[g];g++)d+=" "+cvox.DomUtil.getName(f, +!0,c);0==d.length&&a&&a.id&&(a=document.querySelector('label[for="'+a.id+'"]'))&&(d=cvox.DomUtil.getName(a,b,c))}return cvox.DomUtil.collapseWhitespace(d)};cvox.DomUtil.getNearestAncestorLabel_=function(a){for(var b="";a&&"LABEL"!=a.tagName;)a=a.parentElement;a&&!a.hasAttribute("for")&&(b=cvox.DomUtil.getName(a,!0,!1));return b}; +cvox.DomUtil.getInputName_=function(a){var b="";"image"==a.type?b=cvox.DomUtil.getImageTitle(a):"submit"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Submit":"reset"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Reset":"button"==a.type&&a.hasAttribute("value")&&(b=a.getAttribute("value"));return b}; +cvox.DomUtil.getName=function(a,b,c,d){if(!a||!0==a.cvoxGetNameMarked)return"";a.cvoxGetNameMarked=!0;b=cvox.DomUtil.getName_(a,b,c,d);a.cvoxGetNameMarked=!1;a=cvox.DomUtil.getPrefixText(a);return a+b};cvox.DomUtil.hasChildrenBasedName_=function(a,b){return cvox.DomPredicates.linkPredicate([a])||cvox.DomPredicates.headingPredicate([a])||"BUTTON"==a.tagName||cvox.AriaUtil.isControlWidget(a)||!cvox.DomUtil.isLeafNode(a,b)?!0:!1}; +cvox.DomUtil.getName_=function(a,b,c,d){"undefined"===typeof b&&(b=!0);"undefined"===typeof c&&(c=!0);if(a.constructor==Text)return a.data;var e=cvox.DomUtil.getBaseLabel_(a,b,c);0==e.length&&cvox.DomUtil.isControl(a)&&(e=cvox.DomUtil.getNearestAncestorLabel_(a));0==e.length&&a.constructor==HTMLInputElement&&(e=cvox.DomUtil.getInputName_(a));return cvox.DomUtil.isInputTypeText(a)&&a.hasAttribute("placeholder")?(b=a.getAttribute("placeholder"),0<e.length?0<cvox.DomUtil.getValue(a).length?e:e+" with hint "+ +b:b):0<e.length?e:0==cvox.DomUtil.collapseWhitespace(a.textContent).length&&a.hasAttribute&&a.hasAttribute("title")?a.getAttribute("title"):!b||cvox.AriaUtil.isCompositeControl(a)?"":cvox.DomUtil.hasChildrenBasedName_(a,d)?cvox.DomUtil.getNameFromChildren(a,c,d):""}; +cvox.DomUtil.getNameFromChildren=function(a,b,c){void 0==b&&(b=!0);for(var d="",e="",f=0;f<a.childNodes.length;f++){var g=a.childNodes[f],e=a.childNodes[f-1]||g;if(b||!cvox.DomUtil.isControl(g)){var h=cvox.DomUtil.isVisible(g,{checkAncestors:!1});if(c||h&&!cvox.AriaUtil.isHidden(g))e="SPAN"==e.tagName||"SPAN"==g.tagName||"SPAN"==g.parentNode.tagName?"":" ",d+=e+cvox.DomUtil.getName(g,!0,b)}}return d}; +cvox.DomUtil.getPrefixText=function(a,b){b=b||0;for(var c=cvox.DomUtil.getAncestors(a),d="",e=c=cvox.DomPredicates.listItemPredicate(c);e&&e.firstChild;)e=e.firstChild;c&&c.parentNode&&0==b&&"OL"==c.parentNode.tagName&&a==e&&"none"!=document.defaultView.getComputedStyle(c.parentNode).listStyleType&&(d=cvox.DomUtil.toArray(c.parentNode.children).filter(function(a){return"LI"==a.tagName}),d=d.indexOf(c)+1,-1!=document.defaultView.getComputedStyle(c.parentNode).listStyleType.indexOf("latin")&&(d--,d= +String.fromCharCode(65+d%26)),d+=". ");return d}; +cvox.DomUtil.getControlLabelHeuristics=function(a){if(a.hasAttribute&&(a.hasAttribute("aria-label")&&""==a.getAttribute("aria-label")||a.hasAttribute("aria-title")&&""==a.getAttribute("aria-title")))return"";for(var b=cvox.DomUtil.previousLeafNode(a),c=0;b&&(!cvox.DomUtil.hasContent(b)||cvox.DomUtil.isControl(b));)b=cvox.DomUtil.previousLeafNode(b),c++;for(var c=cvox.DomUtil.directedNextLeafNode(a),d=0;c&&(!cvox.DomUtil.hasContent(c)||cvox.DomUtil.isControl(c));)c=cvox.DomUtil.directedNextLeafNode(c), +d++;if(b&&c){for(var d=a,e=0;d&&!cvox.DomUtil.isDescendantOfNode(b,d);)d=d.parentNode,e++;d=a;for(a=0;d&&!cvox.DomUtil.isDescendantOfNode(c,d);)d=d.parentNode,a++;b=a<e?c:b}else b=b||c;return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b)):""}; +cvox.DomUtil.getValue=function(a){var b=cvox.AriaUtil.getActiveDescendant(a);if(b)return cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b));if(a.constructor==HTMLSelectElement){var b="",c=a.selectedOptions?a.selectedOptions[0]:null;a=a.selectedOptions?a.selectedOptions[a.selectedOptions.length-1]:null;c&&a&&c!=a?b=cvox.ChromeVox.msgs.getMsg("selected_options_value",[c.text,a.text]):c&&(b=c.text+"");return b}if(a.constructor==HTMLTextAreaElement)return a.value;if(a.constructor== +HTMLInputElement)switch(a.type){case "hidden":case "image":case "submit":case "reset":case "button":case "checkbox":case "radio":return"";case "password":return a.value.replace(/./g,"dot ");default:return a.value}return a.isContentEditable?cvox.DomUtil.getNameFromChildren(a,!0):""}; +cvox.DomUtil.getImageTitle=function(a){a.hasAttribute("alt")?a=a.alt:a.hasAttribute("title")?a=a.title:(a=a.src,"data"!=a.substring(0,4)?(a=a.substring(a.lastIndexOf("/")+1,a.lastIndexOf(".")),a=1<=a.length&&16>=a.length?a+" Image":"Image"):a="Image");return a}; +cvox.DomUtil.hasContent=function(a){if(8==a.nodeType||cvox.DomUtil.isDescendantOf(a,"HEAD")||cvox.DomUtil.isDescendantOf(a,"SCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOSCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOEMBED")||cvox.DomUtil.isDescendantOf(a,"STYLE")||!cvox.DomUtil.isVisible(a)||cvox.AriaUtil.isHidden(a))return!1;if(cvox.DomUtil.isControl(a)||cvox.DomUtil.isDescendantOf(a,"VIDEO")||cvox.DomUtil.isDescendantOf(a,"AUDIO")||"IFRAME"==a.tagName&&a.src&&0!=a.src.indexOf("javascript:"))return!0; +for(var b="button,input,select,textarea",c=a.parentElement;c&&"LABEL"!=c.tagName;)c=c.parentElement;if(c){var d=c.querySelector(b);if(c.hasAttribute("for")){if(c=c.getAttribute("for"),(c=document.getElementById(c))&&cvox.DomUtil.isControl(c)&&!d)return!1}else if(d)return!1}for(d=a.parentElement;d&&"LEGEND"!=d.tagName;)d=d.parentElement;if(d){for(c=d.parentElement;c&&"FIELDSET"!=c.tagName;)c=c.parentElement;d=c&&c.querySelector(b);if(c&&!d)return!1}if(cvox.DomPredicates.linkPredicate([a])||"TABLE"== +a.tagName||cvox.DomUtil.isMath(a)||cvox.DomPredicates.headingPredicate([a]))return!0;b=cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a);a=cvox.DomUtil.getState(a,!0);return b.match(/^\s+$/)&&""===a?!1:!0};cvox.DomUtil.getAncestors=function(a){for(var b=[];a;)b.push(a),a=a.parentNode;for(b.reverse();b.length&&!b[0].tagName&&!b[0].nodeValue;)b.shift();return b};cvox.DomUtil.compareAncestors=function(a,b){for(var c=0;a[c]&&b[c]&&a[c]==b[c];)c++;a[c]||b[c]||(c=-1);return c}; +cvox.DomUtil.getUniqueAncestors=function(a,b,c){a=cvox.DomUtil.getAncestors(a);b=cvox.DomUtil.getAncestors(b);a=cvox.DomUtil.compareAncestors(a,b);a=b.slice(a);return 0==a.length&&c?b:a}; +cvox.DomUtil.getRoleMsg=function(a,b){var c;c=cvox.AriaUtil.getRoleNameMsg(a);c||("INPUT"==a.tagName?c=cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG[a.type]:"A"==a.tagName&&cvox.DomUtil.isInternalLink(a)?c="internal_link":"A"==a.tagName&&a.getAttribute("name")?c="":a.isContentEditable?c="input_type_text":cvox.DomUtil.isMath(a)?c="math_expr":"TABLE"==a.tagName&&cvox.DomUtil.isLayoutTable(a)?c="":b==cvox.VERBOSITY_BRIEF?c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG[a.tagName]:(c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG[a.tagName], +cvox.DomUtil.hasLongDesc(a)&&(c="image_with_long_desc"),!c&&a.onclick&&(c="clickable")));return c};cvox.DomUtil.getRole=function(a,b){var c=cvox.DomUtil.getRoleMsg(a,b)||"",d=c&&" "!=c?cvox.ChromeVox.msgs.getMsg(c):"";return d?d:c};cvox.DomUtil.getListLength=function(a){var b=0;for(a=a.firstChild;a;a=a.nextSibling)if("LI"==a.tagName||a.getAttribute&&"listitem"==a.getAttribute("role")){if(a.hasAttribute("aria-setsize")){var c=parseInt(a.getAttribute("aria-setsize"),10);if(!isNaN(c))return c}b++}return b}; +cvox.DomUtil.getStateMsgs=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(a);if(c)return cvox.DomUtil.getStateMsgs(c,b);var c=[],d=a.getAttribute?a.getAttribute("role"):"";(c=cvox.AriaUtil.getStateMsgs(a,b))||(c=[]);"INPUT"==a.tagName?a.hasAttribute("aria-checked")||(d={"checkbox-true":"checkbox_checked_state","checkbox-false":"checkbox_unchecked_state","radio-true":"radio_selected_state","radio-false":"radio_unselected_state"},(d=d[a.type+"-"+!!a.checked])&&c.push([d])):"SELECT"==a.tagName? +a.selectedOptions&&1>=a.selectedOptions.length?c.push(["list_position",cvox.ChromeVox.msgs.getNumber(a.selectedIndex+1),cvox.ChromeVox.msgs.getNumber(a.options.length)]):c.push(["selected_options_state",cvox.ChromeVox.msgs.getNumber(a.selectedOptions.length)]):"UL"!=a.tagName&&"OL"!=a.tagName&&"list"!=d||c.push(["list_with_items",cvox.ChromeVox.msgs.getNumber(cvox.DomUtil.getListLength(a))]);cvox.DomUtil.isDisabled(a)&&c.push(["aria_disabled_true"]);cvox.DomPredicates.linkPredicate([a])&&cvox.ChromeVox.visitedUrls[a.href]&& +c.push(["visited_url"]);a.accessKey&&c.push(["access_key",a.accessKey]);return c};cvox.DomUtil.getState=function(a,b){return cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,b))};cvox.DomUtil.isFocusable=function(a){return a&&"number"==typeof a.tabIndex&&("A"!=a.tagName||a.hasAttribute("href")||a.hasAttribute("tabindex"))?0<=a.tabIndex||a.hasAttribute&&a.hasAttribute("tabindex")&&"-1"==a.getAttribute("tabindex")?!0:!1:!1}; +cvox.DomUtil.findFocusableDescendant=function(a){return a&&(a=cvox.DomUtil.findNode(a,cvox.DomUtil.isFocusable))?a:null};cvox.DomUtil.countFocusableDescendants=function(a){return a?cvox.DomUtil.countNodes(a,cvox.DomUtil.isFocusable):0};cvox.DomUtil.isAttachedToDocument=function(a){for(;a;){if(a.tagName&&"HTML"==a.tagName)return!0;a=a.parentNode}return!1}; +cvox.DomUtil.clickElem=function(a,b,c,d){var e=cvox.AriaUtil.getActiveDescendant(a);e&&(a=e);if(c){c=null;a.onclick&&(c=a.onclick);!c&&1!=a.nodeType&&a.parentNode&&a.parentNode.onclick&&(c=a.parentNode.onclick);e=!0;if(c)try{e=c()}catch(f){}if(!e)return}c=document.createEvent("MouseEvents");d=d?"dblclick":"mousedown";c.initMouseEvent(d,!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(g){}c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup", +!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(h){}c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(k){}cvox.DomUtil.isInternalLink(a)&&cvox.DomUtil.syncInternalLink(a)}; +cvox.DomUtil.syncInternalLink=function(a){var b=a.href.split("#")[1];a=document.getElementById(b);a||(b=document.getElementsByName(b),0<b.length&&(a=b[0]));if(a){var b=a.parentNode,c=document.createElement("div");c.setAttribute("tabindex","-1");b.insertBefore(c,a);c.setAttribute("chromevoxignoreariahidden",1);c.focus();cvox.ChromeVox.syncToNode(a,!0)}}; +cvox.DomUtil.isInputTypeText=function(a){if(!a||a.constructor!=HTMLInputElement)return!1;switch(a.type){case "email":case "number":case "password":case "search":case "text":case "tel":case "url":case "":return!0;default:return!1}};cvox.DomUtil.isControl=function(a){if(cvox.AriaUtil.isControlWidget(a)&&cvox.DomUtil.isFocusable(a))return!0;if(a.tagName)switch(a.tagName){case "BUTTON":case "TEXTAREA":case "SELECT":return!0;case "INPUT":return"hidden"!=a.type}return a.isContentEditable?!0:!1}; +cvox.DomUtil.isLeafLevelControl=function(a){return cvox.DomUtil.isControl(a)?!(cvox.AriaUtil.isCompositeControl(a)&&cvox.DomUtil.findFocusableDescendant(a)):!1};cvox.DomUtil.getSurroundingControl=function(a){var b=null;if(!cvox.DomUtil.isControl(a)&&a.hasAttribute&&a.hasAttribute("role"))for(b=a.parentElement;b&&!cvox.AriaUtil.isCompositeControl(b);)b=b.parentElement;return b}; +cvox.DomUtil.directedNextLeafLikeNode=function(a,b,c){if(a!=document.body){for(;!cvox.DomUtil.directedNextSibling(a,b);){if(!a)return null;a=a.parentNode;if(a==document.body)return null}cvox.DomUtil.directedNextSibling(a,b)&&(a=cvox.DomUtil.directedNextSibling(a,b))}for(;cvox.DomUtil.directedFirstChild(a,b)&&!c(a);)a=cvox.DomUtil.directedFirstChild(a,b);return a==document.body?null:a};cvox.DomUtil.directedNextLeafNode=function(a,b){b=!!b;return cvox.DomUtil.directedNextLeafLikeNode(a,b,cvox.DomUtil.isLeafNode)}; +cvox.DomUtil.previousLeafNode=function(a){return cvox.DomUtil.directedNextLeafNode(a,!0)};cvox.DomUtil.directedFindFirstNode=function(a,b,c){for(a=cvox.DomUtil.directedFirstChild(a,b);a;){if(c(a))return a;var d=cvox.DomUtil.directedFindFirstNode(a,b,c);if(d)return d;a=cvox.DomUtil.directedNextSibling(a,b)}return null};cvox.DomUtil.directedFindDeepestNode=function(a,b,c){var d=cvox.DomUtil.directedFindFirstNode(a,b,c);return d?cvox.DomUtil.directedFindDeepestNode(d,b,c):c(a)?a:null}; +cvox.DomUtil.directedFindNextNode=function(a,b,c,d,e,f){e=!!e;f=!!f;if(!cvox.DomUtil.isDescendantOfNode(a,b)||a==b)return null;for(var g=cvox.DomUtil.directedNextSibling(a,c);g;){if(!f&&d(g))return g;var h=(f?cvox.DomUtil.directedFindDeepestNode:cvox.DomUtil.directedFindFirstNode)(g,c,d);if(h)return h;if(f&&d(g))return g;g=cvox.DomUtil.directedNextSibling(g,c)}a=a.parentNode;return e&&d(a)?a:cvox.DomUtil.directedFindNextNode(a,b,c,d,e,f)}; +cvox.DomUtil.getControlValueAndStateString=function(a){var b=cvox.DomUtil.getSurroundingControl(a);return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a)+" "+cvox.DomUtil.getState(a,!0)):cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getState(a,!0))};cvox.DomUtil.isInternalLink=function(a){return 1==a.nodeType&&(a=a.getAttribute("href"))&&-1!=a.indexOf("#")?(a=a.split("#")[0],""==a||a==window.location.pathname):!1}; +cvox.DomUtil.getLinkURL=function(a){if("A"==a.tagName){if(a.getAttribute("href"))return cvox.DomUtil.isInternalLink(a)?cvox.ChromeVox.msgs.getMsg("internal_link"):a.getAttribute("href")}else if(cvox.AriaUtil.getRoleName(a)==cvox.ChromeVox.msgs.getMsg("aria_role_link"))return cvox.ChromeVox.msgs.getMsg("unknown_link");return""};cvox.DomUtil.getContainingTable=function(a,b){var c=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findTableNodeInList(c,b)}; +cvox.DomUtil.findTableNodeInList=function(a,b){b=b||{allowCaptions:!1};for(var c=a.length-1,d;d=a[c];c--)if(d.constructor!=Text){if(!b.allowCaptions&&"CAPTION"==d.tagName)break;if("TABLE"==d.tagName||cvox.AriaUtil.isGrid(d))return d}return null}; +cvox.DomUtil.isLayoutTable=function(a){if(a.rows&&(1==a.rows.length||1==a.rows[0].childElementCount))return!0;if(cvox.AriaUtil.isGrid(a)||cvox.AriaUtil.isLandmark(a)||a.caption||a.summary||0<cvox.XpathUtil.evalXPath("tbody/tr/th",a).length&&0<cvox.XpathUtil.evalXPath("tbody/tr/td",a).length||0<cvox.XpathUtil.evalXPath("colgroup",a).length||0<cvox.XpathUtil.evalXPath("thead",a).length||0<cvox.XpathUtil.evalXPath("tfoot",a).length)return!1;if(0<cvox.XpathUtil.evalXPath("tbody/tr/td/embed",a).length|| +0<cvox.XpathUtil.evalXPath("tbody/tr/td/object",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/iframe",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/applet",a).length)return!0;var b=0;cvox.DomUtil.hasBorder(a)||b++;6>=a.rows.length&&b++;12>=cvox.DomUtil.countPreviousTags(a)&&b++;0<cvox.XpathUtil.evalXPath("tbody/tr/td/table",a).length&&b++;return 3<=b};cvox.DomUtil.countPreviousTags=function(a){var b=cvox.DomUtil.getAncestors(a);return b.length+cvox.DomUtil.countPreviousSiblings(a)}; +cvox.DomUtil.countPreviousSiblings=function(a){var b=0;for(a=a.previousSibling;null!=a;)a.constructor!=Text&&b++,a=a.previousSibling;return b};cvox.DomUtil.hasBorder=function(a){return a.frame?-1==a.frame.indexOf("void"):a.border?1==a.border.length?"0"!=a.border:0!=a.border.slice(0,-2):a.style.borderStyle&&"none"==a.style.borderStyle?!1:a.style.borderWidth?0!=a.style.borderWidth.slice(0,-2):a.style.borderColor?!0:!1}; +cvox.DomUtil.getFirstLeafNode=function(){for(var a=document.body;a&&a.firstChild;)a=a.firstChild;for(;a&&!cvox.DomUtil.hasContent(a);)a=cvox.DomUtil.directedNextLeafNode(a);return a};cvox.DomUtil.findNode=function(a,b){var c=[],d=cvox.DomUtil.findNodes_(a,b,c,!0,1E4);return d?c[0]:void 0};cvox.DomUtil.countNodes=function(a,b){var c=[];cvox.DomUtil.findNodes_(a,b,c,!1,1E4);return c.length}; +cvox.DomUtil.findNodes_=function(a,b,c,d,e){if(null!=a||0==e)for(a=a.firstChild;a;){if(b(a)&&(c.push(a),d))return!0;e-=1;if(cvox.DomUtil.findNodes_(a,b,c,d,e))return!0;a=a.nextSibling}return!1};cvox.DomUtil.toArray=function(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);return b}; +cvox.DomUtil.shallowChildlessClone=function(a,b){if("#text"==a.nodeName)return document.createTextNode(a.nodeValue);if("#comment"==a.nodeName)return document.createComment(a.nodeValue);for(var c=document.createElement(a.nodeName),d=0;d<a.attributes.length;++d){var e=a.attributes[d];b&&b[e.nodeName]||c.setAttribute(e.nodeName,e.nodeValue)}return c}; +cvox.DomUtil.deepClone=function(a,b){for(var c=cvox.DomUtil.shallowChildlessClone(a,b),d=0;d<a.childNodes.length;++d)c.appendChild(cvox.DomUtil.deepClone(a.childNodes[d],b));return c};cvox.DomUtil.directedFirstChild=function(a,b){return b?a.lastChild:a.firstChild};cvox.DomUtil.directedNextSibling=function(a,b){return a?b?a.previousSibling:a.nextSibling:null};cvox.DomUtil.createSimpleClickFunction=function(a){var b=a.cloneNode(!0);return function(){cvox.DomUtil.clickElem(b,!1,!1)}}; +cvox.DomUtil.addNodeToHead=function(a,b){if(!b||!document.getElementById(b)){var c=document.head||document.body;c.appendChild(a)}};cvox.DomUtil.getContainingMath=function(a){a=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findMathNodeInList(a)};cvox.DomUtil.findMathNodeInList=function(a){for(var b=0,c;c=a[b];b++)if(cvox.DomUtil.isMath(c))return c;return null};cvox.DomUtil.isMath=function(a){return cvox.DomUtil.isMathml(a)||cvox.DomUtil.isMathJax(a)||cvox.DomUtil.isMathImg(a)||cvox.AriaUtil.isMath(a)}; +cvox.DomUtil.ALT_MATH_CLASSES={tex:["tex","latex"],asciimath:["numberedequation","inlineformula","displayformula"]};cvox.DomUtil.altMathQuerySelector=function(a){return(a=cvox.DomUtil.ALT_MATH_CLASSES[a])?a.map(function(a){return"img."+a}).join(", "):""};cvox.DomUtil.isMathImg=function(a){if(!a||!a.tagName||!a.className||"IMG"!=a.tagName)return!1;a=a.className.toLowerCase();return-1!=cvox.DomUtil.ALT_MATH_CLASSES.tex.indexOf(a)||-1!=cvox.DomUtil.ALT_MATH_CLASSES.asciimath.indexOf(a)}; +cvox.DomUtil.isMathml=function(a){return a&&a.tagName?"math"==a.tagName.toLowerCase():!1};cvox.DomUtil.isMathJax=function(a){function b(a,b){return"SPAN"==a.tagName&&a.className.split(" ").some(function(a){return a.toLowerCase()==b})}return a&&a.tagName&&a.className?b(a,"math")?(a=cvox.DomUtil.getAncestors(a),a.some(function(a){return b(a,"mathjax")})):!1:!1};cvox.DomUtil.getMathSpanId=function(a){if(a=document.getElementById(a+"-Frame"))if(a=a.querySelector("span.math"))return a.id}; +cvox.DomUtil.hasLongDesc=function(a){return a&&a.longDesc?!0:!1};cvox.DomUtil.getNodeTagName=function(a){return a.nodeType==Node.ELEMENT_NODE?a.tagName:""};cvox.DomUtil.purgeNodes=function(a){return cvox.DomUtil.toArray(a).filter(function(a){return a.nodeType!=Node.TEXT_NODE||!a.textContent.match(/^\s+$/)})};cvox.DomUtil.elementToPoint=function(a){if(!a)return{x:0,y:0};a.constructor==Text&&(a=a.parentNode);a=a.getBoundingClientRect();return{x:a.left+a.width/2,y:a.top+a.height/2}};cvox.SelectionUtil=function(){};cvox.SelectionUtil.cleanUpParagraphForward=function(a){for(;3==a.focusNode.nodeType;){var b=a.focusNode,c=a.focusOffset;a.modify("extend","forward","sentence");if(b==a.focusNode&&c==a.focusOffset)return!1}return!0};cvox.SelectionUtil.cleanUpParagraphBack=function(a){for(var b,c;3==a.focusNode.nodeType&&(b=a.focusNode,c=a.focusOffset,a.modify("extend","backward","sentence"),b!=a.focusNode||c!=a.focusOffset););return!0}; +cvox.SelectionUtil.cleanUpSentence=function(a){for(var b=!0;b;)if(3==a.focusNode.nodeType){var c=a.focusNode,d=a.focusOffset;if(0<a.rangeCount&&0<a.getRangeAt(0).endOffset)if("."==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else if(" "==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else{if(a.modify("extend","forward","sentence"),c==a.focusNode&&d==a.focusOffset)return!1}else break}else break;return!0}; +cvox.SelectionUtil.findSelPosition=function(a){if(0==a.rangeCount)return[0,0];var b=a.getRangeAt(0).getBoundingClientRect();if(!b)return[0,0];a=window.pageYOffset+b.top;b=window.pageXOffset+b.left;return[a,b]};cvox.SelectionUtil.findTopLeftPosition=function(a){var b=0,c=0;if(a.offsetParent)for(b=a.offsetLeft,c=a.offsetTop,a=a.offsetParent;null!==a;)b+=a.offsetLeft,c+=a.offsetTop,a=a.offsetParent;return[c,b]}; +cvox.SelectionUtil.isSelectionValid=function(a){var b=RegExp(/^\s+$/);return!(b.test(a.toString())||""==a.toString())};cvox.SelectionUtil.isRangeValid=function(a){a=a.cloneContents().textContent;var b=RegExp(/^\s+$/);return!(b.test(a)||""==a)};cvox.SelectionUtil.findPos_=function(a){var b=0,c=0;if(a.offsetParent){do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent)}return[b,c]}; +cvox.SelectionUtil.scrollElementsToView=function(a){for(;a&&!a.getBoundingClientRect;)a=a.parentElement;if(a){for(var b=a,c=b.parentElement;b!=document.body&&c;)b.scrollTop=b.offsetTop,b.scrollLeft=b.offsetLeft,b=c,c=b.parentElement;a=cvox.SelectionUtil.findPos_(a);window.scrollTo(a[0]-window.innerWidth/2,a[1]-window.innerHeight/2)}}; +cvox.SelectionUtil.scrollToSelection=function(a){if(0!=a.rangeCount){cvox.SelectionUtil.scrollElementsToView(a.focusNode);var b=cvox.SelectionUtil.findSelPosition(a);a=b[0];var b=b[1],c=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=window.innerWidth||document.documentElement.innerWidth||document.body.clientWidth;b<e&&(b=0);c+d<a?(a-=d,window.scroll(b,a+100)):a<c&&window.scroll(b, +a-100)}};cvox.SelectionUtil.isAllWs=function(a){return!/[^\t\n\r ]/.test(a.data)};cvox.SelectionUtil.isIgnorable=function(a){return 8==a.nodeType||3==a.nodeType&&cvox.SelectionUtil.isAllWs(a)};cvox.SelectionUtil.nodeBefore=function(a){for(;a=a.previousSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};cvox.SelectionUtil.nodeAfter=function(a){for(;a=a.nextSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null}; +cvox.SelectionUtil.lastChildNode=function(a){for(a=a.lastChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.previousSibling}return null};cvox.SelectionUtil.firstChildNode=function(a){for(a=a.firstChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.nextSibling}return null};cvox.SelectionUtil.dataOf=function(a){a=a.data;a=a.replace(/[\t\n\r ]+/g," ");" "==a.charAt(0)&&(a=a.substring(1,a.length));" "==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));return a}; +cvox.SelectionUtil.hasContentWithTag=function(a,b){if(!a||!a.anchorNode||!a.focusNode)return!1;if(a.anchorNode.tagName&&a.anchorNode.tagName==b||a.focusNode.tagName&&a.focusNode.tagName==b||a.anchorNode.parentNode.tagName&&a.anchorNode.parentNode.tagName==b||a.focusNode.parentNode.tagName&&a.focusNode.parentNode.tagName==b)return!0;var c=a.getRangeAt(0).cloneContents(),d=document.createElement("span");d.appendChild(c);return 0<d.getElementsByTagName(b).length}; +cvox.SelectionUtil.selectText=function(a,b,c){var d=document.createRange();d.setStart(a,b);d.setEnd(a,c);a=window.getSelection();a.removeAllRanges();a.addRange(d)};cvox.SelectionUtil.selectAllTextInNode=function(a){var b=document.createRange();b.setStart(a,0);b.setEndAfter(a);a=window.getSelection();a.removeAllRanges();a.addRange(b)}; +cvox.SelectionUtil.collapseToStart=function(a){var b=window.getSelection(),c=b.anchorNode,d=b.anchorOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};cvox.SelectionUtil.collapseToEnd=function(a){var b=window.getSelection(),c=b.focusNode,d=b.focusOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)}; +cvox.SelectionUtil.getText=function(){var a=window.getSelection();if(cvox.SelectionUtil.hasContentWithTag(a,"IMG")){var b="",a=a.getRangeAt(0).cloneContents(),c=document.createElement("span");c.appendChild(a);for(var a=cvox.XpathUtil.getLeafNodes(c),c=0,d;d=a[c];c++)b=b+" "+cvox.DomUtil.getName(d);return b}return this.getSelectionText_()};cvox.SelectionUtil.getSelectionText_=function(){return""+window.getSelection()}; +cvox.SelectionUtil.getRangeText=function(a){return a?a.cloneContents().textContent.replace(/\s+/g," "):""};cvox.TraverseUtil=function(){};cvox.TraverseUtil.getNodeText=function(a){return a.constructor==Text?a.data:""};cvox.TraverseUtil.treatAsLeafNode=function(a){return 0==a.childNodes.length||"SELECT"==a.nodeName||"listbox"==a.getAttribute("role")||"OBJECT"==a.nodeName};cvox.TraverseUtil.isWhitespace=function(a){return" "==a||"\n"==a||"\r"==a||"\t"==a}; +cvox.TraverseUtil.setSelection=function(a,b){var c=window.getSelection();c.removeAllRanges();var d=document.createRange();d.setStart(a.node,a.index);d.setEnd(b.node,b.index);c.addRange(d);return c};cvox.TraverseUtil.isHidden=function(a){if(a instanceof HTMLElement&&"true"==a.getAttribute("aria-hidden"))return!0;switch(a.tagName){case "SCRIPT":case "NOSCRIPT":return!0}return!1}; +cvox.TraverseUtil.forwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index;e<a.node.childNodes.length;e++){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.index=0,a.text=cvox.TraverseUtil.getNodeText(a.node),a.node instanceof HTMLElement&&b.push(a.node);else{if(a.index<a.text.length)return a.text[a.index++];for(;null!= +a.node;){d=null;for(f=a.node.nextSibling;null!=f;f=f.nextSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=0;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof HTMLElement&&c.push(a.node),a.node=a.node.parentNode, +a.text=null,a.index=0;else return null}}}}; +cvox.TraverseUtil.backwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index-1;0<=e;e--){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.text=cvox.TraverseUtil.getNodeText(a.node),a.index=a.text.length?a.text.length:a.node.childNodes.length,a.node instanceof HTMLElement&&b.push(a.node);else{if(0<a.text.length&&0<a.index)return a.text[--a.index]; +for(;;){d=null;for(f=a.node.previousSibling;null!=f;f=f.previousSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=a.text.length?a.text.length:a.node.childNodes.length;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof +HTMLElement&&c.push(a.node),a.node=a.node.parentNode,a.text=null,a.index=0;else return null}}}}; +cvox.TraverseUtil.getNextChar=function(a,b,c,d,e){a.copyFrom(b);var f=cvox.TraverseUtil.forwardsChar(b,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(b.node);)if(f=cvox.TraverseUtil.forwardsChar(b,c,d),null==f)return null;if(e||!g)return a.copyFrom(b),a.index--,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return b.index--,a.copyFrom(b),a.index--," ";b.index--;return" "}; +cvox.TraverseUtil.getPreviousChar=function(a,b,c,d,e){b.copyFrom(a);var f=cvox.TraverseUtil.backwardsChar(a,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(a.node);)if(f=cvox.TraverseUtil.backwardsChar(a,c,d),null==f)return null;if(e||!g)return b.copyFrom(a),b.index++,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return a.index++,b.copyFrom(a),b.index++," ";a.index++;return" "}; +cvox.TraverseUtil.getNextWord=function(a,b,c,d){var e=b.clone(),f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.forwardsChar(e,c,d),null==f)return null;a.copyFrom(e);a.index--;b.copyFrom(e);a=f;c=[];d=[];f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return a;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d&&(a+=f,b.copyFrom(e),f=cvox.TraverseUtil.forwardsChar(e,c,d),null!= +f););return a}; +cvox.TraverseUtil.getPreviousWord=function(a,b,c,d){var e=a.clone(),f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.backwardsChar(e,c,d),null==f)return null;b.copyFrom(e);b.index++;a.copyFrom(e);b=f;c=[];d=[];f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return b;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d.length&&(b=f+b,a.copyFrom(e),f=cvox.TraverseUtil.backwardsChar(e,c, +d),null!=f););return b};cvox.TraverseUtil.includesBreakTagOrSkippedNode=function(a,b,c){for(var d=0;d<a.length;d++){if(cvox.TraverseUtil.isHidden(a[d]))return!0;var e=window.getComputedStyle(a[d],null);if(e&&"inline"!=e.display||c[a[d].tagName])return!0}for(d=0;d<b.length;d++)if((e=window.getComputedStyle(b[d],null))&&"inline"!=e.display||c[b[d].tagName])return!0;return!1}; +cvox.TraverseUtil.getNextSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){return"."==a.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};cvox.TraverseUtil.getPreviousSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){return"."==b.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})}; +cvox.TraverseUtil.getNextLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=b.clone();return cvox.TraverseUtil.getNextString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.bottom!=g.bottom&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(b.node)))return b.copyFrom(h),!0;g=c;h.copyFrom(b);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})}; +cvox.TraverseUtil.getPreviousLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=a.clone();return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.top!=g.top&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(a.node)))return a.copyFrom(h),!0;g=c;h.copyFrom(a);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})}; +cvox.TraverseUtil.getNextParagraph=function(a,b,c,d){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})}; +cvox.TraverseUtil.getPreviousParagraph=function(a,b,c,d){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})}; +cvox.TraverseUtil.getNextString=function(a,b,c,d,e){c=b.clone();d=b.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getNextWord(c,d,f,g);if(null==k)return null;for(a.copyFrom(c);!(h&&e(h,k,f,g)||(h&&(h+=" "),h+=k,b.copyFrom(d),f=[],g=[],k=cvox.TraverseUtil.getNextWord(c,d,f,g),null==k)););return h}; +cvox.TraverseUtil.getPreviousString=function(a,b,c,d,e){c=a.clone();d=a.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getPreviousWord(c,d,f,g);if(null==k)return null;for(b.copyFrom(d);!(h&&e(h,k,f,g)||(h&&(h=" "+h),h=k+h,a.copyFrom(c),f=[],g=[],k=cvox.TraverseUtil.getPreviousWord(c,d,f,g),null==k)););return h};cvox.CursorSelection=function(a,b,c){this.start=a.clone();this.end=b.clone();void 0==c&&(c=!1);if((this.isReversed_=c)&&this.start.node.compareDocumentPosition(this.end.node)==cvox.CursorSelection.BEFORE||!this.isReversed_&&this.end.node.compareDocumentPosition(this.start.node)==cvox.CursorSelection.BEFORE)a=this.start,this.start=this.end,this.end=a};cvox.CursorSelection.BEFORE=4; +cvox.CursorSelection.prototype.setReversed=function(a){if(a==this.isReversed_)return this;var b=this.start;this.start=this.end;this.end=b;this.isReversed_=a;return this};cvox.CursorSelection.prototype.isReversed=function(){return this.isReversed_};cvox.CursorSelection.prototype.absStart=function(){return this.isReversed_?this.end:this.start};cvox.CursorSelection.prototype.absEnd=function(){return this.isReversed_?this.start:this.end}; +cvox.CursorSelection.prototype.clone=function(){return new cvox.CursorSelection(this.start,this.end,this.isReversed_)};cvox.CursorSelection.prototype.select=function(){var a=window.getSelection();a.removeAllRanges();this.normalize();a.addRange(this.getRange())};cvox.CursorSelection.fromNode=function(a){if(!a)return null;var b=cvox.TraverseUtil.getNodeText(a);return new cvox.CursorSelection(new cvox.Cursor(a,0,b),new cvox.Cursor(a,0,b))};cvox.CursorSelection.fromBody=function(){return cvox.CursorSelection.fromNode(document.body)}; +cvox.CursorSelection.prototype.getText=function(){return this.start.equals(this.end)?cvox.TraverseUtil.getNodeText(this.start.node):cvox.SelectionUtil.getRangeText(this.getRange())};cvox.CursorSelection.prototype.getRange=function(){var a=document.createRange();this.isReversed_?(a.setStart(this.end.node,this.end.index),a.setEnd(this.start.node,this.start.index)):(a.setStart(this.start.node,this.start.index),a.setEnd(this.end.node,this.end.index));return a}; +cvox.CursorSelection.prototype.equals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)};cvox.CursorSelection.prototype.absEquals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)||this.end.equals(a.start)&&this.start.equals(a.end)};cvox.CursorSelection.prototype.directedBefore=function(a){var b=this.start.node.compareDocumentPosition(a.start.node)==cvox.CursorSelection.BEFORE;return this.start.node==a.start.node||(this.isReversed()?!b:b)}; +cvox.CursorSelection.prototype.normalize=function(){if(0==this.absEnd().index&&this.absEnd().node){var a=this.absEnd().node,b=document.createRange();b.selectNodeContents(a);this.absEnd().index=b.endOffset}return this};cvox.CursorSelection.prototype.collapse=function(){if(this.start.equals(this.end))return this;this.end.copyFrom(this.start);if(0==this.start.text.length)return this;this.isReversed()?0<this.end.index&&this.end.index--:this.end.index<this.end.text.length&&this.end.index++;return this};cvox.PlatformUtil={};cvox.PlatformFilter={NONE:0,WINDOWS:1,MAC:2,LINUX:4,WML:7,CHROMEOS:8,ANDROID:16};cvox.PlatformUtil.matchesPlatform=function(a){var b=navigator.userAgent;return void 0==a?!0:-1!=b.indexOf("Android")?0!=(a&cvox.PlatformFilter.ANDROID):-1!=b.indexOf("Win")?0!=(a&cvox.PlatformFilter.WINDOWS):-1!=b.indexOf("Mac")?0!=(a&cvox.PlatformFilter.MAC):-1!=b.indexOf("Linux")?0!=(a&cvox.PlatformFilter.LINUX):-1!=b.indexOf("CrOS")?0!=(a&cvox.PlatformFilter.CHROMEOS):!1};cvox.Spannable=function(a,b){this.string_=a||"";this.spans_=[];if(goog.isDef(b)){var c=this.string_.length;this.spans_.push({value:b,start:0,end:c})}};cvox.Spannable.prototype.toString=function(){return this.string_};cvox.Spannable.prototype.getLength=function(){return this.string_.length};cvox.Spannable.prototype.setSpan=function(a,b,c){this.removeSpan(a);if(0<=b&&b<=c&&c<=this.string_.length)this.spans_.push({value:a,start:b,end:c});else throw new RangeError("span out of range");}; +cvox.Spannable.prototype.removeSpan=function(a){for(var b=this.spans_.length-1;0<=b;b--)this.spans_[b].value===a&&this.spans_.splice(b,1)};cvox.Spannable.prototype.append=function(a){if(a instanceof cvox.Spannable){var b=a,c=this.getLength();this.string_+=b.string_;a.spans_.forEach(goog.bind(function(a){this.setSpan(a.value,a.start+c,a.end+c)},this))}else"string"===typeof a&&(this.string_+=a)}; +cvox.Spannable.prototype.getSpan=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.start<=a&&a<c.end)return c.value}};cvox.Spannable.prototype.getSpanInstanceOf=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value instanceof a)return c.value}};cvox.Spannable.prototype.getSpans=function(a){for(var b=[],c=0;c<this.spans_.length;c++){var d=this.spans_[c];d.start<=a&&a<d.end&&b.push(d.value)}return b}; +cvox.Spannable.prototype.getSpanStart=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.start}return null};cvox.Spannable.prototype.getSpanEnd=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.end}return null}; +cvox.Spannable.prototype.substring=function(a,b){var c=goog.isDef(b)?b:this.string_.length;if(0>a||c>this.string_.length||a>c)throw new RangeError("substring indices out of range");for(var d=new cvox.Spannable(this.string_.substring(a,c)),e=0;e<this.spans_.length;e++){var f=this.spans_[e];if(f.start<=c&&f.end>=a){var g=Math.max(0,f.start-a),h=Math.min(c-a,f.end-a);d.spans_.push({value:f.value,start:g,end:h})}}return d}; +cvox.Spannable.prototype.trim=function(){if(/^\s*$/.test(this.string_))return this.substring(0,0);var a=this.string_.match(/^\s*/)[0].length,b=this.string_.match(/\s*$/).index;return this.substring(a,b)};cvox.NavBraille=function(a){this.text=a.text instanceof cvox.Spannable?a.text:new cvox.Spannable(a.text);this.startIndex=a.startIndex?a.startIndex:0;this.endIndex=a.endIndex?a.endIndex:0};cvox.NavBraille.fromText=function(a){return new cvox.NavBraille({text:a})};cvox.NavBraille.prototype.isEmpty=function(){return 0==this.text.getLength()};cvox.NavBraille.prototype.toString=function(){return'NavBraille(text="'+this.text.toString()+'" startIndex="'+this.startIndex+'" endIndex="'+this.endIndex+'")'}; +cvox.NavBraille.prototype.toJson=function(){return{text:this.text.toString(),startIndex:this.startIndex,endIndex:this.endIndex}};cvox.NavBraille.prototype.write=function(){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.CHROMEOS|cvox.PlatformFilter.ANDROID)&&cvox.ChromeVox.braille.write(this)};cvox.BrailleKeyCommand={PAN_LEFT:"pan_left",PAN_RIGHT:"pan_right",LINE_UP:"line_up",LINE_DOWN:"line_down",TOP:"top",BOTTOM:"bottom",ROUTING:"routing",SECONDARY_ROUTING:"secondary_routing",DOTS:"dots",STANDARD_KEY:"standard_key"};cvox.BrailleKeyEvent={};cvox.BrailleInterface=function(){};cvox.BrailleInterface.prototype.write=function(){};cvox.AbstractBraille=function(){};cvox.AbstractHost=function(){};cvox.AbstractHost.State={ACTIVE:0,INACTIVE:1,KILLED:2};cvox.AbstractHost.prototype.init=function(){};cvox.AbstractHost.prototype.reinit=function(){};cvox.AbstractHost.prototype.onPageLoad=function(){};cvox.AbstractHost.prototype.getApiSrc=function(){return""};cvox.AbstractHost.prototype.getFileSrc=function(){return""};cvox.AbstractHost.prototype.hasTtsCallback=function(){return!0};cvox.AbstractHost.prototype.ttsLoaded=function(){return!0}; +cvox.AbstractHost.prototype.mustRedispatchClickEvent=function(){return!1};cvox.AbstractHost.prototype.activateOrDeactivateChromeVox=function(a){this.onStateChanged_(a?cvox.AbstractHost.State.ACTIVE:cvox.AbstractHost.State.INACTIVE)};cvox.AbstractHost.prototype.killChromeVox=function(){this.onStateChanged_(cvox.AbstractHost.State.KILLED)}; +cvox.AbstractHost.prototype.onStateChanged_=function(a){var b=a==cvox.AbstractHost.State.ACTIVE;if(b!=cvox.ChromeVox.isActive)switch(cvox.ChromeVoxEventWatcher.cleanup(window),a){case cvox.AbstractHost.State.ACTIVE:cvox.ChromeVox.isActive=!0;cvox.ChromeVox.navigationManager.showOrHideIndicator(!0);cvox.ChromeVoxEventWatcher.init(window);document.activeElement?(a=document.hasFocus()&&!document.webkitHidden,cvox.ApiImplementation.syncToNode(document.activeElement,a)):cvox.ChromeVox.navigationManager.updateIndicator(); +break;case cvox.AbstractHost.State.INACTIVE:cvox.ChromeVox.isActive=!1;cvox.ChromeVox.navigationManager.showOrHideIndicator(!1);cvox.ChromeVoxEventWatcher.init(window);break;case cvox.AbstractHost.State.KILLED:cvox.ChromeVox.isActive=!1,cvox.ChromeVox.navigationManager.showOrHideIndicator(!1)}};cvox.MathJaxInterface=function(){};cvox.MathJaxInterface.prototype.isMathjaxActive=function(){};cvox.MathJaxInterface.prototype.getAllJax=function(){};cvox.MathJaxInterface.prototype.registerSignal=function(){};cvox.MathJaxInterface.prototype.injectScripts=function(){};cvox.MathJaxInterface.prototype.configMediaWiki=function(){};cvox.MathJaxInterface.prototype.getTex=function(){};cvox.MathJaxInterface.prototype.getAsciiMath=function(){};cvox.AbstractMathJax=function(){};cvox.AbstractMathJax.prototype.getAllTexs=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("tex")),c=0,d;d=b[c];c++)this.getTex(a,d)};cvox.AbstractMathJax.prototype.getAllAsciiMaths=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("asciimath")),c=0,d;d=b[c];c++)this.getAsciiMath(a,d)}; +cvox.AbstractMathJax.prototype.convertMarkupToDom=function(a,b,c){if(b){var d=new DOMParser;b=b.replace(/>\s+</g,"><");a(d.parseFromString(b,"text/xml").firstChild,c)}};cvox.AbstractMsgs=function(){};cvox.AbstractMsgs.prototype.getMsg=function(){};cvox.AbstractMsgs.prototype.getNumber=function(){};cvox.HostFactory=function(){};cvox.HostFactory.getHost=function(){return new cvox.HostFactory.hostConstructor};cvox.HostFactory.getTts=function(){return new cvox.HostFactory.ttsConstructor};cvox.HostFactory.getBraille=function(){return new cvox.HostFactory.brailleConstructor};cvox.HostFactory.getMsgs=function(){return new cvox.HostFactory.msgsConstructor};cvox.HostFactory.getEarcons=function(){return new cvox.HostFactory.earconsConstructor};cvox.HostFactory.getMathJax=function(){return new cvox.HostFactory.mathJaxConstructor};cvox.SpokenMessage=function(){this.raw=this.id=this.count=null};cvox.SpokenMessages={};cvox.SpokenMessages.messages=[];cvox.SpokenMessages.speakFlush=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_FLUSH)};cvox.SpokenMessages.speakQueued=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_QUEUE)}; +cvox.SpokenMessages.speak=function(a){for(var b=0;b<cvox.SpokenMessages.messages.length;++b){var c=cvox.SpokenMessages.messages[b];if(!c||!c.id&&!c.raw)throw"Invalid message received.";var d="";if(null!=c.count)if(0>=c.count)try{d+=cvox.ChromeVox.msgs.getMsg(c.id[0]+"_optional_default")}catch(e){continue}else d=1==c.count?d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_singular"):d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_plural",[c.count]);else d=c.raw?d+c.raw:d+cvox.ChromeVox.msgs.getMsg.apply(cvox.ChromeVox.msgs, +c.id);cvox.ChromeVox.tts.speak(d,a,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=cvox.AbstractTts.QUEUE_MODE_QUEUE}cvox.SpokenMessages.messages=[]};cvox.SpokenMessages.currentMessage=function(){if(0==cvox.SpokenMessages.messages.length)throw"Invalid usage of SpokenMessages; start the chain using $m()";return cvox.SpokenMessages.messages[cvox.SpokenMessages.messages.length-1]};cvox.SpokenMessages.withCount=function(a){cvox.SpokenMessages.currentMessage().count=a;return cvox.SpokenMessages}; +cvox.SpokenMessages.andIndexTotal=function(a,b){var c=new cvox.SpokenMessage;c.raw=cvox.ChromeVox.msgs.getMsg("index_total",[a,b]);cvox.SpokenMessages.messages.push(c);return cvox.SpokenMessages};cvox.SpokenMessages.andEnd=function(){return cvox.SpokenMessages.andMessage("end")};cvox.SpokenMessages.andMessage=function(a){var b=new cvox.SpokenMessage;b.id="string"==typeof a?[a]:a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages}; +cvox.SpokenMessages.andRawMessage=function(a){var b=new cvox.SpokenMessage;b.raw=a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};cvox.SpokenMessages.andPause=function(){return cvox.SpokenMessages.andMessage("pause")};cvox.$m=cvox.SpokenMessages.andMessage;cvox.CompositeTts=function(){this.ttsEngines_=[]};cvox.CompositeTts.prototype.add=function(a){this.ttsEngines_.push(a);return this};cvox.CompositeTts.prototype.speak=function(a,b,c){this.ttsEngines_.forEach(function(d){d.speak(a,b,c)})};cvox.CompositeTts.prototype.isSpeaking=function(){return this.ttsEngines_.some(function(a){return a.isSpeaking()})};cvox.CompositeTts.prototype.stop=function(){this.ttsEngines_.forEach(function(a){a.stop()})}; +cvox.CompositeTts.prototype.increaseOrDecreaseProperty=function(a,b){this.ttsEngines_.forEach(function(c){c.increaseOrDecreaseProperty(a,b)})};cvox.CompositeTts.prototype.getDefaultProperty=function(a){for(var b=0,c;c=this.ttsEngines_[b];b++)if(c=c.getDefaultProperty(a))return c};cvox.BuildInfo={};cvox.BuildInfo.build="1384906195.369502";cvox.ChromeVoxJSON||(cvox.ChromeVoxJSON={}); +window.JSON&&"[object JSON]"==window.JSON.toString()?cvox.ChromeVoxJSON=window.JSON:function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,n,s,u=f,t,r=d[a];r&&"object"===typeof r&&"function"===typeof r.toJSON&&(r=r.toJSON(a));"function"===typeof k&&(r=k.call(d,a,r));switch(typeof r){case "string":return b(r); +case "number":return isFinite(r)?String(r):"null";case "boolean":case "null":return String(r);case "object":if(!r)return"null";f+=g;t=[];if("[object Array]"===Object.prototype.toString.apply(r)){s=r.length;for(e=0;e<s;e+=1)t[e]=c(e,r)||"null";n=0===t.length?"[]":f?"[\n"+f+t.join(",\n"+f)+"\n"+u+"]":"["+t.join(",")+"]";f=u;return n}if(k&&"object"===typeof k)for(s=k.length,e=0;e<s;e+=1)h=k[e],"string"===typeof h&&(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);else for(h in r)Object.hasOwnProperty.call(r,h)&& +(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);n=0===t.length?"{}":f?"{\n"+f+t.join(",\n"+f)+"\n"+u+"}":"{"+t.join(",")+"}";f=u;return n}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":"null"},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()}); +var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof cvox.ChromeVoxJSON.stringify&&(cvox.ChromeVoxJSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&& +(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});"function"!==typeof cvox.ChromeVoxJSON.parse&&(cvox.ChromeVoxJSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=String(a);d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})); +if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})}();"undefined"!=typeof goog&&goog.provide&&(cvox.ApiUtil={});window.cvox||(window.cvox={});cvox.ApiUtils=function(){};cvox.ApiUtils.nextCvoxId_=1; +cvox.ApiUtils.makeNodeReference=function(a){if(a.id&&document.getElementById(a.id)==a)return{id:a.id};if(a instanceof HTMLElement){var b=cvox.ApiUtils.nextCvoxId_;a.setAttribute("cvoxid",b);cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+1)%100;return{cvoxid:b}}if(a.parentElement){for(var c=a.parentElement,d=-1,b=0;b<c.childNodes.length;b++)if(c.childNodes[b]==a){d=b;break}if(0<=d)return b=cvox.ApiUtils.nextCvoxId_,c.setAttribute("cvoxid",b),cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+ +1)%100,{cvoxid:b,childIndex:d}}throw"Cannot reference node: "+a;};cvox.ApiUtils.getNodeFromRef=function(a){if(a.id)return document.getElementById(a.id);if(a.cvoxid){var b='*[cvoxid="'+a.cvoxid+'"]';(b=document.querySelector(b))&&b.removeAttribute&&b.removeAttribute("cvoxid");return null!=a.childIndex?b.childNodes[a.childIndex]:b}throw"Bad node reference: "+cvox.ChromeVoxJSON.stringify(a);};cvox.ScriptInstaller={}; +cvox.ScriptInstaller.installScript=function(a,b,c,d){if(document.querySelector("script["+b+"]")||!a)return!1;for(var e=0,f;f=a[e];e++){var g=new XMLHttpRequest,h=f+"?"+(new Date).getTime();g.onreadystatechange=function(){if(4==g.readyState){var a=g.responseText,a=a+("\n//# sourceURL="+f+"\n"),c=document.createElement("script");c.type="text/javascript";c.setAttribute(b,"1");c.textContent=a;d&&c.setAttribute("chromevoxScriptBase",d);cvox.DomUtil.addNodeToHead(c)}};try{g.open("GET",h,!1),g.send(null)}catch(k){return window.console.log("Warning: ChromeVox external script loading for "+ +document.location+" stopped after failing to install "+f),!1}}c&&c();return!0};cvox.ApiImplementation=function(){};cvox.ApiImplementation.init=function(a){window.addEventListener("message",cvox.ApiImplementation.portSetup,!0);var b=[];b.push(cvox.ChromeVox.host.getFileSrc("chromevox/injected/api_util.js"));b.push(cvox.ChromeVox.host.getApiSrc());b.push(cvox.ApiImplementation.siteSpecificScriptLoader);a=cvox.ScriptInstaller.installScript(b,"cvoxapi",a,cvox.ApiImplementation.siteSpecificScriptBase);a||(window.location.href="javascript:cvox.Api.internalEnable();")}; +cvox.ApiImplementation.portSetup=function(a){return"cvox.PortSetup"==a.data?(cvox.ApiImplementation.port=a.ports[0],cvox.ApiImplementation.port.onmessage=function(a){cvox.ApiImplementation.dispatchApiMessage(cvox.ChromeVoxJSON.parse(a.data))},a.stopPropagation(),!1):!0}; +cvox.ApiImplementation.dispatchApiMessage=function(a){var b;switch(a.cmd){case "speak":b=cvox.ApiImplementation.speak;break;case "speakNodeRef":b=cvox.ApiImplementation.speakNodeRef;break;case "stop":b=cvox.ApiImplementation.stop;break;case "playEarcon":b=cvox.ApiImplementation.playEarcon;break;case "syncToNodeRef":b=cvox.ApiImplementation.syncToNodeRef;break;case "clickNodeRef":b=cvox.ApiImplementation.clickNodeRef;break;case "getBuild":b=cvox.ApiImplementation.getBuild;break;case "getVersion":b= +cvox.ApiImplementation.getVersion;break;case "getCurrentNode":b=cvox.ApiImplementation.getCurrentNode;break;case "getCvoxModKeys":b=cvox.ApiImplementation.getCvoxModKeys;break;case "isKeyShortcut":b=cvox.ApiImplementation.isKeyShortcut;break;case "setKeyEcho":b=cvox.ApiImplementation.setKeyEcho;break;case "Math.defineRule":b=cvox.ApiImplementation.Math.defineRule}if(!b)throw"Unknown API call: "+a.cmd;b.apply(cvox.ApiImplementation,a.args)}; +function setupEndCallback_(a,b){var c=function(){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:b}))};a&&(a.endCallback=c)}cvox.ApiImplementation.speak=function(a,b,c,d){cvox.ChromeVox.isActive&&(d||(d={}),setupEndCallback_(d,a),cvox.ChromeVox.tts.speak(b,c,d))};cvox.ApiImplementation.speakNode=function(a,b,c){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.speak(cvox.DomUtil.getName(a),b,c)}; +cvox.ApiImplementation.speakNodeRef=function(a,b,c,d){b=cvox.ApiUtils.getNodeFromRef(b);d||(d={});setupEndCallback_(d,a);cvox.ApiImplementation.speakNode(b,c,d)};cvox.ApiImplementation.stop=function(){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.stop()};cvox.ApiImplementation.playEarcon=function(a){cvox.ChromeVox.isActive&&cvox.ChromeVox.earcons.playEarconByName(a)};cvox.ApiImplementation.syncToNodeRef=function(a,b){var c=cvox.ApiUtils.getNodeFromRef(a);cvox.ApiImplementation.syncToNode(c,b)}; +cvox.ApiImplementation.syncToNode=function(a,b,c){cvox.ChromeVox.isActive&&(void 0==c&&(c=cvox.AbstractTts.QUEUE_MODE_FLUSH),cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a,!0),cvox.ChromeVox.navigationManager.updateIndicator(),void 0==b&&(b=!1),cvox.AriaUtil.isHiddenRecursive(a)&&(b=!1),b&&cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ApiImplementation.getDesc_(a),c,null),cvox.ChromeVox.navigationManager.getBraille().write(),cvox.ChromeVox.navigationManager.updatePosition(a))}; +cvox.ApiImplementation.getCurrentNode=function(a){var b=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,currentNode:cvox.ApiUtils.makeNodeReference(b)}))}; +cvox.ApiImplementation.getDesc_=function(a){if(!a.hasAttribute("cvoxnodedesc"))return cvox.ChromeVox.navigationManager.getDescription();a=cvox.ChromeVoxJSON.parse(a.getAttribute("cvoxnodedesc"));for(var b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b};cvox.ApiImplementation.clickNodeRef=function(a,b){cvox.DomUtil.clickElem(cvox.ApiUtils.getNodeFromRef(a),b,!1)}; +cvox.ApiImplementation.getBuild=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,build:cvox.BuildInfo.build}))};cvox.ApiImplementation.getVersion=function(a){var b=cvox.ChromeVox.version;null==b?window.setTimeout(function(){cvox.ApiImplementation.getVersion(a)},1E3):cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,version:b}))}; +cvox.ApiImplementation.getCvoxModKeys=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,keyCodes:cvox.KeyUtil.cvoxModKeyCodes()}))};cvox.ApiImplementation.isKeyShortcut=function(a,b){var c=cvox.KeyUtil.keyEventToKeySequence(b);cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,isHandled:cvox.ChromeVoxKbHandler.handlerKeyMap.hasKey(c)}))}; +cvox.ApiImplementation.setKeyEcho=function(a){var b=cvox.ChromeVox.keyEcho;b[document.location.href]=a;JSON.stringify(b)};cvox.ApiImplementation.Math=function(){};cvox.ApiImplementation.Math.defineRule=function(a,b,c,d,e){var f=cvox.MathmlStore.getInstance(),g=Array.prototype.slice.call(arguments,4),g=[a,b,c,d].concat(g);f.defineRule.apply(f,g)};cvox.ConsoleTts=function(){this.enabled_=!1};goog.addSingletonGetter(cvox.ConsoleTts);cvox.ConsoleTts.prototype.speak=function(a,b,c){if(this.enabled_&&window.console){var d="Speak",d=b==cvox.AbstractTts.QUEUE_MODE_FLUSH?d+" (I)":d+" (Q)",d=d+(' "'+a+'"');window.console.log(d);c&&void 0!=c.startCallback&&window.console.log(" using startCallback");c&&void 0!=c.endCallback&&window.console.log(" using endCallback")}return this};cvox.ConsoleTts.prototype.isSpeaking=function(){return!1}; +cvox.ConsoleTts.prototype.stop=function(){this.enabled_&&window.console.log("Stop")};cvox.ConsoleTts.prototype.increaseOrDecreaseProperty=function(){};cvox.ConsoleTts.prototype.setEnabled=function(a){this.enabled_=a};cvox.ConsoleTts.prototype.getDefaultProperty=function(){};cvox.ChromeVoxHTMLDateWidget=function(a,b){var c=this;this.pos_=0;var d=2;if("month"==a.type||"week"==a.type)d=1;this.maxPos_=d;this.dateElem_=a;this.dateTts_=b;this.pDay_=this.pWeek_=this.pMonth_=this.pYear_=-1;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};0==this.dateElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e); +e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e)}this.dateElem_.addEventListener("keydown",this.keyListener_,!1);this.dateElem_.addEventListener("keyup",this.keyListener_,!1);this.dateElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)}; +cvox.ChromeVoxHTMLDateWidget.prototype.shutdown=function(){this.dateElem_.removeEventListener("blur",this.blurListener_,!1);this.dateElem_.removeEventListener("keydown",this.keyListener_,!1);this.dateElem_.removeEventListener("keyup",this.keyListener_,!1)}; +cvox.ChromeVoxHTMLDateWidget.prototype.forceInitTime_=function(){var a=new Date,b="",b=a.getFullYear()+"",c=a.getMonth()+1+"";2>c.length&&(c="0"+c);var d=a.getDate()+"";switch(this.dateElem_.type){case "month":b=b+"-"+c;break;case "week":a.setHours(0,0,0);a.setDate(a.getDate()+4-(a.getDay()||7));c=new Date(a.getFullYear(),0,1);a=Math.ceil(((a-c)/864E5+1)/7)+"";2>a.length&&(a="0"+a);a="W"+a;b=b+"-"+a;break;default:b=b+"-"+c+"-"+d}this.dateElem_.setAttribute("value",b)}; +cvox.ChromeVoxHTMLDateWidget.prototype.handlePosChange_=function(){this.pos_=Math.max(this.pos_,0);this.pos_=Math.min(this.pos_,this.maxPos_);switch(this.pos_){case 0:"week"==this.dateElem_.type?this.pWeek_=-1:this.pMonth_=-1;break;case 1:"date"==this.dateElem_.type?this.pDay_=-1:this.pYear_=-1;break;case 2:this.pYear_=-1}}; +cvox.ChromeVoxHTMLDateWidget.prototype.update_=function(a){var b=this.dateElem_.value.split("-");if(1>b.length)this.forceInitTime_();else{var c=-1,d=-1,e=-1,f=-1,c=parseInt(b[0],10);"week"==this.dateElem_.type?e=parseInt(b[1].replace("W",""),10):"date"==this.dateElem_.type?(d=parseInt(b[1],10),f=parseInt(b[2],10)):d=parseInt(b[1],10);b="";a&&(b=cvox.DomUtil.getName(this.dateElem_,!0,!0)+"\n");e!=this.pWeek_&&(b=b+cvox.ChromeVox.msgs.getMsg("datewidget_week")+e+"\n",this.pWeek_=e);if(d!=this.pMonth_){a= +"";switch(d){case 1:a=cvox.ChromeVox.msgs.getMsg("datewidget_january");break;case 2:a=cvox.ChromeVox.msgs.getMsg("datewidget_february");break;case 3:a=cvox.ChromeVox.msgs.getMsg("datewidget_march");break;case 4:a=cvox.ChromeVox.msgs.getMsg("datewidget_april");break;case 5:a=cvox.ChromeVox.msgs.getMsg("datewidget_may");break;case 6:a=cvox.ChromeVox.msgs.getMsg("datewidget_june");break;case 7:a=cvox.ChromeVox.msgs.getMsg("datewidget_july");break;case 8:a=cvox.ChromeVox.msgs.getMsg("datewidget_august"); +break;case 9:a=cvox.ChromeVox.msgs.getMsg("datewidget_september");break;case 10:a=cvox.ChromeVox.msgs.getMsg("datewidget_october");break;case 11:a=cvox.ChromeVox.msgs.getMsg("datewidget_november");break;case 12:a=cvox.ChromeVox.msgs.getMsg("datewidget_december")}b=b+a+"\n";this.pMonth_=d}f!=this.pDay_&&(b=b+f+"\n",this.pDay_=f);c!=this.pYear_&&(b=b+c+"\n",this.pYear_=c);0<b.length&&this.dateTts_.speak(b,0,null)}}; +cvox.ChromeVoxHTMLDateWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.BrailleTextHandler=function(a){this.braille_=a};cvox.BrailleTextHandler.prototype.changed=function(a,b,c,d){var e;d?(e=cvox.NavBraille.fromText(a),e.startIndex=b,e.endIndex=c):cvox.ChromeVox.navigationManager&&(e=cvox.ChromeVox.navigationManager.getBraille());e&&this.braille_.write(e)};cvox.ContentEditableExtractor=function(){this.text_="";this.end_=this.start_=0;this.lines_={};this.characterToLineMap_=[]}; +cvox.ContentEditableExtractor.prototype.update=function(a){for(var b={0:{startIndex:0,endIndex:0}},c=new cvox.Cursor(a,0,""),d=c.clone(),e=document.createRange(),f,g=0,h=null,k="",l=0,m=-1,p=-1,q=window.getSelection(),n=new cvox.Cursor(q.baseNode,q.baseOffset,""),q=new cvox.Cursor(q.extentNode,q.extentOffset,""),s=!1,u=!1;;){f=[];var t=[],r=cvox.TraverseUtil.forwardsChar(d,f,t),v=!1;r||(v=!0);for(f=0;f<t.length&&!v;f++)t[f]==a&&(v=!0);if(v)break;e.setStart(c.node,c.index);e.setEnd(d.node,d.index); +if((f=e.getBoundingClientRect())&&0!=f.width&&0!=f.height){null!==h&&f.bottom!=h&&0<l&&k.substr(-1).match(/\S/)&&r.match(/\S/)&&(k+="\n",l++);if(c.node!=d.node&&0<d.index&&(e.setStart(d.node,d.index-1),f=e.getBoundingClientRect(),!f||0==f.width||0==f.height))continue;!s&&-1==m&&d.node==n.node&&d.index>=n.index&&(d.index>n.index?m=l:s=!0);!u&&-1==p&&d.node==q.node&&d.index>=q.index&&(d.index>q.index?p=l:u=!0);null===h?h=f.bottom:f.bottom!=h&&(b[g].endIndex=l,g++,b[g]={startIndex:l,endIndex:l},h=f.bottom); +k+=r;l++;c=d.clone();s&&(m=l,s=!1);u&&(p=l,u=!1)}}b[g].endIndex=l;a=[];for(f=0;f<=g;f++)for(c=b[f].startIndex;c<=b[f].endIndex;c++)a[c]=f;this.text_=k;this.characterToLineMap_=a;this.lines_=b;this.start_=0<=m?m:k.length;this.end_=0<=p?p:k.length};cvox.ContentEditableExtractor.prototype.getText=function(){return this.text_};cvox.ContentEditableExtractor.prototype.getStartIndex=function(){return this.start_};cvox.ContentEditableExtractor.prototype.getEndIndex=function(){return this.end_}; +cvox.ContentEditableExtractor.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.ContentEditableExtractor.prototype.getLineStart=function(a){return this.lines_[a].startIndex};cvox.ContentEditableExtractor.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.EditableTextAreaShadow=function(){this.shadowElement_=document.createElement("div");this.lines_={};this.characterToLineMap_=[]}; +cvox.EditableTextAreaShadow.prototype.update=function(a){for(document.body.appendChild(this.shadowElement_);this.shadowElement_.childNodes.length;)this.shadowElement_.removeChild(this.shadowElement_.childNodes[0]);this.shadowElement_.style.cssText=window.getComputedStyle(a,null).cssText;this.shadowElement_.style.position="absolute";this.shadowElement_.style.top=-9999;this.shadowElement_.style.left=-9999;this.shadowElement_.setAttribute("aria-hidden","true");var b=a.value,c=document.createTextNode(b+ +".");this.shadowElement_.appendChild(c);a={0:{startIndex:0,endIndex:0}};for(var d=document.createRange(),e=0,f=0,g=0,h=null,k=!1,l;e<=b.length;){d.setStart(c,e);if(e+8>b.length||0<=b.substr(e,8).indexOf("\n"))k=!0;k?(e++,d.setEnd(c,e),l=d.getBoundingClientRect()):(d.setEnd(c,e+8),l=d.getBoundingClientRect(),l.bottom==h?e+=8:(l&&null!==h&&(k=!0),e++,d.setEnd(c,e),l=d.getBoundingClientRect()));0<e&&"\n"==b[e-1]?(a[g].endIndex=e-1,g++,a[g]={startIndex:e,endIndex:e},h=null,k=!1,f=e):l&&null===h?h=l.bottom: +l&&l.bottom!=h&&(a[g].endIndex=f,g++,a[g]={startIndex:f,endIndex:f},h=l?l.bottom:null,k=!1);l&&(f=e)}a[g].endIndex=b.length;b=[];for(c=0;c<=g;c++)for(d=a[c].startIndex;d<=a[c].endIndex;d++)b[d]=c;this.characterToLineMap_=b;this.lines_=a;document.body.removeChild(this.shadowElement_)};cvox.EditableTextAreaShadow.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.EditableTextAreaShadow.prototype.getLineStart=function(a){return this.lines_[a].startIndex}; +cvox.EditableTextAreaShadow.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.TextChangeEvent=function(a,b,c,d){this.value=a;this.start=b;this.end=c;this.triggeredByUser=d;this.start>this.end&&(a=this.end,this.end=this.start,this.start=a)};cvox.TypingEcho={CHARACTER:0,WORD:1,CHARACTER_AND_WORD:2,NONE:3,COUNT:4};cvox.TypingEcho.cycle=function(a){return(a+1)%cvox.TypingEcho.COUNT};cvox.TypingEcho.shouldSpeakChar=function(a){return a==cvox.TypingEcho.CHARACTER_AND_WORD||a==cvox.TypingEcho.CHARACTER};cvox.TextHandlerInterface=function(){}; +cvox.TextHandlerInterface.prototype.changed=function(){};cvox.ChromeVoxEditableTextBase=function(a,b,c,d,e){this.value=a;this.start=b;this.end=c;this.isPassword=d;this.tts=e;this.multiline=!1;this.brailleHandler_=cvox.ChromeVox.braille?new cvox.BrailleTextHandler(cvox.ChromeVox.braille):void 0};cvox.ChromeVoxEditableTextBase.useIBeamCursor=cvox.ChromeVox.isMac;cvox.ChromeVoxEditableTextBase.eventTypingEcho=!1;cvox.ChromeVoxEditableTextBase.prototype.maxShortPhraseLen=60; +cvox.ChromeVoxEditableTextBase.prototype.isPassword=!1;cvox.ChromeVoxEditableTextBase.prototype.lastChangeDescribed=!1;cvox.ChromeVoxEditableTextBase.prototype.getValue=function(){var a="";if(this.multiline){if(a+="multiline editable text. ",this.start==this.end)var b=this.getLine(this.getLineIndex(this.start)),a=b?a+b:a+"blank"}else a=this.node?a+cvox.DomUtil.getValue(this.node):a+this.value,a=a<=this.maxShortPhraseLen?a+", editable text":a.substring(0,this.maxShortPhraseLen)+", editable text";return a}; +cvox.ChromeVoxEditableTextBase.prototype.getLineIndex=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineStart=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineEnd=function(){return this.value.length};cvox.ChromeVoxEditableTextBase.prototype.getLine=function(a){var b=this.getLineStart(a);a=this.getLineEnd(a);b=this.value.substr(b,a-b);return b.replace(/^\s+|\s+$/g,"")};cvox.ChromeVoxEditableTextBase.prototype.isWordBreakChar=function(a){return!!a.match(/^\W$/)}; +cvox.ChromeVoxEditableTextBase.prototype.isLastChar=function(a){return void 0==this.getLineIndex(a.start+1)};cvox.ChromeVoxEditableTextBase.prototype.speak=function(a,b,c){if(!this.node||document.activeElement==this.node){var d=cvox.AbstractTts.QUEUE_MODE_QUEUE;!0===b&&(d=cvox.AbstractTts.QUEUE_MODE_FLUSH);this.tts.speak(a,d,c||{})}}; +cvox.ChromeVoxEditableTextBase.prototype.changed=function(a){if(a.value!=this.value||a.start!=this.start||a.end!=this.end||this.isLastChar(a)){if(a.value==this.value?this.describeSelectionChanged(a):this.describeTextChanged(a),this.lastChangeDescribed=!0,this.value=a.value,this.start=a.start,this.end=a.end,this.brailleHandler_){var b=this.getLine(this.getLineIndex(a.start)),c=this.getLineStart(this.getLineIndex(a.start)),d=a.start-c;a=a.end-c;this.brailleHandler_.changed(b,d,a,this.multiline)}}else this.lastChangeDescribed= +!1}; +cvox.ChromeVoxEditableTextBase.prototype.describeSelectionChanged=function(a){if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser);else if(a.start==a.end)if(this.start!=this.end)this.speak(cvox.ChromeVox.msgs.getMsg("Unselected"),a.triggeredByUser);else if(this.getLineIndex(this.start)!=this.getLineIndex(a.start)){var b=this.getLine(this.getLineIndex(a.start));""==b&&(b=cvox.ChromeVox.msgs.getMsg("text_box_blank"));this.speak(b, +a.triggeredByUser)}else this.start==a.start+1||this.start==a.start-1?cvox.ChromeVoxEditableTextBase.useIBeamCursor?this.speak(this.value.substr(Math.min(this.start,a.start),1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):a.start==this.value.length?this.speak(cvox.ChromeVox.msgs.getMsg("end"),a.triggeredByUser):this.speak(this.value.substr(a.start,1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):this.speak(this.value.substr(Math.min(this.start,a.start),Math.abs(this.start- +a.start)),a.triggeredByUser);else this.start+1==a.start&&this.end==this.value.length&&a.end==this.value.length?(this.speak(this.value.substr(this.start,1),a.triggeredByUser),this.speak(this.value.substr(a.start))):this.start==this.end?(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected"))):this.start==a.start&&this.end<a.end?(this.speak(this.value.substr(this.end,a.end-this.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))): +this.start==a.start&&this.end>a.end?(this.speak(this.value.substr(a.end,this.end-a.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):this.end==a.end&&this.start>a.start?(this.speak(this.value.substr(a.start,this.start-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):this.end==a.end&&this.start<a.start?(this.speak(this.value.substr(this.start,a.start-this.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))): +(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected")))}; +cvox.ChromeVoxEditableTextBase.prototype.describeTextChanged=function(a){var b={};a.value.length<this.value.length&&(b=cvox.AbstractTts.PERSONALITY_DELETED);if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser,b);else{var c=this.value,d=c.length,e=a.value.length,f="",g=a.value,h=a.end;a.start<h&&h==e&&(f=g.substr(a.start),g=g.substr(0,a.start),h=a.start);var k=this.start,l=d-this.end;if(e>=k+l+(h-a.start)&&g.substr(0,k)== +c.substr(0,k)&&g.substr(e-l)==c.substr(this.end))this instanceof cvox.ChromeVoxEditableContentEditable&&!(e<d||this.isWordBreakChar(a.value[e-1]||""))||this.describeTextChangedHelper(a,k,l,f,b);else if(k=a.start,l=e-h,this.start==this.end&&a.start==h&&g.substr(0,k)==c.substr(0,k)&&g.substr(e-l)==c.substr(d-l))this.describeTextChangedHelper(a,k,l,f,b);else{g+=f;if(g.length==c.length+1||g.length+1==c.length){if(g.length>c.length){if(0==g.indexOf(c)){this.speak(g[g.length-1],a.triggeredByUser,b);return}if(1== +g.indexOf(c)){this.speak(g[0],a.triggeredByUser,b);return}}if(g.length<c.length){if(0==c.indexOf(g)){this.speak(c[c.length-1],a.triggeredByUser,b);return}if(1==c.indexOf(g)){this.speak(c[0],a.triggeredByUser,b);return}}}if(this.multiline)a.value.length<this.value.length&&this.speak(cvox.ChromeVox.msgs.getMsg("text_deleted"),a.triggeredByUser,b);else if(e<=this.maxShortPhraseLen)this.describeTextChangedHelper(a,0,0,"",b);else{for(k=0;k<d&&k<e&&c[k]==g[k];)k++;for(;0<k&&!this.isWordBreakChar(c[k-1]);)k--; +for(l=0;l<d-k&&l<e-k&&c[d-l-1]==g[e-l-1];)l++;for(;0<l&&!this.isWordBreakChar(c[d-l]);)l--;this.describeTextChangedHelper(a,k,l,"",b)}}}}; +cvox.ChromeVoxEditableTextBase.prototype.describeTextChangedHelper=function(a,b,c,d,e){var f=this.value.length,g=a.value.length,f=f-b-c,h=this.value.substr(b,f),k=g-b-c;c=a.value.substr(b,k);var l="",g=a.triggeredByUser;if(1<k)l=c;else if(1==k)if((cvox.ChromeVox.typingEcho==cvox.TypingEcho.WORD||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)&&this.isWordBreakChar(c)&&0<b&&!this.isWordBreakChar(a.value.substr(b-1,1))){for(f=b;0<f&&!this.isWordBreakChar(a.value[f-1]);)f--;f<b?l=a.value.substr(f, +b+1-f):(l=c,g=!1)}else{if(cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)l=cvox.ChromeVoxEditableTextBase.eventTypingEcho?"":c}else 1<f&&!d?l=h+", deleted":1==f&&(l=h);d&&l?l+=", "+d:d&&(l=d);l&&this.speak(l,g,e)};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextCharacter=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousCharacter=function(){return!1}; +cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextParagraph=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousParagraph=function(){return!1}; +cvox.ChromeVoxEditableElement=function(a,b,c,d,e,f){cvox.ChromeVoxEditableTextBase.call(this,b,c,d,e,f);this.node=a;this.justSpokeDescription_=!1};goog.inherits(cvox.ChromeVoxEditableElement,cvox.ChromeVoxEditableTextBase);cvox.ChromeVoxEditableElement.prototype.changed=function(a){this.justSpokeDescription_&&this.value==a.value&&(this.value=a.value,this.start=a.start,this.end=a.end,this.justSpokeDescription_=!1);cvox.ChromeVoxEditableElement.superClass_.changed.call(this,a)}; +cvox.ChromeVoxEditableElement.prototype.getValue=function(){this.justSpokeDescription_=!0;return cvox.ChromeVoxEditableElement.superClass_.getValue.call(this)};cvox.ChromeVoxEditableElement.prototype.moveCursorToNextCharacter=function(){var a=this.node;a.selectionEnd++;a.selectionStart=a.selectionEnd;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousCharacter=function(){var a=this.node;a.selectionStart--;a.selectionEnd=a.selectionStart;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToNextWord=function(){var a=this.node,b=a.value.length,c=/\W+/gm,d=a.value.substring(a.selectionEnd),e=c.exec(d);null!==e&&0==e.index&&(e=c.exec(d));b=null===e?b:e.index+a.selectionEnd;a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousWord=function(){for(var a=this.node,b=/\W+/gm,c=a.value.substring(0,a.selectionStart),d=0;null!==b.exec(c);)b.lastIndex<a.selectionStart&&(d=b.lastIndex);a.selectionStart=a.selectionEnd=d;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToNextParagraph=function(){var a=this.node,b=a.value.length,c=a.selectionEnd>=b?b:a.value.indexOf("\n",a.selectionEnd);0>c&&(c=b);a.selectionStart=a.selectionEnd=c+1;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousParagraph=function(){var a=this.node,b=0>=a.selectionStart?0:a.value.lastIndexOf("\n",a.selectionStart-2)+1;0>b&&(b=0);a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableHTMLInput=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,"password"===a.type,b)};goog.inherits(cvox.ChromeVoxEditableHTMLInput,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableHTMLInput.prototype.update=function(a){var b=this.node.value;a=new cvox.TextChangeEvent(b,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,!1,b);this.multiline=!0;this.shadowIsCurrent_=!1};goog.inherits(cvox.ChromeVoxEditableTextArea,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableTextArea.prototype.update=function(a){this.node.value!=this.value&&(this.shadowIsCurrent_=!1);a=new cvox.TextChangeEvent(this.node.value,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineIndex=function(a){return this.getShadow().getLineIndex(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineStart=function(a){return this.getShadow().getLineStart(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineEnd=function(a){return this.getShadow().getLineEnd(a)}; +cvox.ChromeVoxEditableTextArea.prototype.getShadow=function(){var a=cvox.ChromeVoxEditableTextArea.shadow_;a||(a=cvox.ChromeVoxEditableTextArea.shadow_=new cvox.EditableTextAreaShadow);this.shadowIsCurrent_||(a.update(this.node),this.shadowIsCurrent_=!0);return a}; +cvox.ChromeVoxEditableTextArea.prototype.moveCursorToNextLine=function(){var a=this.node,b=a.value.length;if(a.selectionEnd>=b)return!1;var c=this.getShadow(),d=c.getLineIndex(a.selectionEnd),e=c.getLineStart(d),e=a.selectionEnd-e,f=0==b?0:c.getLineIndex(b-1),b=d>=f?b:Math.min(c.getLineStart(d+1)+e,c.getLineEnd(d+1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableTextArea.prototype.moveCursorToPreviousLine=function(){var a=this.node;if(0>=a.selectionStart)return!1;var b=this.getShadow(),c=b.getLineIndex(a.selectionStart),d=b.getLineStart(c),d=a.selectionStart-d,b=0>=c?0:Math.min(b.getLineStart(c-1)+d,b.getLineEnd(c-1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableContentEditable=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,"",0,0,!1,b);this.extractorIsCurrent_=!1;var c=this.getExtractor();this.value=c.getText();this.start=c.getStartIndex();this.end=c.getEndIndex();this.multiline=!0};goog.inherits(cvox.ChromeVoxEditableContentEditable,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableContentEditable.prototype.update=function(a){this.extractorIsCurrent_=!1;a=new cvox.TextChangeEvent(this.getExtractor().getText(),this.getExtractor().getStartIndex(),this.getExtractor().getEndIndex(),a);this.changed(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineIndex=function(a){return this.getExtractor().getLineIndex(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineStart=function(a){return this.getExtractor().getLineStart(a)}; +cvox.ChromeVoxEditableContentEditable.prototype.getLineEnd=function(a){return this.getExtractor().getLineEnd(a)};cvox.ChromeVoxEditableContentEditable.prototype.getExtractor=function(){var a=cvox.ChromeVoxEditableContentEditable.extractor_;a||(a=cvox.ChromeVoxEditableContentEditable.extractor_=new cvox.ContentEditableExtractor);this.extractorIsCurrent_||(a.update(this.node),this.extractorIsCurrent_=!0);return a}; +cvox.ChromeVoxEditableContentEditable.prototype.describeSelectionChanged=function(a){a.triggeredByUser&&(this.start==this.end&&a.start==a.end&&1!=Math.abs(this.start-a.start)&&this.isLastChar(a)?this.speak(cvox.ChromeVox.msgs.getMsg("text_box_blank"),!0):cvox.ChromeVoxEditableContentEditable.superClass_.describeSelectionChanged.call(this,a))}; +cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextCharacter=function(){window.getSelection().modify("move","forward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousCharacter=function(){window.getSelection().modify("move","backward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextParagraph=function(){window.getSelection().modify("move","forward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousParagraph=function(){window.getSelection().modify("move","backward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEventSuspender=function(){};cvox.ChromeVoxEventSuspender.suspendLevel_=0;cvox.ChromeVoxEventSuspender.enterSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_+=1};cvox.ChromeVoxEventSuspender.exitSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_-=1};cvox.ChromeVoxEventSuspender.areEventsSuspended=function(){return 0<cvox.ChromeVoxEventSuspender.suspendLevel_}; +cvox.ChromeVoxEventSuspender.withSuspendedEvents=function(a){return function(){cvox.ChromeVoxEventSuspender.enterSuspendEvents();var b=a.apply(this,arguments);cvox.ChromeVoxEventSuspender.exitSuspendEvents();return b}};cvox.ChromeVoxEventSuspender.makeSuspendableHandler=function(a,b){return function(){return cvox.ChromeVoxEventSuspender.areEventsSuspended()?b:a()}};cvox.Focuser={}; +cvox.Focuser.setFocus=function(a,b){var c=window.getSelection(),d;0<c.rangeCount&&(d=c.getRangeAt(0));document.activeElement&&!cvox.DomUtil.isDescendantOfNode(a,document.activeElement)&&document.activeElement.blur();a&&a.constructor==HTMLVideoElement&&(cvox.DomUtil.isFocusable(a)||a.setAttribute("tabIndex",0));if(b&&!cvox.DomUtil.isFocusable(a)){var e=cvox.DomUtil.findFocusableDescendant(a);e&&(a=e)}else for(;a&&!cvox.DomUtil.isFocusable(a);)a=a.parentNode;cvox.DomUtil.isFocusable(a)?"IFRAME"!=a.tagName&& +(cvox.ChromeVoxEventSuspender.areEventsSuspended()?(cvox.Focuser.shouldEnterSuspendEvents_(a)&&cvox.ChromeVoxEventSuspender.enterSuspendEvents(),window.setTimeout(function(){a.focus();cvox.ChromeVoxEventSuspender.exitSuspendEvents()},0)):window.setTimeout(function(){a.focus()},0)):document.activeElement&&"BODY"!=document.activeElement.tagName&&document.activeElement.blur();cvox.DomUtil.isInputTypeText(a)?a.select():d&&(c.removeAllRanges(),c.addRange(d))}; +cvox.Focuser.shouldEnterSuspendEvents_=function(a){if(a.constructor&&a.constructor==HTMLVideoElement)return!1;if(a.hasAttribute)switch(a.getAttribute("type")){case "time":case "date":case "week":case "month":return!1}return!0};cvox.ChromeVoxHTMLMediaWidget=function(a){var b=this;this.mediaElem_=a;this.keyListener_=function(a){b.eventHandler_(a)};this.blurListener_=function(){b.shutdown()};this.mediaElem_.addEventListener("keydown",this.keyListener_,!1);this.mediaElem_.addEventListener("keyup",this.keyListener_,!1);this.mediaElem_.addEventListener("blur",this.blurListener_,!1)}; +cvox.ChromeVoxHTMLMediaWidget.prototype.shutdown=function(){this.mediaElem_.removeEventListener("blur",this.blurListener_,!1);this.mediaElem_.removeEventListener("keydown",this.keyListener_,!1);this.mediaElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLMediaWidget.prototype.jumpToTime_=function(a){0>a&&(a=0);a>this.mediaElem_.duration&&(a=this.mediaElem_.duration);this.mediaElem_.currentTime=a}; +cvox.ChromeVoxHTMLMediaWidget.prototype.setVolume_=function(a){0>a&&(a=0);1<a&&(a=1);this.mediaElem_.volume=a}; +cvox.ChromeVoxHTMLMediaWidget.prototype.eventHandler_=function(a){"keydown"==a.type&&(13==a.keyCode||32==a.keyCode?this.mediaElem_.paused?this.mediaElem_.play():this.mediaElem_.pause():39==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime+this.mediaElem_.duration/10):37==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime-this.mediaElem_.duration/10):38==a.keyCode?this.setVolume_(this.mediaElem_.volume+0.1):40==a.keyCode&&this.setVolume_(this.mediaElem_.volume-0.1))};cvox.ChromeVoxHTMLTimeWidget=function(a,b){var c=this;this.timeElem_=a;this.timeTts_=b;this.pMinutes_=this.pHours_=-1;this.pMilliseconds_=this.pSeconds_=0;this.pAmpm_="";this.pos_=0;this.maxPos_=2;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};if(this.timeElem_.hasAttribute("step")){var d=this.timeElem_.getAttribute("step");0<d&&(this.maxPos_=1<=d?3:4)}0==this.timeElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent"); +e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e);e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e)}this.timeElem_.addEventListener("keydown",this.keyListener_,!1);this.timeElem_.addEventListener("keyup",this.keyListener_,!1);this.timeElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)}; +cvox.ChromeVoxHTMLTimeWidget.prototype.shutdown=function(){this.timeElem_.removeEventListener("blur",this.blurListener_,!1);this.timeElem_.removeEventListener("keydown",this.keyListener_,!1);this.timeElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLTimeWidget.prototype.forceInitTime_=function(){this.timeElem_.setAttribute("value","12:00")}; +cvox.ChromeVoxHTMLTimeWidget.prototype.handlePosChange_=function(){0>this.pos_&&(this.pos_=0);this.pos_>this.maxPos_&&(this.pos_=this.maxPos_);if(this.pos_==this.maxPos_)this.pAmpm_="";else switch(this.pos_){case 0:this.pHours_=-1;break;case 1:this.pMinutes_=-1;break;case 2:this.pSeconds_=-1;break;case 3:this.pMilliseconds_=-1}}; +cvox.ChromeVoxHTMLTimeWidget.prototype.update_=function(a){var b=this.timeElem_.value.split(":");if(1>b.length)this.forceInitTime_();else{var c=b[0],d=-1,e=0,f=0,g=cvox.ChromeVox.msgs.getMsg("timewidget_am");1<b.length&&(d=b[1]);2<b.length&&(b=b[2].split("."),e=b[0],1<b.length&&(f=b[1]));12<c&&(c-=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));12==c&&(g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));0==c&&(c=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_am"));b="";a&&(b=cvox.DomUtil.getName(this.timeElem_, +!0,!0)+"\n");c!=this.pHours_&&(b=b+c+" "+cvox.ChromeVox.msgs.getMsg("timewidget_hours")+"\n",this.pHours_=c);d!=this.pMinutes_&&(b=b+d+" "+cvox.ChromeVox.msgs.getMsg("timewidget_minutes")+"\n",this.pMinutes_=d);e!=this.pSeconds_&&(b=b+e+" "+cvox.ChromeVox.msgs.getMsg("timewidget_seconds")+"\n",this.pSeconds_=e);f!=this.pMilliseconds_&&(b=b+f+" "+cvox.ChromeVox.msgs.getMsg("timewidget_milliseconds")+"\n",this.pMilliseconds_=f);g!=this.pAmpm_&&(b+=g,this.pAmpm_=g);0<b.length&&this.timeTts_.speak(b, +0,null)}};cvox.ChromeVoxHTMLTimeWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.ActiveIndicator=function(){this.lastMoveTime_=0;this.zoom_=1;this.updateIndicatorTimeoutId_=this.lastClientRects_=this.lastSyncTarget_=this.container_=null;this.blurred_=!1;window.addEventListener("focus",goog.bind(function(){this.blurred_=!1;this.container_&&this.container_.classList.remove("cvox_indicator_window_not_focused")},this),!1);window.addEventListener("blur",goog.bind(function(){this.blurred_=!0;this.container_&&this.container_.classList.add("cvox_indicator_window_not_focused")},this), +!1)};cvox.ActiveIndicator.STYLE=".cvox_indicator_container { position: absolute !important; left: 0 !important; top: 0 !important; z-index: 2147483647 !important; pointer-events: none !important;}.cvox_indicator_window_not_focused { visibility: hidden !important;}.cvox_indicator_pulsing { -webkit-animation: cvox_indicator_pulsing_animation 0s 2 alternate !important; -webkit-animation-timing-function: ease-in-out !important;}.cvox_indicator_region { opacity: 0 !important; -webkit-transition: opacity 1s !important;}.cvox_indicator_visible { opacity: 1 !important;}.cvox_indicator_container .cvox_indicator_region * { position:absolute !important; box-shadow: 0 0 4px 4px #f7983a !important; border-radius: 6px !important; -webkit-transition: none !important;}.cvox_indicator_animate_normal .cvox_indicator_region * { -webkit-transition: all 0.3s !important;}.cvox_indicator_animate_quick .cvox_indicator_region * { -webkit-transition: all 0.1s !important;}.cvox_indicator_top { border-radius: inherit inherit 0 0 !important;}.cvox_indicator_middle_nw { border-radius: inherit 0 0 0 !important;}.cvox_indicator_middle_ne { border-radius: 0 inherit 0 0 !important;}.cvox_indicator_middle_se { border-radius: 0 0 inherit 0 !important;}.cvox_indicator_middle_sw { border-radius: 0 0 0 inherit !important;}.cvox_indicator_bottom { border-radius: 0 0 inherit inherit !important;}@-webkit-keyframes cvox_indicator_pulsing_animation { 0% {opacity: 1.0} 50% {opacity: 0.5} 100% {opacity: 1.0}}"; +cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS=100;cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS=300;cvox.ActiveIndicator.MARGIN=8;cvox.ActiveIndicator.prototype.removeFromDom=function(){this.container_&&this.container_.parentElement&&this.container_.parentElement.removeChild(this.container_)};cvox.ActiveIndicator.prototype.syncToNode=function(a){a&&(a==document.body?this.removeFromDom():this.syncToNodes([a]))}; +cvox.ActiveIndicator.prototype.syncToNodes=function(a){var b=this.clientRectsFromNodes_(a);this.moveIndicator_(b,cvox.ActiveIndicator.MARGIN);this.lastSyncTarget_=a;this.lastClientRects_=b;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)}; +cvox.ActiveIndicator.prototype.syncToRange=function(a){var b=cvox.ActiveIndicator.MARGIN;a.startContainer==a.endContainer&&a.startOffset+1==a.endOffset&&(b=1);var c=a.getClientRects();this.moveIndicator_(c,b);this.lastSyncTarget_=a;this.lastClientRects_=c;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)}; +cvox.ActiveIndicator.prototype.syncToCursorSelection=function(a){if(a.start.node==a.end.node&&a.start.index==a.end.index)this.syncToNode(a.start.node);else{var b=document.createRange();b.setStart(a.start.node,a.start.index);b.setEnd(a.end.node,a.end.index);this.syncToRange(b)}};cvox.ActiveIndicator.prototype.updateIndicatorIfChanged=function(){this.updateIndicatorTimeoutId_||(this.updateIndicatorTimeoutId_=window.setTimeout(goog.bind(function(){this.handleUpdateIndicatorIfChanged_()},this),100))}; +cvox.ActiveIndicator.prototype.handleUpdateIndicatorIfChanged_=function(){this.updateIndicatorTimeoutId_=null;if(this.lastSyncTarget_){var a;if((a=this.lastSyncTarget_ instanceof Array?this.clientRectsFromNodes_(this.lastSyncTarget_):this.lastSyncTarget_.getClientRects())&&0!=a.length){var b=!1;if(a.length!=this.lastClientRects_.length)b=!0;else for(var c=0;c<this.lastClientRects_.length;++c){var d=this.lastClientRects_[c],e=a[c];if(d.top!=e.top||d.right!=e.right||d.bottom!=e.bottom||d.left!=d.left){b= +!0;break}}b&&(this.moveIndicator_(a,cvox.ActiveIndicator.MARGIN),this.lastClientRects_=a)}else this.syncToNode(document.body)}};cvox.ActiveIndicator.prototype.clientRectsFromNodes_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(d.constructor==Text){var e=document.createRange();e.selectNode(d);e=e.getClientRects()}else{for(;!d.getClientRects;)d=d.parentElement;e=d.getClientRects()}for(d=0;d<e.length;++d)b.push(e[d])}return b}; +cvox.ActiveIndicator.prototype.moveIndicator_=function(a,b){if(document.body.isContentEditable)this.removeFromDom();else{var c=a.length;if(0!=c){var d,e;"static"!=window.getComputedStyle(document.body,null).position?(d=-document.body.getBoundingClientRect().left,e=-document.body.getBoundingClientRect().top):"static"!=window.getComputedStyle(document.documentElement,null).position?(d=-document.documentElement.getBoundingClientRect().left,e=-document.documentElement.getBoundingClientRect().top):(d= +window.pageXOffset,e=window.pageYOffset);for(var f=[],g=0;g<c;g++)f.push(this.inset_(a[g],d,e,-d,-e));if(!this.container_||!this.container_.parentElement){g=document.getElementsByClassName("cvox_indicator_container");for(c=0;d=g[c];c++)d.parentNode&&d.parentNode.removeChild(d);this.container_=this.createDiv_(document.body,"cvox_indicator_container",document.body.firstChild)}g=document.createElement("style");g.id="cvox_indicator_style";g.innerHTML=cvox.ActiveIndicator.STYLE;cvox.DomUtil.addNodeToHead(g, +g.id);g=(new Date).getTime();c=g-this.lastMoveTime_;this.container_.className="cvox_indicator_container";document.hasFocus()&&!this.blurred_||this.container_.classList.add("cvox_indicator_window_not_focused");c>cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS?this.container_.classList.add("cvox_indicator_animate_normal"):c>cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS&&this.container_.classList.add("cvox_indicator_animate_quick");this.lastMoveTime_=g;this.computeZoomLevel_();for(window.setTimeout(goog.bind(function(){this.container_.classList.add("cvox_indicator_pulsing")}, +this),0);1<this.container_.childElementCount;)this.container_.removeChild(this.container_.lastElementChild);d=[[f[0]]];e=[f[0]];for(g=1;g<f.length;g++){for(var h=!1,c=0;c<d.length&&!h;c++)this.intersects_(f[g],e[c])&&(d[c].push(f[g]),e[c]=this.union_(e[c],f[g]),h=!0);h||(d.push([f[g]]),e.push(f[g]))}do for(f=!1,g=0;g<d.length-1&&!f;g++)for(c=g+1;c<d.length&&!f;c++)this.intersects_(e[g],e[c])&&(d[g]=d[g].concat(d[c]),e[g]=this.union_(e[g],e[c]),d.splice(c,1),e.splice(c,1),f=!0);while(f);for(g=0;g< +d.length;g++)d[g].sort(function(a,b){return a.top!=b.top?a.top-b.top:a.left-b.left});for(g=0;g<d.length;g++)f=null,0==g&&1==this.container_.childElementCount&&6==this.container_.children[0].childElementCount&&(f=this.container_.children[0]),this.updateIndicatorRegion_(d[g],f,b)}}}; +cvox.ActiveIndicator.prototype.updateIndicatorRegion_=function(a,b,c){if(b)var d=b.children[0],e=b.children[1],f=b.children[2],g=b.children[3],h=b.children[4],k=b.children[5];else b=this.createDiv_(this.container_,"cvox_indicator_region"),window.setTimeout(function(){b.classList.add("cvox_indicator_visible")},0),d=this.createDiv_(b,"cvox_indicator_top"),e=this.createDiv_(b,"cvox_indicator_middle_nw"),f=this.createDiv_(b,"cvox_indicator_middle_ne"),g=this.createDiv_(b,"cvox_indicator_middle_sw"),h= +this.createDiv_(b,"cvox_indicator_middle_se"),k=this.createDiv_(b,"cvox_indicator_bottom");for(var l=a[0],m=Math.floor((l.top+l.bottom)/2),p=1,q=a.length;p<q&&a[p].top<m;)l=this.union_(l,a[p]),m=Math.floor((l.top+l.bottom)/2),p++;if(p==q)l=this.inset_(l,-c,-c,-c,-c),a=Math.floor((3*l.top+1*l.bottom)/4),c=Math.floor((2*l.top+2*l.bottom)/4),m=Math.floor((1*l.top+3*l.bottom)/4),this.setElementCoords_(d,l.left,l.top,l.right,a,!0,!0,!0,!1),this.setElementCoords_(e,l.left,a,l.left,c,!0,!0,!1,!1),this.setElementCoords_(g, +l.left,c,l.left,m,!0,!1,!1,!0),this.setElementCoords_(f,l.right,a,l.right,c,!1,!0,!0,!1),this.setElementCoords_(h,l.right,c,l.right,m,!1,!1,!0,!0),this.setElementCoords_(k,l.left,m,l.right,l.bottom,!0,!1,!0,!0);else{for(var m=a[q-1],n=Math.floor((m.top+m.bottom)/2),q=q-2;0<=q&&a[q].bottom>n;)m=this.union_(m,a[q]),n=Math.floor((m.top+m.bottom)/2),q--;l=this.inset_(l,-c,-c,-c,c);m=this.inset_(m,-c,c,-c,-c);if(p>q)n=this.union_(l,m),n.top=l.bottom,n.bottom=m.top,n.height=Math.floor((n.top+n.bottom)/ +2);else{n=a[p];for(p+=1;p<=q;)n=this.union_(n,a[p]),p++;n=this.inset_(n,-c,-c,-c,-c);n.left=Math.min(n.left,l.left,m.left);n.right=Math.max(n.right,l.right,m.right);n.width=n.right-n.left}l.right>n.right-40&&(l.right=n.right,l.width=l.right-l.left);l.left<n.left+40&&(l.left=n.left,l.width=l.right-l.left);m.right>n.right-40&&(m.right=n.right,m.width=m.right-m.left);m.left<n.left+40&&(m.left=n.left,m.width=m.right-m.left);a=Math.floor((n.top+n.bottom)/2);this.setElementRect_(d,l,!0,!0,!0,!1);this.setElementRect_(k, +m,!0,!1,!0,!0);this.setElementCoords_(e,n.left,l.bottom,l.left,a,!0,!0,!1,!1);this.setElementCoords_(f,l.right,l.bottom,n.right,a,!1,!0,!0,!1);this.setElementCoords_(g,n.left,a,m.left,m.top,!0,!1,!1,!0);this.setElementCoords_(h,m.right,a,n.right,m.top,!1,!1,!0,!0)}};cvox.ActiveIndicator.prototype.intersects_=function(a,b){var c=2*cvox.ActiveIndicator.MARGIN;return b.left<=a.right+c&&b.right>=a.left-c&&b.top<=a.bottom+c&&b.bottom>=a.top-c}; +cvox.ActiveIndicator.prototype.union_=function(a,b){var c={left:Math.min(a.left,b.left),top:Math.min(a.top,b.top),right:Math.max(a.right,b.right),bottom:Math.max(a.bottom,b.bottom)};c.width=c.right-c.left;c.height=c.bottom-c.top;return c};cvox.ActiveIndicator.prototype.inset_=function(a,b,c,d,e){a={left:a.left+b,top:a.top+c,right:a.right-d,bottom:a.bottom-e};a.width=a.right-a.left;a.height=a.bottom-a.top;return a}; +cvox.ActiveIndicator.prototype.createDiv_=function(a,b,c){var d=document.createElement("div");d.className=b;c?a.insertBefore(d,c):a.appendChild(d);return d};cvox.ActiveIndicator.prototype.fixZoom_=function(a){return(Math.round(a*this.zoom_)+0.1)/this.zoom_};cvox.ActiveIndicator.prototype.fixZoomSum_=function(a,b){var c=Math.round(a*this.zoom_),d=Math.round((a+b)*this.zoom_),c=d-c;return(c+0.1)/this.zoom_}; +cvox.ActiveIndicator.prototype.setElementCoords_=function(a,b,c,d,e,f,g,h,k){var l=d-b,m=e-c;d-=b;e-=c;var p=f?-20:0,q=g?-20:0,n=h?20:0,s=k?20:0;0==d&&(h?(b-=5,d+=5):f&&(d+=10),s=q=10,c-=10,e+=20);k||(e+=5);g||(c-=5,e+=5,q+=5,s+=5);n=0==n&&0==l?1:this.fixZoomSum_(b,n+l);s=this.fixZoomSum_(c,s+m);a.style.left=this.fixZoom_(b)+"px";a.style.top=this.fixZoom_(c)+"px";a.style.width=this.fixZoomSum_(b,d)+"px";a.style.height=this.fixZoomSum_(c,e)+"px";a.style.clip="rect("+[q,n,s,p].join("px ")+"px)"}; +cvox.ActiveIndicator.prototype.setElementRect_=function(a,b,c,d,e,f){this.setElementCoords_(a,b.left,b.top,b.right,b.bottom,c,d,e,f)}; +cvox.ActiveIndicator.prototype.computeZoomLevel_=function(){if(window.innerHeight!==this.innerHeight_||window.innerWidth!==this.innerWidth_){this.innerHeight_=window.innerHeight;this.innerWidth_=window.innerWidth;var a=document.createElement("div");a.innerHTML="X";a.setAttribute("style","font: 5000px/1em sans-serif !important; -webkit-text-size-adjust:none !important; visibility:hidden !important; left: -10000px !important; top: -10000px !important; position:absolute !important;");document.body.appendChild(a); +var b=5E3/a.clientHeight,b=Math.round(500*b)/500;0.1<b&&10>b&&(this.zoom_=b);a.parentNode.removeChild(a)}};cvox.NodeBreadcrumb=function(){this.cvTagCounter_=0};goog.addSingletonGetter(cvox.NodeBreadcrumb);cvox.NodeBreadcrumb.TOUCHED_TAG="chromevoxtag";cvox.NodeBreadcrumb.NEEDED_TAG_="chromevoxneeded"; +cvox.NodeBreadcrumb.prototype.tagCurrentNode=function(){for(var a,b=cvox.ChromeVox.navigationManager.getCurrentNode();b&&!b.hasAttribute;)b=b.parentNode;b?b.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a=b.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):(a=this.cvTagCounter_,b.setAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG,a),this.cvTagCounter_++):a=-1;return a}; +cvox.NodeBreadcrumb.prototype.smartStart_=function(a){for(var b=0;b<a.children.length;++b){var c=a.children[b];this.smartStart_(c);c.getAttribute&&!goog.isNull(c.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))&&this.setNeeded_(c)}};cvox.NodeBreadcrumb.prototype.setNeeded_=function(a){a&&a.getAttribute&&goog.isNull(a.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&(a.setAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_,!0),"body"!==a.nodeName&&this.setNeeded_(a.parentElement))}; +cvox.NodeBreadcrumb.prototype.smartClone_=function(a){var b={};b[cvox.NodeBreadcrumb.TOUCHED_TAG]=!0;b[cvox.NodeBreadcrumb.NEEDED_TAG_]=!0;if(a.getAttribute&&a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))return cvox.DomUtil.deepClone(a,b);for(var b=cvox.DomUtil.shallowChildlessClone(a,b),c=0;c<a.childNodes.length;++c){var d=a.childNodes[c];d.getAttribute&&!goog.isNull(d.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&b.appendChild(this.smartClone_(d))}return b}; +cvox.NodeBreadcrumb.prototype.dumpWalkedDom=function(){this.smartStart_(document.body);return this.smartClone_(document.body)};cvox.NodeBreadcrumb.getCurrentNodeTag=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a&&!a.hasAttribute;)a=a.parentNode;return a&&a.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):-1};cvox.HistoryEvent=function(a){this.spoken_=[];a?this.userCommand_=a.cmd:this.startTime_=(new Date).getTime()};cvox.HistoryEvent.prototype.withUserCommand=function(a){if(this.userCommand_)return window.console.error("Two user commands on "+a,this),this;this.userCommand_=a;return this};cvox.HistoryEvent.prototype.speak=function(a){this.spoken_.push(a);return this}; +cvox.HistoryEvent.prototype.done=function(){this.endTime_=(new Date).getTime();cvox.NodeBreadcrumb.getInstance().tagCurrentNode();window.console.log("User command done.",this);return this};cvox.HistoryEvent.prototype.outputObject=function(){return{start:this.startTime_,end:this.endTime_,cmd:this.userCommand_,spoken:this.spoken_}}; +cvox.HistoryEvent.prototype.outputHTML=function(){var a=document.createElement("div");a.className="cvoxHistoryEvent";var b=this.endTime_-this.startTime_;a.innerHTML=this.userCommand_+" ("+b+"ms)";for(b=0;b<this.spoken_.length;b++){var c=document.createElement("div");c.className="cvoxHistoryEventSpoken";c.innerHTML=this.spoken_[b].substr(0,20);20<this.spoken_[b].length&&(c.innerHTML+="...");a.appendChild(c)}return a}; +cvox.HistoryEvent.prototype.outputJs=function(){var a="this.waitForCalm(this.userCommand, '"+this.userCommand_+"')";return a=0<this.spoken_.length?a+("\n .waitForCalm(this.assertSpoken, '"+cvox.DomUtil.collapseWhitespace(this.spoken_.join(" "))+"');\n"):a+";\n"};cvox.History=function(){this.recording_=!1;this.events_=[];this.styleDiv_=this.listDiv_=this.mainDiv_=this.currentEvent_=null;this.nodeBreadcrumb_=cvox.NodeBreadcrumb.getInstance()};goog.addSingletonGetter(cvox.History); +cvox.History.prototype.addListDiv_=function(){this.mainDiv_=document.createElement("div");this.mainDiv_.style.position="fixed";this.mainDiv_.style.bottom="0";this.mainDiv_.style.right="0";this.mainDiv_.style.zIndex="999";this.listDiv_=document.createElement("div");this.listDiv_.id="cvoxEventList";this.mainDiv_.appendChild(this.listDiv_);var a=document.createElement("div"),b=document.createElement("button");b.onclick=cvox.History.sendToFeedback;b.innerHTML="Create bug";a.appendChild(b);this.mainDiv_.appendChild(a); +a=document.createElement("div");b=document.createElement("button");b.onclick=cvox.History.dumpJs;b.innerHTML="Dump test case";a.appendChild(b);this.mainDiv_.appendChild(a);document.body.appendChild(this.mainDiv_);this.styleDiv_=document.createElement("style");this.styleDiv_.innerHTML=".cvoxHistoryEventSpoken { color: gray; font-size: 75% }";document.body.appendChild(this.styleDiv_)}; +cvox.History.prototype.removeListDiv_=function(){document.body.removeChild(this.mainDiv_);document.body.removeChild(this.styleDiv_);this.styleDiv_=this.listDiv_=this.mainDiv_=null}; +cvox.History.prototype.addBigTextBox_=function(){function a(a,b){var c=document.createElement("button");c.onclick=b;c.innerHTML=a;d.appendChild(c)}var b=document.createElement("div");b.style.position="fixed";b.style.top="0";b.style.left="0";b.style.zIndex="999";var c=document.createElement("textarea");c.style.width="500px";c.style.height="500px";c.innerHTML=this.dumpJsOutput_();b.appendChild(c);var d=document.createElement("div");b.appendChild(d);a("Close dialog",function(){document.body.removeChild(b)}); +a("Remove fluff",goog.bind(function(){c.innerHTML=this.dumpJsOutput_(["stopSpeech","toggleKeyPrefix"])},this));document.body.appendChild(b)};cvox.History.prototype.startRecording=function(){this.recording_=!0;this.addListDiv_()};cvox.History.prototype.stopRecording=function(){this.recording_=!1;this.removeListDiv_();this.events_=[];this.currentEvent_=null}; +cvox.History.prototype.enterUserCommand=function(a){this.recording_&&(this.currentEvent_&&window.console.error("User command "+a+" overlaps current event",this.currentEvent_),this.currentEvent_=(new cvox.HistoryEvent).withUserCommand(a),this.events_.push(this.currentEvent_))};cvox.History.prototype.exitUserCommand=function(){this.recording_&&this.currentEvent_&&(this.currentEvent_.done(),this.listDiv_.appendChild(this.currentEvent_.outputHTML()),this.currentEvent_=null)}; +cvox.History.prototype.speak=function(a){if(!this.recording_)return this;if(!this.currentEvent_)return window.console.error("Speak called outside of a user command."),this;this.currentEvent_.speak(a);return this};cvox.History.prototype.isSpeaking=function(){return!1};cvox.History.prototype.stop=function(){};cvox.History.prototype.increaseOrDecreaseProperty=function(){};cvox.History.prototype.getDefaultProperty=function(){}; +cvox.History.dumpJs=function(){var a=cvox.History.getInstance();a.addBigTextBox_();window.console.log(a.dumpJsOutput_())};cvox.History.prototype.dumpJsOutput_=function(a){var b={};a&&a.forEach(function(a){b[a]=1});return["/*DOC: += ",this.nodeBreadcrumb_.dumpWalkedDom().innerHTML,"*/\n"].concat(this.events_.filter(function(a){return!(a.userCommand_ in b)}).map(function(a){return a.outputJs()})).join("")}; +cvox.History.sendToFeedback=function(){var a=cvox.History.getInstance(),a=a.events_.map(function(a){return a.outputObject()}),b=document.createElement("script");b.type="text/javascript";b.src="https://www.gstatic.com/feedback/api.js";var c=document.createElement("script");c.type="text/javascript";c.innerHTML="userfeedback.api.startFeedback({ productId: '76092' }, { cvoxHistory: "+cvox.ChromeVoxJSON.stringify(cvox.ChromeVoxJSON.stringify(a))+" });";b.onload=function(){document.body.appendChild(c)}; +document.body.appendChild(b)};cvox.KeySequence=function(a,b,c,d){this.doubleTap=!!d;this.cvoxModifier=void 0==b?this.isCVoxModifierActive(a):b;this.stickyMode=!!a.stickyMode;this.prefixKey=!!a.keyPrefix;this.skipStripping=!!c;if(this.stickyMode&&this.prefixKey)throw"Prefix key and sticky mode cannot both be enabled: "+a;a=this.resolveChromeOSSpecialKeys_(a);this.keys={ctrlKey:[],searchKeyHeld:[],altKey:[],altGraphKey:[],shiftKey:[],metaKey:[],keyCode:[]};this.extractKey_(a)}; +cvox.KeySequence.KEY_PRESS_CODE={39:222,44:188,45:189,46:190,47:191,59:186,91:219,92:220,93:221};cvox.KeySequence.doubleTapCache=[];cvox.KeySequence.prototype.addKeyEvent=function(a){if(1<this.keys.keyCode.length)return!1;this.extractKey_(a);return!0};cvox.KeySequence.prototype.equals=function(a){if(!this.checkKeyEquality_(a)||this.doubleTap!=a.doubleTap)return!1;if(this.cvoxModifier===a.cvoxModifier)return!0;a=this.cvoxModifier?a:this;return a.stickyMode||a.prefixKey}; +cvox.KeySequence.prototype.extractKey_=function(a){for(var b in this.keys)if("keyCode"==b){var c;"keypress"==a.type&&97<=a[b]&&122>=a[b]?c=a[b]-32:"keypress"==a.type&&(c=cvox.KeySequence.KEY_PRESS_CODE[a[b]]);this.keys[b].push(c||a[b])}else this.isKeyModifierActive(a,b)?this.keys[b].push(!0):this.keys[b].push(!1);this.cvoxModifier&&this.rationalizeKeys_()}; +cvox.KeySequence.prototype.rationalizeKeys_=function(){if(!this.skipStripping){var a=cvox.ChromeVox.modKeyStr.split(/\+/g),b=this.keys.keyCode.length-1;-1!=a.indexOf("Ctrl")&&(this.keys.ctrlKey[b]=!1);-1!=a.indexOf("Alt")&&(this.keys.altKey[b]=!1);-1!=a.indexOf("Shift")&&(this.keys.shiftKey[b]=!1);var c=this.getMetaKeyName_();if(-1!=a.indexOf(c))if("Search"==c)this.keys.searchKeyHeld[b]=!1;else if("Cmd"==c||"Win"==c)this.keys.metaKey[b]=!1}}; +cvox.KeySequence.prototype.getMetaKeyName_=function(){return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win"};cvox.KeySequence.prototype.checkKeyEquality_=function(a){for(var b in this.keys)for(var c=this.keys[b].length;c--;)if(this.keys[b][c]!==a.keys[b][c])return!1;return!0};cvox.KeySequence.prototype.length=function(){return this.keys.keyCode.length};cvox.KeySequence.prototype.isModifierKey=function(a){return 16==a||17==a||18==a||91==a||93==a}; +cvox.KeySequence.prototype.isCVoxModifierActive=function(a){var b=cvox.ChromeVox.modKeyStr.split(/\+/g);this.isKeyModifierActive(a,"ctrlKey")&&(b=b.filter(function(a){return"Ctrl"!=a}));this.isKeyModifierActive(a,"altKey")&&(b=b.filter(function(a){return"Alt"!=a}));this.isKeyModifierActive(a,"shiftKey")&&(b=b.filter(function(a){return"Shift"!=a}));if(this.isKeyModifierActive(a,"metaKey")||this.isKeyModifierActive(a,"searchKeyHeld"))var c=this.getMetaKeyName_(),b=b.filter(function(a){return a!=c}); +return 0==b.length};cvox.KeySequence.prototype.isKeyModifierActive=function(a,b){switch(b){case "ctrlKey":return a.ctrlKey||17==a.keyCode;case "altKey":return a.altKey||18==a.keyCode;case "shiftKey":return a.shiftKey||16==a.keyCode;case "metaKey":return a.metaKey||!cvox.ChromeVox.isChromeOS&&91==a.keyCode;case "searchKeyHeld":return cvox.ChromeVox.isChromeOS&&91==a.keyCode||a.searchKeyHeld}return!1}; +cvox.KeySequence.deserialize=function(a){var b={};b.stickyMode=void 0==a.stickyMode?!1:a.stickyMode;b.prefixKey=void 0==a.prefixKey?!1:a.prefixKey;var c=1<a.keys.keyCode.length,d={},e;for(e in a.keys)b[e]=a.keys[e][0],c&&(d[e]=a.keys[e][1]);e=new cvox.KeySequence(b,a.cvoxModifier,!0,a.doubleTap);c&&(cvox.ChromeVox.sequenceSwitchKeyCodes.push(new cvox.KeySequence(b,a.cvoxModifier)),e.addKeyEvent(d));a.doubleTap&&cvox.KeySequence.doubleTapCache.push(e);return e}; +cvox.KeySequence.fromStr=function(a){var b={},c={},d;d=-1==a.indexOf(">")?!1:!0;var e=!1;b.stickyMode=!1;b.prefixKey=!1;a=a.split("+");for(var f=0;f<a.length;f++)for(var g=a[f].split(">"),h=0;h<g.length;h++){if("#"==g[h].charAt(0)){var k=parseInt(g[h].substr(1),10);0<h?c.keyCode=k:b.keyCode=k}k=g[h];1==g[h].length?0<h?c.keyCode=g[h].charCodeAt(0):b.keyCode=g[h].charCodeAt(0):(0<h?cvox.KeySequence.setModifiersOnEvent_(k,c):cvox.KeySequence.setModifiersOnEvent_(k,b),"Cvox"==k&&(e=!0))}b=new cvox.KeySequence(b, +e);d&&b.addKeyEvent(c);return b};cvox.KeySequence.setModifiersOnEvent_=function(a,b){"Ctrl"==a?(b.ctrlKey=!0,b.keyCode=17):"Alt"==a?(b.altKey=!0,b.keyCode=18):"Shift"==a?(b.shiftKey=!0,b.keyCode=16):"Search"==a?(b.searchKeyHeld=!0,b.keyCode=91):"Cmd"==a?(b.metaKey=!0,b.keyCode=91):"Win"==a?(b.metaKey=!0,b.keyCode=91):"Insert"==a&&(b.keyCode=45)}; +cvox.KeySequence.prototype.resolveChromeOSSpecialKeys_=function(a){if(!this.cvoxModifier||this.stickyMode||this.prefixKey||!cvox.ChromeVox.isChromeOS)return a;var b={},c;for(c in a)b[c]=a[c];switch(b.keyCode){case 33:b.keyCode=38;break;case 34:b.keyCode=40;break;case 35:b.keyCode=39;break;case 36:b.keyCode=37;break;case 45:b.keyCode=190;break;case 46:b.keyCode=8;break;case 112:b.keyCode=49;break;case 113:b.keyCode=50;break;case 114:b.keyCode=51;break;case 115:b.keyCode=52;break;case 116:b.keyCode= +53;break;case 117:b.keyCode=54;break;case 118:b.keyCode=55;break;case 119:b.keyCode=56;break;case 120:b.keyCode=57;break;case 121:b.keyCode=48;break;case 122:b.keyCode=189;break;case 123:b.keyCode=187}return b};cvox.KeyUtil=function(){};cvox.KeyUtil.modeKeyPressTime=0;cvox.KeyUtil.sequencing=!1;cvox.KeyUtil.prevKeySequence=null;cvox.KeyUtil.stickyKeySequence=null;cvox.KeyUtil.maxSeqLength=2; +cvox.KeyUtil.keyEventToKeySequence=function(a){var b=cvox.KeyUtil;b.prevKeySequence&&b.maxSeqLength==b.prevKeySequence.length()&&(b.sequencing=!1,b.prevKeySequence=null);var c=b.sequencing||a.keyPrefix||a.stickyMode,d=new cvox.KeySequence(a),e=d.cvoxModifier;if(c||e){if(!b.sequencing&&b.isSequenceSwitchKeyCode(d))return b.sequencing=!0,b.prevKeySequence=d;if(b.sequencing){if(b.prevKeySequence.addKeyEvent(a))return d=b.prevKeySequence,b.prevKeySequence=null,b.sequencing=!1,d;throw"Think sequencing is enabled, yet util.prevKeySequence alreadyhas two key codes"+ +b.prevKeySequence;}}else b.sequencing=!1;c=(new Date).getTime();if(cvox.KeyUtil.isDoubleTapKey(d)&&b.prevKeySequence&&d.equals(b.prevKeySequence)&&(e=b.modeKeyPressTime,0<e&&300>c-e))return d=b.prevKeySequence,d.doubleTap=!0,b.prevKeySequence=null,b.sequencing=!1,cvox.ChromeVox.isChromeOS&&a.keyCode==cvox.KeyUtil.getStickyKeyCode()&&(cvox.ChromeVox.searchKeyHeld=!1),d;b.prevKeySequence=d;b.modeKeyPressTime=c;return d}; +cvox.KeyUtil.keyCodeToString=function(a){return 17==a?"Ctrl":18==a?"Alt":16==a?"Shift":91==a||93==a?cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win":45==a?"Insert":65<=a&&90>=a?String.fromCharCode(a):48<=a&&57>=a?String.fromCharCode(a):"#"+a};cvox.KeyUtil.modStringToKeyCode=function(a){switch(a){case "Ctrl":return 17;case "Alt":return 18;case "Shift":return 16;case "Cmd":case "Win":return 91}return-1}; +cvox.KeyUtil.cvoxModKeyCodes=function(){var a=cvox.ChromeVox.modKeyStr.split(/\+/g);return a=a.map(function(a){return cvox.KeyUtil.modStringToKeyCode(a)})};cvox.KeyUtil.isSequenceSwitchKeyCode=function(a){for(var b=0;b<cvox.ChromeVox.sequenceSwitchKeyCodes.length;b++){var c=cvox.ChromeVox.sequenceSwitchKeyCodes[b];if(c.equals(a))return!0}return!1}; +cvox.KeyUtil.getReadableNameForKeyCode=function(a){if(0==a)return"Power button";if(17==a)return"Control";if(18==a)return"Alt";if(16==a)return"Shift";if(9==a)return"Tab";if(91==a||93==a)return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win";if(8==a)return"Backspace";if(32==a)return"Space";if(35==a)return"end";if(36==a)return"home";if(37==a)return"Left arrow";if(38==a)return"Up arrow";if(39==a)return"Right arrow";if(40==a)return"Down arrow";if(45==a)return"Insert";if(13==a)return"Enter"; +if(27==a)return"Escape";if(112==a)return cvox.ChromeVox.isChromeOS?"Back":"F1";if(113==a)return cvox.ChromeVox.isChromeOS?"Forward":"F2";if(114==a)return cvox.ChromeVox.isChromeOS?"Refresh":"F3";if(115==a)return cvox.ChromeVox.isChromeOS?"Toggle full screen":"F4";if(116==a)return"F5";if(117==a)return"F6";if(118==a)return"F7";if(119==a)return"F8";if(120==a)return"F9";if(121==a)return"F10";if(122==a)return"F11";if(123==a)return"F12";if(186==a)return"Semicolon";if(187==a)return"Equal sign";if(188==a)return"Comma"; +if(189==a)return"Dash";if(190==a)return"Period";if(191==a)return"Forward slash";if(192==a)return"Grave accent";if(219==a)return"Open bracket";if(220==a)return"Back slash";if(221==a)return"Close bracket";if(222==a)return"Single quote";if(115==a)return"Toggle full screen";if(48<=a&&90>=a)return String.fromCharCode(a)};cvox.KeyUtil.getStickyKeyCode=function(){var a=45;if(cvox.ChromeVox.isChromeOS||cvox.ChromeVox.isMac)a=91;return a}; +cvox.KeyUtil.getStickyKeySequence=function(){if(null==cvox.KeyUtil.stickyKeySequence){var a=cvox.KeyUtil.getStickyKeyCode(),a={keyCode:a,stickyMode:!0},b=new cvox.KeySequence(a);b.addKeyEvent(a);cvox.KeyUtil.stickyKeySequence=b}return cvox.KeyUtil.stickyKeySequence};cvox.KeyUtil.getReadableNameForStr=function(){return null}; +cvox.KeyUtil.keySequenceToString=function(a,b,c){for(var d="",e=a.length(),f=0;f<e;f++){""==d||c?""!=d&&(d+="+"):d+=">";var g="",h;for(h in a.keys)if(a.keys[h][f]){var k="";switch(h){case "ctrlKey":k="Ctrl";break;case "searchKeyHeld":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "altKey":k="Alt";break;case "altGraphKey":k="AltGraph";break;case "shiftKey":k="Shift";break;case "metaKey":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "keyCode":var l=a.keys[h][f];a.isModifierKey(l)|| +c||(g=b?g+cvox.KeyUtil.getReadableNameForKeyCode(l):g+cvox.KeyUtil.keyCodeToString(l))}-1==d.indexOf(k)&&(g+=k+"+")}d+=g;"+"==d[d.length-1]&&(d=d.slice(0,-1))}a.cvoxModifier||a.prefixKey?d=""!=d?"Cvox+"+d:"Cvox":a.stickyMode&&(">"==d[d.length-1]&&(d=d.slice(0,-1)),d=d+"+"+d);return d};cvox.KeyUtil.isDoubleTapKey=function(a){var b=!1,c=a.doubleTap;a.doubleTap=!0;for(var d=0,e;e=cvox.KeySequence.doubleTapCache[d];d++)if(e.equals(a)){b=!0;break}a.doubleTap=c;return b};cvox.KeyMap=function(a){this.bindings_=a;this.commandToKey_={};this.buildCommandToKey_()};cvox.KeyMap.KEYMAP_PATH="chromevox/background/keymaps/";cvox.KeyMap.AVAILABLE_MAP_INFO={keymap_classic:{file:"classic_keymap.json"},keymap_flat:{file:"flat_keymap.json"},keymap_experimental:{file:"experimental.json"}};cvox.KeyMap.DEFAULT_KEYMAP=0;cvox.KeyMap.prototype.length=function(){return this.bindings_.length};cvox.KeyMap.prototype.keys=function(){return this.bindings_.map(function(a){return a.sequence})}; +cvox.KeyMap.prototype.bindings=function(){return this.bindings_};cvox.KeyMap.prototype.toJSON=function(){return JSON.stringify({bindings:this.bindings_})};cvox.KeyMap.prototype.hasKey=function(a){for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return!0}return!1};cvox.KeyMap.prototype.commandForKey=function(a){if(null!=a)for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return c.command}return null}; +cvox.KeyMap.fromDefaults=function(){return cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO.keymap_classic.file)};cvox.KeyMap.fromJSON=function(a){try{var b=JSON.parse(a).bindings,b=b.filter(function(a){return void 0===a.sequence.platformFilter||cvox.PlatformUtil.matchesPlatform(a.sequence.platformFilter)})}catch(c){return null}if("object"!=typeof b)return null;for(a=0;a<b.length;a++){if(void 0==b[a].command||void 0==b[a].sequence)return null;b[a].sequence=cvox.KeySequence.deserialize(b[a].sequence)}return new cvox.KeyMap(b)}; +cvox.KeyMap.fromLocalStorage=function(){return localStorage.keyBindings?cvox.KeyMap.fromJSON(localStorage.keyBindings):null};cvox.KeyMap.fromPath=function(a){return cvox.KeyMap.fromJSON(cvox.KeyMap.readJSON_(a))};cvox.KeyMap.fromCurrentKeyMap=function(){var a=localStorage.currentKeyMap;return a&&cvox.KeyMap.AVAILABLE_MAP_INFO[a]?cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO[a].file):cvox.KeyMap.fromDefaults()}; +cvox.KeyMap.readJSON_=function(a){var b=chrome.extension.getURL(a);if(!b)throw"Invalid path: "+a;a=new XMLHttpRequest;a.open("GET",b,!1);a.send();return a.responseText};cvox.KeyMap.prototype.buildCommandToKey_=function(){for(var a=0;a<this.bindings_.length;a++){var b=this.bindings_[a];void 0==this.commandToKey_[b.command]&&(this.commandToKey_[b.command]=b.sequence)}};cvox.CommandStore={};cvox.CommandStore.categories=function(){var a={},b;for(b in cvox.CommandStore.CMD_WHITELIST){var c=cvox.CommandStore.CMD_WHITELIST[b];c.category&&(a[c.category]=!0)}b=[];for(var d in a)b.push(d);return b};cvox.CommandStore.messageForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).msgId};cvox.CommandStore.categoryForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).category}; +cvox.CommandStore.commandsForCategory=function(a){var b=[],c;for(c in cvox.CommandStore.CMD_WHITELIST){var d=cvox.CommandStore.CMD_WHITELIST[c];a==d.category&&b.push(c)}return b}; +cvox.CommandStore.CMD_WHITELIST={toggleStickyMode:{announce:!1,msgId:"toggle_sticky_mode",disallowOOBE:!0,category:"modifier_keys"},toggleKeyPrefix:{announce:!1,skipInput:!0,msgId:"prefix_key",disallowOOBE:!0,category:"modifier_keys"},stopSpeech:{announce:!1,disallowContinuation:!0,doDefault:!0,msgId:"stop_speech_key",category:"controlling_speech"},toggleChromeVox:{announce:!1,platformFilter:cvox.PlatformFilter.WML,msgId:"toggle_chromevox_active",category:"controlling_speech"},decreaseTtsRate:{announce:!1, +msgId:"decrease_tts_rate",category:"controlling_speech"},increaseTtsRate:{announce:!1,msgId:"increase_tts_rate",category:"controlling_speech"},decreaseTtsPitch:{announce:!1,msgId:"decrease_tts_pitch",category:"controlling_speech"},increaseTtsPitch:{announce:!1,msgId:"increase_tts_pitch",category:"controlling_speech"},decreaseTtsVolume:{announce:!1,msgId:"decrease_tts_volume",category:"controlling_speech"},increaseTtsVolume:{announce:!1,msgId:"increase_tts_volume",category:"controlling_speech"},cyclePunctuationEcho:{announce:!1, +msgId:"cycle_punctuation_echo",category:"controlling_speech"},cycleTypingEcho:{announce:!1,msgId:"cycle_typing_echo",category:"controlling_speech"},toggleEarcons:{announce:!0,msgId:"toggle_earcons",category:"controlling_speech"},handleTab:{allowEvents:!0,msgId:"handle_tab_next",disallowContinuation:!0,category:"navigation"},handleTabPrev:{allowEvents:!0,msgId:"handle_tab_prev",disallowContinuation:!0,category:"navigation"},forward:{forward:!0,announce:!0,msgId:"forward",category:"navigation"},backward:{backward:!0, +announce:!0,msgId:"backward",category:"navigation"},right:{forward:!0,announce:!0,msgId:"right",category:"navigation"},left:{backward:!0,announce:!0,msgId:"left",category:"navigation"},previousGranularity:{announce:!0,msgId:"previous_granularity",category:"navigation"},nextGranularity:{announce:!0,msgId:"next_granularity",category:"navigation"},previousCharacter:{backward:!0,announce:!0,msgId:"previous_character",skipInput:!0,category:"navigation"},nextCharacter:{forward:!0,announce:!0,msgId:"next_character", +skipInput:!0,category:"navigation"},previousWord:{backward:!0,announce:!0,msgId:"previous_word",skipInput:!0,category:"navigation"},nextWord:{forward:!0,announce:!0,msgId:"next_word",skipInput:!0,category:"navigation"},previousLine:{backward:!0,announce:!0,msgId:"previous_line",category:"navigation"},nextLine:{forward:!0,announce:!0,msgId:"next_line",category:"navigation"},previousSentence:{backward:!0,announce:!0,msgId:"previous_sentence",skipInput:!0,category:"navigation"},nextSentence:{forward:!0, +announce:!0,msgId:"next_sentence",skipInput:!0,category:"navigation"},previousObject:{backward:!0,announce:!0,msgId:"previous_object",skipInput:!0,category:"navigation"},nextObject:{forward:!0,announce:!0,msgId:"next_object",skipInput:!0,category:"navigation"},previousGroup:{backward:!0,announce:!0,msgId:"previous_group",skipInput:!0,category:"navigation"},nextGroup:{forward:!0,announce:!0,msgId:"next_group",skipInput:!0,category:"navigation"},jumpToTop:{forward:!0,announce:!0,msgId:"jump_to_top", +category:"navigation"},jumpToBottom:{backward:!0,announce:!0,msgId:"jump_to_bottom",category:"navigation"},moveToStartOfLine:{forward:!0,announce:!0},moveToEndOfLine:{backward:!0,announce:!0},readFromHere:{forward:!0,announce:!1,msgId:"read_from_here",category:"navigation"},performDefaultAction:{disallowContinuation:!0,msgId:"perform_default_action",doDefault:!0,skipInput:!0,category:"navigation"},forceClickOnCurrentItem:{announce:!0,disallowContinuation:!0,allowEvents:!0,msgId:"force_click_on_current_item", +category:"navigation"},forceDoubleClickOnCurrentItem:{announce:!0,allowEvents:!0,disallowContinuation:!0},readLinkURL:{announce:!1,msgId:"read_link_url",category:"information"},readCurrentTitle:{announce:!1,msgId:"read_current_title",category:"information"},readCurrentURL:{announce:!1,msgId:"read_current_url",category:"information"},fullyDescribe:{announce:!1,msgId:"fully_describe",category:"information"},speakTimeAndDate:{announce:!1,msgId:"speak_time_and_date",category:"information"},toggleSelection:{announce:!0, +msgId:"toggle_selection",category:"information"},toggleSearchWidget:{announce:!1,disallowContinuation:!0,msgId:"toggle_search_widget",category:"information"},toggleKeyboardHelp:{announce:!1,disallowContinuation:!0,msgId:"show_power_key",category:"help_commands"},help:{announce:!1,msgId:"help",disallowOOBE:!0,disallowContinuation:!0,category:"help_commands"},contextMenu:{announce:!1,disallowContinuation:!0},showOptionsPage:{announce:!1,disallowContinuation:!0,msgId:"show_options_page",disallowOOBE:!0, +category:"help_commands"},showKbExplorerPage:{announce:!1,disallowContinuation:!0,msgId:"show_kb_explorer_page",disallowOOBE:!0,category:"help_commands"},showFormsList:{announce:!1,disallowContinuation:!0,nodeList:"formField",msgId:"show_forms_list",category:"overview"},showHeadingsList:{announce:!1,nodeList:"heading",disallowContinuation:!0,msgId:"show_headings_list",category:"overview"},showLandmarksList:{announce:!1,nodeList:"landmark",disallowContinuation:!0,msgId:"show_landmarks_list",category:"overview"}, +showLinksList:{announce:!1,nodeList:"link",disallowContinuation:!0,msgId:"show_links_list",category:"overview"},showTablesList:{announce:!1,nodeList:"table",disallowContinuation:!0,msgId:"show_tables_list",category:"overview"},startHistoryRecording:{announce:!1},stopHistoryRecording:{announce:!1},enableConsoleTts:{announce:!1},autorunner:{announce:!1},nextArticle:{forward:!0,findNext:"article"},nextButton:{forward:!0,findNext:"button",msgId:"next_button",category:"jump_commands"},nextCheckbox:{forward:!0, +findNext:"checkbox",msgId:"next_checkbox",category:"jump_commands"},nextComboBox:{forward:!0,findNext:"combobox",msgId:"next_combo_box",category:"jump_commands"},nextControl:{forward:!0,findNext:"control"},nextEditText:{forward:!0,findNext:"editText",msgId:"next_edit_text",category:"jump_commands"},nextFormField:{forward:!0,findNext:"formField",msgId:"next_form_field",category:"jump_commands"},nextGraphic:{forward:!0,findNext:"graphic",msgId:"next_graphic",category:"jump_commands"},nextHeading:{forward:!0, +findNext:"heading",msgId:"next_heading",category:"jump_commands"},nextHeading1:{forward:!0,findNext:"heading1",msgId:"next_heading1",category:"jump_commands"},nextHeading2:{forward:!0,findNext:"heading2",msgId:"next_heading2",category:"jump_commands"},nextHeading3:{forward:!0,findNext:"heading3",msgId:"next_heading3",category:"jump_commands"},nextHeading4:{forward:!0,findNext:"heading4",msgId:"next_heading4",category:"jump_commands"},nextHeading5:{forward:!0,findNext:"heading5",msgId:"next_heading5", +category:"jump_commands"},nextHeading6:{forward:!0,findNext:"heading6",msgId:"next_heading6",category:"jump_commands"},nextLandmark:{forward:!0,findNext:"landmark",msgId:"next_landmark",category:"jump_commands"},nextLink:{forward:!0,findNext:"link",msgId:"next_link",category:"jump_commands"},nextList:{forward:!0,findNext:"list",msgId:"next_list",category:"jump_commands"},nextListItem:{forward:!0,findNext:"listItem",msgId:"next_list_item",category:"jump_commands"},nextMath:{forward:!0,findNext:"math", +msgId:"next_math",category:"jump_commands"},nextMedia:{forward:!0,findNext:"media",msgId:"next_media",category:"jump_commands"},nextRadio:{forward:!0,findNext:"radio",msgId:"next_radio",category:"jump_commands"},nextSection:{forward:!0,findNext:"section"},nextSlider:{forward:!0,findNext:"slider"},nextTable:{forward:!0,findNext:"table",msgId:"next_table",category:"jump_commands"},nextVisitedLink:{forward:!0,findNext:"visitedLink",msgId:"next_visited_link",category:"jump_commands"},previousArticle:{backward:!0, +findNext:"article"},previousButton:{backward:!0,findNext:"button",msgId:"previous_button",category:"jump_commands"},previousCheckbox:{backward:!0,findNext:"checkbox",msgId:"previous_checkbox",category:"jump_commands"},previousComboBox:{backward:!0,findNext:"combobox",msgId:"previous_combo_box",category:"jump_commands"},previousControl:{backward:!0,findNext:"control"},previousEditText:{backward:!0,findNext:"editText",msgId:"previous_edit_text",category:"jump_commands"},previousFormField:{backward:!0, +findNext:"formField",msgId:"previous_form_field",category:"jump_commands"},previousGraphic:{backward:!0,findNext:"graphic",msgId:"previous_graphic",category:"jump_commands"},previousHeading:{backward:!0,findNext:"heading",msgId:"previous_heading",category:"jump_commands"},previousHeading1:{backward:!0,findNext:"heading1",msgId:"previous_heading1",category:"jump_commands"},previousHeading2:{backward:!0,findNext:"heading2",msgId:"previous_heading2",category:"jump_commands"},previousHeading3:{backward:!0, +findNext:"heading3",msgId:"previous_heading3",category:"jump_commands"},previousHeading4:{backward:!0,findNext:"heading4",msgId:"previous_heading4",category:"jump_commands"},previousHeading5:{backward:!0,findNext:"heading5",msgId:"previous_heading5",category:"jump_commands"},previousHeading6:{backward:!0,findNext:"heading6",msgId:"previous_heading6",category:"jump_commands"},previousLandmark:{backward:!0,findNext:"landmark",msgId:"previous_landmark",category:"jump_commands"},previousLink:{backward:!0, +findNext:"link",msgId:"previous_link",category:"jump_commands"},previousList:{backward:!0,findNext:"list",msgId:"previous_list",category:"jump_commands"},previousListItem:{backward:!0,findNext:"listItem",msgId:"previous_list_item",category:"jump_commands"},previousMath:{backward:!0,findNext:"math",msgId:"previous_math",category:"jump_commands"},previousMedia:{backward:!0,findNext:"media",msgId:"previous_media",category:"jump_commands"},previousRadio:{backward:!0,findNext:"radio",msgId:"previous_radio", +category:"jump_commands"},previousSection:{backward:!0,findNext:"section"},previousSlider:{backward:!0,findNext:"slider"},previousTable:{backward:!0,findNext:"table",msgId:"previous_table",category:"jump_commands"},previousVisitedLink:{backward:!0,findNext:"visitedLink",msgId:"previous_visited_link",category:"jump_commands"},announceHeaders:{announce:!1,msgId:"announce_headers",category:"tables"},speakTableLocation:{announce:!1,msgId:"speak_table_location",category:"tables"},goToFirstCell:{announce:!0, +msgId:"skip_to_beginning",category:"tables"},goToLastCell:{announce:!0,msgId:"skip_to_end",category:"tables"},goToRowFirstCell:{announce:!0,msgId:"skip_to_row_beginning",category:"tables"},goToRowLastCell:{announce:!0,msgId:"skip_to_row_end",category:"tables"},goToColFirstCell:{announce:!0,msgId:"skip_to_col_beginning",category:"tables"},goToColLastCell:{announce:!0,msgId:"skip_to_col_end",category:"tables"},previousRow:{backward:!0,announce:!0,skipInput:!0},previousCol:{backward:!0,announce:!0,skipInput:!0}, +nextRow:{forward:!0,announce:!0,skipInput:!0},nextCol:{forward:!0,announce:!0,skipInput:!0},enterShifter:{announce:!0,msgId:"enter_content",category:"navigation"},exitShifter:{announce:!0,msgId:"exit_content",category:"navigation"},exitShifterContent:{announce:!0},openLongDesc:{announce:!1,msgId:"open_long_desc",category:"information"},pauseAllMedia:{announce:!1,msgId:"pause_all_media",category:"information"},toggleSemantics:{announce:!1,msgId:"toggle_semantics",category:"information"},routing:{announce:!0, +msgId:"braille_routing",category:"braille"},pan_left:{backward:!0,announce:!0,msgId:"braille_pan_left",category:"braille"},pan_right:{forward:!0,announce:!0,msgId:"braille_pan_right",category:"braille"},line_up:{backward:!0,announce:!0,msgId:"braille_line_up",category:"braille"},line_down:{forward:!0,announce:!0,msgId:"braille_line_down",category:"braille"},top:{forward:!0,announce:!0,msgId:"braille_top",category:"braille"},bottom:{backward:!0,announce:!0,msgId:"braille_bottom",category:"braille"}, +debug:{announce:!1},nop:{announce:!1}}; +cvox.CommandStore.NODE_INFO_MAP={checkbox:{predicate:"checkboxPredicate",forwardError:"no_next_checkbox",backwardError:"no_previous_checkbox",typeMsg:"aria_role_checkbox"},radio:{predicate:"radioPredicate",forwardError:"no_next_radio_button",backwardError:"no_previous_radio_button",typeMsg:"aria_role_radio"},slider:{predicate:"sliderPredicate",forwardError:"no_next_slider",backwardError:"no_previous_slider",typeMsg:"aria_role_slider"},graphic:{predicate:"graphicPredicate",forwardError:"no_next_graphic", +backwardError:"no_previous_graphic",typeMsg:"UNUSED"},article:{predicate:"articlePredicate",forwardError:"no_next_ARTICLE",backwardError:"no_previous_ARTICLE",typeMsg:"TAG_ARTICLE"},button:{predicate:"buttonPredicate",forwardError:"no_next_button",backwardError:"no_previous_button",typeMsg:"aria_role_button"},combobox:{predicate:"comboBoxPredicate",forwardError:"no_next_combo_box",backwardError:"no_previous_combo_box",typeMsg:"aria_role_combobox"},editText:{predicate:"editTextPredicate",forwardError:"no_next_edit_text", +backwardError:"no_previous_edit_text",typeMsg:"input_type_text"},heading:{predicate:"headingPredicate",forwardError:"no_next_heading",backwardError:"no_previous_heading",typeMsg:"aria_role_heading"},heading1:{predicate:"heading1Predicate",forwardError:"no_next_heading_1",backwardError:"no_previous_heading_1"},heading2:{predicate:"heading2Predicate",forwardError:"no_next_heading_2",backwardError:"no_previous_heading_2"},heading3:{predicate:"heading3Predicate",forwardError:"no_next_heading_3",backwardError:"no_previous_heading_3"}, +heading4:{predicate:"heading4Predicate",forwardError:"no_next_heading_4",backwardError:"no_previous_heading_4"},heading5:{predicate:"heading5Predicate",forwardError:"no_next_heading_5",backwardError:"no_previous_heading_5"},heading6:{predicate:"heading6Predicate",forwardError:"no_next_heading_6",backwardError:"no_previous_heading_6"},link:{predicate:"linkPredicate",forwardError:"no_next_link",backwardError:"no_previous_link",typeMsg:"aria_role_link"},table:{predicate:"tablePredicate",forwardError:"no_next_table", +backwardError:"no_previous_table",typeMsg:"table_strategy"},visitedLink:{predicate:"visitedLinkPredicate",forwardError:"no_next_visited_link",backwardError:"no_previous_visited_link",typeMsg:"tag_link"},list:{predicate:"listPredicate",forwardError:"no_next_list",backwardError:"no_previous_list",typeMsg:"aria_role_list"},listItem:{predicate:"listItemPredicate",forwardError:"no_next_list_item",backwardError:"no_previous_list_item",typeMsg:"aria_role_listitem"},formField:{predicate:"formFieldPredicate", +forwardError:"no_next_form_field",backwardError:"no_previous_form_field",typeMsg:"aria_role_form"},landmark:{predicate:"landmarkPredicate",forwardError:"no_next_landmark",backwardError:"no_previous_landmark",typeMsg:"role_landmark"},math:{predicate:"mathPredicate",forwardError:"no_next_math",backwardError:"no_previous_math",typeMsg:"math_expr"},media:{predicate:"mediaPredicate",forwardError:"no_next_media_widget",backwardError:"no_previous_media_widget"},section:{predicate:"sectionPredicate",forwardError:"no_next_section", +backwardError:"no_previous_section"},control:{predicate:"controlPredicate",forwardError:"no_next_control",backwardError:"no_previous_control"}};cvox.Widget=function(){this.active=!1;this.initialNode=null;cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||(cvox.Widget.ref_=this)};cvox.Widget.prototype.isActive=function(){return this.active}; +cvox.Widget.prototype.show=function(){this.isActive()&&this.hide(!0);this.onKeyDown=goog.bind(this.onKeyDown,this);this.onKeyPress=goog.bind(this.onKeyPress,this);window.addEventListener("keydown",this.onKeyDown,!0);window.addEventListener("keypress",this.onKeyPress,!0);this.initialNode=cvox.ChromeVox.navigationManager.getCurrentNode();this.isStickyOn=cvox.ChromeVox.isStickyOn;this.getNameMsg()&&this.getHelpMsg()&&cvox.$m(this.getNameMsg()).andPause().andMessage(this.getHelpMsg()).speakFlush();cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_OPEN); +this.active=!0};cvox.Widget.prototype.hide=function(a){window.removeEventListener("keypress",this.onKeyPress,!0);window.removeEventListener("keydown",this.onKeyDown,!0);cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_CLOSE);a||(this.initialNode=1==this.initialNode.nodeType?this.initialNode:this.initialNode.parentNode,cvox.ApiImplementation.syncToNode(this.initialNode,!0,cvox.AbstractTts.QUEUE_MODE_QUEUE));this.active=!1}; +cvox.Widget.prototype.toggle=function(){this.isActive()?this.hide():this.show()};cvox.Widget.prototype.onKeyDown=function(a){if(27==a.keyCode)return this.hide(),a.preventDefault(),!0;if(9==a.keyCode)return this.hide(),!0;17==a.keyCode&&cvox.ChromeVox.tts.stop();a.stopPropagation();return!0};cvox.Widget.prototype.onKeyPress=function(){return!1};cvox.Widget.isActive=function(){return cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||!1};cvox.NavDescription=function(a){this.context=a.context?a.context:"";this.text=a.text?a.text:"";this.userValue=a.userValue?a.userValue:"";this.annotation=a.annotation?a.annotation:"";this.earcons=a.earcons?a.earcons:[];this.personality=a.personality};cvox.NavDescription.prototype.isEmpty=function(){return 0==this.context.length&&0==this.earcons.length&&0==this.text.length&&0==this.userValue.length&&0==this.annotation.length}; +cvox.NavDescription.prototype.toString=function(){return'NavDescription(context="'+this.context+'" text="'+this.text+'" userValue="'+this.userValue+'" annotation="'+this.annotation+'")'};cvox.NavDescription.prototype.pushEarcon=function(a){this.earcons.push(a)}; +cvox.NavDescription.prototype.speak=function(a,b,c){function d(){var a={},b=cvox.AbstractTts.PERSONALITY_ANNOTATION,c;for(c in b)a[c]=b[c];return a}var e=[];this.context&&(e.push([this.context,a,d()]),a=1);e.push([this.text,a,this.personality?this.personality:{}]);a=1;this.userValue&&e.push([this.userValue,a,{}]);this.annotation&&e.push([this.annotation,a,d()]);a=e.length;for(var f=0;f<a;f++)0==f&&b&&(e[f][2].startCallback=b),f==a-1&&c&&(e[f][2].endCallback=c),cvox.ChromeVox.tts.speak.apply(cvox.ChromeVox.tts, +e[f])};cvox.NavDescription.prototype.equals=function(a){return this.context==a.context&&this.text==a.text&&this.userValue==a.userValue&&this.annotation==a.annotation};cvox.NavMathDescription=function(a){cvox.NavDescription.call(this,a);var b=this.personality?this.personality:{},c={};c.domain=a.domain?a.domain:"";c.style=a.style?a.style:"";b.math=c;this.personality=b};goog.inherits(cvox.NavMathDescription,cvox.NavDescription);cvox.SemanticUtil=function(){};cvox.SemanticUtil.objectsToKeys=function(a){a=Array.prototype.slice.call(arguments,0);var b=[];return b.concat.apply(b,a.map(Object.keys))};cvox.SemanticUtil.objectsToValues=function(a){a=Array.prototype.slice.call(arguments,0);var b=[],c=function(a){for(var c in a)b.push(a[c])};a.forEach(c);return b}; +cvox.SemanticUtil.unicodeToNumber=function(a){if(!a||2<a.length)return null;if(2==a.length){var b=a.charCodeAt(0);a=a.charCodeAt(1);return 55296<=b&&56319>=b&&!isNaN(a)?1024*(b-55296)+(a-56320)+65536:null}return a.charCodeAt(0)};cvox.SemanticUtil.numberToUnicode=function(a){if(65536<=a){var b=(a-65536)/1024+55296;a=(a-65536)%1024+56320;return String.fromCharCode(b,a)}return String.fromCharCode(a)};cvox.SemanticUtil.tagName=function(a){return a.tagName.toUpperCase()};cvox.SemanticUtil.IGNORETAGS="MERROR MPHANTOM MSPACE MACTION MALIGNGROUP MALIGNMARK MACTION".split(" "); +cvox.SemanticUtil.EMPTYTAGS=["MATH","MROW","MPADDED","MSTYLE"];cvox.SemanticUtil.purgeNodes=function(a){for(var b=[],c=0,d;d=a[c];c++){var e=cvox.SemanticUtil.tagName(d);-1==cvox.SemanticUtil.IGNORETAGS.indexOf(e)&&(-1!=cvox.SemanticUtil.EMPTYTAGS.indexOf(e)&&0==d.childNodes.length||b.push(d))}return b};cvox.SemanticAttr=function(){this.generalPunctuations="!\"#%&'*,:;?@\\\u00a1\u00a7\u00b6\u00b7\u00bf\u2017\u2020\u2021\u2022\u2023\u2024\u2025\u2027\u2030\u2031\u2038\u203b\u203c\u203d\u203e\u2041\u2042\u2043\u2047\u2048\u2049\u204b\u204c\u204d\u204e\u204f\u2050\u2051\u2053\u2055\u2056\u2058\u2059\u205a\u205b\u205c\u205d\u205e\ufe10\ufe13\ufe14\ufe15\ufe16\ufe30\ufe45\ufe46\ufe49\ufe4a\ufe4b\ufe4c\ufe50\ufe54\ufe55\ufe56\ufe57\ufe5f\ufe60\ufe61\ufe68\ufe6a\ufe6b\uff01\uff02\uff03\uff05\uff06\uff07\uff0a\uff0c\uff0f\uff1a\uff1b\uff1f\uff20\uff3c".split(""); +this.invisibleComma_=cvox.SemanticUtil.numberToUnicode(8291);this.generalPunctuations.push(this.invisibleComma_);this.ellipses="\u2026\u22ee\u22ef\u22f0\u22f1\ufe19".split("");this.fullStops=[".","\ufe52","\uff0e"];this.dashes="\u2012\u2013\u2014\u2015\u301c\ufe31\ufe32\ufe58".split("");this.primes="\u2032\u2033\u2034\u2035\u2036\u2037\u2057".split("");this.openClosePairs={"(":")","[":"]","{":"}","\u2045":"\u2046","\u2329":"\u232a","\u2768":"\u2769","\u276a":"\u276b","\u276c":"\u276d","\u276e":"\u276f", +"\u2770":"\u2771","\u2772":"\u2773","\u2774":"\u2775","\u27c5":"\u27c6","\u27e6":"\u27e7","\u27e8":"\u27e9","\u27ea":"\u27eb","\u27ec":"\u27ed","\u27ee":"\u27ef","\u2983":"\u2984","\u2985":"\u2986","\u2987":"\u2988","\u2989":"\u298a","\u298b":"\u298c","\u298d":"\u298e","\u298f":"\u2990","\u2991":"\u2992","\u2993":"\u2994","\u2995":"\u2996","\u2997":"\u2998","\u29d8":"\u29d9","\u29da":"\u29db","\u29fc":"\u29fd","\u2e22":"\u2e23","\u2e24":"\u2e25","\u2e26":"\u2e27","\u2e28":"\u2e29","\u3008":"\u3009", +"\u300a":"\u300b","\u300c":"\u300d","\u300e":"\u300f","\u3010":"\u3011","\u3014":"\u3015","\u3016":"\u3017","\u3018":"\u3019","\u301a":"\u301b","\u301d":"\u301e","\ufd3e":"\ufd3f","\ufe17":"\ufe18","\ufe59":"\ufe5a","\ufe5b":"\ufe5c","\ufe5d":"\ufe5e","\uff08":"\uff09","\uff3b":"\uff3d","\uff5b":"\uff5d","\uff5f":"\uff60","\uff62":"\uff63","\u2308":"\u2309","\u230a":"\u230b","\u230c":"\u230d","\u230e":"\u230f","\u231c":"\u231d","\u231e":"\u231f","\u239b":"\u239e","\u239c":"\u239f","\u239d":"\u23a0", +"\u23a1":"\u23a4","\u23a2":"\u23a5","\u23a3":"\u23a6","\u23a7":"\u23ab","\u23a8":"\u23ac","\u23a9":"\u23ad","\u23b0":"\u23b1","\u23b8":"\u23b9"};this.topBottomPairs={"\u23b4":"\u23b5","\u23dc":"\u23dd","\u23de":"\u23df","\u23e0":"\u23e1","\ufe35":"\ufe36","\ufe37":"\ufe38","\ufe39":"\ufe3a","\ufe3b":"\ufe3c","\ufe3d":"\ufe3e","\ufe3f":"\ufe40","\ufe41":"\ufe42","\ufe43":"\ufe44","\ufe47":"\ufe48"};this.leftFences=cvox.SemanticUtil.objectsToKeys(this.openClosePairs);this.rightFences=cvox.SemanticUtil.objectsToValues(this.openClosePairs); +this.rightFences.push("\u301f");this.topFences=cvox.SemanticUtil.objectsToKeys(this.topBottomPairs);this.bottomFences=cvox.SemanticUtil.objectsToValues(this.topBottomPairs);this.neutralFences="|\u00a6\u2016\u2758\u2980\u2af4\uffe4\uff5c".split("");this.capitalLatin="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");this.smallLatin="abcdefghijklmnopqrstuvwxyz\u0131\u0237".split("");this.capitalLatinFullWidth="\uff21\uff22\uff23\uff24\uff25\uff26\uff27\uff28\uff29\uff2a\uff2b\uff2c\uff2d\uff2e\uff2f\uff30\uff31\uff32\uff33\uff34\uff35\uff36\uff37\uff38\uff39\uff3a".split(""); +this.smallLatinFullWidth="\uff41\uff42\uff43\uff44\uff45\uff46\uff47\uff48\uff49\uff4a\uff4b\uff4c\uff4d\uff4e\uff4f\uff50\uff51\uff52\uff53\uff54\uff55\uff56\uff57\uff58\uff59\uff5a".split("");this.capitalLatinBold="\ud835\udc00 \ud835\udc01 \ud835\udc02 \ud835\udc03 \ud835\udc04 \ud835\udc05 \ud835\udc06 \ud835\udc07 \ud835\udc08 \ud835\udc09 \ud835\udc0a \ud835\udc0b \ud835\udc0c \ud835\udc0d \ud835\udc0e \ud835\udc0f \ud835\udc10 \ud835\udc11 \ud835\udc12 \ud835\udc13 \ud835\udc14 \ud835\udc15 \ud835\udc16 \ud835\udc17 \ud835\udc18 \ud835\udc19".split(" "); +this.smallLatinBold="\ud835\udc1a \ud835\udc1b \ud835\udc1c \ud835\udc1d \ud835\udc1e \ud835\udc1f \ud835\udc20 \ud835\udc21 \ud835\udc22 \ud835\udc23 \ud835\udc24 \ud835\udc25 \ud835\udc26 \ud835\udc27 \ud835\udc28 \ud835\udc29 \ud835\udc2a \ud835\udc2b \ud835\udc2c \ud835\udc2d \ud835\udc2e \ud835\udc2f \ud835\udc30 \ud835\udc31 \ud835\udc32 \ud835\udc33".split(" ");this.capitalLatinItalic="\ud835\udc34 \ud835\udc35 \ud835\udc36 \ud835\udc37 \ud835\udc38 \ud835\udc39 \ud835\udc3a \ud835\udc3b \ud835\udc3c \ud835\udc3d \ud835\udc3e \ud835\udc3f \ud835\udc40 \ud835\udc41 \ud835\udc42 \ud835\udc43 \ud835\udc44 \ud835\udc45 \ud835\udc46 \ud835\udc47 \ud835\udc48 \ud835\udc49 \ud835\udc4a \ud835\udc4b \ud835\udc4c \ud835\udc4d".split(" "); +this.smallLatinItalic="\ud835\udc4e \ud835\udc4f \ud835\udc50 \ud835\udc51 \ud835\udc52 \ud835\udc53 \ud835\udc54 \u210e \ud835\udc56 \ud835\udc57 \ud835\udc58 \ud835\udc59 \ud835\udc5a \ud835\udc5b \ud835\udc5c \ud835\udc5d \ud835\udc5e \ud835\udc5f \ud835\udc60 \ud835\udc61 \ud835\udc62 \ud835\udc63 \ud835\udc64 \ud835\udc65 \ud835\udc66 \ud835\udc67 \ud835\udea4 \ud835\udea5".split(" ");this.capitalLatinScript="\ud835\udc9c \u212c \ud835\udc9e \ud835\udc9f \u2130 \u2131 \ud835\udca2 \u210b \u2110 \ud835\udca5 \ud835\udca6 \u2112 \u2133 \ud835\udca9 \ud835\udcaa \ud835\udcab \ud835\udcac \u211b \ud835\udcae \ud835\udcaf \ud835\udcb0 \ud835\udcb1 \ud835\udcb2 \ud835\udcb3 \ud835\udcb4 \ud835\udcb5 \u2118".split(" "); +this.smallLatinScript="\ud835\udcb6 \ud835\udcb7 \ud835\udcb8 \ud835\udcb9 \u212f \ud835\udcbb \u210a \ud835\udcbd \ud835\udcbe \ud835\udcbf \ud835\udcc0 \ud835\udcc1 \ud835\udcc2 \ud835\udcc3 \u2134 \ud835\udcc5 \ud835\udcc6 \ud835\udcc7 \ud835\udcc8 \ud835\udcc9 \ud835\udcca \ud835\udccb \ud835\udccc \ud835\udccd \ud835\udcce \ud835\udccf \u2113".split(" ");this.capitalLatinBoldScript="\ud835\udcd0 \ud835\udcd1 \ud835\udcd2 \ud835\udcd3 \ud835\udcd4 \ud835\udcd5 \ud835\udcd6 \ud835\udcd7 \ud835\udcd8 \ud835\udcd9 \ud835\udcda \ud835\udcdb \ud835\udcdc \ud835\udcdd \ud835\udcde \ud835\udcdf \ud835\udce0 \ud835\udce1 \ud835\udce2 \ud835\udce3 \ud835\udce4 \ud835\udce5 \ud835\udce6 \ud835\udce7 \ud835\udce8 \ud835\udce9".split(" "); +this.smallLatinBoldScript="\ud835\udcea \ud835\udceb \ud835\udcec \ud835\udced \ud835\udcee \ud835\udcef \ud835\udcf0 \ud835\udcf1 \ud835\udcf2 \ud835\udcf3 \ud835\udcf4 \ud835\udcf5 \ud835\udcf6 \ud835\udcf7 \ud835\udcf8 \ud835\udcf9 \ud835\udcfa \ud835\udcfb \ud835\udcfc \ud835\udcfd \ud835\udcfe \ud835\udcff \ud835\udd00 \ud835\udd01 \ud835\udd02 \ud835\udd03".split(" ");this.capitalLatinFraktur="\ud835\udd04 \ud835\udd05 \u212d \ud835\udd07 \ud835\udd08 \ud835\udd09 \ud835\udd0a \u210c \u2111 \ud835\udd0d \ud835\udd0e \ud835\udd0f \ud835\udd10 \ud835\udd11 \ud835\udd12 \ud835\udd13 \ud835\udd14 \u211c \ud835\udd16 \ud835\udd17 \ud835\udd18 \ud835\udd19 \ud835\udd1a \ud835\udd1b \ud835\udd1c \u2128".split(" "); +this.smallLatinFraktur="\ud835\udd1e \ud835\udd1f \ud835\udd20 \ud835\udd21 \ud835\udd22 \ud835\udd23 \ud835\udd24 \ud835\udd25 \ud835\udd26 \ud835\udd27 \ud835\udd28 \ud835\udd29 \ud835\udd2a \ud835\udd2b \ud835\udd2c \ud835\udd2d \ud835\udd2e \ud835\udd2f \ud835\udd30 \ud835\udd31 \ud835\udd32 \ud835\udd33 \ud835\udd34 \ud835\udd35 \ud835\udd36 \ud835\udd37".split(" ");this.capitalLatinDoubleStruck="\ud835\udd38 \ud835\udd39 \u2102 \ud835\udd3b \ud835\udd3c \ud835\udd3d \ud835\udd3e \u210d \ud835\udd40 \ud835\udd41 \ud835\udd42 \ud835\udd43 \ud835\udd44 \u2115 \ud835\udd46 \u2119 \u211a \u211d \ud835\udd4a \ud835\udd4b \ud835\udd4c \ud835\udd4d \ud835\udd4e \ud835\udd4f \ud835\udd50 \u2124".split(" "); +this.smallLatinDoubleStruck="\ud835\udd52 \ud835\udd53 \ud835\udd54 \ud835\udd55 \ud835\udd56 \ud835\udd57 \ud835\udd58 \ud835\udd59 \ud835\udd5a \ud835\udd5b \ud835\udd5c \ud835\udd5d \ud835\udd5e \ud835\udd5f \ud835\udd60 \ud835\udd61 \ud835\udd62 \ud835\udd63 \ud835\udd64 \ud835\udd65 \ud835\udd66 \ud835\udd67 \ud835\udd68 \ud835\udd69 \ud835\udd6a \ud835\udd6b".split(" ");this.capitalLatinBoldFraktur="\ud835\udd6c \ud835\udd6d \ud835\udd6e \ud835\udd6f \ud835\udd70 \ud835\udd71 \ud835\udd72 \ud835\udd73 \ud835\udd74 \ud835\udd75 \ud835\udd76 \ud835\udd77 \ud835\udd78 \ud835\udd79 \ud835\udd7a \ud835\udd7b \ud835\udd7c \ud835\udd7d \ud835\udd7e \ud835\udd7f \ud835\udd80 \ud835\udd81 \ud835\udd82 \ud835\udd83 \ud835\udd84 \ud835\udd85".split(" "); +this.smallLatinBoldFraktur="\ud835\udd86 \ud835\udd87 \ud835\udd88 \ud835\udd89 \ud835\udd8a \ud835\udd8b \ud835\udd8c \ud835\udd8d \ud835\udd8e \ud835\udd8f \ud835\udd90 \ud835\udd91 \ud835\udd92 \ud835\udd93 \ud835\udd94 \ud835\udd95 \ud835\udd96 \ud835\udd97 \ud835\udd98 \ud835\udd99 \ud835\udd9a \ud835\udd9b \ud835\udd9c \ud835\udd9d \ud835\udd9e \ud835\udd9f".split(" ");this.capitalLatinSansSerif="\ud835\udda0 \ud835\udda1 \ud835\udda2 \ud835\udda3 \ud835\udda4 \ud835\udda5 \ud835\udda6 \ud835\udda7 \ud835\udda8 \ud835\udda9 \ud835\uddaa \ud835\uddab \ud835\uddac \ud835\uddad \ud835\uddae \ud835\uddaf \ud835\uddb0 \ud835\uddb1 \ud835\uddb2 \ud835\uddb3 \ud835\uddb4 \ud835\uddb5 \ud835\uddb6 \ud835\uddb7 \ud835\uddb8 \ud835\uddb9".split(" "); +this.smallLatinSansSerif="\ud835\uddba \ud835\uddbb \ud835\uddbc \ud835\uddbd \ud835\uddbe \ud835\uddbf \ud835\uddc0 \ud835\uddc1 \ud835\uddc2 \ud835\uddc3 \ud835\uddc4 \ud835\uddc5 \ud835\uddc6 \ud835\uddc7 \ud835\uddc8 \ud835\uddc9 \ud835\uddca \ud835\uddcb \ud835\uddcc \ud835\uddcd \ud835\uddce \ud835\uddcf \ud835\uddd0 \ud835\uddd1 \ud835\uddd2 \ud835\uddd3".split(" ");this.capitalLatinSansSerifBold="\ud835\uddd4 \ud835\uddd5 \ud835\uddd6 \ud835\uddd7 \ud835\uddd8 \ud835\uddd9 \ud835\uddda \ud835\udddb \ud835\udddc \ud835\udddd \ud835\uddde \ud835\udddf \ud835\udde0 \ud835\udde1 \ud835\udde2 \ud835\udde3 \ud835\udde4 \ud835\udde5 \ud835\udde6 \ud835\udde7 \ud835\udde8 \ud835\udde9 \ud835\uddea \ud835\uddeb \ud835\uddec \ud835\udded".split(" "); +this.smallLatinSansSerifBold="\ud835\uddee \ud835\uddef \ud835\uddf0 \ud835\uddf1 \ud835\uddf2 \ud835\uddf3 \ud835\uddf4 \ud835\uddf5 \ud835\uddf6 \ud835\uddf7 \ud835\uddf8 \ud835\uddf9 \ud835\uddfa \ud835\uddfb \ud835\uddfc \ud835\uddfd \ud835\uddfe \ud835\uddff \ud835\ude00 \ud835\ude01 \ud835\ude02 \ud835\ude03 \ud835\ude04 \ud835\ude05 \ud835\ude06 \ud835\ude07".split(" ");this.capitalLatinSansSerifItalic="\ud835\ude08 \ud835\ude09 \ud835\ude0a \ud835\ude0b \ud835\ude0c \ud835\ude0d \ud835\ude0e \ud835\ude0f \ud835\ude10 \ud835\ude11 \ud835\ude12 \ud835\ude13 \ud835\ude14 \ud835\ude15 \ud835\ude16 \ud835\ude17 \ud835\ude18 \ud835\ude19 \ud835\ude1a \ud835\ude1b \ud835\ude1c \ud835\ude1d \ud835\ude1e \ud835\ude1f \ud835\ude20 \ud835\ude21".split(" "); +this.smallLatinSansSerifItalic="\ud835\ude22 \ud835\ude23 \ud835\ude24 \ud835\ude25 \ud835\ude26 \ud835\ude27 \ud835\ude28 \ud835\ude29 \ud835\ude2a \ud835\ude2b \ud835\ude2c \ud835\ude2d \ud835\ude2e \ud835\ude2f \ud835\ude30 \ud835\ude31 \ud835\ude32 \ud835\ude33 \ud835\ude34 \ud835\ude35 \ud835\ude36 \ud835\ude37 \ud835\ude38 \ud835\ude39 \ud835\ude3a \ud835\ude3b".split(" ");this.capitalLatinMonospace="\ud835\ude70 \ud835\ude71 \ud835\ude72 \ud835\ude73 \ud835\ude74 \ud835\ude75 \ud835\ude76 \ud835\ude77 \ud835\ude78 \ud835\ude79 \ud835\ude7a \ud835\ude7b \ud835\ude7c \ud835\ude7d \ud835\ude7e \ud835\ude7f \ud835\ude80 \ud835\ude81 \ud835\ude82 \ud835\ude83 \ud835\ude84 \ud835\ude85 \ud835\ude86 \ud835\ude87 \ud835\ude88 \ud835\ude89".split(" "); +this.smallLatinMonospace="\ud835\ude8a \ud835\ude8b \ud835\ude8c \ud835\ude8d \ud835\ude8e \ud835\ude8f \ud835\ude90 \ud835\ude91 \ud835\ude92 \ud835\ude93 \ud835\ude94 \ud835\ude95 \ud835\ude96 \ud835\ude97 \ud835\ude98 \ud835\ude99 \ud835\ude9a \ud835\ude9b \ud835\ude9c \ud835\ude9d \ud835\ude9e \ud835\ude9f \ud835\udea0 \ud835\udea1 \ud835\udea2 \ud835\udea3".split(" ");this.latinDoubleStruckItalic=["\u2145","\u2146","\u2147","\u2148","\u2149"];this.capitalGreek="\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9".split(""); +this.smallGreek="\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9".split("");this.capitalGreekBold="\ud835\udea8 \ud835\udea9 \ud835\udeaa \ud835\udeab \ud835\udeac \ud835\udead \ud835\udeae \ud835\udeaf \ud835\udeb0 \ud835\udeb1 \ud835\udeb2 \ud835\udeb3 \ud835\udeb4 \ud835\udeb5 \ud835\udeb6 \ud835\udeb7 \ud835\udeb8 \ud835\udeba \ud835\udebb \ud835\udebc \ud835\udebd \ud835\udebe \ud835\udebf \ud835\udec0".split(" "); +this.smallGreekBold="\ud835\udec2 \ud835\udec3 \ud835\udec4 \ud835\udec5 \ud835\udec6 \ud835\udec7 \ud835\udec8 \ud835\udec9 \ud835\udeca \ud835\udecb \ud835\udecc \ud835\udecd \ud835\udece \ud835\udecf \ud835\uded0 \ud835\uded1 \ud835\uded2 \ud835\uded3 \ud835\uded4 \ud835\uded5 \ud835\uded6 \ud835\uded7 \ud835\uded8 \ud835\uded9 \ud835\udeda".split(" ");this.capitalGreekItalic="\ud835\udee2 \ud835\udee3 \ud835\udee4 \ud835\udee5 \ud835\udee6 \ud835\udee7 \ud835\udee8 \ud835\udee9 \ud835\udeea \ud835\udeeb \ud835\udeec \ud835\udeed \ud835\udeee \ud835\udeef \ud835\udef0 \ud835\udef1 \ud835\udef2 \ud835\udef4 \ud835\udef5 \ud835\udef6 \ud835\udef7 \ud835\udef8 \ud835\udef9 \ud835\udefa".split(" "); +this.smallGreekItalic="\ud835\udefc \ud835\udefd \ud835\udefe \ud835\udeff \ud835\udf00 \ud835\udf01 \ud835\udf02 \ud835\udf03 \ud835\udf04 \ud835\udf05 \ud835\udf06 \ud835\udf07 \ud835\udf08 \ud835\udf09 \ud835\udf0a \ud835\udf0b \ud835\udf0c \ud835\udf0d \ud835\udf0e \ud835\udf0f \ud835\udf10 \ud835\udf11 \ud835\udf12 \ud835\udf13 \ud835\udf14".split(" ");this.capitalGreekSansSerifBold="\ud835\udf56 \ud835\udf57 \ud835\udf58 \ud835\udf59 \ud835\udf5a \ud835\udf5b \ud835\udf5c \ud835\udf5d \ud835\udf5e \ud835\udf5f \ud835\udf60 \ud835\udf61 \ud835\udf62 \ud835\udf63 \ud835\udf64 \ud835\udf65 \ud835\udf66 \ud835\udf68 \ud835\udf69 \ud835\udf6a \ud835\udf6b \ud835\udf6c \ud835\udf6d \ud835\udf6e".split(" "); +this.smallGreekSansSerifBold="\ud835\udf70 \ud835\udf71 \ud835\udf72 \ud835\udf73 \ud835\udf74 \ud835\udf75 \ud835\udf76 \ud835\udf77 \ud835\udf78 \ud835\udf79 \ud835\udf7a \ud835\udf7b \ud835\udf7c \ud835\udf7d \ud835\udf7e \ud835\udf7f \ud835\udf80 \ud835\udf81 \ud835\udf82 \ud835\udf83 \ud835\udf84 \ud835\udf85 \ud835\udf86 \ud835\udf87 \ud835\udf88".split(" ");this.greekDoubleStruck=["\u213c","\u213d","\u213e","\u213f"];this.hebrewLetters=["\u2135","\u2136","\u2137","\u2138"];this.additions="+\u00b1\u2213\u2214\u2227\u2228\u2229\u222a\u228c\u2293\u2294\u229d\u229e\u22a4\u22a5\u22ba\u22bb\u22bc\u22c4\u22ce\u22cf\u22d2\u22d3\u25b3\u25b7\u25bd\u25c1\u2a5e\u2295".split(""); +this.invisiblePlus_=cvox.SemanticUtil.numberToUnicode(8292);this.additions.push(this.invisiblePlus_);this.multiplications="\u2020\u2021\u2210\u2217\u2218\u2219\u2240\u229a\u229b\u22a0\u22a1\u22c5\u22c6\u22c7\u22c9\u22ca\u22cb\u22cc\u25cb".split("");this.invisibleTimes_=cvox.SemanticUtil.numberToUnicode(8290);this.multiplications.push(this.invisibleTimes_);this.subtractions="-\u2052\u207b\u208b\u2212\u2216\u2238\u2242\u2296\u229f\u2796\u2a29\u2a2a\u2a2b\u2a2c\u2a3a\u2a41\u2a6c\ufe63\uff0d\u2010\u2011".split(""); +this.divisions="/\u00f7\u2044\u2215\u2298\u27cc\u29bc\u2a38".split("");this.functionApplication_=cvox.SemanticUtil.numberToUnicode(8289);this.equalities="=~\u207c\u208c\u223c\u223d\u2243\u2245\u2248\u224a\u224b\u224c\u224d\u224e\u2251\u2252\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225a\u225b\u225c\u225d\u225e\u225f\u2261\u2263\u29e4\u2a66\u2a6e\u2a6f\u2a70\u2a71\u2a72\u2a73\u2a74\u2a75\u2a76\u2a77\u2a78\u22d5\u2a6d\u2a6a\u2a6b\u2a6c\ufe66\uff1d".split("");this.inequalities="<>\u2241\u2242\u2244\u2246\u2247\u2249\u224f\u2250\u2260\u2262\u2264\u2265\u2266\u2267\u2268\u2269\u226a\u226b\u226c\u226d\u226e\u226f\u2270\u2271\u2272\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227a\u227b\u227c\u227d\u227e\u227f\u2280\u2281\u22d6\u22d7\u22d8\u22d9\u22da\u22db\u22dc\u22dd\u22de\u22df\u22e0\u22e1\u22e2\u22e3\u22e4\u22e5\u22e6\u22e7\u22e8\u22e9\u2a79\u2a7a\u2a7b\u2a7c\u2a7d\u2a7e\u2a7f\u2a80\u2a81\u2a82\u2a83\u2a84\u2a85\u2a86\u2a87\u2a88\u2a89\u2a8a\u2a8b\u2a8c\u2a8d\u2a8e\u2a8f\u2a90\u2a91\u2a92\u2a93\u2a94\u2a95\u2a96\u2a97\u2a98\u2a99\u2a9a\u2a9b\u2a9c\u2a9d\u2a9e\u2a9f\u2aa0\u2aa1\u2aa2\u2aa3\u2aa4\u2aa5\u2aa6\u2aa7\u2aa8\u2aa9\u2aaa\u2aab\u2aac\u2aad\u2aae\u2aaf\u2ab0\u2ab1\u2ab2\u2ab3\u2ab4\u2ab5\u2ab6\u2ab7\u2ab8\u2ab9\u2aba\u2abb\u2abc\u2af7\u2af8\u2af9\u2afa\u29c0\u29c1\ufe64\ufe65\uff1c\uff1e".split(""); +this.relations=[];this.arrows="\u2190\u2191\u2192\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219a\u219b\u219c\u219d\u219e\u219f\u21a0\u21a1\u21a2\u21a3\u21a4\u21a5\u21a6\u21a7\u21a8\u21a9\u21aa\u21ab\u21ac\u21ad\u21ae\u21af\u21b0\u21b1\u21b2\u21b3\u21b4\u21b5\u21b6\u21b7\u21b8\u21b9\u21ba\u21bb\u21c4\u21c5\u21c6\u21c7\u21c8\u21c9\u21ca\u21cd\u21ce\u21cf\u21d0\u21d1\u21d2\u21d3\u21d4\u21d5\u21d6\u21d7\u21d8\u21d9\u21da\u21db\u21dc\u21dd\u21de\u21df\u21e0\u21e1\u21e2\u21e3\u21e4\u21e5\u21e6\u21e7\u21e8\u21e9\u21ea\u21eb\u21ec\u21ed\u21ee\u21ef\u21f0\u21f1\u21f2\u21f3\u21f4\u21f5\u21f6\u21f7\u21f8\u21f9\u21fa\u21fb\u21fc\u21fd\u21fe\u21ff\u2301\u2303\u2304\u2324\u238b\u2794\u2798\u2799\u279a\u279b\u279c\u279d\u279e\u279f\u27a0\u27a1\u27a2\u27a3\u27a4\u27a5\u27a6\u27a7\u27a8\u27a9\u27aa\u27ab\u27ac\u27ad\u27ae\u27af\u27b1\u27b2\u27b3\u27b4\u27b5\u27b6\u27b7\u27b8\u27b9\u27ba\u27bb\u27bc\u27bd\u27be\u27f0\u27f1\u27f2\u27f3\u27f4\u27f5\u27f6\u27f7\u27f8\u27f9\u27fa\u27fb\u27fc\u27fd\u27fe\u27ff\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907\u2908\u2909\u290a\u290b\u290c\u290d\u290e\u290f\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917\u2918\u2919\u291a\u291b\u291c\u291d\u291e\u291f\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927\u2928\u2929\u292a\u292d\u292e\u292f\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937\u2938\u2939\u293a\u293b\u293c\u293d\u293e\u293f\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947\u2948\u2949\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977\u2978\u2979\u297a\u297b\u29b3\u29b4\u29bd\u29ea\u29ec\u29ed\u2a17\u2b00\u2b01\u2b02\u2b03\u2b04\u2b05\u2b06\u2b07\u2b08\u2b09\u2b0a\u2b0b\u2b0c\u2b0d\u2b0e\u2b0f\u2b10\u2b11\u2b30\u2b31\u2b32\u2b33\u2b34\u2b35\u2b36\u2b37\u2b38\u2b39\u2b3a\u2b3b\u2b3c\u2b3d\u2b3e\u2b3f\u2b40\u2b41\u2b42\u2b43\u2b44\u2b45\u2b46\u2b47\u2b48\u2b49\u2b4a\u2b4b\u2b4c\uffe9\uffea\uffeb\uffec\u21bc\u21bd\u21be\u21bf\u21c0\u21c1\u21c2\u21c3\u21cb\u21cc\u294a\u294b\u294c\u294d\u294e\u294f\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957\u2958\u2959\u295a\u295b\u295c\u295d\u295e\u295f\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967\u2968\u2969\u296a\u296b\u296c\u296d\u296e\u296f\u297c\u297d\u297e\u297f".split(""); +this.sumOps="\u2140\u220f\u2210\u2211\u22c0\u22c1\u22c2\u22c3\u2a00\u2a01\u2a02\u2a03\u2a04\u2a05\u2a06\u2a07\u2a08\u2a09\u2a0a\u2a0b\u2afc\u2aff".split("");this.intOps="\u222b\u222c\u222d\u222e\u222f\u2230\u2231\u2232\u2233\u2a0c\u2a0d\u2a0e\u2a0f\u2a10\u2a11\u2a12\u2a13\u2a14\u2a15\u2a16\u2a17\u2a18\u2a19\u2a1a\u2a1b\u2a1c".split("");this.prefixOps=["\u2200","\u2203"];this.digitsNormal="0123456789".split("");this.digitsFullWidth="\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19".split(""); +this.digitsBold="\ud835\udfce \ud835\udfcf \ud835\udfd0 \ud835\udfd1 \ud835\udfd2 \ud835\udfd3 \ud835\udfd4 \ud835\udfd5 \ud835\udfd6 \ud835\udfd7".split(" ");this.digitsDoubleStruck="\ud835\udfd8 \ud835\udfd9 \ud835\udfda \ud835\udfdb \ud835\udfdc \ud835\udfdd \ud835\udfde \ud835\udfdf \ud835\udfe0 \ud835\udfe1".split(" ");this.digitsSansSerif="\ud835\udfe2 \ud835\udfe3 \ud835\udfe4 \ud835\udfe5 \ud835\udfe6 \ud835\udfe7 \ud835\udfe8 \ud835\udfe9 \ud835\udfea \ud835\udfeb".split(" ");this.digitsSansSerifBold= +"\ud835\udfec \ud835\udfed \ud835\udfee \ud835\udfef \ud835\udff0 \ud835\udff1 \ud835\udff2 \ud835\udff3 \ud835\udff4 \ud835\udff5".split(" ");this.digitsMonospace="\ud835\udff6 \ud835\udff7 \ud835\udff8 \ud835\udff9 \ud835\udffa \ud835\udffb \ud835\udffc \ud835\udffd \ud835\udffe \ud835\udfff".split(" ");this.digitsSuperscript="\u00b2\u00b3\u00b9\u2070\u2074\u2075\u2076\u2077\u2078\u2079".split("");this.digitsSubscript="\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089".split("");this.fractions= +"\u00bc\u00bd\u00be\u2150\u2151\u2152\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215a\u215b\u215c\u215d\u215e\u215f\u2189".split("");this.enclosedNumbers="\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468\u2469\u246a\u246b\u246c\u246d\u246e\u246f\u2470\u2471\u2472\u2473\u24ea\u24eb\u24ec\u24ed\u24ee\u24ef\u24f0\u24f1\u24f2\u24f3\u24f4\u24f5\u24f6\u24f7\u24f8\u24f9\u24fa\u24fb\u24fc\u24fd\u24fe\u24ff\u2776\u2777\u2778\u2779\u277a\u277b\u277c\u277d\u277e\u277f\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787\u2788\u2789\u278a\u278b\u278c\u278d\u278e\u278f\u2790\u2791\u2792\u2793\u3248\u3249\u324a\u324b\u324c\u324d\u324e\u324f\u3251\u3252\u3253\u3254\u3255\u3256\u3257\u3258\u3259\u325a\u325b\u325c\u325d\u325e\u325f\u32b1\u32b2\u32b3\u32b4\u32b5\u32b6\u32b7\u32b8\u32b9\u32ba\u32bb\u32bc\u32bd\u32be\u32bf".split(""); +this.fencedNumbers="\u2474\u2475\u2476\u2477\u2478\u2479\u247a\u247b\u247c\u247d\u247e\u247f\u2480\u2481\u2482\u2483\u2484\u2485\u2486\u2487".split("");this.punctuatedNumbers="\u2488 \u2489 \u248a \u248b \u248c \u248d \u248e \u248f \u2490 \u2491 \u2492 \u2493 \u2494 \u2495 \u2496 \u2497 \u2498 \u2499 \u249a \u249b \ud83c\udd00 \ud83c\udd01 \ud83c\udd02 \ud83c\udd03 \ud83c\udd04 \ud83c\udd05 \ud83c\udd06 \ud83c\udd07 \ud83c\udd08 \ud83c\udd09 \ud83c\udd0a".split(" ");this.numbers=this.fractions.concat(this.digitsSuperscript, +this.digitsSubscript,this.enclosedNumbers,this.fencedNumbers,this.punctuatedNumbers);this.trigonometricFunctions="cos cot csc sec sin tan arccos arccot arccsc arcsec arcsin arctan".split(" ");this.hyperbolicFunctions="cosh coth csch sech sinh tanh arcosh arcoth arcsch arsech arsinh artanh arccosh arccoth arccsch arcsech arcsinh arctanh".split(" ");this.algebraicFunctions="deg det dim hom ker Tr tr".split(" ");this.elementaryFunctions="log ln lg exp expt gcd gcd arg im re Pr".split(" ");this.prefixFunctions= +this.trigonometricFunctions.concat(this.hyperbolicFunctions,this.algebraicFunctions,this.elementaryFunctions);this.limitFunctions="inf lim liminf limsup max min sup injlim projlim".split(" ");this.infixFunctions=["mod","rem"];this.symbolSetToSemantic_=[{set:this.generalPunctuations,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.ellipses,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.ELLIPSIS},{set:this.fullStops,type:cvox.SemanticAttr.Type.PUNCTUATION, +role:cvox.SemanticAttr.Role.FULLSTOP},{set:this.dashes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.DASH},{set:this.primes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.PRIME},{set:this.leftFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.OPEN},{set:this.rightFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.CLOSE},{set:this.topFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.TOP},{set:this.bottomFences, +type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.BOTTOM},{set:this.neutralFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.NEUTRAL},{set:this.smallLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER, +role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD}, +{set:this.smallLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SCRIPT},{set:this.capitalLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER, +font:cvox.SemanticAttr.Font.SCRIPT},{set:this.smallLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.capitalLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.smallLatinFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.capitalLatinFraktur, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.smallLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.capitalLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.smallLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER, +font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.capitalLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.smallLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.capitalLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.smallLatinSansSerifBold, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalLatinSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.smallLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.capitalLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER, +role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.smallLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.capitalLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.latinDoubleStruckItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCKITALIC}, +{set:this.smallGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER, +font:cvox.SemanticAttr.Font.BOLD},{set:this.smallGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallGreekSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalGreekSansSerifBold, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.greekDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.hebrewLetters,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.OTHERLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsNormal,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER, +font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsFullWidth,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.BOLD},{set:this.digitsDoubleStruck,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.digitsSansSerif,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER, +font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.digitsSansSerifBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.digitsMonospace,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.numbers,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER},{set:this.additions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.ADDITION}, +{set:this.multiplications,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION},{set:this.subtractions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.SUBTRACTION},{set:this.divisions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.DIVISION},{set:this.prefixOps,type:cvox.SemanticAttr.Type.PREFIXOP,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.equalities,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.EQUALITY},{set:this.inequalities, +type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.INEQUALITY},{set:this.relations,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.arrows,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.ARROW},{set:this.sumOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.SUM},{set:this.intOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.INTEGRAL},{set:this.limitFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.LIMFUNC}, +{set:this.prefixFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.infixFunctions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION}]};goog.addSingletonGetter(cvox.SemanticAttr); +cvox.SemanticAttr.Type={PUNCTUATION:"punctuation",FENCE:"fence",NUMBER:"number",IDENTIFIER:"identifier",TEXT:"text",OPERATOR:"operator",RELATION:"relation",LARGEOP:"largeop",FUNCTION:"function",ACCENT:"accent",FENCED:"fenced",FRACTION:"fraction",PUNCTUATED:"punctuated",RELSEQ:"relseq",MULTIREL:"multirel",INFIXOP:"infixop",PREFIXOP:"prefixop",POSTFIXOP:"postfixop",APPL:"appl",INTEGRAL:"integral",BIGOP:"bigop",SQRT:"sqrt",ROOT:"root",LIMUPPER:"limupper",LIMLOWER:"limlower",LIMBOTH:"limboth",SUBSCRIPT:"subscript", +SUPERSCRIPT:"superscript",UNDERSCORE:"underscore",OVERSCORE:"overscore",TABLE:"table",MULTILINE:"multiline",MATRIX:"matrix",VECTOR:"vector",CASES:"cases",ROW:"row",LINE:"line",CELL:"cell",UNKNOWN:"unknown",EMPTY:"empty"}; +cvox.SemanticAttr.Role={ELLIPSIS:"ellipsis",FULLSTOP:"fullstop",DASH:"dash",PRIME:"prime",VBAR:"vbar",OPENFENCE:"openfence",CLOSEFENCE:"closefence",APPLICATION:"application",OPEN:"open",CLOSE:"close",TOP:"top",BOTTOM:"bottom",NEUTRAL:"neutral",LATINLETTER:"latinletter",GREEKLETTER:"greekletter",OTHERLETTER:"otherletter",INTEGER:"integer",FLOAT:"float",OTHERNUMBER:"othernumber",MULTIACCENT:"multiaccent",OVERACCENT:"overaccent",UNDERACCENT:"underaccent",LEFTRIGHT:"leftright",ABOVEBELOW:"abovebelow", +SEQUENCE:"sequence",ENDPUNCT:"endpunct",STARTPUNCT:"startpunct",NEGATIVE:"negative",NEGATION:"negation",MULTIOP:"multiop",LIMFUNC:"limit function",INFIXFUNC:"infix function",PREFIXFUNC:"prefix function",POSTFIXFUNC:"postfix function",SUM:"sum",INTEGRAL:"integral",ADDITION:"addition",MULTIPLICATION:"multiplication",DIVISION:"division",SUBTRACTION:"subtraction",IMPLICIT:"implicit",EQUALITY:"equality",INEQUALITY:"inequality",ELEMENT:"element",BINREL:"binrel",ARROW:"arrow",MULTILINE:"multiline",MATRIX:"matrix", +VECTOR:"vector",CASES:"cases",TABLE:"table",UNKNOWN:"unknown"};cvox.SemanticAttr.Font={BOLD:"bold",BOLDFRAKTUR:"bold-fraktur",BOLDITALIC:"bold-italic",BOLDSCRIPT:"bold-script",DOUBLESTRUCK:"double-struck",DOUBLESTRUCKITALIC:"double-struck-italic",FRAKTUR:"fraktur",ITALIC:"italic",MONOSPACE:"monospace",NORMAL:"normal",SCRIPT:"script",SANSSERIF:"sans-serif",SANSSERIFITALIC:"sans-serif-italic",SANSSERIFBOLD:"sans-serif-bold",SANSSERIFBOLDITALIC:"sans-serif-bold-italic",UNKNOWN:"unknown"}; +cvox.SemanticAttr.lookupMeaning=function(a){return cvox.SemanticAttr.getInstance().lookupMeaning_(a)};cvox.SemanticAttr.invisibleTimes=function(){return cvox.SemanticAttr.getInstance().invisibleTimes_};cvox.SemanticAttr.invisibleComma=function(){return cvox.SemanticAttr.getInstance().invisibleComma_};cvox.SemanticAttr.functionApplication=function(){return cvox.SemanticAttr.getInstance().functionApplication_}; +cvox.SemanticAttr.isMatchingFenceRole=function(a,b){return a==cvox.SemanticAttr.Role.OPEN&&b==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL&&b==cvox.SemanticAttr.Role.NEUTRAL||a==cvox.SemanticAttr.Role.TOP&&b==cvox.SemanticAttr.Role.BOTTOM};cvox.SemanticAttr.isMatchingFence=function(a,b){return cvox.SemanticAttr.getInstance().isMatchingFence_(a,b)};cvox.SemanticAttr.isOpeningFence=function(a){return a==cvox.SemanticAttr.Role.OPEN||a==cvox.SemanticAttr.Role.NEUTRAL}; +cvox.SemanticAttr.isClosingFence=function(a){return a==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL};cvox.SemanticAttr.isCharacterD=function(a){var b="d \u2146 \uff44 \ud835\udc1d \ud835\udc51 \ud835\udcb9 \ud835\udced \ud835\udd21 \ud835\udd55 \ud835\udd89 \ud835\uddbd \ud835\uddf1 \ud835\ude25 \ud835\ude8d".split(" ");return-1!=b.indexOf(a)}; +cvox.SemanticAttr.prototype.isMatchingFence_=function(a,b){return-1!=this.neutralFences.indexOf(a)?a==b:this.openClosePairs[a]==b||this.topBottomPairs[a]==b}; +cvox.SemanticAttr.prototype.lookupMeaning_=function(a){for(var b=0,c;c=this.symbolSetToSemantic_[b];b++)if(-1!=c.set.indexOf(a))return{role:c.role||cvox.SemanticAttr.Role.UNKNOWN,type:c.type||cvox.SemanticAttr.Type.UNKNOWN,font:c.font||cvox.SemanticAttr.Font.UNKNOWN};return{role:cvox.SemanticAttr.Role.UNKNOWN,type:cvox.SemanticAttr.Type.UNKNOWN,font:cvox.SemanticAttr.Font.UNKNOWN}};cvox.SemanticTree=function(a){this.idCounter_=0;this.mathml=a;this.root=this.parseMathml_(a)};cvox.SemanticTree.Node=function(a){this.id=a;this.mathml=[];this.parent=null;this.type=cvox.SemanticAttr.Type.UNKNOWN;this.role=cvox.SemanticAttr.Role.UNKNOWN;this.font=cvox.SemanticAttr.Font.UNKNOWN;this.childNodes=[];this.textContent="";this.contentNodes=[]}; +cvox.SemanticTree.Node.prototype.querySelectorAll=function(a){for(var b=[],c=0,d;d=this.childNodes[c];c++)b=b.concat(d.querySelectorAll(a));a(this)&&b.unshift(this);return b};cvox.SemanticTree.prototype.xml=function(a){var b=new DOMParser,b=b.parseFromString("<stree></stree>","text/xml");a=this.root.xml(b,a);b.childNodes[0].appendChild(a);return b.childNodes[0]}; +cvox.SemanticTree.Node.prototype.xml=function(a,b){var c=function(c,d){for(var g=d.map(function(c){return c.xml(a,b)}),h=a.createElement(c),k=0,l;l=g[k];k++)h.appendChild(l);return h},d=a.createElement(this.type);b||this.xmlAttributes_(d);d.textContent=this.textContent;0<this.contentNodes.length&&d.appendChild(c("content",this.contentNodes));0<this.childNodes.length&&d.appendChild(c("children",this.childNodes));return d};cvox.SemanticTree.prototype.toString=function(a){var b=new XMLSerializer;return b.serializeToString(this.xml(a))}; +cvox.SemanticTree.prototype.formatXml=function(a){a=this.toString(a);return cvox.SemanticTree.formatXml(a)};cvox.SemanticTree.formatXml=function(a){var b=/(>)(<)(\/*)/g;a=a.replace(b,"$1\r\n$2$3");b=/(>)(.+)(<c)/g;a=a.replace(b,"$1\r\n$2\r\n$3");var c="",d="";a.split("\r\n").forEach(function(a){a.match(/.+<\/\w[^>]*>$/)?c+=d+a+"\r\n":a.match(/^<\/\w/)?d&&(d=d.slice(2),c+=d+a+"\r\n"):a.match(/^<\w[^>]*[^\/]>.*$/)?(c+=d+a+"\r\n",d+=" "):c+=d+a+"\r\n"});return c}; +cvox.SemanticTree.Node.prototype.toString=function(a){var b=new XMLSerializer,c=new DOMParser,c=c.parseFromString("","text/xml");return b.serializeToString(this.xml(c,a))};cvox.SemanticTree.Node.prototype.xmlAttributes_=function(a){a.setAttribute("role",this.role);this.font!=cvox.SemanticAttr.Font.UNKNOWN&&a.setAttribute("font",this.font);a.setAttribute("id",this.id)};cvox.SemanticTree.prototype.createNode_=function(){return new cvox.SemanticTree.Node(this.idCounter_++)}; +cvox.SemanticTree.Node.prototype.updateContent_=function(a){a=a.trim();if(this.textContent!=a){var b=cvox.SemanticAttr.lookupMeaning(a);this.textContent=a;this.role=b.role;this.type=b.type;this.font=b.font}};cvox.SemanticTree.Node.prototype.addMathmlNodes_=function(a){for(var b=0,c;c=a[b];b++)-1==this.mathml.indexOf(c)&&this.mathml.push(c)};cvox.SemanticTree.Node.prototype.appendChild_=function(a){this.childNodes.push(a);this.addMathmlNodes_(a.mathml);a.parent=this}; +cvox.SemanticTree.Node.prototype.appendContentNode_=function(a){a&&(this.contentNodes.push(a),this.addMathmlNodes_(a.mathml),a.parent=this)}; +cvox.SemanticTree.prototype.parseMathml_=function(a){var b=cvox.DomUtil.toArray(a.children);switch(cvox.SemanticUtil.tagName(a)){case "MATH":case "MROW":case "MPADDED":case "MSTYLE":return b=cvox.SemanticUtil.purgeNodes(b),1==b.length?this.parseMathml_(b[0]):this.processRow_(this.parseMathmlChildren_(b));case "MFRAC":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.FRACTION,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]),a.role=cvox.SemanticAttr.Role.DIVISION,a;case "MSUB":case "MSUP":case "MSUBSUP":case "MOVER":case "MUNDER":case "MUNDEROVER":return this.makeLimitNode_(cvox.SemanticUtil.tagName(a), +this.parseMathmlChildren_(b));case "MROOT":return this.makeBranchNode_(cvox.SemanticAttr.Type.ROOT,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]);case "MSQRT":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),this.makeBranchNode_(cvox.SemanticAttr.Type.SQRT,[this.processRow_(b)],[]);case "MTABLE":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.TABLE,this.parseMathmlChildren_(b),[]),cvox.SemanticTree.tableIsMultiline_(a)&&this.tableToMultiline_(a),a;case "MTR":return a= +this.makeBranchNode_(cvox.SemanticAttr.Type.ROW,this.parseMathmlChildren_(b),[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTD":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),a=this.makeBranchNode_(cvox.SemanticAttr.Type.CELL,[this.processRow_(b)],[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTEXT":return a=this.makeLeafNode_(a),a.type=cvox.SemanticAttr.Type.TEXT,a;case "MI":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.IDENTIFIER), +a;case "MN":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.NUMBER),a;case "MO":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.OPERATOR),a;default:return this.makeUnprocessed_(a)}};cvox.SemanticTree.prototype.parseMathmlChildren_=function(a){for(var b=[],c=0,d;d=a[c];c++)b.push(this.parseMathml_(d));return b}; +cvox.SemanticTree.prototype.makeUnprocessed_=function(a){var b=this.createNode_();b.mathml=[a];return b};cvox.SemanticTree.prototype.makeEmptyNode_=function(){var a=this.createNode_();a.type=cvox.SemanticAttr.Type.EMPTY;return a};cvox.SemanticTree.prototype.makeLeafNode_=function(a){var b=this.createNode_();b.mathml=[a];b.updateContent_(a.textContent);b.font=a.getAttribute("mathvariant")||b.font;return b}; +cvox.SemanticTree.prototype.makeBranchNode_=function(a,b,c,d){var e=this.createNode_();d&&e.updateContent_(d);e.type=a;e.childNodes=b;e.contentNodes=c;b.concat(c).forEach(function(a){a.parent=e;e.addMathmlNodes_(a.mathml)});return e};cvox.SemanticTree.prototype.makeImplicitNode_=function(a){if(1==a.length)return a[0];var b=this.createNode_();b.updateContent_(cvox.SemanticAttr.invisibleTimes());a=this.makeInfixNode_(a,b);a.role=cvox.SemanticAttr.Role.IMPLICIT;return a}; +cvox.SemanticTree.prototype.makeInfixNode_=function(a,b){return this.makeBranchNode_(cvox.SemanticAttr.Type.INFIXOP,a,[b],b.textContent)};cvox.SemanticTree.prototype.makeConcatNode_=function(a,b,c){if(0==b.length)return a;var d=b.map(function(a){return a.textContent}).join(" ");a=this.makeBranchNode_(c,[a],b,d);0<b.length&&(a.role=cvox.SemanticAttr.Role.MULTIOP);return a}; +cvox.SemanticTree.prototype.makePrefixNode_=function(a,b){for(var c=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.attrPred_("role","SUBTRACTION")),d=this.makeConcatNode_(a,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);0<c.rel.length;)d=this.makeConcatNode_(d,[c.rel.pop()],cvox.SemanticAttr.Type.PREFIXOP),d.role=cvox.SemanticAttr.Role.NEGATIVE,d=this.makeConcatNode_(d,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);return d}; +cvox.SemanticTree.prototype.makePostfixNode_=function(a,b){return this.makeConcatNode_(a,b,cvox.SemanticAttr.Type.POSTFIXOP)};cvox.SemanticTree.prototype.processRow_=function(a){if(0==a.length)return this.makeEmptyNode_();a=this.getFencesInRow_(a);a=this.processTablesInRow_(a);a=this.getPunctuationInRow_(a);a=this.getFunctionsInRow_(a);return this.processRelationsInRow_(a)}; +cvox.SemanticTree.prototype.processRelationsInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","RELATION")),c=b.rel[0];if(!c)return this.processOperationsInRow_(a);if(1==a.length)return a[0];a=b.comp.map(goog.bind(this.processOperationsInRow_,this));return b.rel.every(function(a){return a.textContent==c.textContent})?this.makeBranchNode_(cvox.SemanticAttr.Type.RELSEQ,a,b.rel,c.textContent):this.makeBranchNode_(cvox.SemanticAttr.Type.MULTIREL,a,b.rel)}; +cvox.SemanticTree.prototype.processOperationsInRow_=function(a){if(0==a.length)return this.makeEmptyNode_();if(1==a.length)return a[0];for(var b=[];0<a.length&&a[0].type==cvox.SemanticAttr.Type.OPERATOR;)b.push(a.shift());if(0==a.length)return this.makePrefixNode_(b.pop(),b);if(1==a.length)return this.makePrefixNode_(a[0],b);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));b=this.makePrefixNode_(this.makeImplicitNode_(a.head),b);return a.div?this.makeOperationsTree_(a.tail, +b,a.div):b}; +cvox.SemanticTree.prototype.makeOperationsTree_=function(a,b,c,d){d=d||[];if(0==a.length)return d.unshift(c),b.type==cvox.SemanticAttr.Type.INFIXOP?(d=this.makePostfixNode_(b.childNodes.pop(),d),b.appendChild_(d),b):this.makePostfixNode_(b,d);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));if(0==a.head.length)return d.push(a.div),this.makeOperationsTree_(a.tail,b,c,d);d=this.makePrefixNode_(this.makeImplicitNode_(a.head),d);b=this.appendOperand_(b,c,d);return a.div? +this.makeOperationsTree_(a.tail,b,a.div,[]):b};cvox.SemanticTree.prototype.appendOperand_=function(a,b,c){return a.type!=cvox.SemanticAttr.Type.INFIXOP?this.makeInfixNode_([a,c],b):this.appendExistingOperator_(a,b,c)?a:b.role==cvox.SemanticAttr.Role.MULTIPLICATION?this.appendMultiplicativeOp_(a,b,c):this.appendAdditiveOp_(a,b,c)}; +cvox.SemanticTree.prototype.appendMultiplicativeOp_=function(a,b,c){for(var d=a,e=a.childNodes[a.childNodes.length-1];e&&e.type==cvox.SemanticAttr.Type.INFIXOP;)d=e,e=d.childNodes[a.childNodes.length-1];b=this.makeInfixNode_([d.childNodes.pop(),c],b);d.appendChild_(b);return a};cvox.SemanticTree.prototype.appendAdditiveOp_=function(a,b,c){return this.makeInfixNode_([a,c],b)}; +cvox.SemanticTree.prototype.appendExistingOperator_=function(a,b,c){if(!a||a.type!=cvox.SemanticAttr.Type.INFIXOP)return!1;if(a.textContent==b.textContent)return a.appendContentNode_(b),a.appendChild_(c),!0;this.appendExistingOperator_(a.childNodes[a.childNodes.length-1],b,c)};cvox.SemanticTree.prototype.getFencesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","FENCE"));var b=a.comp.shift();return this.processFences_(a.rel,a.comp,[],[b])}; +cvox.SemanticTree.prototype.processFences_=function(a,b,c,d){if(0==a.length&&0==c.length)return d[0];var e=cvox.SemanticTree.attrPred_("role","OPEN");if(0==a.length){for(a=d.shift();0<c.length;){if(e(c[0]))b=c.shift(),cvox.SemanticTree.fenceToPunct_(b),a.push(b);else{c=cvox.SemanticTree.sliceNodes_(c,e);var f=c.head.length-1,g=this.processNeutralFences_(c.head,d.slice(0,f));d=d.slice(f);a.push.apply(a,g);c.div&&c.tail.unshift(c.div);c=c.tail}a.push.apply(a,d.shift())}return a}f=c[c.length-1];g=a[0].role; +if(g==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&(!f||a[0].textContent!=f.textContent))return c.push(a.shift()),d.push(b.shift()),this.processFences_(a,b,c,d);if(f&&(g==cvox.SemanticAttr.Role.CLOSE&&f.role==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&a[0].textContent==f.textContent))return e=this.makeHorizontalFencedNode_(c.pop(),a.shift(),d.pop()),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c,d);if(f&&g==cvox.SemanticAttr.Role.CLOSE&&f.role== +cvox.SemanticAttr.Role.NEUTRAL&&c.some(e))return c=cvox.SemanticTree.sliceNodes_(c,e,!0),e=d.pop(),f=d.length-c.tail.length+1,g=this.processNeutralFences_(c.tail,d.slice(f)),d=d.slice(0,f),e=this.makeHorizontalFencedNode_(c.div,a.shift(),d.pop().concat(g,e)),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c.head,d);e=a.shift();cvox.SemanticTree.fenceToPunct_(e);d.push(d.pop().concat([e],b.shift()));return this.processFences_(a,b,c,d)}; +cvox.SemanticTree.prototype.processNeutralFences_=function(a,b){if(0==a.length)return a;if(1==a.length)return cvox.SemanticTree.fenceToPunct_(a[0]),a;var c=a.shift(),d=cvox.SemanticTree.sliceNodes_(a,function(a){return a.textContent==c.textContent});if(!d.div){cvox.SemanticTree.fenceToPunct_(c);var e=b.shift();e.unshift(c);return e.concat(this.processNeutralFences_(a,b))}var f=this.combineFencedContent_(c,d.div,d.head,b);return 0<d.tail.length?(e=f.shift(),d=this.processNeutralFences_(d.tail,f),e.concat(d)): +f[0]};cvox.SemanticTree.prototype.combineFencedContent_=function(a,b,c,d){if(0==c.length)return a=this.makeHorizontalFencedNode_(a,b,d.shift()),d.unshift(a),d;var e=d.shift(),f=c.length-1,g=d.slice(0,f);d=d.slice(f);f=d.shift();c=this.processNeutralFences_(c,g);e.push.apply(e,c);e.push.apply(e,f);a=this.makeHorizontalFencedNode_(a,b,e);0<d.length?d[0].unshift(a):d=[[a]];return d}; +cvox.SemanticTree.fenceToPunct_=function(a){a.type=cvox.SemanticAttr.Type.PUNCTUATION;switch(a.role){case cvox.SemanticAttr.Role.NEUTRAL:a.role=cvox.SemanticAttr.Role.VBAR;break;case cvox.SemanticAttr.Role.OPEN:a.role=cvox.SemanticAttr.Role.OPENFENCE;break;case cvox.SemanticAttr.Role.CLOSE:a.role=cvox.SemanticAttr.Role.CLOSEFENCE}}; +cvox.SemanticTree.prototype.makeHorizontalFencedNode_=function(a,b,c){c=this.processRow_(c);b=this.makeBranchNode_(cvox.SemanticAttr.Type.FENCED,[c],[a,b]);b.role=a.role==cvox.SemanticAttr.Role.OPEN?cvox.SemanticAttr.Role.LEFTRIGHT:a.role;return b}; +cvox.SemanticTree.prototype.getPunctuationInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,function(a){return cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)&&!cvox.SemanticTree.attrPred_("role","ELLIPSIS")(a)});if(0==b.rel.length)return a;a=[];var c=b.comp.shift();0<c.length&&a.push(this.processRow_(c));for(var d=0;0<b.comp.length;)a.push(b.rel[d++]),c=b.comp.shift(),0<c.length&&a.push(this.processRow_(c));return[this.makePunctuatedNode_(a,b.rel)]}; +cvox.SemanticTree.prototype.makePunctuatedNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.PUNCTUATED,a,b);c.role=1==b.length&&a[0].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.STARTPUNCT:1==b.length&&a[a.length-1].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.ENDPUNCT:cvox.SemanticAttr.Role.SEQUENCE;return c}; +cvox.SemanticTree.prototype.makeLimitNode_=function(a,b){var c=b[0],d=cvox.SemanticTree.attrPred_("type","FUNCTION")(c),d=cvox.SemanticTree.attrPred_("type","LARGEOP")(c)||cvox.SemanticTree.attrPred_("type","LIMBOTH")(c)||cvox.SemanticTree.attrPred_("type","LIMLOWER")(c)||cvox.SemanticTree.attrPred_("type","LIMUPPER")(c)||d&&cvox.SemanticTree.attrPred_("role","LIMFUNC")(c),e=cvox.SemanticAttr.Type.UNKNOWN;if(d)switch(a){case "MSUB":case "MUNDER":e=cvox.SemanticAttr.Type.LIMLOWER;break;case "MSUP":case "MOVER":e= +cvox.SemanticAttr.Type.LIMUPPER;break;case "MSUBSUP":case "MUNDEROVER":e=cvox.SemanticAttr.Type.LIMBOTH}else switch(a){case "MSUB":e=cvox.SemanticAttr.Type.SUBSCRIPT;break;case "MSUP":e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MSUBSUP":d=this.makeBranchNode_(cvox.SemanticAttr.Type.SUBSCRIPT,[c,b[1]],[]);d.role=c.role;b=[d,b[2]];e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MOVER":e=cvox.SemanticAttr.Type.OVERSCORE;break;case "MUNDER":e=cvox.SemanticAttr.Type.UNDERSCORE;break;default:d=this.makeBranchNode_(cvox.SemanticAttr.Type.UNDERSCORE, +[c,b[1]],[]),d.role=c.role,b=[d,b[2]],e=cvox.SemanticAttr.Type.OVERSCORE}d=this.makeBranchNode_(e,b,[]);d.role=c.role;return d};cvox.SemanticTree.prototype.getFunctionsInRow_=function(a,b){b=b||[];if(0==a.length)return b;var c=a.shift(),d=cvox.SemanticTree.classifyFunction_(c,a);if(!d)return b.push(c),this.getFunctionsInRow_(a,b);var e=this.getFunctionsInRow_(a,[]),c=this.getFunctionArgs_(c,e,d);return b.concat(c)}; +cvox.SemanticTree.classifyFunction_=function(a,b){if(a.type==cvox.SemanticAttr.Type.APPL||a.type==cvox.SemanticAttr.Type.BIGOP||a.type==cvox.SemanticAttr.Type.INTEGRAL)return"";if(b[0]&&b[0].textContent==cvox.SemanticAttr.functionApplication())return b.shift(),cvox.SemanticTree.propagatePrefixFunc_(a),"prefix";switch(a.role){case cvox.SemanticAttr.Role.INTEGRAL:return"integral";case cvox.SemanticAttr.Role.SUM:return"bigop";case cvox.SemanticAttr.Role.PREFIXFUNC:case cvox.SemanticAttr.Role.LIMFUNC:return"prefix"; +default:if(a.type==cvox.SemanticAttr.Type.IDENTIFIER)return"simple"}return""};cvox.SemanticTree.propagatePrefixFunc_=function(a){a&&(a.role=cvox.SemanticAttr.Role.PREFIXFUNC,cvox.SemanticTree.propagatePrefixFunc_(a.childNodes[0]))}; +cvox.SemanticTree.prototype.getFunctionArgs_=function(a,b,c){switch(c){case "integral":return b=this.getIntegralArgs_(b),c=this.processRow_(b.integrand),a=this.makeIntegralNode_(a,c,b.intvar),b.rest.unshift(a),b.rest;case "prefix":if(b[0]&&b[0].type==cvox.SemanticAttr.Type.FENCED)return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;case "bigop":b=cvox.SemanticTree.sliceNodes_(b,cvox.SemanticTree.prefixFunctionBoundary_);var d=this.processRow_(b.head);a="prefix"==c?this.makeFunctionNode_(a, +d):this.makeBigOpNode_(a,d);b.div&&b.tail.unshift(b.div);b.tail.unshift(a);return b.tail;case "simple":if(0==b.length)return[a];c=b[0];if(c.type==cvox.SemanticAttr.Type.FENCED&&c.role!=cvox.SemanticAttr.Role.NEUTRAL&&this.simpleFunctionHeuristic_(c))return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;b.unshift(a);return b}}; +cvox.SemanticTree.prototype.getIntegralArgs_=function(a,b){b=b||[];if(0==a.length)return{integrand:b,intvar:null,rest:a};var c=a[0];if(cvox.SemanticTree.generalFunctionBoundary_(c))return{integrand:b,intvar:null,rest:a};if(cvox.SemanticTree.integralDxBoundarySingle_(c))return{integrand:b,intvar:c,rest:a.slice(1)};if(a[1]&&cvox.SemanticTree.integralDxBoundary_(c,a[1])){var d=this.createNode_();d.updateContent_(cvox.SemanticAttr.invisibleComma());c=this.makePunctuatedNode_([c,d,a[1]],[d]);c.role=cvox.SemanticAttr.Role.INTEGRAL; +return{integrand:b,intvar:c,rest:a.slice(2)}}b.push(a.shift());return this.getIntegralArgs_(a,b)};cvox.SemanticTree.prototype.makeFunctionNode_=function(a,b){var c=this.createNode_();c.updateContent_(cvox.SemanticAttr.functionApplication());c.type=cvox.SemanticAttr.Type.PUNCTUATION;c.role=cvox.SemanticAttr.Role.APPLICATION;c=this.makeBranchNode_(cvox.SemanticAttr.Type.APPL,[a,b],[c]);c.role=a.role;return c}; +cvox.SemanticTree.prototype.makeBigOpNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.BIGOP,[a,b],[]);c.role=a.role;return c};cvox.SemanticTree.prototype.makeIntegralNode_=function(a,b,c){b=b||this.makeEmptyNode_();c=c||this.makeEmptyNode_();b=this.makeBranchNode_(cvox.SemanticAttr.Type.INTEGRAL,[a,b,c],[]);b.role=a.role;return b}; +cvox.SemanticTree.prototype.simpleFunctionHeuristic_=function(a){a=a.childNodes;if(0==a.length)return!0;if(1<a.length)return!1;a=a[0];return a.type!=cvox.SemanticAttr.Type.INFIXOP||a.role==cvox.SemanticAttr.Role.IMPLICIT&&!a.childNodes.some(cvox.SemanticTree.attrPred_("type","INFIXOP"))?!0:!1};cvox.SemanticTree.prefixFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","OPERATOR")(a)||cvox.SemanticTree.generalFunctionBoundary_(a)}; +cvox.SemanticTree.integralDxBoundary_=function(a,b){return!!b&&cvox.SemanticTree.attrPred_("type","IDENTIFIER")(b)&&cvox.SemanticAttr.isCharacterD(a.textContent)};cvox.SemanticTree.integralDxBoundarySingle_=function(a){if(cvox.SemanticTree.attrPred_("type","IDENTIFIER")(a)){var b=a.textContent[0];return b&&a.textContent[1]&&cvox.SemanticAttr.isCharacterD(b)}return!1}; +cvox.SemanticTree.generalFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","RELATION")(a)||cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)}; +cvox.SemanticTree.prototype.processTablesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.tableIsMatrixOrVector_);for(var b=[],c=0,d;d=a.rel[c];c++)b=b.concat(a.comp.shift()),b.push(this.tableToMatrixOrVector_(d));b=b.concat(a.comp.shift());a=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.isTableOrMultiline_);b=[];for(c=0;d=a.rel[c];c++){var e=a.comp.shift();cvox.SemanticTree.tableIsCases_(d,e)&&this.tableToCases_(d,e.pop());b=b.concat(e);b.push(d)}return b.concat(a.comp.shift())}; +cvox.SemanticTree.isTableOrMultiline_=function(a){return!!a&&(cvox.SemanticTree.attrPred_("type","TABLE")(a)||cvox.SemanticTree.attrPred_("type","MULTILINE")(a))};cvox.SemanticTree.tableIsMatrixOrVector_=function(a){return!!a&&cvox.SemanticTree.attrPred_("type","FENCED")(a)&&cvox.SemanticTree.attrPred_("role","LEFTRIGHT")(a)&&1==a.childNodes.length&&cvox.SemanticTree.isTableOrMultiline_(a.childNodes[0])}; +cvox.SemanticTree.prototype.tableToMatrixOrVector_=function(a){var b=a.childNodes[0],c=cvox.SemanticTree.attrPred_("type","MULTILINE")(b)?"VECTOR":"MATRIX";b.type=cvox.SemanticAttr.Type[c];a.contentNodes.forEach(goog.bind(b.appendContentNode_,b));a=0;for(var d;d=b.childNodes[a];a++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role[c]);return b};cvox.SemanticTree.tableIsCases_=function(a,b){return 0<b.length&&cvox.SemanticTree.attrPred_("role","OPENFENCE")(b[b.length-1])}; +cvox.SemanticTree.prototype.tableToCases_=function(a,b){for(var c=0,d;d=a.childNodes[c];c++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role.CASES);a.type=cvox.SemanticAttr.Type.CASES;a.appendContentNode_(b);return a};cvox.SemanticTree.tableIsMultiline_=function(a){return a.childNodes.every(function(a){a=a.childNodes.length;return 1>=a})}; +cvox.SemanticTree.prototype.tableToMultiline_=function(a){a.type=cvox.SemanticAttr.Type.MULTILINE;for(var b=0,c;c=a.childNodes[b];b++)cvox.SemanticTree.rowToLine_(c,cvox.SemanticAttr.Role.MULTILINE)};cvox.SemanticTree.rowToLine_=function(a,b){b=b||cvox.SemanticAttr.Role.UNKNOWN;cvox.SemanticTree.attrPred_("type","ROW")(a)&&1==a.childNodes.length&&cvox.SemanticTree.attrPred_("type","CELL")(a.childNodes[0])&&(a.type=cvox.SemanticAttr.Type.LINE,a.role=b,a.childNodes=a.childNodes[0].childNodes)}; +cvox.SemanticTree.assignRoleToRow_=function(a,b){if(cvox.SemanticTree.attrPred_("type","LINE")(a))a.role=b;else if(cvox.SemanticTree.attrPred_("type","ROW")(a)){a.role=b;var c=cvox.SemanticTree.attrPred_("type","CELL");a.childNodes.forEach(function(a){c(a)&&(a.role=b)})}}; +cvox.SemanticTree.sliceNodes_=function(a,b,c){c&&a.reverse();for(var d=[],e=0,f;f=a[e];e++){if(b(f))return c?{head:a.slice(e+1).reverse(),div:f,tail:d.reverse()}:{head:d,div:f,tail:a.slice(e+1)};d.push(f)}return c?{head:[],div:null,tail:d.reverse()}:{head:d,div:null,tail:[]}};cvox.SemanticTree.partitionNodes_=function(a,b){var c=a,d=[],e=[];do{var f=cvox.SemanticTree.sliceNodes_(c,b);e.push(f.head);d.push(f.div);c=f.tail}while(f.div);d.pop();return{rel:d,comp:e}}; +cvox.SemanticTree.attrPred_=function(a,b){return function(c){var d;o:{switch(a){case "type":d=cvox.SemanticAttr.Type[b];break o;case "role":d=cvox.SemanticAttr.Role[b];break o;case "font":d=cvox.SemanticAttr.Font[b];break o}d=void 0}return c[a]==d}};cvox.TraverseMath=function(){this.activeNode=this.activeMath=null;this.allTexs_={};this.allMathjaxs_={};this.activeMathmlHost=null;this.domain="default";this.style="short";cvox.ChromeVox.mathJax&&(this.initializeMathjaxs(),this.initializeAltMaths())};goog.addSingletonGetter(cvox.TraverseMath);cvox.TraverseMath.setSemantic_=!1;cvox.TraverseMath.toggleSemantic=function(){return cvox.TraverseMath.setSemantic_=!cvox.TraverseMath.setSemantic_}; +cvox.TraverseMath.prototype.initialize=function(a){if(cvox.DomUtil.isMathImg(a)){if(!a.hasAttribute("cvoxid"))return;a=a.getAttribute("cvoxid");a=this.allTexs_[a]}cvox.DomUtil.isMathJax(a)&&(this.activeMathmlHost=this.allMathjaxs_[a.getAttribute("id")]);this.activeMath=this.activeMathmlHost||a;(this.activeNode=this.activeMathmlHost||a)&&cvox.TraverseMath.setSemantic_&&this.activeNode.nodeType==Node.ELEMENT_NODE&&(this.activeNode=(new cvox.SemanticTree(this.activeNode)).xml())}; +cvox.TraverseMath.prototype.addMathjax=function(a,b){var c=cvox.DomUtil.getMathSpanId(b);c?this.allMathjaxs_[c]=a:this.redoMathjaxs(a,b)};cvox.TraverseMath.prototype.redoMathjaxs=function(a,b){var c=goog.bind(function(){this.addMathjax(a,b)},this);setTimeout(c,500)}; +cvox.TraverseMath.prototype.initializeMathjaxs=function(){var a=goog.bind(function(a,c){this.addMathjax(a,c)},this);cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.getAllJax(a),cvox.ChromeVox.mathJax.registerSignal(a,"New Math"))})}; +cvox.TraverseMath.prototype.initializeAltMaths=function(){if(document.querySelector(cvox.DomUtil.altMathQuerySelector("tex")+", "+cvox.DomUtil.altMathQuerySelector("asciimath"))){var a=goog.bind(function(a,c){this.allTexs_[c]=a},this);cvox.ChromeVox.mathJax.injectScripts();cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.configMediaWiki(),cvox.ChromeVox.mathJax.getAllTexs(a),cvox.ChromeVox.mathJax.getAllAsciiMaths(a))})}}; +cvox.TraverseMath.prototype.nextSibling=function(a){if(!this.activeNode||!this.activeMath)return null;var b=this.activeNode,b=a?b.previousSibling:b.nextSibling;return b?this.activeNode=b:null};cvox.TraverseMath.prototype.nextParentChild=function(a){if(!this.activeNode||!this.activeMath||this.activeNode==this.activeMath&&a)return null;var b=this.activeNode,b=a?b.parentNode:b.firstChild;return b?this.activeNode=b:null}; +cvox.TraverseMath.prototype.getAttachedActiveNode=function(){var a=this.activeNode;if(!a||a.nodeType!=Node.ELEMENT_NODE)return null;a=a.getAttribute("spanID");return document.getElementById(a)};cvox.MathUtil={};cvox.MathUtil.isMathmlNodeOfClass_=function(a,b){return-1!=b.indexOf(a.tagName.toUpperCase())};cvox.MathUtil.isMathjaxNodeOfClass_=function(a,b){if("SPAN"==a.tagName){var c=a.className.split(" ");return c.some(function(a){return-1!=b.indexOf(a.toUpperCase())})}return!1};cvox.MathUtil.isMathNodeOfClass_=function(a,b){return a.nodeType==Node.ELEMENT_NODE&&(cvox.MathUtil.isMathmlNodeOfClass_(a,b)||cvox.MathUtil.isMathjaxNodeOfClass_(a,b))};cvox.MathUtil.TOKEN_LIST="MI MN MO MTEXT MSPACE MS".split(" "); +cvox.MathUtil.isToken=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TOKEN_LIST)};cvox.MathUtil.LAYOUT_LIST="MROW MFRAC MSQRT MROOT MSTYLE MERROR MPADDED MPHANTOM MFENCED MENCLOSE".split(" ");cvox.MathUtil.isLayout=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.LAYOUT_LIST)};cvox.MathUtil.SCRIPT_LIST="MSUB MSUP MSUBSUP MUNDER MOVER MUNDEROVER MMULTISCRIPTS MPRESCRIPTS".split(" "); +cvox.MathUtil.isScript=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.SCRIPT_LIST)};cvox.MathUtil.TABLES_LIST="MTABLE MLABELEDTR MTR MTD MALIGNGROUP MALIGNMARK".split(" ");cvox.MathUtil.isTables=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TABLES_LIST)};cvox.MathUtil.ELEMENTARY_LIST="MSTACK MLONGDIV MSGROUP MSROW MSCARRIES MSCARRY MSLINE".split(" ");cvox.MathUtil.isElementary=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.ELEMENTARY_LIST)}; +cvox.MathUtil.MATHML_TAG_LIST=[cvox.MathUtil.TOKEN_LIST,cvox.MathUtil.LAYOUT_LIST,cvox.MathUtil.SCRIPT_LIST,cvox.MathUtil.TABLES_LIST,cvox.MathUtil.ELEMENTARY_LIST].reduce(function(a,b){return a.concat(b)});cvox.MathUtil.isMathmlTag=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.MATHML_TAG_LIST)};cvox.MathUtil.WHITESPACE_LIST=["MSROW","MROW","MSPACE","MPHANTOM","MPADDED"];cvox.MathUtil.isWhitespace=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.WHITESPACE_LIST)}; +cvox.MathUtil.isNotWhitespace=function(a){return cvox.MathUtil.isMathmlTag(a)&&!cvox.MathUtil.isWhitespace(a)};cvox.MathUtil.union=function(a,b){return a.concat(b.filter(function(b){return 0>a.indexOf(b)}))};cvox.SpeechRule=function(a,b,c,d){this.name=a;this.dynamicCstr=b;this.precondition=c;this.action=d};cvox.SpeechRule.prototype.toString=function(){var a=[],b;for(b in this.dynamicCstr)a.push(this.dynamicCstr[b]);return this.name+" | "+a.join(".")+" | "+this.precondition.toString()+" ==> "+this.action.toString()};cvox.SpeechRule.Type={NODE:"NODE",MULTI:"MULTI",TEXT:"TEXT",PERSONALITY:"PERSONALITY"}; +cvox.SpeechRule.Type.fromString=function(a){switch(a){case "[n]":return cvox.SpeechRule.Type.NODE;case "[m]":return cvox.SpeechRule.Type.MULTI;case "[t]":return cvox.SpeechRule.Type.TEXT;case "[p]":return cvox.SpeechRule.Type.PERSONALITY;default:throw"Parse error: "+a;}}; +cvox.SpeechRule.Type.toString=function(a){switch(a){case cvox.SpeechRule.Type.NODE:return"[n]";case cvox.SpeechRule.Type.MULTI:return"[m]";case cvox.SpeechRule.Type.TEXT:return"[t]";case cvox.SpeechRule.Type.PERSONALITY:return"[p]";default:throw"Unknown type error: "+a;}};cvox.SpeechRule.Component=function(a){this.type=a.type;this.content=a.content}; +cvox.SpeechRule.Component.fromString=function(a){var b={};b.type=cvox.SpeechRule.Type.fromString(a.substring(0,3));a=a.slice(3).trimLeft();if(!a)throw new cvox.SpeechRule.OutputError("Missing content.");switch(b.type){case cvox.SpeechRule.Type.TEXT:if('"'==a[0]){var c=cvox.SpeechRule.splitString_(a,"\\(")[0].trim();if('"'!=c.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid string syntax.");b.content=c;a=a.slice(c.length).trim();-1==a.indexOf("(")&&(a="");break}case cvox.SpeechRule.Type.NODE:case cvox.SpeechRule.Type.MULTI:c= +a.indexOf(" (");if(-1==c){b.content=a.trim();a="";break}b.content=a.substring(0,c).trim();a=a.slice(c).trimLeft()}b=new cvox.SpeechRule.Component(b);a&&b.addAttributes(a);return b};cvox.SpeechRule.Component.prototype.toString=function(){var a="",a=a+cvox.SpeechRule.Type.toString(this.type),a=a+(this.content?" "+this.content:""),b=this.getAttributes();0<b.length&&(a+=" ("+b.join(", ")+")");return a}; +cvox.SpeechRule.Component.prototype.addAttribute=function(a){var b=a.indexOf(":");-1==b?this[a.trim()]="true":this[a.substring(0,b).trim()]=a.slice(b+1).trim()};cvox.SpeechRule.Component.prototype.addAttributes=function(a){if("("!=a[0]||")"!=a.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid attribute expression: "+a);a=cvox.SpeechRule.splitString_(a.slice(1,-1),",");for(var b=0;b<a.length;b++)this.addAttribute(a[b])}; +cvox.SpeechRule.Component.prototype.getAttributes=function(){var a=[],b;for(b in this)"content"!=b&&"type"!=b&&"function"!=typeof this[b]&&a.push(b+":"+this[b]);return a};cvox.SpeechRule.Action=function(a){this.components=a};cvox.SpeechRule.Action.fromString=function(a){a=cvox.SpeechRule.splitString_(a,";").filter(function(a){return a.match(/\S/)}).map(function(a){return a.trim()});for(var b=[],c=0;c<a.length;c++){var d=cvox.SpeechRule.Component.fromString(a[c]);d&&b.push(d)}return new cvox.SpeechRule.Action(b)}; +cvox.SpeechRule.Action.prototype.toString=function(){var a=this.components.map(function(a){return a.toString()});return a.join("; ")};cvox.SpeechRule.Precondition=function(a,b){this.query=a;this.constraints=b||[]};cvox.SpeechRule.Precondition.prototype.toString=function(){var a=this.constraints.join(", ");return this.query+", "+a}; +cvox.SpeechRule.splitString_=function(a,b){for(var c=[],d="";""!=a;){var e=a.search(b);if(-1==e){if(0!=(a.match(/"/g)||[]).length%2)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);c.push(d+a);a=d=""}else if(0==(a.substring(0,e).match(/"/g)||[]).length%2)c.push(d+a.substring(0,e)),d="",a=a.substring(e+1);else{var f=a.substring(e).search('"');if(-1==f)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);d+=a.substring(0,e+f+1);a=a.substring(e+f+1)}}d&& +c.push(d);return c};cvox.SpeechRule.DynamicCstrAttrib={STYLE:"style"};cvox.SpeechRule.OutputError=function(a){this.name="RuleError";this.message=a||""};goog.inherits(cvox.SpeechRule.OutputError,Error);cvox.SpeechRuleFunctions=function(){};cvox.SpeechRuleFunctions.Store_=function(a,b){this.prefix_=a;this.store_=b};cvox.SpeechRuleFunctions.Store_.prototype.add=function(a,b){this.checkCustomFunctionSyntax_(a)&&(this.store_[a]=b)};cvox.SpeechRuleFunctions.Store_.prototype.lookup=function(a){return this.store_[a]};cvox.SpeechRuleFunctions.CustomQueries=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CQF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomQueries,cvox.SpeechRuleFunctions.Store_); +cvox.SpeechRuleFunctions.CustomStrings=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CSF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomStrings,cvox.SpeechRuleFunctions.Store_);cvox.SpeechRuleFunctions.ContextFunctions=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CTXF",a)};goog.inherits(cvox.SpeechRuleFunctions.ContextFunctions,cvox.SpeechRuleFunctions.Store_); +cvox.SpeechRuleFunctions.Store_.prototype.checkCustomFunctionSyntax_=function(a){var b=RegExp("^"+this.prefix_);return a.match(b)?!0:(console.log("FunctionError: Invalid function name. Expected prefix"+this.prefix_),!1)};cvox.BaseRuleStore=function(){this.customQueries=new cvox.SpeechRuleFunctions.CustomQueries;this.customStrings=new cvox.SpeechRuleFunctions.CustomStrings;this.contextFunctions=new cvox.SpeechRuleFunctions.ContextFunctions;this.speechRules_=[];this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[]}; +cvox.BaseRuleStore.prototype.lookupRule=function(a,b){if(!a||a.nodeType!=Node.ELEMENT_NODE&&a.nodeType!=Node.TEXT_NODE)return null;var c=this.speechRules_.filter(goog.bind(function(c){return this.testDynamicConstraints(b,c)&&this.testPrecondition_(a,c)},this));return 0<c.length?this.pickMostConstraint_(b,c):null}; +cvox.BaseRuleStore.prototype.defineRule=function(a,b,c,d,e){try{var f=cvox.SpeechRule.Action.fromString(c),g=Array.prototype.slice.call(arguments,4),h=new cvox.SpeechRule.Precondition(d,g),g={};g[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;var k=new cvox.SpeechRule(a,g,h,f)}catch(l){if("RuleError"==l.name)return console.log("Rule Error ",d,"("+b+"):",l.message),null;throw l;}this.addRule(k);return k};cvox.BaseRuleStore.prototype.addRule=function(a){this.speechRules_.unshift(a)}; +cvox.BaseRuleStore.prototype.deleteRule=function(a){a=this.speechRules_.indexOf(a);-1!=a&&this.speechRules_.splice(a,1)};cvox.BaseRuleStore.prototype.findRule=function(a){for(var b=0,c;c=this.speechRules_[b];b++)if(a(c))return c;return null};cvox.BaseRuleStore.prototype.findAllRules=function(a){return this.speechRules_.filter(a)};cvox.BaseRuleStore.prototype.evaluateDefault=function(a){return[new cvox.NavDescription({text:a.textContent})]}; +cvox.BaseRuleStore.prototype.removeDuplicates=function(a){for(var b=this.speechRules_.length-1,c;c=this.speechRules_[b];b--)c!=a&&cvox.BaseRuleStore.compareDynamicConstraints_(c.dynamicCstr,a.dynamicCstr)&&cvox.BaseRuleStore.comparePreconditions_(c,a)&&this.speechRules_.splice(b,1)};cvox.BaseRuleStore.prototype.applyCustomQuery=function(a,b){var c=this.customQueries.lookup(b);return c?c(a):null}; +cvox.BaseRuleStore.prototype.applySelector=function(a,b){var c=this.applyCustomQuery(a,b);return c||cvox.XpathUtil.evalXPath(b,a)};cvox.BaseRuleStore.prototype.applyQuery=function(a,b){var c=this.applySelector(a,b);return 0<c.length?c[0]:null};cvox.BaseRuleStore.prototype.applyConstraint=function(a,b){var c=this.applyQuery(a,b);return!!c||cvox.XpathUtil.evaluateBoolean(b,a)}; +cvox.BaseRuleStore.prototype.testDynamicConstraints=function(a,b){var c=Object.keys(a);return c.every(function(c){return a[c]==b.dynamicCstr[c]||"default"==b.dynamicCstr[c]})};cvox.BaseRuleStore.prototype.getDynamicConstraintValues=function(){for(var a={},b=0,c;c=this.speechRules_[b];b++)for(var d in c.dynamicCstr){var e=[c.dynamicCstr[d]];a[d]=a[d]?cvox.MathUtil.union(a[d],e):e}return a}; +cvox.BaseRuleStore.prototype.countMatchingDynamicConstraintValues_=function(a,b){for(var c=0,d=0,e;e=this.dynamicCstrAttribs[d];d++)if(a[e]==b.dynamicCstr[e])c++;else break;return c};cvox.BaseRuleStore.prototype.pickMostConstraint_=function(a,b){b.sort(goog.bind(function(b,d){var e=this.countMatchingDynamicConstraintValues_(a,b),f=this.countMatchingDynamicConstraintValues_(a,d);return e>f?-1:f>e?1:d.precondition.constraints.length-b.precondition.constraints.length},this));return b[0]}; +cvox.BaseRuleStore.prototype.testPrecondition_=function(a,b){var c=b.precondition;return this.applyQuery(a,c.query)===a&&c.constraints.every(goog.bind(function(b){return this.applyConstraint(a,b)},this))};cvox.BaseRuleStore.compareDynamicConstraints_=function(a,b){if(Object.keys(a).length!=Object.keys(b).length)return!1;for(var c in a)if(!b[c]||a[c]!==b[c])return!1;return!0}; +cvox.BaseRuleStore.compareStaticConstraints_=function(a,b){if(a.length!=b.length)return!1;for(var c=0,d;d=a[c];c++)if(-1==b.indexOf(d))return!1;return!0};cvox.BaseRuleStore.comparePreconditions_=function(a,b){var c=a.precondition,d=b.precondition;return c.query!=d.query?!1:cvox.BaseRuleStore.compareStaticConstraints_(c.constraints,d.constraints)};cvox.MathStore=function(){cvox.BaseRuleStore.call(this);this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN,cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[cvox.AbstractTts.PITCH,cvox.AbstractTts.RATE]};goog.inherits(cvox.MathStore,cvox.BaseRuleStore);cvox.SpeechRule.DynamicCstrAttrib.DOMAIN="domain"; +cvox.MathStore.prototype.defineRule=function(a,b,c,d,e){var f=this.parseDynamicConstraint(b),g=Array.prototype.slice.call(arguments,4),g=cvox.MathStore.superClass_.defineRule.apply(this,[a,f[cvox.SpeechRule.DynamicCstrAttrib.STYLE],c,d].concat(g));g.dynamicCstr=f;this.removeDuplicates(g);return g}; +cvox.MathStore.prototype.parseDynamicConstraint=function(a){var b=a.split(".");if(!b[0]||!b[1])throw new cvox.SpeechRule.OutputError("Invalid domain assignment:"+a);return cvox.MathStore.createDynamicConstraint(b[0],b[1])};cvox.MathStore.createDynamicConstraint=function(a,b){var c={};c[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN]=a;c[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;return c}; +cvox.MathStore.prototype.defineRuleAlias=function(a,b,c){var d=this.findRule(function(b){return b.name==a});if(!d)throw new cvox.SpeechRule.OutputError("Rule with named "+a+" does not exist.");this.addAlias_(d,b,Array.prototype.slice.call(arguments,2))};cvox.MathStore.prototype.addAlias_=function(a,b,c){b=new cvox.SpeechRule.Precondition(b,c);b=new cvox.SpeechRule(a.name,a.dynamicCstr,b,a.action);b.name=a.name;this.addRule(b)};cvox.MathStore.prototype.evaluateDefault=function(a){return this.evaluateString_(a.textContent)}; +cvox.MathStore.prototype.evaluateString_=function(a){var b=[];if(a.match(/^\s+$/))return b;a=cvox.MathStore.removeEmpty_(a.replace(/\s/g," ").split(" "));for(var c=0,d;d=a[c];c++)if(1==d.length)b.push(this.evaluate_(d));else if(d.match(/^[a-zA-Z]+$/))b.push(this.evaluate_(d));else for(;d;){var e=d.match(/^\d+/),f=d.match(/^[a-zA-Z]+/);e?(b.push(this.evaluate_(e[0])),d=d.substring(e[0].length)):f?(b.push(this.evaluate_(f[0])),d=d.substring(f[0].length)):(e=d[0],e=e.charCodeAt(0),55296<=e&&56319>=e&& +1<d.length&&!isNaN(d.charCodeAt(1))?(b.push(this.evaluate_(d.slice(0,2))),d=d.substring(2)):(b.push(this.evaluate_(d[0])),d=d.substring(1)))}return b};cvox.MathStore.prototype.evaluate_=function(a){return cvox.ChromeVox.host.mathMap?cvox.ChromeVox.host.mathMap.evaluate(a,cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style):new cvox.NavMathDescription({text:a,domain:cvox.TraverseMath.getInstance().domain,style:cvox.TraverseMath.getInstance().style})}; +cvox.MathStore.removeEmpty_=function(a){return a.filter(function(a){return a})};cvox.MathmlStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathmlStore,cvox.MathStore);goog.addSingletonGetter(cvox.MathmlStore);cvox.MathmlStore.prototype.defineDefaultMathmlRule=function(a,b){this.defineRule(a,"default.default",b,"self::mathml:"+a)};cvox.SpeechRuleEngine=function(){this.activeStore_=null;this.dynamicCstr={};this.dynamicCstr[cvox.SpeechRule.DynamicCstrAttrib.STYLE]="short"};goog.addSingletonGetter(cvox.SpeechRuleEngine);cvox.SpeechRuleEngine.prototype.parameterize=function(a){try{a.initialize()}catch(b){if("StoreError"==b.name)console.log("Store Error:",b.message);else throw b;}this.activeStore_=a};cvox.SpeechRuleEngine.prototype.setDynamicConstraint=function(a){a&&(this.dynamicCstr=a)}; +cvox.SpeechRuleEngine.prototype.constructString=function(a,b){if(!b)return"";if('"'==b.charAt(0))return b.slice(1,-1);var c=this.activeStore_.customStrings.lookup(b);return c?c(a):cvox.XpathUtil.evaluateString(b,a)};cvox.SpeechRuleEngine.prototype.evaluateNode=function(a){return a?this.evaluateTree_(a):[]}; +cvox.SpeechRuleEngine.prototype.evaluateTree_=function(a){var b=this.activeStore_.lookupRule(a,this.dynamicCstr);if(!b)return this.activeStore_.evaluateDefault(a);for(var b=b.action.components,c=[],d=0,e;e=b[d];d++){var f=[],g=e.content||"";switch(e.type){case cvox.SpeechRule.Type.NODE:(g=this.activeStore_.applyQuery(a,g))&&(f=this.evaluateTree_(g));break;case cvox.SpeechRule.Type.MULTI:g=this.activeStore_.applySelector(a,g);0<g.length&&(f=this.evaluateNodeList_(g,e.sepFunc,this.constructString(a, +e.separator),e.ctxtFunc,this.constructString(a,e.context)));break;case cvox.SpeechRule.Type.TEXT:(g=this.constructString(a,g))&&(f=[new cvox.NavDescription({text:g})]);break;default:f=[new cvox.NavDescription({text:g})]}f[0]&&e.context&&e.type!=cvox.SpeechRule.Type.MULTI&&(f[0].context=this.constructString(a,e.context)+(f[0].context||""));c=c.concat(this.addPersonality_(f,e))}return c}; +cvox.SpeechRuleEngine.prototype.evaluateNodeList_=function(a,b,c,d,e){if(a==[])return[];var f=c||"",g=e||"";c=(c=this.activeStore_.contextFunctions.lookup(d))?c(a,g):function(){return g};b=(b=this.activeStore_.contextFunctions.lookup(b))?b(a,f):function(){return f};d=[];e=0;for(var h;h=a[e];e++)h=this.evaluateTree_(h),0<h.length&&(h[0].context=c()+(h[0].context||""),d=d.concat(h),e<a.length-1&&(h=b())&&d.push(new cvox.NavDescription({text:h})));return d}; +cvox.SpeechRuleEngine.propMap={pitch:cvox.AbstractTts.RELATIVE_PITCH,rate:cvox.AbstractTts.RELATIVE_RATE,volume:cvox.AbstractTts.RELATIVE_VOLUME,pause:cvox.AbstractTts.PAUSE};cvox.SpeechRuleEngine.prototype.addPersonality_=function(a,b){var c={},d;for(d in cvox.SpeechRuleEngine.propMap){var e=parseFloat(b[d]);isNaN(e)||(c[cvox.SpeechRuleEngine.propMap[d]]=e)}a.forEach(goog.bind(function(a){this.addRelativePersonality_(a,c);this.resetPersonality_(a)},this));return a}; +cvox.SpeechRuleEngine.prototype.addRelativePersonality_=function(a,b){if(!a.personality)return a.personality=b,a;var c=a.personality,d;for(d in b)c[d]=c[d]&&"number"==typeof c[d]?c[d]+b[d]:b[d];return a};cvox.SpeechRuleEngine.prototype.resetPersonality_=function(a){if(this.activeStore_.defaultTtsProps)for(var b=0,c;c=this.activeStore_.defaultTtsProps[b];b++)a.personality[c]=cvox.ChromeVox.tts.getDefaultProperty(c)};cvox.SpeechRuleEngine.debugMode=!1; +cvox.SpeechRuleEngine.outputDebug=function(a){if(cvox.SpeechRuleEngine.debugMode){var b=Array.prototype.slice.call(arguments,0);console.log.apply(console,["Speech Rule Engine Debugger:"].concat(b))}};cvox.SpeechRuleEngine.prototype.toString=function(){var a=this.activeStore_.findAllRules(function(){return!0});return a.map(function(a){return a.toString()}).join("\n")}; +cvox.SpeechRuleEngine.debugSpeechRule=function(a,b){var c=cvox.SpeechRuleEngine.getInstance().activeStore_;if(c){var d=a.precondition;cvox.SpeechRuleEngine.outputDebug(d.query,c.applyQuery(b,d.query));d.constraints.forEach(function(a){cvox.SpeechRuleEngine.outputDebug(a,c.applyConstraint(b,a))})}}; +cvox.SpeechRuleEngine.debugNamedSpeechRule=function(a,b){for(var c=cvox.SpeechRuleEngine.getInstance().activeStore_,c=c.findAllRules(function(b){return b.name==a}),d=0,e;e=c[d];d++)cvox.SpeechRuleEngine.outputDebug("Rule",a,"number",d),cvox.SpeechRuleEngine.debugSpeechRule(e,b)};cvox.AbstractWalker=function(){};cvox.AbstractWalker.prototype.begin=function(a){a=a||{reversed:!1};return this.sync(cvox.CursorSelection.fromBody().setReversed(a.reversed))};cvox.AbstractWalker.prototype.hasAction=function(a){return"function"==typeof this[a]};cvox.AbstractWalker.prototype.performAction=function(a,b){return this.hasAction(a)?this[a](b):null};cvox.AbstractNodeWalker=function(){this.wasBegin_=!1};goog.inherits(cvox.AbstractNodeWalker,cvox.AbstractWalker);cvox.AbstractNodeWalker.prototype.next=function(a){var b=a.isReversed();a=a.end.node||document.body;do if(a=cvox.DomUtil.directedNextLeafLikeNode(a,b,goog.bind(this.stopNodeDescent,this)),!a)return null;while(a&&!cvox.DomUtil.hasContent(a));return cvox.CursorSelection.fromNode(a).setReversed(b)}; +cvox.AbstractNodeWalker.prototype.sync=function(a){a=this.privateSync_(a);this.wasBegin_=!1;return a}; +cvox.AbstractNodeWalker.prototype.privateSync_=function(a){var b=a.isReversed();if(a.equals(cvox.CursorSelection.fromBody())){if(this.wasBegin_)return cvox.CursorSelection.fromBody().setReversed(b);this.wasBegin_=!0}for(a=a.start.node;a!=document.body&&a.parentNode&&this.stopNodeDescent(a.parentNode);)a=a.parentNode;for(;!this.stopNodeDescent(a);)a=cvox.DomUtil.directedFirstChild(a,b);var c=cvox.CursorSelection.fromNode(a);cvox.DomUtil.hasContent(a)||(c=this.next(cvox.CursorSelection.fromNode(a).setReversed(b))); +return c?c.setReversed(b):this.begin({reversed:b})};cvox.BareObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.BareObjectWalker,cvox.AbstractNodeWalker);cvox.BareObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AuralStyleConverter={};cvox.AuralStyleUtil={}; +cvox.AuralProperty={VOLUME:"VOLUME",SPEAK:"SPEAK",PAUSE_BEFORE:"PAUSE_BEFORE",PAUSE_AFTER:"PAUSE_AFTER",PAUSE:"PAUSE",CUE_BEFORE:"CUE_BEFORE",CUE_AFTER:"CUE_AFTER",CUE:"CUE",PLAY_DURING:"PLAY_DURING",AZIMUTH:"AZIMUTH",ELEVATION:"ELEVATION",SPEECH_RATE:"SPEECH_RATE",VOICE_FAMILY:"VOICE_FAMILY",PITCH:"PITCH",PITCH_RANGE:"PITCH_RANGE",STRESS:"STRESS",RICHNESS:"RICHNESS",SPEAK_PUNCTUATION:"SPEAK_PUNCTUATION",SPEAK_NUMERIAL:"SPEAK_NUMERIAL",SPEAK_HEADER:"SPEAK_HEADER",NONE:"NONE"}; +cvox.AuralStyleConverter.identity=function(a){return a};cvox.AuralStyleConverter.propertyTable={VOLUME:"volume",SPEAK:"no-op",PAUSE_BEFORE:"no-op",PAUSE_AFTER:"no-op",PAUSE:"no-op",CUE_BEFORE:"no-op",CUE_AFTER:"no-op",CUE:"no-op",PLAY_DURING:"no-op",AZIMUTH:"no-op",ELEVATION:"no-op",SPEECH_RATE:"relativeRate",VOICE_FAMILY:"no-op",PITCH:"relativePitch",PITCH_RANGE:"no-op",STRESS:"no-op",RICHNESS:"no-op",SPEAK_PUNCTUATION:"no-op",SPEAK_NUMERIAL:"no-op",SPEAK_HEADER:"no-op",NONE:"no-op"}; +cvox.AuralStyleConverter.valueTable={VOLUME:cvox.AuralStyleConverter.identity,SPEAK:cvox.AuralStyleConverter.identity,PAUSE_BEFORE:cvox.AuralStyleConverter.identity,PAUSE_AFTER:cvox.AuralStyleConverter.identity,PAUSE:cvox.AuralStyleConverter.identity,CUE_BEFORE:cvox.AuralStyleConverter.identity,CUE_AFTER:cvox.AuralStyleConverter.identity,CUE:cvox.AuralStyleConverter.identity,PLAY_DURING:cvox.AuralStyleConverter.identity,AZIMUTH:cvox.AuralStyleConverter.identity,ELEVATION:cvox.AuralStyleConverter.identity, +SPEECH_RATE:cvox.AuralStyleConverter.identity,VOICE_FAMILY:cvox.AuralStyleConverter.identity,PITCH:cvox.AuralStyleConverter.identity,PITCH_RANGE:cvox.AuralStyleConverter.identity,STRESS:cvox.AuralStyleConverter.identity,RICHNESS:cvox.AuralStyleConverter.identity,SPEAK_PUNCTUATION:cvox.AuralStyleConverter.identity,SPEAK_NUMERIAL:cvox.AuralStyleConverter.identity,SPEAK_HEADER:cvox.AuralStyleConverter.identity,NONE:cvox.AuralStyleConverter.identity}; +cvox.AuralStyleConverter.convertRule=function(a,b){return{property:cvox.AuralStyleConverter.propertyTable[a],value:cvox.AuralStyleConverter.valueTable[a](b)}};cvox.AuralStyleConverter.convertStyle=function(a){var b={},c;for(c in a){var d=cvox.AuralStyleConverter.convertRule(c,a[c]);b[d.property]=d.value}return b};cvox.AuralStyleUtil.getStyleForNode=function(a){return(a=cvox.AuralStyleUtil.defaultStyles[a.tagName])?cvox.AuralStyleConverter.convertStyle(a):null}; +cvox.AuralStyleUtil.defaultStyles={ARTICLE:{PITCH:-0.1},ASIDE:{PITCH:-0.1},FOOTER:{PITCH:-0.1},H1:{PITCH:-0.3},H2:{PITCH:-0.25},H3:{PITCH:-0.2},H4:{PITCH:-0.15},H5:{PITCH:-0.1},H6:{PITCH:-0.05},HEADER:{PITCH:-0.1},HGROUP:{PITCH:-0.1},MARK:{PITCH:-0.1},NAV:{PITCH:-0.1},SECTION:{PITCH:-0.1},TIME:{PITCH:-0.1}};cvox.EarconUtil={}; +cvox.EarconUtil.getEarcon=function(a){var b=cvox.AriaUtil.getEarcon(a);if(null!=b)return b;switch(a.tagName){case "BUTTON":return cvox.AbstractEarcons.BUTTON;case "A":if(a.hasAttribute("href"))return cvox.AbstractEarcons.LINK;break;case "IMG":if(cvox.DomUtil.hasLongDesc(a))return cvox.AbstractEarcons.LONG_DESC;break;case "LI":return cvox.AbstractEarcons.LIST_ITEM;case "SELECT":return cvox.AbstractEarcons.LISTBOX;case "TEXTAREA":return cvox.AbstractEarcons.EDITABLE_TEXT;case "INPUT":switch(a.type){case "button":case "submit":case "reset":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":return a.checked? +cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;default:if(cvox.DomUtil.isInputTypeText(a))return cvox.AbstractEarcons.EDITABLE_TEXT}}return null};cvox.DescriptionUtil={};cvox.DescriptionUtil.COLLECTION_NODE_TYPE={H1:!0,H2:!0,H3:!0,H4:!0,H5:!0,H6:!0}; +cvox.DescriptionUtil.getControlDescription=function(a,b){var c=[a];if(b&&0<b.length)c=b;else{var d=cvox.DomUtil.getSurroundingControl(a);d&&(c=[d,a])}c=cvox.DescriptionUtil.getDescriptionFromAncestors(c,!0,cvox.VERBOSITY_VERBOSE);if(d){var e=cvox.DomUtil.getName(d);0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(d),0<e.length&&(c.context=e+" "+c.context))}else e=cvox.DomUtil.getName(a),0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(a),0<e.length&&(c.text=cvox.DomUtil.collapseWhitespace(e))), +d=cvox.DomUtil.getValue(a),0<d.length&&(c.userValue=cvox.DomUtil.collapseWhitespace(d));return c}; +cvox.DescriptionUtil.getDescriptionFromAncestors=function(a,b,c){"undefined"===typeof b&&(b=!0);var d=a.length,e="",f="",g="",h="",k=[],l=null;0<d&&(f=cvox.DomUtil.getName(a[d-1],b),g=cvox.DomUtil.getValue(a[d-1]));for(b=d-1;0<=b;b--){var m=a[b],p=m.getAttribute?m.getAttribute("role"):null;if("dialog"!=p&&"alertdialog"!=p){p=cvox.DomUtil.getRole(m,c);l||(l=cvox.AuralStyleUtil.getStyleForNode(m));if(b<d-1&&m.hasAttribute("role")){var q=cvox.DomUtil.getName(m,!1);q&&(p=q+" "+p)}0<p.length&&(0<e.length|| +0<h.length&&1<m.childElementCount?e=p+" "+cvox.DomUtil.getState(m,!1)+" "+e:h=0<h.length?h+(" "+p+" "+cvox.DomUtil.getState(m,!0)):p+" "+cvox.DomUtil.getState(m,!0));m=cvox.EarconUtil.getEarcon(m);null!=m&&-1==k.indexOf(m)&&k.push(m)}}return new cvox.NavDescription({context:cvox.DomUtil.collapseWhitespace(e),text:cvox.DomUtil.collapseWhitespace(f),userValue:cvox.DomUtil.collapseWhitespace(g),annotation:cvox.DomUtil.collapseWhitespace(h),earcons:k,personality:l})}; +cvox.DescriptionUtil.getDescriptionFromNavigation=function(a,b,c,d){if(!a||!b)return[];if(cvox.DomUtil.isMath(b)&&!cvox.AriaUtil.isMath(b))return cvox.DescriptionUtil.getMathDescription(b);if(cvox.DescriptionUtil.COLLECTION_NODE_TYPE[b.tagName])return cvox.DescriptionUtil.getCollectionDescription(cvox.CursorSelection.fromNode(a),cvox.CursorSelection.fromNode(b));var e=cvox.DomUtil.getUniqueAncestors(a,b,!0),e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,c,d);a=cvox.DomUtil.getUniqueAncestors(b, +a);cvox.DescriptionUtil.shouldDescribeExit_(a)&&(c=cvox.DescriptionUtil.getDescriptionFromAncestors(a,c,d),c.context&&!e.context&&(e.context=cvox.ChromeVox.msgs.getMsg("exited_container",[c.context])));return[e]};cvox.DescriptionUtil.getCollectionDescription=function(a,b){var c=cvox.DescriptionUtil.getRawDescriptions_(a,b);cvox.DescriptionUtil.insertCollectionDescription_(c);return c};cvox.DescriptionUtil.subWalker_=new cvox.BareObjectWalker; +cvox.DescriptionUtil.getRawDescriptions_=function(a,b){var c=[];b=b.clone().setReversed(!1);var d=cvox.DescriptionUtil.subWalker_.sync(b).start.node,e=a.end.node,f=cvox.CursorSelection.fromNode(d);if(!f)return[];for(;cvox.DomUtil.isDescendantOfNode(d,b.start.node);){e=cvox.DomUtil.getUniqueAncestors(e,d);cvox.DomUtil.isMath(d)&&!cvox.AriaUtil.isMath(d)?c=c.concat(cvox.DescriptionUtil.getMathDescription(d)):(e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,!0,cvox.ChromeVox.verbosity),c.push(e)); +f=cvox.DescriptionUtil.subWalker_.next(f);if(!f)break;e=d;d=f.start.node}return c}; +cvox.DescriptionUtil.getFullDescriptionsFromChildren=function(a,b){var c=[];if(!b)return c;var d;if(cvox.DomUtil.isLeafNode(b))return a?d=cvox.DomUtil.getUniqueAncestors(a,b):(d=[],d.push(b)),d=cvox.DescriptionUtil.getDescriptionFromAncestors(d,!0,cvox.ChromeVox.verbosity),c.push(d),c;d=b;var e=cvox.CursorSelection.fromNode(b);if(!e)return c;b=cvox.DescriptionUtil.subWalker_.sync(e).start.node;e=cvox.CursorSelection.fromNode(b);if(!e)return c;for(;cvox.DomUtil.isDescendantOfNode(b,d);){c=c.concat(cvox.DescriptionUtil.getFullDescriptionsFromChildren(a, +b));e=cvox.DescriptionUtil.subWalker_.next(e);if(!e)break;a=b;b=e.start.node}return c}; +cvox.DescriptionUtil.insertCollectionDescription_=function(a){var b=cvox.DescriptionUtil.getAnnotations_(a);if(3<=a.length&&0==a[0].context.length&&1==b.length&&0<b[0].length&&cvox.DescriptionUtil.isAnnotationCollection_(b[0])){var b=b[0],c=a[0].context;a[0].context="";for(var d=0;d<a.length;d++)a[d].annotation="";a.splice(0,0,new cvox.NavDescription({context:c,text:"",annotation:cvox.ChromeVox.msgs.getMsg("collection",[b,cvox.ChromeVox.msgs.getNumber(a.length)])}))}}; +cvox.DescriptionUtil.getAnnotations_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(-1==b.indexOf(d.annotation)){var e=cvox.ChromeVox.msgs.getMsg("tag_link");-1!=d.annotation.toLowerCase().indexOf(e.toLowerCase())?-1==b.indexOf(e)&&b.push(e):b.push(d.annotation)}}return b};cvox.DescriptionUtil.isAnnotationCollection_=function(a){return a==cvox.ChromeVox.msgs.getMsg("tag_link")};cvox.DescriptionUtil.shouldDescribeExit_=function(a){return a.some(function(a){switch(a.tagName){case "TABLE":case "MATH":return!0}return cvox.AriaUtil.isLandmark(a)})}; +cvox.DescriptionUtil.getMathDescription=function(a){var b=cvox.SpeechRuleEngine.getInstance(),c=cvox.TraverseMath.getInstance();b.parameterize(cvox.MathmlStore.getInstance());c.initialize(a);a=b.evaluateNode(c.activeNode);if(a==[])return[new cvox.NavDescription({text:"empty math"})];cvox.ChromeVox.verbosity==cvox.VERBOSITY_VERBOSE&&(a[a.length-1].annotation="math");a[0].pushEarcon(cvox.AbstractEarcons.SPECIAL_CONTENT);return a};cvox.FindUtil={};cvox.FindUtil.objectWalker_=new cvox.BareObjectWalker;cvox.FindUtil.findNext=function(a,b,c){var d=a.isReversed();a=(new cvox.CursorSelection(a.absStart(),a.absStart())).setReversed(d);var e;if(e=b(cvox.DomUtil.getAncestors(a.start.node)))if(a=cvox.CursorSelection.fromNode(e).setReversed(d),c)return a;for(;a;){a=cvox.FindUtil.objectWalker_.next(a);c=null;if(!a||(c=b(cvox.DomUtil.getAncestors(a.start.node))))return c?cvox.CursorSelection.fromNode(c):null;if("IFRAME"==a.start.node.tagName)return a}return null};cvox.Interframe=function(){};cvox.Interframe.IF_MSG_PREFIX="cvox.INTERFRAME:";cvox.Interframe.SET_ID="cvox.INTERFRAME_SET_ID";cvox.Interframe.listeners=[];cvox.Interframe.allowAccessToIframeContentWindow=!0; +cvox.Interframe.init=function(){cvox.Interframe.messageListener=function(a){if("string"===typeof a.data&&0==a.data.indexOf(cvox.Interframe.IF_MSG_PREFIX)){a=a.data.substr(cvox.Interframe.IF_MSG_PREFIX.length);a=cvox.ChromeVoxJSON.parse(a);a.command==cvox.Interframe.SET_ID&&(cvox.Interframe.id=a.id);for(var b=0,c;c=cvox.Interframe.listeners[b];b++)c(a)}return!1};window.addEventListener("message",cvox.Interframe.messageListener,!0)}; +cvox.Interframe.shutdown=function(){window.removeEventListener("message",cvox.Interframe.messageListener,!0)};cvox.Interframe.addListener=function(a){cvox.Interframe.listeners.push(a)};cvox.Interframe.sendMessageToWindow=function(a,b){var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null);b.postMessage(c,"*")}; +cvox.Interframe.sendMessageToIFrame=function(a,b){if(cvox.Interframe.allowAccessToIframeContentWindow&&b.contentWindow)cvox.Interframe.sendMessageToWindow(a,b.contentWindow);else{var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),d=document.createElement("script");d.type="text/javascript";if(b.hasAttribute("id")&&document.getElementById(b.id)==b)d.innerHTML="document.getElementById(decodeURI('"+encodeURI(b.id)+"')).contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"; +else{var e="cvox_iframe"+a.id;""===b.className?b.className=e:-1==b.className.indexOf(e)&&(b.className+=" "+e);d.innerHTML="document.getElementsByClassName(decodeURI('"+encodeURI(e)+"'))[0].contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"}document.head.appendChild(d);window.setTimeout(function(){document.head.removeChild(d)},1E3)}}; +cvox.Interframe.sendMessageToParentWindow=function(a){cvox.Interframe.isIframe()&&(a.sourceId=cvox.Interframe.id,window.parent?cvox.Interframe.sendMessageToWindow(a,window.parent):(a=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),window.location.href="javascript:window.parent.postMessage('"+encodeURI(a)+"', '*');"))};cvox.Interframe.sendIdToIFrame=function(a,b){var c={command:cvox.Interframe.SET_ID,id:a};cvox.Interframe.sendMessageToIFrame(c,b)}; +cvox.Interframe.isIframe=function(){return window!=window.parent};cvox.Interframe.init();cvox.PageSelection=function(a){this.sel_=a.clone();this.sel_.select();this.wasBegin_=!0}; +cvox.PageSelection.prototype.getDescription=function(a,b,c){var d=[];this.sel_.isReversed()!=c.isReversed()?(d=a.getDescription(c,b),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE)):(d=a.getDescription(b,c),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_selected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION),!this.wasBegin_&&this.sel_.absEquals(c.clone().normalize())&&(a=a.getDescription(c,b),a[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"), +a[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE),a[0].pushEarcon(cvox.AbstractEarcons.WRAP),d=a.concat(d)));return d};cvox.PageSelection.prototype.getFullDescription=function(){return[new cvox.NavDescription({text:window.getSelection().toString(),context:cvox.ChromeVox.msgs.getMsg("selection_is")})]}; +cvox.PageSelection.prototype.extend=function(a){this.sel_.directedBefore(a)?this.sel_.end=this.sel_.isReversed()==a.isReversed()?a.end.clone():a.start.clone():this.sel_=a.clone();this.sel_.select();this.wasBegin_=!1;return!this.sel_.absEquals(a)};cvox.BrailleUtil={};cvox.BrailleUtil.ITEM_SEPARATOR=" ";cvox.BrailleUtil.CONTAINER="tag_h1_brl tag_h2_brl tag_h3_brl tag_h4_brl tag_h5_brl tag_h6_brl".split(" "); +cvox.BrailleUtil.TEMPLATE={base:"c n v r s",aria_role_button:"[n]",aria_role_textbox:"n: v r",input_type_button:"[n]",input_type_checkbox:"n (s)",input_type_email:"n: v r",input_type_number:"n: v r",input_type_password:"n: v r",input_type_search:"n: v r",input_type_submit:"[n]",input_type_text:"n: v r",input_type_tel:"n: v r",input_type_url:"n: v r",tag_button:"[n]",tag_textarea:"n: v r"};cvox.BrailleUtil.ValueSpan=function(a){this.offset=a};cvox.BrailleUtil.ValueSelectionSpan=function(){}; +cvox.BrailleUtil.getName=function(a){return a?cvox.DomUtil.getName(a).trim():""};cvox.BrailleUtil.getRoleMsg=function(a){if(!a)return"";(a=cvox.DomUtil.getRoleMsg(a,cvox.VERBOSITY_VERBOSE))&&(a=cvox.DomUtil.collapseWhitespace(a));a&&0<a.length&&cvox.ChromeVox.msgs.getMsg(a+"_brl")&&(a+="_brl");return a};cvox.BrailleUtil.getRole=function(a){return a?(a=cvox.BrailleUtil.getRoleMsg(a))?cvox.ChromeVox.msgs.getMsg(a):"":""}; +cvox.BrailleUtil.getState=function(a){return a?cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,!0).map(function(a){cvox.ChromeVox.msgs.getMsg(a[0]+"_brl")&&(a[0]+="_brl");return a})):""};cvox.BrailleUtil.getContainer=function(a,b){if(!a||!b)return"";for(var c=cvox.DomUtil.getUniqueAncestors(a,b),d=0,e;e=c[d];d++)if((e=cvox.BrailleUtil.getRoleMsg(e))&&-1!=cvox.BrailleUtil.CONTAINER.indexOf(e))return cvox.ChromeVox.msgs.getMsg(e);return""}; +cvox.BrailleUtil.getValue=function(a){if(!a)return new cvox.Spannable;var b=new cvox.BrailleUtil.ValueSpan(0);if(cvox.DomUtil.isInputTypeText(a)){var c=a.value;"password"===a.type&&(c=c.replace(/./g,"*"));b=new cvox.Spannable(c,b);a===document.activeElement&&b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,a.selectionStart,a.selectionEnd);return b}if(a instanceof HTMLTextAreaElement){var d=new cvox.EditableTextAreaShadow;d.update(a);var e=d.getLineIndex(a.selectionEnd),c=d.getLineStart(e),d=d.getLineEnd(e), +d=a.value.substring(c,d);b.offset=c;b=new cvox.Spannable(d,b);a===document.activeElement&&(d=Math.max(a.selectionStart-c,0),a=Math.min(a.selectionEnd-c,b.getLength()),b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,d,a));return b}return new cvox.Spannable(cvox.DomUtil.getValue(a),b)}; +cvox.BrailleUtil.getTemplated=function(a,b,c){c=c?c:{};for(var d=c.roleMsg||(b?cvox.DomUtil.getRoleMsg(b,cvox.VERBOSITY_VERBOSE):""),d=cvox.BrailleUtil.TEMPLATE[d]||cvox.BrailleUtil.TEMPLATE.base,e=new cvox.Spannable,f=function(d){switch(d){case "n":return c.name||cvox.BrailleUtil.getName(b);case "r":return c.role||cvox.BrailleUtil.getRole(b);case "s":return c.state||cvox.BrailleUtil.getState(b);case "c":return c.container||cvox.BrailleUtil.getContainer(a,b);case "v":return c.value?new cvox.Spannable(c.value, +new cvox.BrailleUtil.ValueSpan(0)):cvox.BrailleUtil.getValue(b);default:return d}},g=0;g<d.length;g++){var h=f(d[g]);e.append(h);h.toString()||" "!=d[g+1]||g++}return e.trim()};cvox.MathmlStoreUtil={};cvox.MathmlStoreUtil.matchMathjaxToMathml=function(a){var b=cvox.TraverseMath.getInstance().activeMathmlHost;return b.querySelector("#"+a.id)};cvox.MathmlStoreUtil.retrieveMathjaxExtender=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};cvox.MathmlStoreUtil.retrieveMathjaxLeaf=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]}; +cvox.MathmlStoreUtil.checkMathjaxTag=function(a,b){var c=cvox.MathmlStoreUtil.matchMathjaxToMathml(a);return c&&c.tagName.toUpperCase()==b?[c]:[]};cvox.MathmlStoreUtil.checkMathjaxMunder=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MUNDER")};cvox.MathmlStoreUtil.checkMathjaxMover=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MOVER")};cvox.MathmlStoreUtil.checkMathjaxMsub=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUB")}; +cvox.MathmlStoreUtil.checkMathjaxMsup=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUP")};cvox.MathmlStoreUtil.nextSeparatorFunction=function(a){if(a){if(a.match(/^\s+$/))return null;var b=a.replace(/\s/g,"").split("").filter(function(a){return a})}else b=[","];return function(){return 1<b.length?b.shift():b[0]}};cvox.MathmlStoreUtil.mfencedSeparators=function(a,b){var c=cvox.MathmlStoreUtil.nextSeparatorFunction(b);return function(){return c?c():""}}; +cvox.MathmlStoreUtil.contentIterator=function(a,b){var c=0<a.length?cvox.XpathUtil.evalXPath("../../content/*",a[0]):[];return function(){var a=c.shift();return b+(a?a.textContent:"")}};cvox.StoreUtil={};cvox.StoreUtil.nodeCounter=function(a,b){var c=a.length,d=0,e=b;b||(e="");return function(){d<c&&(d+=1);return e+" "+d}};cvox.MathmlStoreRules=function(){cvox.MathmlStoreRules.initCustomFunctions_();cvox.MathmlStoreRules.initDefaultRules_();cvox.MathmlStoreRules.initMathjaxRules_();cvox.MathmlStoreRules.initAliases_();cvox.MathmlStoreRules.initSpecializationRules_();cvox.MathmlStoreRules.initSemanticRules_()};goog.addSingletonGetter(cvox.MathmlStoreRules);cvox.MathmlStoreRules.mathStore=cvox.MathmlStore.getInstance();cvox.MathmlStoreRules.mathStore.initialize=cvox.MathmlStoreRules.getInstance; +cvox.MathmlStoreRules.defineDefaultMathmlRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineDefaultMathmlRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRuleAlias_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRuleAlias,cvox.MathmlStoreRules.mathStore); +cvox.MathmlStoreRules.addContextFunction_=goog.bind(cvox.MathmlStoreRules.mathStore.contextFunctions.add,cvox.MathmlStoreRules.mathStore.contextFunctions);cvox.MathmlStoreRules.addCustomQuery_=goog.bind(cvox.MathmlStoreRules.mathStore.customQueries.add,cvox.MathmlStoreRules.mathStore.customQueries); +cvox.MathmlStoreRules.initCustomFunctions_=function(){(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFnodeCounter",cvox.StoreUtil.nodeCounter);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFmfSeparators",cvox.MathmlStoreUtil.mfencedSeparators);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFcontentIterator",cvox.MathmlStoreUtil.contentIterator);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFextender",cvox.MathmlStoreUtil.retrieveMathjaxExtender);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmunder", +cvox.MathmlStoreUtil.checkMathjaxMunder);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmover",cvox.MathmlStoreUtil.checkMathjaxMover);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsub",cvox.MathmlStoreUtil.checkMathjaxMsub);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsup",cvox.MathmlStoreUtil.checkMathjaxMsup);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFlookupleaf",cvox.MathmlStoreUtil.retrieveMathjaxLeaf)}; +cvox.MathmlStoreRules.initDefaultRules_=function(){(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("math","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mspace","[p] (pause:250)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mstyle","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mpadded","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("merror","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mphantom","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mtext", +"[t] text(); [p] (pause:200)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mi","[n] text()");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mo","[n] text() (rate:-0.1)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mn","[n] text()");(0,cvox.MathmlStoreRules.defineRule_)("mtext-variant","default.default",'[t] "begin"; [t] @mathvariant (pause:150);[t] text() (pause:150); [t] "end"; [t] @mathvariant (pause:200)',"self::mathml:mtext","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mi-variant", +"default.default","[t] @mathvariant; [n] text()","self::mathml:mi","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mi-variant","self::mathml:mn","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mo-variant","default.default","[t] @mathvariant; [n] text() (rate:-0.1)","self::mathml:mo","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("ms",'[t] "string" (pitch:0.5, rate:0.5); [t] text()');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msup", +'[n] ./*[1]; [t] "super";[n] ./*[2] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msubsup",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "super"; [n] ./*[3] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msub",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mover",'[n] ./*[2] (pitch:0.35); [p] (pause:200); [t] "over"; [n] ./*[1]; [p] (pause:400)'); +(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munder",'[n] ./*[2] (pitch:-0.35); [t] "under"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munderover",'[n] ./*[2] (pitch:-0.35); [t] "under and"; [n] ./*[3] (pitch:0.35); [t] "over"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mrow","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msqrt",'[t] "Square root of"; [m] ./* (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mroot", +'[t] "root of order"; [n] ./*[2]; [t] "of";[n] ./*[1] (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mfrac",' [p] (pause:400); [n] ./*[1] (pitch:0.3); [t] "divided by"; [n] ./*[2] (pitch:-0.3); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-single","default.default",'[t] @open (context:"opening"); [m] ./* (separator:@separators);[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-empty", +"default.default",'[t] @open (context:"opening"); [m] ./*;[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1",'string(@separators)=" "');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-comma","default.default",'[t] @open (context:"opening"); [m] ./* (separator:"comma");[t] @close (context:"closing")',"self::mathml:mfenced");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-multi","default.default",'[t] @open (context:"opening"); [m] ./* (sepFunc:CTXFmfSeparators,separator:@separators); [t] @close (context:"closing")', +"self::mathml:mfenced","string-length(string(@separators))>1");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.default",'[t] "matrix"; [m] ./* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)',"self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.default","[m] ./*","self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mtable", +"default.superbrief",'[t] count(child::mathml:mtr); [t] "by";[t] count(child::mathml:mtr[1]/mathml:mtd); [t] "matrix";',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.short",'[t] "matrix"; [m] ./*',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.short","[m] ./*","self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.short",'[t] "Element"; [t] count(./preceding-sibling::mathml:mtd)+1;[t] count(./parent::mathml:mtr/preceding-sibling::mathml:mtr)+1;[p] (pause:500); [m] ./*', +"self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-3", +"default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[5]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[6]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-2-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[5]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[6]")}; +cvox.MathmlStoreRules.initMathjaxRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("mj-math","default.default","[n] ./*[1]/*[1]/*[1]",'self::span[@class="math"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-leaf","default.default","[n] CQFlookupleaf",'self::span[@class="mi"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mo"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mn"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtext"]'); +(0,cvox.MathmlStoreRules.defineRule_)("mj-mo-ext","default.default","[n] CQFextender",'self::span[@class="mo"]',"./*[1]/*[1]/text()","./*[1]/*[2]/text()");(0,cvox.MathmlStoreRules.defineRule_)("mj-texatom","default.default","[n] ./*[1]",'self::span[@class="texatom"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msubsup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35);[p] (pause:200); [t] "super"; [n] ./*[1]/*[2]/*[1] (pitch:0.35);[p] (pause:300)','self::span[@class="msubsup"]'); +(0,cvox.MathmlStoreRules.defineRule_)("mj-msub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub";[n] ./*[1]/*[2]/*[1] (pitch:-0.35); [p] (pause:300)','self::span[@class="msub"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "super";[n] ./*[1]/*[2]/*[1] (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munderover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under and";[n] ./*[1]/*[3]/*[1] (pitch:-0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)', +'self::span[@class="munderover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munder","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="munder"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="mover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfrac","default.default",'[p] (pause:250); [n] ./*[1]/*[1]/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] ./*[1]/*[2]/*[1] (pitch:-0.3);[p] (pause:400)', +'self::span[@class="mfrac"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msqrt","default.default",'[t] "Square root of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="msqrt"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mroot","default.default",'[t] "root of order"; [n] ./*[1]/*[4]/*[1]; [t] "of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="mroot"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfenced","default.default",'[t] "opening"; [n] ./*[1]; [m] ./*[position()>1 and position()<last()]; [t] "closing"; [n] ./*[last()]', +'self::span[@class="mfenced"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtable"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mmultiscripts"]')}; +cvox.MathmlStoreRules.initAliases_=function(){(0,cvox.MathmlStoreRules.defineRuleAlias_)("mspace",'self::span[@class="mspace"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mstyle",'self::span[@class="mstyle"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mpadded",'self::span[@class="mpadded"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("merror",'self::span[@class="merror"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mphantom",'self::span[@class="mphantom"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("ms", +'self::span[@class="ms"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mrow",'self::span[@class="mrow"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msub",'self::span[@class="msubsup"]',"CQFmathmlmsub");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msup",'self::span[@class="msubsup"]',"CQFmathmlmsup");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-munder",'self::span[@class="munderover"]',"CQFmathmlmunder");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-mover",'self::span[@class="munderover"]', +"CQFmathmlmover")}; +cvox.MathmlStoreRules.initSpecializationRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] ./*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("cube","default.default",'[n] ./*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=3]"); +(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("square-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=2]"); +(0,cvox.MathmlStoreRules.defineRule_)("cube-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]', +"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]', +"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube", +'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]', +"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square-sub",'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube-sub", +'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]")}; +cvox.MathmlStoreRules.initSemanticRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("stree","default.default","[n] ./*[1]","self::stree");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default",'[t] "multirelation"; [m] children/* (sepFunc:CTXFcontentIterator)',"self::multirel");(0,cvox.MathmlStoreRules.defineRule_)("variable-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]', +"count(./children/*)>2",'./children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.short",'[t] "equation sequence"; [m] ./children/* (separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("equality", +"default.default",'[t] "equation"; [t] "left hand side"; [n] children/*[1];[p] (pause:200); [n] text() (pause:200);[t] "right hand side"; [n] children/*[2]','self::relseq[@role="equality"]',"count(./children/*)=2");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality","default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/identifier or ./children/number");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality2", +"default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/function or ./children/appl");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default","[m] children/* (separator:./text())","self::relseq");(0,cvox.MathmlStoreRules.defineRule_)("binary-operation","default.default","[m] children/* (separator:text());","self::infixop");(0,cvox.MathmlStoreRules.defineRule_)("variable-addition", +"default.default",'[t] "sum with variable number of summands";[p] (pause:400); [m] children/* (separator:./text())','self::infixop[@role="addition"]',"count(children/*)>2",'children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-addition","default.default",'[t] "sum with,"; [t] count(./children/*); [t] ", summands";[p] (pause:400); [m] ./children/* (separator:./text())','self::infixop[@role="addition"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("prefix", +"default.default",'[t] "prefix"; [n] text(); [t] "of" (pause 150);[n] children/*[1]',"self::prefixop");(0,cvox.MathmlStoreRules.defineRule_)("negative","default.default",'[t] "negative"; [n] children/*[1]',"self::prefixop",'self::prefixop[@role="negative"]');(0,cvox.MathmlStoreRules.defineRule_)("postfix","default.default",'[n] children/*[1]; [t] "postfix"; [n] text() (pause 300)',"self::postfixop");(0,cvox.MathmlStoreRules.defineRule_)("identifier","default.default","[n] text()","self::identifier"); +(0,cvox.MathmlStoreRules.defineRule_)("number","default.default","[n] text()","self::number");(0,cvox.MathmlStoreRules.defineRule_)("fraction","default.default",'[p] (pause:250); [n] children/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] children/*[2] (pitch:-0.3); [p] (pause:400)',"self::fraction");(0,cvox.MathmlStoreRules.defineRule_)("superscript","default.default",'[n] children/*[1]; [t] "super"; [n] children/*[2] (pitch:0.35);[p] (pause:300)',"self::superscript");(0,cvox.MathmlStoreRules.defineRule_)("subscript", +"default.default",'[n] children/*[1]; [t] "sub"; [n] children/*[2] (pitch:-0.35);[p] (pause:300)',"self::subscript");(0,cvox.MathmlStoreRules.defineRule_)("ellipsis","default.default",'[p] (pause:200); [t] "dot dot dot"; [p] (pause:300)',"self::punct",'self::punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("fence-single","default.default","[n] text()","self::punct",'self::punct[@role="openfence"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="closefence"]'); +(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="vbar"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="application"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-punct","default.default","[p] (pause:200);","self::punct");(0,cvox.MathmlStoreRules.defineRule_)("omit-empty","default.default","","self::empty");(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close","default.default",'[p] (pause:100); [t] "open"; [n] children/*[1]; [p] (pause:200);[t] "close"', +'self::fenced[@role="leftright"]');(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close-in-appl","default.default","[p] (pause:100); [n] children/*[1]; [p] (pause:200);",'self::fenced[@role="leftright"]',"./parent::children/parent::appl");(0,cvox.MathmlStoreRules.defineRule_)("fences-neutral","default.default",'[p] (pause:100); [t] "absolute value of"; [n] children/*[1];[p] (pause:350);',"self::fenced",'self::fenced[@role="neutral"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-fences","default.default", +"[p] (pause:500); [n] children/*[1]; [p] (pause:200);","self::fenced");(0,cvox.MathmlStoreRules.defineRule_)("matrix","default.default",'[t] "matrix"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::matrix");(0,cvox.MathmlStoreRules.defineRule_)("matrix-row","default.default",'[m] children/* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row[@role="matrix"]');(0,cvox.MathmlStoreRules.defineRule_)("matrix-cell","default.default","[n] children/*[1]",'self::cell[@role="matrix"]'); +(0,cvox.MathmlStoreRules.defineRule_)("vector","default.default",'[t] "vector"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"element",pause:100)',"self::vector");(0,cvox.MathmlStoreRules.defineRule_)("cases","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100)',"self::cases");(0,cvox.MathmlStoreRules.defineRule_)("cases-row","default.default","[m] children/*",'self::row[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("cases-cell", +"default.default","[n] children/*[1]",'self::cell[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("row","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row"');(0,cvox.MathmlStoreRules.defineRule_)("cases-end","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100);[t] "end cases"',"self::cases","following-sibling::*");(0,cvox.MathmlStoreRules.defineRule_)("multiline","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"line",pause:100)', +"self::multiline");(0,cvox.MathmlStoreRules.defineRule_)("line","default.default","[m] children/*","self::line");(0,cvox.MathmlStoreRules.defineRule_)("table","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:200)',"self::table");(0,cvox.MathmlStoreRules.defineRule_)("table-row","default.default","[m] children/* (pause:100)",'self::row[@role="table"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("cases-cell",'self::cell[@role="table"]');(0,cvox.MathmlStoreRules.defineRule_)("end-punct", +"default.default","[m] children/*; [p] (pause:300)","self::punctuated",'@role="endpunct"');(0,cvox.MathmlStoreRules.defineRule_)("start-punct","default.default","[n] content/*[1]; [p] (pause:200); [m] children/*","self::punctuated",'@role="startpunct"');(0,cvox.MathmlStoreRules.defineRule_)("integral-punct","default.default","[n] children/*[1] (rate:0.2); [n] children/*[3] (rate:0.2)","self::punctuated",'@role="integral"');(0,cvox.MathmlStoreRules.defineRule_)("punctuated","default.default","[m] children/* (pause:100)", +"self::punctuated");(0,cvox.MathmlStoreRules.defineRule_)("function","default.default","[n] text()","self::function");(0,cvox.MathmlStoreRules.defineRule_)("appl","default.default","[n] children/*[1]; [n] content/*[1]; [n] children/*[2]","self::appl");(0,cvox.MathmlStoreRules.defineRule_)("limboth","default.default",'[n] children/*[1]; [t] "from"; [n] children/*[2]; [t] "to";[n] children/*[3]',"self::limboth");(0,cvox.MathmlStoreRules.defineRule_)("sum-only","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);', +"self::limboth",'self::limboth[@role="sum"]');(0,cvox.MathmlStoreRules.defineRule_)("limlower","default.default",'[n] children/*[1]; [t] "over"; [n] children/*[2];',"self::limlower");(0,cvox.MathmlStoreRules.defineRule_)("limupper","default.default",'[n] children/*[1]; [t] "under"; [n] children/*[2];',"self::limupper");(0,cvox.MathmlStoreRules.defineRule_)("largeop","default.default","[n] text()","self::largeop");(0,cvox.MathmlStoreRules.defineRule_)("bigop","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);', +"self::bigop");(0,cvox.MathmlStoreRules.defineRule_)("integral","default.default","[n] children/*[1]; [p] (pause 100); [n] children/*[2]; [p] (pause 200);[n] children/*[3] (rate:0.35);","self::integral");(0,cvox.MathmlStoreRules.defineRule_)("sqrt","default.default",'[t] "Square root of"; [n] children/*[1] (rate:0.2); [p] (pause:400)',"self::sqrt");(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] children/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::superscript","children/*[2][text()=2]"); +(0,cvox.MathmlStoreRules.defineRule_)("text-no-mult","default.default","[n] children/*[1]; [p] (pause:200); [n] children/*[2]","self::infixop","children/text")};cvox.AbstractShifter=function(){this.isSubnavigating_=!1};cvox.AbstractShifter.prototype.begin=function(a,b){return this.currentWalker_.begin(b)};cvox.AbstractShifter.prototype.makeLessGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.makeMoreGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.ensureSubnavigating=function(){!1==this.isSubnavigating_&&(this.makeMoreGranular(),this.isSubnavigating_=!0)}; +cvox.AbstractShifter.prototype.ensureNotSubnavigating=function(){!0==this.isSubnavigating_&&(this.isSubnavigating_=!1,this.makeLessGranular())};cvox.AbstractShifter.prototype.isSubnavigating=function(){return this.isSubnavigating_};cvox.AbstractShifter.prototype.hasAction=function(a){return this.currentWalker_.hasAction(a)};cvox.AbstractShifter.prototype.performAction=function(a,b){return this.currentWalker_.performAction(a,b)};cvox.MathShifter=function(a){cvox.AbstractShifter.call(this);this.level_=0;this.bumped_=this.direction_=!1;cvox.TraverseMath.getInstance().initialize(a.start.node)};goog.inherits(cvox.MathShifter,cvox.AbstractShifter);cvox.MathShifter.prototype.next=function(a){var b=a.isReversed();this.bumped_=!cvox.TraverseMath.getInstance().nextSibling(b);return(b=cvox.TraverseMath.getInstance().getAttachedActiveNode())?cvox.CursorSelection.fromNode(b):a}; +cvox.MathShifter.prototype.sync=function(a){var b=cvox.TraverseMath.getInstance().getAttachedActiveNode();return b?cvox.CursorSelection.fromNode(b):a};cvox.MathShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("math_shifter")};cvox.MathShifter.prototype.getDescription=function(){var a=cvox.SpeechRuleEngine.getInstance().evaluateNode(cvox.TraverseMath.getInstance().activeNode);this.bumped_&&0<a.length&&a[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE);return a}; +cvox.MathShifter.prototype.getBraille=function(a,b){return new cvox.NavBraille({text:cvox.BrailleUtil.getTemplated(a.start.node,b.start.node)})};cvox.MathShifter.prototype.getGranularityMsg=function(){return this.direction_?"up to level "+this.level_:"down to level "+this.level_};cvox.MathShifter.prototype.makeLessGranular=function(){this.level_=0<this.level_?this.level_-1:0;this.direction_=!0;this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!0)}; +cvox.MathShifter.prototype.makeMoreGranular=function(){this.direction_=!1;(this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!1))||this.level_++}; +cvox.MathShifter.create=function(a){if(cvox.DomPredicates.mathPredicate(cvox.DomUtil.getAncestors(a.start.node))){var b=cvox.DomUtil.getContainingMath(a.end.node);cvox.TraverseMath.getInstance().initialize(b);cvox.SpeechRuleEngine.getInstance().parameterize(cvox.MathmlStore.getInstance());b=cvox.MathStore.createDynamicConstraint(cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style);cvox.SpeechRuleEngine.getInstance().setDynamicConstraint(b);return new cvox.MathShifter(a)}return null};cvox.TableUtil={};cvox.TableUtil.checkIfHeader=function(a){return"TH"==a.tagName||a.hasAttribute("scope")||a.hasAttribute("role")&&("rowheader"==a.getAttribute("role")||"columnheader"==a.getAttribute("role"))}; +cvox.TableUtil.determineColGroups=function(a){var b=[];if(0==a.length)return b;for(var c=0;c<a.length;c++){var d=a[c],e=cvox.TableUtil.getColNodes(d);if(0<e.length)for(d=0;d<e.length;d++){var f=e[d];if(f.hasAttribute("span"))for(var f=parseInt(f.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}else if(d.hasAttribute("span"))for(f=parseInt(d.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}return b};cvox.TableUtil.pushIfNotContained=function(a,b){-1==a.indexOf(b)&&a.push(b)}; +cvox.TableUtil.getChildRows=function(a){return cvox.XpathUtil.evalXPath('child::tbody/tr | child::thead/tr | child::*[attribute::role="row"]',a)};cvox.TableUtil.getChildCells=function(a){return cvox.XpathUtil.evalXPath('child::td | child::th | child::*[attribute::role="gridcell"] |child::*[attribute::role="rowheader"] |child::*[attribute::role="columnheader"]',a)};cvox.TableUtil.getCellWithID=function(a,b){return cvox.XpathUtil.evalXPath("id('"+b+"')",a)}; +cvox.TableUtil.getColGroups=function(a){return cvox.XpathUtil.evalXPath("child::colgroup",a)};cvox.TableUtil.getColNodes=function(a){return cvox.XpathUtil.evalXPath("child::col",a)};function ShadowTableNode(){}ShadowTableNode.prototype.rowHeaderCells=[];ShadowTableNode.prototype.colHeaderCells=[];cvox.TraverseTable=function(a){this.activeTable_=null;this.shadowTable_=[];this.candidateHeaders_=[];this.idToShadowNode_=[];this.initialize(a)};cvox.TraverseTable.prototype.colCount=null;cvox.TraverseTable.prototype.rowCount=null;cvox.TraverseTable.prototype.tableRowHeaders=null;cvox.TraverseTable.prototype.tableColHeaders=null; +cvox.TraverseTable.prototype.initialize=function(a){a&&a!=this.activeTable_&&(this.activeTable_=a,this.currentCellCursor=null,this.tableRowHeaders=[],this.tableColHeaders=[],this.buildShadowTable_(),this.colCount=this.shadowColCount_(),this.rowCount=this.countRows_(),this.findHeaderCells_(),this.activeTable_.addEventListener("DOMSubtreeModified",goog.bind(function(){this.buildShadowTable_();this.colCount=this.shadowColCount_();this.rowCount=this.countRows_();this.tableRowHeaders=[];this.tableColHeaders= +[];this.findHeaderCells_();0==this.colCount&&0==this.rowCount||null!=this.getCell()||this.attachCursorToNearestCell_()},this),!1))}; +cvox.TraverseTable.prototype.findNearestCursor=function(a){for(;a.firstElementChild&&"TABLE"!=a.firstElementChild.tagName&&!cvox.AriaUtil.isGrid(a.firstElementChild);)a=a.firstElementChild;for(;!cvox.DomPredicates.cellPredicate(cvox.DomUtil.getAncestors(a));)if(a=cvox.DomUtil.directedNextLeafNode(a),!cvox.DomUtil.getContainingTable(a,{allowCaptions:!0}))return null;for(var b=0;b<this.rowCount;++b)for(var c=0;c<this.colCount;++c)if(this.shadowTable_[b][c]&&cvox.DomUtil.isDescendantOfNode(a,this.shadowTable_[b][c].activeCell))return[b, +c];return null};cvox.TraverseTable.prototype.attachCursorToNearestCell_=function(){if(this.currentCellCursor){var a=this.currentCellCursor,b=this.shadowTable_[a[0]];if(b)this.currentCellCursor=[a[0],b.length-1];else if(b=this.shadowTable_.length,0==b)this.currentCellCursor=null;else{var c=this.shadowTable_[b-1][a[1]];c?this.currentCellCursor=[b-1,a[1]]:this.goToLastCell()}}else this.goToLastCell()}; +cvox.TraverseTable.prototype.buildShadowTable_=function(){this.shadowTable_=[];for(var a=cvox.TableUtil.getChildRows(this.activeTable_),b=null,c=null,d=cvox.TableUtil.getColGroups(this.activeTable_),d=cvox.TableUtil.determineColGroups(d),e=0;e<a.length;e++)this.shadowTable_.push([]);for(e=0;e<a.length;e++)for(var f=cvox.TableUtil.getChildCells(a[e]),g=0,h=0;g<f.length;)if(null==this.shadowTable_[e][h]){var k=f[g],l=1,m=1;k.hasAttribute("colspan")&&(l=parseInt(k.getAttribute("colspan"),10),isNaN(l)|| +0>=l)&&(l=1);k.hasAttribute("rowspan")&&(m=parseInt(k.getAttribute("rowspan"),10),isNaN(m)||0>=m)&&(m=1);for(var p=0;p<m;p++)for(var q=0;q<l;q++){var n=new ShadowTableNode;0==p&&0==q?(n.spanned=!1,n.rowSpan=!1,n.colSpan=!1):(n.spanned=!0,n.rowSpan=1<m,n.colSpan=1<l);n.i=e;n.j=h;n.activeCell=k;n.rowHeaderCells=[];n.colHeaderCells=[];n.isRowHeader=!1;n.isColHeader=!1;cvox.TableUtil.checkIfHeader(n.activeCell)?this.candidateHeaders_.push(n):n.activeCell.hasAttribute("headers")&&this.candidateHeaders_.push(n); +null==b?(b=a[e].parentNode,c=0):a[e].parentNode!=b&&(b=a[e].parentNode,c+=1);n.rowGroup=c;n.colGroup=0<d.length?d[h]:0;n.spanned||null!=k.id&&(this.idToShadowNode_[k.id]=n);this.shadowTable_[e+p][h+q]=n}h+=l;g++}else h+=1;return this.shadowTable_}; +cvox.TraverseTable.prototype.findHeaderCells_=function(){for(var a=0;a<this.candidateHeaders_.length;a++){var b=this.candidateHeaders_[a],c=b.activeCell,d=null,e=null;if(!b.spanned){"TH"!=c.tagName||c.hasAttribute("scope")?c.hasAttribute("scope")?e=c.getAttribute("scope"):c.hasAttribute("role")&&"rowheader"==c.getAttribute("role")?e="row":c.hasAttribute("role")&&"columnheader"==c.getAttribute("role")&&(e="col"):(0<b.j?"TH"==this.shadowTable_[b.i][b.j-1].activeCell.tagName&&(d="col"):b.j<this.shadowTable_[b.i].length- +1?"TH"==this.shadowTable_[b.i][b.j+1].activeCell.tagName&&(d="col"):d="col",null==d&&(0<b.i?"TH"==this.shadowTable_[b.i-1][b.j].activeCell.tagName&&(d="row"):b.i<this.shadowTable_.length-1?"TH"==this.shadowTable_[b.i+1][b.j].activeCell.tagName&&(d="row"):d="row"));if("row"==e||"row"==d){b.isRowHeader=!0;for(d=b.j;d<this.shadowTable_[b.i].length;d++)e=this.shadowTable_[b.i][d],e.rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("col"==e||"col"==d){b.isColHeader=!0;for(e=b.i;e<this.shadowTable_.length;e++){d= +this.shadowTable_[e][b.j];if(null==d)break;d.colHeaderCells.push(c)}this.tableColHeaders.push(c)}else if("rowgroup"==e){b.isRowHeader=!0;for(var f=b.rowGroup,d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].rowHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length&&this.shadowTable_[e][0].rowGroup==f;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("colgroup"==e){b.isColHeader=!0;f=b.colGroup; +for(d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].colGroup==f&&this.shadowTable_[b.i][d].colHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].colGroup==f&&this.shadowTable_[e][d].colHeaderCells.push(c);this.tableColHeaders.push(c)}c.hasAttribute("headers")&&this.findAttrbHeaders_(b);c.hasAttribute("aria-describedby")&&this.findAttrbDescribedBy_(b)}}}; +cvox.TraverseTable.prototype.findAttrbHeaders_=function(a){for(var b=a.activeCell,c=b.getAttribute("headers").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];if(!cvox.TableUtil.checkIfHeader(g.activeCell)){var h=Math.abs(g.i-a.i),k=Math.abs(g.j-a.j);0==h||h<k?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,g.activeCell)): +(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell))}}}; +cvox.TraverseTable.prototype.findAttrbDescribedBy_=function(a){for(var b=a.activeCell,c=b.getAttribute("aria-describedby").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];cvox.TableUtil.checkIfHeader(g.activeCell)||(g.activeCell.hasAttribute("role")&&"rowheader"==g.activeCell.getAttribute("role")?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders, +g.activeCell)):g.activeCell.hasAttribute("role")&&"columnheader"==g.activeCell.getAttribute("role")&&(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell)))}};cvox.TraverseTable.prototype.getCell=function(){if(!this.currentCellCursor||!this.shadowTable_)return null;var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a&&a.activeCell}; +cvox.TraverseTable.prototype.getCellAt=function(a){return a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]&&(a=this.shadowTable_[a[0]][a[1]],null!=a)?a.activeCell:null};cvox.TraverseTable.prototype.getCellRowHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.rowHeaderCells};cvox.TraverseTable.prototype.getCellColHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.colHeaderCells}; +cvox.TraverseTable.prototype.isSpanned=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.spanned};cvox.TraverseTable.prototype.isRowHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isRowHeader};cvox.TraverseTable.prototype.isColHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isColHeader}; +cvox.TraverseTable.prototype.getCol=function(){for(var a=[],b=0;b<this.shadowTable_.length;b++)if(this.shadowTable_[b][this.currentCellCursor[1]]){var c=this.shadowTable_[b][this.currentCellCursor[1]];if(c.colSpan&&c.rowSpan){var d=a[a.length-1];d!=c.activeCell&&a.push(c.activeCell)}else!c.colSpan&&c.rowSpan||a.push(c.activeCell)}return a};cvox.TraverseTable.prototype.summaryText=function(){return this.activeTable_.hasAttribute("summary")?this.activeTable_.getAttribute("summary"):null}; +cvox.TraverseTable.prototype.shadowColCount_=function(){for(var a=0,b=0;b<this.shadowTable_.length;b++)this.shadowTable_[b].length>a&&(a=this.shadowTable_[b].length);return a};cvox.TraverseTable.prototype.countRows_=function(){var a=cvox.TableUtil.getChildRows(this.activeTable_);return a.length};cvox.TraverseTable.prototype.nextRow=function(){return this.currentCellCursor?this.goToRow(this.currentCellCursor[0]+1):this.goToRow(0)}; +cvox.TraverseTable.prototype.nextCol=function(){return this.currentCellCursor?this.goToCol(this.currentCellCursor[1]+1):this.goToCol(0)};cvox.TraverseTable.prototype.goToRow=function(a){return null!=this.shadowTable_[a]?(this.currentCellCursor=null==this.currentCellCursor?[a,0]:[a,this.currentCellCursor[1]],!0):!1};cvox.TraverseTable.prototype.goToCol=function(a){if(0>a||a>=this.colCount)return!1;this.currentCellCursor=null==this.currentCellCursor?[0,a]:[this.currentCellCursor[0],a];return!0}; +cvox.TraverseTable.prototype.goToCell=function(a){if(a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]){var b=this.shadowTable_[a[0]][a[1]];if(null!=b)return this.currentCellCursor=a,!0}return!1};cvox.TraverseTable.prototype.goToLastCell=function(){var a=this.shadowTable_.length;if(0==a)return!1;var b=this.shadowTable_[a-1],a=[a-1,b.length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1}; +cvox.TraverseTable.prototype.goToRowLastCell=function(){var a=this.currentCellCursor[0],a=[a,this.shadowTable_[a].length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TraverseTable.prototype.goToColLastCell=function(){var a=this.getCol(),a=[a.length-1,this.currentCellCursor[1]],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TableWalker=function(){this.tt=new cvox.TraverseTable(null)};goog.inherits(cvox.TableWalker,cvox.AbstractWalker);cvox.TableWalker.prototype.next=function(a){return this.nextRow(a)};cvox.TableWalker.prototype.sync=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell(a)},this))}; +cvox.TableWalker.prototype.getDescription=function(a,b){var c=this.syncPosition_(b);if(!c)return[];this.tt.goToCell(c);c=cvox.DescriptionUtil.getCollectionDescription(a,b);0==c.length&&c.push(new cvox.NavDescription({annotation:cvox.ChromeVox.msgs.getMsg("empty_cell")}));return c};cvox.TableWalker.prototype.getBraille=function(a,b){new cvox.NavBraille({});var c=this.syncPosition_(b);if(c){var d=cvox.BrailleUtil.getTemplated(a.start.node,b.start.node);d.append(" "+ ++c[0]+"/"+ ++c[1])}return new cvox.NavBraille({text:d})}; +cvox.TableWalker.prototype.goToFirstCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToCell([0,0])},this))};cvox.TableWalker.prototype.goToLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToLastCell()},this))};cvox.TableWalker.prototype.goToRowFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([a[0],0])},this))}; +cvox.TableWalker.prototype.goToRowLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToRowLastCell()},this))};cvox.TableWalker.prototype.goToColFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([0,a[1]])},this))};cvox.TableWalker.prototype.goToColLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToColLastCell()},this))}; +cvox.TableWalker.prototype.nextRow=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0]+(a.isReversed()?-1:1),b[1]])},this))};cvox.TableWalker.prototype.nextCol=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0],b[1]+(a.isReversed()?-1:1)])},this))};cvox.TableWalker.prototype.announceHeaders=function(a){cvox.ChromeVox.tts.speak(this.getHeaderText_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);return a}; +cvox.TableWalker.prototype.speakTableLocation=function(a){cvox.ChromeVox.navigationManager.speakDescriptionArray(this.getLocationDescription_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,null);return a};cvox.TableWalker.prototype.exitShifterContent=function(a){a=this.getTableNode_(a);if(!a)return null;a=cvox.DomUtil.directedNextLeafNode(a,!1);return cvox.CursorSelection.fromNode(a)}; +cvox.TableWalker.prototype.getHeaderText_=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))&&this.tt.goToCell(a)?this.getRowHeaderText_(a)+" "+this.getColHeaderText_(a):cvox.ChromeVox.msgs.getMsg("not_inside_table")};cvox.TableWalker.prototype.getLocationDescription_=function(a){a=this.getLocationInfo(a);return null==a?null:[new cvox.NavDescription({text:cvox.ChromeVox.msgs.getMsg("table_location",a)})]}; +cvox.TableWalker.prototype.getRowHeaderText_=function(a){var b="",c=this.tt.getCellRowHeaders();if(0==c.length)return c=this.tt.getCellAt([a[0],0]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("row_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("row_header")+b}; +cvox.TableWalker.prototype.getColHeaderText_=function(a){var b="",c=this.tt.getCellColHeaders();if(0==c.length)return c=this.tt.getCellAt([0,a[1]]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("column_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("column_header")+ +b};cvox.TableWalker.prototype.getLocationInfo=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))?[a[0]+1,this.tt.rowCount,a[1]+1,this.tt.colCount].map(function(a){return cvox.ChromeVox.msgs.getNumber(a)}):null}; +cvox.TableWalker.prototype.goTo_=function(a,b){this.tt.initialize(this.getTableNode_(a));var c=this.tt.findNearestCursor(a.end.node);if(!c)return null;this.tt.goToCell(c);return b(c)?cvox.CursorSelection.fromNode(this.tt.getCell()).setReversed(a.isReversed()):null};cvox.TableWalker.prototype.getTableNode_=function(a){return cvox.DomUtil.getContainingTable(a.end.node)};cvox.TableWalker.prototype.syncPosition_=function(a){var b=this.getTableNode_(a);this.tt.initialize(b);return this.tt.findNearestCursor(a.end.node)};cvox.ColumnWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.ColumnWalker,cvox.TableWalker);cvox.ColumnWalker.prototype.next=function(a){return this.nextCol(a)};cvox.ColumnWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("column_granularity")};cvox.RowWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.RowWalker,cvox.TableWalker);cvox.RowWalker.prototype.next=function(a){return this.nextRow(a)};cvox.RowWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("row_granularity")};cvox.TableShifter=function(){this.rowWalker_=new cvox.RowWalker;this.columnWalker_=new cvox.ColumnWalker;this.currentWalker_=this.rowWalker_;this.bumpedEdge_=!1;this.begin_=!0;cvox.AbstractShifter.call(this)};goog.inherits(cvox.TableShifter,cvox.AbstractShifter);cvox.TableShifter.prototype.next=function(a){var b=this.currentWalker_.next(a);return b?b:(this.bumpedEdge_=!0,a)}; +cvox.TableShifter.prototype.sync=function(a){return"TABLE"==a.start.node.tagName?a.isReversed()?this.currentWalker_.goToLastCell(a):this.currentWalker_.goToFirstCell(a):this.currentWalker_.sync(a)};cvox.TableShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("table_shifter")}; +cvox.TableShifter.prototype.getDescription=function(a,b){var c=this.currentWalker_.getDescription(a,b);if(0<c.length&&(this.bumpedEdge_&&(c[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE),this.bumpedEdge_=!1),this.begin_)){var d=this.currentWalker_.tt.summaryText(),e=this.currentWalker_.getLocationInfo(b);null!=e&&c.push(new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("table_location",e),text:"",annotation:d?d+" ":""}));this.currentWalker_.tt.isSpanned()&&c.push(new cvox.NavDescription({text:"", +annotation:cvox.ChromeVox.msgs.getMsg("spanned")}));this.begin_=!1}return c};cvox.TableShifter.prototype.getBraille=function(a,b){return this.currentWalker_.getBraille(a,b)};cvox.TableShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};cvox.TableShifter.prototype.makeLessGranular=function(){cvox.TableShifter.superClass_.makeLessGranular.call(this);this.currentWalker_=this.rowWalker_}; +cvox.TableShifter.prototype.makeMoreGranular=function(){cvox.TableShifter.superClass_.makeMoreGranular.call(this);this.currentWalker_=this.columnWalker_};cvox.TableShifter.create=function(a){a=cvox.DomUtil.getAncestors(a.start.node);return cvox.DomPredicates.tablePredicate(a)&&!cvox.DomPredicates.captionPredicate(a)?new cvox.TableShifter:null};cvox.NavigationHistory=function(){this.reset_()};cvox.NavigationHistory.MAX_HISTORY_LEN_=30;cvox.NavigationHistory.prototype.reset_=function(){var a=document.body;this.history_=[a];this.arrivedValid_=!0};cvox.NavigationHistory.prototype.update=function(a){var b=this.history_[0];a&&a!=b&&this.history_.unshift(a);this.history_.length>cvox.NavigationHistory.MAX_HISTORY_LEN_&&this.history_.pop();this.arrivedValid_=this.isValidNode_(a)}; +cvox.NavigationHistory.prototype.becomeInvalid=function(a){this.clean_();return this.arrivedValid_?!this.isValidNode_(a):(this.arrivedValid_=!0,!1)};cvox.NavigationHistory.prototype.revert=function(a){var b=document.activeElement;b!=document.body&&this.isValidNode_(b)&&this.update(b);if(a)for(;0<this.history_.length;){b=this.history_[0];if(a(b))break;this.history_.shift()}return{current:this.history_[0],previous:this.history_[1]}}; +cvox.NavigationHistory.prototype.clean_=function(){for(var a=!1,b=this.history_.length-1;0<=b;b--){var c=this.isValidNode_(this.history_[b]);c||(this.history_.splice(b,1),a=!0)}return a};cvox.NavigationHistory.prototype.isValidNode_=function(a){return cvox.DomUtil.isAttachedToDocument(a)&&cvox.DomUtil.isVisible(a)?!0:!1};cvox.TraverseContent=function(a){this.currentDomObj=null!=a?a:document.body;var b=document.createRange();try{b.selectNode(this.currentDomObj),this.startCursor_=new cvox.Cursor(b.startContainer,b.startOffset,cvox.TraverseUtil.getNodeText(b.startContainer)),this.endCursor_=new cvox.Cursor(b.endContainer,b.endOffset,cvox.TraverseUtil.getNodeText(b.endContainer))}catch(c){window.console.log("Error: Unselectable node:"),window.console.log(a)}};goog.addSingletonGetter(cvox.TraverseContent); +cvox.TraverseContent.prototype.lastSelectionWasWhitespace=!1;cvox.TraverseContent.prototype.skipWhitespace=!1;cvox.TraverseContent.prototype.skipInvalidSelections=!0;cvox.TraverseContent.prototype.breakAtLinks=!0;cvox.TraverseContent.kCharacter="character";cvox.TraverseContent.kWord="word";cvox.TraverseContent.kSentence="sentence";cvox.TraverseContent.kLine="line";cvox.TraverseContent.kParagraph="paragraph"; +cvox.TraverseContent.kAllGrains=[cvox.TraverseContent.kParagraph,cvox.TraverseContent.kSentence,cvox.TraverseContent.kLine,cvox.TraverseContent.kWord,cvox.TraverseContent.kCharacter];cvox.TraverseContent.prototype.syncToCursorSelection=function(a){this.startCursor_=a.start.clone();this.endCursor_=a.end.clone()};cvox.TraverseContent.prototype.getCurrentCursorSelection=function(){return new cvox.CursorSelection(this.startCursor_,this.endCursor_)}; +cvox.TraverseContent.prototype.updateSelection=function(){cvox.TraverseUtil.setSelection(this.startCursor_,this.endCursor_);cvox.SelectionUtil.scrollToSelection(window.getSelection())};cvox.TraverseContent.prototype.getCurrentRange=function(){var a=document.createRange();try{a.setStart(this.startCursor_.node,this.startCursor_.index),a.setEnd(this.endCursor_.node,this.endCursor_.index)}catch(b){console.log("Invalid range ")}return a};cvox.TraverseContent.prototype.getCurrentText=function(){return cvox.SelectionUtil.getRangeText(this.getCurrentRange())}; +cvox.TraverseContent.prototype.collapseToEnd=function(){this.startCursor_=this.endCursor_.clone()};cvox.TraverseContent.prototype.collapseToStart=function(){this.endCursor_=this.startCursor_.clone()}; +cvox.TraverseContent.prototype.moveNext=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getNextWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getNextChar(this.startCursor_,this.endCursor_, +e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getNextParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getNextLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&& +g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.moveNext(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()}; +cvox.TraverseContent.prototype.movePrev=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getPreviousWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getPreviousChar(this.startCursor_,this.endCursor_, +e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getPreviousParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getPreviousLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&& +g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.movePrev(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};cvox.TraverseContent.prototype.getBreakTags=function(){return{A:this.breakAtLinks,BR:!0,HR:!0}}; +cvox.TraverseContent.prototype.nextElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.moveNext(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null}; +cvox.TraverseContent.prototype.prevElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.movePrev(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};cvox.TraverseContent.prototype.reset=function(){window.getSelection().removeAllRanges()};cvox.AbstractSelectionWalker=function(){this.objWalker_=new cvox.BareObjectWalker;this.tc_=cvox.TraverseContent.getInstance();this.grain=""};goog.inherits(cvox.AbstractSelectionWalker,cvox.AbstractWalker); +cvox.AbstractSelectionWalker.prototype.next=function(a){var b=a.isReversed();this.tc_.syncToCursorSelection(a.clone().setReversed(!1));var c=b?this.tc_.prevElement(this.grain):this.tc_.nextElement(this.grain);if(null==c)return this.objWalker_.next(a);var c=this.tc_.getCurrentCursorSelection().setReversed(b),d=this.objWalker_.next(a),d=d?d.setReversed(b):null;return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)|| +cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d}; +cvox.AbstractSelectionWalker.prototype.sync=function(a){var b=a.isReversed(),c=null;if(a.start.equals(a.end)&&"Text"!=a.start.node.constructor.name){for(c=a.start.node;c&&cvox.DomUtil.directedFirstChild(c,b)&&!cvox.TraverseUtil.treatAsLeafNode(c);){for(var d=cvox.DomUtil.directedFirstChild(c,b);d;)if(cvox.DomUtil.isVisible(d,{checkAncestors:!1,checkDescendants:!1})){c=d;break}else d=cvox.DomUtil.directedNextSibling(d,b);if(!d)break}c=cvox.CursorSelection.fromNode(c)}else c=a.clone(),b?c.start=c.end: +c.end=c.start;c=this.next(c.setReversed(!1));d=(d=this.objWalker_.sync(a))?d.setReversed(b):null;if(!c)return d;c.setReversed(b);return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d}; +cvox.AbstractSelectionWalker.prototype.getDescription=function(a,b){var c=cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getUniqueAncestors(a.end.node,b.start.node),!0,cvox.ChromeVox.verbosity);c.text=b.getText()||c.text;return[c]};cvox.AbstractSelectionWalker.prototype.getBraille=function(a,b){var c=b.absStart().node,d=cvox.TraverseUtil.getNodeText(c),e=new cvox.Spannable(d);e.setSpan(c,0,d.length);return new cvox.NavBraille({text:e,startIndex:b.absStart().index,endIndex:b.absEnd().index})};cvox.CharacterWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kCharacter};goog.inherits(cvox.CharacterWalker,cvox.AbstractSelectionWalker);cvox.CharacterWalker.prototype.getDescription=function(a,b){var c=cvox.CharacterWalker.superClass_.getDescription.call(this,a,b);c.forEach(function(a){a.personality||(a.personality={});a.personality.phoneticCharacters=!0});return c};cvox.CharacterWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("character_granularity")};cvox.GroupUtil={};cvox.GroupUtil.MAX_CHARCOUNT_=1500;cvox.GroupUtil.BREAKOUT_SELECTOR_='blockquote,button,code,form,frame,h1,h2,h3,h4,h5,h6,hr,iframe,input,object,ol,p,pre,select,table,tr,ul,math,span.math,[role~="alert alertdialog button checkbox combobox dialog log marquee menubar progressbar radio radiogroup scrollbar slider spinbutton status tab tabpanel textbox toolbar tooltip treeitem article document group heading img list math region row separator"]'; +cvox.GroupUtil.isLeafNode=function(a){if("LABEL"==a.tagName)return cvox.DomUtil.isLeafNode(a);if(cvox.DomUtil.isLeafNode(a))return!0;if(!cvox.DomUtil.isSemanticElt(a))for(var b=a.querySelectorAll(cvox.GroupUtil.BREAKOUT_SELECTOR_),c=0;c<b.length;++c)if(cvox.DomUtil.hasContent(b[c]))return!1;if(cvox.AriaUtil.isCompositeControl(a)&&!cvox.DomUtil.isFocusable(a))return!1;a=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a));return a.length>cvox.GroupUtil.MAX_CHARCOUNT_|| +""===a.replace(/\s/g,"")?!1:!0};cvox.GroupWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.GroupWalker,cvox.AbstractNodeWalker);cvox.GroupWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getCollectionDescription(a,b)};cvox.GroupWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};cvox.GroupWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("group_strategy")};cvox.GroupWalker.prototype.stopNodeDescent=function(a){return cvox.GroupUtil.isLeafNode(a)};cvox.StructuralLineWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kLine};goog.inherits(cvox.StructuralLineWalker,cvox.AbstractSelectionWalker);cvox.StructuralLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("structural_line")}; +cvox.StructuralLineWalker.prototype.getDescription=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getDescription.call(this,a,b);c[0].text=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index)+c[0].text;return c}; +cvox.StructuralLineWalker.prototype.getBraille=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getBraille.call(this,a,b),d=this.objWalker_.sync(b).absStart().node,e=a.absEnd().node,f=void 0;b.start.equals(b.end)||cvox.DomPredicates.editTextPredicate([d])||(f=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index),f+=b.getText());e=cvox.BrailleUtil.getTemplated(e,d,{name:f});e.setSpan(d,0,e.getLength());c.text=e;c.startIndex=0;c.endIndex=0;return c};cvox.LayoutLineWalker=function(){this.subWalker_=new cvox.StructuralLineWalker};goog.inherits(cvox.LayoutLineWalker,cvox.AbstractWalker);cvox.LayoutLineWalker.prototype.next=function(a){var b=new cvox.CursorSelection(a.end,a.end,a.isReversed()),c=this.subWalker_.sync(b);if(!c)return null;b=this.subWalker_.next(b);if(!b)return null;b.setReversed(a.isReversed());return this.extend_(b).setReversed(!1)}; +cvox.LayoutLineWalker.prototype.sync=function(a){var b=this.subWalker_.sync(a);if(!b)return null;var c=this.extend_(b),b=this.extend_(b.setReversed(!b.isReversed()));return new cvox.CursorSelection(b.end,c.end,a.isReversed())}; +cvox.LayoutLineWalker.prototype.getDescription=function(a,b){var c=[],d=a,e=b.clone().setReversed(!1),f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return[];if(e.start.node==e.end.node)return this.subWalker_.getDescription(a,b);for(;f&&!f.end.equals(e.end);)c.push.apply(c,this.subWalker_.getDescription(d,f)),d=f,f=this.subWalker_.next(f);f&&c.push.apply(c,this.subWalker_.getDescription(d,f));return c}; +cvox.LayoutLineWalker.prototype.getBraille=function(a,b){var c=new cvox.NavBraille({}),d=this.subWalker_.sync(b.clone().setReversed(!1)),e=this.sync(b).setReversed(!1);if(!e||!d)return c;var f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return c;for(;f&&!f.end.equals(e.end);)this.appendBraille_(a,d,f,c),a=f,f=this.subWalker_.next(f);f&&this.appendBraille_(a,d,f,c);return c};cvox.LayoutLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("layout_line")}; +cvox.LayoutLineWalker.prototype.isVisualLineBreak_=function(a,b){if(this.wantsOwnLine_(a.end.node)||this.wantsOwnLine_(b.start.node))return!0;var c=a.getRange().getBoundingClientRect(),d=b.getRange().getBoundingClientRect();0==c.width&&0==c.height&&a.end.node.nodeType==Node.ELEMENT_NODE&&(c=a.end.node.getBoundingClientRect());0==d.width&&0==d.height&&b.start.node.nodeType==Node.ELEMENT_NODE&&(d=b.start.node.getBoundingClientRect());return c.bottom!=d.bottom}; +cvox.LayoutLineWalker.prototype.wantsOwnLine_=function(a){return a instanceof HTMLTextAreaElement||a.parentNode instanceof HTMLTextAreaElement};cvox.LayoutLineWalker.prototype.extend_=function(a){var b=a,c=a;do b=c,c=this.subWalker_.next(b);while(c&&!this.isVisualLineBreak_(b,c));return new cvox.CursorSelection(a.start,b.end,a.isReversed())}; +cvox.LayoutLineWalker.prototype.appendBraille_=function(a,b,c,d){a=this.subWalker_.getBraille(a,c).text;var e=a.getSpanInstanceOf(cvox.BrailleUtil.ValueSelectionSpan);0<d.text.getLength()&&d.text.append(cvox.BrailleUtil.ITEM_SEPARATOR);for(var f=c.start.node;f.parentNode&&cvox.DomUtil.isLeafNode(f.parentNode);)f=f.parentNode;var g=d.text.getLength(),h=g+a.getLength();d.text.append(a.toString());d.text.setSpan(f,g,h);b&&c.absEquals(b)&&(e?(d.startIndex=g+a.getSpanStart(e),d.endIndex=g+a.getSpanEnd(e)): +(d.startIndex=g,d.endIndex=g+1))};cvox.ObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.ObjectWalker,cvox.AbstractNodeWalker);cvox.ObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AbstractNodeWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getDescriptionFromNavigation(a.end.node,b.start.node,!0,cvox.ChromeVox.verbosity)};cvox.ObjectWalker.prototype.getBraille=function(){throw"getBraille is unsupported";}; +cvox.ObjectWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("object_strategy")};cvox.SentenceWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kSentence};goog.inherits(cvox.SentenceWalker,cvox.AbstractSelectionWalker);cvox.SentenceWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("sentence_granularity")};cvox.WordWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kWord};goog.inherits(cvox.WordWalker,cvox.AbstractSelectionWalker);cvox.WordWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("word_granularity")};cvox.NavigationShifter=function(){this.reset_();cvox.AbstractShifter.call(this)};goog.inherits(cvox.NavigationShifter,cvox.AbstractShifter);cvox.NavigationShifter.GRANULARITIES={CHARACTER:0,WORD:1,LINE:2,SENTENCE:3,OBJECT:4,GROUP:5};cvox.NavigationShifter.prototype.storeOn=function(a){a.granularity=this.getGranularity()};cvox.NavigationShifter.prototype.readFrom=function(a){this.setGranularity(a.granularity)}; +cvox.NavigationShifter.prototype.next=function(a){a=this.currentWalker_.next(a);this.currentWalkerIndex_<=cvox.NavigationShifter.GRANULARITIES.LINE&&a&&(cvox.TraverseContent.getInstance().syncToCursorSelection(a.clone().setReversed(!1)),cvox.TraverseContent.getInstance().updateSelection());return a};cvox.NavigationShifter.prototype.sync=function(a){return this.currentWalker_.sync(a)};cvox.NavigationShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("navigation_shifter")}; +cvox.NavigationShifter.prototype.getDescription=function(a,b){return this.currentWalker_.getDescription(a,b)};cvox.NavigationShifter.prototype.getBraille=function(a,b){return this.lineWalker_.getBraille(a,b)};cvox.NavigationShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()}; +cvox.NavigationShifter.prototype.makeMoreGranular=function(){cvox.NavigationShifter.superClass_.makeMoreGranular.call(this);this.currentWalkerIndex_=Math.max(this.currentWalkerIndex_-1,0);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_--;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]}; +cvox.NavigationShifter.prototype.makeLessGranular=function(){cvox.NavigationShifter.superClass_.makeLessGranular.call(this);this.currentWalkerIndex_=Math.min(this.currentWalkerIndex_+1,this.walkers_.length-1);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_++;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]}; +cvox.NavigationShifter.prototype.setGranularity=function(a){this.ensureNotSubnavigating();this.currentWalkerIndex_=a;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.prototype.getGranularity=function(){var a=this.isSubnavigating();this.ensureNotSubnavigating();var b=this.currentWalkerIndex_;a&&this.ensureSubnavigating();return b}; +cvox.NavigationShifter.prototype.hasAction=function(a){return"toggleLineType"==a?!0:cvox.NavigationShifter.superClass_.hasAction.call(this,a)};cvox.NavigationShifter.create=function(){return new cvox.NavigationShifter}; +cvox.NavigationShifter.prototype.reset_=function(){this.groupWalker_=new cvox.GroupWalker;this.objectWalker_=new cvox.ObjectWalker;this.sentenceWalker_=new cvox.SentenceWalker;this.lineWalker_=new cvox.LayoutLineWalker;this.wordWalker_=new cvox.WordWalker;this.characterWalker_=new cvox.CharacterWalker;this.walkers_=[this.characterWalker_,this.wordWalker_,this.lineWalker_,this.sentenceWalker_,this.objectWalker_,this.groupWalker_];this.currentWalkerIndex_=this.walkers_.indexOf(this.groupWalker_);this.currentWalker_= +this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.allowSentence=!1;cvox.NavigationSpeaker=function(){this.stopReading=!1;this.id_=1}; +cvox.NavigationSpeaker.prototype.speakDescriptionArray=function(a,b,c){a=this.reorderAnnotations(a);this.stopReading=!1;this.id_=(this.id_+1)%1E4;var d=this,e=function(b,g,h){var k=a[b];if(k&&!d.stopReading&&d.id_==h){var l=function(){for(var a=0;a<k.earcons.length;a++)cvox.ChromeVox.earcons.playEarcon(k.earcons[a])},m=function(){e(b+1,cvox.AbstractTts.QUEUE_MODE_QUEUE,h)},p=function(){k.personality&&k.personality[cvox.AbstractTts.PAUSE]&&"number"==typeof k.personality[cvox.AbstractTts.PAUSE]?setTimeout(m, +k.personality[cvox.AbstractTts.PAUSE]):m();b==a.length-1&&c&&c()};k.isEmpty()?(l(),p()):(k.speak(g,l,p),cvox.ChromeVox.host.hasTtsCallback()||(l(),p()))}};e(0,b,this.id_);0==a.length&&c&&c()};cvox.NavigationSpeaker.structuredElement=function(a){switch(a){case "table":case "Math":return!0}return!1}; +cvox.NavigationSpeaker.prototype.reorderAnnotations=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];cvox.NavigationSpeaker.structuredElement(d.annotation)&&(b.push(new cvox.NavDescription({text:"",annotation:d.annotation})),d.annotation="");b.push(d)}return b};cvox.NavigationManager=function(){this.addInterframeListener_();this.reset()};cvox.NavigationManager.prototype.storeOn=function(a){a.reversed=this.isReversed();a.keepReading=this.keepReading_;a.findNext=this.predicate_;this.shifter_.storeOn(a)};cvox.NavigationManager.prototype.readFrom=function(a){this.curSel_.setReversed(a.reversed);this.shifter_.readFrom(a);a.keepReading&&this.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH)}; +cvox.NavigationManager.prototype.reset=function(){this.navSpeaker_=new cvox.NavigationSpeaker;this.shifterTypes_=[cvox.NavigationShifter,cvox.TableShifter,cvox.MathShifter];this.shifterStack_=[];this.shifter_=new cvox.NavigationShifter;this.curSel_=document.activeElement!=document.body?cvox.CursorSelection.fromNode(document.activeElement):this.shifter_.begin(this.curSel_,{reversed:!1});this.prevSel_=this.curSel_.clone();this.ignoreIframesNoMatterWhat_=this.exitedShifter_=this.enteredShifter_=this.pageEndAnnounced_= +this.pageEnd_=this.keepReading_=this.recovered_=this.skipped_=!1;this.pageSel_=null;this.predicate_="";this.saveSel_=null;this.activeIndicator&&this.activeIndicator.removeFromDom();this.activeIndicator=new cvox.ActiveIndicator;this.navigationHistory_=new cvox.NavigationHistory;this.focusRecovery_="chrome:"!=window.location.protocol;this.iframeIdMap={};this.nextIframeId=1;document.activeElement!=document.body&&this.sync();cvox.TraverseMath.getInstance()}; +cvox.NavigationManager.prototype.resolve=function(a){if(!this.getFocusRecovery())return!0;var b=this.getCurrentNode();if(!this.navigationHistory_.becomeInvalid(b)||this.hasNext_())return!0;b=this.navigationHistory_.revert(a);if(!b.current)return!0;a=cvox.CursorSelection.fromNode(b.current);b=cvox.CursorSelection.fromNode(b.previous);a=a||cvox.CursorSelection.fromBody();b=b||cvox.CursorSelection.fromBody();a.setReversed(this.isReversed());this.updateSel(a,b);this.recovered_=!0;return!1}; +cvox.NavigationManager.prototype.getFocusRecovery=function(){return this.focusRecovery_};cvox.NavigationManager.prototype.setFocusRecovery=function(a){this.focusRecovery_=a};cvox.NavigationManager.prototype.next_=function(a){return this.tryBoundaries_(this.shifter_.next(this.curSel_),a)?(this.pageSel_&&this.pageSel_.extend(this.curSel_),!0):!1}; +cvox.NavigationManager.prototype.hasNext_=function(){if(0<this.shifterStack_.length)return!0;var a=this.curSel_.clone(),b=!1,c=new cvox.NavigationShifter;c.setGranularity(this.shifter_.getGranularity());c.sync(a);c.next(a)&&(b=!0);return b}; +cvox.NavigationManager.prototype.findNext=function(a,b,c){this.predicate_=b||"";this.resolve();this.shifter_=this.shifterStack_[0]||this.shifter_;this.shifterStack_=[];a=cvox.FindUtil.findNext(this.curSel_,a,c);this.ignoreIframesNoMatterWhat_||this.tryIframe_(a&&a.start.node);a&&this.updateSelToArbitraryNode(a.start.node);this.predicate_="";return a};cvox.NavigationManager.prototype.sync=function(){this.resolve();var a=this.shifter_.sync(this.curSel_);a&&(this.curSel_=a)}; +cvox.NavigationManager.prototype.syncAll=function(a){this.sync();this.setFocus(a);this.updateIndicator()};cvox.NavigationManager.prototype.clearPageSel=function(a){var b=!!this.pageSel_;b&&a&&(a=cvox.ChromeVox.msgs.getMsg("clear_page_selection"),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION));this.pageSel_=null;return b}; +cvox.NavigationManager.prototype.togglePageSel=function(){this.pageSel_=this.pageSel_?null:new cvox.PageSelection(this.curSel_.setReversed(!1));return!!this.pageSel_}; +cvox.NavigationManager.prototype.getDescription=function(){if(this.getCurrentNode().hasAttribute&&this.getCurrentNode().hasAttribute("cvoxnodedesc")){for(var a=cvox.ChromeVoxJSON.parse(this.getCurrentNode().getAttribute("cvoxnodedesc")),b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b}var e=this.pageSel_?this.pageSel_.getDescription(this.shifter_,this.prevSel_,this.curSel_):this.shifter_.getDescription(this.prevSel_, +this.curSel_),a=[];this.skipped_&&(a.push(cvox.AbstractEarcons.PARAGRAPH_BREAK),this.skipped_=!1);this.recovered_&&(a.push(cvox.AbstractEarcons.FONT_CHANGE),this.recovered_=!1);this.pageEnd_&&(a.push(cvox.AbstractEarcons.WRAP),this.pageEnd_=!1);this.enteredShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_ENTER),this.enteredShifter_=!1);this.exitedShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_EXIT),this.exitedShifter_=!1);0<a.length&&0<e.length&&a.forEach(function(a){e[0].pushEarcon(a)});return e}; +cvox.NavigationManager.prototype.getBraille=function(){return cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.ANDROID|cvox.PlatformFilter.CHROMEOS)?this.shifter_.getBraille(this.prevSel_,this.curSel_):new cvox.NavBraille({})}; +cvox.NavigationManager.prototype.performAction=function(a){switch(a){case "enterShifter":case "enterShifterSilently":for(var b=this.shifterTypes_.length-1,c;c=this.shifterTypes_[b];b--)if((c=c.create(this.curSel_))&&c.getName()!=this.shifter_.getName()){this.shifterStack_.push(this.shifter_);this.shifter_=c;this.sync();this.enteredShifter_="enterShifterSilently"!=a;break}else if(c&&this.shifter_.getName()==c.getName())break;break;case "exitShifter":if(0==this.shifterStack_.length)return!1;this.shifter_= +this.shifterStack_.pop();this.sync();this.exitedShifter_=!0;break;case "exitShifterContent":if(0==this.shifterStack_.length)return!1;this.updateSel(this.shifter_.performAction(a,this.curSel_));this.shifter_=this.shifterStack_.pop()||this.shifter_;this.sync();this.exitedShifter_=!0;break;default:return this.shifter_.hasAction(a)?this.updateSel(this.shifter_.performAction(a,this.curSel_)):!1}return!0};cvox.NavigationManager.prototype.getGranularityMsg=function(){return this.shifter_.getGranularityMsg()}; +cvox.NavigationManager.prototype.makeMoreGranular=function(a){this.shifter_.makeMoreGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.makeLessGranular=function(a){this.shifter_.makeLessGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.setGranularity=function(a,b,c){!b&&0<this.shifterStack_.length||(this.shifter_=this.shifterStack_.shift()||this.shifter_,this.shifter_.setGranularity(a),this.persistGranularity_(c))}; +cvox.NavigationManager.prototype.getGranularity=function(){var a=this.shifterStack_[0]||this.shifter_;return a.getGranularity()};cvox.NavigationManager.prototype.ensureSubnavigating=function(){this.shifter_.isSubnavigating()||(this.shifter_.ensureSubnavigating(),this.sync())};cvox.NavigationManager.prototype.ensureNotSubnavigating=function(){this.shifter_.isSubnavigating()&&(this.shifter_.ensureNotSubnavigating(),this.sync())}; +cvox.NavigationManager.prototype.speakDescriptionArray=function(a,b,c,d){d&&a.every(function(a){a.personality||(a.personality=d)});this.navSpeaker_.speakDescriptionArray(a,b,c)};cvox.NavigationManager.prototype.updatePosition=function(a){var b=cvox.ChromeVox.position;b[document.location.href]=cvox.DomUtil.elementToPoint(a);JSON.stringify(b)}; +cvox.NavigationManager.prototype.finishNavCommand=function(a,b,c,d){if(this.pageEnd_&&!this.pageEndAnnounced_)this.pageEndAnnounced_=!0,cvox.ChromeVox.tts.stop(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),cvox.ChromeVox.verbosity===cvox.VERBOSITY_VERBOSE&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),this.isReversed()&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom")),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION));else{if(this.enteredShifter_|| +this.exitedShifter_)a=cvox.ChromeVox.msgs.getMsg("enter_content_say",[this.shifter_.getName()]);var e=cvox.ChromeVox.navigationManager.getDescription();(b=void 0===b?!0:b)&&this.setFocus();this.updateIndicator();b=c||cvox.AbstractTts.QUEUE_MODE_FLUSH;a&&(cvox.ChromeVox.tts.speak(a,b,cvox.AbstractTts.PERSONALITY_ANNOTATION),b=cvox.AbstractTts.QUEUE_MODE_QUEUE);this.speakDescriptionArray(e,b,d||null);this.getBraille().write();this.updatePosition(this.getCurrentNode())}}; +cvox.NavigationManager.prototype.navigate=function(a,b){this.pageEndAnnounced_=!1;if(this.pageEnd_)return this.pageEnd_=!1,this.syncToBeginning(a),!0;if(!this.resolve())return!1;this.ensureNotSubnavigating();void 0!==b&&(b!==this.getGranularity()||0<this.shifterStack_.length)&&(this.setGranularity(b,!0),this.sync());return this.next_(!a)};cvox.NavigationManager.prototype.subnavigate=function(){this.pageEndAnnounced_=!1;this.resolve()&&(this.ensureSubnavigating(),this.next_(!0))}; +cvox.NavigationManager.prototype.skip=function(){if(!this.keepReading_)return!1;cvox.ChromeVox.host.hasTtsCallback()&&(this.skipped_=!0,this.setReversed(!1),this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_FLUSH));return!0};cvox.NavigationManager.prototype.startReading=function(a){this.keepReading_=!0;cvox.ChromeVox.host.hasTtsCallback()?this.startCallbackReading_(a):this.startNonCallbackReading_(a);this.prevStickyState_=cvox.ChromeVox.isStickyOn}; +cvox.NavigationManager.prototype.stopReading=function(a){this.keepReading_=!1;this.navSpeaker_.stopReading=!0;a&&cvox.ChromeVox.tts.stop();void 0!=this.prevStickyState_&&(this.prevStickyState_=void 0)};cvox.NavigationManager.prototype.isReading=function(){return this.keepReading_}; +cvox.NavigationManager.prototype.startCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.finishNavCommand("",!0,a,goog.bind(function(){this.next_(!0)&&this.keepReading_&&this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_QUEUE)},this))}); +cvox.NavigationManager.prototype.startNonCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.keepReading_&&(cvox.ChromeVox.tts.isSpeaking()||(this.finishNavCommand("",!0,a,null),this.next_(!0)||(this.keepReading_=!1)),window.setTimeout(goog.bind(this.startNonCallbackReading_,this),1E3))}); +cvox.NavigationManager.prototype.getFullDescription=function(){return this.pageSel_?this.pageSel_.getFullDescription():[cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getAncestors(this.curSel_.start.node),!0,cvox.ChromeVox.verbosity)]};cvox.NavigationManager.prototype.setFocus=function(a){this.pageSel_||a&&this.curSel_.start.node.constructor==Text||cvox.Focuser.setFocus(this.curSel_.start.node)};cvox.NavigationManager.prototype.getCurrentNode=function(){return this.curSel_.absStart().node}; +cvox.NavigationManager.prototype.addInterframeListener_=function(){var a=this;cvox.Interframe.addListener(function(b){if("enterIframe"==b.command||"exitIframe"==b.command)cvox.ChromeVox.serializer.readFrom(b),a.keepReading_||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){window.focus();if(b.findNext){var c=b.findNext,d=cvox.DomPredicates[c],c=a.findNext(d,c,!0);if(d&&(!c||"IFRAME"==c.start.node.tagName))return}else if("exitIframe"==b.command)d=b.sourceId,d=a.iframeIdMap[d],c=b.reversed, +d&&a.updateSel(cvox.CursorSelection.fromNode(d)),a.setReversed(c),a.sync(),a.navigate();else if(a.syncToBeginning(),!cvox.DomUtil.hasContent(document.body)){a.tryIframe_(null);return}a.finishNavCommand("",!0)})()})};cvox.NavigationManager.prototype.updateIndicator=function(){this.activeIndicator.syncToCursorSelection(this.curSel_)};cvox.NavigationManager.prototype.updateIndicatorIfChanged=function(){this.activeIndicator.updateIndicatorIfChanged()}; +cvox.NavigationManager.prototype.showOrHideIndicator=function(a){a||this.activeIndicator.removeFromDom()};cvox.NavigationManager.prototype.collapseSelection=function(){this.curSel_.collapse()};cvox.NavigationManager.prototype.updateSelToArbitraryNode=function(a,b){a?(this.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0),this.updateSel(cvox.CursorSelection.fromNode(a)),b||this.sync()):this.syncToBeginning()}; +cvox.NavigationManager.prototype.updateSel=function(a,b){a&&(this.prevSel_=b||this.curSel_,this.curSel_=a);var c=this.getCurrentNode();this.navigationHistory_.update(c);return!!a};cvox.NavigationManager.prototype.setReversed=function(a){this.curSel_.setReversed(a)};cvox.NavigationManager.prototype.isReversed=function(){return this.curSel_.isReversed()}; +cvox.NavigationManager.prototype.tryBoundaries_=function(a,b){b=!!b&&!this.ignoreIframesNoMatterWhat_||!1;this.pageEnd_=!1;if(b&&this.tryIframe_(a&&a.start.node))return!0;if(a)return this.updateSel(a),!0;if(0<this.shifterStack_.length)return!0;this.syncToBeginning(!b);this.clearPageSel(!0);this.stopReading(!0);this.pageEnd_=!0;return!1}; +cvox.NavigationManager.prototype.tryIframe_=function(a){if(null==a&&cvox.Interframe.isIframe()){var b={command:"exitIframe",reversed:this.isReversed(),granularity:this.getGranularity()};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToParentWindow(b);return!0}if(null==a||"IFRAME"!=a.tagName||!a.src)return!1;var c=void 0;for(b in this.iframeIdMap)if(this.iframeIdMap[b]==a){c=b;break}void 0==c&&(c=this.nextIframeId,this.nextIframeId++,this.iframeIdMap[c]=a,cvox.Interframe.sendIdToIFrame(c, +a));b={command:"enterIframe",id:c};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToIFrame(b,a);return!0};cvox.NavigationManager.prototype.syncToBeginning=function(a){var b=this.shifter_.begin(this.curSel_,{reversed:this.curSel_.isReversed()});!a&&this.tryIframe_(b&&b.start.node)||this.updateSel(b)};cvox.NavigationManager.prototype.ignoreIframesNoMatterWhat=function(){this.ignoreIframesNoMatterWhat_=!0};cvox.NavigationManager.prototype.saveSel=function(){this.saveSel_=this.curSel_}; +cvox.NavigationManager.prototype.restoreSel=function(){this.curSel_=this.saveSel_||this.curSel_};cvox.NavigationManager.prototype.persistGranularity_=function(a){(a=void 0===a?!1:a)&&this.getGranularity()};cvox.SearchWidget=function(){this.txtNode_=this.containerNode_=null;this.PROMPT_="Search:";this.hasMatch_=this.caseSensitive_=!1;cvox.Widget.call(this)};goog.inherits(cvox.SearchWidget,cvox.Widget);goog.addSingletonGetter(cvox.SearchWidget); +cvox.SearchWidget.prototype.show=function(){cvox.SearchWidget.superClass_.show.call(this);this.active=!0;this.hasMatch_=!1;cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);cvox.ChromeVox.navigationManager.setReversed(!1);this.focusRecovery_=cvox.ChromeVox.navigationManager.getFocusRecovery();cvox.ChromeVox.navigationManager.setFocusRecovery(!1);var a=this.createContainerNode_();this.containerNode_=a;var b=this.createOverlayNode_();a.appendChild(b); +var c=document.createElement("span");c.innerHTML=this.PROMPT_;b.appendChild(c);this.txtNode_=this.createTextAreaNode_();b.appendChild(this.txtNode_);document.body.appendChild(a);this.txtNode_.focus();window.setTimeout(function(){a.style.opacity="1.0"},0)}; +cvox.SearchWidget.prototype.hide=function(a){if(this.isActive()){var b=this.containerNode_;b.style.opacity="0.0";window.setTimeout(function(){document.body.removeChild(b)},1E3);this.txtNode_=null;cvox.SearchWidget.containerNode=null;cvox.ChromeVox.navigationManager.setFocusRecovery(this.focusRecovery_);this.active=!1}cvox.$m("choice_widget_exited").andPause().andMessage(this.getNameMsg()).speakFlush();this.hasMatch_&&a||cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode);cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll, +cvox.ChromeVox.navigationManager))(!0);cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),cvox.AbstractTts.QUEUE_MODE_QUEUE,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=this.textFromCurrentDescription_();cvox.ChromeVox.braille.write(new cvox.NavBraille({text:a,startIndex:0,endIndex:0}));cvox.SearchWidget.superClass_.hide.call(this,!0)};cvox.SearchWidget.prototype.getNameMsg=function(){return["search_widget_intro"]}; +cvox.SearchWidget.prototype.getHelpMsg=function(){return"search_widget_intro_help"}; +cvox.SearchWidget.prototype.onKeyDown=function(a){if(!this.isActive())return!1;var b=this.txtNode_.value;if(8==a.keyCode)0<b.length?(b=b.substring(0,b.length-1),this.txtNode_.value=b,this.beginSearch_(b)):(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode),cvox.ChromeVox.navigationManager.syncAll());else if(40==a.keyCode)this.next_(b,!1);else if(38==a.keyCode)this.next_(b,!0);else if(13==a.keyCode)this.hide(!0);else if(27==a.keyCode)this.hide(!1);else if(a.ctrlKey&&67==a.keyCode)this.toggleCaseSensitivity_(); +else return cvox.SearchWidget.superClass_.onKeyDown.call(this,a);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onKeyPress=function(a){if(!this.isActive())return!1;this.txtNode_.value+=String.fromCharCode(a.charCode);var b=this.txtNode_.value;this.beginSearch_(b);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onNavigate=function(){};cvox.SearchWidget.prototype.getPredicate=function(){return null}; +cvox.SearchWidget.prototype.nextResult=function(a){if(!this.isActive())return null;var b=this.txtNode_.value;return this.next_(b,a)};cvox.SearchWidget.prototype.createContainerNode_=function(){var a=document.createElement("div");a.id="cvox-search";a.style.position="fixed";a.style.top="50%";a.style.left="50%";a.style["-webkit-transition"]="all 0.3s ease-in";a.style.opacity="0.0";a.style["z-index"]="2147483647";a.setAttribute("aria-hidden","true");return a}; +cvox.SearchWidget.prototype.createOverlayNode_=function(){var a=document.createElement("div");a.style.position="relative";a.style.left="-50%";a.style.top="-40px";a.style["line-height"]="1.2em";a.style["font-size"]="20px";a.style.padding="30px";a.style["min-width"]="150px";a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["border-radius"]="10px";return a}; +cvox.SearchWidget.prototype.createTextAreaNode_=function(){var a=document.createElement("textarea");a.setAttribute("aria-hidden","true");a.setAttribute("rows","1");a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["vertical-align"]="middle";a.addEventListener("textInput",this.handleSearchChanged_,!1);return a}; +cvox.SearchWidget.prototype.toggleCaseSensitivity_=function(){this.caseSensitive_?(cvox.SearchWidget.caseSensitive_=!1,cvox.ChromeVox.tts.speak("Ignoring case.",0,null)):(this.caseSensitive_=!0,cvox.ChromeVox.tts.speak("Case sensitive.",0,null))}; +cvox.SearchWidget.prototype.getNextResult_=function(a){var b=cvox.ChromeVox.navigationManager.isReversed();this.caseSensitive_||(a=a.toLowerCase());cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);do{if(this.getPredicate()){var c=this.getPredicate()(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()));if(!c)continue}for(var c=cvox.ChromeVox.navigationManager.getDescription(),d=0;d<c.length;d++){var e=this.caseSensitive_?c[d].text: +c[d].text.toLowerCase(),f=e.indexOf(a);-1!=f&&e.length>a.length&&(c[d].text=cvox.DomUtil.collapseWhitespace(e.substring(0,f))+", "+a+", "+e.substring(f+a.length),c[d].text=cvox.DomUtil.collapseWhitespace(c[d].text));if(-1!=f)return c}cvox.ChromeVox.navigationManager.setReversed(b)}while(cvox.ChromeVox.navigationManager.navigate(!0,cvox.NavigationShifter.GRANULARITIES.OBJECT))};cvox.SearchWidget.prototype.beginSearch_=function(a){var b=this.getNextResult_(a);this.outputSearchResult_(b,a);this.onNavigate()}; +cvox.SearchWidget.prototype.next_=function(a,b){cvox.ChromeVox.navigationManager.setReversed(!!b);var c=!1;this.getPredicate()?(c=cvox.ChromeVox.navigationManager.findNext(this.getPredicate()),cvox.ChromeVox.navigationManager.setReversed(!!b),c||(cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),c=!0)):c=cvox.ChromeVox.navigationManager.navigate(!0);c=c?this.getNextResult_(a):null;this.outputSearchResult_(c,a);this.onNavigate();return c}; +cvox.SearchWidget.prototype.outputSearchResult_=function(a,b){cvox.ChromeVox.tts.stop();a?(this.hasMatch_=!0,cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,cvox.ChromeVox.navigationManager))(!0),cvox.ChromeVox.navigationManager.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("search_help_item"),cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION), +this.outputSearchResultToBraille_(b)):(cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),this.hasMatch_=!1)}; +cvox.SearchWidget.prototype.outputSearchResultToBraille_=function(a){if(cvox.ChromeVox.braille){var b=this.textFromCurrentDescription_(),c=this.caseSensitive_?b:b.toLowerCase();a=this.caseSensitive_?a:a.toLowerCase();c=c.indexOf(a);if(-1==c)console.log("Search string not in result when preparing for Braille.");else{var d=b.length,b=cvox.ChromeVox.msgs.getMsg("mark_as_search_result_brl",[b]),e=b.length,c=c+(e-d);cvox.ChromeVox.braille.write(new cvox.NavBraille({text:b,startIndex:c+a.length,endIndex:c+ +a.length}))}}};cvox.SearchWidget.prototype.textFromCurrentDescription_=function(){for(var a=cvox.ChromeVox.navigationManager.getDescription(),b="",c=0;c<a.length;c++)b+=a[c].text+" ";return b};cvox.SearchWidget.prototype.handleSearchChanged_=function(a){a=a.target.value+a.data;cvox.SearchWidget.prototype.beginSearch_(a)};cvox.OverlayWidget=function(a){cvox.SearchWidget.call(this);this.snippet_=a};goog.inherits(cvox.OverlayWidget,cvox.SearchWidget); +cvox.OverlayWidget.prototype.show=function(){cvox.OverlayWidget.superClass_.show.call(this);var a=document.createElement("DIV");a.innerHTML=this.snippet_;var b=cvox.DomUtil.elementToPoint(cvox.ChromeVox.navigationManager.getCurrentNode());a.style.position="absolute";a.style.left=b.x;a.style.top=b.y;document.body.appendChild(a);cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a);this.host_=a};cvox.OverlayWidget.prototype.hide=function(){this.host_.remove();cvox.OverlayWidget.superClass_.hide.call(this)}; +cvox.OverlayWidget.prototype.onKeyDown=function(a){cvox.OverlayWidget.superClass_.onKeyDown.call(this,a);if(13==a.keyCode||27==a.keyCode)return!0;a=cvox.ChromeVox.navigationManager.isReversed();cvox.DomUtil.isDescendantOfNode(cvox.ChromeVox.navigationManager.getCurrentNode(),this.host_)||(a?cvox.ChromeVox.navigationManager.syncToBeginning():cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.host_),this.onNavigate(),cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(), +0,null))};cvox.KeyboardHelpWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");var a=cvox.ChromeVoxKbHandler.handlerKeyMap;a.bindings().forEach(goog.bind(function(a){var c=a.command;a=a.sequence;var d=c;try{var e=cvox.CommandStore.messageForCommand(c);if(!e)return;d=cvox.ChromeVox.msgs.getMsg(e)}catch(f){}e=document.createElement("p");e.id=c;e.setAttribute("role","menuitem");e.textContent=d+" - "+cvox.KeyUtil.keySequenceToString(a,!0);this.container_.appendChild(e)}, +this))};goog.inherits(cvox.KeyboardHelpWidget,cvox.OverlayWidget);goog.addSingletonGetter(cvox.KeyboardHelpWidget);cvox.KeyboardHelpWidget.prototype.show=function(){cvox.KeyboardHelpWidget.superClass_.show.call(this);this.host_.appendChild(this.container_)};cvox.KeyboardHelpWidget.prototype.getNameMsg=function(){return["keyboard_help_intro"]}; +cvox.KeyboardHelpWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;this.hide();cvox.ChromeVoxEventSuspender.withSuspendedEvents(cvox.ChromeVoxUserCommands.commands[b])();a.preventDefault();a.stopPropagation();return!0}return cvox.KeyboardHelpWidget.superClass_.onKeyDown.call(this,a)};goog.object={};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){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;c<d.length&&(a=a[d[c]],goog.isDef(a));c++);return a};goog.object.containsKey=function(a,b){return 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(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 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.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(a.clone)return a.clone();var b="array"==b?[]:{},c;for(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)};cvox.UserEventDetail=function(a){this.command=this.category="";-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)&&(this.command=a.command,this.category=cvox.UserEventDetail.Category.JUMP);this.customCommand="";a.customCommand&&(this.customCommand=a.customCommand,this.category=cvox.UserEventDetail.Category.CUSTOM);this.status=cvox.UserEventDetail.Status.PENDING;switch(a.status){case cvox.UserEventDetail.Status.SUCCESS:this.status=cvox.UserEventDetail.Status.SUCCESS;break;case cvox.UserEventDetail.Status.FAILURE:this.status= +cvox.UserEventDetail.Status.FAILURE}this.resultNode=null;a.resultNode&&cvox.DomUtil.isAttachedToDocument(a.resultNode)&&(this.resultNode=a.resultNode)};cvox.UserEventDetail.Category={JUMP:"ATJumpEvent",CUSTOM:"ATCustomEvent"};cvox.UserEventDetail.Status={PENDING:"PENDING",SUCCESS:"SUCCESS",FAILURE:"FAILURE"};cvox.UserEventDetail.JUMP_COMMANDS="nextCheckbox previousCheckbox nextRadio previousRadio nextSlider previousSlider nextGraphic previousGraphic nextButton previousButton nextComboBox previousComboBox nextEditText previousEditText nextHeading previousHeading nextHeading1 previousHeading1 nextHeading2 previousHeading2 nextHeading3 previousHeading3 nextHeading4 previousHeading4 nextHeading5 previousHeading5 nextHeading6 previousHeading6 nextLink previousLink nextMath previousMath nextTable previousTable nextList previousList nextListItem previousListItem nextFormField previousFormField nextLandmark previousLandmark nextSection previousSection nextControl previousControl".split(" "); +cvox.UserEventDetail.prototype.createEventObject=function(){var a=document.createEvent("CustomEvent");a.initCustomEvent(this.category,!0,!0,this);return a};var extractMenuList_=function(a){for(;a!==document;){var b=a.getAttribute("contextMenuActions");if(b)return JSON.parse(b);a=a.parentNode}return null},getCurrentElement_=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a.nodeType!==Node.ELEMENT_NODE;)a=a.parentNode;return a}; +cvox.ContextMenuWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");this.triggerElement_=getCurrentElement_();(this.menuList=extractMenuList_(this.triggerElement_))?this.menuList.forEach(goog.bind(function(a){if(a.desc||a.cmd){var b=a.desc;a=a.cmd;var c=document.createElement("p");c.id=a;c.textContent=b;c.setAttribute("role","menuitem");this.container_.appendChild(c)}},this)):console.log("No context menu found.")};goog.inherits(cvox.ContextMenuWidget,cvox.OverlayWidget); +cvox.ContextMenuWidget.prototype.show=function(){this.menuList&&(cvox.ContextMenuWidget.superClass_.show.call(this),this.host_.appendChild(this.container_))};cvox.ContextMenuWidget.prototype.getNameMsg=function(){return["context_menu_intro"]}; +cvox.ContextMenuWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode(),b=b.parentNode.id,b=new cvox.UserEventDetail({customCommand:b}),b=b.createEventObject();this.triggerElement_.dispatchEvent(b);this.hide();a.preventDefault();a.stopPropagation();return!0}return cvox.ContextMenuWidget.superClass_.onKeyDown.call(this,a)};cvox.NodeSearchWidget=function(a,b){this.typeMsg_=a;this.predicate_=b;cvox.SearchWidget.call(this)};goog.inherits(cvox.NodeSearchWidget,cvox.SearchWidget);cvox.NodeSearchWidget.prototype.getNameMsg=function(){return["choice_widget_name",[cvox.ChromeVox.msgs.getMsg(this.typeMsg_)]]};cvox.NodeSearchWidget.prototype.getHelpMsg=function(){return"choice_widget_help"};cvox.NodeSearchWidget.prototype.getPredicate=function(){return this.predicate_}; +cvox.NodeSearchWidget.create=function(a,b){return new cvox.NodeSearchWidget(a,b)};cvox.SelectWidget=function(a){cvox.OverlayWidget.call(this,"");this.selectNode_=a};goog.inherits(cvox.SelectWidget,cvox.OverlayWidget); +cvox.SelectWidget.prototype.show=function(){cvox.SelectWidget.superClass_.show.call(this);var a=document.createElement("div");a.setAttribute("role","menu");for(var b=0,c=null;c=this.selectNode_.options[b];b++){var d=document.createElement("p");d.innerHTML=c.innerHTML;d.id=b;d.setAttribute("role","menuitem");a.appendChild(d)}this.host_.appendChild(a);b=this.selectNode_.selectedIndex;"number"==typeof b&&cvox.ChromeVox.syncToNode(a.children[b],!0)}; +cvox.SelectWidget.prototype.hide=function(){var a=document.createEvent("Event");a.initEvent("change",!1,!1);this.selectNode_.dispatchEvent(a);cvox.SelectWidget.superClass_.hide.call(this,!0)};cvox.SelectWidget.prototype.onNavigate=function(){var a=this;cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;a.selectNode_.selectedIndex=b})()};cvox.SelectWidget.prototype.getNameMsg=function(){return["aria_role_menu"]};cvox.FocusUtil=function(){};cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE={hidden:!1,text:!0,search:!0,tel:!0,url:!0,email:!0,password:!0,datetime:!1,date:!1,month:!1,week:!1,time:!1,"datetime-local":!1,number:!1,range:!1,color:!1,checkbox:!1,radio:!1,file:!1,submit:!1,image:!1,reset:!1,button:!1}; +cvox.FocusUtil.isFocusInTextInputField=function(){var a=document.activeElement;return a?a.isContentEditable||"textbox"==a.getAttribute("role")?!0:"true"==a.getAttribute("readOnly")?!1:"TEXTAREA"===a.tagName||"SELECT"===a.tagName?!0:"INPUT"===a.tagName?a.hasAttribute("type")?(a=a.getAttribute("type").toLowerCase(),cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE[a]):!0:!1:!1};cvox.SpokenListBuilder=function(){this.list_=[]};cvox.SpokenListBuilder.prototype.flush=function(a){this.list_.push([a,cvox.AbstractTts.QUEUE_MODE_FLUSH]);return this};cvox.SpokenListBuilder.prototype.build=function(){return this.list_};cvox.RunnerInterface=function(){};cvox.RunnerInterface.prototype.setFocus=function(){};cvox.AbstractTestCase=function(){};cvox.TestTts=function(){cvox.AbstractTts.call(this);this.utterances_=[]};goog.inherits(cvox.TestTts,cvox.AbstractTts);cvox.TestTts.prototype.sentinelText_="@@@STOP@@@";cvox.TestTts.prototype.speak=function(a,b,c){this.utterances_.push({text:a,queueMode:b});c&&void 0!=c.endCallback&&(a=this.utterances_.length,this.utterances_[a-1].text!=this.sentinelText_&&c.endCallback())};cvox.HostFactory.ttsConstructor=cvox.TestTts;cvox.AutoRunner=function(){new cvox.TestTts};cvox.AutoRunner.TestSummary=function(a,b,c,d){this.tag=a;this.status=c;this.scope=d};cvox.AutoRunner.PASS="pass";cvox.AutoRunner.FAIL="fail";cvox.AutoRunner.prototype.setFocus=function(a){document.getElementById(a).focus();return this};cvox.ChromeVoxUserCommands={};cvox.ChromeVoxUserCommands.init_=function(){if(!cvox.ChromeVoxUserCommands.commands){cvox.ChromeVoxUserCommands.commands={};for(var a in cvox.CommandStore.CMD_WHITELIST)cvox.ChromeVoxUserCommands.commands[a]=cvox.ChromeVoxUserCommands.createCommand_(a)}};cvox.ChromeVoxUserCommands.wasMouseClicked=!1;cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage=!0; +cvox.ChromeVoxUserCommands.handleTabAction_=function(){cvox.ChromeVox.tts.stop();if(!cvox.ChromeVox.navigationManager.resolve(cvox.DomUtil.isFocusable))return cvox.ChromeVox.navigationManager.setFocus(),!1;var a=cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_();if(a)return!0;var b=a=null,b=window.getSelection();cvox.ChromeVoxUserCommands.wasMouseClicked?cvox.ChromeVoxUserCommands.wasMouseClicked=!1:b=null;null==b||null==b.anchorNode||null==b.focusNode?(a=cvox.ChromeVox.navigationManager.getCurrentNode(), +b=cvox.ChromeVox.navigationManager.getCurrentNode()):(a=b.anchorNode,b=b.focusNode);if(null==a||null==b)return!0;if(cvox.DomUtil.isFocusable(a))return a.focus(),!0;if(cvox.DomUtil.isFocusable(b))return b.focus(),!0;if(cvox.DomUtil.isFocusable(a.parentNode))return a.parentNode.focus(),!0;if(cvox.DomUtil.isFocusable(b.parentNode))return b.parentNode.focus(),!0;b=cvox.ChromeVoxUserCommands.createTabDummySpan_();a.parentNode.insertBefore(b,a);b.focus();return!0}; +cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_=function(){var a="A";return document.activeElement.tagName==a||cvox.DomUtil.isControl(document.activeElement)?!0:!1};cvox.ChromeVoxUserCommands.removeTabDummySpan=function(){var a=document.getElementById("ChromeVoxTabDummySpan");a&&document.activeElement!=a&&a.parentNode.removeChild(a)};cvox.ChromeVoxUserCommands.createTabDummySpan_=function(){var a=document.createElement("span");a.id="ChromeVoxTabDummySpan";a.tabIndex=-1;return a}; +cvox.ChromeVoxUserCommands.createCommand_=function(a){return goog.bind(function(b){b=cvox.ChromeVoxUserCommands.lookupCommand_(a,b);return cvox.ChromeVoxUserCommands.dispatchCommand_(b)},cvox.ChromeVoxUserCommands)}; +cvox.ChromeVoxUserCommands.dispatchCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField())return!0;if(cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage&&-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)){a=new cvox.UserEventDetail({command:a.command});a=a.createEventObject();var b=cvox.ChromeVox.navigationManager.getCurrentNode();b||(b=document.body);b.dispatchEvent(a);return!1}return cvox.ChromeVoxUserCommands.doCommand_(a)}; +cvox.ChromeVoxUserCommands.doCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField()||a.disallowOOBE&&document.URL.match(/^chrome:\/\/oobe/i))return!0;var b=a.command;a.allowEvents||cvox.ChromeVoxEventSuspender.enterSuspendEvents();a.disallowContinuation&&cvox.ChromeVox.navigationManager.stopReading(!0);a.forward?cvox.ChromeVox.navigationManager.setReversed(!1):a.backward&&cvox.ChromeVox.navigationManager.setReversed(!0); +a.findNext&&(b="find",a.announce=!0);var c="",d="",e=!1;switch(b){case "handleTab":case "handleTabPrev":e=cvox.ChromeVoxUserCommands.handleTabAction_();break;case "forward":case "backward":e=!cvox.ChromeVox.navigationManager.navigate();break;case "right":case "left":cvox.ChromeVox.navigationManager.subnavigate();break;case "find":if(!a.findNext)throw"Invalid find command.";var f=cvox.CommandStore.NODE_INFO_MAP[a.findNext],g=f.predicate,h=cvox.DomPredicates[g],k="",l="";a.forward?(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"), +k=cvox.ChromeVox.msgs.getMsg(f.forwardError)):a.backward&&(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom"),k=cvox.ChromeVox.msgs.getMsg(f.backwardError));var f=null,m=a.status||cvox.UserEventDetail.Status.PENDING,p=a.resultNode||null;switch(m){case cvox.UserEventDetail.Status.SUCCESS:p&&cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(p,!0);break;case cvox.UserEventDetail.Status.FAILURE:d=k;break;default:f=cvox.ChromeVox.navigationManager.findNext(h,g),f||(cvox.ChromeVox.navigationManager.saveSel(), +d=l,cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),f=cvox.ChromeVox.navigationManager.findNext(h,g,!0),f||(d=k,cvox.ChromeVox.navigationManager.restoreSel()))}f&&"IFRAME"==f.start.node.tagName&&(a.announce=!1);break;case "previousGranularity":cvox.ChromeVox.navigationManager.makeLessGranular(!0);d=cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "nextGranularity":cvox.ChromeVox.navigationManager.makeMoreGranular(!0);d= +cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "previousCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "nextCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "previousWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);break;case "nextWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD); +break;case "previousSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "nextSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "previousLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "nextLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "previousObject":cvox.ChromeVox.navigationManager.navigate(!1, +cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "nextObject":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "previousGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "nextGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "previousRow":case "previousCol":b="previousRow"==b?"nextRow":"nextCol";case "nextRow":case "nextCol":cvox.ChromeVox.navigationManager.performAction("enterShifterSilently"); +cvox.ChromeVox.navigationManager.performAction(b);break;case "moveToStartOfLine":case "moveToEndOfLine":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.LINE);cvox.ChromeVox.navigationManager.sync();cvox.ChromeVox.navigationManager.collapseSelection();break;case "readFromHere":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!0);cvox.ChromeVox.navigationManager.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH);break;case "cycleTypingEcho":break; +case "jumpToTop":case cvox.BrailleKeyCommand.TOP:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "jumpToBottom":case cvox.BrailleKeyCommand.BOTTOM:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "stopSpeech":cvox.ChromeVox.navigationManager.stopReading(!0);break;case "toggleKeyboardHelp":cvox.KeyboardHelpWidget.getInstance().toggle();break;case "help":cvox.ChromeVox.tts.stop();break;case "contextMenu":g=cvox.ChromeVox.navigationManager.getCurrentNode();"SELECT"!=g.tagName|| +g.multiple?(g=new cvox.ContextMenuWidget,g.toggle()):(new cvox.SelectWidget(g)).show();break;case "showBookmarkManager":break;case "showOptionsPage":cvox.ChromeVox.tts.stop();break;case "showKbExplorerPage":cvox.ChromeVox.tts.stop();break;case "readLinkURL":g=document.activeElement;h=window.getSelection().anchorNode;k="";"A"==g.tagName?k=cvox.DomUtil.getLinkURL(g):h&&(k=cvox.DomUtil.getLinkURL(h.parentNode));""!=k?cvox.ChromeVox.tts.speak(k):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_url_found")); +break;case "readCurrentTitle":cvox.ChromeVox.tts.speak(document.title);break;case "readCurrentURL":cvox.ChromeVox.tts.speak(document.URL);break;case "performDefaultAction":cvox.DomPredicates.linkPredicate([document.activeElement])&&(a.announce=!0,cvox.DomUtil.isInternalLink(document.activeElement)&&(cvox.DomUtil.syncInternalLink(document.activeElement),cvox.ChromeVox.navigationManager.sync()));break;case "forceClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode(); +cvox.DomUtil.clickElem(g,!1,!1);break;case "forceDoubleClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_double_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.clickElem(g,!1,!1,!0);break;case "toggleChromeVox":break;case "fullyDescribe":g=cvox.ChromeVox.navigationManager.getFullDescription();cvox.ChromeVox.navigationManager.speakDescriptionArray(g,cvox.AbstractTts.QUEUE_MODE_FLUSH,null);break;case "speakTimeAndDate":g=new Date;cvox.ChromeVox.tts.speak(g.toLocaleTimeString()+ +", "+g.toLocaleDateString());break;case "toggleSelection":d=cvox.ChromeVox.navigationManager.togglePageSel();d=cvox.ChromeVox.msgs.getMsg(d?"begin_selection":"end_selection");break;case "startHistoryRecording":cvox.History.getInstance().startRecording();break;case "stopHistoryRecording":cvox.History.getInstance().stopRecording();break;case "enableConsoleTts":cvox.ConsoleTts.getInstance().setEnabled(!0);break;case "goToFirstCell":case "goToLastCell":case "goToRowFirstCell":case "goToRowLastCell":case "goToColFirstCell":case "goToColLastCell":case "announceHeaders":case "speakTableLocation":case "exitShifterContent":cvox.DomPredicates.tablePredicate(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()))&& +cvox.ChromeVox.navigationManager.performAction(b)||(c="not_inside_table");break;case "enterShifter":case "exitShifter":cvox.ChromeVox.navigationManager.performAction(b);break;case "decreaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!1);break;case "increaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!0);break;case "decreaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,!1);break;case "increaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH, +!0);break;case "decreaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!1);break;case "increaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!0);break;case "cyclePunctuationEcho":break;case "toggleStickyMode":break;case "toggleKeyPrefix":cvox.ChromeVox.keyPrefixOn=!cvox.ChromeVox.keyPrefixOn;break;case "toggleSearchWidget":cvox.SearchWidget.getInstance().toggle();break;case "toggleEarcons":d=cvox.ChromeVox.earcons.toggle()?cvox.ChromeVox.msgs.getMsg("earcons_on"): +cvox.ChromeVox.msgs.getMsg("earcons_off");break;case "showHeadingsList":case "showLinksList":case "showFormsList":case "showTablesList":case "showLandmarksList":if(!a.nodeList)break;g=cvox.CommandStore.NODE_INFO_MAP[a.nodeList];cvox.NodeSearchWidget.create(g.typeMsg,cvox.DomPredicates[g.predicate]).show();break;case "openLongDesc":g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.hasLongDesc(g)||cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_long_desc"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION);break;case "pauseAllMedia":k=document.getElementsByTagName("VIDEO");for(g=0;h=k[g];g++)h.pause();k=document.getElementsByTagName("AUDIO");for(g=0;h=k[g];g++)h.pause();break;case "toggleSemantics":cvox.TraverseMath.toggleSemantic()?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_on")):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_off"));break;case cvox.BrailleKeyCommand.ROUTING:g=cvox.ChromeVox.navigationManager.getBraille(); +g=g.text.getSpans(a.displayPosition||0);g=g.filter(function(a){return a instanceof Node})[0];cvox.DomUtil.clickElem(g||cvox.ChromeVox.navigationManager.getCurrentNode(),!1,!0);break;case cvox.BrailleKeyCommand.PAN_LEFT:case cvox.BrailleKeyCommand.LINE_UP:case cvox.BrailleKeyCommand.PAN_RIGHT:case cvox.BrailleKeyCommand.LINE_DOWN:cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "debug":break;case "nop":break;default:throw"Command behavior not defined: "+ +b;}""!=c?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(c),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION):cvox.ChromeVox.navigationManager.isReading()?a.disallowContinuation?cvox.ChromeVox.navigationManager.stopReading(!0):"readFromHere"!=b&&cvox.ChromeVox.navigationManager.skip():a.announce&&cvox.ChromeVox.navigationManager.finishNavCommand(d);a.allowEvents||cvox.ChromeVoxEventSuspender.exitSuspendEvents();return!!a.doDefault||e}; +cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent=function(a){a=new cvox.UserEventDetail(a.detail);a.command&&cvox.ChromeVoxUserCommands.doCommand_(cvox.ChromeVoxUserCommands.lookupCommand_(a.command,a))};cvox.ChromeVoxUserCommands.lookupCommand_=function(a,b){var c=cvox.CommandStore.CMD_WHITELIST[a];if(!c)throw"Invalid command: "+a;c=goog.object.clone(c);c.command=a;b&&goog.object.extend(c,b);return c};cvox.ChromeVoxUserCommands.init_();cvox.ChromeVoxKbHandler={};cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable=function(a){window.JSON&&(cvox.ChromeVoxKbHandler.handlerKeyMap=cvox.KeyMap.fromJSON(a))};cvox.ChromeVoxKbHandler.sortKeyToFunctionsTable_=function(a){function b(a,b){return a[0].length<b[0].length?-1:b[0].length<a[0].length?1:a[0].localeCompare(b[0])}var c=[],d;for(d in a)c.push([d,a[d]]);c.sort(b);return c}; +cvox.ChromeVoxKbHandler.basicKeyDownActionsListener=function(a){var b=cvox.KeyUtil.keyEventToKeySequence(a);a=void 0!=cvox.ChromeVoxKbHandler.handlerKeyMap?cvox.ChromeVoxKbHandler.handlerKeyMap.commandForKey(b):null;if(!a)return!cvox.KeyUtil.sequencing;if(!cvox.ChromeVox.isActive&&"toggleChromeVox"!=a)return!0;var c=!0,d=cvox.ChromeVoxUserCommands.commands[a];d?(b=cvox.History.getInstance(),b.enterUserCommand(a),c=d(),b.exitUserCommand(a)):b.cvoxModifier&&(c=!1);cvox.ChromeVox.entireDocumentIsHidden&& +(c=!0);return c};cvox.LiveRegions=function(){};cvox.LiveRegions.pageLoadTime=null;cvox.LiveRegions.INITIAL_SILENCE_MS=2E3;cvox.LiveRegions.lastAnnouncedMap={};cvox.LiveRegions.MAX_DISCARD_DUPS_MS=2E3;cvox.LiveRegions.lastAnnouncedTime=null;cvox.LiveRegions.nodesAlreadyHandled=[]; +cvox.LiveRegions.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.pageLoadTime=a;if(c||!document.hasFocus())return!1;var d=!1;a=cvox.AriaUtil.getLiveRegions(document.body);for(c=0;c<a.length;c++)cvox.LiveRegions.handleOneChangedNode(a[c],a[c],!1,!1,function(a,c){a||b!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);var g=new cvox.NavigationSpeaker;g.speakDescriptionArray(c,b,null);d=!0});cvox.Interframe.addListener(function(a){if("speakLiveRegion"== +a.command)for(var b=document.getElementsByTagName("iframe"),c=0,d;d=b[c];c++)if(d.src==a.src){if(!cvox.DomUtil.isVisible(d))break;d=JSON.parse(a.content);for(var k=[],l=0,m;m=d[l];l++)k.push(new cvox.NavDescription(m));(new cvox.NavigationSpeaker).speakDescriptionArray(k,a.queueMode,null)}});return d}; +cvox.LiveRegions.processMutations=function(a,b){cvox.LiveRegions.nodesAlreadyHandled=[];a.forEach(function(a){if(!a.target.hasAttribute||!a.target.hasAttribute("cvoxIgnore")){if(a.addedNodes)for(var d=0;d<a.addedNodes.length;d++)a.addedNodes[d].hasAttribute&&a.addedNodes[d].hasAttribute("cvoxIgnore")||cvox.LiveRegions.handleOneChangedNode(a.addedNodes[d],a.target,!1,!0,b);if(a.removedNodes)for(d=0;d<a.removedNodes.length;d++)a.removedNodes[d].hasAttribute&&a.removedNodes[d].hasAttribute("cvoxIgnore")|| +cvox.LiveRegions.handleOneChangedNode(a.removedNodes[d],a.target,!0,!1,b);"characterData"==a.type&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!1,b);if("class"==a.attributeName||"style"==a.attributeName||"hidden"==a.attributeName){var e=a.attributeName,d=a.target,f=!cvox.DomUtil.isVisible(d),g=document.createElement("div");g.setAttribute("cvoxIgnore","1");g.setAttribute("class",d.getAttribute("class"));g.setAttribute("style",d.getAttribute("style"));g.setAttribute("hidden",d.getAttribute("hidden")); +g.setAttribute(e,a.oldValue);e=!0;d.parentElement?(d.parentElement.appendChild(g),e=!cvox.DomUtil.isVisible(g),d.parentElement.removeChild(g)):e=!cvox.DomUtil.isVisible(g);!0===e&&!1===f?cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!0,b):!1===e&&!0===f&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!0,!1,b)}}});cvox.LiveRegions.nodesAlreadyHandled.length=0}; +cvox.LiveRegions.handleOneChangedNode=function(a,b,c,d,e){var f=c?b:a;f instanceof Element||(f=f.parentElement);for(;f&&!cvox.AriaUtil.getAriaLive(f);)f=f.parentElement;if(!f){if(d&&a!=document.body)for(a=cvox.AriaUtil.getLiveRegions(a),d=0;d<a.length;d++)cvox.LiveRegions.handleOneChangedNode(a[d],b,c,!1,e)}else if(!(0<=cvox.LiveRegions.nodesAlreadyHandled.indexOf(a)||(cvox.LiveRegions.nodesAlreadyHandled.push(a),cvox.AriaUtil.getAriaBusy(f)))){if(c){if(!cvox.AriaUtil.getAriaRelevant(f,"removals"))return}else if(!cvox.AriaUtil.getAriaRelevant(f, +"additions"))return;cvox.LiveRegions.announceChange(a,f,c,e)}}; +cvox.LiveRegions.announceChange=function(a,b,c,d){var e=new Date-cvox.LiveRegions.pageLoadTime;if(!("alert"!=cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS)&&cvox.DomUtil.isVisible(b)){if(a!=b)for(var f=a.parentElement;f;){(cvox.AriaUtil.getAriaAtomic(f)||cvox.AriaUtil.isLeafElement(f)||cvox.AriaUtil.isControlWidget(f))&&!cvox.AriaUtil.isCompositeControl(f)&&(a=f);if(f==b)break;f=f.parentElement}a=cvox.LiveRegions.getNavDescriptionsRecursive(a);if(0!=a.length){c&&(a=[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"), +text:""})].concat(a));if("alert"==cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS){c="";for(e=0;e<a.length;e++)c+=a[e].text,c+=a[e].userValue;if(""==cvox.DomUtil.collapseWhitespace(c))return}c=new Date;for(var g in cvox.LiveRegions.lastAnnouncedMap)c-cvox.LiveRegions.lastAnnouncedMap[g]>cvox.LiveRegions.MAX_DISCARD_DUPS_MS&&delete cvox.LiveRegions.lastAnnouncedMap[g];g=a.reduce(function(a,b){return a+"|"+b.text},"");cvox.LiveRegions.lastAnnouncedMap[g]||(cvox.LiveRegions.lastAnnouncedMap[g]= +c,b="assertive"==cvox.AriaUtil.getAriaLive(b),cvox.Interframe.isIframe()&&!document.hasFocus()?cvox.Interframe.sendMessageToParentWindow({command:"speakLiveRegion",content:JSON.stringify(a),queueMode:b?0:1,src:window.location.href}):d(b,a))}}}; +cvox.LiveRegions.getNavDescriptionsRecursive=function(a){return cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)?(a=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity),a.isEmpty()?[]:[a]):cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a)};cvox.LiveRegionsDeprecated=function(){};cvox.LiveRegionsDeprecated.trackedRegions=[];cvox.LiveRegionsDeprecated.previousRegionValue=[];cvox.LiveRegionsDeprecated.pageLoadTime=null;cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS=2E3; +cvox.LiveRegionsDeprecated.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegionsDeprecated.pageLoadTime=a;a=!1;for(var d=cvox.AriaUtil.getLiveRegions(document.body),e=0;e<d.length;e++)cvox.LiveRegionsDeprecated.updateLiveRegion(d[e],b,c)&&(a=!0,b=cvox.AbstractTts.QUEUE_MODE_QUEUE);return a}; +cvox.LiveRegionsDeprecated.updateLiveRegion=function(a,b,c){if(cvox.AriaUtil.getAriaBusy(a)||!cvox.DomUtil.isVisible(a))return!1;var d=cvox.LiveRegionsDeprecated.trackedRegions.indexOf(a),e;0<=d?e=cvox.LiveRegionsDeprecated.previousRegionValue[d]:(d=cvox.LiveRegionsDeprecated.trackedRegions.length,e=[],cvox.LiveRegionsDeprecated.trackedRegions.push(a),cvox.LiveRegionsDeprecated.previousRegionValue.push([]));var f=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(a),g=new Date-cvox.LiveRegionsDeprecated.pageLoadTime; +if("alert"!=cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS)return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1;if("alert"==cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS){for(var h="",g=0;g<f.length;g++)h+=f[g].text,h+=f[g].userValue;if(""==cvox.DomUtil.collapseWhitespace(h))return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1}for(var k={},g=0;g<e.length;g++)k[e[g].toString()]=!0;for(var l={},g=0;g<f.length;g++)l[f[g].toString()]= +!0;h=[];if(cvox.AriaUtil.getAriaRelevant(a,"additions"))for(g=0;g<f.length;g++)k[f[g].toString()]||h.push(f[g]);k=[];if(cvox.AriaUtil.getAriaRelevant(a,"removals"))for(g=0;g<e.length;g++)l[e[g].toString()]||k.push(e[g]);e=[];e=0==h.length&&0<k.length?[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),text:""})].concat(k):h;cvox.LiveRegionsDeprecated.previousRegionValue[d]=f;if(c||0==e.length)return!1;a=cvox.AriaUtil.getAriaLive(a);"polite"==a&&(b=cvox.AbstractTts.QUEUE_MODE_QUEUE); +for(g=0;g<e.length;g++)e[g].speak(b),b=cvox.AbstractTts.QUEUE_MODE_QUEUE;return!0}; +cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue=function(a){if(cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)){var b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity);return b.isEmpty()?[]:[b]}var c=[],b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!1,cvox.ChromeVox.verbosity);b.isEmpty()||c.push(b);for(b=0;b<a.childNodes.length;b++){var d=a.childNodes[b];cvox.DomUtil.isVisible(d,{checkAncestors:!1})&&!cvox.AriaUtil.isHidden(d)&&(d=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(d), +c=c.concat(d))}return c};cvox.ChromeVoxEventWatcherUtil={};cvox.ChromeVoxEventWatcher=function(){};cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_=50;cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_=10;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_=1E3;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_=3;cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_=5;cvox.ChromeVoxEventWatcher.shouldEchoKeys=!0;cvox.ChromeVoxEventWatcher.processing_=!1; +cvox.ChromeVoxEventWatcher.init=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=null;cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=null;cvox.ChromeVoxEventWatcher.eventToEat=null;cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;cvox.ChromeVoxEventWatcher.lastKeypressTime=0;cvox.ChromeVoxEventWatcher.listeners_= +[];cvox.ChromeVoxEventWatcher.mutationObserver_=null;cvox.ChromeVoxEventWatcher.focusFollowsMouse=!1;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=500;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.lastEventTime=0;cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.readyCallbacks_=[];cvox.ChromeVox.searchKeyHeld=!1;cvox.ChromeVoxEventWatcher.textMutationObserver_=null;cvox.ChromeVoxEventWatcher.addEventListeners_(a); +cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=0;cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=0};cvox.ChromeVoxEventWatcher.storeOn=function(a){a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld};cvox.ChromeVoxEventWatcher.readFrom=function(a){cvox.ChromeVox.searchKeyHeld=a.searchKeyHeld}; +cvox.ChromeVoxEventWatcher.addEvent=function(a){if(!cvox.ChromeVox.isActive||document.webkitHidden)return!1;cvox.ChromeVoxEventWatcher.events_.push(a);cvox.ChromeVoxEventWatcher.lastEventTime=(new Date).getTime();-1==cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime&&(cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=(new Date).getTime());cvox.ChromeVoxEventWatcher.queueProcessingScheduled_||(cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!0,window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_, +cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_))};cvox.ChromeVoxEventWatcher.addReadyCallback=function(a){cvox.ChromeVoxEventWatcher.readyCallbacks_.push(a);cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()};cvox.ChromeVoxEventWatcher.hasPendingEvents_=function(){return-1!=cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime||cvox.ChromeVoxEventWatcher.queueProcessingScheduled_};cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1; +cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_=function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_||(cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!0,window.setTimeout(function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;!cvox.ChromeVoxEventWatcher.hasPendingEvents_()&&!cvox.ChromeVoxEventWatcher.queueProcessingScheduled_&&0<cvox.ChromeVoxEventWatcher.readyCallbacks_.length&&(cvox.ChromeVoxEventWatcher.readyCallbacks_.shift()(),cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_())}, +5))}; +cvox.ChromeVoxEventWatcher.addEventListeners_=function(a){cvox.ChromeVoxEventWatcher.addEventListener_(a,"keydown",cvox.ChromeVoxEventWatcher.keyDownEventWatcher,!0);if(cvox.ChromeVox.isActive&&!cvox.ChromeVox.entireDocumentIsHidden)if(cvox.ChromeVoxEventWatcher.addEventListener_(a,"keypress",cvox.ChromeVoxEventWatcher.keyPressEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"keyup",cvox.ChromeVoxEventWatcher.keyUpEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,cvox.UserEventDetail.Category.JUMP, +cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent,!1),cvox.ChromeVoxEventWatcher.addEventListener_(a,"focus",cvox.ChromeVoxEventWatcher.focusEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"blur",cvox.ChromeVoxEventWatcher.blurEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"change",cvox.ChromeVoxEventWatcher.changeEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"copy",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a, +"cut",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"paste",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"select",cvox.ChromeVoxEventWatcher.selectEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"webkitvisibilitychange",cvox.ChromeVoxEventWatcher.visibilityChangeWatcher,!0),cvox.ChromeVoxEventWatcher.events_=[],cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1,cvox.ChromeVoxEventWatcher.addEventListener_(a, +"mouseover",cvox.ChromeVoxEventWatcher.mouseOverEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"mouseout",cvox.ChromeVoxEventWatcher.mouseOutEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"click",cvox.ChromeVoxEventWatcher.mouseClickEventWatcher,!0),"undefined"!=typeof WebKitMutationObserver){cvox.ChromeVoxEventWatcher.mutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.mutationHandler);var b=null;a.documentElement?b=a.documentElement:a.document&& +a.document.documentElement&&(b=a.document.documentElement);b&&cvox.ChromeVoxEventWatcher.mutationObserver_.observe(b,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!0,characterDataOldValue:!0})}else cvox.ChromeVoxEventWatcher.addEventListener_(a,"DOMSubtreeModified",cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher,!0)}; +cvox.ChromeVoxEventWatcher.cleanup=function(a){for(var b=0;b<cvox.ChromeVoxEventWatcher.listeners_.length;b++){var c=cvox.ChromeVoxEventWatcher.listeners_[b];a.removeEventListener(c.type,c.listener,c.useCapture)}cvox.ChromeVoxEventWatcher.listeners_=[];cvox.ChromeVoxEventWatcher.currentDateHandler&&cvox.ChromeVoxEventWatcher.currentDateHandler.shutdown();cvox.ChromeVoxEventWatcher.currentTimeHandler&&cvox.ChromeVoxEventWatcher.currentTimeHandler.shutdown();cvox.ChromeVoxEventWatcher.currentMediaHandler&& +cvox.ChromeVoxEventWatcher.currentMediaHandler.shutdown();cvox.ChromeVoxEventWatcher.mutationObserver_&&cvox.ChromeVoxEventWatcher.mutationObserver_.disconnect();cvox.ChromeVoxEventWatcher.mutationObserver_=null};cvox.ChromeVoxEventWatcher.addEventListener_=function(a,b,c,d){cvox.ChromeVoxEventWatcher.listeners_.push({type:b,listener:c,useCapture:d});a.addEventListener(b,c,d)};cvox.ChromeVoxEventWatcher.getLastFocusedNode=function(){return cvox.ChromeVoxEventWatcher.lastFocusedNode}; +cvox.ChromeVoxEventWatcher.setLastFocusedNode_=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=a;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=a?cvox.DomUtil.getControlValueAndStateString(a):null}; +cvox.ChromeVoxEventWatcher.mutationHandler=function(a){if(cvox.ChromeVoxEventSuspender.areEventsSuspended())return!0;cvox.ChromeVox.navigationManager.updateIndicatorIfChanged();cvox.LiveRegions.processMutations(a,function(a,c){var d=new window.Event("LiveRegion");d.navDescriptions=c;d.assertive=a;cvox.ChromeVoxEventWatcher.addEvent(d);return!0})}; +cvox.ChromeVoxEventWatcher.mouseClickEventWatcher=function(a){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.WML)&&!a.fromCvox&&cvox.ApiImplementation.syncToNode(a.target,!0);return cvox.ChromeVox.host.mustRedispatchClickEvent()&&!a.fromCvox?(cvox.ChromeVoxUserCommands.wasMouseClicked=!0,a.stopPropagation(),a.preventDefault(),cvox.Focuser.setFocus(cvox.ChromeVox.navigationManager.getCurrentNode()),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.ChromeVox.navigationManager.getCurrentNode(),cvox.DomUtil.clickElem(a,!1,!0),!1):cvox.ChromeVoxUserCommands.wasMouseClicked=!0}; +cvox.ChromeVoxEventWatcher.mouseOverEventWatcher=function(a){if(!cvox.ChromeVoxEventWatcher.focusFollowsMouse||cvox.DomUtil.isDescendantOfNode(cvox.ChromeVoxEventWatcher.announcedMouseOverNode,a.target)||a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode)return!0;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=a.target;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null);if(a.target.tagName&& +"BODY"==a.target.tagName)return cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null,!0;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=window.setTimeout(function(){cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;if(a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode){cvox.ChromeVox.navigationManager.stopReading(!0);var b=a.target;cvox.Focuser.setFocus(b);cvox.ApiImplementation.syncToNode(b,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.ChromeVoxEventWatcher.announcedMouseOverNode= +b}},cvox.ChromeVoxEventWatcher.mouseoverDelayMs);return!0};cvox.ChromeVoxEventWatcher.mouseOutEventWatcher=function(a){a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode&&(cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null));return!0}; +cvox.ChromeVoxEventWatcher.focusEventWatcher=function(a){cvox.ChromeVoxUserCommands.removeTabDummySpan();cvox.ChromeVoxEventSuspender.areEventsSuspended()?a.target&&a.target.nodeType==Node.ELEMENT_NODE&&cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a.target):cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.focusHandler=function(a){if(a.target&&a.target.hasAttribute&&"true"==a.target.getAttribute("aria-hidden")&&"true"!=a.target.getAttribute("chromevoxignoreariahidden"))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.setUpTextHandler();else if(a.target&&a.target!=window){var b=a.target,c=cvox.DomUtil.getSurroundingControl(b);if(c&&c==cvox.ChromeVoxEventWatcher.lastFocusedNode)cvox.ChromeVoxEventWatcher.handleControlChanged(b);else{c?cvox.ChromeVoxEventWatcher.setLastFocusedNode_(c): +cvox.ChromeVoxEventWatcher.setLastFocusedNode_(b);c=cvox.ChromeVoxEventWatcher.queueMode_();if(cvox.ChromeVoxEventWatcher.getInitialVisibility()||cvox.ChromeVoxEventWatcher.handleDialogFocus(b))c=cvox.AbstractTts.QUEUE_MODE_QUEUE;cvox.ChromeVox.navigationManager.clearPageSel(!0)&&(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ApiImplementation.syncToNode(b,!document.webkitHidden,c);if(a.target.constructor==HTMLVideoElement||a.target.constructor==HTMLAudioElement)cvox.ChromeVoxEventWatcher.setUpMediaHandler_(); +else{if(a.target.hasAttribute)switch(a=a.target.getAttribute("type"),a){case "time":cvox.ChromeVoxEventWatcher.setUpTimeHandler_();return;case "date":case "month":case "week":cvox.ChromeVoxEventWatcher.setUpDateHandler_();return}cvox.ChromeVoxEventWatcher.setUpTextHandler()}}}else cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null)}; +cvox.ChromeVoxEventWatcher.blurEventWatcher=function(a){window.setTimeout(function(){document.activeElement||(cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.addEvent(a))},0);return!0}; +cvox.ChromeVoxEventWatcher.keyDownEventWatcher=function(a){cvox.ChromeVox.isChromeOS&&91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!0);a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld&&cvox.ChromeVox.isActive;a.stickyMode=cvox.ChromeVox.isStickyOn&&cvox.ChromeVox.isActive;a.keyPrefix=cvox.ChromeVox.keyPrefixOn&&cvox.ChromeVox.isActive;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVoxEventWatcher.eventToEat=null;if(!cvox.ChromeVoxKbHandler.basicKeyDownActionsListener(a)||cvox.ChromeVoxEventWatcher.handleControlAction(a))return a.preventDefault(), +a.stopPropagation(),cvox.ChromeVoxEventWatcher.eventToEat=a,!1;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.keyUpEventWatcher=function(a){91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!1);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.stopPropagation(),a.preventDefault(),!1):!0}; +cvox.ChromeVoxEventWatcher.keyPressEventWatcher=function(a){var b=document.location.href,c=cvox.TypingEcho.shouldSpeakChar(cvox.ChromeVox.typingEcho);"undefined"!==typeof cvox.ChromeVox.keyEcho[b]&&(c=cvox.ChromeVox.keyEcho[b]);cvox.ChromeVoxEditableTextBase.eventTypingEcho&&c&&cvox.DomPredicates.editTextPredicate([document.activeElement])&&"password"!==document.activeElement.type&&(b=(new Date).getTime(),150<b-cvox.ChromeVoxEventWatcher.lastKeypressTime&&cvox.ChromeVox.tts.stop(),cvox.ChromeVoxEventWatcher.lastKeypressTime= +b,cvox.ChromeVox.tts.speak(String.fromCharCode(a.charCode),1,{relativeRate:2}));cvox.ChromeVoxEventWatcher.addEvent(a);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.preventDefault(),a.stopPropagation(),!1):!0};cvox.ChromeVoxEventWatcher.changeEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.clipboardEventWatcher=function(a){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(a.type).toLowerCase());var b="";switch(a.type){case "paste":b=a.clipboardData.getData("text");break;case "copy":case "cut":b=window.getSelection().toString()}cvox.ChromeVox.tts.speak(b,cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ChromeVox.navigationManager.clearPageSel();return!0}; +cvox.ChromeVoxEventWatcher.changeHandler=function(a){cvox.ChromeVoxEventWatcher.setUpTextHandler()||document.activeElement==a.target&&cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement)};cvox.ChromeVoxEventWatcher.selectEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher=function(a){if(!a||!a.target)return!0;cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.visibilityChangeWatcher=function(){cvox.ChromeVoxEventWatcher.initialVisibility=!document.webkitHidden;document.webkitHidden&&cvox.ChromeVox.navigationManager.stopReading(!0)};cvox.ChromeVoxEventWatcher.getInitialVisibility=function(){var a=cvox.ChromeVoxEventWatcher.initialVisibility;cvox.ChromeVoxEventWatcher.initialVisibility=!1;return a}; +cvox.ChromeVoxEventWatcher.speakLiveRegion_=function(a,b){var c=cvox.ChromeVoxEventWatcher.queueMode_();a||c!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);var d=new cvox.NavigationSpeaker;d.speakDescriptionArray(b,c,null)}; +cvox.ChromeVoxEventWatcher.subtreeModifiedHandler=function(a){var b=(new Date).getTime();if(cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_+cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_>b){if(cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_++,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_>cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_)return}else cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=b,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_= +1;if(a&&a.target)for(a=a.target,a=cvox.AriaUtil.getLiveRegions(a),b=0;b<a.length&&b<cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_;b++)cvox.LiveRegionsDeprecated.updateLiveRegion(a[b],cvox.ChromeVoxEventWatcher.queueMode_(),!1)}; +cvox.ChromeVoxEventWatcher.setUpTextHandler=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);if(a!=cvox.ChromeVoxEventWatcher.currentTextControl){cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("click", +cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.textMutationObserver_&&(cvox.ChromeVoxEventWatcher.textMutationObserver_.disconnect(),cvox.ChromeVoxEventWatcher.textMutationObserver_=null));cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;if(null==a)return!1;if(a.constructor==HTMLInputElement&&cvox.DomUtil.isInputTypeText(a)&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler= +new cvox.ChromeVoxEditableHTMLInput(a,cvox.ChromeVox.tts);else if(a.constructor==HTMLTextAreaElement&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableTextArea(a,cvox.ChromeVox.tts);else if(a.isContentEditable||"textbox"==a.getAttribute("role"))cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableContentEditable(a,cvox.ChromeVox.tts); +cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("click",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),window.WebKitMutationObserver&&(cvox.ChromeVoxEventWatcher.textMutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.onTextMutation),cvox.ChromeVoxEventWatcher.textMutationObserver_.observe(cvox.ChromeVoxEventWatcher.currentTextControl, +{childList:!0,attributes:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1})),cvox.ChromeVoxEventSuspender.areEventsSuspended()||cvox.ChromeVox.navigationManager.updateSel(cvox.CursorSelection.fromNode(cvox.ChromeVoxEventWatcher.currentTextControl)));return null!=cvox.ChromeVoxEventWatcher.currentTextHandler}};cvox.ChromeVoxEventWatcher.handleTextChanged=function(a){if(cvox.ChromeVoxEventWatcher.currentTextHandler){var b=cvox.ChromeVoxEventWatcher.currentTextHandler;b.update(a);return!0}return!1}; +cvox.ChromeVoxEventWatcher.onTextMutation=function(){cvox.ChromeVoxEventWatcher.currentTextHandler&&window.setTimeout(function(){cvox.ChromeVoxEventWatcher.handleTextChanged(!1)},cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_)}; +cvox.ChromeVoxEventWatcher.handleControlChanged=function(a){var b=cvox.DomUtil.getControlValueAndStateString(a),c=cvox.DomUtil.getSurroundingControl(a),d=!1;if(a!=cvox.ChromeVoxEventWatcher.lastFocusedNode&&(null==c||c!=cvox.ChromeVoxEventWatcher.lastFocusedNode))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a);else if(b==cvox.ChromeVoxEventWatcher.lastFocusedNodeValue)return;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=b;if(cvox.DomPredicates.checkboxPredicate([a])||cvox.DomPredicates.radioPredicate([a]))d= +!0,a.checked?cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_ON):cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_OFF);"SELECT"==a.tagName&&(d=!0);if("INPUT"==a.tagName)switch(a.type){case "color":case "datetime":case "datetime-local":case "range":d=!0}a.hasAttribute&&a.hasAttribute("role")&&(d=!0);c&&c!=a&&document.activeElement==a?(cvox.ApiImplementation.syncToNode(a,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH),d=!1):cvox.AriaUtil.getActiveDescendant(a)&&(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(cvox.AriaUtil.getActiveDescendant(a), +!0),d=!0);d&&!cvox.ChromeVoxEventSuspender.areEventsSuspended()&&(cvox.ChromeVox.tts.speak(b,cvox.ChromeVoxEventWatcher.queueMode_(),null),cvox.NavBraille.fromText(b).write())}; +cvox.ChromeVoxEventWatcher.handleControlAction=function(a){if(!cvox.ChromeVox.isActive)return!1;var b=a.target;if("SELECT"==b.tagName&&1>=b.size&&(13==a.keyCode||32==a.keyCode))return a.preventDefault(),a.stopPropagation(),!0;if("INPUT"==b.tagName&&"range"==b.type){var c=parseFloat(b.value),d;b.step&&0<b.step?d=b.step:b.min&&b.max?(d=b.max-b.min,d=2<d&&31>d?1:(b.max-b.min)/10):d=1;if(37==a.keyCode||38==a.keyCode)c-=d;else if(39==a.keyCode||40==a.keyCode)c+=d;b.max&&c>b.max&&(c=b.max);b.min&&c<b.min&& +(c=b.min);b.value=c}return!1}; +cvox.ChromeVoxEventWatcher.handleDialogFocus=function(a){for(;a;){if(a.hasAttribute){var b=a.getAttribute("role");if("dialog"==b||"alertdialog"==b)break}a=a.parentElement}if(a==cvox.ChromeVox.navigationManager.currentDialog)return!1;if(cvox.ChromeVox.navigationManager.currentDialog&&!a){if(!cvox.DomUtil.isDescendantOfNode(document.activeElement,cvox.ChromeVox.navigationManager.currentDialog))return cvox.ChromeVox.navigationManager.currentDialog=null,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("exiting_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION),!0}else if(a)return cvox.ChromeVox.navigationManager.currentDialog=a,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("entering_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a),b=new cvox.NavigationSpeaker,b.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,null),!0;return!1}; +cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess=function(a,b,c){a=c-a;b=c-b;return a<cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_&&b<cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_};cvox.ChromeVoxEventWatcher.queueMode_=function(){return cvox.ChromeVoxEventWatcher.processing_?cvox.AbstractTts.QUEUE_MODE_QUEUE:cvox.AbstractTts.QUEUE_MODE_FLUSH}; +cvox.ChromeVoxEventWatcher.processQueue_=function(){if(0!=cvox.ChromeVoxEventWatcher.events_.length){var a=cvox.ChromeVoxEventWatcher.events_,b=-1,c=0,d,e;for(e=0;d=a[e];e++)"focus"==d.type&&(b=e,c=d.timeStamp);cvox.ChromeVoxEventWatcher.events_=[];for(e=0;d=a[e];e++){var f=a[e-1]||{};!(e>=b||"LiveRegion"==d.type||"DOMSubtreeModified"==d.type)||"focus"==f.type&&"change"==d.type||cvox.ChromeVoxEventWatcher.events_.push(d)}cvox.ChromeVoxEventWatcher.events_.sort(function(a,b){return"LiveRegion"!=b.type&& +"LiveRegion"==a.type||"DOMSubtreeModified"!=b.type&&"DOMSubtreeModified"==a.type?1:-1});a=(new Date).getTime();if(0<=b&&cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess(c,cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime,a))window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_);else{for(e=0;d=cvox.ChromeVoxEventWatcher.events_[e];e++)cvox.ChromeVoxEventWatcher.handleEvent_(d),cvox.ChromeVoxEventWatcher.processing_=!0;cvox.ChromeVoxEventWatcher.processing_= +!1;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()}}}; +cvox.ChromeVoxEventWatcher.handleEvent_=function(a){switch(a.type){case "keydown":cvox.ChromeVoxEventWatcher.setUpTextHandler();if(cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.handleTextChanged(!0),(a=cvox.ChromeVoxEventWatcher.currentTextHandler)&&a.lastChangeDescribed))break;cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement);break;case "keypress":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "focus":cvox.ChromeVoxEventWatcher.focusHandler(a); +break;case "blur":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "change":cvox.ChromeVoxEventWatcher.changeHandler(a);break;case "select":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "LiveRegion":cvox.ChromeVoxEventWatcher.speakLiveRegion_(a.assertive,a.navDescriptions);break;case "DOMSubtreeModified":cvox.ChromeVoxEventWatcher.subtreeModifiedHandler(a)}}; +cvox.ChromeVoxEventWatcher.setUpTimeHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentTimeHandler=a.constructor==HTMLInputElement&&a.type&&"time"==a.type?new cvox.ChromeVoxHTMLTimeWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentTimeHandler}; +cvox.ChromeVoxEventWatcher.setUpMediaHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentMediaHandler=a.constructor==HTMLVideoElement||a.constructor==HTMLAudioElement?new cvox.ChromeVoxHTMLMediaWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentMediaHandler}; +cvox.ChromeVoxEventWatcher.setUpDateHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentDateHandler=a.constructor!=HTMLInputElement||!a.type||"date"!=a.type&&"month"!=a.type&&"week"!=a.type?null:new cvox.ChromeVoxHTMLDateWidget(a,cvox.ChromeVox.tts);return null!=cvox.ChromeVoxEventWatcher.currentDateHandler};cvox.Serializer=function(){};cvox.Serializer.prototype.storeOn=function(a){cvox.ChromeVox.storeOn(a);cvox.ChromeVoxEventWatcher.storeOn(a)};cvox.Serializer.prototype.readFrom=function(a){cvox.ChromeVox.readFrom(a);cvox.ChromeVoxEventWatcher.readFrom(a)};cvox.InitGlobals=function(){}; +cvox.InitGlobals.initGlobals=function(){cvox.ChromeVox.host||(cvox.ChromeVox.host=cvox.HostFactory.getHost());cvox.ChromeVox.tts=(new cvox.CompositeTts).add(cvox.HostFactory.getTts()).add(cvox.History.getInstance()).add(cvox.ConsoleTts.getInstance());cvox.ChromeVox.braille||(cvox.ChromeVox.braille=cvox.HostFactory.getBraille());cvox.ChromeVox.mathJax=cvox.HostFactory.getMathJax();cvox.ChromeVox.earcons=cvox.HostFactory.getEarcons();cvox.ChromeVox.msgs=cvox.HostFactory.getMsgs();cvox.ChromeVox.isActive= +!0;cvox.ChromeVox.navigationManager=new cvox.NavigationManager;cvox.ChromeVox.navigationManager.updateIndicator();cvox.ChromeVox.syncToNode=cvox.ApiImplementation.syncToNode;cvox.ChromeVox.speakNode=cvox.ApiImplementation.speakNode;cvox.ChromeVox.serializer=new cvox.Serializer;cvox.ChromeVox.host.init();cvox.ChromeVoxEventWatcher.init(window);cvox.ChromeVox.executeUserCommand=function(a){cvox.ChromeVoxUserCommands.commands[a]()};cvox.ChromeVox.host.onPageLoad()};cvox.ChromeVoxInit={};cvox.ChromeVox.initTimeout_=100;cvox.ChromeVox.recallInit_=function(a){window.console.log(a+" Will try again in "+cvox.ChromeVox.initTimeout_+"ms");window.setTimeout(cvox.ChromeVox.initDocument,cvox.ChromeVox.initTimeout_);cvox.ChromeVox.initTimeout_*=2}; +cvox.ChromeVox.initDocument=function(){document.body?(cvox.ChromeVox.host=cvox.HostFactory.getHost(),cvox.ChromeVox.host.ttsLoaded()?(window.console.log("Starting ChromeVox."),cvox.InitGlobals.initGlobals(),window.disableChromeVox=function(){cvox.ChromeVox.host.killChromeVox()}):cvox.ChromeVox.recallInit_("ChromeVox not starting; waiting for TTS. "+document.location.href+".")):cvox.ChromeVox.recallInit_("ChromeVox not starting on unloaded page: "+document.location.href+".")}; +cvox.ChromeVox.reinit=function(){cvox.ChromeVox.host.reinit();cvox.ChromeVox.initDocument()};cvox.AndroidBraille=function(){};goog.inherits(cvox.AndroidBraille,cvox.AbstractBraille);cvox.AndroidBraille.prototype.write=function(a){accessibility.braille&&accessibility.braille(JSON.stringify(a.toJson()))};cvox.HostFactory.brailleConstructor=cvox.AndroidBraille;cvox.AndroidEarcons=function(){cvox.AbstractEarcons.call(this);this.audioMap={}};goog.inherits(cvox.AndroidEarcons,cvox.AbstractEarcons);cvox.AndroidEarcons.BASE_URL="https://ssl.gstatic.com/accessibility/javascript/android/earcons/"; +cvox.AndroidEarcons.prototype.playEarcon=function(a){if(this.earconsAvailable()){cvox.AndroidEarcons.superClass_.playEarcon.call(this,a);this.currentAudio=this.audioMap[a];this.currentAudio||(this.currentAudio=new Audio(cvox.AndroidEarcons.BASE_URL+this.getEarconFilename(a)),this.audioMap[a]=this.currentAudio);try{this.currentAudio.currentTime=0}catch(b){}this.currentAudio.paused&&this.currentAudio.play()}}; +cvox.AndroidEarcons.prototype.earconsAvailable=function(){return-1==navigator.userAgent.indexOf("Chrome")?!1:!0};cvox.HostFactory.earconsConstructor=cvox.AndroidEarcons;"undefined"!=typeof goog&&goog.provide&&(cvox.Api={},cvox.Api.Math={}); +(function(){function a(){d&&(d.port1.close(),d.port2.close(),d=null);d=new MessageChannel;window.postMessage("cvox.PortSetup",[d.port2],"*");d.port1.onmessage=function(a){"cvox.Disconnect"==a.data&&(d=null);try{var b=JSON.parse(a.data);b.id&&g[b.id]&&(g[b.id](b),delete g[b.id])}catch(c){}}}function b(a,b){var c=f;f++;void 0===a.args&&(a.args=[]);a.args=[c].concat(a.args);g[c]=b;d.port1.postMessage(JSON.stringify(a))}function c(a,c){var d=null;c&&c.endCallback&&(d=c.endCallback);b(a,d)}var d,e=!1, +f=1,g={};window.cvox||(window.cvox={});var h=window.cvox,k=null;"undefined"!=typeof h.ApiImplementation&&(k=h.ApiImplementation);h.Api=function(){};h.Api.internalEnable=function(){e=!0;k||a();var b=document.createEvent("UIEvents");b.initEvent("chromeVoxLoaded",!0,!1);document.dispatchEvent(b)};h.Api.internalDisable=function(){e=!1;d=null;var a=document.createEvent("UIEvents");a.initEvent("chromeVoxUnloaded",!0,!1);document.dispatchEvent(a)};h.Api.isChromeVoxActive=function(){return k?e:!!d};h.Api.speak= +function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(a,b,d):(a={cmd:"speak",args:[a,b,d]},c(a,d)))};h.Api.speakNode=function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(h.DomUtil.getName(a),b,d):(a={cmd:"speakNodeRef",args:[h.ApiUtils.makeNodeReference(a),b,d]},c(a,d)))};h.Api.stop=function(){if(h.Api.isChromeVoxActive())if(k)k.stop();else{var a={cmd:"stop"};d.port1.postMessage(JSON.stringify(a))}};h.Api.playEarcon=function(a){h.Api.isChromeVoxActive()&&(k?k.playEarcon(a):(a={cmd:"playEarcon",args:[a]}, +d.port1.postMessage(JSON.stringify(a))))};h.Api.syncToNode=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)k.syncToNode(a,b);else{var c={cmd:"syncToNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getCurrentNode=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.navigationManager.getCurrentNode()):b({cmd:"getCurrentNode"},function(b){a(h.ApiUtils.getNodeFromRef(b.currentNode))}))};h.Api.setSpeechForNode=function(a,b){h.Api.isChromeVoxActive()&& +a&&b&&a.setAttribute("cvoxnodedesc",JSON.stringify(b))};h.Api.click=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)h.DomUtil.clickElem(a,b,!0);else{var c={cmd:"clickNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getBuild=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.BuildInfo.build):b({cmd:"getBuild"},function(b){a(b.build)}))};h.Api.getVersion=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.version+""):b({cmd:"getVersion"},function(b){a(b.version)}))}; +h.Api.getCvoxModifierKeys=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.KeyUtil.cvoxModKeyCodes()):b({cmd:"getCvoxModKeys"},function(b){a(b.keyCodes)}))};h.Api.isKeyShortcut=function(a,c){if(c)if(h.Api.isChromeVoxActive()){var d=[37,39];if(!d.indexOf(a.keyCode)||a.altKey||a.shiftKey||a.ctrlKey||a.metaKey)if(k){var e=h.KeyUtil.keyEventToKeySequence(a);c(h.ChromeVoxKbHandler.handlerKeyMap.hasKey(e))}else{var d={},f=["target","srcElement","currentTarget","view"];for(e in a)-1===f.indexOf(e)&&(d[e]= +a[e]);e={cmd:"isKeyShortcut",args:[d]};b(e,function(a){c(a.isHandled)})}else c(!1)}else c(!1)};h.Api.setKeyEcho=function(a){h.Api.isChromeVoxActive()&&(k?k.setKeyEcho(a):(a={cmd:"setKeyEcho",args:[a]},d.port1.postMessage(JSON.stringify(a))))};h.Api.Math=function(){};h.Api.Math.defineRule=function(a,b,c,e,f){if(h.Api.isChromeVoxActive()){var g=Array.prototype.slice.call(arguments,4),g=[a,b,c,e].concat(g);k?k.Math.defineRule.apply(k.Math,g):(g={cmd:"Math.defineRule",args:g},d.port1.postMessage(JSON.stringify(g)))}}; +h.Api.internalEnable();h.NodeDescription=function(a,b,c,d){this.context=a?a:"";this.text=b?b:"";this.userValue=c?c:"";this.annotation=d?d:""}})();cvox.InitialSpeech={};window.INJECTED_AFTER_LOAD||(window.INJECTED_AFTER_LOAD=!1); +cvox.InitialSpeech.speak=function(){var a=window.INJECTED_AFTER_LOAD;if(!cvox.ChromeVox.isActive||document.webkitHidden)a=!0;window.top==window&&document.title&&!a&&cvox.ChromeVox.tts.speak(document.title,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.init(new Date,cvox.AbstractTts.QUEUE_MODE_QUEUE,a);document.hasFocus()&&document.activeElement==document.body&&cvox.ChromeVox.navigationManager.syncToBeginning();if(cvox.ChromeVox.position[document.location.href]){var b=cvox.ChromeVox.position[document.location.href]; +cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(document.elementFromPoint(b.x,b.y))}document.hasFocus()&&(a||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){cvox.ChromeVox.navigationManager.finishNavCommand("",!0,cvox.AbstractTts.QUEUE_MODE_QUEUE)})())};cvox.AndroidKeyMap=function(){}; +cvox.AndroidKeyMap.getStringifiedKeyMap=function(){return cvox.ChromeVoxJSON.stringify({'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[17]}}':"stopSpeech",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[9]}}':"handleTab",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[9]}}':"handleTabPrev", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[38]}}':"backward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"forward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[37]}}':"previousGranularity", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[39]}}':"nextGranularity",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[13]}}':"forceClickOnCurrentItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"readFromHere", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[85]}}':"readLinkURL",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[75]}}':"fullyDescribe",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[189]}}':"decreaseTtsPitch", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[187]}}':"increaseTtsPitch",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[219]}}':"decreaseTtsRate",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[221]}}':"increaseTtsRate", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[81]}}':"cyclePunctuationLevel",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[49]}}':"nextHeading1",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[49]}}':"previousHeading1", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[50]}}':"nextHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[50]}}':"previousHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[51]}}':"nextHeading3", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[51]}}':"previousHeading3",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[52]}}':"nextHeading4",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[52]}}':"previousHeading4", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[53]}}':"nextHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[53]}}':"previousHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[54]}}':"nextHeading6", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[54]}}':"previousHeading6",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[67]}}':"nextComboBox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[67]}}':"previousComboBox", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[69]}}':"nextEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[69]}}':"previousEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[70]}}':"nextFormField", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[70]}}':"previousFormField",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[71]}}':"nextGraphic",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[71]}}':"previousGraphic", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[72]}}':"nextHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[72]}}':"previousHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[73]}}':"nextListItem", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[73]}}':"previousListItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[76]}}':"nextLink",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[76]}}':"previousLink", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[79]}}':"nextList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[79]}}':"previousList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[82]}}':"nextRadio", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[82]}}':"previousRadio",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[84]}}':"nextTable",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[84]}}':"previousTable", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[66]}}':"nextButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[66]}}':"previousButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[88]}}':"nextCheckbox", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[88]}}':"previousCheckbox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[186]}}':"nextLandmark",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[186]}}':"previousLandmark"})};cvox.MathSimpleStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathSimpleStore,cvox.MathStore);cvox.MathSimpleStore.prototype.defineRulesFromMappings=function(a,b,c){for(var d in c)for(var e in c[d]){var f=c[d][e],g='self::text() = "'+b+'"';this.defineRule(a,d+"."+e,'[t] "'+f+'"',"self::text()",g)}};cvox.MathCompoundStore=function(){this.subStores_={}};goog.addSingletonGetter(cvox.MathCompoundStore); +cvox.MathCompoundStore.prototype.defineRules=function(a,b,c){var d=new cvox.MathSimpleStore;d.defineRulesFromMappings(a,b,c);this.subStores_[b]=d};cvox.MathCompoundStore.prototype.addSymbolRules=function(a){var b=cvox.MathSimpleStore.parseUnicode_(a.key);this.defineRules(a.key,b,a.mappings)};cvox.MathCompoundStore.prototype.addFunctionRules=function(a){var b=a.names;a=a.mappings;for(var c=0,d;d=b[c];c++)this.defineRules(d,d,a)}; +cvox.MathCompoundStore.prototype.lookupRule=function(a,b){var c=this.subStores_[a.textContent];if(c)return c.lookupRule(a,b)};cvox.MathCompoundStore.prototype.lookupString=function(a,b){var c=document.createTextNode(a);return(c=this.lookupRule(c,b))?c.action.components.map(function(a){return a.content.slice(1,-1)}).join(" "):""}; +cvox.MathCompoundStore.prototype.getDynamicConstraintValues=function(){var a={},b;for(b in this.subStores_){var c=this.subStores_[b].getDynamicConstraintValues(),d;for(d in c){var e=a[d];a[d]=e?cvox.MathUtil.union(e,c[d]):c[d]}}return a};cvox.MathSimpleStore.parseUnicode_=function(a){var b=parseInt(a,16);if(65536>b)return String.fromCharCode(b);b-=65536;a=(b>>10)+55296;b=(b&1023)+56320;return String.fromCharCode(a,b)};cvox.AndroidMathMap=function(){this.store_=cvox.MathCompoundStore.getInstance();cvox.AndroidMathMap.FUNCTION_MAPPINGS_.forEach(goog.bind(this.store_.addFunctionRules,this.store_));cvox.AndroidMathMap.SYMBOL_MAPPINGS_.forEach(goog.bind(this.store_.addSymbolRules,this.store_));this.store_.getDynamicConstraintValues()}; +cvox.AndroidMathMap.prototype.evaluate=function(a,b,c){var d="";b=cvox.MathStore.createDynamicConstraint(b,c);d=this.store_.lookupString(a,b);return new cvox.NavDescription({text:d?d:a})}; +cvox.AndroidMathMap.SYMBOL_MAPPINGS_=[{category:"Po",mappings:{"default":{"default":"exclamation mark"}},key:"0021"},{category:"Po",mappings:{"default":{"default":"quotation mark"}},key:"0022"},{category:"Po",mappings:{"default":{"default":"number sign",alternative:"hash","short":"number"}},key:"0023"},{category:"Sc",mappings:{"default":{"default":"dollar sign","short":"dollar"}},key:"0024"},{category:"Po",mappings:{"default":{"default":"percent sign","short":"percent"}},key:"0025"},{category:"Po", +mappings:{"default":{"default":"ampersand"}},key:"0026"},{category:"Po",mappings:{"default":{"default":"apostrophe",alternative:"apostrophe quote"}},key:"0027"},{category:"Po",mappings:{"default":{"default":"asterisk"}},key:"002A"},{category:"Sm",mappings:{"default":{"default":"plus sign","short":"plus"}},key:"002B"},{category:"Po",mappings:{"default":{"default":"comma"}},key:"002C"},{category:"Pd",mappings:{"default":{"default":"hyphen minus","short":"minus"}},key:"002D"},{category:"Po",mappings:{"default":{"default":"full stop", +alternative:"period"}},key:"002E"},{category:"Po",mappings:{"default":{"default":"solidus",alternative:"slash"}},key:"002F"},{category:"Po",mappings:{"default":{"default":"colon"}},key:"003A"},{category:"Po",mappings:{"default":{"default":"semicolon"}},key:"003B"},{category:"Sm",mappings:{"default":{"default":"less than sign","short":"less than"}},key:"003C"},{category:"Sm",mappings:{"default":{"default":"equals sign","short":"equals"}},key:"003D"},{category:"Sm",mappings:{"default":{"default":"greater than sign", +"short":"greater than"}},key:"003E"},{category:"Po",mappings:{"default":{"default":"question mark"}},key:"003F"},{category:"Po",mappings:{"default":{"default":"commercial at","short":"at"}},key:"0040"},{category:"Po",mappings:{"default":{"default":"reverse solidus",alternative:"backslash"}},key:"005C"},{category:"Sk",mappings:{"default":{"default":"circumflex accent",alternative:"spacing circumflex","short":"hat"}},key:"005E"},{category:"Pc",mappings:{"default":{"default":"low line",alternative:"spacing underscore"}}, +key:"005F"},{category:"Sk",mappings:{"default":{"default":"grave accent",alternative:"spacing grave","short":"grave"}},key:"0060"},{category:"Sm",mappings:{"default":{"default":"vertical line",alternative:"vertical bar"}},key:"007C"},{category:"Sm",mappings:{"default":{"default":"tilde"}},key:"007E"},{category:"Po",mappings:{"default":{"default":"inverted exclamation mark"}},key:"00A1"},{category:"Sc",mappings:{"default":{"default":"cent sign","short":"cent"}},key:"00A2"},{category:"Sc",mappings:{"default":{"default":"pound sign", +"short":"pound"}},key:"00A3"},{category:"Sc",mappings:{"default":{"default":"currency sign","short":"currency"}},key:"00A4"},{category:"Sc",mappings:{"default":{"default":"yen sign","short":"yen"}},key:"00A5"},{category:"So",mappings:{"default":{"default":"broken bar",alternative:"broken vertical bar"}},key:"00A6"},{category:"Po",mappings:{"default":{"default":"section sign","short":"section"}},key:"00A7"},{category:"Sk",mappings:{"default":{"default":"diaeresis",alternative:"spacing diaeresis","short":"double dot"}}, +key:"00A8"},{category:"So",mappings:{"default":{"default":"copyright sign","short":"copyright"}},key:"00A9"},{category:"Lo",mappings:{"default":{"default":"feminine ordinal indicator"}},key:"00AA"},{category:"Pi",mappings:{"default":{"default":"left pointing double angle quotation mark",alternative:"left pointing guillemet"}},key:"00AB"},{category:"Sm",mappings:{"default":{"default":"not sign","short":"not"}},key:"00AC"},{category:"So",mappings:{"default":{"default":"registered sign",alternative:"registered trade mark sign", +"short":"registered"}},key:"00AE"},{category:"Sk",mappings:{"default":{"default":"macron",alternative:"spacing macron"}},key:"00AF"},{category:"So",mappings:{"default":{"default":"degree sign","short":"degree"}},key:"00B0"},{category:"Sm",mappings:{"default":{"default":"plus minus sign",alternative:"plus or minus sign","short":"plus minus"}},key:"00B1"},{category:"Sk",mappings:{"default":{"default":"acute accent",alternative:"spacing acute","short":"acute"}},key:"00B4"},{category:"Ll",mappings:{"default":{"default":"micro sign", +"short":"micro"}},key:"00B5"},{category:"Po",mappings:{"default":{"default":"pilcrow sign",alternative:"paragraph sign","short":"pilcrow"}},key:"00B6"},{category:"Po",mappings:{"default":{"default":"middle dot"}},key:"00B7"},{category:"Sk",mappings:{"default":{"default":"cedilla",alternative:"spacing cedilla"}},key:"00B8"},{category:"Lo",mappings:{"default":{"default":"masculine ordinal indicator"}},key:"00BA"},{category:"Pf",mappings:{"default":{"default":"right pointing double angle quotation mark", +alternative:"right pointing guillemet"}},key:"00BB"},{category:"Po",mappings:{"default":{"default":"inverted question mark"}},key:"00BF"},{category:"Sm",mappings:{"default":{"default":"multiplication sign","short":"multiplication"}},key:"00D7"},{category:"Sm",mappings:{"default":{"default":"division sign","short":"division"}},key:"00F7"},{category:"Sk",mappings:{"default":{"default":"breve",alternative:"spacing breve"}},key:"02D8"},{category:"Sk",mappings:{"default":{"default":"dot above",alternative:"spacing dot above"}}, +key:"02D9"},{category:"Sk",mappings:{"default":{"default":"ring above",alternative:"spacing ring above"}},key:"02DA"},{category:"Sk",mappings:{"default":{"default":"ogonek",alternative:"spacing ogonek"}},key:"02DB"},{category:"Sk",mappings:{"default":{"default":"small tilde",alternative:"spacing tilde"}},key:"02DC"},{category:"Sk",mappings:{"default":{"default":"double acute accent",alternative:"spacing double acute"}},key:"02DD"},{category:"Pd",mappings:{"default":{"default":"hyphen"}},key:"2010"}, +{category:"Pd",mappings:{"default":{"default":"non breaking hyphen"}},key:"2011"},{category:"Pd",mappings:{"default":{"default":"figure dash"}},key:"2012"},{category:"Pd",mappings:{"default":{"default":"en dash"}},key:"2013"},{category:"Pd",mappings:{"default":{"default":"em dash"}},key:"2014"},{category:"Pd",mappings:{"default":{"default":"horizontal bar",alternative:"quotation dash"}},key:"2015"},{category:"Po",mappings:{"default":{"default":"double vertical line",alternative:"double vertical bar"}}, +key:"2016"},{category:"Po",mappings:{"default":{"default":"double low line",alternative:"spacing double underscore"}},key:"2017"},{category:"Pi",mappings:{"default":{"default":"left single quotation mark",alternative:"single turned comma quotation mark"}},key:"2018"},{category:"Pf",mappings:{"default":{"default":"right single quotation mark",alternative:"single comma quotation mark"}},key:"2019"},{category:"Ps",mappings:{"default":{"default":"single low 9 quotation mark",alternative:"low single comma quotation mark"}}, +key:"201A"},{category:"Pi",mappings:{"default":{"default":"single high reversed 9 quotation mark",alternative:"single reversed comma quotation mark"}},key:"201B"},{category:"Pi",mappings:{"default":{"default":"left double quotation mark",alternative:"double turned comma quotation mark"}},key:"201C"},{category:"Pf",mappings:{"default":{"default":"right double quotation mark",alternative:"double comma quotation mark"}},key:"201D"},{category:"Ps",mappings:{"default":{"default":"double low 9 quotation mark", +alternative:"low double comma quotation mark"}},key:"201E"},{category:"Pi",mappings:{"default":{"default":"double high reversed 9 quotation mark",alternative:"double reversed comma quotation mark"}},key:"201F"},{category:"Po",mappings:{"default":{"default":"dagger"}},key:"2020"},{category:"Po",mappings:{"default":{"default":"double dagger"}},key:"2021"},{category:"Po",mappings:{"default":{"default":"bullet"}},key:"2022"},{category:"Po",mappings:{"default":{"default":"triangular bullet"}},key:"2023"}, +{category:"Po",mappings:{"default":{"default":"one dot leader"}},key:"2024"},{category:"Po",mappings:{"default":{"default":"two dot leader"}},key:"2025"},{category:"Po",mappings:{"default":{"default":"horizontal ellipsis"}},key:"2026"},{category:"Po",mappings:{"default":{"default":"hyphenation point"}},key:"2027"},{category:"Po",mappings:{"default":{"default":"per mille sign","short":"per mille"}},key:"2030"},{category:"Po",mappings:{"default":{"default":"per ten thousand sign","short":"per ten thousand"}}, +key:"2031"},{category:"Po",mappings:{"default":{"default":"prime"}},key:"2032"},{category:"Po",mappings:{"default":{"default":"double prime"}},key:"2033"},{category:"Po",mappings:{"default":{"default":"triple prime"}},key:"2034"},{category:"Po",mappings:{"default":{"default":"reversed prime"}},key:"2035"},{category:"Po",mappings:{"default":{"default":"reversed double prime"}},key:"2036"},{category:"Po",mappings:{"default":{"default":"reversed triple prime"}},key:"2037"},{category:"Po",mappings:{"default":{"default":"caret"}}, +key:"2038"},{category:"Pi",mappings:{"default":{"default":"single left pointing angle quotation mark",alternative:"left pointing single guillemet"}},key:"2039"},{category:"Pf",mappings:{"default":{"default":"single right pointing angle quotation mark",alternative:"right pointing single guillemet"}},key:"203A"},{category:"Po",mappings:{"default":{"default":"reference mark"}},key:"203B"},{category:"Po",mappings:{"default":{"default":"double exclamation mark"}},key:"203C"},{category:"Po",mappings:{"default":{"default":"interrobang"}}, +key:"203D"},{category:"Po",mappings:{"default":{"default":"overline",alternative:"spacing overscore"}},key:"203E"},{category:"Pc",mappings:{"default":{"default":"undertie"}},key:"203F"},{category:"Pc",mappings:{"default":{"default":"character tie"}},key:"2040"},{category:"Po",mappings:{"default":{"default":"caret insertion point"}},key:"2041"},{category:"Po",mappings:{"default":{"default":"asterism"}},key:"2042"},{category:"Po",mappings:{"default":{"default":"hyphen bullet"}},key:"2043"},{category:"Sm", +mappings:{"default":{"default":"fraction slash"}},key:"2044"},{category:"Po",mappings:{"default":{"default":"double question mark"}},key:"2047"},{category:"Po",mappings:{"default":{"default":"question exclamation mark"}},key:"2048"},{category:"Po",mappings:{"default":{"default":"exclamation question mark"}},key:"2049"},{category:"Po",mappings:{"default":{"default":"reversed pilcrow sign","short":"reversed pilcrow"}},key:"204B"},{category:"Po",mappings:{"default":{"default":"black leftwards bullet"}}, +key:"204C"},{category:"Po",mappings:{"default":{"default":"black rightwards bullet"}},key:"204D"},{category:"Po",mappings:{"default":{"default":"low asterisk"}},key:"204E"},{category:"Po",mappings:{"default":{"default":"reversed semicolon"}},key:"204F"},{category:"Po",mappings:{"default":{"default":"close up"}},key:"2050"},{category:"Po",mappings:{"default":{"default":"two asterisks aligned vertically"}},key:"2051"},{category:"Sm",mappings:{"default":{"default":"commercial minus sign","short":"commercial minus"}}, +key:"2052"},{category:"Po",mappings:{"default":{"default":"swung dash"}},key:"2053"},{category:"Pc",mappings:{"default":{"default":"inverted undertie"}},key:"2054"},{category:"Po",mappings:{"default":{"default":"flower punctuation mark"}},key:"2055"},{category:"Po",mappings:{"default":{"default":"three dot punctuation"}},key:"2056"},{category:"Po",mappings:{"default":{"default":"quadruple prime"}},key:"2057"},{category:"Po",mappings:{"default":{"default":"four dot punctuation"}},key:"2058"},{category:"Po", +mappings:{"default":{"default":"five dot punctuation"}},key:"2059"},{category:"Po",mappings:{"default":{"default":"two dot punctuation"}},key:"205A"},{category:"Po",mappings:{"default":{"default":"four dot mark"}},key:"205B"},{category:"Po",mappings:{"default":{"default":"dotted cross"}},key:"205C"},{category:"Po",mappings:{"default":{"default":"tricolon"}},key:"205D"},{category:"Po",mappings:{"default":{"default":"vertical four dots"}},key:"205E"},{category:"Sm",mappings:{"default":{"default":"superscript plus sign", +"short":"superscript plus"}},key:"207A"},{category:"Sm",mappings:{"default":{"default":"superscript minus",alternative:"superscript hyphen minus"}},key:"207B"},{category:"Sm",mappings:{"default":{"default":"superscript equals sign","short":"superscript equals"}},key:"207C"},{category:"Ps",mappings:{"default":{"default":"superscript left parenthesis",alternative:"superscript opening parenthesis"}},key:"207D"},{category:"Pe",mappings:{"default":{"default":"superscript right parenthesis",alternative:"superscript closing parenthesis"}}, +key:"207E"},{category:"Sm",mappings:{"default":{"default":"subscript plus sign","short":"subscript plus"}},key:"208A"},{category:"Sm",mappings:{"default":{"default":"subscript minus",alternative:"subscript hyphen minus"}},key:"208B"},{category:"Sm",mappings:{"default":{"default":"subscript equals sign","short":"subscript equals"}},key:"208C"},{category:"Ps",mappings:{"default":{"default":"subscript left parenthesis",alternative:"subscript opening parenthesis"}},key:"208D"},{category:"Pe",mappings:{"default":{"default":"subscript right parenthesis", +alternative:"subscript closing parenthesis"}},key:"208E"},{category:"So",mappings:{"default":{"default":"property line"}},key:"214A"},{category:"Sm",mappings:{"default":{"default":"turned ampersand"}},key:"214B"},{category:"So",mappings:{"default":{"default":"per sign","short":"per"}},key:"214C"},{category:"So",mappings:{"default":{"default":"aktieselskab"}},key:"214D"},{category:"Ll",mappings:{"default":{"default":"turned small f"}},key:"214E"},{category:"Sm",mappings:{"default":{"default":"for all"}}, +key:"2200"},{category:"Sm",mappings:{"default":{"default":"complement"}},key:"2201"},{category:"Sm",mappings:{"default":{"default":"partial differential"}},key:"2202"},{category:"Sm",mappings:{"default":{"default":"there exists"}},key:"2203"},{category:"Sm",mappings:{"default":{"default":"there does not exist"}},key:"2204"},{category:"Sm",mappings:{"default":{"default":"empty set"}},key:"2205"},{category:"Sm",mappings:{"default":{"default":"increment"}},key:"2206"},{category:"Sm",mappings:{"default":{"default":"nabla"}}, +key:"2207"},{category:"Sm",mappings:{"default":{"default":"element of"}},key:"2208"},{category:"Sm",mappings:{"default":{"default":"not an element of"}},key:"2209"},{category:"Sm",mappings:{"default":{"default":"small element of"}},key:"220A"},{category:"Sm",mappings:{"default":{"default":"contains as member"}},key:"220B"},{category:"Sm",mappings:{"default":{"default":"does not contain as member"}},key:"220C"},{category:"Sm",mappings:{"default":{"default":"small contains as member"}},key:"220D"}, +{category:"Sm",mappings:{"default":{"default":"end of proof"}},key:"220E"},{category:"Sm",mappings:{"default":{"default":"n ary product"}},key:"220F"},{category:"Sm",mappings:{"default":{"default":"n ary coproduct"}},key:"2210"},{category:"Sm",mappings:{"default":{"default":"n ary summation"}},key:"2211"},{category:"Sm",mappings:{"default":{"default":"minus sign","short":"minus"}},key:"2212"},{category:"Sm",mappings:{"default":{"default":"minus or plus sign","short":"minus or plus"}},key:"2213"}, +{category:"Sm",mappings:{"default":{"default":"dot plus"}},key:"2214"},{category:"Sm",mappings:{"default":{"default":"division slash"}},key:"2215"},{category:"Sm",mappings:{"default":{"default":"set minus"}},key:"2216"},{category:"Sm",mappings:{"default":{"default":"asterisk operator"}},key:"2217"},{category:"Sm",mappings:{"default":{"default":"ring operator"}},key:"2218"},{category:"Sm",mappings:{"default":{"default":"bullet operator"}},key:"2219"},{category:"Sm",mappings:{"default":{"default":"square root"}}, +key:"221A"},{category:"Sm",mappings:{"default":{"default":"cube root"}},key:"221B"},{category:"Sm",mappings:{"default":{"default":"fourth root"}},key:"221C"},{category:"Sm",mappings:{"default":{"default":"proportional to"}},key:"221D"},{category:"Sm",mappings:{"default":{"default":"infinity"}},key:"221E"},{category:"Sm",mappings:{"default":{"default":"right angle"}},key:"221F"},{category:"Sm",mappings:{"default":{"default":"angle"}},key:"2220"},{category:"Sm",mappings:{"default":{"default":"measured angle"}}, +key:"2221"},{category:"Sm",mappings:{"default":{"default":"spherical angle"}},key:"2222"},{category:"Sm",mappings:{"default":{"default":"divides","short":"bar"}},key:"2223"},{category:"Sm",mappings:{"default":{"default":"does not divide"}},key:"2224"},{category:"Sm",mappings:{"default":{"default":"parallel to"}},key:"2225"},{category:"Sm",mappings:{"default":{"default":"not parallel to"}},key:"2226"},{category:"Sm",mappings:{"default":{"default":"logical and"}},key:"2227"},{category:"Sm",mappings:{"default":{"default":"logical or"}}, +key:"2228"},{category:"Sm",mappings:{"default":{"default":"intersection"}},key:"2229"},{category:"Sm",mappings:{"default":{"default":"union"}},key:"222A"},{category:"Sm",mappings:{"default":{"default":"integral"}},key:"222B"},{category:"Sm",mappings:{"default":{"default":"double integral"}},key:"222C"},{category:"Sm",mappings:{"default":{"default":"triple integral"}},key:"222D"},{category:"Sm",mappings:{"default":{"default":"contour integral"}},key:"222E"},{category:"Sm",mappings:{"default":{"default":"surface integral"}}, +key:"222F"},{category:"Sm",mappings:{"default":{"default":"volume integral"}},key:"2230"},{category:"Sm",mappings:{"default":{"default":"clockwise integral"}},key:"2231"},{category:"Sm",mappings:{"default":{"default":"clockwise contour integral"}},key:"2232"},{category:"Sm",mappings:{"default":{"default":"anticlockwise contour integral"}},key:"2233"},{category:"Sm",mappings:{"default":{"default":"therefore"}},key:"2234"},{category:"Sm",mappings:{"default":{"default":"because"}},key:"2235"},{category:"Sm", +mappings:{"default":{"default":"ratio"}},key:"2236"},{category:"Sm",mappings:{"default":{"default":"proportion"}},key:"2237"},{category:"Sm",mappings:{"default":{"default":"dot minus"}},key:"2238"},{category:"Sm",mappings:{"default":{"default":"excess"}},key:"2239"},{category:"Sm",mappings:{"default":{"default":"geometric proportion"}},key:"223A"},{category:"Sm",mappings:{"default":{"default":"homothetic"}},key:"223B"},{category:"Sm",mappings:{"default":{"default":"tilde operator"}},key:"223C"},{category:"Sm", +mappings:{"default":{"default":"reversed tilde"}},key:"223D"},{category:"Sm",mappings:{"default":{"default":"inverted lazy s"}},key:"223E"},{category:"Sm",mappings:{"default":{"default":"sine wave"}},key:"223F"},{category:"Sm",mappings:{"default":{"default":"wreath product"}},key:"2240"},{category:"Sm",mappings:{"default":{"default":"not tilde"}},key:"2241"},{category:"Sm",mappings:{"default":{"default":"minus tilde"}},key:"2242"},{category:"Sm",mappings:{"default":{"default":"asymptotically equal to"}}, +key:"2243"},{category:"Sm",mappings:{"default":{"default":"not asymptotically equal to"}},key:"2244"},{category:"Sm",mappings:{"default":{"default":"approximately equal to"}},key:"2245"},{category:"Sm",mappings:{"default":{"default":"approximately but not actually equal to"}},key:"2246"},{category:"Sm",mappings:{"default":{"default":"neither approximately nor actually equal to"}},key:"2247"},{category:"Sm",mappings:{"default":{"default":"almost equal to"}},key:"2248"},{category:"Sm",mappings:{"default":{"default":"not almost equal to"}}, +key:"2249"},{category:"Sm",mappings:{"default":{"default":"almost equal or equal to"}},key:"224A"},{category:"Sm",mappings:{"default":{"default":"triple tilde"}},key:"224B"},{category:"Sm",mappings:{"default":{"default":"all equal to"}},key:"224C"},{category:"Sm",mappings:{"default":{"default":"equivalent to"}},key:"224D"},{category:"Sm",mappings:{"default":{"default":"geometrically equivalent to"}},key:"224E"},{category:"Sm",mappings:{"default":{"default":"difference between"}},key:"224F"},{category:"Sm", +mappings:{"default":{"default":"approaches the limit"}},key:"2250"},{category:"Sm",mappings:{"default":{"default":"geometrically equal to"}},key:"2251"},{category:"Sm",mappings:{"default":{"default":"approximately equal to or the image of"}},key:"2252"},{category:"Sm",mappings:{"default":{"default":"image of or approximately equal to"}},key:"2253"},{category:"Sm",mappings:{"default":{"default":"colon equals",alternative:"colon equal"}},key:"2254"},{category:"Sm",mappings:{"default":{"default":"equals colon", +alternative:"equal colon"}},key:"2255"},{category:"Sm",mappings:{"default":{"default":"ring in equal to"}},key:"2256"},{category:"Sm",mappings:{"default":{"default":"ring equal to"}},key:"2257"},{category:"Sm",mappings:{"default":{"default":"corresponds to"}},key:"2258"},{category:"Sm",mappings:{"default":{"default":"estimates"}},key:"2259"},{category:"Sm",mappings:{"default":{"default":"equiangular to"}},key:"225A"},{category:"Sm",mappings:{"default":{"default":"star equals"}},key:"225B"},{category:"Sm", +mappings:{"default":{"default":"delta equal to"}},key:"225C"},{category:"Sm",mappings:{"default":{"default":"equal to by definition"}},key:"225D"},{category:"Sm",mappings:{"default":{"default":"measured by"}},key:"225E"},{category:"Sm",mappings:{"default":{"default":"questioned equal to"}},key:"225F"},{category:"Sm",mappings:{"default":{"default":"not equal to"}},key:"2260"},{category:"Sm",mappings:{"default":{"default":"identical to"}},key:"2261"},{category:"Sm",mappings:{"default":{"default":"not identical to"}}, +key:"2262"},{category:"Sm",mappings:{"default":{"default":"strictly equivalent to"}},key:"2263"},{category:"Sm",mappings:{"default":{"default":"less than or equal to",alternative:"less than or equal to"}},key:"2264"},{category:"Sm",mappings:{"default":{"default":"greater than or equal to",alternative:"greater than or equal to"}},key:"2265"},{category:"Sm",mappings:{"default":{"default":"less than over equal to",alternative:"less than over equal to"}},key:"2266"},{category:"Sm",mappings:{"default":{"default":"greater than over equal to", +alternative:"greater than over equal to"}},key:"2267"},{category:"Sm",mappings:{"default":{"default":"less than but not equal to",alternative:"less than but not equal to"}},key:"2268"},{category:"Sm",mappings:{"default":{"default":"greater than but not equal to",alternative:"greater than but not equal to"}},key:"2269"},{category:"Sm",mappings:{"default":{"default":"much less than",alternative:"much less than"}},key:"226A"},{category:"Sm",mappings:{"default":{"default":"much greater than",alternative:"much greater than"}}, +key:"226B"},{category:"Sm",mappings:{"default":{"default":"between"}},key:"226C"},{category:"Sm",mappings:{"default":{"default":"not equivalent to"}},key:"226D"},{category:"Sm",mappings:{"default":{"default":"not less than",alternative:"not less than"}},key:"226E"},{category:"Sm",mappings:{"default":{"default":"not greater than",alternative:"not greater than"}},key:"226F"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equal to",alternative:"neither less than nor equal to"}}, +key:"2270"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equal to",alternative:"neither greater than nor equal to"}},key:"2271"},{category:"Sm",mappings:{"default":{"default":"less than or equivalent to",alternative:"less than or equivalent to"}},key:"2272"},{category:"Sm",mappings:{"default":{"default":"greater than or equivalent to",alternative:"greater than or equivalent to"}},key:"2273"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equivalent to", +alternative:"neither less than nor equivalent to"}},key:"2274"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equivalent to",alternative:"neither greater than nor equivalent to"}},key:"2275"},{category:"Sm",mappings:{"default":{"default":"less than or greater than",alternative:"less than or greater than"}},key:"2276"},{category:"Sm",mappings:{"default":{"default":"greater than or less than",alternative:"greater than or less than"}},key:"2277"},{category:"Sm",mappings:{"default":{"default":"neither less than nor greater than", +alternative:"neither less than nor greater than"}},key:"2278"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor less than",alternative:"neither greater than nor less than"}},key:"2279"},{category:"Sm",mappings:{"default":{"default":"precedes"}},key:"227A"},{category:"Sm",mappings:{"default":{"default":"succeeds"}},key:"227B"},{category:"Sm",mappings:{"default":{"default":"precedes or equal to"}},key:"227C"},{category:"Sm",mappings:{"default":{"default":"succeeds or equal to"}}, +key:"227D"},{category:"Sm",mappings:{"default":{"default":"precedes or equivalent to"}},key:"227E"},{category:"Sm",mappings:{"default":{"default":"succeeds or equivalent to"}},key:"227F"},{category:"Sm",mappings:{"default":{"default":"does not precede"}},key:"2280"},{category:"Sm",mappings:{"default":{"default":"does not succeed"}},key:"2281"},{category:"Sm",mappings:{"default":{"default":"subset of"}},key:"2282"},{category:"Sm",mappings:{"default":{"default":"superset of"}},key:"2283"},{category:"Sm", +mappings:{"default":{"default":"not a subset of"}},key:"2284"},{category:"Sm",mappings:{"default":{"default":"not a superset of"}},key:"2285"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to"}},key:"2286"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to"}},key:"2287"},{category:"Sm",mappings:{"default":{"default":"neither a subset of nor equal to"}},key:"2288"},{category:"Sm",mappings:{"default":{"default":"neither a superset of nor equal to"}},key:"2289"}, +{category:"Sm",mappings:{"default":{"default":"subset of with not equal to",alternative:"subset of or not equal to","short":"subset of or not equal to"}},key:"228A"},{category:"Sm",mappings:{"default":{"default":"superset of with not equal to",alternative:"superset of or not equal to","short":"superset of or not equal to"}},key:"228B"},{category:"Sm",mappings:{"default":{"default":"multiset"}},key:"228C"},{category:"Sm",mappings:{"default":{"default":"multiset multiplication"}},key:"228D"},{category:"Sm", +mappings:{"default":{"default":"multiset union"}},key:"228E"},{category:"Sm",mappings:{"default":{"default":"square image of"}},key:"228F"},{category:"Sm",mappings:{"default":{"default":"square original of"}},key:"2290"},{category:"Sm",mappings:{"default":{"default":"square image of or equal to"}},key:"2291"},{category:"Sm",mappings:{"default":{"default":"square original of or equal to"}},key:"2292"},{category:"Sm",mappings:{"default":{"default":"square cap"}},key:"2293"},{category:"Sm",mappings:{"default":{"default":"square cup"}}, +key:"2294"},{category:"Sm",mappings:{"default":{"default":"circled plus"}},key:"2295"},{category:"Sm",mappings:{"default":{"default":"circled minus"}},key:"2296"},{category:"Sm",mappings:{"default":{"default":"circled times"}},key:"2297"},{category:"Sm",mappings:{"default":{"default":"circled division slash"}},key:"2298"},{category:"Sm",mappings:{"default":{"default":"circled dot operator"}},key:"2299"},{category:"Sm",mappings:{"default":{"default":"circled ring operator"}},key:"229A"},{category:"Sm", +mappings:{"default":{"default":"circled asterisk operator"}},key:"229B"},{category:"Sm",mappings:{"default":{"default":"circled equals"}},key:"229C"},{category:"Sm",mappings:{"default":{"default":"circled dash"}},key:"229D"},{category:"Sm",mappings:{"default":{"default":"squared plus"}},key:"229E"},{category:"Sm",mappings:{"default":{"default":"squared minus"}},key:"229F"},{category:"Sm",mappings:{"default":{"default":"squared times"}},key:"22A0"},{category:"Sm",mappings:{"default":{"default":"squared dot operator"}}, +key:"22A1"},{category:"Sm",mappings:{"default":{"default":"right tack"}},key:"22A2"},{category:"Sm",mappings:{"default":{"default":"left tack"}},key:"22A3"},{category:"Sm",mappings:{"default":{"default":"down tack"}},key:"22A4"},{category:"Sm",mappings:{"default":{"default":"up tack"}},key:"22A5"},{category:"Sm",mappings:{"default":{"default":"assertion"}},key:"22A6"},{category:"Sm",mappings:{"default":{"default":"models"}},key:"22A7"},{category:"Sm",mappings:{"default":{"default":"true"}},key:"22A8"}, +{category:"Sm",mappings:{"default":{"default":"forces"}},key:"22A9"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar right turnstile"}},key:"22AA"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double right turnstile"}},key:"22AB"},{category:"Sm",mappings:{"default":{"default":"does not prove"}},key:"22AC"},{category:"Sm",mappings:{"default":{"default":"not true"}},key:"22AD"},{category:"Sm",mappings:{"default":{"default":"does not force"}},key:"22AE"},{category:"Sm", +mappings:{"default":{"default":"negated double vertical bar double right turnstile"}},key:"22AF"},{category:"Sm",mappings:{"default":{"default":"precedes under relation"}},key:"22B0"},{category:"Sm",mappings:{"default":{"default":"succeeds under relation"}},key:"22B1"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of"}},key:"22B2"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup"}},key:"22B3"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of or equal to"}}, +key:"22B4"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup or equal to"}},key:"22B5"},{category:"Sm",mappings:{"default":{"default":"original of"}},key:"22B6"},{category:"Sm",mappings:{"default":{"default":"image of"}},key:"22B7"},{category:"Sm",mappings:{"default":{"default":"multimap"}},key:"22B8"},{category:"Sm",mappings:{"default":{"default":"hermitian conjugate matrix"}},key:"22B9"},{category:"Sm",mappings:{"default":{"default":"intercalate"}},key:"22BA"},{category:"Sm", +mappings:{"default":{"default":"xor"}},key:"22BB"},{category:"Sm",mappings:{"default":{"default":"nand"}},key:"22BC"},{category:"Sm",mappings:{"default":{"default":"nor"}},key:"22BD"},{category:"Sm",mappings:{"default":{"default":"right triangle"}},key:"22BF"},{category:"Sm",mappings:{"default":{"default":"n ary logical and"}},key:"22C0"},{category:"Sm",mappings:{"default":{"default":"n ary logical or"}},key:"22C1"},{category:"Sm",mappings:{"default":{"default":"n ary intersection"}},key:"22C2"}, +{category:"Sm",mappings:{"default":{"default":"n ary union"}},key:"22C3"},{category:"Sm",mappings:{"default":{"default":"diamond operator"}},key:"22C4"},{category:"Sm",mappings:{"default":{"default":"dot operator"}},key:"22C5"},{category:"Sm",mappings:{"default":{"default":"star operator"}},key:"22C6"},{category:"Sm",mappings:{"default":{"default":"division times"}},key:"22C7"},{category:"Sm",mappings:{"default":{"default":"bowtie"}},key:"22C8"},{category:"Sm",mappings:{"default":{"default":"left normal factor semidirect product"}}, +key:"22C9"},{category:"Sm",mappings:{"default":{"default":"right normal factor semidirect product"}},key:"22CA"},{category:"Sm",mappings:{"default":{"default":"left semidirect product"}},key:"22CB"},{category:"Sm",mappings:{"default":{"default":"right semidirect product"}},key:"22CC"},{category:"Sm",mappings:{"default":{"default":"reversed tilde equals"}},key:"22CD"},{category:"Sm",mappings:{"default":{"default":"curly logical or"}},key:"22CE"},{category:"Sm",mappings:{"default":{"default":"curly logical and"}}, +key:"22CF"},{category:"Sm",mappings:{"default":{"default":"double subset"}},key:"22D0"},{category:"Sm",mappings:{"default":{"default":"double superset"}},key:"22D1"},{category:"Sm",mappings:{"default":{"default":"double intersection"}},key:"22D2"},{category:"Sm",mappings:{"default":{"default":"double union"}},key:"22D3"},{category:"Sm",mappings:{"default":{"default":"pitchfork"}},key:"22D4"},{category:"Sm",mappings:{"default":{"default":"equal and parallel to"}},key:"22D5"},{category:"Sm",mappings:{"default":{"default":"less than with dot", +alternative:"less than with dot","short":"less than dot"}},key:"22D6"},{category:"Sm",mappings:{"default":{"default":"greater than with dot",alternative:"greater than with dot","short":"greater than dot"}},key:"22D7"},{category:"Sm",mappings:{"default":{"default":"very much less than",alternative:"very much less than"}},key:"22D8"},{category:"Sm",mappings:{"default":{"default":"very much greater than",alternative:"very much greater than"}},key:"22D9"},{category:"Sm",mappings:{"default":{"default":"less than equal to or greater than", +alternative:"less than equal to or greater than"}},key:"22DA"},{category:"Sm",mappings:{"default":{"default":"greater than equal to or less than",alternative:"greater than equal to or less than"}},key:"22DB"},{category:"Sm",mappings:{"default":{"default":"equal to or less than",alternative:"equal to or less than"}},key:"22DC"},{category:"Sm",mappings:{"default":{"default":"equal to or greater than",alternative:"equal to or greater than"}},key:"22DD"},{category:"Sm",mappings:{"default":{"default":"equal to or precedes"}}, +key:"22DE"},{category:"Sm",mappings:{"default":{"default":"equal to or succeeds"}},key:"22DF"},{category:"Sm",mappings:{"default":{"default":"does not precede or equal"}},key:"22E0"},{category:"Sm",mappings:{"default":{"default":"does not succeed or equal"}},key:"22E1"},{category:"Sm",mappings:{"default":{"default":"not square image of or equal to"}},key:"22E2"},{category:"Sm",mappings:{"default":{"default":"not square original of or equal to"}},key:"22E3"},{category:"Sm",mappings:{"default":{"default":"square image of or not equal to"}}, +key:"22E4"},{category:"Sm",mappings:{"default":{"default":"square original of or not equal to"}},key:"22E5"},{category:"Sm",mappings:{"default":{"default":"less than but not equivalent to",alternative:"less than but not equivalent to"}},key:"22E6"},{category:"Sm",mappings:{"default":{"default":"greater than but not equivalent to",alternative:"greater than but not equivalent to"}},key:"22E7"},{category:"Sm",mappings:{"default":{"default":"precedes but not equivalent to"}},key:"22E8"},{category:"Sm", +mappings:{"default":{"default":"succeeds but not equivalent to"}},key:"22E9"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of"}},key:"22EA"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup"}},key:"22EB"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of or equal to"}},key:"22EC"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup or equal"}},key:"22ED"},{category:"Sm",mappings:{"default":{"default":"vertical ellipsis", +"short":"dot dot dot"}},key:"22EE"},{category:"Sm",mappings:{"default":{"default":"midline horizontal ellipsis","short":"dot dot dot"}},key:"22EF"},{category:"Sm",mappings:{"default":{"default":"up right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F0"},{category:"Sm",mappings:{"default":{"default":"down right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F1"},{category:"Sm",mappings:{"default":{"default":"element of with long horizontal stroke"}},key:"22F2"},{category:"Sm", +mappings:{"default":{"default":"element of with vertical bar at end of horizontal stroke"}},key:"22F3"},{category:"Sm",mappings:{"default":{"default":"small element of with vertical bar at end of horizontal stroke"}},key:"22F4"},{category:"Sm",mappings:{"default":{"default":"element of with dot above"}},key:"22F5"},{category:"Sm",mappings:{"default":{"default":"element of with overbar"}},key:"22F6"},{category:"Sm",mappings:{"default":{"default":"small element of with overbar"}},key:"22F7"},{category:"Sm", +mappings:{"default":{"default":"element of with underbar"}},key:"22F8"},{category:"Sm",mappings:{"default":{"default":"element of with two horizontal strokes"}},key:"22F9"},{category:"Sm",mappings:{"default":{"default":"contains with long horizontal stroke"}},key:"22FA"},{category:"Sm",mappings:{"default":{"default":"contains with vertical bar at end of horizontal stroke"}},key:"22FB"},{category:"Sm",mappings:{"default":{"default":"small contains with vertical bar at end of horizontal stroke"}},key:"22FC"}, +{category:"Sm",mappings:{"default":{"default":"contains with overbar"}},key:"22FD"},{category:"Sm",mappings:{"default":{"default":"small contains with overbar"}},key:"22FE"},{category:"Sm",mappings:{"default":{"default":"z notation bag membership"}},key:"22FF"},{category:"So",mappings:{"default":{"default":"diameter sign","short":"diameter"}},key:"2300"},{category:"So",mappings:{"default":{"default":"house"}},key:"2302"},{category:"So",mappings:{"default":{"default":"projective"}},key:"2305"},{category:"So", +mappings:{"default":{"default":"perspective"}},key:"2306"},{category:"So",mappings:{"default":{"default":"wavy line"}},key:"2307"},{category:"So",mappings:{"default":{"default":"reversed not sign","short":"reversed not"}},key:"2310"},{category:"So",mappings:{"default":{"default":"square lozenge"}},key:"2311"},{category:"So",mappings:{"default":{"default":"arc"}},key:"2312"},{category:"So",mappings:{"default":{"default":"segment"}},key:"2313"},{category:"So",mappings:{"default":{"default":"sector"}}, +key:"2314"},{category:"So",mappings:{"default":{"default":"heavy plus sign",alternative:"heavy plus","short":"bold plus"}},key:"2795"},{category:"So",mappings:{"default":{"default":"heavy minus sign",alternative:"heavy minus","short":"bold minus"}},key:"2796"},{category:"So",mappings:{"default":{"default":"heavy division sign",alternative:"heavy division","short":"bold division"}},key:"2797"},{category:"So",mappings:{"default":{"default":"curly loop"}},key:"27B0"},{category:"So",mappings:{"default":{"default":"double curly loop"}}, +key:"27BF"},{category:"Sm",mappings:{"default":{"default":"white triangle containing small white triangle"}},key:"27C1"},{category:"Sm",mappings:{"default":{"default":"perpendicular"}},key:"27C2"},{category:"Sm",mappings:{"default":{"default":"open subset"}},key:"27C3"},{category:"Sm",mappings:{"default":{"default":"open superset"}},key:"27C4"},{category:"Sm",mappings:{"default":{"default":"or with dot inside"}},key:"27C7"},{category:"Sm",mappings:{"default":{"default":"reverse solidus preceding subset"}}, +key:"27C8"},{category:"Sm",mappings:{"default":{"default":"superset preceding solidus"}},key:"27C9"},{category:"Sm",mappings:{"default":{"default":"vertical bar with horizontal stroke"}},key:"27CA"},{category:"Sm",mappings:{"default":{"default":"mathematical rising diagonal"}},key:"27CB"},{category:"Sm",mappings:{"default":{"default":"long division"}},key:"27CC"},{category:"Sm",mappings:{"default":{"default":"mathematical falling diagonal"}},key:"27CD"},{category:"Sm",mappings:{"default":{"default":"squared logical and"}}, +key:"27CE"},{category:"Sm",mappings:{"default":{"default":"squared logical or"}},key:"27CF"},{category:"Sm",mappings:{"default":{"default":"white diamond with centered dot"}},key:"27D0"},{category:"Sm",mappings:{"default":{"default":"and with dot"}},key:"27D1"},{category:"Sm",mappings:{"default":{"default":"element of opening upwards"}},key:"27D2"},{category:"Sm",mappings:{"default":{"default":"lower right corner with dot"}},key:"27D3"},{category:"Sm",mappings:{"default":{"default":"upper left corner with dot"}}, +key:"27D4"},{category:"Sm",mappings:{"default":{"default":"left outer join"}},key:"27D5"},{category:"Sm",mappings:{"default":{"default":"right outer join"}},key:"27D6"},{category:"Sm",mappings:{"default":{"default":"full outer join"}},key:"27D7"},{category:"Sm",mappings:{"default":{"default":"large up tack"}},key:"27D8"},{category:"Sm",mappings:{"default":{"default":"large down tack"}},key:"27D9"},{category:"Sm",mappings:{"default":{"default":"left and right double turnstile"}},key:"27DA"},{category:"Sm", +mappings:{"default":{"default":"left and right tack"}},key:"27DB"},{category:"Sm",mappings:{"default":{"default":"left multimap"}},key:"27DC"},{category:"Sm",mappings:{"default":{"default":"long right tack"}},key:"27DD"},{category:"Sm",mappings:{"default":{"default":"long left tack"}},key:"27DE"},{category:"Sm",mappings:{"default":{"default":"up tack with circle above"}},key:"27DF"},{category:"Sm",mappings:{"default":{"default":"lozenge divided by horizontal rule"}},key:"27E0"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond"}}, +key:"27E1"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with leftwards tick"}},key:"27E2"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with rightwards tick"}},key:"27E3"},{category:"Sm",mappings:{"default":{"default":"white square with leftwards tick"}},key:"27E4"},{category:"Sm",mappings:{"default":{"default":"white square with rightwards tick"}},key:"27E5"},{category:"Sm",mappings:{"default":{"default":"rising diagonal crossing falling diagonal"}}, +key:"292B"},{category:"Sm",mappings:{"default":{"default":"falling diagonal crossing rising diagonal"}},key:"292C"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar delimiter"}},key:"2980"},{category:"Sm",mappings:{"default":{"default":"z notation spot"}},key:"2981"},{category:"Sm",mappings:{"default":{"default":"z notation type colon"}},key:"2982"},{category:"Sm",mappings:{"default":{"default":"dotted fence"}},key:"2999"},{category:"Sm",mappings:{"default":{"default":"vertical zigzag line"}}, +key:"299A"},{category:"Sm",mappings:{"default":{"default":"reversed empty set"}},key:"29B0"},{category:"Sm",mappings:{"default":{"default":"empty set with overbar"}},key:"29B1"},{category:"Sm",mappings:{"default":{"default":"empty set with small circle above"}},key:"29B2"},{category:"Sm",mappings:{"default":{"default":"circle with horizontal bar"}},key:"29B5"},{category:"Sm",mappings:{"default":{"default":"circled vertical bar"}},key:"29B6"},{category:"Sm",mappings:{"default":{"default":"circled parallel"}}, +key:"29B7"},{category:"Sm",mappings:{"default":{"default":"circled reverse solidus"}},key:"29B8"},{category:"Sm",mappings:{"default":{"default":"circled perpendicular"}},key:"29B9"},{category:"Sm",mappings:{"default":{"default":"circle divided by horizontal bar and top half divided by vertical bar"}},key:"29BA"},{category:"Sm",mappings:{"default":{"default":"circle with superimposed x"}},key:"29BB"},{category:"Sm",mappings:{"default":{"default":"circled anticlockwise rotated division sign","short":"circled anticlockwise rotated division"}}, +key:"29BC"},{category:"Sm",mappings:{"default":{"default":"circled white bullet"}},key:"29BE"},{category:"Sm",mappings:{"default":{"default":"circled bullet"}},key:"29BF"},{category:"Sm",mappings:{"default":{"default":"circled less than"}},key:"29C0"},{category:"Sm",mappings:{"default":{"default":"circled greater than"}},key:"29C1"},{category:"Sm",mappings:{"default":{"default":"circle with small circle to the right"}},key:"29C2"},{category:"Sm",mappings:{"default":{"default":"circle with two horizontal strokes to the right"}}, +key:"29C3"},{category:"Sm",mappings:{"default":{"default":"squared rising diagonal slash"}},key:"29C4"},{category:"Sm",mappings:{"default":{"default":"squared falling diagonal slash"}},key:"29C5"},{category:"Sm",mappings:{"default":{"default":"squared asterisk"}},key:"29C6"},{category:"Sm",mappings:{"default":{"default":"squared small circle"}},key:"29C7"},{category:"Sm",mappings:{"default":{"default":"squared square"}},key:"29C8"},{category:"Sm",mappings:{"default":{"default":"two joined squares"}}, +key:"29C9"},{category:"Sm",mappings:{"default":{"default":"triangle with dot above"}},key:"29CA"},{category:"Sm",mappings:{"default":{"default":"triangle with underbar"}},key:"29CB"},{category:"Sm",mappings:{"default":{"default":"s in triangle"}},key:"29CC"},{category:"Sm",mappings:{"default":{"default":"triangle with serifs at bottom"}},key:"29CD"},{category:"Sm",mappings:{"default":{"default":"right triangle above left triangle"}},key:"29CE"},{category:"Sm",mappings:{"default":{"default":"left triangle beside vertical bar"}}, +key:"29CF"},{category:"Sm",mappings:{"default":{"default":"vertical bar beside right triangle"}},key:"29D0"},{category:"Sm",mappings:{"default":{"default":"bowtie with left half black"}},key:"29D1"},{category:"Sm",mappings:{"default":{"default":"bowtie with right half black"}},key:"29D2"},{category:"Sm",mappings:{"default":{"default":"black bowtie"}},key:"29D3"},{category:"Sm",mappings:{"default":{"default":"times with left half black"}},key:"29D4"},{category:"Sm",mappings:{"default":{"default":"times with right half black"}}, +key:"29D5"},{category:"Sm",mappings:{"default":{"default":"white hourglass"}},key:"29D6"},{category:"Sm",mappings:{"default":{"default":"black hourglass"}},key:"29D7"},{category:"Sm",mappings:{"default":{"default":"incomplete infinity"}},key:"29DC"},{category:"Sm",mappings:{"default":{"default":"tie over infinity"}},key:"29DD"},{category:"Sm",mappings:{"default":{"default":"infinity negated with vertical bar"}},key:"29DE"},{category:"Sm",mappings:{"default":{"default":"double ended multimap"}},key:"29DF"}, +{category:"Sm",mappings:{"default":{"default":"square with contoured outline"}},key:"29E0"},{category:"Sm",mappings:{"default":{"default":"increases as"}},key:"29E1"},{category:"Sm",mappings:{"default":{"default":"shuffle product"}},key:"29E2"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel"}},key:"29E3"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel with tilde above"}},key:"29E4"},{category:"Sm",mappings:{"default":{"default":"identical to and slanted parallel"}}, +key:"29E5"},{category:"Sm",mappings:{"default":{"default":"gleich stark"}},key:"29E6"},{category:"Sm",mappings:{"default":{"default":"thermodynamic"}},key:"29E7"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with left half black"}},key:"29E8"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with right half black"}},key:"29E9"},{category:"Sm",mappings:{"default":{"default":"black lozenge"}},key:"29EB"},{category:"Sm",mappings:{"default":{"default":"error barred white square"}}, +key:"29EE"},{category:"Sm",mappings:{"default":{"default":"error barred black square"}},key:"29EF"},{category:"Sm",mappings:{"default":{"default":"error barred white diamond"}},key:"29F0"},{category:"Sm",mappings:{"default":{"default":"error barred black diamond"}},key:"29F1"},{category:"Sm",mappings:{"default":{"default":"error barred white circle"}},key:"29F2"},{category:"Sm",mappings:{"default":{"default":"error barred black circle"}},key:"29F3"},{category:"Sm",mappings:{"default":{"default":"rule delayed"}}, +key:"29F4"},{category:"Sm",mappings:{"default":{"default":"reverse solidus operator"}},key:"29F5"},{category:"Sm",mappings:{"default":{"default":"solidus with overbar"}},key:"29F6"},{category:"Sm",mappings:{"default":{"default":"reverse solidus with horizontal stroke"}},key:"29F7"},{category:"Sm",mappings:{"default":{"default":"big solidus"}},key:"29F8"},{category:"Sm",mappings:{"default":{"default":"big reverse solidus"}},key:"29F9"},{category:"Sm",mappings:{"default":{"default":"double plus"}}, +key:"29FA"},{category:"Sm",mappings:{"default":{"default":"triple plus"}},key:"29FB"},{category:"Sm",mappings:{"default":{"default":"tiny"}},key:"29FE"},{category:"Sm",mappings:{"default":{"default":"miny"}},key:"29FF"},{category:"Sm",mappings:{"default":{"default":"n ary circled dot operator"}},key:"2A00"},{category:"Sm",mappings:{"default":{"default":"n ary circled plus operator"}},key:"2A01"},{category:"Sm",mappings:{"default":{"default":"n ary circled times operator"}},key:"2A02"},{category:"Sm", +mappings:{"default":{"default":"n ary union operator with dot"}},key:"2A03"},{category:"Sm",mappings:{"default":{"default":"n ary union operator with plus"}},key:"2A04"},{category:"Sm",mappings:{"default":{"default":"n ary square intersection operator"}},key:"2A05"},{category:"Sm",mappings:{"default":{"default":"n ary square union operator"}},key:"2A06"},{category:"Sm",mappings:{"default":{"default":"two logical and operator"}},key:"2A07"},{category:"Sm",mappings:{"default":{"default":"two logical or operator"}}, +key:"2A08"},{category:"Sm",mappings:{"default":{"default":"n ary times operator"}},key:"2A09"},{category:"Sm",mappings:{"default":{"default":"modulo two sum"}},key:"2A0A"},{category:"Sm",mappings:{"default":{"default":"summation with integral"}},key:"2A0B"},{category:"Sm",mappings:{"default":{"default":"quadruple integral operator"}},key:"2A0C"},{category:"Sm",mappings:{"default":{"default":"finite part integral"}},key:"2A0D"},{category:"Sm",mappings:{"default":{"default":"integral with double stroke"}}, +key:"2A0E"},{category:"Sm",mappings:{"default":{"default":"integral average with slash"}},key:"2A0F"},{category:"Sm",mappings:{"default":{"default":"circulation function"}},key:"2A10"},{category:"Sm",mappings:{"default":{"default":"anticlockwise integration"}},key:"2A11"},{category:"Sm",mappings:{"default":{"default":"line integration with rectangular path around pole"}},key:"2A12"},{category:"Sm",mappings:{"default":{"default":"line integration with semicircular path around pole"}},key:"2A13"},{category:"Sm", +mappings:{"default":{"default":"line integration not including the pole"}},key:"2A14"},{category:"Sm",mappings:{"default":{"default":"integral around a point operator"}},key:"2A15"},{category:"Sm",mappings:{"default":{"default":"quaternion integral operator"}},key:"2A16"},{category:"Sm",mappings:{"default":{"default":"integral with times sign","short":"integral with times"}},key:"2A18"},{category:"Sm",mappings:{"default":{"default":"integral with intersection"}},key:"2A19"},{category:"Sm",mappings:{"default":{"default":"integral with union"}}, +key:"2A1A"},{category:"Sm",mappings:{"default":{"default":"integral with overbar"}},key:"2A1B"},{category:"Sm",mappings:{"default":{"default":"integral with underbar"}},key:"2A1C"},{category:"Sm",mappings:{"default":{"default":"join"}},key:"2A1D"},{category:"Sm",mappings:{"default":{"default":"large left triangle operator"}},key:"2A1E"},{category:"Sm",mappings:{"default":{"default":"z notation schema composition"}},key:"2A1F"},{category:"Sm",mappings:{"default":{"default":"z notation schema piping"}}, +key:"2A20"},{category:"Sm",mappings:{"default":{"default":"z notation schema projection"}},key:"2A21"},{category:"Sm",mappings:{"default":{"default":"plus sign with small circle above","short":"plus with circle above"}},key:"2A22"},{category:"Sm",mappings:{"default":{"default":"plus sign with circumflex accent above","short":"plus hat"}},key:"2A23"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde above","short":"plus tilde"}},key:"2A24"},{category:"Sm",mappings:{"default":{"default":"plus sign with dot below", +"short":"plus underdot"}},key:"2A25"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde below"}},key:"2A26"},{category:"Sm",mappings:{"default":{"default":"plus sign with subscript two"}},key:"2A27"},{category:"Sm",mappings:{"default":{"default":"plus sign with black triangle"}},key:"2A28"},{category:"Sm",mappings:{"default":{"default":"minus sign with comma above"}},key:"2A29"},{category:"Sm",mappings:{"default":{"default":"minus sign with dot below"}},key:"2A2A"},{category:"Sm", +mappings:{"default":{"default":"minus sign with falling dots"}},key:"2A2B"},{category:"Sm",mappings:{"default":{"default":"minus sign with rising dots"}},key:"2A2C"},{category:"Sm",mappings:{"default":{"default":"plus sign in left half circle"}},key:"2A2D"},{category:"Sm",mappings:{"default":{"default":"plus sign in right half circle"}},key:"2A2E"},{category:"Sm",mappings:{"default":{"default":"vector or cross product"}},key:"2A2F"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with dot above"}}, +key:"2A30"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with underbar"}},key:"2A31"},{category:"Sm",mappings:{"default":{"default":"semidirect product with bottom closed"}},key:"2A32"},{category:"Sm",mappings:{"default":{"default":"smash product"}},key:"2A33"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in left half circle"}},key:"2A34"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in right half circle"}},key:"2A35"},{category:"Sm", +mappings:{"default":{"default":"circled multiplication sign with circumflex accent"}},key:"2A36"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in double circle"}},key:"2A37"},{category:"Sm",mappings:{"default":{"default":"circled division sign","short":"circled division"}},key:"2A38"},{category:"Sm",mappings:{"default":{"default":"plus sign in triangle"}},key:"2A39"},{category:"Sm",mappings:{"default":{"default":"minus sign in triangle"}},key:"2A3A"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in triangle"}}, +key:"2A3B"},{category:"Sm",mappings:{"default":{"default":"interior product"}},key:"2A3C"},{category:"Sm",mappings:{"default":{"default":"righthand interior product"}},key:"2A3D"},{category:"Sm",mappings:{"default":{"default":"z notation relational composition"}},key:"2A3E"},{category:"Sm",mappings:{"default":{"default":"amalgamation or coproduct"}},key:"2A3F"},{category:"Sm",mappings:{"default":{"default":"intersection with dot"}},key:"2A40"},{category:"Sm",mappings:{"default":{"default":"union with minus sign", +"short":"union with minus"}},key:"2A41"},{category:"Sm",mappings:{"default":{"default":"union with overbar"}},key:"2A42"},{category:"Sm",mappings:{"default":{"default":"intersection with overbar"}},key:"2A43"},{category:"Sm",mappings:{"default":{"default":"intersection with logical and"}},key:"2A44"},{category:"Sm",mappings:{"default":{"default":"union with logical or"}},key:"2A45"},{category:"Sm",mappings:{"default":{"default":"union above intersection"}},key:"2A46"},{category:"Sm",mappings:{"default":{"default":"intersection above union"}}, +key:"2A47"},{category:"Sm",mappings:{"default":{"default":"union above bar above intersection"}},key:"2A48"},{category:"Sm",mappings:{"default":{"default":"intersection above bar above union"}},key:"2A49"},{category:"Sm",mappings:{"default":{"default":"union beside and joined with union"}},key:"2A4A"},{category:"Sm",mappings:{"default":{"default":"intersection beside and joined with intersection"}},key:"2A4B"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs"}},key:"2A4C"}, +{category:"Sm",mappings:{"default":{"default":"closed intersection with serifs"}},key:"2A4D"},{category:"Sm",mappings:{"default":{"default":"double square intersection"}},key:"2A4E"},{category:"Sm",mappings:{"default":{"default":"double square union"}},key:"2A4F"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs and smash product"}},key:"2A50"},{category:"Sm",mappings:{"default":{"default":"logical and with dot above"}},key:"2A51"},{category:"Sm",mappings:{"default":{"default":"logical or with dot above"}}, +key:"2A52"},{category:"Sm",mappings:{"default":{"default":"double logical and"}},key:"2A53"},{category:"Sm",mappings:{"default":{"default":"double logical or"}},key:"2A54"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical and"}},key:"2A55"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical or"}},key:"2A56"},{category:"Sm",mappings:{"default":{"default":"sloping large or"}},key:"2A57"},{category:"Sm",mappings:{"default":{"default":"sloping large and"}}, +key:"2A58"},{category:"Sm",mappings:{"default":{"default":"logical or overlapping logical and"}},key:"2A59"},{category:"Sm",mappings:{"default":{"default":"logical and with middle stem"}},key:"2A5A"},{category:"Sm",mappings:{"default":{"default":"logical or with middle stem"}},key:"2A5B"},{category:"Sm",mappings:{"default":{"default":"logical and with horizontal dash"}},key:"2A5C"},{category:"Sm",mappings:{"default":{"default":"logical or with horizontal dash"}},key:"2A5D"},{category:"Sm",mappings:{"default":{"default":"logical and with double overbar"}}, +key:"2A5E"},{category:"Sm",mappings:{"default":{"default":"logical and with underbar"}},key:"2A5F"},{category:"Sm",mappings:{"default":{"default":"logical and with double underbar"}},key:"2A60"},{category:"Sm",mappings:{"default":{"default":"small vee with underbar"}},key:"2A61"},{category:"Sm",mappings:{"default":{"default":"logical or with double overbar"}},key:"2A62"},{category:"Sm",mappings:{"default":{"default":"logical or with double underbar"}},key:"2A63"},{category:"Sm",mappings:{"default":{"default":"z notation domain antirestriction"}}, +key:"2A64"},{category:"Sm",mappings:{"default":{"default":"z notation range antirestriction"}},key:"2A65"},{category:"Sm",mappings:{"default":{"default":"equals sign with dot below"}},key:"2A66"},{category:"Sm",mappings:{"default":{"default":"identical with dot above"}},key:"2A67"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with double vertical stroke"}},key:"2A68"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with triple vertical stroke"}},key:"2A69"}, +{category:"Sm",mappings:{"default":{"default":"tilde operator with dot above"}},key:"2A6A"},{category:"Sm",mappings:{"default":{"default":"tilde operator with rising dots"}},key:"2A6B"},{category:"Sm",mappings:{"default":{"default":"similar minus similar"}},key:"2A6C"},{category:"Sm",mappings:{"default":{"default":"congruent with dot above"}},key:"2A6D"},{category:"Sm",mappings:{"default":{"default":"equals with asterisk"}},key:"2A6E"},{category:"Sm",mappings:{"default":{"default":"almost equal to with circumflex accent", +"short":"almost equal hat"}},key:"2A6F"},{category:"Sm",mappings:{"default":{"default":"approximately equal or equal to"}},key:"2A70"},{category:"Sm",mappings:{"default":{"default":"equals sign above plus sign","short":"equals above plus"}},key:"2A71"},{category:"Sm",mappings:{"default":{"default":"plus sign above equals sign","short":"plus above equals"}},key:"2A72"},{category:"Sm",mappings:{"default":{"default":"equals sign above tilde operator","short":"equals above tilde operator"}},key:"2A73"}, +{category:"Sm",mappings:{"default":{"default":"double colon equal"}},key:"2A74"},{category:"Sm",mappings:{"default":{"default":"two consecutive equals signs","short":"two consecutive equals"}},key:"2A75"},{category:"Sm",mappings:{"default":{"default":"three consecutive equals signs","short":"three consecutive equals"}},key:"2A76"},{category:"Sm",mappings:{"default":{"default":"equals sign with two dots above and two dots below"}},key:"2A77"},{category:"Sm",mappings:{"default":{"default":"equivalent with four dots above"}}, +key:"2A78"},{category:"Sm",mappings:{"default":{"default":"less than with circle inside"}},key:"2A79"},{category:"Sm",mappings:{"default":{"default":"greater than with circle inside"}},key:"2A7A"},{category:"Sm",mappings:{"default":{"default":"less than with question mark above"}},key:"2A7B"},{category:"Sm",mappings:{"default":{"default":"greater than with question mark above"}},key:"2A7C"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to"}},key:"2A7D"},{category:"Sm", +mappings:{"default":{"default":"greater than or slanted equal to"}},key:"2A7E"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot inside"}},key:"2A7F"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot inside"}},key:"2A80"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above"}},key:"2A81"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above"}}, +key:"2A82"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above right"}},key:"2A83"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above left"}},key:"2A84"},{category:"Sm",mappings:{"default":{"default":"less than or approximate"}},key:"2A85"},{category:"Sm",mappings:{"default":{"default":"greater than or approximate"}},key:"2A86"},{category:"Sm",mappings:{"default":{"default":"less than and single line not equal to"}}, +key:"2A87"},{category:"Sm",mappings:{"default":{"default":"greater than and single line not equal to"}},key:"2A88"},{category:"Sm",mappings:{"default":{"default":"less than and not approximate"}},key:"2A89"},{category:"Sm",mappings:{"default":{"default":"greater than and not approximate"}},key:"2A8A"},{category:"Sm",mappings:{"default":{"default":"less than above double line equal above greater than"}},key:"2A8B"},{category:"Sm",mappings:{"default":{"default":"greater than above double line equal above less than"}}, +key:"2A8C"},{category:"Sm",mappings:{"default":{"default":"less than above similar or equal"}},key:"2A8D"},{category:"Sm",mappings:{"default":{"default":"greater than above similar or equal"}},key:"2A8E"},{category:"Sm",mappings:{"default":{"default":"less than above similar above greater than"}},key:"2A8F"},{category:"Sm",mappings:{"default":{"default":"greater than above similar above less than"}},key:"2A90"},{category:"Sm",mappings:{"default":{"default":"less than above greater than above double line equal"}}, +key:"2A91"},{category:"Sm",mappings:{"default":{"default":"greater than above less than above double line equal"}},key:"2A92"},{category:"Sm",mappings:{"default":{"default":"less than above slanted equal above greater than above slanted equal"}},key:"2A93"},{category:"Sm",mappings:{"default":{"default":"greater than above slanted equal above less than above slanted equal"}},key:"2A94"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than"}},key:"2A95"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than"}}, +key:"2A96"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than with dot inside"}},key:"2A97"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than with dot inside"}},key:"2A98"},{category:"Sm",mappings:{"default":{"default":"double line equal to or less than"}},key:"2A99"},{category:"Sm",mappings:{"default":{"default":"double line equal to or greater than"}},key:"2A9A"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or less than"}}, +key:"2A9B"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or greater than"}},key:"2A9C"},{category:"Sm",mappings:{"default":{"default":"similar or less than"}},key:"2A9D"},{category:"Sm",mappings:{"default":{"default":"similar or greater than"}},key:"2A9E"},{category:"Sm",mappings:{"default":{"default":"similar above less than above equals sign"}},key:"2A9F"},{category:"Sm",mappings:{"default":{"default":"similar above greater than above equals sign"}},key:"2AA0"},{category:"Sm", +mappings:{"default":{"default":"double nested less than"}},key:"2AA1"},{category:"Sm",mappings:{"default":{"default":"double nested greater than"}},key:"2AA2"},{category:"Sm",mappings:{"default":{"default":"double nested less than with underbar"}},key:"2AA3"},{category:"Sm",mappings:{"default":{"default":"greater than overlapping less than"}},key:"2AA4"},{category:"Sm",mappings:{"default":{"default":"greater than beside less than"}},key:"2AA5"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve"}}, +key:"2AA6"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve"}},key:"2AA7"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve above slanted equal"}},key:"2AA8"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve above slanted equal"}},key:"2AA9"},{category:"Sm",mappings:{"default":{"default":"smaller than"}},key:"2AAA"},{category:"Sm",mappings:{"default":{"default":"larger than"}},key:"2AAB"},{category:"Sm",mappings:{"default":{"default":"smaller than or equal to"}}, +key:"2AAC"},{category:"Sm",mappings:{"default":{"default":"larger than or equal to"}},key:"2AAD"},{category:"Sm",mappings:{"default":{"default":"equals sign with bumpy above"}},key:"2AAE"},{category:"Sm",mappings:{"default":{"default":"precedes above single line equals sign"}},key:"2AAF"},{category:"Sm",mappings:{"default":{"default":"succeeds above single line equals sign"}},key:"2AB0"},{category:"Sm",mappings:{"default":{"default":"precedes above single line not equal to"}},key:"2AB1"},{category:"Sm", +mappings:{"default":{"default":"succeeds above single line not equal to"}},key:"2AB2"},{category:"Sm",mappings:{"default":{"default":"precedes above equals sign"}},key:"2AB3"},{category:"Sm",mappings:{"default":{"default":"succeeds above equals sign"}},key:"2AB4"},{category:"Sm",mappings:{"default":{"default":"precedes above not equal to"}},key:"2AB5"},{category:"Sm",mappings:{"default":{"default":"succeeds above not equal to"}},key:"2AB6"},{category:"Sm",mappings:{"default":{"default":"precedes above almost equal to"}}, +key:"2AB7"},{category:"Sm",mappings:{"default":{"default":"succeeds above almost equal to"}},key:"2AB8"},{category:"Sm",mappings:{"default":{"default":"precedes above not almost equal to"}},key:"2AB9"},{category:"Sm",mappings:{"default":{"default":"succeeds above not almost equal to"}},key:"2ABA"},{category:"Sm",mappings:{"default":{"default":"double precedes"}},key:"2ABB"},{category:"Sm",mappings:{"default":{"default":"double succeeds"}},key:"2ABC"},{category:"Sm",mappings:{"default":{"default":"subset with dot"}}, +key:"2ABD"},{category:"Sm",mappings:{"default":{"default":"superset with dot"}},key:"2ABE"},{category:"Sm",mappings:{"default":{"default":"subset with plus sign below"}},key:"2ABF"},{category:"Sm",mappings:{"default":{"default":"superset with plus sign below"}},key:"2AC0"},{category:"Sm",mappings:{"default":{"default":"subset with multiplication sign below"}},key:"2AC1"},{category:"Sm",mappings:{"default":{"default":"superset with multiplication sign below"}},key:"2AC2"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to with dot above"}}, +key:"2AC3"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to with dot above"}},key:"2AC4"},{category:"Sm",mappings:{"default":{"default":"subset of above equals sign"}},key:"2AC5"},{category:"Sm",mappings:{"default":{"default":"superset of above equals sign"}},key:"2AC6"},{category:"Sm",mappings:{"default":{"default":"subset of above tilde operator"}},key:"2AC7"},{category:"Sm",mappings:{"default":{"default":"superset of above tilde operator"}},key:"2AC8"},{category:"Sm",mappings:{"default":{"default":"subset of above almost equal to"}}, +key:"2AC9"},{category:"Sm",mappings:{"default":{"default":"superset of above almost equal to"}},key:"2ACA"},{category:"Sm",mappings:{"default":{"default":"subset of above not equal to"}},key:"2ACB"},{category:"Sm",mappings:{"default":{"default":"superset of above not equal to"}},key:"2ACC"},{category:"Sm",mappings:{"default":{"default":"square left open box operator"}},key:"2ACD"},{category:"Sm",mappings:{"default":{"default":"square right open box operator"}},key:"2ACE"},{category:"Sm",mappings:{"default":{"default":"closed subset"}}, +key:"2ACF"},{category:"Sm",mappings:{"default":{"default":"closed superset"}},key:"2AD0"},{category:"Sm",mappings:{"default":{"default":"closed subset or equal to"}},key:"2AD1"},{category:"Sm",mappings:{"default":{"default":"closed superset or equal to"}},key:"2AD2"},{category:"Sm",mappings:{"default":{"default":"subset above superset"}},key:"2AD3"},{category:"Sm",mappings:{"default":{"default":"superset above subset"}},key:"2AD4"},{category:"Sm",mappings:{"default":{"default":"subset above subset"}}, +key:"2AD5"},{category:"Sm",mappings:{"default":{"default":"superset above superset"}},key:"2AD6"},{category:"Sm",mappings:{"default":{"default":"superset beside subset"}},key:"2AD7"},{category:"Sm",mappings:{"default":{"default":"superset beside and joined by dash with subset"}},key:"2AD8"},{category:"Sm",mappings:{"default":{"default":"element of opening downwards"}},key:"2AD9"},{category:"Sm",mappings:{"default":{"default":"pitchfork with tee top"}},key:"2ADA"},{category:"Sm",mappings:{"default":{"default":"transversal intersection"}}, +key:"2ADB"},{category:"Sm",mappings:{"default":{"default":"forking"}},key:"2ADC"},{category:"Sm",mappings:{"default":{"default":"nonforking"}},key:"2ADD"},{category:"Sm",mappings:{"default":{"default":"short left tack"}},key:"2ADE"},{category:"Sm",mappings:{"default":{"default":"short down tack"}},key:"2ADF"},{category:"Sm",mappings:{"default":{"default":"short up tack"}},key:"2AE0"},{category:"Sm",mappings:{"default":{"default":"perpendicular with s"}},key:"2AE1"},{category:"Sm",mappings:{"default":{"default":"vertical bar triple right turnstile"}}, +key:"2AE2"},{category:"Sm",mappings:{"default":{"default":"double vertical bar left turnstile"}},key:"2AE3"},{category:"Sm",mappings:{"default":{"default":"vertical bar double left turnstile"}},key:"2AE4"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double left turnstile"}},key:"2AE5"},{category:"Sm",mappings:{"default":{"default":"long dash from left member of double vertical"}},key:"2AE6"},{category:"Sm",mappings:{"default":{"default":"short down tack with overbar"}},key:"2AE7"}, +{category:"Sm",mappings:{"default":{"default":"short up tack with underbar"}},key:"2AE8"},{category:"Sm",mappings:{"default":{"default":"short up tack above short down tack"}},key:"2AE9"},{category:"Sm",mappings:{"default":{"default":"double down tack"}},key:"2AEA"},{category:"Sm",mappings:{"default":{"default":"double up tack"}},key:"2AEB"},{category:"Sm",mappings:{"default":{"default":"double stroke not sign"}},key:"2AEC"},{category:"Sm",mappings:{"default":{"default":"reversed double stroke not sign"}}, +key:"2AED"},{category:"Sm",mappings:{"default":{"default":"does not divide with reversed negation slash"}},key:"2AEE"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle above"}},key:"2AEF"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle below"}},key:"2AF0"},{category:"Sm",mappings:{"default":{"default":"down tack with circle below"}},key:"2AF1"},{category:"Sm",mappings:{"default":{"default":"parallel with horizontal stroke"}},key:"2AF2"},{category:"Sm", +mappings:{"default":{"default":"parallel with tilde operator"}},key:"2AF3"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar binary relation"}},key:"2AF4"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar with horizontal stroke"}},key:"2AF5"},{category:"Sm",mappings:{"default":{"default":"triple colon operator"}},key:"2AF6"},{category:"Sm",mappings:{"default":{"default":"triple nested less than"}},key:"2AF7"},{category:"Sm",mappings:{"default":{"default":"triple nested greater than"}}, +key:"2AF8"},{category:"Sm",mappings:{"default":{"default":"double line slanted less than or equal to"}},key:"2AF9"},{category:"Sm",mappings:{"default":{"default":"double line slanted greater than or equal to"}},key:"2AFA"},{category:"Sm",mappings:{"default":{"default":"triple solidus binary relation"}},key:"2AFB"},{category:"Sm",mappings:{"default":{"default":"large triple vertical bar operator"}},key:"2AFC"},{category:"Sm",mappings:{"default":{"default":"double solidus operator"}},key:"2AFD"},{category:"Sm", +mappings:{"default":{"default":"white vertical bar"}},key:"2AFE"},{category:"Sm",mappings:{"default":{"default":"n ary white vertical bar"}},key:"2AFF"},{category:"Pd",mappings:{"default":{"default":"wave dash"}},key:"301C"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical comma"}},key:"FE10"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical colon"}},key:"FE13"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical semicolon"}}, +key:"FE14"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical exclamation mark"}},key:"FE15"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical question mark"}},key:"FE16"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical horizontal ellipsis"}},key:"FE19"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical two dot leader",alternative:"glyph for vertical two dot leader"}},key:"FE30"},{category:"Pd", +mappings:{"default":{"default":"presentation form for vertical em dash",alternative:"glyph for vertical em dash"}},key:"FE31"},{category:"Pd",mappings:{"default":{"default":"presentation form for vertical en dash",alternative:"glyph for vertical en dash"}},key:"FE32"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical low line",alternative:"glyph for vertical spacing underscore"}},key:"FE33"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical wavy low line", +alternative:"glyph for vertical spacing wavy underscore"}},key:"FE34"},{category:"Po",mappings:{"default":{"default":"sesame dot"}},key:"FE45"},{category:"Po",mappings:{"default":{"default":"white sesame dot"}},key:"FE46"},{category:"Po",mappings:{"default":{"default":"dashed overline",alternative:"spacing dashed overscore"}},key:"FE49"},{category:"Po",mappings:{"default":{"default":"centerline overline",alternative:"spacing centerline overscore"}},key:"FE4A"},{category:"Po",mappings:{"default":{"default":"wavy overline", +alternative:"spacing wavy overscore"}},key:"FE4B"},{category:"Po",mappings:{"default":{"default":"double wavy overline",alternative:"spacing double wavy overscore"}},key:"FE4C"},{category:"Pc",mappings:{"default":{"default":"dashed low line",alternative:"spacing dashed underscore"}},key:"FE4D"},{category:"Pc",mappings:{"default":{"default":"centerline low line",alternative:"spacing centerline underscore"}},key:"FE4E"},{category:"Pc",mappings:{"default":{"default":"wavy low line",alternative:"spacing wavy underscore"}}, +key:"FE4F"},{category:"Po",mappings:{"default":{"default":"small comma"}},key:"FE50"},{category:"Po",mappings:{"default":{"default":"small full stop",alternative:"small period"}},key:"FE52"},{category:"Po",mappings:{"default":{"default":"small semicolon"}},key:"FE54"},{category:"Po",mappings:{"default":{"default":"small colon"}},key:"FE55"},{category:"Po",mappings:{"default":{"default":"small question mark"}},key:"FE56"},{category:"Po",mappings:{"default":{"default":"small exclamation mark"}},key:"FE57"}, +{category:"Pd",mappings:{"default":{"default":"small em dash"}},key:"FE58"},{category:"Po",mappings:{"default":{"default":"small number sign"}},key:"FE5F"},{category:"Po",mappings:{"default":{"default":"small ampersand"}},key:"FE60"},{category:"Po",mappings:{"default":{"default":"small asterisk"}},key:"FE61"},{category:"Sm",mappings:{"default":{"default":"small plus sign"}},key:"FE62"},{category:"Pd",mappings:{"default":{"default":"small hyphen minus"}},key:"FE63"},{category:"Sm",mappings:{"default":{"default":"small less than sign"}}, +key:"FE64"},{category:"Sm",mappings:{"default":{"default":"small greater than sign"}},key:"FE65"},{category:"Sm",mappings:{"default":{"default":"small equals sign"}},key:"FE66"},{category:"Po",mappings:{"default":{"default":"small reverse solidus",alternative:"small backslash"}},key:"FE68"},{category:"Sc",mappings:{"default":{"default":"small dollar sign"}},key:"FE69"},{category:"Po",mappings:{"default":{"default":"small percent sign"}},key:"FE6A"},{category:"Po",mappings:{"default":{"default":"small commercial at"}}, +key:"FE6B"},{category:"Po",mappings:{"default":{"default":"fullwidth exclamation mark"}},key:"FF01"},{category:"Po",mappings:{"default":{"default":"fullwidth quotation mark"}},key:"FF02"},{category:"Po",mappings:{"default":{"default":"fullwidth number sign"}},key:"FF03"},{category:"Sc",mappings:{"default":{"default":"fullwidth dollar sign"}},key:"FF04"},{category:"Po",mappings:{"default":{"default":"fullwidth percent sign"}},key:"FF05"},{category:"Po",mappings:{"default":{"default":"fullwidth ampersand"}}, +key:"FF06"},{category:"Po",mappings:{"default":{"default":"fullwidth apostrophe"}},key:"FF07"},{category:"Po",mappings:{"default":{"default":"fullwidth asterisk"}},key:"FF0A"},{category:"Sm",mappings:{"default":{"default":"fullwidth plus sign"}},key:"FF0B"},{category:"Po",mappings:{"default":{"default":"fullwidth comma"}},key:"FF0C"},{category:"Pd",mappings:{"default":{"default":"fullwidth hyphen minus"}},key:"FF0D"},{category:"Po",mappings:{"default":{"default":"fullwidth full stop",alternative:"fullwidth period"}}, +key:"FF0E"},{category:"Po",mappings:{"default":{"default":"fullwidth solidus",alternative:"fullwidth slash"}},key:"FF0F"},{category:"Po",mappings:{"default":{"default":"fullwidth colon"}},key:"FF1A"},{category:"Po",mappings:{"default":{"default":"fullwidth semicolon"}},key:"FF1B"},{category:"Sm",mappings:{"default":{"default":"fullwidth less than sign"}},key:"FF1C"},{category:"Sm",mappings:{"default":{"default":"fullwidth equals sign"}},key:"FF1D"},{category:"Sm",mappings:{"default":{"default":"fullwidth greater than sign"}}, +key:"FF1E"},{category:"Po",mappings:{"default":{"default":"fullwidth question mark"}},key:"FF1F"},{category:"Po",mappings:{"default":{"default":"fullwidth commercial at"}},key:"FF20"},{category:"Po",mappings:{"default":{"default":"fullwidth reverse solidus",alternative:"fullwidth backslash"}},key:"FF3C"},{category:"Sk",mappings:{"default":{"default":"fullwidth circumflex accent",alternative:"fullwidth spacing circumflex"}},key:"FF3E"},{category:"Pc",mappings:{"default":{"default":"fullwidth low line", +alternative:"fullwidth spacing underscore"}},key:"FF3F"},{category:"Sk",mappings:{"default":{"default":"fullwidth grave accent",alternative:"fullwidth spacing grave"}},key:"FF40"},{category:"Sm",mappings:{"default":{"default":"fullwidth vertical line",alternative:"fullwidth vertical bar"}},key:"FF5C"},{category:"Sm",mappings:{"default":{"default":"fullwidth tilde",alternative:"fullwidth spacing tilde"}},key:"FF5E"},{category:"Sc",mappings:{"default":{"default":"fullwidth cent sign"}},key:"FFE0"}, +{category:"Sc",mappings:{"default":{"default":"fullwidth pound sign"}},key:"FFE1"},{category:"Sm",mappings:{"default":{"default":"fullwidth not sign"}},key:"FFE2"},{category:"Sk",mappings:{"default":{"default":"fullwidth macron",alternative:"fullwidth spacing macron"}},key:"FFE3"},{category:"So",mappings:{"default":{"default":"fullwidth broken bar",alternative:"fullwidth broken vertical bar"}},key:"FFE4"},{category:"Sc",mappings:{"default":{"default":"fullwidth yen sign"}},key:"FFE5"},{category:"Sc", +mappings:{"default":{"default":"fullwidth won sign"}},key:"FFE6"},{category:"So",mappings:{"default":{"default":"halfwidth forms light vertical"}},key:"FFE8"},{category:"So",mappings:{"default":{"default":"halfwidth black square"}},key:"FFED"},{category:"So",mappings:{"default":{"default":"halfwidth white circle"}},key:"FFEE"},{category:"Ll",names:[],key:"03B1",mappings:{"default":{"default":"greek small letter alpha","short":"alpha"}}},{category:"Ll",names:[],key:"03B2",mappings:{"default":{"default":"greek small letter beta", +"short":"beta"}}},{category:"Ll",names:[],key:"03B3",mappings:{"default":{"default":"greek small letter gamma","short":"gamma"}}},{category:"Ll",names:[],key:"03B4",mappings:{"default":{"default":"greek small letter delta","short":"delta"}}},{category:"Ll",names:[],key:"03B5",mappings:{"default":{"default":"greek small letter epsilon","short":"epsilon"}}},{category:"Ll",names:[],key:"03B6",mappings:{"default":{"default":"greek small letter zeta","short":"zeta"}}},{category:"Ll",names:[],key:"03B7", +mappings:{"default":{"default":"greek small letter eta","short":"eta"}}},{category:"Ll",names:[],key:"03B8",mappings:{"default":{"default":"greek small letter theta","short":"theta"}}},{category:"Ll",names:[],key:"03B9",mappings:{"default":{"default":"greek small letter iota","short":"iota"}}},{category:"Ll",names:[],key:"03BA",mappings:{"default":{"default":"greek small letter kappa","short":"kappa"}}},{category:"Ll",names:[],key:"03BB",mappings:{"default":{"default":"greek small letter lamda",alternative:"greek small letter lambda", +"short":"lamda"}}},{category:"Ll",names:[],key:"03BC",mappings:{"default":{"default":"greek small letter mu","short":"mu"}}},{category:"Ll",names:[],key:"03BD",mappings:{"default":{"default":"greek small letter nu","short":"nu"}}},{category:"Ll",names:[],key:"03BE",mappings:{"default":{"default":"greek small letter xi","short":"xi"}}},{category:"Ll",names:[],key:"03BF",mappings:{"default":{"default":"greek small letter omicron","short":"omicron"}}},{category:"Ll",names:[],key:"03C0",mappings:{"default":{"default":"greek small letter pi", +"short":"pi"}}},{category:"Ll",names:[],key:"03C1",mappings:{"default":{"default":"greek small letter rho","short":"rho"}}},{category:"Ll",names:[],key:"03C2",mappings:{"default":{"default":"greek small letter final sigma","short":"final sigma"}}},{category:"Ll",names:[],key:"03C3",mappings:{"default":{"default":"greek small letter sigma","short":"sigma"}}},{category:"Ll",names:[],key:"03C4",mappings:{"default":{"default":"greek small letter tau","short":"tau"}}},{category:"Ll",names:[],key:"03C5", +mappings:{"default":{"default":"greek small letter upsilon","short":"upsilon"}}},{category:"Ll",names:[],key:"03C6",mappings:{"default":{"default":"greek small letter phi","short":"phi"}}},{category:"Ll",names:[],key:"03C7",mappings:{"default":{"default":"greek small letter chi","short":"chi"}}},{category:"Ll",names:[],key:"03C8",mappings:{"default":{"default":"greek small letter psi","short":"psi"}}},{category:"Ll",names:[],key:"03C9",mappings:{"default":{"default":"greek small letter omega","short":"omega"}}}, +{category:"Ll",mappings:{"default":{"default":"greek beta symbol",alternative:"greek small letter curled beta","short":"beta"}},key:"03D0"},{category:"Ll",mappings:{"default":{"default":"greek theta symbol",alternative:"greek small letter script theta","short":"theta"}},key:"03D1"},{category:"Ll",mappings:{"default":{"default":"greek phi symbol",alternative:"greek small letter script phi","short":"phi"}},key:"03D5"},{category:"Ll",mappings:{"default":{"default":"greek pi symbol",alternative:"greek small letter omega pi", +"short":"pi"}},key:"03D6"},{category:"Ll",mappings:{"default":{"default":"greek kai symbol","short":"kai"}},key:"03D7"},{category:"Ll",mappings:{"default":{"default":"greek kappa symbol",alternative:"greek small letter script kappa","short":"kappa"}},key:"03F0"},{category:"Ll",mappings:{"default":{"default":"greek rho symbol",alternative:"greek small letter tailed rho","short":"rho"}},key:"03F1"},{category:"Ll",mappings:{"default":{"default":"greek lunate epsilon symbol","short":"epsilon"}},key:"03F5"}, +{category:"Sm",mappings:{"default":{"default":"greek reversed lunate epsilon symbol","short":"reversed epsilon"}},key:"03F6"},{category:"Lu",names:[],key:"0391",mappings:{"default":{"default":"greek capital letter alpha","short":"cap alpha"}}},{category:"Lu",names:[],key:"0392",mappings:{"default":{"default":"greek capital letter beta","short":"cap beta"}}},{category:"Lu",names:[],key:"0393",mappings:{"default":{"default":"greek capital letter gamma","short":"cap gamma"}}},{category:"Lu",names:[], +key:"0394",mappings:{"default":{"default":"greek capital letter delta","short":"cap delta"}}},{category:"Lu",names:[],key:"0395",mappings:{"default":{"default":"greek capital letter epsilon","short":"cap epsilon"}}},{category:"Lu",names:[],key:"0396",mappings:{"default":{"default":"greek capital letter zeta","short":"cap zeta"}}},{category:"Lu",names:[],key:"0397",mappings:{"default":{"default":"greek capital letter eta","short":"cap eta"}}},{category:"Lu",names:[],key:"0398",mappings:{"default":{"default":"greek capital letter theta", +"short":"cap theta"}}},{category:"Lu",names:[],key:"0399",mappings:{"default":{"default":"greek capital letter iota","short":"cap iota"}}},{category:"Lu",names:[],key:"039A",mappings:{"default":{"default":"greek capital letter kappa","short":"cap kappa"}}},{category:"Lu",names:[],key:"039B",mappings:{"default":{"default":"greek capital letter lamda",alternative:"greek capital letter lambda","short":"cap lamda"}}},{category:"Lu",names:[],key:"039C",mappings:{"default":{"default":"greek capital letter mu", +"short":"cap mu"}}},{category:"Lu",names:[],key:"039D",mappings:{"default":{"default":"greek capital letter nu","short":"cap nu"}}},{category:"Lu",names:[],key:"039E",mappings:{"default":{"default":"greek capital letter xi","short":"cap xi"}}},{category:"Lu",names:[],key:"039F",mappings:{"default":{"default":"greek capital letter omicron","short":"cap omicron"}}},{category:"Lu",names:[],key:"03A0",mappings:{"default":{"default":"greek capital letter pi","short":"cap pi"}}},{category:"Lu",names:[], +key:"03A1",mappings:{"default":{"default":"greek capital letter rho","short":"cap rho"}}},{category:"Lu",names:[],key:"03A3",mappings:{"default":{"default":"greek capital letter sigma","short":"cap sigma"}}},{category:"Lu",names:[],key:"03A4",mappings:{"default":{"default":"greek capital letter tau","short":"cap tau"}}},{category:"Lu",names:[],key:"03A5",mappings:{"default":{"default":"greek capital letter upsilon","short":"cap upsilon"}}},{category:"Lu",names:[],key:"03A6",mappings:{"default":{"default":"greek capital letter phi", +"short":"cap phi"}}},{category:"Lu",names:[],key:"03A7",mappings:{"default":{"default":"greek capital letter chi","short":"cap chi"}}},{category:"Lu",names:[],key:"03A8",mappings:{"default":{"default":"greek capital letter psi","short":"cap psi"}}},{category:"Lu",names:[],key:"03A9",mappings:{"default":{"default":"greek capital letter omega","short":"cap omega"}}},{category:"Lu",mappings:{"default":{"default":"greek capital theta symbol","short":"cap theta"}},key:"03F4"},{category:"Ps",mappings:{"default":{"default":"left parenthesis", +alternative:"opening parenthesis"}},key:"0028"},{category:"Pe",mappings:{"default":{"default":"right parenthesis",alternative:"closing parenthesis"}},key:"0029"},{category:"Ps",mappings:{"default":{"default":"left square bracket",alternative:"opening square bracket"}},key:"005B"},{category:"Pe",mappings:{"default":{"default":"right square bracket",alternative:"closing square bracket"}},key:"005D"},{category:"Ps",mappings:{"default":{"default":"left curly bracket",alternative:"opening curly bracket"}}, +key:"007B"},{category:"Pe",mappings:{"default":{"default":"right curly bracket",alternative:"closing curly bracket"}},key:"007D"},{category:"Ps",mappings:{"default":{"default":"left square bracket with quill"}},key:"2045"},{category:"Pe",mappings:{"default":{"default":"right square bracket with quill"}},key:"2046"},{category:"Sm",mappings:{"default":{"default":"left ceiling"}},key:"2308"},{category:"Sm",mappings:{"default":{"default":"right ceiling"}},key:"2309"},{category:"Sm",mappings:{"default":{"default":"left floor"}}, +key:"230A"},{category:"Sm",mappings:{"default":{"default":"right floor"}},key:"230B"},{category:"So",mappings:{"default":{"default":"bottom right crop"}},key:"230C"},{category:"So",mappings:{"default":{"default":"bottom left crop"}},key:"230D"},{category:"So",mappings:{"default":{"default":"top right crop"}},key:"230E"},{category:"So",mappings:{"default":{"default":"top left crop"}},key:"230F"},{category:"So",mappings:{"default":{"default":"top left corner"}},key:"231C"},{category:"So",mappings:{"default":{"default":"top right corner"}}, +key:"231D"},{category:"So",mappings:{"default":{"default":"bottom left corner"}},key:"231E"},{category:"So",mappings:{"default":{"default":"bottom right corner"}},key:"231F"},{category:"Sm",mappings:{"default":{"default":"top half integral"}},key:"2320"},{category:"Sm",mappings:{"default":{"default":"bottom half integral"}},key:"2321"},{category:"Ps",mappings:{"default":{"default":"left pointing angle bracket",alternative:"bra"}},key:"2329"},{category:"Pe",mappings:{"default":{"default":"right pointing angle bracket", +alternative:"ket"}},key:"232A"},{category:"Sm",mappings:{"default":{"default":"left parenthesis upper hook"}},key:"239B"},{category:"Sm",mappings:{"default":{"default":"left parenthesis extension"}},key:"239C"},{category:"Sm",mappings:{"default":{"default":"left parenthesis lower hook"}},key:"239D"},{category:"Sm",mappings:{"default":{"default":"right parenthesis upper hook"}},key:"239E"},{category:"Sm",mappings:{"default":{"default":"right parenthesis extension"}},key:"239F"},{category:"Sm",mappings:{"default":{"default":"right parenthesis lower hook"}}, +key:"23A0"},{category:"Sm",mappings:{"default":{"default":"left square bracket upper corner"}},key:"23A1"},{category:"Sm",mappings:{"default":{"default":"left square bracket extension"}},key:"23A2"},{category:"Sm",mappings:{"default":{"default":"left square bracket lower corner"}},key:"23A3"},{category:"Sm",mappings:{"default":{"default":"right square bracket upper corner"}},key:"23A4"},{category:"Sm",mappings:{"default":{"default":"right square bracket extension"}},key:"23A5"},{category:"Sm",mappings:{"default":{"default":"right square bracket lower corner"}}, +key:"23A6"},{category:"Sm",mappings:{"default":{"default":"left curly bracket upper hook"}},key:"23A7"},{category:"Sm",mappings:{"default":{"default":"left curly bracket middle piece"}},key:"23A8"},{category:"Sm",mappings:{"default":{"default":"left curly bracket lower hook"}},key:"23A9"},{category:"Sm",mappings:{"default":{"default":"curly bracket extension"}},key:"23AA"},{category:"Sm",mappings:{"default":{"default":"right curly bracket upper hook"}},key:"23AB"},{category:"Sm",mappings:{"default":{"default":"right curly bracket middle piece"}}, +key:"23AC"},{category:"Sm",mappings:{"default":{"default":"right curly bracket lower hook"}},key:"23AD"},{category:"Sm",mappings:{"default":{"default":"integral extension"}},key:"23AE"},{category:"Sm",mappings:{"default":{"default":"horizontal line extension"}},key:"23AF"},{category:"Sm",mappings:{"default":{"default":"upper left or lower right curly bracket section"}},key:"23B0"},{category:"Sm",mappings:{"default":{"default":"upper right or lower left curly bracket section"}},key:"23B1"},{category:"Sm", +mappings:{"default":{"default":"summation top"}},key:"23B2"},{category:"Sm",mappings:{"default":{"default":"summation bottom"}},key:"23B3"},{category:"So",mappings:{"default":{"default":"top square bracket"}},key:"23B4"},{category:"So",mappings:{"default":{"default":"bottom square bracket"}},key:"23B5"},{category:"So",mappings:{"default":{"default":"bottom square bracket over top square bracket"}},key:"23B6"},{category:"So",mappings:{"default":{"default":"radical symbol bottom"}},key:"23B7"},{category:"So", +mappings:{"default":{"default":"left vertical box line"}},key:"23B8"},{category:"So",mappings:{"default":{"default":"right vertical box line"}},key:"23B9"},{category:"Sm",mappings:{"default":{"default":"top parenthesis"}},key:"23DC"},{category:"Sm",mappings:{"default":{"default":"bottom parenthesis"}},key:"23DD"},{category:"Sm",mappings:{"default":{"default":"top curly bracket"}},key:"23DE"},{category:"Sm",mappings:{"default":{"default":"bottom curly bracket"}},key:"23DF"},{category:"Sm",mappings:{"default":{"default":"top tortoise shell bracket"}}, +key:"23E0"},{category:"Sm",mappings:{"default":{"default":"bottom tortoise shell bracket"}},key:"23E1"},{category:"Ps",mappings:{"default":{"default":"medium left parenthesis ornament"}},key:"2768"},{category:"Pe",mappings:{"default":{"default":"medium right parenthesis ornament"}},key:"2769"},{category:"Ps",mappings:{"default":{"default":"medium flattened left parenthesis ornament"}},key:"276A"},{category:"Pe",mappings:{"default":{"default":"medium flattened right parenthesis ornament"}},key:"276B"}, +{category:"Ps",mappings:{"default":{"default":"medium left pointing angle bracket ornament"}},key:"276C"},{category:"Pe",mappings:{"default":{"default":"medium right pointing angle bracket ornament"}},key:"276D"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle quotation mark ornament"}},key:"276E"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle quotation mark ornament"}},key:"276F"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle bracket ornament"}}, +key:"2770"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle bracket ornament"}},key:"2771"},{category:"Ps",mappings:{"default":{"default":"light left tortoise shell bracket ornament"}},key:"2772"},{category:"Pe",mappings:{"default":{"default":"light right tortoise shell bracket ornament"}},key:"2773"},{category:"Ps",mappings:{"default":{"default":"medium left curly bracket ornament"}},key:"2774"},{category:"Pe",mappings:{"default":{"default":"medium right curly bracket ornament"}}, +key:"2775"},{category:"Ps",mappings:{"default":{"default":"left s shaped bag delimiter"}},key:"27C5"},{category:"Pe",mappings:{"default":{"default":"right s shaped bag delimiter"}},key:"27C6"},{category:"Ps",mappings:{"default":{"default":"mathematical left white square bracket"}},key:"27E6"},{category:"Pe",mappings:{"default":{"default":"mathematical right white square bracket"}},key:"27E7"},{category:"Ps",mappings:{"default":{"default":"mathematical left angle bracket"}},key:"27E8"},{category:"Pe", +mappings:{"default":{"default":"mathematical right angle bracket"}},key:"27E9"},{category:"Ps",mappings:{"default":{"default":"mathematical left double angle bracket"}},key:"27EA"},{category:"Pe",mappings:{"default":{"default":"mathematical right double angle bracket"}},key:"27EB"},{category:"Ps",mappings:{"default":{"default":"mathematical left white tortoise shell bracket"}},key:"27EC"},{category:"Pe",mappings:{"default":{"default":"mathematical right white tortoise shell bracket"}},key:"27ED"}, +{category:"Ps",mappings:{"default":{"default":"mathematical left flattened parenthesis"}},key:"27EE"},{category:"Pe",mappings:{"default":{"default":"mathematical right flattened parenthesis"}},key:"27EF"},{category:"Ps",mappings:{"default":{"default":"left white curly bracket"}},key:"2983"},{category:"Pe",mappings:{"default":{"default":"right white curly bracket"}},key:"2984"},{category:"Ps",mappings:{"default":{"default":"left white parenthesis"}},key:"2985"},{category:"Pe",mappings:{"default":{"default":"right white parenthesis"}}, +key:"2986"},{category:"Ps",mappings:{"default":{"default":"z notation left image bracket"}},key:"2987"},{category:"Pe",mappings:{"default":{"default":"z notation right image bracket"}},key:"2988"},{category:"Ps",mappings:{"default":{"default":"z notation left binding bracket"}},key:"2989"},{category:"Pe",mappings:{"default":{"default":"z notation right binding bracket"}},key:"298A"},{category:"Ps",mappings:{"default":{"default":"left square bracket with underbar"}},key:"298B"},{category:"Pe",mappings:{"default":{"default":"right square bracket with underbar"}}, +key:"298C"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in top corner"}},key:"298D"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in bottom corner"}},key:"298E"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in bottom corner"}},key:"298F"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in top corner"}},key:"2990"},{category:"Ps",mappings:{"default":{"default":"left angle bracket with dot"}}, +key:"2991"},{category:"Pe",mappings:{"default":{"default":"right angle bracket with dot"}},key:"2992"},{category:"Ps",mappings:{"default":{"default":"left arc less than bracket"}},key:"2993"},{category:"Pe",mappings:{"default":{"default":"right arc greater than bracket"}},key:"2994"},{category:"Ps",mappings:{"default":{"default":"double left arc greater than bracket"}},key:"2995"},{category:"Pe",mappings:{"default":{"default":"double right arc less than bracket"}},key:"2996"},{category:"Ps",mappings:{"default":{"default":"left black tortoise shell bracket"}}, +key:"2997"},{category:"Pe",mappings:{"default":{"default":"right black tortoise shell bracket"}},key:"2998"},{category:"Ps",mappings:{"default":{"default":"left wiggly fence"}},key:"29D8"},{category:"Pe",mappings:{"default":{"default":"right wiggly fence"}},key:"29D9"},{category:"Ps",mappings:{"default":{"default":"left double wiggly fence"}},key:"29DA"},{category:"Pe",mappings:{"default":{"default":"right double wiggly fence"}},key:"29DB"},{category:"Ps",mappings:{"default":{"default":"left pointing curved angle bracket"}}, +key:"29FC"},{category:"Pe",mappings:{"default":{"default":"right pointing curved angle bracket"}},key:"29FD"},{category:"Ps",mappings:{"default":{"default":"top left half bracket"}},key:"2E22"},{category:"Pe",mappings:{"default":{"default":"top right half bracket"}},key:"2E23"},{category:"Ps",mappings:{"default":{"default":"bottom left half bracket"}},key:"2E24"},{category:"Pe",mappings:{"default":{"default":"bottom right half bracket"}},key:"2E25"},{category:"Ps",mappings:{"default":{"default":"left sideways u bracket"}}, +key:"2E26"},{category:"Pe",mappings:{"default":{"default":"right sideways u bracket"}},key:"2E27"},{category:"Ps",mappings:{"default":{"default":"left double parenthesis"}},key:"2E28"},{category:"Pe",mappings:{"default":{"default":"right double parenthesis"}},key:"2E29"},{category:"Ps",mappings:{"default":{"default":"left angle bracket",alternative:"opening angle bracket"}},key:"3008"},{category:"Pe",mappings:{"default":{"default":"right angle bracket",alternative:"closing angle bracket"}},key:"3009"}, +{category:"Ps",mappings:{"default":{"default":"left double angle bracket",alternative:"opening double angle bracket"}},key:"300A"},{category:"Pe",mappings:{"default":{"default":"right double angle bracket",alternative:"closing double angle bracket"}},key:"300B"},{category:"Ps",mappings:{"default":{"default":"left corner bracket",alternative:"opening corner bracket"}},key:"300C"},{category:"Pe",mappings:{"default":{"default":"right corner bracket",alternative:"closing corner bracket"}},key:"300D"}, +{category:"Ps",mappings:{"default":{"default":"left white corner bracket",alternative:"opening white corner bracket"}},key:"300E"},{category:"Pe",mappings:{"default":{"default":"right white corner bracket",alternative:"closing white corner bracket"}},key:"300F"},{category:"Ps",mappings:{"default":{"default":"left black lenticular bracket",alternative:"opening black lenticular bracket"}},key:"3010"},{category:"Pe",mappings:{"default":{"default":"right black lenticular bracket",alternative:"closing black lenticular bracket"}}, +key:"3011"},{category:"Ps",mappings:{"default":{"default":"left tortoise shell bracket",alternative:"opening tortoise shell bracket"}},key:"3014"},{category:"Pe",mappings:{"default":{"default":"right tortoise shell bracket",alternative:"closing tortoise shell bracket"}},key:"3015"},{category:"Ps",mappings:{"default":{"default":"left white lenticular bracket",alternative:"opening white lenticular bracket"}},key:"3016"},{category:"Pe",mappings:{"default":{"default":"right white lenticular bracket", +alternative:"closing white lenticular bracket"}},key:"3017"},{category:"Ps",mappings:{"default":{"default":"left white tortoise shell bracket",alternative:"opening white tortoise shell bracket"}},key:"3018"},{category:"Pe",mappings:{"default":{"default":"right white tortoise shell bracket",alternative:"closing white tortoise shell bracket"}},key:"3019"},{category:"Ps",mappings:{"default":{"default":"left white square bracket",alternative:"opening white square bracket"}},key:"301A"},{category:"Pe", +mappings:{"default":{"default":"right white square bracket",alternative:"closing white square bracket"}},key:"301B"},{category:"Ps",mappings:{"default":{"default":"reversed double prime quotation mark"}},key:"301D"},{category:"Pe",mappings:{"default":{"default":"double prime quotation mark"}},key:"301E"},{category:"Pe",mappings:{"default":{"default":"low double prime quotation mark"}},key:"301F"},{category:"Ps",mappings:{"default":{"default":"ornate left parenthesis"}},key:"FD3E"},{category:"Pe", +mappings:{"default":{"default":"ornate right parenthesis"}},key:"FD3F"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white lenticular bracket"}},key:"FE17"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white lenticular bracket"}},key:"FE18"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left parenthesis",alternative:"glyph for vertical opening parenthesis"}},key:"FE35"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right parenthesis", +alternative:"glyph for vertical closing parenthesis"}},key:"FE36"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left curly bracket",alternative:"glyph for vertical opening curly bracket"}},key:"FE37"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right curly bracket",alternative:"glyph for vertical closing curly bracket"}},key:"FE38"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left tortoise shell bracket", +alternative:"glyph for vertical opening tortoise shell bracket"}},key:"FE39"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right tortoise shell bracket",alternative:"glyph for vertical closing tortoise shell bracket"}},key:"FE3A"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left black lenticular bracket",alternative:"glyph for vertical opening black lenticular bracket"}},key:"FE3B"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right black lenticular bracket", +alternative:"glyph for vertical closing black lenticular bracket"}},key:"FE3C"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left double angle bracket",alternative:"glyph for vertical opening double angle bracket"}},key:"FE3D"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right double angle bracket",alternative:"glyph for vertical closing double angle bracket"}},key:"FE3E"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left angle bracket", +alternative:"glyph for vertical opening angle bracket"}},key:"FE3F"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right angle bracket",alternative:"glyph for vertical closing angle bracket"}},key:"FE40"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left corner bracket",alternative:"glyph for vertical opening corner bracket"}},key:"FE41"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right corner bracket", +alternative:"glyph for vertical closing corner bracket"}},key:"FE42"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white corner bracket",alternative:"glyph for vertical opening white corner bracket"}},key:"FE43"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white corner bracket",alternative:"glyph for vertical closing white corner bracket"}},key:"FE44"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left square bracket"}}, +key:"FE47"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right square bracket"}},key:"FE48"},{category:"Ps",mappings:{"default":{"default":"small left parenthesis",alternative:"small opening parenthesis"}},key:"FE59"},{category:"Pe",mappings:{"default":{"default":"small right parenthesis",alternative:"small closing parenthesis"}},key:"FE5A"},{category:"Ps",mappings:{"default":{"default":"small left curly bracket",alternative:"small opening curly bracket"}},key:"FE5B"}, +{category:"Pe",mappings:{"default":{"default":"small right curly bracket",alternative:"small closing curly bracket"}},key:"FE5C"},{category:"Ps",mappings:{"default":{"default":"small left tortoise shell bracket",alternative:"small opening tortoise shell bracket"}},key:"FE5D"},{category:"Pe",mappings:{"default":{"default":"small right tortoise shell bracket",alternative:"small closing tortoise shell bracket"}},key:"FE5E"},{category:"Ps",mappings:{"default":{"default":"fullwidth left parenthesis",alternative:"fullwidth opening parenthesis"}}, +key:"FF08"},{category:"Pe",mappings:{"default":{"default":"fullwidth right parenthesis",alternative:"fullwidth closing parenthesis"}},key:"FF09"},{category:"Ps",mappings:{"default":{"default":"fullwidth left square bracket",alternative:"fullwidth opening square bracket"}},key:"FF3B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right square bracket",alternative:"fullwidth closing square bracket"}},key:"FF3D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left curly bracket", +alternative:"fullwidth opening curly bracket"}},key:"FF5B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right curly bracket",alternative:"fullwidth closing curly bracket"}},key:"FF5D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left white parenthesis"}},key:"FF5F"},{category:"Pe",mappings:{"default":{"default":"fullwidth right white parenthesis"}},key:"FF60"},{category:"Ps",mappings:{"default":{"default":"halfwidth left corner bracket",alternative:"halfwidth opening corner bracket"}}, +key:"FF62"},{category:"Pe",mappings:{"default":{"default":"halfwidth right corner bracket",alternative:"halfwidth closing corner bracket"}},key:"FF63"}]; +cvox.AndroidMathMap.FUNCTION_MAPPINGS_=[{category:"Elementary",mappings:{"default":{"default":"logarithm",alternative:"logarithm function","short":"log"}},key:"log",names:["log"]},{category:"Elementary",mappings:{"default":{"default":"natural logarithm",alternative:"natural logarithm function","short":"natural log"}},key:"ln",names:["ln"]},{category:"Elementary",mappings:{"default":{"default":"logarithm base 10","short":"log base 10"}},key:"lg",names:["lg"]},{category:"Elementary",mappings:{"default":{"default":"exponential", +alternative:"exponential function","short":"exp"}},key:"exp",names:["exp","expt"]},{category:"Elementary",mappings:{"default":{"default":"greatest common divisor","short":"gcd"}},key:"gcd",names:["gcd"]},{category:"Elementary",mappings:{"default":{"default":"least common multiple","short":"lcm"}},key:"gcd",names:["gcd"]},{category:"Complex",mappings:{"default":{"default":"argument","short":"arg"}},key:"arg",names:["arg"]},{category:"Complex",mappings:{"default":{"default":"imaginary part","short":"imaginary"}}, +key:"im",names:["im"]},{category:"Complex",mappings:{"default":{"default":"real part","short":"real"}},key:"re",names:["re"]},{category:"Limits",mappings:{"default":{"default":"infimum","short":"inf"}},key:"inf",names:["inf"]},{category:"Limits",mappings:{"default":{"default":"limit","short":"lim"}},key:"lim",names:["lim"]},{category:"Limits",mappings:{"default":{"default":"infimum default",alternative:"inferior limit","short":"liminf"}},key:"liminf",names:["lim inf"]},{category:"Limits",mappings:{"default":{"default":"supremum limit", +alternative:"superior limit","short":"limsup"}},key:"limsup",names:["lim sup"]},{category:"Limits",mappings:{"default":{"default":"maximum","short":"max"}},key:"max",names:["max"]},{category:"Limits",mappings:{"default":{"default":"minimum","short":"min"}},key:"min",names:["min"]},{category:"Limits",mappings:{"default":{"default":"supremum","short":"sup"}},key:"sup",names:["sup"]},{category:"Limits",mappings:{"default":{"default":"injective limit",alternative:"direct limit","short":"colimit"}},key:"injlim", +names:["injlim","inj lim"]},{category:"Limits",mappings:{"default":{"default":"projective limit",alternative:"inverse limit","short":"limit"}},key:"projlim",names:["projlim","proj lim"]},{category:"Elementary",mappings:{"default":{"default":"modulo","short":"mod"}},key:"mod",names:["mod"]},{category:"Probability",mappings:{"default":{"default":"probability"}},key:"Pr",names:["Pr"]},{category:"Trigonometric",mappings:{"default":{"default":"cosine function","short":"cosine"}},key:"cos",names:["cos", +"cosine"]},{category:"Trigonometric",mappings:{"default":{"default":"cotangent function","short":"cotangent"}},key:"cot",names:["cot"]},{category:"Trigonometric",mappings:{"default":{"default":"cosecant function","short":"cosecant"}},key:"csc",names:["csc"]},{category:"Trigonometric",mappings:{"default":{"default":"secant function","short":"secant"}},key:"sec",names:["sec"]},{category:"Trigonometric",mappings:{"default":{"default":"sine function",alternative:"sine function","short":"sine"}},key:"sin", +names:["sin","sine"]},{category:"Trigonometric",mappings:{"default":{"default":"tangent function","short":"tangent"}},key:"tan",names:["tan"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cosine function",alternative:"arc cosine function","short":"arc cosine"}},key:"arccos",names:["arccos"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cotangent function",alternative:"arc cotangent function","short":"arc cotangent"}},key:"arccot",names:["arccot"]},{category:"Cyclometric", +mappings:{"default":{"default":"inverse cosecant function",alternative:"arc cosecant function","short":"arc cosecant"}},key:"arccsc",names:["arccsc"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse secant function",alternative:"arc secant function","short":"arc secant"}},key:"arcsec",names:["arcsec"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse sine function",alternative:"arc sine function","short":"arc sine"}},key:"arcsin",names:["arcsin"]},{category:"Cyclometric", +mappings:{"default":{"default":"inverse tangent function",alternative:"arc tangent function","short":"arc tangent"}},key:"arctan",names:["arctan"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosine function","short":"hyperbolic cosine"}},key:"cosh",names:["cosh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cotangent function","short":"hyperbolic cotangent"}},key:"coth",names:["coth"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosecant function", +"short":"hyperbolic cosecant"}},key:"csch",names:["csch"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic secant function","short":"hyperbolic secant"}},key:"sech",names:["sech"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic sine function","short":"hyperbolic sine"}},key:"sinh",names:["sinh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic tangent function","short":"hyperbolic tangent"}},key:"tanh",names:["tanh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosine function", +alternative:"area hyperbolic cosine function","short":"area hyperbolic cosine"}},key:"arcosh",names:["arcosh","arccosh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cotangent function",alternative:"area hyperbolic cotangent function","short":"area hyperbolic cotangent"}},key:"arcoth",names:["arcoth","arccoth"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosecant function",alternative:"area hyperbolic cosecant function","short":"area hyperbolic cosecant"}}, +key:"arcsch",names:["arcsch","arccsch"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic secant function",alternative:"area hyperbolic secant function","short":"area hyperbolic secant"}},key:"arsech",names:["arsech","arcsech"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic sine function",alternative:"area hyperbolic sine function","short":"area hyperbolic sine"}},key:"arsinh",names:["arsinh","arcsinh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic tangent function", +alternative:"area hyperbolic tangent function","short":"area hyperbolic tangent"}},key:"artanh",names:["artanh","arctanh"]},{category:"Algebra",mappings:{"default":{"default":"degree"}},key:"deg",names:["deg"]},{category:"Algebra",mappings:{"default":{"default":"determinant","short":"det"}},key:"det",names:["det"]},{category:"Algebra",mappings:{"default":{"default":"dimension"}},key:"dim",names:["dim"]},{category:"Algebra",mappings:{"default":{"default":"homomorphism","short":"hom"}},key:"hom",names:["hom", +"Hom"]},{category:"Algebra",mappings:{"default":{"default":"kernel"}},key:"ker",names:["ker"]},{category:"Algebra",mappings:{"default":{"default":"trace"}},key:"Tr",names:["Tr","tr"]}];cvox.AndroidVox=function(){cvox.ChromeVox.navigationManager.ignoreIframesNoMatterWhat()};goog.exportSymbol("cvox.AndroidVox",cvox.AndroidVox); +cvox.AndroidVox.performAction=function(a){var b=JSON.parse(a);a=b.action;var c=b.granularity,b=b.element,d=cvox.SearchWidget.getInstance().isActive();16==c&&512==a&&(cvox.ChromeVox.navigationManager.setReversed(!1),cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.navigationManager.updateIndicator());if(16==c)return cvox.ChromeVoxUserCommands.commands.readFromHere(),!0;cvox.ChromeVoxUserCommands.commands.stopSpeech();if(256==a||512==a)d||cvox.ChromeVoxEventWatcher.setUpTextHandler(); +var e=cvox.ChromeVoxEventWatcher.currentTextHandler;e||document.activeElement==document.body||console.log("no text handler, but there is an active element",document.activeElement);if(e&&1==c){if(256==a)return e.moveCursorToNextCharacter();if(512==a)return e.moveCursorToPreviousCharacter()}else if(e&&2==c){if(256==a)return e.moveCursorToNextWord();if(512==a)return e.moveCursorToPreviousWord()}else if(e&&8==c){if(256==a)return e.moveCursorToNextParagraph();if(512==a)return e.moveCursorToPreviousParagraph()}else if(e&& +4==c){var f=!1;256==a?f=e.moveCursorToNextLine():512==a&&(f=e.moveCursorToPreviousLine());if(f)return!0}switch(c){case -1:return cvox.ChromeVox.navigationManager.finishNavCommand(""),!0;case -2:return cvox.ChromeVoxUserCommands.commands.readCurrentTitle(),!0;case -3:return!0;case -4:return 512==a?cvox.ChromeVoxUserCommands.commands.exitShifter():cvox.ChromeVoxUserCommands.commands.enterShifter(),!0;case -5:return cvox.SearchWidget.getInstance().toggle(),!0}if(-275999999<=c&&-275E6>=c){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"), +cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);a=cvox.ChromeVox.navigationManager.getBraille();b=-275E6-c;if(c=a.text.getSpan(b))a=b-a.text.getSpanStart(c),cvox.AndroidVox.performClickAction(c,a);return!0}if(0>c)return!1;e=[];e[8]=cvox.NavigationShifter.GRANULARITIES.GROUP;e[4]=cvox.NavigationShifter.GRANULARITIES.LINE;e[2]=cvox.NavigationShifter.GRANULARITIES.WORD;e[1]=cvox.NavigationShifter.GRANULARITIES.CHARACTER;d||(c=c?e[c]:cvox.NavigationShifter.GRANULARITIES.OBJECT, +cvox.ChromeVox.navigationManager.setGranularity(c));c=!1;switch(a){case 16:if(d)break;cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);(c=cvox.ChromeVox.navigationManager.getCurrentNode())&&cvox.AndroidVox.performClickAction(c);c=!0;break;case 1024:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.nextSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.nextList();break;case "CONTROL":c= +!cvox.ChromeVoxUserCommands.commands.nextControl()}if(c)break;case 256:d?(cvox.SearchWidget.getInstance().nextResult(!1),c=!0):c=!cvox.ChromeVoxUserCommands.commands.forward();break;case 2048:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.previousSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.previousList();break;case "CONTROL":c=!cvox.ChromeVoxUserCommands.commands.previousControl()}if(c)break;case 512:d?(cvox.SearchWidget.getInstance().nextResult(!0),c=!0):c= +!cvox.ChromeVoxUserCommands.commands.backward()}return c};goog.exportSymbol("cvox.AndroidVox.performAction",cvox.AndroidVox.performAction); +cvox.AndroidVox.performClickAction=function(a,b){cvox.ChromeVox.navigationManager.getCurrentNode()!=a&&cvox.ApiImplementation.syncToNode(a,!1);cvox.Focuser.setFocus(a);var c=cvox.DomUtil.isInputTypeText(a)||a instanceof HTMLTextAreaElement;if(goog.isDef(b)&&c){var d=cvox.BrailleUtil.getTemplated(null,a),c=d.getSpanInstanceOf(cvox.BrailleUtil.ValueSpan),e=d.getSpanStart(c),d=d.getSpanEnd(c);e<=b&&b<=d&&(c=b-e+c.offset,a.selectionStart=a.selectionEnd=c,cvox.ChromeVoxEventWatcher.handleTextChanged(!0))}cvox.DomUtil.clickElem(a, +!1,!0)};cvox.AndroidHost=function(){};goog.inherits(cvox.AndroidHost,cvox.AbstractHost); +cvox.AndroidHost.prototype.init=function(){cvox.ChromeVox.version="AndroidVox";var a=cvox.AndroidKeyMap.getStringifiedKeyMap();cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable(a);cvox.ApiImplementation.siteSpecificScriptLoader="";cvox.ApiImplementation.siteSpecificScriptBase="";cvox.ApiImplementation.init();cvox.ChromeVox.earcons.earconsAvailable()&&(cvox.ChromeVox.verbosity=cvox.VERBOSITY_BRIEF);new cvox.AndroidMathMap;cvox.InitialSpeech.speak()};cvox.AndroidHost.prototype.reinit=function(){}; +cvox.AndroidHost.prototype.onPageLoad=function(){cvox.ChromeVoxEventWatcher.focusFollowsMouse=!0;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=0};cvox.AndroidHost.prototype.ttsLoaded=function(){return"undefined"!=typeof accessibility};cvox.AndroidHost.prototype.getApiSrc=function(){return""};cvox.AndroidHost.prototype.hasTtsCallback=function(){return!1};cvox.AndroidHost.prototype.mustRedispatchClickEvent=function(){return!0}; +cvox.AndroidHost.prototype.activateOrDeactivateChromeVox=function(a){cvox.ChromeVox.tts.stop();cvox.AndroidHost.superClass_.activateOrDeactivateChromeVox.call(this,a);this.onPageLoad()};goog.exportSymbol("cvox.AndroidHost.prototype.activateOrDeactivateChromeVox",cvox.AndroidHost.prototype.activateOrDeactivateChromeVox);cvox.HostFactory.hostConstructor=cvox.AndroidHost;window.cvox||(window.cvox={});cvox.MathJaxExternalUtil=function(){};cvox.MathJaxExternalUtil.mmlAttr=function(){return""}; +cvox.MathJaxExternalUtil.mfenced=function(a){null==a&&(a="");var b=[a+'<mrow mfenced="true"'+this.toMathMLattributes()+">"],c=a+" ";this.data.open&&b.push(this.data.open.toMathML(c));null!=this.data[0]&&b.push(this.data[0].toMathML(c));for(var d=1,e=this.data.length;d<e;d++)this.data[d]&&(this.data["sep"+d]&&b.push(this.data["sep"+d].toMathML(c)),b.push(this.data[d].toMathML(c)));this.data.close&&b.push(this.data.close.toMathML(c));b.push(a+"</mrow>");return b.join("\n")}; +cvox.MathJaxExternalUtil.getMathml=function(a,b){var c=MathJax.ElementJax.mml.mbase.prototype,d=MathJax.ElementJax.mml.mfenced.prototype;this.mmlAttr=c.toMathMLattributes;var e=d.toMathML;try{c.toMathMLattributes=cvox.MathJaxExternalUtil.mbase;d.toMathML=cvox.MathJaxExternalUtil.mfenced;var f=a.root.toMathML("");c.toMathMLattributes=this.mmlAttr;d.toMathML=e;MathJax.Callback(b)(f)}catch(g){c.toMathMLattributes=this.mmlAttr;d.toMathML=e;if(!g.restart)throw g;return MathJax.Callback.After([cvox.MathJaxExternalUtil.getMathml, +a,b],g.restart)}};cvox.MathJaxExternalUtil.mbase=function(){var a=cvox.MathJaxExternalUtil.mmlAttr.call(this);if(null!=this.spanID)var b=(this.id||"MathJax-Span-"+this.spanID)+MathJax.OutputJax["HTML-CSS"].idPostfix,a=a+(' spanID="'+b+'"');null!=this.texClass&&(a+=' texClass="'+this.texClass+'"');return a};cvox.MathJaxExternalUtil.isActive=function(){return"undefined"!=typeof MathJax&&"undefined"!=typeof MathJax.Hub&&"undefined"!=typeof MathJax.ElementJax&&"undefined"!=typeof MathJax.InputJax}; +cvox.MathJaxExternalUtil.getMathjaxCallback_=function(a,b){cvox.MathJaxExternalUtil.getMathml(b,function(c){b.root.inputID&&a(c,b.root.inputID)})};cvox.MathJaxExternalUtil.registerSignal=function(a,b){MathJax.Hub.Register.MessageHook(b,function(b){b=MathJax.Hub.getJaxFor(b[1]);cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};cvox.MathJaxExternalUtil.getAllJax=function(a){var b=MathJax.Hub.getAllJax();b&&b.forEach(function(b){b.root.spanID&&cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})}; +cvox.MathJaxExternalUtil.injectConfigScript=function(){var a=document.createElement("script");a.setAttribute("type","text/x-mathjax-config");a.textContent='MathJax.Hub.Config({\n jax: ["input/AsciiMath", "input/TeX"],\n extensions: ["toMathML.js"],\n skipStartupTypeset: true,\n messageStyle: "none",\n TeX: {extensions: ["AMSmath.js","AMSsymbols.js"]}\n});\nMathJax.Hub.Queue(\n function() {MathJax.Hub.inputJax["math/asciimath"].Process();\n MathJax.Hub.inputJax["math/tex"].Process()}\n);\n//\n// Prevent these from being loaded\n//\nif (!MathJax.Extension.MathMenu) {MathJax.Extension.MathMenu = {}};\nif (!MathJax.Extension.MathZoom) {MathJax.Extension.MathZoom = {}};'; +document.activeElement.appendChild(a)};cvox.MathJaxExternalUtil.injectLoadScript=function(){var a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src","http://cdn.mathjax.org/mathjax/latest/MathJax.js");document.activeElement.appendChild(a)}; +cvox.MathJaxExternalUtil.configMediaWiki=function(){mediaWiki&&MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var a=MathJax.ElementJax.mml;MathJax.Hub.Insert(MathJax.InputJax.TeX.Definitions,{mathchar0mi:{thetasym:"03B8",koppa:"03DF",stigma:"03DB",varstigma:"03DB",coppa:"03D9",varcoppa:"03D9",sampi:"03E1",C:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],cnums:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Complex:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],H:["210D",{mathvariant:a.VARIANT.DOUBLESTRUCK}], +N:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],natnums:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Q:["0051",{mathvariant:a.VARIANT.DOUBLESTRUCK}],R:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Z:["005A",{mathvariant:a.VARIANT.DOUBLESTRUCK}],sect:"00A7",P:"00B6",AA:["00C5",{mathvariant:a.VARIANT.NORMAL}],alef:["2135",{mathvariant:a.VARIANT.NORMAL}],alefsym:["2135",{mathvariant:a.VARIANT.NORMAL}], +weierp:["2118",{mathvariant:a.VARIANT.NORMAL}],real:["211C",{mathvariant:a.VARIANT.NORMAL}],part:["2202",{mathvariant:a.VARIANT.NORMAL}],infin:["221E",{mathvariant:a.VARIANT.NORMAL}],empty:["2205",{mathvariant:a.VARIANT.NORMAL}],O:["2205",{mathvariant:a.VARIANT.NORMAL}],ang:["2220",{mathvariant:a.VARIANT.NORMAL}],exist:["2203",{mathvariant:a.VARIANT.NORMAL}],clubs:["2663",{mathvariant:a.VARIANT.NORMAL}],diamonds:["2662",{mathvariant:a.VARIANT.NORMAL}],hearts:["2661",{mathvariant:a.VARIANT.NORMAL}], +spades:["2660",{mathvariant:a.VARIANT.NORMAL}],textvisiblespace:"2423",geneuro:"20AC",euro:"20AC"},mathchar0mo:{and:"2227",or:"2228",bull:"2219",plusmn:"00B1",sdot:"22C5",Dagger:"2021",sup:"2283",sub:"2282",supe:"2287",sube:"2286",isin:"2208",hAar:"21D4",hArr:"21D4",Harr:"21D4",Lrarr:"21D4",lrArr:"21D4",lArr:"21D0",Larr:"21D0",rArr:"21D2",Rarr:"21D2",harr:"2194",lrarr:"2194",larr:"2190",gets:"2190",rarr:"2192",oiint:["222F",{texClass:a.TEXCLASS.OP}],oiiint:["2230",{texClass:a.TEXCLASS.OP}]},mathchar7:{Alpha:"0391", +Beta:"0392",Epsilon:"0395",Zeta:"0396",Eta:"0397",Iota:"0399",Kappa:"039A",Mu:"039C",Nu:"039D",Omicron:"039F",Rho:"03A1",Tau:"03A4",Chi:"03A7",Koppa:"03DE",Stigma:"03DA",Digamma:"03DC",Coppa:"03D8",Sampi:"03E0"},delimiter:{"\\uarr":"2191","\\darr":"2193","\\Uarr":"21D1","\\uArr":"21D1","\\Darr":"21D3","\\dArr":"21D3","\\rang":"27E9","\\lang":"27E8"},macros:{sgn:"NamedFn",arccot:"NamedFn",arcsec:"NamedFn",arccsc:"NamedFn",sen:"NamedFn",image:["Macro","\\Im"],bold:["Macro","\\mathbf{#1}",1],pagecolor:["Macro", +"",1],emph:["Macro","\\textit{#1}",1],textsf:["Macro","\\mathord{\\sf{\\text{#1}}}",1],texttt:["Macro","\\mathord{\\tt{\\text{#1}}}",1],vline:["Macro","\\smash{\\large\\lvert}",0]}})})}; +cvox.MathJaxExternalUtil.convertToMml=function(a,b,c,d,e,f){var g=MathJax.HTML.Element("script",{type:c},[b]),g={math:b,script:g};MathJax.InputJax[d].prefilterHooks.Execute(g);var h;try{h=f(g.math)}catch(k){if(k[e])h=MathJax.ElementJax.mml.merror(k.message.replace(/\n.*/,""));else{if(k.restart)return MathJax.Callback.After([cvox.MathJaxExternalUtil.convertToMml,a,b,c,d,e,f],k.restart);throw k;}}h=h.inferred?MathJax.ElementJax.mml.apply(MathJax.ElementJax,h.data):MathJax.ElementJax.mml(h);h.root.display= +"block";g.math=h;g.script.MathJax={};MathJax.InputJax[d].postfilterHooks.Execute(g);return cvox.MathJaxExternalUtil.getMathml(g.math,a)};cvox.MathJaxExternalUtil.texToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/tex;mode=display","TeX","texError",function(a){return MathJax.InputJax.TeX.Parse(a).mml()})};cvox.MathJaxExternalUtil.asciiMathToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/asciimath","AsciiMath","asciimathError",MathJax.InputJax.AsciiMath.AM.parseMath)};cvox.AndroidMathJax=function(){this.altMathNodeId_=0};goog.inherits(cvox.AndroidMathJax,cvox.AbstractMathJax);cvox.AndroidMathJax.prototype.getMathmlToDomCallback_=function(a){return goog.bind(function(b,c){return this.convertMarkupToDom(a,b,c)},this)};cvox.AndroidMathJax.prototype.isMathjaxActive=function(a){var b=0,c=function(){b++;cvox.MathJaxExternalUtil.isActive()?a(!0):5>b&&setTimeout(c,1E3)};c()};cvox.AndroidMathJax.prototype.getAllJax=function(a){cvox.MathJaxExternalUtil.getAllJax(this.getMathmlToDomCallback_(a))}; +cvox.AndroidMathJax.prototype.registerSignal=function(a,b){cvox.MathJaxExternalUtil.registerSignal(this.getMathmlToDomCallback_(a),b)};cvox.AndroidMathJax.prototype.injectScripts=function(){cvox.MathJaxExternalUtil.injectConfigScript();cvox.MathJaxExternalUtil.injectLoadScript()};cvox.AndroidMathJax.prototype.configMediaWiki=function(){cvox.MathJaxExternalUtil.configMediaWiki()}; +cvox.AndroidMathJax.prototype.getTex=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.texToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};cvox.AndroidMathJax.prototype.getAsciiMath=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.asciiMathToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}}; +cvox.HostFactory.mathJaxConstructor=cvox.AndroidMathJax;cvox.AndroidTts=function(){cvox.AbstractTts.call(this);this.ttsProperties.rate=0.5;this.ttsProperties.pitch=0.5;this.ttsProperties.volume=1};goog.inherits(cvox.AndroidTts,cvox.AbstractTts);cvox.AndroidTts.prototype.speak=function(a,b,c){cvox.AndroidTts.superClass_.speak.call(this,a,b,c);c=this.mergeProperties(c);accessibility.speak(a,b,c);return this};cvox.AndroidTts.prototype.isSpeaking=function(){cvox.AndroidTts.superClass_.isSpeaking.call(this);return accessibility.isSpeaking()}; +cvox.AndroidTts.prototype.stop=function(){cvox.AndroidTts.superClass_.stop.call(this);accessibility.stop()};cvox.HostFactory.ttsConstructor=cvox.AndroidTts;cvox.TestMessages={locale:{message:"en"},chromevox_name:{message:"ChromeVox"},chromevox_description:{message:"ChromeVox - Giving Voice to Chrome"},chromevox_stop_speech_key:{message:"Stop speech"},chromevox_toggle_sticky_mode:{message:"Enable/Disable sticky mode"},chromevox_prefix_key:{message:"Prefix key"},chromevox_handle_tab_next:{message:"Jump to next focusable item"},chromevox_handle_tab_prev:{message:"Jump to previous focusable item"},chromevox_backward:{message:"Navigate backward"},chromevox_forward:{message:"Navigate forward"}, +chromevox_left:{message:"Move left"},chromevox_right:{message:"Move right"},chromevox_skip_backward:{message:"Skip backward during continuous reading"},chromevox_skip_forward:{message:"Skip forward during continuous reading"},chromevox_previous_granularity:{message:"Decrease navigation granularity"},chromevox_next_granularity:{message:"Increase navigation granularity"},chromevox_act_on_current_item:{message:"Take action on current item"},chromevox_force_click_on_current_item:{message:"Click on current item"}, +chromevox_read_link_url:{message:"Announce the URL behind a link"},chromevox_read_current_title:{message:"Announce the title of the current page"},chromevox_read_current_url:{message:"Announce the URL of the current page"},chromevox_read_from_here:{message:"Start reading from current location"},chromevox_show_power_key:{message:"Open ChromeVox keyboard help"},chromevox_hide_power_key:{message:"Hide ChromeVox help"},chromevox_power_key_help:{message:"Press up or down to review commands, press enter to activate"}, +chromevox_help:{message:"Open ChromeVox tutorial"},chromevox_toggle_search_widget:{message:"Toggle search widget"},chromevox_show_options_page:{message:"Open options page"},chromevox_show_kb_explorer_page:{message:"Open keyboard explorer"},chromevox_decrease_tts_rate:{message:"Decrease rate of speech"},chromevox_increase_tts_rate:{message:"Increase rate of speech"},chromevox_decrease_tts_pitch:{message:"Decrease pitch"},chromevox_increase_tts_pitch:{message:"Increase pitch"},chromevox_decrease_tts_volume:{message:"Decrease speech volume"}, +chromevox_increase_tts_volume:{message:"Increase speech volume"},chromevox_show_forms_list:{message:"Show forms list"},chromevox_show_headings_list:{message:"Show headings list"},chromevox_show_links_list:{message:"Show links list"},chromevox_show_tables_list:{message:"Show tables list"},chromevox_show_landmarks_list:{message:"Show landmarks list"},chromevox_previous_row:{message:"Previous table row"},chromevox_next_row:{message:"Next table row"},chromevox_previous_col:{message:"Previous table column"}, +chromevox_next_col:{message:"Next table column"},chromevox_announce_headers:{message:"Announce the headers of the current cell"},chromevox_speak_table_location:{message:"Announce current cell coordinates"},chromevox_guess_row_header:{message:"Make a guess at the row header of the current cell"},chromevox_guess_col_header:{message:"Make a guess at the column header of the current cell"},chromevox_skip_to_beginning:{message:"Go to beginning of table"},chromevox_skip_to_end:{message:"Go to end of table"}, +chromevox_skip_to_row_beginning:{message:"Go to beginning of the current row"},chromevox_skip_to_row_end:{message:"Go to end of the current row"},chromevox_skip_to_col_beginning:{message:"Go to beginning of the current column"},chromevox_skip_to_col_end:{message:"Go to end of the current column"},chromevox_next_heading1:{message:"Next level 1 heading"},chromevox_previous_heading1:{message:"Previous level 1 heading"},chromevox_next_heading2:{message:"Next level 2 heading"},chromevox_previous_heading2:{message:"Previous level 2 heading"}, +chromevox_next_heading3:{message:"Next level 3 heading"},chromevox_previous_heading3:{message:"Previous level 3 heading"},chromevox_next_heading4:{message:"Next level 4 heading"},chromevox_previous_heading4:{message:"Previous level 4 heading"},chromevox_next_heading5:{message:"Next level 5 heading"},chromevox_previous_heading5:{message:"Previous level 5 heading"},chromevox_next_heading6:{message:"Next level 6 heading"},chromevox_previous_heading6:{message:"Previous level 6 heading"},chromevox_next_combo_box:{message:"Next combo box"}, +chromevox_previous_combo_box:{message:"Previous combo box"},chromevox_next_edit_text:{message:"Next editable text area"},chromevox_previous_edit_text:{message:"Previous editable text area"},chromevox_next_form_field:{message:"Next form field"},chromevox_previous_form_field:{message:"Previous form field"},chromevox_next_graphic:{message:"Next graphic"},chromevox_previous_graphic:{message:"Previous graphic"},chromevox_next_heading:{message:"Next heading"},chromevox_previous_heading:{message:"Previous heading"}, +chromevox_next_list_item:{message:"Next list item"},chromevox_previous_list_item:{message:"Previous list item"},chromevox_next_jump:{message:"Next jump"},chromevox_previous_jump:{message:"Previous jump"},chromevox_next_link:{message:"Next link"},chromevox_previous_link:{message:"Previous link"},chromevox_next_list:{message:"Next list"},chromevox_previous_list:{message:"Previous list"},chromevox_next_math:{message:"Next math"},chromevox_previous_math:{message:"Previous math"},chromevox_next_media:{message:"Next media"}, +chromevox_previous_media:{message:"Previous media"},chromevox_next_blockquote:{message:"Next block quote"},chromevox_previous_blockquote:{message:"Previous block quote"},chromevox_next_radio:{message:"Next radio button"},chromevox_previous_radio:{message:"Previous radio button"},chromevox_next_slider:{message:"Next slider"},chromevox_previous_slider:{message:"Previous slider"},chromevox_next_table:{message:"Next table"},chromevox_next_visited_link:{message:"Next visited link"},chromevox_previous_table:{message:"Previous table"}, +chromevox_previous_visited_link:{message:"Previous visited link"},chromevox_next_button:{message:"Next button"},chromevox_previous_button:{message:"Previous button"},chromevox_next_checkbox:{message:"Next checkbox"},chromevox_previous_checkbox:{message:"Previous checkbox"},chromevox_next_landmark:{message:"Next landmark"},chromevox_previous_landmark:{message:"Previous landmark"},chromevox_benchmark:{message:"Debug benchmark"},chromevox_announce_position:{message:"Announces a brief description of the current position"}, +chromevox_fully_describe:{message:"Announces a complete description of the current position"},chromevox_options_page_title:{message:"ChromeVox Options"},chromevox_options_page_summary:{message:"Use the options below to customize ChromeVox. Changes take effect immediately."},chromevox_options_mouse_focus_follows:{message:"Use the mouse to change focus."},chromevox_options_site_specific_enhancements:{message:"Enhance specific sites (like Google Search)."},chromevox_options_verbosity_verbose:{message:"Enable verbose descriptions."}, +chromevox_options_cursor_between_characters:{message:"Place cursor between characters when editing text (like Mac OS X)."},chromevox_options_magnifier_show_checkbox:{message:"Show a magnified view of the page content."},chromevox_options_voices:{message:"Voices"},chromevox_options_voices_description:{message:"Change the current voice by selecting an option from the list below."},chromevox_options_braille:{message:"Braille"},chromevox_options_braille_table_type_6:{message:"Switch to 8 dot braille"}, +chromevox_options_braille_table_type_8:{message:"Switch to 6 dot braille"},chromevox_options_braille_description_6:{message:"Change the current 6 dot braille table by selecting an option from the list below."},chromevox_options_braille_locale_grade:{message:"$1, Grade $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_options_braille_description_8:{message:"Change the current 8 dot braille table by selecting an option from the list below."},chromevox_options_keyboard_shortcuts:{message:"Keyboard shortcuts"}, +chromevox_options_keymap_description:{message:"Change the current keymap by selecting an option from the list below."},chromevox_options_select_keys:{message:"Reset current keymap"},chromevox_options_shortcuts_description:{message:"Customize keyboard shortcuts for frequently used commands by typing them into the corresponding fields below."},chromevox_options_modifier_keys:{message:"Modifier keys"},chromevox_options_cvox_modifier_key:{message:"ChromeVox modifier key"},chromevox_kbexplorer_title:{message:"ChromeOS Keyboard Explorer"}, +chromevox_kbexplorer_instructions:{message:"Press any key to learn its name. Ctrl+W will close the keyboard explorer."},chromevox_chrome_system_need_restart:{message:"System was updated. Restart is recommended."},chromevox_chrome_brightness_changed:{message:"Brightness $1 percent",placeholders:{1:{content:"$1"}}},chromevox_chrome_tab_created:{message:"tab created"},chromevox_chrome_tab_selected:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_normal_window_selected:{message:"window $1 tab", +placeholders:{1:{content:"$1"}}},chromevox_chrome_incognito_window_selected:{message:"incognito window $1 tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_menu_opened:{message:"$1 menu opened",placeholders:{1:{content:"$1"}}},chromevox_describe_checkbox_checked:{message:"$1 checkbox checked",placeholders:{1:{content:"$1"}}},chromevox_checkbox_checked_state:{message:"checked"},chromevox_checkbox_checked_state_brl:{message:"x"},chromevox_describe_checkbox_unchecked:{message:"$1, checkbox not checked", +placeholders:{1:{content:"$1"}}},chromevox_checkbox_unchecked_state:{message:"not checked"},chromevox_checkbox_unchecked_state_brl:{message:" "},chromevox_describe_radio_selected:{message:"$1, radio button selected",placeholders:{1:{content:"$1"}}},chromevox_radio_selected_state:{message:"selected"},chromevox_radio_selected_state_brl:{message:"x"},chromevox_describe_radio_unselected:{message:"$1, radio button unselected",placeholders:{1:{content:"$1"}}},chromevox_radio_unselected_state:{message:"unselected"}, +chromevox_radio_unselected_state_brl:{message:" "},chromevox_describe_menu:{message:"$1, menu",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item:{message:"$1, menu item",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item_with_submenu:{message:"$1, menu item, with submenu",placeholders:{1:{content:"$1"}}},chromevox_describe_window:{message:"$1, window",placeholders:{1:{content:"$1"}}},chromevox_describe_textbox:{message:"$1, $2, text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}}, +chromevox_describe_unnamed_textbox:{message:"$1, text box",placeholders:{1:{content:"$1"}}},chromevox_describe_password:{message:"$1, $2, password text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_password:{message:"$1, password text box",placeholders:{1:{content:"$1"}}},chromevox_describe_button:{message:"$1, button",placeholders:{1:{content:"$1"}}},chromevox_describe_combobox:{message:"$1, $2, combo box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_combobox:{message:"$1, combo box", +placeholders:{1:{content:"$1"}}},chromevox_describe_listbox:{message:"$1, $2, list box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_listbox:{message:"$1, list box",placeholders:{1:{content:"$1"}}},chromevox_describe_link:{message:"$1, link",placeholders:{1:{content:"$1"}}},chromevox_describe_tab:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_describe_slider:{message:"$1, $2, slider",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_selected:{message:", selected"}, +chromevox_describe_unselected:{message:", unselected"},chromevox_describe_index:{message:" $1 of $2 ",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_announce_rate:{message:"Rate $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_pitch:{message:"Pitch $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_volume:{message:"Volume $1 percent",placeholders:{1:{content:"$1"}}},chromevox_exiting_dialog:{message:"Exited dialog."},chromevox_exited_container:{message:"Exited $1.", +placeholders:{1:{content:"$1"}}},chromevox_entering_dialog:{message:"Entered dialog"},chromevox_live_regions_removed:{message:"removed:"},chromevox_sticky_mode_enabled:{message:"Sticky mode enabled"},chromevox_sticky_mode_disabled:{message:"Sticky mode disabled"},chromevox_keyboard_help_intro:{message:"Keyboard Help"},chromevox_context_menu_intro:{message:"Context Menu"},chromevox_choice_widget_name:{message:"$1 list.",placeholders:{1:{content:"$1"}}},chromevox_choice_widget_help:{message:"Use up and down arrow keys to browse, or type to search."}, +chromevox_choice_widget_exited:{message:"Exited"},chromevox_choice_widget_type_generic:{message:" "},chromevox_end_of_cell:{message:"End of cell."},chromevox_no_url_found:{message:"No URL found"},chromevox_leaving_table:{message:"Leaving table."},chromevox_leaving_grid:{message:"Leaving grid."},chromevox_inside_table:{message:"Inside table"},chromevox_no_tables:{message:"No table found."},chromevox_not_inside_table:{message:"Not inside table."},chromevox_no_cell_below:{message:"No cell below."},chromevox_no_cell_above:{message:"No cell above."}, +chromevox_no_cell_right:{message:"No cell right."},chromevox_no_cell_left:{message:"No cell left."},chromevox_empty_cell:{message:"Empty cell."},chromevox_spanned:{message:"Spanned."},chromevox_row_header:{message:"Row header:"},chromevox_empty_row_header:{message:"Empty row header"},chromevox_column_header:{message:"Column header:"},chromevox_empty_column_header:{message:"Empty column header"},chromevox_no_headers:{message:"No headers"},chromevox_empty_headers:{message:"Empty headers"},chromevox_table_location:{message:"Row $1 of $2, Column $3 of $4", +placeholders:{1:{content:"$1"},2:{content:"$2"},3:{content:"$3"},4:{content:"$4"}}},chromevox_no_next_checkbox:{message:"No next checkbox."},chromevox_no_previous_checkbox:{message:"No previous checkbox."},chromevox_no_next_edit_text:{message:"No next editable text field."},chromevox_no_previous_edit_text:{message:"No previous editable text field."},chromevox_no_next_heading:{message:"No next heading."},chromevox_no_previous_heading:{message:"No previous heading."},chromevox_no_next_heading_1:{message:"No next level 1 heading."}, +chromevox_no_previous_heading_1:{message:"No previous level 1 heading."},chromevox_no_next_heading_2:{message:"No next level 2 heading."},chromevox_no_previous_heading_2:{message:"No previous level 2 heading."},chromevox_no_next_heading_3:{message:"No next level 3 heading."},chromevox_no_previous_heading_3:{message:"No previous level 3 heading."},chromevox_no_next_heading_4:{message:"No next level 4 heading."},chromevox_no_previous_heading_4:{message:"No previous level 4 heading."},chromevox_no_next_heading_5:{message:"No next level 5 heading."}, +chromevox_no_previous_heading_5:{message:"No previous level 5 heading."},chromevox_no_next_heading_6:{message:"No next level 6 heading."},chromevox_no_previous_heading_6:{message:"No previous level 6 heading."},chromevox_no_next_not_link:{message:"No next item that isn't a link."},chromevox_no_previous_not_link:{message:"No previous item that isn't a link."},chromevox_no_next_anchor:{message:"No next anchor."},chromevox_no_previous_anchor:{message:"No previous anchor."},chromevox_no_next_link:{message:"No next link."}, +chromevox_no_previous_link:{message:"No previous link."},chromevox_no_next_table:{message:"No next table."},chromevox_no_previous_table:{message:"No previous table."},chromevox_no_next_visited_link:{message:"No next visited link."},chromevox_no_previous_visited_link:{message:"No previous visited link."},chromevox_no_next_math:{message:"No next math expression."},chromevox_no_previous_math:{message:"No previous math expression."},chromevox_no_next_media_widget:{message:"No next media widget."},chromevox_no_previous_media_widget:{message:"No previous media widget."}, +chromevox_no_next_list:{message:"No next list."},chromevox_no_previous_list:{message:"No previous list."},chromevox_no_next_list_item:{message:"No next list item."},chromevox_no_previous_list_item:{message:"No previous list item."},chromevox_no_next_blockquote:{message:"No next blockquote."},chromevox_no_previous_blockquote:{message:"No previous blockquote."},chromevox_no_next_form_field:{message:"No next form field."},chromevox_no_previous_form_field:{message:"No previous form field."},chromevox_no_next_jump:{message:"No next jump point."}, +chromevox_no_previous_jump:{message:"No previous jump point."},chromevox_no_next_landmark:{message:"No next ARIA landmark."},chromevox_no_previous_landmark:{message:"No previous ARIA landmark."},chromevox_no_next_combo_box:{message:"No next combo box."},chromevox_no_previous_combo_box:{message:"No previous combo box."},chromevox_no_next_button:{message:"No next button."},chromevox_no_previous_button:{message:"No previous button."},chromevox_no_next_graphic:{message:"No next graphic."},chromevox_no_previous_graphic:{message:"No previous graphic."}, +chromevox_no_next_slider:{message:"No next slider."},chromevox_no_previous_slider:{message:"No previous slider."},chromevox_no_next_radio_button:{message:"No next radio button."},chromevox_no_previous_radio_button:{message:"No previous radio button."},chromevox_no_next_section:{message:"No next section."},chromevox_no_previous_section:{message:"No previous section."},chromevox_no_next_control:{message:"No next control."},chromevox_no_previous_control:{message:"No previous control."},chromevox_element_clicked:{message:"Clicked"}, +chromevox_element_double_clicked:{message:"double clicked"},chromevox_powerkey_no_headings:{message:"No headings."},chromevox_powerkey_no_links:{message:"No links."},chromevox_powerkey_no_forms:{message:"No forms."},chromevox_powerkey_no_tables:{message:"No tables."},chromevox_powerkey_no_landmarks:{message:"No ARIA landmarks."},chromevox_powerkey_no_jumps:{message:"No jumps."},chromevox_list_position:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_list_position_brl:{message:"$1/$2", +placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_aria_has_submenu:{message:"has submenu"},chromevox_aria_has_submenu_brl:{message:"+submnu"},chromevox_aria_has_popup:{message:"has pop up"},chromevox_aria_has_popup_brl:{message:"+popup"},chromevox_aria_value_min:{message:"Min $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_min_brl:{message:"min:$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max:{message:"Max $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max_brl:{message:"max:$1", +placeholders:{1:{content:"$1"}}},chromevox_aria_value_now:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_now_brl:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_role_alert:{message:"Alert"},chromevox_aria_role_alert_brl:{message:"alrt"},chromevox_aria_role_alertdialog:{message:"Alert dialog"},chromevox_aria_role_alertdialog_brl:{message:"alrt dlg"},chromevox_aria_role_button:{message:"Button"},chromevox_aria_role_button_brl:{message:"btn"},chromevox_aria_role_checkbox:{message:"Check box"}, +chromevox_aria_role_checkbox_brl:{message:"chx"},chromevox_aria_role_combobox:{message:"Combo box"},chromevox_aria_role_combobox_brl:{message:"cbx"},chromevox_aria_role_dialog:{message:"Dialog"},chromevox_aria_role_dialog_brl:{message:"dlg"},chromevox_aria_role_grid:{message:"Grid"},chromevox_aria_role_grid_brl:{message:"grd"},chromevox_aria_role_gridcell:{message:"Cell"},chromevox_aria_role_gridcell_brl:{message:"cl"},chromevox_aria_role_gridcell_pos:{message:"row $1 column $2",placeholders:{1:{content:"$1"}, +2:{content:"$2"}}},chromevox_aria_role_link:{message:"Link"},chromevox_aria_role_link_brl:{message:"lnk"},chromevox_aria_role_link_singular:{message:"1 link"},chromevox_aria_role_link_plural:{message:"$1 links",placeholders:{1:{content:"$1"}}},chromevox_aria_role_listbox:{message:"List box"},chromevox_aria_role_listbox_brl:{message:"lstbx"},chromevox_aria_role_log:{message:"Log"},chromevox_aria_role_log_brl:{message:"log"},chromevox_aria_role_marquee:{message:"Marquee"},chromevox_aria_role_marquee_brl:{message:"maqe"}, +chromevox_aria_role_menu:{message:"Menu"},chromevox_aria_role_menu_brl:{message:"mnu"},chromevox_aria_role_menubar:{message:"Menu bar"},chromevox_aria_role_menubar_brl:{message:"mnu br"},chromevox_aria_role_menuitem:{message:"Menu item"},chromevox_aria_role_menuitem_brl:{message:"mnu itm"},chromevox_aria_role_menuitemcheckbox:{message:"Menu item check box"},chromevox_aria_role_menuitemcheckbox_brl:{message:"mnu itm chx"},chromevox_aria_role_menuitemradio:{message:"Menu item radio button"},chromevox_aria_role_menuitemradio_brl:{message:"mnu itm rd"}, +chromevox_aria_role_option:{message:" "},chromevox_aria_role_option_brl:{message:" "},chromevox_aria_role_popup_button:{message:"Pop-up button"},chromevox_aria_role_popup_button_brl:{message:"pup btn"},chromevox_aria_role_progressbar:{message:"Progress bar"},chromevox_aria_role_progressbar_brl:{message:"prog br"},chromevox_aria_role_radio:{message:"Radio button"},chromevox_aria_role_radio_brl:{message:"rd"},chromevox_aria_role_radiogroup:{message:"Radio button group"},chromevox_aria_role_radiogroup_brl:{message:"rd grp"}, +chromevox_aria_role_scrollbar:{message:"Scroll bar"},chromevox_aria_role_scrollbar_brl:{message:"scr br"},chromevox_aria_role_slider:{message:"Slider"},chromevox_aria_role_slider_brl:{message:"slr"},chromevox_aria_role_spinbutton:{message:"Spin button"},chromevox_aria_role_spinbutton_brl:{message:"spn btn"},chromevox_aria_role_status:{message:"Status"},chromevox_aria_role_status_brl:{message:"sts"},chromevox_aria_role_tab:{message:"Tab"},chromevox_aria_role_tab_brl:{message:"tab"},chromevox_aria_role_tabpanel:{message:"Tab panel"}, +chromevox_aria_role_tabpanel_brl:{message:"tab pnl"},chromevox_aria_role_textbox:{message:"Text box"},chromevox_aria_role_textbox_brl:{message:"txtbx"},chromevox_aria_role_timer:{message:"Timer"},chromevox_aria_role_timer_brl:{message:"tmr"},chromevox_aria_role_toolbar:{message:"Tool bar"},chromevox_aria_role_toolbar_brl:{message:"tl br"},chromevox_aria_role_tooltip:{message:"Tool tip"},chromevox_aria_role_tooltip_brl:{message:"tl tp"},chromevox_aria_role_treeitem:{message:"Tree item"},chromevox_aria_role_treeitem_brl:{message:"tr itm"}, +chromevox_aria_role_article:{message:"Article"},chromevox_aria_role_article_brl:{message:"acl"},chromevox_aria_role_application:{message:"Application"},chromevox_aria_role_application_brl:{message:"app"},chromevox_aria_role_banner:{message:"Banner"},chromevox_aria_role_banner_brl:{message:"bnr"},chromevox_aria_role_columnheader:{message:"Column header"},chromevox_aria_role_columnheader_brl:{message:"clm hd"},chromevox_aria_role_complementary:{message:"Complementary"},chromevox_aria_role_complementary_brl:{message:"cmpy"}, +chromevox_aria_role_contentinfo:{message:"Content info"},chromevox_aria_role_contentinfo_brl:{message:"cnt in"},chromevox_aria_role_definition:{message:"Definition"},chromevox_aria_role_definition_brl:{message:"def"},chromevox_aria_role_directory:{message:"Directory"},chromevox_aria_role_directory_brl:{message:"dir"},chromevox_aria_role_document:{message:"Document"},chromevox_aria_role_document_brl:{message:"doc"},chromevox_aria_role_form:{message:"Form"},chromevox_aria_role_form_brl:{message:"frm"}, +chromevox_aria_role_form_singular:{message:"1 form"},chromevox_aria_role_form_plural:{message:"$1 forms",placeholders:{1:{content:"$1"}}},chromevox_aria_role_group:{message:"Group"},chromevox_aria_role_group_brl:{message:"grp"},chromevox_aria_role_heading:{message:"Heading"},chromevox_aria_role_heading_brl:{message:"hd"},chromevox_aria_role_img:{message:"Image"},chromevox_aria_role_img_brl:{message:"img"},chromevox_aria_role_list:{message:"List"},chromevox_aria_role_list_brl:{message:"lst"},chromevox_aria_role_listitem:{message:"List item"}, +chromevox_aria_role_listitem_brl:{message:"lstitm"},chromevox_aria_role_main:{message:"Main"},chromevox_aria_role_main_brl:{message:"main"},chromevox_aria_role_math:{message:"Math"},chromevox_aria_role_math_brl:{message:"math"},chromevox_aria_role_navigation:{message:"Navigation"},chromevox_aria_role_navigation_brl:{message:"nav"},chromevox_aria_role_note:{message:"Note"},chromevox_aria_role_note_brl:{message:"note"},chromevox_aria_role_region:{message:"Region"},chromevox_aria_role_region_brl:{message:"rgn"}, +chromevox_aria_role_rowheader:{message:"Row header"},chromevox_aria_role_rowheader_brl:{message:"rw hd"},chromevox_aria_role_search:{message:"Search"},chromevox_aria_role_search_brl:{message:"srch"},chromevox_aria_role_separator:{message:"Separator"},chromevox_aria_role_separator_brl:{message:"sprtr"},chromevox_aria_autocomplete_inline:{message:"Autocompletion inline"},chromevox_aria_autocomplete_inline_brl:{message:"autocomplete"},chromevox_aria_autocomplete_list:{message:"Autocompletion list"}, +chromevox_aria_autocomplete_list_brl:{message:"autocomplete lst"},chromevox_aria_autocomplete_both:{message:"Autocompletion inline and list"},chromevox_aria_autocomplete_both_brl:{message:"autocomplete lst"},chromevox_aria_checked_true:{message:"Checked"},chromevox_aria_checked_true_brl:{message:"x"},chromevox_aria_checked_false:{message:"Not checked"},chromevox_aria_checked_false_brl:{message:" "},chromevox_aria_checked_mixed:{message:"Partially checked"},chromevox_aria_checked_mixed_brl:{message:"/x"}, +chromevox_aria_disabled_true:{message:"Disabled"},chromevox_aria_disabled_true_brl:{message:"="},chromevox_aria_expanded_true:{message:"Expanded"},chromevox_aria_expanded_true_brl:{message:">"},chromevox_aria_expanded_false:{message:"Collapsed"},chromevox_aria_expanded_false_brl:{message:"<"},chromevox_aria_invalid_true:{message:"Invalid input"},chromevox_aria_invalid_true_brl:{message:"!"},chromevox_aria_invalid_grammar:{message:"Grammatical mistake detected"},chromevox_aria_invalid_grammar_brl:{message:"Grammatical mistake detected"}, +chromevox_aria_invalid_spelling:{message:"Spelling mistake detected"},chromevox_aria_invalid_spelling_brl:{message:"misspelled"},chromevox_aria_multiline_true:{message:"Multi line"},chromevox_aria_multiline_true_brl:{message:"mult ln"},chromevox_aria_multiselectable_true:{message:"Multi select"},chromevox_aria_multiselectable_true_brl:{message:"mult sel"},chromevox_aria_pressed_true:{message:"Pressed"},chromevox_aria_pressed_true_brl:{message:"x"},chromevox_aria_pressed_false:{message:"Not pressed"}, +chromevox_aria_pressed_false_brl:{message:" "},chromevox_aria_pressed_mixed:{message:"Partially pressed"},chromevox_aria_pressed_mixed_brl:{message:"/x"},chromevox_aria_readonly_true:{message:"Read only"},chromevox_aria_readonly_true_brl:{message:"rdonly"},chromevox_aria_required_true:{message:"Required"},chromevox_aria_required_true_brl:{message:"req"},chromevox_aria_selected_true:{message:"Selected"},chromevox_aria_selected_true_brl:{message:"x"},chromevox_aria_selected_false:{message:"Not selected"}, +chromevox_aria_selected_false_brl:{message:" "},chromevox_tag_link:{message:"Link"},chromevox_tag_link_brl:{message:"lnk"},chromevox_tag_button:{message:"Button"},chromevox_tag_button_brl:{message:"btn"},chromevox_tag_h1:{message:"Heading 1"},chromevox_tag_h1_brl:{message:"h1"},chromevox_tag_h2:{message:"Heading 2"},chromevox_tag_h2_brl:{message:"h2"},chromevox_tag_h3:{message:"Heading 3"},chromevox_tag_h3_brl:{message:"h3"},chromevox_tag_h4:{message:"Heading 4"},chromevox_tag_h4_brl:{message:"h4"}, +chromevox_tag_h5:{message:"Heading 5"},chromevox_tag_h5_brl:{message:"h5"},chromevox_tag_h6:{message:"Heading 6"},chromevox_tag_h6_brl:{message:"h6"},chromevox_tag_li:{message:"List item"},chromevox_tag_li_brl:{message:"lstitm"},chromevox_tag_ol:{message:"Ordered List"},chromevox_tag_ol_brl:{message:"lst"},chromevox_tag_select:{message:"Combo box"},chromevox_tag_select_brl:{message:"cbx"},chromevox_tag_textarea:{message:"Text area"},chromevox_tag_textarea_brl:{message:"txta"},chromevox_tag_table:{message:"table"}, +chromevox_tag_table_brl:{message:"tbl"},chromevox_tag_ul:{message:"List"},chromevox_tag_ul_brl:{message:"lst"},chromevox_tag_section:{message:"Section"},chromevox_tag_section_brl:{message:"stn"},chromevox_tag_nav:{message:"Navigation"},chromevox_tag_nav_brl:{message:"nav"},chromevox_tag_article:{message:"Article"},chromevox_tag_article_brl:{message:"article"},chromevox_tag_aside:{message:"Aside"},chromevox_tag_aside_brl:{message:"aside"},chromevox_tag_hgroup:{message:"Heading group"},chromevox_tag_hgroup_brl:{message:"hgrp"}, +chromevox_tag_header:{message:"Header"},chromevox_tag_header_brl:{message:"hdr"},chromevox_tag_footer:{message:"Footer"},chromevox_tag_footer_brl:{message:"ftr"},chromevox_tag_time:{message:"Time"},chromevox_tag_time_brl:{message:" "},chromevox_tag_mark:{message:"Mark"},chromevox_tag_mark_brl:{message:"mark"},chromevox_tag_video:{message:"Video"},chromevox_tag_video_brl:{message:"video"},chromevox_tag_audio:{message:"Audio"},chromevox_tag_audio_brl:{message:"audio"},chromevox_input_type_button:{message:"Button"}, +chromevox_input_type_button_brl:{message:"btn"},chromevox_input_type_checkbox:{message:"Check box"},chromevox_input_type_checkbox_brl:{message:"chx"},chromevox_input_type_color:{message:"Color picker"},chromevox_input_type_color_brl:{message:"color picker"},chromevox_input_type_datetime:{message:"Date time control"},chromevox_input_type_datetime_brl:{message:"date time"},chromevox_input_type_datetime_local:{message:"Date time control"},chromevox_input_type_datetime_local_brl:{message:"date time"}, +chromevox_input_type_date:{message:"Date control"},chromevox_input_type_date_brl:{message:"date"},chromevox_input_type_email:{message:"Edit text, email entry"},chromevox_input_type_email_brl:{message:"edtxt email"},chromevox_input_type_file:{message:"File selection"},chromevox_input_type_file_brl:{message:"file"},chromevox_input_type_image:{message:"Button"},chromevox_input_type_image_brl:{message:"btn"},chromevox_input_type_month:{message:"Month control"},chromevox_input_type_month_brl:{message:"month"}, +chromevox_input_type_number:{message:"Edit text numeric only"},chromevox_input_type_number_brl:{message:"edtxt#"},chromevox_input_type_password:{message:"Password edit text"},chromevox_input_type_password_brl:{message:"pwd edtxt"},chromevox_input_type_radio:{message:"Radio button"},chromevox_input_type_radio_brl:{message:"rd btn"},chromevox_input_type_range:{message:"Slider"},chromevox_input_type_range_brl:{message:"slr"},chromevox_input_type_reset:{message:"Reset"},chromevox_input_type_reset_brl:{message:"reset"}, +chromevox_input_type_search:{message:"Edit text, search entry"},chromevox_input_type_search_brl:{message:"search edtxt"},chromevox_input_type_submit:{message:"Button"},chromevox_input_type_submit_brl:{message:"btn"},chromevox_input_type_tel:{message:"Edit text, number entry"},chromevox_input_type_tel_brl:{message:"tele# edtxt"},chromevox_input_type_text:{message:"Edit text"},chromevox_input_type_text_brl:{message:"edtxt"},chromevox_input_type_url:{message:"Edit text, URL entry"},chromevox_input_type_url_brl:{message:"url edtxt"}, +chromevox_input_type_week:{message:"Week of the year control"},chromevox_input_type_week_brl:{message:"week"},chromevox_internal_link:{message:"Internal link"},chromevox_internal_link_brl:{message:"int lnk"},chromevox_text_box_blank:{message:"Blank"},chromevox_list_with_items:{message:"with $1 items",placeholders:{1:{content:"$1"}}},chromevox_list_with_items_brl:{message:"+$1",placeholders:{1:{content:"$1"}}},chromevox_state_percent:{message:"$1%",placeholders:{1:{content:"$1"}}},chromevox_state_percent_brl:{message:"$1%", +placeholders:{1:{content:"$1"}}},chromevox_has_submenu:{message:"with submenu"},chromevox_has_submenu_brl:{message:"+submnu"},chromevox_has_popup:{message:"has popup"},chromevox_has_popup_brl:{message:"has popup"},chromevox_collection:{message:"$1 collection with $2 items",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_key:{message:"Enter"},chromevox_space_key:{message:"Space"},chromevox_backspace_key:{message:"Backspace"},chromevox_tab_key:{message:"Tab"},chromevox_left_key:{message:"Left"}, +chromevox_up_key:{message:"Up"},chromevox_right_key:{message:"Right"},chromevox_down_key:{message:"Down"},chromevox_unknown_link:{message:"Unknown link"},chromevox_toggle_chromevox_active:{message:"Toggle ChromeVox active or inactive."},chromevox_chromevox_inactive:{message:"ChromeVox is now inactive."},chromevox_pause:{message:", "},chromevox_end:{message:". "},chromevox_previous_different_element:{message:"Previous different element."},chromevox_next_different_element:{message:"Next different element."}, +chromevox_previous_similar_element:{message:"Previous similar element."},chromevox_next_similar_element:{message:"Next similar element."},chromevox_no_more_similar_elements:{message:"No more similar elements."},chromevox_no_more_different_elements:{message:"No more different elements."},chromevox_index_total:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_css_space:{message:"Enter group exploration"},chromevox_enter_group_exploration:{message:"Exploring groups"}, +chromevox_pdf_header:{message:'This page contains the text automatically extracted from the PDF file <b>$1</b>. <a href="$2">Click here for the original.</a>',placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_object_strategy:{message:"Object"},chromevox_group_strategy:{message:"Group"},chromevox_table_strategy:{message:"Table"},chromevox_row_granularity:{message:"Row"},chromevox_column_granularity:{message:"Column"},chromevox_mathml_tree_granularity:{message:"Math ML Tree"},chromevox_mathml_layout_granularity:{message:"Math ML Layout"}, +chromevox_mathml_token_granularity:{message:"Math ML Token"},chromevox_mathml_leaf_granularity:{message:"Math ML Leaf"},chromevox_visual_strategy:{message:"Visual"},chromevox_custom_strategy:{message:"Custom"},chromevox_line_granularity:{message:"Line"},chromevox_sentence_granularity:{message:"Sentence"},chromevox_word_granularity:{message:"Word"},chromevox_character_granularity:{message:"Character"},chromevox_search_widget_intro:{message:"Find in page."},chromevox_search_widget_intro_help:{message:"Enter a search query."}, +chromevox_search_widget_outro:{message:"Exited find in page."},chromevox_search_widget_no_results:{message:"No more results."},chromevox_modifier_keys:{message:"Modifier Keys"},chromevox_navigation:{message:"ChromeVox Navigation"},chromevox_information:{message:"Information"},chromevox_help_commands:{message:"Help Commands"},chromevox_controlling_speech:{message:"Controlling Speech"},chromevox_overview:{message:"Overview"},chromevox_tables:{message:"Tables"},chromevox_jump_commands:{message:"Jump Commands"}, +chromevox_braille:{message:"Braille"},chromevox_developer:{message:"Developer"},chromevox_keymap_classic:{message:"Classic keymap"},chromevox_keymap_flat:{message:"Flat keymap"},chromevox_keymap_experimental:{message:"Experimental keymap"},chromevox_enable_tts_log:{message:"Enable TTS logging"},chromevox_begin_selection:{message:"Start selection"},chromevox_end_selection:{message:"End selection"},chromevox_selection_is:{message:"Selection is "},chromevox_toggle_selection:{message:"Start or end selection."}, +chromevox_copy:{message:"copy."},chromevox_cut:{message:"cut."},chromevox_paste:{message:"paste."},chromevox_selected:{message:"selected"},chromevox_unselected:{message:"unselected"},chromevox_added_to_selection:{message:"added to selection"},chromevox_removed_from_selection:{message:"removed from selection"},chromevox_then:{message:"then"},chromevox_followed_by:{message:"followed by"},chromevox_modifier_key:{message:"ChromeVox modifier"},chromevox_key_conflict:{message:"$1 is already assigned to a command.", +placeholders:{1:{content:"$1"}}},chromevox_math_expr:{message:"Math"},chromevox_math_expr_brl:{message:"Math"},chromevox_not_inside_math:{message:"Not inside math"},chromevox_timewidget_ampm:{message:"AM PM"},chromevox_timewidget_hours:{message:"hours"},chromevox_timewidget_minutes:{message:"minutes"},chromevox_timewidget_seconds:{message:"seconds"},chromevox_timewidget_milliseconds:{message:"milliseconds"},chromevox_timewidget_am:{message:"AM"},chromevox_timewidget_pm:{message:"PM"},chromevox_datewidget_week:{message:"week"}, +chromevox_datewidget_january:{message:"January"},chromevox_datewidget_february:{message:"February"},chromevox_datewidget_march:{message:"March"},chromevox_datewidget_april:{message:"April"},chromevox_datewidget_may:{message:"May"},chromevox_datewidget_june:{message:"June"},chromevox_datewidget_july:{message:"July"},chromevox_datewidget_august:{message:"August"},chromevox_datewidget_september:{message:"September"},chromevox_datewidget_october:{message:"October"},chromevox_datewidget_november:{message:"November"}, +chromevox_datewidget_december:{message:"December"},chromevox_no_punctuation:{message:"No punctuation"},chromevox_some_punctuation:{message:"Some punctuation"},chromevox_all_punctuation:{message:"All punctuation"},chromevox_search_help_item:{message:"Press enter to accept or escape to cancel, down for next and up for previous."},chromevox_clickable:{message:"clickable"},chromevox_clickable_brl:{message:"clickable"},chromevox_previous_character:{message:"Previous Character"},chromevox_next_character:{message:"Next Character"}, +chromevox_previous_word:{message:"Previous Word"},chromevox_next_word:{message:"Next Word"},chromevox_previous_sentence:{message:"Previous Sentence"},chromevox_next_sentence:{message:"Next Sentence"},chromevox_previous_line:{message:"Previous Line"},chromevox_next_line:{message:"Next Line"},chromevox_previous_object:{message:"Previous Object"},chromevox_next_object:{message:"Next Object"},chromevox_previous_group:{message:"Previous Group"},chromevox_next_group:{message:"Next Group"},chromevox_role_landmark:{message:"Landmark"}, +chromevox_modifier_entry_error:{message:"No modifier pressed; please press and hold one or more modifiers; lift your fingers once done and you will hear the keys set. Tab to exit."},chromevox_modifier_entry_set:{message:"$1 is now the new ChromeVox modifier.",placeholders:{1:{content:"$1"}}},chromevox_keymap_reset:{message:"$1 has been reset.",placeholders:{1:{content:"$1"}}},chromevox_keymap_switch:{message:"Switched to $1.",placeholders:{1:{content:"$1"}}},chromevox_jump_to_top:{message:"Jump to the top of the page"}, +chromevox_jump_to_bottom:{message:"Jump to the bottom of the page"},chromevox_wrapped_to_top:{message:"Wrapped to top"},chromevox_wrapped_to_bottom:{message:"Wrapped to bottom"},chromevox_cycle_punctuation_echo:{message:"Cycle punctuation echo"},chromevox_cycle_typing_echo:{message:"Cycle typing echo"},chromevox_pause_all_media:{message:"Pauses all currently playing media widgets"},chromevox_open_long_desc:{message:"Open long description in a new tab"},chromevox_no_long_desc:{message:"No long description"}, +chromevox_image_with_long_desc:{message:"Image with long description"},chromevox_selected_options_value:{message:"$1 to $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_value_brl:{message:"$1-$2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_state:{message:"selected $1 items",placeholders:{1:{content:"$1"}}},chromevox_selected_options_state_brl:{message:"sld $1",placeholders:{1:{content:"$1"}}},chromevox_clear_page_selection:{message:"cleared selection"}, +chromevox_character_echo:{message:"character echo"},chromevox_word_echo:{message:"word echo"},chromevox_character_and_word_echo:{message:"character and word echo"},chromevox_none_echo:{message:"no typing echo"},chromevox_enter_content:{message:"enter structured content, such as tables"},chromevox_exit_content:{message:"exit structured content, such as tables"},chromevox_enter_content_say:{message:"entered $1",placeholders:{1:{content:"$1"}}},chromevox_structural_line:{message:"structural line"},chromevox_layout_line:{message:"line"}, +chromevox_toggle_line_type:{message:"Toggle line type between structural or layout"},chromevox_table_shifter:{message:"table"},chromevox_navigation_shifter:{message:"default navigation"},chromevox_math_shifter:{message:"math"},chromevox_toggle_semantics:{message:"Toggle interpretation of math expressions between structural and semantic"},chromevox_semantics_on:{message:"Semantics on"},chromevox_semantics_off:{message:"Semantics off"},chromevox_phonetic_map:{message:'{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}'}, +chromevox_page_has_one_alert_singular:{message:"This page has 1 alert"},chromevox_page_has_alerts_plural:{message:"This page has $1 alerts",placeholders:{1:{content:"$1"}}},chromevox_review_alerts:{message:"Press Alt+Shift+A to review alerts"},chromevox_no_next_article:{message:"No next article."},chromevox_no_previous_article:{message:"No previous article."},chromevox_chromevox_intro:{message:"ChromeVox spoken feedback is ready"},chromevox_intro_brl:{message:"ChromeVox ready"},chromevox_earcons_on:{message:"Earcons on"}, +chromevox_earcons_off:{message:"Earcons off"},chromevox_toggle_earcons:{message:"Turn sound feedback (earcons) on or off."},chromevox_speak_time_and_date:{message:"Speak the current time and date."},chromevox_mark_as_search_result_brl:{message:"S:$1",placeholders:{1:{content:"$1"}}},chromevox_text_deleted:{message:"Deleted"},chromevox_perform_default_action:{message:"Perform default action"},chromevox_visited_url:{message:"visited"},chromevox_visited_url_brl:{message:"visited"},chromevox_exclamation:{message:"{COUNT, plural, =1 {exclamation point}other {# exclamation points}}"}, +chromevox_space:{message:"{COUNT, plural, =1 {space}other {# spaces}}"},chromevox_backtick:{message:"{COUNT, plural, =1 {backtick}other {# backticks}}"},chromevox_tilde:{message:"{COUNT, plural, =1 {TILDE}other {# tildes}}"},chromevox_at:{message:"{COUNT, plural, =1 {at}other {# at signs}}"},chromevox_pound:{message:"{COUNT, plural, =1 {pound}other {# pound signs}}"},chromevox_dollar:{message:"{COUNT, plural, =1 {dollar}other {# dollar signs}}"},chromevox_percent:{message:"{COUNT, plural, =1 {percent}other {# percent signs}}"}, +chromevox_caret:{message:"{COUNT, plural, =1 {caret}other {# carets}}"},chromevox_ampersand:{message:"{COUNT, plural, =1 {ampersand}other {# ampersands}}"},chromevox_asterisk:{message:"{COUNT, plural, =1 {asterisk}other {# asterisks}}"},chromevox_open_paren:{message:"{COUNT, plural, =1 {open paren}other {# open parens}}"},chromevox_close_paren:{message:"{COUNT, plural, =1 {close paren}other {# close parens}}"},chromevox_dash:{message:"{COUNT, plural, =1 {dash}other {# dashes}}"},chromevox_underscore:{message:"{COUNT, plural, =1 {underscore}other {# underscores}}"}, +chromevox_equals:{message:"{COUNT, plural, =1 {equal}other {# equal signs}}"},chromevox_plus:{message:"{COUNT, plural, =1 {plus}other {# plus signs}}"},chromevox_left_bracket:{message:"{COUNT, plural, =1 {left bracket}other {# left brackets}}"},chromevox_right_bracket:{message:"{COUNT, plural, =1 {right bracket}other {# right brackets}}"},chromevox_left_brace:{message:"{COUNT, plural, =1 {left brace}other {# left braces}}"},chromevox_right_brace:{message:"{COUNT, plural, =1 {right brace}other {# right braces}}"}, +chromevox_pipe:{message:"{COUNT, plural, =1 {pipe}other {# vertical pipes}}"},chromevox_semicolon:{message:"{COUNT, plural, =1 {semicolon}other {# semicolons}}"},chromevox_colon:{message:"{COUNT, plural, =1 {colon}other {# colons}}"},chromevox_comma:{message:"{COUNT, plural, =1 {comma}other {# commas}}"},chromevox_dot:{message:"{COUNT, plural, =1 {dot}=3 {ellipsis}other {# dots}}"},chromevox_less_than:{message:"{COUNT, plural, =1 {less than}other {# less than signs}}"},chromevox_greater_than:{message:"{COUNT, plural, =1 {greater than}other {# greater than signs}}"}, +chromevox_slash:{message:"{COUNT, plural, =1 {slash}other {# slashes}}"},chromevox_question_mark:{message:"{COUNT, plural, =1 {question mark}other {# question marks}}"},chromevox_quote:{message:"{COUNT, plural, =1 {quote}other {# quotes}}"},chromevox_apostrophe:{message:"{COUNT, plural, =1 {apostrophe}other {# apostrophes}}"},chromevox_tab:{message:"{COUNT, plural, =1 {tab}other {# tabs}}"},chromevox_backslash:{message:"{COUNT, plural, =1 {backslash}other {# backslashes}}"},chromevox_braille_routing:{message:"Click the item under a routing key"}, +chromevox_braille_pan_left:{message:"Pan backward"},chromevox_braille_pan_right:{message:"Pan bforward"},chromevox_braille_line_up:{message:"Braille previous Line"},chromevox_braille_line_down:{message:"Braille next Line"},chromevox_braille_top:{message:"Move braille display to top of page"},chromevox_braille_bottom:{message:"Move braille display to bottom of page"},chromevox_access_key:{message:"has access key, $1",placeholders:{1:{content:"$1"}}},chromevox_locale_dict:{message:'{"ar": "Arabic","bg": "Bulgarian","ca": "Catalan","hr": "Croatian","cs": "Czech","da": "Danish","nl": "Dutch","en_CA": "English (Canada)","en_GB": "English (United Kingdom)","en_US": "English (United States)","et": "Estonian","fr": "French","fr_CA": "French (Canada)","fr_FR": "French (France)","fi": "Finnish","de": "German","de_CH": "German (Switzerland)","de_DE": "German (Germany)","el": "Greek","hi": "Hindi","hu": "Hungarian","is": "Icelandic","it": "Italian","lv": "Latvian","lt": "Lithuanian","nb": "Norwegian Bokm\u00e5l","pl": "Polish","pt": "Portuguese","ro": "Romanian","ru": "Russian","sr": "Serbian","sk": "Slovak","sl": "Slovenian","es": "Spanish","sv": "Swedish","tr": "Turkish","vi": "Vietnamese","zh": "Chinese","zh_TW": "Chinese (Traditional Han)"}'}};cvox.TestMsgs=function(){};goog.inherits(cvox.TestMsgs,cvox.AbstractMsgs);cvox.TestMsgs.prototype.getMsg=function(a,b){if(!a){var c=Error();c.message="Message id required";throw c;}c=cvox.TestMessages["chromevox_"+a];if(void 0==c)throw c=Error(),c.message="missing-msg: "+a,c;var d=c.message;if(b)for(var e=0;e<b.length;e++){var f=c.placeholders[e+1];if(!f)throw c=Error(),c.message="Bad placeholder "+e+" for message id "+a,c;f=c.placeholders[e+1].content;d=d.replace(f,b[e])}return d}; +cvox.TestMsgs.prototype.getNumber=function(a){return""+a};cvox.HostFactory.msgsConstructor=cvox.TestMsgs;cvox.ChromeVox.initDocument(); diff --git a/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js b/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js new file mode 100644 index 00000000..8229b168 --- /dev/null +++ b/StoneIsland/platforms/android/platform_www/plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js @@ -0,0 +1,1778 @@ +// Copyright 2013 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +var goog=goog||{};goog.global=this;goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!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]:c[d]={}:c[d]=b};goog.define=function(a,b){var c=b;goog.exportPath_(a,c)};goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.provide=function(a){goog.exportPath_(a)}; +goog.setTestOnly=function(a){if(!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");};goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else 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){if(goog.DEPENDENCIES_ENABLED){var d;a=a.replace(/\\/g,"/");for(var e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a,a in e.pathToNames||(e.pathToNames[a]={}),e.pathToNames[a][d]=!0;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.useStrictRequires=!1;goog.ENABLE_DEBUG_LOADER=!0;goog.require=function(){};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a){return a}; +goog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){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.DEPENDENCIES_ENABLED=!1; +goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document,a=a.getElementsByTagName("script"),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.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==b.readyState){if(b=/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}b.write('<script type="text/javascript" src="'+ +a+'">\x3c/script>');return!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=!0,e in d.requires))for(var g in d.requires[e])if(!goog.isProvided_(g))if(g in d.nameToPath)a(d.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e<b.length;e++)if(b[e])goog.importScript_(goog.basePath+b[e]);else throw Error("Undefined script input"); +},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),goog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js")); +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.isDef=function(a){return void 0!==a};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.isString=function(a){return"string"==typeof a}; +goog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};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){"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(a.clone)return a.clone();var b="array"==b?[]:{},c;for(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_&&(goog.global.eval("var _et_ = 1;"),"undefined"!=typeof goog.global._et_?(delete goog.global._et_,goog.evalWorksForGlobals_=!0):goog.evalWorksForGlobals_=!1),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.body.appendChild(c); +b.body.removeChild(c)}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;goog.getCssName=function(a,b){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};return b?a+"-"+d(b):d(a)};goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b}; +goog.getMsg=function(a,b){var c=b||{},d;for(d in c){var e=(""+c[d]).replace(/\$/g,"$$$$");a=a.replace(RegExp("\\{\\$"+d+"\\}","gi"),e)}return a};goog.getMsgWithFallback=function(a){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}; +goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() expects not to be running in strict mode. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_)return d.superClass_.constructor.apply(a,Array.prototype.slice.call(arguments,1));for(var e=Array.prototype.slice.call(arguments,2),f=!1,g=a.constructor;g;g=g.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[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){a.call(goog.global)};goog.MODIFY_FUNCTION_PROTOTYPES=!0; +goog.MODIFY_FUNCTION_PROTOTYPES&&(Function.prototype.bind=Function.prototype.bind||function(a,b){if(1<arguments.length){var c=Array.prototype.slice.call(arguments,1);c.unshift(this,a);return goog.bind.apply(null,c)}return goog.bind(this,a)},Function.prototype.partial=function(a){var b=Array.prototype.slice.call(arguments);b.unshift(this,null);return goog.bind.apply(null,b)},Function.prototype.inherits=function(a){goog.inherits(this,a)},Function.prototype.mixin=function(a){goog.mixin(this.prototype, +a)});var cvox={VERBOSITY_VERBOSE:0,VERBOSITY_BRIEF:1,ChromeVox:function(){}};cvox.ChromeVox.host=null;cvox.ChromeVox.msgs=null;cvox.ChromeVox.isActive=!0;cvox.ChromeVox.version=null;cvox.ChromeVox.earcons=null;cvox.ChromeVox.navigationManager=null;cvox.ChromeVox.serializer=null;cvox.ChromeVox.isStickyOn=!1;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVox.verbosity=cvox.VERBOSITY_VERBOSE;cvox.ChromeVox.typingEcho=0;cvox.ChromeVox.keyEcho={};cvox.ChromeVox.position={};cvox.ChromeVox.isChromeOS=-1!=navigator.userAgent.indexOf("CrOS"); +cvox.ChromeVox.isMac=-1!=navigator.platform.indexOf("Mac");cvox.ChromeVox.modKeyStr=cvox.ChromeVox.isChromeOS?"Shift+Search":cvox.ChromeVox.isMac?"Ctrl+Cmd":"Ctrl+Meta";cvox.ChromeVox.sequenceSwitchKeyCodes=[];cvox.ChromeVox.visitedUrls={};cvox.ChromeVox.markInUserCommand=function(){};cvox.ChromeVox.syncToNode=function(){};cvox.ChromeVox.speakNode=function(){};cvox.ChromeVox.executeUserCommand=function(){};cvox.ChromeVox.entireDocumentIsHidden=!1; +cvox.ChromeVox.storeOn=function(a){a.isStickyOn=cvox.ChromeVox.isStickyOn;cvox.ChromeVox.navigationManager.storeOn(a)};cvox.ChromeVox.readFrom=function(a){cvox.ChromeVox.isStickyOn=a.isStickyOn;cvox.ChromeVox.navigationManager.readFrom(a)};cvox.Cursor=function(a,b,c){this.node=a;this.index=b;this.text=c};cvox.Cursor.prototype.clone=function(){return new cvox.Cursor(this.node,this.index,this.text)};cvox.Cursor.prototype.copyFrom=function(a){this.node=a.node;this.index=a.index;this.text=a.text};cvox.Cursor.prototype.equals=function(a){return this.node==a.node&&this.index==a.index&&this.text==a.text};goog.debug={};goog.debug.Error=function(a){Error.captureStackTrace?Error.captureStackTrace(this,goog.debug.Error):this.stack=Error().stack||"";a&&(this.message=String(a))};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.string={};goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))}; +goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};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.isEmpty=function(a){return/^[\s\xa0]*$/.test(a)};goog.string.isEmptySafe=function(a){return goog.string.isEmpty(goog.string.makeSafe(a))}; +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=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")}; +goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c<d?-1:c==d?0:1};goog.string.numerateCompareRegExp_=/(\.\d+)|(\d+)|(\D+)/g; +goog.string.numerateCompare=function(a,b){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var c=a.toLowerCase().match(goog.string.numerateCompareRegExp_),d=b.toLowerCase().match(goog.string.numerateCompareRegExp_),e=Math.min(c.length,d.length),f=0;f<e;f++){var g=c[f],h=d[f];if(g!=h)return c=parseInt(g,10),!isNaN(c)&&(d=parseInt(h,10),!isNaN(d)&&c-d)?c-d:g<h?-1:1}return c.length!=d.length?c.length-d.length:a<b?-1:1};goog.string.urlEncode=function(a){return encodeURIComponent(String(a))}; +goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\r\n|\r|\n)/g,b?"<br />":"<br>")}; +goog.string.htmlEscape=function(a,b){if(b)return a.replace(goog.string.amperRe_,"&").replace(goog.string.ltRe_,"<").replace(goog.string.gtRe_,">").replace(goog.string.quotRe_,""");if(!goog.string.allRe_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.amperRe_,"&"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.ltRe_,"<"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.gtRe_,">"));-1!=a.indexOf('"')&&(a=a.replace(goog.string.quotRe_,"""));return a}; +goog.string.amperRe_=/&/g;goog.string.ltRe_=/</g;goog.string.gtRe_=/>/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?"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={"&":"&","<":"<",">":">",""":'"'},d;d=b?b.createElement("div"):document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var g=c[a];if(g)return g;if("#"==b.charAt(0)){var h=Number("0"+b.substr(1));isNaN(h)||(g=String.fromCharCode(h))}g||(d.innerHTML=a+" ",g=d.firstChild.nodeValue.slice(0,-1));return c[a]=g})}; +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 d=Number("0"+c.substr(1));if(!isNaN(d))return String.fromCharCode(d)}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.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;b-=d;a=a.substring(0,b)+"..."+a.substring(e)}else a.length>b&&(e=Math.floor(b/2),d=a.length-e,e+=b%2,a=a.substring(0,e)+"..."+a.substring(d));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",'"':'\\"',"\\":"\\\\"};goog.string.jsEscapeCache_={"'":"\\'"}; +goog.string.quote=function(a){a=String(a);if(a.quote)return a.quote();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,c=a.charCodeAt(0);if(31<c&&127>c)b=a;else{if(256>c){if(b="\\x",16>c||256<c)b+="0"}else b="\\u",4096>c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.toMap=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=!0;return b}; +goog.string.contains=function(a,b){return-1!=a.indexOf(b)};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){var c=RegExp(goog.string.regExpEscape(b),"");return a.replace(c,"")};goog.string.removeAll=function(a,b){var c=RegExp(goog.string.regExpEscape(b),"g");return a.replace(c,"")}; +goog.string.regExpEscape=function(a){return String(a).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};goog.string.repeat=function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=goog.isDef(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(){var a=2147483648;return Math.floor(Math.random()*a).toString(36)+Math.abs(Math.floor(Math.random()*a)^goog.now()).toString(36)}; +goog.string.compareVersions=function(a,b){for(var c=0,d=goog.string.trim(String(a)).split("."),e=goog.string.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]||"",l=/(\d*)(\D*)/g,m=/(\d*)(\D*)/g;do{var p=l.exec(h)||["","",""],q=m.exec(k)||["","",""];if(0==p[0].length&&0==q[0].length)break;var c=0==p[1].length?0:parseInt(p[1],10),n=0==q[1].length?0:parseInt(q[1],10),c=goog.string.compareElements_(c,n)||goog.string.compareElements_(0==p[2].length,0==q[2].length)|| +goog.string.compareElements_(p[2],q[2])}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c),b%=goog.string.HASHCODE_MAX_;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.isEmpty(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=goog.isString(b)?goog.string.regExpEscape(b):"\\s",c=c?"|["+c+"]+":"",c=RegExp("(^"+c+")([a-z])","g");return a.replace(c,function(a,b,c){return b+c.toUpperCase()})};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(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.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){b.unshift(a);goog.debug.Error.call(this,goog.string.subs.apply(null,b));b.shift()};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);throw new goog.asserts.AssertionError(""+e,f||[]);}; +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.fail=function(a,b){if(goog.asserts.ENABLE_ASSERTS)throw new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));}; +goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(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&&!goog.isString(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&&!goog.isBoolean(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_("instanceof check failed.",null,c,Array.prototype.slice.call(arguments,3));return a}; +goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.peek=function(a){return a[a.length-1]};goog.array.ARRAY_PROTOTYPE_=Array.prototype; +goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.indexOf?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.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(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1}; +goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.lastIndexOf?function(a,b,c){goog.asserts.assert(null!=a.length);c=null==c?a.length-1:c;return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(a,b,c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1}; +goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.forEach?function(a,b,c){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;--d)d in e&&b.call(c,e[d],d,a)}; +goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.filter?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(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.ARRAY_PROTOTYPE_.map?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(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.ARRAY_PROTOTYPE_.reduce?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.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.ARRAY_PROTOTYPE_.reduceRight?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return goog.array.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.ARRAY_PROTOTYPE_.some?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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.ARRAY_PROTOTYPE_.every?function(a,b,c){goog.asserts.assert(null!=a.length);return goog.array.ARRAY_PROTOTYPE_.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(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:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(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:goog.isString(a)?a.charAt(b):a[b]}; +goog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;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.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==goog.array.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.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,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],e;if(goog.isArray(d)||(e=goog.isArrayLike(d))&&Object.prototype.hasOwnProperty.call(d,"callee"))a.push.apply(a,d);else if(e)for(var f=a.length,g=d.length,h=0;h<g;h++)a[f+h]=d[h];else a.push(d)}};goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return goog.array.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?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(){return goog.isObject(g)?"o"+goog.getUid(g):(typeof g).charAt(0)+g};c=c||d;for(var d={},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>>1,l;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};goog.array.sort=function(a,b){goog.asserts.assert(null!=a.length);goog.array.ARRAY_PROTOTYPE_.sort.call(a,b||goog.array.defaultCompare)}; +goog.array.stableSort=function(a,b){function c(a,b){return e(a.value,b.value)||a.index-b.index}for(var d=0;d<a.length;d++)a[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(a,c);for(d=0;d<a.length;d++)a[d]=a[d].value};goog.array.sortObjectsByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(a[b],c[b])})}; +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.compare=function(a,b,c){return goog.array.equals(a,b,c)}; +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.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);goog.isDef(g)&&(g=d[g]||(d[g]=[]),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];goog.isArray(d)?b.push.apply(b,goog.array.flatten.apply(null,d)):b.push(d)}return b}; +goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?goog.array.ARRAY_PROTOTYPE_.unshift.apply(a,a.splice(-b,b)):0>b&&goog.array.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=goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1);goog.array.ARRAY_PROTOTYPE_.splice.call(a,c,0,b[0])}; +goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e<arguments.length;e++){var f=arguments[e];if(c>=f.length)return b;d.push(f[c])}b.push(d)}};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.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||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)}; +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?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b){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]);for(var l=[],h=e,k=f;0<h&&0<k;)c(a[h-1],b[k-1])?(l.unshift(d(h-1,k-1)),h--,k--):g[h-1][k]>g[h][k-1]?h--:k--;return l}; +goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)}; +goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};goog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.floor(a+(b||2E-15))};goog.math.safeCeil=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.ceil(a-(b||2E-15))};goog.i18n={}; +goog.i18n.CompactNumberFormatSymbols_af={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0m"},1E7:{other:"00\u00a0m"},1E8:{other:"000\u00a0m"},1E9:{other:"0\u00a0mjd"},1E10:{other:"00\u00a0mjd"},1E11:{other:"000\u00a0mjd"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duisend"},1E4:{other:"00 duisend"},1E5:{other:"000 duisend"},1E6:{other:"0 miljoen"},1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"}, +1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_af_ZA=goog.i18n.CompactNumberFormatSymbols_af; +goog.i18n.CompactNumberFormatSymbols_am={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u123a"},1E4:{other:"00\u00a0\u123a"},1E5:{other:"000\u00a0\u123a"},1E6:{other:"0\u00a0\u121c\u1275\u122d"},1E7:{other:"00\u00a0\u121c\u1275\u122d"},1E8:{other:"000\u00a0\u121c\u1275\u122d"},1E9:{other:"0\u00a0\u1262"},1E10:{other:"00\u00a0\u1262"},1E11:{other:"000\u00a0\u1262"},1E12:{other:"0\u00a0\u1275"},1E13:{other:"00\u00a0\u1275"},1E14:{other:"000\u00a0\u1275"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u123a"}, +1E4:{other:"00 \u123a"},1E5:{other:"000 \u123a"},1E6:{other:"0 \u121a\u120a\u12ee\u1295"},1E7:{other:"00 \u121a\u120a\u12ee\u1295"},1E8:{other:"000 \u121a\u120a\u12ee\u1295"},1E9:{other:"0 \u1262\u120a\u12ee\u1295"},1E10:{other:"00 \u1262\u120a\u12ee\u1295"},1E11:{other:"000 \u1262\u120a\u12ee\u1295"},1E12:{other:"0 \u1275\u122a\u120a\u12ee\u1295"},1E13:{other:"00 \u1275\u122a\u120a\u12ee\u1295"},1E14:{other:"000 \u1275\u122a\u120a\u12ee\u1295"}}};goog.i18n.CompactNumberFormatSymbols_am_ET=goog.i18n.CompactNumberFormatSymbols_am; +goog.i18n.CompactNumberFormatSymbols_ar={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0623\u0644\u0641"},1E4:{other:"00\u00a0\u0623\u0644\u0641"},1E5:{other:"000\u00a0\u0623\u0644\u0641"},1E6:{other:"0\u00a0\u0645\u0644\u064a\u0648"},1E7:{other:"00\u00a0\u0645\u0644\u064a\u0648"},1E8:{other:"000\u00a0\u0645\u0644\u064a\u0648"},1E9:{other:"0\u00a0\u0628\u0644\u064a\u0648"},1E10:{other:"00\u00a0\u0628\u0644\u064a\u0648"},1E11:{other:"000\u00a0\u0628\u0644\u064a\u0648"},1E12:{other:"0\u00a0\u062a\u0631\u0644\u064a\u0648"}, +1E13:{other:"00\u00a0\u062a\u0631\u0644\u064a\u0648"},1E14:{other:"000\u00a0\u062a\u0631\u0644\u064a\u0648"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0623\u0644\u0641"},1E4:{other:"00 \u0623\u0644\u0641"},1E5:{other:"000 \u0623\u0644\u0641"},1E6:{other:"0 \u0645\u0644\u064a\u0648\u0646"},1E7:{other:"00 \u0645\u0644\u064a\u0648\u0646"},1E8:{other:"000 \u0645\u0644\u064a\u0648\u0646"},1E9:{other:"0 \u0628\u0644\u064a\u0648\u0646"},1E10:{other:"00 \u0628\u0644\u064a\u0648\u0646"},1E11:{other:"000 \u0628\u0644\u064a\u0648\u0646"}, +1E12:{other:"0 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E13:{other:"00 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"},1E14:{other:"000 \u062a\u0631\u064a\u0644\u064a\u0648\u0646"}}};goog.i18n.CompactNumberFormatSymbols_ar_001=goog.i18n.CompactNumberFormatSymbols_ar;goog.i18n.CompactNumberFormatSymbols_ar_EG=goog.i18n.CompactNumberFormatSymbols_ar; +goog.i18n.CompactNumberFormatSymbols_bg={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0425"},1E4:{other:"00\u00a0\u0425"},1E5:{other:"000\u00a0\u0425"},1E6:{other:"0\u00a0\u041c"},1E7:{other:"00\u00a0\u041c"},1E8:{other:"000\u00a0\u041c"},1E9:{other:"0\u00a0\u0411"},1E10:{other:"00\u00a0\u0411"},1E11:{other:"000\u00a0\u0411"},1E12:{other:"0\u00a0\u0422"},1E13:{other:"00\u00a0\u0422"},1E14:{other:"000\u00a0\u0422"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u043b\u044f\u0434\u0438"}, +1E4:{other:"00 \u0445\u0438\u043b\u044f\u0434\u0438"},1E5:{other:"000 \u0445\u0438\u043b\u044f\u0434\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}, +1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_bg_BG=goog.i18n.CompactNumberFormatSymbols_bg; +goog.i18n.CompactNumberFormatSymbols_bn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u09b9\u09be\u099c\u09be\u09b0"},1E4:{other:"00 \u09b9\u09be\u099c\u09be\u09b0"},1E5:{other:"000 \u09b9\u09be\u099c\u09be\u09b0"},1E6:{other:"0 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}, +1E7:{other:"00 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E8:{other:"000 \u09ae\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E9:{other:"0 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E10:{other:"00 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E11:{other:"000 \u09ac\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E12:{other:"0 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E13:{other:"00 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"},1E14:{other:"000 \u099f\u09cd\u09b0\u09bf\u09b2\u09bf\u09af\u09bc\u09a8"}}}; +goog.i18n.CompactNumberFormatSymbols_bn_BD=goog.i18n.CompactNumberFormatSymbols_bn;goog.i18n.CompactNumberFormatSymbols_br={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_br_FR=goog.i18n.CompactNumberFormatSymbols_br; +goog.i18n.CompactNumberFormatSymbols_ca={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milions"},1E7:{other:"00 milions"}, +1E8:{other:"000 milions"},1E9:{other:"0 miliards"},1E10:{other:"00 miliards"},1E11:{other:"000 miliards"},1E12:{other:"0 bilions"},1E13:{other:"00 bilions"},1E14:{other:"000 bilions"}}};goog.i18n.CompactNumberFormatSymbols_ca_AD=goog.i18n.CompactNumberFormatSymbols_ca;goog.i18n.CompactNumberFormatSymbols_ca_ES=goog.i18n.CompactNumberFormatSymbols_ca; +goog.i18n.CompactNumberFormatSymbols_chr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_chr_US=goog.i18n.CompactNumberFormatSymbols_chr; +goog.i18n.CompactNumberFormatSymbols_cs={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"}, +1E6:{other:"0 milion\u016f"},1E7:{other:"00 milion\u016f"},1E8:{other:"000 milion\u016f"},1E9:{other:"0 miliard"},1E10:{other:"00 miliard"},1E11:{other:"000 miliard"},1E12:{other:"0 bilion\u016f"},1E13:{other:"00 bilion\u016f"},1E14:{other:"000 bilion\u016f"}}};goog.i18n.CompactNumberFormatSymbols_cs_CZ=goog.i18n.CompactNumberFormatSymbols_cs; +goog.i18n.CompactNumberFormatSymbols_cy={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 miliwn"},1E7:{other:"00 miliwn"},1E8:{other:"000 miliwn"},1E9:{other:"0 biliwn"},1E10:{other:"00 biliwn"}, +1E11:{other:"000 biliwn"},1E12:{other:"0 triliwn"},1E13:{other:"00 triliwn"},1E14:{other:"000 triliwn"}}};goog.i18n.CompactNumberFormatSymbols_cy_GB=goog.i18n.CompactNumberFormatSymbols_cy; +goog.i18n.CompactNumberFormatSymbols_da={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mio"},1E7:{other:"00\u00a0mio"},1E8:{other:"000\u00a0mio"},1E9:{other:"0\u00a0mia"},1E10:{other:"00\u00a0mia"},1E11:{other:"000\u00a0mia"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusind"},1E4:{other:"00 tusind"},1E5:{other:"000 tusind"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_da_DK=goog.i18n.CompactNumberFormatSymbols_da; +goog.i18n.CompactNumberFormatSymbols_de={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}}; +goog.i18n.CompactNumberFormatSymbols_de_AT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_BE=goog.i18n.CompactNumberFormatSymbols_de; +goog.i18n.CompactNumberFormatSymbols_de_CH={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 Tausend"},1E4:{other:"00 Tausend"},1E5:{other:"000 Tausend"},1E6:{other:"0 Millionen"},1E7:{other:"00 Millionen"}, +1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_de_DE=goog.i18n.CompactNumberFormatSymbols_de;goog.i18n.CompactNumberFormatSymbols_de_LU=goog.i18n.CompactNumberFormatSymbols_de; +goog.i18n.CompactNumberFormatSymbols_el={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u03c7\u03b9\u03bb."},1E4:{other:"00\u00a0\u03c7\u03b9\u03bb."},1E5:{other:"000\u00a0\u03c7\u03b9\u03bb."},1E6:{other:"0\u00a0\u03b5\u03ba."},1E7:{other:"00\u00a0\u03b5\u03ba."},1E8:{other:"000\u00a0\u03b5\u03ba."},1E9:{other:"0\u00a0\u03b4\u03b9\u03c2"},1E10:{other:"00\u00a0\u03b4\u03b9\u03c2"},1E11:{other:"000\u00a0\u03b4\u03b9\u03c2"},1E12:{other:"0\u00a0\u03c4\u03c1\u03b9\u03c2"},1E13:{other:"00\u00a0\u03c4\u03c1\u03b9\u03c2"}, +1E14:{other:"000\u00a0\u03c4\u03c1\u03b9\u03c2"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E4:{other:"00 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E5:{other:"000 \u03c7\u03b9\u03bb\u03b9\u03ac\u03b4\u03b5\u03c2"},1E6:{other:"0 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E7:{other:"00 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E8:{other:"000 \u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}, +1E9:{other:"0 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E10:{other:"00 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E11:{other:"000 \u03b4\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E12:{other:"0 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"},1E13:{other:"00 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}, +1E14:{other:"000 \u03c4\u03c1\u03b9\u03c3\u03b5\u03ba\u03b1\u03c4\u03bf\u03bc\u03bc\u03cd\u03c1\u03b9\u03b1"}}};goog.i18n.CompactNumberFormatSymbols_el_GR=goog.i18n.CompactNumberFormatSymbols_el; +goog.i18n.CompactNumberFormatSymbols_en={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_AS=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_AU={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_FM=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_GB={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_GU=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_IE={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}}; +goog.i18n.CompactNumberFormatSymbols_en_IN={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_MH=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_MP=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PR=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_PW=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_SG={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}};goog.i18n.CompactNumberFormatSymbols_en_TC=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_UM=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_US=goog.i18n.CompactNumberFormatSymbols_en;goog.i18n.CompactNumberFormatSymbols_en_VG=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_VI=goog.i18n.CompactNumberFormatSymbols_en; +goog.i18n.CompactNumberFormatSymbols_en_ZA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"}, +1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"},1E14:{other:"000 trillion"}}}; +goog.i18n.CompactNumberFormatSymbols_es={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00\u00a0K\u00a0M"},1E11:{other:"000\u00a0K\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"}, +1E7:{other:"00 millones"},1E8:{other:"000 millones"},1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}}; +goog.i18n.CompactNumberFormatSymbols_es_419={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0k\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 millones"},1E7:{other:"00 millones"},1E8:{other:"000 millones"}, +1E9:{other:"0 millardos"},1E10:{other:"00 millardos"},1E11:{other:"000 millardos"},1E12:{other:"0 billones"},1E13:{other:"00 billones"},1E14:{other:"000 billones"}}};goog.i18n.CompactNumberFormatSymbols_es_EA=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_ES=goog.i18n.CompactNumberFormatSymbols_es;goog.i18n.CompactNumberFormatSymbols_es_IC=goog.i18n.CompactNumberFormatSymbols_es; +goog.i18n.CompactNumberFormatSymbols_et={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tuh"},1E4:{other:"00\u00a0tuh"},1E5:{other:"000\u00a0tuh"},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0trl"},1E13:{other:"00\u00a0trl"},1E14:{other:"000\u00a0trl"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhat"},1E4:{other:"00 tuhat"},1E5:{other:"000 tuhat"},1E6:{other:"0 miljonit"}, +1E7:{other:"00 miljonit"},1E8:{other:"000 miljonit"},1E9:{other:"0 miljardit"},1E10:{other:"00 miljardit"},1E11:{other:"000 miljardit"},1E12:{other:"0 triljonit"},1E13:{other:"00 triljonit"},1E14:{other:"000 triljonit"}}};goog.i18n.CompactNumberFormatSymbols_et_EE=goog.i18n.CompactNumberFormatSymbols_et; +goog.i18n.CompactNumberFormatSymbols_eu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milioi"},1E7:{other:"00 milioi"},1E8:{other:"000 milioi"},1E9:{other:"0000 milioi"}, +1E10:{other:"00000 milioi"},1E11:{other:"000000 milioi"},1E12:{other:"0 bilioi"},1E13:{other:"00 bilioi"},1E14:{other:"000 bilioi"}}};goog.i18n.CompactNumberFormatSymbols_eu_ES=goog.i18n.CompactNumberFormatSymbols_eu; +goog.i18n.CompactNumberFormatSymbols_fa={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0647\u0632\u0627\u0631"},1E4:{other:"00 \u0647\u0632\u0627\u0631"},1E5:{other:"000 \u0647\u0632\u0627\u0631"},1E6:{other:"0 \u0645\u06cc\u0644\u06cc\u0648\u0646"}, +1E7:{other:"00 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E8:{other:"000 \u0645\u06cc\u0644\u06cc\u0648\u0646"},1E9:{other:"0 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E10:{other:"00 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E11:{other:"000 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E12:{other:"0 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E13:{other:"00 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"},1E14:{other:"000 \u0647\u0632\u0627\u0631 \u0645\u06cc\u0644\u06cc\u0627\u0631\u062f"}}}; +goog.i18n.CompactNumberFormatSymbols_fa_IR=goog.i18n.CompactNumberFormatSymbols_fa; +goog.i18n.CompactNumberFormatSymbols_fi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t."},1E4:{other:"00\u00a0t."},1E5:{other:"000\u00a0t."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bilj."},1E13:{other:"00\u00a0bilj."},1E14:{other:"000\u00a0bilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tuhatta"},1E4:{other:"00 tuhatta"},1E5:{other:"000 tuhatta"}, +1E6:{other:"0 miljoonaa"},1E7:{other:"00 miljoonaa"},1E8:{other:"000 miljoonaa"},1E9:{other:"0 miljardia"},1E10:{other:"00 miljardia"},1E11:{other:"000 miljardia"},1E12:{other:"0 biljoonaa"},1E13:{other:"00 biljoonaa"},1E14:{other:"000 biljoonaa"}}};goog.i18n.CompactNumberFormatSymbols_fi_FI=goog.i18n.CompactNumberFormatSymbols_fi; +goog.i18n.CompactNumberFormatSymbols_fil={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"}, +1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}};goog.i18n.CompactNumberFormatSymbols_fil_PH=goog.i18n.CompactNumberFormatSymbols_fil; +goog.i18n.CompactNumberFormatSymbols_fr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"}, +1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_BL=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_fr_CA={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Md"},1E10:{other:"00\u00a0Md"},1E11:{other:"000\u00a0Md"},1E12:{other:"0\u00a0Bn"},1E13:{other:"00\u00a0Bn"},1E14:{other:"000\u00a0Bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mille"},1E4:{other:"00 mille"},1E5:{other:"000 mille"},1E6:{other:"0 millions"},1E7:{other:"00 millions"}, +1E8:{other:"000 millions"},1E9:{other:"0 milliards"},1E10:{other:"00 milliards"},1E11:{other:"000 milliards"},1E12:{other:"0 billions"},1E13:{other:"00 billions"},1E14:{other:"000 billions"}}};goog.i18n.CompactNumberFormatSymbols_fr_FR=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_GP=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MC=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_fr_MF=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_MQ=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_RE=goog.i18n.CompactNumberFormatSymbols_fr;goog.i18n.CompactNumberFormatSymbols_fr_YT=goog.i18n.CompactNumberFormatSymbols_fr; +goog.i18n.CompactNumberFormatSymbols_gl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00k"},1E5:{other:"000k"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0000\u00a0M"},1E10:{other:"00k\u00a0M"},1E11:{other:"000k\u00a0M"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 mill\u00f3ns"},1E7:{other:"00 mill\u00f3ns"}, +1E8:{other:"000 mill\u00f3ns"},1E9:{other:"0 mil mill\u00f3ns"},1E10:{other:"00 mil mill\u00f3ns"},1E11:{other:"000 mil mill\u00f3ns"},1E12:{other:"0 bill\u00f3ns"},1E13:{other:"00 bill\u00f3ns"},1E14:{other:"000 bill\u00f3ns"}}};goog.i18n.CompactNumberFormatSymbols_gl_ES=goog.i18n.CompactNumberFormatSymbols_gl; +goog.i18n.CompactNumberFormatSymbols_gsw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tsd"},1E4:{other:"00\u00a0tsd"},1E5:{other:"000\u00a0tsd"},1E6:{other:"0\u00a0Mio"},1E7:{other:"00\u00a0Mio"},1E8:{other:"000\u00a0Mio"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0Bio"},1E13:{other:"00\u00a0Bio"},1E14:{other:"000\u00a0Bio"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tausend"},1E4:{other:"00 tausend"},1E5:{other:"000 tausend"},1E6:{other:"0 Millionen"}, +1E7:{other:"00 Millionen"},1E8:{other:"000 Millionen"},1E9:{other:"0 Milliarden"},1E10:{other:"00 Milliarden"},1E11:{other:"000 Milliarden"},1E12:{other:"0 Billionen"},1E13:{other:"00 Billionen"},1E14:{other:"000 Billionen"}}};goog.i18n.CompactNumberFormatSymbols_gsw_CH=goog.i18n.CompactNumberFormatSymbols_gsw; +goog.i18n.CompactNumberFormatSymbols_gu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0ab9\u0a9c\u0abe\u0ab0"},1E4:{other:"00 \u0ab9\u0a9c\u0abe\u0ab0"},1E5:{other:"000 \u0ab9\u0a9c\u0abe\u0ab0"},1E6:{other:"0 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}, +1E7:{other:"00 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E8:{other:"000 \u0aae\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E9:{other:"0 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E10:{other:"00 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E11:{other:"000 \u0aac\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E12:{other:"0 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E13:{other:"00 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"},1E14:{other:"000 \u0a9f\u0acd\u0ab0\u0abf\u0ab2\u0abf\u0aaf\u0aa8"}}}; +goog.i18n.CompactNumberFormatSymbols_gu_IN=goog.i18n.CompactNumberFormatSymbols_gu;goog.i18n.CompactNumberFormatSymbols_haw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_haw_US=goog.i18n.CompactNumberFormatSymbols_haw; +goog.i18n.CompactNumberFormatSymbols_he={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"}, +1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"}, +1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}};goog.i18n.CompactNumberFormatSymbols_he_IL=goog.i18n.CompactNumberFormatSymbols_he; +goog.i18n.CompactNumberFormatSymbols_hi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0L"},1E6:{other:"00L"},1E7:{other:"0Cr"},1E8:{other:"00Cr"},1E9:{other:"000Cr"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093c\u093e\u0930"},1E5:{other:"0 \u0932\u093e\u0916"},1E6:{other:"00 \u0932\u093e\u0916"},1E7:{other:"0 \u0915\u0930\u094b\u0921\u093c"}, +1E8:{other:"00 \u0915\u0930\u094b\u0921\u093c"},1E9:{other:"0 \u0905\u0930\u092c"},1E10:{other:"00 \u0905\u0930\u092c"},1E11:{other:"0 \u0916\u0930\u092c"},1E12:{other:"00 \u0916\u0930\u092c"},1E13:{other:"000 \u0916\u0930\u092c"},1E14:{other:"0000 \u0916\u0930\u092c"}}};goog.i18n.CompactNumberFormatSymbols_hi_IN=goog.i18n.CompactNumberFormatSymbols_hi; +goog.i18n.CompactNumberFormatSymbols_hr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mlr."},1E10:{other:"00\u00a0mlr."},1E11:{other:"000\u00a0mlr."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0 milijuna"},1E7:{other:"00 milijuna"},1E8:{other:"000 milijuna"}, +1E9:{other:"0 milijarda"},1E10:{other:"00 milijarda"},1E11:{other:"000 milijarda"},1E12:{other:"0 bilijuna"},1E13:{other:"00 bilijuna"},1E14:{other:"000 bilijuna"}}};goog.i18n.CompactNumberFormatSymbols_hr_HR=goog.i18n.CompactNumberFormatSymbols_hr; +goog.i18n.CompactNumberFormatSymbols_hu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0E"},1E4:{other:"00\u00a0E"},1E5:{other:"000\u00a0E"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0Mrd"},1E10:{other:"00\u00a0Mrd"},1E11:{other:"000\u00a0Mrd"},1E12:{other:"0\u00a0B"},1E13:{other:"00\u00a0B"},1E14:{other:"000\u00a0B"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ezer"},1E4:{other:"00 ezer"},1E5:{other:"000 ezer"},1E6:{other:"0 milli\u00f3"},1E7:{other:"00 milli\u00f3"}, +1E8:{other:"000 milli\u00f3"},1E9:{other:"0 milli\u00e1rd"},1E10:{other:"00 milli\u00e1rd"},1E11:{other:"000 milli\u00e1rd"},1E12:{other:"0 billi\u00f3"},1E13:{other:"00 billi\u00f3"},1E14:{other:"000 billi\u00f3"}}};goog.i18n.CompactNumberFormatSymbols_hu_HU=goog.i18n.CompactNumberFormatSymbols_hu; +goog.i18n.CompactNumberFormatSymbols_id={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"}, +1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}};goog.i18n.CompactNumberFormatSymbols_id_ID=goog.i18n.CompactNumberFormatSymbols_id; +goog.i18n.CompactNumberFormatSymbols_in={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0rb"},1E5:{other:"000\u00a0rb"},1E6:{other:"0\u00a0jt"},1E7:{other:"00\u00a0jt"},1E8:{other:"000\u00a0jt"},1E9:{other:"0\u00a0M"},1E10:{other:"00\u00a0M"},1E11:{other:"000\u00a0M"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"}, +1E8:{other:"000 juta"},1E9:{other:"0 miliar"},1E10:{other:"00 miliar"},1E11:{other:"000 miliar"},1E12:{other:"0 triliun"},1E13:{other:"00 triliun"},1E14:{other:"000 triliun"}}}; +goog.i18n.CompactNumberFormatSymbols_is={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u00fe."},1E4:{other:"00\u00a0\u00fe."},1E5:{other:"000\u00a0\u00fe."},1E6:{other:"0\u00a0m."},1E7:{other:"00\u00a0m."},1E8:{other:"000\u00a0m."},1E9:{other:"0\u00a0ma."},1E10:{other:"00\u00a0ma."},1E11:{other:"000\u00a0ma."},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u00fe\u00fasund"},1E4:{other:"00 \u00fe\u00fasund"},1E5:{other:"000 \u00fe\u00fasund"}, +1E6:{other:"0 millj\u00f3nir"},1E7:{other:"00 millj\u00f3nir"},1E8:{other:"000 millj\u00f3nir"},1E9:{other:"0 milljar\u00f0ar"},1E10:{other:"00 milljar\u00f0ar"},1E11:{other:"000 milljar\u00f0ar"},1E12:{other:"0 billj\u00f3nir"},1E13:{other:"00 billj\u00f3nir"},1E14:{other:"000 billj\u00f3nir"}}};goog.i18n.CompactNumberFormatSymbols_is_IS=goog.i18n.CompactNumberFormatSymbols_is; +goog.i18n.CompactNumberFormatSymbols_it={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0Mln"},1E7:{other:"00\u00a0Mln"},1E8:{other:"000\u00a0Mln"},1E9:{other:"0\u00a0Mld"},1E10:{other:"00\u00a0Mld"},1E11:{other:"000\u00a0Mld"},1E12:{other:"0\u00a0Bln"},1E13:{other:"00\u00a0Bln"},1E14:{other:"000\u00a0Bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 migliaia"},1E4:{other:"00 migliaia"},1E5:{other:"000 migliaia"},1E6:{other:"0 milioni"},1E7:{other:"00 milioni"}, +1E8:{other:"000 milioni"},1E9:{other:"0 miliardi"},1E10:{other:"00 miliardi"},1E11:{other:"000 miliardi"},1E12:{other:"0 bilioni"},1E13:{other:"00 bilioni"},1E14:{other:"000 bilioni"}}};goog.i18n.CompactNumberFormatSymbols_it_IT=goog.i18n.CompactNumberFormatSymbols_it;goog.i18n.CompactNumberFormatSymbols_it_SM=goog.i18n.CompactNumberFormatSymbols_it; +goog.i18n.CompactNumberFormatSymbols_iw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"\u200f0\u00a0\u05d0\u05dc\u05e3"},1E4:{other:"\u200f00\u00a0\u05d0\u05dc\u05e3"},1E5:{other:"\u200f000\u00a0\u05d0\u05dc\u05e3"},1E6:{other:"\u200f0\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000\u00a0\u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"}, +1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"\u200f0 \u05d0\u05dc\u05e3"},1E4:{other:"\u200f00 \u05d0\u05dc\u05e3"},1E5:{other:"\u200f000 \u05d0\u05dc\u05e3"},1E6:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E7:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E8:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d5\u05df"},1E9:{other:"\u200f0 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E10:{other:"\u200f00 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"},1E11:{other:"\u200f000 \u05de\u05d9\u05dc\u05d9\u05d0\u05e8\u05d3"}, +1E12:{other:"\u200f0 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E13:{other:"\u200f00 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"},1E14:{other:"\u200f000 \u05d8\u05e8\u05d9\u05dc\u05d9\u05d5\u05df"}}}; +goog.i18n.CompactNumberFormatSymbols_ja={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0\u5343"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"}, +1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"},1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_ja_JP=goog.i18n.CompactNumberFormatSymbols_ja; +goog.i18n.CompactNumberFormatSymbols_kn={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E4:{other:"00 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E5:{other:"000 \u0cb8\u0cbe\u0cb5\u0cbf\u0cb0"},1E6:{other:"0 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"}, +1E7:{other:"00 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E8:{other:"000 \u0cae\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E9:{other:"0 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E10:{other:"00 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E11:{other:"000 \u0cac\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd"},1E12:{other:"0 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E13:{other:"00 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"},1E14:{other:"000 \u0c9f\u0ccd\u0cb0\u0cbf\u0cb2\u0cbf\u0caf\u0ca8\u0ccd\u200c"}}}; +goog.i18n.CompactNumberFormatSymbols_kn_IN=goog.i18n.CompactNumberFormatSymbols_kn; +goog.i18n.CompactNumberFormatSymbols_ko={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"},1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\ub9cc"},1E5:{other:"00\ub9cc"},1E6:{other:"000\ub9cc"},1E7:{other:"0000\ub9cc"},1E8:{other:"0\uc5b5"}, +1E9:{other:"00\uc5b5"},1E10:{other:"000\uc5b5"},1E11:{other:"0000\uc5b5"},1E12:{other:"0\uc870"},1E13:{other:"00\uc870"},1E14:{other:"000\uc870"}}};goog.i18n.CompactNumberFormatSymbols_ko_KR=goog.i18n.CompactNumberFormatSymbols_ko; +goog.i18n.CompactNumberFormatSymbols_ln={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_ln_CD=goog.i18n.CompactNumberFormatSymbols_ln; +goog.i18n.CompactNumberFormatSymbols_lt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0G"},1E10:{other:"00\u00a0G"},1E11:{other:"000\u00a0G"},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bkstan\u010di\u0173"},1E4:{other:"00 t\u016bkstan\u010di\u0173"},1E5:{other:"000 t\u016bkstan\u010di\u0173"}, +1E6:{other:"0 milijon\u0173"},1E7:{other:"00 milijon\u0173"},1E8:{other:"000 milijon\u0173"},1E9:{other:"0 milijard\u0173"},1E10:{other:"00 milijard\u0173"},1E11:{other:"000 milijard\u0173"},1E12:{other:"0 trilijon\u0173"},1E13:{other:"00 trilijon\u0173"},1E14:{other:"000 trilijon\u0173"}}};goog.i18n.CompactNumberFormatSymbols_lt_LT=goog.i18n.CompactNumberFormatSymbols_lt; +goog.i18n.CompactNumberFormatSymbols_lv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0t\u016bkst."},1E4:{other:"00\u00a0t\u016bkst."},1E5:{other:"000\u00a0t\u016bkst."},1E6:{other:"0\u00a0milj."},1E7:{other:"00\u00a0milj."},1E8:{other:"000\u00a0milj."},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0trilj."},1E13:{other:"00\u00a0trilj."},1E14:{other:"000\u00a0trilj."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 t\u016bksto\u0161i"},1E4:{other:"00 t\u016bksto\u0161i"}, +1E5:{other:"000 t\u016bksto\u0161i"},1E6:{other:"0 miljoni"},1E7:{other:"00 miljoni"},1E8:{other:"000 miljoni"},1E9:{other:"0 miljardi"},1E10:{other:"00 miljardi"},1E11:{other:"000 miljardi"},1E12:{other:"0 trilj."},1E13:{other:"00 trilj."},1E14:{other:"000 trilj."}}};goog.i18n.CompactNumberFormatSymbols_lv_LV=goog.i18n.CompactNumberFormatSymbols_lv; +goog.i18n.CompactNumberFormatSymbols_ml={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E4:{other:"00 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E5:{other:"000 \u0d06\u0d2f\u0d3f\u0d30\u0d02"},1E6:{other:"0 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"}, +1E7:{other:"00 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E8:{other:"000 \u0d26\u0d36\u0d32\u0d15\u0d4d\u0d37\u0d02"},1E9:{other:"0 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E10:{other:"00 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E11:{other:"000 \u0d32\u0d15\u0d4d\u0d37\u0d02 \u0d15\u0d4b\u0d1f\u0d3f"},1E12:{other:"0 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E13:{other:"00 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"},1E14:{other:"000 \u0d1f\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u0d2f\u0d7a"}}}; +goog.i18n.CompactNumberFormatSymbols_ml_IN=goog.i18n.CompactNumberFormatSymbols_ml; +goog.i18n.CompactNumberFormatSymbols_mr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0939\u091c\u093e\u0930"},1E4:{other:"00 \u0939\u091c\u093e\u0930"},1E5:{other:"000 \u0939\u091c\u093e\u0930"},1E6:{other:"0 \u0926\u0936\u0932\u0915\u094d\u0937"}, +1E7:{other:"00 \u0926\u0936\u0932\u0915\u094d\u0937"},1E8:{other:"000 \u0926\u0936\u0932\u0915\u094d\u0937"},1E9:{other:"0 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E10:{other:"00 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E11:{other:"000 \u092e\u0939\u093e\u092a\u0926\u094d\u092e"},1E12:{other:"0 \u0926\u0939\u093e \u0916\u0930\u092c"},1E13:{other:"00 \u0926\u0939\u093e \u0916\u0930\u092c"},1E14:{other:"000 \u0926\u0939\u093e \u0916\u0930\u092c"}}}; +goog.i18n.CompactNumberFormatSymbols_mr_IN=goog.i18n.CompactNumberFormatSymbols_mr; +goog.i18n.CompactNumberFormatSymbols_ms={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0J"},1E7:{other:"00J"},1E8:{other:"000J"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ribu"},1E4:{other:"00 ribu"},1E5:{other:"000 ribu"},1E6:{other:"0 juta"},1E7:{other:"00 juta"},1E8:{other:"000 juta"},1E9:{other:"0 bilion"},1E10:{other:"00 bilion"}, +1E11:{other:"000 bilion"},1E12:{other:"0 trilion"},1E13:{other:"00 trilion"},1E14:{other:"000 trilion"}}};goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY=goog.i18n.CompactNumberFormatSymbols_ms;goog.i18n.CompactNumberFormatSymbols_mt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}}; +goog.i18n.CompactNumberFormatSymbols_mt_MT=goog.i18n.CompactNumberFormatSymbols_mt; +goog.i18n.CompactNumberFormatSymbols_nb={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_nb_NO=goog.i18n.CompactNumberFormatSymbols_nb; +goog.i18n.CompactNumberFormatSymbols_nl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0\u00a0mln."},1E7:{other:"00\u00a0mln."},1E8:{other:"000\u00a0mln."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bln."},1E13:{other:"00\u00a0bln."},1E14:{other:"000\u00a0bln."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 duizend"},1E4:{other:"00 duizend"},1E5:{other:"000 duizend"},1E6:{other:"0 miljoen"}, +1E7:{other:"00 miljoen"},1E8:{other:"000 miljoen"},1E9:{other:"0 miljard"},1E10:{other:"00 miljard"},1E11:{other:"000 miljard"},1E12:{other:"0 biljoen"},1E13:{other:"00 biljoen"},1E14:{other:"000 biljoen"}}};goog.i18n.CompactNumberFormatSymbols_nl_NL=goog.i18n.CompactNumberFormatSymbols_nl; +goog.i18n.CompactNumberFormatSymbols_no={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0"},1E5:{other:"0"},1E6:{other:"0\u00a0mill"},1E7:{other:"00\u00a0mill"},1E8:{other:"000\u00a0mill"},1E9:{other:"0\u00a0mrd"},1E10:{other:"00\u00a0mrd"},1E11:{other:"000\u00a0mrd"},1E12:{other:"0\u00a0bill"},1E13:{other:"00\u00a0bill"},1E14:{other:"000\u00a0bill"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 millioner"},1E7:{other:"00 millioner"}, +1E8:{other:"000 millioner"},1E9:{other:"0 milliarder"},1E10:{other:"00 milliarder"},1E11:{other:"000 milliarder"},1E12:{other:"0 billioner"},1E13:{other:"00 billioner"},1E14:{other:"000 billioner"}}};goog.i18n.CompactNumberFormatSymbols_or={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}}; +goog.i18n.CompactNumberFormatSymbols_or_IN=goog.i18n.CompactNumberFormatSymbols_or; +goog.i18n.CompactNumberFormatSymbols_pl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tys."},1E4:{other:"00\u00a0tys."},1E5:{other:"000\u00a0tys."},1E6:{other:"0\u00a0mln"},1E7:{other:"00\u00a0mln"},1E8:{other:"000\u00a0mln"},1E9:{other:"0\u00a0mld"},1E10:{other:"00\u00a0mld"},1E11:{other:"000\u00a0mld"},1E12:{other:"0\u00a0bln"},1E13:{other:"00\u00a0bln"},1E14:{other:"000\u00a0bln"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tysi\u0105ca"},1E4:{other:"00 tysi\u0105ca"},1E5:{other:"000 tysi\u0105ca"}, +1E6:{other:"0 miliona"},1E7:{other:"00 miliona"},1E8:{other:"000 miliona"},1E9:{other:"0 miliarda"},1E10:{other:"00 miliarda"},1E11:{other:"000 miliarda"},1E12:{other:"0 biliona"},1E13:{other:"00 biliona"},1E14:{other:"000 biliona"}}};goog.i18n.CompactNumberFormatSymbols_pl_PL=goog.i18n.CompactNumberFormatSymbols_pl; +goog.i18n.CompactNumberFormatSymbols_pt={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0mi"},1E7:{other:"00\u00a0mi"},1E8:{other:"000\u00a0mi"},1E9:{other:"0\u00a0bi"},1E10:{other:"00\u00a0bi"},1E11:{other:"000\u00a0bi"},1E12:{other:"0\u00a0tri"},1E13:{other:"00\u00a0tri"},1E14:{other:"000\u00a0tri"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"}, +1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 bilh\u00f5es"},1E10:{other:"00 bilh\u00f5es"},1E11:{other:"000 bilh\u00f5es"},1E12:{other:"0 trilh\u00f5es"},1E13:{other:"00 trilh\u00f5es"},1E14:{other:"000 trilh\u00f5es"}}};goog.i18n.CompactNumberFormatSymbols_pt_BR=goog.i18n.CompactNumberFormatSymbols_pt; +goog.i18n.CompactNumberFormatSymbols_pt_PT={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0mil"},1E4:{other:"00\u00a0mil"},1E5:{other:"000\u00a0mil"},1E6:{other:"0\u00a0M"},1E7:{other:"00\u00a0M"},1E8:{other:"000\u00a0M"},1E9:{other:"0\u00a0MM"},1E10:{other:"00\u00a0MM"},1E11:{other:"000\u00a0MM"},1E12:{other:"0\u00a0Bi"},1E13:{other:"00\u00a0Bi"},1E14:{other:"000\u00a0Bi"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 mil"},1E4:{other:"00 mil"},1E5:{other:"000 mil"},1E6:{other:"0 milh\u00f5es"}, +1E7:{other:"00 milh\u00f5es"},1E8:{other:"000 milh\u00f5es"},1E9:{other:"0 mil milh\u00f5es"},1E10:{other:"00 mil milh\u00f5es"},1E11:{other:"000 mil milh\u00f5es"},1E12:{other:"0 bili\u00f5es"},1E13:{other:"00 bili\u00f5es"},1E14:{other:"000 bili\u00f5es"}}}; +goog.i18n.CompactNumberFormatSymbols_ro={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0K"},1E4:{other:"00\u00a0K"},1E5:{other:"000\u00a0K"},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0T"},1E13:{other:"00\u00a0T"},1E14:{other:"000\u00a0T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 de mii"},1E4:{other:"00 de mii"},1E5:{other:"000 de mii"},1E6:{other:"0 de milioane"}, +1E7:{other:"00 de milioane"},1E8:{other:"000 de milioane"},1E9:{other:"0 de miliarde"},1E10:{other:"00 de miliarde"},1E11:{other:"000 de miliarde"},1E12:{other:"0 de trilioane"},1E13:{other:"00 de trilioane"},1E14:{other:"000 de trilioane"}}};goog.i18n.CompactNumberFormatSymbols_ro_RO=goog.i18n.CompactNumberFormatSymbols_ro; +goog.i18n.CompactNumberFormatSymbols_ru={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u044b\u0441."},1E4:{other:"00\u00a0\u0442\u044b\u0441."},1E5:{other:"000\u00a0\u0442\u044b\u0441."},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"}, +1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u044b\u0441\u044f\u0447\u0438"},1E4:{other:"00 \u0442\u044b\u0441\u044f\u0447\u0438"},1E5:{other:"000 \u0442\u044b\u0441\u044f\u0447\u0438"},1E6:{other:"0 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"}, +1E10:{other:"00 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_ru_RU=goog.i18n.CompactNumberFormatSymbols_ru; +goog.i18n.CompactNumberFormatSymbols_sk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mil."},1E7:{other:"00\u00a0mil."},1E8:{other:"000\u00a0mil."},1E9:{other:"0\u00a0mld."},1E10:{other:"00\u00a0mld."},1E11:{other:"000\u00a0mld."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tis\u00edc"},1E4:{other:"00 tis\u00edc"},1E5:{other:"000 tis\u00edc"}, +1E6:{other:"0 mili\u00f3nov"},1E7:{other:"00 mili\u00f3nov"},1E8:{other:"000 mili\u00f3nov"},1E9:{other:"0 miliard"},1E10:{other:"00 mili\u00e1rd"},1E11:{other:"000 mili\u00e1rd"},1E12:{other:"0 bili\u00f3nov"},1E13:{other:"00 bili\u00f3nov"},1E14:{other:"000 bili\u00f3nov"}}};goog.i18n.CompactNumberFormatSymbols_sk_SK=goog.i18n.CompactNumberFormatSymbols_sk; +goog.i18n.CompactNumberFormatSymbols_sl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tis."},1E4:{other:"00\u00a0tis."},1E5:{other:"000\u00a0tis."},1E6:{other:"0\u00a0mio."},1E7:{other:"00\u00a0mio."},1E8:{other:"000\u00a0mio."},1E9:{other:"0\u00a0mrd."},1E10:{other:"00\u00a0mrd."},1E11:{other:"000\u00a0mrd."},1E12:{other:"0\u00a0bil."},1E13:{other:"00\u00a0bil."},1E14:{other:"000\u00a0bil."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tiso\u010d"},1E4:{other:"00 tiso\u010d"},1E5:{other:"000 tiso\u010d"}, +1E6:{other:"0 milijonov"},1E7:{other:"00 milijonov"},1E8:{other:"000 milijonov"},1E9:{other:"0 milijard"},1E10:{other:"00 milijard"},1E11:{other:"000 milijard"},1E12:{other:"0 bilijonov"},1E13:{other:"00 bilijonov"},1E14:{other:"000 bilijonov"}}};goog.i18n.CompactNumberFormatSymbols_sl_SI=goog.i18n.CompactNumberFormatSymbols_sl; +goog.i18n.CompactNumberFormatSymbols_sq={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}}};goog.i18n.CompactNumberFormatSymbols_sq_AL=goog.i18n.CompactNumberFormatSymbols_sq; +goog.i18n.CompactNumberFormatSymbols_sr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0\u0445\u0438\u0459"},1E5:{other:"000\u00a0\u0445\u0438\u0459"},1E6:{other:"0\u00a0\u043c\u0438\u043b"},1E7:{other:"00\u00a0\u043c\u0438\u043b"},1E8:{other:"000\u00a0\u043c\u0438\u043b"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0431\u0438\u043b"},1E13:{other:"00\u00a0\u0431\u0438\u043b"}, +1E14:{other:"000\u00a0\u0431\u0438\u043b"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0445\u0438\u0459\u0430\u0434\u0430"},1E4:{other:"00 \u0445\u0438\u0459\u0430\u0434\u0430"},1E5:{other:"000 \u0445\u0438\u0459\u0430\u0434\u0430"},1E6:{other:"0 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0438\u043b\u0438\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E10:{other:"00 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"}, +1E11:{other:"000 \u043c\u0438\u043b\u0438\u0458\u0430\u0440\u0434\u0438"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u0438\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS=goog.i18n.CompactNumberFormatSymbols_sr; +goog.i18n.CompactNumberFormatSymbols_sv={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0tn"},1E4:{other:"00\u00a0tn"},1E5:{other:"000\u00a0tn"},1E6:{other:"0\u00a0mn"},1E7:{other:"00\u00a0mn"},1E8:{other:"000\u00a0mn"},1E9:{other:"0\u00a0md"},1E10:{other:"00\u00a0md"},1E11:{other:"000\u00a0md"},1E12:{other:"0\u00a0bn"},1E13:{other:"00\u00a0bn"},1E14:{other:"000\u00a0bn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 tusen"},1E4:{other:"00 tusen"},1E5:{other:"000 tusen"},1E6:{other:"0 miljoner"}, +1E7:{other:"00 miljoner"},1E8:{other:"000 miljoner"},1E9:{other:"0 miljarder"},1E10:{other:"00 miljarder"},1E11:{other:"000 miljarder"},1E12:{other:"0 biljoner"},1E13:{other:"00 biljoner"},1E14:{other:"000 biljoner"}}};goog.i18n.CompactNumberFormatSymbols_sv_SE=goog.i18n.CompactNumberFormatSymbols_sv; +goog.i18n.CompactNumberFormatSymbols_sw={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"elfu\u00a00"},1E4:{other:"elfu\u00a000"},1E5:{other:"laki0"},1E6:{other:"M0"},1E7:{other:"M00"},1E8:{other:"M000"},1E9:{other:"B0"},1E10:{other:"B00"},1E11:{other:"B000"},1E12:{other:"T0"},1E13:{other:"T00"},1E14:{other:"T000"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"Elfu 0"},1E4:{other:"Elfu 00"},1E5:{other:"Elfu 000"},1E6:{other:"Milioni 0"},1E7:{other:"Milioni 00"},1E8:{other:"Milioni 000"},1E9:{other:"Bilioni 0"}, +1E10:{other:"Bilioni 00"},1E11:{other:"Bilioni 000"},1E12:{other:"Trilioni 0"},1E13:{other:"Trilioni 00"},1E14:{other:"Trilioni 000"}}};goog.i18n.CompactNumberFormatSymbols_sw_TZ=goog.i18n.CompactNumberFormatSymbols_sw; +goog.i18n.CompactNumberFormatSymbols_ta={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E4:{other:"00 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E5:{other:"000 \u0b86\u0baf\u0bbf\u0bb0\u0bae\u0bcd"},1E6:{other:"0 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}, +1E7:{other:"00 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E8:{other:"000 \u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E9:{other:"0 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E10:{other:"00 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E11:{other:"000 \u0baa\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E12:{other:"0 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"},1E13:{other:"00 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}, +1E14:{other:"000 \u0b9f\u0bbf\u0bb0\u0bbf\u0bb2\u0bcd\u0bb2\u0bbf\u0baf\u0ba9\u0bcd"}}};goog.i18n.CompactNumberFormatSymbols_ta_IN=goog.i18n.CompactNumberFormatSymbols_ta; +goog.i18n.CompactNumberFormatSymbols_te={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0c35\u0c47\u0c32\u0c41"},1E4:{other:"00 \u0c35\u0c47\u0c32\u0c41"},1E5:{other:"000 \u0c35\u0c47\u0c32\u0c41"},1E6:{other:"0 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}, +1E7:{other:"00 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E8:{other:"000 \u0c2e\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E9:{other:"0 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E10:{other:"00 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E11:{other:"000 \u0c2c\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E12:{other:"0 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E13:{other:"00 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"},1E14:{other:"000 \u0c1f\u0c4d\u0c30\u0c3f\u0c32\u0c3f\u0c2f\u0c28\u0c4d"}}}; +goog.i18n.CompactNumberFormatSymbols_te_IN=goog.i18n.CompactNumberFormatSymbols_te; +goog.i18n.CompactNumberFormatSymbols_th={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0e1e."},1E4:{other:"0\u00a0\u0e21."},1E5:{other:"0\u00a0\u0e2a."},1E6:{other:"0\u00a0\u0e25."},1E7:{other:"00\u00a0\u0e25."},1E8:{other:"000\u00a0\u0e25."},1E9:{other:"0\u00a0\u0e1e.\u0e25."},1E10:{other:"0\u00a0\u0e21.\u0e25."},1E11:{other:"0\u00a0\u0e2a.\u0e25."},1E12:{other:"0\u00a0\u0e25.\u0e25."},1E13:{other:"00\u00a0\u0e25.\u0e25."},1E14:{other:"000\u00a0\u0e25.\u0e25."}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0e1e\u0e31\u0e19"}, +1E4:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19"},1E5:{other:"0 \u0e41\u0e2a\u0e19"},1E6:{other:"0 \u0e25\u0e49\u0e32\u0e19"},1E7:{other:"00 \u0e25\u0e49\u0e32\u0e19"},1E8:{other:"000 \u0e25\u0e49\u0e32\u0e19"},1E9:{other:"0 \u0e1e\u0e31\u0e19\u0e25\u0e49\u0e32\u0e19"},1E10:{other:"0 \u0e2b\u0e21\u0e37\u0e48\u0e19\u0e25\u0e49\u0e32\u0e19"},1E11:{other:"0 \u0e41\u0e2a\u0e19\u0e25\u0e49\u0e32\u0e19"},1E12:{other:"0 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"},1E13:{other:"00 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}, +1E14:{other:"000 \u0e25\u0e49\u0e32\u0e19\u0e25\u0e49\u0e32\u0e19"}}};goog.i18n.CompactNumberFormatSymbols_th_TH=goog.i18n.CompactNumberFormatSymbols_th; +goog.i18n.CompactNumberFormatSymbols_tl={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 (na) libo"},1E4:{other:"00 (na) libo"},1E5:{other:"000 (na) libo"},1E6:{other:"0 (na) milyon"},1E7:{other:"00 (na) milyon"},1E8:{other:"000 (na) milyon"},1E9:{other:"0 (na) bilyon"}, +1E10:{other:"00 (na) bilyon"},1E11:{other:"000 (na) bilyon"},1E12:{other:"0 (na) trilyon"},1E13:{other:"00 (na) trilyon"},1E14:{other:"000 (na) trilyon"}}}; +goog.i18n.CompactNumberFormatSymbols_tr={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"00\u00a0B"},1E5:{other:"000\u00a0B"},1E6:{other:"0\u00a0Mn"},1E7:{other:"00\u00a0Mn"},1E8:{other:"000\u00a0Mn"},1E9:{other:"0\u00a0Mr"},1E10:{other:"00\u00a0Mr"},1E11:{other:"000\u00a0Mr"},1E12:{other:"0\u00a0Tn"},1E13:{other:"00\u00a0Tn"},1E14:{other:"000\u00a0Tn"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 bin"},1E4:{other:"00 bin"},1E5:{other:"000 bin"},1E6:{other:"0 milyon"},1E7:{other:"00 milyon"}, +1E8:{other:"000 milyon"},1E9:{other:"0 milyar"},1E10:{other:"00 milyar"},1E11:{other:"000 milyar"},1E12:{other:"0 trilyon"},1E13:{other:"00 trilyon"},1E14:{other:"000 trilyon"}}};goog.i18n.CompactNumberFormatSymbols_tr_TR=goog.i18n.CompactNumberFormatSymbols_tr; +goog.i18n.CompactNumberFormatSymbols_uk={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u0442\u0438\u0441"},1E4:{other:"00\u00a0\u0442\u0438\u0441"},1E5:{other:"000\u00a0\u0442\u0438\u0441"},1E6:{other:"0\u00a0\u043c\u043b\u043d"},1E7:{other:"00\u00a0\u043c\u043b\u043d"},1E8:{other:"000\u00a0\u043c\u043b\u043d"},1E9:{other:"0\u00a0\u043c\u043b\u0440\u0434"},1E10:{other:"00\u00a0\u043c\u043b\u0440\u0434"},1E11:{other:"000\u00a0\u043c\u043b\u0440\u0434"},1E12:{other:"0\u00a0\u0442\u0440\u043b\u043d"}, +1E13:{other:"00\u00a0\u0442\u0440\u043b\u043d"},1E14:{other:"000\u00a0\u0442\u0440\u043b\u043d"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 \u0442\u0438\u0441\u044f\u0447\u0456"},1E4:{other:"00 \u0442\u0438\u0441\u044f\u0447\u0456"},1E5:{other:"000 \u0442\u0438\u0441\u044f\u0447\u0456"},1E6:{other:"0 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E7:{other:"00 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E8:{other:"000 \u043c\u0456\u043b\u044c\u0439\u043e\u043d\u0430"},1E9:{other:"0 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"}, +1E10:{other:"00 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E11:{other:"000 \u043c\u0456\u043b\u044c\u044f\u0440\u0434\u0430"},1E12:{other:"0 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E13:{other:"00 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"},1E14:{other:"000 \u0442\u0440\u0438\u043b\u044c\u0439\u043e\u043d\u0430"}}};goog.i18n.CompactNumberFormatSymbols_uk_UA=goog.i18n.CompactNumberFormatSymbols_uk; +goog.i18n.CompactNumberFormatSymbols_ur={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0\u06c1\u0632\u0627\u0631"},1E4:{other:"00\u00a0\u06c1\u0632\u0627\u0631"},1E5:{other:"0\u00a0\u0644\u0627\u06a9\u06be"},1E6:{other:"00\u00a0\u0644\u0627\u06a9\u06be"},1E7:{other:"0\u00a0\u06a9\u0631\u0648\u0691"},1E8:{other:"00\u00a0\u06a9\u0631\u0648\u0691"},1E9:{other:"0\u00a0\u0627\u0631\u0628"},1E10:{other:"00\u00a0\u0627\u0631\u0628"},1E11:{other:"0\u00a0\u06a9\u06be\u0631\u0628"},1E12:{other:"00\u00a0\u06a9\u06be\u0631\u0628"}, +1E13:{other:"000\u00a0\u06a9\u06be\u0631\u0628"},1E14:{other:"0000\u00a0\u06a9\u06be\u0631\u0628"}}};goog.i18n.CompactNumberFormatSymbols_ur_PK=goog.i18n.CompactNumberFormatSymbols_ur; +goog.i18n.CompactNumberFormatSymbols_vi={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0\u00a0N"},1E4:{other:"00\u00a0N"},1E5:{other:"000\u00a0N"},1E6:{other:"0\u00a0Tr"},1E7:{other:"00\u00a0Tr"},1E8:{other:"000\u00a0Tr"},1E9:{other:"0\u00a0T"},1E10:{other:"00\u00a0T"},1E11:{other:"000\u00a0T"},1E12:{other:"0\u00a0NT"},1E13:{other:"00\u00a0NT"},1E14:{other:"000\u00a0NT"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 ngh\u00ecn"},1E4:{other:"00 ngh\u00ecn"},1E5:{other:"000 ngh\u00ecn"},1E6:{other:"0 tri\u1ec7u"}, +1E7:{other:"00 tri\u1ec7u"},1E8:{other:"000 tri\u1ec7u"},1E9:{other:"0 t\u1ef7"},1E10:{other:"00 t\u1ef7"},1E11:{other:"000 t\u1ef7"},1E12:{other:"0 ngh\u00ecn t\u1ef7"},1E13:{other:"00 ngh\u00ecn t\u1ef7"},1E14:{other:"000 ngh\u00ecn t\u1ef7"}}};goog.i18n.CompactNumberFormatSymbols_vi_VN=goog.i18n.CompactNumberFormatSymbols_vi; +goog.i18n.CompactNumberFormatSymbols_zh={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"},1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u4e07"},1E5:{other:"00\u4e07"},1E6:{other:"000\u4e07"},1E7:{other:"0000\u4e07"}, +1E8:{other:"0\u4ebf"},1E9:{other:"00\u4ebf"},1E10:{other:"000\u4ebf"},1E11:{other:"0000\u4ebf"},1E12:{other:"0\u4e07\u4ebf"},1E13:{other:"00\u4e07\u4ebf"},1E14:{other:"000\u4e07\u4ebf"}}};goog.i18n.CompactNumberFormatSymbols_zh_CN=goog.i18n.CompactNumberFormatSymbols_zh; +goog.i18n.CompactNumberFormatSymbols_zh_HK={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"}, +1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}};goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN=goog.i18n.CompactNumberFormatSymbols_zh; +goog.i18n.CompactNumberFormatSymbols_zh_TW={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0G"},1E10:{other:"00G"},1E11:{other:"000G"},1E12:{other:"0T"},1E13:{other:"00\u5146"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0"},1E4:{other:"0\u842c"},1E5:{other:"00\u842c"},1E6:{other:"000\u842c"},1E7:{other:"0000\u842c"},1E8:{other:"0\u5104"},1E9:{other:"00\u5104"},1E10:{other:"000\u5104"}, +1E11:{other:"0000\u5104"},1E12:{other:"0\u5146"},1E13:{other:"00\u5146"},1E14:{other:"000\u5146"}}}; +goog.i18n.CompactNumberFormatSymbols_zu={COMPACT_DECIMAL_SHORT_PATTERN:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},COMPACT_DECIMAL_LONG_PATTERN:{1E3:{other:"0 inkulungwane"},1E4:{other:"00 inkulungwane"},1E5:{other:"000 inkulungwane"},1E6:{other:"0 isigidi"},1E7:{other:"00 isigidi"},1E8:{other:"000 isigidi"},1E9:{other:"0 isigidi sezigidi"}, +1E10:{other:"00 isigidi sezigidi"},1E11:{other:"000 isigidi sezigidi"},1E12:{other:"0 isigidintathu"},1E13:{other:"00 isigidintathu"},1E14:{other:"000 isigidintathu"}}};goog.i18n.CompactNumberFormatSymbols_zu_ZA=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;"af"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af); +if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar); +if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bg; +"bn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn);if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca); +if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_chr; +"cs"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cs;"cy"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da); +if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el); +if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_AU; +if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_GB;if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_SG;if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en;if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es; +if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_et; +"eu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu);if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi); +if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fi;"fil"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr); +if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr_CA;if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr; +if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr; +if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl);if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gl; +"gsw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_gu; +"haw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_he; +"hi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi);if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu); +if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_hu;"id"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is); +if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_is;"it"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_it; +"iw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja);if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_kn; +"ko"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ko;"ln"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt); +if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv);if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml); +if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mr;"ms"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms); +if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb); +if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or); +if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt); +if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ro; +"ru"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ru;"sk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl); +if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq);if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr); +if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sv;"sw"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw); +if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te); +if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr); +if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur); +if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_ur;"vi"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh); +if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_HK;if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zh_TW; +"zu"==goog.LOCALE&&(goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.CompactNumberFormatSymbols=goog.i18n.CompactNumberFormatSymbols_zu;goog.i18n.currency={};goog.i18n.currency.PRECISION_MASK_=7;goog.i18n.currency.POSITION_FLAG_=16;goog.i18n.currency.SPACE_FLAG_=32;goog.i18n.currency.tier2Enabled_=!1;goog.i18n.currency.addTier2Support=function(){if(!goog.i18n.currency.tier2Enabled_){for(var a in goog.i18n.currency.CurrencyInfoTier2)goog.i18n.currency.CurrencyInfo[a]=goog.i18n.currency.CurrencyInfoTier2[a];goog.i18n.currency.tier2Enabled_=!0}}; +goog.i18n.currency.getGlobalCurrencyPattern=function(a){var b=goog.i18n.currency.CurrencyInfo[a],c=b[0];return a==b[1]?goog.i18n.currency.getCurrencyPattern_(c,b[1]):a+" "+goog.i18n.currency.getCurrencyPattern_(c,b[1])};goog.i18n.currency.getGlobalCurrencySign=function(a){var b=goog.i18n.currency.CurrencyInfo[a];return a==b[1]?a:a+" "+b[1]};goog.i18n.currency.getLocalCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[1])}; +goog.i18n.currency.getLocalCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][1]};goog.i18n.currency.getPortableCurrencyPattern=function(a){a=goog.i18n.currency.CurrencyInfo[a];return goog.i18n.currency.getCurrencyPattern_(a[0],a[2])};goog.i18n.currency.getPortableCurrencySign=function(a){return goog.i18n.currency.CurrencyInfo[a][2]};goog.i18n.currency.isPrefixSignPosition=function(a){return 0==(goog.i18n.currency.CurrencyInfo[a][0]&goog.i18n.currency.POSITION_FLAG_)}; +goog.i18n.currency.getCurrencyPattern_=function(a,b){var c=["#,##0"],d=a&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}0==(a&goog.i18n.currency.POSITION_FLAG_)?(c.unshift(a&goog.i18n.currency.SPACE_FLAG_?"' ":"'"),c.unshift(b),c.unshift("'")):c.push(a&goog.i18n.currency.SPACE_FLAG_?" '":"'",b,"'");return c.join("")}; +goog.i18n.currency.adjustPrecision=function(a,b){var c=["0"],d=goog.i18n.currency.CurrencyInfo[b],d=d[0]&goog.i18n.currency.PRECISION_MASK_;if(0<d){c.push(".");for(var e=0;e<d;e++)c.push("0")}return a.replace(/0.00/g,c.join(""))}; +goog.i18n.currency.CurrencyInfo={AED:[2,"dh","\u062f.\u0625.","DH"],ALL:[0,"Lek","Lek"],AUD:[2,"$","AU$"],BDT:[2,"\u09f3","Tk"],BGN:[2,"lev","lev"],BRL:[2,"R$","R$"],CAD:[2,"$","C$"],CDF:[2,"FrCD","CDF"],CHF:[2,"CHF","CHF"],CLP:[0,"$","CL$"],CNY:[2,"\u00a5","RMB\u00a5"],COP:[0,"$","COL$"],CRC:[0,"\u20a1","CR\u20a1"],CZK:[50,"K\u010d","K\u010d"],DKK:[18,"kr","kr"],DOP:[2,"$","RD$"],EGP:[2,"\u00a3","LE"],ETB:[2,"Birr","Birr"],EUR:[2,"\u20ac","\u20ac"],GBP:[2,"\u00a3","GB\u00a3"],HKD:[2,"$","HK$"],HRK:[2, +"kn","kn"],HUF:[0,"Ft","Ft"],IDR:[0,"Rp","Rp"],ILS:[2,"\u20aa","IL\u20aa"],INR:[2,"\u20b9","Rs"],IRR:[0,"Rial","IRR"],ISK:[0,"kr","kr"],JMD:[2,"$","JA$"],JPY:[0,"\u00a5","JP\u00a5"],KRW:[0,"\u20a9","KR\u20a9"],LKR:[2,"Rs","SLRs"],LTL:[2,"Lt","Lt"],LVL:[2,"Ls","Ls"],MNT:[0,"\u20ae","MN\u20ae"],MXN:[2,"$","Mex$"],MYR:[2,"RM","RM"],NOK:[50,"kr","NOkr"],PAB:[2,"B/.","B/."],PEN:[2,"S/.","S/."],PHP:[2,"\u20b1","Php"],PKR:[0,"Rs","PKRs."],PLN:[50,"z\u0142","z\u0142"],RON:[2,"RON","RON"],RSD:[0,"din","RSD"], +RUB:[50,"\u0440\u0443\u0431.","\u0440\u0443\u0431."],SAR:[2,"Rial","Rial"],SEK:[2,"kr","kr"],SGD:[2,"$","S$"],THB:[2,"\u0e3f","THB"],TRY:[2,"TL","YTL"],TWD:[2,"NT$","NT$"],TZS:[0,"TSh","TSh"],UAH:[2,"\u20b4","UAH"],USD:[2,"$","US$"],UYU:[2,"$","$U"],VND:[0,"\u20ab","VN\u20ab"],YER:[0,"Rial","Rial"],ZAR:[2,"R","ZAR"]}; +goog.i18n.currency.CurrencyInfoTier2={AFN:[48,"Af.","AFN"],AMD:[0,"Dram","dram"],AOA:[2,"Kz","Kz"],ARS:[2,"$","AR$"],AWG:[2,"Afl.","Afl."],AZN:[2,"man.","man."],BAM:[2,"KM","KM"],BBD:[2,"$","Bds$"],BHD:[3,"din","din"],BIF:[0,"FBu","FBu"],BMD:[2,"$","BD$"],BND:[2,"$","B$"],BOB:[2,"Bs","Bs"],BSD:[2,"$","BS$"],BTN:[2,"Nu.","Nu."],BWP:[2,"P","pula"],BYR:[0,"BYR","BYR"],BZD:[2,"$","BZ$"],CUC:[1,"$","CUC$"],CUP:[2,"$","CU$"],CVE:[2,"CVE","Esc"],DJF:[0,"Fdj","Fdj"],DZD:[2,"din","din"],ERN:[2,"Nfk","Nfk"], +FJD:[2,"$","FJ$"],FKP:[2,"\u00a3","FK\u00a3"],GEL:[2,"GEL","GEL"],GHS:[2,"GHS","GHS"],GIP:[2,"\u00a3","GI\u00a3"],GMD:[2,"GMD","GMD"],GNF:[0,"FG","FG"],GTQ:[2,"Q","GTQ"],GYD:[0,"$","GY$"],HNL:[2,"L","HNL"],HTG:[2,"HTG","HTG"],IQD:[0,"din","IQD"],JOD:[3,"din","JOD"],KES:[2,"Ksh","Ksh"],KGS:[2,"KGS","KGS"],KHR:[2,"Riel","KHR"],KMF:[0,"CF","KMF"],KPW:[0,"\u20a9KP","KPW"],KWD:[3,"din","KWD"],KYD:[2,"$","KY$"],KZT:[2,"\u20b8","KZT"],LAK:[0,"\u20ad","\u20ad"],LBP:[0,"L\u00a3","LBP"],LRD:[2,"$","L$"],LSL:[2, +"LSL","LSL"],LYD:[3,"din","LD"],MAD:[2,"dh","MAD"],MDL:[2,"MDL","MDL"],MGA:[0,"Ar","MGA"],MKD:[2,"din","MKD"],MMK:[0,"K","MMK"],MOP:[2,"MOP","MOP$"],MRO:[0,"MRO","MRO"],MUR:[0,"MURs","MURs"],MWK:[2,"MWK","MWK"],MZN:[2,"MTn","MTn"],NAD:[2,"$","N$"],NGN:[2,"\u20a6","NG\u20a6"],NIO:[2,"C$","C$"],NPR:[2,"Rs","NPRs"],NZD:[2,"$","NZ$"],OMR:[3,"Rial","OMR"],PGK:[2,"PGK","PGK"],PYG:[0,"Gs","PYG"],QAR:[2,"Rial","QR"],RWF:[0,"RF","RF"],SBD:[2,"$","SI$"],SCR:[2,"SCR","SCR"],SDG:[2,"SDG","SDG"],SHP:[2,"\u00a3", +"SH\u00a3"],SLL:[0,"SLL","SLL"],SOS:[0,"SOS","SOS"],SRD:[2,"$","SR$"],STD:[0,"Db","Db"],SYP:[0,"\u00a3","SY\u00a3"],SZL:[2,"SZL","SZL"],TJS:[2,"Som","TJS"],TND:[3,"din","DT"],TOP:[2,"T$","T$"],TTD:[2,"$","TT$"],UGX:[0,"UGX","UGX"],UZS:[0,"so\u02bcm","UZS"],VEF:[2,"Bs","Bs"],VUV:[0,"VUV","VUV"],WST:[2,"WST","WST"],XAF:[0,"FCFA","FCFA"],XCD:[2,"$","EC$"],XOF:[0,"CFA","CFA"],XPF:[0,"FCFP","FCFP"],ZMK:[0,"ZMK","ZMK"]};goog.i18n.NumberFormatSymbols_af={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_af_ZA=goog.i18n.NumberFormatSymbols_af; +goog.i18n.NumberFormatSymbols_am={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ETB"};goog.i18n.NumberFormatSymbols_am_ET=goog.i18n.NumberFormatSymbols_am; +goog.i18n.NumberFormatSymbols_ar={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u0660",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0627\u0633",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0644\u064a\u0633\u00a0\u0631\u0642\u0645",DECIMAL_PATTERN:"#0.###;#0.###-",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#0.00;\u00a4\u00a0#0.00-",DEF_CURRENCY_CODE:"EGP"};goog.i18n.NumberFormatSymbols_ar_001=goog.i18n.NumberFormatSymbols_ar; +goog.i18n.NumberFormatSymbols_ar_EG=goog.i18n.NumberFormatSymbols_ar;goog.i18n.NumberFormatSymbols_bg={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"BGN"};goog.i18n.NumberFormatSymbols_bg_BG=goog.i18n.NumberFormatSymbols_bg; +goog.i18n.NumberFormatSymbols_bn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u09e6",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u09b8\u0982\u0996\u09cd\u09af\u09be\u00a0\u09a8\u09be",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4;(#,##,##0.00\u00a4)",DEF_CURRENCY_CODE:"BDT"};goog.i18n.NumberFormatSymbols_bn_BD=goog.i18n.NumberFormatSymbols_bn; +goog.i18n.NumberFormatSymbols_br={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_br_FR=goog.i18n.NumberFormatSymbols_br; +goog.i18n.NumberFormatSymbols_ca={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_ca_AD=goog.i18n.NumberFormatSymbols_ca;goog.i18n.NumberFormatSymbols_ca_ES=goog.i18n.NumberFormatSymbols_ca; +goog.i18n.NumberFormatSymbols_chr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_chr_US=goog.i18n.NumberFormatSymbols_chr; +goog.i18n.NumberFormatSymbols_cs={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CZK"};goog.i18n.NumberFormatSymbols_cs_CZ=goog.i18n.NumberFormatSymbols_cs; +goog.i18n.NumberFormatSymbols_cy={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_cy_GB=goog.i18n.NumberFormatSymbols_cy; +goog.i18n.NumberFormatSymbols_da={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"DKK"};goog.i18n.NumberFormatSymbols_da_DK=goog.i18n.NumberFormatSymbols_da; +goog.i18n.NumberFormatSymbols_de={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_de_AT={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_de_BE=goog.i18n.NumberFormatSymbols_de; +goog.i18n.NumberFormatSymbols_de_CH={DECIMAL_SEP:".",GROUP_SEP:"'",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4-#,##0.00",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_de_DE=goog.i18n.NumberFormatSymbols_de;goog.i18n.NumberFormatSymbols_de_LU=goog.i18n.NumberFormatSymbols_de; +goog.i18n.NumberFormatSymbols_el={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"[#E0]",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_el_GR=goog.i18n.NumberFormatSymbols_el; +goog.i18n.NumberFormatSymbols_en={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_en_AS=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_AU={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"AUD"};goog.i18n.NumberFormatSymbols_en_Dsrt_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_FM=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_GB={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"GBP"};goog.i18n.NumberFormatSymbols_en_GU=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_IE={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_en_IN={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_en_MH=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_MP=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_PR=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_PW=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_SG={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"SGD"}; +goog.i18n.NumberFormatSymbols_en_TC=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_UM=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_US=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VG=goog.i18n.NumberFormatSymbols_en;goog.i18n.NumberFormatSymbols_en_VI=goog.i18n.NumberFormatSymbols_en; +goog.i18n.NumberFormatSymbols_en_ZA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"}; +goog.i18n.NumberFormatSymbols_es={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_es_419={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"MXN"};goog.i18n.NumberFormatSymbols_es_EA=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_ES=goog.i18n.NumberFormatSymbols_es;goog.i18n.NumberFormatSymbols_es_IC=goog.i18n.NumberFormatSymbols_es; +goog.i18n.NumberFormatSymbols_et={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_et_EE=goog.i18n.NumberFormatSymbols_et; +goog.i18n.NumberFormatSymbols_eu={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%\u00a0#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_eu_ES=goog.i18n.NumberFormatSymbols_eu; +goog.i18n.NumberFormatSymbols_fa={DECIMAL_SEP:"\u066b",GROUP_SEP:"\u066c",PERCENT:"\u066a",ZERO_DIGIT:"\u06f0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d7\u06f1\u06f0^",PERMILL:"\u0609",INFINITY:"\u221e",NAN:"\u0646\u0627\u0639\u062f\u062f",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u200e\u00a4#,##0.00;\u200e(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"IRR"};goog.i18n.NumberFormatSymbols_fa_IR=goog.i18n.NumberFormatSymbols_fa; +goog.i18n.NumberFormatSymbols_fi={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"ep\u00e4luku",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fi_FI=goog.i18n.NumberFormatSymbols_fi; +goog.i18n.NumberFormatSymbols_fil={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"};goog.i18n.NumberFormatSymbols_fil_PH=goog.i18n.NumberFormatSymbols_fil; +goog.i18n.NumberFormatSymbols_fr={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_fr_BL=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_fr_CA={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"CAD"};goog.i18n.NumberFormatSymbols_fr_FR=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_GF=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_fr_GP=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MC=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MF=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_MQ=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_RE=goog.i18n.NumberFormatSymbols_fr;goog.i18n.NumberFormatSymbols_fr_YT=goog.i18n.NumberFormatSymbols_fr; +goog.i18n.NumberFormatSymbols_gl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_gl_ES=goog.i18n.NumberFormatSymbols_gl; +goog.i18n.NumberFormatSymbols_gsw={DECIMAL_SEP:".",GROUP_SEP:"\u2019",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CHF"};goog.i18n.NumberFormatSymbols_gsw_CH=goog.i18n.NumberFormatSymbols_gsw; +goog.i18n.NumberFormatSymbols_gu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_gu_IN=goog.i18n.NumberFormatSymbols_gu; +goog.i18n.NumberFormatSymbols_haw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"USD"};goog.i18n.NumberFormatSymbols_haw_US=goog.i18n.NumberFormatSymbols_haw; +goog.i18n.NumberFormatSymbols_he={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"};goog.i18n.NumberFormatSymbols_he_IL=goog.i18n.NumberFormatSymbols_he; +goog.i18n.NumberFormatSymbols_hi={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_hi_IN=goog.i18n.NumberFormatSymbols_hi; +goog.i18n.NumberFormatSymbols_hr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HRK"};goog.i18n.NumberFormatSymbols_hr_HR=goog.i18n.NumberFormatSymbols_hr; +goog.i18n.NumberFormatSymbols_hu={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"HUF"};goog.i18n.NumberFormatSymbols_hu_HU=goog.i18n.NumberFormatSymbols_hu; +goog.i18n.NumberFormatSymbols_id={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"};goog.i18n.NumberFormatSymbols_id_ID=goog.i18n.NumberFormatSymbols_id; +goog.i18n.NumberFormatSymbols_in={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"IDR"}; +goog.i18n.NumberFormatSymbols_is={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ISK"};goog.i18n.NumberFormatSymbols_is_IS=goog.i18n.NumberFormatSymbols_is; +goog.i18n.NumberFormatSymbols_it={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_it_IT=goog.i18n.NumberFormatSymbols_it;goog.i18n.NumberFormatSymbols_it_SM=goog.i18n.NumberFormatSymbols_it; +goog.i18n.NumberFormatSymbols_iw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"ILS"}; +goog.i18n.NumberFormatSymbols_ja={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"JPY"};goog.i18n.NumberFormatSymbols_ja_JP=goog.i18n.NumberFormatSymbols_ja; +goog.i18n.NumberFormatSymbols_kn={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0c88",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_kn_IN=goog.i18n.NumberFormatSymbols_kn; +goog.i18n.NumberFormatSymbols_ko={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"KRW"};goog.i18n.NumberFormatSymbols_ko_KR=goog.i18n.NumberFormatSymbols_ko; +goog.i18n.NumberFormatSymbols_ln={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"CDF"};goog.i18n.NumberFormatSymbols_ln_CD=goog.i18n.NumberFormatSymbols_ln; +goog.i18n.NumberFormatSymbols_lt={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2013",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"LTL"};goog.i18n.NumberFormatSymbols_lt_LT=goog.i18n.NumberFormatSymbols_lt; +goog.i18n.NumberFormatSymbols_lv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"nav\u00a0skaitlis",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"LVL"};goog.i18n.NumberFormatSymbols_lv_LV=goog.i18n.NumberFormatSymbols_lv; +goog.i18n.NumberFormatSymbols_ml={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"#,##,##0.00\u00a4",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ml_IN=goog.i18n.NumberFormatSymbols_ml; +goog.i18n.NumberFormatSymbols_mr={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"\u0966",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_mr_IN=goog.i18n.NumberFormatSymbols_mr; +goog.i18n.NumberFormatSymbols_ms={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"MYR"};goog.i18n.NumberFormatSymbols_ms_Latn_MY=goog.i18n.NumberFormatSymbols_ms; +goog.i18n.NumberFormatSymbols_mt={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_mt_MT=goog.i18n.NumberFormatSymbols_mt; +goog.i18n.NumberFormatSymbols_nb={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"};goog.i18n.NumberFormatSymbols_nb_NO=goog.i18n.NumberFormatSymbols_nb; +goog.i18n.NumberFormatSymbols_nl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_nl_NL=goog.i18n.NumberFormatSymbols_nl; +goog.i18n.NumberFormatSymbols_no={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##0.00",DEF_CURRENCY_CODE:"NOK"}; +goog.i18n.NumberFormatSymbols_or={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_or_IN=goog.i18n.NumberFormatSymbols_or; +goog.i18n.NumberFormatSymbols_pl={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"PLN"};goog.i18n.NumberFormatSymbols_pl_PL=goog.i18n.NumberFormatSymbols_pl; +goog.i18n.NumberFormatSymbols_pt={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"BRL"};goog.i18n.NumberFormatSymbols_pt_BR=goog.i18n.NumberFormatSymbols_pt; +goog.i18n.NumberFormatSymbols_pt_PT={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"}; +goog.i18n.NumberFormatSymbols_ro={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RON"};goog.i18n.NumberFormatSymbols_ro_RO=goog.i18n.NumberFormatSymbols_ro; +goog.i18n.NumberFormatSymbols_ru={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u043d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RUB"};goog.i18n.NumberFormatSymbols_ru_RU=goog.i18n.NumberFormatSymbols_ru; +goog.i18n.NumberFormatSymbols_sk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sk_SK=goog.i18n.NumberFormatSymbols_sk; +goog.i18n.NumberFormatSymbols_sl={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"e",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"EUR"};goog.i18n.NumberFormatSymbols_sl_SI=goog.i18n.NumberFormatSymbols_sl; +goog.i18n.NumberFormatSymbols_sq={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"ALL"};goog.i18n.NumberFormatSymbols_sq_AL=goog.i18n.NumberFormatSymbols_sq; +goog.i18n.NumberFormatSymbols_sr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"RSD"};goog.i18n.NumberFormatSymbols_sr_Cyrl_RS=goog.i18n.NumberFormatSymbols_sr; +goog.i18n.NumberFormatSymbols_sv={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"\u2212",EXP_SYMBOL:"\u00d710^",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u00a4\u00a4\u00a4",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0\u00a0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"SEK"};goog.i18n.NumberFormatSymbols_sv_SE=goog.i18n.NumberFormatSymbols_sv; +goog.i18n.NumberFormatSymbols_sw={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"TZS"};goog.i18n.NumberFormatSymbols_sw_TZ=goog.i18n.NumberFormatSymbols_sw; +goog.i18n.NumberFormatSymbols_ta={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##,##0%",CURRENCY_PATTERN:"\u00a4\u00a0#,##,##0.00",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_ta_IN=goog.i18n.NumberFormatSymbols_ta; +goog.i18n.NumberFormatSymbols_te={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"INR"};goog.i18n.NumberFormatSymbols_te_IN=goog.i18n.NumberFormatSymbols_te; +goog.i18n.NumberFormatSymbols_th={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"THB"};goog.i18n.NumberFormatSymbols_th_TH=goog.i18n.NumberFormatSymbols_th; +goog.i18n.NumberFormatSymbols_tl={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"PHP"}; +goog.i18n.NumberFormatSymbols_tr={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"%#,##0",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)",DEF_CURRENCY_CODE:"TRY"};goog.i18n.NumberFormatSymbols_tr_TR=goog.i18n.NumberFormatSymbols_tr; +goog.i18n.NumberFormatSymbols_uk={DECIMAL_SEP:",",GROUP_SEP:"\u00a0",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"\u0415",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u041d\u0435\u00a0\u0447\u0438\u0441\u043b\u043e",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"UAH"};goog.i18n.NumberFormatSymbols_uk_UA=goog.i18n.NumberFormatSymbols_uk; +goog.i18n.NumberFormatSymbols_ur={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"PKR"};goog.i18n.NumberFormatSymbols_ur_PK=goog.i18n.NumberFormatSymbols_ur; +goog.i18n.NumberFormatSymbols_vi={DECIMAL_SEP:",",GROUP_SEP:".",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"#,##0.00\u00a0\u00a4",DEF_CURRENCY_CODE:"VND"};goog.i18n.NumberFormatSymbols_vi_VN=goog.i18n.NumberFormatSymbols_vi; +goog.i18n.NumberFormatSymbols_zh={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"CNY"};goog.i18n.NumberFormatSymbols_zh_CN=goog.i18n.NumberFormatSymbols_zh; +goog.i18n.NumberFormatSymbols_zh_HK={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"HKD"};goog.i18n.NumberFormatSymbols_zh_Hans_CN=goog.i18n.NumberFormatSymbols_zh; +goog.i18n.NumberFormatSymbols_zh_TW={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"\u975e\u6578\u503c",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00",DEF_CURRENCY_CODE:"TWD"}; +goog.i18n.NumberFormatSymbols_zu={DECIMAL_SEP:".",GROUP_SEP:",",PERCENT:"%",ZERO_DIGIT:"0",PLUS_SIGN:"+",MINUS_SIGN:"-",EXP_SYMBOL:"E",PERMILL:"\u2030",INFINITY:"\u221e",NAN:"I-NaN",DECIMAL_PATTERN:"#,##0.###",SCIENTIFIC_PATTERN:"#E0",PERCENT_PATTERN:"#,##0%",CURRENCY_PATTERN:"\u00a4#,##0.00;(\u00a4#,##0.00)",DEF_CURRENCY_CODE:"ZAR"};goog.i18n.NumberFormatSymbols_zu_ZA=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +"af"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af);if("af_ZA"==goog.LOCALE||"af-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_af;"am"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am);if("am_ET"==goog.LOCALE||"am-ET"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_am;"ar"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar); +if("ar_001"==goog.LOCALE||"ar-001"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;if("ar_EG"==goog.LOCALE||"ar-EG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ar;"bg"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg);if("bg_BG"==goog.LOCALE||"bg-BG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bg;"bn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn); +if("bn_BD"==goog.LOCALE||"bn-BD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_bn;"br"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br);if("br_FR"==goog.LOCALE||"br-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_br;"ca"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca);if("ca_AD"==goog.LOCALE||"ca-AD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca; +if("ca_ES"==goog.LOCALE||"ca-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ca;"chr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr);if("chr_US"==goog.LOCALE||"chr-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_chr;"cs"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs);if("cs_CZ"==goog.LOCALE||"cs-CZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cs; +"cy"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy);if("cy_GB"==goog.LOCALE||"cy-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_cy;"da"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da);if("da_DK"==goog.LOCALE||"da-DK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_da;"de"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de); +if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_AT;if("de_BE"==goog.LOCALE||"de-BE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de_CH;if("de_DE"==goog.LOCALE||"de-DE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de; +if("de_LU"==goog.LOCALE||"de-LU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_de;"el"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el);if("el_GR"==goog.LOCALE||"el-GR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_el;"en"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en);if("en_AS"==goog.LOCALE||"en-AS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_AU;if("en_Dsrt_US"==goog.LOCALE||"en-Dsrt-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_FM"==goog.LOCALE||"en-FM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_GB; +if("en_GU"==goog.LOCALE||"en-GU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_IN;if("en_MH"==goog.LOCALE||"en-MH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_MP"==goog.LOCALE||"en-MP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PR"==goog.LOCALE||"en-PR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_PW"==goog.LOCALE||"en-PW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_SG; +if("en_TC"==goog.LOCALE||"en-TC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_UM"==goog.LOCALE||"en-UM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_VG"==goog.LOCALE||"en-VG"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en; +if("en_VI"==goog.LOCALE||"en-VI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en;if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es_419;if("es_EA"==goog.LOCALE||"es-EA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es; +if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;if("es_IC"==goog.LOCALE||"es-IC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_es;"et"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et);if("et_EE"==goog.LOCALE||"et-EE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_et;"eu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu); +if("eu_ES"==goog.LOCALE||"eu-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_eu;"fa"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa);if("fa_IR"==goog.LOCALE||"fa-IR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fa;"fi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi);if("fi_FI"==goog.LOCALE||"fi-FI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fi; +"fil"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil);if("fil_PH"==goog.LOCALE||"fil-PH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fil;"fr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr);if("fr_BL"==goog.LOCALE||"fr-BL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr_CA; +if("fr_FR"==goog.LOCALE||"fr-FR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GF"==goog.LOCALE||"fr-GF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_GP"==goog.LOCALE||"fr-GP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MC"==goog.LOCALE||"fr-MC"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr; +if("fr_MF"==goog.LOCALE||"fr-MF"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_MQ"==goog.LOCALE||"fr-MQ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_RE"==goog.LOCALE||"fr-RE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;if("fr_YT"==goog.LOCALE||"fr-YT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_fr;"gl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl); +if("gl_ES"==goog.LOCALE||"gl-ES"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gl;"gsw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw);if("gsw_CH"==goog.LOCALE||"gsw-CH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gsw;"gu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu);if("gu_IN"==goog.LOCALE||"gu-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_gu; +"haw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw);if("haw_US"==goog.LOCALE||"haw-US"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_haw;"he"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he);if("he_IL"==goog.LOCALE||"he-IL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_he;"hi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi); +if("hi_IN"==goog.LOCALE||"hi-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hi;"hr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr);if("hr_HR"==goog.LOCALE||"hr-HR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hr;"hu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu);if("hu_HU"==goog.LOCALE||"hu-HU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_hu; +"id"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id);if("id_ID"==goog.LOCALE||"id-ID"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_id;"in"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_in);"is"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is);if("is_IS"==goog.LOCALE||"is-IS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_is; +"it"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it);if("it_IT"==goog.LOCALE||"it-IT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;if("it_SM"==goog.LOCALE||"it-SM"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_it;"iw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja); +if("ja_JP"==goog.LOCALE||"ja-JP"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ja;"kn"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn);if("kn_IN"==goog.LOCALE||"kn-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_kn;"ko"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko);if("ko_KR"==goog.LOCALE||"ko-KR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ko; +"ln"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln);if("ln_CD"==goog.LOCALE||"ln-CD"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ln;"lt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt);if("lt_LT"==goog.LOCALE||"lt-LT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lt;"lv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv); +if("lv_LV"==goog.LOCALE||"lv-LV"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_lv;"ml"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml);if("ml_IN"==goog.LOCALE||"ml-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ml;"mr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr);if("mr_IN"==goog.LOCALE||"mr-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mr; +"ms"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms);if("ms_Latn_MY"==goog.LOCALE||"ms-Latn-MY"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ms;"mt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt);if("mt_MT"==goog.LOCALE||"mt-MT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_mt;"nb"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb); +if("nb_NO"==goog.LOCALE||"nb-NO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nb;"nl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl);if("nl_NL"==goog.LOCALE||"nl-NL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_nl;"no"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_no);"or"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or); +if("or_IN"==goog.LOCALE||"or-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_or;"pl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl);if("pl_PL"==goog.LOCALE||"pl-PL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pl;"pt"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt; +if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro);if("ro_RO"==goog.LOCALE||"ro-RO"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ro;"ru"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru);if("ru_RU"==goog.LOCALE||"ru-RU"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ru; +"sk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk);if("sk_SK"==goog.LOCALE||"sk-SK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sk;"sl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl);if("sl_SI"==goog.LOCALE||"sl-SI"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sl;"sq"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq); +if("sq_AL"==goog.LOCALE||"sq-AL"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sq;"sr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr);if("sr_Cyrl_RS"==goog.LOCALE||"sr-Cyrl-RS"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sr;"sv"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv);if("sv_SE"==goog.LOCALE||"sv-SE"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sv; +"sw"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw);if("sw_TZ"==goog.LOCALE||"sw-TZ"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_sw;"ta"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta);if("ta_IN"==goog.LOCALE||"ta-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ta;"te"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te); +if("te_IN"==goog.LOCALE||"te-IN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_te;"th"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th);if("th_TH"==goog.LOCALE||"th-TH"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_th;"tl"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr); +if("tr_TR"==goog.LOCALE||"tr-TR"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_tr;"uk"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk);if("uk_UA"==goog.LOCALE||"uk-UA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_uk;"ur"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur);if("ur_PK"==goog.LOCALE||"ur-PK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_ur; +"vi"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi);if("vi_VN"==goog.LOCALE||"vi-VN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_vi;"zh"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_HK; +if("zh_Hans_CN"==goog.LOCALE||"zh-Hans-CN"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zh_TW;"zu"==goog.LOCALE&&(goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu);if("zu_ZA"==goog.LOCALE||"zu-ZA"==goog.LOCALE)goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_zu;goog.i18n.NumberFormat=function(a,b,c){this.intlCurrencyCode_=b||goog.i18n.NumberFormatSymbols.DEF_CURRENCY_CODE;this.currencyStyle_=c||goog.i18n.NumberFormat.CurrencyStyle.LOCAL;this.maximumIntegerDigits_=40;this.minimumIntegerDigits_=1;this.significantDigits_=0;this.maximumFractionDigits_=3;this.minExponentDigits_=this.minimumFractionDigits_=0;this.showTrailingZeros_=this.useSignForPositiveExponent_=!1;this.positiveSuffix_=this.positivePrefix_="";this.negativePrefix_="-";this.negativeSuffix_=""; +this.multiplier_=1;this.groupingSize_=3;this.useExponentialNotation_=this.decimalSeparatorAlwaysShown_=!1;this.compactStyle_=goog.i18n.NumberFormat.CompactStyle.NONE;this.baseFormattingNumber_=null;"number"==typeof a?this.applyStandardPattern_(a):this.applyPattern_(a)};goog.i18n.NumberFormat.Format={DECIMAL:1,SCIENTIFIC:2,PERCENT:3,CURRENCY:4,COMPACT_SHORT:5,COMPACT_LONG:6};goog.i18n.NumberFormat.CurrencyStyle={LOCAL:0,PORTABLE:1,GLOBAL:2};goog.i18n.NumberFormat.CompactStyle={NONE:0,SHORT:1,LONG:2}; +goog.i18n.NumberFormat.enforceAsciiDigits_=!1;goog.i18n.NumberFormat.setEnforceAsciiDigits=function(a){goog.i18n.NumberFormat.enforceAsciiDigits_=a};goog.i18n.NumberFormat.isEnforceAsciiDigits=function(){return goog.i18n.NumberFormat.enforceAsciiDigits_};goog.i18n.NumberFormat.prototype.setMinimumFractionDigits=function(a){if(0<this.significantDigits_&&0<a)throw Error("Can't combine significant digits and minimum fraction digits");this.minimumFractionDigits_=a}; +goog.i18n.NumberFormat.prototype.setMaximumFractionDigits=function(a){this.maximumFractionDigits_=a};goog.i18n.NumberFormat.prototype.setSignificantDigits=function(a){if(0<this.minimumFractionDigits_&&0<=a)throw Error("Can't combine significant digits and minimum fraction digits");this.significantDigits_=a}; +goog.i18n.NumberFormat.prototype.applyPattern_=function(a){a.replace(/ /g,"\u00a0");var b=[0];this.positivePrefix_=this.parseAffix_(a,b);var c=b[0];this.parseTrunk_(a,b);c=b[0]-c;this.positiveSuffix_=this.parseAffix_(a,b);b[0]<a.length&&a.charAt(b[0])==goog.i18n.NumberFormat.PATTERN_SEPARATOR_?(b[0]++,this.negativePrefix_=this.parseAffix_(a,b),b[0]+=c,this.negativeSuffix_=this.parseAffix_(a,b)):(this.negativePrefix_=this.positivePrefix_+this.negativePrefix_,this.negativeSuffix_+=this.positiveSuffix_)}; +goog.i18n.NumberFormat.prototype.applyStandardPattern_=function(a){switch(a){case goog.i18n.NumberFormat.Format.DECIMAL:this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);break;case goog.i18n.NumberFormat.Format.SCIENTIFIC:this.applyPattern_(goog.i18n.NumberFormatSymbols.SCIENTIFIC_PATTERN);break;case goog.i18n.NumberFormat.Format.PERCENT:this.applyPattern_(goog.i18n.NumberFormatSymbols.PERCENT_PATTERN);break;case goog.i18n.NumberFormat.Format.CURRENCY:this.applyPattern_(goog.i18n.currency.adjustPrecision(goog.i18n.NumberFormatSymbols.CURRENCY_PATTERN, +this.intlCurrencyCode_));break;case goog.i18n.NumberFormat.Format.COMPACT_SHORT:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.SHORT);break;case goog.i18n.NumberFormat.Format.COMPACT_LONG:this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.LONG);break;default:throw Error("Unsupported pattern type.");}}; +goog.i18n.NumberFormat.prototype.applyCompactStyle_=function(a){this.compactStyle_=a;this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN);this.setMinimumFractionDigits(0);this.setMaximumFractionDigits(2);this.setSignificantDigits(2)}; +goog.i18n.NumberFormat.prototype.parse=function(a,b){var c=b||[0];if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact numbers is unimplemented");var d=NaN;a=a.replace(/ /g,"\u00a0");var e=a.indexOf(this.positivePrefix_,c[0])==c[0],f=a.indexOf(this.negativePrefix_,c[0])==c[0];e&&f&&(this.positivePrefix_.length>this.negativePrefix_.length?f=!1:this.positivePrefix_.length<this.negativePrefix_.length&&(e=!1));e?c[0]+=this.positivePrefix_.length:f&&(c[0]+=this.negativePrefix_.length); +a.indexOf(goog.i18n.NumberFormatSymbols.INFINITY,c[0])==c[0]?(c[0]+=goog.i18n.NumberFormatSymbols.INFINITY.length,d=Infinity):d=this.parseNumber_(a,c);if(e){if(a.indexOf(this.positiveSuffix_,c[0])!=c[0])return NaN;c[0]+=this.positiveSuffix_.length}else if(f){if(a.indexOf(this.negativeSuffix_,c[0])!=c[0])return NaN;c[0]+=this.negativeSuffix_.length}return f?-d:d}; +goog.i18n.NumberFormat.prototype.parseNumber_=function(a,b){var c=!1,d=!1,e=!1,f=1,g=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,h=goog.i18n.NumberFormatSymbols.GROUP_SEP,k=goog.i18n.NumberFormatSymbols.EXP_SYMBOL;if(this.compactStyle_!=goog.i18n.NumberFormat.CompactStyle.NONE)throw Error("Parsing of compact style numbers is not implemented");for(var l="";b[0]<a.length;b[0]++){var m=a.charAt(b[0]),p=this.getDigit_(m);if(0<=p&&9>=p)l+=p,e=!0;else if(m==g.charAt(0)){if(c||d)break;l+=".";c=!0}else if(m== +h.charAt(0)&&("\u00a0"!=h.charAt(0)||b[0]+1<a.length&&0<=this.getDigit_(a.charAt(b[0]+1)))){if(c||d)break}else if(m==k.charAt(0)){if(d)break;l+="E";d=!0}else if("+"==m||"-"==m)l+=m;else if(m==goog.i18n.NumberFormatSymbols.PERCENT.charAt(0)){if(1!=f)break;f=100;if(e){b[0]++;break}}else if(m==goog.i18n.NumberFormatSymbols.PERMILL.charAt(0)){if(1!=f)break;f=1E3;if(e){b[0]++;break}}else break}return parseFloat(l)/f}; +goog.i18n.NumberFormat.prototype.format=function(a){if(isNaN(a))return goog.i18n.NumberFormatSymbols.NAN;var b=[],c=goog.isNull(this.baseFormattingNumber_)?a:this.baseFormattingNumber_,c=this.getUnitAfterRounding_(c,a);a/=Math.pow(10,c.divisorBase);b.push(c.prefix);var d=0>a||0==a&&0>1/a;b.push(d?this.negativePrefix_:this.positivePrefix_);isFinite(a)?(a*=d?-1:1,a*=this.multiplier_,this.useExponentialNotation_?this.subformatExponential_(a,b):this.subformatFixed_(a,this.minimumIntegerDigits_,b)):b.push(goog.i18n.NumberFormatSymbols.INFINITY); +b.push(d?this.negativeSuffix_:this.positiveSuffix_);b.push(c.suffix);return b.join("")};goog.i18n.NumberFormat.prototype.roundNumber_=function(a){var b=Math.pow(10,this.maximumFractionDigits_),c=0>=this.significantDigits_?Math.round(a*b):Math.floor(this.roundToSignificantDigits_(a*b,this.significantDigits_,this.maximumFractionDigits_));isFinite(c)?(a=Math.floor(c/b),b=Math.floor(c-a*b)):b=0;return{intValue:a,fracValue:b}}; +goog.i18n.NumberFormat.prototype.subformatFixed_=function(a,b,c){if(this.minimumFractionDigits_>this.maximumFractionDigits_)throw Error("Min value must be less than max value");a=this.roundNumber_(a);var d=Math.pow(10,this.maximumFractionDigits_),e=a.intValue,f=a.fracValue,g=0==e?0:this.intLog10_(e)+1,h=0<this.minimumFractionDigits_||0<f||this.showTrailingZeros_&&g<this.significantDigits_;a=this.minimumFractionDigits_;h&&(a=this.showTrailingZeros_&&0<this.significantDigits_?this.significantDigits_- +g:this.minimumFractionDigits_);for(var k="",g=e;1E20<g;)k="0"+k,g=Math.round(g/10);var k=g+k,l=goog.i18n.NumberFormatSymbols.DECIMAL_SEP,m=goog.i18n.NumberFormatSymbols.GROUP_SEP,g=goog.i18n.NumberFormat.enforceAsciiDigits_?48:goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0),p=k.length;if(0<e||0<b){for(e=p;e<b;e++)c.push(String.fromCharCode(g));for(e=0;e<p;e++)c.push(String.fromCharCode(g+1*k.charAt(e))),1<p-e&&0<this.groupingSize_&&1==(p-e)%this.groupingSize_&&c.push(m)}else h||c.push(String.fromCharCode(g)); +(this.decimalSeparatorAlwaysShown_||h)&&c.push(l);b=""+(f+d);for(d=b.length;"0"==b.charAt(d-1)&&d>a+1;)d--;for(e=1;e<d;e++)c.push(String.fromCharCode(g+1*b.charAt(e)))}; +goog.i18n.NumberFormat.prototype.addExponentPart_=function(a,b){b.push(goog.i18n.NumberFormatSymbols.EXP_SYMBOL);0>a?(a=-a,b.push(goog.i18n.NumberFormatSymbols.MINUS_SIGN)):this.useSignForPositiveExponent_&&b.push(goog.i18n.NumberFormatSymbols.PLUS_SIGN);for(var c=""+a,d=goog.i18n.NumberFormat.enforceAsciiDigits_?"0":goog.i18n.NumberFormatSymbols.ZERO_DIGIT,e=c.length;e<this.minExponentDigits_;e++)b.push(d);b.push(c)}; +goog.i18n.NumberFormat.prototype.subformatExponential_=function(a,b){if(0==a)this.subformatFixed_(a,this.minimumIntegerDigits_,b),this.addExponentPart_(0,b);else{var c=goog.math.safeFloor(Math.log(a)/Math.log(10));a/=Math.pow(10,c);var d=this.minimumIntegerDigits_;if(1<this.maximumIntegerDigits_&&this.maximumIntegerDigits_>this.minimumIntegerDigits_){for(;0!=c%this.maximumIntegerDigits_;)a*=10,c--;d=1}else 1>this.minimumIntegerDigits_?(c++,a/=10):(c-=this.minimumIntegerDigits_-1,a*=Math.pow(10,this.minimumIntegerDigits_- +1));this.subformatFixed_(a,d,b);this.addExponentPart_(c,b)}};goog.i18n.NumberFormat.prototype.getDigit_=function(a){a=a.charCodeAt(0);if(48<=a&&58>a)return a-48;var b=goog.i18n.NumberFormatSymbols.ZERO_DIGIT.charCodeAt(0);return b<=a&&a<b+10?a-b:-1};goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_="0";goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_=",";goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_=".";goog.i18n.NumberFormat.PATTERN_PER_MILLE_="\u2030";goog.i18n.NumberFormat.PATTERN_PERCENT_="%"; +goog.i18n.NumberFormat.PATTERN_DIGIT_="#";goog.i18n.NumberFormat.PATTERN_SEPARATOR_=";";goog.i18n.NumberFormat.PATTERN_EXPONENT_="E";goog.i18n.NumberFormat.PATTERN_PLUS_="+";goog.i18n.NumberFormat.PATTERN_MINUS_="-";goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_="\u00a4";goog.i18n.NumberFormat.QUOTE_="'"; +goog.i18n.NumberFormat.prototype.parseAffix_=function(a,b){for(var c="",d=!1,e=a.length;b[0]<e;b[0]++){var f=a.charAt(b[0]);if(f==goog.i18n.NumberFormat.QUOTE_)b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.QUOTE_?(b[0]++,c+="'"):d=!d;else if(d)c+=f;else switch(f){case goog.i18n.NumberFormat.PATTERN_DIGIT_:case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:case goog.i18n.NumberFormat.PATTERN_SEPARATOR_:return c; +case goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_:if(b[0]+1<e&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_CURRENCY_SIGN_)b[0]++,c+=this.intlCurrencyCode_;else switch(this.currencyStyle_){case goog.i18n.NumberFormat.CurrencyStyle.LOCAL:c+=goog.i18n.currency.getLocalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.GLOBAL:c+=goog.i18n.currency.getGlobalCurrencySign(this.intlCurrencyCode_);break;case goog.i18n.NumberFormat.CurrencyStyle.PORTABLE:c+=goog.i18n.currency.getPortableCurrencySign(this.intlCurrencyCode_)}break; +case goog.i18n.NumberFormat.PATTERN_PERCENT_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=100;c+=goog.i18n.NumberFormatSymbols.PERCENT;break;case goog.i18n.NumberFormat.PATTERN_PER_MILLE_:if(1!=this.multiplier_)throw Error("Too many percent/permill");this.multiplier_=1E3;c+=goog.i18n.NumberFormatSymbols.PERMILL;break;default:c+=f}}return c}; +goog.i18n.NumberFormat.prototype.parseTrunk_=function(a,b){for(var c=-1,d=0,e=0,f=0,g=-1,h=a.length,k=!0;b[0]<h&&k;b[0]++){var l=a.charAt(b[0]);switch(l){case goog.i18n.NumberFormat.PATTERN_DIGIT_:0<e?f++:d++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_:if(0<f)throw Error('Unexpected "0" in pattern "'+a+'"');e++;0<=g&&0>c&&g++;break;case goog.i18n.NumberFormat.PATTERN_GROUPING_SEPARATOR_:g=0;break;case goog.i18n.NumberFormat.PATTERN_DECIMAL_SEPARATOR_:if(0<=c)throw Error('Multiple decimal separators in pattern "'+ +a+'"');c=d+e+f;break;case goog.i18n.NumberFormat.PATTERN_EXPONENT_:if(this.useExponentialNotation_)throw Error('Multiple exponential symbols in pattern "'+a+'"');this.useExponentialNotation_=!0;this.minExponentDigits_=0;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_PLUS_&&(b[0]++,this.useSignForPositiveExponent_=!0);for(;b[0]+1<h&&a.charAt(b[0]+1)==goog.i18n.NumberFormat.PATTERN_ZERO_DIGIT_;)b[0]++,this.minExponentDigits_++;if(1>d+e||1>this.minExponentDigits_)throw Error('Malformed exponential pattern "'+ +a+'"');k=!1;break;default:b[0]--,k=!1}}0==e&&0<d&&0<=c&&(e=c,0==e&&e++,f=d-e,d=e-1,e=1);if(0>c&&0<f||0<=c&&(c<d||c>d+e)||0==g)throw Error('Malformed pattern "'+a+'"');f=d+e+f;this.maximumFractionDigits_=0<=c?f-c:0;0<=c&&(this.minimumFractionDigits_=d+e-c,0>this.minimumFractionDigits_&&(this.minimumFractionDigits_=0));e=0<=c?c:f;this.minimumIntegerDigits_=e-d;this.useExponentialNotation_&&(this.maximumIntegerDigits_=d+this.minimumIntegerDigits_,0==this.maximumFractionDigits_&&0==this.minimumIntegerDigits_&& +(this.minimumIntegerDigits_=1));this.groupingSize_=Math.max(0,g);this.decimalSeparatorAlwaysShown_=0==c||c==f};goog.i18n.NumberFormat.NULL_UNIT_={prefix:"",suffix:"",divisorBase:0}; +goog.i18n.NumberFormat.prototype.getUnitFor_=function(a,b){var c=this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.SHORT?goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_SHORT_PATTERN:goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_LONG_PATTERN;if(3>a)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.min(14,a);c=c[Math.pow(10,a)];if(!c)return goog.i18n.NumberFormat.NULL_UNIT_;c=c[b];return c&&"0"!=c?(c=/([^0]*)(0+)(.*)/.exec(c))?{prefix:c[1],suffix:c[3],divisorBase:a-(c[2].length-1)}: +goog.i18n.NumberFormat.NULL_UNIT_:goog.i18n.NumberFormat.NULL_UNIT_}; +goog.i18n.NumberFormat.prototype.getUnitAfterRounding_=function(a,b){if(this.compactStyle_==goog.i18n.NumberFormat.CompactStyle.NONE)return goog.i18n.NumberFormat.NULL_UNIT_;a=Math.abs(a);b=Math.abs(b);var c=this.pluralForm_(a),d=1>=a?0:this.intLog10_(a),c=this.getUnitFor_(d,c).divisorBase,d=b/Math.pow(10,c),d=this.roundNumber_(d),e=a/Math.pow(10,c),e=this.roundNumber_(e),d=this.pluralForm_(d.intValue+d.fracValue);return this.getUnitFor_(c+this.intLog10_(e.intValue),d)}; +goog.i18n.NumberFormat.prototype.intLog10_=function(a){for(var b=0;1<=(a/=10);)b++;return b};goog.i18n.NumberFormat.prototype.roundToSignificantDigits_=function(a,b,c){if(!a)return a;var d=this.intLog10_(a);b=b-d-1;if(b<-c)return c=Math.pow(10,c),Math.round(a/c)*c;c=Math.pow(10,b);a=Math.round(a*c);return a/c};goog.i18n.NumberFormat.prototype.pluralForm_=function(){return"other"};goog.i18n.ordinalRules={};goog.i18n.ordinalRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.ordinalRules.defaultSelect_=function(){return goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.frSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.huSelect_=function(a){return 1==a||5==a?goog.i18n.ordinalRules.Keyword.ONE:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.svSelect_=function(a){return 1!=a%10&&2!=a%10||11==a%100||12==a%100?goog.i18n.ordinalRules.Keyword.OTHER:goog.i18n.ordinalRules.Keyword.ONE};goog.i18n.ordinalRules.enSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.ordinalRules.Keyword.ONE:2==a%10&&12!=a%100?goog.i18n.ordinalRules.Keyword.TWO:3==a%10&&13!=a%100?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.itSelect_=function(a){return 11==a||8==a||80==a||800==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.caSelect_=function(a){return 1==a||3==a?goog.i18n.ordinalRules.Keyword.ONE:2==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.mrSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.guSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.bnSelect_=function(a){return 1==a||5==a||7==a||8==a||9==a||10==a?goog.i18n.ordinalRules.Keyword.ONE:2==a||3==a?goog.i18n.ordinalRules.Keyword.TWO:4==a?goog.i18n.ordinalRules.Keyword.FEW:6==a?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER}; +goog.i18n.ordinalRules.zuSelect_=function(a){return 1==a?goog.i18n.ordinalRules.Keyword.ONE:a==(a|0)&&2<=a&&9>=a?goog.i18n.ordinalRules.Keyword.FEW:a==(a|0)&&(10<=a&&19>=a||100<=a&&199>=a||1E3<=a&&1999>=a)?goog.i18n.ordinalRules.Keyword.MANY:goog.i18n.ordinalRules.Keyword.OTHER};goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"am"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ar"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bg"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"bn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.bnSelect_);"br"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ca"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.caSelect_);"chr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"cs"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"cy"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"da"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"de"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"el"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"en"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"et"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"eu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fa"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"fil"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"fr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_); +if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_;"gl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gsw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"gu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"haw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"he"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.guSelect_);"hr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"hu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.huSelect_);"id"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"is"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"it"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.itSelect_);"iw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ja"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ln"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"lv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"ml"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"mr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.mrSelect_);"ms"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_); +"mt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nb"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"nl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"no"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"or"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"pl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"pt"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"ro"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"ru"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"sk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sq"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"sv"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.svSelect_);"sw"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ta"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"te"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"th"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tl"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"tr"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_); +"ur"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);"vi"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.frSelect_);"zh"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_; +if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.ordinalRules.select=goog.i18n.ordinalRules.zuSelect_);goog.i18n.pluralRules={};goog.i18n.pluralRules.Keyword={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};goog.i18n.pluralRules.defaultSelect_=function(){return goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.arSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&99>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.heSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:0!=a&&0==a%10?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.enSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.filSelect_=function(a){return 0==a||1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.frSelect_=function(a){return 0<=a&&2>=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.lvSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.iuSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.gaSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&3<=a&&6>=a?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&7<=a&&10>=a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.roSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||1!=a&&a==(a|0)&&1<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.ltSelect_=function(a){return 1==a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&9>=a%10&&(11>a%100||19<a%100)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.beSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:0==a%10||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&11<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.csSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&4>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.plSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:1!=a&&(0==a%10||1==a%10)||a==(a|0)&&5<=a%10&&9>=a%10||a==(a|0)&&12<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.slSelect_=function(a){return 1==a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%100?goog.i18n.pluralRules.Keyword.TWO:3==a%100||4==a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.mtSelect_=function(a){return 1==a?goog.i18n.pluralRules.Keyword.ONE:0==a||a==(a|0)&&2<=a%100&&10>=a%100?goog.i18n.pluralRules.Keyword.FEW:a==(a|0)&&11<=a%100&&19>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.mkSelect_=function(a){return 1==a%10&&11!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.cySelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:2==a?goog.i18n.pluralRules.Keyword.TWO:3==a?goog.i18n.pluralRules.Keyword.FEW:6==a?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.lagSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:0<=a&&2>=a&&0!=a&&2!=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.shiSelect_=function(a){return 0<=a&&1>=a?goog.i18n.pluralRules.Keyword.ONE:a==(a|0)&&2<=a&&10>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.brSelect_=function(a){return 1==a%10&&11!=a%100&&71!=a%100&&91!=a%100?goog.i18n.pluralRules.Keyword.ONE:2==a%10&&12!=a%100&&72!=a%100&&92!=a%100?goog.i18n.pluralRules.Keyword.TWO:(3==a%10||4==a%10||9==a%10)&&(10>a%100||19<a%100)&&(70>a%100||79<a%100)&&(90>a%100||99<a%100)?goog.i18n.pluralRules.Keyword.FEW:0!=a&&0==a%1E6?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.kshSelect_=function(a){return 0==a?goog.i18n.pluralRules.Keyword.ZERO:1==a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.tzmSelect_=function(a){return 0==a||1==a||a==(a|0)&&11<=a&&99>=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.gvSelect_=function(a){return 1==a%10||2==a%10||0==a%20?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER}; +goog.i18n.pluralRules.gdSelect_=function(a){return 1==a||11==a?goog.i18n.pluralRules.Keyword.ONE:2==a||12==a?goog.i18n.pluralRules.Keyword.TWO:a==(a|0)&&(3<=a&&10>=a||13<=a&&19>=a)?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"af"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"am"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_); +"ar"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.arSelect_);"bg"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"bn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"br"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.brSelect_);"ca"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"chr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"cs"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"cy"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.cySelect_);"da"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"de"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"el"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"en"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"es"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;if("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"et"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"eu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fa"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"fi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"fil"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"fr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_);if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.frSelect_; +"gl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gsw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"gu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"haw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"he"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"hi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_); +"hr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"hu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"id"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"in"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"is"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"it"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"iw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.heSelect_);"ja"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"kn"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ko"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"ln"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"lt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ltSelect_); +"lv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.lvSelect_);"ml"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"mr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ms"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"mt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.mtSelect_);"nb"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"nl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"no"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"or"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"pl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.plSelect_);"pt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_; +if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_;"ro"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.roSelect_);"ru"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.csSelect_);"sl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.slSelect_);"sq"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_); +"sr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"sv"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"sw"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"ta"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"te"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"th"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_); +"tl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"tr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"uk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.beSelect_);"ur"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);"vi"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_);"zh"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_); +if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.defaultSelect_;"zu"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.enSelect_);goog.i18n.MessageFormat=function(a){this.literals_=[];this.parsedPattern_=[];this.numberFormatter_=new goog.i18n.NumberFormat(goog.i18n.NumberFormat.Format.DECIMAL);this.parsePattern_(a)};goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_="\ufddf_";goog.i18n.MessageFormat.Element_={STRING:0,BLOCK:1};goog.i18n.MessageFormat.BlockType_={PLURAL:0,ORDINAL:1,SELECT:2,SIMPLE:3,STRING:4,UNKNOWN:5};goog.i18n.MessageFormat.OTHER_="other";goog.i18n.MessageFormat.REGEX_LITERAL_=/'([{}#].*?)'/g; +goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_=/''/g;goog.i18n.MessageFormat.prototype.format=function(a){return this.format_(a,!1)};goog.i18n.MessageFormat.prototype.format_=function(a,b){if(0==this.parsedPattern_.length)return"";var c=[];this.formatBlock_(this.parsedPattern_,a,b,c);c=c.join("");for(b||goog.asserts.assert(-1==c.search("#"),"Not all # were replaced.");0<this.literals_.length;)c=c.replace(this.buildPlaceholder_(this.literals_),this.literals_.pop());return c}; +goog.i18n.MessageFormat.prototype.formatBlock_=function(a,b,c,d){for(var e=0;e<a.length;e++)switch(a[e].type){case goog.i18n.MessageFormat.BlockType_.STRING:d.push(a[e].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:var f=a[e].value;this.formatSimplePlaceholder_(f,b,d);break;case goog.i18n.MessageFormat.BlockType_.SELECT:f=a[e].value;this.formatSelectBlock_(f,b,c,d);break;case goog.i18n.MessageFormat.BlockType_.PLURAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.pluralRules.select, +c,d);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:f=a[e].value;this.formatPluralOrdinalBlock_(f,b,goog.i18n.ordinalRules.select,c,d);break;default:goog.asserts.fail("Unrecognized block type.")}};goog.i18n.MessageFormat.prototype.formatSimplePlaceholder_=function(a,b,c){b=b[a];goog.isDef(b)?(this.literals_.push(b),c.push(this.buildPlaceholder_(this.literals_))):c.push("Undefined parameter - "+a)}; +goog.i18n.MessageFormat.prototype.formatSelectBlock_=function(a,b,c,d){var e=a.argumentIndex;goog.isDef(b[e])?(e=a[b[e]],goog.isDef(e)||(e=a[goog.i18n.MessageFormat.OTHER_],goog.asserts.assertArray(e,"Invalid option or missing other option for select block.")),this.formatBlock_(e,b,c,d)):d.push("Undefined parameter - "+e)}; +goog.i18n.MessageFormat.prototype.formatPluralOrdinalBlock_=function(a,b,c,d,e){var f=a.argumentIndex,g=a.argumentOffset,h=+b[f];isNaN(h)?e.push("Undefined or invalid parameter - "+f):(g=h-g,f=a[b[f]],goog.isDef(f)||(goog.asserts.assert(0<=g,"Argument index smaller than offset."),c=c(g),goog.asserts.assertString(c,"Invalid plural key."),f=a[c],goog.isDef(f)||(f=a[goog.i18n.MessageFormat.OTHER_]),goog.asserts.assertArray(f,"Invalid option or missing other option for plural block.")),a=[],this.formatBlock_(f, +b,d,a),b=a.join(""),goog.asserts.assertString(b,"Empty block in plural."),d?e.push(b):(d=this.numberFormatter_.format(g),e.push(b.replace(/#/g,d))))};goog.i18n.MessageFormat.prototype.parsePattern_=function(a){a&&(a=this.insertPlaceholders_(a),this.parsedPattern_=this.parseBlock_(a))}; +goog.i18n.MessageFormat.prototype.insertPlaceholders_=function(a){var b=this.literals_,c=goog.bind(this.buildPlaceholder_,this);a=a.replace(goog.i18n.MessageFormat.REGEX_DOUBLE_APOSTROPHE_,function(){b.push("'");return c(b)});return a=a.replace(goog.i18n.MessageFormat.REGEX_LITERAL_,function(a,e){b.push(e);return c(b)})}; +goog.i18n.MessageFormat.prototype.extractParts_=function(a){var b=0,c=[],d=[],e=/[{}]/g;e.lastIndex=0;for(var f;f=e.exec(a);){var g=f.index;"}"==f[0]?(f=c.pop(),goog.asserts.assert(goog.isDef(f)&&"{"==f,"No matching { for }."),0==c.length&&(f={},f.type=goog.i18n.MessageFormat.Element_.BLOCK,f.value=a.substring(b,g),d.push(f),b=g+1)):(0==c.length&&(b=a.substring(b,g),""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b}),b=g+1),c.push("{"))}goog.asserts.assert(0==c.length,"There are mismatched { or } in the pattern."); +b=a.substring(b);""!=b&&d.push({type:goog.i18n.MessageFormat.Element_.STRING,value:b});return d};goog.i18n.MessageFormat.PLURAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*plural\s*,(?:\s*offset:(\d+))?/;goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_=/^\s*(\w+)\s*,\s*selectordinal\s*,/;goog.i18n.MessageFormat.SELECT_BLOCK_RE_=/^\s*(\w+)\s*,\s*select\s*,/; +goog.i18n.MessageFormat.prototype.parseBlockType_=function(a){return goog.i18n.MessageFormat.PLURAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.PLURAL:goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.ORDINAL:goog.i18n.MessageFormat.SELECT_BLOCK_RE_.test(a)?goog.i18n.MessageFormat.BlockType_.SELECT:/^\s*\w+\s*/.test(a)?goog.i18n.MessageFormat.BlockType_.SIMPLE:goog.i18n.MessageFormat.BlockType_.UNKNOWN}; +goog.i18n.MessageFormat.prototype.parseBlock_=function(a){var b=[];a=this.extractParts_(a);for(var c=0;c<a.length;c++){var d={};if(goog.i18n.MessageFormat.Element_.STRING==a[c].type)d.type=goog.i18n.MessageFormat.BlockType_.STRING,d.value=a[c].value;else if(goog.i18n.MessageFormat.Element_.BLOCK==a[c].type){var e=this.parseBlockType_(a[c].value);switch(e){case goog.i18n.MessageFormat.BlockType_.SELECT:d.type=goog.i18n.MessageFormat.BlockType_.SELECT;d.value=this.parseSelectBlock_(a[c].value);break; +case goog.i18n.MessageFormat.BlockType_.PLURAL:d.type=goog.i18n.MessageFormat.BlockType_.PLURAL;d.value=this.parsePluralBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.ORDINAL:d.type=goog.i18n.MessageFormat.BlockType_.ORDINAL;d.value=this.parseOrdinalBlock_(a[c].value);break;case goog.i18n.MessageFormat.BlockType_.SIMPLE:d.type=goog.i18n.MessageFormat.BlockType_.SIMPLE;d.value=a[c].value;break;default:goog.asserts.fail("Unknown block type.")}}else goog.asserts.fail("Unknown part of the pattern."); +b.push(d)}return b}; +goog.i18n.MessageFormat.prototype.parseSelectBlock_=function(a){var b="",c=goog.i18n.MessageFormat.SELECT_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing select key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid select value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type.");c[e.replace(/\s/g, +"")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in select statement.");return c}; +goog.i18n.MessageFormat.prototype.parsePluralBlock_=function(a){var b="",c=0,d=goog.i18n.MessageFormat.PLURAL_BLOCK_RE_;a=a.replace(d,function(a,d,e){b=d;e&&(c=parseInt(e,10));return""});d={};d.argumentIndex=b;d.argumentOffset=c;a=this.extractParts_(a);for(var e=0;e<a.length;){var f=a[e].value;goog.asserts.assertString(f,"Missing plural key element.");e++;goog.asserts.assert(e<a.length,"Missing or invalid plural value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[e].type)var g=this.parseBlock_(a[e].value); +else goog.asserts.fail("Expected block type.");d[f.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=g;e++}goog.asserts.assertArray(d[goog.i18n.MessageFormat.OTHER_],"Missing other key in plural statement.");return d}; +goog.i18n.MessageFormat.prototype.parseOrdinalBlock_=function(a){var b="",c=goog.i18n.MessageFormat.ORDINAL_BLOCK_RE_;a=a.replace(c,function(a,c){b=c;return""});c={};c.argumentIndex=b;c.argumentOffset=0;a=this.extractParts_(a);for(var d=0;d<a.length;){var e=a[d].value;goog.asserts.assertString(e,"Missing ordinal key element.");d++;goog.asserts.assert(d<a.length,"Missing or invalid ordinal value element.");if(goog.i18n.MessageFormat.Element_.BLOCK==a[d].type)var f=this.parseBlock_(a[d].value);else goog.asserts.fail("Expected block type."); +c[e.replace(/\s*(?:=)?(\w+)\s*/,"$1")]=f;d++}goog.asserts.assertArray(c[goog.i18n.MessageFormat.OTHER_],"Missing other key in selectordinal statement.");return c};goog.i18n.MessageFormat.prototype.buildPlaceholder_=function(a){goog.asserts.assert(0<a.length,"Literal array is empty.");a=(a.length-1).toString(10);return goog.i18n.MessageFormat.LITERAL_PLACEHOLDER_+a+"_"};cvox.TtsCapturingEventListener=function(){};cvox.TtsInterface=function(){};cvox.TtsInterface.prototype.speak=function(){};cvox.TtsInterface.prototype.isSpeaking=function(){};cvox.TtsInterface.prototype.stop=function(){};cvox.TtsInterface.prototype.increaseOrDecreaseProperty=function(){};cvox.TtsInterface.prototype.getDefaultProperty=function(){};cvox.AbstractTts=function(){this.ttsProperties={};this.propertyDefault={rate:0.5,pitch:0.5,volume:0.5};this.propertyMin={rate:0,pitch:0,volume:0};this.propertyMax={rate:1,pitch:1,volume:1};this.propertyStep={rate:0.1,pitch:0.1,volume:0.1};if(void 0==cvox.AbstractTts.pronunciationDictionaryRegexp_){var a=[],b;for(b in cvox.AbstractTts.PRONUNCIATION_DICTIONARY)a.push(b);a="\\b("+a.join("|")+")\\b";cvox.AbstractTts.pronunciationDictionaryRegexp_=RegExp(a,"ig")}if(void 0==cvox.AbstractTts.substitutionDictionaryRegexp_){var a= +[],c;for(c in cvox.AbstractTts.SUBSTITUTION_DICTIONARY)a.push(c);a="("+a.join("|")+")";cvox.AbstractTts.substitutionDictionaryRegexp_=RegExp(a,"ig")}};cvox.AbstractTts.prototype.speak=function(){return this};cvox.AbstractTts.prototype.isSpeaking=function(){return!1};cvox.AbstractTts.prototype.stop=function(){}; +cvox.AbstractTts.prototype.increaseOrDecreaseProperty=function(a,b){var c=this.propertyMin[a],d=this.propertyMax[a],e=this.propertyStep[a],f=this.ttsProperties[a],f=b?f+e:f-e;this.ttsProperties[a]=Math.max(Math.min(f,d),c)}; +cvox.AbstractTts.prototype.mergeProperties=function(a){var b={},c;if(this.ttsProperties)for(c in this.ttsProperties)b[c]=this.ttsProperties[c];if(a){c=cvox.AbstractTts;"number"==typeof a[c.VOLUME]&&(b[c.VOLUME]=a[c.VOLUME]);"number"==typeof a[c.PITCH]&&(b[c.PITCH]=a[c.PITCH]);"number"==typeof a[c.RATE]&&(b[c.RATE]=a[c.RATE]);"string"==typeof a[c.LANG]&&(b[c.LANG]=a[c.LANG]);var d=this,e=function(c,e){if("number"==typeof a[e]&&"number"==typeof b[c]){b[c]+=a[e];var h=d.propertyMin[c],k=d.propertyMax[c]; +b[c]>k?b[c]=k:b[c]<h&&(b[c]=h)}};e(c.VOLUME,c.RELATIVE_VOLUME);e(c.PITCH,c.RELATIVE_PITCH);e(c.RATE,c.RELATIVE_RATE)}return b};cvox.AbstractTts.RATE="rate";cvox.AbstractTts.PITCH="pitch";cvox.AbstractTts.VOLUME="volume";cvox.AbstractTts.LANG="lang";cvox.AbstractTts.RELATIVE_RATE="relativeRate";cvox.AbstractTts.RELATIVE_PITCH="relativePitch";cvox.AbstractTts.RELATIVE_VOLUME="relativeVolume";cvox.AbstractTts.COLOR="color";cvox.AbstractTts.FONT_WEIGHT="fontWeight";cvox.AbstractTts.PUNCTUATION_ECHO="punctuationEcho"; +cvox.AbstractTts.PAUSE="pause";cvox.AbstractTts.PERSONALITY_ANNOTATION={relativePitch:-0.25,color:"yellow",punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT={punctuationEcho:"none"};cvox.AbstractTts.PERSONALITY_ASIDE={relativePitch:-0.1,color:"#669"};cvox.AbstractTts.PERSONALITY_CAPITAL={relativePitch:0.6};cvox.AbstractTts.PERSONALITY_DELETED={punctuationEcho:"none",relativePitch:-0.6};cvox.AbstractTts.PERSONALITY_QUOTE={relativePitch:0.1,color:"#b6b",fontWeight:"bold"}; +cvox.AbstractTts.PERSONALITY_STRONG={relativePitch:0.1,color:"#b66",fontWeight:"bold"};cvox.AbstractTts.PERSONALITY_EMPHASIS={relativeVolume:0.1,relativeRate:-0.1,color:"#6bb",fontWeight:"bold"};cvox.AbstractTts.DEBUG=!0;cvox.AbstractTts.QUEUE_MODE_FLUSH=0;cvox.AbstractTts.QUEUE_MODE_QUEUE=1; +cvox.AbstractTts.CHARACTER_DICTIONARY={" ":"space","`":"backtick","~":"tilde","!":"exclamation","@":"at","#":"pound",$:"dollar","%":"percent","^":"caret","&":"ampersand","*":"asterisk","(":"open_paren",")":"close_paren","-":"dash",_:"underscore","=":"equals","+":"plus","[":"left_bracket","]":"right_bracket","{":"left_brace","}":"right_brace","|":"pipe",";":"semicolon",":":"colon",",":"comma",".":"dot","<":"less_than",">":"greater_than","/":"slash","?":"question_mark",'"':"quote","'":"apostrophe", +"\t":"tab","\r":"return","\n":"new line","\\":"backslash"};cvox.AbstractTts.PRONUNCIATION_DICTIONARY={admob:"ad-mob",adsense:"ad-sense",adwords:"ad-words",angularjs:"angular j s",bcc:"B C C",cc:"C C",chromevox:"chrome vox",cr48:"C R 48",ctrl:"control",doubleclick:"double-click",gmail:"gee mail",gtalk:"gee talk",http:"H T T P",https:"H T T P S",igoogle:"eye google",pagerank:"page-rank",username:"user-name",www:"W W W",youtube:"you tube"}; +cvox.AbstractTts.SUBSTITUTION_DICTIONARY={"://":"colon slash slash","\u00bc":"one fourth","\u00bd":"one half","\u200e":"left to right mark","\u2190":"left arrow","\u2191":"up arrow","\u2192":"right arrow","\u2193":"down arrow","\u21d0":"left double arrow","\u21d1":"up double arrow","\u21d2":"right double arrow","\u21d3":"down double arrow","\u21e6":"left arrow","\u21e7":"up arrow","\u21e8":"right arrow","\u21e9":"down arrow","\u2303":"control","\u2318":"command","\u2325":"option","\u25b2":"up triangle", +"\u25b3":"up triangle","\u25b4":"up triangle","\u25b5":"up triangle","\u25b6":"right triangle","\u25b7":"right triangle","\u25b8":"right triangle","\u25b9":"right triangle","\u25ba":"right pointer","\u25bb":"right pointer","\u25bc":"down triangle","\u25bd":"down triangle","\u25be":"down triangle","\u25bf":"down triangle","\u25c0":"left triangle","\u25c1":"left triangle","\u25c2":"left triangle","\u25c3":"left triangle","\u25c4":"left pointer","\u25c5":"left pointer","\uf8ff":"apple"}; +cvox.AbstractTts.repetitionRegexp_=/([-\/\\|!@#$%^&*\(\)=_+\[\]\{\}.?;'":<>])\1{2,}/g;cvox.AbstractTts.repetitionReplace_=function(a){var b=a.length;return" "+(new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg(cvox.AbstractTts.CHARACTER_DICTIONARY[a[0]]))).format({COUNT:b})+" "};cvox.AbstractTts.prototype.getDefaultProperty=function(a){return this.propertyDefault[a]};cvox.AbstractEarcons=function(){this.enabled=!0};cvox.AbstractEarcons.prototype.playEarcon=function(){};cvox.AbstractEarcons.prototype.playEarconByName=function(a){this.playEarcon(this.getEarconId(a))};cvox.AbstractEarcons.prototype.earconsAvailable=function(){return!0}; +cvox.AbstractEarcons.prototype.getEarconId=function(a){this.earconNamesToIds||(this.earconNamesToIds={},this.earconNamesToIds.ALERT_MODAL=cvox.AbstractEarcons.ALERT_MODAL,this.earconNamesToIds.ALERT_NONMODAL=cvox.AbstractEarcons.ALERT_NONMODAL,this.earconNamesToIds.BULLET=cvox.AbstractEarcons.BULLET,this.earconNamesToIds.BUSY_PROGRESS_LOOP=cvox.AbstractEarcons.BUSY_PROGRESS_LOOP,this.earconNamesToIds.BUSY_WORKING_LOOP=cvox.AbstractEarcons.BUSY_WORKING_LOOP,this.earconNamesToIds.BUTTON=cvox.AbstractEarcons.BUTTON, +this.earconNamesToIds.CHECK_OFF=cvox.AbstractEarcons.CHECK_OFF,this.earconNamesToIds.CHECK_ON=cvox.AbstractEarcons.CHECK_ON,this.earconNamesToIds.CHROMEVOX_DISABLED=cvox.AbstractEarcons.CHROMEVOX_DISABLED,this.earconNamesToIds.CHROMEVOX_ENABLED=cvox.AbstractEarcons.CHROMEVOX_ENABLED,this.earconNamesToIds.COLLAPSED=cvox.AbstractEarcons.COLLAPSED,this.earconNamesToIds.EDITABLE_TEXT=cvox.AbstractEarcons.EDITABLE_TEXT,this.earconNamesToIds.ELLIPSIS=cvox.AbstractEarcons.ELLIPSIS,this.earconNamesToIds.EXPANDED= +cvox.AbstractEarcons.EXPANDED,this.earconNamesToIds.FONT_CHANGE=cvox.AbstractEarcons.FONT_CHANGE,this.earconNamesToIds.INVALID_KEYPRESS=cvox.AbstractEarcons.INVALID_KEYPRESS,this.earconNamesToIds.LINK=cvox.AbstractEarcons.LINK,this.earconNamesToIds.LISTBOX=cvox.AbstractEarcons.LISTBOX,this.earconNamesToIds.LIST_ITEM=cvox.AbstractEarcons.LIST_ITEM,this.earconNamesToIds.LONG_DESC=cvox.AbstractEarcons.LONG_DESC,this.earconNamesToIds.NEW_MAIL=cvox.AbstractEarcons.NEW_MAIL,this.earconNamesToIds.OBJECT_CLOSE= +cvox.AbstractEarcons.OBJECT_CLOSE,this.earconNamesToIds.OBJECT_DELETE=cvox.AbstractEarcons.OBJECT_DELETE,this.earconNamesToIds.OBJECT_DESELECT=cvox.AbstractEarcons.OBJECT_DESELECT,this.earconNamesToIds.OBJECT_ENTER=cvox.AbstractEarcons.OBJECT_ENTER,this.earconNamesToIds.OBJECT_EXIT=cvox.AbstractEarcons.OBJECT_EXIT,this.earconNamesToIds.OBJECT_OPEN=cvox.AbstractEarcons.OBJECT_OPEN,this.earconNamesToIds.OBJECT_SELECT=cvox.AbstractEarcons.OBJECT_SELECT,this.earconNamesToIds.PARAGRAPH_BREAK=cvox.AbstractEarcons.PARAGRAPH_BREAK, +this.earconNamesToIds.SEARCH_HIT=cvox.AbstractEarcons.SEARCH_HIT,this.earconNamesToIds.SEARCH_MISS=cvox.AbstractEarcons.SEARCH_MISS,this.earconNamesToIds.SECTION=cvox.AbstractEarcons.SECTION,this.earconNamesToIds.SELECTION=cvox.AbstractEarcons.SELECTION,this.earconNamesToIds.SELECTION_REVERSE=cvox.AbstractEarcons.SELECTION_REVERSE,this.earconNamesToIds.SPECIAL_CONTENT=cvox.AbstractEarcons.SPECIAL_CONTENT,this.earconNamesToIds.TASK_SUCCESS=cvox.AbstractEarcons.TASK_SUCCESS,this.earconNamesToIds.WRAP= +cvox.AbstractEarcons.WRAP,this.earconNamesToIds.WRAP_EDGE=cvox.AbstractEarcons.WRAP_EDGE);return this.earconNamesToIds[a]};cvox.AbstractEarcons.prototype.getEarconFilename=function(a){return cvox.AbstractEarcons.earconMap[a]};cvox.AbstractEarcons.prototype.toggle=function(){return this.enabled=!this.enabled};cvox.AbstractEarcons.ALERT_MODAL=0;cvox.AbstractEarcons.ALERT_NONMODAL=1;cvox.AbstractEarcons.BULLET=2;cvox.AbstractEarcons.BUSY_PROGRESS_LOOP=3;cvox.AbstractEarcons.BUSY_WORKING_LOOP=4; +cvox.AbstractEarcons.BUTTON=5;cvox.AbstractEarcons.CHECK_OFF=6;cvox.AbstractEarcons.CHECK_ON=7;cvox.AbstractEarcons.CHROMEVOX_DISABLED=8;cvox.AbstractEarcons.CHROMEVOX_ENABLED=9;cvox.AbstractEarcons.COLLAPSED=10;cvox.AbstractEarcons.EDITABLE_TEXT=11;cvox.AbstractEarcons.ELLIPSIS=12;cvox.AbstractEarcons.EXPANDED=13;cvox.AbstractEarcons.FONT_CHANGE=14;cvox.AbstractEarcons.INVALID_KEYPRESS=15;cvox.AbstractEarcons.LINK=16;cvox.AbstractEarcons.LISTBOX=17;cvox.AbstractEarcons.LIST_ITEM=18; +cvox.AbstractEarcons.LONG_DESC=19;cvox.AbstractEarcons.NEW_MAIL=20;cvox.AbstractEarcons.OBJECT_CLOSE=21;cvox.AbstractEarcons.OBJECT_DELETE=22;cvox.AbstractEarcons.OBJECT_DESELECT=23;cvox.AbstractEarcons.OBJECT_ENTER=24;cvox.AbstractEarcons.OBJECT_EXIT=25;cvox.AbstractEarcons.OBJECT_OPEN=26;cvox.AbstractEarcons.OBJECT_SELECT=27;cvox.AbstractEarcons.PARAGRAPH_BREAK=28;cvox.AbstractEarcons.SEARCH_HIT=29;cvox.AbstractEarcons.SEARCH_MISS=30;cvox.AbstractEarcons.SECTION=31; +cvox.AbstractEarcons.SELECTION=32;cvox.AbstractEarcons.SELECTION_REVERSE=33;cvox.AbstractEarcons.SPECIAL_CONTENT=34;cvox.AbstractEarcons.TASK_SUCCESS=35;cvox.AbstractEarcons.WRAP=36;cvox.AbstractEarcons.WRAP_EDGE=37;cvox.AbstractEarcons.earconMap={};cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_MODAL]="alert_modal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ALERT_NONMODAL]="alert_nonmodal.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BULLET]="bullet.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_PROGRESS_LOOP]="busy_progress_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUSY_WORKING_LOOP]="busy_working_loop.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.BUTTON]="button.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_OFF]="check_off.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHECK_ON]="check_on.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_DISABLED]="chromevox_disabled.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.CHROMEVOX_ENABLED]="chromevox_enabled.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.COLLAPSED]="collapsed.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EDITABLE_TEXT]="editable_text.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.ELLIPSIS]="ellipsis.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.EXPANDED]="expanded.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.FONT_CHANGE]="font_change.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.INVALID_KEYPRESS]="invalid_keypress.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LINK]="link.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LISTBOX]="listbox.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LIST_ITEM]="bullet.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.LONG_DESC]="long_desc.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.NEW_MAIL]="new_mail.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_CLOSE]="object_close.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DELETE]="object_delete.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_DESELECT]="object_deselect.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_ENTER]="object_enter.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_EXIT]="object_exit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_OPEN]="object_open.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.OBJECT_SELECT]="object_select.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.PARAGRAPH_BREAK]="paragraph_break.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_HIT]="search_hit.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SEARCH_MISS]="search_miss.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SECTION]="section.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION]="selection.ogg"; +cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SELECTION_REVERSE]="selection_reverse.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.SPECIAL_CONTENT]="special_content.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.TASK_SUCCESS]="task_success.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP]="wrap.ogg";cvox.AbstractEarcons.earconMap[cvox.AbstractEarcons.WRAP_EDGE]="wrap_edge.ogg";cvox.NodeStateUtil={};cvox.NodeStateUtil.expand=function(a){try{return a.map(function(a){if(1>a.length)throw Error("cvox.NodeState must have at least one entry");var b=a.slice(1).map(function(a){return"number"==typeof a?cvox.ChromeVox.msgs.getNumber(a):a});return cvox.ChromeVox.msgs.getMsg(a[0],b)}).join(" ")}catch(b){throw Error("error: "+b+" state: "+a);}};cvox.AriaUtil=function(){};cvox.AriaUtil.NO_ROLE_NAME=" "; +cvox.AriaUtil.WIDGET_ROLE_TO_NAME={alert:"aria_role_alert",alertdialog:"aria_role_alertdialog",button:"aria_role_button",checkbox:"aria_role_checkbox",columnheader:"aria_role_columnheader",combobox:"aria_role_combobox",dialog:"aria_role_dialog",grid:"aria_role_grid",gridcell:"aria_role_gridcell",link:"aria_role_link",listbox:"aria_role_listbox",log:"aria_role_log",marquee:"aria_role_marquee",menu:"aria_role_menu",menubar:"aria_role_menubar",menuitem:"aria_role_menuitem",menuitemcheckbox:"aria_role_menuitemcheckbox", +menuitemradio:"aria_role_menuitemradio",option:cvox.AriaUtil.NO_ROLE_NAME,progressbar:"aria_role_progressbar",radio:"aria_role_radio",radiogroup:"aria_role_radiogroup",rowheader:"aria_role_rowheader",scrollbar:"aria_role_scrollbar",slider:"aria_role_slider",spinbutton:"aria_role_spinbutton",status:"aria_role_status",tab:"aria_role_tab",tabpanel:"aria_role_tabpanel",textbox:"aria_role_textbox",timer:"aria_role_timer",toolbar:"aria_role_toolbar",tooltip:"aria_role_tooltip",treeitem:"aria_role_treeitem"}; +cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME={article:"aria_role_article",application:"aria_role_application",banner:"aria_role_banner",columnheader:"aria_role_columnheader",complementary:"aria_role_complementary",contentinfo:"aria_role_contentinfo",definition:"aria_role_definition",directory:"aria_role_directory",document:"aria_role_document",form:"aria_role_form",group:"aria_role_group",heading:"aria_role_heading",img:"aria_role_img",list:"aria_role_list",listitem:"aria_role_listitem",main:"aria_role_main", +math:"aria_role_math",navigation:"aria_role_navigation",note:"aria_role_note",region:"aria_role_region",rowheader:"aria_role_rowheader",search:"aria_role_search",separator:"aria_role_separator"}; +cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS=[{name:"aria-autocomplete",values:{inline:"aria_autocomplete_inline",list:"aria_autocomplete_list",both:"aria_autocomplete_both"}},{name:"aria-checked",values:{"true":"aria_checked_true","false":"aria_checked_false",mixed:"aria_checked_mixed"}},{name:"aria-disabled",values:{"true":"aria_disabled_true"}},{name:"aria-expanded",values:{"true":"aria_expanded_true","false":"aria_expanded_false"}},{name:"aria-invalid",values:{"true":"aria_invalid_true",grammar:"aria_invalid_grammar", +spelling:"aria_invalid_spelling"}},{name:"aria-multiline",values:{"true":"aria_multiline_true"}},{name:"aria-multiselectable",values:{"true":"aria_multiselectable_true"}},{name:"aria-pressed",values:{"true":"aria_pressed_true","false":"aria_pressed_false",mixed:"aria_pressed_mixed"}},{name:"aria-readonly",values:{"true":"aria_readonly_true"}},{name:"aria-required",values:{"true":"aria_required_true"}},{name:"aria-selected",values:{"true":"aria_selected_true","false":"aria_selected_false"}}]; +cvox.AriaUtil.isHiddenRecursive=function(a){if(cvox.AriaUtil.isHidden(a))return!0;for(a=a.parentElement;a;){if("true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return!0;a=a.parentElement}return!1};cvox.AriaUtil.isHidden=function(a){return!a||a.getAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")?!0:!1}; +cvox.AriaUtil.isForcedVisibleRecursive=function(a){for(;a;){if(a.getAttribute&&a.hasAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden"))return"false"==a.getAttribute("aria-hidden");a=a.parentElement}return!1};cvox.AriaUtil.isLeafElement=function(a){var b=a.getAttribute("role");a=a.hasAttribute("aria-label")&&0<a.getAttribute("aria-label").length;return"img"==b||"progressbar"==b||a}; +cvox.AriaUtil.isDescendantOfRole=function(a,b){for(;a;){if(b&&a&&a.getAttribute("role")==b)return!0;a=a.parentNode}return!1};cvox.AriaUtil.getRoleNameMsgForRole_=function(a){return(a=cvox.AriaUtil.WIDGET_ROLE_TO_NAME[a])?a==cvox.AriaUtil.NO_ROLE_NAME?" ":a:null};cvox.AriaUtil.isButton=function(a){var b=cvox.AriaUtil.getRoleAttribute(a);return"button"==b||"BUTTON"==a.tagName?!0:"INPUT"==a.tagName?"submit"==a.type||"reset"==a.type||"button"==a.type:!1}; +cvox.AriaUtil.getRoleNameMsg=function(a){var b;if(a&&a.getAttribute){var c=cvox.AriaUtil.getRoleAttribute(a);if("true"==a.getAttribute("aria-haspopup")&&cvox.AriaUtil.isButton(a))return"aria_role_popup_button";c&&((b=cvox.AriaUtil.getRoleNameMsgForRole_(c))||(b=cvox.AriaUtil.STRUCTURE_ROLE_TO_NAME[c]));if("menuitem"==c){for(a=a.parentElement;a&&(!a.getAttribute||"menu"!=cvox.AriaUtil.getRoleAttribute(a)&&"menubar"!=cvox.AriaUtil.getRoleAttribute(a));)a=a.parentElement;a&&"menubar"==cvox.AriaUtil.getRoleAttribute(a)&& +(b=cvox.AriaUtil.getRoleNameMsgForRole_("menu"))}}b||(b="");return b};cvox.AriaUtil.getRoleName=function(a){var b=cvox.AriaUtil.getRoleNameMsg(a),b=cvox.ChromeVox.msgs.getMsg(b),c=cvox.AriaUtil.getRoleAttribute(a);"heading"==c&&a.hasAttribute("aria-level")&&(b+=" "+a.getAttribute("aria-level"));return b?b:""}; +cvox.AriaUtil.getStateMsgs=function(a,b){var c=[];if(!a||!a.getAttribute)return c;for(var d=0,e;e=cvox.AriaUtil.ATTRIBUTE_VALUE_TO_STATUS[d];d++){var f=a.getAttribute(e.name);(e=e.values[f])&&c.push([e])}if("grid"==a.getAttribute("role"))return cvox.AriaUtil.getGridState_(a,a);e=cvox.AriaUtil.getRoleAttribute(a);"true"==a.getAttribute("aria-haspopup")&&("menuitem"==e?c.push(["has_submenu"]):cvox.AriaUtil.isButton(a)||c.push(["has_popup"]));if(d=a.getAttribute("aria-valuetext"))return c.push([d]), +c;var d=a.getAttribute("aria-valuenow"),f=a.getAttribute("aria-valuemin"),g=a.getAttribute("aria-valuemax");if(null!=d&&null!=f&&null!=g&&("scrollbar"==e||"progressbar"==e)){var h=Math.round(d/(g-f)*100);c.push(["state_percent",h]);return c}null!=d&&c.push(["aria_value_now",d]);null!=f&&c.push(["aria_value_min",f]);null!=g&&c.push(["aria_value_max",g]);f=a;d=null;if(cvox.AriaUtil.isCompositeControl(f)&&b)d=cvox.AriaUtil.getActiveDescendant(f);else if(e=cvox.AriaUtil.getRoleAttribute(a),"option"== +e||"menuitem"==e||"menuitemcheckbox"==e||"menuitemradio"==e||"radio"==e||"tab"==e||"treeitem"==e)for(d=a,f=a.parentElement;f&&!cvox.AriaUtil.isCompositeControl(f)&&(!(f=f.parentElement)||"treeitem"!=cvox.AriaUtil.getRoleAttribute(f)););if(f&&(cvox.AriaUtil.isCompositeControl(f)||"treeitem"==cvox.AriaUtil.getRoleAttribute(f))&&d){e=cvox.AriaUtil.getRoleAttribute(f);var k;switch(e){case "combobox":case "listbox":k=["option"];break;case "menu":k=["menuitem","menuitemcheck","menuitemradio"];break;case "radiogroup":k= +["radio"];break;case "tablist":k=["tab"];break;case "tree":case "treegrid":case "treeitem":k=["treeitem"]}if(k){var l;e=parseInt(d.getAttribute("aria-setsize"),10);isNaN(e)||(h=e);e=parseInt(d.getAttribute("aria-posinset"),10);isNaN(e)||(l=e);if(void 0==h||void 0==l)if(k=cvox.AriaUtil.getNextLevel(f,k),void 0==h&&(h=k.length),void 0==l)for(e=0;e<k.length;e++)k[e]==d&&(l=e+1);l&&h&&c.push(["list_position",l,h])}}return c}; +cvox.AriaUtil.getGridState_=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(b);if(c)for(var d='*[role~="row"]',d=b.querySelectorAll(d),e=0;e<d.length;e++)for(var f=d[e].querySelectorAll('*[role~="gridcell"]'),g=0;g<f.length;g++)if(f[g]==c)return[["aria_role_gridcell_pos",e+1,g+1]];return[]};cvox.AriaUtil.getActiveDescendantId_=function(a){return a.getAttribute?(a=a.getAttribute("aria-activedescendant"))?a:null:null}; +cvox.AriaUtil.getNextLevel=function(a,b){for(var c=[],d=a.childNodes,e=0;e<d.length;e++)if(!cvox.AriaUtil.isHidden(d[e])&&cvox.DomUtil.isVisible(d[e])){var f=cvox.AriaUtil.getNextLevelItems(d[e],b);0<f.length&&(c=c.concat(f))}return c}; +cvox.AriaUtil.getNextLevelItems=function(a,b){if(1!=a.nodeType)return[];if(-1!=b.indexOf(cvox.AriaUtil.getRoleAttribute(a)))return[a];var c=a.childNodes,d=c.length;if(0==d)return[];for(var e=[],f=0;f<d;f++){var g=cvox.AriaUtil.getNextLevelItems(c[f],b);0<g.length&&(e=e.concat(g))}return e};cvox.AriaUtil.getActiveDescendant=function(a){for(var b={},c=a;c;){var d=cvox.AriaUtil.getActiveDescendantId_(c);if(!d)break;if(d in b)return null;b[d]=!0;c=document.getElementById(d)}return c==a?null:c}; +cvox.AriaUtil.isControlWidget=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "button":case "checkbox":case "combobox":case "listbox":case "menu":case "menuitemcheckbox":case "menuitemradio":case "radio":case "slider":case "progressbar":case "scrollbar":case "spinbutton":case "tab":case "tablist":case "textbox":return!0}return!1};cvox.AriaUtil.isCompositeControl=function(a){if(a&&a.getAttribute)switch(a=cvox.AriaUtil.getRoleAttribute(a),a){case "combobox":case "grid":case "listbox":case "menu":case "menubar":case "radiogroup":case "tablist":case "tree":case "treegrid":return!0}return!1}; +cvox.AriaUtil.getAriaLive=function(a){if(!a.hasAttribute)return null;var b=a.getAttribute("aria-live");if("off"==b)return null;if(b)return b;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "alert":return"assertive";case "log":case "status":return"polite";default:return null}};cvox.AriaUtil.getAriaAtomic=function(a){if(!a.hasAttribute)return!1;var b=a.getAttribute("aria-atomic");if(b)return"true"===b;a=cvox.AriaUtil.getRoleAttribute(a);return"alert"==a?!0:!1}; +cvox.AriaUtil.getAriaBusy=function(a){return a.hasAttribute?(a=a.getAttribute("aria-busy"))?"true"===a:!1:!1};cvox.AriaUtil.getAriaRelevant=function(a,b){if(!a.hasAttribute)return!1;var c;c=a.hasAttribute("aria-relevant")?a.getAttribute("aria-relevant"):"additions text";"all"==c&&(c="additions removals text");c=c.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"").split(" ");return"all"==b?0<=c.indexOf("additions")&&0<=c.indexOf("text")&&0<=c.indexOf("removals"):0<=c.indexOf(b)}; +cvox.AriaUtil.getLiveRegions=function(a){var b=[];if(a.querySelectorAll){var c=a.querySelectorAll('[role="alert"], [role="log"], [role="marquee"], [role="status"], [role="timer"], [aria-live]');if(c)for(var d=0;d<c.length;d++)b.push(c[d])}for(;a;){if(cvox.AriaUtil.getAriaLive(a)){b.push(a);break}a=a.parentElement}return b};cvox.AriaUtil.isLandmark=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "application":case "banner":case "complementary":case "contentinfo":case "form":case "main":case "navigation":case "search":return!0}return!1}; +cvox.AriaUtil.isGrid=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);switch(a){case "grid":case "treegrid":return!0}return!1}; +cvox.AriaUtil.getEarcon=function(a){if(!a||!a.getAttribute)return null;var b=cvox.AriaUtil.getRoleAttribute(a);switch(b){case "button":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":case "menuitemcheckbox":case "menuitemradio":return a=a.getAttribute("aria-checked"),"true"==a?cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;case "combobox":case "listbox":return cvox.AbstractEarcons.LISTBOX;case "textbox":return cvox.AbstractEarcons.EDITABLE_TEXT;case "listitem":return cvox.AbstractEarcons.BULLET; +case "link":return cvox.AbstractEarcons.LINK}return null};cvox.AriaUtil.getRoleAttribute=function(a){if(!a.getAttribute)return"";var b=a.getAttribute("role");a.hasAttribute("chromevoxoriginalrole")&&(b=a.getAttribute("chromevoxoriginalrole"));return b};cvox.AriaUtil.isMath=function(a){if(!a||!a.getAttribute)return!1;a=cvox.AriaUtil.getRoleAttribute(a);return"math"==a};cvox.DomPredicates={};cvox.DomPredicates.checkboxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"checkbox"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"checkbox"==a[b].type)return a[b];return null};cvox.DomPredicates.radioPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"radio"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"radio"==a[b].type)return a[b];return null}; +cvox.DomPredicates.sliderPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"slider"==a[b].getAttribute("role")||"INPUT"==a[b].tagName&&"range"==a[b].type)return a[b];return null};cvox.DomPredicates.graphicPredicate=function(a){for(var b=0;b<a.length;b++)if("IMG"==a[b].tagName||"INPUT"==a[b].tagName&&"img"==a[b].type)return a[b];return null}; +cvox.DomPredicates.buttonPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"button"==a[b].getAttribute("role")||"BUTTON"==a[b].tagName||"INPUT"==a[b].tagName&&"submit"==a[b].type||"INPUT"==a[b].tagName&&"button"==a[b].type||"INPUT"==a[b].tagName&&"reset"==a[b].type)return a[b];return null};cvox.DomPredicates.comboBoxPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"combobox"==a[b].getAttribute("role")||"SELECT"==a[b].tagName)return a[b];return null}; +cvox.DomPredicates.editTextPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"textbox"==a[b].getAttribute("role")||"TEXTAREA"==a[b].tagName||a[b].isContentEditable||"INPUT"==a[b].tagName&&cvox.DomUtil.isInputTypeText(a[b]))return a[b];return null};cvox.DomPredicates.headingPredicate=function(a){for(var b=0;b<a.length;b++){if(a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null}; +cvox.DomPredicates.heading1Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H1")};cvox.DomPredicates.heading2Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H2")};cvox.DomPredicates.heading3Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H3")};cvox.DomPredicates.heading4Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H4")};cvox.DomPredicates.heading5Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H5")}; +cvox.DomPredicates.heading6Predicate=function(a){return cvox.DomPredicates.containsTagName_(a,"H6")};cvox.DomPredicates.linkPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.tablePredicate=function(a){return(a=cvox.DomUtil.findTableNodeInList(a,{allowCaptions:!0}))&&!cvox.DomUtil.isLayoutTable(a)?a:null}; +cvox.DomPredicates.cellPredicate=function(a){for(var b=a.length-1;0<=b;--b){var c=a[b];if("TD"==c.tagName||"TH"==c.tagName||c.getAttribute&&"gridcell"==c.getAttribute("role"))return c}return null};cvox.DomPredicates.visitedLinkPredicate=function(a){for(var b=a.length-1;0<=b;--b)if(cvox.DomPredicates.linkPredicate([a[b]])&&cvox.ChromeVox.visitedUrls[a[b].href])return a[b]}; +cvox.DomPredicates.listPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"list"==a[b].getAttribute("role")||"UL"==a[b].tagName||"OL"==a[b].tagName)return a[b];return null};cvox.DomPredicates.listItemPredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"listitem"==a[b].getAttribute("role")||"LI"==a[b].tagName)return a[b];return null};cvox.DomPredicates.blockquotePredicate=function(a){return cvox.DomPredicates.containsTagName_(a,"BLOCKQUOTE")}; +cvox.DomPredicates.formFieldPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b]))return a[b];return null};cvox.DomPredicates.landmarkPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.AriaUtil.isLandmark(a[b]))return a[b];return null};cvox.DomPredicates.containsTagName_=function(a,b){for(var c=a.length;c--;)if(a[c].tagName==b)return a[c];return null};cvox.DomPredicates.mathPredicate=function(a){return cvox.DomUtil.findMathNodeInList(a)}; +cvox.DomPredicates.sectionPredicate=function(a){for(var b=0;b<a.length;b++){if(cvox.DomUtil.isSemanticElt(a[b])||cvox.AriaUtil.isLandmark(a[b])||a[b].getAttribute&&"heading"==a[b].getAttribute("role"))return a[b];switch(a[b].tagName){case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":return a[b]}}return null}; +cvox.DomPredicates.controlPredicate=function(a){for(var b=0;b<a.length;b++)if(cvox.DomUtil.isControl(a[b])||a[b].getAttribute&&"link"==a[b].getAttribute("role")||"A"==a[b].tagName&&a[b].href)return a[b];return null};cvox.DomPredicates.captionPredicate=function(a){for(var b=0;b<a.length;b++)if("CAPTION"==a[b].tagName)return a[b];return null}; +cvox.DomPredicates.articlePredicate=function(a){for(var b=0;b<a.length;b++)if(a[b].getAttribute&&"article"==a[b].getAttribute("role")||"ARTICLE"==a[b].tagName)return a[b];return null};cvox.DomPredicates.mediaPredicate=function(a){for(var b=0;b<a.length;b++)if("AUDIO"==a[b].tagName||"VIDEO"==a[b].tagName)return a[b];return null};cvox.DomPredicates.orderedListPredicate=function(a){for(var b=0;b<a.length;b++)if("OL"==a[b].tagName)return a[b];return null};cvox.XpathUtil=function(){};cvox.XpathUtil.nameSpaces_={xhtml:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML"};cvox.XpathUtil.resolveNameSpace=function(a){return cvox.XpathUtil.nameSpaces_[a]||null};cvox.XpathUtil.evalXPath=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(d){return[]}for(var e=[],f=c.iterateNext();f;f=c.iterateNext())e.push(f);return e}; +cvox.XpathUtil.getLeafNodes=function(a){try{var b=a.ownerDocument.evaluate(".//*[count(*)=0]",a,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null)}catch(c){return[]}a=[];for(var d=b.iterateNext();d;d=b.iterateNext())a.push(d);return a};cvox.XpathUtil.xpathSupported=function(){return"undefined"==typeof XPathResult?!1:!0};cvox.XpathUtil.evaluateBoolean=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.BOOLEAN_TYPE,null)}catch(d){return!1}return c.booleanValue}; +cvox.XpathUtil.evaluateString=function(a,b){try{var c=b.ownerDocument.evaluate(a,b,cvox.XpathUtil.resolveNameSpace,XPathResult.STRING_TYPE,null)}catch(d){return""}return c.stringValue};cvox.DomUtil=function(){}; +cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG={button:"input_type_button",checkbox:"input_type_checkbox",color:"input_type_color",datetime:"input_type_datetime","datetime-local":"input_type_datetime_local",date:"input_type_date",email:"input_type_email",file:"input_type_file",image:"input_type_image",month:"input_type_month",number:"input_type_number",password:"input_type_password",radio:"input_type_radio",range:"input_type_range",reset:"input_type_reset",search:"input_type_search",submit:"input_type_submit", +tel:"input_type_tel",text:"input_type_text",url:"input_type_url",week:"input_type_week"}; +cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG={A:"tag_link",ARTICLE:"tag_article",ASIDE:"tag_aside",AUDIO:"tag_audio",BUTTON:"tag_button",FOOTER:"tag_footer",H1:"tag_h1",H2:"tag_h2",H3:"tag_h3",H4:"tag_h4",H5:"tag_h5",H6:"tag_h6",HEADER:"tag_header",HGROUP:"tag_hgroup",LI:"tag_li",MARK:"tag_mark",NAV:"tag_nav",OL:"tag_ol",SECTION:"tag_section",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",TIME:"tag_time",UL:"tag_ul",VIDEO:"tag_video"}; +cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG={AUDIO:"tag_audio",BUTTON:"tag_button",SELECT:"tag_select",TABLE:"tag_table",TEXTAREA:"tag_textarea",VIDEO:"tag_video"};cvox.DomUtil.FORMATTING_TAGS="B BIG CITE CODE DFN EM I KBD SAMP SMALL SPAN STRIKE STRONG SUB SUP U VAR".split(" "); +cvox.DomUtil.isVisible=function(a,b){b=b||{};"undefined"===typeof b.checkAncestors&&(b.checkAncestors=!0);"undefined"===typeof b.checkDescendants&&(b.checkDescendants=!0);if("IFRAME"==a.tagName&&!a.src)return!1;if(cvox.AriaUtil.isForcedVisibleRecursive(a))return!0;if(b.checkAncestors&&cvox.DomUtil.hasInvisibleAncestor_(a))return!1;var c=b.checkDescendants;return cvox.DomUtil.hasVisibleNodeSubtree_(a,c)?!0:!1}; +cvox.DomUtil.hasInvisibleAncestor_=function(a){for(;a=a.parentElement;){var b=document.defaultView.getComputedStyle(a,null);if(cvox.DomUtil.isInvisibleStyle(b,!0))return!0}return!1}; +cvox.DomUtil.hasVisibleNodeSubtree_=function(a,b){if(!(a instanceof Element)){var c=document.defaultView.getComputedStyle(a.parentElement,null);return c=!cvox.DomUtil.isInvisibleStyle(c)}var c=document.defaultView.getComputedStyle(a,null),d=!cvox.DomUtil.isInvisibleStyle(c);if(d)return!0;c=cvox.DomUtil.isInvisibleStyle(c,!0);if(!b||c)return!1;c=a.childNodes;for(d=0;d<c.length;d++){var e=c[d];if(cvox.DomUtil.hasVisibleNodeSubtree_(e,b))return!0}return!1}; +cvox.DomUtil.isInvisibleStyle=function(a,b){return a?"none"!=a.display&&0!=parseFloat(a.opacity)&&(b||"hidden"!=a.visibility&&"collapse"!=a.visibility)?!1:!0:!1};cvox.DomUtil.isDisabled=function(a){if(a.disabled)return!0;for(;a=a.parentElement;)if("FIELDSET"==a.tagName&&a.disabled)return!0;return!1};cvox.DomUtil.isSemanticElt=function(a){return a.tagName&&(a=a.tagName,"SECTION"==a||"NAV"==a||"ARTICLE"==a||"ASIDE"==a||"HGROUP"==a||"HEADER"==a||"FOOTER"==a||"TIME"==a||"MARK"==a)?!0:!1}; +cvox.DomUtil.isLeafNode=function(a,b){if(!(a instanceof Element))return null==a.firstChild;var c=a;if(!b&&!cvox.DomUtil.isVisible(c,{checkAncestors:!1})||!b&&cvox.AriaUtil.isHidden(c)||cvox.AriaUtil.isLeafElement(c))return!0;switch(c.tagName){case "OBJECT":case "EMBED":case "VIDEO":case "AUDIO":case "IFRAME":case "FRAME":return!0}return cvox.DomPredicates.linkPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.headingPredicate([a])}):cvox.DomUtil.isLeafLevelControl(c)|| +!c.firstChild||cvox.DomUtil.isMath(c)?!0:cvox.DomPredicates.headingPredicate([c])?!cvox.DomUtil.findNode(c,function(a){return!!cvox.DomPredicates.controlPredicate([a])}):!1};cvox.DomUtil.isDescendantOf=function(a,b,c){for(;a;){if(b&&c&&a.tagName&&a.tagName==b&&a.className&&a.className==c||b&&!c&&a.tagName&&a.tagName==b||!b&&c&&a.className&&a.className==c)return!0;a=a.parentNode}return!1};cvox.DomUtil.isDescendantOfNode=function(a,b){for(;a&&b;){if(a.isSameNode(b))return!0;a=a.parentNode}return!1}; +cvox.DomUtil.collapseWhitespace=function(a){return a.replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")}; +cvox.DomUtil.getBaseLabel_=function(a,b,c){var d="";if(a.hasAttribute){if(a.hasAttribute("aria-labelledby"))for(var e=a.getAttribute("aria-labelledby").split(" "),f,g=0;f=e[g];g++)(f=document.getElementById(f))&&(d+=" "+cvox.DomUtil.getName(f,!0,c,!0));else if(a.hasAttribute("aria-label"))d=a.getAttribute("aria-label");else if(a.constructor==HTMLImageElement)d=cvox.DomUtil.getImageTitle(a);else if("FIELDSET"==a.tagName)for(e=a.getElementsByTagName("LEGEND"),d="",g=0;f=e[g];g++)d+=" "+cvox.DomUtil.getName(f, +!0,c);0==d.length&&a&&a.id&&(a=document.querySelector('label[for="'+a.id+'"]'))&&(d=cvox.DomUtil.getName(a,b,c))}return cvox.DomUtil.collapseWhitespace(d)};cvox.DomUtil.getNearestAncestorLabel_=function(a){for(var b="";a&&"LABEL"!=a.tagName;)a=a.parentElement;a&&!a.hasAttribute("for")&&(b=cvox.DomUtil.getName(a,!0,!1));return b}; +cvox.DomUtil.getInputName_=function(a){var b="";"image"==a.type?b=cvox.DomUtil.getImageTitle(a):"submit"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Submit":"reset"==a.type?b=a.hasAttribute("value")?a.getAttribute("value"):"Reset":"button"==a.type&&a.hasAttribute("value")&&(b=a.getAttribute("value"));return b}; +cvox.DomUtil.getName=function(a,b,c,d){if(!a||!0==a.cvoxGetNameMarked)return"";a.cvoxGetNameMarked=!0;b=cvox.DomUtil.getName_(a,b,c,d);a.cvoxGetNameMarked=!1;a=cvox.DomUtil.getPrefixText(a);return a+b};cvox.DomUtil.hasChildrenBasedName_=function(a,b){return cvox.DomPredicates.linkPredicate([a])||cvox.DomPredicates.headingPredicate([a])||"BUTTON"==a.tagName||cvox.AriaUtil.isControlWidget(a)||!cvox.DomUtil.isLeafNode(a,b)?!0:!1}; +cvox.DomUtil.getName_=function(a,b,c,d){"undefined"===typeof b&&(b=!0);"undefined"===typeof c&&(c=!0);if(a.constructor==Text)return a.data;var e=cvox.DomUtil.getBaseLabel_(a,b,c);0==e.length&&cvox.DomUtil.isControl(a)&&(e=cvox.DomUtil.getNearestAncestorLabel_(a));0==e.length&&a.constructor==HTMLInputElement&&(e=cvox.DomUtil.getInputName_(a));return cvox.DomUtil.isInputTypeText(a)&&a.hasAttribute("placeholder")?(b=a.getAttribute("placeholder"),0<e.length?0<cvox.DomUtil.getValue(a).length?e:e+" with hint "+ +b:b):0<e.length?e:0==cvox.DomUtil.collapseWhitespace(a.textContent).length&&a.hasAttribute&&a.hasAttribute("title")?a.getAttribute("title"):!b||cvox.AriaUtil.isCompositeControl(a)?"":cvox.DomUtil.hasChildrenBasedName_(a,d)?cvox.DomUtil.getNameFromChildren(a,c,d):""}; +cvox.DomUtil.getNameFromChildren=function(a,b,c){void 0==b&&(b=!0);for(var d="",e="",f=0;f<a.childNodes.length;f++){var g=a.childNodes[f],e=a.childNodes[f-1]||g;if(b||!cvox.DomUtil.isControl(g)){var h=cvox.DomUtil.isVisible(g,{checkAncestors:!1});if(c||h&&!cvox.AriaUtil.isHidden(g))e="SPAN"==e.tagName||"SPAN"==g.tagName||"SPAN"==g.parentNode.tagName?"":" ",d+=e+cvox.DomUtil.getName(g,!0,b)}}return d}; +cvox.DomUtil.getPrefixText=function(a,b){b=b||0;for(var c=cvox.DomUtil.getAncestors(a),d="",e=c=cvox.DomPredicates.listItemPredicate(c);e&&e.firstChild;)e=e.firstChild;c&&c.parentNode&&0==b&&"OL"==c.parentNode.tagName&&a==e&&"none"!=document.defaultView.getComputedStyle(c.parentNode).listStyleType&&(d=cvox.DomUtil.toArray(c.parentNode.children).filter(function(a){return"LI"==a.tagName}),d=d.indexOf(c)+1,-1!=document.defaultView.getComputedStyle(c.parentNode).listStyleType.indexOf("latin")&&(d--,d= +String.fromCharCode(65+d%26)),d+=". ");return d}; +cvox.DomUtil.getControlLabelHeuristics=function(a){if(a.hasAttribute&&(a.hasAttribute("aria-label")&&""==a.getAttribute("aria-label")||a.hasAttribute("aria-title")&&""==a.getAttribute("aria-title")))return"";for(var b=cvox.DomUtil.previousLeafNode(a),c=0;b&&(!cvox.DomUtil.hasContent(b)||cvox.DomUtil.isControl(b));)b=cvox.DomUtil.previousLeafNode(b),c++;for(var c=cvox.DomUtil.directedNextLeafNode(a),d=0;c&&(!cvox.DomUtil.hasContent(c)||cvox.DomUtil.isControl(c));)c=cvox.DomUtil.directedNextLeafNode(c), +d++;if(b&&c){for(var d=a,e=0;d&&!cvox.DomUtil.isDescendantOfNode(b,d);)d=d.parentNode,e++;d=a;for(a=0;d&&!cvox.DomUtil.isDescendantOfNode(c,d);)d=d.parentNode,a++;b=a<e?c:b}else b=b||c;return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b)):""}; +cvox.DomUtil.getValue=function(a){var b=cvox.AriaUtil.getActiveDescendant(a);if(b)return cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(b)+" "+cvox.DomUtil.getName(b));if(a.constructor==HTMLSelectElement){var b="",c=a.selectedOptions?a.selectedOptions[0]:null;a=a.selectedOptions?a.selectedOptions[a.selectedOptions.length-1]:null;c&&a&&c!=a?b=cvox.ChromeVox.msgs.getMsg("selected_options_value",[c.text,a.text]):c&&(b=c.text+"");return b}if(a.constructor==HTMLTextAreaElement)return a.value;if(a.constructor== +HTMLInputElement)switch(a.type){case "hidden":case "image":case "submit":case "reset":case "button":case "checkbox":case "radio":return"";case "password":return a.value.replace(/./g,"dot ");default:return a.value}return a.isContentEditable?cvox.DomUtil.getNameFromChildren(a,!0):""}; +cvox.DomUtil.getImageTitle=function(a){a.hasAttribute("alt")?a=a.alt:a.hasAttribute("title")?a=a.title:(a=a.src,"data"!=a.substring(0,4)?(a=a.substring(a.lastIndexOf("/")+1,a.lastIndexOf(".")),a=1<=a.length&&16>=a.length?a+" Image":"Image"):a="Image");return a}; +cvox.DomUtil.hasContent=function(a){if(8==a.nodeType||cvox.DomUtil.isDescendantOf(a,"HEAD")||cvox.DomUtil.isDescendantOf(a,"SCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOSCRIPT")||cvox.DomUtil.isDescendantOf(a,"NOEMBED")||cvox.DomUtil.isDescendantOf(a,"STYLE")||!cvox.DomUtil.isVisible(a)||cvox.AriaUtil.isHidden(a))return!1;if(cvox.DomUtil.isControl(a)||cvox.DomUtil.isDescendantOf(a,"VIDEO")||cvox.DomUtil.isDescendantOf(a,"AUDIO")||"IFRAME"==a.tagName&&a.src&&0!=a.src.indexOf("javascript:"))return!0; +for(var b="button,input,select,textarea",c=a.parentElement;c&&"LABEL"!=c.tagName;)c=c.parentElement;if(c){var d=c.querySelector(b);if(c.hasAttribute("for")){if(c=c.getAttribute("for"),(c=document.getElementById(c))&&cvox.DomUtil.isControl(c)&&!d)return!1}else if(d)return!1}for(d=a.parentElement;d&&"LEGEND"!=d.tagName;)d=d.parentElement;if(d){for(c=d.parentElement;c&&"FIELDSET"!=c.tagName;)c=c.parentElement;d=c&&c.querySelector(b);if(c&&!d)return!1}if(cvox.DomPredicates.linkPredicate([a])||"TABLE"== +a.tagName||cvox.DomUtil.isMath(a)||cvox.DomPredicates.headingPredicate([a]))return!0;b=cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a);a=cvox.DomUtil.getState(a,!0);return b.match(/^\s+$/)&&""===a?!1:!0};cvox.DomUtil.getAncestors=function(a){for(var b=[];a;)b.push(a),a=a.parentNode;for(b.reverse();b.length&&!b[0].tagName&&!b[0].nodeValue;)b.shift();return b};cvox.DomUtil.compareAncestors=function(a,b){for(var c=0;a[c]&&b[c]&&a[c]==b[c];)c++;a[c]||b[c]||(c=-1);return c}; +cvox.DomUtil.getUniqueAncestors=function(a,b,c){a=cvox.DomUtil.getAncestors(a);b=cvox.DomUtil.getAncestors(b);a=cvox.DomUtil.compareAncestors(a,b);a=b.slice(a);return 0==a.length&&c?b:a}; +cvox.DomUtil.getRoleMsg=function(a,b){var c;c=cvox.AriaUtil.getRoleNameMsg(a);c||("INPUT"==a.tagName?c=cvox.DomUtil.INPUT_TYPE_TO_INFORMATION_TABLE_MSG[a.type]:"A"==a.tagName&&cvox.DomUtil.isInternalLink(a)?c="internal_link":"A"==a.tagName&&a.getAttribute("name")?c="":a.isContentEditable?c="input_type_text":cvox.DomUtil.isMath(a)?c="math_expr":"TABLE"==a.tagName&&cvox.DomUtil.isLayoutTable(a)?c="":b==cvox.VERBOSITY_BRIEF?c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_BRIEF_MSG[a.tagName]:(c=cvox.DomUtil.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG[a.tagName], +cvox.DomUtil.hasLongDesc(a)&&(c="image_with_long_desc"),!c&&a.onclick&&(c="clickable")));return c};cvox.DomUtil.getRole=function(a,b){var c=cvox.DomUtil.getRoleMsg(a,b)||"",d=c&&" "!=c?cvox.ChromeVox.msgs.getMsg(c):"";return d?d:c};cvox.DomUtil.getListLength=function(a){var b=0;for(a=a.firstChild;a;a=a.nextSibling)if("LI"==a.tagName||a.getAttribute&&"listitem"==a.getAttribute("role")){if(a.hasAttribute("aria-setsize")){var c=parseInt(a.getAttribute("aria-setsize"),10);if(!isNaN(c))return c}b++}return b}; +cvox.DomUtil.getStateMsgs=function(a,b){var c=cvox.AriaUtil.getActiveDescendant(a);if(c)return cvox.DomUtil.getStateMsgs(c,b);var c=[],d=a.getAttribute?a.getAttribute("role"):"";(c=cvox.AriaUtil.getStateMsgs(a,b))||(c=[]);"INPUT"==a.tagName?a.hasAttribute("aria-checked")||(d={"checkbox-true":"checkbox_checked_state","checkbox-false":"checkbox_unchecked_state","radio-true":"radio_selected_state","radio-false":"radio_unselected_state"},(d=d[a.type+"-"+!!a.checked])&&c.push([d])):"SELECT"==a.tagName? +a.selectedOptions&&1>=a.selectedOptions.length?c.push(["list_position",cvox.ChromeVox.msgs.getNumber(a.selectedIndex+1),cvox.ChromeVox.msgs.getNumber(a.options.length)]):c.push(["selected_options_state",cvox.ChromeVox.msgs.getNumber(a.selectedOptions.length)]):"UL"!=a.tagName&&"OL"!=a.tagName&&"list"!=d||c.push(["list_with_items",cvox.ChromeVox.msgs.getNumber(cvox.DomUtil.getListLength(a))]);cvox.DomUtil.isDisabled(a)&&c.push(["aria_disabled_true"]);cvox.DomPredicates.linkPredicate([a])&&cvox.ChromeVox.visitedUrls[a.href]&& +c.push(["visited_url"]);a.accessKey&&c.push(["access_key",a.accessKey]);return c};cvox.DomUtil.getState=function(a,b){return cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,b))};cvox.DomUtil.isFocusable=function(a){return a&&"number"==typeof a.tabIndex&&("A"!=a.tagName||a.hasAttribute("href")||a.hasAttribute("tabindex"))?0<=a.tabIndex||a.hasAttribute&&a.hasAttribute("tabindex")&&"-1"==a.getAttribute("tabindex")?!0:!1:!1}; +cvox.DomUtil.findFocusableDescendant=function(a){return a&&(a=cvox.DomUtil.findNode(a,cvox.DomUtil.isFocusable))?a:null};cvox.DomUtil.countFocusableDescendants=function(a){return a?cvox.DomUtil.countNodes(a,cvox.DomUtil.isFocusable):0};cvox.DomUtil.isAttachedToDocument=function(a){for(;a;){if(a.tagName&&"HTML"==a.tagName)return!0;a=a.parentNode}return!1}; +cvox.DomUtil.clickElem=function(a,b,c,d){var e=cvox.AriaUtil.getActiveDescendant(a);e&&(a=e);if(c){c=null;a.onclick&&(c=a.onclick);!c&&1!=a.nodeType&&a.parentNode&&a.parentNode.onclick&&(c=a.parentNode.onclick);e=!0;if(c)try{e=c()}catch(f){}if(!e)return}c=document.createEvent("MouseEvents");d=d?"dblclick":"mousedown";c.initMouseEvent(d,!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(g){}c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup", +!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(h){}c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,document.defaultView,1,0,0,0,0,!1,!1,b,!1,0,null);c.fromCvox=!0;try{a.dispatchEvent(c)}catch(k){}cvox.DomUtil.isInternalLink(a)&&cvox.DomUtil.syncInternalLink(a)}; +cvox.DomUtil.syncInternalLink=function(a){var b=a.href.split("#")[1];a=document.getElementById(b);a||(b=document.getElementsByName(b),0<b.length&&(a=b[0]));if(a){var b=a.parentNode,c=document.createElement("div");c.setAttribute("tabindex","-1");b.insertBefore(c,a);c.setAttribute("chromevoxignoreariahidden",1);c.focus();cvox.ChromeVox.syncToNode(a,!0)}}; +cvox.DomUtil.isInputTypeText=function(a){if(!a||a.constructor!=HTMLInputElement)return!1;switch(a.type){case "email":case "number":case "password":case "search":case "text":case "tel":case "url":case "":return!0;default:return!1}};cvox.DomUtil.isControl=function(a){if(cvox.AriaUtil.isControlWidget(a)&&cvox.DomUtil.isFocusable(a))return!0;if(a.tagName)switch(a.tagName){case "BUTTON":case "TEXTAREA":case "SELECT":return!0;case "INPUT":return"hidden"!=a.type}return a.isContentEditable?!0:!1}; +cvox.DomUtil.isLeafLevelControl=function(a){return cvox.DomUtil.isControl(a)?!(cvox.AriaUtil.isCompositeControl(a)&&cvox.DomUtil.findFocusableDescendant(a)):!1};cvox.DomUtil.getSurroundingControl=function(a){var b=null;if(!cvox.DomUtil.isControl(a)&&a.hasAttribute&&a.hasAttribute("role"))for(b=a.parentElement;b&&!cvox.AriaUtil.isCompositeControl(b);)b=b.parentElement;return b}; +cvox.DomUtil.directedNextLeafLikeNode=function(a,b,c){if(a!=document.body){for(;!cvox.DomUtil.directedNextSibling(a,b);){if(!a)return null;a=a.parentNode;if(a==document.body)return null}cvox.DomUtil.directedNextSibling(a,b)&&(a=cvox.DomUtil.directedNextSibling(a,b))}for(;cvox.DomUtil.directedFirstChild(a,b)&&!c(a);)a=cvox.DomUtil.directedFirstChild(a,b);return a==document.body?null:a};cvox.DomUtil.directedNextLeafNode=function(a,b){b=!!b;return cvox.DomUtil.directedNextLeafLikeNode(a,b,cvox.DomUtil.isLeafNode)}; +cvox.DomUtil.previousLeafNode=function(a){return cvox.DomUtil.directedNextLeafNode(a,!0)};cvox.DomUtil.directedFindFirstNode=function(a,b,c){for(a=cvox.DomUtil.directedFirstChild(a,b);a;){if(c(a))return a;var d=cvox.DomUtil.directedFindFirstNode(a,b,c);if(d)return d;a=cvox.DomUtil.directedNextSibling(a,b)}return null};cvox.DomUtil.directedFindDeepestNode=function(a,b,c){var d=cvox.DomUtil.directedFindFirstNode(a,b,c);return d?cvox.DomUtil.directedFindDeepestNode(d,b,c):c(a)?a:null}; +cvox.DomUtil.directedFindNextNode=function(a,b,c,d,e,f){e=!!e;f=!!f;if(!cvox.DomUtil.isDescendantOfNode(a,b)||a==b)return null;for(var g=cvox.DomUtil.directedNextSibling(a,c);g;){if(!f&&d(g))return g;var h=(f?cvox.DomUtil.directedFindDeepestNode:cvox.DomUtil.directedFindFirstNode)(g,c,d);if(h)return h;if(f&&d(g))return g;g=cvox.DomUtil.directedNextSibling(g,c)}a=a.parentNode;return e&&d(a)?a:cvox.DomUtil.directedFindNextNode(a,b,c,d,e,f)}; +cvox.DomUtil.getControlValueAndStateString=function(a){var b=cvox.DomUtil.getSurroundingControl(a);return b?cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a)+" "+cvox.DomUtil.getState(a,!0)):cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getState(a,!0))};cvox.DomUtil.isInternalLink=function(a){return 1==a.nodeType&&(a=a.getAttribute("href"))&&-1!=a.indexOf("#")?(a=a.split("#")[0],""==a||a==window.location.pathname):!1}; +cvox.DomUtil.getLinkURL=function(a){if("A"==a.tagName){if(a.getAttribute("href"))return cvox.DomUtil.isInternalLink(a)?cvox.ChromeVox.msgs.getMsg("internal_link"):a.getAttribute("href")}else if(cvox.AriaUtil.getRoleName(a)==cvox.ChromeVox.msgs.getMsg("aria_role_link"))return cvox.ChromeVox.msgs.getMsg("unknown_link");return""};cvox.DomUtil.getContainingTable=function(a,b){var c=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findTableNodeInList(c,b)}; +cvox.DomUtil.findTableNodeInList=function(a,b){b=b||{allowCaptions:!1};for(var c=a.length-1,d;d=a[c];c--)if(d.constructor!=Text){if(!b.allowCaptions&&"CAPTION"==d.tagName)break;if("TABLE"==d.tagName||cvox.AriaUtil.isGrid(d))return d}return null}; +cvox.DomUtil.isLayoutTable=function(a){if(a.rows&&(1==a.rows.length||1==a.rows[0].childElementCount))return!0;if(cvox.AriaUtil.isGrid(a)||cvox.AriaUtil.isLandmark(a)||a.caption||a.summary||0<cvox.XpathUtil.evalXPath("tbody/tr/th",a).length&&0<cvox.XpathUtil.evalXPath("tbody/tr/td",a).length||0<cvox.XpathUtil.evalXPath("colgroup",a).length||0<cvox.XpathUtil.evalXPath("thead",a).length||0<cvox.XpathUtil.evalXPath("tfoot",a).length)return!1;if(0<cvox.XpathUtil.evalXPath("tbody/tr/td/embed",a).length|| +0<cvox.XpathUtil.evalXPath("tbody/tr/td/object",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/iframe",a).length||0<cvox.XpathUtil.evalXPath("tbody/tr/td/applet",a).length)return!0;var b=0;cvox.DomUtil.hasBorder(a)||b++;6>=a.rows.length&&b++;12>=cvox.DomUtil.countPreviousTags(a)&&b++;0<cvox.XpathUtil.evalXPath("tbody/tr/td/table",a).length&&b++;return 3<=b};cvox.DomUtil.countPreviousTags=function(a){var b=cvox.DomUtil.getAncestors(a);return b.length+cvox.DomUtil.countPreviousSiblings(a)}; +cvox.DomUtil.countPreviousSiblings=function(a){var b=0;for(a=a.previousSibling;null!=a;)a.constructor!=Text&&b++,a=a.previousSibling;return b};cvox.DomUtil.hasBorder=function(a){return a.frame?-1==a.frame.indexOf("void"):a.border?1==a.border.length?"0"!=a.border:0!=a.border.slice(0,-2):a.style.borderStyle&&"none"==a.style.borderStyle?!1:a.style.borderWidth?0!=a.style.borderWidth.slice(0,-2):a.style.borderColor?!0:!1}; +cvox.DomUtil.getFirstLeafNode=function(){for(var a=document.body;a&&a.firstChild;)a=a.firstChild;for(;a&&!cvox.DomUtil.hasContent(a);)a=cvox.DomUtil.directedNextLeafNode(a);return a};cvox.DomUtil.findNode=function(a,b){var c=[],d=cvox.DomUtil.findNodes_(a,b,c,!0,1E4);return d?c[0]:void 0};cvox.DomUtil.countNodes=function(a,b){var c=[];cvox.DomUtil.findNodes_(a,b,c,!1,1E4);return c.length}; +cvox.DomUtil.findNodes_=function(a,b,c,d,e){if(null!=a||0==e)for(a=a.firstChild;a;){if(b(a)&&(c.push(a),d))return!0;e-=1;if(cvox.DomUtil.findNodes_(a,b,c,d,e))return!0;a=a.nextSibling}return!1};cvox.DomUtil.toArray=function(a){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);return b}; +cvox.DomUtil.shallowChildlessClone=function(a,b){if("#text"==a.nodeName)return document.createTextNode(a.nodeValue);if("#comment"==a.nodeName)return document.createComment(a.nodeValue);for(var c=document.createElement(a.nodeName),d=0;d<a.attributes.length;++d){var e=a.attributes[d];b&&b[e.nodeName]||c.setAttribute(e.nodeName,e.nodeValue)}return c}; +cvox.DomUtil.deepClone=function(a,b){for(var c=cvox.DomUtil.shallowChildlessClone(a,b),d=0;d<a.childNodes.length;++d)c.appendChild(cvox.DomUtil.deepClone(a.childNodes[d],b));return c};cvox.DomUtil.directedFirstChild=function(a,b){return b?a.lastChild:a.firstChild};cvox.DomUtil.directedNextSibling=function(a,b){return a?b?a.previousSibling:a.nextSibling:null};cvox.DomUtil.createSimpleClickFunction=function(a){var b=a.cloneNode(!0);return function(){cvox.DomUtil.clickElem(b,!1,!1)}}; +cvox.DomUtil.addNodeToHead=function(a,b){if(!b||!document.getElementById(b)){var c=document.head||document.body;c.appendChild(a)}};cvox.DomUtil.getContainingMath=function(a){a=cvox.DomUtil.getAncestors(a);return cvox.DomUtil.findMathNodeInList(a)};cvox.DomUtil.findMathNodeInList=function(a){for(var b=0,c;c=a[b];b++)if(cvox.DomUtil.isMath(c))return c;return null};cvox.DomUtil.isMath=function(a){return cvox.DomUtil.isMathml(a)||cvox.DomUtil.isMathJax(a)||cvox.DomUtil.isMathImg(a)||cvox.AriaUtil.isMath(a)}; +cvox.DomUtil.ALT_MATH_CLASSES={tex:["tex","latex"],asciimath:["numberedequation","inlineformula","displayformula"]};cvox.DomUtil.altMathQuerySelector=function(a){return(a=cvox.DomUtil.ALT_MATH_CLASSES[a])?a.map(function(a){return"img."+a}).join(", "):""};cvox.DomUtil.isMathImg=function(a){if(!a||!a.tagName||!a.className||"IMG"!=a.tagName)return!1;a=a.className.toLowerCase();return-1!=cvox.DomUtil.ALT_MATH_CLASSES.tex.indexOf(a)||-1!=cvox.DomUtil.ALT_MATH_CLASSES.asciimath.indexOf(a)}; +cvox.DomUtil.isMathml=function(a){return a&&a.tagName?"math"==a.tagName.toLowerCase():!1};cvox.DomUtil.isMathJax=function(a){function b(a,b){return"SPAN"==a.tagName&&a.className.split(" ").some(function(a){return a.toLowerCase()==b})}return a&&a.tagName&&a.className?b(a,"math")?(a=cvox.DomUtil.getAncestors(a),a.some(function(a){return b(a,"mathjax")})):!1:!1};cvox.DomUtil.getMathSpanId=function(a){if(a=document.getElementById(a+"-Frame"))if(a=a.querySelector("span.math"))return a.id}; +cvox.DomUtil.hasLongDesc=function(a){return a&&a.longDesc?!0:!1};cvox.DomUtil.getNodeTagName=function(a){return a.nodeType==Node.ELEMENT_NODE?a.tagName:""};cvox.DomUtil.purgeNodes=function(a){return cvox.DomUtil.toArray(a).filter(function(a){return a.nodeType!=Node.TEXT_NODE||!a.textContent.match(/^\s+$/)})};cvox.DomUtil.elementToPoint=function(a){if(!a)return{x:0,y:0};a.constructor==Text&&(a=a.parentNode);a=a.getBoundingClientRect();return{x:a.left+a.width/2,y:a.top+a.height/2}};cvox.SelectionUtil=function(){};cvox.SelectionUtil.cleanUpParagraphForward=function(a){for(;3==a.focusNode.nodeType;){var b=a.focusNode,c=a.focusOffset;a.modify("extend","forward","sentence");if(b==a.focusNode&&c==a.focusOffset)return!1}return!0};cvox.SelectionUtil.cleanUpParagraphBack=function(a){for(var b,c;3==a.focusNode.nodeType&&(b=a.focusNode,c=a.focusOffset,a.modify("extend","backward","sentence"),b!=a.focusNode||c!=a.focusOffset););return!0}; +cvox.SelectionUtil.cleanUpSentence=function(a){for(var b=!0;b;)if(3==a.focusNode.nodeType){var c=a.focusNode,d=a.focusOffset;if(0<a.rangeCount&&0<a.getRangeAt(0).endOffset)if("."==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else if(" "==c.substringData(a.getRangeAt(0).endOffset-1,1))break;else{if(a.modify("extend","forward","sentence"),c==a.focusNode&&d==a.focusOffset)return!1}else break}else break;return!0}; +cvox.SelectionUtil.findSelPosition=function(a){if(0==a.rangeCount)return[0,0];var b=a.getRangeAt(0).getBoundingClientRect();if(!b)return[0,0];a=window.pageYOffset+b.top;b=window.pageXOffset+b.left;return[a,b]};cvox.SelectionUtil.findTopLeftPosition=function(a){var b=0,c=0;if(a.offsetParent)for(b=a.offsetLeft,c=a.offsetTop,a=a.offsetParent;null!==a;)b+=a.offsetLeft,c+=a.offsetTop,a=a.offsetParent;return[c,b]}; +cvox.SelectionUtil.isSelectionValid=function(a){var b=RegExp(/^\s+$/);return!(b.test(a.toString())||""==a.toString())};cvox.SelectionUtil.isRangeValid=function(a){a=a.cloneContents().textContent;var b=RegExp(/^\s+$/);return!(b.test(a)||""==a)};cvox.SelectionUtil.findPos_=function(a){var b=0,c=0;if(a.offsetParent){do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent)}return[b,c]}; +cvox.SelectionUtil.scrollElementsToView=function(a){for(;a&&!a.getBoundingClientRect;)a=a.parentElement;if(a){for(var b=a,c=b.parentElement;b!=document.body&&c;)b.scrollTop=b.offsetTop,b.scrollLeft=b.offsetLeft,b=c,c=b.parentElement;a=cvox.SelectionUtil.findPos_(a);window.scrollTo(a[0]-window.innerWidth/2,a[1]-window.innerHeight/2)}}; +cvox.SelectionUtil.scrollToSelection=function(a){if(0!=a.rangeCount){cvox.SelectionUtil.scrollElementsToView(a.focusNode);var b=cvox.SelectionUtil.findSelPosition(a);a=b[0];var b=b[1],c=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=window.innerWidth||document.documentElement.innerWidth||document.body.clientWidth;b<e&&(b=0);c+d<a?(a-=d,window.scroll(b,a+100)):a<c&&window.scroll(b, +a-100)}};cvox.SelectionUtil.isAllWs=function(a){return!/[^\t\n\r ]/.test(a.data)};cvox.SelectionUtil.isIgnorable=function(a){return 8==a.nodeType||3==a.nodeType&&cvox.SelectionUtil.isAllWs(a)};cvox.SelectionUtil.nodeBefore=function(a){for(;a=a.previousSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null};cvox.SelectionUtil.nodeAfter=function(a){for(;a=a.nextSibling;)if(!cvox.SelectionUtil.isIgnorable(a))return a;return null}; +cvox.SelectionUtil.lastChildNode=function(a){for(a=a.lastChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.previousSibling}return null};cvox.SelectionUtil.firstChildNode=function(a){for(a=a.firstChild;a;){if(!cvox.SelectionUtil.isIgnorable(a))return a;a=a.nextSibling}return null};cvox.SelectionUtil.dataOf=function(a){a=a.data;a=a.replace(/[\t\n\r ]+/g," ");" "==a.charAt(0)&&(a=a.substring(1,a.length));" "==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));return a}; +cvox.SelectionUtil.hasContentWithTag=function(a,b){if(!a||!a.anchorNode||!a.focusNode)return!1;if(a.anchorNode.tagName&&a.anchorNode.tagName==b||a.focusNode.tagName&&a.focusNode.tagName==b||a.anchorNode.parentNode.tagName&&a.anchorNode.parentNode.tagName==b||a.focusNode.parentNode.tagName&&a.focusNode.parentNode.tagName==b)return!0;var c=a.getRangeAt(0).cloneContents(),d=document.createElement("span");d.appendChild(c);return 0<d.getElementsByTagName(b).length}; +cvox.SelectionUtil.selectText=function(a,b,c){var d=document.createRange();d.setStart(a,b);d.setEnd(a,c);a=window.getSelection();a.removeAllRanges();a.addRange(d)};cvox.SelectionUtil.selectAllTextInNode=function(a){var b=document.createRange();b.setStart(a,0);b.setEndAfter(a);a=window.getSelection();a.removeAllRanges();a.addRange(b)}; +cvox.SelectionUtil.collapseToStart=function(a){var b=window.getSelection(),c=b.anchorNode,d=b.anchorOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)};cvox.SelectionUtil.collapseToEnd=function(a){var b=window.getSelection(),c=b.focusNode,d=b.focusOffset;null==c&&(c=a,d=0);a=document.createRange();a.setStart(c,d);a.setEnd(c,d);b.removeAllRanges();b.addRange(a)}; +cvox.SelectionUtil.getText=function(){var a=window.getSelection();if(cvox.SelectionUtil.hasContentWithTag(a,"IMG")){var b="",a=a.getRangeAt(0).cloneContents(),c=document.createElement("span");c.appendChild(a);for(var a=cvox.XpathUtil.getLeafNodes(c),c=0,d;d=a[c];c++)b=b+" "+cvox.DomUtil.getName(d);return b}return this.getSelectionText_()};cvox.SelectionUtil.getSelectionText_=function(){return""+window.getSelection()}; +cvox.SelectionUtil.getRangeText=function(a){return a?a.cloneContents().textContent.replace(/\s+/g," "):""};cvox.TraverseUtil=function(){};cvox.TraverseUtil.getNodeText=function(a){return a.constructor==Text?a.data:""};cvox.TraverseUtil.treatAsLeafNode=function(a){return 0==a.childNodes.length||"SELECT"==a.nodeName||"listbox"==a.getAttribute("role")||"OBJECT"==a.nodeName};cvox.TraverseUtil.isWhitespace=function(a){return" "==a||"\n"==a||"\r"==a||"\t"==a}; +cvox.TraverseUtil.setSelection=function(a,b){var c=window.getSelection();c.removeAllRanges();var d=document.createRange();d.setStart(a.node,a.index);d.setEnd(b.node,b.index);c.addRange(d);return c};cvox.TraverseUtil.isHidden=function(a){if(a instanceof HTMLElement&&"true"==a.getAttribute("aria-hidden"))return!0;switch(a.tagName){case "SCRIPT":case "NOSCRIPT":return!0}return!1}; +cvox.TraverseUtil.forwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index;e<a.node.childNodes.length;e++){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.index=0,a.text=cvox.TraverseUtil.getNodeText(a.node),a.node instanceof HTMLElement&&b.push(a.node);else{if(a.index<a.text.length)return a.text[a.index++];for(;null!= +a.node;){d=null;for(f=a.node.nextSibling;null!=f;f=f.nextSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=0;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof HTMLElement&&c.push(a.node),a.node=a.node.parentNode, +a.text=null,a.index=0;else return null}}}}; +cvox.TraverseUtil.backwardsChar=function(a,b,c){for(;;){var d=null;if(!cvox.TraverseUtil.treatAsLeafNode(a.node))for(var e=a.index-1;0<=e;e--){var f=a.node.childNodes[e];if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}}if(d)a.node=d,a.text=cvox.TraverseUtil.getNodeText(a.node),a.index=a.text.length?a.text.length:a.node.childNodes.length,a.node instanceof HTMLElement&&b.push(a.node);else{if(0<a.text.length&&0<a.index)return a.text[--a.index]; +for(;;){d=null;for(f=a.node.previousSibling;null!=f;f=f.previousSibling)if(cvox.TraverseUtil.isHidden(f))f instanceof HTMLElement&&b.push(f);else if(cvox.DomUtil.isVisible(f,{checkAncestors:!1})){d=f;break}if(d){a.node instanceof HTMLElement&&c.push(a.node);a.node=d;a.text=cvox.TraverseUtil.getNodeText(d);a.index=a.text.length?a.text.length:a.node.childNodes.length;a.node instanceof HTMLElement&&b.push(a.node);break}if(a.node.parentNode&&a.node.parentNode.constructor!=HTMLBodyElement)a.node instanceof +HTMLElement&&c.push(a.node),a.node=a.node.parentNode,a.text=null,a.index=0;else return null}}}}; +cvox.TraverseUtil.getNextChar=function(a,b,c,d,e){a.copyFrom(b);var f=cvox.TraverseUtil.forwardsChar(b,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(b.node);)if(f=cvox.TraverseUtil.forwardsChar(b,c,d),null==f)return null;if(e||!g)return a.copyFrom(b),a.index--,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return b.index--,a.copyFrom(b),a.index--," ";b.index--;return" "}; +cvox.TraverseUtil.getPreviousChar=function(a,b,c,d,e){b.copyFrom(a);var f=cvox.TraverseUtil.backwardsChar(a,c,d);if(null==f)return null;for(var g=cvox.TraverseUtil.isWhitespace(f);cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(a.node);)if(f=cvox.TraverseUtil.backwardsChar(a,c,d),null==f)return null;if(e||!g)return b.copyFrom(a),b.index++,f;for(d=0;d<c.length;d++)if(cvox.TraverseUtil.isHidden(c[d]))return a.index++,b.copyFrom(a),b.index++," ";a.index++;return" "}; +cvox.TraverseUtil.getNextWord=function(a,b,c,d){var e=b.clone(),f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.forwardsChar(e,c,d),null==f)return null;a.copyFrom(e);a.index--;b.copyFrom(e);a=f;c=[];d=[];f=cvox.TraverseUtil.forwardsChar(e,c,d);if(null==f)return a;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d&&(a+=f,b.copyFrom(e),f=cvox.TraverseUtil.forwardsChar(e,c,d),null!= +f););return a}; +cvox.TraverseUtil.getPreviousWord=function(a,b,c,d){var e=a.clone(),f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return null;for(;cvox.TraverseUtil.isWhitespace(f)||cvox.TraverseUtil.isHidden(e.node);)if(f=cvox.TraverseUtil.backwardsChar(e,c,d),null==f)return null;b.copyFrom(e);b.index++;a.copyFrom(e);b=f;c=[];d=[];f=cvox.TraverseUtil.backwardsChar(e,c,d);if(null==f)return b;for(;!cvox.TraverseUtil.isWhitespace(f)&&0==c.length&&0==d.length&&(b=f+b,a.copyFrom(e),f=cvox.TraverseUtil.backwardsChar(e,c, +d),null!=f););return b};cvox.TraverseUtil.includesBreakTagOrSkippedNode=function(a,b,c){for(var d=0;d<a.length;d++){if(cvox.TraverseUtil.isHidden(a[d]))return!0;var e=window.getComputedStyle(a[d],null);if(e&&"inline"!=e.display||c[a[d].tagName])return!0}for(d=0;d<b.length;d++)if((e=window.getComputedStyle(b[d],null))&&"inline"!=e.display||c[b[d].tagName])return!0;return!1}; +cvox.TraverseUtil.getNextSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){return"."==a.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})};cvox.TraverseUtil.getPreviousSentence=function(a,b,c,d,e){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){return"."==b.substr(-1)?!0:cvox.TraverseUtil.includesBreakTagOrSkippedNode(c,d,e)})}; +cvox.TraverseUtil.getNextLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=b.clone();return cvox.TraverseUtil.getNextString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.bottom!=g.bottom&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(b.node)))return b.copyFrom(h),!0;g=c;h.copyFrom(b);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})}; +cvox.TraverseUtil.getPreviousLine=function(a,b,c,d,e){var f=document.createRange(),g=null,h=a.clone();return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(c,d,m,p){f.setStart(a.node,a.index);f.setEnd(b.node,b.index);c=f.getBoundingClientRect();g||(g=c);if(c.top!=g.top&&!cvox.DomPredicates.linkPredicate(cvox.DomUtil.getAncestors(a.node)))return a.copyFrom(h),!0;g=c;h.copyFrom(a);return cvox.TraverseUtil.includesBreakTagOrSkippedNode(m,p,e)})}; +cvox.TraverseUtil.getNextParagraph=function(a,b,c,d){return cvox.TraverseUtil.getNextString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})}; +cvox.TraverseUtil.getPreviousParagraph=function(a,b,c,d){return cvox.TraverseUtil.getPreviousString(a,b,c,d,function(a,b,c,d){for(a=0;a<c.length;a++)if(cvox.TraverseUtil.isHidden(c[a])||(b=window.getComputedStyle(c[a],null))&&"inline"!=b.display)return!0;for(a=0;a<d.length;a++)if((b=window.getComputedStyle(d[a],null))&&"inline"!=b.display)return!0;return!1})}; +cvox.TraverseUtil.getNextString=function(a,b,c,d,e){c=b.clone();d=b.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getNextWord(c,d,f,g);if(null==k)return null;for(a.copyFrom(c);!(h&&e(h,k,f,g)||(h&&(h+=" "),h+=k,b.copyFrom(d),f=[],g=[],k=cvox.TraverseUtil.getNextWord(c,d,f,g),null==k)););return h}; +cvox.TraverseUtil.getPreviousString=function(a,b,c,d,e){c=a.clone();d=a.clone();var f=[],g=[],h="",k=cvox.TraverseUtil.getPreviousWord(c,d,f,g);if(null==k)return null;for(b.copyFrom(d);!(h&&e(h,k,f,g)||(h&&(h=" "+h),h=k+h,a.copyFrom(c),f=[],g=[],k=cvox.TraverseUtil.getPreviousWord(c,d,f,g),null==k)););return h};cvox.CursorSelection=function(a,b,c){this.start=a.clone();this.end=b.clone();void 0==c&&(c=!1);if((this.isReversed_=c)&&this.start.node.compareDocumentPosition(this.end.node)==cvox.CursorSelection.BEFORE||!this.isReversed_&&this.end.node.compareDocumentPosition(this.start.node)==cvox.CursorSelection.BEFORE)a=this.start,this.start=this.end,this.end=a};cvox.CursorSelection.BEFORE=4; +cvox.CursorSelection.prototype.setReversed=function(a){if(a==this.isReversed_)return this;var b=this.start;this.start=this.end;this.end=b;this.isReversed_=a;return this};cvox.CursorSelection.prototype.isReversed=function(){return this.isReversed_};cvox.CursorSelection.prototype.absStart=function(){return this.isReversed_?this.end:this.start};cvox.CursorSelection.prototype.absEnd=function(){return this.isReversed_?this.start:this.end}; +cvox.CursorSelection.prototype.clone=function(){return new cvox.CursorSelection(this.start,this.end,this.isReversed_)};cvox.CursorSelection.prototype.select=function(){var a=window.getSelection();a.removeAllRanges();this.normalize();a.addRange(this.getRange())};cvox.CursorSelection.fromNode=function(a){if(!a)return null;var b=cvox.TraverseUtil.getNodeText(a);return new cvox.CursorSelection(new cvox.Cursor(a,0,b),new cvox.Cursor(a,0,b))};cvox.CursorSelection.fromBody=function(){return cvox.CursorSelection.fromNode(document.body)}; +cvox.CursorSelection.prototype.getText=function(){return this.start.equals(this.end)?cvox.TraverseUtil.getNodeText(this.start.node):cvox.SelectionUtil.getRangeText(this.getRange())};cvox.CursorSelection.prototype.getRange=function(){var a=document.createRange();this.isReversed_?(a.setStart(this.end.node,this.end.index),a.setEnd(this.start.node,this.start.index)):(a.setStart(this.start.node,this.start.index),a.setEnd(this.end.node,this.end.index));return a}; +cvox.CursorSelection.prototype.equals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)};cvox.CursorSelection.prototype.absEquals=function(a){return this.start.equals(a.start)&&this.end.equals(a.end)||this.end.equals(a.start)&&this.start.equals(a.end)};cvox.CursorSelection.prototype.directedBefore=function(a){var b=this.start.node.compareDocumentPosition(a.start.node)==cvox.CursorSelection.BEFORE;return this.start.node==a.start.node||(this.isReversed()?!b:b)}; +cvox.CursorSelection.prototype.normalize=function(){if(0==this.absEnd().index&&this.absEnd().node){var a=this.absEnd().node,b=document.createRange();b.selectNodeContents(a);this.absEnd().index=b.endOffset}return this};cvox.CursorSelection.prototype.collapse=function(){if(this.start.equals(this.end))return this;this.end.copyFrom(this.start);if(0==this.start.text.length)return this;this.isReversed()?0<this.end.index&&this.end.index--:this.end.index<this.end.text.length&&this.end.index++;return this};cvox.PlatformUtil={};cvox.PlatformFilter={NONE:0,WINDOWS:1,MAC:2,LINUX:4,WML:7,CHROMEOS:8,ANDROID:16};cvox.PlatformUtil.matchesPlatform=function(a){var b=navigator.userAgent;return void 0==a?!0:-1!=b.indexOf("Android")?0!=(a&cvox.PlatformFilter.ANDROID):-1!=b.indexOf("Win")?0!=(a&cvox.PlatformFilter.WINDOWS):-1!=b.indexOf("Mac")?0!=(a&cvox.PlatformFilter.MAC):-1!=b.indexOf("Linux")?0!=(a&cvox.PlatformFilter.LINUX):-1!=b.indexOf("CrOS")?0!=(a&cvox.PlatformFilter.CHROMEOS):!1};cvox.Spannable=function(a,b){this.string_=a||"";this.spans_=[];if(goog.isDef(b)){var c=this.string_.length;this.spans_.push({value:b,start:0,end:c})}};cvox.Spannable.prototype.toString=function(){return this.string_};cvox.Spannable.prototype.getLength=function(){return this.string_.length};cvox.Spannable.prototype.setSpan=function(a,b,c){this.removeSpan(a);if(0<=b&&b<=c&&c<=this.string_.length)this.spans_.push({value:a,start:b,end:c});else throw new RangeError("span out of range");}; +cvox.Spannable.prototype.removeSpan=function(a){for(var b=this.spans_.length-1;0<=b;b--)this.spans_[b].value===a&&this.spans_.splice(b,1)};cvox.Spannable.prototype.append=function(a){if(a instanceof cvox.Spannable){var b=a,c=this.getLength();this.string_+=b.string_;a.spans_.forEach(goog.bind(function(a){this.setSpan(a.value,a.start+c,a.end+c)},this))}else"string"===typeof a&&(this.string_+=a)}; +cvox.Spannable.prototype.getSpan=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.start<=a&&a<c.end)return c.value}};cvox.Spannable.prototype.getSpanInstanceOf=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value instanceof a)return c.value}};cvox.Spannable.prototype.getSpans=function(a){for(var b=[],c=0;c<this.spans_.length;c++){var d=this.spans_[c];d.start<=a&&a<d.end&&b.push(d.value)}return b}; +cvox.Spannable.prototype.getSpanStart=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.start}return null};cvox.Spannable.prototype.getSpanEnd=function(a){for(var b=0;b<this.spans_.length;b++){var c=this.spans_[b];if(c.value===a)return c.end}return null}; +cvox.Spannable.prototype.substring=function(a,b){var c=goog.isDef(b)?b:this.string_.length;if(0>a||c>this.string_.length||a>c)throw new RangeError("substring indices out of range");for(var d=new cvox.Spannable(this.string_.substring(a,c)),e=0;e<this.spans_.length;e++){var f=this.spans_[e];if(f.start<=c&&f.end>=a){var g=Math.max(0,f.start-a),h=Math.min(c-a,f.end-a);d.spans_.push({value:f.value,start:g,end:h})}}return d}; +cvox.Spannable.prototype.trim=function(){if(/^\s*$/.test(this.string_))return this.substring(0,0);var a=this.string_.match(/^\s*/)[0].length,b=this.string_.match(/\s*$/).index;return this.substring(a,b)};cvox.NavBraille=function(a){this.text=a.text instanceof cvox.Spannable?a.text:new cvox.Spannable(a.text);this.startIndex=a.startIndex?a.startIndex:0;this.endIndex=a.endIndex?a.endIndex:0};cvox.NavBraille.fromText=function(a){return new cvox.NavBraille({text:a})};cvox.NavBraille.prototype.isEmpty=function(){return 0==this.text.getLength()};cvox.NavBraille.prototype.toString=function(){return'NavBraille(text="'+this.text.toString()+'" startIndex="'+this.startIndex+'" endIndex="'+this.endIndex+'")'}; +cvox.NavBraille.prototype.toJson=function(){return{text:this.text.toString(),startIndex:this.startIndex,endIndex:this.endIndex}};cvox.NavBraille.prototype.write=function(){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.CHROMEOS|cvox.PlatformFilter.ANDROID)&&cvox.ChromeVox.braille.write(this)};cvox.BrailleKeyCommand={PAN_LEFT:"pan_left",PAN_RIGHT:"pan_right",LINE_UP:"line_up",LINE_DOWN:"line_down",TOP:"top",BOTTOM:"bottom",ROUTING:"routing",SECONDARY_ROUTING:"secondary_routing",DOTS:"dots",STANDARD_KEY:"standard_key"};cvox.BrailleKeyEvent={};cvox.BrailleInterface=function(){};cvox.BrailleInterface.prototype.write=function(){};cvox.AbstractBraille=function(){};cvox.AbstractHost=function(){};cvox.AbstractHost.State={ACTIVE:0,INACTIVE:1,KILLED:2};cvox.AbstractHost.prototype.init=function(){};cvox.AbstractHost.prototype.reinit=function(){};cvox.AbstractHost.prototype.onPageLoad=function(){};cvox.AbstractHost.prototype.getApiSrc=function(){return""};cvox.AbstractHost.prototype.getFileSrc=function(){return""};cvox.AbstractHost.prototype.hasTtsCallback=function(){return!0};cvox.AbstractHost.prototype.ttsLoaded=function(){return!0}; +cvox.AbstractHost.prototype.mustRedispatchClickEvent=function(){return!1};cvox.AbstractHost.prototype.activateOrDeactivateChromeVox=function(a){this.onStateChanged_(a?cvox.AbstractHost.State.ACTIVE:cvox.AbstractHost.State.INACTIVE)};cvox.AbstractHost.prototype.killChromeVox=function(){this.onStateChanged_(cvox.AbstractHost.State.KILLED)}; +cvox.AbstractHost.prototype.onStateChanged_=function(a){var b=a==cvox.AbstractHost.State.ACTIVE;if(b!=cvox.ChromeVox.isActive)switch(cvox.ChromeVoxEventWatcher.cleanup(window),a){case cvox.AbstractHost.State.ACTIVE:cvox.ChromeVox.isActive=!0;cvox.ChromeVox.navigationManager.showOrHideIndicator(!0);cvox.ChromeVoxEventWatcher.init(window);document.activeElement?(a=document.hasFocus()&&!document.webkitHidden,cvox.ApiImplementation.syncToNode(document.activeElement,a)):cvox.ChromeVox.navigationManager.updateIndicator(); +break;case cvox.AbstractHost.State.INACTIVE:cvox.ChromeVox.isActive=!1;cvox.ChromeVox.navigationManager.showOrHideIndicator(!1);cvox.ChromeVoxEventWatcher.init(window);break;case cvox.AbstractHost.State.KILLED:cvox.ChromeVox.isActive=!1,cvox.ChromeVox.navigationManager.showOrHideIndicator(!1)}};cvox.MathJaxInterface=function(){};cvox.MathJaxInterface.prototype.isMathjaxActive=function(){};cvox.MathJaxInterface.prototype.getAllJax=function(){};cvox.MathJaxInterface.prototype.registerSignal=function(){};cvox.MathJaxInterface.prototype.injectScripts=function(){};cvox.MathJaxInterface.prototype.configMediaWiki=function(){};cvox.MathJaxInterface.prototype.getTex=function(){};cvox.MathJaxInterface.prototype.getAsciiMath=function(){};cvox.AbstractMathJax=function(){};cvox.AbstractMathJax.prototype.getAllTexs=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("tex")),c=0,d;d=b[c];c++)this.getTex(a,d)};cvox.AbstractMathJax.prototype.getAllAsciiMaths=function(a){for(var b=document.querySelectorAll(cvox.DomUtil.altMathQuerySelector("asciimath")),c=0,d;d=b[c];c++)this.getAsciiMath(a,d)}; +cvox.AbstractMathJax.prototype.convertMarkupToDom=function(a,b,c){if(b){var d=new DOMParser;b=b.replace(/>\s+</g,"><");a(d.parseFromString(b,"text/xml").firstChild,c)}};cvox.AbstractMsgs=function(){};cvox.AbstractMsgs.prototype.getMsg=function(){};cvox.AbstractMsgs.prototype.getNumber=function(){};cvox.HostFactory=function(){};cvox.HostFactory.getHost=function(){return new cvox.HostFactory.hostConstructor};cvox.HostFactory.getTts=function(){return new cvox.HostFactory.ttsConstructor};cvox.HostFactory.getBraille=function(){return new cvox.HostFactory.brailleConstructor};cvox.HostFactory.getMsgs=function(){return new cvox.HostFactory.msgsConstructor};cvox.HostFactory.getEarcons=function(){return new cvox.HostFactory.earconsConstructor};cvox.HostFactory.getMathJax=function(){return new cvox.HostFactory.mathJaxConstructor};cvox.SpokenMessage=function(){this.raw=this.id=this.count=null};cvox.SpokenMessages={};cvox.SpokenMessages.messages=[];cvox.SpokenMessages.speakFlush=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_FLUSH)};cvox.SpokenMessages.speakQueued=function(){cvox.SpokenMessages.speak(cvox.AbstractTts.QUEUE_MODE_QUEUE)}; +cvox.SpokenMessages.speak=function(a){for(var b=0;b<cvox.SpokenMessages.messages.length;++b){var c=cvox.SpokenMessages.messages[b];if(!c||!c.id&&!c.raw)throw"Invalid message received.";var d="";if(null!=c.count)if(0>=c.count)try{d+=cvox.ChromeVox.msgs.getMsg(c.id[0]+"_optional_default")}catch(e){continue}else d=1==c.count?d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_singular"):d+cvox.ChromeVox.msgs.getMsg(c.id[0]+"_plural",[c.count]);else d=c.raw?d+c.raw:d+cvox.ChromeVox.msgs.getMsg.apply(cvox.ChromeVox.msgs, +c.id);cvox.ChromeVox.tts.speak(d,a,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=cvox.AbstractTts.QUEUE_MODE_QUEUE}cvox.SpokenMessages.messages=[]};cvox.SpokenMessages.currentMessage=function(){if(0==cvox.SpokenMessages.messages.length)throw"Invalid usage of SpokenMessages; start the chain using $m()";return cvox.SpokenMessages.messages[cvox.SpokenMessages.messages.length-1]};cvox.SpokenMessages.withCount=function(a){cvox.SpokenMessages.currentMessage().count=a;return cvox.SpokenMessages}; +cvox.SpokenMessages.andIndexTotal=function(a,b){var c=new cvox.SpokenMessage;c.raw=cvox.ChromeVox.msgs.getMsg("index_total",[a,b]);cvox.SpokenMessages.messages.push(c);return cvox.SpokenMessages};cvox.SpokenMessages.andEnd=function(){return cvox.SpokenMessages.andMessage("end")};cvox.SpokenMessages.andMessage=function(a){var b=new cvox.SpokenMessage;b.id="string"==typeof a?[a]:a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages}; +cvox.SpokenMessages.andRawMessage=function(a){var b=new cvox.SpokenMessage;b.raw=a;cvox.SpokenMessages.messages.push(b);return cvox.SpokenMessages};cvox.SpokenMessages.andPause=function(){return cvox.SpokenMessages.andMessage("pause")};cvox.$m=cvox.SpokenMessages.andMessage;cvox.CompositeTts=function(){this.ttsEngines_=[]};cvox.CompositeTts.prototype.add=function(a){this.ttsEngines_.push(a);return this};cvox.CompositeTts.prototype.speak=function(a,b,c){this.ttsEngines_.forEach(function(d){d.speak(a,b,c)})};cvox.CompositeTts.prototype.isSpeaking=function(){return this.ttsEngines_.some(function(a){return a.isSpeaking()})};cvox.CompositeTts.prototype.stop=function(){this.ttsEngines_.forEach(function(a){a.stop()})}; +cvox.CompositeTts.prototype.increaseOrDecreaseProperty=function(a,b){this.ttsEngines_.forEach(function(c){c.increaseOrDecreaseProperty(a,b)})};cvox.CompositeTts.prototype.getDefaultProperty=function(a){for(var b=0,c;c=this.ttsEngines_[b];b++)if(c=c.getDefaultProperty(a))return c};cvox.BuildInfo={};cvox.BuildInfo.build="1384906195.369502";cvox.ChromeVoxJSON||(cvox.ChromeVoxJSON={}); +window.JSON&&"[object JSON]"==window.JSON.toString()?cvox.ChromeVoxJSON=window.JSON:function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,n,s,u=f,t,r=d[a];r&&"object"===typeof r&&"function"===typeof r.toJSON&&(r=r.toJSON(a));"function"===typeof k&&(r=k.call(d,a,r));switch(typeof r){case "string":return b(r); +case "number":return isFinite(r)?String(r):"null";case "boolean":case "null":return String(r);case "object":if(!r)return"null";f+=g;t=[];if("[object Array]"===Object.prototype.toString.apply(r)){s=r.length;for(e=0;e<s;e+=1)t[e]=c(e,r)||"null";n=0===t.length?"[]":f?"[\n"+f+t.join(",\n"+f)+"\n"+u+"]":"["+t.join(",")+"]";f=u;return n}if(k&&"object"===typeof k)for(s=k.length,e=0;e<s;e+=1)h=k[e],"string"===typeof h&&(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);else for(h in r)Object.hasOwnProperty.call(r,h)&& +(n=c(h,r))&&t.push(b(h)+(f?": ":":")+n);n=0===t.length?"{}":f?"{\n"+f+t.join(",\n"+f)+"\n"+u+"}":"{"+t.join(",")+"}";f=u;return n}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":"null"},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()}); +var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof cvox.ChromeVoxJSON.stringify&&(cvox.ChromeVoxJSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&& +(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});"function"!==typeof cvox.ChromeVoxJSON.parse&&(cvox.ChromeVoxJSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=String(a);d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})); +if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})}();"undefined"!=typeof goog&&goog.provide&&(cvox.ApiUtil={});window.cvox||(window.cvox={});cvox.ApiUtils=function(){};cvox.ApiUtils.nextCvoxId_=1; +cvox.ApiUtils.makeNodeReference=function(a){if(a.id&&document.getElementById(a.id)==a)return{id:a.id};if(a instanceof HTMLElement){var b=cvox.ApiUtils.nextCvoxId_;a.setAttribute("cvoxid",b);cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+1)%100;return{cvoxid:b}}if(a.parentElement){for(var c=a.parentElement,d=-1,b=0;b<c.childNodes.length;b++)if(c.childNodes[b]==a){d=b;break}if(0<=d)return b=cvox.ApiUtils.nextCvoxId_,c.setAttribute("cvoxid",b),cvox.ApiUtils.nextCvoxId_=(cvox.ApiUtils.nextCvoxId_+ +1)%100,{cvoxid:b,childIndex:d}}throw"Cannot reference node: "+a;};cvox.ApiUtils.getNodeFromRef=function(a){if(a.id)return document.getElementById(a.id);if(a.cvoxid){var b='*[cvoxid="'+a.cvoxid+'"]';(b=document.querySelector(b))&&b.removeAttribute&&b.removeAttribute("cvoxid");return null!=a.childIndex?b.childNodes[a.childIndex]:b}throw"Bad node reference: "+cvox.ChromeVoxJSON.stringify(a);};cvox.ScriptInstaller={}; +cvox.ScriptInstaller.installScript=function(a,b,c,d){if(document.querySelector("script["+b+"]")||!a)return!1;for(var e=0,f;f=a[e];e++){var g=new XMLHttpRequest,h=f+"?"+(new Date).getTime();g.onreadystatechange=function(){if(4==g.readyState){var a=g.responseText,a=a+("\n//# sourceURL="+f+"\n"),c=document.createElement("script");c.type="text/javascript";c.setAttribute(b,"1");c.textContent=a;d&&c.setAttribute("chromevoxScriptBase",d);cvox.DomUtil.addNodeToHead(c)}};try{g.open("GET",h,!1),g.send(null)}catch(k){return window.console.log("Warning: ChromeVox external script loading for "+ +document.location+" stopped after failing to install "+f),!1}}c&&c();return!0};cvox.ApiImplementation=function(){};cvox.ApiImplementation.init=function(a){window.addEventListener("message",cvox.ApiImplementation.portSetup,!0);var b=[];b.push(cvox.ChromeVox.host.getFileSrc("chromevox/injected/api_util.js"));b.push(cvox.ChromeVox.host.getApiSrc());b.push(cvox.ApiImplementation.siteSpecificScriptLoader);a=cvox.ScriptInstaller.installScript(b,"cvoxapi",a,cvox.ApiImplementation.siteSpecificScriptBase);a||(window.location.href="javascript:cvox.Api.internalEnable();")}; +cvox.ApiImplementation.portSetup=function(a){return"cvox.PortSetup"==a.data?(cvox.ApiImplementation.port=a.ports[0],cvox.ApiImplementation.port.onmessage=function(a){cvox.ApiImplementation.dispatchApiMessage(cvox.ChromeVoxJSON.parse(a.data))},a.stopPropagation(),!1):!0}; +cvox.ApiImplementation.dispatchApiMessage=function(a){var b;switch(a.cmd){case "speak":b=cvox.ApiImplementation.speak;break;case "speakNodeRef":b=cvox.ApiImplementation.speakNodeRef;break;case "stop":b=cvox.ApiImplementation.stop;break;case "playEarcon":b=cvox.ApiImplementation.playEarcon;break;case "syncToNodeRef":b=cvox.ApiImplementation.syncToNodeRef;break;case "clickNodeRef":b=cvox.ApiImplementation.clickNodeRef;break;case "getBuild":b=cvox.ApiImplementation.getBuild;break;case "getVersion":b= +cvox.ApiImplementation.getVersion;break;case "getCurrentNode":b=cvox.ApiImplementation.getCurrentNode;break;case "getCvoxModKeys":b=cvox.ApiImplementation.getCvoxModKeys;break;case "isKeyShortcut":b=cvox.ApiImplementation.isKeyShortcut;break;case "setKeyEcho":b=cvox.ApiImplementation.setKeyEcho;break;case "Math.defineRule":b=cvox.ApiImplementation.Math.defineRule}if(!b)throw"Unknown API call: "+a.cmd;b.apply(cvox.ApiImplementation,a.args)}; +function setupEndCallback_(a,b){var c=function(){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:b}))};a&&(a.endCallback=c)}cvox.ApiImplementation.speak=function(a,b,c,d){cvox.ChromeVox.isActive&&(d||(d={}),setupEndCallback_(d,a),cvox.ChromeVox.tts.speak(b,c,d))};cvox.ApiImplementation.speakNode=function(a,b,c){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.speak(cvox.DomUtil.getName(a),b,c)}; +cvox.ApiImplementation.speakNodeRef=function(a,b,c,d){b=cvox.ApiUtils.getNodeFromRef(b);d||(d={});setupEndCallback_(d,a);cvox.ApiImplementation.speakNode(b,c,d)};cvox.ApiImplementation.stop=function(){cvox.ChromeVox.isActive&&cvox.ChromeVox.tts.stop()};cvox.ApiImplementation.playEarcon=function(a){cvox.ChromeVox.isActive&&cvox.ChromeVox.earcons.playEarconByName(a)};cvox.ApiImplementation.syncToNodeRef=function(a,b){var c=cvox.ApiUtils.getNodeFromRef(a);cvox.ApiImplementation.syncToNode(c,b)}; +cvox.ApiImplementation.syncToNode=function(a,b,c){cvox.ChromeVox.isActive&&(void 0==c&&(c=cvox.AbstractTts.QUEUE_MODE_FLUSH),cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a,!0),cvox.ChromeVox.navigationManager.updateIndicator(),void 0==b&&(b=!1),cvox.AriaUtil.isHiddenRecursive(a)&&(b=!1),b&&cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ApiImplementation.getDesc_(a),c,null),cvox.ChromeVox.navigationManager.getBraille().write(),cvox.ChromeVox.navigationManager.updatePosition(a))}; +cvox.ApiImplementation.getCurrentNode=function(a){var b=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,currentNode:cvox.ApiUtils.makeNodeReference(b)}))}; +cvox.ApiImplementation.getDesc_=function(a){if(!a.hasAttribute("cvoxnodedesc"))return cvox.ChromeVox.navigationManager.getDescription();a=cvox.ChromeVoxJSON.parse(a.getAttribute("cvoxnodedesc"));for(var b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b};cvox.ApiImplementation.clickNodeRef=function(a,b){cvox.DomUtil.clickElem(cvox.ApiUtils.getNodeFromRef(a),b,!1)}; +cvox.ApiImplementation.getBuild=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,build:cvox.BuildInfo.build}))};cvox.ApiImplementation.getVersion=function(a){var b=cvox.ChromeVox.version;null==b?window.setTimeout(function(){cvox.ApiImplementation.getVersion(a)},1E3):cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,version:b}))}; +cvox.ApiImplementation.getCvoxModKeys=function(a){cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,keyCodes:cvox.KeyUtil.cvoxModKeyCodes()}))};cvox.ApiImplementation.isKeyShortcut=function(a,b){var c=cvox.KeyUtil.keyEventToKeySequence(b);cvox.ApiImplementation.port.postMessage(cvox.ChromeVoxJSON.stringify({id:a,isHandled:cvox.ChromeVoxKbHandler.handlerKeyMap.hasKey(c)}))}; +cvox.ApiImplementation.setKeyEcho=function(a){var b=cvox.ChromeVox.keyEcho;b[document.location.href]=a;JSON.stringify(b)};cvox.ApiImplementation.Math=function(){};cvox.ApiImplementation.Math.defineRule=function(a,b,c,d,e){var f=cvox.MathmlStore.getInstance(),g=Array.prototype.slice.call(arguments,4),g=[a,b,c,d].concat(g);f.defineRule.apply(f,g)};cvox.ConsoleTts=function(){this.enabled_=!1};goog.addSingletonGetter(cvox.ConsoleTts);cvox.ConsoleTts.prototype.speak=function(a,b,c){if(this.enabled_&&window.console){var d="Speak",d=b==cvox.AbstractTts.QUEUE_MODE_FLUSH?d+" (I)":d+" (Q)",d=d+(' "'+a+'"');window.console.log(d);c&&void 0!=c.startCallback&&window.console.log(" using startCallback");c&&void 0!=c.endCallback&&window.console.log(" using endCallback")}return this};cvox.ConsoleTts.prototype.isSpeaking=function(){return!1}; +cvox.ConsoleTts.prototype.stop=function(){this.enabled_&&window.console.log("Stop")};cvox.ConsoleTts.prototype.increaseOrDecreaseProperty=function(){};cvox.ConsoleTts.prototype.setEnabled=function(a){this.enabled_=a};cvox.ConsoleTts.prototype.getDefaultProperty=function(){};cvox.ChromeVoxHTMLDateWidget=function(a,b){var c=this;this.pos_=0;var d=2;if("month"==a.type||"week"==a.type)d=1;this.maxPos_=d;this.dateElem_=a;this.dateTts_=b;this.pDay_=this.pWeek_=this.pMonth_=this.pYear_=-1;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};0==this.dateElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e); +e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.dateElem_.dispatchEvent(e)}this.dateElem_.addEventListener("keydown",this.keyListener_,!1);this.dateElem_.addEventListener("keyup",this.keyListener_,!1);this.dateElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)}; +cvox.ChromeVoxHTMLDateWidget.prototype.shutdown=function(){this.dateElem_.removeEventListener("blur",this.blurListener_,!1);this.dateElem_.removeEventListener("keydown",this.keyListener_,!1);this.dateElem_.removeEventListener("keyup",this.keyListener_,!1)}; +cvox.ChromeVoxHTMLDateWidget.prototype.forceInitTime_=function(){var a=new Date,b="",b=a.getFullYear()+"",c=a.getMonth()+1+"";2>c.length&&(c="0"+c);var d=a.getDate()+"";switch(this.dateElem_.type){case "month":b=b+"-"+c;break;case "week":a.setHours(0,0,0);a.setDate(a.getDate()+4-(a.getDay()||7));c=new Date(a.getFullYear(),0,1);a=Math.ceil(((a-c)/864E5+1)/7)+"";2>a.length&&(a="0"+a);a="W"+a;b=b+"-"+a;break;default:b=b+"-"+c+"-"+d}this.dateElem_.setAttribute("value",b)}; +cvox.ChromeVoxHTMLDateWidget.prototype.handlePosChange_=function(){this.pos_=Math.max(this.pos_,0);this.pos_=Math.min(this.pos_,this.maxPos_);switch(this.pos_){case 0:"week"==this.dateElem_.type?this.pWeek_=-1:this.pMonth_=-1;break;case 1:"date"==this.dateElem_.type?this.pDay_=-1:this.pYear_=-1;break;case 2:this.pYear_=-1}}; +cvox.ChromeVoxHTMLDateWidget.prototype.update_=function(a){var b=this.dateElem_.value.split("-");if(1>b.length)this.forceInitTime_();else{var c=-1,d=-1,e=-1,f=-1,c=parseInt(b[0],10);"week"==this.dateElem_.type?e=parseInt(b[1].replace("W",""),10):"date"==this.dateElem_.type?(d=parseInt(b[1],10),f=parseInt(b[2],10)):d=parseInt(b[1],10);b="";a&&(b=cvox.DomUtil.getName(this.dateElem_,!0,!0)+"\n");e!=this.pWeek_&&(b=b+cvox.ChromeVox.msgs.getMsg("datewidget_week")+e+"\n",this.pWeek_=e);if(d!=this.pMonth_){a= +"";switch(d){case 1:a=cvox.ChromeVox.msgs.getMsg("datewidget_january");break;case 2:a=cvox.ChromeVox.msgs.getMsg("datewidget_february");break;case 3:a=cvox.ChromeVox.msgs.getMsg("datewidget_march");break;case 4:a=cvox.ChromeVox.msgs.getMsg("datewidget_april");break;case 5:a=cvox.ChromeVox.msgs.getMsg("datewidget_may");break;case 6:a=cvox.ChromeVox.msgs.getMsg("datewidget_june");break;case 7:a=cvox.ChromeVox.msgs.getMsg("datewidget_july");break;case 8:a=cvox.ChromeVox.msgs.getMsg("datewidget_august"); +break;case 9:a=cvox.ChromeVox.msgs.getMsg("datewidget_september");break;case 10:a=cvox.ChromeVox.msgs.getMsg("datewidget_october");break;case 11:a=cvox.ChromeVox.msgs.getMsg("datewidget_november");break;case 12:a=cvox.ChromeVox.msgs.getMsg("datewidget_december")}b=b+a+"\n";this.pMonth_=d}f!=this.pDay_&&(b=b+f+"\n",this.pDay_=f);c!=this.pYear_&&(b=b+c+"\n",this.pYear_=c);0<b.length&&this.dateTts_.speak(b,0,null)}}; +cvox.ChromeVoxHTMLDateWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.BrailleTextHandler=function(a){this.braille_=a};cvox.BrailleTextHandler.prototype.changed=function(a,b,c,d){var e;d?(e=cvox.NavBraille.fromText(a),e.startIndex=b,e.endIndex=c):cvox.ChromeVox.navigationManager&&(e=cvox.ChromeVox.navigationManager.getBraille());e&&this.braille_.write(e)};cvox.ContentEditableExtractor=function(){this.text_="";this.end_=this.start_=0;this.lines_={};this.characterToLineMap_=[]}; +cvox.ContentEditableExtractor.prototype.update=function(a){for(var b={0:{startIndex:0,endIndex:0}},c=new cvox.Cursor(a,0,""),d=c.clone(),e=document.createRange(),f,g=0,h=null,k="",l=0,m=-1,p=-1,q=window.getSelection(),n=new cvox.Cursor(q.baseNode,q.baseOffset,""),q=new cvox.Cursor(q.extentNode,q.extentOffset,""),s=!1,u=!1;;){f=[];var t=[],r=cvox.TraverseUtil.forwardsChar(d,f,t),v=!1;r||(v=!0);for(f=0;f<t.length&&!v;f++)t[f]==a&&(v=!0);if(v)break;e.setStart(c.node,c.index);e.setEnd(d.node,d.index); +if((f=e.getBoundingClientRect())&&0!=f.width&&0!=f.height){null!==h&&f.bottom!=h&&0<l&&k.substr(-1).match(/\S/)&&r.match(/\S/)&&(k+="\n",l++);if(c.node!=d.node&&0<d.index&&(e.setStart(d.node,d.index-1),f=e.getBoundingClientRect(),!f||0==f.width||0==f.height))continue;!s&&-1==m&&d.node==n.node&&d.index>=n.index&&(d.index>n.index?m=l:s=!0);!u&&-1==p&&d.node==q.node&&d.index>=q.index&&(d.index>q.index?p=l:u=!0);null===h?h=f.bottom:f.bottom!=h&&(b[g].endIndex=l,g++,b[g]={startIndex:l,endIndex:l},h=f.bottom); +k+=r;l++;c=d.clone();s&&(m=l,s=!1);u&&(p=l,u=!1)}}b[g].endIndex=l;a=[];for(f=0;f<=g;f++)for(c=b[f].startIndex;c<=b[f].endIndex;c++)a[c]=f;this.text_=k;this.characterToLineMap_=a;this.lines_=b;this.start_=0<=m?m:k.length;this.end_=0<=p?p:k.length};cvox.ContentEditableExtractor.prototype.getText=function(){return this.text_};cvox.ContentEditableExtractor.prototype.getStartIndex=function(){return this.start_};cvox.ContentEditableExtractor.prototype.getEndIndex=function(){return this.end_}; +cvox.ContentEditableExtractor.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.ContentEditableExtractor.prototype.getLineStart=function(a){return this.lines_[a].startIndex};cvox.ContentEditableExtractor.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.EditableTextAreaShadow=function(){this.shadowElement_=document.createElement("div");this.lines_={};this.characterToLineMap_=[]}; +cvox.EditableTextAreaShadow.prototype.update=function(a){for(document.body.appendChild(this.shadowElement_);this.shadowElement_.childNodes.length;)this.shadowElement_.removeChild(this.shadowElement_.childNodes[0]);this.shadowElement_.style.cssText=window.getComputedStyle(a,null).cssText;this.shadowElement_.style.position="absolute";this.shadowElement_.style.top=-9999;this.shadowElement_.style.left=-9999;this.shadowElement_.setAttribute("aria-hidden","true");var b=a.value,c=document.createTextNode(b+ +".");this.shadowElement_.appendChild(c);a={0:{startIndex:0,endIndex:0}};for(var d=document.createRange(),e=0,f=0,g=0,h=null,k=!1,l;e<=b.length;){d.setStart(c,e);if(e+8>b.length||0<=b.substr(e,8).indexOf("\n"))k=!0;k?(e++,d.setEnd(c,e),l=d.getBoundingClientRect()):(d.setEnd(c,e+8),l=d.getBoundingClientRect(),l.bottom==h?e+=8:(l&&null!==h&&(k=!0),e++,d.setEnd(c,e),l=d.getBoundingClientRect()));0<e&&"\n"==b[e-1]?(a[g].endIndex=e-1,g++,a[g]={startIndex:e,endIndex:e},h=null,k=!1,f=e):l&&null===h?h=l.bottom: +l&&l.bottom!=h&&(a[g].endIndex=f,g++,a[g]={startIndex:f,endIndex:f},h=l?l.bottom:null,k=!1);l&&(f=e)}a[g].endIndex=b.length;b=[];for(c=0;c<=g;c++)for(d=a[c].startIndex;d<=a[c].endIndex;d++)b[d]=c;this.characterToLineMap_=b;this.lines_=a;document.body.removeChild(this.shadowElement_)};cvox.EditableTextAreaShadow.prototype.getLineIndex=function(a){return this.characterToLineMap_[a]};cvox.EditableTextAreaShadow.prototype.getLineStart=function(a){return this.lines_[a].startIndex}; +cvox.EditableTextAreaShadow.prototype.getLineEnd=function(a){return this.lines_[a].endIndex};cvox.TextChangeEvent=function(a,b,c,d){this.value=a;this.start=b;this.end=c;this.triggeredByUser=d;this.start>this.end&&(a=this.end,this.end=this.start,this.start=a)};cvox.TypingEcho={CHARACTER:0,WORD:1,CHARACTER_AND_WORD:2,NONE:3,COUNT:4};cvox.TypingEcho.cycle=function(a){return(a+1)%cvox.TypingEcho.COUNT};cvox.TypingEcho.shouldSpeakChar=function(a){return a==cvox.TypingEcho.CHARACTER_AND_WORD||a==cvox.TypingEcho.CHARACTER};cvox.TextHandlerInterface=function(){}; +cvox.TextHandlerInterface.prototype.changed=function(){};cvox.ChromeVoxEditableTextBase=function(a,b,c,d,e){this.value=a;this.start=b;this.end=c;this.isPassword=d;this.tts=e;this.multiline=!1;this.brailleHandler_=cvox.ChromeVox.braille?new cvox.BrailleTextHandler(cvox.ChromeVox.braille):void 0};cvox.ChromeVoxEditableTextBase.useIBeamCursor=cvox.ChromeVox.isMac;cvox.ChromeVoxEditableTextBase.eventTypingEcho=!1;cvox.ChromeVoxEditableTextBase.prototype.maxShortPhraseLen=60; +cvox.ChromeVoxEditableTextBase.prototype.isPassword=!1;cvox.ChromeVoxEditableTextBase.prototype.lastChangeDescribed=!1;cvox.ChromeVoxEditableTextBase.prototype.getValue=function(){var a="";if(this.multiline){if(a+="multiline editable text. ",this.start==this.end)var b=this.getLine(this.getLineIndex(this.start)),a=b?a+b:a+"blank"}else a=this.node?a+cvox.DomUtil.getValue(this.node):a+this.value,a=a<=this.maxShortPhraseLen?a+", editable text":a.substring(0,this.maxShortPhraseLen)+", editable text";return a}; +cvox.ChromeVoxEditableTextBase.prototype.getLineIndex=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineStart=function(){return 0};cvox.ChromeVoxEditableTextBase.prototype.getLineEnd=function(){return this.value.length};cvox.ChromeVoxEditableTextBase.prototype.getLine=function(a){var b=this.getLineStart(a);a=this.getLineEnd(a);b=this.value.substr(b,a-b);return b.replace(/^\s+|\s+$/g,"")};cvox.ChromeVoxEditableTextBase.prototype.isWordBreakChar=function(a){return!!a.match(/^\W$/)}; +cvox.ChromeVoxEditableTextBase.prototype.isLastChar=function(a){return void 0==this.getLineIndex(a.start+1)};cvox.ChromeVoxEditableTextBase.prototype.speak=function(a,b,c){if(!this.node||document.activeElement==this.node){var d=cvox.AbstractTts.QUEUE_MODE_QUEUE;!0===b&&(d=cvox.AbstractTts.QUEUE_MODE_FLUSH);this.tts.speak(a,d,c||{})}}; +cvox.ChromeVoxEditableTextBase.prototype.changed=function(a){if(a.value!=this.value||a.start!=this.start||a.end!=this.end||this.isLastChar(a)){if(a.value==this.value?this.describeSelectionChanged(a):this.describeTextChanged(a),this.lastChangeDescribed=!0,this.value=a.value,this.start=a.start,this.end=a.end,this.brailleHandler_){var b=this.getLine(this.getLineIndex(a.start)),c=this.getLineStart(this.getLineIndex(a.start)),d=a.start-c;a=a.end-c;this.brailleHandler_.changed(b,d,a,this.multiline)}}else this.lastChangeDescribed= +!1}; +cvox.ChromeVoxEditableTextBase.prototype.describeSelectionChanged=function(a){if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser);else if(a.start==a.end)if(this.start!=this.end)this.speak(cvox.ChromeVox.msgs.getMsg("Unselected"),a.triggeredByUser);else if(this.getLineIndex(this.start)!=this.getLineIndex(a.start)){var b=this.getLine(this.getLineIndex(a.start));""==b&&(b=cvox.ChromeVox.msgs.getMsg("text_box_blank"));this.speak(b, +a.triggeredByUser)}else this.start==a.start+1||this.start==a.start-1?cvox.ChromeVoxEditableTextBase.useIBeamCursor?this.speak(this.value.substr(Math.min(this.start,a.start),1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):a.start==this.value.length?this.speak(cvox.ChromeVox.msgs.getMsg("end"),a.triggeredByUser):this.speak(this.value.substr(a.start,1),a.triggeredByUser,{phoneticCharacters:a.triggeredByUser}):this.speak(this.value.substr(Math.min(this.start,a.start),Math.abs(this.start- +a.start)),a.triggeredByUser);else this.start+1==a.start&&this.end==this.value.length&&a.end==this.value.length?(this.speak(this.value.substr(this.start,1),a.triggeredByUser),this.speak(this.value.substr(a.start))):this.start==this.end?(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected"))):this.start==a.start&&this.end<a.end?(this.speak(this.value.substr(this.end,a.end-this.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))): +this.start==a.start&&this.end>a.end?(this.speak(this.value.substr(a.end,this.end-a.end),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))):this.end==a.end&&this.start>a.start?(this.speak(this.value.substr(a.start,this.start-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("added_to_selection"))):this.end==a.end&&this.start<a.start?(this.speak(this.value.substr(this.start,a.start-this.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("removed_from_selection"))): +(this.speak(this.value.substr(a.start,a.end-a.start),a.triggeredByUser),this.speak(cvox.ChromeVox.msgs.getMsg("selected")))}; +cvox.ChromeVoxEditableTextBase.prototype.describeTextChanged=function(a){var b={};a.value.length<this.value.length&&(b=cvox.AbstractTts.PERSONALITY_DELETED);if(this.isPassword)this.speak((new goog.i18n.MessageFormat(cvox.ChromeVox.msgs.getMsg("dot"))).format({COUNT:1}),a.triggeredByUser,b);else{var c=this.value,d=c.length,e=a.value.length,f="",g=a.value,h=a.end;a.start<h&&h==e&&(f=g.substr(a.start),g=g.substr(0,a.start),h=a.start);var k=this.start,l=d-this.end;if(e>=k+l+(h-a.start)&&g.substr(0,k)== +c.substr(0,k)&&g.substr(e-l)==c.substr(this.end))this instanceof cvox.ChromeVoxEditableContentEditable&&!(e<d||this.isWordBreakChar(a.value[e-1]||""))||this.describeTextChangedHelper(a,k,l,f,b);else if(k=a.start,l=e-h,this.start==this.end&&a.start==h&&g.substr(0,k)==c.substr(0,k)&&g.substr(e-l)==c.substr(d-l))this.describeTextChangedHelper(a,k,l,f,b);else{g+=f;if(g.length==c.length+1||g.length+1==c.length){if(g.length>c.length){if(0==g.indexOf(c)){this.speak(g[g.length-1],a.triggeredByUser,b);return}if(1== +g.indexOf(c)){this.speak(g[0],a.triggeredByUser,b);return}}if(g.length<c.length){if(0==c.indexOf(g)){this.speak(c[c.length-1],a.triggeredByUser,b);return}if(1==c.indexOf(g)){this.speak(c[0],a.triggeredByUser,b);return}}}if(this.multiline)a.value.length<this.value.length&&this.speak(cvox.ChromeVox.msgs.getMsg("text_deleted"),a.triggeredByUser,b);else if(e<=this.maxShortPhraseLen)this.describeTextChangedHelper(a,0,0,"",b);else{for(k=0;k<d&&k<e&&c[k]==g[k];)k++;for(;0<k&&!this.isWordBreakChar(c[k-1]);)k--; +for(l=0;l<d-k&&l<e-k&&c[d-l-1]==g[e-l-1];)l++;for(;0<l&&!this.isWordBreakChar(c[d-l]);)l--;this.describeTextChangedHelper(a,k,l,"",b)}}}}; +cvox.ChromeVoxEditableTextBase.prototype.describeTextChangedHelper=function(a,b,c,d,e){var f=this.value.length,g=a.value.length,f=f-b-c,h=this.value.substr(b,f),k=g-b-c;c=a.value.substr(b,k);var l="",g=a.triggeredByUser;if(1<k)l=c;else if(1==k)if((cvox.ChromeVox.typingEcho==cvox.TypingEcho.WORD||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)&&this.isWordBreakChar(c)&&0<b&&!this.isWordBreakChar(a.value.substr(b-1,1))){for(f=b;0<f&&!this.isWordBreakChar(a.value[f-1]);)f--;f<b?l=a.value.substr(f, +b+1-f):(l=c,g=!1)}else{if(cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER||cvox.ChromeVox.typingEcho==cvox.TypingEcho.CHARACTER_AND_WORD)l=cvox.ChromeVoxEditableTextBase.eventTypingEcho?"":c}else 1<f&&!d?l=h+", deleted":1==f&&(l=h);d&&l?l+=", "+d:d&&(l=d);l&&this.speak(l,g,e)};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextCharacter=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousCharacter=function(){return!1}; +cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousWord=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousLine=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToNextParagraph=function(){return!1};cvox.ChromeVoxEditableTextBase.prototype.moveCursorToPreviousParagraph=function(){return!1}; +cvox.ChromeVoxEditableElement=function(a,b,c,d,e,f){cvox.ChromeVoxEditableTextBase.call(this,b,c,d,e,f);this.node=a;this.justSpokeDescription_=!1};goog.inherits(cvox.ChromeVoxEditableElement,cvox.ChromeVoxEditableTextBase);cvox.ChromeVoxEditableElement.prototype.changed=function(a){this.justSpokeDescription_&&this.value==a.value&&(this.value=a.value,this.start=a.start,this.end=a.end,this.justSpokeDescription_=!1);cvox.ChromeVoxEditableElement.superClass_.changed.call(this,a)}; +cvox.ChromeVoxEditableElement.prototype.getValue=function(){this.justSpokeDescription_=!0;return cvox.ChromeVoxEditableElement.superClass_.getValue.call(this)};cvox.ChromeVoxEditableElement.prototype.moveCursorToNextCharacter=function(){var a=this.node;a.selectionEnd++;a.selectionStart=a.selectionEnd;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousCharacter=function(){var a=this.node;a.selectionStart--;a.selectionEnd=a.selectionStart;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToNextWord=function(){var a=this.node,b=a.value.length,c=/\W+/gm,d=a.value.substring(a.selectionEnd),e=c.exec(d);null!==e&&0==e.index&&(e=c.exec(d));b=null===e?b:e.index+a.selectionEnd;a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousWord=function(){for(var a=this.node,b=/\W+/gm,c=a.value.substring(0,a.selectionStart),d=0;null!==b.exec(c);)b.lastIndex<a.selectionStart&&(d=b.lastIndex);a.selectionStart=a.selectionEnd=d;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToNextParagraph=function(){var a=this.node,b=a.value.length,c=a.selectionEnd>=b?b:a.value.indexOf("\n",a.selectionEnd);0>c&&(c=b);a.selectionStart=a.selectionEnd=c+1;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableElement.prototype.moveCursorToPreviousParagraph=function(){var a=this.node,b=0>=a.selectionStart?0:a.value.lastIndexOf("\n",a.selectionStart-2)+1;0>b&&(b=0);a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableHTMLInput=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,"password"===a.type,b)};goog.inherits(cvox.ChromeVoxEditableHTMLInput,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableHTMLInput.prototype.update=function(a){var b=this.node.value;a=new cvox.TextChangeEvent(b,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,a.value,a.selectionStart,a.selectionEnd,!1,b);this.multiline=!0;this.shadowIsCurrent_=!1};goog.inherits(cvox.ChromeVoxEditableTextArea,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableTextArea.prototype.update=function(a){this.node.value!=this.value&&(this.shadowIsCurrent_=!1);a=new cvox.TextChangeEvent(this.node.value,this.node.selectionStart,this.node.selectionEnd,a);this.changed(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineIndex=function(a){return this.getShadow().getLineIndex(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineStart=function(a){return this.getShadow().getLineStart(a)};cvox.ChromeVoxEditableTextArea.prototype.getLineEnd=function(a){return this.getShadow().getLineEnd(a)}; +cvox.ChromeVoxEditableTextArea.prototype.getShadow=function(){var a=cvox.ChromeVoxEditableTextArea.shadow_;a||(a=cvox.ChromeVoxEditableTextArea.shadow_=new cvox.EditableTextAreaShadow);this.shadowIsCurrent_||(a.update(this.node),this.shadowIsCurrent_=!0);return a}; +cvox.ChromeVoxEditableTextArea.prototype.moveCursorToNextLine=function(){var a=this.node,b=a.value.length;if(a.selectionEnd>=b)return!1;var c=this.getShadow(),d=c.getLineIndex(a.selectionEnd),e=c.getLineStart(d),e=a.selectionEnd-e,f=0==b?0:c.getLineIndex(b-1),b=d>=f?b:Math.min(c.getLineStart(d+1)+e,c.getLineEnd(d+1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableTextArea.prototype.moveCursorToPreviousLine=function(){var a=this.node;if(0>=a.selectionStart)return!1;var b=this.getShadow(),c=b.getLineIndex(a.selectionStart),d=b.getLineStart(c),d=a.selectionStart-d,b=0>=c?0:Math.min(b.getLineStart(c-1)+d,b.getLineEnd(c-1));a.selectionStart=a.selectionEnd=b;cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableContentEditable=function(a,b){cvox.ChromeVoxEditableElement.call(this,a,"",0,0,!1,b);this.extractorIsCurrent_=!1;var c=this.getExtractor();this.value=c.getText();this.start=c.getStartIndex();this.end=c.getEndIndex();this.multiline=!0};goog.inherits(cvox.ChromeVoxEditableContentEditable,cvox.ChromeVoxEditableElement); +cvox.ChromeVoxEditableContentEditable.prototype.update=function(a){this.extractorIsCurrent_=!1;a=new cvox.TextChangeEvent(this.getExtractor().getText(),this.getExtractor().getStartIndex(),this.getExtractor().getEndIndex(),a);this.changed(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineIndex=function(a){return this.getExtractor().getLineIndex(a)};cvox.ChromeVoxEditableContentEditable.prototype.getLineStart=function(a){return this.getExtractor().getLineStart(a)}; +cvox.ChromeVoxEditableContentEditable.prototype.getLineEnd=function(a){return this.getExtractor().getLineEnd(a)};cvox.ChromeVoxEditableContentEditable.prototype.getExtractor=function(){var a=cvox.ChromeVoxEditableContentEditable.extractor_;a||(a=cvox.ChromeVoxEditableContentEditable.extractor_=new cvox.ContentEditableExtractor);this.extractorIsCurrent_||(a.update(this.node),this.extractorIsCurrent_=!0);return a}; +cvox.ChromeVoxEditableContentEditable.prototype.describeSelectionChanged=function(a){a.triggeredByUser&&(this.start==this.end&&a.start==a.end&&1!=Math.abs(this.start-a.start)&&this.isLastChar(a)?this.speak(cvox.ChromeVox.msgs.getMsg("text_box_blank"),!0):cvox.ChromeVoxEditableContentEditable.superClass_.describeSelectionChanged.call(this,a))}; +cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextCharacter=function(){window.getSelection().modify("move","forward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousCharacter=function(){window.getSelection().modify("move","backward","character");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0}; +cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToNextParagraph=function(){window.getSelection().modify("move","forward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEditableContentEditable.prototype.moveCursorToPreviousParagraph=function(){window.getSelection().modify("move","backward","paragraph");cvox.ChromeVoxEventWatcher.handleTextChanged(!0);return!0};cvox.ChromeVoxEventSuspender=function(){};cvox.ChromeVoxEventSuspender.suspendLevel_=0;cvox.ChromeVoxEventSuspender.enterSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_+=1};cvox.ChromeVoxEventSuspender.exitSuspendEvents=function(){cvox.ChromeVoxEventSuspender.suspendLevel_-=1};cvox.ChromeVoxEventSuspender.areEventsSuspended=function(){return 0<cvox.ChromeVoxEventSuspender.suspendLevel_}; +cvox.ChromeVoxEventSuspender.withSuspendedEvents=function(a){return function(){cvox.ChromeVoxEventSuspender.enterSuspendEvents();var b=a.apply(this,arguments);cvox.ChromeVoxEventSuspender.exitSuspendEvents();return b}};cvox.ChromeVoxEventSuspender.makeSuspendableHandler=function(a,b){return function(){return cvox.ChromeVoxEventSuspender.areEventsSuspended()?b:a()}};cvox.Focuser={}; +cvox.Focuser.setFocus=function(a,b){var c=window.getSelection(),d;0<c.rangeCount&&(d=c.getRangeAt(0));document.activeElement&&!cvox.DomUtil.isDescendantOfNode(a,document.activeElement)&&document.activeElement.blur();a&&a.constructor==HTMLVideoElement&&(cvox.DomUtil.isFocusable(a)||a.setAttribute("tabIndex",0));if(b&&!cvox.DomUtil.isFocusable(a)){var e=cvox.DomUtil.findFocusableDescendant(a);e&&(a=e)}else for(;a&&!cvox.DomUtil.isFocusable(a);)a=a.parentNode;cvox.DomUtil.isFocusable(a)?"IFRAME"!=a.tagName&& +(cvox.ChromeVoxEventSuspender.areEventsSuspended()?(cvox.Focuser.shouldEnterSuspendEvents_(a)&&cvox.ChromeVoxEventSuspender.enterSuspendEvents(),window.setTimeout(function(){a.focus();cvox.ChromeVoxEventSuspender.exitSuspendEvents()},0)):window.setTimeout(function(){a.focus()},0)):document.activeElement&&"BODY"!=document.activeElement.tagName&&document.activeElement.blur();cvox.DomUtil.isInputTypeText(a)?a.select():d&&(c.removeAllRanges(),c.addRange(d))}; +cvox.Focuser.shouldEnterSuspendEvents_=function(a){if(a.constructor&&a.constructor==HTMLVideoElement)return!1;if(a.hasAttribute)switch(a.getAttribute("type")){case "time":case "date":case "week":case "month":return!1}return!0};cvox.ChromeVoxHTMLMediaWidget=function(a){var b=this;this.mediaElem_=a;this.keyListener_=function(a){b.eventHandler_(a)};this.blurListener_=function(){b.shutdown()};this.mediaElem_.addEventListener("keydown",this.keyListener_,!1);this.mediaElem_.addEventListener("keyup",this.keyListener_,!1);this.mediaElem_.addEventListener("blur",this.blurListener_,!1)}; +cvox.ChromeVoxHTMLMediaWidget.prototype.shutdown=function(){this.mediaElem_.removeEventListener("blur",this.blurListener_,!1);this.mediaElem_.removeEventListener("keydown",this.keyListener_,!1);this.mediaElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLMediaWidget.prototype.jumpToTime_=function(a){0>a&&(a=0);a>this.mediaElem_.duration&&(a=this.mediaElem_.duration);this.mediaElem_.currentTime=a}; +cvox.ChromeVoxHTMLMediaWidget.prototype.setVolume_=function(a){0>a&&(a=0);1<a&&(a=1);this.mediaElem_.volume=a}; +cvox.ChromeVoxHTMLMediaWidget.prototype.eventHandler_=function(a){"keydown"==a.type&&(13==a.keyCode||32==a.keyCode?this.mediaElem_.paused?this.mediaElem_.play():this.mediaElem_.pause():39==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime+this.mediaElem_.duration/10):37==a.keyCode?this.jumpToTime_(this.mediaElem_.currentTime-this.mediaElem_.duration/10):38==a.keyCode?this.setVolume_(this.mediaElem_.volume+0.1):40==a.keyCode&&this.setVolume_(this.mediaElem_.volume-0.1))};cvox.ChromeVoxHTMLTimeWidget=function(a,b){var c=this;this.timeElem_=a;this.timeTts_=b;this.pMinutes_=this.pHours_=-1;this.pMilliseconds_=this.pSeconds_=0;this.pAmpm_="";this.pos_=0;this.maxPos_=2;this.keyListener_=function(a){c.eventHandler_(a)};this.blurListener_=function(){c.shutdown()};if(this.timeElem_.hasAttribute("step")){var d=this.timeElem_.getAttribute("step");0<d&&(this.maxPos_=1<=d?3:4)}0==this.timeElem_.value.length&&this.forceInitTime_();for(d=0;d<this.maxPos_;d++){var e=document.createEvent("KeyboardEvent"); +e.initKeyboardEvent("keydown",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e);e=document.createEvent("KeyboardEvent");e.initKeyboardEvent("keyup",!0,!0,window,"Left",0,!1,!1,!1,!1);this.timeElem_.dispatchEvent(e)}this.timeElem_.addEventListener("keydown",this.keyListener_,!1);this.timeElem_.addEventListener("keyup",this.keyListener_,!1);this.timeElem_.addEventListener("blur",this.blurListener_,!1);this.update_(!0)}; +cvox.ChromeVoxHTMLTimeWidget.prototype.shutdown=function(){this.timeElem_.removeEventListener("blur",this.blurListener_,!1);this.timeElem_.removeEventListener("keydown",this.keyListener_,!1);this.timeElem_.removeEventListener("keyup",this.keyListener_,!1)};cvox.ChromeVoxHTMLTimeWidget.prototype.forceInitTime_=function(){this.timeElem_.setAttribute("value","12:00")}; +cvox.ChromeVoxHTMLTimeWidget.prototype.handlePosChange_=function(){0>this.pos_&&(this.pos_=0);this.pos_>this.maxPos_&&(this.pos_=this.maxPos_);if(this.pos_==this.maxPos_)this.pAmpm_="";else switch(this.pos_){case 0:this.pHours_=-1;break;case 1:this.pMinutes_=-1;break;case 2:this.pSeconds_=-1;break;case 3:this.pMilliseconds_=-1}}; +cvox.ChromeVoxHTMLTimeWidget.prototype.update_=function(a){var b=this.timeElem_.value.split(":");if(1>b.length)this.forceInitTime_();else{var c=b[0],d=-1,e=0,f=0,g=cvox.ChromeVox.msgs.getMsg("timewidget_am");1<b.length&&(d=b[1]);2<b.length&&(b=b[2].split("."),e=b[0],1<b.length&&(f=b[1]));12<c&&(c-=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));12==c&&(g=cvox.ChromeVox.msgs.getMsg("timewidget_pm"));0==c&&(c=12,g=cvox.ChromeVox.msgs.getMsg("timewidget_am"));b="";a&&(b=cvox.DomUtil.getName(this.timeElem_, +!0,!0)+"\n");c!=this.pHours_&&(b=b+c+" "+cvox.ChromeVox.msgs.getMsg("timewidget_hours")+"\n",this.pHours_=c);d!=this.pMinutes_&&(b=b+d+" "+cvox.ChromeVox.msgs.getMsg("timewidget_minutes")+"\n",this.pMinutes_=d);e!=this.pSeconds_&&(b=b+e+" "+cvox.ChromeVox.msgs.getMsg("timewidget_seconds")+"\n",this.pSeconds_=e);f!=this.pMilliseconds_&&(b=b+f+" "+cvox.ChromeVox.msgs.getMsg("timewidget_milliseconds")+"\n",this.pMilliseconds_=f);g!=this.pAmpm_&&(b+=g,this.pAmpm_=g);0<b.length&&this.timeTts_.speak(b, +0,null)}};cvox.ChromeVoxHTMLTimeWidget.prototype.eventHandler_=function(a){var b=!1;if("keydown"==a.type){if(9==a.keyCode&&!a.shiftKey||39==a.keyCode)this.pos_++,this.handlePosChange_(),b=!0;if(9==a.keyCode&&a.shiftKey||37==a.keyCode)this.pos_--,this.handlePosChange_(),b=!0}this.update_(b)};cvox.ActiveIndicator=function(){this.lastMoveTime_=0;this.zoom_=1;this.updateIndicatorTimeoutId_=this.lastClientRects_=this.lastSyncTarget_=this.container_=null;this.blurred_=!1;window.addEventListener("focus",goog.bind(function(){this.blurred_=!1;this.container_&&this.container_.classList.remove("cvox_indicator_window_not_focused")},this),!1);window.addEventListener("blur",goog.bind(function(){this.blurred_=!0;this.container_&&this.container_.classList.add("cvox_indicator_window_not_focused")},this), +!1)};cvox.ActiveIndicator.STYLE=".cvox_indicator_container { position: absolute !important; left: 0 !important; top: 0 !important; z-index: 2147483647 !important; pointer-events: none !important;}.cvox_indicator_window_not_focused { visibility: hidden !important;}.cvox_indicator_pulsing { -webkit-animation: cvox_indicator_pulsing_animation 0s 2 alternate !important; -webkit-animation-timing-function: ease-in-out !important;}.cvox_indicator_region { opacity: 0 !important; -webkit-transition: opacity 1s !important;}.cvox_indicator_visible { opacity: 1 !important;}.cvox_indicator_container .cvox_indicator_region * { position:absolute !important; box-shadow: 0 0 4px 4px #f7983a !important; border-radius: 6px !important; -webkit-transition: none !important;}.cvox_indicator_animate_normal .cvox_indicator_region * { -webkit-transition: all 0.3s !important;}.cvox_indicator_animate_quick .cvox_indicator_region * { -webkit-transition: all 0.1s !important;}.cvox_indicator_top { border-radius: inherit inherit 0 0 !important;}.cvox_indicator_middle_nw { border-radius: inherit 0 0 0 !important;}.cvox_indicator_middle_ne { border-radius: 0 inherit 0 0 !important;}.cvox_indicator_middle_se { border-radius: 0 0 inherit 0 !important;}.cvox_indicator_middle_sw { border-radius: 0 0 0 inherit !important;}.cvox_indicator_bottom { border-radius: 0 0 inherit inherit !important;}@-webkit-keyframes cvox_indicator_pulsing_animation { 0% {opacity: 1.0} 50% {opacity: 0.5} 100% {opacity: 1.0}}"; +cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS=100;cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS=300;cvox.ActiveIndicator.MARGIN=8;cvox.ActiveIndicator.prototype.removeFromDom=function(){this.container_&&this.container_.parentElement&&this.container_.parentElement.removeChild(this.container_)};cvox.ActiveIndicator.prototype.syncToNode=function(a){a&&(a==document.body?this.removeFromDom():this.syncToNodes([a]))}; +cvox.ActiveIndicator.prototype.syncToNodes=function(a){var b=this.clientRectsFromNodes_(a);this.moveIndicator_(b,cvox.ActiveIndicator.MARGIN);this.lastSyncTarget_=a;this.lastClientRects_=b;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)}; +cvox.ActiveIndicator.prototype.syncToRange=function(a){var b=cvox.ActiveIndicator.MARGIN;a.startContainer==a.endContainer&&a.startOffset+1==a.endOffset&&(b=1);var c=a.getClientRects();this.moveIndicator_(c,b);this.lastSyncTarget_=a;this.lastClientRects_=c;null!=this.updateIndicatorTimeoutId_&&(window.clearTimeout(this.updateIndicatorTimeoutId_),this.updateIndicatorTimeoutId_=null)}; +cvox.ActiveIndicator.prototype.syncToCursorSelection=function(a){if(a.start.node==a.end.node&&a.start.index==a.end.index)this.syncToNode(a.start.node);else{var b=document.createRange();b.setStart(a.start.node,a.start.index);b.setEnd(a.end.node,a.end.index);this.syncToRange(b)}};cvox.ActiveIndicator.prototype.updateIndicatorIfChanged=function(){this.updateIndicatorTimeoutId_||(this.updateIndicatorTimeoutId_=window.setTimeout(goog.bind(function(){this.handleUpdateIndicatorIfChanged_()},this),100))}; +cvox.ActiveIndicator.prototype.handleUpdateIndicatorIfChanged_=function(){this.updateIndicatorTimeoutId_=null;if(this.lastSyncTarget_){var a;if((a=this.lastSyncTarget_ instanceof Array?this.clientRectsFromNodes_(this.lastSyncTarget_):this.lastSyncTarget_.getClientRects())&&0!=a.length){var b=!1;if(a.length!=this.lastClientRects_.length)b=!0;else for(var c=0;c<this.lastClientRects_.length;++c){var d=this.lastClientRects_[c],e=a[c];if(d.top!=e.top||d.right!=e.right||d.bottom!=e.bottom||d.left!=d.left){b= +!0;break}}b&&(this.moveIndicator_(a,cvox.ActiveIndicator.MARGIN),this.lastClientRects_=a)}else this.syncToNode(document.body)}};cvox.ActiveIndicator.prototype.clientRectsFromNodes_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(d.constructor==Text){var e=document.createRange();e.selectNode(d);e=e.getClientRects()}else{for(;!d.getClientRects;)d=d.parentElement;e=d.getClientRects()}for(d=0;d<e.length;++d)b.push(e[d])}return b}; +cvox.ActiveIndicator.prototype.moveIndicator_=function(a,b){if(document.body.isContentEditable)this.removeFromDom();else{var c=a.length;if(0!=c){var d,e;"static"!=window.getComputedStyle(document.body,null).position?(d=-document.body.getBoundingClientRect().left,e=-document.body.getBoundingClientRect().top):"static"!=window.getComputedStyle(document.documentElement,null).position?(d=-document.documentElement.getBoundingClientRect().left,e=-document.documentElement.getBoundingClientRect().top):(d= +window.pageXOffset,e=window.pageYOffset);for(var f=[],g=0;g<c;g++)f.push(this.inset_(a[g],d,e,-d,-e));if(!this.container_||!this.container_.parentElement){g=document.getElementsByClassName("cvox_indicator_container");for(c=0;d=g[c];c++)d.parentNode&&d.parentNode.removeChild(d);this.container_=this.createDiv_(document.body,"cvox_indicator_container",document.body.firstChild)}g=document.createElement("style");g.id="cvox_indicator_style";g.innerHTML=cvox.ActiveIndicator.STYLE;cvox.DomUtil.addNodeToHead(g, +g.id);g=(new Date).getTime();c=g-this.lastMoveTime_;this.container_.className="cvox_indicator_container";document.hasFocus()&&!this.blurred_||this.container_.classList.add("cvox_indicator_window_not_focused");c>cvox.ActiveIndicator.NORMAL_ANIM_DELAY_MS?this.container_.classList.add("cvox_indicator_animate_normal"):c>cvox.ActiveIndicator.QUICK_ANIM_DELAY_MS&&this.container_.classList.add("cvox_indicator_animate_quick");this.lastMoveTime_=g;this.computeZoomLevel_();for(window.setTimeout(goog.bind(function(){this.container_.classList.add("cvox_indicator_pulsing")}, +this),0);1<this.container_.childElementCount;)this.container_.removeChild(this.container_.lastElementChild);d=[[f[0]]];e=[f[0]];for(g=1;g<f.length;g++){for(var h=!1,c=0;c<d.length&&!h;c++)this.intersects_(f[g],e[c])&&(d[c].push(f[g]),e[c]=this.union_(e[c],f[g]),h=!0);h||(d.push([f[g]]),e.push(f[g]))}do for(f=!1,g=0;g<d.length-1&&!f;g++)for(c=g+1;c<d.length&&!f;c++)this.intersects_(e[g],e[c])&&(d[g]=d[g].concat(d[c]),e[g]=this.union_(e[g],e[c]),d.splice(c,1),e.splice(c,1),f=!0);while(f);for(g=0;g< +d.length;g++)d[g].sort(function(a,b){return a.top!=b.top?a.top-b.top:a.left-b.left});for(g=0;g<d.length;g++)f=null,0==g&&1==this.container_.childElementCount&&6==this.container_.children[0].childElementCount&&(f=this.container_.children[0]),this.updateIndicatorRegion_(d[g],f,b)}}}; +cvox.ActiveIndicator.prototype.updateIndicatorRegion_=function(a,b,c){if(b)var d=b.children[0],e=b.children[1],f=b.children[2],g=b.children[3],h=b.children[4],k=b.children[5];else b=this.createDiv_(this.container_,"cvox_indicator_region"),window.setTimeout(function(){b.classList.add("cvox_indicator_visible")},0),d=this.createDiv_(b,"cvox_indicator_top"),e=this.createDiv_(b,"cvox_indicator_middle_nw"),f=this.createDiv_(b,"cvox_indicator_middle_ne"),g=this.createDiv_(b,"cvox_indicator_middle_sw"),h= +this.createDiv_(b,"cvox_indicator_middle_se"),k=this.createDiv_(b,"cvox_indicator_bottom");for(var l=a[0],m=Math.floor((l.top+l.bottom)/2),p=1,q=a.length;p<q&&a[p].top<m;)l=this.union_(l,a[p]),m=Math.floor((l.top+l.bottom)/2),p++;if(p==q)l=this.inset_(l,-c,-c,-c,-c),a=Math.floor((3*l.top+1*l.bottom)/4),c=Math.floor((2*l.top+2*l.bottom)/4),m=Math.floor((1*l.top+3*l.bottom)/4),this.setElementCoords_(d,l.left,l.top,l.right,a,!0,!0,!0,!1),this.setElementCoords_(e,l.left,a,l.left,c,!0,!0,!1,!1),this.setElementCoords_(g, +l.left,c,l.left,m,!0,!1,!1,!0),this.setElementCoords_(f,l.right,a,l.right,c,!1,!0,!0,!1),this.setElementCoords_(h,l.right,c,l.right,m,!1,!1,!0,!0),this.setElementCoords_(k,l.left,m,l.right,l.bottom,!0,!1,!0,!0);else{for(var m=a[q-1],n=Math.floor((m.top+m.bottom)/2),q=q-2;0<=q&&a[q].bottom>n;)m=this.union_(m,a[q]),n=Math.floor((m.top+m.bottom)/2),q--;l=this.inset_(l,-c,-c,-c,c);m=this.inset_(m,-c,c,-c,-c);if(p>q)n=this.union_(l,m),n.top=l.bottom,n.bottom=m.top,n.height=Math.floor((n.top+n.bottom)/ +2);else{n=a[p];for(p+=1;p<=q;)n=this.union_(n,a[p]),p++;n=this.inset_(n,-c,-c,-c,-c);n.left=Math.min(n.left,l.left,m.left);n.right=Math.max(n.right,l.right,m.right);n.width=n.right-n.left}l.right>n.right-40&&(l.right=n.right,l.width=l.right-l.left);l.left<n.left+40&&(l.left=n.left,l.width=l.right-l.left);m.right>n.right-40&&(m.right=n.right,m.width=m.right-m.left);m.left<n.left+40&&(m.left=n.left,m.width=m.right-m.left);a=Math.floor((n.top+n.bottom)/2);this.setElementRect_(d,l,!0,!0,!0,!1);this.setElementRect_(k, +m,!0,!1,!0,!0);this.setElementCoords_(e,n.left,l.bottom,l.left,a,!0,!0,!1,!1);this.setElementCoords_(f,l.right,l.bottom,n.right,a,!1,!0,!0,!1);this.setElementCoords_(g,n.left,a,m.left,m.top,!0,!1,!1,!0);this.setElementCoords_(h,m.right,a,n.right,m.top,!1,!1,!0,!0)}};cvox.ActiveIndicator.prototype.intersects_=function(a,b){var c=2*cvox.ActiveIndicator.MARGIN;return b.left<=a.right+c&&b.right>=a.left-c&&b.top<=a.bottom+c&&b.bottom>=a.top-c}; +cvox.ActiveIndicator.prototype.union_=function(a,b){var c={left:Math.min(a.left,b.left),top:Math.min(a.top,b.top),right:Math.max(a.right,b.right),bottom:Math.max(a.bottom,b.bottom)};c.width=c.right-c.left;c.height=c.bottom-c.top;return c};cvox.ActiveIndicator.prototype.inset_=function(a,b,c,d,e){a={left:a.left+b,top:a.top+c,right:a.right-d,bottom:a.bottom-e};a.width=a.right-a.left;a.height=a.bottom-a.top;return a}; +cvox.ActiveIndicator.prototype.createDiv_=function(a,b,c){var d=document.createElement("div");d.className=b;c?a.insertBefore(d,c):a.appendChild(d);return d};cvox.ActiveIndicator.prototype.fixZoom_=function(a){return(Math.round(a*this.zoom_)+0.1)/this.zoom_};cvox.ActiveIndicator.prototype.fixZoomSum_=function(a,b){var c=Math.round(a*this.zoom_),d=Math.round((a+b)*this.zoom_),c=d-c;return(c+0.1)/this.zoom_}; +cvox.ActiveIndicator.prototype.setElementCoords_=function(a,b,c,d,e,f,g,h,k){var l=d-b,m=e-c;d-=b;e-=c;var p=f?-20:0,q=g?-20:0,n=h?20:0,s=k?20:0;0==d&&(h?(b-=5,d+=5):f&&(d+=10),s=q=10,c-=10,e+=20);k||(e+=5);g||(c-=5,e+=5,q+=5,s+=5);n=0==n&&0==l?1:this.fixZoomSum_(b,n+l);s=this.fixZoomSum_(c,s+m);a.style.left=this.fixZoom_(b)+"px";a.style.top=this.fixZoom_(c)+"px";a.style.width=this.fixZoomSum_(b,d)+"px";a.style.height=this.fixZoomSum_(c,e)+"px";a.style.clip="rect("+[q,n,s,p].join("px ")+"px)"}; +cvox.ActiveIndicator.prototype.setElementRect_=function(a,b,c,d,e,f){this.setElementCoords_(a,b.left,b.top,b.right,b.bottom,c,d,e,f)}; +cvox.ActiveIndicator.prototype.computeZoomLevel_=function(){if(window.innerHeight!==this.innerHeight_||window.innerWidth!==this.innerWidth_){this.innerHeight_=window.innerHeight;this.innerWidth_=window.innerWidth;var a=document.createElement("div");a.innerHTML="X";a.setAttribute("style","font: 5000px/1em sans-serif !important; -webkit-text-size-adjust:none !important; visibility:hidden !important; left: -10000px !important; top: -10000px !important; position:absolute !important;");document.body.appendChild(a); +var b=5E3/a.clientHeight,b=Math.round(500*b)/500;0.1<b&&10>b&&(this.zoom_=b);a.parentNode.removeChild(a)}};cvox.NodeBreadcrumb=function(){this.cvTagCounter_=0};goog.addSingletonGetter(cvox.NodeBreadcrumb);cvox.NodeBreadcrumb.TOUCHED_TAG="chromevoxtag";cvox.NodeBreadcrumb.NEEDED_TAG_="chromevoxneeded"; +cvox.NodeBreadcrumb.prototype.tagCurrentNode=function(){for(var a,b=cvox.ChromeVox.navigationManager.getCurrentNode();b&&!b.hasAttribute;)b=b.parentNode;b?b.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a=b.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):(a=this.cvTagCounter_,b.setAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG,a),this.cvTagCounter_++):a=-1;return a}; +cvox.NodeBreadcrumb.prototype.smartStart_=function(a){for(var b=0;b<a.children.length;++b){var c=a.children[b];this.smartStart_(c);c.getAttribute&&!goog.isNull(c.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))&&this.setNeeded_(c)}};cvox.NodeBreadcrumb.prototype.setNeeded_=function(a){a&&a.getAttribute&&goog.isNull(a.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&(a.setAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_,!0),"body"!==a.nodeName&&this.setNeeded_(a.parentElement))}; +cvox.NodeBreadcrumb.prototype.smartClone_=function(a){var b={};b[cvox.NodeBreadcrumb.TOUCHED_TAG]=!0;b[cvox.NodeBreadcrumb.NEEDED_TAG_]=!0;if(a.getAttribute&&a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG))return cvox.DomUtil.deepClone(a,b);for(var b=cvox.DomUtil.shallowChildlessClone(a,b),c=0;c<a.childNodes.length;++c){var d=a.childNodes[c];d.getAttribute&&!goog.isNull(d.getAttribute(cvox.NodeBreadcrumb.NEEDED_TAG_))&&b.appendChild(this.smartClone_(d))}return b}; +cvox.NodeBreadcrumb.prototype.dumpWalkedDom=function(){this.smartStart_(document.body);return this.smartClone_(document.body)};cvox.NodeBreadcrumb.getCurrentNodeTag=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a&&!a.hasAttribute;)a=a.parentNode;return a&&a.hasAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG)?a.getAttribute(cvox.NodeBreadcrumb.TOUCHED_TAG):-1};cvox.HistoryEvent=function(a){this.spoken_=[];a?this.userCommand_=a.cmd:this.startTime_=(new Date).getTime()};cvox.HistoryEvent.prototype.withUserCommand=function(a){if(this.userCommand_)return window.console.error("Two user commands on "+a,this),this;this.userCommand_=a;return this};cvox.HistoryEvent.prototype.speak=function(a){this.spoken_.push(a);return this}; +cvox.HistoryEvent.prototype.done=function(){this.endTime_=(new Date).getTime();cvox.NodeBreadcrumb.getInstance().tagCurrentNode();window.console.log("User command done.",this);return this};cvox.HistoryEvent.prototype.outputObject=function(){return{start:this.startTime_,end:this.endTime_,cmd:this.userCommand_,spoken:this.spoken_}}; +cvox.HistoryEvent.prototype.outputHTML=function(){var a=document.createElement("div");a.className="cvoxHistoryEvent";var b=this.endTime_-this.startTime_;a.innerHTML=this.userCommand_+" ("+b+"ms)";for(b=0;b<this.spoken_.length;b++){var c=document.createElement("div");c.className="cvoxHistoryEventSpoken";c.innerHTML=this.spoken_[b].substr(0,20);20<this.spoken_[b].length&&(c.innerHTML+="...");a.appendChild(c)}return a}; +cvox.HistoryEvent.prototype.outputJs=function(){var a="this.waitForCalm(this.userCommand, '"+this.userCommand_+"')";return a=0<this.spoken_.length?a+("\n .waitForCalm(this.assertSpoken, '"+cvox.DomUtil.collapseWhitespace(this.spoken_.join(" "))+"');\n"):a+";\n"};cvox.History=function(){this.recording_=!1;this.events_=[];this.styleDiv_=this.listDiv_=this.mainDiv_=this.currentEvent_=null;this.nodeBreadcrumb_=cvox.NodeBreadcrumb.getInstance()};goog.addSingletonGetter(cvox.History); +cvox.History.prototype.addListDiv_=function(){this.mainDiv_=document.createElement("div");this.mainDiv_.style.position="fixed";this.mainDiv_.style.bottom="0";this.mainDiv_.style.right="0";this.mainDiv_.style.zIndex="999";this.listDiv_=document.createElement("div");this.listDiv_.id="cvoxEventList";this.mainDiv_.appendChild(this.listDiv_);var a=document.createElement("div"),b=document.createElement("button");b.onclick=cvox.History.sendToFeedback;b.innerHTML="Create bug";a.appendChild(b);this.mainDiv_.appendChild(a); +a=document.createElement("div");b=document.createElement("button");b.onclick=cvox.History.dumpJs;b.innerHTML="Dump test case";a.appendChild(b);this.mainDiv_.appendChild(a);document.body.appendChild(this.mainDiv_);this.styleDiv_=document.createElement("style");this.styleDiv_.innerHTML=".cvoxHistoryEventSpoken { color: gray; font-size: 75% }";document.body.appendChild(this.styleDiv_)}; +cvox.History.prototype.removeListDiv_=function(){document.body.removeChild(this.mainDiv_);document.body.removeChild(this.styleDiv_);this.styleDiv_=this.listDiv_=this.mainDiv_=null}; +cvox.History.prototype.addBigTextBox_=function(){function a(a,b){var c=document.createElement("button");c.onclick=b;c.innerHTML=a;d.appendChild(c)}var b=document.createElement("div");b.style.position="fixed";b.style.top="0";b.style.left="0";b.style.zIndex="999";var c=document.createElement("textarea");c.style.width="500px";c.style.height="500px";c.innerHTML=this.dumpJsOutput_();b.appendChild(c);var d=document.createElement("div");b.appendChild(d);a("Close dialog",function(){document.body.removeChild(b)}); +a("Remove fluff",goog.bind(function(){c.innerHTML=this.dumpJsOutput_(["stopSpeech","toggleKeyPrefix"])},this));document.body.appendChild(b)};cvox.History.prototype.startRecording=function(){this.recording_=!0;this.addListDiv_()};cvox.History.prototype.stopRecording=function(){this.recording_=!1;this.removeListDiv_();this.events_=[];this.currentEvent_=null}; +cvox.History.prototype.enterUserCommand=function(a){this.recording_&&(this.currentEvent_&&window.console.error("User command "+a+" overlaps current event",this.currentEvent_),this.currentEvent_=(new cvox.HistoryEvent).withUserCommand(a),this.events_.push(this.currentEvent_))};cvox.History.prototype.exitUserCommand=function(){this.recording_&&this.currentEvent_&&(this.currentEvent_.done(),this.listDiv_.appendChild(this.currentEvent_.outputHTML()),this.currentEvent_=null)}; +cvox.History.prototype.speak=function(a){if(!this.recording_)return this;if(!this.currentEvent_)return window.console.error("Speak called outside of a user command."),this;this.currentEvent_.speak(a);return this};cvox.History.prototype.isSpeaking=function(){return!1};cvox.History.prototype.stop=function(){};cvox.History.prototype.increaseOrDecreaseProperty=function(){};cvox.History.prototype.getDefaultProperty=function(){}; +cvox.History.dumpJs=function(){var a=cvox.History.getInstance();a.addBigTextBox_();window.console.log(a.dumpJsOutput_())};cvox.History.prototype.dumpJsOutput_=function(a){var b={};a&&a.forEach(function(a){b[a]=1});return["/*DOC: += ",this.nodeBreadcrumb_.dumpWalkedDom().innerHTML,"*/\n"].concat(this.events_.filter(function(a){return!(a.userCommand_ in b)}).map(function(a){return a.outputJs()})).join("")}; +cvox.History.sendToFeedback=function(){var a=cvox.History.getInstance(),a=a.events_.map(function(a){return a.outputObject()}),b=document.createElement("script");b.type="text/javascript";b.src="https://www.gstatic.com/feedback/api.js";var c=document.createElement("script");c.type="text/javascript";c.innerHTML="userfeedback.api.startFeedback({ productId: '76092' }, { cvoxHistory: "+cvox.ChromeVoxJSON.stringify(cvox.ChromeVoxJSON.stringify(a))+" });";b.onload=function(){document.body.appendChild(c)}; +document.body.appendChild(b)};cvox.KeySequence=function(a,b,c,d){this.doubleTap=!!d;this.cvoxModifier=void 0==b?this.isCVoxModifierActive(a):b;this.stickyMode=!!a.stickyMode;this.prefixKey=!!a.keyPrefix;this.skipStripping=!!c;if(this.stickyMode&&this.prefixKey)throw"Prefix key and sticky mode cannot both be enabled: "+a;a=this.resolveChromeOSSpecialKeys_(a);this.keys={ctrlKey:[],searchKeyHeld:[],altKey:[],altGraphKey:[],shiftKey:[],metaKey:[],keyCode:[]};this.extractKey_(a)}; +cvox.KeySequence.KEY_PRESS_CODE={39:222,44:188,45:189,46:190,47:191,59:186,91:219,92:220,93:221};cvox.KeySequence.doubleTapCache=[];cvox.KeySequence.prototype.addKeyEvent=function(a){if(1<this.keys.keyCode.length)return!1;this.extractKey_(a);return!0};cvox.KeySequence.prototype.equals=function(a){if(!this.checkKeyEquality_(a)||this.doubleTap!=a.doubleTap)return!1;if(this.cvoxModifier===a.cvoxModifier)return!0;a=this.cvoxModifier?a:this;return a.stickyMode||a.prefixKey}; +cvox.KeySequence.prototype.extractKey_=function(a){for(var b in this.keys)if("keyCode"==b){var c;"keypress"==a.type&&97<=a[b]&&122>=a[b]?c=a[b]-32:"keypress"==a.type&&(c=cvox.KeySequence.KEY_PRESS_CODE[a[b]]);this.keys[b].push(c||a[b])}else this.isKeyModifierActive(a,b)?this.keys[b].push(!0):this.keys[b].push(!1);this.cvoxModifier&&this.rationalizeKeys_()}; +cvox.KeySequence.prototype.rationalizeKeys_=function(){if(!this.skipStripping){var a=cvox.ChromeVox.modKeyStr.split(/\+/g),b=this.keys.keyCode.length-1;-1!=a.indexOf("Ctrl")&&(this.keys.ctrlKey[b]=!1);-1!=a.indexOf("Alt")&&(this.keys.altKey[b]=!1);-1!=a.indexOf("Shift")&&(this.keys.shiftKey[b]=!1);var c=this.getMetaKeyName_();if(-1!=a.indexOf(c))if("Search"==c)this.keys.searchKeyHeld[b]=!1;else if("Cmd"==c||"Win"==c)this.keys.metaKey[b]=!1}}; +cvox.KeySequence.prototype.getMetaKeyName_=function(){return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win"};cvox.KeySequence.prototype.checkKeyEquality_=function(a){for(var b in this.keys)for(var c=this.keys[b].length;c--;)if(this.keys[b][c]!==a.keys[b][c])return!1;return!0};cvox.KeySequence.prototype.length=function(){return this.keys.keyCode.length};cvox.KeySequence.prototype.isModifierKey=function(a){return 16==a||17==a||18==a||91==a||93==a}; +cvox.KeySequence.prototype.isCVoxModifierActive=function(a){var b=cvox.ChromeVox.modKeyStr.split(/\+/g);this.isKeyModifierActive(a,"ctrlKey")&&(b=b.filter(function(a){return"Ctrl"!=a}));this.isKeyModifierActive(a,"altKey")&&(b=b.filter(function(a){return"Alt"!=a}));this.isKeyModifierActive(a,"shiftKey")&&(b=b.filter(function(a){return"Shift"!=a}));if(this.isKeyModifierActive(a,"metaKey")||this.isKeyModifierActive(a,"searchKeyHeld"))var c=this.getMetaKeyName_(),b=b.filter(function(a){return a!=c}); +return 0==b.length};cvox.KeySequence.prototype.isKeyModifierActive=function(a,b){switch(b){case "ctrlKey":return a.ctrlKey||17==a.keyCode;case "altKey":return a.altKey||18==a.keyCode;case "shiftKey":return a.shiftKey||16==a.keyCode;case "metaKey":return a.metaKey||!cvox.ChromeVox.isChromeOS&&91==a.keyCode;case "searchKeyHeld":return cvox.ChromeVox.isChromeOS&&91==a.keyCode||a.searchKeyHeld}return!1}; +cvox.KeySequence.deserialize=function(a){var b={};b.stickyMode=void 0==a.stickyMode?!1:a.stickyMode;b.prefixKey=void 0==a.prefixKey?!1:a.prefixKey;var c=1<a.keys.keyCode.length,d={},e;for(e in a.keys)b[e]=a.keys[e][0],c&&(d[e]=a.keys[e][1]);e=new cvox.KeySequence(b,a.cvoxModifier,!0,a.doubleTap);c&&(cvox.ChromeVox.sequenceSwitchKeyCodes.push(new cvox.KeySequence(b,a.cvoxModifier)),e.addKeyEvent(d));a.doubleTap&&cvox.KeySequence.doubleTapCache.push(e);return e}; +cvox.KeySequence.fromStr=function(a){var b={},c={},d;d=-1==a.indexOf(">")?!1:!0;var e=!1;b.stickyMode=!1;b.prefixKey=!1;a=a.split("+");for(var f=0;f<a.length;f++)for(var g=a[f].split(">"),h=0;h<g.length;h++){if("#"==g[h].charAt(0)){var k=parseInt(g[h].substr(1),10);0<h?c.keyCode=k:b.keyCode=k}k=g[h];1==g[h].length?0<h?c.keyCode=g[h].charCodeAt(0):b.keyCode=g[h].charCodeAt(0):(0<h?cvox.KeySequence.setModifiersOnEvent_(k,c):cvox.KeySequence.setModifiersOnEvent_(k,b),"Cvox"==k&&(e=!0))}b=new cvox.KeySequence(b, +e);d&&b.addKeyEvent(c);return b};cvox.KeySequence.setModifiersOnEvent_=function(a,b){"Ctrl"==a?(b.ctrlKey=!0,b.keyCode=17):"Alt"==a?(b.altKey=!0,b.keyCode=18):"Shift"==a?(b.shiftKey=!0,b.keyCode=16):"Search"==a?(b.searchKeyHeld=!0,b.keyCode=91):"Cmd"==a?(b.metaKey=!0,b.keyCode=91):"Win"==a?(b.metaKey=!0,b.keyCode=91):"Insert"==a&&(b.keyCode=45)}; +cvox.KeySequence.prototype.resolveChromeOSSpecialKeys_=function(a){if(!this.cvoxModifier||this.stickyMode||this.prefixKey||!cvox.ChromeVox.isChromeOS)return a;var b={},c;for(c in a)b[c]=a[c];switch(b.keyCode){case 33:b.keyCode=38;break;case 34:b.keyCode=40;break;case 35:b.keyCode=39;break;case 36:b.keyCode=37;break;case 45:b.keyCode=190;break;case 46:b.keyCode=8;break;case 112:b.keyCode=49;break;case 113:b.keyCode=50;break;case 114:b.keyCode=51;break;case 115:b.keyCode=52;break;case 116:b.keyCode= +53;break;case 117:b.keyCode=54;break;case 118:b.keyCode=55;break;case 119:b.keyCode=56;break;case 120:b.keyCode=57;break;case 121:b.keyCode=48;break;case 122:b.keyCode=189;break;case 123:b.keyCode=187}return b};cvox.KeyUtil=function(){};cvox.KeyUtil.modeKeyPressTime=0;cvox.KeyUtil.sequencing=!1;cvox.KeyUtil.prevKeySequence=null;cvox.KeyUtil.stickyKeySequence=null;cvox.KeyUtil.maxSeqLength=2; +cvox.KeyUtil.keyEventToKeySequence=function(a){var b=cvox.KeyUtil;b.prevKeySequence&&b.maxSeqLength==b.prevKeySequence.length()&&(b.sequencing=!1,b.prevKeySequence=null);var c=b.sequencing||a.keyPrefix||a.stickyMode,d=new cvox.KeySequence(a),e=d.cvoxModifier;if(c||e){if(!b.sequencing&&b.isSequenceSwitchKeyCode(d))return b.sequencing=!0,b.prevKeySequence=d;if(b.sequencing){if(b.prevKeySequence.addKeyEvent(a))return d=b.prevKeySequence,b.prevKeySequence=null,b.sequencing=!1,d;throw"Think sequencing is enabled, yet util.prevKeySequence alreadyhas two key codes"+ +b.prevKeySequence;}}else b.sequencing=!1;c=(new Date).getTime();if(cvox.KeyUtil.isDoubleTapKey(d)&&b.prevKeySequence&&d.equals(b.prevKeySequence)&&(e=b.modeKeyPressTime,0<e&&300>c-e))return d=b.prevKeySequence,d.doubleTap=!0,b.prevKeySequence=null,b.sequencing=!1,cvox.ChromeVox.isChromeOS&&a.keyCode==cvox.KeyUtil.getStickyKeyCode()&&(cvox.ChromeVox.searchKeyHeld=!1),d;b.prevKeySequence=d;b.modeKeyPressTime=c;return d}; +cvox.KeyUtil.keyCodeToString=function(a){return 17==a?"Ctrl":18==a?"Alt":16==a?"Shift":91==a||93==a?cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win":45==a?"Insert":65<=a&&90>=a?String.fromCharCode(a):48<=a&&57>=a?String.fromCharCode(a):"#"+a};cvox.KeyUtil.modStringToKeyCode=function(a){switch(a){case "Ctrl":return 17;case "Alt":return 18;case "Shift":return 16;case "Cmd":case "Win":return 91}return-1}; +cvox.KeyUtil.cvoxModKeyCodes=function(){var a=cvox.ChromeVox.modKeyStr.split(/\+/g);return a=a.map(function(a){return cvox.KeyUtil.modStringToKeyCode(a)})};cvox.KeyUtil.isSequenceSwitchKeyCode=function(a){for(var b=0;b<cvox.ChromeVox.sequenceSwitchKeyCodes.length;b++){var c=cvox.ChromeVox.sequenceSwitchKeyCodes[b];if(c.equals(a))return!0}return!1}; +cvox.KeyUtil.getReadableNameForKeyCode=function(a){if(0==a)return"Power button";if(17==a)return"Control";if(18==a)return"Alt";if(16==a)return"Shift";if(9==a)return"Tab";if(91==a||93==a)return cvox.ChromeVox.isChromeOS?"Search":cvox.ChromeVox.isMac?"Cmd":"Win";if(8==a)return"Backspace";if(32==a)return"Space";if(35==a)return"end";if(36==a)return"home";if(37==a)return"Left arrow";if(38==a)return"Up arrow";if(39==a)return"Right arrow";if(40==a)return"Down arrow";if(45==a)return"Insert";if(13==a)return"Enter"; +if(27==a)return"Escape";if(112==a)return cvox.ChromeVox.isChromeOS?"Back":"F1";if(113==a)return cvox.ChromeVox.isChromeOS?"Forward":"F2";if(114==a)return cvox.ChromeVox.isChromeOS?"Refresh":"F3";if(115==a)return cvox.ChromeVox.isChromeOS?"Toggle full screen":"F4";if(116==a)return"F5";if(117==a)return"F6";if(118==a)return"F7";if(119==a)return"F8";if(120==a)return"F9";if(121==a)return"F10";if(122==a)return"F11";if(123==a)return"F12";if(186==a)return"Semicolon";if(187==a)return"Equal sign";if(188==a)return"Comma"; +if(189==a)return"Dash";if(190==a)return"Period";if(191==a)return"Forward slash";if(192==a)return"Grave accent";if(219==a)return"Open bracket";if(220==a)return"Back slash";if(221==a)return"Close bracket";if(222==a)return"Single quote";if(115==a)return"Toggle full screen";if(48<=a&&90>=a)return String.fromCharCode(a)};cvox.KeyUtil.getStickyKeyCode=function(){var a=45;if(cvox.ChromeVox.isChromeOS||cvox.ChromeVox.isMac)a=91;return a}; +cvox.KeyUtil.getStickyKeySequence=function(){if(null==cvox.KeyUtil.stickyKeySequence){var a=cvox.KeyUtil.getStickyKeyCode(),a={keyCode:a,stickyMode:!0},b=new cvox.KeySequence(a);b.addKeyEvent(a);cvox.KeyUtil.stickyKeySequence=b}return cvox.KeyUtil.stickyKeySequence};cvox.KeyUtil.getReadableNameForStr=function(){return null}; +cvox.KeyUtil.keySequenceToString=function(a,b,c){for(var d="",e=a.length(),f=0;f<e;f++){""==d||c?""!=d&&(d+="+"):d+=">";var g="",h;for(h in a.keys)if(a.keys[h][f]){var k="";switch(h){case "ctrlKey":k="Ctrl";break;case "searchKeyHeld":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "altKey":k="Alt";break;case "altGraphKey":k="AltGraph";break;case "shiftKey":k="Shift";break;case "metaKey":k=cvox.KeyUtil.getReadableNameForKeyCode(91);break;case "keyCode":var l=a.keys[h][f];a.isModifierKey(l)|| +c||(g=b?g+cvox.KeyUtil.getReadableNameForKeyCode(l):g+cvox.KeyUtil.keyCodeToString(l))}-1==d.indexOf(k)&&(g+=k+"+")}d+=g;"+"==d[d.length-1]&&(d=d.slice(0,-1))}a.cvoxModifier||a.prefixKey?d=""!=d?"Cvox+"+d:"Cvox":a.stickyMode&&(">"==d[d.length-1]&&(d=d.slice(0,-1)),d=d+"+"+d);return d};cvox.KeyUtil.isDoubleTapKey=function(a){var b=!1,c=a.doubleTap;a.doubleTap=!0;for(var d=0,e;e=cvox.KeySequence.doubleTapCache[d];d++)if(e.equals(a)){b=!0;break}a.doubleTap=c;return b};cvox.KeyMap=function(a){this.bindings_=a;this.commandToKey_={};this.buildCommandToKey_()};cvox.KeyMap.KEYMAP_PATH="chromevox/background/keymaps/";cvox.KeyMap.AVAILABLE_MAP_INFO={keymap_classic:{file:"classic_keymap.json"},keymap_flat:{file:"flat_keymap.json"},keymap_experimental:{file:"experimental.json"}};cvox.KeyMap.DEFAULT_KEYMAP=0;cvox.KeyMap.prototype.length=function(){return this.bindings_.length};cvox.KeyMap.prototype.keys=function(){return this.bindings_.map(function(a){return a.sequence})}; +cvox.KeyMap.prototype.bindings=function(){return this.bindings_};cvox.KeyMap.prototype.toJSON=function(){return JSON.stringify({bindings:this.bindings_})};cvox.KeyMap.prototype.hasKey=function(a){for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return!0}return!1};cvox.KeyMap.prototype.commandForKey=function(a){if(null!=a)for(var b=0;b<this.bindings_.length;b++){var c=this.bindings_[b];if(c.sequence.equals(a))return c.command}return null}; +cvox.KeyMap.fromDefaults=function(){return cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO.keymap_classic.file)};cvox.KeyMap.fromJSON=function(a){try{var b=JSON.parse(a).bindings,b=b.filter(function(a){return void 0===a.sequence.platformFilter||cvox.PlatformUtil.matchesPlatform(a.sequence.platformFilter)})}catch(c){return null}if("object"!=typeof b)return null;for(a=0;a<b.length;a++){if(void 0==b[a].command||void 0==b[a].sequence)return null;b[a].sequence=cvox.KeySequence.deserialize(b[a].sequence)}return new cvox.KeyMap(b)}; +cvox.KeyMap.fromLocalStorage=function(){return localStorage.keyBindings?cvox.KeyMap.fromJSON(localStorage.keyBindings):null};cvox.KeyMap.fromPath=function(a){return cvox.KeyMap.fromJSON(cvox.KeyMap.readJSON_(a))};cvox.KeyMap.fromCurrentKeyMap=function(){var a=localStorage.currentKeyMap;return a&&cvox.KeyMap.AVAILABLE_MAP_INFO[a]?cvox.KeyMap.fromPath(cvox.KeyMap.KEYMAP_PATH+cvox.KeyMap.AVAILABLE_MAP_INFO[a].file):cvox.KeyMap.fromDefaults()}; +cvox.KeyMap.readJSON_=function(a){var b=chrome.extension.getURL(a);if(!b)throw"Invalid path: "+a;a=new XMLHttpRequest;a.open("GET",b,!1);a.send();return a.responseText};cvox.KeyMap.prototype.buildCommandToKey_=function(){for(var a=0;a<this.bindings_.length;a++){var b=this.bindings_[a];void 0==this.commandToKey_[b.command]&&(this.commandToKey_[b.command]=b.sequence)}};cvox.CommandStore={};cvox.CommandStore.categories=function(){var a={},b;for(b in cvox.CommandStore.CMD_WHITELIST){var c=cvox.CommandStore.CMD_WHITELIST[b];c.category&&(a[c.category]=!0)}b=[];for(var d in a)b.push(d);return b};cvox.CommandStore.messageForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).msgId};cvox.CommandStore.categoryForCommand=function(a){return(cvox.CommandStore.CMD_WHITELIST[a]||{}).category}; +cvox.CommandStore.commandsForCategory=function(a){var b=[],c;for(c in cvox.CommandStore.CMD_WHITELIST){var d=cvox.CommandStore.CMD_WHITELIST[c];a==d.category&&b.push(c)}return b}; +cvox.CommandStore.CMD_WHITELIST={toggleStickyMode:{announce:!1,msgId:"toggle_sticky_mode",disallowOOBE:!0,category:"modifier_keys"},toggleKeyPrefix:{announce:!1,skipInput:!0,msgId:"prefix_key",disallowOOBE:!0,category:"modifier_keys"},stopSpeech:{announce:!1,disallowContinuation:!0,doDefault:!0,msgId:"stop_speech_key",category:"controlling_speech"},toggleChromeVox:{announce:!1,platformFilter:cvox.PlatformFilter.WML,msgId:"toggle_chromevox_active",category:"controlling_speech"},decreaseTtsRate:{announce:!1, +msgId:"decrease_tts_rate",category:"controlling_speech"},increaseTtsRate:{announce:!1,msgId:"increase_tts_rate",category:"controlling_speech"},decreaseTtsPitch:{announce:!1,msgId:"decrease_tts_pitch",category:"controlling_speech"},increaseTtsPitch:{announce:!1,msgId:"increase_tts_pitch",category:"controlling_speech"},decreaseTtsVolume:{announce:!1,msgId:"decrease_tts_volume",category:"controlling_speech"},increaseTtsVolume:{announce:!1,msgId:"increase_tts_volume",category:"controlling_speech"},cyclePunctuationEcho:{announce:!1, +msgId:"cycle_punctuation_echo",category:"controlling_speech"},cycleTypingEcho:{announce:!1,msgId:"cycle_typing_echo",category:"controlling_speech"},toggleEarcons:{announce:!0,msgId:"toggle_earcons",category:"controlling_speech"},handleTab:{allowEvents:!0,msgId:"handle_tab_next",disallowContinuation:!0,category:"navigation"},handleTabPrev:{allowEvents:!0,msgId:"handle_tab_prev",disallowContinuation:!0,category:"navigation"},forward:{forward:!0,announce:!0,msgId:"forward",category:"navigation"},backward:{backward:!0, +announce:!0,msgId:"backward",category:"navigation"},right:{forward:!0,announce:!0,msgId:"right",category:"navigation"},left:{backward:!0,announce:!0,msgId:"left",category:"navigation"},previousGranularity:{announce:!0,msgId:"previous_granularity",category:"navigation"},nextGranularity:{announce:!0,msgId:"next_granularity",category:"navigation"},previousCharacter:{backward:!0,announce:!0,msgId:"previous_character",skipInput:!0,category:"navigation"},nextCharacter:{forward:!0,announce:!0,msgId:"next_character", +skipInput:!0,category:"navigation"},previousWord:{backward:!0,announce:!0,msgId:"previous_word",skipInput:!0,category:"navigation"},nextWord:{forward:!0,announce:!0,msgId:"next_word",skipInput:!0,category:"navigation"},previousLine:{backward:!0,announce:!0,msgId:"previous_line",category:"navigation"},nextLine:{forward:!0,announce:!0,msgId:"next_line",category:"navigation"},previousSentence:{backward:!0,announce:!0,msgId:"previous_sentence",skipInput:!0,category:"navigation"},nextSentence:{forward:!0, +announce:!0,msgId:"next_sentence",skipInput:!0,category:"navigation"},previousObject:{backward:!0,announce:!0,msgId:"previous_object",skipInput:!0,category:"navigation"},nextObject:{forward:!0,announce:!0,msgId:"next_object",skipInput:!0,category:"navigation"},previousGroup:{backward:!0,announce:!0,msgId:"previous_group",skipInput:!0,category:"navigation"},nextGroup:{forward:!0,announce:!0,msgId:"next_group",skipInput:!0,category:"navigation"},jumpToTop:{forward:!0,announce:!0,msgId:"jump_to_top", +category:"navigation"},jumpToBottom:{backward:!0,announce:!0,msgId:"jump_to_bottom",category:"navigation"},moveToStartOfLine:{forward:!0,announce:!0},moveToEndOfLine:{backward:!0,announce:!0},readFromHere:{forward:!0,announce:!1,msgId:"read_from_here",category:"navigation"},performDefaultAction:{disallowContinuation:!0,msgId:"perform_default_action",doDefault:!0,skipInput:!0,category:"navigation"},forceClickOnCurrentItem:{announce:!0,disallowContinuation:!0,allowEvents:!0,msgId:"force_click_on_current_item", +category:"navigation"},forceDoubleClickOnCurrentItem:{announce:!0,allowEvents:!0,disallowContinuation:!0},readLinkURL:{announce:!1,msgId:"read_link_url",category:"information"},readCurrentTitle:{announce:!1,msgId:"read_current_title",category:"information"},readCurrentURL:{announce:!1,msgId:"read_current_url",category:"information"},fullyDescribe:{announce:!1,msgId:"fully_describe",category:"information"},speakTimeAndDate:{announce:!1,msgId:"speak_time_and_date",category:"information"},toggleSelection:{announce:!0, +msgId:"toggle_selection",category:"information"},toggleSearchWidget:{announce:!1,disallowContinuation:!0,msgId:"toggle_search_widget",category:"information"},toggleKeyboardHelp:{announce:!1,disallowContinuation:!0,msgId:"show_power_key",category:"help_commands"},help:{announce:!1,msgId:"help",disallowOOBE:!0,disallowContinuation:!0,category:"help_commands"},contextMenu:{announce:!1,disallowContinuation:!0},showOptionsPage:{announce:!1,disallowContinuation:!0,msgId:"show_options_page",disallowOOBE:!0, +category:"help_commands"},showKbExplorerPage:{announce:!1,disallowContinuation:!0,msgId:"show_kb_explorer_page",disallowOOBE:!0,category:"help_commands"},showFormsList:{announce:!1,disallowContinuation:!0,nodeList:"formField",msgId:"show_forms_list",category:"overview"},showHeadingsList:{announce:!1,nodeList:"heading",disallowContinuation:!0,msgId:"show_headings_list",category:"overview"},showLandmarksList:{announce:!1,nodeList:"landmark",disallowContinuation:!0,msgId:"show_landmarks_list",category:"overview"}, +showLinksList:{announce:!1,nodeList:"link",disallowContinuation:!0,msgId:"show_links_list",category:"overview"},showTablesList:{announce:!1,nodeList:"table",disallowContinuation:!0,msgId:"show_tables_list",category:"overview"},startHistoryRecording:{announce:!1},stopHistoryRecording:{announce:!1},enableConsoleTts:{announce:!1},autorunner:{announce:!1},nextArticle:{forward:!0,findNext:"article"},nextButton:{forward:!0,findNext:"button",msgId:"next_button",category:"jump_commands"},nextCheckbox:{forward:!0, +findNext:"checkbox",msgId:"next_checkbox",category:"jump_commands"},nextComboBox:{forward:!0,findNext:"combobox",msgId:"next_combo_box",category:"jump_commands"},nextControl:{forward:!0,findNext:"control"},nextEditText:{forward:!0,findNext:"editText",msgId:"next_edit_text",category:"jump_commands"},nextFormField:{forward:!0,findNext:"formField",msgId:"next_form_field",category:"jump_commands"},nextGraphic:{forward:!0,findNext:"graphic",msgId:"next_graphic",category:"jump_commands"},nextHeading:{forward:!0, +findNext:"heading",msgId:"next_heading",category:"jump_commands"},nextHeading1:{forward:!0,findNext:"heading1",msgId:"next_heading1",category:"jump_commands"},nextHeading2:{forward:!0,findNext:"heading2",msgId:"next_heading2",category:"jump_commands"},nextHeading3:{forward:!0,findNext:"heading3",msgId:"next_heading3",category:"jump_commands"},nextHeading4:{forward:!0,findNext:"heading4",msgId:"next_heading4",category:"jump_commands"},nextHeading5:{forward:!0,findNext:"heading5",msgId:"next_heading5", +category:"jump_commands"},nextHeading6:{forward:!0,findNext:"heading6",msgId:"next_heading6",category:"jump_commands"},nextLandmark:{forward:!0,findNext:"landmark",msgId:"next_landmark",category:"jump_commands"},nextLink:{forward:!0,findNext:"link",msgId:"next_link",category:"jump_commands"},nextList:{forward:!0,findNext:"list",msgId:"next_list",category:"jump_commands"},nextListItem:{forward:!0,findNext:"listItem",msgId:"next_list_item",category:"jump_commands"},nextMath:{forward:!0,findNext:"math", +msgId:"next_math",category:"jump_commands"},nextMedia:{forward:!0,findNext:"media",msgId:"next_media",category:"jump_commands"},nextRadio:{forward:!0,findNext:"radio",msgId:"next_radio",category:"jump_commands"},nextSection:{forward:!0,findNext:"section"},nextSlider:{forward:!0,findNext:"slider"},nextTable:{forward:!0,findNext:"table",msgId:"next_table",category:"jump_commands"},nextVisitedLink:{forward:!0,findNext:"visitedLink",msgId:"next_visited_link",category:"jump_commands"},previousArticle:{backward:!0, +findNext:"article"},previousButton:{backward:!0,findNext:"button",msgId:"previous_button",category:"jump_commands"},previousCheckbox:{backward:!0,findNext:"checkbox",msgId:"previous_checkbox",category:"jump_commands"},previousComboBox:{backward:!0,findNext:"combobox",msgId:"previous_combo_box",category:"jump_commands"},previousControl:{backward:!0,findNext:"control"},previousEditText:{backward:!0,findNext:"editText",msgId:"previous_edit_text",category:"jump_commands"},previousFormField:{backward:!0, +findNext:"formField",msgId:"previous_form_field",category:"jump_commands"},previousGraphic:{backward:!0,findNext:"graphic",msgId:"previous_graphic",category:"jump_commands"},previousHeading:{backward:!0,findNext:"heading",msgId:"previous_heading",category:"jump_commands"},previousHeading1:{backward:!0,findNext:"heading1",msgId:"previous_heading1",category:"jump_commands"},previousHeading2:{backward:!0,findNext:"heading2",msgId:"previous_heading2",category:"jump_commands"},previousHeading3:{backward:!0, +findNext:"heading3",msgId:"previous_heading3",category:"jump_commands"},previousHeading4:{backward:!0,findNext:"heading4",msgId:"previous_heading4",category:"jump_commands"},previousHeading5:{backward:!0,findNext:"heading5",msgId:"previous_heading5",category:"jump_commands"},previousHeading6:{backward:!0,findNext:"heading6",msgId:"previous_heading6",category:"jump_commands"},previousLandmark:{backward:!0,findNext:"landmark",msgId:"previous_landmark",category:"jump_commands"},previousLink:{backward:!0, +findNext:"link",msgId:"previous_link",category:"jump_commands"},previousList:{backward:!0,findNext:"list",msgId:"previous_list",category:"jump_commands"},previousListItem:{backward:!0,findNext:"listItem",msgId:"previous_list_item",category:"jump_commands"},previousMath:{backward:!0,findNext:"math",msgId:"previous_math",category:"jump_commands"},previousMedia:{backward:!0,findNext:"media",msgId:"previous_media",category:"jump_commands"},previousRadio:{backward:!0,findNext:"radio",msgId:"previous_radio", +category:"jump_commands"},previousSection:{backward:!0,findNext:"section"},previousSlider:{backward:!0,findNext:"slider"},previousTable:{backward:!0,findNext:"table",msgId:"previous_table",category:"jump_commands"},previousVisitedLink:{backward:!0,findNext:"visitedLink",msgId:"previous_visited_link",category:"jump_commands"},announceHeaders:{announce:!1,msgId:"announce_headers",category:"tables"},speakTableLocation:{announce:!1,msgId:"speak_table_location",category:"tables"},goToFirstCell:{announce:!0, +msgId:"skip_to_beginning",category:"tables"},goToLastCell:{announce:!0,msgId:"skip_to_end",category:"tables"},goToRowFirstCell:{announce:!0,msgId:"skip_to_row_beginning",category:"tables"},goToRowLastCell:{announce:!0,msgId:"skip_to_row_end",category:"tables"},goToColFirstCell:{announce:!0,msgId:"skip_to_col_beginning",category:"tables"},goToColLastCell:{announce:!0,msgId:"skip_to_col_end",category:"tables"},previousRow:{backward:!0,announce:!0,skipInput:!0},previousCol:{backward:!0,announce:!0,skipInput:!0}, +nextRow:{forward:!0,announce:!0,skipInput:!0},nextCol:{forward:!0,announce:!0,skipInput:!0},enterShifter:{announce:!0,msgId:"enter_content",category:"navigation"},exitShifter:{announce:!0,msgId:"exit_content",category:"navigation"},exitShifterContent:{announce:!0},openLongDesc:{announce:!1,msgId:"open_long_desc",category:"information"},pauseAllMedia:{announce:!1,msgId:"pause_all_media",category:"information"},toggleSemantics:{announce:!1,msgId:"toggle_semantics",category:"information"},routing:{announce:!0, +msgId:"braille_routing",category:"braille"},pan_left:{backward:!0,announce:!0,msgId:"braille_pan_left",category:"braille"},pan_right:{forward:!0,announce:!0,msgId:"braille_pan_right",category:"braille"},line_up:{backward:!0,announce:!0,msgId:"braille_line_up",category:"braille"},line_down:{forward:!0,announce:!0,msgId:"braille_line_down",category:"braille"},top:{forward:!0,announce:!0,msgId:"braille_top",category:"braille"},bottom:{backward:!0,announce:!0,msgId:"braille_bottom",category:"braille"}, +debug:{announce:!1},nop:{announce:!1}}; +cvox.CommandStore.NODE_INFO_MAP={checkbox:{predicate:"checkboxPredicate",forwardError:"no_next_checkbox",backwardError:"no_previous_checkbox",typeMsg:"aria_role_checkbox"},radio:{predicate:"radioPredicate",forwardError:"no_next_radio_button",backwardError:"no_previous_radio_button",typeMsg:"aria_role_radio"},slider:{predicate:"sliderPredicate",forwardError:"no_next_slider",backwardError:"no_previous_slider",typeMsg:"aria_role_slider"},graphic:{predicate:"graphicPredicate",forwardError:"no_next_graphic", +backwardError:"no_previous_graphic",typeMsg:"UNUSED"},article:{predicate:"articlePredicate",forwardError:"no_next_ARTICLE",backwardError:"no_previous_ARTICLE",typeMsg:"TAG_ARTICLE"},button:{predicate:"buttonPredicate",forwardError:"no_next_button",backwardError:"no_previous_button",typeMsg:"aria_role_button"},combobox:{predicate:"comboBoxPredicate",forwardError:"no_next_combo_box",backwardError:"no_previous_combo_box",typeMsg:"aria_role_combobox"},editText:{predicate:"editTextPredicate",forwardError:"no_next_edit_text", +backwardError:"no_previous_edit_text",typeMsg:"input_type_text"},heading:{predicate:"headingPredicate",forwardError:"no_next_heading",backwardError:"no_previous_heading",typeMsg:"aria_role_heading"},heading1:{predicate:"heading1Predicate",forwardError:"no_next_heading_1",backwardError:"no_previous_heading_1"},heading2:{predicate:"heading2Predicate",forwardError:"no_next_heading_2",backwardError:"no_previous_heading_2"},heading3:{predicate:"heading3Predicate",forwardError:"no_next_heading_3",backwardError:"no_previous_heading_3"}, +heading4:{predicate:"heading4Predicate",forwardError:"no_next_heading_4",backwardError:"no_previous_heading_4"},heading5:{predicate:"heading5Predicate",forwardError:"no_next_heading_5",backwardError:"no_previous_heading_5"},heading6:{predicate:"heading6Predicate",forwardError:"no_next_heading_6",backwardError:"no_previous_heading_6"},link:{predicate:"linkPredicate",forwardError:"no_next_link",backwardError:"no_previous_link",typeMsg:"aria_role_link"},table:{predicate:"tablePredicate",forwardError:"no_next_table", +backwardError:"no_previous_table",typeMsg:"table_strategy"},visitedLink:{predicate:"visitedLinkPredicate",forwardError:"no_next_visited_link",backwardError:"no_previous_visited_link",typeMsg:"tag_link"},list:{predicate:"listPredicate",forwardError:"no_next_list",backwardError:"no_previous_list",typeMsg:"aria_role_list"},listItem:{predicate:"listItemPredicate",forwardError:"no_next_list_item",backwardError:"no_previous_list_item",typeMsg:"aria_role_listitem"},formField:{predicate:"formFieldPredicate", +forwardError:"no_next_form_field",backwardError:"no_previous_form_field",typeMsg:"aria_role_form"},landmark:{predicate:"landmarkPredicate",forwardError:"no_next_landmark",backwardError:"no_previous_landmark",typeMsg:"role_landmark"},math:{predicate:"mathPredicate",forwardError:"no_next_math",backwardError:"no_previous_math",typeMsg:"math_expr"},media:{predicate:"mediaPredicate",forwardError:"no_next_media_widget",backwardError:"no_previous_media_widget"},section:{predicate:"sectionPredicate",forwardError:"no_next_section", +backwardError:"no_previous_section"},control:{predicate:"controlPredicate",forwardError:"no_next_control",backwardError:"no_previous_control"}};cvox.Widget=function(){this.active=!1;this.initialNode=null;cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||(cvox.Widget.ref_=this)};cvox.Widget.prototype.isActive=function(){return this.active}; +cvox.Widget.prototype.show=function(){this.isActive()&&this.hide(!0);this.onKeyDown=goog.bind(this.onKeyDown,this);this.onKeyPress=goog.bind(this.onKeyPress,this);window.addEventListener("keydown",this.onKeyDown,!0);window.addEventListener("keypress",this.onKeyPress,!0);this.initialNode=cvox.ChromeVox.navigationManager.getCurrentNode();this.isStickyOn=cvox.ChromeVox.isStickyOn;this.getNameMsg()&&this.getHelpMsg()&&cvox.$m(this.getNameMsg()).andPause().andMessage(this.getHelpMsg()).speakFlush();cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_OPEN); +this.active=!0};cvox.Widget.prototype.hide=function(a){window.removeEventListener("keypress",this.onKeyPress,!0);window.removeEventListener("keydown",this.onKeyDown,!0);cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.OBJECT_CLOSE);a||(this.initialNode=1==this.initialNode.nodeType?this.initialNode:this.initialNode.parentNode,cvox.ApiImplementation.syncToNode(this.initialNode,!0,cvox.AbstractTts.QUEUE_MODE_QUEUE));this.active=!1}; +cvox.Widget.prototype.toggle=function(){this.isActive()?this.hide():this.show()};cvox.Widget.prototype.onKeyDown=function(a){if(27==a.keyCode)return this.hide(),a.preventDefault(),!0;if(9==a.keyCode)return this.hide(),!0;17==a.keyCode&&cvox.ChromeVox.tts.stop();a.stopPropagation();return!0};cvox.Widget.prototype.onKeyPress=function(){return!1};cvox.Widget.isActive=function(){return cvox.Widget.ref_&&cvox.Widget.ref_.isActive()||!1};cvox.NavDescription=function(a){this.context=a.context?a.context:"";this.text=a.text?a.text:"";this.userValue=a.userValue?a.userValue:"";this.annotation=a.annotation?a.annotation:"";this.earcons=a.earcons?a.earcons:[];this.personality=a.personality};cvox.NavDescription.prototype.isEmpty=function(){return 0==this.context.length&&0==this.earcons.length&&0==this.text.length&&0==this.userValue.length&&0==this.annotation.length}; +cvox.NavDescription.prototype.toString=function(){return'NavDescription(context="'+this.context+'" text="'+this.text+'" userValue="'+this.userValue+'" annotation="'+this.annotation+'")'};cvox.NavDescription.prototype.pushEarcon=function(a){this.earcons.push(a)}; +cvox.NavDescription.prototype.speak=function(a,b,c){function d(){var a={},b=cvox.AbstractTts.PERSONALITY_ANNOTATION,c;for(c in b)a[c]=b[c];return a}var e=[];this.context&&(e.push([this.context,a,d()]),a=1);e.push([this.text,a,this.personality?this.personality:{}]);a=1;this.userValue&&e.push([this.userValue,a,{}]);this.annotation&&e.push([this.annotation,a,d()]);a=e.length;for(var f=0;f<a;f++)0==f&&b&&(e[f][2].startCallback=b),f==a-1&&c&&(e[f][2].endCallback=c),cvox.ChromeVox.tts.speak.apply(cvox.ChromeVox.tts, +e[f])};cvox.NavDescription.prototype.equals=function(a){return this.context==a.context&&this.text==a.text&&this.userValue==a.userValue&&this.annotation==a.annotation};cvox.NavMathDescription=function(a){cvox.NavDescription.call(this,a);var b=this.personality?this.personality:{},c={};c.domain=a.domain?a.domain:"";c.style=a.style?a.style:"";b.math=c;this.personality=b};goog.inherits(cvox.NavMathDescription,cvox.NavDescription);cvox.SemanticUtil=function(){};cvox.SemanticUtil.objectsToKeys=function(a){a=Array.prototype.slice.call(arguments,0);var b=[];return b.concat.apply(b,a.map(Object.keys))};cvox.SemanticUtil.objectsToValues=function(a){a=Array.prototype.slice.call(arguments,0);var b=[],c=function(a){for(var c in a)b.push(a[c])};a.forEach(c);return b}; +cvox.SemanticUtil.unicodeToNumber=function(a){if(!a||2<a.length)return null;if(2==a.length){var b=a.charCodeAt(0);a=a.charCodeAt(1);return 55296<=b&&56319>=b&&!isNaN(a)?1024*(b-55296)+(a-56320)+65536:null}return a.charCodeAt(0)};cvox.SemanticUtil.numberToUnicode=function(a){if(65536<=a){var b=(a-65536)/1024+55296;a=(a-65536)%1024+56320;return String.fromCharCode(b,a)}return String.fromCharCode(a)};cvox.SemanticUtil.tagName=function(a){return a.tagName.toUpperCase()};cvox.SemanticUtil.IGNORETAGS="MERROR MPHANTOM MSPACE MACTION MALIGNGROUP MALIGNMARK MACTION".split(" "); +cvox.SemanticUtil.EMPTYTAGS=["MATH","MROW","MPADDED","MSTYLE"];cvox.SemanticUtil.purgeNodes=function(a){for(var b=[],c=0,d;d=a[c];c++){var e=cvox.SemanticUtil.tagName(d);-1==cvox.SemanticUtil.IGNORETAGS.indexOf(e)&&(-1!=cvox.SemanticUtil.EMPTYTAGS.indexOf(e)&&0==d.childNodes.length||b.push(d))}return b};cvox.SemanticAttr=function(){this.generalPunctuations="!\"#%&'*,:;?@\\\u00a1\u00a7\u00b6\u00b7\u00bf\u2017\u2020\u2021\u2022\u2023\u2024\u2025\u2027\u2030\u2031\u2038\u203b\u203c\u203d\u203e\u2041\u2042\u2043\u2047\u2048\u2049\u204b\u204c\u204d\u204e\u204f\u2050\u2051\u2053\u2055\u2056\u2058\u2059\u205a\u205b\u205c\u205d\u205e\ufe10\ufe13\ufe14\ufe15\ufe16\ufe30\ufe45\ufe46\ufe49\ufe4a\ufe4b\ufe4c\ufe50\ufe54\ufe55\ufe56\ufe57\ufe5f\ufe60\ufe61\ufe68\ufe6a\ufe6b\uff01\uff02\uff03\uff05\uff06\uff07\uff0a\uff0c\uff0f\uff1a\uff1b\uff1f\uff20\uff3c".split(""); +this.invisibleComma_=cvox.SemanticUtil.numberToUnicode(8291);this.generalPunctuations.push(this.invisibleComma_);this.ellipses="\u2026\u22ee\u22ef\u22f0\u22f1\ufe19".split("");this.fullStops=[".","\ufe52","\uff0e"];this.dashes="\u2012\u2013\u2014\u2015\u301c\ufe31\ufe32\ufe58".split("");this.primes="\u2032\u2033\u2034\u2035\u2036\u2037\u2057".split("");this.openClosePairs={"(":")","[":"]","{":"}","\u2045":"\u2046","\u2329":"\u232a","\u2768":"\u2769","\u276a":"\u276b","\u276c":"\u276d","\u276e":"\u276f", +"\u2770":"\u2771","\u2772":"\u2773","\u2774":"\u2775","\u27c5":"\u27c6","\u27e6":"\u27e7","\u27e8":"\u27e9","\u27ea":"\u27eb","\u27ec":"\u27ed","\u27ee":"\u27ef","\u2983":"\u2984","\u2985":"\u2986","\u2987":"\u2988","\u2989":"\u298a","\u298b":"\u298c","\u298d":"\u298e","\u298f":"\u2990","\u2991":"\u2992","\u2993":"\u2994","\u2995":"\u2996","\u2997":"\u2998","\u29d8":"\u29d9","\u29da":"\u29db","\u29fc":"\u29fd","\u2e22":"\u2e23","\u2e24":"\u2e25","\u2e26":"\u2e27","\u2e28":"\u2e29","\u3008":"\u3009", +"\u300a":"\u300b","\u300c":"\u300d","\u300e":"\u300f","\u3010":"\u3011","\u3014":"\u3015","\u3016":"\u3017","\u3018":"\u3019","\u301a":"\u301b","\u301d":"\u301e","\ufd3e":"\ufd3f","\ufe17":"\ufe18","\ufe59":"\ufe5a","\ufe5b":"\ufe5c","\ufe5d":"\ufe5e","\uff08":"\uff09","\uff3b":"\uff3d","\uff5b":"\uff5d","\uff5f":"\uff60","\uff62":"\uff63","\u2308":"\u2309","\u230a":"\u230b","\u230c":"\u230d","\u230e":"\u230f","\u231c":"\u231d","\u231e":"\u231f","\u239b":"\u239e","\u239c":"\u239f","\u239d":"\u23a0", +"\u23a1":"\u23a4","\u23a2":"\u23a5","\u23a3":"\u23a6","\u23a7":"\u23ab","\u23a8":"\u23ac","\u23a9":"\u23ad","\u23b0":"\u23b1","\u23b8":"\u23b9"};this.topBottomPairs={"\u23b4":"\u23b5","\u23dc":"\u23dd","\u23de":"\u23df","\u23e0":"\u23e1","\ufe35":"\ufe36","\ufe37":"\ufe38","\ufe39":"\ufe3a","\ufe3b":"\ufe3c","\ufe3d":"\ufe3e","\ufe3f":"\ufe40","\ufe41":"\ufe42","\ufe43":"\ufe44","\ufe47":"\ufe48"};this.leftFences=cvox.SemanticUtil.objectsToKeys(this.openClosePairs);this.rightFences=cvox.SemanticUtil.objectsToValues(this.openClosePairs); +this.rightFences.push("\u301f");this.topFences=cvox.SemanticUtil.objectsToKeys(this.topBottomPairs);this.bottomFences=cvox.SemanticUtil.objectsToValues(this.topBottomPairs);this.neutralFences="|\u00a6\u2016\u2758\u2980\u2af4\uffe4\uff5c".split("");this.capitalLatin="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");this.smallLatin="abcdefghijklmnopqrstuvwxyz\u0131\u0237".split("");this.capitalLatinFullWidth="\uff21\uff22\uff23\uff24\uff25\uff26\uff27\uff28\uff29\uff2a\uff2b\uff2c\uff2d\uff2e\uff2f\uff30\uff31\uff32\uff33\uff34\uff35\uff36\uff37\uff38\uff39\uff3a".split(""); +this.smallLatinFullWidth="\uff41\uff42\uff43\uff44\uff45\uff46\uff47\uff48\uff49\uff4a\uff4b\uff4c\uff4d\uff4e\uff4f\uff50\uff51\uff52\uff53\uff54\uff55\uff56\uff57\uff58\uff59\uff5a".split("");this.capitalLatinBold="\ud835\udc00 \ud835\udc01 \ud835\udc02 \ud835\udc03 \ud835\udc04 \ud835\udc05 \ud835\udc06 \ud835\udc07 \ud835\udc08 \ud835\udc09 \ud835\udc0a \ud835\udc0b \ud835\udc0c \ud835\udc0d \ud835\udc0e \ud835\udc0f \ud835\udc10 \ud835\udc11 \ud835\udc12 \ud835\udc13 \ud835\udc14 \ud835\udc15 \ud835\udc16 \ud835\udc17 \ud835\udc18 \ud835\udc19".split(" "); +this.smallLatinBold="\ud835\udc1a \ud835\udc1b \ud835\udc1c \ud835\udc1d \ud835\udc1e \ud835\udc1f \ud835\udc20 \ud835\udc21 \ud835\udc22 \ud835\udc23 \ud835\udc24 \ud835\udc25 \ud835\udc26 \ud835\udc27 \ud835\udc28 \ud835\udc29 \ud835\udc2a \ud835\udc2b \ud835\udc2c \ud835\udc2d \ud835\udc2e \ud835\udc2f \ud835\udc30 \ud835\udc31 \ud835\udc32 \ud835\udc33".split(" ");this.capitalLatinItalic="\ud835\udc34 \ud835\udc35 \ud835\udc36 \ud835\udc37 \ud835\udc38 \ud835\udc39 \ud835\udc3a \ud835\udc3b \ud835\udc3c \ud835\udc3d \ud835\udc3e \ud835\udc3f \ud835\udc40 \ud835\udc41 \ud835\udc42 \ud835\udc43 \ud835\udc44 \ud835\udc45 \ud835\udc46 \ud835\udc47 \ud835\udc48 \ud835\udc49 \ud835\udc4a \ud835\udc4b \ud835\udc4c \ud835\udc4d".split(" "); +this.smallLatinItalic="\ud835\udc4e \ud835\udc4f \ud835\udc50 \ud835\udc51 \ud835\udc52 \ud835\udc53 \ud835\udc54 \u210e \ud835\udc56 \ud835\udc57 \ud835\udc58 \ud835\udc59 \ud835\udc5a \ud835\udc5b \ud835\udc5c \ud835\udc5d \ud835\udc5e \ud835\udc5f \ud835\udc60 \ud835\udc61 \ud835\udc62 \ud835\udc63 \ud835\udc64 \ud835\udc65 \ud835\udc66 \ud835\udc67 \ud835\udea4 \ud835\udea5".split(" ");this.capitalLatinScript="\ud835\udc9c \u212c \ud835\udc9e \ud835\udc9f \u2130 \u2131 \ud835\udca2 \u210b \u2110 \ud835\udca5 \ud835\udca6 \u2112 \u2133 \ud835\udca9 \ud835\udcaa \ud835\udcab \ud835\udcac \u211b \ud835\udcae \ud835\udcaf \ud835\udcb0 \ud835\udcb1 \ud835\udcb2 \ud835\udcb3 \ud835\udcb4 \ud835\udcb5 \u2118".split(" "); +this.smallLatinScript="\ud835\udcb6 \ud835\udcb7 \ud835\udcb8 \ud835\udcb9 \u212f \ud835\udcbb \u210a \ud835\udcbd \ud835\udcbe \ud835\udcbf \ud835\udcc0 \ud835\udcc1 \ud835\udcc2 \ud835\udcc3 \u2134 \ud835\udcc5 \ud835\udcc6 \ud835\udcc7 \ud835\udcc8 \ud835\udcc9 \ud835\udcca \ud835\udccb \ud835\udccc \ud835\udccd \ud835\udcce \ud835\udccf \u2113".split(" ");this.capitalLatinBoldScript="\ud835\udcd0 \ud835\udcd1 \ud835\udcd2 \ud835\udcd3 \ud835\udcd4 \ud835\udcd5 \ud835\udcd6 \ud835\udcd7 \ud835\udcd8 \ud835\udcd9 \ud835\udcda \ud835\udcdb \ud835\udcdc \ud835\udcdd \ud835\udcde \ud835\udcdf \ud835\udce0 \ud835\udce1 \ud835\udce2 \ud835\udce3 \ud835\udce4 \ud835\udce5 \ud835\udce6 \ud835\udce7 \ud835\udce8 \ud835\udce9".split(" "); +this.smallLatinBoldScript="\ud835\udcea \ud835\udceb \ud835\udcec \ud835\udced \ud835\udcee \ud835\udcef \ud835\udcf0 \ud835\udcf1 \ud835\udcf2 \ud835\udcf3 \ud835\udcf4 \ud835\udcf5 \ud835\udcf6 \ud835\udcf7 \ud835\udcf8 \ud835\udcf9 \ud835\udcfa \ud835\udcfb \ud835\udcfc \ud835\udcfd \ud835\udcfe \ud835\udcff \ud835\udd00 \ud835\udd01 \ud835\udd02 \ud835\udd03".split(" ");this.capitalLatinFraktur="\ud835\udd04 \ud835\udd05 \u212d \ud835\udd07 \ud835\udd08 \ud835\udd09 \ud835\udd0a \u210c \u2111 \ud835\udd0d \ud835\udd0e \ud835\udd0f \ud835\udd10 \ud835\udd11 \ud835\udd12 \ud835\udd13 \ud835\udd14 \u211c \ud835\udd16 \ud835\udd17 \ud835\udd18 \ud835\udd19 \ud835\udd1a \ud835\udd1b \ud835\udd1c \u2128".split(" "); +this.smallLatinFraktur="\ud835\udd1e \ud835\udd1f \ud835\udd20 \ud835\udd21 \ud835\udd22 \ud835\udd23 \ud835\udd24 \ud835\udd25 \ud835\udd26 \ud835\udd27 \ud835\udd28 \ud835\udd29 \ud835\udd2a \ud835\udd2b \ud835\udd2c \ud835\udd2d \ud835\udd2e \ud835\udd2f \ud835\udd30 \ud835\udd31 \ud835\udd32 \ud835\udd33 \ud835\udd34 \ud835\udd35 \ud835\udd36 \ud835\udd37".split(" ");this.capitalLatinDoubleStruck="\ud835\udd38 \ud835\udd39 \u2102 \ud835\udd3b \ud835\udd3c \ud835\udd3d \ud835\udd3e \u210d \ud835\udd40 \ud835\udd41 \ud835\udd42 \ud835\udd43 \ud835\udd44 \u2115 \ud835\udd46 \u2119 \u211a \u211d \ud835\udd4a \ud835\udd4b \ud835\udd4c \ud835\udd4d \ud835\udd4e \ud835\udd4f \ud835\udd50 \u2124".split(" "); +this.smallLatinDoubleStruck="\ud835\udd52 \ud835\udd53 \ud835\udd54 \ud835\udd55 \ud835\udd56 \ud835\udd57 \ud835\udd58 \ud835\udd59 \ud835\udd5a \ud835\udd5b \ud835\udd5c \ud835\udd5d \ud835\udd5e \ud835\udd5f \ud835\udd60 \ud835\udd61 \ud835\udd62 \ud835\udd63 \ud835\udd64 \ud835\udd65 \ud835\udd66 \ud835\udd67 \ud835\udd68 \ud835\udd69 \ud835\udd6a \ud835\udd6b".split(" ");this.capitalLatinBoldFraktur="\ud835\udd6c \ud835\udd6d \ud835\udd6e \ud835\udd6f \ud835\udd70 \ud835\udd71 \ud835\udd72 \ud835\udd73 \ud835\udd74 \ud835\udd75 \ud835\udd76 \ud835\udd77 \ud835\udd78 \ud835\udd79 \ud835\udd7a \ud835\udd7b \ud835\udd7c \ud835\udd7d \ud835\udd7e \ud835\udd7f \ud835\udd80 \ud835\udd81 \ud835\udd82 \ud835\udd83 \ud835\udd84 \ud835\udd85".split(" "); +this.smallLatinBoldFraktur="\ud835\udd86 \ud835\udd87 \ud835\udd88 \ud835\udd89 \ud835\udd8a \ud835\udd8b \ud835\udd8c \ud835\udd8d \ud835\udd8e \ud835\udd8f \ud835\udd90 \ud835\udd91 \ud835\udd92 \ud835\udd93 \ud835\udd94 \ud835\udd95 \ud835\udd96 \ud835\udd97 \ud835\udd98 \ud835\udd99 \ud835\udd9a \ud835\udd9b \ud835\udd9c \ud835\udd9d \ud835\udd9e \ud835\udd9f".split(" ");this.capitalLatinSansSerif="\ud835\udda0 \ud835\udda1 \ud835\udda2 \ud835\udda3 \ud835\udda4 \ud835\udda5 \ud835\udda6 \ud835\udda7 \ud835\udda8 \ud835\udda9 \ud835\uddaa \ud835\uddab \ud835\uddac \ud835\uddad \ud835\uddae \ud835\uddaf \ud835\uddb0 \ud835\uddb1 \ud835\uddb2 \ud835\uddb3 \ud835\uddb4 \ud835\uddb5 \ud835\uddb6 \ud835\uddb7 \ud835\uddb8 \ud835\uddb9".split(" "); +this.smallLatinSansSerif="\ud835\uddba \ud835\uddbb \ud835\uddbc \ud835\uddbd \ud835\uddbe \ud835\uddbf \ud835\uddc0 \ud835\uddc1 \ud835\uddc2 \ud835\uddc3 \ud835\uddc4 \ud835\uddc5 \ud835\uddc6 \ud835\uddc7 \ud835\uddc8 \ud835\uddc9 \ud835\uddca \ud835\uddcb \ud835\uddcc \ud835\uddcd \ud835\uddce \ud835\uddcf \ud835\uddd0 \ud835\uddd1 \ud835\uddd2 \ud835\uddd3".split(" ");this.capitalLatinSansSerifBold="\ud835\uddd4 \ud835\uddd5 \ud835\uddd6 \ud835\uddd7 \ud835\uddd8 \ud835\uddd9 \ud835\uddda \ud835\udddb \ud835\udddc \ud835\udddd \ud835\uddde \ud835\udddf \ud835\udde0 \ud835\udde1 \ud835\udde2 \ud835\udde3 \ud835\udde4 \ud835\udde5 \ud835\udde6 \ud835\udde7 \ud835\udde8 \ud835\udde9 \ud835\uddea \ud835\uddeb \ud835\uddec \ud835\udded".split(" "); +this.smallLatinSansSerifBold="\ud835\uddee \ud835\uddef \ud835\uddf0 \ud835\uddf1 \ud835\uddf2 \ud835\uddf3 \ud835\uddf4 \ud835\uddf5 \ud835\uddf6 \ud835\uddf7 \ud835\uddf8 \ud835\uddf9 \ud835\uddfa \ud835\uddfb \ud835\uddfc \ud835\uddfd \ud835\uddfe \ud835\uddff \ud835\ude00 \ud835\ude01 \ud835\ude02 \ud835\ude03 \ud835\ude04 \ud835\ude05 \ud835\ude06 \ud835\ude07".split(" ");this.capitalLatinSansSerifItalic="\ud835\ude08 \ud835\ude09 \ud835\ude0a \ud835\ude0b \ud835\ude0c \ud835\ude0d \ud835\ude0e \ud835\ude0f \ud835\ude10 \ud835\ude11 \ud835\ude12 \ud835\ude13 \ud835\ude14 \ud835\ude15 \ud835\ude16 \ud835\ude17 \ud835\ude18 \ud835\ude19 \ud835\ude1a \ud835\ude1b \ud835\ude1c \ud835\ude1d \ud835\ude1e \ud835\ude1f \ud835\ude20 \ud835\ude21".split(" "); +this.smallLatinSansSerifItalic="\ud835\ude22 \ud835\ude23 \ud835\ude24 \ud835\ude25 \ud835\ude26 \ud835\ude27 \ud835\ude28 \ud835\ude29 \ud835\ude2a \ud835\ude2b \ud835\ude2c \ud835\ude2d \ud835\ude2e \ud835\ude2f \ud835\ude30 \ud835\ude31 \ud835\ude32 \ud835\ude33 \ud835\ude34 \ud835\ude35 \ud835\ude36 \ud835\ude37 \ud835\ude38 \ud835\ude39 \ud835\ude3a \ud835\ude3b".split(" ");this.capitalLatinMonospace="\ud835\ude70 \ud835\ude71 \ud835\ude72 \ud835\ude73 \ud835\ude74 \ud835\ude75 \ud835\ude76 \ud835\ude77 \ud835\ude78 \ud835\ude79 \ud835\ude7a \ud835\ude7b \ud835\ude7c \ud835\ude7d \ud835\ude7e \ud835\ude7f \ud835\ude80 \ud835\ude81 \ud835\ude82 \ud835\ude83 \ud835\ude84 \ud835\ude85 \ud835\ude86 \ud835\ude87 \ud835\ude88 \ud835\ude89".split(" "); +this.smallLatinMonospace="\ud835\ude8a \ud835\ude8b \ud835\ude8c \ud835\ude8d \ud835\ude8e \ud835\ude8f \ud835\ude90 \ud835\ude91 \ud835\ude92 \ud835\ude93 \ud835\ude94 \ud835\ude95 \ud835\ude96 \ud835\ude97 \ud835\ude98 \ud835\ude99 \ud835\ude9a \ud835\ude9b \ud835\ude9c \ud835\ude9d \ud835\ude9e \ud835\ude9f \ud835\udea0 \ud835\udea1 \ud835\udea2 \ud835\udea3".split(" ");this.latinDoubleStruckItalic=["\u2145","\u2146","\u2147","\u2148","\u2149"];this.capitalGreek="\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9".split(""); +this.smallGreek="\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9".split("");this.capitalGreekBold="\ud835\udea8 \ud835\udea9 \ud835\udeaa \ud835\udeab \ud835\udeac \ud835\udead \ud835\udeae \ud835\udeaf \ud835\udeb0 \ud835\udeb1 \ud835\udeb2 \ud835\udeb3 \ud835\udeb4 \ud835\udeb5 \ud835\udeb6 \ud835\udeb7 \ud835\udeb8 \ud835\udeba \ud835\udebb \ud835\udebc \ud835\udebd \ud835\udebe \ud835\udebf \ud835\udec0".split(" "); +this.smallGreekBold="\ud835\udec2 \ud835\udec3 \ud835\udec4 \ud835\udec5 \ud835\udec6 \ud835\udec7 \ud835\udec8 \ud835\udec9 \ud835\udeca \ud835\udecb \ud835\udecc \ud835\udecd \ud835\udece \ud835\udecf \ud835\uded0 \ud835\uded1 \ud835\uded2 \ud835\uded3 \ud835\uded4 \ud835\uded5 \ud835\uded6 \ud835\uded7 \ud835\uded8 \ud835\uded9 \ud835\udeda".split(" ");this.capitalGreekItalic="\ud835\udee2 \ud835\udee3 \ud835\udee4 \ud835\udee5 \ud835\udee6 \ud835\udee7 \ud835\udee8 \ud835\udee9 \ud835\udeea \ud835\udeeb \ud835\udeec \ud835\udeed \ud835\udeee \ud835\udeef \ud835\udef0 \ud835\udef1 \ud835\udef2 \ud835\udef4 \ud835\udef5 \ud835\udef6 \ud835\udef7 \ud835\udef8 \ud835\udef9 \ud835\udefa".split(" "); +this.smallGreekItalic="\ud835\udefc \ud835\udefd \ud835\udefe \ud835\udeff \ud835\udf00 \ud835\udf01 \ud835\udf02 \ud835\udf03 \ud835\udf04 \ud835\udf05 \ud835\udf06 \ud835\udf07 \ud835\udf08 \ud835\udf09 \ud835\udf0a \ud835\udf0b \ud835\udf0c \ud835\udf0d \ud835\udf0e \ud835\udf0f \ud835\udf10 \ud835\udf11 \ud835\udf12 \ud835\udf13 \ud835\udf14".split(" ");this.capitalGreekSansSerifBold="\ud835\udf56 \ud835\udf57 \ud835\udf58 \ud835\udf59 \ud835\udf5a \ud835\udf5b \ud835\udf5c \ud835\udf5d \ud835\udf5e \ud835\udf5f \ud835\udf60 \ud835\udf61 \ud835\udf62 \ud835\udf63 \ud835\udf64 \ud835\udf65 \ud835\udf66 \ud835\udf68 \ud835\udf69 \ud835\udf6a \ud835\udf6b \ud835\udf6c \ud835\udf6d \ud835\udf6e".split(" "); +this.smallGreekSansSerifBold="\ud835\udf70 \ud835\udf71 \ud835\udf72 \ud835\udf73 \ud835\udf74 \ud835\udf75 \ud835\udf76 \ud835\udf77 \ud835\udf78 \ud835\udf79 \ud835\udf7a \ud835\udf7b \ud835\udf7c \ud835\udf7d \ud835\udf7e \ud835\udf7f \ud835\udf80 \ud835\udf81 \ud835\udf82 \ud835\udf83 \ud835\udf84 \ud835\udf85 \ud835\udf86 \ud835\udf87 \ud835\udf88".split(" ");this.greekDoubleStruck=["\u213c","\u213d","\u213e","\u213f"];this.hebrewLetters=["\u2135","\u2136","\u2137","\u2138"];this.additions="+\u00b1\u2213\u2214\u2227\u2228\u2229\u222a\u228c\u2293\u2294\u229d\u229e\u22a4\u22a5\u22ba\u22bb\u22bc\u22c4\u22ce\u22cf\u22d2\u22d3\u25b3\u25b7\u25bd\u25c1\u2a5e\u2295".split(""); +this.invisiblePlus_=cvox.SemanticUtil.numberToUnicode(8292);this.additions.push(this.invisiblePlus_);this.multiplications="\u2020\u2021\u2210\u2217\u2218\u2219\u2240\u229a\u229b\u22a0\u22a1\u22c5\u22c6\u22c7\u22c9\u22ca\u22cb\u22cc\u25cb".split("");this.invisibleTimes_=cvox.SemanticUtil.numberToUnicode(8290);this.multiplications.push(this.invisibleTimes_);this.subtractions="-\u2052\u207b\u208b\u2212\u2216\u2238\u2242\u2296\u229f\u2796\u2a29\u2a2a\u2a2b\u2a2c\u2a3a\u2a41\u2a6c\ufe63\uff0d\u2010\u2011".split(""); +this.divisions="/\u00f7\u2044\u2215\u2298\u27cc\u29bc\u2a38".split("");this.functionApplication_=cvox.SemanticUtil.numberToUnicode(8289);this.equalities="=~\u207c\u208c\u223c\u223d\u2243\u2245\u2248\u224a\u224b\u224c\u224d\u224e\u2251\u2252\u2253\u2254\u2255\u2256\u2257\u2258\u2259\u225a\u225b\u225c\u225d\u225e\u225f\u2261\u2263\u29e4\u2a66\u2a6e\u2a6f\u2a70\u2a71\u2a72\u2a73\u2a74\u2a75\u2a76\u2a77\u2a78\u22d5\u2a6d\u2a6a\u2a6b\u2a6c\ufe66\uff1d".split("");this.inequalities="<>\u2241\u2242\u2244\u2246\u2247\u2249\u224f\u2250\u2260\u2262\u2264\u2265\u2266\u2267\u2268\u2269\u226a\u226b\u226c\u226d\u226e\u226f\u2270\u2271\u2272\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227a\u227b\u227c\u227d\u227e\u227f\u2280\u2281\u22d6\u22d7\u22d8\u22d9\u22da\u22db\u22dc\u22dd\u22de\u22df\u22e0\u22e1\u22e2\u22e3\u22e4\u22e5\u22e6\u22e7\u22e8\u22e9\u2a79\u2a7a\u2a7b\u2a7c\u2a7d\u2a7e\u2a7f\u2a80\u2a81\u2a82\u2a83\u2a84\u2a85\u2a86\u2a87\u2a88\u2a89\u2a8a\u2a8b\u2a8c\u2a8d\u2a8e\u2a8f\u2a90\u2a91\u2a92\u2a93\u2a94\u2a95\u2a96\u2a97\u2a98\u2a99\u2a9a\u2a9b\u2a9c\u2a9d\u2a9e\u2a9f\u2aa0\u2aa1\u2aa2\u2aa3\u2aa4\u2aa5\u2aa6\u2aa7\u2aa8\u2aa9\u2aaa\u2aab\u2aac\u2aad\u2aae\u2aaf\u2ab0\u2ab1\u2ab2\u2ab3\u2ab4\u2ab5\u2ab6\u2ab7\u2ab8\u2ab9\u2aba\u2abb\u2abc\u2af7\u2af8\u2af9\u2afa\u29c0\u29c1\ufe64\ufe65\uff1c\uff1e".split(""); +this.relations=[];this.arrows="\u2190\u2191\u2192\u2193\u2194\u2195\u2196\u2197\u2198\u2199\u219a\u219b\u219c\u219d\u219e\u219f\u21a0\u21a1\u21a2\u21a3\u21a4\u21a5\u21a6\u21a7\u21a8\u21a9\u21aa\u21ab\u21ac\u21ad\u21ae\u21af\u21b0\u21b1\u21b2\u21b3\u21b4\u21b5\u21b6\u21b7\u21b8\u21b9\u21ba\u21bb\u21c4\u21c5\u21c6\u21c7\u21c8\u21c9\u21ca\u21cd\u21ce\u21cf\u21d0\u21d1\u21d2\u21d3\u21d4\u21d5\u21d6\u21d7\u21d8\u21d9\u21da\u21db\u21dc\u21dd\u21de\u21df\u21e0\u21e1\u21e2\u21e3\u21e4\u21e5\u21e6\u21e7\u21e8\u21e9\u21ea\u21eb\u21ec\u21ed\u21ee\u21ef\u21f0\u21f1\u21f2\u21f3\u21f4\u21f5\u21f6\u21f7\u21f8\u21f9\u21fa\u21fb\u21fc\u21fd\u21fe\u21ff\u2301\u2303\u2304\u2324\u238b\u2794\u2798\u2799\u279a\u279b\u279c\u279d\u279e\u279f\u27a0\u27a1\u27a2\u27a3\u27a4\u27a5\u27a6\u27a7\u27a8\u27a9\u27aa\u27ab\u27ac\u27ad\u27ae\u27af\u27b1\u27b2\u27b3\u27b4\u27b5\u27b6\u27b7\u27b8\u27b9\u27ba\u27bb\u27bc\u27bd\u27be\u27f0\u27f1\u27f2\u27f3\u27f4\u27f5\u27f6\u27f7\u27f8\u27f9\u27fa\u27fb\u27fc\u27fd\u27fe\u27ff\u2900\u2901\u2902\u2903\u2904\u2905\u2906\u2907\u2908\u2909\u290a\u290b\u290c\u290d\u290e\u290f\u2910\u2911\u2912\u2913\u2914\u2915\u2916\u2917\u2918\u2919\u291a\u291b\u291c\u291d\u291e\u291f\u2920\u2921\u2922\u2923\u2924\u2925\u2926\u2927\u2928\u2929\u292a\u292d\u292e\u292f\u2930\u2931\u2932\u2933\u2934\u2935\u2936\u2937\u2938\u2939\u293a\u293b\u293c\u293d\u293e\u293f\u2940\u2941\u2942\u2943\u2944\u2945\u2946\u2947\u2948\u2949\u2970\u2971\u2972\u2973\u2974\u2975\u2976\u2977\u2978\u2979\u297a\u297b\u29b3\u29b4\u29bd\u29ea\u29ec\u29ed\u2a17\u2b00\u2b01\u2b02\u2b03\u2b04\u2b05\u2b06\u2b07\u2b08\u2b09\u2b0a\u2b0b\u2b0c\u2b0d\u2b0e\u2b0f\u2b10\u2b11\u2b30\u2b31\u2b32\u2b33\u2b34\u2b35\u2b36\u2b37\u2b38\u2b39\u2b3a\u2b3b\u2b3c\u2b3d\u2b3e\u2b3f\u2b40\u2b41\u2b42\u2b43\u2b44\u2b45\u2b46\u2b47\u2b48\u2b49\u2b4a\u2b4b\u2b4c\uffe9\uffea\uffeb\uffec\u21bc\u21bd\u21be\u21bf\u21c0\u21c1\u21c2\u21c3\u21cb\u21cc\u294a\u294b\u294c\u294d\u294e\u294f\u2950\u2951\u2952\u2953\u2954\u2955\u2956\u2957\u2958\u2959\u295a\u295b\u295c\u295d\u295e\u295f\u2960\u2961\u2962\u2963\u2964\u2965\u2966\u2967\u2968\u2969\u296a\u296b\u296c\u296d\u296e\u296f\u297c\u297d\u297e\u297f".split(""); +this.sumOps="\u2140\u220f\u2210\u2211\u22c0\u22c1\u22c2\u22c3\u2a00\u2a01\u2a02\u2a03\u2a04\u2a05\u2a06\u2a07\u2a08\u2a09\u2a0a\u2a0b\u2afc\u2aff".split("");this.intOps="\u222b\u222c\u222d\u222e\u222f\u2230\u2231\u2232\u2233\u2a0c\u2a0d\u2a0e\u2a0f\u2a10\u2a11\u2a12\u2a13\u2a14\u2a15\u2a16\u2a17\u2a18\u2a19\u2a1a\u2a1b\u2a1c".split("");this.prefixOps=["\u2200","\u2203"];this.digitsNormal="0123456789".split("");this.digitsFullWidth="\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19".split(""); +this.digitsBold="\ud835\udfce \ud835\udfcf \ud835\udfd0 \ud835\udfd1 \ud835\udfd2 \ud835\udfd3 \ud835\udfd4 \ud835\udfd5 \ud835\udfd6 \ud835\udfd7".split(" ");this.digitsDoubleStruck="\ud835\udfd8 \ud835\udfd9 \ud835\udfda \ud835\udfdb \ud835\udfdc \ud835\udfdd \ud835\udfde \ud835\udfdf \ud835\udfe0 \ud835\udfe1".split(" ");this.digitsSansSerif="\ud835\udfe2 \ud835\udfe3 \ud835\udfe4 \ud835\udfe5 \ud835\udfe6 \ud835\udfe7 \ud835\udfe8 \ud835\udfe9 \ud835\udfea \ud835\udfeb".split(" ");this.digitsSansSerifBold= +"\ud835\udfec \ud835\udfed \ud835\udfee \ud835\udfef \ud835\udff0 \ud835\udff1 \ud835\udff2 \ud835\udff3 \ud835\udff4 \ud835\udff5".split(" ");this.digitsMonospace="\ud835\udff6 \ud835\udff7 \ud835\udff8 \ud835\udff9 \ud835\udffa \ud835\udffb \ud835\udffc \ud835\udffd \ud835\udffe \ud835\udfff".split(" ");this.digitsSuperscript="\u00b2\u00b3\u00b9\u2070\u2074\u2075\u2076\u2077\u2078\u2079".split("");this.digitsSubscript="\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089".split("");this.fractions= +"\u00bc\u00bd\u00be\u2150\u2151\u2152\u2153\u2154\u2155\u2156\u2157\u2158\u2159\u215a\u215b\u215c\u215d\u215e\u215f\u2189".split("");this.enclosedNumbers="\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468\u2469\u246a\u246b\u246c\u246d\u246e\u246f\u2470\u2471\u2472\u2473\u24ea\u24eb\u24ec\u24ed\u24ee\u24ef\u24f0\u24f1\u24f2\u24f3\u24f4\u24f5\u24f6\u24f7\u24f8\u24f9\u24fa\u24fb\u24fc\u24fd\u24fe\u24ff\u2776\u2777\u2778\u2779\u277a\u277b\u277c\u277d\u277e\u277f\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787\u2788\u2789\u278a\u278b\u278c\u278d\u278e\u278f\u2790\u2791\u2792\u2793\u3248\u3249\u324a\u324b\u324c\u324d\u324e\u324f\u3251\u3252\u3253\u3254\u3255\u3256\u3257\u3258\u3259\u325a\u325b\u325c\u325d\u325e\u325f\u32b1\u32b2\u32b3\u32b4\u32b5\u32b6\u32b7\u32b8\u32b9\u32ba\u32bb\u32bc\u32bd\u32be\u32bf".split(""); +this.fencedNumbers="\u2474\u2475\u2476\u2477\u2478\u2479\u247a\u247b\u247c\u247d\u247e\u247f\u2480\u2481\u2482\u2483\u2484\u2485\u2486\u2487".split("");this.punctuatedNumbers="\u2488 \u2489 \u248a \u248b \u248c \u248d \u248e \u248f \u2490 \u2491 \u2492 \u2493 \u2494 \u2495 \u2496 \u2497 \u2498 \u2499 \u249a \u249b \ud83c\udd00 \ud83c\udd01 \ud83c\udd02 \ud83c\udd03 \ud83c\udd04 \ud83c\udd05 \ud83c\udd06 \ud83c\udd07 \ud83c\udd08 \ud83c\udd09 \ud83c\udd0a".split(" ");this.numbers=this.fractions.concat(this.digitsSuperscript, +this.digitsSubscript,this.enclosedNumbers,this.fencedNumbers,this.punctuatedNumbers);this.trigonometricFunctions="cos cot csc sec sin tan arccos arccot arccsc arcsec arcsin arctan".split(" ");this.hyperbolicFunctions="cosh coth csch sech sinh tanh arcosh arcoth arcsch arsech arsinh artanh arccosh arccoth arccsch arcsech arcsinh arctanh".split(" ");this.algebraicFunctions="deg det dim hom ker Tr tr".split(" ");this.elementaryFunctions="log ln lg exp expt gcd gcd arg im re Pr".split(" ");this.prefixFunctions= +this.trigonometricFunctions.concat(this.hyperbolicFunctions,this.algebraicFunctions,this.elementaryFunctions);this.limitFunctions="inf lim liminf limsup max min sup injlim projlim".split(" ");this.infixFunctions=["mod","rem"];this.symbolSetToSemantic_=[{set:this.generalPunctuations,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.ellipses,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.ELLIPSIS},{set:this.fullStops,type:cvox.SemanticAttr.Type.PUNCTUATION, +role:cvox.SemanticAttr.Role.FULLSTOP},{set:this.dashes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.DASH},{set:this.primes,type:cvox.SemanticAttr.Type.PUNCTUATION,role:cvox.SemanticAttr.Role.PRIME},{set:this.leftFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.OPEN},{set:this.rightFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.CLOSE},{set:this.topFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.TOP},{set:this.bottomFences, +type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.BOTTOM},{set:this.neutralFences,type:cvox.SemanticAttr.Type.FENCE,role:cvox.SemanticAttr.Role.NEUTRAL},{set:this.smallLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatin,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER, +role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalLatinFullWidth,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalLatinBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLD}, +{set:this.smallLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalLatinItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SCRIPT},{set:this.capitalLatinScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER, +font:cvox.SemanticAttr.Font.SCRIPT},{set:this.smallLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.capitalLatinBoldScript,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDSCRIPT},{set:this.smallLatinFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.capitalLatinFraktur, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.FRAKTUR},{set:this.smallLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.capitalLatinDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.smallLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER, +font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.capitalLatinBoldFraktur,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.BOLDFRAKTUR},{set:this.smallLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.capitalLatinSansSerif,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.smallLatinSansSerifBold, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalLatinSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.smallLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.capitalLatinSansSerifItalic,type:cvox.SemanticAttr.Type.IDENTIFIER, +role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.SANSSERIFITALIC},{set:this.smallLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.capitalLatinMonospace,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.latinDoubleStruckItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.LATINLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCKITALIC}, +{set:this.smallGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.capitalGreek,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.smallGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.BOLD},{set:this.capitalGreekBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER, +font:cvox.SemanticAttr.Font.BOLD},{set:this.smallGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.capitalGreekItalic,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.ITALIC},{set:this.smallGreekSansSerifBold,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.capitalGreekSansSerifBold, +type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.greekDoubleStruck,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.GREEKLETTER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.hebrewLetters,type:cvox.SemanticAttr.Type.IDENTIFIER,role:cvox.SemanticAttr.Role.OTHERLETTER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsNormal,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER, +font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsFullWidth,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.NORMAL},{set:this.digitsBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.BOLD},{set:this.digitsDoubleStruck,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.DOUBLESTRUCK},{set:this.digitsSansSerif,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER, +font:cvox.SemanticAttr.Font.SANSSERIF},{set:this.digitsSansSerifBold,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.SANSSERIFBOLD},{set:this.digitsMonospace,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER,font:cvox.SemanticAttr.Font.MONOSPACE},{set:this.numbers,type:cvox.SemanticAttr.Type.NUMBER,role:cvox.SemanticAttr.Role.INTEGER},{set:this.additions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.ADDITION}, +{set:this.multiplications,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION},{set:this.subtractions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.SUBTRACTION},{set:this.divisions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.DIVISION},{set:this.prefixOps,type:cvox.SemanticAttr.Type.PREFIXOP,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.equalities,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.EQUALITY},{set:this.inequalities, +type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.INEQUALITY},{set:this.relations,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.UNKNOWN},{set:this.arrows,type:cvox.SemanticAttr.Type.RELATION,role:cvox.SemanticAttr.Role.ARROW},{set:this.sumOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.SUM},{set:this.intOps,type:cvox.SemanticAttr.Type.LARGEOP,role:cvox.SemanticAttr.Role.INTEGRAL},{set:this.limitFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.LIMFUNC}, +{set:this.prefixFunctions,type:cvox.SemanticAttr.Type.FUNCTION,role:cvox.SemanticAttr.Role.PREFIXFUNC},{set:this.infixFunctions,type:cvox.SemanticAttr.Type.OPERATOR,role:cvox.SemanticAttr.Role.MULTIPLICATION}]};goog.addSingletonGetter(cvox.SemanticAttr); +cvox.SemanticAttr.Type={PUNCTUATION:"punctuation",FENCE:"fence",NUMBER:"number",IDENTIFIER:"identifier",TEXT:"text",OPERATOR:"operator",RELATION:"relation",LARGEOP:"largeop",FUNCTION:"function",ACCENT:"accent",FENCED:"fenced",FRACTION:"fraction",PUNCTUATED:"punctuated",RELSEQ:"relseq",MULTIREL:"multirel",INFIXOP:"infixop",PREFIXOP:"prefixop",POSTFIXOP:"postfixop",APPL:"appl",INTEGRAL:"integral",BIGOP:"bigop",SQRT:"sqrt",ROOT:"root",LIMUPPER:"limupper",LIMLOWER:"limlower",LIMBOTH:"limboth",SUBSCRIPT:"subscript", +SUPERSCRIPT:"superscript",UNDERSCORE:"underscore",OVERSCORE:"overscore",TABLE:"table",MULTILINE:"multiline",MATRIX:"matrix",VECTOR:"vector",CASES:"cases",ROW:"row",LINE:"line",CELL:"cell",UNKNOWN:"unknown",EMPTY:"empty"}; +cvox.SemanticAttr.Role={ELLIPSIS:"ellipsis",FULLSTOP:"fullstop",DASH:"dash",PRIME:"prime",VBAR:"vbar",OPENFENCE:"openfence",CLOSEFENCE:"closefence",APPLICATION:"application",OPEN:"open",CLOSE:"close",TOP:"top",BOTTOM:"bottom",NEUTRAL:"neutral",LATINLETTER:"latinletter",GREEKLETTER:"greekletter",OTHERLETTER:"otherletter",INTEGER:"integer",FLOAT:"float",OTHERNUMBER:"othernumber",MULTIACCENT:"multiaccent",OVERACCENT:"overaccent",UNDERACCENT:"underaccent",LEFTRIGHT:"leftright",ABOVEBELOW:"abovebelow", +SEQUENCE:"sequence",ENDPUNCT:"endpunct",STARTPUNCT:"startpunct",NEGATIVE:"negative",NEGATION:"negation",MULTIOP:"multiop",LIMFUNC:"limit function",INFIXFUNC:"infix function",PREFIXFUNC:"prefix function",POSTFIXFUNC:"postfix function",SUM:"sum",INTEGRAL:"integral",ADDITION:"addition",MULTIPLICATION:"multiplication",DIVISION:"division",SUBTRACTION:"subtraction",IMPLICIT:"implicit",EQUALITY:"equality",INEQUALITY:"inequality",ELEMENT:"element",BINREL:"binrel",ARROW:"arrow",MULTILINE:"multiline",MATRIX:"matrix", +VECTOR:"vector",CASES:"cases",TABLE:"table",UNKNOWN:"unknown"};cvox.SemanticAttr.Font={BOLD:"bold",BOLDFRAKTUR:"bold-fraktur",BOLDITALIC:"bold-italic",BOLDSCRIPT:"bold-script",DOUBLESTRUCK:"double-struck",DOUBLESTRUCKITALIC:"double-struck-italic",FRAKTUR:"fraktur",ITALIC:"italic",MONOSPACE:"monospace",NORMAL:"normal",SCRIPT:"script",SANSSERIF:"sans-serif",SANSSERIFITALIC:"sans-serif-italic",SANSSERIFBOLD:"sans-serif-bold",SANSSERIFBOLDITALIC:"sans-serif-bold-italic",UNKNOWN:"unknown"}; +cvox.SemanticAttr.lookupMeaning=function(a){return cvox.SemanticAttr.getInstance().lookupMeaning_(a)};cvox.SemanticAttr.invisibleTimes=function(){return cvox.SemanticAttr.getInstance().invisibleTimes_};cvox.SemanticAttr.invisibleComma=function(){return cvox.SemanticAttr.getInstance().invisibleComma_};cvox.SemanticAttr.functionApplication=function(){return cvox.SemanticAttr.getInstance().functionApplication_}; +cvox.SemanticAttr.isMatchingFenceRole=function(a,b){return a==cvox.SemanticAttr.Role.OPEN&&b==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL&&b==cvox.SemanticAttr.Role.NEUTRAL||a==cvox.SemanticAttr.Role.TOP&&b==cvox.SemanticAttr.Role.BOTTOM};cvox.SemanticAttr.isMatchingFence=function(a,b){return cvox.SemanticAttr.getInstance().isMatchingFence_(a,b)};cvox.SemanticAttr.isOpeningFence=function(a){return a==cvox.SemanticAttr.Role.OPEN||a==cvox.SemanticAttr.Role.NEUTRAL}; +cvox.SemanticAttr.isClosingFence=function(a){return a==cvox.SemanticAttr.Role.CLOSE||a==cvox.SemanticAttr.Role.NEUTRAL};cvox.SemanticAttr.isCharacterD=function(a){var b="d \u2146 \uff44 \ud835\udc1d \ud835\udc51 \ud835\udcb9 \ud835\udced \ud835\udd21 \ud835\udd55 \ud835\udd89 \ud835\uddbd \ud835\uddf1 \ud835\ude25 \ud835\ude8d".split(" ");return-1!=b.indexOf(a)}; +cvox.SemanticAttr.prototype.isMatchingFence_=function(a,b){return-1!=this.neutralFences.indexOf(a)?a==b:this.openClosePairs[a]==b||this.topBottomPairs[a]==b}; +cvox.SemanticAttr.prototype.lookupMeaning_=function(a){for(var b=0,c;c=this.symbolSetToSemantic_[b];b++)if(-1!=c.set.indexOf(a))return{role:c.role||cvox.SemanticAttr.Role.UNKNOWN,type:c.type||cvox.SemanticAttr.Type.UNKNOWN,font:c.font||cvox.SemanticAttr.Font.UNKNOWN};return{role:cvox.SemanticAttr.Role.UNKNOWN,type:cvox.SemanticAttr.Type.UNKNOWN,font:cvox.SemanticAttr.Font.UNKNOWN}};cvox.SemanticTree=function(a){this.idCounter_=0;this.mathml=a;this.root=this.parseMathml_(a)};cvox.SemanticTree.Node=function(a){this.id=a;this.mathml=[];this.parent=null;this.type=cvox.SemanticAttr.Type.UNKNOWN;this.role=cvox.SemanticAttr.Role.UNKNOWN;this.font=cvox.SemanticAttr.Font.UNKNOWN;this.childNodes=[];this.textContent="";this.contentNodes=[]}; +cvox.SemanticTree.Node.prototype.querySelectorAll=function(a){for(var b=[],c=0,d;d=this.childNodes[c];c++)b=b.concat(d.querySelectorAll(a));a(this)&&b.unshift(this);return b};cvox.SemanticTree.prototype.xml=function(a){var b=new DOMParser,b=b.parseFromString("<stree></stree>","text/xml");a=this.root.xml(b,a);b.childNodes[0].appendChild(a);return b.childNodes[0]}; +cvox.SemanticTree.Node.prototype.xml=function(a,b){var c=function(c,d){for(var g=d.map(function(c){return c.xml(a,b)}),h=a.createElement(c),k=0,l;l=g[k];k++)h.appendChild(l);return h},d=a.createElement(this.type);b||this.xmlAttributes_(d);d.textContent=this.textContent;0<this.contentNodes.length&&d.appendChild(c("content",this.contentNodes));0<this.childNodes.length&&d.appendChild(c("children",this.childNodes));return d};cvox.SemanticTree.prototype.toString=function(a){var b=new XMLSerializer;return b.serializeToString(this.xml(a))}; +cvox.SemanticTree.prototype.formatXml=function(a){a=this.toString(a);return cvox.SemanticTree.formatXml(a)};cvox.SemanticTree.formatXml=function(a){var b=/(>)(<)(\/*)/g;a=a.replace(b,"$1\r\n$2$3");b=/(>)(.+)(<c)/g;a=a.replace(b,"$1\r\n$2\r\n$3");var c="",d="";a.split("\r\n").forEach(function(a){a.match(/.+<\/\w[^>]*>$/)?c+=d+a+"\r\n":a.match(/^<\/\w/)?d&&(d=d.slice(2),c+=d+a+"\r\n"):a.match(/^<\w[^>]*[^\/]>.*$/)?(c+=d+a+"\r\n",d+=" "):c+=d+a+"\r\n"});return c}; +cvox.SemanticTree.Node.prototype.toString=function(a){var b=new XMLSerializer,c=new DOMParser,c=c.parseFromString("","text/xml");return b.serializeToString(this.xml(c,a))};cvox.SemanticTree.Node.prototype.xmlAttributes_=function(a){a.setAttribute("role",this.role);this.font!=cvox.SemanticAttr.Font.UNKNOWN&&a.setAttribute("font",this.font);a.setAttribute("id",this.id)};cvox.SemanticTree.prototype.createNode_=function(){return new cvox.SemanticTree.Node(this.idCounter_++)}; +cvox.SemanticTree.Node.prototype.updateContent_=function(a){a=a.trim();if(this.textContent!=a){var b=cvox.SemanticAttr.lookupMeaning(a);this.textContent=a;this.role=b.role;this.type=b.type;this.font=b.font}};cvox.SemanticTree.Node.prototype.addMathmlNodes_=function(a){for(var b=0,c;c=a[b];b++)-1==this.mathml.indexOf(c)&&this.mathml.push(c)};cvox.SemanticTree.Node.prototype.appendChild_=function(a){this.childNodes.push(a);this.addMathmlNodes_(a.mathml);a.parent=this}; +cvox.SemanticTree.Node.prototype.appendContentNode_=function(a){a&&(this.contentNodes.push(a),this.addMathmlNodes_(a.mathml),a.parent=this)}; +cvox.SemanticTree.prototype.parseMathml_=function(a){var b=cvox.DomUtil.toArray(a.children);switch(cvox.SemanticUtil.tagName(a)){case "MATH":case "MROW":case "MPADDED":case "MSTYLE":return b=cvox.SemanticUtil.purgeNodes(b),1==b.length?this.parseMathml_(b[0]):this.processRow_(this.parseMathmlChildren_(b));case "MFRAC":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.FRACTION,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]),a.role=cvox.SemanticAttr.Role.DIVISION,a;case "MSUB":case "MSUP":case "MSUBSUP":case "MOVER":case "MUNDER":case "MUNDEROVER":return this.makeLimitNode_(cvox.SemanticUtil.tagName(a), +this.parseMathmlChildren_(b));case "MROOT":return this.makeBranchNode_(cvox.SemanticAttr.Type.ROOT,[this.parseMathml_(b[0]),this.parseMathml_(b[1])],[]);case "MSQRT":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),this.makeBranchNode_(cvox.SemanticAttr.Type.SQRT,[this.processRow_(b)],[]);case "MTABLE":return a=this.makeBranchNode_(cvox.SemanticAttr.Type.TABLE,this.parseMathmlChildren_(b),[]),cvox.SemanticTree.tableIsMultiline_(a)&&this.tableToMultiline_(a),a;case "MTR":return a= +this.makeBranchNode_(cvox.SemanticAttr.Type.ROW,this.parseMathmlChildren_(b),[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTD":return b=this.parseMathmlChildren_(cvox.SemanticUtil.purgeNodes(b)),a=this.makeBranchNode_(cvox.SemanticAttr.Type.CELL,[this.processRow_(b)],[]),a.role=cvox.SemanticAttr.Role.TABLE,a;case "MTEXT":return a=this.makeLeafNode_(a),a.type=cvox.SemanticAttr.Type.TEXT,a;case "MI":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.IDENTIFIER), +a;case "MN":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.NUMBER),a;case "MO":return a=this.makeLeafNode_(a),a.type==cvox.SemanticAttr.Type.UNKNOWN&&(a.type=cvox.SemanticAttr.Type.OPERATOR),a;default:return this.makeUnprocessed_(a)}};cvox.SemanticTree.prototype.parseMathmlChildren_=function(a){for(var b=[],c=0,d;d=a[c];c++)b.push(this.parseMathml_(d));return b}; +cvox.SemanticTree.prototype.makeUnprocessed_=function(a){var b=this.createNode_();b.mathml=[a];return b};cvox.SemanticTree.prototype.makeEmptyNode_=function(){var a=this.createNode_();a.type=cvox.SemanticAttr.Type.EMPTY;return a};cvox.SemanticTree.prototype.makeLeafNode_=function(a){var b=this.createNode_();b.mathml=[a];b.updateContent_(a.textContent);b.font=a.getAttribute("mathvariant")||b.font;return b}; +cvox.SemanticTree.prototype.makeBranchNode_=function(a,b,c,d){var e=this.createNode_();d&&e.updateContent_(d);e.type=a;e.childNodes=b;e.contentNodes=c;b.concat(c).forEach(function(a){a.parent=e;e.addMathmlNodes_(a.mathml)});return e};cvox.SemanticTree.prototype.makeImplicitNode_=function(a){if(1==a.length)return a[0];var b=this.createNode_();b.updateContent_(cvox.SemanticAttr.invisibleTimes());a=this.makeInfixNode_(a,b);a.role=cvox.SemanticAttr.Role.IMPLICIT;return a}; +cvox.SemanticTree.prototype.makeInfixNode_=function(a,b){return this.makeBranchNode_(cvox.SemanticAttr.Type.INFIXOP,a,[b],b.textContent)};cvox.SemanticTree.prototype.makeConcatNode_=function(a,b,c){if(0==b.length)return a;var d=b.map(function(a){return a.textContent}).join(" ");a=this.makeBranchNode_(c,[a],b,d);0<b.length&&(a.role=cvox.SemanticAttr.Role.MULTIOP);return a}; +cvox.SemanticTree.prototype.makePrefixNode_=function(a,b){for(var c=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.attrPred_("role","SUBTRACTION")),d=this.makeConcatNode_(a,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);0<c.rel.length;)d=this.makeConcatNode_(d,[c.rel.pop()],cvox.SemanticAttr.Type.PREFIXOP),d.role=cvox.SemanticAttr.Role.NEGATIVE,d=this.makeConcatNode_(d,c.comp.pop(),cvox.SemanticAttr.Type.PREFIXOP);return d}; +cvox.SemanticTree.prototype.makePostfixNode_=function(a,b){return this.makeConcatNode_(a,b,cvox.SemanticAttr.Type.POSTFIXOP)};cvox.SemanticTree.prototype.processRow_=function(a){if(0==a.length)return this.makeEmptyNode_();a=this.getFencesInRow_(a);a=this.processTablesInRow_(a);a=this.getPunctuationInRow_(a);a=this.getFunctionsInRow_(a);return this.processRelationsInRow_(a)}; +cvox.SemanticTree.prototype.processRelationsInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","RELATION")),c=b.rel[0];if(!c)return this.processOperationsInRow_(a);if(1==a.length)return a[0];a=b.comp.map(goog.bind(this.processOperationsInRow_,this));return b.rel.every(function(a){return a.textContent==c.textContent})?this.makeBranchNode_(cvox.SemanticAttr.Type.RELSEQ,a,b.rel,c.textContent):this.makeBranchNode_(cvox.SemanticAttr.Type.MULTIREL,a,b.rel)}; +cvox.SemanticTree.prototype.processOperationsInRow_=function(a){if(0==a.length)return this.makeEmptyNode_();if(1==a.length)return a[0];for(var b=[];0<a.length&&a[0].type==cvox.SemanticAttr.Type.OPERATOR;)b.push(a.shift());if(0==a.length)return this.makePrefixNode_(b.pop(),b);if(1==a.length)return this.makePrefixNode_(a[0],b);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));b=this.makePrefixNode_(this.makeImplicitNode_(a.head),b);return a.div?this.makeOperationsTree_(a.tail, +b,a.div):b}; +cvox.SemanticTree.prototype.makeOperationsTree_=function(a,b,c,d){d=d||[];if(0==a.length)return d.unshift(c),b.type==cvox.SemanticAttr.Type.INFIXOP?(d=this.makePostfixNode_(b.childNodes.pop(),d),b.appendChild_(d),b):this.makePostfixNode_(b,d);a=cvox.SemanticTree.sliceNodes_(a,cvox.SemanticTree.attrPred_("type","OPERATOR"));if(0==a.head.length)return d.push(a.div),this.makeOperationsTree_(a.tail,b,c,d);d=this.makePrefixNode_(this.makeImplicitNode_(a.head),d);b=this.appendOperand_(b,c,d);return a.div? +this.makeOperationsTree_(a.tail,b,a.div,[]):b};cvox.SemanticTree.prototype.appendOperand_=function(a,b,c){return a.type!=cvox.SemanticAttr.Type.INFIXOP?this.makeInfixNode_([a,c],b):this.appendExistingOperator_(a,b,c)?a:b.role==cvox.SemanticAttr.Role.MULTIPLICATION?this.appendMultiplicativeOp_(a,b,c):this.appendAdditiveOp_(a,b,c)}; +cvox.SemanticTree.prototype.appendMultiplicativeOp_=function(a,b,c){for(var d=a,e=a.childNodes[a.childNodes.length-1];e&&e.type==cvox.SemanticAttr.Type.INFIXOP;)d=e,e=d.childNodes[a.childNodes.length-1];b=this.makeInfixNode_([d.childNodes.pop(),c],b);d.appendChild_(b);return a};cvox.SemanticTree.prototype.appendAdditiveOp_=function(a,b,c){return this.makeInfixNode_([a,c],b)}; +cvox.SemanticTree.prototype.appendExistingOperator_=function(a,b,c){if(!a||a.type!=cvox.SemanticAttr.Type.INFIXOP)return!1;if(a.textContent==b.textContent)return a.appendContentNode_(b),a.appendChild_(c),!0;this.appendExistingOperator_(a.childNodes[a.childNodes.length-1],b,c)};cvox.SemanticTree.prototype.getFencesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.attrPred_("type","FENCE"));var b=a.comp.shift();return this.processFences_(a.rel,a.comp,[],[b])}; +cvox.SemanticTree.prototype.processFences_=function(a,b,c,d){if(0==a.length&&0==c.length)return d[0];var e=cvox.SemanticTree.attrPred_("role","OPEN");if(0==a.length){for(a=d.shift();0<c.length;){if(e(c[0]))b=c.shift(),cvox.SemanticTree.fenceToPunct_(b),a.push(b);else{c=cvox.SemanticTree.sliceNodes_(c,e);var f=c.head.length-1,g=this.processNeutralFences_(c.head,d.slice(0,f));d=d.slice(f);a.push.apply(a,g);c.div&&c.tail.unshift(c.div);c=c.tail}a.push.apply(a,d.shift())}return a}f=c[c.length-1];g=a[0].role; +if(g==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&(!f||a[0].textContent!=f.textContent))return c.push(a.shift()),d.push(b.shift()),this.processFences_(a,b,c,d);if(f&&(g==cvox.SemanticAttr.Role.CLOSE&&f.role==cvox.SemanticAttr.Role.OPEN||g==cvox.SemanticAttr.Role.NEUTRAL&&a[0].textContent==f.textContent))return e=this.makeHorizontalFencedNode_(c.pop(),a.shift(),d.pop()),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c,d);if(f&&g==cvox.SemanticAttr.Role.CLOSE&&f.role== +cvox.SemanticAttr.Role.NEUTRAL&&c.some(e))return c=cvox.SemanticTree.sliceNodes_(c,e,!0),e=d.pop(),f=d.length-c.tail.length+1,g=this.processNeutralFences_(c.tail,d.slice(f)),d=d.slice(0,f),e=this.makeHorizontalFencedNode_(c.div,a.shift(),d.pop().concat(g,e)),d.push(d.pop().concat([e],b.shift())),this.processFences_(a,b,c.head,d);e=a.shift();cvox.SemanticTree.fenceToPunct_(e);d.push(d.pop().concat([e],b.shift()));return this.processFences_(a,b,c,d)}; +cvox.SemanticTree.prototype.processNeutralFences_=function(a,b){if(0==a.length)return a;if(1==a.length)return cvox.SemanticTree.fenceToPunct_(a[0]),a;var c=a.shift(),d=cvox.SemanticTree.sliceNodes_(a,function(a){return a.textContent==c.textContent});if(!d.div){cvox.SemanticTree.fenceToPunct_(c);var e=b.shift();e.unshift(c);return e.concat(this.processNeutralFences_(a,b))}var f=this.combineFencedContent_(c,d.div,d.head,b);return 0<d.tail.length?(e=f.shift(),d=this.processNeutralFences_(d.tail,f),e.concat(d)): +f[0]};cvox.SemanticTree.prototype.combineFencedContent_=function(a,b,c,d){if(0==c.length)return a=this.makeHorizontalFencedNode_(a,b,d.shift()),d.unshift(a),d;var e=d.shift(),f=c.length-1,g=d.slice(0,f);d=d.slice(f);f=d.shift();c=this.processNeutralFences_(c,g);e.push.apply(e,c);e.push.apply(e,f);a=this.makeHorizontalFencedNode_(a,b,e);0<d.length?d[0].unshift(a):d=[[a]];return d}; +cvox.SemanticTree.fenceToPunct_=function(a){a.type=cvox.SemanticAttr.Type.PUNCTUATION;switch(a.role){case cvox.SemanticAttr.Role.NEUTRAL:a.role=cvox.SemanticAttr.Role.VBAR;break;case cvox.SemanticAttr.Role.OPEN:a.role=cvox.SemanticAttr.Role.OPENFENCE;break;case cvox.SemanticAttr.Role.CLOSE:a.role=cvox.SemanticAttr.Role.CLOSEFENCE}}; +cvox.SemanticTree.prototype.makeHorizontalFencedNode_=function(a,b,c){c=this.processRow_(c);b=this.makeBranchNode_(cvox.SemanticAttr.Type.FENCED,[c],[a,b]);b.role=a.role==cvox.SemanticAttr.Role.OPEN?cvox.SemanticAttr.Role.LEFTRIGHT:a.role;return b}; +cvox.SemanticTree.prototype.getPunctuationInRow_=function(a){var b=cvox.SemanticTree.partitionNodes_(a,function(a){return cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)&&!cvox.SemanticTree.attrPred_("role","ELLIPSIS")(a)});if(0==b.rel.length)return a;a=[];var c=b.comp.shift();0<c.length&&a.push(this.processRow_(c));for(var d=0;0<b.comp.length;)a.push(b.rel[d++]),c=b.comp.shift(),0<c.length&&a.push(this.processRow_(c));return[this.makePunctuatedNode_(a,b.rel)]}; +cvox.SemanticTree.prototype.makePunctuatedNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.PUNCTUATED,a,b);c.role=1==b.length&&a[0].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.STARTPUNCT:1==b.length&&a[a.length-1].type==cvox.SemanticAttr.Type.PUNCTUATION?cvox.SemanticAttr.Role.ENDPUNCT:cvox.SemanticAttr.Role.SEQUENCE;return c}; +cvox.SemanticTree.prototype.makeLimitNode_=function(a,b){var c=b[0],d=cvox.SemanticTree.attrPred_("type","FUNCTION")(c),d=cvox.SemanticTree.attrPred_("type","LARGEOP")(c)||cvox.SemanticTree.attrPred_("type","LIMBOTH")(c)||cvox.SemanticTree.attrPred_("type","LIMLOWER")(c)||cvox.SemanticTree.attrPred_("type","LIMUPPER")(c)||d&&cvox.SemanticTree.attrPred_("role","LIMFUNC")(c),e=cvox.SemanticAttr.Type.UNKNOWN;if(d)switch(a){case "MSUB":case "MUNDER":e=cvox.SemanticAttr.Type.LIMLOWER;break;case "MSUP":case "MOVER":e= +cvox.SemanticAttr.Type.LIMUPPER;break;case "MSUBSUP":case "MUNDEROVER":e=cvox.SemanticAttr.Type.LIMBOTH}else switch(a){case "MSUB":e=cvox.SemanticAttr.Type.SUBSCRIPT;break;case "MSUP":e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MSUBSUP":d=this.makeBranchNode_(cvox.SemanticAttr.Type.SUBSCRIPT,[c,b[1]],[]);d.role=c.role;b=[d,b[2]];e=cvox.SemanticAttr.Type.SUPERSCRIPT;break;case "MOVER":e=cvox.SemanticAttr.Type.OVERSCORE;break;case "MUNDER":e=cvox.SemanticAttr.Type.UNDERSCORE;break;default:d=this.makeBranchNode_(cvox.SemanticAttr.Type.UNDERSCORE, +[c,b[1]],[]),d.role=c.role,b=[d,b[2]],e=cvox.SemanticAttr.Type.OVERSCORE}d=this.makeBranchNode_(e,b,[]);d.role=c.role;return d};cvox.SemanticTree.prototype.getFunctionsInRow_=function(a,b){b=b||[];if(0==a.length)return b;var c=a.shift(),d=cvox.SemanticTree.classifyFunction_(c,a);if(!d)return b.push(c),this.getFunctionsInRow_(a,b);var e=this.getFunctionsInRow_(a,[]),c=this.getFunctionArgs_(c,e,d);return b.concat(c)}; +cvox.SemanticTree.classifyFunction_=function(a,b){if(a.type==cvox.SemanticAttr.Type.APPL||a.type==cvox.SemanticAttr.Type.BIGOP||a.type==cvox.SemanticAttr.Type.INTEGRAL)return"";if(b[0]&&b[0].textContent==cvox.SemanticAttr.functionApplication())return b.shift(),cvox.SemanticTree.propagatePrefixFunc_(a),"prefix";switch(a.role){case cvox.SemanticAttr.Role.INTEGRAL:return"integral";case cvox.SemanticAttr.Role.SUM:return"bigop";case cvox.SemanticAttr.Role.PREFIXFUNC:case cvox.SemanticAttr.Role.LIMFUNC:return"prefix"; +default:if(a.type==cvox.SemanticAttr.Type.IDENTIFIER)return"simple"}return""};cvox.SemanticTree.propagatePrefixFunc_=function(a){a&&(a.role=cvox.SemanticAttr.Role.PREFIXFUNC,cvox.SemanticTree.propagatePrefixFunc_(a.childNodes[0]))}; +cvox.SemanticTree.prototype.getFunctionArgs_=function(a,b,c){switch(c){case "integral":return b=this.getIntegralArgs_(b),c=this.processRow_(b.integrand),a=this.makeIntegralNode_(a,c,b.intvar),b.rest.unshift(a),b.rest;case "prefix":if(b[0]&&b[0].type==cvox.SemanticAttr.Type.FENCED)return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;case "bigop":b=cvox.SemanticTree.sliceNodes_(b,cvox.SemanticTree.prefixFunctionBoundary_);var d=this.processRow_(b.head);a="prefix"==c?this.makeFunctionNode_(a, +d):this.makeBigOpNode_(a,d);b.div&&b.tail.unshift(b.div);b.tail.unshift(a);return b.tail;case "simple":if(0==b.length)return[a];c=b[0];if(c.type==cvox.SemanticAttr.Type.FENCED&&c.role!=cvox.SemanticAttr.Role.NEUTRAL&&this.simpleFunctionHeuristic_(c))return a=this.makeFunctionNode_(a,b.shift()),b.unshift(a),b;b.unshift(a);return b}}; +cvox.SemanticTree.prototype.getIntegralArgs_=function(a,b){b=b||[];if(0==a.length)return{integrand:b,intvar:null,rest:a};var c=a[0];if(cvox.SemanticTree.generalFunctionBoundary_(c))return{integrand:b,intvar:null,rest:a};if(cvox.SemanticTree.integralDxBoundarySingle_(c))return{integrand:b,intvar:c,rest:a.slice(1)};if(a[1]&&cvox.SemanticTree.integralDxBoundary_(c,a[1])){var d=this.createNode_();d.updateContent_(cvox.SemanticAttr.invisibleComma());c=this.makePunctuatedNode_([c,d,a[1]],[d]);c.role=cvox.SemanticAttr.Role.INTEGRAL; +return{integrand:b,intvar:c,rest:a.slice(2)}}b.push(a.shift());return this.getIntegralArgs_(a,b)};cvox.SemanticTree.prototype.makeFunctionNode_=function(a,b){var c=this.createNode_();c.updateContent_(cvox.SemanticAttr.functionApplication());c.type=cvox.SemanticAttr.Type.PUNCTUATION;c.role=cvox.SemanticAttr.Role.APPLICATION;c=this.makeBranchNode_(cvox.SemanticAttr.Type.APPL,[a,b],[c]);c.role=a.role;return c}; +cvox.SemanticTree.prototype.makeBigOpNode_=function(a,b){var c=this.makeBranchNode_(cvox.SemanticAttr.Type.BIGOP,[a,b],[]);c.role=a.role;return c};cvox.SemanticTree.prototype.makeIntegralNode_=function(a,b,c){b=b||this.makeEmptyNode_();c=c||this.makeEmptyNode_();b=this.makeBranchNode_(cvox.SemanticAttr.Type.INTEGRAL,[a,b,c],[]);b.role=a.role;return b}; +cvox.SemanticTree.prototype.simpleFunctionHeuristic_=function(a){a=a.childNodes;if(0==a.length)return!0;if(1<a.length)return!1;a=a[0];return a.type!=cvox.SemanticAttr.Type.INFIXOP||a.role==cvox.SemanticAttr.Role.IMPLICIT&&!a.childNodes.some(cvox.SemanticTree.attrPred_("type","INFIXOP"))?!0:!1};cvox.SemanticTree.prefixFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","OPERATOR")(a)||cvox.SemanticTree.generalFunctionBoundary_(a)}; +cvox.SemanticTree.integralDxBoundary_=function(a,b){return!!b&&cvox.SemanticTree.attrPred_("type","IDENTIFIER")(b)&&cvox.SemanticAttr.isCharacterD(a.textContent)};cvox.SemanticTree.integralDxBoundarySingle_=function(a){if(cvox.SemanticTree.attrPred_("type","IDENTIFIER")(a)){var b=a.textContent[0];return b&&a.textContent[1]&&cvox.SemanticAttr.isCharacterD(b)}return!1}; +cvox.SemanticTree.generalFunctionBoundary_=function(a){return cvox.SemanticTree.attrPred_("type","RELATION")(a)||cvox.SemanticTree.attrPred_("type","PUNCTUATION")(a)}; +cvox.SemanticTree.prototype.processTablesInRow_=function(a){a=cvox.SemanticTree.partitionNodes_(a,cvox.SemanticTree.tableIsMatrixOrVector_);for(var b=[],c=0,d;d=a.rel[c];c++)b=b.concat(a.comp.shift()),b.push(this.tableToMatrixOrVector_(d));b=b.concat(a.comp.shift());a=cvox.SemanticTree.partitionNodes_(b,cvox.SemanticTree.isTableOrMultiline_);b=[];for(c=0;d=a.rel[c];c++){var e=a.comp.shift();cvox.SemanticTree.tableIsCases_(d,e)&&this.tableToCases_(d,e.pop());b=b.concat(e);b.push(d)}return b.concat(a.comp.shift())}; +cvox.SemanticTree.isTableOrMultiline_=function(a){return!!a&&(cvox.SemanticTree.attrPred_("type","TABLE")(a)||cvox.SemanticTree.attrPred_("type","MULTILINE")(a))};cvox.SemanticTree.tableIsMatrixOrVector_=function(a){return!!a&&cvox.SemanticTree.attrPred_("type","FENCED")(a)&&cvox.SemanticTree.attrPred_("role","LEFTRIGHT")(a)&&1==a.childNodes.length&&cvox.SemanticTree.isTableOrMultiline_(a.childNodes[0])}; +cvox.SemanticTree.prototype.tableToMatrixOrVector_=function(a){var b=a.childNodes[0],c=cvox.SemanticTree.attrPred_("type","MULTILINE")(b)?"VECTOR":"MATRIX";b.type=cvox.SemanticAttr.Type[c];a.contentNodes.forEach(goog.bind(b.appendContentNode_,b));a=0;for(var d;d=b.childNodes[a];a++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role[c]);return b};cvox.SemanticTree.tableIsCases_=function(a,b){return 0<b.length&&cvox.SemanticTree.attrPred_("role","OPENFENCE")(b[b.length-1])}; +cvox.SemanticTree.prototype.tableToCases_=function(a,b){for(var c=0,d;d=a.childNodes[c];c++)cvox.SemanticTree.assignRoleToRow_(d,cvox.SemanticAttr.Role.CASES);a.type=cvox.SemanticAttr.Type.CASES;a.appendContentNode_(b);return a};cvox.SemanticTree.tableIsMultiline_=function(a){return a.childNodes.every(function(a){a=a.childNodes.length;return 1>=a})}; +cvox.SemanticTree.prototype.tableToMultiline_=function(a){a.type=cvox.SemanticAttr.Type.MULTILINE;for(var b=0,c;c=a.childNodes[b];b++)cvox.SemanticTree.rowToLine_(c,cvox.SemanticAttr.Role.MULTILINE)};cvox.SemanticTree.rowToLine_=function(a,b){b=b||cvox.SemanticAttr.Role.UNKNOWN;cvox.SemanticTree.attrPred_("type","ROW")(a)&&1==a.childNodes.length&&cvox.SemanticTree.attrPred_("type","CELL")(a.childNodes[0])&&(a.type=cvox.SemanticAttr.Type.LINE,a.role=b,a.childNodes=a.childNodes[0].childNodes)}; +cvox.SemanticTree.assignRoleToRow_=function(a,b){if(cvox.SemanticTree.attrPred_("type","LINE")(a))a.role=b;else if(cvox.SemanticTree.attrPred_("type","ROW")(a)){a.role=b;var c=cvox.SemanticTree.attrPred_("type","CELL");a.childNodes.forEach(function(a){c(a)&&(a.role=b)})}}; +cvox.SemanticTree.sliceNodes_=function(a,b,c){c&&a.reverse();for(var d=[],e=0,f;f=a[e];e++){if(b(f))return c?{head:a.slice(e+1).reverse(),div:f,tail:d.reverse()}:{head:d,div:f,tail:a.slice(e+1)};d.push(f)}return c?{head:[],div:null,tail:d.reverse()}:{head:d,div:null,tail:[]}};cvox.SemanticTree.partitionNodes_=function(a,b){var c=a,d=[],e=[];do{var f=cvox.SemanticTree.sliceNodes_(c,b);e.push(f.head);d.push(f.div);c=f.tail}while(f.div);d.pop();return{rel:d,comp:e}}; +cvox.SemanticTree.attrPred_=function(a,b){return function(c){var d;o:{switch(a){case "type":d=cvox.SemanticAttr.Type[b];break o;case "role":d=cvox.SemanticAttr.Role[b];break o;case "font":d=cvox.SemanticAttr.Font[b];break o}d=void 0}return c[a]==d}};cvox.TraverseMath=function(){this.activeNode=this.activeMath=null;this.allTexs_={};this.allMathjaxs_={};this.activeMathmlHost=null;this.domain="default";this.style="short";cvox.ChromeVox.mathJax&&(this.initializeMathjaxs(),this.initializeAltMaths())};goog.addSingletonGetter(cvox.TraverseMath);cvox.TraverseMath.setSemantic_=!1;cvox.TraverseMath.toggleSemantic=function(){return cvox.TraverseMath.setSemantic_=!cvox.TraverseMath.setSemantic_}; +cvox.TraverseMath.prototype.initialize=function(a){if(cvox.DomUtil.isMathImg(a)){if(!a.hasAttribute("cvoxid"))return;a=a.getAttribute("cvoxid");a=this.allTexs_[a]}cvox.DomUtil.isMathJax(a)&&(this.activeMathmlHost=this.allMathjaxs_[a.getAttribute("id")]);this.activeMath=this.activeMathmlHost||a;(this.activeNode=this.activeMathmlHost||a)&&cvox.TraverseMath.setSemantic_&&this.activeNode.nodeType==Node.ELEMENT_NODE&&(this.activeNode=(new cvox.SemanticTree(this.activeNode)).xml())}; +cvox.TraverseMath.prototype.addMathjax=function(a,b){var c=cvox.DomUtil.getMathSpanId(b);c?this.allMathjaxs_[c]=a:this.redoMathjaxs(a,b)};cvox.TraverseMath.prototype.redoMathjaxs=function(a,b){var c=goog.bind(function(){this.addMathjax(a,b)},this);setTimeout(c,500)}; +cvox.TraverseMath.prototype.initializeMathjaxs=function(){var a=goog.bind(function(a,c){this.addMathjax(a,c)},this);cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.getAllJax(a),cvox.ChromeVox.mathJax.registerSignal(a,"New Math"))})}; +cvox.TraverseMath.prototype.initializeAltMaths=function(){if(document.querySelector(cvox.DomUtil.altMathQuerySelector("tex")+", "+cvox.DomUtil.altMathQuerySelector("asciimath"))){var a=goog.bind(function(a,c){this.allTexs_[c]=a},this);cvox.ChromeVox.mathJax.injectScripts();cvox.ChromeVox.mathJax.isMathjaxActive(function(b){b&&(cvox.ChromeVox.mathJax.configMediaWiki(),cvox.ChromeVox.mathJax.getAllTexs(a),cvox.ChromeVox.mathJax.getAllAsciiMaths(a))})}}; +cvox.TraverseMath.prototype.nextSibling=function(a){if(!this.activeNode||!this.activeMath)return null;var b=this.activeNode,b=a?b.previousSibling:b.nextSibling;return b?this.activeNode=b:null};cvox.TraverseMath.prototype.nextParentChild=function(a){if(!this.activeNode||!this.activeMath||this.activeNode==this.activeMath&&a)return null;var b=this.activeNode,b=a?b.parentNode:b.firstChild;return b?this.activeNode=b:null}; +cvox.TraverseMath.prototype.getAttachedActiveNode=function(){var a=this.activeNode;if(!a||a.nodeType!=Node.ELEMENT_NODE)return null;a=a.getAttribute("spanID");return document.getElementById(a)};cvox.MathUtil={};cvox.MathUtil.isMathmlNodeOfClass_=function(a,b){return-1!=b.indexOf(a.tagName.toUpperCase())};cvox.MathUtil.isMathjaxNodeOfClass_=function(a,b){if("SPAN"==a.tagName){var c=a.className.split(" ");return c.some(function(a){return-1!=b.indexOf(a.toUpperCase())})}return!1};cvox.MathUtil.isMathNodeOfClass_=function(a,b){return a.nodeType==Node.ELEMENT_NODE&&(cvox.MathUtil.isMathmlNodeOfClass_(a,b)||cvox.MathUtil.isMathjaxNodeOfClass_(a,b))};cvox.MathUtil.TOKEN_LIST="MI MN MO MTEXT MSPACE MS".split(" "); +cvox.MathUtil.isToken=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TOKEN_LIST)};cvox.MathUtil.LAYOUT_LIST="MROW MFRAC MSQRT MROOT MSTYLE MERROR MPADDED MPHANTOM MFENCED MENCLOSE".split(" ");cvox.MathUtil.isLayout=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.LAYOUT_LIST)};cvox.MathUtil.SCRIPT_LIST="MSUB MSUP MSUBSUP MUNDER MOVER MUNDEROVER MMULTISCRIPTS MPRESCRIPTS".split(" "); +cvox.MathUtil.isScript=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.SCRIPT_LIST)};cvox.MathUtil.TABLES_LIST="MTABLE MLABELEDTR MTR MTD MALIGNGROUP MALIGNMARK".split(" ");cvox.MathUtil.isTables=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.TABLES_LIST)};cvox.MathUtil.ELEMENTARY_LIST="MSTACK MLONGDIV MSGROUP MSROW MSCARRIES MSCARRY MSLINE".split(" ");cvox.MathUtil.isElementary=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.ELEMENTARY_LIST)}; +cvox.MathUtil.MATHML_TAG_LIST=[cvox.MathUtil.TOKEN_LIST,cvox.MathUtil.LAYOUT_LIST,cvox.MathUtil.SCRIPT_LIST,cvox.MathUtil.TABLES_LIST,cvox.MathUtil.ELEMENTARY_LIST].reduce(function(a,b){return a.concat(b)});cvox.MathUtil.isMathmlTag=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.MATHML_TAG_LIST)};cvox.MathUtil.WHITESPACE_LIST=["MSROW","MROW","MSPACE","MPHANTOM","MPADDED"];cvox.MathUtil.isWhitespace=function(a){return cvox.MathUtil.isMathNodeOfClass_(a,cvox.MathUtil.WHITESPACE_LIST)}; +cvox.MathUtil.isNotWhitespace=function(a){return cvox.MathUtil.isMathmlTag(a)&&!cvox.MathUtil.isWhitespace(a)};cvox.MathUtil.union=function(a,b){return a.concat(b.filter(function(b){return 0>a.indexOf(b)}))};cvox.SpeechRule=function(a,b,c,d){this.name=a;this.dynamicCstr=b;this.precondition=c;this.action=d};cvox.SpeechRule.prototype.toString=function(){var a=[],b;for(b in this.dynamicCstr)a.push(this.dynamicCstr[b]);return this.name+" | "+a.join(".")+" | "+this.precondition.toString()+" ==> "+this.action.toString()};cvox.SpeechRule.Type={NODE:"NODE",MULTI:"MULTI",TEXT:"TEXT",PERSONALITY:"PERSONALITY"}; +cvox.SpeechRule.Type.fromString=function(a){switch(a){case "[n]":return cvox.SpeechRule.Type.NODE;case "[m]":return cvox.SpeechRule.Type.MULTI;case "[t]":return cvox.SpeechRule.Type.TEXT;case "[p]":return cvox.SpeechRule.Type.PERSONALITY;default:throw"Parse error: "+a;}}; +cvox.SpeechRule.Type.toString=function(a){switch(a){case cvox.SpeechRule.Type.NODE:return"[n]";case cvox.SpeechRule.Type.MULTI:return"[m]";case cvox.SpeechRule.Type.TEXT:return"[t]";case cvox.SpeechRule.Type.PERSONALITY:return"[p]";default:throw"Unknown type error: "+a;}};cvox.SpeechRule.Component=function(a){this.type=a.type;this.content=a.content}; +cvox.SpeechRule.Component.fromString=function(a){var b={};b.type=cvox.SpeechRule.Type.fromString(a.substring(0,3));a=a.slice(3).trimLeft();if(!a)throw new cvox.SpeechRule.OutputError("Missing content.");switch(b.type){case cvox.SpeechRule.Type.TEXT:if('"'==a[0]){var c=cvox.SpeechRule.splitString_(a,"\\(")[0].trim();if('"'!=c.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid string syntax.");b.content=c;a=a.slice(c.length).trim();-1==a.indexOf("(")&&(a="");break}case cvox.SpeechRule.Type.NODE:case cvox.SpeechRule.Type.MULTI:c= +a.indexOf(" (");if(-1==c){b.content=a.trim();a="";break}b.content=a.substring(0,c).trim();a=a.slice(c).trimLeft()}b=new cvox.SpeechRule.Component(b);a&&b.addAttributes(a);return b};cvox.SpeechRule.Component.prototype.toString=function(){var a="",a=a+cvox.SpeechRule.Type.toString(this.type),a=a+(this.content?" "+this.content:""),b=this.getAttributes();0<b.length&&(a+=" ("+b.join(", ")+")");return a}; +cvox.SpeechRule.Component.prototype.addAttribute=function(a){var b=a.indexOf(":");-1==b?this[a.trim()]="true":this[a.substring(0,b).trim()]=a.slice(b+1).trim()};cvox.SpeechRule.Component.prototype.addAttributes=function(a){if("("!=a[0]||")"!=a.slice(-1))throw new cvox.SpeechRule.OutputError("Invalid attribute expression: "+a);a=cvox.SpeechRule.splitString_(a.slice(1,-1),",");for(var b=0;b<a.length;b++)this.addAttribute(a[b])}; +cvox.SpeechRule.Component.prototype.getAttributes=function(){var a=[],b;for(b in this)"content"!=b&&"type"!=b&&"function"!=typeof this[b]&&a.push(b+":"+this[b]);return a};cvox.SpeechRule.Action=function(a){this.components=a};cvox.SpeechRule.Action.fromString=function(a){a=cvox.SpeechRule.splitString_(a,";").filter(function(a){return a.match(/\S/)}).map(function(a){return a.trim()});for(var b=[],c=0;c<a.length;c++){var d=cvox.SpeechRule.Component.fromString(a[c]);d&&b.push(d)}return new cvox.SpeechRule.Action(b)}; +cvox.SpeechRule.Action.prototype.toString=function(){var a=this.components.map(function(a){return a.toString()});return a.join("; ")};cvox.SpeechRule.Precondition=function(a,b){this.query=a;this.constraints=b||[]};cvox.SpeechRule.Precondition.prototype.toString=function(){var a=this.constraints.join(", ");return this.query+", "+a}; +cvox.SpeechRule.splitString_=function(a,b){for(var c=[],d="";""!=a;){var e=a.search(b);if(-1==e){if(0!=(a.match(/"/g)||[]).length%2)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);c.push(d+a);a=d=""}else if(0==(a.substring(0,e).match(/"/g)||[]).length%2)c.push(d+a.substring(0,e)),d="",a=a.substring(e+1);else{var f=a.substring(e).search('"');if(-1==f)throw new cvox.SpeechRule.OutputError("Invalid string in expression: "+a);d+=a.substring(0,e+f+1);a=a.substring(e+f+1)}}d&& +c.push(d);return c};cvox.SpeechRule.DynamicCstrAttrib={STYLE:"style"};cvox.SpeechRule.OutputError=function(a){this.name="RuleError";this.message=a||""};goog.inherits(cvox.SpeechRule.OutputError,Error);cvox.SpeechRuleFunctions=function(){};cvox.SpeechRuleFunctions.Store_=function(a,b){this.prefix_=a;this.store_=b};cvox.SpeechRuleFunctions.Store_.prototype.add=function(a,b){this.checkCustomFunctionSyntax_(a)&&(this.store_[a]=b)};cvox.SpeechRuleFunctions.Store_.prototype.lookup=function(a){return this.store_[a]};cvox.SpeechRuleFunctions.CustomQueries=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CQF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomQueries,cvox.SpeechRuleFunctions.Store_); +cvox.SpeechRuleFunctions.CustomStrings=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CSF",a)};goog.inherits(cvox.SpeechRuleFunctions.CustomStrings,cvox.SpeechRuleFunctions.Store_);cvox.SpeechRuleFunctions.ContextFunctions=function(){var a={};cvox.SpeechRuleFunctions.Store_.call(this,"CTXF",a)};goog.inherits(cvox.SpeechRuleFunctions.ContextFunctions,cvox.SpeechRuleFunctions.Store_); +cvox.SpeechRuleFunctions.Store_.prototype.checkCustomFunctionSyntax_=function(a){var b=RegExp("^"+this.prefix_);return a.match(b)?!0:(console.log("FunctionError: Invalid function name. Expected prefix"+this.prefix_),!1)};cvox.BaseRuleStore=function(){this.customQueries=new cvox.SpeechRuleFunctions.CustomQueries;this.customStrings=new cvox.SpeechRuleFunctions.CustomStrings;this.contextFunctions=new cvox.SpeechRuleFunctions.ContextFunctions;this.speechRules_=[];this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[]}; +cvox.BaseRuleStore.prototype.lookupRule=function(a,b){if(!a||a.nodeType!=Node.ELEMENT_NODE&&a.nodeType!=Node.TEXT_NODE)return null;var c=this.speechRules_.filter(goog.bind(function(c){return this.testDynamicConstraints(b,c)&&this.testPrecondition_(a,c)},this));return 0<c.length?this.pickMostConstraint_(b,c):null}; +cvox.BaseRuleStore.prototype.defineRule=function(a,b,c,d,e){try{var f=cvox.SpeechRule.Action.fromString(c),g=Array.prototype.slice.call(arguments,4),h=new cvox.SpeechRule.Precondition(d,g),g={};g[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;var k=new cvox.SpeechRule(a,g,h,f)}catch(l){if("RuleError"==l.name)return console.log("Rule Error ",d,"("+b+"):",l.message),null;throw l;}this.addRule(k);return k};cvox.BaseRuleStore.prototype.addRule=function(a){this.speechRules_.unshift(a)}; +cvox.BaseRuleStore.prototype.deleteRule=function(a){a=this.speechRules_.indexOf(a);-1!=a&&this.speechRules_.splice(a,1)};cvox.BaseRuleStore.prototype.findRule=function(a){for(var b=0,c;c=this.speechRules_[b];b++)if(a(c))return c;return null};cvox.BaseRuleStore.prototype.findAllRules=function(a){return this.speechRules_.filter(a)};cvox.BaseRuleStore.prototype.evaluateDefault=function(a){return[new cvox.NavDescription({text:a.textContent})]}; +cvox.BaseRuleStore.prototype.removeDuplicates=function(a){for(var b=this.speechRules_.length-1,c;c=this.speechRules_[b];b--)c!=a&&cvox.BaseRuleStore.compareDynamicConstraints_(c.dynamicCstr,a.dynamicCstr)&&cvox.BaseRuleStore.comparePreconditions_(c,a)&&this.speechRules_.splice(b,1)};cvox.BaseRuleStore.prototype.applyCustomQuery=function(a,b){var c=this.customQueries.lookup(b);return c?c(a):null}; +cvox.BaseRuleStore.prototype.applySelector=function(a,b){var c=this.applyCustomQuery(a,b);return c||cvox.XpathUtil.evalXPath(b,a)};cvox.BaseRuleStore.prototype.applyQuery=function(a,b){var c=this.applySelector(a,b);return 0<c.length?c[0]:null};cvox.BaseRuleStore.prototype.applyConstraint=function(a,b){var c=this.applyQuery(a,b);return!!c||cvox.XpathUtil.evaluateBoolean(b,a)}; +cvox.BaseRuleStore.prototype.testDynamicConstraints=function(a,b){var c=Object.keys(a);return c.every(function(c){return a[c]==b.dynamicCstr[c]||"default"==b.dynamicCstr[c]})};cvox.BaseRuleStore.prototype.getDynamicConstraintValues=function(){for(var a={},b=0,c;c=this.speechRules_[b];b++)for(var d in c.dynamicCstr){var e=[c.dynamicCstr[d]];a[d]=a[d]?cvox.MathUtil.union(a[d],e):e}return a}; +cvox.BaseRuleStore.prototype.countMatchingDynamicConstraintValues_=function(a,b){for(var c=0,d=0,e;e=this.dynamicCstrAttribs[d];d++)if(a[e]==b.dynamicCstr[e])c++;else break;return c};cvox.BaseRuleStore.prototype.pickMostConstraint_=function(a,b){b.sort(goog.bind(function(b,d){var e=this.countMatchingDynamicConstraintValues_(a,b),f=this.countMatchingDynamicConstraintValues_(a,d);return e>f?-1:f>e?1:d.precondition.constraints.length-b.precondition.constraints.length},this));return b[0]}; +cvox.BaseRuleStore.prototype.testPrecondition_=function(a,b){var c=b.precondition;return this.applyQuery(a,c.query)===a&&c.constraints.every(goog.bind(function(b){return this.applyConstraint(a,b)},this))};cvox.BaseRuleStore.compareDynamicConstraints_=function(a,b){if(Object.keys(a).length!=Object.keys(b).length)return!1;for(var c in a)if(!b[c]||a[c]!==b[c])return!1;return!0}; +cvox.BaseRuleStore.compareStaticConstraints_=function(a,b){if(a.length!=b.length)return!1;for(var c=0,d;d=a[c];c++)if(-1==b.indexOf(d))return!1;return!0};cvox.BaseRuleStore.comparePreconditions_=function(a,b){var c=a.precondition,d=b.precondition;return c.query!=d.query?!1:cvox.BaseRuleStore.compareStaticConstraints_(c.constraints,d.constraints)};cvox.MathStore=function(){cvox.BaseRuleStore.call(this);this.dynamicCstrAttribs=[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN,cvox.SpeechRule.DynamicCstrAttrib.STYLE];this.defaultTtsProps=[cvox.AbstractTts.PITCH,cvox.AbstractTts.RATE]};goog.inherits(cvox.MathStore,cvox.BaseRuleStore);cvox.SpeechRule.DynamicCstrAttrib.DOMAIN="domain"; +cvox.MathStore.prototype.defineRule=function(a,b,c,d,e){var f=this.parseDynamicConstraint(b),g=Array.prototype.slice.call(arguments,4),g=cvox.MathStore.superClass_.defineRule.apply(this,[a,f[cvox.SpeechRule.DynamicCstrAttrib.STYLE],c,d].concat(g));g.dynamicCstr=f;this.removeDuplicates(g);return g}; +cvox.MathStore.prototype.parseDynamicConstraint=function(a){var b=a.split(".");if(!b[0]||!b[1])throw new cvox.SpeechRule.OutputError("Invalid domain assignment:"+a);return cvox.MathStore.createDynamicConstraint(b[0],b[1])};cvox.MathStore.createDynamicConstraint=function(a,b){var c={};c[cvox.SpeechRule.DynamicCstrAttrib.DOMAIN]=a;c[cvox.SpeechRule.DynamicCstrAttrib.STYLE]=b;return c}; +cvox.MathStore.prototype.defineRuleAlias=function(a,b,c){var d=this.findRule(function(b){return b.name==a});if(!d)throw new cvox.SpeechRule.OutputError("Rule with named "+a+" does not exist.");this.addAlias_(d,b,Array.prototype.slice.call(arguments,2))};cvox.MathStore.prototype.addAlias_=function(a,b,c){b=new cvox.SpeechRule.Precondition(b,c);b=new cvox.SpeechRule(a.name,a.dynamicCstr,b,a.action);b.name=a.name;this.addRule(b)};cvox.MathStore.prototype.evaluateDefault=function(a){return this.evaluateString_(a.textContent)}; +cvox.MathStore.prototype.evaluateString_=function(a){var b=[];if(a.match(/^\s+$/))return b;a=cvox.MathStore.removeEmpty_(a.replace(/\s/g," ").split(" "));for(var c=0,d;d=a[c];c++)if(1==d.length)b.push(this.evaluate_(d));else if(d.match(/^[a-zA-Z]+$/))b.push(this.evaluate_(d));else for(;d;){var e=d.match(/^\d+/),f=d.match(/^[a-zA-Z]+/);e?(b.push(this.evaluate_(e[0])),d=d.substring(e[0].length)):f?(b.push(this.evaluate_(f[0])),d=d.substring(f[0].length)):(e=d[0],e=e.charCodeAt(0),55296<=e&&56319>=e&& +1<d.length&&!isNaN(d.charCodeAt(1))?(b.push(this.evaluate_(d.slice(0,2))),d=d.substring(2)):(b.push(this.evaluate_(d[0])),d=d.substring(1)))}return b};cvox.MathStore.prototype.evaluate_=function(a){return cvox.ChromeVox.host.mathMap?cvox.ChromeVox.host.mathMap.evaluate(a,cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style):new cvox.NavMathDescription({text:a,domain:cvox.TraverseMath.getInstance().domain,style:cvox.TraverseMath.getInstance().style})}; +cvox.MathStore.removeEmpty_=function(a){return a.filter(function(a){return a})};cvox.MathmlStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathmlStore,cvox.MathStore);goog.addSingletonGetter(cvox.MathmlStore);cvox.MathmlStore.prototype.defineDefaultMathmlRule=function(a,b){this.defineRule(a,"default.default",b,"self::mathml:"+a)};cvox.SpeechRuleEngine=function(){this.activeStore_=null;this.dynamicCstr={};this.dynamicCstr[cvox.SpeechRule.DynamicCstrAttrib.STYLE]="short"};goog.addSingletonGetter(cvox.SpeechRuleEngine);cvox.SpeechRuleEngine.prototype.parameterize=function(a){try{a.initialize()}catch(b){if("StoreError"==b.name)console.log("Store Error:",b.message);else throw b;}this.activeStore_=a};cvox.SpeechRuleEngine.prototype.setDynamicConstraint=function(a){a&&(this.dynamicCstr=a)}; +cvox.SpeechRuleEngine.prototype.constructString=function(a,b){if(!b)return"";if('"'==b.charAt(0))return b.slice(1,-1);var c=this.activeStore_.customStrings.lookup(b);return c?c(a):cvox.XpathUtil.evaluateString(b,a)};cvox.SpeechRuleEngine.prototype.evaluateNode=function(a){return a?this.evaluateTree_(a):[]}; +cvox.SpeechRuleEngine.prototype.evaluateTree_=function(a){var b=this.activeStore_.lookupRule(a,this.dynamicCstr);if(!b)return this.activeStore_.evaluateDefault(a);for(var b=b.action.components,c=[],d=0,e;e=b[d];d++){var f=[],g=e.content||"";switch(e.type){case cvox.SpeechRule.Type.NODE:(g=this.activeStore_.applyQuery(a,g))&&(f=this.evaluateTree_(g));break;case cvox.SpeechRule.Type.MULTI:g=this.activeStore_.applySelector(a,g);0<g.length&&(f=this.evaluateNodeList_(g,e.sepFunc,this.constructString(a, +e.separator),e.ctxtFunc,this.constructString(a,e.context)));break;case cvox.SpeechRule.Type.TEXT:(g=this.constructString(a,g))&&(f=[new cvox.NavDescription({text:g})]);break;default:f=[new cvox.NavDescription({text:g})]}f[0]&&e.context&&e.type!=cvox.SpeechRule.Type.MULTI&&(f[0].context=this.constructString(a,e.context)+(f[0].context||""));c=c.concat(this.addPersonality_(f,e))}return c}; +cvox.SpeechRuleEngine.prototype.evaluateNodeList_=function(a,b,c,d,e){if(a==[])return[];var f=c||"",g=e||"";c=(c=this.activeStore_.contextFunctions.lookup(d))?c(a,g):function(){return g};b=(b=this.activeStore_.contextFunctions.lookup(b))?b(a,f):function(){return f};d=[];e=0;for(var h;h=a[e];e++)h=this.evaluateTree_(h),0<h.length&&(h[0].context=c()+(h[0].context||""),d=d.concat(h),e<a.length-1&&(h=b())&&d.push(new cvox.NavDescription({text:h})));return d}; +cvox.SpeechRuleEngine.propMap={pitch:cvox.AbstractTts.RELATIVE_PITCH,rate:cvox.AbstractTts.RELATIVE_RATE,volume:cvox.AbstractTts.RELATIVE_VOLUME,pause:cvox.AbstractTts.PAUSE};cvox.SpeechRuleEngine.prototype.addPersonality_=function(a,b){var c={},d;for(d in cvox.SpeechRuleEngine.propMap){var e=parseFloat(b[d]);isNaN(e)||(c[cvox.SpeechRuleEngine.propMap[d]]=e)}a.forEach(goog.bind(function(a){this.addRelativePersonality_(a,c);this.resetPersonality_(a)},this));return a}; +cvox.SpeechRuleEngine.prototype.addRelativePersonality_=function(a,b){if(!a.personality)return a.personality=b,a;var c=a.personality,d;for(d in b)c[d]=c[d]&&"number"==typeof c[d]?c[d]+b[d]:b[d];return a};cvox.SpeechRuleEngine.prototype.resetPersonality_=function(a){if(this.activeStore_.defaultTtsProps)for(var b=0,c;c=this.activeStore_.defaultTtsProps[b];b++)a.personality[c]=cvox.ChromeVox.tts.getDefaultProperty(c)};cvox.SpeechRuleEngine.debugMode=!1; +cvox.SpeechRuleEngine.outputDebug=function(a){if(cvox.SpeechRuleEngine.debugMode){var b=Array.prototype.slice.call(arguments,0);console.log.apply(console,["Speech Rule Engine Debugger:"].concat(b))}};cvox.SpeechRuleEngine.prototype.toString=function(){var a=this.activeStore_.findAllRules(function(){return!0});return a.map(function(a){return a.toString()}).join("\n")}; +cvox.SpeechRuleEngine.debugSpeechRule=function(a,b){var c=cvox.SpeechRuleEngine.getInstance().activeStore_;if(c){var d=a.precondition;cvox.SpeechRuleEngine.outputDebug(d.query,c.applyQuery(b,d.query));d.constraints.forEach(function(a){cvox.SpeechRuleEngine.outputDebug(a,c.applyConstraint(b,a))})}}; +cvox.SpeechRuleEngine.debugNamedSpeechRule=function(a,b){for(var c=cvox.SpeechRuleEngine.getInstance().activeStore_,c=c.findAllRules(function(b){return b.name==a}),d=0,e;e=c[d];d++)cvox.SpeechRuleEngine.outputDebug("Rule",a,"number",d),cvox.SpeechRuleEngine.debugSpeechRule(e,b)};cvox.AbstractWalker=function(){};cvox.AbstractWalker.prototype.begin=function(a){a=a||{reversed:!1};return this.sync(cvox.CursorSelection.fromBody().setReversed(a.reversed))};cvox.AbstractWalker.prototype.hasAction=function(a){return"function"==typeof this[a]};cvox.AbstractWalker.prototype.performAction=function(a,b){return this.hasAction(a)?this[a](b):null};cvox.AbstractNodeWalker=function(){this.wasBegin_=!1};goog.inherits(cvox.AbstractNodeWalker,cvox.AbstractWalker);cvox.AbstractNodeWalker.prototype.next=function(a){var b=a.isReversed();a=a.end.node||document.body;do if(a=cvox.DomUtil.directedNextLeafLikeNode(a,b,goog.bind(this.stopNodeDescent,this)),!a)return null;while(a&&!cvox.DomUtil.hasContent(a));return cvox.CursorSelection.fromNode(a).setReversed(b)}; +cvox.AbstractNodeWalker.prototype.sync=function(a){a=this.privateSync_(a);this.wasBegin_=!1;return a}; +cvox.AbstractNodeWalker.prototype.privateSync_=function(a){var b=a.isReversed();if(a.equals(cvox.CursorSelection.fromBody())){if(this.wasBegin_)return cvox.CursorSelection.fromBody().setReversed(b);this.wasBegin_=!0}for(a=a.start.node;a!=document.body&&a.parentNode&&this.stopNodeDescent(a.parentNode);)a=a.parentNode;for(;!this.stopNodeDescent(a);)a=cvox.DomUtil.directedFirstChild(a,b);var c=cvox.CursorSelection.fromNode(a);cvox.DomUtil.hasContent(a)||(c=this.next(cvox.CursorSelection.fromNode(a).setReversed(b))); +return c?c.setReversed(b):this.begin({reversed:b})};cvox.BareObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.BareObjectWalker,cvox.AbstractNodeWalker);cvox.BareObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AuralStyleConverter={};cvox.AuralStyleUtil={}; +cvox.AuralProperty={VOLUME:"VOLUME",SPEAK:"SPEAK",PAUSE_BEFORE:"PAUSE_BEFORE",PAUSE_AFTER:"PAUSE_AFTER",PAUSE:"PAUSE",CUE_BEFORE:"CUE_BEFORE",CUE_AFTER:"CUE_AFTER",CUE:"CUE",PLAY_DURING:"PLAY_DURING",AZIMUTH:"AZIMUTH",ELEVATION:"ELEVATION",SPEECH_RATE:"SPEECH_RATE",VOICE_FAMILY:"VOICE_FAMILY",PITCH:"PITCH",PITCH_RANGE:"PITCH_RANGE",STRESS:"STRESS",RICHNESS:"RICHNESS",SPEAK_PUNCTUATION:"SPEAK_PUNCTUATION",SPEAK_NUMERIAL:"SPEAK_NUMERIAL",SPEAK_HEADER:"SPEAK_HEADER",NONE:"NONE"}; +cvox.AuralStyleConverter.identity=function(a){return a};cvox.AuralStyleConverter.propertyTable={VOLUME:"volume",SPEAK:"no-op",PAUSE_BEFORE:"no-op",PAUSE_AFTER:"no-op",PAUSE:"no-op",CUE_BEFORE:"no-op",CUE_AFTER:"no-op",CUE:"no-op",PLAY_DURING:"no-op",AZIMUTH:"no-op",ELEVATION:"no-op",SPEECH_RATE:"relativeRate",VOICE_FAMILY:"no-op",PITCH:"relativePitch",PITCH_RANGE:"no-op",STRESS:"no-op",RICHNESS:"no-op",SPEAK_PUNCTUATION:"no-op",SPEAK_NUMERIAL:"no-op",SPEAK_HEADER:"no-op",NONE:"no-op"}; +cvox.AuralStyleConverter.valueTable={VOLUME:cvox.AuralStyleConverter.identity,SPEAK:cvox.AuralStyleConverter.identity,PAUSE_BEFORE:cvox.AuralStyleConverter.identity,PAUSE_AFTER:cvox.AuralStyleConverter.identity,PAUSE:cvox.AuralStyleConverter.identity,CUE_BEFORE:cvox.AuralStyleConverter.identity,CUE_AFTER:cvox.AuralStyleConverter.identity,CUE:cvox.AuralStyleConverter.identity,PLAY_DURING:cvox.AuralStyleConverter.identity,AZIMUTH:cvox.AuralStyleConverter.identity,ELEVATION:cvox.AuralStyleConverter.identity, +SPEECH_RATE:cvox.AuralStyleConverter.identity,VOICE_FAMILY:cvox.AuralStyleConverter.identity,PITCH:cvox.AuralStyleConverter.identity,PITCH_RANGE:cvox.AuralStyleConverter.identity,STRESS:cvox.AuralStyleConverter.identity,RICHNESS:cvox.AuralStyleConverter.identity,SPEAK_PUNCTUATION:cvox.AuralStyleConverter.identity,SPEAK_NUMERIAL:cvox.AuralStyleConverter.identity,SPEAK_HEADER:cvox.AuralStyleConverter.identity,NONE:cvox.AuralStyleConverter.identity}; +cvox.AuralStyleConverter.convertRule=function(a,b){return{property:cvox.AuralStyleConverter.propertyTable[a],value:cvox.AuralStyleConverter.valueTable[a](b)}};cvox.AuralStyleConverter.convertStyle=function(a){var b={},c;for(c in a){var d=cvox.AuralStyleConverter.convertRule(c,a[c]);b[d.property]=d.value}return b};cvox.AuralStyleUtil.getStyleForNode=function(a){return(a=cvox.AuralStyleUtil.defaultStyles[a.tagName])?cvox.AuralStyleConverter.convertStyle(a):null}; +cvox.AuralStyleUtil.defaultStyles={ARTICLE:{PITCH:-0.1},ASIDE:{PITCH:-0.1},FOOTER:{PITCH:-0.1},H1:{PITCH:-0.3},H2:{PITCH:-0.25},H3:{PITCH:-0.2},H4:{PITCH:-0.15},H5:{PITCH:-0.1},H6:{PITCH:-0.05},HEADER:{PITCH:-0.1},HGROUP:{PITCH:-0.1},MARK:{PITCH:-0.1},NAV:{PITCH:-0.1},SECTION:{PITCH:-0.1},TIME:{PITCH:-0.1}};cvox.EarconUtil={}; +cvox.EarconUtil.getEarcon=function(a){var b=cvox.AriaUtil.getEarcon(a);if(null!=b)return b;switch(a.tagName){case "BUTTON":return cvox.AbstractEarcons.BUTTON;case "A":if(a.hasAttribute("href"))return cvox.AbstractEarcons.LINK;break;case "IMG":if(cvox.DomUtil.hasLongDesc(a))return cvox.AbstractEarcons.LONG_DESC;break;case "LI":return cvox.AbstractEarcons.LIST_ITEM;case "SELECT":return cvox.AbstractEarcons.LISTBOX;case "TEXTAREA":return cvox.AbstractEarcons.EDITABLE_TEXT;case "INPUT":switch(a.type){case "button":case "submit":case "reset":return cvox.AbstractEarcons.BUTTON;case "checkbox":case "radio":return a.checked? +cvox.AbstractEarcons.CHECK_ON:cvox.AbstractEarcons.CHECK_OFF;default:if(cvox.DomUtil.isInputTypeText(a))return cvox.AbstractEarcons.EDITABLE_TEXT}}return null};cvox.DescriptionUtil={};cvox.DescriptionUtil.COLLECTION_NODE_TYPE={H1:!0,H2:!0,H3:!0,H4:!0,H5:!0,H6:!0}; +cvox.DescriptionUtil.getControlDescription=function(a,b){var c=[a];if(b&&0<b.length)c=b;else{var d=cvox.DomUtil.getSurroundingControl(a);d&&(c=[d,a])}c=cvox.DescriptionUtil.getDescriptionFromAncestors(c,!0,cvox.VERBOSITY_VERBOSE);if(d){var e=cvox.DomUtil.getName(d);0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(d),0<e.length&&(c.context=e+" "+c.context))}else e=cvox.DomUtil.getName(a),0==e.length&&(e=cvox.DomUtil.getControlLabelHeuristics(a),0<e.length&&(c.text=cvox.DomUtil.collapseWhitespace(e))), +d=cvox.DomUtil.getValue(a),0<d.length&&(c.userValue=cvox.DomUtil.collapseWhitespace(d));return c}; +cvox.DescriptionUtil.getDescriptionFromAncestors=function(a,b,c){"undefined"===typeof b&&(b=!0);var d=a.length,e="",f="",g="",h="",k=[],l=null;0<d&&(f=cvox.DomUtil.getName(a[d-1],b),g=cvox.DomUtil.getValue(a[d-1]));for(b=d-1;0<=b;b--){var m=a[b],p=m.getAttribute?m.getAttribute("role"):null;if("dialog"!=p&&"alertdialog"!=p){p=cvox.DomUtil.getRole(m,c);l||(l=cvox.AuralStyleUtil.getStyleForNode(m));if(b<d-1&&m.hasAttribute("role")){var q=cvox.DomUtil.getName(m,!1);q&&(p=q+" "+p)}0<p.length&&(0<e.length|| +0<h.length&&1<m.childElementCount?e=p+" "+cvox.DomUtil.getState(m,!1)+" "+e:h=0<h.length?h+(" "+p+" "+cvox.DomUtil.getState(m,!0)):p+" "+cvox.DomUtil.getState(m,!0));m=cvox.EarconUtil.getEarcon(m);null!=m&&-1==k.indexOf(m)&&k.push(m)}}return new cvox.NavDescription({context:cvox.DomUtil.collapseWhitespace(e),text:cvox.DomUtil.collapseWhitespace(f),userValue:cvox.DomUtil.collapseWhitespace(g),annotation:cvox.DomUtil.collapseWhitespace(h),earcons:k,personality:l})}; +cvox.DescriptionUtil.getDescriptionFromNavigation=function(a,b,c,d){if(!a||!b)return[];if(cvox.DomUtil.isMath(b)&&!cvox.AriaUtil.isMath(b))return cvox.DescriptionUtil.getMathDescription(b);if(cvox.DescriptionUtil.COLLECTION_NODE_TYPE[b.tagName])return cvox.DescriptionUtil.getCollectionDescription(cvox.CursorSelection.fromNode(a),cvox.CursorSelection.fromNode(b));var e=cvox.DomUtil.getUniqueAncestors(a,b,!0),e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,c,d);a=cvox.DomUtil.getUniqueAncestors(b, +a);cvox.DescriptionUtil.shouldDescribeExit_(a)&&(c=cvox.DescriptionUtil.getDescriptionFromAncestors(a,c,d),c.context&&!e.context&&(e.context=cvox.ChromeVox.msgs.getMsg("exited_container",[c.context])));return[e]};cvox.DescriptionUtil.getCollectionDescription=function(a,b){var c=cvox.DescriptionUtil.getRawDescriptions_(a,b);cvox.DescriptionUtil.insertCollectionDescription_(c);return c};cvox.DescriptionUtil.subWalker_=new cvox.BareObjectWalker; +cvox.DescriptionUtil.getRawDescriptions_=function(a,b){var c=[];b=b.clone().setReversed(!1);var d=cvox.DescriptionUtil.subWalker_.sync(b).start.node,e=a.end.node,f=cvox.CursorSelection.fromNode(d);if(!f)return[];for(;cvox.DomUtil.isDescendantOfNode(d,b.start.node);){e=cvox.DomUtil.getUniqueAncestors(e,d);cvox.DomUtil.isMath(d)&&!cvox.AriaUtil.isMath(d)?c=c.concat(cvox.DescriptionUtil.getMathDescription(d)):(e=cvox.DescriptionUtil.getDescriptionFromAncestors(e,!0,cvox.ChromeVox.verbosity),c.push(e)); +f=cvox.DescriptionUtil.subWalker_.next(f);if(!f)break;e=d;d=f.start.node}return c}; +cvox.DescriptionUtil.getFullDescriptionsFromChildren=function(a,b){var c=[];if(!b)return c;var d;if(cvox.DomUtil.isLeafNode(b))return a?d=cvox.DomUtil.getUniqueAncestors(a,b):(d=[],d.push(b)),d=cvox.DescriptionUtil.getDescriptionFromAncestors(d,!0,cvox.ChromeVox.verbosity),c.push(d),c;d=b;var e=cvox.CursorSelection.fromNode(b);if(!e)return c;b=cvox.DescriptionUtil.subWalker_.sync(e).start.node;e=cvox.CursorSelection.fromNode(b);if(!e)return c;for(;cvox.DomUtil.isDescendantOfNode(b,d);){c=c.concat(cvox.DescriptionUtil.getFullDescriptionsFromChildren(a, +b));e=cvox.DescriptionUtil.subWalker_.next(e);if(!e)break;a=b;b=e.start.node}return c}; +cvox.DescriptionUtil.insertCollectionDescription_=function(a){var b=cvox.DescriptionUtil.getAnnotations_(a);if(3<=a.length&&0==a[0].context.length&&1==b.length&&0<b[0].length&&cvox.DescriptionUtil.isAnnotationCollection_(b[0])){var b=b[0],c=a[0].context;a[0].context="";for(var d=0;d<a.length;d++)a[d].annotation="";a.splice(0,0,new cvox.NavDescription({context:c,text:"",annotation:cvox.ChromeVox.msgs.getMsg("collection",[b,cvox.ChromeVox.msgs.getNumber(a.length)])}))}}; +cvox.DescriptionUtil.getAnnotations_=function(a){for(var b=[],c=0;c<a.length;++c){var d=a[c];if(-1==b.indexOf(d.annotation)){var e=cvox.ChromeVox.msgs.getMsg("tag_link");-1!=d.annotation.toLowerCase().indexOf(e.toLowerCase())?-1==b.indexOf(e)&&b.push(e):b.push(d.annotation)}}return b};cvox.DescriptionUtil.isAnnotationCollection_=function(a){return a==cvox.ChromeVox.msgs.getMsg("tag_link")};cvox.DescriptionUtil.shouldDescribeExit_=function(a){return a.some(function(a){switch(a.tagName){case "TABLE":case "MATH":return!0}return cvox.AriaUtil.isLandmark(a)})}; +cvox.DescriptionUtil.getMathDescription=function(a){var b=cvox.SpeechRuleEngine.getInstance(),c=cvox.TraverseMath.getInstance();b.parameterize(cvox.MathmlStore.getInstance());c.initialize(a);a=b.evaluateNode(c.activeNode);if(a==[])return[new cvox.NavDescription({text:"empty math"})];cvox.ChromeVox.verbosity==cvox.VERBOSITY_VERBOSE&&(a[a.length-1].annotation="math");a[0].pushEarcon(cvox.AbstractEarcons.SPECIAL_CONTENT);return a};cvox.FindUtil={};cvox.FindUtil.objectWalker_=new cvox.BareObjectWalker;cvox.FindUtil.findNext=function(a,b,c){var d=a.isReversed();a=(new cvox.CursorSelection(a.absStart(),a.absStart())).setReversed(d);var e;if(e=b(cvox.DomUtil.getAncestors(a.start.node)))if(a=cvox.CursorSelection.fromNode(e).setReversed(d),c)return a;for(;a;){a=cvox.FindUtil.objectWalker_.next(a);c=null;if(!a||(c=b(cvox.DomUtil.getAncestors(a.start.node))))return c?cvox.CursorSelection.fromNode(c):null;if("IFRAME"==a.start.node.tagName)return a}return null};cvox.Interframe=function(){};cvox.Interframe.IF_MSG_PREFIX="cvox.INTERFRAME:";cvox.Interframe.SET_ID="cvox.INTERFRAME_SET_ID";cvox.Interframe.listeners=[];cvox.Interframe.allowAccessToIframeContentWindow=!0; +cvox.Interframe.init=function(){cvox.Interframe.messageListener=function(a){if("string"===typeof a.data&&0==a.data.indexOf(cvox.Interframe.IF_MSG_PREFIX)){a=a.data.substr(cvox.Interframe.IF_MSG_PREFIX.length);a=cvox.ChromeVoxJSON.parse(a);a.command==cvox.Interframe.SET_ID&&(cvox.Interframe.id=a.id);for(var b=0,c;c=cvox.Interframe.listeners[b];b++)c(a)}return!1};window.addEventListener("message",cvox.Interframe.messageListener,!0)}; +cvox.Interframe.shutdown=function(){window.removeEventListener("message",cvox.Interframe.messageListener,!0)};cvox.Interframe.addListener=function(a){cvox.Interframe.listeners.push(a)};cvox.Interframe.sendMessageToWindow=function(a,b){var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null);b.postMessage(c,"*")}; +cvox.Interframe.sendMessageToIFrame=function(a,b){if(cvox.Interframe.allowAccessToIframeContentWindow&&b.contentWindow)cvox.Interframe.sendMessageToWindow(a,b.contentWindow);else{var c=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),d=document.createElement("script");d.type="text/javascript";if(b.hasAttribute("id")&&document.getElementById(b.id)==b)d.innerHTML="document.getElementById(decodeURI('"+encodeURI(b.id)+"')).contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"; +else{var e="cvox_iframe"+a.id;""===b.className?b.className=e:-1==b.className.indexOf(e)&&(b.className+=" "+e);d.innerHTML="document.getElementsByClassName(decodeURI('"+encodeURI(e)+"'))[0].contentWindow.postMessage(decodeURI('"+encodeURI(c)+"'), '*');"}document.head.appendChild(d);window.setTimeout(function(){document.head.removeChild(d)},1E3)}}; +cvox.Interframe.sendMessageToParentWindow=function(a){cvox.Interframe.isIframe()&&(a.sourceId=cvox.Interframe.id,window.parent?cvox.Interframe.sendMessageToWindow(a,window.parent):(a=cvox.Interframe.IF_MSG_PREFIX+cvox.ChromeVoxJSON.stringify(a,null,null),window.location.href="javascript:window.parent.postMessage('"+encodeURI(a)+"', '*');"))};cvox.Interframe.sendIdToIFrame=function(a,b){var c={command:cvox.Interframe.SET_ID,id:a};cvox.Interframe.sendMessageToIFrame(c,b)}; +cvox.Interframe.isIframe=function(){return window!=window.parent};cvox.Interframe.init();cvox.PageSelection=function(a){this.sel_=a.clone();this.sel_.select();this.wasBegin_=!0}; +cvox.PageSelection.prototype.getDescription=function(a,b,c){var d=[];this.sel_.isReversed()!=c.isReversed()?(d=a.getDescription(c,b),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE)):(d=a.getDescription(b,c),d[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_selected"),d[0].pushEarcon(cvox.AbstractEarcons.SELECTION),!this.wasBegin_&&this.sel_.absEquals(c.clone().normalize())&&(a=a.getDescription(c,b),a[0].annotation=cvox.ChromeVox.msgs.getMsg("describe_unselected"), +a[0].pushEarcon(cvox.AbstractEarcons.SELECTION_REVERSE),a[0].pushEarcon(cvox.AbstractEarcons.WRAP),d=a.concat(d)));return d};cvox.PageSelection.prototype.getFullDescription=function(){return[new cvox.NavDescription({text:window.getSelection().toString(),context:cvox.ChromeVox.msgs.getMsg("selection_is")})]}; +cvox.PageSelection.prototype.extend=function(a){this.sel_.directedBefore(a)?this.sel_.end=this.sel_.isReversed()==a.isReversed()?a.end.clone():a.start.clone():this.sel_=a.clone();this.sel_.select();this.wasBegin_=!1;return!this.sel_.absEquals(a)};cvox.BrailleUtil={};cvox.BrailleUtil.ITEM_SEPARATOR=" ";cvox.BrailleUtil.CONTAINER="tag_h1_brl tag_h2_brl tag_h3_brl tag_h4_brl tag_h5_brl tag_h6_brl".split(" "); +cvox.BrailleUtil.TEMPLATE={base:"c n v r s",aria_role_button:"[n]",aria_role_textbox:"n: v r",input_type_button:"[n]",input_type_checkbox:"n (s)",input_type_email:"n: v r",input_type_number:"n: v r",input_type_password:"n: v r",input_type_search:"n: v r",input_type_submit:"[n]",input_type_text:"n: v r",input_type_tel:"n: v r",input_type_url:"n: v r",tag_button:"[n]",tag_textarea:"n: v r"};cvox.BrailleUtil.ValueSpan=function(a){this.offset=a};cvox.BrailleUtil.ValueSelectionSpan=function(){}; +cvox.BrailleUtil.getName=function(a){return a?cvox.DomUtil.getName(a).trim():""};cvox.BrailleUtil.getRoleMsg=function(a){if(!a)return"";(a=cvox.DomUtil.getRoleMsg(a,cvox.VERBOSITY_VERBOSE))&&(a=cvox.DomUtil.collapseWhitespace(a));a&&0<a.length&&cvox.ChromeVox.msgs.getMsg(a+"_brl")&&(a+="_brl");return a};cvox.BrailleUtil.getRole=function(a){return a?(a=cvox.BrailleUtil.getRoleMsg(a))?cvox.ChromeVox.msgs.getMsg(a):"":""}; +cvox.BrailleUtil.getState=function(a){return a?cvox.NodeStateUtil.expand(cvox.DomUtil.getStateMsgs(a,!0).map(function(a){cvox.ChromeVox.msgs.getMsg(a[0]+"_brl")&&(a[0]+="_brl");return a})):""};cvox.BrailleUtil.getContainer=function(a,b){if(!a||!b)return"";for(var c=cvox.DomUtil.getUniqueAncestors(a,b),d=0,e;e=c[d];d++)if((e=cvox.BrailleUtil.getRoleMsg(e))&&-1!=cvox.BrailleUtil.CONTAINER.indexOf(e))return cvox.ChromeVox.msgs.getMsg(e);return""}; +cvox.BrailleUtil.getValue=function(a){if(!a)return new cvox.Spannable;var b=new cvox.BrailleUtil.ValueSpan(0);if(cvox.DomUtil.isInputTypeText(a)){var c=a.value;"password"===a.type&&(c=c.replace(/./g,"*"));b=new cvox.Spannable(c,b);a===document.activeElement&&b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,a.selectionStart,a.selectionEnd);return b}if(a instanceof HTMLTextAreaElement){var d=new cvox.EditableTextAreaShadow;d.update(a);var e=d.getLineIndex(a.selectionEnd),c=d.getLineStart(e),d=d.getLineEnd(e), +d=a.value.substring(c,d);b.offset=c;b=new cvox.Spannable(d,b);a===document.activeElement&&(d=Math.max(a.selectionStart-c,0),a=Math.min(a.selectionEnd-c,b.getLength()),b.setSpan(new cvox.BrailleUtil.ValueSelectionSpan,d,a));return b}return new cvox.Spannable(cvox.DomUtil.getValue(a),b)}; +cvox.BrailleUtil.getTemplated=function(a,b,c){c=c?c:{};for(var d=c.roleMsg||(b?cvox.DomUtil.getRoleMsg(b,cvox.VERBOSITY_VERBOSE):""),d=cvox.BrailleUtil.TEMPLATE[d]||cvox.BrailleUtil.TEMPLATE.base,e=new cvox.Spannable,f=function(d){switch(d){case "n":return c.name||cvox.BrailleUtil.getName(b);case "r":return c.role||cvox.BrailleUtil.getRole(b);case "s":return c.state||cvox.BrailleUtil.getState(b);case "c":return c.container||cvox.BrailleUtil.getContainer(a,b);case "v":return c.value?new cvox.Spannable(c.value, +new cvox.BrailleUtil.ValueSpan(0)):cvox.BrailleUtil.getValue(b);default:return d}},g=0;g<d.length;g++){var h=f(d[g]);e.append(h);h.toString()||" "!=d[g+1]||g++}return e.trim()};cvox.MathmlStoreUtil={};cvox.MathmlStoreUtil.matchMathjaxToMathml=function(a){var b=cvox.TraverseMath.getInstance().activeMathmlHost;return b.querySelector("#"+a.id)};cvox.MathmlStoreUtil.retrieveMathjaxExtender=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]};cvox.MathmlStoreUtil.retrieveMathjaxLeaf=function(a){return(a=cvox.MathmlStoreUtil.matchMathjaxToMathml(a))?[a]:[]}; +cvox.MathmlStoreUtil.checkMathjaxTag=function(a,b){var c=cvox.MathmlStoreUtil.matchMathjaxToMathml(a);return c&&c.tagName.toUpperCase()==b?[c]:[]};cvox.MathmlStoreUtil.checkMathjaxMunder=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MUNDER")};cvox.MathmlStoreUtil.checkMathjaxMover=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MOVER")};cvox.MathmlStoreUtil.checkMathjaxMsub=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUB")}; +cvox.MathmlStoreUtil.checkMathjaxMsup=function(a){return cvox.MathmlStoreUtil.checkMathjaxTag(a,"MSUP")};cvox.MathmlStoreUtil.nextSeparatorFunction=function(a){if(a){if(a.match(/^\s+$/))return null;var b=a.replace(/\s/g,"").split("").filter(function(a){return a})}else b=[","];return function(){return 1<b.length?b.shift():b[0]}};cvox.MathmlStoreUtil.mfencedSeparators=function(a,b){var c=cvox.MathmlStoreUtil.nextSeparatorFunction(b);return function(){return c?c():""}}; +cvox.MathmlStoreUtil.contentIterator=function(a,b){var c=0<a.length?cvox.XpathUtil.evalXPath("../../content/*",a[0]):[];return function(){var a=c.shift();return b+(a?a.textContent:"")}};cvox.StoreUtil={};cvox.StoreUtil.nodeCounter=function(a,b){var c=a.length,d=0,e=b;b||(e="");return function(){d<c&&(d+=1);return e+" "+d}};cvox.MathmlStoreRules=function(){cvox.MathmlStoreRules.initCustomFunctions_();cvox.MathmlStoreRules.initDefaultRules_();cvox.MathmlStoreRules.initMathjaxRules_();cvox.MathmlStoreRules.initAliases_();cvox.MathmlStoreRules.initSpecializationRules_();cvox.MathmlStoreRules.initSemanticRules_()};goog.addSingletonGetter(cvox.MathmlStoreRules);cvox.MathmlStoreRules.mathStore=cvox.MathmlStore.getInstance();cvox.MathmlStoreRules.mathStore.initialize=cvox.MathmlStoreRules.getInstance; +cvox.MathmlStoreRules.defineDefaultMathmlRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineDefaultMathmlRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRule_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRule,cvox.MathmlStoreRules.mathStore);cvox.MathmlStoreRules.defineRuleAlias_=goog.bind(cvox.MathmlStoreRules.mathStore.defineRuleAlias,cvox.MathmlStoreRules.mathStore); +cvox.MathmlStoreRules.addContextFunction_=goog.bind(cvox.MathmlStoreRules.mathStore.contextFunctions.add,cvox.MathmlStoreRules.mathStore.contextFunctions);cvox.MathmlStoreRules.addCustomQuery_=goog.bind(cvox.MathmlStoreRules.mathStore.customQueries.add,cvox.MathmlStoreRules.mathStore.customQueries); +cvox.MathmlStoreRules.initCustomFunctions_=function(){(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFnodeCounter",cvox.StoreUtil.nodeCounter);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFmfSeparators",cvox.MathmlStoreUtil.mfencedSeparators);(0,cvox.MathmlStoreRules.addContextFunction_)("CTXFcontentIterator",cvox.MathmlStoreUtil.contentIterator);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFextender",cvox.MathmlStoreUtil.retrieveMathjaxExtender);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmunder", +cvox.MathmlStoreUtil.checkMathjaxMunder);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmover",cvox.MathmlStoreUtil.checkMathjaxMover);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsub",cvox.MathmlStoreUtil.checkMathjaxMsub);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFmathmlmsup",cvox.MathmlStoreUtil.checkMathjaxMsup);(0,cvox.MathmlStoreRules.addCustomQuery_)("CQFlookupleaf",cvox.MathmlStoreUtil.retrieveMathjaxLeaf)}; +cvox.MathmlStoreRules.initDefaultRules_=function(){(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("math","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mspace","[p] (pause:250)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mstyle","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mpadded","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("merror","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mphantom","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mtext", +"[t] text(); [p] (pause:200)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mi","[n] text()");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mo","[n] text() (rate:-0.1)");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mn","[n] text()");(0,cvox.MathmlStoreRules.defineRule_)("mtext-variant","default.default",'[t] "begin"; [t] @mathvariant (pause:150);[t] text() (pause:150); [t] "end"; [t] @mathvariant (pause:200)',"self::mathml:mtext","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mi-variant", +"default.default","[t] @mathvariant; [n] text()","self::mathml:mi","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mi-variant","self::mathml:mn","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineRule_)("mo-variant","default.default","[t] @mathvariant; [n] text() (rate:-0.1)","self::mathml:mo","@mathvariant",'@mathvariant!="normal"');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("ms",'[t] "string" (pitch:0.5, rate:0.5); [t] text()');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msup", +'[n] ./*[1]; [t] "super";[n] ./*[2] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msubsup",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "super"; [n] ./*[3] (pitch:0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msub",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:300)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mover",'[n] ./*[2] (pitch:0.35); [p] (pause:200); [t] "over"; [n] ./*[1]; [p] (pause:400)'); +(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munder",'[n] ./*[2] (pitch:-0.35); [t] "under"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("munderover",'[n] ./*[2] (pitch:-0.35); [t] "under and"; [n] ./*[3] (pitch:0.35); [t] "over"; [n] ./*[1]; [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mrow","[m] ./*");(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("msqrt",'[t] "Square root of"; [m] ./* (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mroot", +'[t] "root of order"; [n] ./*[2]; [t] "of";[n] ./*[1] (rate:0.2); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineDefaultMathmlRule_)("mfrac",' [p] (pause:400); [n] ./*[1] (pitch:0.3); [t] "divided by"; [n] ./*[2] (pitch:-0.3); [p] (pause:400)');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-single","default.default",'[t] @open (context:"opening"); [m] ./* (separator:@separators);[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-empty", +"default.default",'[t] @open (context:"opening"); [m] ./*;[t] @close (context:"closing")',"self::mathml:mfenced","string-length(string(@separators))=1",'string(@separators)=" "');(0,cvox.MathmlStoreRules.defineRule_)("mfenced-comma","default.default",'[t] @open (context:"opening"); [m] ./* (separator:"comma");[t] @close (context:"closing")',"self::mathml:mfenced");(0,cvox.MathmlStoreRules.defineRule_)("mfenced-multi","default.default",'[t] @open (context:"opening"); [m] ./* (sepFunc:CTXFmfSeparators,separator:@separators); [t] @close (context:"closing")', +"self::mathml:mfenced","string-length(string(@separators))>1");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.default",'[t] "matrix"; [m] ./* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)',"self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.default","[m] ./*","self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mtable", +"default.superbrief",'[t] count(child::mathml:mtr); [t] "by";[t] count(child::mathml:mtr[1]/mathml:mtd); [t] "matrix";',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtable","default.short",'[t] "matrix"; [m] ./*',"self::mathml:mtable");(0,cvox.MathmlStoreRules.defineRule_)("mtr","default.short","[m] ./*","self::mathml:mtr");(0,cvox.MathmlStoreRules.defineRule_)("mtd","default.short",'[t] "Element"; [t] count(./preceding-sibling::mathml:mtd)+1;[t] count(./parent::mathml:mtr/preceding-sibling::mathml:mtr)+1;[p] (pause:500); [m] ./*', +"self::mathml:mtd");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-3", +"default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[5]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-3-4","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "right sub"; [n] ./*[2] (pitch:-0.35); [p] (pause:200);[t] "right super"; [n] ./*[3] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[6]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-2-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-1","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left super"; [n] ./*[6] (pitch:0.35); [p] (pause:300);', +"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[5]");(0,cvox.MathmlStoreRules.defineRule_)("mmultiscripts-1-2","default.default",'[n] ./*[1]; [p] (pause:200);[t] "left sub"; [n] ./*[5] (pitch:-0.35); [p] (pause:200);',"self::mathml:mmultiscripts","./mathml:none=./*[2]","./mathml:none=./*[3]","./mathml:mprescripts=./*[4]","./mathml:none=./*[6]")}; +cvox.MathmlStoreRules.initMathjaxRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("mj-math","default.default","[n] ./*[1]/*[1]/*[1]",'self::span[@class="math"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-leaf","default.default","[n] CQFlookupleaf",'self::span[@class="mi"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mo"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mn"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtext"]'); +(0,cvox.MathmlStoreRules.defineRule_)("mj-mo-ext","default.default","[n] CQFextender",'self::span[@class="mo"]',"./*[1]/*[1]/text()","./*[1]/*[2]/text()");(0,cvox.MathmlStoreRules.defineRule_)("mj-texatom","default.default","[n] ./*[1]",'self::span[@class="texatom"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msubsup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35);[p] (pause:200); [t] "super"; [n] ./*[1]/*[2]/*[1] (pitch:0.35);[p] (pause:300)','self::span[@class="msubsup"]'); +(0,cvox.MathmlStoreRules.defineRule_)("mj-msub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub";[n] ./*[1]/*[2]/*[1] (pitch:-0.35); [p] (pause:300)','self::span[@class="msub"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msup","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "super";[n] ./*[1]/*[2]/*[1] (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munderover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under and";[n] ./*[1]/*[3]/*[1] (pitch:-0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)', +'self::span[@class="munderover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-munder","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "under";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="munder"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mover","default.default",'[n] ./*[1]/*[2]/*[1] (pitch:0.35); [t] "over";[n] ./*[1]/*[1]/*[1]; [p] (pause:400)','self::span[@class="mover"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfrac","default.default",'[p] (pause:250); [n] ./*[1]/*[1]/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] ./*[1]/*[2]/*[1] (pitch:-0.3);[p] (pause:400)', +'self::span[@class="mfrac"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-msqrt","default.default",'[t] "Square root of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="msqrt"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mroot","default.default",'[t] "root of order"; [n] ./*[1]/*[4]/*[1]; [t] "of";[n] ./*[1]/*[1]/*[1] (rate:0.2); [p] (pause:400)','self::span[@class="mroot"]');(0,cvox.MathmlStoreRules.defineRule_)("mj-mfenced","default.default",'[t] "opening"; [n] ./*[1]; [m] ./*[position()>1 and position()<last()]; [t] "closing"; [n] ./*[last()]', +'self::span[@class="mfenced"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mtable"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-leaf",'self::span[@class="mmultiscripts"]')}; +cvox.MathmlStoreRules.initAliases_=function(){(0,cvox.MathmlStoreRules.defineRuleAlias_)("mspace",'self::span[@class="mspace"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mstyle",'self::span[@class="mstyle"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mpadded",'self::span[@class="mpadded"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("merror",'self::span[@class="merror"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mphantom",'self::span[@class="mphantom"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("ms", +'self::span[@class="ms"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mrow",'self::span[@class="mrow"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msub",'self::span[@class="msubsup"]',"CQFmathmlmsub");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-msup",'self::span[@class="msubsup"]',"CQFmathmlmsup");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-munder",'self::span[@class="munderover"]',"CQFmathmlmunder");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-mover",'self::span[@class="munderover"]', +"CQFmathmlmover")}; +cvox.MathmlStoreRules.initSpecializationRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] ./*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("cube","default.default",'[n] ./*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)',"self::mathml:msup","./*[2][text()=3]"); +(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube","self::mathml:msup","./mathml:mrow=./*[2]","count(./*[2]/*)=1","./*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("square-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("square-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=2]"); +(0,cvox.MathmlStoreRules.defineRule_)("cube-sub","default.default",'[n] ./*[1]; [t] "sub"; [n] ./*[2] (pitch:-0.35);[p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)',"self::mathml:msubsup","./*[3][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("cube-sub","self::mathml:msubsup","./mathml:mrow=./*[3]","count(./*[3]/*)=1","./*[3]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]', +"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]', +"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "cube" (pitch:0.35); [p] (pause:300)','self::span[@class="msup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube", +'self::span[@class="msubsup"]',"CQFmathmlmsup","./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube",'self::span[@class="msubsup"]',"CQFmathmlmsup",'./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRule_)("mj-square-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "square" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]', +"./*[1]/*[2]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-square-sub",'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=2]");(0,cvox.MathmlStoreRules.defineRule_)("mj-cube-sub","default.default",'[n] ./*[1]/*[1]/*[1]; [t] "sub"; [n] ./*[1]/*[3]/*[1] (pitch:-0.35); [p] (pause:300); [t] "cube" (pitch:0.35); [p] (pause:400)','self::span[@class="msubsup"]',"./*[1]/*[2]/*[1][text()=3]");(0,cvox.MathmlStoreRules.defineRuleAlias_)("mj-cube-sub", +'self::span[@class="msubsup"]','./*[1]/*[2]/*[1]=./*[1]/*[2]/span[@class="mrow"]',"count(./*[1]/*[2]/*[1]/*)=1","./*[1]/*[2]/*[1]/*[1][text()=3]")}; +cvox.MathmlStoreRules.initSemanticRules_=function(){(0,cvox.MathmlStoreRules.defineRule_)("stree","default.default","[n] ./*[1]","self::stree");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default",'[t] "multirelation"; [m] children/* (sepFunc:CTXFcontentIterator)',"self::multirel");(0,cvox.MathmlStoreRules.defineRule_)("variable-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]', +"count(./children/*)>2",'./children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.default",'[t] "equation sequence"; [m] ./children/* (context:"part",ctxtFunc:CTXFnodeCounter,separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("multi-equality","default.short",'[t] "equation sequence"; [m] ./children/* (separator:./text())','self::relseq[@role="equality"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("equality", +"default.default",'[t] "equation"; [t] "left hand side"; [n] children/*[1];[p] (pause:200); [n] text() (pause:200);[t] "right hand side"; [n] children/*[2]','self::relseq[@role="equality"]',"count(./children/*)=2");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality","default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/identifier or ./children/number");(0,cvox.MathmlStoreRules.defineRule_)("simple-equality2", +"default.default","[n] children/*[1]; [p] (pause:200); [n] text() (pause:200);[n] children/*[2]",'self::relseq[@role="equality"]',"count(./children/*)=2","./children/function or ./children/appl");(0,cvox.MathmlStoreRules.defineRule_)("multrel","default.default","[m] children/* (separator:./text())","self::relseq");(0,cvox.MathmlStoreRules.defineRule_)("binary-operation","default.default","[m] children/* (separator:text());","self::infixop");(0,cvox.MathmlStoreRules.defineRule_)("variable-addition", +"default.default",'[t] "sum with variable number of summands";[p] (pause:400); [m] children/* (separator:./text())','self::infixop[@role="addition"]',"count(children/*)>2",'children/punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("multi-addition","default.default",'[t] "sum with,"; [t] count(./children/*); [t] ", summands";[p] (pause:400); [m] ./children/* (separator:./text())','self::infixop[@role="addition"]',"count(./children/*)>2");(0,cvox.MathmlStoreRules.defineRule_)("prefix", +"default.default",'[t] "prefix"; [n] text(); [t] "of" (pause 150);[n] children/*[1]',"self::prefixop");(0,cvox.MathmlStoreRules.defineRule_)("negative","default.default",'[t] "negative"; [n] children/*[1]',"self::prefixop",'self::prefixop[@role="negative"]');(0,cvox.MathmlStoreRules.defineRule_)("postfix","default.default",'[n] children/*[1]; [t] "postfix"; [n] text() (pause 300)',"self::postfixop");(0,cvox.MathmlStoreRules.defineRule_)("identifier","default.default","[n] text()","self::identifier"); +(0,cvox.MathmlStoreRules.defineRule_)("number","default.default","[n] text()","self::number");(0,cvox.MathmlStoreRules.defineRule_)("fraction","default.default",'[p] (pause:250); [n] children/*[1] (pitch:0.3); [p] (pause:250); [t] "divided by"; [n] children/*[2] (pitch:-0.3); [p] (pause:400)',"self::fraction");(0,cvox.MathmlStoreRules.defineRule_)("superscript","default.default",'[n] children/*[1]; [t] "super"; [n] children/*[2] (pitch:0.35);[p] (pause:300)',"self::superscript");(0,cvox.MathmlStoreRules.defineRule_)("subscript", +"default.default",'[n] children/*[1]; [t] "sub"; [n] children/*[2] (pitch:-0.35);[p] (pause:300)',"self::subscript");(0,cvox.MathmlStoreRules.defineRule_)("ellipsis","default.default",'[p] (pause:200); [t] "dot dot dot"; [p] (pause:300)',"self::punct",'self::punct[@role="ellipsis"]');(0,cvox.MathmlStoreRules.defineRule_)("fence-single","default.default","[n] text()","self::punct",'self::punct[@role="openfence"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="closefence"]'); +(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="vbar"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("fence-single","self::punct",'self::punct[@role="application"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-punct","default.default","[p] (pause:200);","self::punct");(0,cvox.MathmlStoreRules.defineRule_)("omit-empty","default.default","","self::empty");(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close","default.default",'[p] (pause:100); [t] "open"; [n] children/*[1]; [p] (pause:200);[t] "close"', +'self::fenced[@role="leftright"]');(0,cvox.MathmlStoreRules.defineRule_)("fences-open-close-in-appl","default.default","[p] (pause:100); [n] children/*[1]; [p] (pause:200);",'self::fenced[@role="leftright"]',"./parent::children/parent::appl");(0,cvox.MathmlStoreRules.defineRule_)("fences-neutral","default.default",'[p] (pause:100); [t] "absolute value of"; [n] children/*[1];[p] (pause:350);',"self::fenced",'self::fenced[@role="neutral"]');(0,cvox.MathmlStoreRules.defineRule_)("omit-fences","default.default", +"[p] (pause:500); [n] children/*[1]; [p] (pause:200);","self::fenced");(0,cvox.MathmlStoreRules.defineRule_)("matrix","default.default",'[t] "matrix"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:100)',"self::matrix");(0,cvox.MathmlStoreRules.defineRule_)("matrix-row","default.default",'[m] children/* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row[@role="matrix"]');(0,cvox.MathmlStoreRules.defineRule_)("matrix-cell","default.default","[n] children/*[1]",'self::cell[@role="matrix"]'); +(0,cvox.MathmlStoreRules.defineRule_)("vector","default.default",'[t] "vector"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"element",pause:100)',"self::vector");(0,cvox.MathmlStoreRules.defineRule_)("cases","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100)',"self::cases");(0,cvox.MathmlStoreRules.defineRule_)("cases-row","default.default","[m] children/*",'self::row[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("cases-cell", +"default.default","[n] children/*[1]",'self::cell[@role="cases"]');(0,cvox.MathmlStoreRules.defineRule_)("row","default.default",'[m] ./* (ctxtFunc:CTXFnodeCounter,context:"column",pause:100)','self::row"');(0,cvox.MathmlStoreRules.defineRule_)("cases-end","default.default",'[t] "case statement"; [m] children/* (ctxtFunc:CTXFnodeCounter,context:"case",pause:100);[t] "end cases"',"self::cases","following-sibling::*");(0,cvox.MathmlStoreRules.defineRule_)("multiline","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"line",pause:100)', +"self::multiline");(0,cvox.MathmlStoreRules.defineRule_)("line","default.default","[m] children/*","self::line");(0,cvox.MathmlStoreRules.defineRule_)("table","default.default",'[t] "multiline equation";[m] children/* (ctxtFunc:CTXFnodeCounter,context:"row",pause:200)',"self::table");(0,cvox.MathmlStoreRules.defineRule_)("table-row","default.default","[m] children/* (pause:100)",'self::row[@role="table"]');(0,cvox.MathmlStoreRules.defineRuleAlias_)("cases-cell",'self::cell[@role="table"]');(0,cvox.MathmlStoreRules.defineRule_)("end-punct", +"default.default","[m] children/*; [p] (pause:300)","self::punctuated",'@role="endpunct"');(0,cvox.MathmlStoreRules.defineRule_)("start-punct","default.default","[n] content/*[1]; [p] (pause:200); [m] children/*","self::punctuated",'@role="startpunct"');(0,cvox.MathmlStoreRules.defineRule_)("integral-punct","default.default","[n] children/*[1] (rate:0.2); [n] children/*[3] (rate:0.2)","self::punctuated",'@role="integral"');(0,cvox.MathmlStoreRules.defineRule_)("punctuated","default.default","[m] children/* (pause:100)", +"self::punctuated");(0,cvox.MathmlStoreRules.defineRule_)("function","default.default","[n] text()","self::function");(0,cvox.MathmlStoreRules.defineRule_)("appl","default.default","[n] children/*[1]; [n] content/*[1]; [n] children/*[2]","self::appl");(0,cvox.MathmlStoreRules.defineRule_)("limboth","default.default",'[n] children/*[1]; [t] "from"; [n] children/*[2]; [t] "to";[n] children/*[3]',"self::limboth");(0,cvox.MathmlStoreRules.defineRule_)("sum-only","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);', +"self::limboth",'self::limboth[@role="sum"]');(0,cvox.MathmlStoreRules.defineRule_)("limlower","default.default",'[n] children/*[1]; [t] "over"; [n] children/*[2];',"self::limlower");(0,cvox.MathmlStoreRules.defineRule_)("limupper","default.default",'[n] children/*[1]; [t] "under"; [n] children/*[2];',"self::limupper");(0,cvox.MathmlStoreRules.defineRule_)("largeop","default.default","[n] text()","self::largeop");(0,cvox.MathmlStoreRules.defineRule_)("bigop","default.default",'[n] children/*[1]; [p] (pause 100); [t] "over"; [n] children/*[2];[p] (pause 250);', +"self::bigop");(0,cvox.MathmlStoreRules.defineRule_)("integral","default.default","[n] children/*[1]; [p] (pause 100); [n] children/*[2]; [p] (pause 200);[n] children/*[3] (rate:0.35);","self::integral");(0,cvox.MathmlStoreRules.defineRule_)("sqrt","default.default",'[t] "Square root of"; [n] children/*[1] (rate:0.2); [p] (pause:400)',"self::sqrt");(0,cvox.MathmlStoreRules.defineRule_)("square","default.default",'[n] children/*[1]; [t] "square" (pitch:0.35); [p] (pause:300)',"self::superscript","children/*[2][text()=2]"); +(0,cvox.MathmlStoreRules.defineRule_)("text-no-mult","default.default","[n] children/*[1]; [p] (pause:200); [n] children/*[2]","self::infixop","children/text")};cvox.AbstractShifter=function(){this.isSubnavigating_=!1};cvox.AbstractShifter.prototype.begin=function(a,b){return this.currentWalker_.begin(b)};cvox.AbstractShifter.prototype.makeLessGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.makeMoreGranular=function(){this.ensureNotSubnavigating()};cvox.AbstractShifter.prototype.ensureSubnavigating=function(){!1==this.isSubnavigating_&&(this.makeMoreGranular(),this.isSubnavigating_=!0)}; +cvox.AbstractShifter.prototype.ensureNotSubnavigating=function(){!0==this.isSubnavigating_&&(this.isSubnavigating_=!1,this.makeLessGranular())};cvox.AbstractShifter.prototype.isSubnavigating=function(){return this.isSubnavigating_};cvox.AbstractShifter.prototype.hasAction=function(a){return this.currentWalker_.hasAction(a)};cvox.AbstractShifter.prototype.performAction=function(a,b){return this.currentWalker_.performAction(a,b)};cvox.MathShifter=function(a){cvox.AbstractShifter.call(this);this.level_=0;this.bumped_=this.direction_=!1;cvox.TraverseMath.getInstance().initialize(a.start.node)};goog.inherits(cvox.MathShifter,cvox.AbstractShifter);cvox.MathShifter.prototype.next=function(a){var b=a.isReversed();this.bumped_=!cvox.TraverseMath.getInstance().nextSibling(b);return(b=cvox.TraverseMath.getInstance().getAttachedActiveNode())?cvox.CursorSelection.fromNode(b):a}; +cvox.MathShifter.prototype.sync=function(a){var b=cvox.TraverseMath.getInstance().getAttachedActiveNode();return b?cvox.CursorSelection.fromNode(b):a};cvox.MathShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("math_shifter")};cvox.MathShifter.prototype.getDescription=function(){var a=cvox.SpeechRuleEngine.getInstance().evaluateNode(cvox.TraverseMath.getInstance().activeNode);this.bumped_&&0<a.length&&a[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE);return a}; +cvox.MathShifter.prototype.getBraille=function(a,b){return new cvox.NavBraille({text:cvox.BrailleUtil.getTemplated(a.start.node,b.start.node)})};cvox.MathShifter.prototype.getGranularityMsg=function(){return this.direction_?"up to level "+this.level_:"down to level "+this.level_};cvox.MathShifter.prototype.makeLessGranular=function(){this.level_=0<this.level_?this.level_-1:0;this.direction_=!0;this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!0)}; +cvox.MathShifter.prototype.makeMoreGranular=function(){this.direction_=!1;(this.bumped_=!cvox.TraverseMath.getInstance().nextParentChild(!1))||this.level_++}; +cvox.MathShifter.create=function(a){if(cvox.DomPredicates.mathPredicate(cvox.DomUtil.getAncestors(a.start.node))){var b=cvox.DomUtil.getContainingMath(a.end.node);cvox.TraverseMath.getInstance().initialize(b);cvox.SpeechRuleEngine.getInstance().parameterize(cvox.MathmlStore.getInstance());b=cvox.MathStore.createDynamicConstraint(cvox.TraverseMath.getInstance().domain,cvox.TraverseMath.getInstance().style);cvox.SpeechRuleEngine.getInstance().setDynamicConstraint(b);return new cvox.MathShifter(a)}return null};cvox.TableUtil={};cvox.TableUtil.checkIfHeader=function(a){return"TH"==a.tagName||a.hasAttribute("scope")||a.hasAttribute("role")&&("rowheader"==a.getAttribute("role")||"columnheader"==a.getAttribute("role"))}; +cvox.TableUtil.determineColGroups=function(a){var b=[];if(0==a.length)return b;for(var c=0;c<a.length;c++){var d=a[c],e=cvox.TableUtil.getColNodes(d);if(0<e.length)for(d=0;d<e.length;d++){var f=e[d];if(f.hasAttribute("span"))for(var f=parseInt(f.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}else if(d.hasAttribute("span"))for(f=parseInt(d.getAttribute("span"),10),g=0;g<f;g++)b.push(c);else b.push(c)}return b};cvox.TableUtil.pushIfNotContained=function(a,b){-1==a.indexOf(b)&&a.push(b)}; +cvox.TableUtil.getChildRows=function(a){return cvox.XpathUtil.evalXPath('child::tbody/tr | child::thead/tr | child::*[attribute::role="row"]',a)};cvox.TableUtil.getChildCells=function(a){return cvox.XpathUtil.evalXPath('child::td | child::th | child::*[attribute::role="gridcell"] |child::*[attribute::role="rowheader"] |child::*[attribute::role="columnheader"]',a)};cvox.TableUtil.getCellWithID=function(a,b){return cvox.XpathUtil.evalXPath("id('"+b+"')",a)}; +cvox.TableUtil.getColGroups=function(a){return cvox.XpathUtil.evalXPath("child::colgroup",a)};cvox.TableUtil.getColNodes=function(a){return cvox.XpathUtil.evalXPath("child::col",a)};function ShadowTableNode(){}ShadowTableNode.prototype.rowHeaderCells=[];ShadowTableNode.prototype.colHeaderCells=[];cvox.TraverseTable=function(a){this.activeTable_=null;this.shadowTable_=[];this.candidateHeaders_=[];this.idToShadowNode_=[];this.initialize(a)};cvox.TraverseTable.prototype.colCount=null;cvox.TraverseTable.prototype.rowCount=null;cvox.TraverseTable.prototype.tableRowHeaders=null;cvox.TraverseTable.prototype.tableColHeaders=null; +cvox.TraverseTable.prototype.initialize=function(a){a&&a!=this.activeTable_&&(this.activeTable_=a,this.currentCellCursor=null,this.tableRowHeaders=[],this.tableColHeaders=[],this.buildShadowTable_(),this.colCount=this.shadowColCount_(),this.rowCount=this.countRows_(),this.findHeaderCells_(),this.activeTable_.addEventListener("DOMSubtreeModified",goog.bind(function(){this.buildShadowTable_();this.colCount=this.shadowColCount_();this.rowCount=this.countRows_();this.tableRowHeaders=[];this.tableColHeaders= +[];this.findHeaderCells_();0==this.colCount&&0==this.rowCount||null!=this.getCell()||this.attachCursorToNearestCell_()},this),!1))}; +cvox.TraverseTable.prototype.findNearestCursor=function(a){for(;a.firstElementChild&&"TABLE"!=a.firstElementChild.tagName&&!cvox.AriaUtil.isGrid(a.firstElementChild);)a=a.firstElementChild;for(;!cvox.DomPredicates.cellPredicate(cvox.DomUtil.getAncestors(a));)if(a=cvox.DomUtil.directedNextLeafNode(a),!cvox.DomUtil.getContainingTable(a,{allowCaptions:!0}))return null;for(var b=0;b<this.rowCount;++b)for(var c=0;c<this.colCount;++c)if(this.shadowTable_[b][c]&&cvox.DomUtil.isDescendantOfNode(a,this.shadowTable_[b][c].activeCell))return[b, +c];return null};cvox.TraverseTable.prototype.attachCursorToNearestCell_=function(){if(this.currentCellCursor){var a=this.currentCellCursor,b=this.shadowTable_[a[0]];if(b)this.currentCellCursor=[a[0],b.length-1];else if(b=this.shadowTable_.length,0==b)this.currentCellCursor=null;else{var c=this.shadowTable_[b-1][a[1]];c?this.currentCellCursor=[b-1,a[1]]:this.goToLastCell()}}else this.goToLastCell()}; +cvox.TraverseTable.prototype.buildShadowTable_=function(){this.shadowTable_=[];for(var a=cvox.TableUtil.getChildRows(this.activeTable_),b=null,c=null,d=cvox.TableUtil.getColGroups(this.activeTable_),d=cvox.TableUtil.determineColGroups(d),e=0;e<a.length;e++)this.shadowTable_.push([]);for(e=0;e<a.length;e++)for(var f=cvox.TableUtil.getChildCells(a[e]),g=0,h=0;g<f.length;)if(null==this.shadowTable_[e][h]){var k=f[g],l=1,m=1;k.hasAttribute("colspan")&&(l=parseInt(k.getAttribute("colspan"),10),isNaN(l)|| +0>=l)&&(l=1);k.hasAttribute("rowspan")&&(m=parseInt(k.getAttribute("rowspan"),10),isNaN(m)||0>=m)&&(m=1);for(var p=0;p<m;p++)for(var q=0;q<l;q++){var n=new ShadowTableNode;0==p&&0==q?(n.spanned=!1,n.rowSpan=!1,n.colSpan=!1):(n.spanned=!0,n.rowSpan=1<m,n.colSpan=1<l);n.i=e;n.j=h;n.activeCell=k;n.rowHeaderCells=[];n.colHeaderCells=[];n.isRowHeader=!1;n.isColHeader=!1;cvox.TableUtil.checkIfHeader(n.activeCell)?this.candidateHeaders_.push(n):n.activeCell.hasAttribute("headers")&&this.candidateHeaders_.push(n); +null==b?(b=a[e].parentNode,c=0):a[e].parentNode!=b&&(b=a[e].parentNode,c+=1);n.rowGroup=c;n.colGroup=0<d.length?d[h]:0;n.spanned||null!=k.id&&(this.idToShadowNode_[k.id]=n);this.shadowTable_[e+p][h+q]=n}h+=l;g++}else h+=1;return this.shadowTable_}; +cvox.TraverseTable.prototype.findHeaderCells_=function(){for(var a=0;a<this.candidateHeaders_.length;a++){var b=this.candidateHeaders_[a],c=b.activeCell,d=null,e=null;if(!b.spanned){"TH"!=c.tagName||c.hasAttribute("scope")?c.hasAttribute("scope")?e=c.getAttribute("scope"):c.hasAttribute("role")&&"rowheader"==c.getAttribute("role")?e="row":c.hasAttribute("role")&&"columnheader"==c.getAttribute("role")&&(e="col"):(0<b.j?"TH"==this.shadowTable_[b.i][b.j-1].activeCell.tagName&&(d="col"):b.j<this.shadowTable_[b.i].length- +1?"TH"==this.shadowTable_[b.i][b.j+1].activeCell.tagName&&(d="col"):d="col",null==d&&(0<b.i?"TH"==this.shadowTable_[b.i-1][b.j].activeCell.tagName&&(d="row"):b.i<this.shadowTable_.length-1?"TH"==this.shadowTable_[b.i+1][b.j].activeCell.tagName&&(d="row"):d="row"));if("row"==e||"row"==d){b.isRowHeader=!0;for(d=b.j;d<this.shadowTable_[b.i].length;d++)e=this.shadowTable_[b.i][d],e.rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("col"==e||"col"==d){b.isColHeader=!0;for(e=b.i;e<this.shadowTable_.length;e++){d= +this.shadowTable_[e][b.j];if(null==d)break;d.colHeaderCells.push(c)}this.tableColHeaders.push(c)}else if("rowgroup"==e){b.isRowHeader=!0;for(var f=b.rowGroup,d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].rowHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length&&this.shadowTable_[e][0].rowGroup==f;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].rowHeaderCells.push(c);this.tableRowHeaders.push(c)}else if("colgroup"==e){b.isColHeader=!0;f=b.colGroup; +for(d=b.j+1;d<this.shadowTable_[b.i].length;d++)this.shadowTable_[b.i][d].colGroup==f&&this.shadowTable_[b.i][d].colHeaderCells.push(c);for(e=b.i+1;e<this.shadowTable_.length;e++)for(d=0;d<this.shadowTable_[e].length;d++)this.shadowTable_[e][d].colGroup==f&&this.shadowTable_[e][d].colHeaderCells.push(c);this.tableColHeaders.push(c)}c.hasAttribute("headers")&&this.findAttrbHeaders_(b);c.hasAttribute("aria-describedby")&&this.findAttrbDescribedBy_(b)}}}; +cvox.TraverseTable.prototype.findAttrbHeaders_=function(a){for(var b=a.activeCell,c=b.getAttribute("headers").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];if(!cvox.TableUtil.checkIfHeader(g.activeCell)){var h=Math.abs(g.i-a.i),k=Math.abs(g.j-a.j);0==h||h<k?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders,g.activeCell)): +(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell))}}}; +cvox.TraverseTable.prototype.findAttrbDescribedBy_=function(a){for(var b=a.activeCell,c=b.getAttribute("aria-describedby").split(" "),d=0;d<c.length;d++)for(var e=cvox.TableUtil.getCellWithID(this.activeTable_,c[d]),f=0;f<e.length&&e[f].id!=b.id;f++){var g=this.idToShadowNode_[e[f].id];cvox.TableUtil.checkIfHeader(g.activeCell)||(g.activeCell.hasAttribute("role")&&"rowheader"==g.activeCell.getAttribute("role")?(cvox.TableUtil.pushIfNotContained(a.rowHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableRowHeaders, +g.activeCell)):g.activeCell.hasAttribute("role")&&"columnheader"==g.activeCell.getAttribute("role")&&(cvox.TableUtil.pushIfNotContained(a.colHeaderCells,g.activeCell),cvox.TableUtil.pushIfNotContained(this.tableColHeaders,g.activeCell)))}};cvox.TraverseTable.prototype.getCell=function(){if(!this.currentCellCursor||!this.shadowTable_)return null;var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a&&a.activeCell}; +cvox.TraverseTable.prototype.getCellAt=function(a){return a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]&&(a=this.shadowTable_[a[0]][a[1]],null!=a)?a.activeCell:null};cvox.TraverseTable.prototype.getCellRowHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.rowHeaderCells};cvox.TraverseTable.prototype.getCellColHeaders=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.colHeaderCells}; +cvox.TraverseTable.prototype.isSpanned=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.spanned};cvox.TraverseTable.prototype.isRowHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isRowHeader};cvox.TraverseTable.prototype.isColHeader=function(){var a=this.shadowTable_[this.currentCellCursor[0]][this.currentCellCursor[1]];return a.isColHeader}; +cvox.TraverseTable.prototype.getCol=function(){for(var a=[],b=0;b<this.shadowTable_.length;b++)if(this.shadowTable_[b][this.currentCellCursor[1]]){var c=this.shadowTable_[b][this.currentCellCursor[1]];if(c.colSpan&&c.rowSpan){var d=a[a.length-1];d!=c.activeCell&&a.push(c.activeCell)}else!c.colSpan&&c.rowSpan||a.push(c.activeCell)}return a};cvox.TraverseTable.prototype.summaryText=function(){return this.activeTable_.hasAttribute("summary")?this.activeTable_.getAttribute("summary"):null}; +cvox.TraverseTable.prototype.shadowColCount_=function(){for(var a=0,b=0;b<this.shadowTable_.length;b++)this.shadowTable_[b].length>a&&(a=this.shadowTable_[b].length);return a};cvox.TraverseTable.prototype.countRows_=function(){var a=cvox.TableUtil.getChildRows(this.activeTable_);return a.length};cvox.TraverseTable.prototype.nextRow=function(){return this.currentCellCursor?this.goToRow(this.currentCellCursor[0]+1):this.goToRow(0)}; +cvox.TraverseTable.prototype.nextCol=function(){return this.currentCellCursor?this.goToCol(this.currentCellCursor[1]+1):this.goToCol(0)};cvox.TraverseTable.prototype.goToRow=function(a){return null!=this.shadowTable_[a]?(this.currentCellCursor=null==this.currentCellCursor?[a,0]:[a,this.currentCellCursor[1]],!0):!1};cvox.TraverseTable.prototype.goToCol=function(a){if(0>a||a>=this.colCount)return!1;this.currentCellCursor=null==this.currentCellCursor?[0,a]:[this.currentCellCursor[0],a];return!0}; +cvox.TraverseTable.prototype.goToCell=function(a){if(a[0]<this.rowCount&&0<=a[0]&&a[1]<this.colCount&&0<=a[1]){var b=this.shadowTable_[a[0]][a[1]];if(null!=b)return this.currentCellCursor=a,!0}return!1};cvox.TraverseTable.prototype.goToLastCell=function(){var a=this.shadowTable_.length;if(0==a)return!1;var b=this.shadowTable_[a-1],a=[a-1,b.length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1}; +cvox.TraverseTable.prototype.goToRowLastCell=function(){var a=this.currentCellCursor[0],a=[a,this.shadowTable_[a].length-1],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TraverseTable.prototype.goToColLastCell=function(){var a=this.getCol(),a=[a.length-1,this.currentCellCursor[1]],b=this.shadowTable_[a[0]][a[1]];return null!=b?(this.currentCellCursor=a,!0):!1};cvox.TableWalker=function(){this.tt=new cvox.TraverseTable(null)};goog.inherits(cvox.TableWalker,cvox.AbstractWalker);cvox.TableWalker.prototype.next=function(a){return this.nextRow(a)};cvox.TableWalker.prototype.sync=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell(a)},this))}; +cvox.TableWalker.prototype.getDescription=function(a,b){var c=this.syncPosition_(b);if(!c)return[];this.tt.goToCell(c);c=cvox.DescriptionUtil.getCollectionDescription(a,b);0==c.length&&c.push(new cvox.NavDescription({annotation:cvox.ChromeVox.msgs.getMsg("empty_cell")}));return c};cvox.TableWalker.prototype.getBraille=function(a,b){new cvox.NavBraille({});var c=this.syncPosition_(b);if(c){var d=cvox.BrailleUtil.getTemplated(a.start.node,b.start.node);d.append(" "+ ++c[0]+"/"+ ++c[1])}return new cvox.NavBraille({text:d})}; +cvox.TableWalker.prototype.goToFirstCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToCell([0,0])},this))};cvox.TableWalker.prototype.goToLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToLastCell()},this))};cvox.TableWalker.prototype.goToRowFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([a[0],0])},this))}; +cvox.TableWalker.prototype.goToRowLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToRowLastCell()},this))};cvox.TableWalker.prototype.goToColFirstCell=function(a){return this.goTo_(a,goog.bind(function(a){return this.tt.goToCell([0,a[1]])},this))};cvox.TableWalker.prototype.goToColLastCell=function(a){return this.goTo_(a,goog.bind(function(){return this.tt.goToColLastCell()},this))}; +cvox.TableWalker.prototype.nextRow=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0]+(a.isReversed()?-1:1),b[1]])},this))};cvox.TableWalker.prototype.nextCol=function(a){return this.goTo_(a,goog.bind(function(b){return this.tt.goToCell([b[0],b[1]+(a.isReversed()?-1:1)])},this))};cvox.TableWalker.prototype.announceHeaders=function(a){cvox.ChromeVox.tts.speak(this.getHeaderText_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);return a}; +cvox.TableWalker.prototype.speakTableLocation=function(a){cvox.ChromeVox.navigationManager.speakDescriptionArray(this.getLocationDescription_(a),cvox.AbstractTts.QUEUE_MODE_FLUSH,null);return a};cvox.TableWalker.prototype.exitShifterContent=function(a){a=this.getTableNode_(a);if(!a)return null;a=cvox.DomUtil.directedNextLeafNode(a,!1);return cvox.CursorSelection.fromNode(a)}; +cvox.TableWalker.prototype.getHeaderText_=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))&&this.tt.goToCell(a)?this.getRowHeaderText_(a)+" "+this.getColHeaderText_(a):cvox.ChromeVox.msgs.getMsg("not_inside_table")};cvox.TableWalker.prototype.getLocationDescription_=function(a){a=this.getLocationInfo(a);return null==a?null:[new cvox.NavDescription({text:cvox.ChromeVox.msgs.getMsg("table_location",a)})]}; +cvox.TableWalker.prototype.getRowHeaderText_=function(a){var b="",c=this.tt.getCellRowHeaders();if(0==c.length)return c=this.tt.getCellAt([a[0],0]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("row_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("row_header")+b}; +cvox.TableWalker.prototype.getColHeaderText_=function(a){var b="",c=this.tt.getCellColHeaders();if(0==c.length)return c=this.tt.getCellAt([0,a[1]]),b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c)+" "+cvox.DomUtil.getName(c)),cvox.ChromeVox.msgs.getMsg("column_header")+b;for(a=0;a<c.length;++a)b+=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(c[a])+" "+cvox.DomUtil.getName(c[a]));return""==b?cvox.ChromeVox.msgs.getMsg("empty_row_header"):cvox.ChromeVox.msgs.getMsg("column_header")+ +b};cvox.TableWalker.prototype.getLocationInfo=function(a){this.tt.initialize(this.getTableNode_(a));return(a=this.tt.findNearestCursor(a.start.node))?[a[0]+1,this.tt.rowCount,a[1]+1,this.tt.colCount].map(function(a){return cvox.ChromeVox.msgs.getNumber(a)}):null}; +cvox.TableWalker.prototype.goTo_=function(a,b){this.tt.initialize(this.getTableNode_(a));var c=this.tt.findNearestCursor(a.end.node);if(!c)return null;this.tt.goToCell(c);return b(c)?cvox.CursorSelection.fromNode(this.tt.getCell()).setReversed(a.isReversed()):null};cvox.TableWalker.prototype.getTableNode_=function(a){return cvox.DomUtil.getContainingTable(a.end.node)};cvox.TableWalker.prototype.syncPosition_=function(a){var b=this.getTableNode_(a);this.tt.initialize(b);return this.tt.findNearestCursor(a.end.node)};cvox.ColumnWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.ColumnWalker,cvox.TableWalker);cvox.ColumnWalker.prototype.next=function(a){return this.nextCol(a)};cvox.ColumnWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("column_granularity")};cvox.RowWalker=function(){cvox.TableWalker.call(this)};goog.inherits(cvox.RowWalker,cvox.TableWalker);cvox.RowWalker.prototype.next=function(a){return this.nextRow(a)};cvox.RowWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("row_granularity")};cvox.TableShifter=function(){this.rowWalker_=new cvox.RowWalker;this.columnWalker_=new cvox.ColumnWalker;this.currentWalker_=this.rowWalker_;this.bumpedEdge_=!1;this.begin_=!0;cvox.AbstractShifter.call(this)};goog.inherits(cvox.TableShifter,cvox.AbstractShifter);cvox.TableShifter.prototype.next=function(a){var b=this.currentWalker_.next(a);return b?b:(this.bumpedEdge_=!0,a)}; +cvox.TableShifter.prototype.sync=function(a){return"TABLE"==a.start.node.tagName?a.isReversed()?this.currentWalker_.goToLastCell(a):this.currentWalker_.goToFirstCell(a):this.currentWalker_.sync(a)};cvox.TableShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("table_shifter")}; +cvox.TableShifter.prototype.getDescription=function(a,b){var c=this.currentWalker_.getDescription(a,b);if(0<c.length&&(this.bumpedEdge_&&(c[0].pushEarcon(cvox.AbstractEarcons.WRAP_EDGE),this.bumpedEdge_=!1),this.begin_)){var d=this.currentWalker_.tt.summaryText(),e=this.currentWalker_.getLocationInfo(b);null!=e&&c.push(new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("table_location",e),text:"",annotation:d?d+" ":""}));this.currentWalker_.tt.isSpanned()&&c.push(new cvox.NavDescription({text:"", +annotation:cvox.ChromeVox.msgs.getMsg("spanned")}));this.begin_=!1}return c};cvox.TableShifter.prototype.getBraille=function(a,b){return this.currentWalker_.getBraille(a,b)};cvox.TableShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()};cvox.TableShifter.prototype.makeLessGranular=function(){cvox.TableShifter.superClass_.makeLessGranular.call(this);this.currentWalker_=this.rowWalker_}; +cvox.TableShifter.prototype.makeMoreGranular=function(){cvox.TableShifter.superClass_.makeMoreGranular.call(this);this.currentWalker_=this.columnWalker_};cvox.TableShifter.create=function(a){a=cvox.DomUtil.getAncestors(a.start.node);return cvox.DomPredicates.tablePredicate(a)&&!cvox.DomPredicates.captionPredicate(a)?new cvox.TableShifter:null};cvox.NavigationHistory=function(){this.reset_()};cvox.NavigationHistory.MAX_HISTORY_LEN_=30;cvox.NavigationHistory.prototype.reset_=function(){var a=document.body;this.history_=[a];this.arrivedValid_=!0};cvox.NavigationHistory.prototype.update=function(a){var b=this.history_[0];a&&a!=b&&this.history_.unshift(a);this.history_.length>cvox.NavigationHistory.MAX_HISTORY_LEN_&&this.history_.pop();this.arrivedValid_=this.isValidNode_(a)}; +cvox.NavigationHistory.prototype.becomeInvalid=function(a){this.clean_();return this.arrivedValid_?!this.isValidNode_(a):(this.arrivedValid_=!0,!1)};cvox.NavigationHistory.prototype.revert=function(a){var b=document.activeElement;b!=document.body&&this.isValidNode_(b)&&this.update(b);if(a)for(;0<this.history_.length;){b=this.history_[0];if(a(b))break;this.history_.shift()}return{current:this.history_[0],previous:this.history_[1]}}; +cvox.NavigationHistory.prototype.clean_=function(){for(var a=!1,b=this.history_.length-1;0<=b;b--){var c=this.isValidNode_(this.history_[b]);c||(this.history_.splice(b,1),a=!0)}return a};cvox.NavigationHistory.prototype.isValidNode_=function(a){return cvox.DomUtil.isAttachedToDocument(a)&&cvox.DomUtil.isVisible(a)?!0:!1};cvox.TraverseContent=function(a){this.currentDomObj=null!=a?a:document.body;var b=document.createRange();try{b.selectNode(this.currentDomObj),this.startCursor_=new cvox.Cursor(b.startContainer,b.startOffset,cvox.TraverseUtil.getNodeText(b.startContainer)),this.endCursor_=new cvox.Cursor(b.endContainer,b.endOffset,cvox.TraverseUtil.getNodeText(b.endContainer))}catch(c){window.console.log("Error: Unselectable node:"),window.console.log(a)}};goog.addSingletonGetter(cvox.TraverseContent); +cvox.TraverseContent.prototype.lastSelectionWasWhitespace=!1;cvox.TraverseContent.prototype.skipWhitespace=!1;cvox.TraverseContent.prototype.skipInvalidSelections=!0;cvox.TraverseContent.prototype.breakAtLinks=!0;cvox.TraverseContent.kCharacter="character";cvox.TraverseContent.kWord="word";cvox.TraverseContent.kSentence="sentence";cvox.TraverseContent.kLine="line";cvox.TraverseContent.kParagraph="paragraph"; +cvox.TraverseContent.kAllGrains=[cvox.TraverseContent.kParagraph,cvox.TraverseContent.kSentence,cvox.TraverseContent.kLine,cvox.TraverseContent.kWord,cvox.TraverseContent.kCharacter];cvox.TraverseContent.prototype.syncToCursorSelection=function(a){this.startCursor_=a.start.clone();this.endCursor_=a.end.clone()};cvox.TraverseContent.prototype.getCurrentCursorSelection=function(){return new cvox.CursorSelection(this.startCursor_,this.endCursor_)}; +cvox.TraverseContent.prototype.updateSelection=function(){cvox.TraverseUtil.setSelection(this.startCursor_,this.endCursor_);cvox.SelectionUtil.scrollToSelection(window.getSelection())};cvox.TraverseContent.prototype.getCurrentRange=function(){var a=document.createRange();try{a.setStart(this.startCursor_.node,this.startCursor_.index),a.setEnd(this.endCursor_.node,this.endCursor_.index)}catch(b){console.log("Invalid range ")}return a};cvox.TraverseContent.prototype.getCurrentText=function(){return cvox.SelectionUtil.getRangeText(this.getCurrentRange())}; +cvox.TraverseContent.prototype.collapseToEnd=function(){this.startCursor_=this.endCursor_.clone()};cvox.TraverseContent.prototype.collapseToStart=function(){this.endCursor_=this.startCursor_.clone()}; +cvox.TraverseContent.prototype.moveNext=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getNextWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getNextChar(this.startCursor_,this.endCursor_, +e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getNextParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getNextLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getNextSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&& +g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.moveNext(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()}; +cvox.TraverseContent.prototype.movePrev=function(a){var b=this.getBreakTags(),c=this.skipWhitespace,d=this.getCurrentRange();cvox.SelectionUtil.isRangeValid(d)||(c=!0);var e=[],f=[];do{a===cvox.TraverseContent.kSentence?d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b):a===cvox.TraverseContent.kWord?d=cvox.TraverseUtil.getPreviousWord(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kCharacter?d=cvox.TraverseUtil.getPreviousChar(this.startCursor_,this.endCursor_, +e,f,c):a===cvox.TraverseContent.kParagraph?d=cvox.TraverseUtil.getPreviousParagraph(this.startCursor_,this.endCursor_,e,f):a===cvox.TraverseContent.kLine?d=cvox.TraverseUtil.getPreviousLine(this.startCursor_,this.endCursor_,e,f,b):(window.console.log('Invalid selection granularity: "'+a+'"'),a=cvox.TraverseContent.kSentence,d=cvox.TraverseUtil.getPreviousSentence(this.startCursor_,this.endCursor_,e,f,b));if(null==d)return null;var d=this.getCurrentRange(),g=!d.getBoundingClientRect()}while(this.skipInvalidSelections&& +g);if(cvox.SelectionUtil.isRangeValid(d))this.lastSelectionWasWhitespace=!1;else if(this.lastSelectionWasWhitespace||a!=cvox.TraverseContent.kCharacter)for(;!cvox.SelectionUtil.isRangeValid(this.getCurrentRange())&&null!=this.movePrev(a););else this.lastSelectionWasWhitespace=!0;return this.getCurrentText()};cvox.TraverseContent.prototype.getBreakTags=function(){return{A:this.breakAtLinks,BR:!0,HR:!0}}; +cvox.TraverseContent.prototype.nextElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.moveNext(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null}; +cvox.TraverseContent.prototype.prevElement=function(a,b){null!=b&&(this.currentDomObj=b);var c=this.movePrev(a);return null==c||cvox.DomUtil.isDescendantOfNode(this.startCursor_.node,this.currentDomObj)&&cvox.DomUtil.isDescendantOfNode(this.endCursor_.node,this.currentDomObj)?c:null};cvox.TraverseContent.prototype.reset=function(){window.getSelection().removeAllRanges()};cvox.AbstractSelectionWalker=function(){this.objWalker_=new cvox.BareObjectWalker;this.tc_=cvox.TraverseContent.getInstance();this.grain=""};goog.inherits(cvox.AbstractSelectionWalker,cvox.AbstractWalker); +cvox.AbstractSelectionWalker.prototype.next=function(a){var b=a.isReversed();this.tc_.syncToCursorSelection(a.clone().setReversed(!1));var c=b?this.tc_.prevElement(this.grain):this.tc_.nextElement(this.grain);if(null==c)return this.objWalker_.next(a);var c=this.tc_.getCurrentCursorSelection().setReversed(b),d=this.objWalker_.next(a),d=d?d.setReversed(b):null;return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)|| +cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d}; +cvox.AbstractSelectionWalker.prototype.sync=function(a){var b=a.isReversed(),c=null;if(a.start.equals(a.end)&&"Text"!=a.start.node.constructor.name){for(c=a.start.node;c&&cvox.DomUtil.directedFirstChild(c,b)&&!cvox.TraverseUtil.treatAsLeafNode(c);){for(var d=cvox.DomUtil.directedFirstChild(c,b);d;)if(cvox.DomUtil.isVisible(d,{checkAncestors:!1,checkDescendants:!1})){c=d;break}else d=cvox.DomUtil.directedNextSibling(d,b);if(!d)break}c=cvox.CursorSelection.fromNode(c)}else c=a.clone(),b?c.start=c.end: +c.end=c.start;c=this.next(c.setReversed(!1));d=(d=this.objWalker_.sync(a))?d.setReversed(b):null;if(!c)return d;c.setReversed(b);return!d||"Text"==c.end.node.constructor.name&&"Text"==d.end.node.constructor.name||cvox.DomUtil.isDescendantOfNode(c.end.node,a.end.node)||cvox.DomUtil.isDescendantOfNode(c.end.node,d.end.node)?c:d}; +cvox.AbstractSelectionWalker.prototype.getDescription=function(a,b){var c=cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getUniqueAncestors(a.end.node,b.start.node),!0,cvox.ChromeVox.verbosity);c.text=b.getText()||c.text;return[c]};cvox.AbstractSelectionWalker.prototype.getBraille=function(a,b){var c=b.absStart().node,d=cvox.TraverseUtil.getNodeText(c),e=new cvox.Spannable(d);e.setSpan(c,0,d.length);return new cvox.NavBraille({text:e,startIndex:b.absStart().index,endIndex:b.absEnd().index})};cvox.CharacterWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kCharacter};goog.inherits(cvox.CharacterWalker,cvox.AbstractSelectionWalker);cvox.CharacterWalker.prototype.getDescription=function(a,b){var c=cvox.CharacterWalker.superClass_.getDescription.call(this,a,b);c.forEach(function(a){a.personality||(a.personality={});a.personality.phoneticCharacters=!0});return c};cvox.CharacterWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("character_granularity")};cvox.GroupUtil={};cvox.GroupUtil.MAX_CHARCOUNT_=1500;cvox.GroupUtil.BREAKOUT_SELECTOR_='blockquote,button,code,form,frame,h1,h2,h3,h4,h5,h6,hr,iframe,input,object,ol,p,pre,select,table,tr,ul,math,span.math,[role~="alert alertdialog button checkbox combobox dialog log marquee menubar progressbar radio radiogroup scrollbar slider spinbutton status tab tabpanel textbox toolbar tooltip treeitem article document group heading img list math region row separator"]'; +cvox.GroupUtil.isLeafNode=function(a){if("LABEL"==a.tagName)return cvox.DomUtil.isLeafNode(a);if(cvox.DomUtil.isLeafNode(a))return!0;if(!cvox.DomUtil.isSemanticElt(a))for(var b=a.querySelectorAll(cvox.GroupUtil.BREAKOUT_SELECTOR_),c=0;c<b.length;++c)if(cvox.DomUtil.hasContent(b[c]))return!1;if(cvox.AriaUtil.isCompositeControl(a)&&!cvox.DomUtil.isFocusable(a))return!1;a=cvox.DomUtil.collapseWhitespace(cvox.DomUtil.getValue(a)+" "+cvox.DomUtil.getName(a));return a.length>cvox.GroupUtil.MAX_CHARCOUNT_|| +""===a.replace(/\s/g,"")?!1:!0};cvox.GroupWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.GroupWalker,cvox.AbstractNodeWalker);cvox.GroupWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getCollectionDescription(a,b)};cvox.GroupWalker.prototype.getBraille=function(){throw"getBraille is unsupported";};cvox.GroupWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("group_strategy")};cvox.GroupWalker.prototype.stopNodeDescent=function(a){return cvox.GroupUtil.isLeafNode(a)};cvox.StructuralLineWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kLine};goog.inherits(cvox.StructuralLineWalker,cvox.AbstractSelectionWalker);cvox.StructuralLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("structural_line")}; +cvox.StructuralLineWalker.prototype.getDescription=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getDescription.call(this,a,b);c[0].text=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index)+c[0].text;return c}; +cvox.StructuralLineWalker.prototype.getBraille=function(a,b){var c=cvox.StructuralLineWalker.superClass_.getBraille.call(this,a,b),d=this.objWalker_.sync(b).absStart().node,e=a.absEnd().node,f=void 0;b.start.equals(b.end)||cvox.DomPredicates.editTextPredicate([d])||(f=cvox.DomUtil.getPrefixText(b.absStart().node,b.absStart().index),f+=b.getText());e=cvox.BrailleUtil.getTemplated(e,d,{name:f});e.setSpan(d,0,e.getLength());c.text=e;c.startIndex=0;c.endIndex=0;return c};cvox.LayoutLineWalker=function(){this.subWalker_=new cvox.StructuralLineWalker};goog.inherits(cvox.LayoutLineWalker,cvox.AbstractWalker);cvox.LayoutLineWalker.prototype.next=function(a){var b=new cvox.CursorSelection(a.end,a.end,a.isReversed()),c=this.subWalker_.sync(b);if(!c)return null;b=this.subWalker_.next(b);if(!b)return null;b.setReversed(a.isReversed());return this.extend_(b).setReversed(!1)}; +cvox.LayoutLineWalker.prototype.sync=function(a){var b=this.subWalker_.sync(a);if(!b)return null;var c=this.extend_(b),b=this.extend_(b.setReversed(!b.isReversed()));return new cvox.CursorSelection(b.end,c.end,a.isReversed())}; +cvox.LayoutLineWalker.prototype.getDescription=function(a,b){var c=[],d=a,e=b.clone().setReversed(!1),f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return[];if(e.start.node==e.end.node)return this.subWalker_.getDescription(a,b);for(;f&&!f.end.equals(e.end);)c.push.apply(c,this.subWalker_.getDescription(d,f)),d=f,f=this.subWalker_.next(f);f&&c.push.apply(c,this.subWalker_.getDescription(d,f));return c}; +cvox.LayoutLineWalker.prototype.getBraille=function(a,b){var c=new cvox.NavBraille({}),d=this.subWalker_.sync(b.clone().setReversed(!1)),e=this.sync(b).setReversed(!1);if(!e||!d)return c;var f=new cvox.CursorSelection(e.start,e.start),f=this.subWalker_.sync(f);if(!f)return c;for(;f&&!f.end.equals(e.end);)this.appendBraille_(a,d,f,c),a=f,f=this.subWalker_.next(f);f&&this.appendBraille_(a,d,f,c);return c};cvox.LayoutLineWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("layout_line")}; +cvox.LayoutLineWalker.prototype.isVisualLineBreak_=function(a,b){if(this.wantsOwnLine_(a.end.node)||this.wantsOwnLine_(b.start.node))return!0;var c=a.getRange().getBoundingClientRect(),d=b.getRange().getBoundingClientRect();0==c.width&&0==c.height&&a.end.node.nodeType==Node.ELEMENT_NODE&&(c=a.end.node.getBoundingClientRect());0==d.width&&0==d.height&&b.start.node.nodeType==Node.ELEMENT_NODE&&(d=b.start.node.getBoundingClientRect());return c.bottom!=d.bottom}; +cvox.LayoutLineWalker.prototype.wantsOwnLine_=function(a){return a instanceof HTMLTextAreaElement||a.parentNode instanceof HTMLTextAreaElement};cvox.LayoutLineWalker.prototype.extend_=function(a){var b=a,c=a;do b=c,c=this.subWalker_.next(b);while(c&&!this.isVisualLineBreak_(b,c));return new cvox.CursorSelection(a.start,b.end,a.isReversed())}; +cvox.LayoutLineWalker.prototype.appendBraille_=function(a,b,c,d){a=this.subWalker_.getBraille(a,c).text;var e=a.getSpanInstanceOf(cvox.BrailleUtil.ValueSelectionSpan);0<d.text.getLength()&&d.text.append(cvox.BrailleUtil.ITEM_SEPARATOR);for(var f=c.start.node;f.parentNode&&cvox.DomUtil.isLeafNode(f.parentNode);)f=f.parentNode;var g=d.text.getLength(),h=g+a.getLength();d.text.append(a.toString());d.text.setSpan(f,g,h);b&&c.absEquals(b)&&(e?(d.startIndex=g+a.getSpanStart(e),d.endIndex=g+a.getSpanEnd(e)): +(d.startIndex=g,d.endIndex=g+1))};cvox.ObjectWalker=function(){cvox.AbstractNodeWalker.call(this)};goog.inherits(cvox.ObjectWalker,cvox.AbstractNodeWalker);cvox.ObjectWalker.prototype.stopNodeDescent=function(a){return cvox.DomUtil.isLeafNode(a)};cvox.AbstractNodeWalker.prototype.getDescription=function(a,b){return cvox.DescriptionUtil.getDescriptionFromNavigation(a.end.node,b.start.node,!0,cvox.ChromeVox.verbosity)};cvox.ObjectWalker.prototype.getBraille=function(){throw"getBraille is unsupported";}; +cvox.ObjectWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("object_strategy")};cvox.SentenceWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kSentence};goog.inherits(cvox.SentenceWalker,cvox.AbstractSelectionWalker);cvox.SentenceWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("sentence_granularity")};cvox.WordWalker=function(){cvox.AbstractSelectionWalker.call(this);this.grain=cvox.TraverseContent.kWord};goog.inherits(cvox.WordWalker,cvox.AbstractSelectionWalker);cvox.WordWalker.prototype.getGranularityMsg=function(){return cvox.ChromeVox.msgs.getMsg("word_granularity")};cvox.NavigationShifter=function(){this.reset_();cvox.AbstractShifter.call(this)};goog.inherits(cvox.NavigationShifter,cvox.AbstractShifter);cvox.NavigationShifter.GRANULARITIES={CHARACTER:0,WORD:1,LINE:2,SENTENCE:3,OBJECT:4,GROUP:5};cvox.NavigationShifter.prototype.storeOn=function(a){a.granularity=this.getGranularity()};cvox.NavigationShifter.prototype.readFrom=function(a){this.setGranularity(a.granularity)}; +cvox.NavigationShifter.prototype.next=function(a){a=this.currentWalker_.next(a);this.currentWalkerIndex_<=cvox.NavigationShifter.GRANULARITIES.LINE&&a&&(cvox.TraverseContent.getInstance().syncToCursorSelection(a.clone().setReversed(!1)),cvox.TraverseContent.getInstance().updateSelection());return a};cvox.NavigationShifter.prototype.sync=function(a){return this.currentWalker_.sync(a)};cvox.NavigationShifter.prototype.getName=function(){return cvox.ChromeVox.msgs.getMsg("navigation_shifter")}; +cvox.NavigationShifter.prototype.getDescription=function(a,b){return this.currentWalker_.getDescription(a,b)};cvox.NavigationShifter.prototype.getBraille=function(a,b){return this.lineWalker_.getBraille(a,b)};cvox.NavigationShifter.prototype.getGranularityMsg=function(){return this.currentWalker_.getGranularityMsg()}; +cvox.NavigationShifter.prototype.makeMoreGranular=function(){cvox.NavigationShifter.superClass_.makeMoreGranular.call(this);this.currentWalkerIndex_=Math.max(this.currentWalkerIndex_-1,0);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_--;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]}; +cvox.NavigationShifter.prototype.makeLessGranular=function(){cvox.NavigationShifter.superClass_.makeLessGranular.call(this);this.currentWalkerIndex_=Math.min(this.currentWalkerIndex_+1,this.walkers_.length-1);cvox.NavigationShifter.allowSentence||this.currentWalkerIndex_!=cvox.NavigationShifter.GRANULARITIES.SENTENCE||this.currentWalkerIndex_++;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]}; +cvox.NavigationShifter.prototype.setGranularity=function(a){this.ensureNotSubnavigating();this.currentWalkerIndex_=a;this.currentWalker_=this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.prototype.getGranularity=function(){var a=this.isSubnavigating();this.ensureNotSubnavigating();var b=this.currentWalkerIndex_;a&&this.ensureSubnavigating();return b}; +cvox.NavigationShifter.prototype.hasAction=function(a){return"toggleLineType"==a?!0:cvox.NavigationShifter.superClass_.hasAction.call(this,a)};cvox.NavigationShifter.create=function(){return new cvox.NavigationShifter}; +cvox.NavigationShifter.prototype.reset_=function(){this.groupWalker_=new cvox.GroupWalker;this.objectWalker_=new cvox.ObjectWalker;this.sentenceWalker_=new cvox.SentenceWalker;this.lineWalker_=new cvox.LayoutLineWalker;this.wordWalker_=new cvox.WordWalker;this.characterWalker_=new cvox.CharacterWalker;this.walkers_=[this.characterWalker_,this.wordWalker_,this.lineWalker_,this.sentenceWalker_,this.objectWalker_,this.groupWalker_];this.currentWalkerIndex_=this.walkers_.indexOf(this.groupWalker_);this.currentWalker_= +this.walkers_[this.currentWalkerIndex_]};cvox.NavigationShifter.allowSentence=!1;cvox.NavigationSpeaker=function(){this.stopReading=!1;this.id_=1}; +cvox.NavigationSpeaker.prototype.speakDescriptionArray=function(a,b,c){a=this.reorderAnnotations(a);this.stopReading=!1;this.id_=(this.id_+1)%1E4;var d=this,e=function(b,g,h){var k=a[b];if(k&&!d.stopReading&&d.id_==h){var l=function(){for(var a=0;a<k.earcons.length;a++)cvox.ChromeVox.earcons.playEarcon(k.earcons[a])},m=function(){e(b+1,cvox.AbstractTts.QUEUE_MODE_QUEUE,h)},p=function(){k.personality&&k.personality[cvox.AbstractTts.PAUSE]&&"number"==typeof k.personality[cvox.AbstractTts.PAUSE]?setTimeout(m, +k.personality[cvox.AbstractTts.PAUSE]):m();b==a.length-1&&c&&c()};k.isEmpty()?(l(),p()):(k.speak(g,l,p),cvox.ChromeVox.host.hasTtsCallback()||(l(),p()))}};e(0,b,this.id_);0==a.length&&c&&c()};cvox.NavigationSpeaker.structuredElement=function(a){switch(a){case "table":case "Math":return!0}return!1}; +cvox.NavigationSpeaker.prototype.reorderAnnotations=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];cvox.NavigationSpeaker.structuredElement(d.annotation)&&(b.push(new cvox.NavDescription({text:"",annotation:d.annotation})),d.annotation="");b.push(d)}return b};cvox.NavigationManager=function(){this.addInterframeListener_();this.reset()};cvox.NavigationManager.prototype.storeOn=function(a){a.reversed=this.isReversed();a.keepReading=this.keepReading_;a.findNext=this.predicate_;this.shifter_.storeOn(a)};cvox.NavigationManager.prototype.readFrom=function(a){this.curSel_.setReversed(a.reversed);this.shifter_.readFrom(a);a.keepReading&&this.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH)}; +cvox.NavigationManager.prototype.reset=function(){this.navSpeaker_=new cvox.NavigationSpeaker;this.shifterTypes_=[cvox.NavigationShifter,cvox.TableShifter,cvox.MathShifter];this.shifterStack_=[];this.shifter_=new cvox.NavigationShifter;this.curSel_=document.activeElement!=document.body?cvox.CursorSelection.fromNode(document.activeElement):this.shifter_.begin(this.curSel_,{reversed:!1});this.prevSel_=this.curSel_.clone();this.ignoreIframesNoMatterWhat_=this.exitedShifter_=this.enteredShifter_=this.pageEndAnnounced_= +this.pageEnd_=this.keepReading_=this.recovered_=this.skipped_=!1;this.pageSel_=null;this.predicate_="";this.saveSel_=null;this.activeIndicator&&this.activeIndicator.removeFromDom();this.activeIndicator=new cvox.ActiveIndicator;this.navigationHistory_=new cvox.NavigationHistory;this.focusRecovery_="chrome:"!=window.location.protocol;this.iframeIdMap={};this.nextIframeId=1;document.activeElement!=document.body&&this.sync();cvox.TraverseMath.getInstance()}; +cvox.NavigationManager.prototype.resolve=function(a){if(!this.getFocusRecovery())return!0;var b=this.getCurrentNode();if(!this.navigationHistory_.becomeInvalid(b)||this.hasNext_())return!0;b=this.navigationHistory_.revert(a);if(!b.current)return!0;a=cvox.CursorSelection.fromNode(b.current);b=cvox.CursorSelection.fromNode(b.previous);a=a||cvox.CursorSelection.fromBody();b=b||cvox.CursorSelection.fromBody();a.setReversed(this.isReversed());this.updateSel(a,b);this.recovered_=!0;return!1}; +cvox.NavigationManager.prototype.getFocusRecovery=function(){return this.focusRecovery_};cvox.NavigationManager.prototype.setFocusRecovery=function(a){this.focusRecovery_=a};cvox.NavigationManager.prototype.next_=function(a){return this.tryBoundaries_(this.shifter_.next(this.curSel_),a)?(this.pageSel_&&this.pageSel_.extend(this.curSel_),!0):!1}; +cvox.NavigationManager.prototype.hasNext_=function(){if(0<this.shifterStack_.length)return!0;var a=this.curSel_.clone(),b=!1,c=new cvox.NavigationShifter;c.setGranularity(this.shifter_.getGranularity());c.sync(a);c.next(a)&&(b=!0);return b}; +cvox.NavigationManager.prototype.findNext=function(a,b,c){this.predicate_=b||"";this.resolve();this.shifter_=this.shifterStack_[0]||this.shifter_;this.shifterStack_=[];a=cvox.FindUtil.findNext(this.curSel_,a,c);this.ignoreIframesNoMatterWhat_||this.tryIframe_(a&&a.start.node);a&&this.updateSelToArbitraryNode(a.start.node);this.predicate_="";return a};cvox.NavigationManager.prototype.sync=function(){this.resolve();var a=this.shifter_.sync(this.curSel_);a&&(this.curSel_=a)}; +cvox.NavigationManager.prototype.syncAll=function(a){this.sync();this.setFocus(a);this.updateIndicator()};cvox.NavigationManager.prototype.clearPageSel=function(a){var b=!!this.pageSel_;b&&a&&(a=cvox.ChromeVox.msgs.getMsg("clear_page_selection"),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION));this.pageSel_=null;return b}; +cvox.NavigationManager.prototype.togglePageSel=function(){this.pageSel_=this.pageSel_?null:new cvox.PageSelection(this.curSel_.setReversed(!1));return!!this.pageSel_}; +cvox.NavigationManager.prototype.getDescription=function(){if(this.getCurrentNode().hasAttribute&&this.getCurrentNode().hasAttribute("cvoxnodedesc")){for(var a=cvox.ChromeVoxJSON.parse(this.getCurrentNode().getAttribute("cvoxnodedesc")),b=[],c=0;c<a.length;++c){var d=a[c];b.push(new cvox.NavDescription({context:d.context,text:d.text,userValue:d.userValue,annotation:d.annotation}))}return b}var e=this.pageSel_?this.pageSel_.getDescription(this.shifter_,this.prevSel_,this.curSel_):this.shifter_.getDescription(this.prevSel_, +this.curSel_),a=[];this.skipped_&&(a.push(cvox.AbstractEarcons.PARAGRAPH_BREAK),this.skipped_=!1);this.recovered_&&(a.push(cvox.AbstractEarcons.FONT_CHANGE),this.recovered_=!1);this.pageEnd_&&(a.push(cvox.AbstractEarcons.WRAP),this.pageEnd_=!1);this.enteredShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_ENTER),this.enteredShifter_=!1);this.exitedShifter_&&(a.push(cvox.AbstractEarcons.OBJECT_EXIT),this.exitedShifter_=!1);0<a.length&&0<e.length&&a.forEach(function(a){e[0].pushEarcon(a)});return e}; +cvox.NavigationManager.prototype.getBraille=function(){return cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.ANDROID|cvox.PlatformFilter.CHROMEOS)?this.shifter_.getBraille(this.prevSel_,this.curSel_):new cvox.NavBraille({})}; +cvox.NavigationManager.prototype.performAction=function(a){switch(a){case "enterShifter":case "enterShifterSilently":for(var b=this.shifterTypes_.length-1,c;c=this.shifterTypes_[b];b--)if((c=c.create(this.curSel_))&&c.getName()!=this.shifter_.getName()){this.shifterStack_.push(this.shifter_);this.shifter_=c;this.sync();this.enteredShifter_="enterShifterSilently"!=a;break}else if(c&&this.shifter_.getName()==c.getName())break;break;case "exitShifter":if(0==this.shifterStack_.length)return!1;this.shifter_= +this.shifterStack_.pop();this.sync();this.exitedShifter_=!0;break;case "exitShifterContent":if(0==this.shifterStack_.length)return!1;this.updateSel(this.shifter_.performAction(a,this.curSel_));this.shifter_=this.shifterStack_.pop()||this.shifter_;this.sync();this.exitedShifter_=!0;break;default:return this.shifter_.hasAction(a)?this.updateSel(this.shifter_.performAction(a,this.curSel_)):!1}return!0};cvox.NavigationManager.prototype.getGranularityMsg=function(){return this.shifter_.getGranularityMsg()}; +cvox.NavigationManager.prototype.makeMoreGranular=function(a){this.shifter_.makeMoreGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.makeLessGranular=function(a){this.shifter_.makeLessGranular();this.sync();this.persistGranularity_(a)};cvox.NavigationManager.prototype.setGranularity=function(a,b,c){!b&&0<this.shifterStack_.length||(this.shifter_=this.shifterStack_.shift()||this.shifter_,this.shifter_.setGranularity(a),this.persistGranularity_(c))}; +cvox.NavigationManager.prototype.getGranularity=function(){var a=this.shifterStack_[0]||this.shifter_;return a.getGranularity()};cvox.NavigationManager.prototype.ensureSubnavigating=function(){this.shifter_.isSubnavigating()||(this.shifter_.ensureSubnavigating(),this.sync())};cvox.NavigationManager.prototype.ensureNotSubnavigating=function(){this.shifter_.isSubnavigating()&&(this.shifter_.ensureNotSubnavigating(),this.sync())}; +cvox.NavigationManager.prototype.speakDescriptionArray=function(a,b,c,d){d&&a.every(function(a){a.personality||(a.personality=d)});this.navSpeaker_.speakDescriptionArray(a,b,c)};cvox.NavigationManager.prototype.updatePosition=function(a){var b=cvox.ChromeVox.position;b[document.location.href]=cvox.DomUtil.elementToPoint(a);JSON.stringify(b)}; +cvox.NavigationManager.prototype.finishNavCommand=function(a,b,c,d){if(this.pageEnd_&&!this.pageEndAnnounced_)this.pageEndAnnounced_=!0,cvox.ChromeVox.tts.stop(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),cvox.ChromeVox.verbosity===cvox.VERBOSITY_VERBOSE&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"),this.isReversed()&&(a=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom")),cvox.ChromeVox.tts.speak(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION));else{if(this.enteredShifter_|| +this.exitedShifter_)a=cvox.ChromeVox.msgs.getMsg("enter_content_say",[this.shifter_.getName()]);var e=cvox.ChromeVox.navigationManager.getDescription();(b=void 0===b?!0:b)&&this.setFocus();this.updateIndicator();b=c||cvox.AbstractTts.QUEUE_MODE_FLUSH;a&&(cvox.ChromeVox.tts.speak(a,b,cvox.AbstractTts.PERSONALITY_ANNOTATION),b=cvox.AbstractTts.QUEUE_MODE_QUEUE);this.speakDescriptionArray(e,b,d||null);this.getBraille().write();this.updatePosition(this.getCurrentNode())}}; +cvox.NavigationManager.prototype.navigate=function(a,b){this.pageEndAnnounced_=!1;if(this.pageEnd_)return this.pageEnd_=!1,this.syncToBeginning(a),!0;if(!this.resolve())return!1;this.ensureNotSubnavigating();void 0!==b&&(b!==this.getGranularity()||0<this.shifterStack_.length)&&(this.setGranularity(b,!0),this.sync());return this.next_(!a)};cvox.NavigationManager.prototype.subnavigate=function(){this.pageEndAnnounced_=!1;this.resolve()&&(this.ensureSubnavigating(),this.next_(!0))}; +cvox.NavigationManager.prototype.skip=function(){if(!this.keepReading_)return!1;cvox.ChromeVox.host.hasTtsCallback()&&(this.skipped_=!0,this.setReversed(!1),this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_FLUSH));return!0};cvox.NavigationManager.prototype.startReading=function(a){this.keepReading_=!0;cvox.ChromeVox.host.hasTtsCallback()?this.startCallbackReading_(a):this.startNonCallbackReading_(a);this.prevStickyState_=cvox.ChromeVox.isStickyOn}; +cvox.NavigationManager.prototype.stopReading=function(a){this.keepReading_=!1;this.navSpeaker_.stopReading=!0;a&&cvox.ChromeVox.tts.stop();void 0!=this.prevStickyState_&&(this.prevStickyState_=void 0)};cvox.NavigationManager.prototype.isReading=function(){return this.keepReading_}; +cvox.NavigationManager.prototype.startCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.finishNavCommand("",!0,a,goog.bind(function(){this.next_(!0)&&this.keepReading_&&this.startCallbackReading_(cvox.AbstractTts.QUEUE_MODE_QUEUE)},this))}); +cvox.NavigationManager.prototype.startNonCallbackReading_=cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(a){this.keepReading_&&(cvox.ChromeVox.tts.isSpeaking()||(this.finishNavCommand("",!0,a,null),this.next_(!0)||(this.keepReading_=!1)),window.setTimeout(goog.bind(this.startNonCallbackReading_,this),1E3))}); +cvox.NavigationManager.prototype.getFullDescription=function(){return this.pageSel_?this.pageSel_.getFullDescription():[cvox.DescriptionUtil.getDescriptionFromAncestors(cvox.DomUtil.getAncestors(this.curSel_.start.node),!0,cvox.ChromeVox.verbosity)]};cvox.NavigationManager.prototype.setFocus=function(a){this.pageSel_||a&&this.curSel_.start.node.constructor==Text||cvox.Focuser.setFocus(this.curSel_.start.node)};cvox.NavigationManager.prototype.getCurrentNode=function(){return this.curSel_.absStart().node}; +cvox.NavigationManager.prototype.addInterframeListener_=function(){var a=this;cvox.Interframe.addListener(function(b){if("enterIframe"==b.command||"exitIframe"==b.command)cvox.ChromeVox.serializer.readFrom(b),a.keepReading_||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){window.focus();if(b.findNext){var c=b.findNext,d=cvox.DomPredicates[c],c=a.findNext(d,c,!0);if(d&&(!c||"IFRAME"==c.start.node.tagName))return}else if("exitIframe"==b.command)d=b.sourceId,d=a.iframeIdMap[d],c=b.reversed, +d&&a.updateSel(cvox.CursorSelection.fromNode(d)),a.setReversed(c),a.sync(),a.navigate();else if(a.syncToBeginning(),!cvox.DomUtil.hasContent(document.body)){a.tryIframe_(null);return}a.finishNavCommand("",!0)})()})};cvox.NavigationManager.prototype.updateIndicator=function(){this.activeIndicator.syncToCursorSelection(this.curSel_)};cvox.NavigationManager.prototype.updateIndicatorIfChanged=function(){this.activeIndicator.updateIndicatorIfChanged()}; +cvox.NavigationManager.prototype.showOrHideIndicator=function(a){a||this.activeIndicator.removeFromDom()};cvox.NavigationManager.prototype.collapseSelection=function(){this.curSel_.collapse()};cvox.NavigationManager.prototype.updateSelToArbitraryNode=function(a,b){a?(this.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0),this.updateSel(cvox.CursorSelection.fromNode(a)),b||this.sync()):this.syncToBeginning()}; +cvox.NavigationManager.prototype.updateSel=function(a,b){a&&(this.prevSel_=b||this.curSel_,this.curSel_=a);var c=this.getCurrentNode();this.navigationHistory_.update(c);return!!a};cvox.NavigationManager.prototype.setReversed=function(a){this.curSel_.setReversed(a)};cvox.NavigationManager.prototype.isReversed=function(){return this.curSel_.isReversed()}; +cvox.NavigationManager.prototype.tryBoundaries_=function(a,b){b=!!b&&!this.ignoreIframesNoMatterWhat_||!1;this.pageEnd_=!1;if(b&&this.tryIframe_(a&&a.start.node))return!0;if(a)return this.updateSel(a),!0;if(0<this.shifterStack_.length)return!0;this.syncToBeginning(!b);this.clearPageSel(!0);this.stopReading(!0);this.pageEnd_=!0;return!1}; +cvox.NavigationManager.prototype.tryIframe_=function(a){if(null==a&&cvox.Interframe.isIframe()){var b={command:"exitIframe",reversed:this.isReversed(),granularity:this.getGranularity()};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToParentWindow(b);return!0}if(null==a||"IFRAME"!=a.tagName||!a.src)return!1;var c=void 0;for(b in this.iframeIdMap)if(this.iframeIdMap[b]==a){c=b;break}void 0==c&&(c=this.nextIframeId,this.nextIframeId++,this.iframeIdMap[c]=a,cvox.Interframe.sendIdToIFrame(c, +a));b={command:"enterIframe",id:c};cvox.ChromeVox.serializer.storeOn(b);cvox.Interframe.sendMessageToIFrame(b,a);return!0};cvox.NavigationManager.prototype.syncToBeginning=function(a){var b=this.shifter_.begin(this.curSel_,{reversed:this.curSel_.isReversed()});!a&&this.tryIframe_(b&&b.start.node)||this.updateSel(b)};cvox.NavigationManager.prototype.ignoreIframesNoMatterWhat=function(){this.ignoreIframesNoMatterWhat_=!0};cvox.NavigationManager.prototype.saveSel=function(){this.saveSel_=this.curSel_}; +cvox.NavigationManager.prototype.restoreSel=function(){this.curSel_=this.saveSel_||this.curSel_};cvox.NavigationManager.prototype.persistGranularity_=function(a){(a=void 0===a?!1:a)&&this.getGranularity()};cvox.SearchWidget=function(){this.txtNode_=this.containerNode_=null;this.PROMPT_="Search:";this.hasMatch_=this.caseSensitive_=!1;cvox.Widget.call(this)};goog.inherits(cvox.SearchWidget,cvox.Widget);goog.addSingletonGetter(cvox.SearchWidget); +cvox.SearchWidget.prototype.show=function(){cvox.SearchWidget.superClass_.show.call(this);this.active=!0;this.hasMatch_=!1;cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);cvox.ChromeVox.navigationManager.setReversed(!1);this.focusRecovery_=cvox.ChromeVox.navigationManager.getFocusRecovery();cvox.ChromeVox.navigationManager.setFocusRecovery(!1);var a=this.createContainerNode_();this.containerNode_=a;var b=this.createOverlayNode_();a.appendChild(b); +var c=document.createElement("span");c.innerHTML=this.PROMPT_;b.appendChild(c);this.txtNode_=this.createTextAreaNode_();b.appendChild(this.txtNode_);document.body.appendChild(a);this.txtNode_.focus();window.setTimeout(function(){a.style.opacity="1.0"},0)}; +cvox.SearchWidget.prototype.hide=function(a){if(this.isActive()){var b=this.containerNode_;b.style.opacity="0.0";window.setTimeout(function(){document.body.removeChild(b)},1E3);this.txtNode_=null;cvox.SearchWidget.containerNode=null;cvox.ChromeVox.navigationManager.setFocusRecovery(this.focusRecovery_);this.active=!1}cvox.$m("choice_widget_exited").andPause().andMessage(this.getNameMsg()).speakFlush();this.hasMatch_&&a||cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode);cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll, +cvox.ChromeVox.navigationManager))(!0);cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(),cvox.AbstractTts.QUEUE_MODE_QUEUE,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);a=this.textFromCurrentDescription_();cvox.ChromeVox.braille.write(new cvox.NavBraille({text:a,startIndex:0,endIndex:0}));cvox.SearchWidget.superClass_.hide.call(this,!0)};cvox.SearchWidget.prototype.getNameMsg=function(){return["search_widget_intro"]}; +cvox.SearchWidget.prototype.getHelpMsg=function(){return"search_widget_intro_help"}; +cvox.SearchWidget.prototype.onKeyDown=function(a){if(!this.isActive())return!1;var b=this.txtNode_.value;if(8==a.keyCode)0<b.length?(b=b.substring(0,b.length-1),this.txtNode_.value=b,this.beginSearch_(b)):(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.initialNode),cvox.ChromeVox.navigationManager.syncAll());else if(40==a.keyCode)this.next_(b,!1);else if(38==a.keyCode)this.next_(b,!0);else if(13==a.keyCode)this.hide(!0);else if(27==a.keyCode)this.hide(!1);else if(a.ctrlKey&&67==a.keyCode)this.toggleCaseSensitivity_(); +else return cvox.SearchWidget.superClass_.onKeyDown.call(this,a);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onKeyPress=function(a){if(!this.isActive())return!1;this.txtNode_.value+=String.fromCharCode(a.charCode);var b=this.txtNode_.value;this.beginSearch_(b);a.preventDefault();a.stopPropagation();return!0};cvox.SearchWidget.prototype.onNavigate=function(){};cvox.SearchWidget.prototype.getPredicate=function(){return null}; +cvox.SearchWidget.prototype.nextResult=function(a){if(!this.isActive())return null;var b=this.txtNode_.value;return this.next_(b,a)};cvox.SearchWidget.prototype.createContainerNode_=function(){var a=document.createElement("div");a.id="cvox-search";a.style.position="fixed";a.style.top="50%";a.style.left="50%";a.style["-webkit-transition"]="all 0.3s ease-in";a.style.opacity="0.0";a.style["z-index"]="2147483647";a.setAttribute("aria-hidden","true");return a}; +cvox.SearchWidget.prototype.createOverlayNode_=function(){var a=document.createElement("div");a.style.position="relative";a.style.left="-50%";a.style.top="-40px";a.style["line-height"]="1.2em";a.style["font-size"]="20px";a.style.padding="30px";a.style["min-width"]="150px";a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["border-radius"]="10px";return a}; +cvox.SearchWidget.prototype.createTextAreaNode_=function(){var a=document.createElement("textarea");a.setAttribute("aria-hidden","true");a.setAttribute("rows","1");a.style.color="#fff";a.style["background-color"]="rgba(0, 0, 0, 0.7)";a.style["vertical-align"]="middle";a.addEventListener("textInput",this.handleSearchChanged_,!1);return a}; +cvox.SearchWidget.prototype.toggleCaseSensitivity_=function(){this.caseSensitive_?(cvox.SearchWidget.caseSensitive_=!1,cvox.ChromeVox.tts.speak("Ignoring case.",0,null)):(this.caseSensitive_=!0,cvox.ChromeVox.tts.speak("Case sensitive.",0,null))}; +cvox.SearchWidget.prototype.getNextResult_=function(a){var b=cvox.ChromeVox.navigationManager.isReversed();this.caseSensitive_||(a=a.toLowerCase());cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!1);do{if(this.getPredicate()){var c=this.getPredicate()(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()));if(!c)continue}for(var c=cvox.ChromeVox.navigationManager.getDescription(),d=0;d<c.length;d++){var e=this.caseSensitive_?c[d].text: +c[d].text.toLowerCase(),f=e.indexOf(a);-1!=f&&e.length>a.length&&(c[d].text=cvox.DomUtil.collapseWhitespace(e.substring(0,f))+", "+a+", "+e.substring(f+a.length),c[d].text=cvox.DomUtil.collapseWhitespace(c[d].text));if(-1!=f)return c}cvox.ChromeVox.navigationManager.setReversed(b)}while(cvox.ChromeVox.navigationManager.navigate(!0,cvox.NavigationShifter.GRANULARITIES.OBJECT))};cvox.SearchWidget.prototype.beginSearch_=function(a){var b=this.getNextResult_(a);this.outputSearchResult_(b,a);this.onNavigate()}; +cvox.SearchWidget.prototype.next_=function(a,b){cvox.ChromeVox.navigationManager.setReversed(!!b);var c=!1;this.getPredicate()?(c=cvox.ChromeVox.navigationManager.findNext(this.getPredicate()),cvox.ChromeVox.navigationManager.setReversed(!!b),c||(cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),c=!0)):c=cvox.ChromeVox.navigationManager.navigate(!0);c=c?this.getNextResult_(a):null;this.outputSearchResult_(c,a);this.onNavigate();return c}; +cvox.SearchWidget.prototype.outputSearchResult_=function(a,b){cvox.ChromeVox.tts.stop();a?(this.hasMatch_=!0,cvox.ChromeVoxEventSuspender.withSuspendedEvents(goog.bind(cvox.ChromeVox.navigationManager.syncAll,cvox.ChromeVox.navigationManager))(!0),cvox.ChromeVox.navigationManager.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_FLUSH,null,cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("search_help_item"),cvox.AbstractTts.QUEUE_MODE_QUEUE,cvox.AbstractTts.PERSONALITY_ANNOTATION), +this.outputSearchResultToBraille_(b)):(cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),this.hasMatch_=!1)}; +cvox.SearchWidget.prototype.outputSearchResultToBraille_=function(a){if(cvox.ChromeVox.braille){var b=this.textFromCurrentDescription_(),c=this.caseSensitive_?b:b.toLowerCase();a=this.caseSensitive_?a:a.toLowerCase();c=c.indexOf(a);if(-1==c)console.log("Search string not in result when preparing for Braille.");else{var d=b.length,b=cvox.ChromeVox.msgs.getMsg("mark_as_search_result_brl",[b]),e=b.length,c=c+(e-d);cvox.ChromeVox.braille.write(new cvox.NavBraille({text:b,startIndex:c+a.length,endIndex:c+ +a.length}))}}};cvox.SearchWidget.prototype.textFromCurrentDescription_=function(){for(var a=cvox.ChromeVox.navigationManager.getDescription(),b="",c=0;c<a.length;c++)b+=a[c].text+" ";return b};cvox.SearchWidget.prototype.handleSearchChanged_=function(a){a=a.target.value+a.data;cvox.SearchWidget.prototype.beginSearch_(a)};cvox.OverlayWidget=function(a){cvox.SearchWidget.call(this);this.snippet_=a};goog.inherits(cvox.OverlayWidget,cvox.SearchWidget); +cvox.OverlayWidget.prototype.show=function(){cvox.OverlayWidget.superClass_.show.call(this);var a=document.createElement("DIV");a.innerHTML=this.snippet_;var b=cvox.DomUtil.elementToPoint(cvox.ChromeVox.navigationManager.getCurrentNode());a.style.position="absolute";a.style.left=b.x;a.style.top=b.y;document.body.appendChild(a);cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(a);this.host_=a};cvox.OverlayWidget.prototype.hide=function(){this.host_.remove();cvox.OverlayWidget.superClass_.hide.call(this)}; +cvox.OverlayWidget.prototype.onKeyDown=function(a){cvox.OverlayWidget.superClass_.onKeyDown.call(this,a);if(13==a.keyCode||27==a.keyCode)return!0;a=cvox.ChromeVox.navigationManager.isReversed();cvox.DomUtil.isDescendantOfNode(cvox.ChromeVox.navigationManager.getCurrentNode(),this.host_)||(a?cvox.ChromeVox.navigationManager.syncToBeginning():cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(this.host_),this.onNavigate(),cvox.ChromeVox.navigationManager.speakDescriptionArray(cvox.ChromeVox.navigationManager.getDescription(), +0,null))};cvox.KeyboardHelpWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");var a=cvox.ChromeVoxKbHandler.handlerKeyMap;a.bindings().forEach(goog.bind(function(a){var c=a.command;a=a.sequence;var d=c;try{var e=cvox.CommandStore.messageForCommand(c);if(!e)return;d=cvox.ChromeVox.msgs.getMsg(e)}catch(f){}e=document.createElement("p");e.id=c;e.setAttribute("role","menuitem");e.textContent=d+" - "+cvox.KeyUtil.keySequenceToString(a,!0);this.container_.appendChild(e)}, +this))};goog.inherits(cvox.KeyboardHelpWidget,cvox.OverlayWidget);goog.addSingletonGetter(cvox.KeyboardHelpWidget);cvox.KeyboardHelpWidget.prototype.show=function(){cvox.KeyboardHelpWidget.superClass_.show.call(this);this.host_.appendChild(this.container_)};cvox.KeyboardHelpWidget.prototype.getNameMsg=function(){return["keyboard_help_intro"]}; +cvox.KeyboardHelpWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;this.hide();cvox.ChromeVoxEventSuspender.withSuspendedEvents(cvox.ChromeVoxUserCommands.commands[b])();a.preventDefault();a.stopPropagation();return!0}return cvox.KeyboardHelpWidget.superClass_.onKeyDown.call(this,a)};goog.object={};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){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;c<d.length&&(a=a[d[c]],goog.isDef(a));c++);return a};goog.object.containsKey=function(a,b){return 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(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 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.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(a.clone)return a.clone();var b="array"==b?[]:{},c;for(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)};cvox.UserEventDetail=function(a){this.command=this.category="";-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)&&(this.command=a.command,this.category=cvox.UserEventDetail.Category.JUMP);this.customCommand="";a.customCommand&&(this.customCommand=a.customCommand,this.category=cvox.UserEventDetail.Category.CUSTOM);this.status=cvox.UserEventDetail.Status.PENDING;switch(a.status){case cvox.UserEventDetail.Status.SUCCESS:this.status=cvox.UserEventDetail.Status.SUCCESS;break;case cvox.UserEventDetail.Status.FAILURE:this.status= +cvox.UserEventDetail.Status.FAILURE}this.resultNode=null;a.resultNode&&cvox.DomUtil.isAttachedToDocument(a.resultNode)&&(this.resultNode=a.resultNode)};cvox.UserEventDetail.Category={JUMP:"ATJumpEvent",CUSTOM:"ATCustomEvent"};cvox.UserEventDetail.Status={PENDING:"PENDING",SUCCESS:"SUCCESS",FAILURE:"FAILURE"};cvox.UserEventDetail.JUMP_COMMANDS="nextCheckbox previousCheckbox nextRadio previousRadio nextSlider previousSlider nextGraphic previousGraphic nextButton previousButton nextComboBox previousComboBox nextEditText previousEditText nextHeading previousHeading nextHeading1 previousHeading1 nextHeading2 previousHeading2 nextHeading3 previousHeading3 nextHeading4 previousHeading4 nextHeading5 previousHeading5 nextHeading6 previousHeading6 nextLink previousLink nextMath previousMath nextTable previousTable nextList previousList nextListItem previousListItem nextFormField previousFormField nextLandmark previousLandmark nextSection previousSection nextControl previousControl".split(" "); +cvox.UserEventDetail.prototype.createEventObject=function(){var a=document.createEvent("CustomEvent");a.initCustomEvent(this.category,!0,!0,this);return a};var extractMenuList_=function(a){for(;a!==document;){var b=a.getAttribute("contextMenuActions");if(b)return JSON.parse(b);a=a.parentNode}return null},getCurrentElement_=function(){for(var a=cvox.ChromeVox.navigationManager.getCurrentNode();a.nodeType!==Node.ELEMENT_NODE;)a=a.parentNode;return a}; +cvox.ContextMenuWidget=function(){cvox.OverlayWidget.call(this,"");this.container_=document.createElement("div");this.triggerElement_=getCurrentElement_();(this.menuList=extractMenuList_(this.triggerElement_))?this.menuList.forEach(goog.bind(function(a){if(a.desc||a.cmd){var b=a.desc;a=a.cmd;var c=document.createElement("p");c.id=a;c.textContent=b;c.setAttribute("role","menuitem");this.container_.appendChild(c)}},this)):console.log("No context menu found.")};goog.inherits(cvox.ContextMenuWidget,cvox.OverlayWidget); +cvox.ContextMenuWidget.prototype.show=function(){this.menuList&&(cvox.ContextMenuWidget.superClass_.show.call(this),this.host_.appendChild(this.container_))};cvox.ContextMenuWidget.prototype.getNameMsg=function(){return["context_menu_intro"]}; +cvox.ContextMenuWidget.prototype.onKeyDown=function(a){if(13==a.keyCode){var b=cvox.ChromeVox.navigationManager.getCurrentNode(),b=b.parentNode.id,b=new cvox.UserEventDetail({customCommand:b}),b=b.createEventObject();this.triggerElement_.dispatchEvent(b);this.hide();a.preventDefault();a.stopPropagation();return!0}return cvox.ContextMenuWidget.superClass_.onKeyDown.call(this,a)};cvox.NodeSearchWidget=function(a,b){this.typeMsg_=a;this.predicate_=b;cvox.SearchWidget.call(this)};goog.inherits(cvox.NodeSearchWidget,cvox.SearchWidget);cvox.NodeSearchWidget.prototype.getNameMsg=function(){return["choice_widget_name",[cvox.ChromeVox.msgs.getMsg(this.typeMsg_)]]};cvox.NodeSearchWidget.prototype.getHelpMsg=function(){return"choice_widget_help"};cvox.NodeSearchWidget.prototype.getPredicate=function(){return this.predicate_}; +cvox.NodeSearchWidget.create=function(a,b){return new cvox.NodeSearchWidget(a,b)};cvox.SelectWidget=function(a){cvox.OverlayWidget.call(this,"");this.selectNode_=a};goog.inherits(cvox.SelectWidget,cvox.OverlayWidget); +cvox.SelectWidget.prototype.show=function(){cvox.SelectWidget.superClass_.show.call(this);var a=document.createElement("div");a.setAttribute("role","menu");for(var b=0,c=null;c=this.selectNode_.options[b];b++){var d=document.createElement("p");d.innerHTML=c.innerHTML;d.id=b;d.setAttribute("role","menuitem");a.appendChild(d)}this.host_.appendChild(a);b=this.selectNode_.selectedIndex;"number"==typeof b&&cvox.ChromeVox.syncToNode(a.children[b],!0)}; +cvox.SelectWidget.prototype.hide=function(){var a=document.createEvent("Event");a.initEvent("change",!1,!1);this.selectNode_.dispatchEvent(a);cvox.SelectWidget.superClass_.hide.call(this,!0)};cvox.SelectWidget.prototype.onNavigate=function(){var a=this;cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){var b=cvox.ChromeVox.navigationManager.getCurrentNode().parentNode.id;a.selectNode_.selectedIndex=b})()};cvox.SelectWidget.prototype.getNameMsg=function(){return["aria_role_menu"]};cvox.FocusUtil=function(){};cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE={hidden:!1,text:!0,search:!0,tel:!0,url:!0,email:!0,password:!0,datetime:!1,date:!1,month:!1,week:!1,time:!1,"datetime-local":!1,number:!1,range:!1,color:!1,checkbox:!1,radio:!1,file:!1,submit:!1,image:!1,reset:!1,button:!1}; +cvox.FocusUtil.isFocusInTextInputField=function(){var a=document.activeElement;return a?a.isContentEditable||"textbox"==a.getAttribute("role")?!0:"true"==a.getAttribute("readOnly")?!1:"TEXTAREA"===a.tagName||"SELECT"===a.tagName?!0:"INPUT"===a.tagName?a.hasAttribute("type")?(a=a.getAttribute("type").toLowerCase(),cvox.FocusUtil.INPUT_TYPE_ACCEPTS_SELECTION_TABLE[a]):!0:!1:!1};cvox.SpokenListBuilder=function(){this.list_=[]};cvox.SpokenListBuilder.prototype.flush=function(a){this.list_.push([a,cvox.AbstractTts.QUEUE_MODE_FLUSH]);return this};cvox.SpokenListBuilder.prototype.build=function(){return this.list_};cvox.RunnerInterface=function(){};cvox.RunnerInterface.prototype.setFocus=function(){};cvox.AbstractTestCase=function(){};cvox.TestTts=function(){cvox.AbstractTts.call(this);this.utterances_=[]};goog.inherits(cvox.TestTts,cvox.AbstractTts);cvox.TestTts.prototype.sentinelText_="@@@STOP@@@";cvox.TestTts.prototype.speak=function(a,b,c){this.utterances_.push({text:a,queueMode:b});c&&void 0!=c.endCallback&&(a=this.utterances_.length,this.utterances_[a-1].text!=this.sentinelText_&&c.endCallback())};cvox.HostFactory.ttsConstructor=cvox.TestTts;cvox.AutoRunner=function(){new cvox.TestTts};cvox.AutoRunner.TestSummary=function(a,b,c,d){this.tag=a;this.status=c;this.scope=d};cvox.AutoRunner.PASS="pass";cvox.AutoRunner.FAIL="fail";cvox.AutoRunner.prototype.setFocus=function(a){document.getElementById(a).focus();return this};cvox.ChromeVoxUserCommands={};cvox.ChromeVoxUserCommands.init_=function(){if(!cvox.ChromeVoxUserCommands.commands){cvox.ChromeVoxUserCommands.commands={};for(var a in cvox.CommandStore.CMD_WHITELIST)cvox.ChromeVoxUserCommands.commands[a]=cvox.ChromeVoxUserCommands.createCommand_(a)}};cvox.ChromeVoxUserCommands.wasMouseClicked=!1;cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage=!0; +cvox.ChromeVoxUserCommands.handleTabAction_=function(){cvox.ChromeVox.tts.stop();if(!cvox.ChromeVox.navigationManager.resolve(cvox.DomUtil.isFocusable))return cvox.ChromeVox.navigationManager.setFocus(),!1;var a=cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_();if(a)return!0;var b=a=null,b=window.getSelection();cvox.ChromeVoxUserCommands.wasMouseClicked?cvox.ChromeVoxUserCommands.wasMouseClicked=!1:b=null;null==b||null==b.anchorNode||null==b.focusNode?(a=cvox.ChromeVox.navigationManager.getCurrentNode(), +b=cvox.ChromeVox.navigationManager.getCurrentNode()):(a=b.anchorNode,b=b.focusNode);if(null==a||null==b)return!0;if(cvox.DomUtil.isFocusable(a))return a.focus(),!0;if(cvox.DomUtil.isFocusable(b))return b.focus(),!0;if(cvox.DomUtil.isFocusable(a.parentNode))return a.parentNode.focus(),!0;if(cvox.DomUtil.isFocusable(b.parentNode))return b.parentNode.focus(),!0;b=cvox.ChromeVoxUserCommands.createTabDummySpan_();a.parentNode.insertBefore(b,a);b.focus();return!0}; +cvox.ChromeVoxUserCommands.isFocusedOnLinkControl_=function(){var a="A";return document.activeElement.tagName==a||cvox.DomUtil.isControl(document.activeElement)?!0:!1};cvox.ChromeVoxUserCommands.removeTabDummySpan=function(){var a=document.getElementById("ChromeVoxTabDummySpan");a&&document.activeElement!=a&&a.parentNode.removeChild(a)};cvox.ChromeVoxUserCommands.createTabDummySpan_=function(){var a=document.createElement("span");a.id="ChromeVoxTabDummySpan";a.tabIndex=-1;return a}; +cvox.ChromeVoxUserCommands.createCommand_=function(a){return goog.bind(function(b){b=cvox.ChromeVoxUserCommands.lookupCommand_(a,b);return cvox.ChromeVoxUserCommands.dispatchCommand_(b)},cvox.ChromeVoxUserCommands)}; +cvox.ChromeVoxUserCommands.dispatchCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField())return!0;if(cvox.ChromeVoxUserCommands.enableCommandDispatchingToPage&&-1!=cvox.UserEventDetail.JUMP_COMMANDS.indexOf(a.command)){a=new cvox.UserEventDetail({command:a.command});a=a.createEventObject();var b=cvox.ChromeVox.navigationManager.getCurrentNode();b||(b=document.body);b.dispatchEvent(a);return!1}return cvox.ChromeVoxUserCommands.doCommand_(a)}; +cvox.ChromeVoxUserCommands.doCommand_=function(a){if(cvox.Widget.isActive()||!cvox.PlatformUtil.matchesPlatform(a.platformFilter)||a.skipInput&&cvox.FocusUtil.isFocusInTextInputField()||a.disallowOOBE&&document.URL.match(/^chrome:\/\/oobe/i))return!0;var b=a.command;a.allowEvents||cvox.ChromeVoxEventSuspender.enterSuspendEvents();a.disallowContinuation&&cvox.ChromeVox.navigationManager.stopReading(!0);a.forward?cvox.ChromeVox.navigationManager.setReversed(!1):a.backward&&cvox.ChromeVox.navigationManager.setReversed(!0); +a.findNext&&(b="find",a.announce=!0);var c="",d="",e=!1;switch(b){case "handleTab":case "handleTabPrev":e=cvox.ChromeVoxUserCommands.handleTabAction_();break;case "forward":case "backward":e=!cvox.ChromeVox.navigationManager.navigate();break;case "right":case "left":cvox.ChromeVox.navigationManager.subnavigate();break;case "find":if(!a.findNext)throw"Invalid find command.";var f=cvox.CommandStore.NODE_INFO_MAP[a.findNext],g=f.predicate,h=cvox.DomPredicates[g],k="",l="";a.forward?(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_top"), +k=cvox.ChromeVox.msgs.getMsg(f.forwardError)):a.backward&&(l=cvox.ChromeVox.msgs.getMsg("wrapped_to_bottom"),k=cvox.ChromeVox.msgs.getMsg(f.backwardError));var f=null,m=a.status||cvox.UserEventDetail.Status.PENDING,p=a.resultNode||null;switch(m){case cvox.UserEventDetail.Status.SUCCESS:p&&cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(p,!0);break;case cvox.UserEventDetail.Status.FAILURE:d=k;break;default:f=cvox.ChromeVox.navigationManager.findNext(h,g),f||(cvox.ChromeVox.navigationManager.saveSel(), +d=l,cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.WRAP),f=cvox.ChromeVox.navigationManager.findNext(h,g,!0),f||(d=k,cvox.ChromeVox.navigationManager.restoreSel()))}f&&"IFRAME"==f.start.node.tagName&&(a.announce=!1);break;case "previousGranularity":cvox.ChromeVox.navigationManager.makeLessGranular(!0);d=cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "nextGranularity":cvox.ChromeVox.navigationManager.makeMoreGranular(!0);d= +cvox.ChromeVox.navigationManager.getGranularityMsg();break;case "previousCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "nextCharacter":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.CHARACTER);break;case "previousWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD);break;case "nextWord":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.WORD); +break;case "previousSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "nextSentence":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.SENTENCE);break;case "previousLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "nextLine":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "previousObject":cvox.ChromeVox.navigationManager.navigate(!1, +cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "nextObject":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.OBJECT);break;case "previousGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "nextGroup":cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.GROUP);break;case "previousRow":case "previousCol":b="previousRow"==b?"nextRow":"nextCol";case "nextRow":case "nextCol":cvox.ChromeVox.navigationManager.performAction("enterShifterSilently"); +cvox.ChromeVox.navigationManager.performAction(b);break;case "moveToStartOfLine":case "moveToEndOfLine":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.LINE);cvox.ChromeVox.navigationManager.sync();cvox.ChromeVox.navigationManager.collapseSelection();break;case "readFromHere":cvox.ChromeVox.navigationManager.setGranularity(cvox.NavigationShifter.GRANULARITIES.OBJECT,!0,!0);cvox.ChromeVox.navigationManager.startReading(cvox.AbstractTts.QUEUE_MODE_FLUSH);break;case "cycleTypingEcho":break; +case "jumpToTop":case cvox.BrailleKeyCommand.TOP:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "jumpToBottom":case cvox.BrailleKeyCommand.BOTTOM:cvox.ChromeVox.navigationManager.syncToBeginning();break;case "stopSpeech":cvox.ChromeVox.navigationManager.stopReading(!0);break;case "toggleKeyboardHelp":cvox.KeyboardHelpWidget.getInstance().toggle();break;case "help":cvox.ChromeVox.tts.stop();break;case "contextMenu":g=cvox.ChromeVox.navigationManager.getCurrentNode();"SELECT"!=g.tagName|| +g.multiple?(g=new cvox.ContextMenuWidget,g.toggle()):(new cvox.SelectWidget(g)).show();break;case "showBookmarkManager":break;case "showOptionsPage":cvox.ChromeVox.tts.stop();break;case "showKbExplorerPage":cvox.ChromeVox.tts.stop();break;case "readLinkURL":g=document.activeElement;h=window.getSelection().anchorNode;k="";"A"==g.tagName?k=cvox.DomUtil.getLinkURL(g):h&&(k=cvox.DomUtil.getLinkURL(h.parentNode));""!=k?cvox.ChromeVox.tts.speak(k):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_url_found")); +break;case "readCurrentTitle":cvox.ChromeVox.tts.speak(document.title);break;case "readCurrentURL":cvox.ChromeVox.tts.speak(document.URL);break;case "performDefaultAction":cvox.DomPredicates.linkPredicate([document.activeElement])&&(a.announce=!0,cvox.DomUtil.isInternalLink(document.activeElement)&&(cvox.DomUtil.syncInternalLink(document.activeElement),cvox.ChromeVox.navigationManager.sync()));break;case "forceClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode(); +cvox.DomUtil.clickElem(g,!1,!1);break;case "forceDoubleClickOnCurrentItem":d=cvox.ChromeVox.msgs.getMsg("element_double_clicked");g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.clickElem(g,!1,!1,!0);break;case "toggleChromeVox":break;case "fullyDescribe":g=cvox.ChromeVox.navigationManager.getFullDescription();cvox.ChromeVox.navigationManager.speakDescriptionArray(g,cvox.AbstractTts.QUEUE_MODE_FLUSH,null);break;case "speakTimeAndDate":g=new Date;cvox.ChromeVox.tts.speak(g.toLocaleTimeString()+ +", "+g.toLocaleDateString());break;case "toggleSelection":d=cvox.ChromeVox.navigationManager.togglePageSel();d=cvox.ChromeVox.msgs.getMsg(d?"begin_selection":"end_selection");break;case "startHistoryRecording":cvox.History.getInstance().startRecording();break;case "stopHistoryRecording":cvox.History.getInstance().stopRecording();break;case "enableConsoleTts":cvox.ConsoleTts.getInstance().setEnabled(!0);break;case "goToFirstCell":case "goToLastCell":case "goToRowFirstCell":case "goToRowLastCell":case "goToColFirstCell":case "goToColLastCell":case "announceHeaders":case "speakTableLocation":case "exitShifterContent":cvox.DomPredicates.tablePredicate(cvox.DomUtil.getAncestors(cvox.ChromeVox.navigationManager.getCurrentNode()))&& +cvox.ChromeVox.navigationManager.performAction(b)||(c="not_inside_table");break;case "enterShifter":case "exitShifter":cvox.ChromeVox.navigationManager.performAction(b);break;case "decreaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!1);break;case "increaseTtsRate":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.RATE,!0);break;case "decreaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH,!1);break;case "increaseTtsPitch":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.PITCH, +!0);break;case "decreaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!1);break;case "increaseTtsVolume":cvox.ChromeVox.tts.increaseOrDecreaseProperty(cvox.AbstractTts.VOLUME,!0);break;case "cyclePunctuationEcho":break;case "toggleStickyMode":break;case "toggleKeyPrefix":cvox.ChromeVox.keyPrefixOn=!cvox.ChromeVox.keyPrefixOn;break;case "toggleSearchWidget":cvox.SearchWidget.getInstance().toggle();break;case "toggleEarcons":d=cvox.ChromeVox.earcons.toggle()?cvox.ChromeVox.msgs.getMsg("earcons_on"): +cvox.ChromeVox.msgs.getMsg("earcons_off");break;case "showHeadingsList":case "showLinksList":case "showFormsList":case "showTablesList":case "showLandmarksList":if(!a.nodeList)break;g=cvox.CommandStore.NODE_INFO_MAP[a.nodeList];cvox.NodeSearchWidget.create(g.typeMsg,cvox.DomPredicates[g.predicate]).show();break;case "openLongDesc":g=cvox.ChromeVox.navigationManager.getCurrentNode();cvox.DomUtil.hasLongDesc(g)||cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("no_long_desc"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION);break;case "pauseAllMedia":k=document.getElementsByTagName("VIDEO");for(g=0;h=k[g];g++)h.pause();k=document.getElementsByTagName("AUDIO");for(g=0;h=k[g];g++)h.pause();break;case "toggleSemantics":cvox.TraverseMath.toggleSemantic()?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_on")):cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("semantics_off"));break;case cvox.BrailleKeyCommand.ROUTING:g=cvox.ChromeVox.navigationManager.getBraille(); +g=g.text.getSpans(a.displayPosition||0);g=g.filter(function(a){return a instanceof Node})[0];cvox.DomUtil.clickElem(g||cvox.ChromeVox.navigationManager.getCurrentNode(),!1,!0);break;case cvox.BrailleKeyCommand.PAN_LEFT:case cvox.BrailleKeyCommand.LINE_UP:case cvox.BrailleKeyCommand.PAN_RIGHT:case cvox.BrailleKeyCommand.LINE_DOWN:cvox.ChromeVox.navigationManager.navigate(!1,cvox.NavigationShifter.GRANULARITIES.LINE);break;case "debug":break;case "nop":break;default:throw"Command behavior not defined: "+ +b;}""!=c?cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(c),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION):cvox.ChromeVox.navigationManager.isReading()?a.disallowContinuation?cvox.ChromeVox.navigationManager.stopReading(!0):"readFromHere"!=b&&cvox.ChromeVox.navigationManager.skip():a.announce&&cvox.ChromeVox.navigationManager.finishNavCommand(d);a.allowEvents||cvox.ChromeVoxEventSuspender.exitSuspendEvents();return!!a.doDefault||e}; +cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent=function(a){a=new cvox.UserEventDetail(a.detail);a.command&&cvox.ChromeVoxUserCommands.doCommand_(cvox.ChromeVoxUserCommands.lookupCommand_(a.command,a))};cvox.ChromeVoxUserCommands.lookupCommand_=function(a,b){var c=cvox.CommandStore.CMD_WHITELIST[a];if(!c)throw"Invalid command: "+a;c=goog.object.clone(c);c.command=a;b&&goog.object.extend(c,b);return c};cvox.ChromeVoxUserCommands.init_();cvox.ChromeVoxKbHandler={};cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable=function(a){window.JSON&&(cvox.ChromeVoxKbHandler.handlerKeyMap=cvox.KeyMap.fromJSON(a))};cvox.ChromeVoxKbHandler.sortKeyToFunctionsTable_=function(a){function b(a,b){return a[0].length<b[0].length?-1:b[0].length<a[0].length?1:a[0].localeCompare(b[0])}var c=[],d;for(d in a)c.push([d,a[d]]);c.sort(b);return c}; +cvox.ChromeVoxKbHandler.basicKeyDownActionsListener=function(a){var b=cvox.KeyUtil.keyEventToKeySequence(a);a=void 0!=cvox.ChromeVoxKbHandler.handlerKeyMap?cvox.ChromeVoxKbHandler.handlerKeyMap.commandForKey(b):null;if(!a)return!cvox.KeyUtil.sequencing;if(!cvox.ChromeVox.isActive&&"toggleChromeVox"!=a)return!0;var c=!0,d=cvox.ChromeVoxUserCommands.commands[a];d?(b=cvox.History.getInstance(),b.enterUserCommand(a),c=d(),b.exitUserCommand(a)):b.cvoxModifier&&(c=!1);cvox.ChromeVox.entireDocumentIsHidden&& +(c=!0);return c};cvox.LiveRegions=function(){};cvox.LiveRegions.pageLoadTime=null;cvox.LiveRegions.INITIAL_SILENCE_MS=2E3;cvox.LiveRegions.lastAnnouncedMap={};cvox.LiveRegions.MAX_DISCARD_DUPS_MS=2E3;cvox.LiveRegions.lastAnnouncedTime=null;cvox.LiveRegions.nodesAlreadyHandled=[]; +cvox.LiveRegions.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.pageLoadTime=a;if(c||!document.hasFocus())return!1;var d=!1;a=cvox.AriaUtil.getLiveRegions(document.body);for(c=0;c<a.length;c++)cvox.LiveRegions.handleOneChangedNode(a[c],a[c],!1,!1,function(a,c){a||b!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(b=cvox.AbstractTts.QUEUE_MODE_QUEUE);var g=new cvox.NavigationSpeaker;g.speakDescriptionArray(c,b,null);d=!0});cvox.Interframe.addListener(function(a){if("speakLiveRegion"== +a.command)for(var b=document.getElementsByTagName("iframe"),c=0,d;d=b[c];c++)if(d.src==a.src){if(!cvox.DomUtil.isVisible(d))break;d=JSON.parse(a.content);for(var k=[],l=0,m;m=d[l];l++)k.push(new cvox.NavDescription(m));(new cvox.NavigationSpeaker).speakDescriptionArray(k,a.queueMode,null)}});return d}; +cvox.LiveRegions.processMutations=function(a,b){cvox.LiveRegions.nodesAlreadyHandled=[];a.forEach(function(a){if(!a.target.hasAttribute||!a.target.hasAttribute("cvoxIgnore")){if(a.addedNodes)for(var d=0;d<a.addedNodes.length;d++)a.addedNodes[d].hasAttribute&&a.addedNodes[d].hasAttribute("cvoxIgnore")||cvox.LiveRegions.handleOneChangedNode(a.addedNodes[d],a.target,!1,!0,b);if(a.removedNodes)for(d=0;d<a.removedNodes.length;d++)a.removedNodes[d].hasAttribute&&a.removedNodes[d].hasAttribute("cvoxIgnore")|| +cvox.LiveRegions.handleOneChangedNode(a.removedNodes[d],a.target,!0,!1,b);"characterData"==a.type&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!1,b);if("class"==a.attributeName||"style"==a.attributeName||"hidden"==a.attributeName){var e=a.attributeName,d=a.target,f=!cvox.DomUtil.isVisible(d),g=document.createElement("div");g.setAttribute("cvoxIgnore","1");g.setAttribute("class",d.getAttribute("class"));g.setAttribute("style",d.getAttribute("style"));g.setAttribute("hidden",d.getAttribute("hidden")); +g.setAttribute(e,a.oldValue);e=!0;d.parentElement?(d.parentElement.appendChild(g),e=!cvox.DomUtil.isVisible(g),d.parentElement.removeChild(g)):e=!cvox.DomUtil.isVisible(g);!0===e&&!1===f?cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!1,!0,b):!1===e&&!0===f&&cvox.LiveRegions.handleOneChangedNode(a.target,a.target,!0,!1,b)}}});cvox.LiveRegions.nodesAlreadyHandled.length=0}; +cvox.LiveRegions.handleOneChangedNode=function(a,b,c,d,e){var f=c?b:a;f instanceof Element||(f=f.parentElement);for(;f&&!cvox.AriaUtil.getAriaLive(f);)f=f.parentElement;if(!f){if(d&&a!=document.body)for(a=cvox.AriaUtil.getLiveRegions(a),d=0;d<a.length;d++)cvox.LiveRegions.handleOneChangedNode(a[d],b,c,!1,e)}else if(!(0<=cvox.LiveRegions.nodesAlreadyHandled.indexOf(a)||(cvox.LiveRegions.nodesAlreadyHandled.push(a),cvox.AriaUtil.getAriaBusy(f)))){if(c){if(!cvox.AriaUtil.getAriaRelevant(f,"removals"))return}else if(!cvox.AriaUtil.getAriaRelevant(f, +"additions"))return;cvox.LiveRegions.announceChange(a,f,c,e)}}; +cvox.LiveRegions.announceChange=function(a,b,c,d){var e=new Date-cvox.LiveRegions.pageLoadTime;if(!("alert"!=cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS)&&cvox.DomUtil.isVisible(b)){if(a!=b)for(var f=a.parentElement;f;){(cvox.AriaUtil.getAriaAtomic(f)||cvox.AriaUtil.isLeafElement(f)||cvox.AriaUtil.isControlWidget(f))&&!cvox.AriaUtil.isCompositeControl(f)&&(a=f);if(f==b)break;f=f.parentElement}a=cvox.LiveRegions.getNavDescriptionsRecursive(a);if(0!=a.length){c&&(a=[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"), +text:""})].concat(a));if("alert"==cvox.AriaUtil.getRoleAttribute(b)&&e<cvox.LiveRegions.INITIAL_SILENCE_MS){c="";for(e=0;e<a.length;e++)c+=a[e].text,c+=a[e].userValue;if(""==cvox.DomUtil.collapseWhitespace(c))return}c=new Date;for(var g in cvox.LiveRegions.lastAnnouncedMap)c-cvox.LiveRegions.lastAnnouncedMap[g]>cvox.LiveRegions.MAX_DISCARD_DUPS_MS&&delete cvox.LiveRegions.lastAnnouncedMap[g];g=a.reduce(function(a,b){return a+"|"+b.text},"");cvox.LiveRegions.lastAnnouncedMap[g]||(cvox.LiveRegions.lastAnnouncedMap[g]= +c,b="assertive"==cvox.AriaUtil.getAriaLive(b),cvox.Interframe.isIframe()&&!document.hasFocus()?cvox.Interframe.sendMessageToParentWindow({command:"speakLiveRegion",content:JSON.stringify(a),queueMode:b?0:1,src:window.location.href}):d(b,a))}}}; +cvox.LiveRegions.getNavDescriptionsRecursive=function(a){return cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)?(a=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity),a.isEmpty()?[]:[a]):cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a)};cvox.LiveRegionsDeprecated=function(){};cvox.LiveRegionsDeprecated.trackedRegions=[];cvox.LiveRegionsDeprecated.previousRegionValue=[];cvox.LiveRegionsDeprecated.pageLoadTime=null;cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS=2E3; +cvox.LiveRegionsDeprecated.init=function(a,b,c){void 0==b&&(b=cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegionsDeprecated.pageLoadTime=a;a=!1;for(var d=cvox.AriaUtil.getLiveRegions(document.body),e=0;e<d.length;e++)cvox.LiveRegionsDeprecated.updateLiveRegion(d[e],b,c)&&(a=!0,b=cvox.AbstractTts.QUEUE_MODE_QUEUE);return a}; +cvox.LiveRegionsDeprecated.updateLiveRegion=function(a,b,c){if(cvox.AriaUtil.getAriaBusy(a)||!cvox.DomUtil.isVisible(a))return!1;var d=cvox.LiveRegionsDeprecated.trackedRegions.indexOf(a),e;0<=d?e=cvox.LiveRegionsDeprecated.previousRegionValue[d]:(d=cvox.LiveRegionsDeprecated.trackedRegions.length,e=[],cvox.LiveRegionsDeprecated.trackedRegions.push(a),cvox.LiveRegionsDeprecated.previousRegionValue.push([]));var f=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(a),g=new Date-cvox.LiveRegionsDeprecated.pageLoadTime; +if("alert"!=cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS)return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1;if("alert"==cvox.AriaUtil.getRoleAttribute(a)&&g<cvox.LiveRegionsDeprecated.INITIAL_SILENCE_MS){for(var h="",g=0;g<f.length;g++)h+=f[g].text,h+=f[g].userValue;if(""==cvox.DomUtil.collapseWhitespace(h))return cvox.LiveRegionsDeprecated.previousRegionValue[d]=f,!1}for(var k={},g=0;g<e.length;g++)k[e[g].toString()]=!0;for(var l={},g=0;g<f.length;g++)l[f[g].toString()]= +!0;h=[];if(cvox.AriaUtil.getAriaRelevant(a,"additions"))for(g=0;g<f.length;g++)k[f[g].toString()]||h.push(f[g]);k=[];if(cvox.AriaUtil.getAriaRelevant(a,"removals"))for(g=0;g<e.length;g++)l[e[g].toString()]||k.push(e[g]);e=[];e=0==h.length&&0<k.length?[new cvox.NavDescription({context:cvox.ChromeVox.msgs.getMsg("live_regions_removed"),text:""})].concat(k):h;cvox.LiveRegionsDeprecated.previousRegionValue[d]=f;if(c||0==e.length)return!1;a=cvox.AriaUtil.getAriaLive(a);"polite"==a&&(b=cvox.AbstractTts.QUEUE_MODE_QUEUE); +for(g=0;g<e.length;g++)e[g].speak(b),b=cvox.AbstractTts.QUEUE_MODE_QUEUE;return!0}; +cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue=function(a){if(cvox.AriaUtil.getAriaAtomic(a)||cvox.DomUtil.isLeafNode(a)){var b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!0,cvox.ChromeVox.verbosity);return b.isEmpty()?[]:[b]}var c=[],b=cvox.DescriptionUtil.getDescriptionFromAncestors([a],!1,cvox.ChromeVox.verbosity);b.isEmpty()||c.push(b);for(b=0;b<a.childNodes.length;b++){var d=a.childNodes[b];cvox.DomUtil.isVisible(d,{checkAncestors:!1})&&!cvox.AriaUtil.isHidden(d)&&(d=cvox.LiveRegionsDeprecated.buildCurrentLiveRegionValue(d), +c=c.concat(d))}return c};cvox.ChromeVoxEventWatcherUtil={};cvox.ChromeVoxEventWatcher=function(){};cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_=50;cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_=10;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_=1E3;cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_=3;cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_=5;cvox.ChromeVoxEventWatcher.shouldEchoKeys=!0;cvox.ChromeVoxEventWatcher.processing_=!1; +cvox.ChromeVoxEventWatcher.init=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=null;cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=null;cvox.ChromeVoxEventWatcher.eventToEat=null;cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;cvox.ChromeVoxEventWatcher.lastKeypressTime=0;cvox.ChromeVoxEventWatcher.listeners_= +[];cvox.ChromeVoxEventWatcher.mutationObserver_=null;cvox.ChromeVoxEventWatcher.focusFollowsMouse=!1;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=500;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.lastEventTime=0;cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.readyCallbacks_=[];cvox.ChromeVox.searchKeyHeld=!1;cvox.ChromeVoxEventWatcher.textMutationObserver_=null;cvox.ChromeVoxEventWatcher.addEventListeners_(a); +cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=0;cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_=0};cvox.ChromeVoxEventWatcher.storeOn=function(a){a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld};cvox.ChromeVoxEventWatcher.readFrom=function(a){cvox.ChromeVox.searchKeyHeld=a.searchKeyHeld}; +cvox.ChromeVoxEventWatcher.addEvent=function(a){if(!cvox.ChromeVox.isActive||document.webkitHidden)return!1;cvox.ChromeVoxEventWatcher.events_.push(a);cvox.ChromeVoxEventWatcher.lastEventTime=(new Date).getTime();-1==cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime&&(cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=(new Date).getTime());cvox.ChromeVoxEventWatcher.queueProcessingScheduled_||(cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!0,window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_, +cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_))};cvox.ChromeVoxEventWatcher.addReadyCallback=function(a){cvox.ChromeVoxEventWatcher.readyCallbacks_.push(a);cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()};cvox.ChromeVoxEventWatcher.hasPendingEvents_=function(){return-1!=cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime||cvox.ChromeVoxEventWatcher.queueProcessingScheduled_};cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1; +cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_=function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_||(cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!0,window.setTimeout(function(){cvox.ChromeVoxEventWatcher.readyCallbackRunning_=!1;!cvox.ChromeVoxEventWatcher.hasPendingEvents_()&&!cvox.ChromeVoxEventWatcher.queueProcessingScheduled_&&0<cvox.ChromeVoxEventWatcher.readyCallbacks_.length&&(cvox.ChromeVoxEventWatcher.readyCallbacks_.shift()(),cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_())}, +5))}; +cvox.ChromeVoxEventWatcher.addEventListeners_=function(a){cvox.ChromeVoxEventWatcher.addEventListener_(a,"keydown",cvox.ChromeVoxEventWatcher.keyDownEventWatcher,!0);if(cvox.ChromeVox.isActive&&!cvox.ChromeVox.entireDocumentIsHidden)if(cvox.ChromeVoxEventWatcher.addEventListener_(a,"keypress",cvox.ChromeVoxEventWatcher.keyPressEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"keyup",cvox.ChromeVoxEventWatcher.keyUpEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,cvox.UserEventDetail.Category.JUMP, +cvox.ChromeVoxUserCommands.handleChromeVoxUserEvent,!1),cvox.ChromeVoxEventWatcher.addEventListener_(a,"focus",cvox.ChromeVoxEventWatcher.focusEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"blur",cvox.ChromeVoxEventWatcher.blurEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"change",cvox.ChromeVoxEventWatcher.changeEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"copy",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a, +"cut",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"paste",cvox.ChromeVoxEventWatcher.clipboardEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"select",cvox.ChromeVoxEventWatcher.selectEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"webkitvisibilitychange",cvox.ChromeVoxEventWatcher.visibilityChangeWatcher,!0),cvox.ChromeVoxEventWatcher.events_=[],cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1,cvox.ChromeVoxEventWatcher.addEventListener_(a, +"mouseover",cvox.ChromeVoxEventWatcher.mouseOverEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"mouseout",cvox.ChromeVoxEventWatcher.mouseOutEventWatcher,!0),cvox.ChromeVoxEventWatcher.addEventListener_(a,"click",cvox.ChromeVoxEventWatcher.mouseClickEventWatcher,!0),"undefined"!=typeof WebKitMutationObserver){cvox.ChromeVoxEventWatcher.mutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.mutationHandler);var b=null;a.documentElement?b=a.documentElement:a.document&& +a.document.documentElement&&(b=a.document.documentElement);b&&cvox.ChromeVoxEventWatcher.mutationObserver_.observe(b,{childList:!0,attributes:!0,characterData:!0,subtree:!0,attributeOldValue:!0,characterDataOldValue:!0})}else cvox.ChromeVoxEventWatcher.addEventListener_(a,"DOMSubtreeModified",cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher,!0)}; +cvox.ChromeVoxEventWatcher.cleanup=function(a){for(var b=0;b<cvox.ChromeVoxEventWatcher.listeners_.length;b++){var c=cvox.ChromeVoxEventWatcher.listeners_[b];a.removeEventListener(c.type,c.listener,c.useCapture)}cvox.ChromeVoxEventWatcher.listeners_=[];cvox.ChromeVoxEventWatcher.currentDateHandler&&cvox.ChromeVoxEventWatcher.currentDateHandler.shutdown();cvox.ChromeVoxEventWatcher.currentTimeHandler&&cvox.ChromeVoxEventWatcher.currentTimeHandler.shutdown();cvox.ChromeVoxEventWatcher.currentMediaHandler&& +cvox.ChromeVoxEventWatcher.currentMediaHandler.shutdown();cvox.ChromeVoxEventWatcher.mutationObserver_&&cvox.ChromeVoxEventWatcher.mutationObserver_.disconnect();cvox.ChromeVoxEventWatcher.mutationObserver_=null};cvox.ChromeVoxEventWatcher.addEventListener_=function(a,b,c,d){cvox.ChromeVoxEventWatcher.listeners_.push({type:b,listener:c,useCapture:d});a.addEventListener(b,c,d)};cvox.ChromeVoxEventWatcher.getLastFocusedNode=function(){return cvox.ChromeVoxEventWatcher.lastFocusedNode}; +cvox.ChromeVoxEventWatcher.setLastFocusedNode_=function(a){cvox.ChromeVoxEventWatcher.lastFocusedNode=a;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=a?cvox.DomUtil.getControlValueAndStateString(a):null}; +cvox.ChromeVoxEventWatcher.mutationHandler=function(a){if(cvox.ChromeVoxEventSuspender.areEventsSuspended())return!0;cvox.ChromeVox.navigationManager.updateIndicatorIfChanged();cvox.LiveRegions.processMutations(a,function(a,c){var d=new window.Event("LiveRegion");d.navDescriptions=c;d.assertive=a;cvox.ChromeVoxEventWatcher.addEvent(d);return!0})}; +cvox.ChromeVoxEventWatcher.mouseClickEventWatcher=function(a){cvox.PlatformUtil.matchesPlatform(cvox.PlatformFilter.WML)&&!a.fromCvox&&cvox.ApiImplementation.syncToNode(a.target,!0);return cvox.ChromeVox.host.mustRedispatchClickEvent()&&!a.fromCvox?(cvox.ChromeVoxUserCommands.wasMouseClicked=!0,a.stopPropagation(),a.preventDefault(),cvox.Focuser.setFocus(cvox.ChromeVox.navigationManager.getCurrentNode()),cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.ChromeVox.navigationManager.getCurrentNode(),cvox.DomUtil.clickElem(a,!1,!0),!1):cvox.ChromeVoxUserCommands.wasMouseClicked=!0}; +cvox.ChromeVoxEventWatcher.mouseOverEventWatcher=function(a){if(!cvox.ChromeVoxEventWatcher.focusFollowsMouse||cvox.DomUtil.isDescendantOfNode(cvox.ChromeVoxEventWatcher.announcedMouseOverNode,a.target)||a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode)return!0;cvox.ChromeVoxEventWatcher.pendingMouseOverNode=a.target;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null);if(a.target.tagName&& +"BODY"==a.target.tagName)return cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.announcedMouseOverNode=null,!0;cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=window.setTimeout(function(){cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null;if(a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode){cvox.ChromeVox.navigationManager.stopReading(!0);var b=a.target;cvox.Focuser.setFocus(b);cvox.ApiImplementation.syncToNode(b,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.ChromeVoxEventWatcher.announcedMouseOverNode= +b}},cvox.ChromeVoxEventWatcher.mouseoverDelayMs);return!0};cvox.ChromeVoxEventWatcher.mouseOutEventWatcher=function(a){a.target==cvox.ChromeVoxEventWatcher.pendingMouseOverNode&&(cvox.ChromeVoxEventWatcher.pendingMouseOverNode=null,cvox.ChromeVoxEventWatcher.mouseOverTimeoutId&&(window.clearTimeout(cvox.ChromeVoxEventWatcher.mouseOverTimeoutId),cvox.ChromeVoxEventWatcher.mouseOverTimeoutId=null));return!0}; +cvox.ChromeVoxEventWatcher.focusEventWatcher=function(a){cvox.ChromeVoxUserCommands.removeTabDummySpan();cvox.ChromeVoxEventSuspender.areEventsSuspended()?a.target&&a.target.nodeType==Node.ELEMENT_NODE&&cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a.target):cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.focusHandler=function(a){if(a.target&&a.target.hasAttribute&&"true"==a.target.getAttribute("aria-hidden")&&"true"!=a.target.getAttribute("chromevoxignoreariahidden"))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.setUpTextHandler();else if(a.target&&a.target!=window){var b=a.target,c=cvox.DomUtil.getSurroundingControl(b);if(c&&c==cvox.ChromeVoxEventWatcher.lastFocusedNode)cvox.ChromeVoxEventWatcher.handleControlChanged(b);else{c?cvox.ChromeVoxEventWatcher.setLastFocusedNode_(c): +cvox.ChromeVoxEventWatcher.setLastFocusedNode_(b);c=cvox.ChromeVoxEventWatcher.queueMode_();if(cvox.ChromeVoxEventWatcher.getInitialVisibility()||cvox.ChromeVoxEventWatcher.handleDialogFocus(b))c=cvox.AbstractTts.QUEUE_MODE_QUEUE;cvox.ChromeVox.navigationManager.clearPageSel(!0)&&(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ApiImplementation.syncToNode(b,!document.webkitHidden,c);if(a.target.constructor==HTMLVideoElement||a.target.constructor==HTMLAudioElement)cvox.ChromeVoxEventWatcher.setUpMediaHandler_(); +else{if(a.target.hasAttribute)switch(a=a.target.getAttribute("type"),a){case "time":cvox.ChromeVoxEventWatcher.setUpTimeHandler_();return;case "date":case "month":case "week":cvox.ChromeVoxEventWatcher.setUpDateHandler_();return}cvox.ChromeVoxEventWatcher.setUpTextHandler()}}}else cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null)}; +cvox.ChromeVoxEventWatcher.blurEventWatcher=function(a){window.setTimeout(function(){document.activeElement||(cvox.ChromeVoxEventWatcher.setLastFocusedNode_(null),cvox.ChromeVoxEventWatcher.addEvent(a))},0);return!0}; +cvox.ChromeVoxEventWatcher.keyDownEventWatcher=function(a){cvox.ChromeVox.isChromeOS&&91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!0);a.searchKeyHeld=cvox.ChromeVox.searchKeyHeld&&cvox.ChromeVox.isActive;a.stickyMode=cvox.ChromeVox.isStickyOn&&cvox.ChromeVox.isActive;a.keyPrefix=cvox.ChromeVox.keyPrefixOn&&cvox.ChromeVox.isActive;cvox.ChromeVox.keyPrefixOn=!1;cvox.ChromeVoxEventWatcher.eventToEat=null;if(!cvox.ChromeVoxKbHandler.basicKeyDownActionsListener(a)||cvox.ChromeVoxEventWatcher.handleControlAction(a))return a.preventDefault(), +a.stopPropagation(),cvox.ChromeVoxEventWatcher.eventToEat=a,!1;cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.keyUpEventWatcher=function(a){91==a.keyCode&&(cvox.ChromeVox.searchKeyHeld=!1);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.stopPropagation(),a.preventDefault(),!1):!0}; +cvox.ChromeVoxEventWatcher.keyPressEventWatcher=function(a){var b=document.location.href,c=cvox.TypingEcho.shouldSpeakChar(cvox.ChromeVox.typingEcho);"undefined"!==typeof cvox.ChromeVox.keyEcho[b]&&(c=cvox.ChromeVox.keyEcho[b]);cvox.ChromeVoxEditableTextBase.eventTypingEcho&&c&&cvox.DomPredicates.editTextPredicate([document.activeElement])&&"password"!==document.activeElement.type&&(b=(new Date).getTime(),150<b-cvox.ChromeVoxEventWatcher.lastKeypressTime&&cvox.ChromeVox.tts.stop(),cvox.ChromeVoxEventWatcher.lastKeypressTime= +b,cvox.ChromeVox.tts.speak(String.fromCharCode(a.charCode),1,{relativeRate:2}));cvox.ChromeVoxEventWatcher.addEvent(a);return cvox.ChromeVoxEventWatcher.eventToEat&&a.keyCode==cvox.ChromeVoxEventWatcher.eventToEat.keyCode?(a.preventDefault(),a.stopPropagation(),!1):!0};cvox.ChromeVoxEventWatcher.changeEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.clipboardEventWatcher=function(a){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg(a.type).toLowerCase());var b="";switch(a.type){case "paste":b=a.clipboardData.getData("text");break;case "copy":case "cut":b=window.getSelection().toString()}cvox.ChromeVox.tts.speak(b,cvox.AbstractTts.QUEUE_MODE_QUEUE);cvox.ChromeVox.navigationManager.clearPageSel();return!0}; +cvox.ChromeVoxEventWatcher.changeHandler=function(a){cvox.ChromeVoxEventWatcher.setUpTextHandler()||document.activeElement==a.target&&cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement)};cvox.ChromeVoxEventWatcher.selectEventWatcher=function(a){cvox.ChromeVoxEventWatcher.addEvent(a);return!0};cvox.ChromeVoxEventWatcher.subtreeModifiedEventWatcher=function(a){if(!a||!a.target)return!0;cvox.ChromeVoxEventWatcher.addEvent(a);return!0}; +cvox.ChromeVoxEventWatcher.visibilityChangeWatcher=function(){cvox.ChromeVoxEventWatcher.initialVisibility=!document.webkitHidden;document.webkitHidden&&cvox.ChromeVox.navigationManager.stopReading(!0)};cvox.ChromeVoxEventWatcher.getInitialVisibility=function(){var a=cvox.ChromeVoxEventWatcher.initialVisibility;cvox.ChromeVoxEventWatcher.initialVisibility=!1;return a}; +cvox.ChromeVoxEventWatcher.speakLiveRegion_=function(a,b){var c=cvox.ChromeVoxEventWatcher.queueMode_();a||c!=cvox.AbstractTts.QUEUE_MODE_FLUSH||(c=cvox.AbstractTts.QUEUE_MODE_QUEUE);var d=new cvox.NavigationSpeaker;d.speakDescriptionArray(b,c,null)}; +cvox.ChromeVoxEventWatcher.subtreeModifiedHandler=function(a){var b=(new Date).getTime();if(cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_+cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_DURATION_>b){if(cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_++,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_>cvox.ChromeVoxEventWatcher.SUBTREE_MODIFIED_BURST_COUNT_LIMIT_)return}else cvox.ChromeVoxEventWatcher.lastSubtreeModifiedEventBurstTime_=b,cvox.ChromeVoxEventWatcher.subtreeModifiedEventsCount_= +1;if(a&&a.target)for(a=a.target,a=cvox.AriaUtil.getLiveRegions(a),b=0;b<a.length&&b<cvox.ChromeVoxEventWatcher.MAX_LIVE_REGIONS_;b++)cvox.LiveRegionsDeprecated.updateLiveRegion(a[b],cvox.ChromeVoxEventWatcher.queueMode_(),!1)}; +cvox.ChromeVoxEventWatcher.setUpTextHandler=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);if(a!=cvox.ChromeVoxEventWatcher.currentTextControl){cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.removeEventListener("click", +cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.textMutationObserver_&&(cvox.ChromeVoxEventWatcher.textMutationObserver_.disconnect(),cvox.ChromeVoxEventWatcher.textMutationObserver_=null));cvox.ChromeVoxEventWatcher.currentTextControl=null;cvox.ChromeVoxEventWatcher.currentTextHandler=null;if(null==a)return!1;if(a.constructor==HTMLInputElement&&cvox.DomUtil.isInputTypeText(a)&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler= +new cvox.ChromeVoxEditableHTMLInput(a,cvox.ChromeVox.tts);else if(a.constructor==HTMLTextAreaElement&&cvox.ChromeVoxEventWatcher.shouldEchoKeys)cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableTextArea(a,cvox.ChromeVox.tts);else if(a.isContentEditable||"textbox"==a.getAttribute("role"))cvox.ChromeVoxEventWatcher.currentTextControl=a,cvox.ChromeVoxEventWatcher.currentTextHandler=new cvox.ChromeVoxEditableContentEditable(a,cvox.ChromeVox.tts); +cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("input",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),cvox.ChromeVoxEventWatcher.currentTextControl.addEventListener("click",cvox.ChromeVoxEventWatcher.changeEventWatcher,!1),window.WebKitMutationObserver&&(cvox.ChromeVoxEventWatcher.textMutationObserver_=new WebKitMutationObserver(cvox.ChromeVoxEventWatcher.onTextMutation),cvox.ChromeVoxEventWatcher.textMutationObserver_.observe(cvox.ChromeVoxEventWatcher.currentTextControl, +{childList:!0,attributes:!0,subtree:!0,attributeOldValue:!1,characterDataOldValue:!1})),cvox.ChromeVoxEventSuspender.areEventsSuspended()||cvox.ChromeVox.navigationManager.updateSel(cvox.CursorSelection.fromNode(cvox.ChromeVoxEventWatcher.currentTextControl)));return null!=cvox.ChromeVoxEventWatcher.currentTextHandler}};cvox.ChromeVoxEventWatcher.handleTextChanged=function(a){if(cvox.ChromeVoxEventWatcher.currentTextHandler){var b=cvox.ChromeVoxEventWatcher.currentTextHandler;b.update(a);return!0}return!1}; +cvox.ChromeVoxEventWatcher.onTextMutation=function(){cvox.ChromeVoxEventWatcher.currentTextHandler&&window.setTimeout(function(){cvox.ChromeVoxEventWatcher.handleTextChanged(!1)},cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_)}; +cvox.ChromeVoxEventWatcher.handleControlChanged=function(a){var b=cvox.DomUtil.getControlValueAndStateString(a),c=cvox.DomUtil.getSurroundingControl(a),d=!1;if(a!=cvox.ChromeVoxEventWatcher.lastFocusedNode&&(null==c||c!=cvox.ChromeVoxEventWatcher.lastFocusedNode))cvox.ChromeVoxEventWatcher.setLastFocusedNode_(a);else if(b==cvox.ChromeVoxEventWatcher.lastFocusedNodeValue)return;cvox.ChromeVoxEventWatcher.lastFocusedNodeValue=b;if(cvox.DomPredicates.checkboxPredicate([a])||cvox.DomPredicates.radioPredicate([a]))d= +!0,a.checked?cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_ON):cvox.ChromeVox.earcons.playEarcon(cvox.AbstractEarcons.CHECK_OFF);"SELECT"==a.tagName&&(d=!0);if("INPUT"==a.tagName)switch(a.type){case "color":case "datetime":case "datetime-local":case "range":d=!0}a.hasAttribute&&a.hasAttribute("role")&&(d=!0);c&&c!=a&&document.activeElement==a?(cvox.ApiImplementation.syncToNode(a,!0,cvox.AbstractTts.QUEUE_MODE_FLUSH),d=!1):cvox.AriaUtil.getActiveDescendant(a)&&(cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(cvox.AriaUtil.getActiveDescendant(a), +!0),d=!0);d&&!cvox.ChromeVoxEventSuspender.areEventsSuspended()&&(cvox.ChromeVox.tts.speak(b,cvox.ChromeVoxEventWatcher.queueMode_(),null),cvox.NavBraille.fromText(b).write())}; +cvox.ChromeVoxEventWatcher.handleControlAction=function(a){if(!cvox.ChromeVox.isActive)return!1;var b=a.target;if("SELECT"==b.tagName&&1>=b.size&&(13==a.keyCode||32==a.keyCode))return a.preventDefault(),a.stopPropagation(),!0;if("INPUT"==b.tagName&&"range"==b.type){var c=parseFloat(b.value),d;b.step&&0<b.step?d=b.step:b.min&&b.max?(d=b.max-b.min,d=2<d&&31>d?1:(b.max-b.min)/10):d=1;if(37==a.keyCode||38==a.keyCode)c-=d;else if(39==a.keyCode||40==a.keyCode)c+=d;b.max&&c>b.max&&(c=b.max);b.min&&c<b.min&& +(c=b.min);b.value=c}return!1}; +cvox.ChromeVoxEventWatcher.handleDialogFocus=function(a){for(;a;){if(a.hasAttribute){var b=a.getAttribute("role");if("dialog"==b||"alertdialog"==b)break}a=a.parentElement}if(a==cvox.ChromeVox.navigationManager.currentDialog)return!1;if(cvox.ChromeVox.navigationManager.currentDialog&&!a){if(!cvox.DomUtil.isDescendantOfNode(document.activeElement,cvox.ChromeVox.navigationManager.currentDialog))return cvox.ChromeVox.navigationManager.currentDialog=null,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("exiting_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH, +cvox.AbstractTts.PERSONALITY_ANNOTATION),!0}else if(a)return cvox.ChromeVox.navigationManager.currentDialog=a,cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("entering_dialog"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION),a=cvox.DescriptionUtil.getFullDescriptionsFromChildren(null,a),b=new cvox.NavigationSpeaker,b.speakDescriptionArray(a,cvox.AbstractTts.QUEUE_MODE_QUEUE,null),!0;return!1}; +cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess=function(a,b,c){a=c-a;b=c-b;return a<cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_&&b<cvox.ChromeVoxEventWatcher.MAX_WAIT_TIME_MS_};cvox.ChromeVoxEventWatcher.queueMode_=function(){return cvox.ChromeVoxEventWatcher.processing_?cvox.AbstractTts.QUEUE_MODE_QUEUE:cvox.AbstractTts.QUEUE_MODE_FLUSH}; +cvox.ChromeVoxEventWatcher.processQueue_=function(){if(0!=cvox.ChromeVoxEventWatcher.events_.length){var a=cvox.ChromeVoxEventWatcher.events_,b=-1,c=0,d,e;for(e=0;d=a[e];e++)"focus"==d.type&&(b=e,c=d.timeStamp);cvox.ChromeVoxEventWatcher.events_=[];for(e=0;d=a[e];e++){var f=a[e-1]||{};!(e>=b||"LiveRegion"==d.type||"DOMSubtreeModified"==d.type)||"focus"==f.type&&"change"==d.type||cvox.ChromeVoxEventWatcher.events_.push(d)}cvox.ChromeVoxEventWatcher.events_.sort(function(a,b){return"LiveRegion"!=b.type&& +"LiveRegion"==a.type||"DOMSubtreeModified"!=b.type&&"DOMSubtreeModified"==a.type?1:-1});a=(new Date).getTime();if(0<=b&&cvox.ChromeVoxEventWatcherUtil.shouldWaitToProcess(c,cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime,a))window.setTimeout(cvox.ChromeVoxEventWatcher.processQueue_,cvox.ChromeVoxEventWatcher.WAIT_TIME_MS_);else{for(e=0;d=cvox.ChromeVoxEventWatcher.events_[e];e++)cvox.ChromeVoxEventWatcher.handleEvent_(d),cvox.ChromeVoxEventWatcher.processing_=!0;cvox.ChromeVoxEventWatcher.processing_= +!1;cvox.ChromeVoxEventWatcher.events_=[];cvox.ChromeVoxEventWatcher.firstUnprocessedEventTime=-1;cvox.ChromeVoxEventWatcher.queueProcessingScheduled_=!1;cvox.ChromeVoxEventWatcher.maybeCallReadyCallbacks_()}}}; +cvox.ChromeVoxEventWatcher.handleEvent_=function(a){switch(a.type){case "keydown":cvox.ChromeVoxEventWatcher.setUpTextHandler();if(cvox.ChromeVoxEventWatcher.currentTextControl&&(cvox.ChromeVoxEventWatcher.handleTextChanged(!0),(a=cvox.ChromeVoxEventWatcher.currentTextHandler)&&a.lastChangeDescribed))break;cvox.ChromeVoxEventWatcher.handleControlChanged(document.activeElement);break;case "keypress":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "focus":cvox.ChromeVoxEventWatcher.focusHandler(a); +break;case "blur":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "change":cvox.ChromeVoxEventWatcher.changeHandler(a);break;case "select":cvox.ChromeVoxEventWatcher.setUpTextHandler();break;case "LiveRegion":cvox.ChromeVoxEventWatcher.speakLiveRegion_(a.assertive,a.navDescriptions);break;case "DOMSubtreeModified":cvox.ChromeVoxEventWatcher.subtreeModifiedHandler(a)}}; +cvox.ChromeVoxEventWatcher.setUpTimeHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentTimeHandler=a.constructor==HTMLInputElement&&a.type&&"time"==a.type?new cvox.ChromeVoxHTMLTimeWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentTimeHandler}; +cvox.ChromeVoxEventWatcher.setUpMediaHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentMediaHandler=a.constructor==HTMLVideoElement||a.constructor==HTMLAudioElement?new cvox.ChromeVoxHTMLMediaWidget(a,cvox.ChromeVox.tts):null;return null!=cvox.ChromeVoxEventWatcher.currentMediaHandler}; +cvox.ChromeVoxEventWatcher.setUpDateHandler_=function(){var a=document.activeElement;a&&a.hasAttribute&&"true"==a.getAttribute("aria-hidden")&&"true"!=a.getAttribute("chromevoxignoreariahidden")&&(a=null);cvox.ChromeVoxEventWatcher.currentDateHandler=a.constructor!=HTMLInputElement||!a.type||"date"!=a.type&&"month"!=a.type&&"week"!=a.type?null:new cvox.ChromeVoxHTMLDateWidget(a,cvox.ChromeVox.tts);return null!=cvox.ChromeVoxEventWatcher.currentDateHandler};cvox.Serializer=function(){};cvox.Serializer.prototype.storeOn=function(a){cvox.ChromeVox.storeOn(a);cvox.ChromeVoxEventWatcher.storeOn(a)};cvox.Serializer.prototype.readFrom=function(a){cvox.ChromeVox.readFrom(a);cvox.ChromeVoxEventWatcher.readFrom(a)};cvox.InitGlobals=function(){}; +cvox.InitGlobals.initGlobals=function(){cvox.ChromeVox.host||(cvox.ChromeVox.host=cvox.HostFactory.getHost());cvox.ChromeVox.tts=(new cvox.CompositeTts).add(cvox.HostFactory.getTts()).add(cvox.History.getInstance()).add(cvox.ConsoleTts.getInstance());cvox.ChromeVox.braille||(cvox.ChromeVox.braille=cvox.HostFactory.getBraille());cvox.ChromeVox.mathJax=cvox.HostFactory.getMathJax();cvox.ChromeVox.earcons=cvox.HostFactory.getEarcons();cvox.ChromeVox.msgs=cvox.HostFactory.getMsgs();cvox.ChromeVox.isActive= +!0;cvox.ChromeVox.navigationManager=new cvox.NavigationManager;cvox.ChromeVox.navigationManager.updateIndicator();cvox.ChromeVox.syncToNode=cvox.ApiImplementation.syncToNode;cvox.ChromeVox.speakNode=cvox.ApiImplementation.speakNode;cvox.ChromeVox.serializer=new cvox.Serializer;cvox.ChromeVox.host.init();cvox.ChromeVoxEventWatcher.init(window);cvox.ChromeVox.executeUserCommand=function(a){cvox.ChromeVoxUserCommands.commands[a]()};cvox.ChromeVox.host.onPageLoad()};cvox.ChromeVoxInit={};cvox.ChromeVox.initTimeout_=100;cvox.ChromeVox.recallInit_=function(a){window.console.log(a+" Will try again in "+cvox.ChromeVox.initTimeout_+"ms");window.setTimeout(cvox.ChromeVox.initDocument,cvox.ChromeVox.initTimeout_);cvox.ChromeVox.initTimeout_*=2}; +cvox.ChromeVox.initDocument=function(){document.body?(cvox.ChromeVox.host=cvox.HostFactory.getHost(),cvox.ChromeVox.host.ttsLoaded()?(window.console.log("Starting ChromeVox."),cvox.InitGlobals.initGlobals(),window.disableChromeVox=function(){cvox.ChromeVox.host.killChromeVox()}):cvox.ChromeVox.recallInit_("ChromeVox not starting; waiting for TTS. "+document.location.href+".")):cvox.ChromeVox.recallInit_("ChromeVox not starting on unloaded page: "+document.location.href+".")}; +cvox.ChromeVox.reinit=function(){cvox.ChromeVox.host.reinit();cvox.ChromeVox.initDocument()};cvox.AndroidBraille=function(){};goog.inherits(cvox.AndroidBraille,cvox.AbstractBraille);cvox.AndroidBraille.prototype.write=function(a){accessibility.braille&&accessibility.braille(JSON.stringify(a.toJson()))};cvox.HostFactory.brailleConstructor=cvox.AndroidBraille;cvox.AndroidEarcons=function(){cvox.AbstractEarcons.call(this);this.audioMap={}};goog.inherits(cvox.AndroidEarcons,cvox.AbstractEarcons);cvox.AndroidEarcons.BASE_URL="https://ssl.gstatic.com/accessibility/javascript/android/earcons/"; +cvox.AndroidEarcons.prototype.playEarcon=function(a){if(this.earconsAvailable()){cvox.AndroidEarcons.superClass_.playEarcon.call(this,a);this.currentAudio=this.audioMap[a];this.currentAudio||(this.currentAudio=new Audio(cvox.AndroidEarcons.BASE_URL+this.getEarconFilename(a)),this.audioMap[a]=this.currentAudio);try{this.currentAudio.currentTime=0}catch(b){}this.currentAudio.paused&&this.currentAudio.play()}}; +cvox.AndroidEarcons.prototype.earconsAvailable=function(){return-1==navigator.userAgent.indexOf("Chrome")?!1:!0};cvox.HostFactory.earconsConstructor=cvox.AndroidEarcons;"undefined"!=typeof goog&&goog.provide&&(cvox.Api={},cvox.Api.Math={}); +(function(){function a(){d&&(d.port1.close(),d.port2.close(),d=null);d=new MessageChannel;window.postMessage("cvox.PortSetup",[d.port2],"*");d.port1.onmessage=function(a){"cvox.Disconnect"==a.data&&(d=null);try{var b=JSON.parse(a.data);b.id&&g[b.id]&&(g[b.id](b),delete g[b.id])}catch(c){}}}function b(a,b){var c=f;f++;void 0===a.args&&(a.args=[]);a.args=[c].concat(a.args);g[c]=b;d.port1.postMessage(JSON.stringify(a))}function c(a,c){var d=null;c&&c.endCallback&&(d=c.endCallback);b(a,d)}var d,e=!1, +f=1,g={};window.cvox||(window.cvox={});var h=window.cvox,k=null;"undefined"!=typeof h.ApiImplementation&&(k=h.ApiImplementation);h.Api=function(){};h.Api.internalEnable=function(){e=!0;k||a();var b=document.createEvent("UIEvents");b.initEvent("chromeVoxLoaded",!0,!1);document.dispatchEvent(b)};h.Api.internalDisable=function(){e=!1;d=null;var a=document.createEvent("UIEvents");a.initEvent("chromeVoxUnloaded",!0,!1);document.dispatchEvent(a)};h.Api.isChromeVoxActive=function(){return k?e:!!d};h.Api.speak= +function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(a,b,d):(a={cmd:"speak",args:[a,b,d]},c(a,d)))};h.Api.speakNode=function(a,b,d){h.Api.isChromeVoxActive()&&(k?k.speak(h.DomUtil.getName(a),b,d):(a={cmd:"speakNodeRef",args:[h.ApiUtils.makeNodeReference(a),b,d]},c(a,d)))};h.Api.stop=function(){if(h.Api.isChromeVoxActive())if(k)k.stop();else{var a={cmd:"stop"};d.port1.postMessage(JSON.stringify(a))}};h.Api.playEarcon=function(a){h.Api.isChromeVoxActive()&&(k?k.playEarcon(a):(a={cmd:"playEarcon",args:[a]}, +d.port1.postMessage(JSON.stringify(a))))};h.Api.syncToNode=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)k.syncToNode(a,b);else{var c={cmd:"syncToNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getCurrentNode=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.navigationManager.getCurrentNode()):b({cmd:"getCurrentNode"},function(b){a(h.ApiUtils.getNodeFromRef(b.currentNode))}))};h.Api.setSpeechForNode=function(a,b){h.Api.isChromeVoxActive()&& +a&&b&&a.setAttribute("cvoxnodedesc",JSON.stringify(b))};h.Api.click=function(a,b){if(h.Api.isChromeVoxActive()&&a)if(k)h.DomUtil.clickElem(a,b,!0);else{var c={cmd:"clickNodeRef",args:[h.ApiUtils.makeNodeReference(a),b]};d.port1.postMessage(JSON.stringify(c))}};h.Api.getBuild=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.BuildInfo.build):b({cmd:"getBuild"},function(b){a(b.build)}))};h.Api.getVersion=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.ChromeVox.version+""):b({cmd:"getVersion"},function(b){a(b.version)}))}; +h.Api.getCvoxModifierKeys=function(a){h.Api.isChromeVoxActive()&&a&&(k?a(h.KeyUtil.cvoxModKeyCodes()):b({cmd:"getCvoxModKeys"},function(b){a(b.keyCodes)}))};h.Api.isKeyShortcut=function(a,c){if(c)if(h.Api.isChromeVoxActive()){var d=[37,39];if(!d.indexOf(a.keyCode)||a.altKey||a.shiftKey||a.ctrlKey||a.metaKey)if(k){var e=h.KeyUtil.keyEventToKeySequence(a);c(h.ChromeVoxKbHandler.handlerKeyMap.hasKey(e))}else{var d={},f=["target","srcElement","currentTarget","view"];for(e in a)-1===f.indexOf(e)&&(d[e]= +a[e]);e={cmd:"isKeyShortcut",args:[d]};b(e,function(a){c(a.isHandled)})}else c(!1)}else c(!1)};h.Api.setKeyEcho=function(a){h.Api.isChromeVoxActive()&&(k?k.setKeyEcho(a):(a={cmd:"setKeyEcho",args:[a]},d.port1.postMessage(JSON.stringify(a))))};h.Api.Math=function(){};h.Api.Math.defineRule=function(a,b,c,e,f){if(h.Api.isChromeVoxActive()){var g=Array.prototype.slice.call(arguments,4),g=[a,b,c,e].concat(g);k?k.Math.defineRule.apply(k.Math,g):(g={cmd:"Math.defineRule",args:g},d.port1.postMessage(JSON.stringify(g)))}}; +h.Api.internalEnable();h.NodeDescription=function(a,b,c,d){this.context=a?a:"";this.text=b?b:"";this.userValue=c?c:"";this.annotation=d?d:""}})();cvox.InitialSpeech={};window.INJECTED_AFTER_LOAD||(window.INJECTED_AFTER_LOAD=!1); +cvox.InitialSpeech.speak=function(){var a=window.INJECTED_AFTER_LOAD;if(!cvox.ChromeVox.isActive||document.webkitHidden)a=!0;window.top==window&&document.title&&!a&&cvox.ChromeVox.tts.speak(document.title,cvox.AbstractTts.QUEUE_MODE_FLUSH);cvox.LiveRegions.init(new Date,cvox.AbstractTts.QUEUE_MODE_QUEUE,a);document.hasFocus()&&document.activeElement==document.body&&cvox.ChromeVox.navigationManager.syncToBeginning();if(cvox.ChromeVox.position[document.location.href]){var b=cvox.ChromeVox.position[document.location.href]; +cvox.ChromeVox.navigationManager.updateSelToArbitraryNode(document.elementFromPoint(b.x,b.y))}document.hasFocus()&&(a||cvox.ChromeVoxEventSuspender.withSuspendedEvents(function(){cvox.ChromeVox.navigationManager.finishNavCommand("",!0,cvox.AbstractTts.QUEUE_MODE_QUEUE)})())};cvox.AndroidKeyMap=function(){}; +cvox.AndroidKeyMap.getStringifiedKeyMap=function(){return cvox.ChromeVoxJSON.stringify({'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[17]}}':"stopSpeech",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[9]}}':"handleTab",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[9]}}':"handleTabPrev", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[38]}}':"backward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"forward",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[37]}}':"previousGranularity", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[39]}}':"nextGranularity",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[false],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[13]}}':"forceClickOnCurrentItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[false],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[40]}}':"readFromHere", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[85]}}':"readLinkURL",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[75]}}':"fullyDescribe",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[189]}}':"decreaseTtsPitch", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[187]}}':"increaseTtsPitch",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[219]}}':"decreaseTtsRate",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[221]}}':"increaseTtsRate", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[81]}}':"cyclePunctuationLevel",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[49]}}':"nextHeading1",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[49]}}':"previousHeading1", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[50]}}':"nextHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[50]}}':"previousHeading2",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[51]}}':"nextHeading3", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[51]}}':"previousHeading3",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[52]}}':"nextHeading4",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[52]}}':"previousHeading4", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[53]}}':"nextHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[53]}}':"previousHeading5",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[54]}}':"nextHeading6", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[54]}}':"previousHeading6",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[67]}}':"nextComboBox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[67]}}':"previousComboBox", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[69]}}':"nextEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[69]}}':"previousEditText",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[70]}}':"nextFormField", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[70]}}':"previousFormField",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[71]}}':"nextGraphic",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[71]}}':"previousGraphic", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[72]}}':"nextHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[72]}}':"previousHeading",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[73]}}':"nextListItem", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[73]}}':"previousListItem",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[76]}}':"nextLink",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[76]}}':"previousLink", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[79]}}':"nextList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[79]}}':"previousList",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[82]}}':"nextRadio", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[82]}}':"previousRadio",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[84]}}':"nextTable",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[84]}}':"previousTable", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[66]}}':"nextButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[66]}}':"previousButton",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[88]}}':"nextCheckbox", +'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[88]}}':"previousCheckbox",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[false],"metaKey":[false],"keyCode":[186]}}':"nextLandmark",'{"cvoxModifier":false,"stickyMode":false,"prefixKey":false,"keys":{"ctrlKey":[true],"searchKeyHeld":[false],"altKey":[true],"altGraphKey":[false],"shiftKey":[true],"metaKey":[false],"keyCode":[186]}}':"previousLandmark"})};cvox.MathSimpleStore=function(){cvox.MathStore.call(this)};goog.inherits(cvox.MathSimpleStore,cvox.MathStore);cvox.MathSimpleStore.prototype.defineRulesFromMappings=function(a,b,c){for(var d in c)for(var e in c[d]){var f=c[d][e],g='self::text() = "'+b+'"';this.defineRule(a,d+"."+e,'[t] "'+f+'"',"self::text()",g)}};cvox.MathCompoundStore=function(){this.subStores_={}};goog.addSingletonGetter(cvox.MathCompoundStore); +cvox.MathCompoundStore.prototype.defineRules=function(a,b,c){var d=new cvox.MathSimpleStore;d.defineRulesFromMappings(a,b,c);this.subStores_[b]=d};cvox.MathCompoundStore.prototype.addSymbolRules=function(a){var b=cvox.MathSimpleStore.parseUnicode_(a.key);this.defineRules(a.key,b,a.mappings)};cvox.MathCompoundStore.prototype.addFunctionRules=function(a){var b=a.names;a=a.mappings;for(var c=0,d;d=b[c];c++)this.defineRules(d,d,a)}; +cvox.MathCompoundStore.prototype.lookupRule=function(a,b){var c=this.subStores_[a.textContent];if(c)return c.lookupRule(a,b)};cvox.MathCompoundStore.prototype.lookupString=function(a,b){var c=document.createTextNode(a);return(c=this.lookupRule(c,b))?c.action.components.map(function(a){return a.content.slice(1,-1)}).join(" "):""}; +cvox.MathCompoundStore.prototype.getDynamicConstraintValues=function(){var a={},b;for(b in this.subStores_){var c=this.subStores_[b].getDynamicConstraintValues(),d;for(d in c){var e=a[d];a[d]=e?cvox.MathUtil.union(e,c[d]):c[d]}}return a};cvox.MathSimpleStore.parseUnicode_=function(a){var b=parseInt(a,16);if(65536>b)return String.fromCharCode(b);b-=65536;a=(b>>10)+55296;b=(b&1023)+56320;return String.fromCharCode(a,b)};cvox.AndroidMathMap=function(){this.store_=cvox.MathCompoundStore.getInstance();cvox.AndroidMathMap.FUNCTION_MAPPINGS_.forEach(goog.bind(this.store_.addFunctionRules,this.store_));cvox.AndroidMathMap.SYMBOL_MAPPINGS_.forEach(goog.bind(this.store_.addSymbolRules,this.store_));this.store_.getDynamicConstraintValues()}; +cvox.AndroidMathMap.prototype.evaluate=function(a,b,c){var d="";b=cvox.MathStore.createDynamicConstraint(b,c);d=this.store_.lookupString(a,b);return new cvox.NavDescription({text:d?d:a})}; +cvox.AndroidMathMap.SYMBOL_MAPPINGS_=[{category:"Po",mappings:{"default":{"default":"exclamation mark"}},key:"0021"},{category:"Po",mappings:{"default":{"default":"quotation mark"}},key:"0022"},{category:"Po",mappings:{"default":{"default":"number sign",alternative:"hash","short":"number"}},key:"0023"},{category:"Sc",mappings:{"default":{"default":"dollar sign","short":"dollar"}},key:"0024"},{category:"Po",mappings:{"default":{"default":"percent sign","short":"percent"}},key:"0025"},{category:"Po", +mappings:{"default":{"default":"ampersand"}},key:"0026"},{category:"Po",mappings:{"default":{"default":"apostrophe",alternative:"apostrophe quote"}},key:"0027"},{category:"Po",mappings:{"default":{"default":"asterisk"}},key:"002A"},{category:"Sm",mappings:{"default":{"default":"plus sign","short":"plus"}},key:"002B"},{category:"Po",mappings:{"default":{"default":"comma"}},key:"002C"},{category:"Pd",mappings:{"default":{"default":"hyphen minus","short":"minus"}},key:"002D"},{category:"Po",mappings:{"default":{"default":"full stop", +alternative:"period"}},key:"002E"},{category:"Po",mappings:{"default":{"default":"solidus",alternative:"slash"}},key:"002F"},{category:"Po",mappings:{"default":{"default":"colon"}},key:"003A"},{category:"Po",mappings:{"default":{"default":"semicolon"}},key:"003B"},{category:"Sm",mappings:{"default":{"default":"less than sign","short":"less than"}},key:"003C"},{category:"Sm",mappings:{"default":{"default":"equals sign","short":"equals"}},key:"003D"},{category:"Sm",mappings:{"default":{"default":"greater than sign", +"short":"greater than"}},key:"003E"},{category:"Po",mappings:{"default":{"default":"question mark"}},key:"003F"},{category:"Po",mappings:{"default":{"default":"commercial at","short":"at"}},key:"0040"},{category:"Po",mappings:{"default":{"default":"reverse solidus",alternative:"backslash"}},key:"005C"},{category:"Sk",mappings:{"default":{"default":"circumflex accent",alternative:"spacing circumflex","short":"hat"}},key:"005E"},{category:"Pc",mappings:{"default":{"default":"low line",alternative:"spacing underscore"}}, +key:"005F"},{category:"Sk",mappings:{"default":{"default":"grave accent",alternative:"spacing grave","short":"grave"}},key:"0060"},{category:"Sm",mappings:{"default":{"default":"vertical line",alternative:"vertical bar"}},key:"007C"},{category:"Sm",mappings:{"default":{"default":"tilde"}},key:"007E"},{category:"Po",mappings:{"default":{"default":"inverted exclamation mark"}},key:"00A1"},{category:"Sc",mappings:{"default":{"default":"cent sign","short":"cent"}},key:"00A2"},{category:"Sc",mappings:{"default":{"default":"pound sign", +"short":"pound"}},key:"00A3"},{category:"Sc",mappings:{"default":{"default":"currency sign","short":"currency"}},key:"00A4"},{category:"Sc",mappings:{"default":{"default":"yen sign","short":"yen"}},key:"00A5"},{category:"So",mappings:{"default":{"default":"broken bar",alternative:"broken vertical bar"}},key:"00A6"},{category:"Po",mappings:{"default":{"default":"section sign","short":"section"}},key:"00A7"},{category:"Sk",mappings:{"default":{"default":"diaeresis",alternative:"spacing diaeresis","short":"double dot"}}, +key:"00A8"},{category:"So",mappings:{"default":{"default":"copyright sign","short":"copyright"}},key:"00A9"},{category:"Lo",mappings:{"default":{"default":"feminine ordinal indicator"}},key:"00AA"},{category:"Pi",mappings:{"default":{"default":"left pointing double angle quotation mark",alternative:"left pointing guillemet"}},key:"00AB"},{category:"Sm",mappings:{"default":{"default":"not sign","short":"not"}},key:"00AC"},{category:"So",mappings:{"default":{"default":"registered sign",alternative:"registered trade mark sign", +"short":"registered"}},key:"00AE"},{category:"Sk",mappings:{"default":{"default":"macron",alternative:"spacing macron"}},key:"00AF"},{category:"So",mappings:{"default":{"default":"degree sign","short":"degree"}},key:"00B0"},{category:"Sm",mappings:{"default":{"default":"plus minus sign",alternative:"plus or minus sign","short":"plus minus"}},key:"00B1"},{category:"Sk",mappings:{"default":{"default":"acute accent",alternative:"spacing acute","short":"acute"}},key:"00B4"},{category:"Ll",mappings:{"default":{"default":"micro sign", +"short":"micro"}},key:"00B5"},{category:"Po",mappings:{"default":{"default":"pilcrow sign",alternative:"paragraph sign","short":"pilcrow"}},key:"00B6"},{category:"Po",mappings:{"default":{"default":"middle dot"}},key:"00B7"},{category:"Sk",mappings:{"default":{"default":"cedilla",alternative:"spacing cedilla"}},key:"00B8"},{category:"Lo",mappings:{"default":{"default":"masculine ordinal indicator"}},key:"00BA"},{category:"Pf",mappings:{"default":{"default":"right pointing double angle quotation mark", +alternative:"right pointing guillemet"}},key:"00BB"},{category:"Po",mappings:{"default":{"default":"inverted question mark"}},key:"00BF"},{category:"Sm",mappings:{"default":{"default":"multiplication sign","short":"multiplication"}},key:"00D7"},{category:"Sm",mappings:{"default":{"default":"division sign","short":"division"}},key:"00F7"},{category:"Sk",mappings:{"default":{"default":"breve",alternative:"spacing breve"}},key:"02D8"},{category:"Sk",mappings:{"default":{"default":"dot above",alternative:"spacing dot above"}}, +key:"02D9"},{category:"Sk",mappings:{"default":{"default":"ring above",alternative:"spacing ring above"}},key:"02DA"},{category:"Sk",mappings:{"default":{"default":"ogonek",alternative:"spacing ogonek"}},key:"02DB"},{category:"Sk",mappings:{"default":{"default":"small tilde",alternative:"spacing tilde"}},key:"02DC"},{category:"Sk",mappings:{"default":{"default":"double acute accent",alternative:"spacing double acute"}},key:"02DD"},{category:"Pd",mappings:{"default":{"default":"hyphen"}},key:"2010"}, +{category:"Pd",mappings:{"default":{"default":"non breaking hyphen"}},key:"2011"},{category:"Pd",mappings:{"default":{"default":"figure dash"}},key:"2012"},{category:"Pd",mappings:{"default":{"default":"en dash"}},key:"2013"},{category:"Pd",mappings:{"default":{"default":"em dash"}},key:"2014"},{category:"Pd",mappings:{"default":{"default":"horizontal bar",alternative:"quotation dash"}},key:"2015"},{category:"Po",mappings:{"default":{"default":"double vertical line",alternative:"double vertical bar"}}, +key:"2016"},{category:"Po",mappings:{"default":{"default":"double low line",alternative:"spacing double underscore"}},key:"2017"},{category:"Pi",mappings:{"default":{"default":"left single quotation mark",alternative:"single turned comma quotation mark"}},key:"2018"},{category:"Pf",mappings:{"default":{"default":"right single quotation mark",alternative:"single comma quotation mark"}},key:"2019"},{category:"Ps",mappings:{"default":{"default":"single low 9 quotation mark",alternative:"low single comma quotation mark"}}, +key:"201A"},{category:"Pi",mappings:{"default":{"default":"single high reversed 9 quotation mark",alternative:"single reversed comma quotation mark"}},key:"201B"},{category:"Pi",mappings:{"default":{"default":"left double quotation mark",alternative:"double turned comma quotation mark"}},key:"201C"},{category:"Pf",mappings:{"default":{"default":"right double quotation mark",alternative:"double comma quotation mark"}},key:"201D"},{category:"Ps",mappings:{"default":{"default":"double low 9 quotation mark", +alternative:"low double comma quotation mark"}},key:"201E"},{category:"Pi",mappings:{"default":{"default":"double high reversed 9 quotation mark",alternative:"double reversed comma quotation mark"}},key:"201F"},{category:"Po",mappings:{"default":{"default":"dagger"}},key:"2020"},{category:"Po",mappings:{"default":{"default":"double dagger"}},key:"2021"},{category:"Po",mappings:{"default":{"default":"bullet"}},key:"2022"},{category:"Po",mappings:{"default":{"default":"triangular bullet"}},key:"2023"}, +{category:"Po",mappings:{"default":{"default":"one dot leader"}},key:"2024"},{category:"Po",mappings:{"default":{"default":"two dot leader"}},key:"2025"},{category:"Po",mappings:{"default":{"default":"horizontal ellipsis"}},key:"2026"},{category:"Po",mappings:{"default":{"default":"hyphenation point"}},key:"2027"},{category:"Po",mappings:{"default":{"default":"per mille sign","short":"per mille"}},key:"2030"},{category:"Po",mappings:{"default":{"default":"per ten thousand sign","short":"per ten thousand"}}, +key:"2031"},{category:"Po",mappings:{"default":{"default":"prime"}},key:"2032"},{category:"Po",mappings:{"default":{"default":"double prime"}},key:"2033"},{category:"Po",mappings:{"default":{"default":"triple prime"}},key:"2034"},{category:"Po",mappings:{"default":{"default":"reversed prime"}},key:"2035"},{category:"Po",mappings:{"default":{"default":"reversed double prime"}},key:"2036"},{category:"Po",mappings:{"default":{"default":"reversed triple prime"}},key:"2037"},{category:"Po",mappings:{"default":{"default":"caret"}}, +key:"2038"},{category:"Pi",mappings:{"default":{"default":"single left pointing angle quotation mark",alternative:"left pointing single guillemet"}},key:"2039"},{category:"Pf",mappings:{"default":{"default":"single right pointing angle quotation mark",alternative:"right pointing single guillemet"}},key:"203A"},{category:"Po",mappings:{"default":{"default":"reference mark"}},key:"203B"},{category:"Po",mappings:{"default":{"default":"double exclamation mark"}},key:"203C"},{category:"Po",mappings:{"default":{"default":"interrobang"}}, +key:"203D"},{category:"Po",mappings:{"default":{"default":"overline",alternative:"spacing overscore"}},key:"203E"},{category:"Pc",mappings:{"default":{"default":"undertie"}},key:"203F"},{category:"Pc",mappings:{"default":{"default":"character tie"}},key:"2040"},{category:"Po",mappings:{"default":{"default":"caret insertion point"}},key:"2041"},{category:"Po",mappings:{"default":{"default":"asterism"}},key:"2042"},{category:"Po",mappings:{"default":{"default":"hyphen bullet"}},key:"2043"},{category:"Sm", +mappings:{"default":{"default":"fraction slash"}},key:"2044"},{category:"Po",mappings:{"default":{"default":"double question mark"}},key:"2047"},{category:"Po",mappings:{"default":{"default":"question exclamation mark"}},key:"2048"},{category:"Po",mappings:{"default":{"default":"exclamation question mark"}},key:"2049"},{category:"Po",mappings:{"default":{"default":"reversed pilcrow sign","short":"reversed pilcrow"}},key:"204B"},{category:"Po",mappings:{"default":{"default":"black leftwards bullet"}}, +key:"204C"},{category:"Po",mappings:{"default":{"default":"black rightwards bullet"}},key:"204D"},{category:"Po",mappings:{"default":{"default":"low asterisk"}},key:"204E"},{category:"Po",mappings:{"default":{"default":"reversed semicolon"}},key:"204F"},{category:"Po",mappings:{"default":{"default":"close up"}},key:"2050"},{category:"Po",mappings:{"default":{"default":"two asterisks aligned vertically"}},key:"2051"},{category:"Sm",mappings:{"default":{"default":"commercial minus sign","short":"commercial minus"}}, +key:"2052"},{category:"Po",mappings:{"default":{"default":"swung dash"}},key:"2053"},{category:"Pc",mappings:{"default":{"default":"inverted undertie"}},key:"2054"},{category:"Po",mappings:{"default":{"default":"flower punctuation mark"}},key:"2055"},{category:"Po",mappings:{"default":{"default":"three dot punctuation"}},key:"2056"},{category:"Po",mappings:{"default":{"default":"quadruple prime"}},key:"2057"},{category:"Po",mappings:{"default":{"default":"four dot punctuation"}},key:"2058"},{category:"Po", +mappings:{"default":{"default":"five dot punctuation"}},key:"2059"},{category:"Po",mappings:{"default":{"default":"two dot punctuation"}},key:"205A"},{category:"Po",mappings:{"default":{"default":"four dot mark"}},key:"205B"},{category:"Po",mappings:{"default":{"default":"dotted cross"}},key:"205C"},{category:"Po",mappings:{"default":{"default":"tricolon"}},key:"205D"},{category:"Po",mappings:{"default":{"default":"vertical four dots"}},key:"205E"},{category:"Sm",mappings:{"default":{"default":"superscript plus sign", +"short":"superscript plus"}},key:"207A"},{category:"Sm",mappings:{"default":{"default":"superscript minus",alternative:"superscript hyphen minus"}},key:"207B"},{category:"Sm",mappings:{"default":{"default":"superscript equals sign","short":"superscript equals"}},key:"207C"},{category:"Ps",mappings:{"default":{"default":"superscript left parenthesis",alternative:"superscript opening parenthesis"}},key:"207D"},{category:"Pe",mappings:{"default":{"default":"superscript right parenthesis",alternative:"superscript closing parenthesis"}}, +key:"207E"},{category:"Sm",mappings:{"default":{"default":"subscript plus sign","short":"subscript plus"}},key:"208A"},{category:"Sm",mappings:{"default":{"default":"subscript minus",alternative:"subscript hyphen minus"}},key:"208B"},{category:"Sm",mappings:{"default":{"default":"subscript equals sign","short":"subscript equals"}},key:"208C"},{category:"Ps",mappings:{"default":{"default":"subscript left parenthesis",alternative:"subscript opening parenthesis"}},key:"208D"},{category:"Pe",mappings:{"default":{"default":"subscript right parenthesis", +alternative:"subscript closing parenthesis"}},key:"208E"},{category:"So",mappings:{"default":{"default":"property line"}},key:"214A"},{category:"Sm",mappings:{"default":{"default":"turned ampersand"}},key:"214B"},{category:"So",mappings:{"default":{"default":"per sign","short":"per"}},key:"214C"},{category:"So",mappings:{"default":{"default":"aktieselskab"}},key:"214D"},{category:"Ll",mappings:{"default":{"default":"turned small f"}},key:"214E"},{category:"Sm",mappings:{"default":{"default":"for all"}}, +key:"2200"},{category:"Sm",mappings:{"default":{"default":"complement"}},key:"2201"},{category:"Sm",mappings:{"default":{"default":"partial differential"}},key:"2202"},{category:"Sm",mappings:{"default":{"default":"there exists"}},key:"2203"},{category:"Sm",mappings:{"default":{"default":"there does not exist"}},key:"2204"},{category:"Sm",mappings:{"default":{"default":"empty set"}},key:"2205"},{category:"Sm",mappings:{"default":{"default":"increment"}},key:"2206"},{category:"Sm",mappings:{"default":{"default":"nabla"}}, +key:"2207"},{category:"Sm",mappings:{"default":{"default":"element of"}},key:"2208"},{category:"Sm",mappings:{"default":{"default":"not an element of"}},key:"2209"},{category:"Sm",mappings:{"default":{"default":"small element of"}},key:"220A"},{category:"Sm",mappings:{"default":{"default":"contains as member"}},key:"220B"},{category:"Sm",mappings:{"default":{"default":"does not contain as member"}},key:"220C"},{category:"Sm",mappings:{"default":{"default":"small contains as member"}},key:"220D"}, +{category:"Sm",mappings:{"default":{"default":"end of proof"}},key:"220E"},{category:"Sm",mappings:{"default":{"default":"n ary product"}},key:"220F"},{category:"Sm",mappings:{"default":{"default":"n ary coproduct"}},key:"2210"},{category:"Sm",mappings:{"default":{"default":"n ary summation"}},key:"2211"},{category:"Sm",mappings:{"default":{"default":"minus sign","short":"minus"}},key:"2212"},{category:"Sm",mappings:{"default":{"default":"minus or plus sign","short":"minus or plus"}},key:"2213"}, +{category:"Sm",mappings:{"default":{"default":"dot plus"}},key:"2214"},{category:"Sm",mappings:{"default":{"default":"division slash"}},key:"2215"},{category:"Sm",mappings:{"default":{"default":"set minus"}},key:"2216"},{category:"Sm",mappings:{"default":{"default":"asterisk operator"}},key:"2217"},{category:"Sm",mappings:{"default":{"default":"ring operator"}},key:"2218"},{category:"Sm",mappings:{"default":{"default":"bullet operator"}},key:"2219"},{category:"Sm",mappings:{"default":{"default":"square root"}}, +key:"221A"},{category:"Sm",mappings:{"default":{"default":"cube root"}},key:"221B"},{category:"Sm",mappings:{"default":{"default":"fourth root"}},key:"221C"},{category:"Sm",mappings:{"default":{"default":"proportional to"}},key:"221D"},{category:"Sm",mappings:{"default":{"default":"infinity"}},key:"221E"},{category:"Sm",mappings:{"default":{"default":"right angle"}},key:"221F"},{category:"Sm",mappings:{"default":{"default":"angle"}},key:"2220"},{category:"Sm",mappings:{"default":{"default":"measured angle"}}, +key:"2221"},{category:"Sm",mappings:{"default":{"default":"spherical angle"}},key:"2222"},{category:"Sm",mappings:{"default":{"default":"divides","short":"bar"}},key:"2223"},{category:"Sm",mappings:{"default":{"default":"does not divide"}},key:"2224"},{category:"Sm",mappings:{"default":{"default":"parallel to"}},key:"2225"},{category:"Sm",mappings:{"default":{"default":"not parallel to"}},key:"2226"},{category:"Sm",mappings:{"default":{"default":"logical and"}},key:"2227"},{category:"Sm",mappings:{"default":{"default":"logical or"}}, +key:"2228"},{category:"Sm",mappings:{"default":{"default":"intersection"}},key:"2229"},{category:"Sm",mappings:{"default":{"default":"union"}},key:"222A"},{category:"Sm",mappings:{"default":{"default":"integral"}},key:"222B"},{category:"Sm",mappings:{"default":{"default":"double integral"}},key:"222C"},{category:"Sm",mappings:{"default":{"default":"triple integral"}},key:"222D"},{category:"Sm",mappings:{"default":{"default":"contour integral"}},key:"222E"},{category:"Sm",mappings:{"default":{"default":"surface integral"}}, +key:"222F"},{category:"Sm",mappings:{"default":{"default":"volume integral"}},key:"2230"},{category:"Sm",mappings:{"default":{"default":"clockwise integral"}},key:"2231"},{category:"Sm",mappings:{"default":{"default":"clockwise contour integral"}},key:"2232"},{category:"Sm",mappings:{"default":{"default":"anticlockwise contour integral"}},key:"2233"},{category:"Sm",mappings:{"default":{"default":"therefore"}},key:"2234"},{category:"Sm",mappings:{"default":{"default":"because"}},key:"2235"},{category:"Sm", +mappings:{"default":{"default":"ratio"}},key:"2236"},{category:"Sm",mappings:{"default":{"default":"proportion"}},key:"2237"},{category:"Sm",mappings:{"default":{"default":"dot minus"}},key:"2238"},{category:"Sm",mappings:{"default":{"default":"excess"}},key:"2239"},{category:"Sm",mappings:{"default":{"default":"geometric proportion"}},key:"223A"},{category:"Sm",mappings:{"default":{"default":"homothetic"}},key:"223B"},{category:"Sm",mappings:{"default":{"default":"tilde operator"}},key:"223C"},{category:"Sm", +mappings:{"default":{"default":"reversed tilde"}},key:"223D"},{category:"Sm",mappings:{"default":{"default":"inverted lazy s"}},key:"223E"},{category:"Sm",mappings:{"default":{"default":"sine wave"}},key:"223F"},{category:"Sm",mappings:{"default":{"default":"wreath product"}},key:"2240"},{category:"Sm",mappings:{"default":{"default":"not tilde"}},key:"2241"},{category:"Sm",mappings:{"default":{"default":"minus tilde"}},key:"2242"},{category:"Sm",mappings:{"default":{"default":"asymptotically equal to"}}, +key:"2243"},{category:"Sm",mappings:{"default":{"default":"not asymptotically equal to"}},key:"2244"},{category:"Sm",mappings:{"default":{"default":"approximately equal to"}},key:"2245"},{category:"Sm",mappings:{"default":{"default":"approximately but not actually equal to"}},key:"2246"},{category:"Sm",mappings:{"default":{"default":"neither approximately nor actually equal to"}},key:"2247"},{category:"Sm",mappings:{"default":{"default":"almost equal to"}},key:"2248"},{category:"Sm",mappings:{"default":{"default":"not almost equal to"}}, +key:"2249"},{category:"Sm",mappings:{"default":{"default":"almost equal or equal to"}},key:"224A"},{category:"Sm",mappings:{"default":{"default":"triple tilde"}},key:"224B"},{category:"Sm",mappings:{"default":{"default":"all equal to"}},key:"224C"},{category:"Sm",mappings:{"default":{"default":"equivalent to"}},key:"224D"},{category:"Sm",mappings:{"default":{"default":"geometrically equivalent to"}},key:"224E"},{category:"Sm",mappings:{"default":{"default":"difference between"}},key:"224F"},{category:"Sm", +mappings:{"default":{"default":"approaches the limit"}},key:"2250"},{category:"Sm",mappings:{"default":{"default":"geometrically equal to"}},key:"2251"},{category:"Sm",mappings:{"default":{"default":"approximately equal to or the image of"}},key:"2252"},{category:"Sm",mappings:{"default":{"default":"image of or approximately equal to"}},key:"2253"},{category:"Sm",mappings:{"default":{"default":"colon equals",alternative:"colon equal"}},key:"2254"},{category:"Sm",mappings:{"default":{"default":"equals colon", +alternative:"equal colon"}},key:"2255"},{category:"Sm",mappings:{"default":{"default":"ring in equal to"}},key:"2256"},{category:"Sm",mappings:{"default":{"default":"ring equal to"}},key:"2257"},{category:"Sm",mappings:{"default":{"default":"corresponds to"}},key:"2258"},{category:"Sm",mappings:{"default":{"default":"estimates"}},key:"2259"},{category:"Sm",mappings:{"default":{"default":"equiangular to"}},key:"225A"},{category:"Sm",mappings:{"default":{"default":"star equals"}},key:"225B"},{category:"Sm", +mappings:{"default":{"default":"delta equal to"}},key:"225C"},{category:"Sm",mappings:{"default":{"default":"equal to by definition"}},key:"225D"},{category:"Sm",mappings:{"default":{"default":"measured by"}},key:"225E"},{category:"Sm",mappings:{"default":{"default":"questioned equal to"}},key:"225F"},{category:"Sm",mappings:{"default":{"default":"not equal to"}},key:"2260"},{category:"Sm",mappings:{"default":{"default":"identical to"}},key:"2261"},{category:"Sm",mappings:{"default":{"default":"not identical to"}}, +key:"2262"},{category:"Sm",mappings:{"default":{"default":"strictly equivalent to"}},key:"2263"},{category:"Sm",mappings:{"default":{"default":"less than or equal to",alternative:"less than or equal to"}},key:"2264"},{category:"Sm",mappings:{"default":{"default":"greater than or equal to",alternative:"greater than or equal to"}},key:"2265"},{category:"Sm",mappings:{"default":{"default":"less than over equal to",alternative:"less than over equal to"}},key:"2266"},{category:"Sm",mappings:{"default":{"default":"greater than over equal to", +alternative:"greater than over equal to"}},key:"2267"},{category:"Sm",mappings:{"default":{"default":"less than but not equal to",alternative:"less than but not equal to"}},key:"2268"},{category:"Sm",mappings:{"default":{"default":"greater than but not equal to",alternative:"greater than but not equal to"}},key:"2269"},{category:"Sm",mappings:{"default":{"default":"much less than",alternative:"much less than"}},key:"226A"},{category:"Sm",mappings:{"default":{"default":"much greater than",alternative:"much greater than"}}, +key:"226B"},{category:"Sm",mappings:{"default":{"default":"between"}},key:"226C"},{category:"Sm",mappings:{"default":{"default":"not equivalent to"}},key:"226D"},{category:"Sm",mappings:{"default":{"default":"not less than",alternative:"not less than"}},key:"226E"},{category:"Sm",mappings:{"default":{"default":"not greater than",alternative:"not greater than"}},key:"226F"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equal to",alternative:"neither less than nor equal to"}}, +key:"2270"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equal to",alternative:"neither greater than nor equal to"}},key:"2271"},{category:"Sm",mappings:{"default":{"default":"less than or equivalent to",alternative:"less than or equivalent to"}},key:"2272"},{category:"Sm",mappings:{"default":{"default":"greater than or equivalent to",alternative:"greater than or equivalent to"}},key:"2273"},{category:"Sm",mappings:{"default":{"default":"neither less than nor equivalent to", +alternative:"neither less than nor equivalent to"}},key:"2274"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor equivalent to",alternative:"neither greater than nor equivalent to"}},key:"2275"},{category:"Sm",mappings:{"default":{"default":"less than or greater than",alternative:"less than or greater than"}},key:"2276"},{category:"Sm",mappings:{"default":{"default":"greater than or less than",alternative:"greater than or less than"}},key:"2277"},{category:"Sm",mappings:{"default":{"default":"neither less than nor greater than", +alternative:"neither less than nor greater than"}},key:"2278"},{category:"Sm",mappings:{"default":{"default":"neither greater than nor less than",alternative:"neither greater than nor less than"}},key:"2279"},{category:"Sm",mappings:{"default":{"default":"precedes"}},key:"227A"},{category:"Sm",mappings:{"default":{"default":"succeeds"}},key:"227B"},{category:"Sm",mappings:{"default":{"default":"precedes or equal to"}},key:"227C"},{category:"Sm",mappings:{"default":{"default":"succeeds or equal to"}}, +key:"227D"},{category:"Sm",mappings:{"default":{"default":"precedes or equivalent to"}},key:"227E"},{category:"Sm",mappings:{"default":{"default":"succeeds or equivalent to"}},key:"227F"},{category:"Sm",mappings:{"default":{"default":"does not precede"}},key:"2280"},{category:"Sm",mappings:{"default":{"default":"does not succeed"}},key:"2281"},{category:"Sm",mappings:{"default":{"default":"subset of"}},key:"2282"},{category:"Sm",mappings:{"default":{"default":"superset of"}},key:"2283"},{category:"Sm", +mappings:{"default":{"default":"not a subset of"}},key:"2284"},{category:"Sm",mappings:{"default":{"default":"not a superset of"}},key:"2285"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to"}},key:"2286"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to"}},key:"2287"},{category:"Sm",mappings:{"default":{"default":"neither a subset of nor equal to"}},key:"2288"},{category:"Sm",mappings:{"default":{"default":"neither a superset of nor equal to"}},key:"2289"}, +{category:"Sm",mappings:{"default":{"default":"subset of with not equal to",alternative:"subset of or not equal to","short":"subset of or not equal to"}},key:"228A"},{category:"Sm",mappings:{"default":{"default":"superset of with not equal to",alternative:"superset of or not equal to","short":"superset of or not equal to"}},key:"228B"},{category:"Sm",mappings:{"default":{"default":"multiset"}},key:"228C"},{category:"Sm",mappings:{"default":{"default":"multiset multiplication"}},key:"228D"},{category:"Sm", +mappings:{"default":{"default":"multiset union"}},key:"228E"},{category:"Sm",mappings:{"default":{"default":"square image of"}},key:"228F"},{category:"Sm",mappings:{"default":{"default":"square original of"}},key:"2290"},{category:"Sm",mappings:{"default":{"default":"square image of or equal to"}},key:"2291"},{category:"Sm",mappings:{"default":{"default":"square original of or equal to"}},key:"2292"},{category:"Sm",mappings:{"default":{"default":"square cap"}},key:"2293"},{category:"Sm",mappings:{"default":{"default":"square cup"}}, +key:"2294"},{category:"Sm",mappings:{"default":{"default":"circled plus"}},key:"2295"},{category:"Sm",mappings:{"default":{"default":"circled minus"}},key:"2296"},{category:"Sm",mappings:{"default":{"default":"circled times"}},key:"2297"},{category:"Sm",mappings:{"default":{"default":"circled division slash"}},key:"2298"},{category:"Sm",mappings:{"default":{"default":"circled dot operator"}},key:"2299"},{category:"Sm",mappings:{"default":{"default":"circled ring operator"}},key:"229A"},{category:"Sm", +mappings:{"default":{"default":"circled asterisk operator"}},key:"229B"},{category:"Sm",mappings:{"default":{"default":"circled equals"}},key:"229C"},{category:"Sm",mappings:{"default":{"default":"circled dash"}},key:"229D"},{category:"Sm",mappings:{"default":{"default":"squared plus"}},key:"229E"},{category:"Sm",mappings:{"default":{"default":"squared minus"}},key:"229F"},{category:"Sm",mappings:{"default":{"default":"squared times"}},key:"22A0"},{category:"Sm",mappings:{"default":{"default":"squared dot operator"}}, +key:"22A1"},{category:"Sm",mappings:{"default":{"default":"right tack"}},key:"22A2"},{category:"Sm",mappings:{"default":{"default":"left tack"}},key:"22A3"},{category:"Sm",mappings:{"default":{"default":"down tack"}},key:"22A4"},{category:"Sm",mappings:{"default":{"default":"up tack"}},key:"22A5"},{category:"Sm",mappings:{"default":{"default":"assertion"}},key:"22A6"},{category:"Sm",mappings:{"default":{"default":"models"}},key:"22A7"},{category:"Sm",mappings:{"default":{"default":"true"}},key:"22A8"}, +{category:"Sm",mappings:{"default":{"default":"forces"}},key:"22A9"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar right turnstile"}},key:"22AA"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double right turnstile"}},key:"22AB"},{category:"Sm",mappings:{"default":{"default":"does not prove"}},key:"22AC"},{category:"Sm",mappings:{"default":{"default":"not true"}},key:"22AD"},{category:"Sm",mappings:{"default":{"default":"does not force"}},key:"22AE"},{category:"Sm", +mappings:{"default":{"default":"negated double vertical bar double right turnstile"}},key:"22AF"},{category:"Sm",mappings:{"default":{"default":"precedes under relation"}},key:"22B0"},{category:"Sm",mappings:{"default":{"default":"succeeds under relation"}},key:"22B1"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of"}},key:"22B2"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup"}},key:"22B3"},{category:"Sm",mappings:{"default":{"default":"normal subgroup of or equal to"}}, +key:"22B4"},{category:"Sm",mappings:{"default":{"default":"contains as normal subgroup or equal to"}},key:"22B5"},{category:"Sm",mappings:{"default":{"default":"original of"}},key:"22B6"},{category:"Sm",mappings:{"default":{"default":"image of"}},key:"22B7"},{category:"Sm",mappings:{"default":{"default":"multimap"}},key:"22B8"},{category:"Sm",mappings:{"default":{"default":"hermitian conjugate matrix"}},key:"22B9"},{category:"Sm",mappings:{"default":{"default":"intercalate"}},key:"22BA"},{category:"Sm", +mappings:{"default":{"default":"xor"}},key:"22BB"},{category:"Sm",mappings:{"default":{"default":"nand"}},key:"22BC"},{category:"Sm",mappings:{"default":{"default":"nor"}},key:"22BD"},{category:"Sm",mappings:{"default":{"default":"right triangle"}},key:"22BF"},{category:"Sm",mappings:{"default":{"default":"n ary logical and"}},key:"22C0"},{category:"Sm",mappings:{"default":{"default":"n ary logical or"}},key:"22C1"},{category:"Sm",mappings:{"default":{"default":"n ary intersection"}},key:"22C2"}, +{category:"Sm",mappings:{"default":{"default":"n ary union"}},key:"22C3"},{category:"Sm",mappings:{"default":{"default":"diamond operator"}},key:"22C4"},{category:"Sm",mappings:{"default":{"default":"dot operator"}},key:"22C5"},{category:"Sm",mappings:{"default":{"default":"star operator"}},key:"22C6"},{category:"Sm",mappings:{"default":{"default":"division times"}},key:"22C7"},{category:"Sm",mappings:{"default":{"default":"bowtie"}},key:"22C8"},{category:"Sm",mappings:{"default":{"default":"left normal factor semidirect product"}}, +key:"22C9"},{category:"Sm",mappings:{"default":{"default":"right normal factor semidirect product"}},key:"22CA"},{category:"Sm",mappings:{"default":{"default":"left semidirect product"}},key:"22CB"},{category:"Sm",mappings:{"default":{"default":"right semidirect product"}},key:"22CC"},{category:"Sm",mappings:{"default":{"default":"reversed tilde equals"}},key:"22CD"},{category:"Sm",mappings:{"default":{"default":"curly logical or"}},key:"22CE"},{category:"Sm",mappings:{"default":{"default":"curly logical and"}}, +key:"22CF"},{category:"Sm",mappings:{"default":{"default":"double subset"}},key:"22D0"},{category:"Sm",mappings:{"default":{"default":"double superset"}},key:"22D1"},{category:"Sm",mappings:{"default":{"default":"double intersection"}},key:"22D2"},{category:"Sm",mappings:{"default":{"default":"double union"}},key:"22D3"},{category:"Sm",mappings:{"default":{"default":"pitchfork"}},key:"22D4"},{category:"Sm",mappings:{"default":{"default":"equal and parallel to"}},key:"22D5"},{category:"Sm",mappings:{"default":{"default":"less than with dot", +alternative:"less than with dot","short":"less than dot"}},key:"22D6"},{category:"Sm",mappings:{"default":{"default":"greater than with dot",alternative:"greater than with dot","short":"greater than dot"}},key:"22D7"},{category:"Sm",mappings:{"default":{"default":"very much less than",alternative:"very much less than"}},key:"22D8"},{category:"Sm",mappings:{"default":{"default":"very much greater than",alternative:"very much greater than"}},key:"22D9"},{category:"Sm",mappings:{"default":{"default":"less than equal to or greater than", +alternative:"less than equal to or greater than"}},key:"22DA"},{category:"Sm",mappings:{"default":{"default":"greater than equal to or less than",alternative:"greater than equal to or less than"}},key:"22DB"},{category:"Sm",mappings:{"default":{"default":"equal to or less than",alternative:"equal to or less than"}},key:"22DC"},{category:"Sm",mappings:{"default":{"default":"equal to or greater than",alternative:"equal to or greater than"}},key:"22DD"},{category:"Sm",mappings:{"default":{"default":"equal to or precedes"}}, +key:"22DE"},{category:"Sm",mappings:{"default":{"default":"equal to or succeeds"}},key:"22DF"},{category:"Sm",mappings:{"default":{"default":"does not precede or equal"}},key:"22E0"},{category:"Sm",mappings:{"default":{"default":"does not succeed or equal"}},key:"22E1"},{category:"Sm",mappings:{"default":{"default":"not square image of or equal to"}},key:"22E2"},{category:"Sm",mappings:{"default":{"default":"not square original of or equal to"}},key:"22E3"},{category:"Sm",mappings:{"default":{"default":"square image of or not equal to"}}, +key:"22E4"},{category:"Sm",mappings:{"default":{"default":"square original of or not equal to"}},key:"22E5"},{category:"Sm",mappings:{"default":{"default":"less than but not equivalent to",alternative:"less than but not equivalent to"}},key:"22E6"},{category:"Sm",mappings:{"default":{"default":"greater than but not equivalent to",alternative:"greater than but not equivalent to"}},key:"22E7"},{category:"Sm",mappings:{"default":{"default":"precedes but not equivalent to"}},key:"22E8"},{category:"Sm", +mappings:{"default":{"default":"succeeds but not equivalent to"}},key:"22E9"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of"}},key:"22EA"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup"}},key:"22EB"},{category:"Sm",mappings:{"default":{"default":"not normal subgroup of or equal to"}},key:"22EC"},{category:"Sm",mappings:{"default":{"default":"does not contain as normal subgroup or equal"}},key:"22ED"},{category:"Sm",mappings:{"default":{"default":"vertical ellipsis", +"short":"dot dot dot"}},key:"22EE"},{category:"Sm",mappings:{"default":{"default":"midline horizontal ellipsis","short":"dot dot dot"}},key:"22EF"},{category:"Sm",mappings:{"default":{"default":"up right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F0"},{category:"Sm",mappings:{"default":{"default":"down right diagonal ellipsis","short":"diagonal dot dot dot"}},key:"22F1"},{category:"Sm",mappings:{"default":{"default":"element of with long horizontal stroke"}},key:"22F2"},{category:"Sm", +mappings:{"default":{"default":"element of with vertical bar at end of horizontal stroke"}},key:"22F3"},{category:"Sm",mappings:{"default":{"default":"small element of with vertical bar at end of horizontal stroke"}},key:"22F4"},{category:"Sm",mappings:{"default":{"default":"element of with dot above"}},key:"22F5"},{category:"Sm",mappings:{"default":{"default":"element of with overbar"}},key:"22F6"},{category:"Sm",mappings:{"default":{"default":"small element of with overbar"}},key:"22F7"},{category:"Sm", +mappings:{"default":{"default":"element of with underbar"}},key:"22F8"},{category:"Sm",mappings:{"default":{"default":"element of with two horizontal strokes"}},key:"22F9"},{category:"Sm",mappings:{"default":{"default":"contains with long horizontal stroke"}},key:"22FA"},{category:"Sm",mappings:{"default":{"default":"contains with vertical bar at end of horizontal stroke"}},key:"22FB"},{category:"Sm",mappings:{"default":{"default":"small contains with vertical bar at end of horizontal stroke"}},key:"22FC"}, +{category:"Sm",mappings:{"default":{"default":"contains with overbar"}},key:"22FD"},{category:"Sm",mappings:{"default":{"default":"small contains with overbar"}},key:"22FE"},{category:"Sm",mappings:{"default":{"default":"z notation bag membership"}},key:"22FF"},{category:"So",mappings:{"default":{"default":"diameter sign","short":"diameter"}},key:"2300"},{category:"So",mappings:{"default":{"default":"house"}},key:"2302"},{category:"So",mappings:{"default":{"default":"projective"}},key:"2305"},{category:"So", +mappings:{"default":{"default":"perspective"}},key:"2306"},{category:"So",mappings:{"default":{"default":"wavy line"}},key:"2307"},{category:"So",mappings:{"default":{"default":"reversed not sign","short":"reversed not"}},key:"2310"},{category:"So",mappings:{"default":{"default":"square lozenge"}},key:"2311"},{category:"So",mappings:{"default":{"default":"arc"}},key:"2312"},{category:"So",mappings:{"default":{"default":"segment"}},key:"2313"},{category:"So",mappings:{"default":{"default":"sector"}}, +key:"2314"},{category:"So",mappings:{"default":{"default":"heavy plus sign",alternative:"heavy plus","short":"bold plus"}},key:"2795"},{category:"So",mappings:{"default":{"default":"heavy minus sign",alternative:"heavy minus","short":"bold minus"}},key:"2796"},{category:"So",mappings:{"default":{"default":"heavy division sign",alternative:"heavy division","short":"bold division"}},key:"2797"},{category:"So",mappings:{"default":{"default":"curly loop"}},key:"27B0"},{category:"So",mappings:{"default":{"default":"double curly loop"}}, +key:"27BF"},{category:"Sm",mappings:{"default":{"default":"white triangle containing small white triangle"}},key:"27C1"},{category:"Sm",mappings:{"default":{"default":"perpendicular"}},key:"27C2"},{category:"Sm",mappings:{"default":{"default":"open subset"}},key:"27C3"},{category:"Sm",mappings:{"default":{"default":"open superset"}},key:"27C4"},{category:"Sm",mappings:{"default":{"default":"or with dot inside"}},key:"27C7"},{category:"Sm",mappings:{"default":{"default":"reverse solidus preceding subset"}}, +key:"27C8"},{category:"Sm",mappings:{"default":{"default":"superset preceding solidus"}},key:"27C9"},{category:"Sm",mappings:{"default":{"default":"vertical bar with horizontal stroke"}},key:"27CA"},{category:"Sm",mappings:{"default":{"default":"mathematical rising diagonal"}},key:"27CB"},{category:"Sm",mappings:{"default":{"default":"long division"}},key:"27CC"},{category:"Sm",mappings:{"default":{"default":"mathematical falling diagonal"}},key:"27CD"},{category:"Sm",mappings:{"default":{"default":"squared logical and"}}, +key:"27CE"},{category:"Sm",mappings:{"default":{"default":"squared logical or"}},key:"27CF"},{category:"Sm",mappings:{"default":{"default":"white diamond with centered dot"}},key:"27D0"},{category:"Sm",mappings:{"default":{"default":"and with dot"}},key:"27D1"},{category:"Sm",mappings:{"default":{"default":"element of opening upwards"}},key:"27D2"},{category:"Sm",mappings:{"default":{"default":"lower right corner with dot"}},key:"27D3"},{category:"Sm",mappings:{"default":{"default":"upper left corner with dot"}}, +key:"27D4"},{category:"Sm",mappings:{"default":{"default":"left outer join"}},key:"27D5"},{category:"Sm",mappings:{"default":{"default":"right outer join"}},key:"27D6"},{category:"Sm",mappings:{"default":{"default":"full outer join"}},key:"27D7"},{category:"Sm",mappings:{"default":{"default":"large up tack"}},key:"27D8"},{category:"Sm",mappings:{"default":{"default":"large down tack"}},key:"27D9"},{category:"Sm",mappings:{"default":{"default":"left and right double turnstile"}},key:"27DA"},{category:"Sm", +mappings:{"default":{"default":"left and right tack"}},key:"27DB"},{category:"Sm",mappings:{"default":{"default":"left multimap"}},key:"27DC"},{category:"Sm",mappings:{"default":{"default":"long right tack"}},key:"27DD"},{category:"Sm",mappings:{"default":{"default":"long left tack"}},key:"27DE"},{category:"Sm",mappings:{"default":{"default":"up tack with circle above"}},key:"27DF"},{category:"Sm",mappings:{"default":{"default":"lozenge divided by horizontal rule"}},key:"27E0"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond"}}, +key:"27E1"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with leftwards tick"}},key:"27E2"},{category:"Sm",mappings:{"default":{"default":"white concave sided diamond with rightwards tick"}},key:"27E3"},{category:"Sm",mappings:{"default":{"default":"white square with leftwards tick"}},key:"27E4"},{category:"Sm",mappings:{"default":{"default":"white square with rightwards tick"}},key:"27E5"},{category:"Sm",mappings:{"default":{"default":"rising diagonal crossing falling diagonal"}}, +key:"292B"},{category:"Sm",mappings:{"default":{"default":"falling diagonal crossing rising diagonal"}},key:"292C"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar delimiter"}},key:"2980"},{category:"Sm",mappings:{"default":{"default":"z notation spot"}},key:"2981"},{category:"Sm",mappings:{"default":{"default":"z notation type colon"}},key:"2982"},{category:"Sm",mappings:{"default":{"default":"dotted fence"}},key:"2999"},{category:"Sm",mappings:{"default":{"default":"vertical zigzag line"}}, +key:"299A"},{category:"Sm",mappings:{"default":{"default":"reversed empty set"}},key:"29B0"},{category:"Sm",mappings:{"default":{"default":"empty set with overbar"}},key:"29B1"},{category:"Sm",mappings:{"default":{"default":"empty set with small circle above"}},key:"29B2"},{category:"Sm",mappings:{"default":{"default":"circle with horizontal bar"}},key:"29B5"},{category:"Sm",mappings:{"default":{"default":"circled vertical bar"}},key:"29B6"},{category:"Sm",mappings:{"default":{"default":"circled parallel"}}, +key:"29B7"},{category:"Sm",mappings:{"default":{"default":"circled reverse solidus"}},key:"29B8"},{category:"Sm",mappings:{"default":{"default":"circled perpendicular"}},key:"29B9"},{category:"Sm",mappings:{"default":{"default":"circle divided by horizontal bar and top half divided by vertical bar"}},key:"29BA"},{category:"Sm",mappings:{"default":{"default":"circle with superimposed x"}},key:"29BB"},{category:"Sm",mappings:{"default":{"default":"circled anticlockwise rotated division sign","short":"circled anticlockwise rotated division"}}, +key:"29BC"},{category:"Sm",mappings:{"default":{"default":"circled white bullet"}},key:"29BE"},{category:"Sm",mappings:{"default":{"default":"circled bullet"}},key:"29BF"},{category:"Sm",mappings:{"default":{"default":"circled less than"}},key:"29C0"},{category:"Sm",mappings:{"default":{"default":"circled greater than"}},key:"29C1"},{category:"Sm",mappings:{"default":{"default":"circle with small circle to the right"}},key:"29C2"},{category:"Sm",mappings:{"default":{"default":"circle with two horizontal strokes to the right"}}, +key:"29C3"},{category:"Sm",mappings:{"default":{"default":"squared rising diagonal slash"}},key:"29C4"},{category:"Sm",mappings:{"default":{"default":"squared falling diagonal slash"}},key:"29C5"},{category:"Sm",mappings:{"default":{"default":"squared asterisk"}},key:"29C6"},{category:"Sm",mappings:{"default":{"default":"squared small circle"}},key:"29C7"},{category:"Sm",mappings:{"default":{"default":"squared square"}},key:"29C8"},{category:"Sm",mappings:{"default":{"default":"two joined squares"}}, +key:"29C9"},{category:"Sm",mappings:{"default":{"default":"triangle with dot above"}},key:"29CA"},{category:"Sm",mappings:{"default":{"default":"triangle with underbar"}},key:"29CB"},{category:"Sm",mappings:{"default":{"default":"s in triangle"}},key:"29CC"},{category:"Sm",mappings:{"default":{"default":"triangle with serifs at bottom"}},key:"29CD"},{category:"Sm",mappings:{"default":{"default":"right triangle above left triangle"}},key:"29CE"},{category:"Sm",mappings:{"default":{"default":"left triangle beside vertical bar"}}, +key:"29CF"},{category:"Sm",mappings:{"default":{"default":"vertical bar beside right triangle"}},key:"29D0"},{category:"Sm",mappings:{"default":{"default":"bowtie with left half black"}},key:"29D1"},{category:"Sm",mappings:{"default":{"default":"bowtie with right half black"}},key:"29D2"},{category:"Sm",mappings:{"default":{"default":"black bowtie"}},key:"29D3"},{category:"Sm",mappings:{"default":{"default":"times with left half black"}},key:"29D4"},{category:"Sm",mappings:{"default":{"default":"times with right half black"}}, +key:"29D5"},{category:"Sm",mappings:{"default":{"default":"white hourglass"}},key:"29D6"},{category:"Sm",mappings:{"default":{"default":"black hourglass"}},key:"29D7"},{category:"Sm",mappings:{"default":{"default":"incomplete infinity"}},key:"29DC"},{category:"Sm",mappings:{"default":{"default":"tie over infinity"}},key:"29DD"},{category:"Sm",mappings:{"default":{"default":"infinity negated with vertical bar"}},key:"29DE"},{category:"Sm",mappings:{"default":{"default":"double ended multimap"}},key:"29DF"}, +{category:"Sm",mappings:{"default":{"default":"square with contoured outline"}},key:"29E0"},{category:"Sm",mappings:{"default":{"default":"increases as"}},key:"29E1"},{category:"Sm",mappings:{"default":{"default":"shuffle product"}},key:"29E2"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel"}},key:"29E3"},{category:"Sm",mappings:{"default":{"default":"equals sign and slanted parallel with tilde above"}},key:"29E4"},{category:"Sm",mappings:{"default":{"default":"identical to and slanted parallel"}}, +key:"29E5"},{category:"Sm",mappings:{"default":{"default":"gleich stark"}},key:"29E6"},{category:"Sm",mappings:{"default":{"default":"thermodynamic"}},key:"29E7"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with left half black"}},key:"29E8"},{category:"Sm",mappings:{"default":{"default":"down pointing triangle with right half black"}},key:"29E9"},{category:"Sm",mappings:{"default":{"default":"black lozenge"}},key:"29EB"},{category:"Sm",mappings:{"default":{"default":"error barred white square"}}, +key:"29EE"},{category:"Sm",mappings:{"default":{"default":"error barred black square"}},key:"29EF"},{category:"Sm",mappings:{"default":{"default":"error barred white diamond"}},key:"29F0"},{category:"Sm",mappings:{"default":{"default":"error barred black diamond"}},key:"29F1"},{category:"Sm",mappings:{"default":{"default":"error barred white circle"}},key:"29F2"},{category:"Sm",mappings:{"default":{"default":"error barred black circle"}},key:"29F3"},{category:"Sm",mappings:{"default":{"default":"rule delayed"}}, +key:"29F4"},{category:"Sm",mappings:{"default":{"default":"reverse solidus operator"}},key:"29F5"},{category:"Sm",mappings:{"default":{"default":"solidus with overbar"}},key:"29F6"},{category:"Sm",mappings:{"default":{"default":"reverse solidus with horizontal stroke"}},key:"29F7"},{category:"Sm",mappings:{"default":{"default":"big solidus"}},key:"29F8"},{category:"Sm",mappings:{"default":{"default":"big reverse solidus"}},key:"29F9"},{category:"Sm",mappings:{"default":{"default":"double plus"}}, +key:"29FA"},{category:"Sm",mappings:{"default":{"default":"triple plus"}},key:"29FB"},{category:"Sm",mappings:{"default":{"default":"tiny"}},key:"29FE"},{category:"Sm",mappings:{"default":{"default":"miny"}},key:"29FF"},{category:"Sm",mappings:{"default":{"default":"n ary circled dot operator"}},key:"2A00"},{category:"Sm",mappings:{"default":{"default":"n ary circled plus operator"}},key:"2A01"},{category:"Sm",mappings:{"default":{"default":"n ary circled times operator"}},key:"2A02"},{category:"Sm", +mappings:{"default":{"default":"n ary union operator with dot"}},key:"2A03"},{category:"Sm",mappings:{"default":{"default":"n ary union operator with plus"}},key:"2A04"},{category:"Sm",mappings:{"default":{"default":"n ary square intersection operator"}},key:"2A05"},{category:"Sm",mappings:{"default":{"default":"n ary square union operator"}},key:"2A06"},{category:"Sm",mappings:{"default":{"default":"two logical and operator"}},key:"2A07"},{category:"Sm",mappings:{"default":{"default":"two logical or operator"}}, +key:"2A08"},{category:"Sm",mappings:{"default":{"default":"n ary times operator"}},key:"2A09"},{category:"Sm",mappings:{"default":{"default":"modulo two sum"}},key:"2A0A"},{category:"Sm",mappings:{"default":{"default":"summation with integral"}},key:"2A0B"},{category:"Sm",mappings:{"default":{"default":"quadruple integral operator"}},key:"2A0C"},{category:"Sm",mappings:{"default":{"default":"finite part integral"}},key:"2A0D"},{category:"Sm",mappings:{"default":{"default":"integral with double stroke"}}, +key:"2A0E"},{category:"Sm",mappings:{"default":{"default":"integral average with slash"}},key:"2A0F"},{category:"Sm",mappings:{"default":{"default":"circulation function"}},key:"2A10"},{category:"Sm",mappings:{"default":{"default":"anticlockwise integration"}},key:"2A11"},{category:"Sm",mappings:{"default":{"default":"line integration with rectangular path around pole"}},key:"2A12"},{category:"Sm",mappings:{"default":{"default":"line integration with semicircular path around pole"}},key:"2A13"},{category:"Sm", +mappings:{"default":{"default":"line integration not including the pole"}},key:"2A14"},{category:"Sm",mappings:{"default":{"default":"integral around a point operator"}},key:"2A15"},{category:"Sm",mappings:{"default":{"default":"quaternion integral operator"}},key:"2A16"},{category:"Sm",mappings:{"default":{"default":"integral with times sign","short":"integral with times"}},key:"2A18"},{category:"Sm",mappings:{"default":{"default":"integral with intersection"}},key:"2A19"},{category:"Sm",mappings:{"default":{"default":"integral with union"}}, +key:"2A1A"},{category:"Sm",mappings:{"default":{"default":"integral with overbar"}},key:"2A1B"},{category:"Sm",mappings:{"default":{"default":"integral with underbar"}},key:"2A1C"},{category:"Sm",mappings:{"default":{"default":"join"}},key:"2A1D"},{category:"Sm",mappings:{"default":{"default":"large left triangle operator"}},key:"2A1E"},{category:"Sm",mappings:{"default":{"default":"z notation schema composition"}},key:"2A1F"},{category:"Sm",mappings:{"default":{"default":"z notation schema piping"}}, +key:"2A20"},{category:"Sm",mappings:{"default":{"default":"z notation schema projection"}},key:"2A21"},{category:"Sm",mappings:{"default":{"default":"plus sign with small circle above","short":"plus with circle above"}},key:"2A22"},{category:"Sm",mappings:{"default":{"default":"plus sign with circumflex accent above","short":"plus hat"}},key:"2A23"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde above","short":"plus tilde"}},key:"2A24"},{category:"Sm",mappings:{"default":{"default":"plus sign with dot below", +"short":"plus underdot"}},key:"2A25"},{category:"Sm",mappings:{"default":{"default":"plus sign with tilde below"}},key:"2A26"},{category:"Sm",mappings:{"default":{"default":"plus sign with subscript two"}},key:"2A27"},{category:"Sm",mappings:{"default":{"default":"plus sign with black triangle"}},key:"2A28"},{category:"Sm",mappings:{"default":{"default":"minus sign with comma above"}},key:"2A29"},{category:"Sm",mappings:{"default":{"default":"minus sign with dot below"}},key:"2A2A"},{category:"Sm", +mappings:{"default":{"default":"minus sign with falling dots"}},key:"2A2B"},{category:"Sm",mappings:{"default":{"default":"minus sign with rising dots"}},key:"2A2C"},{category:"Sm",mappings:{"default":{"default":"plus sign in left half circle"}},key:"2A2D"},{category:"Sm",mappings:{"default":{"default":"plus sign in right half circle"}},key:"2A2E"},{category:"Sm",mappings:{"default":{"default":"vector or cross product"}},key:"2A2F"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with dot above"}}, +key:"2A30"},{category:"Sm",mappings:{"default":{"default":"multiplication sign with underbar"}},key:"2A31"},{category:"Sm",mappings:{"default":{"default":"semidirect product with bottom closed"}},key:"2A32"},{category:"Sm",mappings:{"default":{"default":"smash product"}},key:"2A33"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in left half circle"}},key:"2A34"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in right half circle"}},key:"2A35"},{category:"Sm", +mappings:{"default":{"default":"circled multiplication sign with circumflex accent"}},key:"2A36"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in double circle"}},key:"2A37"},{category:"Sm",mappings:{"default":{"default":"circled division sign","short":"circled division"}},key:"2A38"},{category:"Sm",mappings:{"default":{"default":"plus sign in triangle"}},key:"2A39"},{category:"Sm",mappings:{"default":{"default":"minus sign in triangle"}},key:"2A3A"},{category:"Sm",mappings:{"default":{"default":"multiplication sign in triangle"}}, +key:"2A3B"},{category:"Sm",mappings:{"default":{"default":"interior product"}},key:"2A3C"},{category:"Sm",mappings:{"default":{"default":"righthand interior product"}},key:"2A3D"},{category:"Sm",mappings:{"default":{"default":"z notation relational composition"}},key:"2A3E"},{category:"Sm",mappings:{"default":{"default":"amalgamation or coproduct"}},key:"2A3F"},{category:"Sm",mappings:{"default":{"default":"intersection with dot"}},key:"2A40"},{category:"Sm",mappings:{"default":{"default":"union with minus sign", +"short":"union with minus"}},key:"2A41"},{category:"Sm",mappings:{"default":{"default":"union with overbar"}},key:"2A42"},{category:"Sm",mappings:{"default":{"default":"intersection with overbar"}},key:"2A43"},{category:"Sm",mappings:{"default":{"default":"intersection with logical and"}},key:"2A44"},{category:"Sm",mappings:{"default":{"default":"union with logical or"}},key:"2A45"},{category:"Sm",mappings:{"default":{"default":"union above intersection"}},key:"2A46"},{category:"Sm",mappings:{"default":{"default":"intersection above union"}}, +key:"2A47"},{category:"Sm",mappings:{"default":{"default":"union above bar above intersection"}},key:"2A48"},{category:"Sm",mappings:{"default":{"default":"intersection above bar above union"}},key:"2A49"},{category:"Sm",mappings:{"default":{"default":"union beside and joined with union"}},key:"2A4A"},{category:"Sm",mappings:{"default":{"default":"intersection beside and joined with intersection"}},key:"2A4B"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs"}},key:"2A4C"}, +{category:"Sm",mappings:{"default":{"default":"closed intersection with serifs"}},key:"2A4D"},{category:"Sm",mappings:{"default":{"default":"double square intersection"}},key:"2A4E"},{category:"Sm",mappings:{"default":{"default":"double square union"}},key:"2A4F"},{category:"Sm",mappings:{"default":{"default":"closed union with serifs and smash product"}},key:"2A50"},{category:"Sm",mappings:{"default":{"default":"logical and with dot above"}},key:"2A51"},{category:"Sm",mappings:{"default":{"default":"logical or with dot above"}}, +key:"2A52"},{category:"Sm",mappings:{"default":{"default":"double logical and"}},key:"2A53"},{category:"Sm",mappings:{"default":{"default":"double logical or"}},key:"2A54"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical and"}},key:"2A55"},{category:"Sm",mappings:{"default":{"default":"two intersecting logical or"}},key:"2A56"},{category:"Sm",mappings:{"default":{"default":"sloping large or"}},key:"2A57"},{category:"Sm",mappings:{"default":{"default":"sloping large and"}}, +key:"2A58"},{category:"Sm",mappings:{"default":{"default":"logical or overlapping logical and"}},key:"2A59"},{category:"Sm",mappings:{"default":{"default":"logical and with middle stem"}},key:"2A5A"},{category:"Sm",mappings:{"default":{"default":"logical or with middle stem"}},key:"2A5B"},{category:"Sm",mappings:{"default":{"default":"logical and with horizontal dash"}},key:"2A5C"},{category:"Sm",mappings:{"default":{"default":"logical or with horizontal dash"}},key:"2A5D"},{category:"Sm",mappings:{"default":{"default":"logical and with double overbar"}}, +key:"2A5E"},{category:"Sm",mappings:{"default":{"default":"logical and with underbar"}},key:"2A5F"},{category:"Sm",mappings:{"default":{"default":"logical and with double underbar"}},key:"2A60"},{category:"Sm",mappings:{"default":{"default":"small vee with underbar"}},key:"2A61"},{category:"Sm",mappings:{"default":{"default":"logical or with double overbar"}},key:"2A62"},{category:"Sm",mappings:{"default":{"default":"logical or with double underbar"}},key:"2A63"},{category:"Sm",mappings:{"default":{"default":"z notation domain antirestriction"}}, +key:"2A64"},{category:"Sm",mappings:{"default":{"default":"z notation range antirestriction"}},key:"2A65"},{category:"Sm",mappings:{"default":{"default":"equals sign with dot below"}},key:"2A66"},{category:"Sm",mappings:{"default":{"default":"identical with dot above"}},key:"2A67"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with double vertical stroke"}},key:"2A68"},{category:"Sm",mappings:{"default":{"default":"triple horizontal bar with triple vertical stroke"}},key:"2A69"}, +{category:"Sm",mappings:{"default":{"default":"tilde operator with dot above"}},key:"2A6A"},{category:"Sm",mappings:{"default":{"default":"tilde operator with rising dots"}},key:"2A6B"},{category:"Sm",mappings:{"default":{"default":"similar minus similar"}},key:"2A6C"},{category:"Sm",mappings:{"default":{"default":"congruent with dot above"}},key:"2A6D"},{category:"Sm",mappings:{"default":{"default":"equals with asterisk"}},key:"2A6E"},{category:"Sm",mappings:{"default":{"default":"almost equal to with circumflex accent", +"short":"almost equal hat"}},key:"2A6F"},{category:"Sm",mappings:{"default":{"default":"approximately equal or equal to"}},key:"2A70"},{category:"Sm",mappings:{"default":{"default":"equals sign above plus sign","short":"equals above plus"}},key:"2A71"},{category:"Sm",mappings:{"default":{"default":"plus sign above equals sign","short":"plus above equals"}},key:"2A72"},{category:"Sm",mappings:{"default":{"default":"equals sign above tilde operator","short":"equals above tilde operator"}},key:"2A73"}, +{category:"Sm",mappings:{"default":{"default":"double colon equal"}},key:"2A74"},{category:"Sm",mappings:{"default":{"default":"two consecutive equals signs","short":"two consecutive equals"}},key:"2A75"},{category:"Sm",mappings:{"default":{"default":"three consecutive equals signs","short":"three consecutive equals"}},key:"2A76"},{category:"Sm",mappings:{"default":{"default":"equals sign with two dots above and two dots below"}},key:"2A77"},{category:"Sm",mappings:{"default":{"default":"equivalent with four dots above"}}, +key:"2A78"},{category:"Sm",mappings:{"default":{"default":"less than with circle inside"}},key:"2A79"},{category:"Sm",mappings:{"default":{"default":"greater than with circle inside"}},key:"2A7A"},{category:"Sm",mappings:{"default":{"default":"less than with question mark above"}},key:"2A7B"},{category:"Sm",mappings:{"default":{"default":"greater than with question mark above"}},key:"2A7C"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to"}},key:"2A7D"},{category:"Sm", +mappings:{"default":{"default":"greater than or slanted equal to"}},key:"2A7E"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot inside"}},key:"2A7F"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot inside"}},key:"2A80"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above"}},key:"2A81"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above"}}, +key:"2A82"},{category:"Sm",mappings:{"default":{"default":"less than or slanted equal to with dot above right"}},key:"2A83"},{category:"Sm",mappings:{"default":{"default":"greater than or slanted equal to with dot above left"}},key:"2A84"},{category:"Sm",mappings:{"default":{"default":"less than or approximate"}},key:"2A85"},{category:"Sm",mappings:{"default":{"default":"greater than or approximate"}},key:"2A86"},{category:"Sm",mappings:{"default":{"default":"less than and single line not equal to"}}, +key:"2A87"},{category:"Sm",mappings:{"default":{"default":"greater than and single line not equal to"}},key:"2A88"},{category:"Sm",mappings:{"default":{"default":"less than and not approximate"}},key:"2A89"},{category:"Sm",mappings:{"default":{"default":"greater than and not approximate"}},key:"2A8A"},{category:"Sm",mappings:{"default":{"default":"less than above double line equal above greater than"}},key:"2A8B"},{category:"Sm",mappings:{"default":{"default":"greater than above double line equal above less than"}}, +key:"2A8C"},{category:"Sm",mappings:{"default":{"default":"less than above similar or equal"}},key:"2A8D"},{category:"Sm",mappings:{"default":{"default":"greater than above similar or equal"}},key:"2A8E"},{category:"Sm",mappings:{"default":{"default":"less than above similar above greater than"}},key:"2A8F"},{category:"Sm",mappings:{"default":{"default":"greater than above similar above less than"}},key:"2A90"},{category:"Sm",mappings:{"default":{"default":"less than above greater than above double line equal"}}, +key:"2A91"},{category:"Sm",mappings:{"default":{"default":"greater than above less than above double line equal"}},key:"2A92"},{category:"Sm",mappings:{"default":{"default":"less than above slanted equal above greater than above slanted equal"}},key:"2A93"},{category:"Sm",mappings:{"default":{"default":"greater than above slanted equal above less than above slanted equal"}},key:"2A94"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than"}},key:"2A95"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than"}}, +key:"2A96"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or less than with dot inside"}},key:"2A97"},{category:"Sm",mappings:{"default":{"default":"slanted equal to or greater than with dot inside"}},key:"2A98"},{category:"Sm",mappings:{"default":{"default":"double line equal to or less than"}},key:"2A99"},{category:"Sm",mappings:{"default":{"default":"double line equal to or greater than"}},key:"2A9A"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or less than"}}, +key:"2A9B"},{category:"Sm",mappings:{"default":{"default":"double line slanted equal to or greater than"}},key:"2A9C"},{category:"Sm",mappings:{"default":{"default":"similar or less than"}},key:"2A9D"},{category:"Sm",mappings:{"default":{"default":"similar or greater than"}},key:"2A9E"},{category:"Sm",mappings:{"default":{"default":"similar above less than above equals sign"}},key:"2A9F"},{category:"Sm",mappings:{"default":{"default":"similar above greater than above equals sign"}},key:"2AA0"},{category:"Sm", +mappings:{"default":{"default":"double nested less than"}},key:"2AA1"},{category:"Sm",mappings:{"default":{"default":"double nested greater than"}},key:"2AA2"},{category:"Sm",mappings:{"default":{"default":"double nested less than with underbar"}},key:"2AA3"},{category:"Sm",mappings:{"default":{"default":"greater than overlapping less than"}},key:"2AA4"},{category:"Sm",mappings:{"default":{"default":"greater than beside less than"}},key:"2AA5"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve"}}, +key:"2AA6"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve"}},key:"2AA7"},{category:"Sm",mappings:{"default":{"default":"less than closed by curve above slanted equal"}},key:"2AA8"},{category:"Sm",mappings:{"default":{"default":"greater than closed by curve above slanted equal"}},key:"2AA9"},{category:"Sm",mappings:{"default":{"default":"smaller than"}},key:"2AAA"},{category:"Sm",mappings:{"default":{"default":"larger than"}},key:"2AAB"},{category:"Sm",mappings:{"default":{"default":"smaller than or equal to"}}, +key:"2AAC"},{category:"Sm",mappings:{"default":{"default":"larger than or equal to"}},key:"2AAD"},{category:"Sm",mappings:{"default":{"default":"equals sign with bumpy above"}},key:"2AAE"},{category:"Sm",mappings:{"default":{"default":"precedes above single line equals sign"}},key:"2AAF"},{category:"Sm",mappings:{"default":{"default":"succeeds above single line equals sign"}},key:"2AB0"},{category:"Sm",mappings:{"default":{"default":"precedes above single line not equal to"}},key:"2AB1"},{category:"Sm", +mappings:{"default":{"default":"succeeds above single line not equal to"}},key:"2AB2"},{category:"Sm",mappings:{"default":{"default":"precedes above equals sign"}},key:"2AB3"},{category:"Sm",mappings:{"default":{"default":"succeeds above equals sign"}},key:"2AB4"},{category:"Sm",mappings:{"default":{"default":"precedes above not equal to"}},key:"2AB5"},{category:"Sm",mappings:{"default":{"default":"succeeds above not equal to"}},key:"2AB6"},{category:"Sm",mappings:{"default":{"default":"precedes above almost equal to"}}, +key:"2AB7"},{category:"Sm",mappings:{"default":{"default":"succeeds above almost equal to"}},key:"2AB8"},{category:"Sm",mappings:{"default":{"default":"precedes above not almost equal to"}},key:"2AB9"},{category:"Sm",mappings:{"default":{"default":"succeeds above not almost equal to"}},key:"2ABA"},{category:"Sm",mappings:{"default":{"default":"double precedes"}},key:"2ABB"},{category:"Sm",mappings:{"default":{"default":"double succeeds"}},key:"2ABC"},{category:"Sm",mappings:{"default":{"default":"subset with dot"}}, +key:"2ABD"},{category:"Sm",mappings:{"default":{"default":"superset with dot"}},key:"2ABE"},{category:"Sm",mappings:{"default":{"default":"subset with plus sign below"}},key:"2ABF"},{category:"Sm",mappings:{"default":{"default":"superset with plus sign below"}},key:"2AC0"},{category:"Sm",mappings:{"default":{"default":"subset with multiplication sign below"}},key:"2AC1"},{category:"Sm",mappings:{"default":{"default":"superset with multiplication sign below"}},key:"2AC2"},{category:"Sm",mappings:{"default":{"default":"subset of or equal to with dot above"}}, +key:"2AC3"},{category:"Sm",mappings:{"default":{"default":"superset of or equal to with dot above"}},key:"2AC4"},{category:"Sm",mappings:{"default":{"default":"subset of above equals sign"}},key:"2AC5"},{category:"Sm",mappings:{"default":{"default":"superset of above equals sign"}},key:"2AC6"},{category:"Sm",mappings:{"default":{"default":"subset of above tilde operator"}},key:"2AC7"},{category:"Sm",mappings:{"default":{"default":"superset of above tilde operator"}},key:"2AC8"},{category:"Sm",mappings:{"default":{"default":"subset of above almost equal to"}}, +key:"2AC9"},{category:"Sm",mappings:{"default":{"default":"superset of above almost equal to"}},key:"2ACA"},{category:"Sm",mappings:{"default":{"default":"subset of above not equal to"}},key:"2ACB"},{category:"Sm",mappings:{"default":{"default":"superset of above not equal to"}},key:"2ACC"},{category:"Sm",mappings:{"default":{"default":"square left open box operator"}},key:"2ACD"},{category:"Sm",mappings:{"default":{"default":"square right open box operator"}},key:"2ACE"},{category:"Sm",mappings:{"default":{"default":"closed subset"}}, +key:"2ACF"},{category:"Sm",mappings:{"default":{"default":"closed superset"}},key:"2AD0"},{category:"Sm",mappings:{"default":{"default":"closed subset or equal to"}},key:"2AD1"},{category:"Sm",mappings:{"default":{"default":"closed superset or equal to"}},key:"2AD2"},{category:"Sm",mappings:{"default":{"default":"subset above superset"}},key:"2AD3"},{category:"Sm",mappings:{"default":{"default":"superset above subset"}},key:"2AD4"},{category:"Sm",mappings:{"default":{"default":"subset above subset"}}, +key:"2AD5"},{category:"Sm",mappings:{"default":{"default":"superset above superset"}},key:"2AD6"},{category:"Sm",mappings:{"default":{"default":"superset beside subset"}},key:"2AD7"},{category:"Sm",mappings:{"default":{"default":"superset beside and joined by dash with subset"}},key:"2AD8"},{category:"Sm",mappings:{"default":{"default":"element of opening downwards"}},key:"2AD9"},{category:"Sm",mappings:{"default":{"default":"pitchfork with tee top"}},key:"2ADA"},{category:"Sm",mappings:{"default":{"default":"transversal intersection"}}, +key:"2ADB"},{category:"Sm",mappings:{"default":{"default":"forking"}},key:"2ADC"},{category:"Sm",mappings:{"default":{"default":"nonforking"}},key:"2ADD"},{category:"Sm",mappings:{"default":{"default":"short left tack"}},key:"2ADE"},{category:"Sm",mappings:{"default":{"default":"short down tack"}},key:"2ADF"},{category:"Sm",mappings:{"default":{"default":"short up tack"}},key:"2AE0"},{category:"Sm",mappings:{"default":{"default":"perpendicular with s"}},key:"2AE1"},{category:"Sm",mappings:{"default":{"default":"vertical bar triple right turnstile"}}, +key:"2AE2"},{category:"Sm",mappings:{"default":{"default":"double vertical bar left turnstile"}},key:"2AE3"},{category:"Sm",mappings:{"default":{"default":"vertical bar double left turnstile"}},key:"2AE4"},{category:"Sm",mappings:{"default":{"default":"double vertical bar double left turnstile"}},key:"2AE5"},{category:"Sm",mappings:{"default":{"default":"long dash from left member of double vertical"}},key:"2AE6"},{category:"Sm",mappings:{"default":{"default":"short down tack with overbar"}},key:"2AE7"}, +{category:"Sm",mappings:{"default":{"default":"short up tack with underbar"}},key:"2AE8"},{category:"Sm",mappings:{"default":{"default":"short up tack above short down tack"}},key:"2AE9"},{category:"Sm",mappings:{"default":{"default":"double down tack"}},key:"2AEA"},{category:"Sm",mappings:{"default":{"default":"double up tack"}},key:"2AEB"},{category:"Sm",mappings:{"default":{"default":"double stroke not sign"}},key:"2AEC"},{category:"Sm",mappings:{"default":{"default":"reversed double stroke not sign"}}, +key:"2AED"},{category:"Sm",mappings:{"default":{"default":"does not divide with reversed negation slash"}},key:"2AEE"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle above"}},key:"2AEF"},{category:"Sm",mappings:{"default":{"default":"vertical line with circle below"}},key:"2AF0"},{category:"Sm",mappings:{"default":{"default":"down tack with circle below"}},key:"2AF1"},{category:"Sm",mappings:{"default":{"default":"parallel with horizontal stroke"}},key:"2AF2"},{category:"Sm", +mappings:{"default":{"default":"parallel with tilde operator"}},key:"2AF3"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar binary relation"}},key:"2AF4"},{category:"Sm",mappings:{"default":{"default":"triple vertical bar with horizontal stroke"}},key:"2AF5"},{category:"Sm",mappings:{"default":{"default":"triple colon operator"}},key:"2AF6"},{category:"Sm",mappings:{"default":{"default":"triple nested less than"}},key:"2AF7"},{category:"Sm",mappings:{"default":{"default":"triple nested greater than"}}, +key:"2AF8"},{category:"Sm",mappings:{"default":{"default":"double line slanted less than or equal to"}},key:"2AF9"},{category:"Sm",mappings:{"default":{"default":"double line slanted greater than or equal to"}},key:"2AFA"},{category:"Sm",mappings:{"default":{"default":"triple solidus binary relation"}},key:"2AFB"},{category:"Sm",mappings:{"default":{"default":"large triple vertical bar operator"}},key:"2AFC"},{category:"Sm",mappings:{"default":{"default":"double solidus operator"}},key:"2AFD"},{category:"Sm", +mappings:{"default":{"default":"white vertical bar"}},key:"2AFE"},{category:"Sm",mappings:{"default":{"default":"n ary white vertical bar"}},key:"2AFF"},{category:"Pd",mappings:{"default":{"default":"wave dash"}},key:"301C"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical comma"}},key:"FE10"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical colon"}},key:"FE13"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical semicolon"}}, +key:"FE14"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical exclamation mark"}},key:"FE15"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical question mark"}},key:"FE16"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical horizontal ellipsis"}},key:"FE19"},{category:"Po",mappings:{"default":{"default":"presentation form for vertical two dot leader",alternative:"glyph for vertical two dot leader"}},key:"FE30"},{category:"Pd", +mappings:{"default":{"default":"presentation form for vertical em dash",alternative:"glyph for vertical em dash"}},key:"FE31"},{category:"Pd",mappings:{"default":{"default":"presentation form for vertical en dash",alternative:"glyph for vertical en dash"}},key:"FE32"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical low line",alternative:"glyph for vertical spacing underscore"}},key:"FE33"},{category:"Pc",mappings:{"default":{"default":"presentation form for vertical wavy low line", +alternative:"glyph for vertical spacing wavy underscore"}},key:"FE34"},{category:"Po",mappings:{"default":{"default":"sesame dot"}},key:"FE45"},{category:"Po",mappings:{"default":{"default":"white sesame dot"}},key:"FE46"},{category:"Po",mappings:{"default":{"default":"dashed overline",alternative:"spacing dashed overscore"}},key:"FE49"},{category:"Po",mappings:{"default":{"default":"centerline overline",alternative:"spacing centerline overscore"}},key:"FE4A"},{category:"Po",mappings:{"default":{"default":"wavy overline", +alternative:"spacing wavy overscore"}},key:"FE4B"},{category:"Po",mappings:{"default":{"default":"double wavy overline",alternative:"spacing double wavy overscore"}},key:"FE4C"},{category:"Pc",mappings:{"default":{"default":"dashed low line",alternative:"spacing dashed underscore"}},key:"FE4D"},{category:"Pc",mappings:{"default":{"default":"centerline low line",alternative:"spacing centerline underscore"}},key:"FE4E"},{category:"Pc",mappings:{"default":{"default":"wavy low line",alternative:"spacing wavy underscore"}}, +key:"FE4F"},{category:"Po",mappings:{"default":{"default":"small comma"}},key:"FE50"},{category:"Po",mappings:{"default":{"default":"small full stop",alternative:"small period"}},key:"FE52"},{category:"Po",mappings:{"default":{"default":"small semicolon"}},key:"FE54"},{category:"Po",mappings:{"default":{"default":"small colon"}},key:"FE55"},{category:"Po",mappings:{"default":{"default":"small question mark"}},key:"FE56"},{category:"Po",mappings:{"default":{"default":"small exclamation mark"}},key:"FE57"}, +{category:"Pd",mappings:{"default":{"default":"small em dash"}},key:"FE58"},{category:"Po",mappings:{"default":{"default":"small number sign"}},key:"FE5F"},{category:"Po",mappings:{"default":{"default":"small ampersand"}},key:"FE60"},{category:"Po",mappings:{"default":{"default":"small asterisk"}},key:"FE61"},{category:"Sm",mappings:{"default":{"default":"small plus sign"}},key:"FE62"},{category:"Pd",mappings:{"default":{"default":"small hyphen minus"}},key:"FE63"},{category:"Sm",mappings:{"default":{"default":"small less than sign"}}, +key:"FE64"},{category:"Sm",mappings:{"default":{"default":"small greater than sign"}},key:"FE65"},{category:"Sm",mappings:{"default":{"default":"small equals sign"}},key:"FE66"},{category:"Po",mappings:{"default":{"default":"small reverse solidus",alternative:"small backslash"}},key:"FE68"},{category:"Sc",mappings:{"default":{"default":"small dollar sign"}},key:"FE69"},{category:"Po",mappings:{"default":{"default":"small percent sign"}},key:"FE6A"},{category:"Po",mappings:{"default":{"default":"small commercial at"}}, +key:"FE6B"},{category:"Po",mappings:{"default":{"default":"fullwidth exclamation mark"}},key:"FF01"},{category:"Po",mappings:{"default":{"default":"fullwidth quotation mark"}},key:"FF02"},{category:"Po",mappings:{"default":{"default":"fullwidth number sign"}},key:"FF03"},{category:"Sc",mappings:{"default":{"default":"fullwidth dollar sign"}},key:"FF04"},{category:"Po",mappings:{"default":{"default":"fullwidth percent sign"}},key:"FF05"},{category:"Po",mappings:{"default":{"default":"fullwidth ampersand"}}, +key:"FF06"},{category:"Po",mappings:{"default":{"default":"fullwidth apostrophe"}},key:"FF07"},{category:"Po",mappings:{"default":{"default":"fullwidth asterisk"}},key:"FF0A"},{category:"Sm",mappings:{"default":{"default":"fullwidth plus sign"}},key:"FF0B"},{category:"Po",mappings:{"default":{"default":"fullwidth comma"}},key:"FF0C"},{category:"Pd",mappings:{"default":{"default":"fullwidth hyphen minus"}},key:"FF0D"},{category:"Po",mappings:{"default":{"default":"fullwidth full stop",alternative:"fullwidth period"}}, +key:"FF0E"},{category:"Po",mappings:{"default":{"default":"fullwidth solidus",alternative:"fullwidth slash"}},key:"FF0F"},{category:"Po",mappings:{"default":{"default":"fullwidth colon"}},key:"FF1A"},{category:"Po",mappings:{"default":{"default":"fullwidth semicolon"}},key:"FF1B"},{category:"Sm",mappings:{"default":{"default":"fullwidth less than sign"}},key:"FF1C"},{category:"Sm",mappings:{"default":{"default":"fullwidth equals sign"}},key:"FF1D"},{category:"Sm",mappings:{"default":{"default":"fullwidth greater than sign"}}, +key:"FF1E"},{category:"Po",mappings:{"default":{"default":"fullwidth question mark"}},key:"FF1F"},{category:"Po",mappings:{"default":{"default":"fullwidth commercial at"}},key:"FF20"},{category:"Po",mappings:{"default":{"default":"fullwidth reverse solidus",alternative:"fullwidth backslash"}},key:"FF3C"},{category:"Sk",mappings:{"default":{"default":"fullwidth circumflex accent",alternative:"fullwidth spacing circumflex"}},key:"FF3E"},{category:"Pc",mappings:{"default":{"default":"fullwidth low line", +alternative:"fullwidth spacing underscore"}},key:"FF3F"},{category:"Sk",mappings:{"default":{"default":"fullwidth grave accent",alternative:"fullwidth spacing grave"}},key:"FF40"},{category:"Sm",mappings:{"default":{"default":"fullwidth vertical line",alternative:"fullwidth vertical bar"}},key:"FF5C"},{category:"Sm",mappings:{"default":{"default":"fullwidth tilde",alternative:"fullwidth spacing tilde"}},key:"FF5E"},{category:"Sc",mappings:{"default":{"default":"fullwidth cent sign"}},key:"FFE0"}, +{category:"Sc",mappings:{"default":{"default":"fullwidth pound sign"}},key:"FFE1"},{category:"Sm",mappings:{"default":{"default":"fullwidth not sign"}},key:"FFE2"},{category:"Sk",mappings:{"default":{"default":"fullwidth macron",alternative:"fullwidth spacing macron"}},key:"FFE3"},{category:"So",mappings:{"default":{"default":"fullwidth broken bar",alternative:"fullwidth broken vertical bar"}},key:"FFE4"},{category:"Sc",mappings:{"default":{"default":"fullwidth yen sign"}},key:"FFE5"},{category:"Sc", +mappings:{"default":{"default":"fullwidth won sign"}},key:"FFE6"},{category:"So",mappings:{"default":{"default":"halfwidth forms light vertical"}},key:"FFE8"},{category:"So",mappings:{"default":{"default":"halfwidth black square"}},key:"FFED"},{category:"So",mappings:{"default":{"default":"halfwidth white circle"}},key:"FFEE"},{category:"Ll",names:[],key:"03B1",mappings:{"default":{"default":"greek small letter alpha","short":"alpha"}}},{category:"Ll",names:[],key:"03B2",mappings:{"default":{"default":"greek small letter beta", +"short":"beta"}}},{category:"Ll",names:[],key:"03B3",mappings:{"default":{"default":"greek small letter gamma","short":"gamma"}}},{category:"Ll",names:[],key:"03B4",mappings:{"default":{"default":"greek small letter delta","short":"delta"}}},{category:"Ll",names:[],key:"03B5",mappings:{"default":{"default":"greek small letter epsilon","short":"epsilon"}}},{category:"Ll",names:[],key:"03B6",mappings:{"default":{"default":"greek small letter zeta","short":"zeta"}}},{category:"Ll",names:[],key:"03B7", +mappings:{"default":{"default":"greek small letter eta","short":"eta"}}},{category:"Ll",names:[],key:"03B8",mappings:{"default":{"default":"greek small letter theta","short":"theta"}}},{category:"Ll",names:[],key:"03B9",mappings:{"default":{"default":"greek small letter iota","short":"iota"}}},{category:"Ll",names:[],key:"03BA",mappings:{"default":{"default":"greek small letter kappa","short":"kappa"}}},{category:"Ll",names:[],key:"03BB",mappings:{"default":{"default":"greek small letter lamda",alternative:"greek small letter lambda", +"short":"lamda"}}},{category:"Ll",names:[],key:"03BC",mappings:{"default":{"default":"greek small letter mu","short":"mu"}}},{category:"Ll",names:[],key:"03BD",mappings:{"default":{"default":"greek small letter nu","short":"nu"}}},{category:"Ll",names:[],key:"03BE",mappings:{"default":{"default":"greek small letter xi","short":"xi"}}},{category:"Ll",names:[],key:"03BF",mappings:{"default":{"default":"greek small letter omicron","short":"omicron"}}},{category:"Ll",names:[],key:"03C0",mappings:{"default":{"default":"greek small letter pi", +"short":"pi"}}},{category:"Ll",names:[],key:"03C1",mappings:{"default":{"default":"greek small letter rho","short":"rho"}}},{category:"Ll",names:[],key:"03C2",mappings:{"default":{"default":"greek small letter final sigma","short":"final sigma"}}},{category:"Ll",names:[],key:"03C3",mappings:{"default":{"default":"greek small letter sigma","short":"sigma"}}},{category:"Ll",names:[],key:"03C4",mappings:{"default":{"default":"greek small letter tau","short":"tau"}}},{category:"Ll",names:[],key:"03C5", +mappings:{"default":{"default":"greek small letter upsilon","short":"upsilon"}}},{category:"Ll",names:[],key:"03C6",mappings:{"default":{"default":"greek small letter phi","short":"phi"}}},{category:"Ll",names:[],key:"03C7",mappings:{"default":{"default":"greek small letter chi","short":"chi"}}},{category:"Ll",names:[],key:"03C8",mappings:{"default":{"default":"greek small letter psi","short":"psi"}}},{category:"Ll",names:[],key:"03C9",mappings:{"default":{"default":"greek small letter omega","short":"omega"}}}, +{category:"Ll",mappings:{"default":{"default":"greek beta symbol",alternative:"greek small letter curled beta","short":"beta"}},key:"03D0"},{category:"Ll",mappings:{"default":{"default":"greek theta symbol",alternative:"greek small letter script theta","short":"theta"}},key:"03D1"},{category:"Ll",mappings:{"default":{"default":"greek phi symbol",alternative:"greek small letter script phi","short":"phi"}},key:"03D5"},{category:"Ll",mappings:{"default":{"default":"greek pi symbol",alternative:"greek small letter omega pi", +"short":"pi"}},key:"03D6"},{category:"Ll",mappings:{"default":{"default":"greek kai symbol","short":"kai"}},key:"03D7"},{category:"Ll",mappings:{"default":{"default":"greek kappa symbol",alternative:"greek small letter script kappa","short":"kappa"}},key:"03F0"},{category:"Ll",mappings:{"default":{"default":"greek rho symbol",alternative:"greek small letter tailed rho","short":"rho"}},key:"03F1"},{category:"Ll",mappings:{"default":{"default":"greek lunate epsilon symbol","short":"epsilon"}},key:"03F5"}, +{category:"Sm",mappings:{"default":{"default":"greek reversed lunate epsilon symbol","short":"reversed epsilon"}},key:"03F6"},{category:"Lu",names:[],key:"0391",mappings:{"default":{"default":"greek capital letter alpha","short":"cap alpha"}}},{category:"Lu",names:[],key:"0392",mappings:{"default":{"default":"greek capital letter beta","short":"cap beta"}}},{category:"Lu",names:[],key:"0393",mappings:{"default":{"default":"greek capital letter gamma","short":"cap gamma"}}},{category:"Lu",names:[], +key:"0394",mappings:{"default":{"default":"greek capital letter delta","short":"cap delta"}}},{category:"Lu",names:[],key:"0395",mappings:{"default":{"default":"greek capital letter epsilon","short":"cap epsilon"}}},{category:"Lu",names:[],key:"0396",mappings:{"default":{"default":"greek capital letter zeta","short":"cap zeta"}}},{category:"Lu",names:[],key:"0397",mappings:{"default":{"default":"greek capital letter eta","short":"cap eta"}}},{category:"Lu",names:[],key:"0398",mappings:{"default":{"default":"greek capital letter theta", +"short":"cap theta"}}},{category:"Lu",names:[],key:"0399",mappings:{"default":{"default":"greek capital letter iota","short":"cap iota"}}},{category:"Lu",names:[],key:"039A",mappings:{"default":{"default":"greek capital letter kappa","short":"cap kappa"}}},{category:"Lu",names:[],key:"039B",mappings:{"default":{"default":"greek capital letter lamda",alternative:"greek capital letter lambda","short":"cap lamda"}}},{category:"Lu",names:[],key:"039C",mappings:{"default":{"default":"greek capital letter mu", +"short":"cap mu"}}},{category:"Lu",names:[],key:"039D",mappings:{"default":{"default":"greek capital letter nu","short":"cap nu"}}},{category:"Lu",names:[],key:"039E",mappings:{"default":{"default":"greek capital letter xi","short":"cap xi"}}},{category:"Lu",names:[],key:"039F",mappings:{"default":{"default":"greek capital letter omicron","short":"cap omicron"}}},{category:"Lu",names:[],key:"03A0",mappings:{"default":{"default":"greek capital letter pi","short":"cap pi"}}},{category:"Lu",names:[], +key:"03A1",mappings:{"default":{"default":"greek capital letter rho","short":"cap rho"}}},{category:"Lu",names:[],key:"03A3",mappings:{"default":{"default":"greek capital letter sigma","short":"cap sigma"}}},{category:"Lu",names:[],key:"03A4",mappings:{"default":{"default":"greek capital letter tau","short":"cap tau"}}},{category:"Lu",names:[],key:"03A5",mappings:{"default":{"default":"greek capital letter upsilon","short":"cap upsilon"}}},{category:"Lu",names:[],key:"03A6",mappings:{"default":{"default":"greek capital letter phi", +"short":"cap phi"}}},{category:"Lu",names:[],key:"03A7",mappings:{"default":{"default":"greek capital letter chi","short":"cap chi"}}},{category:"Lu",names:[],key:"03A8",mappings:{"default":{"default":"greek capital letter psi","short":"cap psi"}}},{category:"Lu",names:[],key:"03A9",mappings:{"default":{"default":"greek capital letter omega","short":"cap omega"}}},{category:"Lu",mappings:{"default":{"default":"greek capital theta symbol","short":"cap theta"}},key:"03F4"},{category:"Ps",mappings:{"default":{"default":"left parenthesis", +alternative:"opening parenthesis"}},key:"0028"},{category:"Pe",mappings:{"default":{"default":"right parenthesis",alternative:"closing parenthesis"}},key:"0029"},{category:"Ps",mappings:{"default":{"default":"left square bracket",alternative:"opening square bracket"}},key:"005B"},{category:"Pe",mappings:{"default":{"default":"right square bracket",alternative:"closing square bracket"}},key:"005D"},{category:"Ps",mappings:{"default":{"default":"left curly bracket",alternative:"opening curly bracket"}}, +key:"007B"},{category:"Pe",mappings:{"default":{"default":"right curly bracket",alternative:"closing curly bracket"}},key:"007D"},{category:"Ps",mappings:{"default":{"default":"left square bracket with quill"}},key:"2045"},{category:"Pe",mappings:{"default":{"default":"right square bracket with quill"}},key:"2046"},{category:"Sm",mappings:{"default":{"default":"left ceiling"}},key:"2308"},{category:"Sm",mappings:{"default":{"default":"right ceiling"}},key:"2309"},{category:"Sm",mappings:{"default":{"default":"left floor"}}, +key:"230A"},{category:"Sm",mappings:{"default":{"default":"right floor"}},key:"230B"},{category:"So",mappings:{"default":{"default":"bottom right crop"}},key:"230C"},{category:"So",mappings:{"default":{"default":"bottom left crop"}},key:"230D"},{category:"So",mappings:{"default":{"default":"top right crop"}},key:"230E"},{category:"So",mappings:{"default":{"default":"top left crop"}},key:"230F"},{category:"So",mappings:{"default":{"default":"top left corner"}},key:"231C"},{category:"So",mappings:{"default":{"default":"top right corner"}}, +key:"231D"},{category:"So",mappings:{"default":{"default":"bottom left corner"}},key:"231E"},{category:"So",mappings:{"default":{"default":"bottom right corner"}},key:"231F"},{category:"Sm",mappings:{"default":{"default":"top half integral"}},key:"2320"},{category:"Sm",mappings:{"default":{"default":"bottom half integral"}},key:"2321"},{category:"Ps",mappings:{"default":{"default":"left pointing angle bracket",alternative:"bra"}},key:"2329"},{category:"Pe",mappings:{"default":{"default":"right pointing angle bracket", +alternative:"ket"}},key:"232A"},{category:"Sm",mappings:{"default":{"default":"left parenthesis upper hook"}},key:"239B"},{category:"Sm",mappings:{"default":{"default":"left parenthesis extension"}},key:"239C"},{category:"Sm",mappings:{"default":{"default":"left parenthesis lower hook"}},key:"239D"},{category:"Sm",mappings:{"default":{"default":"right parenthesis upper hook"}},key:"239E"},{category:"Sm",mappings:{"default":{"default":"right parenthesis extension"}},key:"239F"},{category:"Sm",mappings:{"default":{"default":"right parenthesis lower hook"}}, +key:"23A0"},{category:"Sm",mappings:{"default":{"default":"left square bracket upper corner"}},key:"23A1"},{category:"Sm",mappings:{"default":{"default":"left square bracket extension"}},key:"23A2"},{category:"Sm",mappings:{"default":{"default":"left square bracket lower corner"}},key:"23A3"},{category:"Sm",mappings:{"default":{"default":"right square bracket upper corner"}},key:"23A4"},{category:"Sm",mappings:{"default":{"default":"right square bracket extension"}},key:"23A5"},{category:"Sm",mappings:{"default":{"default":"right square bracket lower corner"}}, +key:"23A6"},{category:"Sm",mappings:{"default":{"default":"left curly bracket upper hook"}},key:"23A7"},{category:"Sm",mappings:{"default":{"default":"left curly bracket middle piece"}},key:"23A8"},{category:"Sm",mappings:{"default":{"default":"left curly bracket lower hook"}},key:"23A9"},{category:"Sm",mappings:{"default":{"default":"curly bracket extension"}},key:"23AA"},{category:"Sm",mappings:{"default":{"default":"right curly bracket upper hook"}},key:"23AB"},{category:"Sm",mappings:{"default":{"default":"right curly bracket middle piece"}}, +key:"23AC"},{category:"Sm",mappings:{"default":{"default":"right curly bracket lower hook"}},key:"23AD"},{category:"Sm",mappings:{"default":{"default":"integral extension"}},key:"23AE"},{category:"Sm",mappings:{"default":{"default":"horizontal line extension"}},key:"23AF"},{category:"Sm",mappings:{"default":{"default":"upper left or lower right curly bracket section"}},key:"23B0"},{category:"Sm",mappings:{"default":{"default":"upper right or lower left curly bracket section"}},key:"23B1"},{category:"Sm", +mappings:{"default":{"default":"summation top"}},key:"23B2"},{category:"Sm",mappings:{"default":{"default":"summation bottom"}},key:"23B3"},{category:"So",mappings:{"default":{"default":"top square bracket"}},key:"23B4"},{category:"So",mappings:{"default":{"default":"bottom square bracket"}},key:"23B5"},{category:"So",mappings:{"default":{"default":"bottom square bracket over top square bracket"}},key:"23B6"},{category:"So",mappings:{"default":{"default":"radical symbol bottom"}},key:"23B7"},{category:"So", +mappings:{"default":{"default":"left vertical box line"}},key:"23B8"},{category:"So",mappings:{"default":{"default":"right vertical box line"}},key:"23B9"},{category:"Sm",mappings:{"default":{"default":"top parenthesis"}},key:"23DC"},{category:"Sm",mappings:{"default":{"default":"bottom parenthesis"}},key:"23DD"},{category:"Sm",mappings:{"default":{"default":"top curly bracket"}},key:"23DE"},{category:"Sm",mappings:{"default":{"default":"bottom curly bracket"}},key:"23DF"},{category:"Sm",mappings:{"default":{"default":"top tortoise shell bracket"}}, +key:"23E0"},{category:"Sm",mappings:{"default":{"default":"bottom tortoise shell bracket"}},key:"23E1"},{category:"Ps",mappings:{"default":{"default":"medium left parenthesis ornament"}},key:"2768"},{category:"Pe",mappings:{"default":{"default":"medium right parenthesis ornament"}},key:"2769"},{category:"Ps",mappings:{"default":{"default":"medium flattened left parenthesis ornament"}},key:"276A"},{category:"Pe",mappings:{"default":{"default":"medium flattened right parenthesis ornament"}},key:"276B"}, +{category:"Ps",mappings:{"default":{"default":"medium left pointing angle bracket ornament"}},key:"276C"},{category:"Pe",mappings:{"default":{"default":"medium right pointing angle bracket ornament"}},key:"276D"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle quotation mark ornament"}},key:"276E"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle quotation mark ornament"}},key:"276F"},{category:"Ps",mappings:{"default":{"default":"heavy left pointing angle bracket ornament"}}, +key:"2770"},{category:"Pe",mappings:{"default":{"default":"heavy right pointing angle bracket ornament"}},key:"2771"},{category:"Ps",mappings:{"default":{"default":"light left tortoise shell bracket ornament"}},key:"2772"},{category:"Pe",mappings:{"default":{"default":"light right tortoise shell bracket ornament"}},key:"2773"},{category:"Ps",mappings:{"default":{"default":"medium left curly bracket ornament"}},key:"2774"},{category:"Pe",mappings:{"default":{"default":"medium right curly bracket ornament"}}, +key:"2775"},{category:"Ps",mappings:{"default":{"default":"left s shaped bag delimiter"}},key:"27C5"},{category:"Pe",mappings:{"default":{"default":"right s shaped bag delimiter"}},key:"27C6"},{category:"Ps",mappings:{"default":{"default":"mathematical left white square bracket"}},key:"27E6"},{category:"Pe",mappings:{"default":{"default":"mathematical right white square bracket"}},key:"27E7"},{category:"Ps",mappings:{"default":{"default":"mathematical left angle bracket"}},key:"27E8"},{category:"Pe", +mappings:{"default":{"default":"mathematical right angle bracket"}},key:"27E9"},{category:"Ps",mappings:{"default":{"default":"mathematical left double angle bracket"}},key:"27EA"},{category:"Pe",mappings:{"default":{"default":"mathematical right double angle bracket"}},key:"27EB"},{category:"Ps",mappings:{"default":{"default":"mathematical left white tortoise shell bracket"}},key:"27EC"},{category:"Pe",mappings:{"default":{"default":"mathematical right white tortoise shell bracket"}},key:"27ED"}, +{category:"Ps",mappings:{"default":{"default":"mathematical left flattened parenthesis"}},key:"27EE"},{category:"Pe",mappings:{"default":{"default":"mathematical right flattened parenthesis"}},key:"27EF"},{category:"Ps",mappings:{"default":{"default":"left white curly bracket"}},key:"2983"},{category:"Pe",mappings:{"default":{"default":"right white curly bracket"}},key:"2984"},{category:"Ps",mappings:{"default":{"default":"left white parenthesis"}},key:"2985"},{category:"Pe",mappings:{"default":{"default":"right white parenthesis"}}, +key:"2986"},{category:"Ps",mappings:{"default":{"default":"z notation left image bracket"}},key:"2987"},{category:"Pe",mappings:{"default":{"default":"z notation right image bracket"}},key:"2988"},{category:"Ps",mappings:{"default":{"default":"z notation left binding bracket"}},key:"2989"},{category:"Pe",mappings:{"default":{"default":"z notation right binding bracket"}},key:"298A"},{category:"Ps",mappings:{"default":{"default":"left square bracket with underbar"}},key:"298B"},{category:"Pe",mappings:{"default":{"default":"right square bracket with underbar"}}, +key:"298C"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in top corner"}},key:"298D"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in bottom corner"}},key:"298E"},{category:"Ps",mappings:{"default":{"default":"left square bracket with tick in bottom corner"}},key:"298F"},{category:"Pe",mappings:{"default":{"default":"right square bracket with tick in top corner"}},key:"2990"},{category:"Ps",mappings:{"default":{"default":"left angle bracket with dot"}}, +key:"2991"},{category:"Pe",mappings:{"default":{"default":"right angle bracket with dot"}},key:"2992"},{category:"Ps",mappings:{"default":{"default":"left arc less than bracket"}},key:"2993"},{category:"Pe",mappings:{"default":{"default":"right arc greater than bracket"}},key:"2994"},{category:"Ps",mappings:{"default":{"default":"double left arc greater than bracket"}},key:"2995"},{category:"Pe",mappings:{"default":{"default":"double right arc less than bracket"}},key:"2996"},{category:"Ps",mappings:{"default":{"default":"left black tortoise shell bracket"}}, +key:"2997"},{category:"Pe",mappings:{"default":{"default":"right black tortoise shell bracket"}},key:"2998"},{category:"Ps",mappings:{"default":{"default":"left wiggly fence"}},key:"29D8"},{category:"Pe",mappings:{"default":{"default":"right wiggly fence"}},key:"29D9"},{category:"Ps",mappings:{"default":{"default":"left double wiggly fence"}},key:"29DA"},{category:"Pe",mappings:{"default":{"default":"right double wiggly fence"}},key:"29DB"},{category:"Ps",mappings:{"default":{"default":"left pointing curved angle bracket"}}, +key:"29FC"},{category:"Pe",mappings:{"default":{"default":"right pointing curved angle bracket"}},key:"29FD"},{category:"Ps",mappings:{"default":{"default":"top left half bracket"}},key:"2E22"},{category:"Pe",mappings:{"default":{"default":"top right half bracket"}},key:"2E23"},{category:"Ps",mappings:{"default":{"default":"bottom left half bracket"}},key:"2E24"},{category:"Pe",mappings:{"default":{"default":"bottom right half bracket"}},key:"2E25"},{category:"Ps",mappings:{"default":{"default":"left sideways u bracket"}}, +key:"2E26"},{category:"Pe",mappings:{"default":{"default":"right sideways u bracket"}},key:"2E27"},{category:"Ps",mappings:{"default":{"default":"left double parenthesis"}},key:"2E28"},{category:"Pe",mappings:{"default":{"default":"right double parenthesis"}},key:"2E29"},{category:"Ps",mappings:{"default":{"default":"left angle bracket",alternative:"opening angle bracket"}},key:"3008"},{category:"Pe",mappings:{"default":{"default":"right angle bracket",alternative:"closing angle bracket"}},key:"3009"}, +{category:"Ps",mappings:{"default":{"default":"left double angle bracket",alternative:"opening double angle bracket"}},key:"300A"},{category:"Pe",mappings:{"default":{"default":"right double angle bracket",alternative:"closing double angle bracket"}},key:"300B"},{category:"Ps",mappings:{"default":{"default":"left corner bracket",alternative:"opening corner bracket"}},key:"300C"},{category:"Pe",mappings:{"default":{"default":"right corner bracket",alternative:"closing corner bracket"}},key:"300D"}, +{category:"Ps",mappings:{"default":{"default":"left white corner bracket",alternative:"opening white corner bracket"}},key:"300E"},{category:"Pe",mappings:{"default":{"default":"right white corner bracket",alternative:"closing white corner bracket"}},key:"300F"},{category:"Ps",mappings:{"default":{"default":"left black lenticular bracket",alternative:"opening black lenticular bracket"}},key:"3010"},{category:"Pe",mappings:{"default":{"default":"right black lenticular bracket",alternative:"closing black lenticular bracket"}}, +key:"3011"},{category:"Ps",mappings:{"default":{"default":"left tortoise shell bracket",alternative:"opening tortoise shell bracket"}},key:"3014"},{category:"Pe",mappings:{"default":{"default":"right tortoise shell bracket",alternative:"closing tortoise shell bracket"}},key:"3015"},{category:"Ps",mappings:{"default":{"default":"left white lenticular bracket",alternative:"opening white lenticular bracket"}},key:"3016"},{category:"Pe",mappings:{"default":{"default":"right white lenticular bracket", +alternative:"closing white lenticular bracket"}},key:"3017"},{category:"Ps",mappings:{"default":{"default":"left white tortoise shell bracket",alternative:"opening white tortoise shell bracket"}},key:"3018"},{category:"Pe",mappings:{"default":{"default":"right white tortoise shell bracket",alternative:"closing white tortoise shell bracket"}},key:"3019"},{category:"Ps",mappings:{"default":{"default":"left white square bracket",alternative:"opening white square bracket"}},key:"301A"},{category:"Pe", +mappings:{"default":{"default":"right white square bracket",alternative:"closing white square bracket"}},key:"301B"},{category:"Ps",mappings:{"default":{"default":"reversed double prime quotation mark"}},key:"301D"},{category:"Pe",mappings:{"default":{"default":"double prime quotation mark"}},key:"301E"},{category:"Pe",mappings:{"default":{"default":"low double prime quotation mark"}},key:"301F"},{category:"Ps",mappings:{"default":{"default":"ornate left parenthesis"}},key:"FD3E"},{category:"Pe", +mappings:{"default":{"default":"ornate right parenthesis"}},key:"FD3F"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white lenticular bracket"}},key:"FE17"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white lenticular bracket"}},key:"FE18"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left parenthesis",alternative:"glyph for vertical opening parenthesis"}},key:"FE35"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right parenthesis", +alternative:"glyph for vertical closing parenthesis"}},key:"FE36"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left curly bracket",alternative:"glyph for vertical opening curly bracket"}},key:"FE37"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right curly bracket",alternative:"glyph for vertical closing curly bracket"}},key:"FE38"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left tortoise shell bracket", +alternative:"glyph for vertical opening tortoise shell bracket"}},key:"FE39"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right tortoise shell bracket",alternative:"glyph for vertical closing tortoise shell bracket"}},key:"FE3A"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left black lenticular bracket",alternative:"glyph for vertical opening black lenticular bracket"}},key:"FE3B"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right black lenticular bracket", +alternative:"glyph for vertical closing black lenticular bracket"}},key:"FE3C"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left double angle bracket",alternative:"glyph for vertical opening double angle bracket"}},key:"FE3D"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right double angle bracket",alternative:"glyph for vertical closing double angle bracket"}},key:"FE3E"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left angle bracket", +alternative:"glyph for vertical opening angle bracket"}},key:"FE3F"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right angle bracket",alternative:"glyph for vertical closing angle bracket"}},key:"FE40"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left corner bracket",alternative:"glyph for vertical opening corner bracket"}},key:"FE41"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right corner bracket", +alternative:"glyph for vertical closing corner bracket"}},key:"FE42"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left white corner bracket",alternative:"glyph for vertical opening white corner bracket"}},key:"FE43"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right white corner bracket",alternative:"glyph for vertical closing white corner bracket"}},key:"FE44"},{category:"Ps",mappings:{"default":{"default":"presentation form for vertical left square bracket"}}, +key:"FE47"},{category:"Pe",mappings:{"default":{"default":"presentation form for vertical right square bracket"}},key:"FE48"},{category:"Ps",mappings:{"default":{"default":"small left parenthesis",alternative:"small opening parenthesis"}},key:"FE59"},{category:"Pe",mappings:{"default":{"default":"small right parenthesis",alternative:"small closing parenthesis"}},key:"FE5A"},{category:"Ps",mappings:{"default":{"default":"small left curly bracket",alternative:"small opening curly bracket"}},key:"FE5B"}, +{category:"Pe",mappings:{"default":{"default":"small right curly bracket",alternative:"small closing curly bracket"}},key:"FE5C"},{category:"Ps",mappings:{"default":{"default":"small left tortoise shell bracket",alternative:"small opening tortoise shell bracket"}},key:"FE5D"},{category:"Pe",mappings:{"default":{"default":"small right tortoise shell bracket",alternative:"small closing tortoise shell bracket"}},key:"FE5E"},{category:"Ps",mappings:{"default":{"default":"fullwidth left parenthesis",alternative:"fullwidth opening parenthesis"}}, +key:"FF08"},{category:"Pe",mappings:{"default":{"default":"fullwidth right parenthesis",alternative:"fullwidth closing parenthesis"}},key:"FF09"},{category:"Ps",mappings:{"default":{"default":"fullwidth left square bracket",alternative:"fullwidth opening square bracket"}},key:"FF3B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right square bracket",alternative:"fullwidth closing square bracket"}},key:"FF3D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left curly bracket", +alternative:"fullwidth opening curly bracket"}},key:"FF5B"},{category:"Pe",mappings:{"default":{"default":"fullwidth right curly bracket",alternative:"fullwidth closing curly bracket"}},key:"FF5D"},{category:"Ps",mappings:{"default":{"default":"fullwidth left white parenthesis"}},key:"FF5F"},{category:"Pe",mappings:{"default":{"default":"fullwidth right white parenthesis"}},key:"FF60"},{category:"Ps",mappings:{"default":{"default":"halfwidth left corner bracket",alternative:"halfwidth opening corner bracket"}}, +key:"FF62"},{category:"Pe",mappings:{"default":{"default":"halfwidth right corner bracket",alternative:"halfwidth closing corner bracket"}},key:"FF63"}]; +cvox.AndroidMathMap.FUNCTION_MAPPINGS_=[{category:"Elementary",mappings:{"default":{"default":"logarithm",alternative:"logarithm function","short":"log"}},key:"log",names:["log"]},{category:"Elementary",mappings:{"default":{"default":"natural logarithm",alternative:"natural logarithm function","short":"natural log"}},key:"ln",names:["ln"]},{category:"Elementary",mappings:{"default":{"default":"logarithm base 10","short":"log base 10"}},key:"lg",names:["lg"]},{category:"Elementary",mappings:{"default":{"default":"exponential", +alternative:"exponential function","short":"exp"}},key:"exp",names:["exp","expt"]},{category:"Elementary",mappings:{"default":{"default":"greatest common divisor","short":"gcd"}},key:"gcd",names:["gcd"]},{category:"Elementary",mappings:{"default":{"default":"least common multiple","short":"lcm"}},key:"gcd",names:["gcd"]},{category:"Complex",mappings:{"default":{"default":"argument","short":"arg"}},key:"arg",names:["arg"]},{category:"Complex",mappings:{"default":{"default":"imaginary part","short":"imaginary"}}, +key:"im",names:["im"]},{category:"Complex",mappings:{"default":{"default":"real part","short":"real"}},key:"re",names:["re"]},{category:"Limits",mappings:{"default":{"default":"infimum","short":"inf"}},key:"inf",names:["inf"]},{category:"Limits",mappings:{"default":{"default":"limit","short":"lim"}},key:"lim",names:["lim"]},{category:"Limits",mappings:{"default":{"default":"infimum default",alternative:"inferior limit","short":"liminf"}},key:"liminf",names:["lim inf"]},{category:"Limits",mappings:{"default":{"default":"supremum limit", +alternative:"superior limit","short":"limsup"}},key:"limsup",names:["lim sup"]},{category:"Limits",mappings:{"default":{"default":"maximum","short":"max"}},key:"max",names:["max"]},{category:"Limits",mappings:{"default":{"default":"minimum","short":"min"}},key:"min",names:["min"]},{category:"Limits",mappings:{"default":{"default":"supremum","short":"sup"}},key:"sup",names:["sup"]},{category:"Limits",mappings:{"default":{"default":"injective limit",alternative:"direct limit","short":"colimit"}},key:"injlim", +names:["injlim","inj lim"]},{category:"Limits",mappings:{"default":{"default":"projective limit",alternative:"inverse limit","short":"limit"}},key:"projlim",names:["projlim","proj lim"]},{category:"Elementary",mappings:{"default":{"default":"modulo","short":"mod"}},key:"mod",names:["mod"]},{category:"Probability",mappings:{"default":{"default":"probability"}},key:"Pr",names:["Pr"]},{category:"Trigonometric",mappings:{"default":{"default":"cosine function","short":"cosine"}},key:"cos",names:["cos", +"cosine"]},{category:"Trigonometric",mappings:{"default":{"default":"cotangent function","short":"cotangent"}},key:"cot",names:["cot"]},{category:"Trigonometric",mappings:{"default":{"default":"cosecant function","short":"cosecant"}},key:"csc",names:["csc"]},{category:"Trigonometric",mappings:{"default":{"default":"secant function","short":"secant"}},key:"sec",names:["sec"]},{category:"Trigonometric",mappings:{"default":{"default":"sine function",alternative:"sine function","short":"sine"}},key:"sin", +names:["sin","sine"]},{category:"Trigonometric",mappings:{"default":{"default":"tangent function","short":"tangent"}},key:"tan",names:["tan"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cosine function",alternative:"arc cosine function","short":"arc cosine"}},key:"arccos",names:["arccos"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse cotangent function",alternative:"arc cotangent function","short":"arc cotangent"}},key:"arccot",names:["arccot"]},{category:"Cyclometric", +mappings:{"default":{"default":"inverse cosecant function",alternative:"arc cosecant function","short":"arc cosecant"}},key:"arccsc",names:["arccsc"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse secant function",alternative:"arc secant function","short":"arc secant"}},key:"arcsec",names:["arcsec"]},{category:"Cyclometric",mappings:{"default":{"default":"inverse sine function",alternative:"arc sine function","short":"arc sine"}},key:"arcsin",names:["arcsin"]},{category:"Cyclometric", +mappings:{"default":{"default":"inverse tangent function",alternative:"arc tangent function","short":"arc tangent"}},key:"arctan",names:["arctan"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosine function","short":"hyperbolic cosine"}},key:"cosh",names:["cosh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cotangent function","short":"hyperbolic cotangent"}},key:"coth",names:["coth"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic cosecant function", +"short":"hyperbolic cosecant"}},key:"csch",names:["csch"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic secant function","short":"hyperbolic secant"}},key:"sech",names:["sech"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic sine function","short":"hyperbolic sine"}},key:"sinh",names:["sinh"]},{category:"Hyperbolic",mappings:{"default":{"default":"hyperbolic tangent function","short":"hyperbolic tangent"}},key:"tanh",names:["tanh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosine function", +alternative:"area hyperbolic cosine function","short":"area hyperbolic cosine"}},key:"arcosh",names:["arcosh","arccosh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cotangent function",alternative:"area hyperbolic cotangent function","short":"area hyperbolic cotangent"}},key:"arcoth",names:["arcoth","arccoth"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic cosecant function",alternative:"area hyperbolic cosecant function","short":"area hyperbolic cosecant"}}, +key:"arcsch",names:["arcsch","arccsch"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic secant function",alternative:"area hyperbolic secant function","short":"area hyperbolic secant"}},key:"arsech",names:["arsech","arcsech"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic sine function",alternative:"area hyperbolic sine function","short":"area hyperbolic sine"}},key:"arsinh",names:["arsinh","arcsinh"]},{category:"Area",mappings:{"default":{"default":"inverse hyperbolic tangent function", +alternative:"area hyperbolic tangent function","short":"area hyperbolic tangent"}},key:"artanh",names:["artanh","arctanh"]},{category:"Algebra",mappings:{"default":{"default":"degree"}},key:"deg",names:["deg"]},{category:"Algebra",mappings:{"default":{"default":"determinant","short":"det"}},key:"det",names:["det"]},{category:"Algebra",mappings:{"default":{"default":"dimension"}},key:"dim",names:["dim"]},{category:"Algebra",mappings:{"default":{"default":"homomorphism","short":"hom"}},key:"hom",names:["hom", +"Hom"]},{category:"Algebra",mappings:{"default":{"default":"kernel"}},key:"ker",names:["ker"]},{category:"Algebra",mappings:{"default":{"default":"trace"}},key:"Tr",names:["Tr","tr"]}];cvox.AndroidVox=function(){cvox.ChromeVox.navigationManager.ignoreIframesNoMatterWhat()};goog.exportSymbol("cvox.AndroidVox",cvox.AndroidVox); +cvox.AndroidVox.performAction=function(a){var b=JSON.parse(a);a=b.action;var c=b.granularity,b=b.element,d=cvox.SearchWidget.getInstance().isActive();16==c&&512==a&&(cvox.ChromeVox.navigationManager.setReversed(!1),cvox.ChromeVox.navigationManager.syncToBeginning(),cvox.ChromeVox.navigationManager.updateIndicator());if(16==c)return cvox.ChromeVoxUserCommands.commands.readFromHere(),!0;cvox.ChromeVoxUserCommands.commands.stopSpeech();if(256==a||512==a)d||cvox.ChromeVoxEventWatcher.setUpTextHandler(); +var e=cvox.ChromeVoxEventWatcher.currentTextHandler;e||document.activeElement==document.body||console.log("no text handler, but there is an active element",document.activeElement);if(e&&1==c){if(256==a)return e.moveCursorToNextCharacter();if(512==a)return e.moveCursorToPreviousCharacter()}else if(e&&2==c){if(256==a)return e.moveCursorToNextWord();if(512==a)return e.moveCursorToPreviousWord()}else if(e&&8==c){if(256==a)return e.moveCursorToNextParagraph();if(512==a)return e.moveCursorToPreviousParagraph()}else if(e&& +4==c){var f=!1;256==a?f=e.moveCursorToNextLine():512==a&&(f=e.moveCursorToPreviousLine());if(f)return!0}switch(c){case -1:return cvox.ChromeVox.navigationManager.finishNavCommand(""),!0;case -2:return cvox.ChromeVoxUserCommands.commands.readCurrentTitle(),!0;case -3:return!0;case -4:return 512==a?cvox.ChromeVoxUserCommands.commands.exitShifter():cvox.ChromeVoxUserCommands.commands.enterShifter(),!0;case -5:return cvox.SearchWidget.getInstance().toggle(),!0}if(-275999999<=c&&-275E6>=c){cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"), +cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);a=cvox.ChromeVox.navigationManager.getBraille();b=-275E6-c;if(c=a.text.getSpan(b))a=b-a.text.getSpanStart(c),cvox.AndroidVox.performClickAction(c,a);return!0}if(0>c)return!1;e=[];e[8]=cvox.NavigationShifter.GRANULARITIES.GROUP;e[4]=cvox.NavigationShifter.GRANULARITIES.LINE;e[2]=cvox.NavigationShifter.GRANULARITIES.WORD;e[1]=cvox.NavigationShifter.GRANULARITIES.CHARACTER;d||(c=c?e[c]:cvox.NavigationShifter.GRANULARITIES.OBJECT, +cvox.ChromeVox.navigationManager.setGranularity(c));c=!1;switch(a){case 16:if(d)break;cvox.ChromeVox.tts.speak(cvox.ChromeVox.msgs.getMsg("element_clicked"),cvox.AbstractTts.QUEUE_MODE_FLUSH,cvox.AbstractTts.PERSONALITY_ANNOTATION);(c=cvox.ChromeVox.navigationManager.getCurrentNode())&&cvox.AndroidVox.performClickAction(c);c=!0;break;case 1024:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.nextSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.nextList();break;case "CONTROL":c= +!cvox.ChromeVoxUserCommands.commands.nextControl()}if(c)break;case 256:d?(cvox.SearchWidget.getInstance().nextResult(!1),c=!0):c=!cvox.ChromeVoxUserCommands.commands.forward();break;case 2048:switch(b){case "SECTION":c=!cvox.ChromeVoxUserCommands.commands.previousSection();break;case "LIST":c=!cvox.ChromeVoxUserCommands.commands.previousList();break;case "CONTROL":c=!cvox.ChromeVoxUserCommands.commands.previousControl()}if(c)break;case 512:d?(cvox.SearchWidget.getInstance().nextResult(!0),c=!0):c= +!cvox.ChromeVoxUserCommands.commands.backward()}return c};goog.exportSymbol("cvox.AndroidVox.performAction",cvox.AndroidVox.performAction); +cvox.AndroidVox.performClickAction=function(a,b){cvox.ChromeVox.navigationManager.getCurrentNode()!=a&&cvox.ApiImplementation.syncToNode(a,!1);cvox.Focuser.setFocus(a);var c=cvox.DomUtil.isInputTypeText(a)||a instanceof HTMLTextAreaElement;if(goog.isDef(b)&&c){var d=cvox.BrailleUtil.getTemplated(null,a),c=d.getSpanInstanceOf(cvox.BrailleUtil.ValueSpan),e=d.getSpanStart(c),d=d.getSpanEnd(c);e<=b&&b<=d&&(c=b-e+c.offset,a.selectionStart=a.selectionEnd=c,cvox.ChromeVoxEventWatcher.handleTextChanged(!0))}cvox.DomUtil.clickElem(a, +!1,!0)};cvox.AndroidHost=function(){};goog.inherits(cvox.AndroidHost,cvox.AbstractHost); +cvox.AndroidHost.prototype.init=function(){cvox.ChromeVox.version="AndroidVox";var a=cvox.AndroidKeyMap.getStringifiedKeyMap();cvox.ChromeVoxKbHandler.loadKeyToFunctionsTable(a);cvox.ApiImplementation.siteSpecificScriptLoader="";cvox.ApiImplementation.siteSpecificScriptBase="";cvox.ApiImplementation.init();cvox.ChromeVox.earcons.earconsAvailable()&&(cvox.ChromeVox.verbosity=cvox.VERBOSITY_BRIEF);new cvox.AndroidMathMap;cvox.InitialSpeech.speak()};cvox.AndroidHost.prototype.reinit=function(){}; +cvox.AndroidHost.prototype.onPageLoad=function(){cvox.ChromeVoxEventWatcher.focusFollowsMouse=!0;cvox.ChromeVoxEventWatcher.mouseoverDelayMs=0};cvox.AndroidHost.prototype.ttsLoaded=function(){return"undefined"!=typeof accessibility};cvox.AndroidHost.prototype.getApiSrc=function(){return""};cvox.AndroidHost.prototype.hasTtsCallback=function(){return!1};cvox.AndroidHost.prototype.mustRedispatchClickEvent=function(){return!0}; +cvox.AndroidHost.prototype.activateOrDeactivateChromeVox=function(a){cvox.ChromeVox.tts.stop();cvox.AndroidHost.superClass_.activateOrDeactivateChromeVox.call(this,a);this.onPageLoad()};goog.exportSymbol("cvox.AndroidHost.prototype.activateOrDeactivateChromeVox",cvox.AndroidHost.prototype.activateOrDeactivateChromeVox);cvox.HostFactory.hostConstructor=cvox.AndroidHost;window.cvox||(window.cvox={});cvox.MathJaxExternalUtil=function(){};cvox.MathJaxExternalUtil.mmlAttr=function(){return""}; +cvox.MathJaxExternalUtil.mfenced=function(a){null==a&&(a="");var b=[a+'<mrow mfenced="true"'+this.toMathMLattributes()+">"],c=a+" ";this.data.open&&b.push(this.data.open.toMathML(c));null!=this.data[0]&&b.push(this.data[0].toMathML(c));for(var d=1,e=this.data.length;d<e;d++)this.data[d]&&(this.data["sep"+d]&&b.push(this.data["sep"+d].toMathML(c)),b.push(this.data[d].toMathML(c)));this.data.close&&b.push(this.data.close.toMathML(c));b.push(a+"</mrow>");return b.join("\n")}; +cvox.MathJaxExternalUtil.getMathml=function(a,b){var c=MathJax.ElementJax.mml.mbase.prototype,d=MathJax.ElementJax.mml.mfenced.prototype;this.mmlAttr=c.toMathMLattributes;var e=d.toMathML;try{c.toMathMLattributes=cvox.MathJaxExternalUtil.mbase;d.toMathML=cvox.MathJaxExternalUtil.mfenced;var f=a.root.toMathML("");c.toMathMLattributes=this.mmlAttr;d.toMathML=e;MathJax.Callback(b)(f)}catch(g){c.toMathMLattributes=this.mmlAttr;d.toMathML=e;if(!g.restart)throw g;return MathJax.Callback.After([cvox.MathJaxExternalUtil.getMathml, +a,b],g.restart)}};cvox.MathJaxExternalUtil.mbase=function(){var a=cvox.MathJaxExternalUtil.mmlAttr.call(this);if(null!=this.spanID)var b=(this.id||"MathJax-Span-"+this.spanID)+MathJax.OutputJax["HTML-CSS"].idPostfix,a=a+(' spanID="'+b+'"');null!=this.texClass&&(a+=' texClass="'+this.texClass+'"');return a};cvox.MathJaxExternalUtil.isActive=function(){return"undefined"!=typeof MathJax&&"undefined"!=typeof MathJax.Hub&&"undefined"!=typeof MathJax.ElementJax&&"undefined"!=typeof MathJax.InputJax}; +cvox.MathJaxExternalUtil.getMathjaxCallback_=function(a,b){cvox.MathJaxExternalUtil.getMathml(b,function(c){b.root.inputID&&a(c,b.root.inputID)})};cvox.MathJaxExternalUtil.registerSignal=function(a,b){MathJax.Hub.Register.MessageHook(b,function(b){b=MathJax.Hub.getJaxFor(b[1]);cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})};cvox.MathJaxExternalUtil.getAllJax=function(a){var b=MathJax.Hub.getAllJax();b&&b.forEach(function(b){b.root.spanID&&cvox.MathJaxExternalUtil.getMathjaxCallback_(a,b)})}; +cvox.MathJaxExternalUtil.injectConfigScript=function(){var a=document.createElement("script");a.setAttribute("type","text/x-mathjax-config");a.textContent='MathJax.Hub.Config({\n jax: ["input/AsciiMath", "input/TeX"],\n extensions: ["toMathML.js"],\n skipStartupTypeset: true,\n messageStyle: "none",\n TeX: {extensions: ["AMSmath.js","AMSsymbols.js"]}\n});\nMathJax.Hub.Queue(\n function() {MathJax.Hub.inputJax["math/asciimath"].Process();\n MathJax.Hub.inputJax["math/tex"].Process()}\n);\n//\n// Prevent these from being loaded\n//\nif (!MathJax.Extension.MathMenu) {MathJax.Extension.MathMenu = {}};\nif (!MathJax.Extension.MathZoom) {MathJax.Extension.MathZoom = {}};'; +document.activeElement.appendChild(a)};cvox.MathJaxExternalUtil.injectLoadScript=function(){var a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src","http://cdn.mathjax.org/mathjax/latest/MathJax.js");document.activeElement.appendChild(a)}; +cvox.MathJaxExternalUtil.configMediaWiki=function(){mediaWiki&&MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var a=MathJax.ElementJax.mml;MathJax.Hub.Insert(MathJax.InputJax.TeX.Definitions,{mathchar0mi:{thetasym:"03B8",koppa:"03DF",stigma:"03DB",varstigma:"03DB",coppa:"03D9",varcoppa:"03D9",sampi:"03E1",C:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],cnums:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Complex:["0043",{mathvariant:a.VARIANT.DOUBLESTRUCK}],H:["210D",{mathvariant:a.VARIANT.DOUBLESTRUCK}], +N:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],natnums:["004E",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Q:["0051",{mathvariant:a.VARIANT.DOUBLESTRUCK}],R:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Reals:["0052",{mathvariant:a.VARIANT.DOUBLESTRUCK}],Z:["005A",{mathvariant:a.VARIANT.DOUBLESTRUCK}],sect:"00A7",P:"00B6",AA:["00C5",{mathvariant:a.VARIANT.NORMAL}],alef:["2135",{mathvariant:a.VARIANT.NORMAL}],alefsym:["2135",{mathvariant:a.VARIANT.NORMAL}], +weierp:["2118",{mathvariant:a.VARIANT.NORMAL}],real:["211C",{mathvariant:a.VARIANT.NORMAL}],part:["2202",{mathvariant:a.VARIANT.NORMAL}],infin:["221E",{mathvariant:a.VARIANT.NORMAL}],empty:["2205",{mathvariant:a.VARIANT.NORMAL}],O:["2205",{mathvariant:a.VARIANT.NORMAL}],ang:["2220",{mathvariant:a.VARIANT.NORMAL}],exist:["2203",{mathvariant:a.VARIANT.NORMAL}],clubs:["2663",{mathvariant:a.VARIANT.NORMAL}],diamonds:["2662",{mathvariant:a.VARIANT.NORMAL}],hearts:["2661",{mathvariant:a.VARIANT.NORMAL}], +spades:["2660",{mathvariant:a.VARIANT.NORMAL}],textvisiblespace:"2423",geneuro:"20AC",euro:"20AC"},mathchar0mo:{and:"2227",or:"2228",bull:"2219",plusmn:"00B1",sdot:"22C5",Dagger:"2021",sup:"2283",sub:"2282",supe:"2287",sube:"2286",isin:"2208",hAar:"21D4",hArr:"21D4",Harr:"21D4",Lrarr:"21D4",lrArr:"21D4",lArr:"21D0",Larr:"21D0",rArr:"21D2",Rarr:"21D2",harr:"2194",lrarr:"2194",larr:"2190",gets:"2190",rarr:"2192",oiint:["222F",{texClass:a.TEXCLASS.OP}],oiiint:["2230",{texClass:a.TEXCLASS.OP}]},mathchar7:{Alpha:"0391", +Beta:"0392",Epsilon:"0395",Zeta:"0396",Eta:"0397",Iota:"0399",Kappa:"039A",Mu:"039C",Nu:"039D",Omicron:"039F",Rho:"03A1",Tau:"03A4",Chi:"03A7",Koppa:"03DE",Stigma:"03DA",Digamma:"03DC",Coppa:"03D8",Sampi:"03E0"},delimiter:{"\\uarr":"2191","\\darr":"2193","\\Uarr":"21D1","\\uArr":"21D1","\\Darr":"21D3","\\dArr":"21D3","\\rang":"27E9","\\lang":"27E8"},macros:{sgn:"NamedFn",arccot:"NamedFn",arcsec:"NamedFn",arccsc:"NamedFn",sen:"NamedFn",image:["Macro","\\Im"],bold:["Macro","\\mathbf{#1}",1],pagecolor:["Macro", +"",1],emph:["Macro","\\textit{#1}",1],textsf:["Macro","\\mathord{\\sf{\\text{#1}}}",1],texttt:["Macro","\\mathord{\\tt{\\text{#1}}}",1],vline:["Macro","\\smash{\\large\\lvert}",0]}})})}; +cvox.MathJaxExternalUtil.convertToMml=function(a,b,c,d,e,f){var g=MathJax.HTML.Element("script",{type:c},[b]),g={math:b,script:g};MathJax.InputJax[d].prefilterHooks.Execute(g);var h;try{h=f(g.math)}catch(k){if(k[e])h=MathJax.ElementJax.mml.merror(k.message.replace(/\n.*/,""));else{if(k.restart)return MathJax.Callback.After([cvox.MathJaxExternalUtil.convertToMml,a,b,c,d,e,f],k.restart);throw k;}}h=h.inferred?MathJax.ElementJax.mml.apply(MathJax.ElementJax,h.data):MathJax.ElementJax.mml(h);h.root.display= +"block";g.math=h;g.script.MathJax={};MathJax.InputJax[d].postfilterHooks.Execute(g);return cvox.MathJaxExternalUtil.getMathml(g.math,a)};cvox.MathJaxExternalUtil.texToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/tex;mode=display","TeX","texError",function(a){return MathJax.InputJax.TeX.Parse(a).mml()})};cvox.MathJaxExternalUtil.asciiMathToMml=function(a,b){cvox.MathJaxExternalUtil.convertToMml(a,b,"math/asciimath","AsciiMath","asciimathError",MathJax.InputJax.AsciiMath.AM.parseMath)};cvox.AndroidMathJax=function(){this.altMathNodeId_=0};goog.inherits(cvox.AndroidMathJax,cvox.AbstractMathJax);cvox.AndroidMathJax.prototype.getMathmlToDomCallback_=function(a){return goog.bind(function(b,c){return this.convertMarkupToDom(a,b,c)},this)};cvox.AndroidMathJax.prototype.isMathjaxActive=function(a){var b=0,c=function(){b++;cvox.MathJaxExternalUtil.isActive()?a(!0):5>b&&setTimeout(c,1E3)};c()};cvox.AndroidMathJax.prototype.getAllJax=function(a){cvox.MathJaxExternalUtil.getAllJax(this.getMathmlToDomCallback_(a))}; +cvox.AndroidMathJax.prototype.registerSignal=function(a,b){cvox.MathJaxExternalUtil.registerSignal(this.getMathmlToDomCallback_(a),b)};cvox.AndroidMathJax.prototype.injectScripts=function(){cvox.MathJaxExternalUtil.injectConfigScript();cvox.MathJaxExternalUtil.injectLoadScript()};cvox.AndroidMathJax.prototype.configMediaWiki=function(){cvox.MathJaxExternalUtil.configMediaWiki()}; +cvox.AndroidMathJax.prototype.getTex=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.texToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}};cvox.AndroidMathJax.prototype.getAsciiMath=function(a,b){var c=b.alt||b.title;if(c){var d="cvoxId-"+this.altMathNodeId_++;b.setAttribute("cvoxId",d);cvox.MathJaxExternalUtil.asciiMathToMml(goog.bind(function(b){this.convertMarkupToDom(a,b,d)},this),c)}}; +cvox.HostFactory.mathJaxConstructor=cvox.AndroidMathJax;cvox.AndroidTts=function(){cvox.AbstractTts.call(this);this.ttsProperties.rate=0.5;this.ttsProperties.pitch=0.5;this.ttsProperties.volume=1};goog.inherits(cvox.AndroidTts,cvox.AbstractTts);cvox.AndroidTts.prototype.speak=function(a,b,c){cvox.AndroidTts.superClass_.speak.call(this,a,b,c);c=this.mergeProperties(c);accessibility.speak(a,b,c);return this};cvox.AndroidTts.prototype.isSpeaking=function(){cvox.AndroidTts.superClass_.isSpeaking.call(this);return accessibility.isSpeaking()}; +cvox.AndroidTts.prototype.stop=function(){cvox.AndroidTts.superClass_.stop.call(this);accessibility.stop()};cvox.HostFactory.ttsConstructor=cvox.AndroidTts;cvox.TestMessages={locale:{message:"en"},chromevox_name:{message:"ChromeVox"},chromevox_description:{message:"ChromeVox - Giving Voice to Chrome"},chromevox_stop_speech_key:{message:"Stop speech"},chromevox_toggle_sticky_mode:{message:"Enable/Disable sticky mode"},chromevox_prefix_key:{message:"Prefix key"},chromevox_handle_tab_next:{message:"Jump to next focusable item"},chromevox_handle_tab_prev:{message:"Jump to previous focusable item"},chromevox_backward:{message:"Navigate backward"},chromevox_forward:{message:"Navigate forward"}, +chromevox_left:{message:"Move left"},chromevox_right:{message:"Move right"},chromevox_skip_backward:{message:"Skip backward during continuous reading"},chromevox_skip_forward:{message:"Skip forward during continuous reading"},chromevox_previous_granularity:{message:"Decrease navigation granularity"},chromevox_next_granularity:{message:"Increase navigation granularity"},chromevox_act_on_current_item:{message:"Take action on current item"},chromevox_force_click_on_current_item:{message:"Click on current item"}, +chromevox_read_link_url:{message:"Announce the URL behind a link"},chromevox_read_current_title:{message:"Announce the title of the current page"},chromevox_read_current_url:{message:"Announce the URL of the current page"},chromevox_read_from_here:{message:"Start reading from current location"},chromevox_show_power_key:{message:"Open ChromeVox keyboard help"},chromevox_hide_power_key:{message:"Hide ChromeVox help"},chromevox_power_key_help:{message:"Press up or down to review commands, press enter to activate"}, +chromevox_help:{message:"Open ChromeVox tutorial"},chromevox_toggle_search_widget:{message:"Toggle search widget"},chromevox_show_options_page:{message:"Open options page"},chromevox_show_kb_explorer_page:{message:"Open keyboard explorer"},chromevox_decrease_tts_rate:{message:"Decrease rate of speech"},chromevox_increase_tts_rate:{message:"Increase rate of speech"},chromevox_decrease_tts_pitch:{message:"Decrease pitch"},chromevox_increase_tts_pitch:{message:"Increase pitch"},chromevox_decrease_tts_volume:{message:"Decrease speech volume"}, +chromevox_increase_tts_volume:{message:"Increase speech volume"},chromevox_show_forms_list:{message:"Show forms list"},chromevox_show_headings_list:{message:"Show headings list"},chromevox_show_links_list:{message:"Show links list"},chromevox_show_tables_list:{message:"Show tables list"},chromevox_show_landmarks_list:{message:"Show landmarks list"},chromevox_previous_row:{message:"Previous table row"},chromevox_next_row:{message:"Next table row"},chromevox_previous_col:{message:"Previous table column"}, +chromevox_next_col:{message:"Next table column"},chromevox_announce_headers:{message:"Announce the headers of the current cell"},chromevox_speak_table_location:{message:"Announce current cell coordinates"},chromevox_guess_row_header:{message:"Make a guess at the row header of the current cell"},chromevox_guess_col_header:{message:"Make a guess at the column header of the current cell"},chromevox_skip_to_beginning:{message:"Go to beginning of table"},chromevox_skip_to_end:{message:"Go to end of table"}, +chromevox_skip_to_row_beginning:{message:"Go to beginning of the current row"},chromevox_skip_to_row_end:{message:"Go to end of the current row"},chromevox_skip_to_col_beginning:{message:"Go to beginning of the current column"},chromevox_skip_to_col_end:{message:"Go to end of the current column"},chromevox_next_heading1:{message:"Next level 1 heading"},chromevox_previous_heading1:{message:"Previous level 1 heading"},chromevox_next_heading2:{message:"Next level 2 heading"},chromevox_previous_heading2:{message:"Previous level 2 heading"}, +chromevox_next_heading3:{message:"Next level 3 heading"},chromevox_previous_heading3:{message:"Previous level 3 heading"},chromevox_next_heading4:{message:"Next level 4 heading"},chromevox_previous_heading4:{message:"Previous level 4 heading"},chromevox_next_heading5:{message:"Next level 5 heading"},chromevox_previous_heading5:{message:"Previous level 5 heading"},chromevox_next_heading6:{message:"Next level 6 heading"},chromevox_previous_heading6:{message:"Previous level 6 heading"},chromevox_next_combo_box:{message:"Next combo box"}, +chromevox_previous_combo_box:{message:"Previous combo box"},chromevox_next_edit_text:{message:"Next editable text area"},chromevox_previous_edit_text:{message:"Previous editable text area"},chromevox_next_form_field:{message:"Next form field"},chromevox_previous_form_field:{message:"Previous form field"},chromevox_next_graphic:{message:"Next graphic"},chromevox_previous_graphic:{message:"Previous graphic"},chromevox_next_heading:{message:"Next heading"},chromevox_previous_heading:{message:"Previous heading"}, +chromevox_next_list_item:{message:"Next list item"},chromevox_previous_list_item:{message:"Previous list item"},chromevox_next_jump:{message:"Next jump"},chromevox_previous_jump:{message:"Previous jump"},chromevox_next_link:{message:"Next link"},chromevox_previous_link:{message:"Previous link"},chromevox_next_list:{message:"Next list"},chromevox_previous_list:{message:"Previous list"},chromevox_next_math:{message:"Next math"},chromevox_previous_math:{message:"Previous math"},chromevox_next_media:{message:"Next media"}, +chromevox_previous_media:{message:"Previous media"},chromevox_next_blockquote:{message:"Next block quote"},chromevox_previous_blockquote:{message:"Previous block quote"},chromevox_next_radio:{message:"Next radio button"},chromevox_previous_radio:{message:"Previous radio button"},chromevox_next_slider:{message:"Next slider"},chromevox_previous_slider:{message:"Previous slider"},chromevox_next_table:{message:"Next table"},chromevox_next_visited_link:{message:"Next visited link"},chromevox_previous_table:{message:"Previous table"}, +chromevox_previous_visited_link:{message:"Previous visited link"},chromevox_next_button:{message:"Next button"},chromevox_previous_button:{message:"Previous button"},chromevox_next_checkbox:{message:"Next checkbox"},chromevox_previous_checkbox:{message:"Previous checkbox"},chromevox_next_landmark:{message:"Next landmark"},chromevox_previous_landmark:{message:"Previous landmark"},chromevox_benchmark:{message:"Debug benchmark"},chromevox_announce_position:{message:"Announces a brief description of the current position"}, +chromevox_fully_describe:{message:"Announces a complete description of the current position"},chromevox_options_page_title:{message:"ChromeVox Options"},chromevox_options_page_summary:{message:"Use the options below to customize ChromeVox. Changes take effect immediately."},chromevox_options_mouse_focus_follows:{message:"Use the mouse to change focus."},chromevox_options_site_specific_enhancements:{message:"Enhance specific sites (like Google Search)."},chromevox_options_verbosity_verbose:{message:"Enable verbose descriptions."}, +chromevox_options_cursor_between_characters:{message:"Place cursor between characters when editing text (like Mac OS X)."},chromevox_options_magnifier_show_checkbox:{message:"Show a magnified view of the page content."},chromevox_options_voices:{message:"Voices"},chromevox_options_voices_description:{message:"Change the current voice by selecting an option from the list below."},chromevox_options_braille:{message:"Braille"},chromevox_options_braille_table_type_6:{message:"Switch to 8 dot braille"}, +chromevox_options_braille_table_type_8:{message:"Switch to 6 dot braille"},chromevox_options_braille_description_6:{message:"Change the current 6 dot braille table by selecting an option from the list below."},chromevox_options_braille_locale_grade:{message:"$1, Grade $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_options_braille_description_8:{message:"Change the current 8 dot braille table by selecting an option from the list below."},chromevox_options_keyboard_shortcuts:{message:"Keyboard shortcuts"}, +chromevox_options_keymap_description:{message:"Change the current keymap by selecting an option from the list below."},chromevox_options_select_keys:{message:"Reset current keymap"},chromevox_options_shortcuts_description:{message:"Customize keyboard shortcuts for frequently used commands by typing them into the corresponding fields below."},chromevox_options_modifier_keys:{message:"Modifier keys"},chromevox_options_cvox_modifier_key:{message:"ChromeVox modifier key"},chromevox_kbexplorer_title:{message:"ChromeOS Keyboard Explorer"}, +chromevox_kbexplorer_instructions:{message:"Press any key to learn its name. Ctrl+W will close the keyboard explorer."},chromevox_chrome_system_need_restart:{message:"System was updated. Restart is recommended."},chromevox_chrome_brightness_changed:{message:"Brightness $1 percent",placeholders:{1:{content:"$1"}}},chromevox_chrome_tab_created:{message:"tab created"},chromevox_chrome_tab_selected:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_normal_window_selected:{message:"window $1 tab", +placeholders:{1:{content:"$1"}}},chromevox_chrome_incognito_window_selected:{message:"incognito window $1 tab",placeholders:{1:{content:"$1"}}},chromevox_chrome_menu_opened:{message:"$1 menu opened",placeholders:{1:{content:"$1"}}},chromevox_describe_checkbox_checked:{message:"$1 checkbox checked",placeholders:{1:{content:"$1"}}},chromevox_checkbox_checked_state:{message:"checked"},chromevox_checkbox_checked_state_brl:{message:"x"},chromevox_describe_checkbox_unchecked:{message:"$1, checkbox not checked", +placeholders:{1:{content:"$1"}}},chromevox_checkbox_unchecked_state:{message:"not checked"},chromevox_checkbox_unchecked_state_brl:{message:" "},chromevox_describe_radio_selected:{message:"$1, radio button selected",placeholders:{1:{content:"$1"}}},chromevox_radio_selected_state:{message:"selected"},chromevox_radio_selected_state_brl:{message:"x"},chromevox_describe_radio_unselected:{message:"$1, radio button unselected",placeholders:{1:{content:"$1"}}},chromevox_radio_unselected_state:{message:"unselected"}, +chromevox_radio_unselected_state_brl:{message:" "},chromevox_describe_menu:{message:"$1, menu",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item:{message:"$1, menu item",placeholders:{1:{content:"$1"}}},chromevox_describe_menu_item_with_submenu:{message:"$1, menu item, with submenu",placeholders:{1:{content:"$1"}}},chromevox_describe_window:{message:"$1, window",placeholders:{1:{content:"$1"}}},chromevox_describe_textbox:{message:"$1, $2, text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}}, +chromevox_describe_unnamed_textbox:{message:"$1, text box",placeholders:{1:{content:"$1"}}},chromevox_describe_password:{message:"$1, $2, password text box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_password:{message:"$1, password text box",placeholders:{1:{content:"$1"}}},chromevox_describe_button:{message:"$1, button",placeholders:{1:{content:"$1"}}},chromevox_describe_combobox:{message:"$1, $2, combo box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_combobox:{message:"$1, combo box", +placeholders:{1:{content:"$1"}}},chromevox_describe_listbox:{message:"$1, $2, list box",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_unnamed_listbox:{message:"$1, list box",placeholders:{1:{content:"$1"}}},chromevox_describe_link:{message:"$1, link",placeholders:{1:{content:"$1"}}},chromevox_describe_tab:{message:"$1, tab",placeholders:{1:{content:"$1"}}},chromevox_describe_slider:{message:"$1, $2, slider",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_describe_selected:{message:", selected"}, +chromevox_describe_unselected:{message:", unselected"},chromevox_describe_index:{message:" $1 of $2 ",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_announce_rate:{message:"Rate $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_pitch:{message:"Pitch $1 percent",placeholders:{1:{content:"$1"}}},chromevox_announce_volume:{message:"Volume $1 percent",placeholders:{1:{content:"$1"}}},chromevox_exiting_dialog:{message:"Exited dialog."},chromevox_exited_container:{message:"Exited $1.", +placeholders:{1:{content:"$1"}}},chromevox_entering_dialog:{message:"Entered dialog"},chromevox_live_regions_removed:{message:"removed:"},chromevox_sticky_mode_enabled:{message:"Sticky mode enabled"},chromevox_sticky_mode_disabled:{message:"Sticky mode disabled"},chromevox_keyboard_help_intro:{message:"Keyboard Help"},chromevox_context_menu_intro:{message:"Context Menu"},chromevox_choice_widget_name:{message:"$1 list.",placeholders:{1:{content:"$1"}}},chromevox_choice_widget_help:{message:"Use up and down arrow keys to browse, or type to search."}, +chromevox_choice_widget_exited:{message:"Exited"},chromevox_choice_widget_type_generic:{message:" "},chromevox_end_of_cell:{message:"End of cell."},chromevox_no_url_found:{message:"No URL found"},chromevox_leaving_table:{message:"Leaving table."},chromevox_leaving_grid:{message:"Leaving grid."},chromevox_inside_table:{message:"Inside table"},chromevox_no_tables:{message:"No table found."},chromevox_not_inside_table:{message:"Not inside table."},chromevox_no_cell_below:{message:"No cell below."},chromevox_no_cell_above:{message:"No cell above."}, +chromevox_no_cell_right:{message:"No cell right."},chromevox_no_cell_left:{message:"No cell left."},chromevox_empty_cell:{message:"Empty cell."},chromevox_spanned:{message:"Spanned."},chromevox_row_header:{message:"Row header:"},chromevox_empty_row_header:{message:"Empty row header"},chromevox_column_header:{message:"Column header:"},chromevox_empty_column_header:{message:"Empty column header"},chromevox_no_headers:{message:"No headers"},chromevox_empty_headers:{message:"Empty headers"},chromevox_table_location:{message:"Row $1 of $2, Column $3 of $4", +placeholders:{1:{content:"$1"},2:{content:"$2"},3:{content:"$3"},4:{content:"$4"}}},chromevox_no_next_checkbox:{message:"No next checkbox."},chromevox_no_previous_checkbox:{message:"No previous checkbox."},chromevox_no_next_edit_text:{message:"No next editable text field."},chromevox_no_previous_edit_text:{message:"No previous editable text field."},chromevox_no_next_heading:{message:"No next heading."},chromevox_no_previous_heading:{message:"No previous heading."},chromevox_no_next_heading_1:{message:"No next level 1 heading."}, +chromevox_no_previous_heading_1:{message:"No previous level 1 heading."},chromevox_no_next_heading_2:{message:"No next level 2 heading."},chromevox_no_previous_heading_2:{message:"No previous level 2 heading."},chromevox_no_next_heading_3:{message:"No next level 3 heading."},chromevox_no_previous_heading_3:{message:"No previous level 3 heading."},chromevox_no_next_heading_4:{message:"No next level 4 heading."},chromevox_no_previous_heading_4:{message:"No previous level 4 heading."},chromevox_no_next_heading_5:{message:"No next level 5 heading."}, +chromevox_no_previous_heading_5:{message:"No previous level 5 heading."},chromevox_no_next_heading_6:{message:"No next level 6 heading."},chromevox_no_previous_heading_6:{message:"No previous level 6 heading."},chromevox_no_next_not_link:{message:"No next item that isn't a link."},chromevox_no_previous_not_link:{message:"No previous item that isn't a link."},chromevox_no_next_anchor:{message:"No next anchor."},chromevox_no_previous_anchor:{message:"No previous anchor."},chromevox_no_next_link:{message:"No next link."}, +chromevox_no_previous_link:{message:"No previous link."},chromevox_no_next_table:{message:"No next table."},chromevox_no_previous_table:{message:"No previous table."},chromevox_no_next_visited_link:{message:"No next visited link."},chromevox_no_previous_visited_link:{message:"No previous visited link."},chromevox_no_next_math:{message:"No next math expression."},chromevox_no_previous_math:{message:"No previous math expression."},chromevox_no_next_media_widget:{message:"No next media widget."},chromevox_no_previous_media_widget:{message:"No previous media widget."}, +chromevox_no_next_list:{message:"No next list."},chromevox_no_previous_list:{message:"No previous list."},chromevox_no_next_list_item:{message:"No next list item."},chromevox_no_previous_list_item:{message:"No previous list item."},chromevox_no_next_blockquote:{message:"No next blockquote."},chromevox_no_previous_blockquote:{message:"No previous blockquote."},chromevox_no_next_form_field:{message:"No next form field."},chromevox_no_previous_form_field:{message:"No previous form field."},chromevox_no_next_jump:{message:"No next jump point."}, +chromevox_no_previous_jump:{message:"No previous jump point."},chromevox_no_next_landmark:{message:"No next ARIA landmark."},chromevox_no_previous_landmark:{message:"No previous ARIA landmark."},chromevox_no_next_combo_box:{message:"No next combo box."},chromevox_no_previous_combo_box:{message:"No previous combo box."},chromevox_no_next_button:{message:"No next button."},chromevox_no_previous_button:{message:"No previous button."},chromevox_no_next_graphic:{message:"No next graphic."},chromevox_no_previous_graphic:{message:"No previous graphic."}, +chromevox_no_next_slider:{message:"No next slider."},chromevox_no_previous_slider:{message:"No previous slider."},chromevox_no_next_radio_button:{message:"No next radio button."},chromevox_no_previous_radio_button:{message:"No previous radio button."},chromevox_no_next_section:{message:"No next section."},chromevox_no_previous_section:{message:"No previous section."},chromevox_no_next_control:{message:"No next control."},chromevox_no_previous_control:{message:"No previous control."},chromevox_element_clicked:{message:"Clicked"}, +chromevox_element_double_clicked:{message:"double clicked"},chromevox_powerkey_no_headings:{message:"No headings."},chromevox_powerkey_no_links:{message:"No links."},chromevox_powerkey_no_forms:{message:"No forms."},chromevox_powerkey_no_tables:{message:"No tables."},chromevox_powerkey_no_landmarks:{message:"No ARIA landmarks."},chromevox_powerkey_no_jumps:{message:"No jumps."},chromevox_list_position:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_list_position_brl:{message:"$1/$2", +placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_aria_has_submenu:{message:"has submenu"},chromevox_aria_has_submenu_brl:{message:"+submnu"},chromevox_aria_has_popup:{message:"has pop up"},chromevox_aria_has_popup_brl:{message:"+popup"},chromevox_aria_value_min:{message:"Min $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_min_brl:{message:"min:$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max:{message:"Max $1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_max_brl:{message:"max:$1", +placeholders:{1:{content:"$1"}}},chromevox_aria_value_now:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_value_now_brl:{message:"$1",placeholders:{1:{content:"$1"}}},chromevox_aria_role_alert:{message:"Alert"},chromevox_aria_role_alert_brl:{message:"alrt"},chromevox_aria_role_alertdialog:{message:"Alert dialog"},chromevox_aria_role_alertdialog_brl:{message:"alrt dlg"},chromevox_aria_role_button:{message:"Button"},chromevox_aria_role_button_brl:{message:"btn"},chromevox_aria_role_checkbox:{message:"Check box"}, +chromevox_aria_role_checkbox_brl:{message:"chx"},chromevox_aria_role_combobox:{message:"Combo box"},chromevox_aria_role_combobox_brl:{message:"cbx"},chromevox_aria_role_dialog:{message:"Dialog"},chromevox_aria_role_dialog_brl:{message:"dlg"},chromevox_aria_role_grid:{message:"Grid"},chromevox_aria_role_grid_brl:{message:"grd"},chromevox_aria_role_gridcell:{message:"Cell"},chromevox_aria_role_gridcell_brl:{message:"cl"},chromevox_aria_role_gridcell_pos:{message:"row $1 column $2",placeholders:{1:{content:"$1"}, +2:{content:"$2"}}},chromevox_aria_role_link:{message:"Link"},chromevox_aria_role_link_brl:{message:"lnk"},chromevox_aria_role_link_singular:{message:"1 link"},chromevox_aria_role_link_plural:{message:"$1 links",placeholders:{1:{content:"$1"}}},chromevox_aria_role_listbox:{message:"List box"},chromevox_aria_role_listbox_brl:{message:"lstbx"},chromevox_aria_role_log:{message:"Log"},chromevox_aria_role_log_brl:{message:"log"},chromevox_aria_role_marquee:{message:"Marquee"},chromevox_aria_role_marquee_brl:{message:"maqe"}, +chromevox_aria_role_menu:{message:"Menu"},chromevox_aria_role_menu_brl:{message:"mnu"},chromevox_aria_role_menubar:{message:"Menu bar"},chromevox_aria_role_menubar_brl:{message:"mnu br"},chromevox_aria_role_menuitem:{message:"Menu item"},chromevox_aria_role_menuitem_brl:{message:"mnu itm"},chromevox_aria_role_menuitemcheckbox:{message:"Menu item check box"},chromevox_aria_role_menuitemcheckbox_brl:{message:"mnu itm chx"},chromevox_aria_role_menuitemradio:{message:"Menu item radio button"},chromevox_aria_role_menuitemradio_brl:{message:"mnu itm rd"}, +chromevox_aria_role_option:{message:" "},chromevox_aria_role_option_brl:{message:" "},chromevox_aria_role_popup_button:{message:"Pop-up button"},chromevox_aria_role_popup_button_brl:{message:"pup btn"},chromevox_aria_role_progressbar:{message:"Progress bar"},chromevox_aria_role_progressbar_brl:{message:"prog br"},chromevox_aria_role_radio:{message:"Radio button"},chromevox_aria_role_radio_brl:{message:"rd"},chromevox_aria_role_radiogroup:{message:"Radio button group"},chromevox_aria_role_radiogroup_brl:{message:"rd grp"}, +chromevox_aria_role_scrollbar:{message:"Scroll bar"},chromevox_aria_role_scrollbar_brl:{message:"scr br"},chromevox_aria_role_slider:{message:"Slider"},chromevox_aria_role_slider_brl:{message:"slr"},chromevox_aria_role_spinbutton:{message:"Spin button"},chromevox_aria_role_spinbutton_brl:{message:"spn btn"},chromevox_aria_role_status:{message:"Status"},chromevox_aria_role_status_brl:{message:"sts"},chromevox_aria_role_tab:{message:"Tab"},chromevox_aria_role_tab_brl:{message:"tab"},chromevox_aria_role_tabpanel:{message:"Tab panel"}, +chromevox_aria_role_tabpanel_brl:{message:"tab pnl"},chromevox_aria_role_textbox:{message:"Text box"},chromevox_aria_role_textbox_brl:{message:"txtbx"},chromevox_aria_role_timer:{message:"Timer"},chromevox_aria_role_timer_brl:{message:"tmr"},chromevox_aria_role_toolbar:{message:"Tool bar"},chromevox_aria_role_toolbar_brl:{message:"tl br"},chromevox_aria_role_tooltip:{message:"Tool tip"},chromevox_aria_role_tooltip_brl:{message:"tl tp"},chromevox_aria_role_treeitem:{message:"Tree item"},chromevox_aria_role_treeitem_brl:{message:"tr itm"}, +chromevox_aria_role_article:{message:"Article"},chromevox_aria_role_article_brl:{message:"acl"},chromevox_aria_role_application:{message:"Application"},chromevox_aria_role_application_brl:{message:"app"},chromevox_aria_role_banner:{message:"Banner"},chromevox_aria_role_banner_brl:{message:"bnr"},chromevox_aria_role_columnheader:{message:"Column header"},chromevox_aria_role_columnheader_brl:{message:"clm hd"},chromevox_aria_role_complementary:{message:"Complementary"},chromevox_aria_role_complementary_brl:{message:"cmpy"}, +chromevox_aria_role_contentinfo:{message:"Content info"},chromevox_aria_role_contentinfo_brl:{message:"cnt in"},chromevox_aria_role_definition:{message:"Definition"},chromevox_aria_role_definition_brl:{message:"def"},chromevox_aria_role_directory:{message:"Directory"},chromevox_aria_role_directory_brl:{message:"dir"},chromevox_aria_role_document:{message:"Document"},chromevox_aria_role_document_brl:{message:"doc"},chromevox_aria_role_form:{message:"Form"},chromevox_aria_role_form_brl:{message:"frm"}, +chromevox_aria_role_form_singular:{message:"1 form"},chromevox_aria_role_form_plural:{message:"$1 forms",placeholders:{1:{content:"$1"}}},chromevox_aria_role_group:{message:"Group"},chromevox_aria_role_group_brl:{message:"grp"},chromevox_aria_role_heading:{message:"Heading"},chromevox_aria_role_heading_brl:{message:"hd"},chromevox_aria_role_img:{message:"Image"},chromevox_aria_role_img_brl:{message:"img"},chromevox_aria_role_list:{message:"List"},chromevox_aria_role_list_brl:{message:"lst"},chromevox_aria_role_listitem:{message:"List item"}, +chromevox_aria_role_listitem_brl:{message:"lstitm"},chromevox_aria_role_main:{message:"Main"},chromevox_aria_role_main_brl:{message:"main"},chromevox_aria_role_math:{message:"Math"},chromevox_aria_role_math_brl:{message:"math"},chromevox_aria_role_navigation:{message:"Navigation"},chromevox_aria_role_navigation_brl:{message:"nav"},chromevox_aria_role_note:{message:"Note"},chromevox_aria_role_note_brl:{message:"note"},chromevox_aria_role_region:{message:"Region"},chromevox_aria_role_region_brl:{message:"rgn"}, +chromevox_aria_role_rowheader:{message:"Row header"},chromevox_aria_role_rowheader_brl:{message:"rw hd"},chromevox_aria_role_search:{message:"Search"},chromevox_aria_role_search_brl:{message:"srch"},chromevox_aria_role_separator:{message:"Separator"},chromevox_aria_role_separator_brl:{message:"sprtr"},chromevox_aria_autocomplete_inline:{message:"Autocompletion inline"},chromevox_aria_autocomplete_inline_brl:{message:"autocomplete"},chromevox_aria_autocomplete_list:{message:"Autocompletion list"}, +chromevox_aria_autocomplete_list_brl:{message:"autocomplete lst"},chromevox_aria_autocomplete_both:{message:"Autocompletion inline and list"},chromevox_aria_autocomplete_both_brl:{message:"autocomplete lst"},chromevox_aria_checked_true:{message:"Checked"},chromevox_aria_checked_true_brl:{message:"x"},chromevox_aria_checked_false:{message:"Not checked"},chromevox_aria_checked_false_brl:{message:" "},chromevox_aria_checked_mixed:{message:"Partially checked"},chromevox_aria_checked_mixed_brl:{message:"/x"}, +chromevox_aria_disabled_true:{message:"Disabled"},chromevox_aria_disabled_true_brl:{message:"="},chromevox_aria_expanded_true:{message:"Expanded"},chromevox_aria_expanded_true_brl:{message:">"},chromevox_aria_expanded_false:{message:"Collapsed"},chromevox_aria_expanded_false_brl:{message:"<"},chromevox_aria_invalid_true:{message:"Invalid input"},chromevox_aria_invalid_true_brl:{message:"!"},chromevox_aria_invalid_grammar:{message:"Grammatical mistake detected"},chromevox_aria_invalid_grammar_brl:{message:"Grammatical mistake detected"}, +chromevox_aria_invalid_spelling:{message:"Spelling mistake detected"},chromevox_aria_invalid_spelling_brl:{message:"misspelled"},chromevox_aria_multiline_true:{message:"Multi line"},chromevox_aria_multiline_true_brl:{message:"mult ln"},chromevox_aria_multiselectable_true:{message:"Multi select"},chromevox_aria_multiselectable_true_brl:{message:"mult sel"},chromevox_aria_pressed_true:{message:"Pressed"},chromevox_aria_pressed_true_brl:{message:"x"},chromevox_aria_pressed_false:{message:"Not pressed"}, +chromevox_aria_pressed_false_brl:{message:" "},chromevox_aria_pressed_mixed:{message:"Partially pressed"},chromevox_aria_pressed_mixed_brl:{message:"/x"},chromevox_aria_readonly_true:{message:"Read only"},chromevox_aria_readonly_true_brl:{message:"rdonly"},chromevox_aria_required_true:{message:"Required"},chromevox_aria_required_true_brl:{message:"req"},chromevox_aria_selected_true:{message:"Selected"},chromevox_aria_selected_true_brl:{message:"x"},chromevox_aria_selected_false:{message:"Not selected"}, +chromevox_aria_selected_false_brl:{message:" "},chromevox_tag_link:{message:"Link"},chromevox_tag_link_brl:{message:"lnk"},chromevox_tag_button:{message:"Button"},chromevox_tag_button_brl:{message:"btn"},chromevox_tag_h1:{message:"Heading 1"},chromevox_tag_h1_brl:{message:"h1"},chromevox_tag_h2:{message:"Heading 2"},chromevox_tag_h2_brl:{message:"h2"},chromevox_tag_h3:{message:"Heading 3"},chromevox_tag_h3_brl:{message:"h3"},chromevox_tag_h4:{message:"Heading 4"},chromevox_tag_h4_brl:{message:"h4"}, +chromevox_tag_h5:{message:"Heading 5"},chromevox_tag_h5_brl:{message:"h5"},chromevox_tag_h6:{message:"Heading 6"},chromevox_tag_h6_brl:{message:"h6"},chromevox_tag_li:{message:"List item"},chromevox_tag_li_brl:{message:"lstitm"},chromevox_tag_ol:{message:"Ordered List"},chromevox_tag_ol_brl:{message:"lst"},chromevox_tag_select:{message:"Combo box"},chromevox_tag_select_brl:{message:"cbx"},chromevox_tag_textarea:{message:"Text area"},chromevox_tag_textarea_brl:{message:"txta"},chromevox_tag_table:{message:"table"}, +chromevox_tag_table_brl:{message:"tbl"},chromevox_tag_ul:{message:"List"},chromevox_tag_ul_brl:{message:"lst"},chromevox_tag_section:{message:"Section"},chromevox_tag_section_brl:{message:"stn"},chromevox_tag_nav:{message:"Navigation"},chromevox_tag_nav_brl:{message:"nav"},chromevox_tag_article:{message:"Article"},chromevox_tag_article_brl:{message:"article"},chromevox_tag_aside:{message:"Aside"},chromevox_tag_aside_brl:{message:"aside"},chromevox_tag_hgroup:{message:"Heading group"},chromevox_tag_hgroup_brl:{message:"hgrp"}, +chromevox_tag_header:{message:"Header"},chromevox_tag_header_brl:{message:"hdr"},chromevox_tag_footer:{message:"Footer"},chromevox_tag_footer_brl:{message:"ftr"},chromevox_tag_time:{message:"Time"},chromevox_tag_time_brl:{message:" "},chromevox_tag_mark:{message:"Mark"},chromevox_tag_mark_brl:{message:"mark"},chromevox_tag_video:{message:"Video"},chromevox_tag_video_brl:{message:"video"},chromevox_tag_audio:{message:"Audio"},chromevox_tag_audio_brl:{message:"audio"},chromevox_input_type_button:{message:"Button"}, +chromevox_input_type_button_brl:{message:"btn"},chromevox_input_type_checkbox:{message:"Check box"},chromevox_input_type_checkbox_brl:{message:"chx"},chromevox_input_type_color:{message:"Color picker"},chromevox_input_type_color_brl:{message:"color picker"},chromevox_input_type_datetime:{message:"Date time control"},chromevox_input_type_datetime_brl:{message:"date time"},chromevox_input_type_datetime_local:{message:"Date time control"},chromevox_input_type_datetime_local_brl:{message:"date time"}, +chromevox_input_type_date:{message:"Date control"},chromevox_input_type_date_brl:{message:"date"},chromevox_input_type_email:{message:"Edit text, email entry"},chromevox_input_type_email_brl:{message:"edtxt email"},chromevox_input_type_file:{message:"File selection"},chromevox_input_type_file_brl:{message:"file"},chromevox_input_type_image:{message:"Button"},chromevox_input_type_image_brl:{message:"btn"},chromevox_input_type_month:{message:"Month control"},chromevox_input_type_month_brl:{message:"month"}, +chromevox_input_type_number:{message:"Edit text numeric only"},chromevox_input_type_number_brl:{message:"edtxt#"},chromevox_input_type_password:{message:"Password edit text"},chromevox_input_type_password_brl:{message:"pwd edtxt"},chromevox_input_type_radio:{message:"Radio button"},chromevox_input_type_radio_brl:{message:"rd btn"},chromevox_input_type_range:{message:"Slider"},chromevox_input_type_range_brl:{message:"slr"},chromevox_input_type_reset:{message:"Reset"},chromevox_input_type_reset_brl:{message:"reset"}, +chromevox_input_type_search:{message:"Edit text, search entry"},chromevox_input_type_search_brl:{message:"search edtxt"},chromevox_input_type_submit:{message:"Button"},chromevox_input_type_submit_brl:{message:"btn"},chromevox_input_type_tel:{message:"Edit text, number entry"},chromevox_input_type_tel_brl:{message:"tele# edtxt"},chromevox_input_type_text:{message:"Edit text"},chromevox_input_type_text_brl:{message:"edtxt"},chromevox_input_type_url:{message:"Edit text, URL entry"},chromevox_input_type_url_brl:{message:"url edtxt"}, +chromevox_input_type_week:{message:"Week of the year control"},chromevox_input_type_week_brl:{message:"week"},chromevox_internal_link:{message:"Internal link"},chromevox_internal_link_brl:{message:"int lnk"},chromevox_text_box_blank:{message:"Blank"},chromevox_list_with_items:{message:"with $1 items",placeholders:{1:{content:"$1"}}},chromevox_list_with_items_brl:{message:"+$1",placeholders:{1:{content:"$1"}}},chromevox_state_percent:{message:"$1%",placeholders:{1:{content:"$1"}}},chromevox_state_percent_brl:{message:"$1%", +placeholders:{1:{content:"$1"}}},chromevox_has_submenu:{message:"with submenu"},chromevox_has_submenu_brl:{message:"+submnu"},chromevox_has_popup:{message:"has popup"},chromevox_has_popup_brl:{message:"has popup"},chromevox_collection:{message:"$1 collection with $2 items",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_key:{message:"Enter"},chromevox_space_key:{message:"Space"},chromevox_backspace_key:{message:"Backspace"},chromevox_tab_key:{message:"Tab"},chromevox_left_key:{message:"Left"}, +chromevox_up_key:{message:"Up"},chromevox_right_key:{message:"Right"},chromevox_down_key:{message:"Down"},chromevox_unknown_link:{message:"Unknown link"},chromevox_toggle_chromevox_active:{message:"Toggle ChromeVox active or inactive."},chromevox_chromevox_inactive:{message:"ChromeVox is now inactive."},chromevox_pause:{message:", "},chromevox_end:{message:". "},chromevox_previous_different_element:{message:"Previous different element."},chromevox_next_different_element:{message:"Next different element."}, +chromevox_previous_similar_element:{message:"Previous similar element."},chromevox_next_similar_element:{message:"Next similar element."},chromevox_no_more_similar_elements:{message:"No more similar elements."},chromevox_no_more_different_elements:{message:"No more different elements."},chromevox_index_total:{message:"$1 of $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_enter_css_space:{message:"Enter group exploration"},chromevox_enter_group_exploration:{message:"Exploring groups"}, +chromevox_pdf_header:{message:'This page contains the text automatically extracted from the PDF file <b>$1</b>. <a href="$2">Click here for the original.</a>',placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_object_strategy:{message:"Object"},chromevox_group_strategy:{message:"Group"},chromevox_table_strategy:{message:"Table"},chromevox_row_granularity:{message:"Row"},chromevox_column_granularity:{message:"Column"},chromevox_mathml_tree_granularity:{message:"Math ML Tree"},chromevox_mathml_layout_granularity:{message:"Math ML Layout"}, +chromevox_mathml_token_granularity:{message:"Math ML Token"},chromevox_mathml_leaf_granularity:{message:"Math ML Leaf"},chromevox_visual_strategy:{message:"Visual"},chromevox_custom_strategy:{message:"Custom"},chromevox_line_granularity:{message:"Line"},chromevox_sentence_granularity:{message:"Sentence"},chromevox_word_granularity:{message:"Word"},chromevox_character_granularity:{message:"Character"},chromevox_search_widget_intro:{message:"Find in page."},chromevox_search_widget_intro_help:{message:"Enter a search query."}, +chromevox_search_widget_outro:{message:"Exited find in page."},chromevox_search_widget_no_results:{message:"No more results."},chromevox_modifier_keys:{message:"Modifier Keys"},chromevox_navigation:{message:"ChromeVox Navigation"},chromevox_information:{message:"Information"},chromevox_help_commands:{message:"Help Commands"},chromevox_controlling_speech:{message:"Controlling Speech"},chromevox_overview:{message:"Overview"},chromevox_tables:{message:"Tables"},chromevox_jump_commands:{message:"Jump Commands"}, +chromevox_braille:{message:"Braille"},chromevox_developer:{message:"Developer"},chromevox_keymap_classic:{message:"Classic keymap"},chromevox_keymap_flat:{message:"Flat keymap"},chromevox_keymap_experimental:{message:"Experimental keymap"},chromevox_enable_tts_log:{message:"Enable TTS logging"},chromevox_begin_selection:{message:"Start selection"},chromevox_end_selection:{message:"End selection"},chromevox_selection_is:{message:"Selection is "},chromevox_toggle_selection:{message:"Start or end selection."}, +chromevox_copy:{message:"copy."},chromevox_cut:{message:"cut."},chromevox_paste:{message:"paste."},chromevox_selected:{message:"selected"},chromevox_unselected:{message:"unselected"},chromevox_added_to_selection:{message:"added to selection"},chromevox_removed_from_selection:{message:"removed from selection"},chromevox_then:{message:"then"},chromevox_followed_by:{message:"followed by"},chromevox_modifier_key:{message:"ChromeVox modifier"},chromevox_key_conflict:{message:"$1 is already assigned to a command.", +placeholders:{1:{content:"$1"}}},chromevox_math_expr:{message:"Math"},chromevox_math_expr_brl:{message:"Math"},chromevox_not_inside_math:{message:"Not inside math"},chromevox_timewidget_ampm:{message:"AM PM"},chromevox_timewidget_hours:{message:"hours"},chromevox_timewidget_minutes:{message:"minutes"},chromevox_timewidget_seconds:{message:"seconds"},chromevox_timewidget_milliseconds:{message:"milliseconds"},chromevox_timewidget_am:{message:"AM"},chromevox_timewidget_pm:{message:"PM"},chromevox_datewidget_week:{message:"week"}, +chromevox_datewidget_january:{message:"January"},chromevox_datewidget_february:{message:"February"},chromevox_datewidget_march:{message:"March"},chromevox_datewidget_april:{message:"April"},chromevox_datewidget_may:{message:"May"},chromevox_datewidget_june:{message:"June"},chromevox_datewidget_july:{message:"July"},chromevox_datewidget_august:{message:"August"},chromevox_datewidget_september:{message:"September"},chromevox_datewidget_october:{message:"October"},chromevox_datewidget_november:{message:"November"}, +chromevox_datewidget_december:{message:"December"},chromevox_no_punctuation:{message:"No punctuation"},chromevox_some_punctuation:{message:"Some punctuation"},chromevox_all_punctuation:{message:"All punctuation"},chromevox_search_help_item:{message:"Press enter to accept or escape to cancel, down for next and up for previous."},chromevox_clickable:{message:"clickable"},chromevox_clickable_brl:{message:"clickable"},chromevox_previous_character:{message:"Previous Character"},chromevox_next_character:{message:"Next Character"}, +chromevox_previous_word:{message:"Previous Word"},chromevox_next_word:{message:"Next Word"},chromevox_previous_sentence:{message:"Previous Sentence"},chromevox_next_sentence:{message:"Next Sentence"},chromevox_previous_line:{message:"Previous Line"},chromevox_next_line:{message:"Next Line"},chromevox_previous_object:{message:"Previous Object"},chromevox_next_object:{message:"Next Object"},chromevox_previous_group:{message:"Previous Group"},chromevox_next_group:{message:"Next Group"},chromevox_role_landmark:{message:"Landmark"}, +chromevox_modifier_entry_error:{message:"No modifier pressed; please press and hold one or more modifiers; lift your fingers once done and you will hear the keys set. Tab to exit."},chromevox_modifier_entry_set:{message:"$1 is now the new ChromeVox modifier.",placeholders:{1:{content:"$1"}}},chromevox_keymap_reset:{message:"$1 has been reset.",placeholders:{1:{content:"$1"}}},chromevox_keymap_switch:{message:"Switched to $1.",placeholders:{1:{content:"$1"}}},chromevox_jump_to_top:{message:"Jump to the top of the page"}, +chromevox_jump_to_bottom:{message:"Jump to the bottom of the page"},chromevox_wrapped_to_top:{message:"Wrapped to top"},chromevox_wrapped_to_bottom:{message:"Wrapped to bottom"},chromevox_cycle_punctuation_echo:{message:"Cycle punctuation echo"},chromevox_cycle_typing_echo:{message:"Cycle typing echo"},chromevox_pause_all_media:{message:"Pauses all currently playing media widgets"},chromevox_open_long_desc:{message:"Open long description in a new tab"},chromevox_no_long_desc:{message:"No long description"}, +chromevox_image_with_long_desc:{message:"Image with long description"},chromevox_selected_options_value:{message:"$1 to $2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_value_brl:{message:"$1-$2",placeholders:{1:{content:"$1"},2:{content:"$2"}}},chromevox_selected_options_state:{message:"selected $1 items",placeholders:{1:{content:"$1"}}},chromevox_selected_options_state_brl:{message:"sld $1",placeholders:{1:{content:"$1"}}},chromevox_clear_page_selection:{message:"cleared selection"}, +chromevox_character_echo:{message:"character echo"},chromevox_word_echo:{message:"word echo"},chromevox_character_and_word_echo:{message:"character and word echo"},chromevox_none_echo:{message:"no typing echo"},chromevox_enter_content:{message:"enter structured content, such as tables"},chromevox_exit_content:{message:"exit structured content, such as tables"},chromevox_enter_content_say:{message:"entered $1",placeholders:{1:{content:"$1"}}},chromevox_structural_line:{message:"structural line"},chromevox_layout_line:{message:"line"}, +chromevox_toggle_line_type:{message:"Toggle line type between structural or layout"},chromevox_table_shifter:{message:"table"},chromevox_navigation_shifter:{message:"default navigation"},chromevox_math_shifter:{message:"math"},chromevox_toggle_semantics:{message:"Toggle interpretation of math expressions between structural and semantic"},chromevox_semantics_on:{message:"Semantics on"},chromevox_semantics_off:{message:"Semantics off"},chromevox_phonetic_map:{message:'{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}'}, +chromevox_page_has_one_alert_singular:{message:"This page has 1 alert"},chromevox_page_has_alerts_plural:{message:"This page has $1 alerts",placeholders:{1:{content:"$1"}}},chromevox_review_alerts:{message:"Press Alt+Shift+A to review alerts"},chromevox_no_next_article:{message:"No next article."},chromevox_no_previous_article:{message:"No previous article."},chromevox_chromevox_intro:{message:"ChromeVox spoken feedback is ready"},chromevox_intro_brl:{message:"ChromeVox ready"},chromevox_earcons_on:{message:"Earcons on"}, +chromevox_earcons_off:{message:"Earcons off"},chromevox_toggle_earcons:{message:"Turn sound feedback (earcons) on or off."},chromevox_speak_time_and_date:{message:"Speak the current time and date."},chromevox_mark_as_search_result_brl:{message:"S:$1",placeholders:{1:{content:"$1"}}},chromevox_text_deleted:{message:"Deleted"},chromevox_perform_default_action:{message:"Perform default action"},chromevox_visited_url:{message:"visited"},chromevox_visited_url_brl:{message:"visited"},chromevox_exclamation:{message:"{COUNT, plural, =1 {exclamation point}other {# exclamation points}}"}, +chromevox_space:{message:"{COUNT, plural, =1 {space}other {# spaces}}"},chromevox_backtick:{message:"{COUNT, plural, =1 {backtick}other {# backticks}}"},chromevox_tilde:{message:"{COUNT, plural, =1 {TILDE}other {# tildes}}"},chromevox_at:{message:"{COUNT, plural, =1 {at}other {# at signs}}"},chromevox_pound:{message:"{COUNT, plural, =1 {pound}other {# pound signs}}"},chromevox_dollar:{message:"{COUNT, plural, =1 {dollar}other {# dollar signs}}"},chromevox_percent:{message:"{COUNT, plural, =1 {percent}other {# percent signs}}"}, +chromevox_caret:{message:"{COUNT, plural, =1 {caret}other {# carets}}"},chromevox_ampersand:{message:"{COUNT, plural, =1 {ampersand}other {# ampersands}}"},chromevox_asterisk:{message:"{COUNT, plural, =1 {asterisk}other {# asterisks}}"},chromevox_open_paren:{message:"{COUNT, plural, =1 {open paren}other {# open parens}}"},chromevox_close_paren:{message:"{COUNT, plural, =1 {close paren}other {# close parens}}"},chromevox_dash:{message:"{COUNT, plural, =1 {dash}other {# dashes}}"},chromevox_underscore:{message:"{COUNT, plural, =1 {underscore}other {# underscores}}"}, +chromevox_equals:{message:"{COUNT, plural, =1 {equal}other {# equal signs}}"},chromevox_plus:{message:"{COUNT, plural, =1 {plus}other {# plus signs}}"},chromevox_left_bracket:{message:"{COUNT, plural, =1 {left bracket}other {# left brackets}}"},chromevox_right_bracket:{message:"{COUNT, plural, =1 {right bracket}other {# right brackets}}"},chromevox_left_brace:{message:"{COUNT, plural, =1 {left brace}other {# left braces}}"},chromevox_right_brace:{message:"{COUNT, plural, =1 {right brace}other {# right braces}}"}, +chromevox_pipe:{message:"{COUNT, plural, =1 {pipe}other {# vertical pipes}}"},chromevox_semicolon:{message:"{COUNT, plural, =1 {semicolon}other {# semicolons}}"},chromevox_colon:{message:"{COUNT, plural, =1 {colon}other {# colons}}"},chromevox_comma:{message:"{COUNT, plural, =1 {comma}other {# commas}}"},chromevox_dot:{message:"{COUNT, plural, =1 {dot}=3 {ellipsis}other {# dots}}"},chromevox_less_than:{message:"{COUNT, plural, =1 {less than}other {# less than signs}}"},chromevox_greater_than:{message:"{COUNT, plural, =1 {greater than}other {# greater than signs}}"}, +chromevox_slash:{message:"{COUNT, plural, =1 {slash}other {# slashes}}"},chromevox_question_mark:{message:"{COUNT, plural, =1 {question mark}other {# question marks}}"},chromevox_quote:{message:"{COUNT, plural, =1 {quote}other {# quotes}}"},chromevox_apostrophe:{message:"{COUNT, plural, =1 {apostrophe}other {# apostrophes}}"},chromevox_tab:{message:"{COUNT, plural, =1 {tab}other {# tabs}}"},chromevox_backslash:{message:"{COUNT, plural, =1 {backslash}other {# backslashes}}"},chromevox_braille_routing:{message:"Click the item under a routing key"}, +chromevox_braille_pan_left:{message:"Pan backward"},chromevox_braille_pan_right:{message:"Pan bforward"},chromevox_braille_line_up:{message:"Braille previous Line"},chromevox_braille_line_down:{message:"Braille next Line"},chromevox_braille_top:{message:"Move braille display to top of page"},chromevox_braille_bottom:{message:"Move braille display to bottom of page"},chromevox_access_key:{message:"has access key, $1",placeholders:{1:{content:"$1"}}},chromevox_locale_dict:{message:'{"ar": "Arabic","bg": "Bulgarian","ca": "Catalan","hr": "Croatian","cs": "Czech","da": "Danish","nl": "Dutch","en_CA": "English (Canada)","en_GB": "English (United Kingdom)","en_US": "English (United States)","et": "Estonian","fr": "French","fr_CA": "French (Canada)","fr_FR": "French (France)","fi": "Finnish","de": "German","de_CH": "German (Switzerland)","de_DE": "German (Germany)","el": "Greek","hi": "Hindi","hu": "Hungarian","is": "Icelandic","it": "Italian","lv": "Latvian","lt": "Lithuanian","nb": "Norwegian Bokm\u00e5l","pl": "Polish","pt": "Portuguese","ro": "Romanian","ru": "Russian","sr": "Serbian","sk": "Slovak","sl": "Slovenian","es": "Spanish","sv": "Swedish","tr": "Turkish","vi": "Vietnamese","zh": "Chinese","zh_TW": "Chinese (Traditional Han)"}'}};cvox.TestMsgs=function(){};goog.inherits(cvox.TestMsgs,cvox.AbstractMsgs);cvox.TestMsgs.prototype.getMsg=function(a,b){if(!a){var c=Error();c.message="Message id required";throw c;}c=cvox.TestMessages["chromevox_"+a];if(void 0==c)throw c=Error(),c.message="missing-msg: "+a,c;var d=c.message;if(b)for(var e=0;e<b.length;e++){var f=c.placeholders[e+1];if(!f)throw c=Error(),c.message="Bad placeholder "+e+" for message id "+a,c;f=c.placeholders[e+1].content;d=d.replace(f,b[e])}return d}; +cvox.TestMsgs.prototype.getNumber=function(a){return""+a};cvox.HostFactory.msgsConstructor=cvox.TestMsgs;cvox.ChromeVox.initDocument(); diff --git a/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js b/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js new file mode 100644 index 00000000..f5d0aaf7 --- /dev/null +++ b/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js @@ -0,0 +1,53 @@ +cordova.define("phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", function(require, exports, module) { +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +/** + * Mobile Accessibility Notification event constants + */ +module.exports = { + /* MobileAccessibility window events */ + SCREEN_READER_STATUS_CHANGED : "screenreaderstatuschanged", + CLOSED_CAPTIONING_STATUS_CHANGED : "closedcaptioningstatuschanged", + GUIDED_ACCESS_STATUS_CHANGED : "guidedaccessstatuschanged", + INVERT_COLORS_STATUS_CHANGED : "invertcolorsstatuschanged", + MONO_AUDIO_STATUS_CHANGED : "monoaudiostatuschanged", + REDUCE_MOTION_STATUS_CHANGED : "reducemotionstatuschanged", + TOUCH_EXPLORATION_STATUS_CHANGED : "touchexplorationstatechanged", + BOLD_TEXT_STATUS_CHANGED : "boldtextstatuschanged", + DARKER_SYSTEM_COLORS_STATUS_CHANGED : "darkersystemcolorsstatuschanged", + GRAYSCALE_STATUS_CHANGED : "grayscalestatuschanged", + REDUCE_TRANSPARENCY_STATUS_CHANGED : "reducetransparencystatuschanged", + SPEAK_SCREEN_STATUS_CHANGED : "speakscreenstatuschanged", + SPEAK_SELECTION_STATUS_CHANGED : "speakselectionstatuschanged", + SWITCH_CONTROL_STATUS_CHANGED : "switchcontrolstatuschanged", + + /* iOS specific UIAccessibilityNotifications */ + SCREEN_CHANGED : 1000, + LAYOUT_CHANGED : 1001, + ANNOUNCEMENT : 1008, + PAGE_SCROLLED : 1009, + + /* Windows specific high contrast event */ + HIGH_CONTRAST_CHANGED : "highcontrastchanged" +}; + +}); diff --git a/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js b/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js new file mode 100644 index 00000000..852b8d34 --- /dev/null +++ b/StoneIsland/platforms/android/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js @@ -0,0 +1,502 @@ +cordova.define("phonegap-plugin-mobile-accessibility.mobile-accessibility", function(require, exports, module) { +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +var argscheck = require('cordova/argscheck'), + utils = require('cordova/utils'), + exec = require('cordova/exec'), + device = require('cordova-plugin-device.device'), + network = require('cordova-plugin-network-information.network'), + connection = require('cordova-plugin-network-information.Connection'), + MobileAccessibilityNotifications = require('phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications'); + +var MobileAccessibility = function() { + this._isBoldTextEnabled = false; + this._isClosedCaptioningEnabled = false; + this._isDarkerSystemColorsEnabled = false; + this._isGrayscaleEnabled = false; + this._isGuidedAccessEnabled = false; + this._isInvertColorsEnabled = false; + this._isMonoAudioEnabled = false; + this._isReduceMotionEnabled = false; + this._isReduceTransparencyEnabled = false; + this._isScreenReaderRunning = false; + this._isSpeakScreenEnabled = false; + this._isSpeakSelectionEnabled = false; + this._isSwitchControlRunning = false; + this._isTouchExplorationEnabled = false; + this._usePreferredTextZoom = false; + this._isHighContrastEnabled = false; + this._highContrastScheme = undefined; + + // Create new event handlers on the window (returns a channel instance) + this.channels = { + boldtextstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED), + closedcaptioningstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED), + darkersystemcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED), + grayscalestatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED), + guidedaccessstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED), + invertcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED), + monoaudiostatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED), + reducemotionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED), + reducetransparencystatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED), + screenreaderstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED), + speakscreenstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED), + speakselectionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED), + switchcontrolstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED), + touchexplorationstatechanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED), + highcontrastchanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED) + }; + for (var key in this.channels) { + this.channels[key].onHasSubscribersChange = MobileAccessibility.onHasSubscribersChange; + } +}; + +/** + * @private + * @ignore + */ +function handlers() { + return mobileAccessibility.channels.boldtextstatuschanged.numHandlers + + mobileAccessibility.channels.closedcaptioningstatuschanged.numHandlers + + mobileAccessibility.channels.darkersystemcolorsstatuschanged.numHandlers + + mobileAccessibility.channels.grayscalestatuschanged.numHandlers + + mobileAccessibility.channels.guidedaccessstatuschanged.numHandlers + + mobileAccessibility.channels.invertcolorsstatuschanged.numHandlers + + mobileAccessibility.channels.monoaudiostatuschanged.numHandlers + + mobileAccessibility.channels.reducemotionstatuschanged.numHandlers + + mobileAccessibility.channels.reducetransparencystatuschanged.numHandlers + + mobileAccessibility.channels.screenreaderstatuschanged.numHandlers + + mobileAccessibility.channels.speakscreenstatuschanged.numHandlers + + mobileAccessibility.channels.speakselectionstatuschanged.numHandlers + + mobileAccessibility.channels.switchcontrolstatuschanged.numHandlers + + mobileAccessibility.channels.touchexplorationstatechanged.numHandlers + + mobileAccessibility.channels.highcontrastchanged.numHandlers; +}; + +/** + * + * Event handlers for when callback methods get registered for mobileAccessibility. + * Keep track of how many handlers we have so we can start and stop the native MobileAccessibility listener + * appropriately. + * @private + * @ignore + */ +MobileAccessibility.onHasSubscribersChange = function() { + // If we just registered the first handler, make sure native listener is started. + if (this.numHandlers === 1 && handlers() === 1) { + exec(mobileAccessibility._status, mobileAccessibility._error, "MobileAccessibility", "start", []); + } else if (handlers() === 0) { + exec(null, null, "MobileAccessibility", "stop", []); + } +}; + +/** + * Asynchronous call to native MobileAccessibility determine if a screen reader is running. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isScreenReaderRunning = function(callback) { + exec(function(bool) { + mobileAccessibility.activateOrDeactivateChromeVox(bool); + callback(Boolean(bool)); + }, null, "MobileAccessibility", "isScreenReaderRunning", []); +}; +MobileAccessibility.prototype.isVoiceOverRunning = function(callback) { + if (device.platform.toLowerCase() === "ios") { + MobileAccessibility.prototype.isScreenReaderRunning(callback); + } else { + callback(false); + } +}; +MobileAccessibility.prototype.isTalkBackRunning = function(callback) { + if (device.platform.toLowerCase() === "android" || device.platform.toLowerCase() === "amazon-fireos") { + MobileAccessibility.prototype.isScreenReaderRunning(callback); + } else { + callback(false); + } +}; +MobileAccessibility.prototype.isChromeVoxActive = function () { + return typeof cvox !== "undefined" && cvox.ChromeVox.host.ttsLoaded() && cvox.Api.isChromeVoxActive(); +}; +MobileAccessibility.prototype.activateOrDeactivateChromeVox = function(bool) { + if (device.platform !== "Android") return; + if (typeof cvox === "undefined") { + if (bool) { + console.warn('A screen reader is running but ChromeVox has failed to initialize.'); + if (navigator.connection.type === Connection.UNKNOWN || navigator.connection.type === Connection.NONE) { + mobileAccessibility.injectLocalAndroidVoxScript(); + } + } + } else { + // activate or deactivate ChromeVox based on whether or not or not the screen reader is running. + try { + cvox.ChromeVox.host.activateOrDeactivateChromeVox(bool); + } catch (err) { + console.error(err); + } + } + + if (bool) { + if (!mobileAccessibility.hasOrientationChangeListener) { + window.addEventListener("orientationchange", mobileAccessibility.onOrientationChange); + mobileAccessibility.hasOrientationChangeListener = true; + } + } else if(mobileAccessibility.hasOrientationChangeListener) { + window.removeEventListener("orientationchange", mobileAccessibility.onOrientationChange); + mobileAccessibility.hasOrientationChangeListener = false; + } +}; + +MobileAccessibility.prototype.hasOrientationChangeListener = false; +MobileAccessibility.prototype.onOrientationChange = function(event) { + if (!mobileAccessibility.isChromeVoxActive()) return; + cvox.ChromeVox.navigationManager.updateIndicator(); +}; + +MobileAccessibility.prototype.scriptInjected = false; +MobileAccessibility.prototype.injectLocalAndroidVoxScript = function() { + var versionsplit = device.version.split('.'); + if (device.platform !== "Android" || + !(versionsplit[0] > 4 || (versionsplit[0] == 4 && versionsplit[1] >= 1)) || + typeof cvox !== "undefined" || mobileAccessibility.scriptInjected) return; + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.onload = function(){ + // console.log(this.src + ' has loaded'); + if (mobileAccessibility.isChromeVoxActive()) { + cordova.fireWindowEvent("screenreaderstatuschanged", { + isScreenReaderRunning: true + }); + } + }; + + script.src = (versionsplit[0] > 4 || versionsplit[1] > 3) + ? "plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js" + : "plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js"; + document.getElementsByTagName('head')[0].appendChild(script); + mobileAccessibility.scriptInjected = true; +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Bold Text is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isBoldTextEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isBoldTextEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Closed Captioning is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isClosedCaptioningEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isClosedCaptioningEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Darker System Colors are enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isDarkerSystemColorsEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isDarkerSystemColorsEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Grayscale is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isGrayscaleEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isGrayscaleEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Guided Access is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isGuidedAccessEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isGuidedAccessEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if the display colors have been inverted. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isInvertColorsEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isInvertColorsEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Mono Audio is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isMonoAudioEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isMonoAudioEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Reduce Motion is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isReduceMotionEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isReduceMotionEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Reduce Transparency is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isReduceTransparencyEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isReduceTransparencyEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Speak Screen is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSpeakScreenEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isSpeakScreenEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Speak Selection is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSpeakSelectionEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isSpeakSelectionEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Switch Control is running. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSwitchControlRunning = function(callback) { + exec(callback, null, "MobileAccessibility", "isSwitchControlRunning", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Touch Exploration is enabled on Android. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isTouchExplorationEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isTouchExplorationEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if High Contrast is enabled on Windows. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isHighContrastEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isHighContrastEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to return the current text zoom percent value for the WebView. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.getTextZoom = function(callback) { + exec(callback, null, "MobileAccessibility", "getTextZoom", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to set the current text zoom percent value for the WebView. + * @param {Number} textZoom A percentage value by which text in the WebView should be scaled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.setTextZoom = function(textZoom, callback) { + exec(callback, null, "MobileAccessibility", "setTextZoom", [textZoom]); +}; + +/** + * Asynchronous call to native MobileAccessibility to retrieve the user's preferred text zoom from system settings and apply it to the application WebView. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.updateTextZoom = function(callback) { + exec(callback, null, "MobileAccessibility", "updateTextZoom", []); +}; + +MobileAccessibility.prototype.usePreferredTextZoom = function(bool) { + var currentValue = window.localStorage.getItem("MobileAccessibility.usePreferredTextZoom") === "true"; + + if (arguments.length === 0) { + return currentValue; + } + + if (currentValue != bool) { + window.localStorage.setItem("MobileAccessibility.usePreferredTextZoom", bool); + } + + var callback = function(){ + // Wrapping updateTextZoom call in a function to stop + // the event parameter propagation. This fixes an error + // on resume where cordova tried to call apply() on the + // event, expecting a function. + mobileAccessibility.updateTextZoom(); + }; + + document.removeEventListener("resume", callback); + + if (bool) { + // console.log("We should update the text zoom at this point: " + bool) + document.addEventListener("resume", callback, false); + mobileAccessibility.updateTextZoom(); + } else { + mobileAccessibility.setTextZoom(100); + } + + return Boolean(bool); +}; + +MobileAccessibility.prototype.MobileAccessibilityNotifications = MobileAccessibilityNotifications; + +/** + * Posts a notification with a string for a screen reader to announce, if it is running. + * @param {uint} mobileAccessibilityNotification A numeric constant for the type of notification to send. Constants are defined in MobileAccessibility.MobileAccessibilityNotifications. + * @param {string} string A string to be announced by a screen reader. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility, when the announcement is finished, the function should expect an object containing the stringValue that was voiced and a boolean indicating that the announcement wasSuccessful. + */ +MobileAccessibility.prototype.postNotification = function(mobileAccessibilityNotification, string, callback) { + exec(callback, null, "MobileAccessibility", "postNotification", [mobileAccessibilityNotification, string]); +}; + +/** + * Speaks the given string, and if ChromeVox is active, it will use the specified queueMode and properties. + * @param {string} string A string to be announced by a screen reader. + * @param {number} [queueMode] Optional number. Valid modes are 0 for flush; 1 for queue. + * @param {Object} [properties] Speech properties to use for this utterance. + */ +MobileAccessibility.prototype.speak = function(string, queueMode, properties) { + if (this.isChromeVoxActive()) { + cvox.ChromeVox.tts.speak(string, queueMode, properties); + } else { + exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, string]); + } +} + +/** + * Stops speech. + */ +MobileAccessibility.prototype.stop = function() { + if (this.isChromeVoxActive()) { + cvox.ChromeVox.tts.stop(); + } else { + exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, "\u200b"]); + } +} + +/** + * Callback from native MobileAccessibility returning an object which describes the status of MobileAccessibility features. + * + * @param {Object} info + * @config {Boolean} [isBoldTextEnabled] Boolean to indicate bold text status (ios). + * @config {Boolean} [isClosedCaptioningEnabled] Boolean to indicate closed captioning status. + * @config {Boolean} [isDarkerSystemColorsEnabled] Boolean to indicate darker system colors status (ios). + * @config {Boolean} [isGrayscaleEnabled] Boolean to indicate grayscale status (ios). + * @config {Boolean} [isGuidedAccessEnabled] Boolean to indicate guided access status (ios). + * @config {Boolean} [isInvertColorsEnabled] Boolean to indicate invert colors status (ios). + * @config {Boolean} [isMonoAudioEnabled] Boolean to indicate mono audio status (ios). + * @config {Boolean} [isReduceMotionEnabled] Boolean to indicate reduce motion status (ios). + * @config {Boolean} [isReduceTransparencyEnabled] Boolean to indicate reduce transparency status (ios). + * @config {Boolean} [isScreenReaderRunning] Boolean to indicate screen reader status. + * @config {Boolean} [isSpeakScreenEnabled] Boolean to indicate speak screen status (ios). + * @config {Boolean} [isSpeakSelectionEnabled] Boolean to indicate speak selection status (ios). + * @config {Boolean} [isSwitchControlRunning] Boolean to indicate switch control status (ios). + * @config {Boolean} [isTouchExplorationEnabled] Boolean to indicate touch exploration status (android). + */ +MobileAccessibility.prototype._status = function(info) { + if (info) { + mobileAccessibility.activateOrDeactivateChromeVox(info.isScreenReaderRunning); + if (mobileAccessibility._isBoldTextEnabled !== info.isBoldTextEnabled) { + mobileAccessibility._isBoldTextEnabled = info.isBoldTextEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED, info); + } + if (mobileAccessibility._isClosedCaptioningEnabled !== info.isClosedCaptioningEnabled) { + mobileAccessibility._isClosedCaptioningEnabled = info.isClosedCaptioningEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED, info); + } + if (mobileAccessibility._isDarkerSystemColorsEnabled !== info.isDarkerSystemColorsEnabled) { + mobileAccessibility._isDarkerSystemColorsEnabled = info.isDarkerSystemColorsEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isGrayscaleEnabled !== info.isGrayscaleEnabled) { + mobileAccessibility._isGrayscaleEnabled = info.isGrayscaleEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED, info); + } + if (mobileAccessibility._isGuidedAccessEnabled !== info.isGuidedAccessEnabled) { + mobileAccessibility._isGuidedAccessEnabled = info.isGuidedAccessEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isInvertColorsEnabled !== info.isInvertColorsEnabled) { + mobileAccessibility._isInvertColorsEnabled = info.isInvertColorsEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isMonoAudioEnabled !== info.isMonoAudioEnabled) { + mobileAccessibility._isMonoAudioEnabled = info.isMonoAudioEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED, info); + } + if (mobileAccessibility._isReduceMotionEnabled !== info.isReduceMotionEnabled) { + mobileAccessibility._isReduceMotionEnabled = info.isReduceMotionEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isReduceTransparencyEnabled !== info.isReduceTransparencyEnabled) { + mobileAccessibility._isReduceTransparencyEnabled = info.isReduceTransparencyEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED, info); + } + if (mobileAccessibility._isScreenReaderRunning !== info.isScreenReaderRunning) { + mobileAccessibility._isScreenReaderRunning = info.isScreenReaderRunning; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSpeakScreenEnabled !== info.isSpeakScreenEnabled) { + mobileAccessibility._isSpeakScreenEnabled = info.isSpeakScreenEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSpeakSelectionEnabled !== info.isSpeakSelectionEnabled) { + mobileAccessibility._isSpeakSelectionEnabled = info.isSpeakSelectionEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSwitchControlRunning !== info.isSwitchControlRunning) { + mobileAccessibility._isSwitchControlRunning = info.isSwitchControlRunning; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED, info); + } + if (mobileAccessibility._isTouchExplorationEnabled !== info.isTouchExplorationEnabled) { + mobileAccessibility._isTouchExplorationEnabled = info.isTouchExplorationEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isHighContrastEnabled !== info.isHighContrastEnabled) { + mobileAccessibility._isHighContrastEnabled = info.isHighContrastEnabled; + mobileAccessibility._highContrastScheme = info.highContrastScheme; + cordova.fireWindowEvent(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED, info); + } + } +}; + +/** + * Error callback for MobileAccessibility start + */ +MobileAccessibility.prototype._error = function(e) { + console.log("Error initializing MobileAccessibility: " + e); +}; + +var mobileAccessibility = new MobileAccessibility(); + +module.exports = mobileAccessibility; + +}); diff --git a/StoneIsland/platforms/android/res/xml/config.xml b/StoneIsland/platforms/android/res/xml/config.xml index dc38ba1b..940d11f9 100644 --- a/StoneIsland/platforms/android/res/xml/config.xml +++ b/StoneIsland/platforms/android/res/xml/config.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<widget android-versionCode="6110" id="us.okfoc.stoneisland" version="1.1.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> +<widget android-versionCode="6121" id="us.okfoc.stoneisland" version="1.2.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <feature name="InAppBrowser"> <param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" /> </feature> @@ -76,5 +76,10 @@ <preference name="AutoHideSplashScreen" value="true" /> <preference name="AllowInlineMediaPlayback" value="true" /> <preference name="AndroidLaunchMode" value="singleTop" /> - <preference name="android-minSdkVersion" value="26" /> + <preference name="android-minSdkVersion" value="28" /> + <preference name="android-targetSdkVersion" value="28" /> + <access origin="https://ssl.gstatic.com/accessibility/javascript/android/*" /> + <feature name="MobileAccessibility"> + <param name="android-package" value="com.phonegap.plugin.mobileaccessibility.MobileAccessibility" /> + </feature> </widget> diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/AbstractMobileAccessibilityHelper.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/AbstractMobileAccessibilityHelper.java new file mode 100644 index 00000000..d76a951f --- /dev/null +++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/AbstractMobileAccessibilityHelper.java @@ -0,0 +1,41 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +package com.phonegap.plugin.mobileaccessibility; + +import android.view.ViewParent; + +abstract class AbstractMobileAccessibilityHelper { + MobileAccessibility mMobileAccessibility; + ViewParent mParent; + public abstract void initialize(MobileAccessibility mobileAccessibility); + public abstract boolean isClosedCaptioningEnabled(); + public abstract boolean isScreenReaderRunning(); + public abstract boolean isTouchExplorationEnabled(); + public abstract void onAccessibilityStateChanged(boolean enabled); + public abstract void onCaptioningEnabledChanged(boolean enabled); + public abstract void onTouchExplorationStateChanged(boolean enabled); + public abstract void addStateChangeListeners(); + public abstract void removeStateChangeListeners(); + public abstract void announceForAccessibility(CharSequence text); + public abstract double getTextZoom(); + public abstract void setTextZoom(double textZoom); +} diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java new file mode 100644 index 00000000..e6972719 --- /dev/null +++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/DonutMobileAccessibilityHelper.java @@ -0,0 +1,187 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +package com.phonegap.plugin.mobileaccessibility; + +import android.annotation.TargetApi; +import android.content.Context; +import android.os.Build; +import android.view.accessibility.AccessibilityEvent; +import android.view.accessibility.AccessibilityManager; +import android.view.View; +import android.webkit.WebSettings; +import android.webkit.WebView; + +import java.lang.IllegalAccessException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +@TargetApi(Build.VERSION_CODES.DONUT) +public class DonutMobileAccessibilityHelper extends + AbstractMobileAccessibilityHelper { + AccessibilityManager mAccessibilityManager; + View mView; + + @Override + public void initialize(MobileAccessibility mobileAccessibility) { + mMobileAccessibility = mobileAccessibility; + WebView view; + try { + view = (WebView) mobileAccessibility.webView; + mView = view; + } catch(ClassCastException ce) { // cordova-android 4.0+ + try { + Method getView = mobileAccessibility.webView.getClass().getMethod("getView"); + mView = (View) getView.invoke(mobileAccessibility.webView); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + + mAccessibilityManager = (AccessibilityManager) mMobileAccessibility.cordova.getActivity().getSystemService(Context.ACCESSIBILITY_SERVICE); + } + + @Override + public boolean isClosedCaptioningEnabled() { + return false; + } + + @Override + public boolean isScreenReaderRunning() { + return mAccessibilityManager.isEnabled(); + } + + @Override + public boolean isTouchExplorationEnabled() { + return false; + } + + @Override + public void onAccessibilityStateChanged(boolean enabled) { + mMobileAccessibility.onAccessibilityStateChanged(enabled); + } + + @Override + public void onCaptioningEnabledChanged(boolean enabled) { + mMobileAccessibility.onCaptioningEnabledChanged(enabled); + } + + @Override + public void onTouchExplorationStateChanged(boolean enabled) { + mMobileAccessibility.onTouchExplorationStateChanged(enabled); + } + + @Override + public void addStateChangeListeners() { + } + + @Override + public void removeStateChangeListeners() { + } + + @Override + public void announceForAccessibility(CharSequence text) { + if (!mAccessibilityManager.isEnabled()) { + return; + } + + final int eventType = AccessibilityEvent.TYPE_VIEW_FOCUSED; + final AccessibilityEvent event = AccessibilityEvent.obtain(eventType); + event.getText().add(text); + event.setEnabled(mView.isEnabled()); + event.setClassName(mView.getClass().getName()); + event.setPackageName(mView.getContext().getPackageName()); + event.setContentDescription(null); + + mAccessibilityManager.sendAccessibilityEvent(event); + } + + @SuppressWarnings("deprecation") + @Override + public double getTextZoom() { + double zoom = 100; + WebSettings.TextSize wTextSize = WebSettings.TextSize.NORMAL; + + try { + Method getSettings = mView.getClass().getMethod("getSettings"); + Object wSettings = getSettings.invoke(mView); + Method getTextSize = wSettings.getClass().getMethod("getTextSize"); + wTextSize = (WebSettings.TextSize) getTextSize.invoke(wSettings); + } catch(ClassCastException ce) { + ce.printStackTrace(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + + switch (wTextSize) { + case LARGEST: + zoom = 200; + break; + case LARGER: + zoom = 150; + break; + case SMALLER: + zoom = 75; + break; + case SMALLEST: + zoom = 50; + break; + } + + return zoom; + } + + @SuppressWarnings("deprecation") + @Override + public void setTextZoom(double textZoom) { + WebSettings.TextSize wTextSize = WebSettings.TextSize.SMALLEST; + if (textZoom > 115) { + wTextSize = WebSettings.TextSize.LARGEST; + } else if (textZoom > 100) { + wTextSize = WebSettings.TextSize.LARGER; + } else if (textZoom == 100) { + wTextSize = WebSettings.TextSize.NORMAL; + } else if (textZoom > 50) { + wTextSize = WebSettings.TextSize.SMALLER; + } + //Log.i("MobileAccessibility", "fontScale = " + zoom + ", WebSettings.TextSize = " + wTextSize.toString()); + try { + Method getSettings = mView.getClass().getMethod("getSettings"); + Object wSettings = getSettings.invoke(mView); + Method setTextSize = wSettings.getClass().getMethod("setTextSize", WebSettings.TextSize.class); + setTextSize.invoke(wSettings, wTextSize); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } +} diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/IceCreamSandwichMobileAccessibilityHelper.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/IceCreamSandwichMobileAccessibilityHelper.java new file mode 100644 index 00000000..f0cd252e --- /dev/null +++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/IceCreamSandwichMobileAccessibilityHelper.java @@ -0,0 +1,104 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +package com.phonegap.plugin.mobileaccessibility; + +import android.accessibilityservice.AccessibilityServiceInfo; +import android.annotation.TargetApi; +import android.os.Build; +import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener; + +import java.lang.IllegalAccessException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) +public class IceCreamSandwichMobileAccessibilityHelper extends + DonutMobileAccessibilityHelper { + private AccessibilityStateChangeListener mAccessibilityStateChangeListener; + + @Override + public boolean isScreenReaderRunning() { + return mAccessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_SPOKEN).size() > 0; + } + + @Override + public void addStateChangeListeners() { + if (mAccessibilityStateChangeListener == null) { + mAccessibilityStateChangeListener = new InternalAccessibilityStateChangeListener(); + } + mAccessibilityManager.addAccessibilityStateChangeListener(mAccessibilityStateChangeListener); + } + + @Override + public void removeStateChangeListeners() { + mAccessibilityManager.removeAccessibilityStateChangeListener(mAccessibilityStateChangeListener); + mAccessibilityStateChangeListener = null; + } + + @Override + public double getTextZoom() { + double zoom = 100; + try { + Method getSettings = mView.getClass().getMethod("getSettings"); + Object wSettings = getSettings.invoke(mView); + Method getTextZoom = wSettings.getClass().getMethod("getTextZoom"); + zoom = Double.valueOf(getTextZoom.invoke(wSettings).toString()); + } catch (ClassCastException ce) { + ce.printStackTrace(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return zoom; + } + + @Override + public void setTextZoom(double textZoom) { + //Log.i("MobileAccessibility", "setTextZoom(" + zoom + ")"); + try { + Method getSettings = mView.getClass().getMethod("getSettings"); + Object wSettings = getSettings.invoke(mView); + Method setTextZoom = wSettings.getClass().getMethod("setTextZoom", Integer.TYPE); + setTextZoom.invoke(wSettings, (int) textZoom); + } catch (ClassCastException ce) { + ce.printStackTrace(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + + private class InternalAccessibilityStateChangeListener + implements AccessibilityStateChangeListener { + + @Override + public void onAccessibilityStateChanged(boolean enabled) { + mMobileAccessibility.onAccessibilityStateChanged(enabled); + } + } +} diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java new file mode 100644 index 00000000..7c97d247 --- /dev/null +++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/JellyBeanMobileAccessibilityHelper.java @@ -0,0 +1,52 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +package com.phonegap.plugin.mobileaccessibility; + +import com.phonegap.plugin.mobileaccessibility.MobileAccessibility; + +import android.annotation.TargetApi; +import android.os.Build; +import android.view.accessibility.AccessibilityEvent; + +@TargetApi(Build.VERSION_CODES.JELLY_BEAN) +public class JellyBeanMobileAccessibilityHelper extends + IceCreamSandwichMobileAccessibilityHelper { + + @Override + public void initialize(MobileAccessibility mobileAccessibility) { + super.initialize(mobileAccessibility); + mParent = mView.getParentForAccessibility(); + } + + @Override + public void announceForAccessibility(CharSequence text) { + if (mAccessibilityManager.isEnabled() && mParent != null) { + mAccessibilityManager.interrupt(); + AccessibilityEvent event = AccessibilityEvent.obtain( + AccessibilityEvent.TYPE_ANNOUNCEMENT); + mView.onInitializeAccessibilityEvent(event); + event.getText().add(text); + event.setContentDescription(null); + mParent.requestSendAccessibilityEvent(mView, event); + } + } +} diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/KitKatMobileAccessibilityHelper.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/KitKatMobileAccessibilityHelper.java new file mode 100644 index 00000000..11d342cb --- /dev/null +++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/KitKatMobileAccessibilityHelper.java @@ -0,0 +1,99 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +package com.phonegap.plugin.mobileaccessibility; + +import android.accessibilityservice.AccessibilityServiceInfo; +import android.annotation.TargetApi; +import android.content.Context; +import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener; +import android.view.accessibility.CaptioningManager; +import android.view.accessibility.CaptioningManager.CaptioningChangeListener; + +@TargetApi(19) +public class KitKatMobileAccessibilityHelper extends + JellyBeanMobileAccessibilityHelper { + private CaptioningManager mCaptioningManager; + private CaptioningChangeListener mCaptioningChangeListener; + private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener; + + @Override + public void initialize(MobileAccessibility mobileAccessibility) { + super.initialize(mobileAccessibility); + mCaptioningManager = (CaptioningManager) mobileAccessibility.cordova.getActivity().getSystemService(Context.CAPTIONING_SERVICE); + } + + @Override + public boolean isScreenReaderRunning() { + return mAccessibilityManager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_BRAILLE | AccessibilityServiceInfo.FEEDBACK_SPOKEN).size() > 0; + } + + @Override + public boolean isClosedCaptioningEnabled() { + return mCaptioningManager.isEnabled(); + } + + @Override + public boolean isTouchExplorationEnabled() { + return mAccessibilityManager.isTouchExplorationEnabled(); + } + + @Override + public void addStateChangeListeners() { + super.addStateChangeListeners(); + if (mCaptioningChangeListener == null) { + mCaptioningChangeListener = new CaptioningChangeListener() { + @Override + public void onEnabledChanged(boolean enabled) { + onCaptioningEnabledChanged(enabled); + } + }; + } + mCaptioningManager.addCaptioningChangeListener(mCaptioningChangeListener); + + if (mTouchExplorationStateChangeListener == null) { + mTouchExplorationStateChangeListener = new InternalTouchExplorationStateChangeListener(); + } + mAccessibilityManager.addTouchExplorationStateChangeListener(mTouchExplorationStateChangeListener); + } + + @Override + public void removeStateChangeListeners() { + super.removeStateChangeListeners(); + if (mCaptioningChangeListener != null) { + mCaptioningManager.removeCaptioningChangeListener(mCaptioningChangeListener); + mCaptioningChangeListener = null; + } + if (mTouchExplorationStateChangeListener != null) { + mAccessibilityManager.removeTouchExplorationStateChangeListener(mTouchExplorationStateChangeListener); + mTouchExplorationStateChangeListener = null; + } + } + + private class InternalTouchExplorationStateChangeListener + implements TouchExplorationStateChangeListener { + + @Override + public void onTouchExplorationStateChanged(boolean enabled) { + mMobileAccessibility.onTouchExplorationStateChanged(enabled); + } + } +} diff --git a/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java new file mode 100644 index 00000000..a979420e --- /dev/null +++ b/StoneIsland/platforms/android/src/com/phonegap/plugin/mobileaccessibility/MobileAccessibility.java @@ -0,0 +1,330 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +package com.phonegap.plugin.mobileaccessibility; + +import org.apache.cordova.CallbackContext; +import org.apache.cordova.CordovaInterface; +import org.apache.cordova.CordovaPlugin; +import org.apache.cordova.CordovaWebView; +import org.apache.cordova.PluginResult; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import android.os.Build; +import android.webkit.WebView; + +import java.lang.IllegalAccessException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +/** + * This class provides information on the status of native accessibility services to JavaScript. + */ +public class MobileAccessibility extends CordovaPlugin { + private AbstractMobileAccessibilityHelper mMobileAccessibilityHelper; + private CallbackContext mCallbackContext = null; + private boolean mIsScreenReaderRunning = false; + private boolean mClosedCaptioningEnabled = false; + private boolean mTouchExplorationEnabled = false; + private boolean mCachedIsScreenReaderRunning = false; + private float mFontScale = 1; + + @Override + public void initialize(CordovaInterface cordova, CordovaWebView webView) { + super.initialize(cordova, webView); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + mMobileAccessibilityHelper = new KitKatMobileAccessibilityHelper(); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + mMobileAccessibilityHelper = new JellyBeanMobileAccessibilityHelper(); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { + mMobileAccessibilityHelper = new IceCreamSandwichMobileAccessibilityHelper(); + } else { + mMobileAccessibilityHelper = new DonutMobileAccessibilityHelper(); + } + mMobileAccessibilityHelper.initialize(this); + } + + @Override + public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { + try { + if (action.equals("isScreenReaderRunning")) { + isScreenReaderRunning(callbackContext); + return true; + } else if (action.equals("isClosedCaptioningEnabled")) { + isClosedCaptioningEnabled(callbackContext); + return true; + } else if (action.equals("isTouchExplorationEnabled")) { + isTouchExplorationEnabled(callbackContext); + return true; + } else if (action.equals("postNotification")) { + if (args.length() > 1) { + String string = args.getString(1); + if (!string.isEmpty()) { + announceForAccessibility(string, callbackContext); + } + } + return true; + } else if(action.equals("getTextZoom")) { + getTextZoom(callbackContext); + return true; + } else if(action.equals("setTextZoom")) { + if (args.length() > 0) { + double textZoom = args.getDouble(0); + if (textZoom > 0) { + setTextZoom(textZoom, callbackContext); + } + } + return true; + } else if(action.equals("updateTextZoom")) { + updateTextZoom(callbackContext); + return true; + } else if (action.equals("start")) { + start(callbackContext); + return true; + } else if (action.equals("stop")) { + stop(); + return true; + } + } catch (JSONException e) { + e.printStackTrace(); + callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION)); + } + return false; + } + + /** + * Called when the system is about to pause the current activity + * + * @param multitasking Flag indicating if multitasking is turned on for app + */ + @Override + public void onPause(boolean multitasking) { + //Log.i("MobileAccessibility", "onPause"); + mCachedIsScreenReaderRunning = mIsScreenReaderRunning; + } + + /** + * Called when the activity will start interacting with the user. + * + * @param multitasking Flag indicating if multitasking is turned on for app + */ + @Override + public void onResume(boolean multitasking) { + //Log.i("MobileAccessibility", "onResume"); + if (mIsScreenReaderRunning && !mCachedIsScreenReaderRunning) { + //Log.i("MobileAccessibility", "Reloading page on reload because the Accessibility State has changed."); + mCachedIsScreenReaderRunning = mIsScreenReaderRunning; + stop(); + cordova.getActivity().runOnUiThread(new Runnable() { + public void run() { + WebView view; + try { + view = (WebView) webView; + view.reload(); + } catch(ClassCastException ce) { // cordova-android 4.0+ + try { // cordova-android 4.0+ + Method getView = webView.getClass().getMethod("getView"); + Method reload = getView.invoke(webView).getClass().getMethod("reload"); + reload.invoke(webView); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + }); + } + } + + /** + * The final call you receive before your activity is destroyed. + */ + public void onDestroy() { + stop(); + } + + private void isScreenReaderRunning(final CallbackContext callbackContext) { + mIsScreenReaderRunning = mMobileAccessibilityHelper.isScreenReaderRunning(); + cordova.getThreadPool().execute(new Runnable() { + public void run() { + callbackContext.success(mIsScreenReaderRunning ? 1 : 0); + } + }); + } + + protected boolean isScreenReaderRunning() { + mIsScreenReaderRunning = mMobileAccessibilityHelper.isScreenReaderRunning(); + return mIsScreenReaderRunning; + } + + private void isClosedCaptioningEnabled(final CallbackContext callbackContext) { + mClosedCaptioningEnabled = mMobileAccessibilityHelper.isClosedCaptioningEnabled(); + cordova.getThreadPool().execute(new Runnable() { + public void run() { + callbackContext.success(mClosedCaptioningEnabled ? 1 : 0); + } + }); + } + + protected boolean isClosedCaptioningEnabled() { + mClosedCaptioningEnabled = mMobileAccessibilityHelper.isClosedCaptioningEnabled(); + return mClosedCaptioningEnabled; + } + + private void isTouchExplorationEnabled(final CallbackContext callbackContext) { + mTouchExplorationEnabled= mMobileAccessibilityHelper.isTouchExplorationEnabled(); + cordova.getThreadPool().execute(new Runnable() { + public void run() { + callbackContext.success(mTouchExplorationEnabled ? 1 : 0); + } + }); + } + + protected boolean isTouchExplorationEnabled() { + mTouchExplorationEnabled = mMobileAccessibilityHelper.isTouchExplorationEnabled(); + return mTouchExplorationEnabled; + } + + private void announceForAccessibility(CharSequence text, final CallbackContext callbackContext) { + mMobileAccessibilityHelper.announceForAccessibility(text); + if (callbackContext != null) { + JSONObject info = new JSONObject(); + try { + info.put("stringValue", text); + info.put("wasSuccessful", mIsScreenReaderRunning); + } catch (JSONException e) { + e.printStackTrace(); + } + callbackContext.success(info); + } + } + + public void onAccessibilityStateChanged(boolean enabled) { + mIsScreenReaderRunning = enabled; + cordova.getActivity().runOnUiThread(new Runnable() { + public void run() { + sendMobileAccessibilityStatusChangedCallback(); + } + }); + } + + public void onCaptioningEnabledChanged(boolean enabled) { + mClosedCaptioningEnabled = enabled; + cordova.getActivity().runOnUiThread(new Runnable() { + public void run() { + sendMobileAccessibilityStatusChangedCallback(); + } + }); + } + + public void onTouchExplorationStateChanged(boolean enabled) { + mTouchExplorationEnabled = enabled; + cordova.getActivity().runOnUiThread(new Runnable() { + public void run() { + sendMobileAccessibilityStatusChangedCallback(); + } + }); + } + + private void getTextZoom(final CallbackContext callbackContext) { + cordova.getActivity().runOnUiThread(new Runnable() { + public void run() { + final double textZoom = mMobileAccessibilityHelper.getTextZoom(); + if (callbackContext != null) { + callbackContext.success((int) textZoom); + } + } + }); + } + + private void setTextZoom(final double textZoom, final CallbackContext callbackContext) { + cordova.getActivity().runOnUiThread(new Runnable() { + public void run() { + mMobileAccessibilityHelper.setTextZoom(textZoom); + if (callbackContext != null) { + callbackContext.success((int) mMobileAccessibilityHelper.getTextZoom()); + } + } + }); + } + + public void setTextZoom(final double textZoom) { + cordova.getActivity().runOnUiThread(new Runnable() { + public void run() { + mMobileAccessibilityHelper.setTextZoom(textZoom); + } + }); + } + + private void updateTextZoom(final CallbackContext callbackContext) { + float fontScale = cordova.getActivity().getResources().getConfiguration().fontScale; + if (fontScale != mFontScale) { + mFontScale = fontScale; + } + final double textZoom = Math.round(mFontScale * 100); + setTextZoom(textZoom, callbackContext); + } + + private void sendMobileAccessibilityStatusChangedCallback() { + if (this.mCallbackContext != null) { + PluginResult result = new PluginResult(PluginResult.Status.OK, getMobileAccessibilityStatus()); + result.setKeepCallback(true); + this.mCallbackContext.sendPluginResult(result); + } + } + + /* Get the current mobile accessibility status. */ + private JSONObject getMobileAccessibilityStatus() { + JSONObject status = new JSONObject(); + try { + status.put("isScreenReaderRunning", mIsScreenReaderRunning); + status.put("isClosedCaptioningEnabled", mClosedCaptioningEnabled); + status.put("isTouchExplorationEnabled", mTouchExplorationEnabled); + //Log.i("MobileAccessibility", "MobileAccessibility.isScreenReaderRunning == " + status.getString("isScreenReaderRunning") + + // "\nMobileAccessibility.isClosedCaptioningEnabled == " + status.getString("isClosedCaptioningEnabled") + + // "\nMobileAccessibility.isTouchExplorationEnabled == " + status.getString("isTouchExplorationEnabled") ); + } catch (JSONException e) { + e.printStackTrace(); + } + return status; + } + + private void start(CallbackContext callbackContext) { + //Log.i("MobileAccessibility", "MobileAccessibility.start"); + mCallbackContext = callbackContext; + mMobileAccessibilityHelper.addStateChangeListeners(); + sendMobileAccessibilityStatusChangedCallback(); + } + + private void stop() { + //Log.i("MobileAccessibility", "MobileAccessibility.stop"); + if (mCallbackContext != null) { + sendMobileAccessibilityStatusChangedCallback(); + mMobileAccessibilityHelper.removeStateChangeListeners(); + mCallbackContext = null; + } + } +} diff --git a/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist b/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist index 54b0db05..3038bdb4 100644 --- a/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/StoneIsland/platforms/ios/CordovaLib/CordovaLib.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist @@ -9,11 +9,21 @@ <key>orderHint</key> <integer>4</integer> </dict> + <key>Cordova.xcscheme_^#shared#^_</key> + <dict> + <key>orderHint</key> + <integer>4</integer> + </dict> <key>CordovaLib.xcscheme</key> <dict> <key>orderHint</key> <integer>3</integer> </dict> + <key>CordovaLib.xcscheme_^#shared#^_</key> + <dict> + <key>orderHint</key> + <integer>2</integer> + </dict> </dict> </dict> </plist> diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist b/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist index 1887e791..cc6e8127 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Info.plist @@ -9,9 +9,9 @@ <key>CFBundleIdentifier</key> <string>us.okfoc.stoneisland</string> <key>CFBundleShortVersionString</key> - <string>1.1.0</string> + <string>1.2.0</string> <key>CFBundleVersion</key> - <string>1.1.0</string> + <string>1.2.0</string> <key>SigningIdentity</key> <string>iPhone Developer: Francesca Agusani (3ECUPBTQ5W)</string> <key>Team</key> @@ -20,7 +20,7 @@ <key>ArchiveVersion</key> <integer>2</integer> <key>CreationDate</key> - <date>2018-10-03T01:34:31Z</date> + <date>2019-07-20T21:50:15Z</date> <key>Name</key> <string>Stone Island</string> <key>SchemeName</key> diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car Binary files differindex 271f6e3d..55f50424 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Assets.car diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib Binary files differindex e6db4716..e17d27b4 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib Binary files differindex 69123580..f8eb3a7b 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist Binary files differindex be04aaa5..37dcf003 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Info.plist diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib Binary files differindex d05862db..75695f93 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/MainViewController.nib diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island Binary files differindex e729e8f5..21e77b9e 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/Stone Island diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources index 58cd9606..3938505b 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/_CodeSignature/CodeResources @@ -94,11 +94,11 @@ </data> <key>Assets.car</key> <data> - QBTHoRJ0x8xv/TSloxDRiFB1FMc= + 69hIIqyEMar3UEkA8JsMFO3uaO8= </data> <key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key> <data> - gXqcDJNrIf7qR1DKI9ch+1V9PDU= + ExIp2biIZjh9RH83tZQL47EPOTE= </data> <key>CDVLaunchScreen.storyboardc/Info.plist</key> <data> @@ -106,7 +106,7 @@ </data> <key>CDVLaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib</key> <data> - 1mmKAwCFy4227LZ0S7gS6/Du8O8= + yVCnEoCa72AVBAbPs/7h/te1m9M= </data> <key>CDVNotification.bundle/beep.wav</key> <data> @@ -114,11 +114,11 @@ </data> <key>Info.plist</key> <data> - JSI5Ec8Q4kW5bUuZV6ovXqPRDw0= + +QdQhFsRxf+QQtWfQrsRuS3/xV0= </data> <key>MainViewController.nib</key> <data> - VnEob4dYi3BF3NfvgMSVbBvdp70= + DC0L5nLOzRhZk1hZ2zgu/BVRZwg= </data> <key>PkgInfo</key> <data> @@ -126,11 +126,11 @@ </data> <key>config.xml</key> <data> - bfkQF8MbJwqxyLtjkZ/gpbN5XUs= + LTVqO8XFZVQhqUOeZQEy7meNw1c= </data> <key>embedded.mobileprovision</key> <data> - WLS7bPgkyLNAOPSGAH/RMV9viq4= + l8wkj9UX5I2v1dBJQvQf/lTQiew= </data> <key>www/cordova-js-src/exec.js</key> <data> @@ -158,15 +158,15 @@ </data> <key>www/css/account.css</key> <data> - QleBinpy/MrHuJ0RNanvPLTucXY= + fXiIrfC1WC8u+wfH1t+SfL20R5U= </data> <key>www/css/blogs.css</key> <data> - Z4GX/8DuhS7JcIqtnsSaH3JMtq0= + iGcvIKIRYvcNDhnGcyMiEjNAIgQ= </data> <key>www/css/cart.css</key> <data> - Ng3YvYgB2WSweFsmVC2E1h+W84A= + xeHWGQYuz0O3L8nz+SST95Gf7qg= </data> <key>www/css/fonts/andale_mono.ttf</key> <data> @@ -222,15 +222,15 @@ </data> <key>www/css/index.css</key> <data> - lWAy1S7uziY189/RAGKaev7ICcE= + w2WshgNfe4vVQH0iROkZQDGsnsI= </data> <key>www/css/nav.css</key> <data> - m/IdwEAy3GdFXoqWuEdHjDT/Z1c= + AxqGmgOBTnKOkigwb9PUW8RbjBg= </data> <key>www/css/products.css</key> <data> - zTG+7VrnL91c3P843JhNb3p9cDQ= + KYbJvjbQPtfzN2/ZJ7m9zvMdRK4= </data> <key>www/css/vendor/flickity.css</key> <data> @@ -350,11 +350,11 @@ </data> <key>www/index.html</key> <data> - WfmLMrq2VwoMbLb2pXyFB7HO8RA= + aTA/jaWobJdPi8nuMjMiLB2cM4A= </data> <key>www/js/index.js</key> <data> - Ln7g2gyVP8A++JMCVaE6MrE+vts= + MXHwod7HThPUBz8txlOmjvcslaA= </data> <key>www/js/lib/_router.js</key> <data> @@ -362,7 +362,7 @@ </data> <key>www/js/lib/account/AccountView.js</key> <data> - aVpIFnEgArttSQ+Hhv6TuJfBU4A= + bIokk6jby9kV70sP6mwSQYyWt9o= </data> <key>www/js/lib/account/ConsentModal.js</key> <data> @@ -402,7 +402,7 @@ </data> <key>www/js/lib/blogs/ArchiveView.js</key> <data> - 0MoYu/cf89T9Yj3/GqkxVS5Kn0s= + RNMEI9bRqHA+xQBp5J42b4eHTe0= </data> <key>www/js/lib/blogs/BlogView.js</key> <data> @@ -410,7 +410,7 @@ </data> <key>www/js/lib/blogs/HubView.js</key> <data> - JoWqvJNyRivH1RTOWttHCXFw1fQ= + 1g7GG1e0AQLjJG18Y02rg4Rm8A8= </data> <key>www/js/lib/blogs/PageView.js</key> <data> @@ -418,7 +418,7 @@ </data> <key>www/js/lib/blogs/StoryView.js</key> <data> - 0uCBjGnwq8xsO5chZu/C1rGZ/SQ= + 213XVfJUJtaxCHV7FFbjga5hs7o= </data> <key>www/js/lib/cart/CartConfirm.js</key> <data> @@ -438,7 +438,7 @@ </data> <key>www/js/lib/cart/CartSummary.js</key> <data> - YYiOPlDBi/ESvBJZ+bBt5ElQ254= + wKti0DCO29c0cz8v1a3rocKnBFg= </data> <key>www/js/lib/cart/CartThanks.js</key> <data> @@ -448,6 +448,10 @@ <data> +kmEZ9ukx0LiHKArz7oWZyBZr/4= </data> + <key>www/js/lib/etc/accessibility.js</key> + <data> + QgUYQBmm2miX0dNrFsIf9Szkt8M= + </data> <key>www/js/lib/etc/backup_db.js</key> <data> AvuTNjwsRzwgVY0NwLUgrknX60M= @@ -470,11 +474,11 @@ </data> <key>www/js/lib/nav/AddressView.js</key> <data> - ftShfH+ffLTkwffJ5JT5/V/TpRo= + 0eDtFKXnaHon167o7b/jNuJOBxw= </data> <key>www/js/lib/nav/CreditCardView.js</key> <data> - uV1Y5XohZktnJXSKPs/gt/vhlzk= + gVL/tg/yUhmm+DeTTphe5rsyHrk= </data> <key>www/js/lib/nav/CurtainView.js</key> <data> @@ -506,19 +510,19 @@ </data> <key>www/js/lib/products/CollectionView.js</key> <data> - dZYIlXKeCgVJVU3GHPND6CLid+w= + jAdRAZPg6wq2IpgL00kFG/bsV7I= </data> <key>www/js/lib/products/GalleryView.js</key> <data> - 5rrxB1zyClIfmelN6ylnF/wLAU4= + PlTNRrOKZ/pThjhfJGIhPyF0vF8= </data> <key>www/js/lib/products/ProductView.js</key> <data> - OvyCvqKno4Hvm5R6fcB5SHDfj+s= + /82lnayY7RllLikHb4Gf5NX84MY= </data> <key>www/js/lib/products/Selector.js</key> <data> - QxR583tVoXxutmfsJwO9Trbb8QE= + EKBEgRJvD6J4pdql7rZuk0Hf1ss= </data> <key>www/js/lib/products/filters/CategoryFilter.js</key> <data> @@ -542,7 +546,7 @@ </data> <key>www/js/lib/view/Serializable.js</key> <data> - 0E+pHfC1nUz8TPY9jKCYZZUBV/E= + h9Z7w1U81a/0iSk1479BPPEWbt0= </data> <key>www/js/lib/view/View.js</key> <data> @@ -945,22 +949,22 @@ <dict> <key>hash</key> <data> - QBTHoRJ0x8xv/TSloxDRiFB1FMc= + 69hIIqyEMar3UEkA8JsMFO3uaO8= </data> <key>hash2</key> <data> - TPY2WEVP1NprXT8QrFED0SnysoNbEX77Bo0ohK1Q1FM= + FLGkfRiKT6eCA0D6oCruKdRSScEgK8YKQlHMNoMn7EU= </data> </dict> <key>CDVLaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key> <dict> <key>hash</key> <data> - gXqcDJNrIf7qR1DKI9ch+1V9PDU= + ExIp2biIZjh9RH83tZQL47EPOTE= </data> <key>hash2</key> <data> - 7B1IaTogj84Gr05DmyNhEgxjlAnFyDzSc9oB1y/0pms= + 0KKFtnFhrHHqIoY42bZrcoPHNgAIin93f9Ptl9Ccb98= </data> </dict> <key>CDVLaunchScreen.storyboardc/Info.plist</key> @@ -978,11 +982,11 @@ <dict> <key>hash</key> <data> - 1mmKAwCFy4227LZ0S7gS6/Du8O8= + yVCnEoCa72AVBAbPs/7h/te1m9M= </data> <key>hash2</key> <data> - WKlHZ6y3qNoMdkAFGx778YJ+mhDt18wMn4RY+glb8k4= + 2ik2cAY8YQ/XXZUfhBAqDlVMDnTJhNMQaymb2NCELhw= </data> </dict> <key>CDVNotification.bundle/beep.wav</key> @@ -1000,33 +1004,33 @@ <dict> <key>hash</key> <data> - VnEob4dYi3BF3NfvgMSVbBvdp70= + DC0L5nLOzRhZk1hZ2zgu/BVRZwg= </data> <key>hash2</key> <data> - uluxF5ka8nGH0NgslihktESpYM3yuAveL0rutQZLjEo= + G8GWdegzY7yih60B4ea3Ct0sx+/nVwyayzU1FKkPt0s= </data> </dict> <key>config.xml</key> <dict> <key>hash</key> <data> - bfkQF8MbJwqxyLtjkZ/gpbN5XUs= + LTVqO8XFZVQhqUOeZQEy7meNw1c= </data> <key>hash2</key> <data> - 7WmvJuHvQdc7/6q41PdabIVMeOTfwLjGwHq8OchRmLw= + mfaY/1RPelG0Ck+46NFWVIw4g+RQljUwp3QE54ZMZJ4= </data> </dict> <key>embedded.mobileprovision</key> <dict> <key>hash</key> <data> - WLS7bPgkyLNAOPSGAH/RMV9viq4= + l8wkj9UX5I2v1dBJQvQf/lTQiew= </data> <key>hash2</key> <data> - P4d1qHmYFGlLUCMl/C9wnQiYd1vWXFMxT4JmJRgUxSI= + EkGKDjJhII43Qn+PEmfD7sVHEiZWrPJeyGj1aKMzEco= </data> </dict> <key>www/cordova-js-src/exec.js</key> @@ -1099,33 +1103,33 @@ <dict> <key>hash</key> <data> - QleBinpy/MrHuJ0RNanvPLTucXY= + fXiIrfC1WC8u+wfH1t+SfL20R5U= </data> <key>hash2</key> <data> - iG3ony/fJ708Vgul9dITTPufcs7dDxPfJxdQbTDV08w= + GEe0cIiEYcwOQI+uDZovkUI2WNg4HPUcRv5Amn6wiSk= </data> </dict> <key>www/css/blogs.css</key> <dict> <key>hash</key> <data> - Z4GX/8DuhS7JcIqtnsSaH3JMtq0= + iGcvIKIRYvcNDhnGcyMiEjNAIgQ= </data> <key>hash2</key> <data> - /kKdvfkHYtRA/JOtOpK2KoSpFf+XojJTnEae/1wHJck= + p0SOmpABcUNvkVAj1taiqvH8vVFMBuT30lxdN0Ywp2k= </data> </dict> <key>www/css/cart.css</key> <dict> <key>hash</key> <data> - Ng3YvYgB2WSweFsmVC2E1h+W84A= + xeHWGQYuz0O3L8nz+SST95Gf7qg= </data> <key>hash2</key> <data> - gEc385vNfLCGA1boJOmO5fkqBtmWjHZ5TfFDFn1RjdI= + 12MfXOBwnH2gkNUou3QVM37uuiadDPUATkTvQv/l0tk= </data> </dict> <key>www/css/fonts/andale_mono.ttf</key> @@ -1275,33 +1279,33 @@ <dict> <key>hash</key> <data> - lWAy1S7uziY189/RAGKaev7ICcE= + w2WshgNfe4vVQH0iROkZQDGsnsI= </data> <key>hash2</key> <data> - 7zr0oTSoxWrh2Lyb7N/a6vwbE4xmn6Vqj0UJvXVUeJU= + vekNt7VayK8g7ig3J1LQxCPooFK5Hu7U7Rv+FWMmibo= </data> </dict> <key>www/css/nav.css</key> <dict> <key>hash</key> <data> - m/IdwEAy3GdFXoqWuEdHjDT/Z1c= + AxqGmgOBTnKOkigwb9PUW8RbjBg= </data> <key>hash2</key> <data> - MtRdAFiYLEZFwIaHll90exG5yyXlWPejuG2if/SYhVo= + 8CzYKZKf8C4/0g4qxjhJBiDYQCqtbCpu5Itm3+4mEOY= </data> </dict> <key>www/css/products.css</key> <dict> <key>hash</key> <data> - zTG+7VrnL91c3P843JhNb3p9cDQ= + KYbJvjbQPtfzN2/ZJ7m9zvMdRK4= </data> <key>hash2</key> <data> - H/BhL6QJGpSW6N5Xqn/riK8xtmJy51CQemobDb6442c= + wK+MKtz0FScRFmprN3Oh48s6fMP9/RG20PD8a9wSHcw= </data> </dict> <key>www/css/vendor/flickity.css</key> @@ -1627,22 +1631,22 @@ <dict> <key>hash</key> <data> - WfmLMrq2VwoMbLb2pXyFB7HO8RA= + aTA/jaWobJdPi8nuMjMiLB2cM4A= </data> <key>hash2</key> <data> - Z5SztGcvL5GvvJA/izhKa2N937u6THJcoDuSKChyFNQ= + wYgF/pbxmsnsSOjIn5MzsEKOoZZl3bSE9yQgqpyfaow= </data> </dict> <key>www/js/index.js</key> <dict> <key>hash</key> <data> - Ln7g2gyVP8A++JMCVaE6MrE+vts= + MXHwod7HThPUBz8txlOmjvcslaA= </data> <key>hash2</key> <data> - MBzYe9TIGKaAR4s4Si/uXlHZS2JSer0fm7oGfdGl/m4= + OEUgyhHsaNXVdy8V4Vpa314+drterkwuRaZIrNVYfN4= </data> </dict> <key>www/js/lib/_router.js</key> @@ -1660,11 +1664,11 @@ <dict> <key>hash</key> <data> - aVpIFnEgArttSQ+Hhv6TuJfBU4A= + bIokk6jby9kV70sP6mwSQYyWt9o= </data> <key>hash2</key> <data> - iG1tranbNydzGN9uEJs6u4YvjBTjDUH6+Ey2GuOskx0= + qw6F4bORmnvL3BJtoUXmhTR1r9tTeRaRrBdrlkRM+sE= </data> </dict> <key>www/js/lib/account/ConsentModal.js</key> @@ -1770,11 +1774,11 @@ <dict> <key>hash</key> <data> - 0MoYu/cf89T9Yj3/GqkxVS5Kn0s= + RNMEI9bRqHA+xQBp5J42b4eHTe0= </data> <key>hash2</key> <data> - v3axxDFmZxOIUfaVfkbvZECsJNT7TIo2cw8PXjfm2P8= + 950niUjIaOBT5K04BEdj+5ZV+MiCOhuaCZZWcsfk99o= </data> </dict> <key>www/js/lib/blogs/BlogView.js</key> @@ -1792,11 +1796,11 @@ <dict> <key>hash</key> <data> - JoWqvJNyRivH1RTOWttHCXFw1fQ= + 1g7GG1e0AQLjJG18Y02rg4Rm8A8= </data> <key>hash2</key> <data> - lez4v0kNzHIjx8HbZND8dA0vuTWpx1OCauojRkWVgYk= + VMh3rW84afsZangutatzZ9iccywOIK3PUk+bMNJD06E= </data> </dict> <key>www/js/lib/blogs/PageView.js</key> @@ -1814,11 +1818,11 @@ <dict> <key>hash</key> <data> - 0uCBjGnwq8xsO5chZu/C1rGZ/SQ= + 213XVfJUJtaxCHV7FFbjga5hs7o= </data> <key>hash2</key> <data> - P24JvyHX4Qjfs2Qa+rzt0M9SmSftEC6wuXzTPYoun9k= + fLjidG11pbtfFh/nqU4M5rRlhShzP1Zibag7Bhdzcsw= </data> </dict> <key>www/js/lib/cart/CartConfirm.js</key> @@ -1869,11 +1873,11 @@ <dict> <key>hash</key> <data> - YYiOPlDBi/ESvBJZ+bBt5ElQ254= + wKti0DCO29c0cz8v1a3rocKnBFg= </data> <key>hash2</key> <data> - ctAGdJM1VwXGTVUdpT9sXBETsIAdWS5Rbl/NGP/Qkic= + QhLWBCUa8g9fG9HCGHzGcxrTyNUWiuZrAbFgnXNnsSc= </data> </dict> <key>www/js/lib/cart/CartThanks.js</key> @@ -1898,6 +1902,17 @@ FQeeZlPKs/Ma/jhjSRzHRtl4LTWr5JJMQAyutOIbmbo= </data> </dict> + <key>www/js/lib/etc/accessibility.js</key> + <dict> + <key>hash</key> + <data> + QgUYQBmm2miX0dNrFsIf9Szkt8M= + </data> + <key>hash2</key> + <data> + jC9n971PJzqeInvOHeN/WbHxpDCswD3NCi3L/PFg6sY= + </data> + </dict> <key>www/js/lib/etc/backup_db.js</key> <dict> <key>hash</key> @@ -1957,22 +1972,22 @@ <dict> <key>hash</key> <data> - ftShfH+ffLTkwffJ5JT5/V/TpRo= + 0eDtFKXnaHon167o7b/jNuJOBxw= </data> <key>hash2</key> <data> - IF3wmk5ZDgUnFwKsRgs1TC43obu2cQQui4Ksg3OINNQ= + ofls7To+oOrL/cOmRaHIYvTPVrePqhqdEDB4giV+A5o= </data> </dict> <key>www/js/lib/nav/CreditCardView.js</key> <dict> <key>hash</key> <data> - uV1Y5XohZktnJXSKPs/gt/vhlzk= + gVL/tg/yUhmm+DeTTphe5rsyHrk= </data> <key>hash2</key> <data> - kTv/+Lvcpehdpd3a6ZDzFFKSBtfBm5D77mIZwNOusHE= + KvyNAr/6lvXIWychhPUOZCzTM7bNdBs4RSEA8evPEZs= </data> </dict> <key>www/js/lib/nav/CurtainView.js</key> @@ -2056,44 +2071,44 @@ <dict> <key>hash</key> <data> - dZYIlXKeCgVJVU3GHPND6CLid+w= + jAdRAZPg6wq2IpgL00kFG/bsV7I= </data> <key>hash2</key> <data> - F3m7DIDNcROqnCiN7Ebm2xWV6CT1KmGrxZ5Pi7nclsY= + iNILJ6ah4YAnR3q0hFXoMLHRZD3Wp/f3EUfW2di9LUo= </data> </dict> <key>www/js/lib/products/GalleryView.js</key> <dict> <key>hash</key> <data> - 5rrxB1zyClIfmelN6ylnF/wLAU4= + PlTNRrOKZ/pThjhfJGIhPyF0vF8= </data> <key>hash2</key> <data> - CV7mdRSIzMi0B8qk+VkV7mErkQvlKQaNOnwJNAJElOg= + GGDqzbrlfnfziT6ikQX/loU9bpQ6vZap1bCH/cx0Nr0= </data> </dict> <key>www/js/lib/products/ProductView.js</key> <dict> <key>hash</key> <data> - OvyCvqKno4Hvm5R6fcB5SHDfj+s= + /82lnayY7RllLikHb4Gf5NX84MY= </data> <key>hash2</key> <data> - d0gYTwzKDGmRJ6k+2KgDNMGQbsYiqJFK3ZijApq0GaM= + 58Evlb8Vgr4xG+NgL6k+xGQZyXFgdrGzDVSFx7F73jc= </data> </dict> <key>www/js/lib/products/Selector.js</key> <dict> <key>hash</key> <data> - QxR583tVoXxutmfsJwO9Trbb8QE= + EKBEgRJvD6J4pdql7rZuk0Hf1ss= </data> <key>hash2</key> <data> - KDQ0bOdXozaa7mbPZwIkDY0Vm4va6sTjWqOg1TLsNPY= + TQ/ftb1qu0XUvp/7TD82sPiFYa+Kyyvh4UbWak4z5h0= </data> </dict> <key>www/js/lib/products/filters/CategoryFilter.js</key> @@ -2155,11 +2170,11 @@ <dict> <key>hash</key> <data> - 0E+pHfC1nUz8TPY9jKCYZZUBV/E= + h9Z7w1U81a/0iSk1479BPPEWbt0= </data> <key>hash2</key> <data> - 4INR1sh3+lJOWANxVYuZkYJZKmHCSA1hOYkpX/9z6Xs= + 2ZAp4f934QdZjKaeD0kh0Y6R3kIuZunfnHdEWAdIax0= </data> </dict> <key>www/js/lib/view/View.js</key> diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml index d4267d95..f9f29075 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/config.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<widget android-versionCode="6110" id="us.okfoc.stoneisland" version="1.1.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> +<widget android-versionCode="6120" id="us.okfoc.stoneisland" version="1.2.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <feature name="LocalStorage"> <param name="ios-package" value="CDVLocalStorage" /> </feature> diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision Binary files differindex 487c9919..7ec4c547 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/embedded.mobileprovision diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css index 32c7df79..be82a4c7 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/account.css @@ -67,7 +67,7 @@ content:''; width:calc(100% + 100px); height:1px; - background:#bbb; + background:#666; position:absolute; bottom:0; left:-50px; @@ -122,12 +122,23 @@ text-align: center; margin: 0; padding: 20px 10px 8px 10px; - font-size: 14px; + font-size: 16px; color: #000; letter-spacing: 1px; font-weight: bold; } +label { + display: flex; + align-items: center; + justify-content: center; + text-align: center; + font-size: 16px; + color: #000; + letter-spacing:1px; + text-transform:uppercase; + height: 48px; +} input[type=text], input[type=password], input[type=number], input[type=date], input[type=email] { font-family:pfd, sans-serif; font-size:14px; @@ -135,13 +146,13 @@ input[type=text], input[type=password], input[type=number], input[type=date], in color:#000; letter-spacing:1px; text-transform:uppercase; - height:35px; + height: 48px; text-align:center; margin: 0px auto; display:block; - margin-top:4px; + margin-top: 0px; width: calc(100vw - 10px); - border:1px solid #a9a9a9; + border:1px solid #696969; padding: 0; border-radius: 0; } @@ -149,27 +160,35 @@ input[type=text], input[type=password], input[type=number], input[type=date], in input[type=text], input[type=password], input[type=number], input[type=email] { -webkit-appearance: none; } - +input[type=text]:focus, input[type=password]:focus, input[type=number]:focus, input[type=email] { + border-width: 2px; +} .half-input { margin: 0px auto; - display: block; + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; margin-top: 4px; width: calc(100vw - 10px); overflow: auto; } +.half-input label { + width: 50%; +} .half-input input, .half-input select { position: relative; margin: 0; border:none; box-sizing: border-box; float: left; - border: 1px solid #a9a9a9; + border: 1px solid #696969; width: 50%; } .half-input > input:first-child { - border-right: 1px solid #a9a9a9; + border-right: 1px solid #696969; } #signup .toggle-container, #profile .toggle-container { @@ -179,7 +198,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] { width: calc(100vw - 10px); box-sizing: border-box; padding:0px 18px 2px; - font-size:14px; + font-size:16px; } #settings .toggle-container { @@ -189,7 +208,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] { width: calc(100vw - 10px); box-sizing: border-box; padding:10px 18px 2px; - font-size:14px; + font-size:16px; } .toggle-row { @@ -296,10 +315,12 @@ input.switch:checked + label:after { .container-fill { min-height:80px; + display: flex; flex: 1; align-items: center; justify-content: center; position:relative; + flex-direction: column; } .container-fill-condensed { @@ -317,26 +338,27 @@ input.switch:checked + label:after { width:calc(100vw - 10px); box-sizing:border-box; margin:10px auto 0; - position:relative + position:relative; } .container-row .container-message-condensed { margin: 2px auto!important } .container-fill .container-message { - font-size:12px; + font-size:14px; letter-spacing:0.5px; text-align:center; - position:absolute; - top:50%; - left:50%; + display: flex; + align-items: center; + justify-content: center; width:100%; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); + min-height: 48px; color:#000; } - +.billing-container a { + text-decoration: none; +} .premessage { top:calc(50% - 20px)!important; @@ -351,7 +373,7 @@ input.switch:checked + label:after { } .checkbox-container { - font-size:11px; + font-size:14px; width:calc(100vw - 10px); display:table; box-sizing:border-box; @@ -381,6 +403,7 @@ input.switch:checked + label:after { vertical-align:middle; display:table-cell; box-sizing:border-box; + text-align: left; } .billing-container .checkbox-caption { @@ -442,10 +465,6 @@ input.switch:checked + label:after { } .privacy-msg { - left: 50%; - display: inline-block; - position: relative; - transform: translateX(-50%); padding-top: 15px; padding-bottom: 80px; } @@ -463,46 +482,50 @@ input.switch:checked + label:after { color: #000; letter-spacing: 1px; text-transform: uppercase; - height: 35px; + height: 48px; text-align: center; margin: 0px auto; display: block; margin-top: 4px; width: calc(100vw - 10px); - border: 1px solid #a9a9a9; + border: 1px solid #696969; } .date-wrapper span { display: block; } .half-input .select-wrapper { + display: flex; + align-items: center; + justify-content: center; width: 50%; border: 0; margin-top: 0px; float: left; box-sizing: border-box; - border: 1px solid #a9a9a9; + border: 1px solid #696969; +} +.half-input .select-wrapper:nth-child(2) { border-left: 0px; } .half-input .select-wrapper span { - top: 8px; color: #aaa; + top: 0; } .select-wrapper [type=date] { opacity: 0; width: 100%; - height: 35px; - line-height: 35px; + height: 48px; + line-height: 48px; position: absolute; top: -5px; left: -1px; - width: 1px; height: 1px; } .select-wrapper select { opacity: 0; width: 100%; - height: 35px; - line-height: 35px; + height: 48px; + line-height: 48px; position: absolute; top: 0; left: 0; box-sizing: border-box; @@ -512,8 +535,8 @@ input.switch:checked + label:after { } .select-wrapper span { position: relative; - top: 8px; - color: #888; + top: 15px; + color: #666; } .select-wrapper.picked span { color: #000; @@ -521,33 +544,29 @@ input.switch:checked + label:after { .country-wrapper-static { text-align: center; - color: #a9a9a9; + color: #696969; border: 1px solid; - padding-top: 9px; + border-left: 0; font-size: 14px; - height: 35px; + height: 48px; box-sizing: border-box; -} - -.container-row input:first-child { -margin-top:10px + width: 50%; + display: flex; + justify-content: center; + align-items: center; } .container-row .half-input input { margin-top:0px } -#login .container-row input:first-child { -margin-bottom:9px!important -} - .newuser { display:inline-block; - padding:14px; + padding:18px; text-decoration:underline } .forgotpassword { - padding:14px; + padding:18px; text-decoration:underline }
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css index bf5ab68f..0834912e 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/blogs.css @@ -6,11 +6,19 @@ margin: 15px 0 0; text-align: center; text-transform:uppercase; + display:flex; + flex-direction: row; + justify-content: center; + align-items: center; } #story .links li { - padding: 10px; + display: flex; + justify-content: center; + align-items: center; + height: 48px; + padding: 0 15px; list-style-type: none; - display: inline-block; + font-size: 16px; } #story .links li:before { content: ' | ', @@ -57,7 +65,7 @@ animation: mfadein 0.6s; #hub .content .body, #story .content .body { letter-spacing:0.35px; - font-size:12px; + font-size:16px; width:calc(100vw - 40px); box-sizing:border-box; margin:10px auto 20px; @@ -65,7 +73,7 @@ animation: mfadein 0.6s; } #hub .content .body:last-child { - margin:10px auto 100px; + margin:20px auto 100px; } #story .content .body:last-child { @@ -85,14 +93,14 @@ animation: mfadein 0.6s; .content-header .title, .content-header .subtitle { display:block; font-weight:bold; - font-size:14px; + font-size:16px; text-transform:uppercase } .content-header .title { margin:0; padding:0; - line-height:13px; + line-height:1.4em; } .content-header .subtitle { @@ -101,12 +109,17 @@ animation: mfadein 0.6s; .content-share { border:1px solid black; - padding:4px 8px 2px; + padding: 0 12px; + height: 48px; + font-size: 16px; + display: flex; + justify-content: center; + align-items: center; float:right } .content-header span.date, .content-header span.store { - font-size:10px; + font-size:16px; } /* NOTE: optional arrows */ @@ -118,8 +131,8 @@ animation: mfadein 0.6s; background-size:5px 10px; background-repeat:no-repeat; background-position:center; - width:15px; - height:30px; + width:24px; + height:48px; top:26vh; content:''; transform:translateY(-50%); @@ -130,7 +143,6 @@ animation: mfadein 0.6s; z-index:2; position:absolute; display:block; - animation: gallery-fade 4s forwards; } .gallery-right { border:1px solid black; @@ -139,8 +151,8 @@ animation: mfadein 0.6s; background-size:5px 10px; background-repeat:no-repeat; background-position:center; - width:15px; - height:30px; + width:24px; + height:48px; top:26vh; content:''; transform:translateY(-50%); @@ -151,7 +163,6 @@ animation: mfadein 0.6s; z-index:2; position:absolute; display:block; - animation: gallery-fade 4s forwards; } @-webkit-keyframes gallery-fade { @@ -220,7 +231,7 @@ ul.links { margin:0 0 12px; padding:0; font-weight:bold; - font-size:14px; + font-size:16px; } @@ -233,7 +244,7 @@ ul.links { } .archive .body { font-size: 14px; - line-height: 1.2em; + line-height: 1.4em; font-weight: 100; } @@ -278,11 +289,14 @@ ul.links { } #archive .menu .item { width: 100%; - text-align: center; + display: flex; + justify-content: center; + align-items: center; border-bottom: 1px solid black; background: white; - padding:12px 0; - font-size:14px; + padding:0; + height: 48px; + font-size:16px; letter-spacing:0.7px } diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css index 7619a82b..c5725349 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/cart.css @@ -6,20 +6,24 @@ #cart .steps { width: 100%; - border-bottom: 1px solid #bbb; + border-bottom: 1px solid #666; font-size: 0; + display: flex; + flex-direction: row; } #cart .steps span { - display: inline-block; - font-size: 13px; + display: flex; + font-size: 16px; text-align: center; - padding: 11px 0 10px; - color: #bbb; + color: #666; width: 33%; position:relative; + height: 48px; + justify-content: center; + align-items: center; } .summary_step, .shipping_step { - border-right: 1px solid #bbb + border-right: 1px solid #666; } #cart.summary .summary_step, @@ -109,7 +113,12 @@ #cart h3 { padding-left: 5px; - font-size:12px; + font-size:16px; + height: 48px; + display: flex; + justify-content: flex-start; + align-items: center; + font-size: 16px; } .cart_item_row { @@ -153,9 +162,9 @@ padding-left:5px; .cart_item_price .remove { display:block; -width:20px; -height:20px; -border:1px solid #d2d2d2; +width:48px; +height:48px; +border:1px solid #b2b2b2; float:right; margin-bottom:10px; position:relative; @@ -164,8 +173,8 @@ position:relative; .cart_item_price .remove:after { content:''; width:1px; -height:22px; -background:#bbb; +height:48px; +background:#333; position:absolute; top:50%; left:50%; @@ -177,8 +186,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) .cart_item_price .remove:before { content:''; width:1px; - height:22px; - background:#bbb; + height:48px; + background:#333; position:absolute; top:50%; left:50%; @@ -188,27 +197,27 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) } .cart_item_price .price { - font-size:11px; + font-size:16px; font-weight:bold; display:block } .cart_item_info .sku { - font-size:10px; + font-size:16px; font-weight:bold; - display:block + display:block; } .cart_item_info .title { - font-size:10px; + font-size:16px; font-weight:bold; display:block; - line-height:12px; + line-height:1.4em; text-transform:uppercase; } .cart_item_info .type { - font-size:10px; + font-size:16px; font-weight:bold; display:block; text-transform:capitalize; @@ -217,7 +226,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) .cart_item_info .meta { padding-top:5px; letter-spacing:.75px; - font-size:8px; + font-size:14px; } .order_section .rows { @@ -241,8 +250,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) width:calc(100vw - 30px); margin:0 auto; display:table; - color:#bbb; - font-size:11px; + color:#666; + font-size:16px; } .cart-summary-row { @@ -274,7 +283,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) #orders .order_section { padding-bottom: 16px; - border-bottom: 1px solid #bbb; + border-bottom: 1px solid #666; } @@ -294,9 +303,10 @@ color:#000; position:relative; text-align:right; width:calc(100vw - 10px); - margin:0 auto; + margin:0 auto 20px 0; box-sizing:border-box; - + display: flex; + flex-direction: column; } .dropdown-wrapper .add_edit { @@ -308,11 +318,15 @@ color:#000; } .dropdown-wrapper .dropdown { - font-size:14px; + font-size:16px; box-sizing:border-box; + display: flex; + justify-content: center; align-items: center; text-align: center; - padding:10px 0; + height: 48px; + margin-left: 3px; + padding:0; border:1px solid #a9a9a9; position:relative; } @@ -355,6 +369,9 @@ color:#000; margin-left:5px; margin-bottom:6px; } +#cart .cc_confirm h3 { + justify-content: center +} #cart_shipping input:first-child { margin-top:10px diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css index 4d8e5514..fa3dae54 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/index.css @@ -17,9 +17,12 @@ body { -webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */ background: #fff; font-family: pfd, sans-serif; - font-size: 12px; + font-size: 14px; padding-top: constant(safe-area-inset-top); } +a, a:visited { + color: #000; +} .loader { z-index: 2; @@ -60,3 +63,15 @@ body { color: red !important; border-color: red !important; } +.error_hilite ~ span.err { + display: flex; +} +span.err { + display: none; + text-align: center; + justify-content: center; + align-items: center; + font-size: 14px; + height: 48px; + color: red !important; +} diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css index b7002f20..5c7b8a09 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/nav.css @@ -35,7 +35,7 @@ } #nav .menu span { display: block; - font-size: 14px; + font-size: 16px; letter-spacing:1.25px; text-shadow:0px 0px 1px rgba(0,0,0,.2); color: #000; @@ -77,9 +77,9 @@ #nav .submenu span { display: block; - font-size: 14px; + font-size: 16px; letter-spacing:1.25px; - color: #bbb; + color: #666; padding: 4px 0 12px 20px } @@ -94,7 +94,7 @@ float: left; width: 61px; border-left: 1px solid #ddd; - color: #bbb; + color: #666; font-size: 18px; padding: 5px 0; text-align: center; @@ -137,10 +137,13 @@ padding-bottom:0px; } #intro div { position: absolute; - top: 50%; left: 50%; + top: 50%; + left: 50%; width: 200px; - padding: 50px; - text-align: center; + height: 100px; + display: flex; + justify-content: center; + align-items: center; font-size: 17px; } #intro #compass { @@ -198,7 +201,7 @@ padding-bottom:0px; display: block; position: absolute; top: 0; left: 0; width: 100%; - height: 42px; + height: 48px; border-bottom: 1px solid black; } #header .logo { @@ -207,42 +210,42 @@ padding-bottom:0px; background-position: center center; position: absolute; background-size: contain; - width: 100px; height: 40px; - left: 50%; top: -4px; + width: 100px; height: 48px; + left: 50%; top: -3px; margin-left: -50px; top:0px; } #header .burger { display: inline-block; font-size: 24px; - padding: 9px 10px 5px; + padding: 12px 13px 7px; } #header .cart_rapper { - display: inline-block; + display: flex; + justify-content: center; + align-items: flex-end; position: relative; float: right; - width: 40px; height: 40px; + width: 44px; height: 48px; } #header .cart { position: relative; - float: right; width: 18px; - top: 15px; + margin-bottom: 10px; height: 18px; - margin-right: 18px; background: #fff; background-image:url(../img/cart-box.png); background-size:100%; background-repeat:no-repeat; } -.cart .cart_count { +#header .cart .cart_count { position: absolute; top: 50%; left: 50%; transform: translateY(-50%) translateX(-50%); - color: #bbb; + color: #666; font-size:12.35px; } @@ -273,12 +276,16 @@ padding-bottom:0px; } #footer div { width: 50%; + height: 48px; text-align: center; - padding: 10px 0; color: #000; float: left; - font-size:14px; + font-size: 16px; font-weight:bold; + padding: 0; + display: flex; + justify-content: center; + align-items: center; } #footer .ok { color: #000; @@ -287,7 +294,7 @@ padding-bottom:0px; width: 100%; } #footer .ok.disabled { - color: #bbb; + color: #666; } @@ -300,8 +307,10 @@ padding-bottom:0px; width: 100%; height: 100%; background: rgba(255,255,255,0.8); opacity: 0; - -webkit-transition: opacity 0.2s; - transition: opacity 0.2s; + -webkit-transition: opacity 0.2s, -webkit-transform 0.2s; + transition: opacity 0.2s, transform 0.2s; + -webkit-transform: translateZ(0) translateX(0); + transform: translateZ(0) translateX(0); } #curtain.visible { pointer-events: auto; @@ -346,13 +355,14 @@ padding-bottom:0px; #consent_modal { display: none; z-index: 2; + font-size: 16px; } #consent_modal a { color: black; } .modal button { font-family: pfd, sans-serif; - font-size: 12px; + font-size: 14px; padding: 10px; box-sizing: border-box; margin: 0; @@ -400,7 +410,7 @@ padding-bottom:0px; #selector:not(.selector-outer-wrap) .options div { background: white; text-align: center; - padding: 7px 12px; + padding: 12px 12px; box-sizing:border-box; font-size: 14px; border-left:1px solid black; @@ -462,28 +472,31 @@ padding-bottom:0px; #cart, #profile, #shipping, #payment, #settings, #orders { position: absolute; - top: 43px; - height: -webkit-calc(100% - 43px - 39px); - height: calc(100% - 43px - 39px); + top: 49px; + height: -webkit-calc(100% - 49px - 39px); + height: calc(100% - 49px - 39px); width: 100%; overflow: hidden; } #collection.single { - height: -webkit-calc(100% - 43px); - height: calc(100% - 43px); + height: -webkit-calc(100% - 49px); + height: calc(100% - 49px); } #story, #hub, #archive, .page, #closed { /* these things do not have a footer */ - height: -webkit-calc(100% - 43px); - height: calc(100% - 43px); + height: -webkit-calc(100% - 49px); + height: calc(100% - 49px); } h1 { text-align: center; margin: 0; - padding: 16px 10px 12px 10px; + display: flex; + justify-content: center; + align-items: center; border-bottom: 1px solid #000; - font-size: 14px; + height: 48px; + font-size: 16px; color: #000; letter-spacing: 1px; font-weight: bold; diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/products.css b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/products.css index 59bb403f..fbc22d28 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/products.css +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/css/products.css @@ -103,7 +103,7 @@ } .product .product-header { - font-size:14px; + font-size:16px; margin:18px 0 0; max-width:60%; position:relative; @@ -136,33 +136,49 @@ } .product .style { - padding:4px 9px; + padding: 0; border:1px solid black; float:left } .product .share { float:right; - padding:4px 9px; + padding: 0 12px; + height: 48px; + display: flex; + justify-content: center; + align-items: center; border:1px solid black; } .product .type { display:table-cell; - font-size:14px; + font-size:16px; } -.product .size { - padding-right:16px; +.product .size-color { + display: flex; + flex-direction: row; +} +.product .size-color span { position:relative; - box-sizing:border-box + box-sizing:border-box; + padding: 0 12px; + height: 48px; + font-size: 16px; + display: flex; + justify-content: center; + align-items: center; +} +.product .size-color span.size { + border-right: 1px solid #444; } .product .price { display:table-cell; - font-size:14px; + font-size:16px; text-align:right; - vertical-align:bottom + vertical-align:bottom; } .product .price, .product .type { @@ -179,12 +195,12 @@ .style-share { letter-spacing:0.5px; - font-size:12.35px + font-size:16px; } .size-color { position:relative; - font-size:12.35px + font-size:16px; } .type-price, .style-share { @@ -194,7 +210,7 @@ } -.size::after { +/*.size::after { content: ''; display: inline-block; width: 1px; @@ -205,7 +221,7 @@ right:5px; background: #999; } - +*/ .product .fit, .product .notAvailableInCanada { @@ -232,7 +248,8 @@ #product .content .body { letter-spacing:0.35px; - font-size:12px; + font-size:16px; + line-height: 1.4em; box-sizing:border-box; margin:0px auto 20px; clear:both; diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html index b6fc8317..664b2df0 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/index.html @@ -28,103 +28,96 @@ <link rel="stylesheet" type="text/css" href="css/blogs.css"> <title>Stone Island</title> </head> -<body class="loading"> +<body class="loading" role="application"> -<div id="nav"> +<div id="nav" role="directory"> <div id="nav-container"> <div id="nav-row"> <!-- flex --> - <span class="menu"> - <div class="logo"></div> - <div class="main_menu"> - <span class="store">STORE</span> - <span class="hub">HUB</span> - <span class="story">STORY</span> - <span class="archive">ARCHIVE</span> + <span role="menu" class="menu"> + <div class="logo" aria-label="Stone Island"></div> + <div role="menu" aria-label="Main Menu" class="main_menu"> + <span role="menuitem" class="store">STORE</span> + <span role="menuitem" class="hub">HUB</span> + <span role="menuitem" class="story">STORY</span> + <span role="menuitem" class="archive">ARCHIVE</span> </div> - <div class="account_menu"> - <span class="account_back menu-emphasis">< MY ACCOUNT</span> - <span class="profile">MY PROFILE</span> - <span class="payment">MY CARD</span> - <span class="shipping">ADDRESS BOOK</span> - <span class="orders">MY ORDERS</span> - <span class="return_link">RETURNS</span> - <span class="settings">NOTIFICATIONS</span> + <div role="menu" aria-label="Account Menu" class="account_menu"> + <span role="menuitem" class="account_back menu-emphasis">< MY ACCOUNT</span> + <span role="menuitem" class="profile">MY PROFILE</span> + <span role="menuitem" class="payment">MY CARD</span> + <span role="menuitem" class="shipping">ADDRESS BOOK</span> + <span role="menuitem" class="orders">MY ORDERS</span> + <span role="menuitem" class="return_link">RETURNS</span> + <span role="menuitem" class="settings">NOTIFICATIONS</span> </div> - <div class="faq_menu"> - <span class="faq_back menu-emphasis">< FAQ</span> - <span class="privacy">PRIVACY POLICY</span> - <span class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span> - <span class="terms">TERMS AND CONDITIONS</span> - <span class="returns">RETURN POLICY</span> - <span class="care">CUSTOMER CARE</span> + <div role="menu" aria-label="FAQ Menu" class="faq_menu"> + <span role="menuitem" class="faq_back menu-emphasis">< FAQ</span> + <span role="menuitem" class="privacy">PRIVACY POLICY</span> + <span role="menuitem" class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span> + <span role="menuitem" class="terms">TERMS AND CONDITIONS</span> + <span role="menuitem" class="returns">RETURN POLICY</span> + <span role="menuitem" class="care">CUSTOMER CARE</span> </div> </span> </div> <div id="nav-fill"> <!-- flex fill --> - <span class="submenu"> + <span role="menu" class="submenu"> <div class="main_menu"> - <span class="account">MY ACCOUNT</span> - <span class="login">LOGIN</span> - <span class="faq">FAQ</span> + <span role="menuitem" class="account">MY ACCOUNT</span> + <span role="menuitem" class="login">LOGIN</span> + <span role="menuitem" class="faq">FAQ</span> </div> <div class="account_menu"> - <span class="logout">LOGOUT</span> - <span class="faq">FAQ</span> - <span class="main">MAIN MENU</span> + <span role="menuitem" class="logout">LOGOUT</span> + <span role="menuitem" class="faq">FAQ</span> + <span role="menuitem" class="main">MAIN MENU</span> </div> <div class="faq_menu"> - <span class="account">MY ACCOUNT</span> - <span class="login">LOGIN</span> - <span class="logout">LOGOUT</span> - <span class="main">MAIN MENU</span> + <span role="menuitem" class="account">MY ACCOUNT</span> + <span role="menuitem" class="login">LOGIN</span> + <span role="menuitem" class="logout">LOGOUT</span> + <span role="menuitem" class="main">MAIN MENU</span> </div> </span> </div> <!-- end flex --> </div> - <span class="social"> - <span class="fb ion-social-facebook"></span> - <span class="insta ion-social-instagram-outline"></span> - <span class="tw ion-social-twitter"></span> - <span class="yt ion-social-youtube"></span> + <span class="social" role="list" aria-label="Social Links"> + <span role="menuitem" class="fb ion-social-facebook"></span> + <span role="menuitem" class="insta ion-social-instagram-outline"></span> + <span role="menuitem" class="tw ion-social-twitter"></span> + <span role="menuitem" class="yt ion-social-youtube"></span> </span> </div> <div id="content"> - <div id="intro"> + <div id="intro" role="menu" aria-label="Stone Island Home Screen"> <div id="compass"></div> - <div class="store">STORE</div> - <div class="hub">HUB</div> - <div class="story">STORY</div> - <div class="archive">ARCHIVE</div> + <div role="menuitem" class="store">STORE</div> + <div role="menuitem" class="hub">HUB</div> + <div role="menuitem" class="story">STORY</div> + <div role="menuitem" class="archive">ARCHIVE</div> <div class="alert"></div> - <span class="latlng">+40° 58' 90.9" N 74° 04' 46.3" W</span> + <span class="latlng" role="note" aria-label="Your Latitude and Longitude">+40° 58' 90.9" N 74° 04' 46.3" W</span> </div> - <div id="header"> - <span class="burger ion-android-menu"></span> - <span class="logo"></span> - <span class="cart_rapper"><span class="cart"><span class="cart_count">0</span></span></span> - </div> - - <div id="footer"> - <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen --> - <div class="cancel">CANCEL</div> - <div class="ok">OK</div> + <div id="header" role="menubar" aria-label="Menu bar"> + <span role="menu" aria-label="Show main menu" class="burger ion-android-menu"></span> + <span role="link" aria-label="Homepage. Stone Island logo" class="logo"></span> + <span role="link" aria-label="View cart" class="cart_rapper"><span class="cart"><span role="display" class="cart_count">0</span></span></span> </div> - <!-- BLOGS ================================================ --> - <div id="story"> + <div id="story" role="region" aria-label="Stone Island Story"> <div class="scroll"> - <h1>STORY</h1> + <h1 aria-label="Current section: Stone Island Story">STORY</h1> <img> <ul class="links"></ul> <div class="content"> @@ -137,21 +130,21 @@ </div> </div> - <div id="hub"> + <div id="hub" role="region" aria-label="Stone Island Hub"> <div class="scroll"> - <h1>HUB</h1> + <h1 aria-label="Current section: Stone Island Hub">HUB</h1> <div class="content"> <script type="text/html" class="template"> <div class="hub_item" data-id="{{id}}"> - <div class="gallery gallery-{{id}}"></div> - <div class="gallery-left"></div> - <div class="gallery-right"></div> - <div class="content-header"> - <div class="content-share"> - SHARE + + <div class="gallery gallery-{{id}}" role="carousel"></div> + <div role="button" class="gallery-left"></div> + <div role="button" class="gallery-right"></div> + <div role="heading" class="content-header"> + <div role="button" class="content-share"> + SHARE + </div> - <span class="title">{{title}}</span> - <span class="subtitle">{{subtitle}}</span> + <span role="heading" aria-details="{{cleantitle}}" class="title">{{title}}</span> + <span role="heading" aria-details="{{cleansubtitle}}"class="subtitle">{{subtitle}}</span> <span class="date"> {{date}} <span class="store"> @@ -167,7 +160,7 @@ <div class="fade-cover"></div> </div> - <div id="archive"> + <div id="archive" role="region" aria-label="Stone Island Archive"> <div class="scroll"> <div class="content"> @@ -187,28 +180,29 @@ </div> </div> - <div class="menu"> + <div class="menu" role="menu"> <div class="items"> <script type="text/html" class="template"> - <div class="item">{{title}}</div> + <div role="button" class="item">{{title}}</div> </script> </div> </div> <div class="heading"> - <h1>ARCHIVE</h1> - <div class="subtitle">'982'015</div> + <h1 role="heading" aria-label="Current section: Stone Island Archive">ARCHIVE</h1> + <div role="heading" class="subtitle" aria-label="1982 to 2015">'982'015</div> </div> </div> - <div id="privacy" class="page"> + <div id="privacy" role="region" aria-label="Privacy Policy" class="page"> <div class="scroll"> - <h1>PRIVACY POLICY</h1> + <h1 aria-label="Current section: Privacy Policy">PRIVACY POLICY</h1> <div class="content"></div> </div> </div> - <div id="account_terms" class="page"> + + <div id="account_terms" role="region" aria-label="My Account Terms and Conditions of Use" class="page"> <div class="scroll"> - <h1>MY ACCOUNT TERMS AND CONDITIONS OF USE</h1> + <h1 aria-label="Current section: My Account terms and conditions of use">MY ACCOUNT TERMS AND CONDITIONS OF USE</h1> <div class="content"> <h2>1. Services</h2> <p> @@ -261,21 +255,24 @@ </div> </div> </div> - <div id="terms" class="page"> + + <div id="terms" role="region" aria-label="Terms and Conditions" class="page"> <div class="scroll"> - <h1>TERMS AND CONDITIONS</h1> + <h1 aria-label="Current section: Terms and conditions">TERMS AND CONDITIONS</h1> <div class="content"></div> </div> </div> - <div id="returns" class="page"> + + <div id="returns" role="region" aria-label="Return Policy" class="page"> <div class="scroll"> - <h1>RETURN POLICY</h1> + <h1 aria-label="Current section: Return policy">RETURN POLICY</h1> <div class="content"></div> </div> </div> - <div id="care" class="page"> + + <div id="care" role="region" aria-label="Customer Care" class="page"> <div class="scroll"> - <h1>CUSTOMER CARE</h1> + <h1 aria-label="Current section: Customer care">CUSTOMER CARE</h1> <div class="content"></div> </div> </div> @@ -283,42 +280,42 @@ <!-- STORE ================================================ --> - <div id="collection"> + <div id="collection" role="region" aria-label="Store"> <div class="scroll"> - <h1>LOADING...</h1> + <h1 aria-label="Current section: Store">LOADING...</h1> <div class="loader"></div> <div class="content"> <script type="text/html" class="template"> - <div class="item" data-code="{{code8}}"> - <img src="{{image}}"> + <div role="link" class="item" data-code="{{code8}}"> + <img src="{{image}}" alt="{{title}}"> </div> </script> </div> </div> </div> - <div id="search"> + <div id="search" role="search" aria-label="Search"> <div class="scroll"> - <h1>SEARCH</h1> + <h1 aria-label="Current section: Search">SEARCH</h1> <div class="form"> <input type="text" class="q" placeholder="ENTER YOUR SEARCH"> </div> </div> </div> - <div id="product"> + <div id="product" role="region" aria-label="Product view"> <div class="scroll"> <div class="loader"></div> - <div id="gallery" class="gallery"> + <div id="gallery" class="gallery" role="carousel"> <script type="text/html" class="template"> - <div class="item" style="background-image:url({{image}})"></div> + <div role="link" class="item" aria-label="{{alt}}" style="background-image:url({{image}})"></div> </script> </div> - <div class="gallery-left"></div> - <div class="gallery-right"></div> + <div role="button" class="gallery-left" aria-label="Scroll gallery left"></div> + <div role="button" class="gallery-right" aria-label="Scroll gallery right"></div> <div class="content"> <div class="product-header"> - <span class="title"></span> + <span role="heading" class="title"></span> </div> <div class="type-price"> <span class="type"></span> @@ -327,11 +324,11 @@ <div class="style-share"> <span class="style"> <div class="size-color"> - <span class="size"></span> - <span class="color"></span> + <span role="button" class="size" aria-label="Tap to select size. Current size"></span> + <span role="button" class="color" aria-label="Tap to select color. Current color"></span> </div> </span> - <span class="share">SHARE +</span> + <span role="button" class="share">SHARE +</span> </div> <div class="fit">Fits Large</div> <div class='fitHeader'></div> @@ -347,14 +344,14 @@ </div> </div> - <div id="closed"> + <div id="closed" role="region" aria-label="The store is closed"> <div class="closed_store_msg"> <h3> LOADING THE STORE, PLEASE WAIT </h3> <h4> </h4> - <div class="website_link"> + <div role="link" class="website_link"> visit<br> <b>www.stoneisland.com</b> </div> @@ -364,33 +361,38 @@ <!-- ACCOUNT ================================================ --> - <div id="login"> + <div id="login" role="region" aria-label="Log In"> <div class="scroll"> - <h1>LOGIN</h1> + <h1 aria-label="Current section: Log In">LOGIN</h1> <div class="form"> <div class="container"> <div class="container-row"> - <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="1"> - <form><input type="password" name="Password" placeholder="PASSWORD" required tabindex="2"></form> + <label for="login_email_address">Email Address</label> + <input type="email" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1"> + <span class='err'></span> + + <label for="login_password">Password</label> + <form><input type="password" id="login_password" name="Password" aria-placeholder="PASSWORD" required tabindex="2"></form> + <span class='err'></span> </div> <div class="container-fill"> <div class="container-message premessage"> - <div class="newuser">New User?</div> - <div class="forgotpassword">Forgot Password?</div> + <div rel="link" class="newuser">New User?</div> + <div rel="link" class="forgotpassword">Forgot Password?</div> </div> <div class="container-message submessage"> <span class="msg"></span> </div> </div> </div> - <input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;"> + <input type="submit" aria-label="Submit form" style="position: absolute; left: -9999px; width: 1px; height: 1px;"> </div> </div> </div> - <div id="logout"> + <div id="logout" role="region" aria-label="You are now logged out"> <div class="scroll"> - <h1>LOGOUT</h1> + <h1 aria-label="Current section: You are now Logged Out">LOGOUT</h1> <div class="container"> <div class="container-fill"> <span class="container-message msg"> @@ -401,52 +403,71 @@ </div> </div> - <div id="signup"> + <div id="signup" role="region" aria-label="New User. Create an account"> <div class="scroll"> - <h1>NEW USER</h1> + <h1 aria-label="Current section: New User. Create an account">NEW USER</h1> <div class="form"> <div class="container"> <div class="container-row"> - <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1"> - <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2"> - <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3"> - <input type="email" name="ConfirmEmail" placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4"> + <label for="signup_name">First Name</label> + <input type="text" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> + <span class='err'></span> + + <label for="signup_surname">Last Name</label> + <input type="text" id="signup_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> + <span class='err'></span> + + <label for="signup_email">Email Address</label> + <input type="email" id="signup_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> + <span class='err'></span> + + <label for="signup_confirmemail">Confirm Email Address</label> + <input type="email" id="signup_confirmemail" name="ConfirmEmail" aria-placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4"> + <span class='err'></span> + + <label for="signup_birthday">Birthday (MM/DD/YYYY)</label> <div class="select-wrapper date-wrapper"> - <span>BIRTHDAY (MM/DD/YYYY)</span> - <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> + <span></span> + <input type="date" id="signup_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> </div> + <span class='err'></span> <h2>PASSWORD</h2> - <input type="password" name="Password" placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6"> - <input type="password" name="Password2" placeholder="CONFIRM PASSWORD" required tabindex="7"> + <label for="signup_password">Password (7 Characters or more)</label> + <input type="password" id="signup_password" name="Password" aria-placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6"> + <span class='err'></span> + + <label for="signup_confirm_password">Confirm Password</label> + <input type="password" id="signup_confirm_password" name="Password2" aria-placeholder="CONFIRM PASSWORD" required tabindex="7"> + <span class='err'></span> </div> <div class="container-row"> - <div class="checkbox-container "> + <div class="checkbox-container"> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-data-profiling" name="YooxLetter" value="true" required tabindex="8"> + <input type="checkbox" id="checkbox-data-profiling" aria-labelledby="checkbox-data-profiling-label" name="YooxLetter" value="true" required tabindex="8"> <label for="checkbox-data-profiling"></label> </div> - <label class="checkbox-caption" for="checkbox-data-profiling"> + <label class="checkbox-caption" for="checkbox-data-profiling" id="checkbox-data-profiling-label"> I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES. </label> </div> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-shopping-data-profiling" name="DataProfiling" value="true" required tabindex="9"> + <input type="checkbox" id="checkbox-shopping-data-profiling" aria-labelledby="checkbox-shopping-data-profiling-label" name="DataProfiling" value="true" required tabindex="9"> <label for="checkbox-shopping-data-profiling"></label> </div> - <label class="checkbox-caption" for="checkbox-shopping-data-profiling"> + <label class="checkbox-caption" for="checkbox-shopping-data-profiling" id="checkbox-shopping-data-profiling-label"> I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS. </label> </div> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-shopping-account-terms" name="GdprTerms" value="true" required tabindex="10"> + <input type="checkbox" id="checkbox-shopping-account-terms" aria-labelledby="checkbox-gdpr-terms-label" name="GdprTerms" value="true" required tabindex="10"> <label for="checkbox-shopping-data-profiling"></label> </div> - <label class="checkbox-caption" for="checkbox-shopping-account-terms"> + <label class="checkbox-caption" for="checkbox-shopping-account-terms" id="checkbox-gdpr-terms-label"> I ACCEPT MY ACCOUNT TERMS AND CONDITIONS OF USE * </label> </div> @@ -465,54 +486,71 @@ </div> </div> - <div id="profile"> + <div id="profile" role="region" aria-label="My Profile"> <div class="scroll"> - <h1>MY PROFILE</h1> + <h1 aria-label="Current section: My Profile">MY PROFILE</h1> <div class="form"> <div class="container"> <div class="container-row"> - <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1"> - <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2"> - <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3"> + <label for="profile_name">First Name</label> + <input type="text" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> + <span class='err'></span> + + <label for="profile_surname">Last Name</label> + <input type="text" id="profile_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> + <span class='err'></span> + + <label for="profile_email">Email Address</label> + <input type="email" id="profile_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> + <span class='err'></span> + + <label for="profile_birthday">Birthday (MM/DD/YYYY)</label> <div class="select-wrapper date-wrapper"> - <span>BIRTHDAY (MM/DD/YYYY)</span> - <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="4"> + <span></span> + <input type="date" id="profile_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> </div> + <span class='err'></span> <h2>CHANGE PASSWORD</h2> - <input type="password" name="CurrentPassword" placeholder="CURRENT PASSWORD" required> - <input type="password" name="NewPassword" placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="5"> - <div class="container-fill container-fill-condensed"> - <div class="container-message container-message-condensed"> - <span class="msg msg-condensed"> - </span> - </div> + <label for="profile_password">Current Password</label> + <input type="password" id="profile_password" name="CurrentPassword" aria-placeholder="CURRENT PASSWORD" required tabindex="6"> + <span class='err'></span> + + <label for="profile_confirm_password">New Password (7 characters or more)</label> + <input type="password" id="profile_confirm_password" name="NewPassword" aria-placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="7"> + <span class='err'></span> + </div> + + <div class="container-fill container-fill-condensed"> + <div class="container-message container-message-condensed"> + <span class="msg msg-condensed"> + </span> </div> - <div class="container-row"> - <div class="checkbox-container"> - <div class="checkbox-row"> - <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-data-profiling-profile" name="YooxLetter" value="true" required tabindex="7"> - <label for="checkbox-data-profiling-profile"></label> - </div> - <label class="checkbox-caption" for="checkbox-data-profiling-profile"> - I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES. - </label> - </div> - <div class="checkbox-row"> - <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-shopping-data-profiling-profile" name="DataProfiling" value="true" required tabindex="8"> - <label for="checkbox-shopping-data-profiling-profile"></label> - </div> - <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile"> - I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS. - </label> + </div> + <div class="container-row"> + <div class="checkbox-container"> + <div class="checkbox-row"> + <div class="checkbox-toggle"> + <input type="checkbox" id="checkbox-data-profiling-profile" aria-labelledby="yoox-letter-checkbox" name="YooxLetter" value="true" required tabindex="7"> + <label for="checkbox-data-profiling-profile"></label> </div> - <div class="privacy-msg"> - Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP. - <br> - Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information. + <label class="checkbox-caption" for="checkbox-data-profiling-profile" id="yoox-letter-checkbox"> + I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES. + </label> + </div> + <div class="checkbox-row"> + <div class="checkbox-toggle"> + <input type="checkbox" id="checkbox-shopping-data-profiling-profile" aria-labelledby="yoox-data-profiling-checkbox" name="DataProfiling" value="true" required tabindex="8"> + <label for="checkbox-shopping-data-profiling-profile"></label> </div> + <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile" id="yoox-data-profiling-checkbox"> + I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS. + </label> + </div> + <div class="privacy-msg"> + Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP. + <br> + Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information. </div> </div> </div> @@ -520,11 +558,10 @@ </div> </div> </div> - - <div id="shipping"> + <div id="shipping" role="region" aria-label="Address Book"> <div class="scroll"> - <h1>ADDRESS BOOK</h1> + <h1 aria-label="Current section: Your address book">ADDRESS BOOK</h1> <div class="form"> <div class="container"> <div class="container-row"> @@ -537,7 +574,7 @@ information will always remain private </span> </div> - <div class="privacy-msg"> + <div rel="link" class="privacy-msg"> Consult our <u>PRIVACY POLICY</u> for further information. </div> </div> @@ -546,9 +583,9 @@ </div> </div> - <div id="payment"> + <div id="payment" role="region" aria-label="My Card"> <div class="scroll"> - <h1>MY CARD</h1> + <h1 aria-label="Current section: My Card">MY CARD</h1> <div class="form"> <div class="container"> <div class="container-row"> @@ -562,7 +599,7 @@ information will always remain private </span> </div> - <div class="privacy-msg"> + <div rel="link" class="privacy-msg"> Consult our <u>PRIVACY POLICY</u> for further information. </div> </div> @@ -571,9 +608,9 @@ </div> </div> - <div id="settings"> + <div id="settings" role="region" aria-label="Notifications"> <div class="scroll"> - <h1>NOTIFICATIONS</h1> + <h1 aria-label="Current section: Notifications">NOTIFICATIONS</h1> <div class="form"> <div class="toggle-container"> <div class="toggle-row"> @@ -582,7 +619,7 @@ Receive notifications for Store </div> <div class="toggle"> - <input type="checkbox" id="store-notifications" name="store" class="switch"> + <input type="checkbox" aria-label="Receive notifications for Store" id="store-notifications" name="store" class="switch"> <label for="store-notifications"></label> </div> </div> @@ -592,7 +629,7 @@ Receive notifications for Hub </div> <div class="toggle"> - <input type="checkbox" id="hub-notifications" name="hub" class="switch"> + <input type="checkbox" aria-label="Receive notifications for Hub" id="hub-notifications" name="hub" class="switch"> <label for="hub-notifications"></label> </div> </div> @@ -601,9 +638,9 @@ </div> </div> - <div id="orders"> + <div id="orders" role="region" aria-label="My Orders"> <div class="scroll"> - <h1>MY ORDERS</h1> + <h1 aria-label="Current section: My orders">MY ORDERS</h1> <div id="order_list"> <div class="list"></div> <div class="empty">You have no orders.</div> @@ -681,12 +718,12 @@ <!-- CART ================================================ --> - <div id="cart"> - <h1> - <span class="full_msg"> + <div id="cart" role="region" aria-label="Your Cart"> + <h1 role="presentation"> + <span class="full_msg" role="heading" aria-label="Current section: Your cart"> YOUR CART / <span class="itemcount"></span> </span> - <span class="empty_msg"> + <span class="empty_msg" role="heading" aria-label="Current section: Your cart is empty"> YOUR CART IS EMPTY </span> </h1> @@ -694,10 +731,10 @@ <div class="steps"> <span class="summary_step">SUMMARY</span> <span class="shipping_step">SHIPPING</span> - <span class="payment_step">BILLING</span> + <span class="payment_step">PAYMENT</span> </div> - <div id="cart_summary"> + <div id="cart_summary" role="region" aria-label="Cart Summary"> <div class="scroll"> <div class="summary-container container"> <div class="container-row"> @@ -705,20 +742,20 @@ <div class="rows"> <script type="text/html" class="template"> <div class="cart_item_image"> - <img src="{{image}}"> + <a href="#/store/{{code8}}" aria-label="{{cleantitle}}"><img src="{{image}}"></a> </div> <div class="cart_item_info"> - <span class="sku">{{sku}}</span> - <span class="title">{{title}}</span> - <span class="type">{{type}}</span> + <span class="sku" aria-label="SKU">{{sku}}</span> + <span class="title" aria-label="Product name: {{cleantitle}}">{{title}}</span> + <span class="type" aria-label="Product type">{{type}}</span> <div class="meta"> - <div class="meta-size"><b>SIZE:</b> {{size}}</div> - <div class="meta-color"><b>COLOR:</b> {{color}}</div> - <div class="meta-quantity"><b>QUANTITY:</b> {{quantity}}</div> + <div class="meta-size" aria-label="Size"><b>SIZE:</b> {{size}}</div> + <div class="meta-color" aria-label="Color"><b>COLOR:</b> {{color}}</div> + <div class="meta-quantity" aria-label="Quantity"><b>QUANTITY:</b> {{quantity}}</div> </div> </div> <div class="cart_item_price"> - <span class="remove"></span> + <span class="remove" aria-label="Remove item from your cart. Item to be removed: {{cleantitle}}"></span> <span class="price">{{price}}</span> </div> </script> @@ -752,7 +789,7 @@ </div> </div> - <div id="cart_shipping"> + <div id="cart_shipping" role="region" aria-label="Cart Shipping"> <div class="scroll"> <div class="form"> <div class="dropdown-wrapper"> @@ -810,9 +847,11 @@ information will always remain private </span> </div> - <div class="privacy-msg"> - Consult our <u>PRIVACY POLICY</u> for further information. - </div> + <a href="#/page/privacy"> + <div class="privacy-msg"> + Consult our <u>PRIVACY POLICY</u> for further information. + </div> + </a> </div> </div> @@ -820,7 +859,7 @@ </div> </div> - <div id="cart_payment"> + <div id="cart_payment" role="region" aria-label="Cart Payment"> <div class="scroll"> <div class="form"> @@ -877,7 +916,7 @@ <script type="text/html" class="cc_template"> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input id="cc-checkbox-{{id}}" type="radio" name="CCId" value="{{id}}" {{checked}}> + <input id="cc-checkbox-{{id}}" aria-label="Select this credit card" type="radio" name="CCId" value="{{id}}" {{checked}}> <label for="cc-checkbox-{{id}}"></label> </div> <label class="checkbox-caption" for="cc-checkbox-{{id}}"> @@ -903,20 +942,20 @@ information will always remain private </span> </div> - <div class="privacy-msg"> - Consult our <u>PRIVACY POLICY</u> for further information. - </div> + <a class='privacy-link'> href="#/page/privacy"> + <div class="privacy-msg"> + Consult our <u>PRIVACY POLICY</u> for further information. + </div> + </a> </div> </div> - <br><br><br><br> - </div> </div> </div> - <div id="cart_confirm"> + <div id="cart_confirm" role="region" aria-label="Confirm your order"> <div class="scroll"> - <h1>CONFIRM</h1> + <h1 aria-label="Current section: Confirm your cart">CONFIRM</h1> <div class="order_section"> <h2>ORDER SUMMARY</h2> @@ -997,11 +1036,17 @@ </div> + <div id="footer" role="menubar" aria-label="Footer"> + <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen --> + <div role="button" class="cancel">CANCEL</div> + <div role="button" class="ok">OK</div> + </div> + <div id="curtain"> <div class="loader"></div> </div> - <div class="modal" id="consent_modal"> + <div class="modal" id="consent_modal" role="modal" aria-label="Please accept the new terms"> YOUR MY ACCOUNT <br><br> We have improved the My Account Terms and Conditions of Use. @@ -1017,6 +1062,7 @@ </label> </div> </div> + <br><br> For more information, please consult our <a href="#/page/privacy">Privacy Policy</a> or visit <a href="#" id="care-link">Customer Care</a>. @@ -1030,22 +1076,31 @@ </div> <div id="selector"> - <div class="options"> + <div class="options" role="select"> <script type="text/html" class="template"> - <div data-id="{{id}}">{{label}}</div> + <div aria-label="Pick {{label}}" data-id="{{id}}">{{label}}</div> </script> </div> </div> </div> +<!-- Forms --> + <script type="text/html" id="creditcard_template"> - <input type="number" name="Number" placeholder="CREDIT CARD NUMBER" required> + <label for="creditcard_id_{{_id}}">Credit Card Number</label> + <input type="number" id="creditcard_id_{{_id}}" name="Number" aria-placeholder="CREDIT CARD NUMBER" required> + <span class='err'></span> + <div class="half-input"> + <label for="cc_expiration_month_{{_id}}">EXPIRATION MONTH</label> + <label for="cc_expiration_year_{{_id}}">EXPIRATION YEAR</label> + </div> + <div class="half-input"> <div class="select-wrapper"> - <span>EXPIRATION MONTH</span> - <select name="ExpirationMonth"> + <span></span> + <select name="ExpirationMonth" id="cc_expiration_month_{{_id}}"> <option value="NONE">EXPIRATION MONTH</option> <option value="01">01</option> <option value="02">02</option> @@ -1062,10 +1117,9 @@ </select> </div> <div class="select-wrapper"> - <span>EXPIRATION YEAR</span> - <select name="ExpirationYear"> + <span></span> + <select name="ExpirationYear" id="cc_expiration_year_{{_id}}"> <option value="NONE">EXPIRATION YEAR</option> - <option value="2018">2018</option> <option value="2019">2019</option> <option value="2020">2020</option> <option value="2021">2021</option> @@ -1081,25 +1135,50 @@ </select> </div> </div> - <input type="number" name="Cvv" placeholder="SECURITY CODE" required> + <label for="cc_cvv_{{_id}}">Security Code</label> + <input type="number" id="cc_cvv_{{_id}}" name="Cvv" aria-placeholder="SECURITY CODE" required> + <span class='err'></span> </script> <script type="text/html" id="address_template"> - <input type="text" name="Name" placeholder="First Name"> - <input type="text" name="Surname" placeholder="Last Name"> - <input type="text" name="Address1" placeholder="Address Line 1"> - <input type="text" name="Address2" placeholder="Address Line 2"> + <label for="address_name_{{_id}}">First Name</label> + <input type="text" id="address_name_{{_id}}" name="Name" aria-placeholder="First Name"> + <span class="err"></span> + + <label for="address_surname_{{_id}}">Last Name</label> + <input type="text" id="address_surname_{{_id}}" name="Surname" aria-placeholder="Last Name"> + <span class="err"></span> + + <label for="address_address1_{{_id}}">Address line 1</label> + <input type="text" id="address_address1_{{_id}}" name="Address1" aria-placeholder="Address Line 1"> + <span class="err"></span> + + <label for="address_address2_{{_id}}">Address line 2</label> + <input type="text" id="address_address2_{{_id}}" name="Address2" aria-placeholder="Address Line 2"> + <span class="err"></span> + + <div class="half-input"> + <label for="address_city_{{_id}}">City</label> + <label for="address_state_{{_id}}">State</label> + </div> + <div class="half-input"> - <input type="text" name="City" placeholder="City"> + <input type="text" id="address_city_{{_id}}" name="City" aria-placeholder="City"> <div class="select-wrapper"> - <span>STATE</span> - <select name="Province"> + <span></span> + <select id="address_state_{{_id}}" name="Province"> {{PROVINCES}} </select> </div> </div> + <div class="half-input"> - <input type="text" name="ZipCode" placeholder="ZIP" required> + <label for="address_zip_{{_id}}">Zip</label> + <label>Country</label> + </div> + + <div class="half-input"> + <input type="text" id="address_zip_{{_id}}" name="ZipCode" aria-placeholder="ZIP" required> <div class="country-wrapper-static"> <span class="country-label">UNITED STATES</span> <!-- @@ -1109,7 +1188,10 @@ --> </div> </div> - <input type="number" name="Phone" placeholder="PHONE NUMBER"> + + <label for="address_phone_{{_id}}">Phone Number</label> + <input type="number" id="address_phone_{{_id}}" name="Phone" aria-placeholder="PHONE NUMBER"> + <span class="err"></span> <!-- <div class="checkbox-container save_as_default"> <div class="checkbox-row"> @@ -1227,6 +1309,7 @@ <script src="js/lib/etc/geo.js"></script> <script src="js/lib/etc/sim.js"></script> <script src="js/lib/etc/backup_db.js"></script> +<script src="js/lib/etc/accessibility.js"></script> <script src="js/lib/view/View.js"></script> <script src="js/lib/view/Router.js"></script> diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js index a8caa2e5..e358fc56 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/index.js @@ -90,8 +90,8 @@ var app = (function(){ } app.api_ready = function(){ - if (is_iphone_x) { - StatusBar.hide() + if (is_iphone_x && 'StatusBar' in window) { + window.StatusBar.hide() } app.view = null diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js index 8ac7c193..af035f6a 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/account/AccountView.js @@ -74,7 +74,7 @@ var AccountView = View.extend({ }, populateCreditCards: function(data, cb){ - console.log("populate ccs:", data.CreditCards) + // console.log("populate ccs:", data.CreditCards) this.ccs = data.CreditCards this.ccLookup = {} if (! data.CreditCards || ! data.CreditCards.length) { diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js index 12aaf7de..0d769e95 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/ArchiveView.js @@ -21,7 +21,6 @@ var ArchiveView = ScrollableView.extend({ this.scroller = new IScroll('#archive .scroll', app.iscroll_options) this.$subtitle = this.$('.subtitle') this.subtitle_html = this.$subtitle.html() - }, back: function(){ diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js index b072a887..c4ebd716 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/HubView.js @@ -57,6 +57,8 @@ var HubView = ScrollableView.extend({ .replace(/{{date}}/, moment(row.date).format("MM.DD.YYYY")) .replace(/{{title}}/, row.title) .replace(/{{subtitle}}/, row.subtitle) + .replace(/{{cleantitle}}/, stonewash(row.title)) + .replace(/{{cleansubtitle}}/, stonewash(row.subtitle)) .replace(/{{link}}/, row.link) .replace(/{{body}}/, row.body.replace(/\n/g, "<br>")) var $t = $(t) @@ -71,6 +73,7 @@ var HubView = ScrollableView.extend({ row.image.forEach(function(img){ var el = document.createElement("div") el.style.backgroundImage = "url(" + img.uri + ")" + el.setAttribute('aria-label', img.caption) el.className = "item" $gallery.append(el) }) @@ -107,6 +110,8 @@ var HubView = ScrollableView.extend({ play.className = "play" $(".gallery-" + row.id).append(play) $(".gallery-" + row.id).addClass("gallery-video-post") + $(".gallery-" + row.id).attr('role', 'link') + $(".gallery-" + row.id).attr('aria-label', stonewash(row.title) + ". Watch the video on Youtube") if (! row.image) { var url = row.link var ytid = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0]; @@ -125,6 +130,7 @@ var HubView = ScrollableView.extend({ store_link: function(){ app.router.go("store") }, + play_video: function(e){ var row = $(e.currentTarget).closest('.gallery-video-post').data("row") window.open(row.link, '_system') @@ -142,7 +148,9 @@ var HubView = ScrollableView.extend({ share: function(e){ var title = $(e.currentTarget).parent().find(".title").text() console.log("share", title) - window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" ) + if (window.plugins && window.plugins.socialsharing) { + window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" ) + } }, }) @@ -169,7 +177,7 @@ var HubLoader = (function(){ if (item.image && item.image.length) { loader = new Loader (HubLoader.build) images = item.image.map(function(img){ - return img.uri.replace("http:","https:") + return img.uri.replace("http:", "https:") }).filter(function(img){ return img.uri }) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js index 5a7a56d1..9ba17343 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/blogs/StoryView.js @@ -67,6 +67,7 @@ var StoryView = ScrollableView.extend({ this.$img.stop().fadeTo(110,0.65, function() { $replace.attr("src", section.image.uri) + $replace.attr("alt", section.image.caption) }).fadeTo(130,1) } diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js index 9b5da7b7..bf150791 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/cart/CartSummary.js @@ -75,7 +75,6 @@ var CartSummary = ScrollableView.extend({ this.$rows.append($el) app.product.find(code, function(data, details){ // console.log(data, details) - var descriptions = app.product.get_descriptions( details ) // console.log(descriptions) @@ -110,8 +109,10 @@ var CartSummary = ScrollableView.extend({ var t = this.template .replace(/{{image}}/, sdk.image(item['Code10'], '11_f')) - .replace(/{{sku}}/, num) - .replace(/{{title}}/, title) + .replace(/{{sku}}/g, num) + .replace(/{{code8}}/g, data['Code8']) + .replace(/{{title}}/g, title) + .replace(/{{cleantitle}}/g, stonewash(title)) .replace(/{{type}}/, type) .replace(/{{size}}/, size_name) .replace(/{{color}}/, color_name) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js new file mode 100644 index 00000000..614c3796 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/etc/accessibility.js @@ -0,0 +1,9 @@ +$(function(){ + $("h1").each(function(){ + this['aria-label'] = 'Section title is ' + this.innerText + }) +}) + +function stonewash (s) { + return s.replace(/'0/g, '20').replace(/_/g, ' ') +}
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js index 9e0c49b6..fd0fa59d 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/AddressView.js @@ -1,4 +1,6 @@ +var AddressViewID = Math.round(Date.now() % 1000) + var AddressView = SerializableView.extend({ template: $("#address_template").html(), @@ -14,7 +16,7 @@ var AddressView = SerializableView.extend({ this.parent = opt.parent this.checkPhone = 'checkPhone' in opt ? opt.checkPhone : true this.setElement( this.parent.$(".address") ) - this.$el.html(this.template) + this.$el.html(this.template.replace(/{{_id}}/g, AddressViewID++)) }, populate: function(data){ @@ -34,12 +36,15 @@ var AddressView = SerializableView.extend({ "Address1": "Please enter your street address.", "City": "Please enter your city.", "ZipCode": "Please enter your zip code.", + "Phone": "Please enter your phone number.", }, validate_fields: function(data, errors){ if (this.disabled) { return } if (this.checkPhone) { - var phone_number = data.Phone ? data.Phone.replace(/[^0-9]/g, "") : "" + var phone_number = data.Phone ? String(data.Phone).replace(/[^0-9]/g, "").replace(/^[01]+/, '') : "" + data.Phone = phone_number + this.$('[name=Phone]').val(phone_number) var phone_length = phone_number.length if (phone_length === 0 || ! data.Phone) { errors.push([ "Phone", "Please enter your phone number." ]) @@ -50,10 +55,10 @@ var AddressView = SerializableView.extend({ else if (phone_length > 10) { errors.push([ "Phone", "International phone numbers are not accepted." ]) } - else if (data.Phone[0] === '+') { + else if (phone_number.charAt(0) === '+') { errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ]) } - else if (phone_number[0] === '1') { + else if (phone_number.charAt(0) === '1') { errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ]) } } @@ -81,7 +86,10 @@ var AddressView = SerializableView.extend({ }, scroll_up_to_phone: function(e){ - app.view.scroller && app.view.scroller.scrollTo(0, -$(e.currentTarget).position().top) + var position = $(e.currentTarget).prev('label').position() + if (app.view.scroller && position) { + app.view.scroller.scrollTo(0, -position.top) + } }, }) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js index 63784618..af53d964 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/nav/CreditCardView.js @@ -1,4 +1,6 @@ +var CreditCardViewID = Math.round(Date.now() % 1000) + var CreditCardView = SerializableView.extend({ template: $("#creditcard_template").html(), @@ -13,7 +15,7 @@ var CreditCardView = SerializableView.extend({ initialize: function(opt){ this.parent = opt.parent this.setElement( this.parent.$(".cc") ) - this.$el.html(this.template) + this.$el.html(this.template.replace(/{{_id}}/g, CreditCardViewID++)) this.$number = this.$("[name=Number]") this.$number.validateCreditCard(this.updateCard.bind(this), this.cardOptions) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js index 4674fc18..b7af235a 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/CollectionView.js @@ -196,6 +196,7 @@ var CollectionView = ScrollableView.extend({ this.items[ item['Code8'] ] = item var t = this.template.replace(/{{image}}/, sdk.image(item['DefaultCode10'], is_single_product ? '13_f' : '11_f')) .replace(/{{code8}}/, item['Code8']) + .replace(/{{title}}/, stonewash(item['ModelNames'])) var $t = $(t) if (app.store.ShowProductNameOnCollectionPage) { var $title = $("<span>") @@ -217,6 +218,7 @@ var CollectionView = ScrollableView.extend({ setCollectionName: function(name){ this.collectionName = name this.$title.html(this.collectionName) + this.$title.attr('aria-label', stonewash(this.collectionName)) }, // filter by department diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js index 0acd48c5..d6f5723c 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/GalleryView.js @@ -39,7 +39,9 @@ var GalleryView = View.extend({ Object.keys(valid_styles).sort(sort_image_styles).forEach(function(style){ var id = valid_styles[style] + "_" + style - var t = this.template.replace(/{{image}}/, sdk.image(code, id)) + var t = this.template + .replace(/{{image}}/, sdk.image(code, id)) + .replace(/{{alt}}/, YOOX_IMAGE_STYLE_LABELS[style] || "Alternate view") this.$el.append(t) }.bind(this)) @@ -79,5 +81,8 @@ var GalleryView = View.extend({ }) var YOOX_IMAGE_STYLE_ORDER = "ZZZ f r d e a b c g l".split(" ") - +var YOOX_IMAGE_STYLE_LABELS = { + f: 'Front view', + r: 'Rear view', +} function sort_image_styles (b,a){ return (YOOX_IMAGE_STYLE_ORDER.indexOf(b)) - (YOOX_IMAGE_STYLE_ORDER.indexOf(a)) }
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js index 3bcf5ee4..c47dfddd 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/ProductView.js @@ -434,7 +434,9 @@ var ProductView = ScrollableView.extend({ }, share: function(){ - window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code) + if (window.plugins && 'socialsharing' in window.plugins) { + window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code) + } }, }) diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js index 9c1109f6..e3376a4d 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/products/Selector.js @@ -21,7 +21,7 @@ var Selector = View.extend({ options.forEach(function(opt){ this.lookup[String(opt.id)] = opt var t = this.template.replace(/{{id}}/, opt.id) - .replace(/{{label}}/, opt.label) + .replace(/{{label}}/g, opt.label) this.$options.append(t) }.bind(this)) this.$el.show() diff --git a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js index 4155f102..3181fddd 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js +++ b/StoneIsland/platforms/ios/Stone Island.xcarchive/Products/Applications/Stone Island.app/www/js/lib/view/Serializable.js @@ -105,6 +105,7 @@ var SerializableView = View.extend({ console.log(errors) var msgs = [] this.$('.error_hilite').removeClass('error_hilite') + this.$('.err').html('') errors.forEach(function(e, i){ // if (i > 0) { return } if (e[0]) { @@ -112,13 +113,15 @@ var SerializableView = View.extend({ var el = $el[0] if (el && el.nodeName === 'SELECT') { $el.parent().addClass('error_hilite') + $el.parent().next('.err').html(e[1]) } else { $el.addClass('error_hilite') + $el.next('.err').html(e[1]) } } - msgs.push(e[1]) + // msgs.push(e[1]) }.bind(this)) - this.$msg.html(msgs.join("<br>")) + // this.$msg.html(msgs.join("<br>")) this.$msg.addClass('alert-notice') }, diff --git a/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj b/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj index 439fe75d..e8988501 100755 --- a/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj +++ b/StoneIsland/platforms/ios/Stone Island.xcodeproj/project.pbxproj @@ -39,6 +39,8 @@ CE8687FA42EA49F2936AA5E4 /* CDVConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 669C0562CA3E4A2E9E6898D6 /* CDVConnection.m */; }; EE95056671E844C9921729AE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65AAB41973FB4238B7AD4D85 /* AudioToolbox.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; EFF00C22294FE756DED28A81 /* libPods-Stone Island.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78CB957A0B40BA339C669D53 /* libPods-Stone Island.a */; }; + 7D7ED983AE84434E999A6443 /* CDVMobileAccessibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C408E9D6E534246896B5341 /* CDVMobileAccessibility.m */; }; + 161403E5BECB45528A83A79A /* MediaAccessibility.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75209907C365445CAF1506E9 /* MediaAccessibility.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -127,6 +129,9 @@ EDA99B42F1E147FCA8824E6E /* CoreLocation.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; F840E1F0165FE0F500CFE078 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = config.xml; path = "Stone Island/config.xml"; sourceTree = "<group>"; }; F9D019AC51834C309501EAF5 /* CDVReachability.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = CDVReachability.h; path = "cordova-plugin-network-information/CDVReachability.h"; sourceTree = "<group>"; }; + 0C408E9D6E534246896B5341 /* CDVMobileAccessibility.m */ = {isa = PBXFileReference; name = "CDVMobileAccessibility.m"; path = "phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; explicitFileType = undefined; includeInIndex = 0; }; + 62F820B01E9B4DD9842F9D8C /* CDVMobileAccessibility.h */ = {isa = PBXFileReference; name = "CDVMobileAccessibility.h"; path = "phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h"; sourceTree = "<group>"; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; explicitFileType = undefined; includeInIndex = 0; }; + 75209907C365445CAF1506E9 /* MediaAccessibility.framework */ = {isa = PBXFileReference; name = "MediaAccessibility.framework"; path = "System/Library/Frameworks/MediaAccessibility.framework"; sourceTree = SDKROOT; fileEncoding = undefined; lastKnownFileType = wrapper.framework; explicitFileType = undefined; includeInIndex = 0; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -145,6 +150,7 @@ 99F09E9D2B904D3580C5937F /* libsqlite3.tbd in Frameworks */, B5C0B9106EB44347960186AA /* libz.tbd in Frameworks */, EFF00C22294FE756DED28A81 /* libPods-Stone Island.a in Frameworks */, + 161403E5BECB45528A83A79A /* MediaAccessibility.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -234,6 +240,7 @@ B3F4995810FD493F846F5FC9 /* libsqlite3.tbd */, BD3EDD7FEE434D15AB85EECA /* libz.tbd */, 78CB957A0B40BA339C669D53 /* libPods-Stone Island.a */, + 75209907C365445CAF1506E9 /* MediaAccessibility.framework */, ); name = Frameworks; sourceTree = "<group>"; @@ -290,6 +297,8 @@ 4B1911CDF0454542977ECE35 /* PushPlugin.h */, DCFA1E58FE794CA6BE2A4834 /* Sim.m */, 3782AD713ACA4C098142F2DA /* Sim.h */, + 0C408E9D6E534246896B5341 /* CDVMobileAccessibility.m */, + 62F820B01E9B4DD9842F9D8C /* CDVMobileAccessibility.h */, ); name = Plugins; path = "Stone Island/Plugins"; @@ -483,6 +492,7 @@ A842514FAE364263A91C9664 /* AppDelegate+notification.m in Sources */, 17B84E5E1F2E4D699B41A450 /* PushPlugin.m in Sources */, 52A4EAACA1F34D6EBEED78A3 /* Sim.m in Sources */, + 7D7ED983AE84434E999A6443 /* CDVMobileAccessibility.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist b/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist index 371cb20d..605e51b3 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/StoneIsland/platforms/ios/Stone Island.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist @@ -9,6 +9,11 @@ <key>orderHint</key> <integer>2</integer> </dict> + <key>Stone Island.xcscheme_^#shared#^_</key> + <dict> + <key>orderHint</key> + <integer>3</integer> + </dict> </dict> </dict> </plist> diff --git a/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate b/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate Binary files differindex 7c07bcce..3c41eb73 100644 --- a/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate +++ b/StoneIsland/platforms/ios/Stone Island.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h new file mode 100644 index 00000000..662abbea --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.h @@ -0,0 +1,82 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +#import <Cordova/CDVPlugin.h> + +static const int BASE_UI_FONT_TEXT_STYLE_BODY_POINT_SIZE = 16; + +@interface CDVMobileAccessibility : CDVPlugin { + NSString* callbackId; + NSString* commandCallbackId; + BOOL boldTextEnabled; + BOOL closedCaptioningEnabled; + BOOL darkerSystemColorsEnabled; + BOOL grayscaleEnabled; + BOOL guidedAccessEnabled; + BOOL invertColorsEnabled; + BOOL monoAudioEnabled; + BOOL reduceMotionEnabled; + BOOL reduceTransparencyEnabled; + BOOL speakScreenEnabled; + BOOL speakSelectionEnabled; + BOOL switchControlRunning; + BOOL voiceOverRunning; +} + +@property (strong) NSString* callbackId; +@property (strong) NSString* commandCallbackId; +@property BOOL boldTextEnabled; +@property BOOL closedCaptioningEnabled; +@property BOOL darkerSystemColorsEnabled; +@property BOOL grayscaleEnabled; +@property BOOL guidedAccessEnabled; +@property BOOL invertColorsEnabled; +@property BOOL monoAudioEnabled; +@property BOOL reduceMotionEnabled; +@property BOOL reduceTransparencyEnabled; +@property BOOL speakScreenEnabled; +@property BOOL speakSelectionEnabled; +@property BOOL switchControlRunning; +@property BOOL voiceOverRunning; +@property double mFontScale; + + +- (void) isBoldTextEnabled:(CDVInvokedUrlCommand*)command; +- (void) isClosedCaptioningEnabled:(CDVInvokedUrlCommand*)command; +- (void) isDarkerSystemColorsEnabled:(CDVInvokedUrlCommand*)command; +- (void) isGrayscaleEnabled:(CDVInvokedUrlCommand*)command; +- (void) isGuidedAccessEnabled:(CDVInvokedUrlCommand*)command; +- (void) isInvertColorsEnabled:(CDVInvokedUrlCommand*)command; +- (void) isMonoAudioEnabled:(CDVInvokedUrlCommand*)command; +- (void) isReduceMotionEnabled:(CDVInvokedUrlCommand*)command; +- (void) isReduceTransparencyEnabled:(CDVInvokedUrlCommand*)command; +- (void) isScreenReaderRunning:(CDVInvokedUrlCommand*)command; +- (void) isSpeakScreenEnabled:(CDVInvokedUrlCommand*)command; +- (void) isSpeakSelectionEnabled:(CDVInvokedUrlCommand*)command; +- (void) isSwitchControlRunning:(CDVInvokedUrlCommand*)command; +- (void) getTextZoom:(CDVInvokedUrlCommand*)command; +- (void) setTextZoom:(CDVInvokedUrlCommand*)command; +- (void) updateTextZoom:(CDVInvokedUrlCommand*)command; +- (void) postNotification:(CDVInvokedUrlCommand*)command; +- (void) start:(CDVInvokedUrlCommand*)command; +- (void) stop:(CDVInvokedUrlCommand*)command; + +@end
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m new file mode 100644 index 00000000..ad8da029 --- /dev/null +++ b/StoneIsland/platforms/ios/Stone Island/Plugins/phonegap-plugin-mobile-accessibility/CDVMobileAccessibility.m @@ -0,0 +1,511 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +#import "CDVMobileAccessibility.h" +#import <Cordova/CDVAvailability.h> +#import <MediaAccessibility/MediaAccessibility.h> + +@interface CDVMobileAccessibility () + // add any property overrides + -(double) mGetTextZoom; + -(void) mSetTextZoom:(double)zoom; +@end + +@implementation CDVMobileAccessibility + +@synthesize callbackId; +@synthesize commandCallbackId; +@synthesize boldTextEnabled; +@synthesize closedCaptioningEnabled; +@synthesize darkerSystemColorsEnabled; +@synthesize grayscaleEnabled; +@synthesize guidedAccessEnabled; +@synthesize invertColorsEnabled; +@synthesize monoAudioEnabled; +@synthesize reduceMotionEnabled; +@synthesize reduceTransparencyEnabled; +@synthesize speakScreenEnabled; +@synthesize speakSelectionEnabled; +@synthesize switchControlRunning; +@synthesize voiceOverRunning; +@synthesize mFontScale; + +#define iOS7Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 ) ? 20 : 0 ) +#define iOS8Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 ) ? 30 : 0 ) + +// ////////////////////////////////////////////////// + +- (id)settingForKey:(NSString*)key +{ + return [self.commandDelegate.settings objectForKey:[key lowercaseString]]; +} + +- (void)pluginInitialize +{ + // SETTINGS //////////////////////// + + NSString* setting = nil; + + setting = @"YourConfigXmlSettingHere"; + if ([self settingForKey:setting]) { + // set your setting, other init here + } + + mFontScale = 1; + + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPause) name:UIApplicationDidEnterBackgroundNotification object:nil]; + +} + +// ////////////////////////////////////////////////// + +- (void)dealloc +{ + [self stop:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; +} + +- (void)onReset +{ + [self stop:nil]; +} + +- (void) onPause { + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidEnterBackgroundNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onResume) name:UIApplicationWillEnterForegroundNotification object:nil]; +} + +- (void)onResume +{ + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPause) name:UIApplicationDidEnterBackgroundNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onApplicationDidBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil]; +} + +- (void)onApplicationDidBecomeActive +{ + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; + [self performSelector:@selector(sendMobileAccessibilityStatusChangedCallback) withObject:nil afterDelay:0.1 ]; +} + +// ////////////////////////////////////////////////// + +#pragma Plugin interface + +- (void)isBoldTextEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + if (iOS8Delta) { + self.boldTextEnabled = UIAccessibilityIsBoldTextEnabled(); + } else { + self.boldTextEnabled = false; + } + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.boldTextEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isClosedCaptioningEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + self.closedCaptioningEnabled = [self getClosedCaptioningEnabledStatus]; + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.closedCaptioningEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isDarkerSystemColorsEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + if (iOS8Delta) { + self.darkerSystemColorsEnabled = UIAccessibilityDarkerSystemColorsEnabled(); + } else { + self.darkerSystemColorsEnabled = false; + } + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.darkerSystemColorsEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isGrayscaleEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + if (iOS8Delta) { + self.grayscaleEnabled = UIAccessibilityIsGrayscaleEnabled(); + } else { + self.grayscaleEnabled = false; + } + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.grayscaleEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isGuidedAccessEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + self.guidedAccessEnabled = UIAccessibilityIsGuidedAccessEnabled(); + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.guidedAccessEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isInvertColorsEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + self.invertColorsEnabled = UIAccessibilityIsInvertColorsEnabled(); + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.invertColorsEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isMonoAudioEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + self.monoAudioEnabled = UIAccessibilityIsMonoAudioEnabled(); + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.monoAudioEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isReduceMotionEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + if (iOS8Delta) { + self.reduceMotionEnabled = UIAccessibilityIsReduceMotionEnabled(); + } else { + self.reduceMotionEnabled = false; + } + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.reduceMotionEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isReduceTransparencyEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + if (iOS8Delta) { + self.reduceTransparencyEnabled = UIAccessibilityIsReduceTransparencyEnabled(); + } else { + self.reduceTransparencyEnabled = false; + } + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.reduceTransparencyEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isScreenReaderRunning:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + self.voiceOverRunning = UIAccessibilityIsVoiceOverRunning(); + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.voiceOverRunning]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isSpeakScreenEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + if (iOS8Delta) { + self.speakScreenEnabled = UIAccessibilityIsSpeakScreenEnabled(); + } else { + self.speakScreenEnabled = false; + } + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.speakScreenEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isSpeakSelectionEnabled:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + if (iOS8Delta) { + self.speakSelectionEnabled = UIAccessibilityIsSpeakSelectionEnabled(); + } else { + self.speakSelectionEnabled = false; + } + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.speakSelectionEnabled]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +- (void)isSwitchControlRunning:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + if (iOS8Delta) { + self.switchControlRunning = UIAccessibilityIsSwitchControlRunning(); + } else { + self.switchControlRunning = false; + } + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:self.switchControlRunning]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +-(double) mGetFontScale +{ + double fontScale = 1; + if (iOS7Delta) { + fontScale = [[UIFont preferredFontForTextStyle:UIFontTextStyleBody] pointSize] / BASE_UI_FONT_TEXT_STYLE_BODY_POINT_SIZE; + } + return fontScale; +} + +-(double) mGetTextZoom +{ + double zoom = round(mFontScale * 100); + // NSLog(@"mGetTextZoom %f%%", zoom); + return zoom; +} + +- (void) getTextZoom:(CDVInvokedUrlCommand *)command +{ + double zoom = [self mGetTextZoom]; + [self.commandDelegate runInBackground:^{ + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble: zoom]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; +} + +-(void) mSetTextZoom:(double)zoom +{ + // NSLog(@"mSetTextZoom %f%%'", zoom); + mFontScale = zoom/100; + if (iOS7Delta) { + NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%f%%'", zoom]; + [self.commandDelegate evalJs:jsString]; + } +} + +- (void) setTextZoom:(CDVInvokedUrlCommand *)command +{ + if (command != nil && [command.arguments count] > 0) { + double zoom = [[command.arguments objectAtIndex:0] doubleValue]; + [self mSetTextZoom:zoom]; + + [self.commandDelegate runInBackground:^{ + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble:zoom]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; + } +} + +- (void)updateTextZoom:(CDVInvokedUrlCommand *)command +{ + float fontScale = [self mGetFontScale]; + if (fontScale != mFontScale) { + mFontScale = fontScale; + } + double zoom = [self mGetTextZoom]; + // NSLog(@"updateTextZoom %d%%'", zoom); + [self mSetTextZoom:zoom]; + + if (command != nil && command.callbackId != nil) { + [self.commandDelegate runInBackground:^{ + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDouble:zoom]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + }]; + } +} + +- (void)postNotification:(CDVInvokedUrlCommand *)command +{ + CDVPluginResult* result = nil; + uint32_t notificationType = [[command.arguments objectAtIndex:0] intValue]; + NSString* notificationString = [command.arguments count] > 1 ? [command.arguments objectAtIndex:1] : @""; + + if (notificationString == nil) { + notificationString = @""; + } + if (UIAccessibilityIsVoiceOverRunning() && + [self isValidNotificationType:notificationType]) { + [self.commandDelegate runInBackground:^{ + if (notificationType == UIAccessibilityAnnouncementNotification) { + self.commandCallbackId = command.callbackId; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityAnnouncementDidFinish:) name:UIAccessibilityAnnouncementDidFinishNotification object:nil]; + } + + UIAccessibilityPostNotification(notificationType, notificationString); + + if (notificationType != UIAccessibilityAnnouncementNotification) { + NSMutableDictionary* data = [NSMutableDictionary dictionaryWithCapacity:2]; + [data setObject:notificationString forKey:@"stringValue"]; + [data setObject:@"true" forKey:@"wasSuccessful"]; + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:data]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + } + }]; + } else { + result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR]; + [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; + } +} + +- (BOOL)isValidNotificationType:(uint32_t)notificationType +{ + return (notificationType == UIAccessibilityScreenChangedNotification + || notificationType == UIAccessibilityLayoutChangedNotification + || notificationType == UIAccessibilityAnnouncementNotification + || notificationType == UIAccessibilityPageScrolledNotification); +} + +- (void)mobileAccessibilityAnnouncementDidFinish:(NSNotification *)dict +{ + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityAnnouncementDidFinishNotification object:nil]; + + NSString* valueSpoken = [[dict userInfo] objectForKey:UIAccessibilityAnnouncementKeyStringValue]; + NSString* wasSuccessful = [[dict userInfo] objectForKey:UIAccessibilityAnnouncementKeyWasSuccessful]; + + NSMutableDictionary* data = [NSMutableDictionary dictionaryWithCapacity:2]; + [data setObject:valueSpoken forKey:@"stringValue"]; + [data setObject:wasSuccessful forKey:@"wasSuccessful"]; + + if (self.commandCallbackId) { + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:data]; + [self.commandDelegate sendPluginResult:result callbackId:self.commandCallbackId]; + self.commandCallbackId = nil; + } +} + +- (BOOL)getClosedCaptioningEnabledStatus +{ + BOOL status = false; + if (&MACaptionAppearanceGetDisplayType) { + status = (MACaptionAppearanceGetDisplayType(kMACaptionAppearanceDomainUser) > kMACaptionAppearanceDisplayTypeAutomatic); + } else { + status = UIAccessibilityIsClosedCaptioningEnabled(); + } + return status; +} + +- (void)mobileAccessibilityStatusChanged:(NSNotification *)notification +{ + [self sendMobileAccessibilityStatusChangedCallback]; +} + +- (void)sendMobileAccessibilityStatusChangedCallback +{ + if (self.callbackId) { + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[self getMobileAccessibilityStatus]]; + [result setKeepCallbackAsBool:YES]; + [self.commandDelegate sendPluginResult:result callbackId:self.callbackId]; + } +} + +/* Get the current mobile accessibility status. */ +- (NSDictionary*)getMobileAccessibilityStatus +{ + self.boldTextEnabled = UIAccessibilityIsBoldTextEnabled(); + self.closedCaptioningEnabled = [self getClosedCaptioningEnabledStatus]; + self.darkerSystemColorsEnabled = UIAccessibilityDarkerSystemColorsEnabled(); + self.grayscaleEnabled = UIAccessibilityIsGrayscaleEnabled(); + self.guidedAccessEnabled = UIAccessibilityIsGuidedAccessEnabled(); + self.invertColorsEnabled = UIAccessibilityIsInvertColorsEnabled(); + self.monoAudioEnabled = UIAccessibilityIsMonoAudioEnabled(); + self.reduceMotionEnabled = UIAccessibilityIsReduceMotionEnabled(); + self.reduceTransparencyEnabled = UIAccessibilityIsReduceTransparencyEnabled(); + self.speakScreenEnabled = UIAccessibilityIsSpeakScreenEnabled(); + self.speakSelectionEnabled = UIAccessibilityIsSpeakSelectionEnabled(); + self.switchControlRunning = UIAccessibilityIsSwitchControlRunning(); + self.voiceOverRunning = UIAccessibilityIsVoiceOverRunning(); + + NSMutableDictionary* mobileAccessibilityData = [NSMutableDictionary dictionaryWithCapacity:5]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.boldTextEnabled] forKey:@"isBoldTextEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.closedCaptioningEnabled] forKey:@"isClosedCaptioningEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.darkerSystemColorsEnabled] forKey:@"isDarkerSystemColorsEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.grayscaleEnabled] forKey:@"isGrayscaleEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.guidedAccessEnabled] forKey:@"isGuidedAccessEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.invertColorsEnabled] forKey:@"isInvertColorsEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.monoAudioEnabled] forKey:@"isMonoAudioEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.reduceMotionEnabled] forKey:@"isReduceMotionEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.reduceTransparencyEnabled] forKey:@"isReduceTransparencyEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.speakScreenEnabled] forKey:@"isSpeakScreenEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.speakSelectionEnabled] forKey:@"isSpeakSelectionEnabled"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.switchControlRunning] forKey:@"isSwitchControlRunning"]; + [mobileAccessibilityData setObject:[NSNumber numberWithBool:self.voiceOverRunning] forKey:@"isScreenReaderRunning"]; + return mobileAccessibilityData; +} + + +/* start MobileAccessibility monitoring */ +- (void)start:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + self.callbackId = command.callbackId; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityClosedCaptioningStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityInvertColorsStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityMonoAudioStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityVoiceOverStatusChanged object:nil]; + + if (iOS8Delta) { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityBoldTextStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityDarkerSystemColorsStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityGrayscaleStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityReduceMotionStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilityReduceTransparencyStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilitySpeakScreenStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilitySpeakSelectionStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mobileAccessibilityStatusChanged:) name:UIAccessibilitySwitchControlStatusDidChangeNotification object:nil]; + } + + // Update the callback on start + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[self getMobileAccessibilityStatus]]; + [result setKeepCallbackAsBool:YES]; + [self.commandDelegate sendPluginResult:result callbackId:self.callbackId]; + }]; +} + +/* stop MobileAccessibility monitoring */ +- (void)stop:(CDVInvokedUrlCommand*)command +{ + [self.commandDelegate runInBackground:^{ + // callback one last time to clear the callback function on JS side + if (self.callbackId) + { + CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[self getMobileAccessibilityStatus]]; + [result setKeepCallbackAsBool:NO]; + [self.commandDelegate sendPluginResult:result callbackId:self.callbackId]; + } + self.callbackId = nil; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityClosedCaptioningStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityInvertColorsStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityAnnouncementDidFinishNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityMonoAudioStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityVoiceOverStatusChanged object:nil]; + + if (iOS8Delta) { + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityBoldTextStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityDarkerSystemColorsStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityGrayscaleStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityReduceMotionStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilityReduceTransparencyStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilitySpeakScreenStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilitySpeakSelectionStatusDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIAccessibilitySwitchControlStatusDidChangeNotification object:nil]; + } + }]; +} + +@end diff --git a/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist b/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist index 1f9a3666..b48bd6a6 100644 --- a/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist +++ b/StoneIsland/platforms/ios/Stone Island/Stone Island-Info.plist @@ -21,7 +21,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>1.1.0</string> + <string>1.2.1</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleURLTypes</key> @@ -34,7 +34,7 @@ </dict> </array> <key>CFBundleVersion</key> - <string>1.1.0</string> + <string>1.2.1</string> <key>GCM_SENDER_ID</key> <string>85075801930</string> <key>IS_GCM_ENABLED</key> diff --git a/StoneIsland/platforms/ios/Stone Island/config.xml b/StoneIsland/platforms/ios/Stone Island/config.xml index d4267d95..be289f6a 100755 --- a/StoneIsland/platforms/ios/Stone Island/config.xml +++ b/StoneIsland/platforms/ios/Stone Island/config.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='utf-8'?> -<widget android-versionCode="6110" id="us.okfoc.stoneisland" version="1.1.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> +<widget android-versionCode="6121" id="us.okfoc.stoneisland" version="1.2.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <feature name="LocalStorage"> <param name="ios-package" value="CDVLocalStorage" /> </feature> @@ -55,6 +55,9 @@ <feature name="Sim"> <param name="ios-package" value="Sim" /> </feature> + <feature name="MobileAccessibility"> + <param name="ios-package" onload="true" value="CDVMobileAccessibility" /> + </feature> <name>Stone Island</name> <description> Stone Island diff --git a/StoneIsland/platforms/ios/frameworks.json b/StoneIsland/platforms/ios/frameworks.json index 0a971c69..315c02b9 100644 --- a/StoneIsland/platforms/ios/frameworks.json +++ b/StoneIsland/platforms/ios/frameworks.json @@ -7,5 +7,6 @@ "MessageUI.framework": 1, "AddressBook.framework": 1, "libsqlite3.tbd": 1, - "libz.tbd": 1 + "libz.tbd": 1, + "MediaAccessibility.framework": 1 }
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/ios.json b/StoneIsland/platforms/ios/ios.json index e7fc56d1..5fc3133d 100644 --- a/StoneIsland/platforms/ios/ios.json +++ b/StoneIsland/platforms/ios/ios.json @@ -1,335 +1,359 @@ { - "prepare_queue": { - "installed": [], - "uninstalled": [] - }, - "config_munge": { - "files": { - "*-Info.plist": { - "parents": { - "CFBundleName": [ - { - "xml": "<string>Stone Island</string>", - "count": 1 - } - ], - "CFBundleDisplayName": [ - { - "xml": "<string>Stone Island</string>", - "count": 1 - } - ], - "CFBundleURLTypes": [ - { - "xml": "<array><dict><key>CFBundleURLSchemes</key><array><string>stoneisland</string></array></dict></array>", - "count": 1 - } - ], - "NSLocationWhenInUseUsageDescription": [ - { - "xml": "<string />", - "count": 1 - } - ], - "UIBackgroundModes": [ - { - "xml": "<array><string>remote-notification</string></array>", - "count": 1 - } - ], - "GCM_SENDER_ID": [ - { - "xml": "<string>85075801930</string>", - "count": 1 - } - ], - "IS_GCM_ENABLED": [ - { - "xml": "<true />", - "count": 1 - } - ] - } - }, - "config.xml": { - "parents": { - "/*": [ - { - "xml": "<feature name=\"Device\"><param name=\"ios-package\" value=\"CDVDevice\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"Notification\"><param name=\"ios-package\" value=\"CDVNotification\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"Geolocation\"><param name=\"ios-package\" value=\"CDVLocation\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"InAppBrowser\"><param name=\"ios-package\" value=\"CDVInAppBrowser\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"NetworkStatus\"><param name=\"ios-package\" value=\"CDVConnection\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"SplashScreen\"><param name=\"ios-package\" value=\"CDVSplashScreen\" /><param name=\"onload\" value=\"true\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"StatusBar\"><param name=\"ios-package\" value=\"CDVStatusBar\" /><param name=\"onload\" value=\"true\" /></feature>", - "count": 1 - }, - { - "xml": "<preference name=\"StatusBarOverlaysWebView\" value=\"true\" />", - "count": 1 - }, - { - "xml": "<preference name=\"StatusBarStyle\" value=\"lightcontent\" />", - "count": 1 - }, - { - "xml": "<feature name=\"SocialSharing\"><param name=\"ios-package\" value=\"SocialSharing\" /><param name=\"onload\" value=\"true\" /></feature>", - "count": 1 + "prepare_queue": { + "installed": [], + "uninstalled": [] + }, + "config_munge": { + "files": { + "*-Info.plist": { + "parents": { + "CFBundleName": [ + { + "xml": "<string>Stone Island</string>", + "count": 1 + } + ], + "CFBundleDisplayName": [ + { + "xml": "<string>Stone Island</string>", + "count": 1 + } + ], + "CFBundleURLTypes": [ + { + "xml": "<array><dict><key>CFBundleURLSchemes</key><array><string>stoneisland</string></array></dict></array>", + "count": 1 + } + ], + "NSLocationWhenInUseUsageDescription": [ + { + "xml": "<string />", + "count": 1 + } + ], + "UIBackgroundModes": [ + { + "xml": "<array><string>remote-notification</string></array>", + "count": 1 + } + ], + "GCM_SENDER_ID": [ + { + "xml": "<string>85075801930</string>", + "count": 1 + } + ], + "IS_GCM_ENABLED": [ + { + "xml": "<true />", + "count": 1 + } + ] + } }, - { - "xml": "<feature name=\"Keyboard\"><param name=\"ios-package\" onload=\"true\" value=\"IonicKeyboard\" /></feature>", - "count": 1 + "config.xml": { + "parents": { + "/*": [ + { + "xml": "<feature name=\"Device\"><param name=\"ios-package\" value=\"CDVDevice\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"Notification\"><param name=\"ios-package\" value=\"CDVNotification\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"Geolocation\"><param name=\"ios-package\" value=\"CDVLocation\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"InAppBrowser\"><param name=\"ios-package\" value=\"CDVInAppBrowser\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"NetworkStatus\"><param name=\"ios-package\" value=\"CDVConnection\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"SplashScreen\"><param name=\"ios-package\" value=\"CDVSplashScreen\" /><param name=\"onload\" value=\"true\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"StatusBar\"><param name=\"ios-package\" value=\"CDVStatusBar\" /><param name=\"onload\" value=\"true\" /></feature>", + "count": 1 + }, + { + "xml": "<preference name=\"StatusBarOverlaysWebView\" value=\"true\" />", + "count": 1 + }, + { + "xml": "<preference name=\"StatusBarStyle\" value=\"lightcontent\" />", + "count": 1 + }, + { + "xml": "<feature name=\"SocialSharing\"><param name=\"ios-package\" value=\"SocialSharing\" /><param name=\"onload\" value=\"true\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"Keyboard\"><param name=\"ios-package\" onload=\"true\" value=\"IonicKeyboard\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"PushNotification\"><param name=\"ios-package\" value=\"PushPlugin\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"Sim\"><param name=\"ios-package\" value=\"Sim\" /></feature>", + "count": 1 + }, + { + "xml": "<feature name=\"MobileAccessibility\"><param name=\"ios-package\" onload=\"true\" value=\"CDVMobileAccessibility\" /></feature>", + "count": 1 + } + ] + } }, - { - "xml": "<feature name=\"PushNotification\"><param name=\"ios-package\" value=\"PushPlugin\" /></feature>", - "count": 1 + "*-Debug.plist": { + "parents": { + "aps-environment": [ + { + "xml": "<string>development</string>", + "count": 1 + } + ] + } }, - { - "xml": "<feature name=\"Sim\"><param name=\"ios-package\" value=\"Sim\" /></feature>", - "count": 1 + "*-Release.plist": { + "parents": { + "aps-environment": [ + { + "xml": "<string>production</string>", + "count": 1 + } + ] + } } - ] } - }, - "*-Debug.plist": { - "parents": { - "aps-environment": [ - { - "xml": "<string>development</string>", - "count": 1 - } - ] - } - }, - "*-Release.plist": { - "parents": { - "aps-environment": [ - { - "xml": "<string>production</string>", - "count": 1 - } - ] - } - } - } - }, - "installed_plugins": { - "cordova-plugin-app-name": { - "APP_NAME": "Stone Island", - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-compat": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-customurlscheme": { - "URL_SCHEME": "stoneisland", - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-device": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-dialogs": { - "PACKAGE_NAME": "us.okfoc.stoneisland" }, - "cordova-plugin-geolocation": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-inappbrowser": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-network-information": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-splashscreen": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-statusbar": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-whitelist": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-x-socialsharing": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "ionic-plugin-keyboard": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "phonegap-plugin-push": { - "SENDER_ID": "85075801930", - "PACKAGE_NAME": "us.okfoc.stoneisland" - }, - "cordova-plugin-sim": { - "PACKAGE_NAME": "us.okfoc.stoneisland" - } - }, - "dependent_plugins": {}, - "modules": [ - { - "id": "cordova-plugin-customurlscheme.LaunchMyApp", - "file": "plugins/cordova-plugin-customurlscheme/www/ios/LaunchMyApp.js", - "pluginId": "cordova-plugin-customurlscheme", - "clobbers": [ - "window.plugins.launchmyapp" - ] - }, - { - "id": "cordova-plugin-device.device", - "file": "plugins/cordova-plugin-device/www/device.js", - "pluginId": "cordova-plugin-device", - "clobbers": [ - "device" - ] - }, - { - "id": "cordova-plugin-dialogs.notification", - "file": "plugins/cordova-plugin-dialogs/www/notification.js", - "pluginId": "cordova-plugin-dialogs", - "merges": [ - "navigator.notification" - ] - }, - { - "id": "cordova-plugin-geolocation.Coordinates", - "file": "plugins/cordova-plugin-geolocation/www/Coordinates.js", - "pluginId": "cordova-plugin-geolocation", - "clobbers": [ - "Coordinates" - ] - }, - { - "id": "cordova-plugin-geolocation.PositionError", - "file": "plugins/cordova-plugin-geolocation/www/PositionError.js", - "pluginId": "cordova-plugin-geolocation", - "clobbers": [ - "PositionError" - ] - }, - { - "id": "cordova-plugin-geolocation.Position", - "file": "plugins/cordova-plugin-geolocation/www/Position.js", - "pluginId": "cordova-plugin-geolocation", - "clobbers": [ - "Position" - ] - }, - { - "id": "cordova-plugin-geolocation.geolocation", - "file": "plugins/cordova-plugin-geolocation/www/geolocation.js", - "pluginId": "cordova-plugin-geolocation", - "clobbers": [ - "navigator.geolocation" - ] - }, - { - "id": "cordova-plugin-inappbrowser.inappbrowser", - "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", - "pluginId": "cordova-plugin-inappbrowser", - "clobbers": [ - "cordova.InAppBrowser.open", - "window.open" - ] - }, - { - "id": "cordova-plugin-network-information.network", - "file": "plugins/cordova-plugin-network-information/www/network.js", - "pluginId": "cordova-plugin-network-information", - "clobbers": [ - "navigator.connection", - "navigator.network.connection" - ] - }, - { - "id": "cordova-plugin-network-information.Connection", - "file": "plugins/cordova-plugin-network-information/www/Connection.js", - "pluginId": "cordova-plugin-network-information", - "clobbers": [ - "Connection" - ] - }, - { - "id": "cordova-plugin-splashscreen.SplashScreen", - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, - { - "id": "cordova-plugin-statusbar.statusbar", - "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", - "pluginId": "cordova-plugin-statusbar", - "clobbers": [ - "window.StatusBar" - ] - }, - { - "id": "cordova-plugin-x-socialsharing.SocialSharing", - "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js", - "pluginId": "cordova-plugin-x-socialsharing", - "clobbers": [ - "window.plugins.socialsharing" - ] - }, - { - "id": "ionic-plugin-keyboard.keyboard", - "file": "plugins/ionic-plugin-keyboard/www/ios/keyboard.js", - "pluginId": "ionic-plugin-keyboard", - "clobbers": [ - "cordova.plugins.Keyboard" - ], - "runs": true - }, - { - "id": "phonegap-plugin-push.PushNotification", - "file": "plugins/phonegap-plugin-push/www/push.js", - "pluginId": "phonegap-plugin-push", - "clobbers": [ - "PushNotification" - ] + "installed_plugins": { + "cordova-plugin-app-name": { + "APP_NAME": "Stone Island", + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-compat": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-customurlscheme": { + "URL_SCHEME": "stoneisland", + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-device": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-dialogs": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-geolocation": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-inappbrowser": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-network-information": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-splashscreen": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-statusbar": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-whitelist": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-x-socialsharing": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "ionic-plugin-keyboard": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "phonegap-plugin-push": { + "SENDER_ID": "85075801930", + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "cordova-plugin-sim": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + }, + "phonegap-plugin-mobile-accessibility": { + "PACKAGE_NAME": "us.okfoc.stoneisland" + } }, - { - "id": "cordova-plugin-sim.Sim", - "file": "plugins/cordova-plugin-sim/www/sim.js", - "pluginId": "cordova-plugin-sim", - "merges": [ - "window.plugins.sim" - ] + "dependent_plugins": {}, + "modules": [ + { + "id": "cordova-plugin-customurlscheme.LaunchMyApp", + "file": "plugins/cordova-plugin-customurlscheme/www/ios/LaunchMyApp.js", + "pluginId": "cordova-plugin-customurlscheme", + "clobbers": [ + "window.plugins.launchmyapp" + ] + }, + { + "id": "cordova-plugin-device.device", + "file": "plugins/cordova-plugin-device/www/device.js", + "pluginId": "cordova-plugin-device", + "clobbers": [ + "device" + ] + }, + { + "id": "cordova-plugin-dialogs.notification", + "file": "plugins/cordova-plugin-dialogs/www/notification.js", + "pluginId": "cordova-plugin-dialogs", + "merges": [ + "navigator.notification" + ] + }, + { + "id": "cordova-plugin-geolocation.Coordinates", + "file": "plugins/cordova-plugin-geolocation/www/Coordinates.js", + "pluginId": "cordova-plugin-geolocation", + "clobbers": [ + "Coordinates" + ] + }, + { + "id": "cordova-plugin-geolocation.PositionError", + "file": "plugins/cordova-plugin-geolocation/www/PositionError.js", + "pluginId": "cordova-plugin-geolocation", + "clobbers": [ + "PositionError" + ] + }, + { + "id": "cordova-plugin-geolocation.Position", + "file": "plugins/cordova-plugin-geolocation/www/Position.js", + "pluginId": "cordova-plugin-geolocation", + "clobbers": [ + "Position" + ] + }, + { + "id": "cordova-plugin-geolocation.geolocation", + "file": "plugins/cordova-plugin-geolocation/www/geolocation.js", + "pluginId": "cordova-plugin-geolocation", + "clobbers": [ + "navigator.geolocation" + ] + }, + { + "id": "cordova-plugin-inappbrowser.inappbrowser", + "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", + "pluginId": "cordova-plugin-inappbrowser", + "clobbers": [ + "cordova.InAppBrowser.open", + "window.open" + ] + }, + { + "id": "cordova-plugin-network-information.network", + "file": "plugins/cordova-plugin-network-information/www/network.js", + "pluginId": "cordova-plugin-network-information", + "clobbers": [ + "navigator.connection", + "navigator.network.connection" + ] + }, + { + "id": "cordova-plugin-network-information.Connection", + "file": "plugins/cordova-plugin-network-information/www/Connection.js", + "pluginId": "cordova-plugin-network-information", + "clobbers": [ + "Connection" + ] + }, + { + "id": "cordova-plugin-splashscreen.SplashScreen", + "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", + "pluginId": "cordova-plugin-splashscreen", + "clobbers": [ + "navigator.splashscreen" + ] + }, + { + "id": "cordova-plugin-statusbar.statusbar", + "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", + "pluginId": "cordova-plugin-statusbar", + "clobbers": [ + "window.StatusBar" + ] + }, + { + "id": "cordova-plugin-x-socialsharing.SocialSharing", + "file": "plugins/cordova-plugin-x-socialsharing/www/SocialSharing.js", + "pluginId": "cordova-plugin-x-socialsharing", + "clobbers": [ + "window.plugins.socialsharing" + ] + }, + { + "id": "ionic-plugin-keyboard.keyboard", + "file": "plugins/ionic-plugin-keyboard/www/ios/keyboard.js", + "pluginId": "ionic-plugin-keyboard", + "clobbers": [ + "cordova.plugins.Keyboard" + ], + "runs": true + }, + { + "id": "phonegap-plugin-push.PushNotification", + "file": "plugins/phonegap-plugin-push/www/push.js", + "pluginId": "phonegap-plugin-push", + "clobbers": [ + "PushNotification" + ] + }, + { + "id": "cordova-plugin-sim.Sim", + "file": "plugins/cordova-plugin-sim/www/sim.js", + "pluginId": "cordova-plugin-sim", + "merges": [ + "window.plugins.sim" + ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "window.MobileAccessibility" + ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "MobileAccessibilityNotifications" + ] + } + ], + "plugin_metadata": { + "cordova-plugin-app-name": "1.0.4", + "cordova-plugin-compat": "1.1.0", + "cordova-plugin-customurlscheme": "4.2.0", + "cordova-plugin-device": "1.1.3", + "cordova-plugin-dialogs": "1.3.0", + "cordova-plugin-geolocation": "2.4.0", + "cordova-plugin-inappbrowser": "1.5.0", + "cordova-plugin-network-information": "1.3.0", + "cordova-plugin-splashscreen": "4.0.3", + "cordova-plugin-statusbar": "2.2.3", + "cordova-plugin-whitelist": "1.3.0", + "cordova-plugin-x-socialsharing": "5.1.3", + "ionic-plugin-keyboard": "2.2.1", + "phonegap-plugin-push": "1.9.2", + "cordova-plugin-sim": "1.3.3", + "phonegap-plugin-mobile-accessibility": "1.0.5-dev" } - ], - "plugin_metadata": { - "cordova-plugin-app-name": "1.0.4", - "cordova-plugin-compat": "1.1.0", - "cordova-plugin-customurlscheme": "4.2.0", - "cordova-plugin-device": "1.1.3", - "cordova-plugin-dialogs": "1.3.0", - "cordova-plugin-geolocation": "2.4.0", - "cordova-plugin-inappbrowser": "1.5.0", - "cordova-plugin-network-information": "1.3.0", - "cordova-plugin-splashscreen": "4.0.3", - "cordova-plugin-statusbar": "2.2.3", - "cordova-plugin-whitelist": "1.3.0", - "cordova-plugin-x-socialsharing": "5.1.3", - "ionic-plugin-keyboard": "2.2.1", - "phonegap-plugin-push": "1.9.2", - "cordova-plugin-sim": "1.3.3" - } }
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/platform_www/cordova_plugins.js b/StoneIsland/platforms/ios/platform_www/cordova_plugins.js index 32af05ac..8469b08b 100644 --- a/StoneIsland/platforms/ios/platform_www/cordova_plugins.js +++ b/StoneIsland/platforms/ios/platform_www/cordova_plugins.js @@ -130,6 +130,22 @@ module.exports = [ "merges": [ "window.plugins.sim" ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "window.MobileAccessibility" + ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "MobileAccessibilityNotifications" + ] } ]; module.exports.metadata = @@ -149,7 +165,8 @@ module.exports.metadata = "cordova-plugin-x-socialsharing": "5.1.3", "ionic-plugin-keyboard": "2.2.1", "phonegap-plugin-push": "1.9.2", - "cordova-plugin-sim": "1.3.3" + "cordova-plugin-sim": "1.3.3", + "phonegap-plugin-mobile-accessibility": "1.0.5-dev" }; // BOTTOM OF METADATA });
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js b/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js new file mode 100644 index 00000000..f5d0aaf7 --- /dev/null +++ b/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js @@ -0,0 +1,53 @@ +cordova.define("phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", function(require, exports, module) { +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +/** + * Mobile Accessibility Notification event constants + */ +module.exports = { + /* MobileAccessibility window events */ + SCREEN_READER_STATUS_CHANGED : "screenreaderstatuschanged", + CLOSED_CAPTIONING_STATUS_CHANGED : "closedcaptioningstatuschanged", + GUIDED_ACCESS_STATUS_CHANGED : "guidedaccessstatuschanged", + INVERT_COLORS_STATUS_CHANGED : "invertcolorsstatuschanged", + MONO_AUDIO_STATUS_CHANGED : "monoaudiostatuschanged", + REDUCE_MOTION_STATUS_CHANGED : "reducemotionstatuschanged", + TOUCH_EXPLORATION_STATUS_CHANGED : "touchexplorationstatechanged", + BOLD_TEXT_STATUS_CHANGED : "boldtextstatuschanged", + DARKER_SYSTEM_COLORS_STATUS_CHANGED : "darkersystemcolorsstatuschanged", + GRAYSCALE_STATUS_CHANGED : "grayscalestatuschanged", + REDUCE_TRANSPARENCY_STATUS_CHANGED : "reducetransparencystatuschanged", + SPEAK_SCREEN_STATUS_CHANGED : "speakscreenstatuschanged", + SPEAK_SELECTION_STATUS_CHANGED : "speakselectionstatuschanged", + SWITCH_CONTROL_STATUS_CHANGED : "switchcontrolstatuschanged", + + /* iOS specific UIAccessibilityNotifications */ + SCREEN_CHANGED : 1000, + LAYOUT_CHANGED : 1001, + ANNOUNCEMENT : 1008, + PAGE_SCROLLED : 1009, + + /* Windows specific high contrast event */ + HIGH_CONTRAST_CHANGED : "highcontrastchanged" +}; + +}); diff --git a/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js b/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js new file mode 100644 index 00000000..852b8d34 --- /dev/null +++ b/StoneIsland/platforms/ios/platform_www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js @@ -0,0 +1,502 @@ +cordova.define("phonegap-plugin-mobile-accessibility.mobile-accessibility", function(require, exports, module) { +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +var argscheck = require('cordova/argscheck'), + utils = require('cordova/utils'), + exec = require('cordova/exec'), + device = require('cordova-plugin-device.device'), + network = require('cordova-plugin-network-information.network'), + connection = require('cordova-plugin-network-information.Connection'), + MobileAccessibilityNotifications = require('phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications'); + +var MobileAccessibility = function() { + this._isBoldTextEnabled = false; + this._isClosedCaptioningEnabled = false; + this._isDarkerSystemColorsEnabled = false; + this._isGrayscaleEnabled = false; + this._isGuidedAccessEnabled = false; + this._isInvertColorsEnabled = false; + this._isMonoAudioEnabled = false; + this._isReduceMotionEnabled = false; + this._isReduceTransparencyEnabled = false; + this._isScreenReaderRunning = false; + this._isSpeakScreenEnabled = false; + this._isSpeakSelectionEnabled = false; + this._isSwitchControlRunning = false; + this._isTouchExplorationEnabled = false; + this._usePreferredTextZoom = false; + this._isHighContrastEnabled = false; + this._highContrastScheme = undefined; + + // Create new event handlers on the window (returns a channel instance) + this.channels = { + boldtextstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED), + closedcaptioningstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED), + darkersystemcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED), + grayscalestatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED), + guidedaccessstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED), + invertcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED), + monoaudiostatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED), + reducemotionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED), + reducetransparencystatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED), + screenreaderstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED), + speakscreenstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED), + speakselectionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED), + switchcontrolstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED), + touchexplorationstatechanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED), + highcontrastchanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED) + }; + for (var key in this.channels) { + this.channels[key].onHasSubscribersChange = MobileAccessibility.onHasSubscribersChange; + } +}; + +/** + * @private + * @ignore + */ +function handlers() { + return mobileAccessibility.channels.boldtextstatuschanged.numHandlers + + mobileAccessibility.channels.closedcaptioningstatuschanged.numHandlers + + mobileAccessibility.channels.darkersystemcolorsstatuschanged.numHandlers + + mobileAccessibility.channels.grayscalestatuschanged.numHandlers + + mobileAccessibility.channels.guidedaccessstatuschanged.numHandlers + + mobileAccessibility.channels.invertcolorsstatuschanged.numHandlers + + mobileAccessibility.channels.monoaudiostatuschanged.numHandlers + + mobileAccessibility.channels.reducemotionstatuschanged.numHandlers + + mobileAccessibility.channels.reducetransparencystatuschanged.numHandlers + + mobileAccessibility.channels.screenreaderstatuschanged.numHandlers + + mobileAccessibility.channels.speakscreenstatuschanged.numHandlers + + mobileAccessibility.channels.speakselectionstatuschanged.numHandlers + + mobileAccessibility.channels.switchcontrolstatuschanged.numHandlers + + mobileAccessibility.channels.touchexplorationstatechanged.numHandlers + + mobileAccessibility.channels.highcontrastchanged.numHandlers; +}; + +/** + * + * Event handlers for when callback methods get registered for mobileAccessibility. + * Keep track of how many handlers we have so we can start and stop the native MobileAccessibility listener + * appropriately. + * @private + * @ignore + */ +MobileAccessibility.onHasSubscribersChange = function() { + // If we just registered the first handler, make sure native listener is started. + if (this.numHandlers === 1 && handlers() === 1) { + exec(mobileAccessibility._status, mobileAccessibility._error, "MobileAccessibility", "start", []); + } else if (handlers() === 0) { + exec(null, null, "MobileAccessibility", "stop", []); + } +}; + +/** + * Asynchronous call to native MobileAccessibility determine if a screen reader is running. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isScreenReaderRunning = function(callback) { + exec(function(bool) { + mobileAccessibility.activateOrDeactivateChromeVox(bool); + callback(Boolean(bool)); + }, null, "MobileAccessibility", "isScreenReaderRunning", []); +}; +MobileAccessibility.prototype.isVoiceOverRunning = function(callback) { + if (device.platform.toLowerCase() === "ios") { + MobileAccessibility.prototype.isScreenReaderRunning(callback); + } else { + callback(false); + } +}; +MobileAccessibility.prototype.isTalkBackRunning = function(callback) { + if (device.platform.toLowerCase() === "android" || device.platform.toLowerCase() === "amazon-fireos") { + MobileAccessibility.prototype.isScreenReaderRunning(callback); + } else { + callback(false); + } +}; +MobileAccessibility.prototype.isChromeVoxActive = function () { + return typeof cvox !== "undefined" && cvox.ChromeVox.host.ttsLoaded() && cvox.Api.isChromeVoxActive(); +}; +MobileAccessibility.prototype.activateOrDeactivateChromeVox = function(bool) { + if (device.platform !== "Android") return; + if (typeof cvox === "undefined") { + if (bool) { + console.warn('A screen reader is running but ChromeVox has failed to initialize.'); + if (navigator.connection.type === Connection.UNKNOWN || navigator.connection.type === Connection.NONE) { + mobileAccessibility.injectLocalAndroidVoxScript(); + } + } + } else { + // activate or deactivate ChromeVox based on whether or not or not the screen reader is running. + try { + cvox.ChromeVox.host.activateOrDeactivateChromeVox(bool); + } catch (err) { + console.error(err); + } + } + + if (bool) { + if (!mobileAccessibility.hasOrientationChangeListener) { + window.addEventListener("orientationchange", mobileAccessibility.onOrientationChange); + mobileAccessibility.hasOrientationChangeListener = true; + } + } else if(mobileAccessibility.hasOrientationChangeListener) { + window.removeEventListener("orientationchange", mobileAccessibility.onOrientationChange); + mobileAccessibility.hasOrientationChangeListener = false; + } +}; + +MobileAccessibility.prototype.hasOrientationChangeListener = false; +MobileAccessibility.prototype.onOrientationChange = function(event) { + if (!mobileAccessibility.isChromeVoxActive()) return; + cvox.ChromeVox.navigationManager.updateIndicator(); +}; + +MobileAccessibility.prototype.scriptInjected = false; +MobileAccessibility.prototype.injectLocalAndroidVoxScript = function() { + var versionsplit = device.version.split('.'); + if (device.platform !== "Android" || + !(versionsplit[0] > 4 || (versionsplit[0] == 4 && versionsplit[1] >= 1)) || + typeof cvox !== "undefined" || mobileAccessibility.scriptInjected) return; + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.onload = function(){ + // console.log(this.src + ' has loaded'); + if (mobileAccessibility.isChromeVoxActive()) { + cordova.fireWindowEvent("screenreaderstatuschanged", { + isScreenReaderRunning: true + }); + } + }; + + script.src = (versionsplit[0] > 4 || versionsplit[1] > 3) + ? "plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js" + : "plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js"; + document.getElementsByTagName('head')[0].appendChild(script); + mobileAccessibility.scriptInjected = true; +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Bold Text is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isBoldTextEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isBoldTextEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Closed Captioning is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isClosedCaptioningEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isClosedCaptioningEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Darker System Colors are enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isDarkerSystemColorsEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isDarkerSystemColorsEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Grayscale is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isGrayscaleEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isGrayscaleEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Guided Access is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isGuidedAccessEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isGuidedAccessEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if the display colors have been inverted. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isInvertColorsEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isInvertColorsEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Mono Audio is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isMonoAudioEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isMonoAudioEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Reduce Motion is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isReduceMotionEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isReduceMotionEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Reduce Transparency is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isReduceTransparencyEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isReduceTransparencyEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Speak Screen is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSpeakScreenEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isSpeakScreenEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Speak Selection is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSpeakSelectionEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isSpeakSelectionEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Switch Control is running. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSwitchControlRunning = function(callback) { + exec(callback, null, "MobileAccessibility", "isSwitchControlRunning", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Touch Exploration is enabled on Android. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isTouchExplorationEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isTouchExplorationEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if High Contrast is enabled on Windows. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isHighContrastEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isHighContrastEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to return the current text zoom percent value for the WebView. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.getTextZoom = function(callback) { + exec(callback, null, "MobileAccessibility", "getTextZoom", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to set the current text zoom percent value for the WebView. + * @param {Number} textZoom A percentage value by which text in the WebView should be scaled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.setTextZoom = function(textZoom, callback) { + exec(callback, null, "MobileAccessibility", "setTextZoom", [textZoom]); +}; + +/** + * Asynchronous call to native MobileAccessibility to retrieve the user's preferred text zoom from system settings and apply it to the application WebView. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.updateTextZoom = function(callback) { + exec(callback, null, "MobileAccessibility", "updateTextZoom", []); +}; + +MobileAccessibility.prototype.usePreferredTextZoom = function(bool) { + var currentValue = window.localStorage.getItem("MobileAccessibility.usePreferredTextZoom") === "true"; + + if (arguments.length === 0) { + return currentValue; + } + + if (currentValue != bool) { + window.localStorage.setItem("MobileAccessibility.usePreferredTextZoom", bool); + } + + var callback = function(){ + // Wrapping updateTextZoom call in a function to stop + // the event parameter propagation. This fixes an error + // on resume where cordova tried to call apply() on the + // event, expecting a function. + mobileAccessibility.updateTextZoom(); + }; + + document.removeEventListener("resume", callback); + + if (bool) { + // console.log("We should update the text zoom at this point: " + bool) + document.addEventListener("resume", callback, false); + mobileAccessibility.updateTextZoom(); + } else { + mobileAccessibility.setTextZoom(100); + } + + return Boolean(bool); +}; + +MobileAccessibility.prototype.MobileAccessibilityNotifications = MobileAccessibilityNotifications; + +/** + * Posts a notification with a string for a screen reader to announce, if it is running. + * @param {uint} mobileAccessibilityNotification A numeric constant for the type of notification to send. Constants are defined in MobileAccessibility.MobileAccessibilityNotifications. + * @param {string} string A string to be announced by a screen reader. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility, when the announcement is finished, the function should expect an object containing the stringValue that was voiced and a boolean indicating that the announcement wasSuccessful. + */ +MobileAccessibility.prototype.postNotification = function(mobileAccessibilityNotification, string, callback) { + exec(callback, null, "MobileAccessibility", "postNotification", [mobileAccessibilityNotification, string]); +}; + +/** + * Speaks the given string, and if ChromeVox is active, it will use the specified queueMode and properties. + * @param {string} string A string to be announced by a screen reader. + * @param {number} [queueMode] Optional number. Valid modes are 0 for flush; 1 for queue. + * @param {Object} [properties] Speech properties to use for this utterance. + */ +MobileAccessibility.prototype.speak = function(string, queueMode, properties) { + if (this.isChromeVoxActive()) { + cvox.ChromeVox.tts.speak(string, queueMode, properties); + } else { + exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, string]); + } +} + +/** + * Stops speech. + */ +MobileAccessibility.prototype.stop = function() { + if (this.isChromeVoxActive()) { + cvox.ChromeVox.tts.stop(); + } else { + exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, "\u200b"]); + } +} + +/** + * Callback from native MobileAccessibility returning an object which describes the status of MobileAccessibility features. + * + * @param {Object} info + * @config {Boolean} [isBoldTextEnabled] Boolean to indicate bold text status (ios). + * @config {Boolean} [isClosedCaptioningEnabled] Boolean to indicate closed captioning status. + * @config {Boolean} [isDarkerSystemColorsEnabled] Boolean to indicate darker system colors status (ios). + * @config {Boolean} [isGrayscaleEnabled] Boolean to indicate grayscale status (ios). + * @config {Boolean} [isGuidedAccessEnabled] Boolean to indicate guided access status (ios). + * @config {Boolean} [isInvertColorsEnabled] Boolean to indicate invert colors status (ios). + * @config {Boolean} [isMonoAudioEnabled] Boolean to indicate mono audio status (ios). + * @config {Boolean} [isReduceMotionEnabled] Boolean to indicate reduce motion status (ios). + * @config {Boolean} [isReduceTransparencyEnabled] Boolean to indicate reduce transparency status (ios). + * @config {Boolean} [isScreenReaderRunning] Boolean to indicate screen reader status. + * @config {Boolean} [isSpeakScreenEnabled] Boolean to indicate speak screen status (ios). + * @config {Boolean} [isSpeakSelectionEnabled] Boolean to indicate speak selection status (ios). + * @config {Boolean} [isSwitchControlRunning] Boolean to indicate switch control status (ios). + * @config {Boolean} [isTouchExplorationEnabled] Boolean to indicate touch exploration status (android). + */ +MobileAccessibility.prototype._status = function(info) { + if (info) { + mobileAccessibility.activateOrDeactivateChromeVox(info.isScreenReaderRunning); + if (mobileAccessibility._isBoldTextEnabled !== info.isBoldTextEnabled) { + mobileAccessibility._isBoldTextEnabled = info.isBoldTextEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED, info); + } + if (mobileAccessibility._isClosedCaptioningEnabled !== info.isClosedCaptioningEnabled) { + mobileAccessibility._isClosedCaptioningEnabled = info.isClosedCaptioningEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED, info); + } + if (mobileAccessibility._isDarkerSystemColorsEnabled !== info.isDarkerSystemColorsEnabled) { + mobileAccessibility._isDarkerSystemColorsEnabled = info.isDarkerSystemColorsEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isGrayscaleEnabled !== info.isGrayscaleEnabled) { + mobileAccessibility._isGrayscaleEnabled = info.isGrayscaleEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED, info); + } + if (mobileAccessibility._isGuidedAccessEnabled !== info.isGuidedAccessEnabled) { + mobileAccessibility._isGuidedAccessEnabled = info.isGuidedAccessEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isInvertColorsEnabled !== info.isInvertColorsEnabled) { + mobileAccessibility._isInvertColorsEnabled = info.isInvertColorsEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isMonoAudioEnabled !== info.isMonoAudioEnabled) { + mobileAccessibility._isMonoAudioEnabled = info.isMonoAudioEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED, info); + } + if (mobileAccessibility._isReduceMotionEnabled !== info.isReduceMotionEnabled) { + mobileAccessibility._isReduceMotionEnabled = info.isReduceMotionEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isReduceTransparencyEnabled !== info.isReduceTransparencyEnabled) { + mobileAccessibility._isReduceTransparencyEnabled = info.isReduceTransparencyEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED, info); + } + if (mobileAccessibility._isScreenReaderRunning !== info.isScreenReaderRunning) { + mobileAccessibility._isScreenReaderRunning = info.isScreenReaderRunning; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSpeakScreenEnabled !== info.isSpeakScreenEnabled) { + mobileAccessibility._isSpeakScreenEnabled = info.isSpeakScreenEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSpeakSelectionEnabled !== info.isSpeakSelectionEnabled) { + mobileAccessibility._isSpeakSelectionEnabled = info.isSpeakSelectionEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSwitchControlRunning !== info.isSwitchControlRunning) { + mobileAccessibility._isSwitchControlRunning = info.isSwitchControlRunning; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED, info); + } + if (mobileAccessibility._isTouchExplorationEnabled !== info.isTouchExplorationEnabled) { + mobileAccessibility._isTouchExplorationEnabled = info.isTouchExplorationEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isHighContrastEnabled !== info.isHighContrastEnabled) { + mobileAccessibility._isHighContrastEnabled = info.isHighContrastEnabled; + mobileAccessibility._highContrastScheme = info.highContrastScheme; + cordova.fireWindowEvent(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED, info); + } + } +}; + +/** + * Error callback for MobileAccessibility start + */ +MobileAccessibility.prototype._error = function(e) { + console.log("Error initializing MobileAccessibility: " + e); +}; + +var mobileAccessibility = new MobileAccessibility(); + +module.exports = mobileAccessibility; + +}); diff --git a/StoneIsland/platforms/ios/www/cordova_plugins.js b/StoneIsland/platforms/ios/www/cordova_plugins.js index 32af05ac..8469b08b 100644 --- a/StoneIsland/platforms/ios/www/cordova_plugins.js +++ b/StoneIsland/platforms/ios/www/cordova_plugins.js @@ -130,6 +130,22 @@ module.exports = [ "merges": [ "window.plugins.sim" ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.mobile-accessibility", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "window.MobileAccessibility" + ] + }, + { + "id": "phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", + "file": "plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js", + "pluginId": "phonegap-plugin-mobile-accessibility", + "clobbers": [ + "MobileAccessibilityNotifications" + ] } ]; module.exports.metadata = @@ -149,7 +165,8 @@ module.exports.metadata = "cordova-plugin-x-socialsharing": "5.1.3", "ionic-plugin-keyboard": "2.2.1", "phonegap-plugin-push": "1.9.2", - "cordova-plugin-sim": "1.3.3" + "cordova-plugin-sim": "1.3.3", + "phonegap-plugin-mobile-accessibility": "1.0.5-dev" }; // BOTTOM OF METADATA });
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/css/account.css b/StoneIsland/platforms/ios/www/css/account.css index 32c7df79..12adb2d9 100755 --- a/StoneIsland/platforms/ios/www/css/account.css +++ b/StoneIsland/platforms/ios/www/css/account.css @@ -67,7 +67,7 @@ content:''; width:calc(100% + 100px); height:1px; - background:#bbb; + background:#666; position:absolute; bottom:0; left:-50px; @@ -77,7 +77,7 @@ position:relative; font-weight:bold; letter-spacing:0.2px; - font-size:11px; + font-size: 0.688rem; margin-bottom:10px; width:100%; box-sizing:border-box; @@ -122,26 +122,37 @@ text-align: center; margin: 0; padding: 20px 10px 8px 10px; - font-size: 14px; + font-size: 1rem; color: #000; letter-spacing: 1px; font-weight: bold; } +label { + display: flex; + align-items: center; + justify-content: center; + text-align: center; + font-size: 1rem; + color: #000; + letter-spacing:1px; + text-transform:uppercase; + height: 48px; +} input[type=text], input[type=password], input[type=number], input[type=date], input[type=email] { font-family:pfd, sans-serif; - font-size:14px; + font-size: 0.875rem; outline:none!important; color:#000; letter-spacing:1px; text-transform:uppercase; - height:35px; + height: 48px; text-align:center; margin: 0px auto; display:block; - margin-top:4px; + margin-top: 0px; width: calc(100vw - 10px); - border:1px solid #a9a9a9; + border:1px solid #696969; padding: 0; border-radius: 0; } @@ -149,27 +160,35 @@ input[type=text], input[type=password], input[type=number], input[type=date], in input[type=text], input[type=password], input[type=number], input[type=email] { -webkit-appearance: none; } - +input[type=text]:focus, input[type=password]:focus, input[type=number]:focus, input[type=email] { + border-width: 2px; +} .half-input { margin: 0px auto; - display: block; + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; margin-top: 4px; width: calc(100vw - 10px); overflow: auto; } +.half-input label { + width: 50%; +} .half-input input, .half-input select { position: relative; margin: 0; border:none; box-sizing: border-box; float: left; - border: 1px solid #a9a9a9; + border: 1px solid #696969; width: 50%; } .half-input > input:first-child { - border-right: 1px solid #a9a9a9; + border-right: 1px solid #696969; } #signup .toggle-container, #profile .toggle-container { @@ -179,7 +198,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] { width: calc(100vw - 10px); box-sizing: border-box; padding:0px 18px 2px; - font-size:14px; + font-size: 1rem; } #settings .toggle-container { @@ -189,7 +208,7 @@ input[type=text], input[type=password], input[type=number], input[type=email] { width: calc(100vw - 10px); box-sizing: border-box; padding:10px 18px 2px; - font-size:14px; + font-size: 1rem; } .toggle-row { @@ -296,10 +315,12 @@ input.switch:checked + label:after { .container-fill { min-height:80px; + display: flex; flex: 1; align-items: center; justify-content: center; position:relative; + flex-direction: column; } .container-fill-condensed { @@ -317,26 +338,27 @@ input.switch:checked + label:after { width:calc(100vw - 10px); box-sizing:border-box; margin:10px auto 0; - position:relative + position:relative; } .container-row .container-message-condensed { margin: 2px auto!important } .container-fill .container-message { - font-size:12px; + font-size: 0.875rem; letter-spacing:0.5px; text-align:center; - position:absolute; - top:50%; - left:50%; + display: flex; + align-items: center; + justify-content: center; width:100%; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); + min-height: 48px; color:#000; } - +.billing-container a { + text-decoration: none; +} .premessage { top:calc(50% - 20px)!important; @@ -351,7 +373,7 @@ input.switch:checked + label:after { } .checkbox-container { - font-size:11px; + font-size: 0.875rem; width:calc(100vw - 10px); display:table; box-sizing:border-box; @@ -381,6 +403,7 @@ input.switch:checked + label:after { vertical-align:middle; display:table-cell; box-sizing:border-box; + text-align: left; } .billing-container .checkbox-caption { @@ -442,10 +465,6 @@ input.switch:checked + label:after { } .privacy-msg { - left: 50%; - display: inline-block; - position: relative; - transform: translateX(-50%); padding-top: 15px; padding-bottom: 80px; } @@ -458,51 +477,55 @@ input.switch:checked + label:after { text-align: center; overflow: hidden; - font-size: 14px; + font-size: 0.875rem; outline: none !important; color: #000; letter-spacing: 1px; text-transform: uppercase; - height: 35px; + height: 48px; text-align: center; margin: 0px auto; display: block; margin-top: 4px; width: calc(100vw - 10px); - border: 1px solid #a9a9a9; + border: 1px solid #696969; } .date-wrapper span { display: block; } .half-input .select-wrapper { + display: flex; + align-items: center; + justify-content: center; width: 50%; border: 0; margin-top: 0px; float: left; box-sizing: border-box; - border: 1px solid #a9a9a9; + border: 1px solid #696969; +} +.half-input .select-wrapper:nth-child(2) { border-left: 0px; } .half-input .select-wrapper span { - top: 8px; color: #aaa; + top: 0; } .select-wrapper [type=date] { opacity: 0; width: 100%; - height: 35px; - line-height: 35px; + height: 48px; + line-height: 48px; position: absolute; top: -5px; left: -1px; - width: 1px; height: 1px; } .select-wrapper select { opacity: 0; width: 100%; - height: 35px; - line-height: 35px; + height: 48px; + line-height: 48px; position: absolute; top: 0; left: 0; box-sizing: border-box; @@ -512,8 +535,8 @@ input.switch:checked + label:after { } .select-wrapper span { position: relative; - top: 8px; - color: #888; + top: 15px; + color: #666; } .select-wrapper.picked span { color: #000; @@ -521,33 +544,29 @@ input.switch:checked + label:after { .country-wrapper-static { text-align: center; - color: #a9a9a9; + color: #696969; border: 1px solid; - padding-top: 9px; - font-size: 14px; - height: 35px; + border-left: 0; + font-size: 0.875rem; + height: 48px; box-sizing: border-box; -} - -.container-row input:first-child { -margin-top:10px + width: 50%; + display: flex; + justify-content: center; + align-items: center; } .container-row .half-input input { margin-top:0px } -#login .container-row input:first-child { -margin-bottom:9px!important -} - .newuser { display:inline-block; - padding:14px; + padding:18px; text-decoration:underline } .forgotpassword { - padding:14px; + padding:18px; text-decoration:underline }
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/css/blogs.css b/StoneIsland/platforms/ios/www/css/blogs.css index bf5ab68f..2d4a52c3 100755 --- a/StoneIsland/platforms/ios/www/css/blogs.css +++ b/StoneIsland/platforms/ios/www/css/blogs.css @@ -6,17 +6,22 @@ margin: 15px 0 0; text-align: center; text-transform:uppercase; + display:flex; + flex-direction: row; + justify-content: center; + align-items: center; + flex-wrap: wrap; } #story .links li { - padding: 10px; + display: flex; + justify-content: center; + align-items: center; + height: 48px; + padding: 0 8px; list-style-type: none; - display: inline-block; -} -#story .links li:before { - content: ' | ', -} -#story .links li:first-child:before { - content: '', + font-size: 1rem; + border: 1px solid black; + margin: 5px; } #story .links li.active { font-weight: bold; @@ -57,7 +62,7 @@ animation: mfadein 0.6s; #hub .content .body, #story .content .body { letter-spacing:0.35px; - font-size:12px; + font-size: 1rem; width:calc(100vw - 40px); box-sizing:border-box; margin:10px auto 20px; @@ -65,7 +70,7 @@ animation: mfadein 0.6s; } #hub .content .body:last-child { - margin:10px auto 100px; + margin:20px auto 100px; } #story .content .body:last-child { @@ -85,14 +90,14 @@ animation: mfadein 0.6s; .content-header .title, .content-header .subtitle { display:block; font-weight:bold; - font-size:14px; + font-size: 1rem; text-transform:uppercase } .content-header .title { margin:0; padding:0; - line-height:13px; + line-height:1.4em; } .content-header .subtitle { @@ -101,12 +106,17 @@ animation: mfadein 0.6s; .content-share { border:1px solid black; - padding:4px 8px 2px; + padding: 0 12px; + height: 48px; + font-size: 1rem; + display: flex; + justify-content: center; + align-items: center; float:right } .content-header span.date, .content-header span.store { - font-size:10px; + font-size: 1rem; } /* NOTE: optional arrows */ @@ -118,19 +128,18 @@ animation: mfadein 0.6s; background-size:5px 10px; background-repeat:no-repeat; background-position:center; - width:15px; - height:30px; + width:24px; + height:48px; top:26vh; content:''; transform:translateY(-50%); transform-origin:top right; left:20px; - font-size:18px; + font-size: 1.125rem; padding:3px 3px 3px 1px; z-index:2; position:absolute; display:block; - animation: gallery-fade 4s forwards; } .gallery-right { border:1px solid black; @@ -139,19 +148,18 @@ animation: mfadein 0.6s; background-size:5px 10px; background-repeat:no-repeat; background-position:center; - width:15px; - height:30px; + width:24px; + height:48px; top:26vh; content:''; transform:translateY(-50%); transform-origin:top right; right:20px; - font-size:18px; + font-size: 1.125rem; padding:3px 1px 3px 3px; z-index:2; position:absolute; display:block; - animation: gallery-fade 4s forwards; } @-webkit-keyframes gallery-fade { @@ -183,7 +191,7 @@ animation: mfadein 0.6s; transform:scale(1,.5) translateY(-50%); transform-origin:bottom right; content:'\25BC'; - font-size:17px; + font-size: 1.063rem; padding:9px 11px; z-index:999; position:absolute; @@ -205,11 +213,11 @@ ul.links { } .archive h1 { - font-size:26px; + font-size: 1.625rem; border-bottom:0; - margin-top:8px; + margin-top: 8px; padding-bottom:0; - line-height:24px; + line-height: 1; } .archive .subtitle { @@ -220,20 +228,20 @@ ul.links { margin:0 0 12px; padding:0; font-weight:bold; - font-size:14px; + font-size: 1rem; } .archive h2 { - font-size: 25px; + font-size: 1.563rem; font-weight: normal; } .archive h2 b { - font-size: 28px; + font-size: 1.75rem; } .archive .body { - font-size: 14px; - line-height: 1.2em; + font-size: 0.875rem; + line-height: 1.4rem; font-weight: 100; } @@ -252,6 +260,13 @@ ul.links { transform: translateZ(0) translateX(-50%) translateY(-50%); } +.accessible #archive .row .image, +.accessible #archive .row .text { + position: relative; + top: auto; left: auto; + transform: translateZ(0); +} + #archive .menu .items { border-top: 1px solid transparent; } @@ -278,11 +293,14 @@ ul.links { } #archive .menu .item { width: 100%; - text-align: center; + display: flex; + justify-content: center; + align-items: center; border-bottom: 1px solid black; background: white; - padding:12px 0; - font-size:14px; + padding:0; + height: 48px; + font-size: 1rem; letter-spacing:0.7px } @@ -318,6 +336,17 @@ ul.links { #archive .row .text { width: 80%; } +.accessible #archive .row .image { + display: block; + height: 50vh; + opacity: 1 !important; +} +.accessible #archive .row .text { + display: block; + margin: 0 auto; + opacity: 1 !important; + width: 90%; +} .gallery-video-post { position:relative; diff --git a/StoneIsland/platforms/ios/www/css/cart.css b/StoneIsland/platforms/ios/www/css/cart.css index 7619a82b..36a446a7 100755 --- a/StoneIsland/platforms/ios/www/css/cart.css +++ b/StoneIsland/platforms/ios/www/css/cart.css @@ -6,20 +6,24 @@ #cart .steps { width: 100%; - border-bottom: 1px solid #bbb; + border-bottom: 1px solid #666; font-size: 0; + display: flex; + flex-direction: row; } #cart .steps span { - display: inline-block; - font-size: 13px; + display: flex; + font-size: 1rem; text-align: center; - padding: 11px 0 10px; - color: #bbb; + color: #666; width: 33%; position:relative; + height: 48px; + justify-content: center; + align-items: center; } .summary_step, .shipping_step { - border-right: 1px solid #bbb + border-right: 1px solid #666; } #cart.summary .summary_step, @@ -95,7 +99,7 @@ min-height:50px; max-width: 50%; text-align: center; - font-size: 18px; + font-size: 1.125rem; } .summary-container { @@ -109,7 +113,11 @@ #cart h3 { padding-left: 5px; - font-size:12px; + height: 48px; + display: flex; + justify-content: flex-start; + align-items: center; + font-size: 1rem; } .cart_item_row { @@ -153,9 +161,9 @@ padding-left:5px; .cart_item_price .remove { display:block; -width:20px; -height:20px; -border:1px solid #d2d2d2; +width:48px; +height:48px; +border:1px solid #b2b2b2; float:right; margin-bottom:10px; position:relative; @@ -164,8 +172,8 @@ position:relative; .cart_item_price .remove:after { content:''; width:1px; -height:22px; -background:#bbb; +height:48px; +background:#333; position:absolute; top:50%; left:50%; @@ -177,8 +185,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) .cart_item_price .remove:before { content:''; width:1px; - height:22px; - background:#bbb; + height:48px; + background:#333; position:absolute; top:50%; left:50%; @@ -188,27 +196,27 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) } .cart_item_price .price { - font-size:11px; + font-size: 1rem; font-weight:bold; display:block } .cart_item_info .sku { - font-size:10px; + font-size: 1rem; font-weight:bold; - display:block + display:block; } .cart_item_info .title { - font-size:10px; + font-size: 1rem; font-weight:bold; display:block; - line-height:12px; + line-height:1.4em; text-transform:uppercase; } .cart_item_info .type { - font-size:10px; + font-size: 1rem; font-weight:bold; display:block; text-transform:capitalize; @@ -216,8 +224,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) .cart_item_info .meta { padding-top:5px; - letter-spacing:.75px; - font-size:8px; + letter-spacing: 0.047rem; + font-size:0.875rem; } .order_section .rows { @@ -229,7 +237,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) width:calc(100vw - 30px); margin:15px auto; text-decoration:underline; - font-size:11px; + font-size: 0.688rem; } .order_section_container { @@ -241,8 +249,8 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) width:calc(100vw - 30px); margin:0 auto; display:table; - color:#bbb; - font-size:11px; + color:#666; + font-size: 1rem; } .cart-summary-row { @@ -274,7 +282,7 @@ transform:rotate(45deg) translateX(-50%) translateY(-50%) #orders .order_section { padding-bottom: 16px; - border-bottom: 1px solid #bbb; + border-bottom: 1px solid #666; } @@ -294,25 +302,30 @@ color:#000; position:relative; text-align:right; width:calc(100vw - 10px); - margin:0 auto; + margin:0 auto 20px 0; box-sizing:border-box; - + display: flex; + flex-direction: column; } .dropdown-wrapper .add_edit { padding:10px; letter-spacing:0.5px; - font-size:12px; + font-size: 0.75rem; color:#a9a9a9; box-sizing:border-box; } .dropdown-wrapper .dropdown { - font-size:14px; + font-size: 1rem; box-sizing:border-box; + display: flex; + justify-content: center; align-items: center; text-align: center; - padding:10px 0; + height: 48px; + margin-left: 3px; + padding:0; border:1px solid #a9a9a9; position:relative; } @@ -355,6 +368,9 @@ color:#000; margin-left:5px; margin-bottom:6px; } +#cart .cc_confirm h3 { + justify-content: center +} #cart_shipping input:first-child { margin-top:10px diff --git a/StoneIsland/platforms/ios/www/css/index.css b/StoneIsland/platforms/ios/www/css/index.css index 4d8e5514..88022823 100755 --- a/StoneIsland/platforms/ios/www/css/index.css +++ b/StoneIsland/platforms/ios/www/css/index.css @@ -17,9 +17,12 @@ body { -webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */ background: #fff; font-family: pfd, sans-serif; - font-size: 12px; + font-size: 0.875rem; padding-top: constant(safe-area-inset-top); } +a, a:visited { + color: #000; +} .loader { z-index: 2; @@ -60,3 +63,15 @@ body { color: red !important; border-color: red !important; } +.error_hilite ~ span.err { + display: flex; +} +span.err { + display: none; + text-align: center; + justify-content: center; + align-items: center; + font-size: 0.875rem; + height: 48px; + color: red !important; +} diff --git a/StoneIsland/platforms/ios/www/css/nav.css b/StoneIsland/platforms/ios/www/css/nav.css index b7002f20..f555ce99 100755 --- a/StoneIsland/platforms/ios/www/css/nav.css +++ b/StoneIsland/platforms/ios/www/css/nav.css @@ -35,7 +35,7 @@ } #nav .menu span { display: block; - font-size: 14px; + font-size: 1rem; letter-spacing:1.25px; text-shadow:0px 0px 1px rgba(0,0,0,.2); color: #000; @@ -77,9 +77,9 @@ #nav .submenu span { display: block; - font-size: 14px; + font-size: 1rem; letter-spacing:1.25px; - color: #bbb; + color: #666; padding: 4px 0 12px 20px } @@ -94,8 +94,8 @@ float: left; width: 61px; border-left: 1px solid #ddd; - color: #bbb; - font-size: 18px; + color: #666; + font-size: 1.125rem; padding: 5px 0; text-align: center; } @@ -137,11 +137,14 @@ padding-bottom:0px; } #intro div { position: absolute; - top: 50%; left: 50%; + top: 50%; + left: 50%; width: 200px; - padding: 50px; - text-align: center; - font-size: 17px; + height: 100px; + display: flex; + justify-content: center; + align-items: center; + font-size: 1.063rem; } #intro #compass { pointer-events: none; @@ -177,7 +180,7 @@ padding-bottom:0px; box-sizing: border-box; width: calc(100vw); text-align: center; - font-size: 14pt; + font-size: 0.875rem; font-weight: bold; line-height: 0; text-transform: uppercase; @@ -198,7 +201,7 @@ padding-bottom:0px; display: block; position: absolute; top: 0; left: 0; width: 100%; - height: 42px; + height: 48px; border-bottom: 1px solid black; } #header .logo { @@ -207,43 +210,43 @@ padding-bottom:0px; background-position: center center; position: absolute; background-size: contain; - width: 100px; height: 40px; - left: 50%; top: -4px; + width: 100px; height: 48px; + left: 50%; top: -3px; margin-left: -50px; top:0px; } #header .burger { display: inline-block; font-size: 24px; - padding: 9px 10px 5px; + padding: 12px 13px 7px; } #header .cart_rapper { - display: inline-block; + display: flex; + justify-content: center; + align-items: flex-end; position: relative; float: right; - width: 40px; height: 40px; + width: 44px; height: 48px; } #header .cart { position: relative; - float: right; width: 18px; - top: 15px; + margin-bottom: 10px; height: 18px; - margin-right: 18px; background: #fff; background-image:url(../img/cart-box.png); background-size:100%; background-repeat:no-repeat; } -.cart .cart_count { +#header .cart .cart_count { position: absolute; top: 50%; left: 50%; transform: translateY(-50%) translateX(-50%); - color: #bbb; - font-size:12.35px; + color: #666; + font-size: 12.35px; } #header .cart::before { @@ -273,12 +276,16 @@ padding-bottom:0px; } #footer div { width: 50%; + height: 48px; text-align: center; - padding: 10px 0; color: #000; float: left; - font-size:14px; + font-size: 1rem; font-weight:bold; + padding: 0; + display: flex; + justify-content: center; + align-items: center; } #footer .ok { color: #000; @@ -287,7 +294,7 @@ padding-bottom:0px; width: 100%; } #footer .ok.disabled { - color: #bbb; + color: #666; } @@ -300,8 +307,10 @@ padding-bottom:0px; width: 100%; height: 100%; background: rgba(255,255,255,0.8); opacity: 0; - -webkit-transition: opacity 0.2s; - transition: opacity 0.2s; + -webkit-transition: opacity 0.2s, -webkit-transform 0.2s; + transition: opacity 0.2s, transform 0.2s; + -webkit-transform: translateZ(0) translateX(0); + transform: translateZ(0) translateX(0); } #curtain.visible { pointer-events: auto; @@ -346,13 +355,14 @@ padding-bottom:0px; #consent_modal { display: none; z-index: 2; + font-size: 1rem; } #consent_modal a { color: black; } .modal button { font-family: pfd, sans-serif; - font-size: 12px; + font-size: 0.875rem; padding: 10px; box-sizing: border-box; margin: 0; @@ -400,9 +410,9 @@ padding-bottom:0px; #selector:not(.selector-outer-wrap) .options div { background: white; text-align: center; - padding: 7px 12px; + padding: 12px 12px; box-sizing:border-box; - font-size: 14px; + font-size: 0.875rem; border-left:1px solid black; border-right:1px solid black; border-top:1px solid black; @@ -437,7 +447,7 @@ padding-bottom:0px; background: white; text-align: center; padding: 7px 12px; - font-size:14px!important; + font-size: 0.875rem!important; } .selector-outer-wrap .options div:nth-of-type(odd){ @@ -462,28 +472,31 @@ padding-bottom:0px; #cart, #profile, #shipping, #payment, #settings, #orders { position: absolute; - top: 43px; - height: -webkit-calc(100% - 43px - 39px); - height: calc(100% - 43px - 39px); + top: 49px; + height: -webkit-calc(100% - 49px - 39px); + height: calc(100% - 49px - 39px); width: 100%; overflow: hidden; } #collection.single { - height: -webkit-calc(100% - 43px); - height: calc(100% - 43px); + height: -webkit-calc(100% - 49px); + height: calc(100% - 49px); } #story, #hub, #archive, .page, #closed { /* these things do not have a footer */ - height: -webkit-calc(100% - 43px); - height: calc(100% - 43px); + height: -webkit-calc(100% - 49px); + height: calc(100% - 49px); } h1 { text-align: center; margin: 0; - padding: 16px 10px 12px 10px; + display: flex; + justify-content: center; + align-items: center; border-bottom: 1px solid #000; - font-size: 14px; + height: 48px; + font-size: 1rem; color: #000; letter-spacing: 1px; font-weight: bold; diff --git a/StoneIsland/platforms/ios/www/css/products.css b/StoneIsland/platforms/ios/www/css/products.css index 59bb403f..63e9b020 100755 --- a/StoneIsland/platforms/ios/www/css/products.css +++ b/StoneIsland/platforms/ios/www/css/products.css @@ -103,7 +103,7 @@ } .product .product-header { - font-size:14px; + font-size: 1rem; margin:18px 0 0; max-width:60%; position:relative; @@ -118,7 +118,7 @@ margin-bottom: 18px; font-weight: bold; text-align: center; - font-size: 17px; + font-size: 1.063rem; } .product-group:first-child { margin-top: 0; @@ -136,33 +136,49 @@ } .product .style { - padding:4px 9px; + padding: 0; border:1px solid black; float:left } .product .share { float:right; - padding:4px 9px; + padding: 0 12px; + height: 48px; + display: flex; + justify-content: center; + align-items: center; border:1px solid black; } .product .type { display:table-cell; - font-size:14px; + font-size: 1rem; } -.product .size { - padding-right:16px; +.product .size-color { + display: flex; + flex-direction: row; +} +.product .size-color span { position:relative; - box-sizing:border-box + box-sizing:border-box; + padding: 0 12px; + height: 48px; + font-size: 1rem; + display: flex; + justify-content: center; + align-items: center; +} +.product .size-color span.size { + border-right: 1px solid #444; } .product .price { display:table-cell; - font-size:14px; + font-size: 1rem; text-align:right; - vertical-align:bottom + vertical-align:bottom; } .product .price, .product .type { @@ -179,12 +195,12 @@ .style-share { letter-spacing:0.5px; - font-size:12.35px + font-size: 1rem; } .size-color { position:relative; - font-size:12.35px + font-size: 1rem; } .type-price, .style-share { @@ -194,7 +210,7 @@ } -.size::after { +/*.size::after { content: ''; display: inline-block; width: 1px; @@ -205,12 +221,12 @@ right:5px; background: #999; } - +*/ .product .fit, .product .notAvailableInCanada { clear:both; - font-size:9px; + font-size: 0.563rem; letter-spacing:0.5px; text-decoration:underline; text-transform:uppercase; @@ -218,7 +234,7 @@ } .product .fitHeader { clear:both; - font-size:9px; + font-size: 0.563rem; letter-spacing:0.5px; text-decoration: none; text-transform:uppercase; @@ -232,7 +248,8 @@ #product .content .body { letter-spacing:0.35px; - font-size:12px; + font-size: 1rem; + line-height: 1.4em; box-sizing:border-box; margin:0px auto 20px; clear:both; diff --git a/StoneIsland/platforms/ios/www/css/vendor/flickity.css b/StoneIsland/platforms/ios/www/css/vendor/flickity.css index b8eca4e4..99a09e72 100755 --- a/StoneIsland/platforms/ios/www/css/vendor/flickity.css +++ b/StoneIsland/platforms/ios/www/css/vendor/flickity.css @@ -105,7 +105,7 @@ http://flickity.metafizzy.co /* color & size if no SVG - IE8 and Android 2.3 */ .flickity-prev-next-button.no-svg { color: #333; - font-size: 26px; + font-size: 1.625rem; } /* ---- page dots ---- */ diff --git a/StoneIsland/platforms/ios/www/index.html b/StoneIsland/platforms/ios/www/index.html index b6fc8317..c46e37c3 100755 --- a/StoneIsland/platforms/ios/www/index.html +++ b/StoneIsland/platforms/ios/www/index.html @@ -28,103 +28,97 @@ <link rel="stylesheet" type="text/css" href="css/blogs.css"> <title>Stone Island</title> </head> -<body class="loading"> +<body class="loading" role="application"> -<div id="nav"> +<div id="nav" role="directory"> <div id="nav-container"> <div id="nav-row"> <!-- flex --> - <span class="menu"> - <div class="logo"></div> - <div class="main_menu"> - <span class="store">STORE</span> - <span class="hub">HUB</span> - <span class="story">STORY</span> - <span class="archive">ARCHIVE</span> + <span role="menu" class="menu"> + <div class="logo" aria-label="Stone Island"></div> + <div role="menu" aria-label="Main Menu" class="main_menu"> + <span role="menuitem" class="store">STORE</span> + <span role="menuitem" class="hub">HUB</span> + <span role="menuitem" class="story">STORY</span> + <span role="menuitem" class="archive">ARCHIVE</span> </div> - <div class="account_menu"> - <span class="account_back menu-emphasis">< MY ACCOUNT</span> - <span class="profile">MY PROFILE</span> - <span class="payment">MY CARD</span> - <span class="shipping">ADDRESS BOOK</span> - <span class="orders">MY ORDERS</span> - <span class="return_link">RETURNS</span> - <span class="settings">NOTIFICATIONS</span> + <div role="menu" aria-label="Account Menu" class="account_menu"> + <span role="menuitem" class="account_back menu-emphasis">< MY ACCOUNT</span> + <span role="menuitem" class="profile">MY PROFILE</span> + <span role="menuitem" class="payment">MY CARD</span> + <span role="menuitem" class="shipping">ADDRESS BOOK</span> + <span role="menuitem" class="orders">MY ORDERS</span> + <span role="menuitem" class="return_link_us">RETURNS (US)</span> + <span role="menuitem" class="return_link_ca">RETURNS (CANADA)</span> + <span role="menuitem" class="settings">NOTIFICATIONS</span> </div> - <div class="faq_menu"> - <span class="faq_back menu-emphasis">< FAQ</span> - <span class="privacy">PRIVACY POLICY</span> - <span class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span> - <span class="terms">TERMS AND CONDITIONS</span> - <span class="returns">RETURN POLICY</span> - <span class="care">CUSTOMER CARE</span> + <div role="menu" aria-label="FAQ Menu" class="faq_menu"> + <span role="menuitem" class="faq_back menu-emphasis">< FAQ</span> + <span role="menuitem" class="privacy">PRIVACY POLICY</span> + <span role="menuitem" class="account_terms">MY ACCOUNT TERMS AND CONDITIONS OF USE</span> + <span role="menuitem" class="terms">TERMS AND CONDITIONS</span> + <span role="menuitem" class="returns">RETURN POLICY</span> + <span role="menuitem" class="care">CUSTOMER CARE</span> </div> </span> </div> <div id="nav-fill"> <!-- flex fill --> - <span class="submenu"> + <span role="menu" class="submenu"> <div class="main_menu"> - <span class="account">MY ACCOUNT</span> - <span class="login">LOGIN</span> - <span class="faq">FAQ</span> + <span role="menuitem" class="account">MY ACCOUNT</span> + <span role="menuitem" class="login">LOGIN</span> + <span role="menuitem" class="faq">FAQ</span> </div> <div class="account_menu"> - <span class="logout">LOGOUT</span> - <span class="faq">FAQ</span> - <span class="main">MAIN MENU</span> + <span role="menuitem" class="logout">LOGOUT</span> + <span role="menuitem" class="faq">FAQ</span> + <span role="menuitem" class="main">MAIN MENU</span> </div> <div class="faq_menu"> - <span class="account">MY ACCOUNT</span> - <span class="login">LOGIN</span> - <span class="logout">LOGOUT</span> - <span class="main">MAIN MENU</span> + <span role="menuitem" class="account">MY ACCOUNT</span> + <span role="menuitem" class="login">LOGIN</span> + <span role="menuitem" class="logout">LOGOUT</span> + <span role="menuitem" class="main">MAIN MENU</span> </div> </span> </div> <!-- end flex --> </div> - <span class="social"> - <span class="fb ion-social-facebook"></span> - <span class="insta ion-social-instagram-outline"></span> - <span class="tw ion-social-twitter"></span> - <span class="yt ion-social-youtube"></span> + <span class="social" role="list" aria-label="Social Links"> + <span role="menuitem" class="fb ion-social-facebook"></span> + <span role="menuitem" class="insta ion-social-instagram-outline"></span> + <span role="menuitem" class="tw ion-social-twitter"></span> + <span role="menuitem" class="yt ion-social-youtube"></span> </span> </div> <div id="content"> - <div id="intro"> + <div id="intro" role="menu" aria-label="Stone Island Home Screen"> <div id="compass"></div> - <div class="store">STORE</div> - <div class="hub">HUB</div> - <div class="story">STORY</div> - <div class="archive">ARCHIVE</div> + <div role="menuitem" class="store">STORE</div> + <div role="menuitem" class="hub">HUB</div> + <div role="menuitem" class="story">STORY</div> + <div role="menuitem" class="archive">ARCHIVE</div> <div class="alert"></div> - <span class="latlng">+40° 58' 90.9" N 74° 04' 46.3" W</span> + <span class="latlng" role="note" aria-label="Your Latitude and Longitude">+40° 58' 90.9" N 74° 04' 46.3" W</span> </div> - <div id="header"> - <span class="burger ion-android-menu"></span> - <span class="logo"></span> - <span class="cart_rapper"><span class="cart"><span class="cart_count">0</span></span></span> - </div> - - <div id="footer"> - <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen --> - <div class="cancel">CANCEL</div> - <div class="ok">OK</div> + <div id="header" role="menubar" aria-label="Menu bar"> + <span role="menu" aria-label="Show main menu" class="burger ion-android-menu"></span> + <span role="link" aria-label="Homepage. Stone Island logo" class="logo"></span> + <span role="link" aria-label="View cart" class="cart_rapper"><span class="cart"><span role="display" class="cart_count">0</span></span></span> </div> - <!-- BLOGS ================================================ --> - <div id="story"> + <div id="story" role="region" aria-label="Stone Island Story"> <div class="scroll"> - <h1>STORY</h1> + <h1 aria-label="Current section: Stone Island Story">STORY</h1> <img> <ul class="links"></ul> <div class="content"> @@ -137,21 +131,21 @@ </div> </div> - <div id="hub"> + <div id="hub" role="region" aria-label="Stone Island Hub"> <div class="scroll"> - <h1>HUB</h1> + <h1 aria-label="Current section: Stone Island Hub">HUB</h1> <div class="content"> <script type="text/html" class="template"> <div class="hub_item" data-id="{{id}}"> - <div class="gallery gallery-{{id}}"></div> - <div class="gallery-left"></div> - <div class="gallery-right"></div> - <div class="content-header"> - <div class="content-share"> - SHARE + + <div class="gallery gallery-{{id}}" role="carousel"></div> + <div role="button" class="gallery-left"></div> + <div role="button" class="gallery-right"></div> + <div role="heading" class="content-header"> + <div role="button" class="content-share"> + SHARE + </div> - <span class="title">{{title}}</span> - <span class="subtitle">{{subtitle}}</span> + <span role="heading" aria-details="{{cleantitle}}" class="title">{{title}}</span> + <span role="heading" aria-details="{{cleansubtitle}}"class="subtitle">{{subtitle}}</span> <span class="date"> {{date}} <span class="store"> @@ -167,7 +161,7 @@ <div class="fade-cover"></div> </div> - <div id="archive"> + <div id="archive" role="region" aria-label="Stone Island Archive"> <div class="scroll"> <div class="content"> @@ -187,28 +181,29 @@ </div> </div> - <div class="menu"> + <div class="menu" role="menu"> <div class="items"> <script type="text/html" class="template"> - <div class="item">{{title}}</div> + <div role="button" class="item">{{title}}</div> </script> </div> </div> <div class="heading"> - <h1>ARCHIVE</h1> - <div class="subtitle">'982'015</div> + <h1 role="heading" aria-label="Current section: Stone Island Archive">ARCHIVE</h1> + <div role="heading" class="subtitle" aria-label="1982 to 2015">'982'015</div> </div> </div> - <div id="privacy" class="page"> + <div id="privacy" role="region" aria-label="Privacy Policy" class="page"> <div class="scroll"> - <h1>PRIVACY POLICY</h1> + <h1 aria-label="Current section: Privacy Policy">PRIVACY POLICY</h1> <div class="content"></div> </div> </div> - <div id="account_terms" class="page"> + + <div id="account_terms" role="region" aria-label="My Account Terms and Conditions of Use" class="page"> <div class="scroll"> - <h1>MY ACCOUNT TERMS AND CONDITIONS OF USE</h1> + <h1 aria-label="Current section: My Account terms and conditions of use">MY ACCOUNT TERMS AND CONDITIONS OF USE</h1> <div class="content"> <h2>1. Services</h2> <p> @@ -261,21 +256,24 @@ </div> </div> </div> - <div id="terms" class="page"> + + <div id="terms" role="region" aria-label="Terms and Conditions" class="page"> <div class="scroll"> - <h1>TERMS AND CONDITIONS</h1> + <h1 aria-label="Current section: Terms and conditions">TERMS AND CONDITIONS</h1> <div class="content"></div> </div> </div> - <div id="returns" class="page"> + + <div id="returns" role="region" aria-label="Return Policy" class="page"> <div class="scroll"> - <h1>RETURN POLICY</h1> + <h1 aria-label="Current section: Return policy">RETURN POLICY</h1> <div class="content"></div> </div> </div> - <div id="care" class="page"> + + <div id="care" role="region" aria-label="Customer Care" class="page"> <div class="scroll"> - <h1>CUSTOMER CARE</h1> + <h1 aria-label="Current section: Customer care">CUSTOMER CARE</h1> <div class="content"></div> </div> </div> @@ -283,42 +281,42 @@ <!-- STORE ================================================ --> - <div id="collection"> + <div id="collection" role="region" aria-label="Store"> <div class="scroll"> - <h1>LOADING...</h1> + <h1 aria-label="Current section: Store">LOADING...</h1> <div class="loader"></div> <div class="content"> <script type="text/html" class="template"> - <div class="item" data-code="{{code8}}"> - <img src="{{image}}"> + <div role="link" class="item" data-code="{{code8}}"> + <img src="{{image}}" alt="{{title}}"> </div> </script> </div> </div> </div> - <div id="search"> + <div id="search" role="search" aria-label="Search"> <div class="scroll"> - <h1>SEARCH</h1> + <h1 aria-label="Current section: Search">SEARCH</h1> <div class="form"> <input type="text" class="q" placeholder="ENTER YOUR SEARCH"> </div> </div> </div> - <div id="product"> + <div id="product" role="region" aria-label="Product view"> <div class="scroll"> <div class="loader"></div> - <div id="gallery" class="gallery"> + <div id="gallery" class="gallery" role="carousel"> <script type="text/html" class="template"> - <div class="item" style="background-image:url({{image}})"></div> + <div role="link" class="item" aria-label="{{alt}}" style="background-image:url({{image}})"></div> </script> </div> - <div class="gallery-left"></div> - <div class="gallery-right"></div> + <div role="button" class="gallery-left" aria-label="Scroll gallery left"></div> + <div role="button" class="gallery-right" aria-label="Scroll gallery right"></div> <div class="content"> <div class="product-header"> - <span class="title"></span> + <span role="heading" class="title"></span> </div> <div class="type-price"> <span class="type"></span> @@ -327,11 +325,11 @@ <div class="style-share"> <span class="style"> <div class="size-color"> - <span class="size"></span> - <span class="color"></span> + <span role="button" class="size" aria-label="Tap to select size. Current size"></span> + <span role="button" class="color" aria-label="Tap to select color. Current color"></span> </div> </span> - <span class="share">SHARE +</span> + <span role="button" class="share">SHARE +</span> </div> <div class="fit">Fits Large</div> <div class='fitHeader'></div> @@ -347,14 +345,14 @@ </div> </div> - <div id="closed"> + <div id="closed" role="region" aria-label="The store is closed"> <div class="closed_store_msg"> <h3> LOADING THE STORE, PLEASE WAIT </h3> <h4> </h4> - <div class="website_link"> + <div role="link" class="website_link"> visit<br> <b>www.stoneisland.com</b> </div> @@ -364,33 +362,38 @@ <!-- ACCOUNT ================================================ --> - <div id="login"> + <div id="login" role="region" aria-label="Log In"> <div class="scroll"> - <h1>LOGIN</h1> + <h1 aria-label="Current section: Log In">LOGIN</h1> <div class="form"> <div class="container"> <div class="container-row"> - <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="1"> - <form><input type="password" name="Password" placeholder="PASSWORD" required tabindex="2"></form> + <label for="login_email_address">Email Address</label> + <input type="email" id="login_email_address" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="1"> + <span class='err'></span> + + <label for="login_password">Password</label> + <form><input type="password" id="login_password" name="Password" aria-placeholder="PASSWORD" required tabindex="2"></form> + <span class='err'></span> </div> <div class="container-fill"> <div class="container-message premessage"> - <div class="newuser">New User?</div> - <div class="forgotpassword">Forgot Password?</div> + <div rel="link" class="newuser">New User?</div> + <div rel="link" class="forgotpassword">Forgot Password?</div> </div> <div class="container-message submessage"> <span class="msg"></span> </div> </div> </div> - <input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;"> + <input type="submit" aria-label="Submit form" style="position: absolute; left: -9999px; width: 1px; height: 1px;"> </div> </div> </div> - <div id="logout"> + <div id="logout" role="region" aria-label="You are now logged out"> <div class="scroll"> - <h1>LOGOUT</h1> + <h1 aria-label="Current section: You are now Logged Out">LOGOUT</h1> <div class="container"> <div class="container-fill"> <span class="container-message msg"> @@ -401,52 +404,71 @@ </div> </div> - <div id="signup"> + <div id="signup" role="region" aria-label="New User. Create an account"> <div class="scroll"> - <h1>NEW USER</h1> + <h1 aria-label="Current section: New User. Create an account">NEW USER</h1> <div class="form"> <div class="container"> <div class="container-row"> - <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1"> - <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2"> - <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3"> - <input type="email" name="ConfirmEmail" placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4"> + <label for="signup_name">First Name</label> + <input type="text" id="signup_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> + <span class='err'></span> + + <label for="signup_surname">Last Name</label> + <input type="text" id="signup_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> + <span class='err'></span> + + <label for="signup_email">Email Address</label> + <input type="email" id="signup_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> + <span class='err'></span> + + <label for="signup_confirmemail">Confirm Email Address</label> + <input type="email" id="signup_confirmemail" name="ConfirmEmail" aria-placeholder="CONFIRM EMAIL ADDRESS" required tabindex="4"> + <span class='err'></span> + + <label for="signup_birthday">Birthday (MM/DD/YYYY)</label> <div class="select-wrapper date-wrapper"> - <span>BIRTHDAY (MM/DD/YYYY)</span> - <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> + <span></span> + <input type="date" id="signup_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> </div> + <span class='err'></span> <h2>PASSWORD</h2> - <input type="password" name="Password" placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6"> - <input type="password" name="Password2" placeholder="CONFIRM PASSWORD" required tabindex="7"> + <label for="signup_password">Password (7 Characters or more)</label> + <input type="password" id="signup_password" name="Password" aria-placeholder="PASSWORD (7 CHARACTERS OR MORE)" required tabindex="6"> + <span class='err'></span> + + <label for="signup_confirm_password">Confirm Password</label> + <input type="password" id="signup_confirm_password" name="Password2" aria-placeholder="CONFIRM PASSWORD" required tabindex="7"> + <span class='err'></span> </div> <div class="container-row"> - <div class="checkbox-container "> + <div class="checkbox-container"> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-data-profiling" name="YooxLetter" value="true" required tabindex="8"> + <input type="checkbox" id="checkbox-data-profiling" aria-labelledby="checkbox-data-profiling-label" name="YooxLetter" value="true" required tabindex="8"> <label for="checkbox-data-profiling"></label> </div> - <label class="checkbox-caption" for="checkbox-data-profiling"> + <label class="checkbox-caption" for="checkbox-data-profiling" id="checkbox-data-profiling-label"> I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES. </label> </div> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-shopping-data-profiling" name="DataProfiling" value="true" required tabindex="9"> + <input type="checkbox" id="checkbox-shopping-data-profiling" aria-labelledby="checkbox-shopping-data-profiling-label" name="DataProfiling" value="true" required tabindex="9"> <label for="checkbox-shopping-data-profiling"></label> </div> - <label class="checkbox-caption" for="checkbox-shopping-data-profiling"> + <label class="checkbox-caption" for="checkbox-shopping-data-profiling" id="checkbox-shopping-data-profiling-label"> I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS. </label> </div> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-shopping-account-terms" name="GdprTerms" value="true" required tabindex="10"> + <input type="checkbox" id="checkbox-shopping-account-terms" aria-labelledby="checkbox-gdpr-terms-label" name="GdprTerms" value="true" required tabindex="10"> <label for="checkbox-shopping-data-profiling"></label> </div> - <label class="checkbox-caption" for="checkbox-shopping-account-terms"> + <label class="checkbox-caption" for="checkbox-shopping-account-terms" id="checkbox-gdpr-terms-label"> I ACCEPT MY ACCOUNT TERMS AND CONDITIONS OF USE * </label> </div> @@ -465,54 +487,71 @@ </div> </div> - <div id="profile"> + <div id="profile" role="region" aria-label="My Profile"> <div class="scroll"> - <h1>MY PROFILE</h1> + <h1 aria-label="Current section: My Profile">MY PROFILE</h1> <div class="form"> <div class="container"> <div class="container-row"> - <input type="text" name="Name" placeholder="FIRST NAME" required tabindex="1"> - <input type="text" name="Surname" placeholder="LAST NAME" required tabindex="2"> - <input type="email" name="Email" placeholder="EMAIL ADDRESS" required tabindex="3"> + <label for="profile_name">First Name</label> + <input type="text" id="profile_name" name="Name" aria-placeholder="FIRST NAME" required tabindex="1"> + <span class='err'></span> + + <label for="profile_surname">Last Name</label> + <input type="text" id="profile_surname" name="Surname" aria-placeholder="LAST NAME" required tabindex="2"> + <span class='err'></span> + + <label for="profile_email">Email Address</label> + <input type="email" id="profile_email" name="Email" aria-placeholder="EMAIL ADDRESS" required tabindex="3"> + <span class='err'></span> + + <label for="profile_birthday">Birthday (MM/DD/YYYY)</label> <div class="select-wrapper date-wrapper"> - <span>BIRTHDAY (MM/DD/YYYY)</span> - <input type="date" name="BirthDay" min="1900-01-01" placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="4"> + <span></span> + <input type="date" id="profile_birthday" name="BirthDay" aria-label="Birthday" min="1900-01-01" aria-placeholder="BIRTHDAY (MM/DD/YYYY)" required tabindex="5"> </div> + <span class='err'></span> <h2>CHANGE PASSWORD</h2> - <input type="password" name="CurrentPassword" placeholder="CURRENT PASSWORD" required> - <input type="password" name="NewPassword" placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="5"> - <div class="container-fill container-fill-condensed"> - <div class="container-message container-message-condensed"> - <span class="msg msg-condensed"> - </span> - </div> + <label for="profile_password">Current Password</label> + <input type="password" id="profile_password" name="CurrentPassword" aria-placeholder="CURRENT PASSWORD" required tabindex="6"> + <span class='err'></span> + + <label for="profile_confirm_password">New Password (7 characters or more)</label> + <input type="password" id="profile_confirm_password" name="NewPassword" aria-placeholder="NEW PASSWORD (7 CHARACTERS OR MORE)" required tabindex="7"> + <span class='err'></span> + </div> + + <div class="container-fill container-fill-condensed"> + <div class="container-message container-message-condensed"> + <span class="msg msg-condensed"> + </span> </div> - <div class="container-row"> - <div class="checkbox-container"> - <div class="checkbox-row"> - <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-data-profiling-profile" name="YooxLetter" value="true" required tabindex="7"> - <label for="checkbox-data-profiling-profile"></label> - </div> - <label class="checkbox-caption" for="checkbox-data-profiling-profile"> - I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES. - </label> - </div> - <div class="checkbox-row"> - <div class="checkbox-toggle"> - <input type="checkbox" id="checkbox-shopping-data-profiling-profile" name="DataProfiling" value="true" required tabindex="8"> - <label for="checkbox-shopping-data-profiling-profile"></label> - </div> - <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile"> - I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS. - </label> + </div> + <div class="container-row"> + <div class="checkbox-container"> + <div class="checkbox-row"> + <div class="checkbox-toggle"> + <input type="checkbox" id="checkbox-data-profiling-profile" aria-labelledby="yoox-letter-checkbox" name="YooxLetter" value="true" required tabindex="7"> + <label for="checkbox-data-profiling-profile"></label> </div> - <div class="privacy-msg"> - Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP. - <br> - Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information. + <label class="checkbox-caption" for="checkbox-data-profiling-profile" id="yoox-letter-checkbox"> + I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION FOR MARKETING PURPOSES. + </label> + </div> + <div class="checkbox-row"> + <div class="checkbox-toggle"> + <input type="checkbox" id="checkbox-shopping-data-profiling-profile" aria-labelledby="yoox-data-profiling-checkbox" name="DataProfiling" value="true" required tabindex="8"> + <label for="checkbox-shopping-data-profiling-profile"></label> </div> + <label class="checkbox-caption" for="checkbox-shopping-data-profiling-profile" id="yoox-data-profiling-checkbox"> + I AGREE TO STONE ISLAND - SPORTSWEAR COMPANY COLLECTING AND PROCESSING MY PERSONAL INFORMATION TO CUSTOMIZE MY SHOPPING EXPERIENCE BASED ON MY INTERESTS AND HABITS. + </label> + </div> + <div class="privacy-msg"> + Personal data will be electronically processed by SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP in order to complete your request. Please note that you are responsible for third party data that you disclose to SPORTSWEAR COMPANY and YOOX NET-A-PORTER GROUP. + <br> + Consult our <a href="#/page/privacy">PRIVACY POLICY</a> for further information. </div> </div> </div> @@ -520,11 +559,10 @@ </div> </div> </div> - - <div id="shipping"> + <div id="shipping" role="region" aria-label="Address Book"> <div class="scroll"> - <h1>ADDRESS BOOK</h1> + <h1 aria-label="Current section: Your address book">ADDRESS BOOK</h1> <div class="form"> <div class="container"> <div class="container-row"> @@ -537,7 +575,7 @@ information will always remain private </span> </div> - <div class="privacy-msg"> + <div rel="link" class="privacy-msg"> Consult our <u>PRIVACY POLICY</u> for further information. </div> </div> @@ -546,9 +584,9 @@ </div> </div> - <div id="payment"> + <div id="payment" role="region" aria-label="My Card"> <div class="scroll"> - <h1>MY CARD</h1> + <h1 aria-label="Current section: My Card">MY CARD</h1> <div class="form"> <div class="container"> <div class="container-row"> @@ -562,7 +600,7 @@ information will always remain private </span> </div> - <div class="privacy-msg"> + <div rel="link" class="privacy-msg"> Consult our <u>PRIVACY POLICY</u> for further information. </div> </div> @@ -571,9 +609,9 @@ </div> </div> - <div id="settings"> + <div id="settings" role="region" aria-label="Notifications"> <div class="scroll"> - <h1>NOTIFICATIONS</h1> + <h1 aria-label="Current section: Notifications">NOTIFICATIONS</h1> <div class="form"> <div class="toggle-container"> <div class="toggle-row"> @@ -582,7 +620,7 @@ Receive notifications for Store </div> <div class="toggle"> - <input type="checkbox" id="store-notifications" name="store" class="switch"> + <input type="checkbox" aria-label="Receive notifications for Store" id="store-notifications" name="store" class="switch"> <label for="store-notifications"></label> </div> </div> @@ -592,7 +630,7 @@ Receive notifications for Hub </div> <div class="toggle"> - <input type="checkbox" id="hub-notifications" name="hub" class="switch"> + <input type="checkbox" aria-label="Receive notifications for Hub" id="hub-notifications" name="hub" class="switch"> <label for="hub-notifications"></label> </div> </div> @@ -601,9 +639,9 @@ </div> </div> - <div id="orders"> + <div id="orders" role="region" aria-label="My Orders"> <div class="scroll"> - <h1>MY ORDERS</h1> + <h1 aria-label="Current section: My orders">MY ORDERS</h1> <div id="order_list"> <div class="list"></div> <div class="empty">You have no orders.</div> @@ -681,12 +719,12 @@ <!-- CART ================================================ --> - <div id="cart"> - <h1> - <span class="full_msg"> + <div id="cart" role="region" aria-label="Your Cart"> + <h1 role="presentation"> + <span class="full_msg" role="heading" aria-label="Current section: Your cart"> YOUR CART / <span class="itemcount"></span> </span> - <span class="empty_msg"> + <span class="empty_msg" role="heading" aria-label="Current section: Your cart is empty"> YOUR CART IS EMPTY </span> </h1> @@ -694,10 +732,10 @@ <div class="steps"> <span class="summary_step">SUMMARY</span> <span class="shipping_step">SHIPPING</span> - <span class="payment_step">BILLING</span> + <span class="payment_step">PAYMENT</span> </div> - <div id="cart_summary"> + <div id="cart_summary" role="region" aria-label="Cart Summary"> <div class="scroll"> <div class="summary-container container"> <div class="container-row"> @@ -705,20 +743,20 @@ <div class="rows"> <script type="text/html" class="template"> <div class="cart_item_image"> - <img src="{{image}}"> + <a href="#/store/{{code8}}" aria-label="{{cleantitle}}"><img src="{{image}}"></a> </div> <div class="cart_item_info"> - <span class="sku">{{sku}}</span> - <span class="title">{{title}}</span> - <span class="type">{{type}}</span> + <span class="sku" aria-label="SKU">{{sku}}</span> + <span class="title" aria-label="Product name: {{cleantitle}}">{{title}}</span> + <span class="type" aria-label="Product type">{{type}}</span> <div class="meta"> - <div class="meta-size"><b>SIZE:</b> {{size}}</div> - <div class="meta-color"><b>COLOR:</b> {{color}}</div> - <div class="meta-quantity"><b>QUANTITY:</b> {{quantity}}</div> + <div class="meta-size" aria-label="Size"><b>SIZE:</b> {{size}}</div> + <div class="meta-color" aria-label="Color"><b>COLOR:</b> {{color}}</div> + <div class="meta-quantity" aria-label="Quantity"><b>QUANTITY:</b> {{quantity}}</div> </div> </div> <div class="cart_item_price"> - <span class="remove"></span> + <span class="remove" aria-label="Remove item from your cart. Item to be removed: {{cleantitle}}"></span> <span class="price">{{price}}</span> </div> </script> @@ -752,7 +790,7 @@ </div> </div> - <div id="cart_shipping"> + <div id="cart_shipping" role="region" aria-label="Cart Shipping"> <div class="scroll"> <div class="form"> <div class="dropdown-wrapper"> @@ -810,9 +848,11 @@ information will always remain private </span> </div> - <div class="privacy-msg"> - Consult our <u>PRIVACY POLICY</u> for further information. - </div> + <a href="#/page/privacy"> + <div class="privacy-msg"> + Consult our <u>PRIVACY POLICY</u> for further information. + </div> + </a> </div> </div> @@ -820,7 +860,7 @@ </div> </div> - <div id="cart_payment"> + <div id="cart_payment" role="region" aria-label="Cart Payment"> <div class="scroll"> <div class="form"> @@ -877,7 +917,7 @@ <script type="text/html" class="cc_template"> <div class="checkbox-row"> <div class="checkbox-toggle"> - <input id="cc-checkbox-{{id}}" type="radio" name="CCId" value="{{id}}" {{checked}}> + <input id="cc-checkbox-{{id}}" aria-label="Select this credit card" type="radio" name="CCId" value="{{id}}" {{checked}}> <label for="cc-checkbox-{{id}}"></label> </div> <label class="checkbox-caption" for="cc-checkbox-{{id}}"> @@ -903,20 +943,20 @@ information will always remain private </span> </div> - <div class="privacy-msg"> - Consult our <u>PRIVACY POLICY</u> for further information. - </div> + <a class='privacy-link'> href="#/page/privacy"> + <div class="privacy-msg"> + Consult our <u>PRIVACY POLICY</u> for further information. + </div> + </a> </div> </div> - <br><br><br><br> - </div> </div> </div> - <div id="cart_confirm"> + <div id="cart_confirm" role="region" aria-label="Confirm your order"> <div class="scroll"> - <h1>CONFIRM</h1> + <h1 aria-label="Current section: Confirm your cart">CONFIRM</h1> <div class="order_section"> <h2>ORDER SUMMARY</h2> @@ -997,11 +1037,17 @@ </div> + <div id="footer" role="menubar" aria-label="Footer"> + <!-- 'Cancel' i think needs to go BACK in the navigation.. rather than jumping to the home screen --> + <div role="button" class="cancel">CANCEL</div> + <div role="button" class="ok">OK</div> + </div> + <div id="curtain"> <div class="loader"></div> </div> - <div class="modal" id="consent_modal"> + <div class="modal" id="consent_modal" role="modal" aria-label="Please accept the new terms"> YOUR MY ACCOUNT <br><br> We have improved the My Account Terms and Conditions of Use. @@ -1017,6 +1063,7 @@ </label> </div> </div> + <br><br> For more information, please consult our <a href="#/page/privacy">Privacy Policy</a> or visit <a href="#" id="care-link">Customer Care</a>. @@ -1030,22 +1077,31 @@ </div> <div id="selector"> - <div class="options"> + <div class="options" role="select"> <script type="text/html" class="template"> - <div data-id="{{id}}">{{label}}</div> + <div aria-label="Pick {{label}}" data-id="{{id}}">{{label}}</div> </script> </div> </div> </div> +<!-- Forms --> + <script type="text/html" id="creditcard_template"> - <input type="number" name="Number" placeholder="CREDIT CARD NUMBER" required> + <label for="creditcard_id_{{_id}}">Credit Card Number</label> + <input type="number" id="creditcard_id_{{_id}}" name="Number" aria-placeholder="CREDIT CARD NUMBER" required> + <span class='err'></span> + <div class="half-input"> + <label for="cc_expiration_month_{{_id}}">EXPIRATION MONTH</label> + <label for="cc_expiration_year_{{_id}}">EXPIRATION YEAR</label> + </div> + <div class="half-input"> <div class="select-wrapper"> - <span>EXPIRATION MONTH</span> - <select name="ExpirationMonth"> + <span></span> + <select name="ExpirationMonth" id="cc_expiration_month_{{_id}}"> <option value="NONE">EXPIRATION MONTH</option> <option value="01">01</option> <option value="02">02</option> @@ -1062,10 +1118,9 @@ </select> </div> <div class="select-wrapper"> - <span>EXPIRATION YEAR</span> - <select name="ExpirationYear"> + <span></span> + <select name="ExpirationYear" id="cc_expiration_year_{{_id}}"> <option value="NONE">EXPIRATION YEAR</option> - <option value="2018">2018</option> <option value="2019">2019</option> <option value="2020">2020</option> <option value="2021">2021</option> @@ -1081,25 +1136,50 @@ </select> </div> </div> - <input type="number" name="Cvv" placeholder="SECURITY CODE" required> + <label for="cc_cvv_{{_id}}">Security Code</label> + <input type="number" id="cc_cvv_{{_id}}" name="Cvv" aria-placeholder="SECURITY CODE" required> + <span class='err'></span> </script> <script type="text/html" id="address_template"> - <input type="text" name="Name" placeholder="First Name"> - <input type="text" name="Surname" placeholder="Last Name"> - <input type="text" name="Address1" placeholder="Address Line 1"> - <input type="text" name="Address2" placeholder="Address Line 2"> + <label for="address_name_{{_id}}">First Name</label> + <input type="text" id="address_name_{{_id}}" name="Name" aria-placeholder="First Name"> + <span class="err"></span> + + <label for="address_surname_{{_id}}">Last Name</label> + <input type="text" id="address_surname_{{_id}}" name="Surname" aria-placeholder="Last Name"> + <span class="err"></span> + + <label for="address_address1_{{_id}}">Address line 1</label> + <input type="text" id="address_address1_{{_id}}" name="Address1" aria-placeholder="Address Line 1"> + <span class="err"></span> + + <label for="address_address2_{{_id}}">Address line 2</label> + <input type="text" id="address_address2_{{_id}}" name="Address2" aria-placeholder="Address Line 2"> + <span class="err"></span> + + <div class="half-input"> + <label for="address_city_{{_id}}">City</label> + <label for="address_state_{{_id}}">State</label> + </div> + <div class="half-input"> - <input type="text" name="City" placeholder="City"> + <input type="text" id="address_city_{{_id}}" name="City" aria-placeholder="City"> <div class="select-wrapper"> - <span>STATE</span> - <select name="Province"> + <span></span> + <select id="address_state_{{_id}}" name="Province"> {{PROVINCES}} </select> </div> </div> + <div class="half-input"> - <input type="text" name="ZipCode" placeholder="ZIP" required> + <label for="address_zip_{{_id}}">Zip</label> + <label>Country</label> + </div> + + <div class="half-input"> + <input type="text" id="address_zip_{{_id}}" name="ZipCode" aria-placeholder="ZIP" required> <div class="country-wrapper-static"> <span class="country-label">UNITED STATES</span> <!-- @@ -1109,7 +1189,10 @@ --> </div> </div> - <input type="number" name="Phone" placeholder="PHONE NUMBER"> + + <label for="address_phone_{{_id}}">Phone Number</label> + <input type="number" id="address_phone_{{_id}}" name="Phone" aria-placeholder="PHONE NUMBER"> + <span class="err"></span> <!-- <div class="checkbox-container save_as_default"> <div class="checkbox-row"> @@ -1227,6 +1310,7 @@ <script src="js/lib/etc/geo.js"></script> <script src="js/lib/etc/sim.js"></script> <script src="js/lib/etc/backup_db.js"></script> +<script src="js/lib/etc/accessibility.js"></script> <script src="js/lib/view/View.js"></script> <script src="js/lib/view/Router.js"></script> diff --git a/StoneIsland/platforms/ios/www/js/index.js b/StoneIsland/platforms/ios/www/js/index.js index a8caa2e5..69a0a3e0 100755 --- a/StoneIsland/platforms/ios/www/js/index.js +++ b/StoneIsland/platforms/ios/www/js/index.js @@ -18,6 +18,9 @@ var app = (function(){ app.iscroll_options = { mouseWheel: true, scrollbars: true, + disablePointer: is_android ? true : false, // important to disable the pointer events that causes the issues + disableTouch: false, // false if you want the slider to be usable with touch devices + disableMouse: false // false if you want the slider to be usable with a mouse (desktop) } if (window.cordova) { @@ -83,6 +86,15 @@ var app = (function(){ sim.fetch(app.api_ready) var image = new Image image.src = "./img/compass-logo.png" + + MobileAccessibility.usePreferredTextZoom(true); + MobileAccessibility.getTextZoom(function getTextZoomCallback(textZoom) { + console.log('WebView text should be scaled to the preferred value ' + textZoom + '%') + if (textZoom > 100) { + app.accessible = true + $("html").addClass('accessible') + } + }); } else { app.api_ready() @@ -90,8 +102,8 @@ var app = (function(){ } app.api_ready = function(){ - if (is_iphone_x) { - StatusBar.hide() + if (is_iphone_x && 'StatusBar' in window) { + window.StatusBar.hide() } app.view = null diff --git a/StoneIsland/platforms/ios/www/js/lib/account/AccountView.js b/StoneIsland/platforms/ios/www/js/lib/account/AccountView.js index 8ac7c193..af035f6a 100755 --- a/StoneIsland/platforms/ios/www/js/lib/account/AccountView.js +++ b/StoneIsland/platforms/ios/www/js/lib/account/AccountView.js @@ -74,7 +74,7 @@ var AccountView = View.extend({ }, populateCreditCards: function(data, cb){ - console.log("populate ccs:", data.CreditCards) + // console.log("populate ccs:", data.CreditCards) this.ccs = data.CreditCards this.ccLookup = {} if (! data.CreditCards || ! data.CreditCards.length) { diff --git a/StoneIsland/platforms/ios/www/js/lib/blogs/ArchiveView.js b/StoneIsland/platforms/ios/www/js/lib/blogs/ArchiveView.js index 12aaf7de..0d769e95 100755 --- a/StoneIsland/platforms/ios/www/js/lib/blogs/ArchiveView.js +++ b/StoneIsland/platforms/ios/www/js/lib/blogs/ArchiveView.js @@ -21,7 +21,6 @@ var ArchiveView = ScrollableView.extend({ this.scroller = new IScroll('#archive .scroll', app.iscroll_options) this.$subtitle = this.$('.subtitle') this.subtitle_html = this.$subtitle.html() - }, back: function(){ diff --git a/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js b/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js index b072a887..c4ebd716 100755 --- a/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js +++ b/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js @@ -57,6 +57,8 @@ var HubView = ScrollableView.extend({ .replace(/{{date}}/, moment(row.date).format("MM.DD.YYYY")) .replace(/{{title}}/, row.title) .replace(/{{subtitle}}/, row.subtitle) + .replace(/{{cleantitle}}/, stonewash(row.title)) + .replace(/{{cleansubtitle}}/, stonewash(row.subtitle)) .replace(/{{link}}/, row.link) .replace(/{{body}}/, row.body.replace(/\n/g, "<br>")) var $t = $(t) @@ -71,6 +73,7 @@ var HubView = ScrollableView.extend({ row.image.forEach(function(img){ var el = document.createElement("div") el.style.backgroundImage = "url(" + img.uri + ")" + el.setAttribute('aria-label', img.caption) el.className = "item" $gallery.append(el) }) @@ -107,6 +110,8 @@ var HubView = ScrollableView.extend({ play.className = "play" $(".gallery-" + row.id).append(play) $(".gallery-" + row.id).addClass("gallery-video-post") + $(".gallery-" + row.id).attr('role', 'link') + $(".gallery-" + row.id).attr('aria-label', stonewash(row.title) + ". Watch the video on Youtube") if (! row.image) { var url = row.link var ytid = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0]; @@ -125,6 +130,7 @@ var HubView = ScrollableView.extend({ store_link: function(){ app.router.go("store") }, + play_video: function(e){ var row = $(e.currentTarget).closest('.gallery-video-post').data("row") window.open(row.link, '_system') @@ -142,7 +148,9 @@ var HubView = ScrollableView.extend({ share: function(e){ var title = $(e.currentTarget).parent().find(".title").text() console.log("share", title) - window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" ) + if (window.plugins && window.plugins.socialsharing) { + window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" ) + } }, }) @@ -169,7 +177,7 @@ var HubLoader = (function(){ if (item.image && item.image.length) { loader = new Loader (HubLoader.build) images = item.image.map(function(img){ - return img.uri.replace("http:","https:") + return img.uri.replace("http:", "https:") }).filter(function(img){ return img.uri }) diff --git a/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js b/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js index 5a7a56d1..924a7355 100755 --- a/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js +++ b/StoneIsland/platforms/ios/www/js/lib/blogs/StoryView.js @@ -41,6 +41,7 @@ var StoryView = ScrollableView.extend({ var li = document.createElement("li") li.dataset.id = row.id li.innerHTML = row.title + li.role = "button" this.sections[row.id] = row this.$links.append(li) this.$content.append(t) @@ -67,6 +68,7 @@ var StoryView = ScrollableView.extend({ this.$img.stop().fadeTo(110,0.65, function() { $replace.attr("src", section.image.uri) + $replace.attr("alt", section.image.caption) }).fadeTo(130,1) } diff --git a/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js b/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js index 9b5da7b7..bf150791 100755 --- a/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js +++ b/StoneIsland/platforms/ios/www/js/lib/cart/CartSummary.js @@ -75,7 +75,6 @@ var CartSummary = ScrollableView.extend({ this.$rows.append($el) app.product.find(code, function(data, details){ // console.log(data, details) - var descriptions = app.product.get_descriptions( details ) // console.log(descriptions) @@ -110,8 +109,10 @@ var CartSummary = ScrollableView.extend({ var t = this.template .replace(/{{image}}/, sdk.image(item['Code10'], '11_f')) - .replace(/{{sku}}/, num) - .replace(/{{title}}/, title) + .replace(/{{sku}}/g, num) + .replace(/{{code8}}/g, data['Code8']) + .replace(/{{title}}/g, title) + .replace(/{{cleantitle}}/g, stonewash(title)) .replace(/{{type}}/, type) .replace(/{{size}}/, size_name) .replace(/{{color}}/, color_name) diff --git a/StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js b/StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js new file mode 100644 index 00000000..614c3796 --- /dev/null +++ b/StoneIsland/platforms/ios/www/js/lib/etc/accessibility.js @@ -0,0 +1,9 @@ +$(function(){ + $("h1").each(function(){ + this['aria-label'] = 'Section title is ' + this.innerText + }) +}) + +function stonewash (s) { + return s.replace(/'0/g, '20').replace(/_/g, ' ') +}
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/js/lib/nav/AddressView.js b/StoneIsland/platforms/ios/www/js/lib/nav/AddressView.js index 9e0c49b6..fd0fa59d 100755 --- a/StoneIsland/platforms/ios/www/js/lib/nav/AddressView.js +++ b/StoneIsland/platforms/ios/www/js/lib/nav/AddressView.js @@ -1,4 +1,6 @@ +var AddressViewID = Math.round(Date.now() % 1000) + var AddressView = SerializableView.extend({ template: $("#address_template").html(), @@ -14,7 +16,7 @@ var AddressView = SerializableView.extend({ this.parent = opt.parent this.checkPhone = 'checkPhone' in opt ? opt.checkPhone : true this.setElement( this.parent.$(".address") ) - this.$el.html(this.template) + this.$el.html(this.template.replace(/{{_id}}/g, AddressViewID++)) }, populate: function(data){ @@ -34,12 +36,15 @@ var AddressView = SerializableView.extend({ "Address1": "Please enter your street address.", "City": "Please enter your city.", "ZipCode": "Please enter your zip code.", + "Phone": "Please enter your phone number.", }, validate_fields: function(data, errors){ if (this.disabled) { return } if (this.checkPhone) { - var phone_number = data.Phone ? data.Phone.replace(/[^0-9]/g, "") : "" + var phone_number = data.Phone ? String(data.Phone).replace(/[^0-9]/g, "").replace(/^[01]+/, '') : "" + data.Phone = phone_number + this.$('[name=Phone]').val(phone_number) var phone_length = phone_number.length if (phone_length === 0 || ! data.Phone) { errors.push([ "Phone", "Please enter your phone number." ]) @@ -50,10 +55,10 @@ var AddressView = SerializableView.extend({ else if (phone_length > 10) { errors.push([ "Phone", "International phone numbers are not accepted." ]) } - else if (data.Phone[0] === '+') { + else if (phone_number.charAt(0) === '+') { errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ]) } - else if (phone_number[0] === '1') { + else if (phone_number.charAt(0) === '1') { errors.push([ "Phone", "Please enter a valid 10 digit US/Canada phone number. International phone numbers are not accepted." ]) } } @@ -81,7 +86,10 @@ var AddressView = SerializableView.extend({ }, scroll_up_to_phone: function(e){ - app.view.scroller && app.view.scroller.scrollTo(0, -$(e.currentTarget).position().top) + var position = $(e.currentTarget).prev('label').position() + if (app.view.scroller && position) { + app.view.scroller.scrollTo(0, -position.top) + } }, }) diff --git a/StoneIsland/platforms/ios/www/js/lib/nav/CreditCardView.js b/StoneIsland/platforms/ios/www/js/lib/nav/CreditCardView.js index 63784618..af53d964 100755 --- a/StoneIsland/platforms/ios/www/js/lib/nav/CreditCardView.js +++ b/StoneIsland/platforms/ios/www/js/lib/nav/CreditCardView.js @@ -1,4 +1,6 @@ +var CreditCardViewID = Math.round(Date.now() % 1000) + var CreditCardView = SerializableView.extend({ template: $("#creditcard_template").html(), @@ -13,7 +15,7 @@ var CreditCardView = SerializableView.extend({ initialize: function(opt){ this.parent = opt.parent this.setElement( this.parent.$(".cc") ) - this.$el.html(this.template) + this.$el.html(this.template.replace(/{{_id}}/g, CreditCardViewID++)) this.$number = this.$("[name=Number]") this.$number.validateCreditCard(this.updateCard.bind(this), this.cardOptions) diff --git a/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js b/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js index 86c8ecaf..958bc8ad 100755 --- a/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js +++ b/StoneIsland/platforms/ios/www/js/lib/nav/NavView.js @@ -23,7 +23,8 @@ var NavView = View.extend({ "click .shipping": "shipping", "click .settings": "settings", "click .orders": "orders", - "click .return_link": "return_link", + "click .return_link_us": "return_link_us", + "click .return_link_ca": "return_link_ca", "click .faq_back": "back", "click .privacy": "privacy", @@ -115,8 +116,11 @@ var NavView = View.extend({ this.hide() app.router.go("account/settings") }, - return_link: function(){ - window.open("http://www.stoneisland.com/yTos/Plugins/AreaLocalizer/Redirectarea?area=ProductExchange&controllerName=SearchOrder&actionName=Index", '_system') + return_link_us: function(){ + window.open("https://www.stoneisland.com/us/ProductExchange/SearchOrder/Index?utm_source=AppMobile&utm_medium=referral&utm_campaign=ReturnForm", '_system') + }, + return_link_ca: function(){ + window.open("https://www.stoneisland.com/ca/ProductExchange/SearchOrder/Index?utm_source=AppMobile&utm_medium=referral&utm_campaign=ReturnForm", '_system') }, @@ -141,7 +145,7 @@ var NavView = View.extend({ }, care: function(e){ e.preventDefault() - window.open("http://www.stoneisland.com/system/web/custom/hp/email.jsp", '_system') + window.open("https://www.stoneisland.com/customercare?utm_source=AppMobile&utm_medium=referral&utm_campaign=CustomerCare", '_system') }, diff --git a/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js b/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js index 4674fc18..b7af235a 100755 --- a/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js +++ b/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js @@ -196,6 +196,7 @@ var CollectionView = ScrollableView.extend({ this.items[ item['Code8'] ] = item var t = this.template.replace(/{{image}}/, sdk.image(item['DefaultCode10'], is_single_product ? '13_f' : '11_f')) .replace(/{{code8}}/, item['Code8']) + .replace(/{{title}}/, stonewash(item['ModelNames'])) var $t = $(t) if (app.store.ShowProductNameOnCollectionPage) { var $title = $("<span>") @@ -217,6 +218,7 @@ var CollectionView = ScrollableView.extend({ setCollectionName: function(name){ this.collectionName = name this.$title.html(this.collectionName) + this.$title.attr('aria-label', stonewash(this.collectionName)) }, // filter by department diff --git a/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js b/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js index 0acd48c5..d6f5723c 100755 --- a/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js +++ b/StoneIsland/platforms/ios/www/js/lib/products/GalleryView.js @@ -39,7 +39,9 @@ var GalleryView = View.extend({ Object.keys(valid_styles).sort(sort_image_styles).forEach(function(style){ var id = valid_styles[style] + "_" + style - var t = this.template.replace(/{{image}}/, sdk.image(code, id)) + var t = this.template + .replace(/{{image}}/, sdk.image(code, id)) + .replace(/{{alt}}/, YOOX_IMAGE_STYLE_LABELS[style] || "Alternate view") this.$el.append(t) }.bind(this)) @@ -79,5 +81,8 @@ var GalleryView = View.extend({ }) var YOOX_IMAGE_STYLE_ORDER = "ZZZ f r d e a b c g l".split(" ") - +var YOOX_IMAGE_STYLE_LABELS = { + f: 'Front view', + r: 'Rear view', +} function sort_image_styles (b,a){ return (YOOX_IMAGE_STYLE_ORDER.indexOf(b)) - (YOOX_IMAGE_STYLE_ORDER.indexOf(a)) }
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js b/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js index 3bcf5ee4..c47dfddd 100755 --- a/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js +++ b/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js @@ -434,7 +434,9 @@ var ProductView = ScrollableView.extend({ }, share: function(){ - window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code) + if (window.plugins && 'socialsharing' in window.plugins) { + window.plugins.socialsharing.share( this.item['ModelNames'], null, null, "http://deeplink.me/www.stoneisland.com/store/" + this.code) + } }, }) diff --git a/StoneIsland/platforms/ios/www/js/lib/products/Selector.js b/StoneIsland/platforms/ios/www/js/lib/products/Selector.js index 9c1109f6..e3376a4d 100755 --- a/StoneIsland/platforms/ios/www/js/lib/products/Selector.js +++ b/StoneIsland/platforms/ios/www/js/lib/products/Selector.js @@ -21,7 +21,7 @@ var Selector = View.extend({ options.forEach(function(opt){ this.lookup[String(opt.id)] = opt var t = this.template.replace(/{{id}}/, opt.id) - .replace(/{{label}}/, opt.label) + .replace(/{{label}}/g, opt.label) this.$options.append(t) }.bind(this)) this.$el.show() diff --git a/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js b/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js index 4155f102..3181fddd 100755 --- a/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js +++ b/StoneIsland/platforms/ios/www/js/lib/view/Serializable.js @@ -105,6 +105,7 @@ var SerializableView = View.extend({ console.log(errors) var msgs = [] this.$('.error_hilite').removeClass('error_hilite') + this.$('.err').html('') errors.forEach(function(e, i){ // if (i > 0) { return } if (e[0]) { @@ -112,13 +113,15 @@ var SerializableView = View.extend({ var el = $el[0] if (el && el.nodeName === 'SELECT') { $el.parent().addClass('error_hilite') + $el.parent().next('.err').html(e[1]) } else { $el.addClass('error_hilite') + $el.next('.err').html(e[1]) } } - msgs.push(e[1]) + // msgs.push(e[1]) }.bind(this)) - this.$msg.html(msgs.join("<br>")) + // this.$msg.html(msgs.join("<br>")) this.$msg.addClass('alert-notice') }, diff --git a/StoneIsland/platforms/ios/www/js/vendor/iscroll-5.1.3.js b/StoneIsland/platforms/ios/www/js/vendor/iscroll-5.1.3.js new file mode 100755 index 00000000..8bd2b8da --- /dev/null +++ b/StoneIsland/platforms/ios/www/js/vendor/iscroll-5.1.3.js @@ -0,0 +1,2011 @@ +/*! iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */ +(function (window, document, Math) { +var rAF = window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function (callback) { window.setTimeout(callback, 1000 / 60); }; + +var utils = (function () { + var me = {}; + + var _elementStyle = document.createElement('div').style; + var _vendor = (function () { + var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'], + transform, + i = 0, + l = vendors.length; + + for ( ; i < l; i++ ) { + transform = vendors[i] + 'ransform'; + if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1); + } + + return false; + })(); + + function _prefixStyle (style) { + if ( _vendor === false ) return false; + if ( _vendor === '' ) return style; + return _vendor + style.charAt(0).toUpperCase() + style.substr(1); + } + + me.getTime = Date.now || function getTime () { return new Date().getTime(); }; + + me.extend = function (target, obj) { + for ( var i in obj ) { + target[i] = obj[i]; + } + }; + + me.addEvent = function (el, type, fn, capture) { + el.addEventListener(type, fn, !!capture); + }; + + me.removeEvent = function (el, type, fn, capture) { + el.removeEventListener(type, fn, !!capture); + }; + + me.prefixPointerEvent = function (pointerEvent) { + return window.MSPointerEvent ? + 'MSPointer' + pointerEvent.charAt(9).toUpperCase() + pointerEvent.substr(10): + pointerEvent; + }; + + me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) { + var distance = current - start, + speed = Math.abs(distance) / time, + destination, + duration; + + deceleration = deceleration === undefined ? 0.0006 : deceleration; + + destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 ); + duration = speed / deceleration; + + if ( destination < lowerMargin ) { + destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin; + distance = Math.abs(destination - current); + duration = distance / speed; + } else if ( destination > 0 ) { + destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0; + distance = Math.abs(current) + destination; + duration = distance / speed; + } + + return { + destination: Math.round(destination), + duration: duration + }; + }; + + var _transform = _prefixStyle('transform'); + + me.extend(me, { + hasTransform: _transform !== false, + hasPerspective: _prefixStyle('perspective') in _elementStyle, + hasTouch: 'ontouchstart' in window, + hasPointer: window.PointerEvent || window.MSPointerEvent, // IE10 is prefixed + hasTransition: _prefixStyle('transition') in _elementStyle + }); + + // This should find all Android browsers lower than build 535.19 (both stock browser and webview) + me.isBadAndroid = /Android /.test(window.navigator.appVersion) && !(/Chrome\/\d/.test(window.navigator.appVersion)); + + me.extend(me.style = {}, { + transform: _transform, + transitionTimingFunction: _prefixStyle('transitionTimingFunction'), + transitionDuration: _prefixStyle('transitionDuration'), + transitionDelay: _prefixStyle('transitionDelay'), + transformOrigin: _prefixStyle('transformOrigin') + }); + + me.hasClass = function (e, c) { + var re = new RegExp("(^|\\s)" + c + "(\\s|$)"); + return re.test(e.className); + }; + + me.addClass = function (e, c) { + if ( me.hasClass(e, c) ) { + return; + } + + var newclass = e.className.split(' '); + newclass.push(c); + e.className = newclass.join(' '); + }; + + me.removeClass = function (e, c) { + if ( !me.hasClass(e, c) ) { + return; + } + + var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g'); + e.className = e.className.replace(re, ' '); + }; + + me.offset = function (el) { + var left = -el.offsetLeft, + top = -el.offsetTop; + + // jshint -W084 + while (el = el.offsetParent) { + left -= el.offsetLeft; + top -= el.offsetTop; + } + // jshint +W084 + + return { + left: left, + top: top + }; + }; + + me.preventDefaultException = function (el, exceptions) { + for ( var i in exceptions ) { + if ( exceptions[i].test(el[i]) ) { + return true; + } + } + + return false; + }; + + me.extend(me.eventType = {}, { + touchstart: 1, + touchmove: 1, + touchend: 1, + + mousedown: 2, + mousemove: 2, + mouseup: 2, + + pointerdown: 3, + pointermove: 3, + pointerup: 3, + + MSPointerDown: 3, + MSPointerMove: 3, + MSPointerUp: 3 + }); + + me.extend(me.ease = {}, { + quadratic: { + style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + fn: function (k) { + return k * ( 2 - k ); + } + }, + circular: { + style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1) + fn: function (k) { + return Math.sqrt( 1 - ( --k * k ) ); + } + }, + back: { + style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', + fn: function (k) { + var b = 4; + return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1; + } + }, + bounce: { + style: '', + fn: function (k) { + if ( ( k /= 1 ) < ( 1 / 2.75 ) ) { + return 7.5625 * k * k; + } else if ( k < ( 2 / 2.75 ) ) { + return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75; + } else if ( k < ( 2.5 / 2.75 ) ) { + return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375; + } else { + return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375; + } + } + }, + elastic: { + style: '', + fn: function (k) { + var f = 0.22, + e = 0.4; + + if ( k === 0 ) { return 0; } + if ( k == 1 ) { return 1; } + + return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 ); + } + } + }); + + me.tap = function (e, eventName) { + var ev = document.createEvent('Event'); + ev.initEvent(eventName, true, true); + ev.pageX = e.pageX; + ev.pageY = e.pageY; + e.target.dispatchEvent(ev); + }; + + me.click = function (e) { + var target = e.target, + ev; + + if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) { + ev = document.createEvent('MouseEvents'); + ev.initMouseEvent('click', true, true, e.view, 1, + target.screenX, target.screenY, target.clientX, target.clientY, + e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, + 0, null); + + ev._constructed = true; + target.dispatchEvent(ev); + } + }; + + return me; +})(); + +function IScroll (el, options) { + this.wrapper = typeof el == 'string' ? document.querySelector(el) : el; + this.scroller = this.wrapper.children[0]; + this.scrollerStyle = this.scroller.style; // cache style for better performance + + this.options = { + + resizeScrollbars: true, + + mouseWheelSpeed: 20, + + snapThreshold: 0.334, + +// INSERT POINT: OPTIONS + + startX: 0, + startY: 0, + scrollY: true, + directionLockThreshold: 5, + momentum: true, + + bounce: true, + bounceTime: 600, + bounceEasing: '', + + preventDefault: true, + preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ }, + + HWCompositing: true, + useTransition: true, + useTransform: true + }; + + for ( var i in options ) { + this.options[i] = options[i]; + } + + // Normalize options + this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : ''; + + this.options.useTransition = utils.hasTransition && this.options.useTransition; + this.options.useTransform = utils.hasTransform && this.options.useTransform; + + this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough; + this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault; + + // If you want eventPassthrough I have to lock one of the axes + this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY; + this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX; + + // With eventPassthrough we also need lockDirection mechanism + this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough; + this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold; + + this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing; + + this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling; + + if ( this.options.tap === true ) { + this.options.tap = 'tap'; + } + + if ( this.options.shrinkScrollbars == 'scale' ) { + this.options.useTransition = false; + } + + this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1; + +// INSERT POINT: NORMALIZATION + + // Some defaults + this.x = 0; + this.y = 0; + this.directionX = 0; + this.directionY = 0; + this._events = {}; + +// INSERT POINT: DEFAULTS + + this._init(); + this.refresh(); + + this.scrollTo(this.options.startX, this.options.startY); + this.enable(); +} + +IScroll.prototype = { + version: '5.1.3', + + _init: function () { + this._initEvents(); + + if ( this.options.scrollbars || this.options.indicators ) { + this._initIndicators(); + } + + if ( this.options.mouseWheel ) { + this._initWheel(); + } + + if ( this.options.snap ) { + this._initSnap(); + } + + if ( this.options.keyBindings ) { + this._initKeys(); + } + +// INSERT POINT: _init + + }, + + destroy: function () { + this._initEvents(true); + + this._execEvent('destroy'); + }, + + _transitionEnd: function (e) { + if ( e.target != this.scroller || !this.isInTransition ) { + return; + } + + this._transitionTime(); + if ( !this.resetPosition(this.options.bounceTime) ) { + this.isInTransition = false; + this._execEvent('scrollEnd'); + } + }, + + _start: function (e) { + // React to left mouse button only + if ( utils.eventType[e.type] != 1 ) { + if ( e.button !== 0 ) { + return; + } + } + + if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) { + return; + } + + if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } + + var point = e.touches ? e.touches[0] : e, + pos; + + this.initiated = utils.eventType[e.type]; + this.moved = false; + this.distX = 0; + this.distY = 0; + this.directionX = 0; + this.directionY = 0; + this.directionLocked = 0; + + this._transitionTime(); + + this.startTime = utils.getTime(); + + if ( this.options.useTransition && this.isInTransition ) { + this.isInTransition = false; + pos = this.getComputedPosition(); + this._translate(Math.round(pos.x), Math.round(pos.y)); + this._execEvent('scrollEnd'); + } else if ( !this.options.useTransition && this.isAnimating ) { + this.isAnimating = false; + this._execEvent('scrollEnd'); + } + + this.startX = this.x; + this.startY = this.y; + this.absStartX = this.x; + this.absStartY = this.y; + this.pointX = point.pageX; + this.pointY = point.pageY; + + this._execEvent('beforeScrollStart'); + }, + + _move: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } + + if ( this.options.preventDefault ) { // increases performance on Android? TODO: check! + e.preventDefault(); + } + + var point = e.touches ? e.touches[0] : e, + deltaX = point.pageX - this.pointX, + deltaY = point.pageY - this.pointY, + timestamp = utils.getTime(), + newX, newY, + absDistX, absDistY; + + this.pointX = point.pageX; + this.pointY = point.pageY; + + this.distX += deltaX; + this.distY += deltaY; + absDistX = Math.abs(this.distX); + absDistY = Math.abs(this.distY); + + // We need to move at least 10 pixels for the scrolling to initiate + if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) { + return; + } + + // If you are scrolling in one direction lock the other + if ( !this.directionLocked && !this.options.freeScroll ) { + if ( absDistX > absDistY + this.options.directionLockThreshold ) { + this.directionLocked = 'h'; // lock horizontally + } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) { + this.directionLocked = 'v'; // lock vertically + } else { + this.directionLocked = 'n'; // no lock + } + } + + if ( this.directionLocked == 'h' ) { + if ( this.options.eventPassthrough == 'vertical' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'horizontal' ) { + this.initiated = false; + return; + } + + deltaY = 0; + } else if ( this.directionLocked == 'v' ) { + if ( this.options.eventPassthrough == 'horizontal' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'vertical' ) { + this.initiated = false; + return; + } + + deltaX = 0; + } + + deltaX = this.hasHorizontalScroll ? deltaX : 0; + deltaY = this.hasVerticalScroll ? deltaY : 0; + + newX = this.x + deltaX; + newY = this.y + deltaY; + + // Slow down if outside of the boundaries + if ( newX > 0 || newX < this.maxScrollX ) { + newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; + } + if ( newY > 0 || newY < this.maxScrollY ) { + newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; + } + + this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0; + this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0; + + if ( !this.moved ) { + this._execEvent('scrollStart'); + } + + this.moved = true; + + this._translate(newX, newY); + +/* REPLACE START: _move */ + + if ( timestamp - this.startTime > 300 ) { + this.startTime = timestamp; + this.startX = this.x; + this.startY = this.y; + } + +/* REPLACE END: _move */ + + }, + + _end: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } + + if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } + + var point = e.changedTouches ? e.changedTouches[0] : e, + momentumX, + momentumY, + duration = utils.getTime() - this.startTime, + newX = Math.round(this.x), + newY = Math.round(this.y), + distanceX = Math.abs(newX - this.startX), + distanceY = Math.abs(newY - this.startY), + time = 0, + easing = ''; + + this.isInTransition = 0; + this.initiated = 0; + this.endTime = utils.getTime(); + + // reset if we are outside of the boundaries + if ( this.resetPosition(this.options.bounceTime) ) { + return; + } + + this.scrollTo(newX, newY); // ensures that the last position is rounded + + // we scrolled less than 10 pixels + if ( !this.moved ) { + if ( this.options.tap ) { + utils.tap(e, this.options.tap); + } + + if ( this.options.click ) { + utils.click(e); + } + + this._execEvent('scrollCancel'); + return; + } + + if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) { + this._execEvent('flick'); + return; + } + + // start momentum animation if needed + if ( this.options.momentum && duration < 300 ) { + momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 }; + momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 }; + newX = momentumX.destination; + newY = momentumY.destination; + time = Math.max(momentumX.duration, momentumY.duration); + this.isInTransition = 1; + } + + + if ( this.options.snap ) { + var snap = this._nearestSnap(newX, newY); + this.currentPage = snap; + time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(newX - snap.x), 1000), + Math.min(Math.abs(newY - snap.y), 1000) + ), 300); + newX = snap.x; + newY = snap.y; + + this.directionX = 0; + this.directionY = 0; + easing = this.options.bounceEasing; + } + +// INSERT POINT: _end + + if ( newX != this.x || newY != this.y ) { + // change easing function when scroller goes out of the boundaries + if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) { + easing = utils.ease.quadratic; + } + + this.scrollTo(newX, newY, time, easing); + return; + } + + this._execEvent('scrollEnd'); + }, + + _resize: function () { + var that = this; + + clearTimeout(this.resizeTimeout); + + this.resizeTimeout = setTimeout(function () { + that.refresh(); + }, this.options.resizePolling); + }, + + resetPosition: function (time) { + var x = this.x, + y = this.y; + + time = time || 0; + + if ( !this.hasHorizontalScroll || this.x > 0 ) { + x = 0; + } else if ( this.x < this.maxScrollX ) { + x = this.maxScrollX; + } + + if ( !this.hasVerticalScroll || this.y > 0 ) { + y = 0; + } else if ( this.y < this.maxScrollY ) { + y = this.maxScrollY; + } + + if ( x == this.x && y == this.y ) { + return false; + } + + this.scrollTo(x, y, time, this.options.bounceEasing); + + return true; + }, + + disable: function () { + this.enabled = false; + }, + + enable: function () { + this.enabled = true; + }, + + refresh: function () { + var rf = this.wrapper.offsetHeight; // Force reflow + + this.wrapperWidth = this.wrapper.clientWidth; + this.wrapperHeight = this.wrapper.clientHeight; + +/* REPLACE START: refresh */ + + this.scrollerWidth = this.scroller.offsetWidth; + this.scrollerHeight = this.scroller.offsetHeight; + + this.maxScrollX = this.wrapperWidth - this.scrollerWidth; + this.maxScrollY = this.wrapperHeight - this.scrollerHeight; + +/* REPLACE END: refresh */ + + this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; + this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + + if ( !this.hasHorizontalScroll ) { + this.maxScrollX = 0; + this.scrollerWidth = this.wrapperWidth; + } + + if ( !this.hasVerticalScroll ) { + this.maxScrollY = 0; + this.scrollerHeight = this.wrapperHeight; + } + + this.endTime = 0; + this.directionX = 0; + this.directionY = 0; + + this.wrapperOffset = utils.offset(this.wrapper); + + this._execEvent('refresh'); + + this.resetPosition(); + +// INSERT POINT: _refresh + + }, + + on: function (type, fn) { + if ( !this._events[type] ) { + this._events[type] = []; + } + + this._events[type].push(fn); + }, + + off: function (type, fn) { + if ( !this._events[type] ) { + return; + } + + var index = this._events[type].indexOf(fn); + + if ( index > -1 ) { + this._events[type].splice(index, 1); + } + }, + + _execEvent: function (type) { + if ( !this._events[type] ) { + return; + } + + var i = 0, + l = this._events[type].length; + + if ( !l ) { + return; + } + + for ( ; i < l; i++ ) { + this._events[type][i].apply(this, [].slice.call(arguments, 1)); + } + }, + + scrollBy: function (x, y, time, easing) { + x = this.x + x; + y = this.y + y; + time = time || 0; + + this.scrollTo(x, y, time, easing); + }, + + scrollTo: function (x, y, time, easing) { + easing = easing || utils.ease.circular; + + this.isInTransition = this.options.useTransition && time > 0; + + if ( !time || (this.options.useTransition && easing.style) ) { + this._transitionTimingFunction(easing.style); + this._transitionTime(time); + this._translate(x, y); + } else { + this._animate(x, y, time, easing.fn); + } + }, + + scrollToElement: function (el, time, offsetX, offsetY, easing) { + el = el.nodeType ? el : this.scroller.querySelector(el); + + if ( !el ) { + return; + } + + var pos = utils.offset(el); + + pos.left -= this.wrapperOffset.left; + pos.top -= this.wrapperOffset.top; + + // if offsetX/Y are true we center the element to the screen + if ( offsetX === true ) { + offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2); + } + if ( offsetY === true ) { + offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2); + } + + pos.left -= offsetX || 0; + pos.top -= offsetY || 0; + + pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left; + pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top; + + time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time; + + this.scrollTo(pos.left, pos.top, time, easing); + }, + + _transitionTime: function (time) { + time = time || 0; + + this.scrollerStyle[utils.style.transitionDuration] = time + 'ms'; + + if ( !time && utils.isBadAndroid ) { + this.scrollerStyle[utils.style.transitionDuration] = '0.001s'; + } + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTime(time); + } + } + + +// INSERT POINT: _transitionTime + + }, + + _transitionTimingFunction: function (easing) { + this.scrollerStyle[utils.style.transitionTimingFunction] = easing; + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTimingFunction(easing); + } + } + + +// INSERT POINT: _transitionTimingFunction + + }, + + _translate: function (x, y) { + if ( this.options.useTransform ) { + +/* REPLACE START: _translate */ + + this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ; + +/* REPLACE END: _translate */ + + } else { + x = Math.round(x); + y = Math.round(y); + this.scrollerStyle.left = x + 'px'; + this.scrollerStyle.top = y + 'px'; + } + + this.x = x; + this.y = y; + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].updatePosition(); + } + } + + +// INSERT POINT: _translate + + }, + + _initEvents: function (remove) { + var eventType = remove ? utils.removeEvent : utils.addEvent, + target = this.options.bindToWrapper ? this.wrapper : window; + + eventType(window, 'orientationchange', this); + eventType(window, 'resize', this); + + if ( this.options.click ) { + eventType(this.wrapper, 'click', this, true); + } + + if ( !this.options.disableMouse ) { + eventType(this.wrapper, 'mousedown', this); + eventType(target, 'mousemove', this); + eventType(target, 'mousecancel', this); + eventType(target, 'mouseup', this); + } + + if ( utils.hasPointer && !this.options.disablePointer ) { + eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this); + eventType(target, utils.prefixPointerEvent('pointermove'), this); + eventType(target, utils.prefixPointerEvent('pointercancel'), this); + eventType(target, utils.prefixPointerEvent('pointerup'), this); + } + + if ( utils.hasTouch && !this.options.disableTouch ) { + eventType(this.wrapper, 'touchstart', this); + eventType(target, 'touchmove', this); + eventType(target, 'touchcancel', this); + eventType(target, 'touchend', this); + } + + eventType(this.scroller, 'transitionend', this); + eventType(this.scroller, 'webkitTransitionEnd', this); + eventType(this.scroller, 'oTransitionEnd', this); + eventType(this.scroller, 'MSTransitionEnd', this); + }, + + getComputedPosition: function () { + var matrix = window.getComputedStyle(this.scroller, null), + x, y; + + if ( this.options.useTransform ) { + matrix = matrix[utils.style.transform].split(')')[0].split(', '); + x = +(matrix[12] || matrix[4]); + y = +(matrix[13] || matrix[5]); + } else { + x = +matrix.left.replace(/[^-\d.]/g, ''); + y = +matrix.top.replace(/[^-\d.]/g, ''); + } + + return { x: x, y: y }; + }, + + _initIndicators: function () { + var interactive = this.options.interactiveScrollbars, + customStyle = typeof this.options.scrollbars != 'string', + indicators = [], + indicator; + + var that = this; + + this.indicators = []; + + if ( this.options.scrollbars ) { + // Vertical scrollbar + if ( this.options.scrollY ) { + indicator = { + el: createDefaultScrollbar('v', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenX: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + + // Horizontal scrollbar + if ( this.options.scrollX ) { + indicator = { + el: createDefaultScrollbar('h', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenY: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + } + + if ( this.options.indicators ) { + // TODO: check concat compatibility + indicators = indicators.concat(this.options.indicators); + } + + for ( var i = indicators.length; i--; ) { + this.indicators.push( new Indicator(this, indicators[i]) ); + } + + // TODO: check if we can use array.map (wide compatibility and performance issues) + function _indicatorsMap (fn) { + for ( var i = that.indicators.length; i--; ) { + fn.call(that.indicators[i]); + } + } + + if ( this.options.fadeScrollbars ) { + this.on('scrollEnd', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); + + this.on('scrollCancel', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); + + this.on('scrollStart', function () { + _indicatorsMap(function () { + this.fade(1); + }); + }); + + this.on('beforeScrollStart', function () { + _indicatorsMap(function () { + this.fade(1, true); + }); + }); + } + + + this.on('refresh', function () { + _indicatorsMap(function () { + this.refresh(); + }); + }); + + this.on('destroy', function () { + _indicatorsMap(function () { + this.destroy(); + }); + + delete this.indicators; + }); + }, + + _initWheel: function () { + utils.addEvent(this.wrapper, 'wheel', this); + utils.addEvent(this.wrapper, 'mousewheel', this); + utils.addEvent(this.wrapper, 'DOMMouseScroll', this); + + this.on('destroy', function () { + utils.removeEvent(this.wrapper, 'wheel', this); + utils.removeEvent(this.wrapper, 'mousewheel', this); + utils.removeEvent(this.wrapper, 'DOMMouseScroll', this); + }); + }, + + _wheel: function (e) { + if ( !this.enabled ) { + return; + } + + e.preventDefault(); + e.stopPropagation(); + + var wheelDeltaX, wheelDeltaY, + newX, newY, + that = this; + + if ( this.wheelTimeout === undefined ) { + that._execEvent('scrollStart'); + } + + // Execute the scrollEnd event after 400ms the wheel stopped scrolling + clearTimeout(this.wheelTimeout); + this.wheelTimeout = setTimeout(function () { + that._execEvent('scrollEnd'); + that.wheelTimeout = undefined; + }, 400); + + if ( 'deltaX' in e ) { + if (e.deltaMode === 1) { + wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed; + wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed; + } else { + wheelDeltaX = -e.deltaX; + wheelDeltaY = -e.deltaY; + } + } else if ( 'wheelDeltaX' in e ) { + wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed; + wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed; + } else if ( 'wheelDelta' in e ) { + wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed; + } else if ( 'detail' in e ) { + wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed; + } else { + return; + } + + wheelDeltaX *= this.options.invertWheelDirection; + wheelDeltaY *= this.options.invertWheelDirection; + + if ( !this.hasVerticalScroll ) { + wheelDeltaX = wheelDeltaY; + wheelDeltaY = 0; + } + + if ( this.options.snap ) { + newX = this.currentPage.pageX; + newY = this.currentPage.pageY; + + if ( wheelDeltaX > 0 ) { + newX--; + } else if ( wheelDeltaX < 0 ) { + newX++; + } + + if ( wheelDeltaY > 0 ) { + newY--; + } else if ( wheelDeltaY < 0 ) { + newY++; + } + + this.goToPage(newX, newY); + + return; + } + + newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0); + newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0); + + if ( newX > 0 ) { + newX = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + } + + if ( newY > 0 ) { + newY = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + } + + this.scrollTo(newX, newY, 0); + +// INSERT POINT: _wheel + }, + + _initSnap: function () { + this.currentPage = {}; + + if ( typeof this.options.snap == 'string' ) { + this.options.snap = this.scroller.querySelectorAll(this.options.snap); + } + + this.on('refresh', function () { + var i = 0, l, + m = 0, n, + cx, cy, + x = 0, y, + stepX = this.options.snapStepX || this.wrapperWidth, + stepY = this.options.snapStepY || this.wrapperHeight, + el; + + this.pages = []; + + if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) { + return; + } + + if ( this.options.snap === true ) { + cx = Math.round( stepX / 2 ); + cy = Math.round( stepY / 2 ); + + while ( x > -this.scrollerWidth ) { + this.pages[i] = []; + l = 0; + y = 0; + + while ( y > -this.scrollerHeight ) { + this.pages[i][l] = { + x: Math.max(x, this.maxScrollX), + y: Math.max(y, this.maxScrollY), + width: stepX, + height: stepY, + cx: x - cx, + cy: y - cy + }; + + y -= stepY; + l++; + } + + x -= stepX; + i++; + } + } else { + el = this.options.snap; + l = el.length; + n = -1; + + for ( ; i < l; i++ ) { + if ( i === 0 || el[i].offsetLeft <= el[i-1].offsetLeft ) { + m = 0; + n++; + } + + if ( !this.pages[m] ) { + this.pages[m] = []; + } + + x = Math.max(-el[i].offsetLeft, this.maxScrollX); + y = Math.max(-el[i].offsetTop, this.maxScrollY); + cx = x - Math.round(el[i].offsetWidth / 2); + cy = y - Math.round(el[i].offsetHeight / 2); + + this.pages[m][n] = { + x: x, + y: y, + width: el[i].offsetWidth, + height: el[i].offsetHeight, + cx: cx, + cy: cy + }; + + if ( x > this.maxScrollX ) { + m++; + } + } + } + + this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0); + + // Update snap threshold if needed + if ( this.options.snapThreshold % 1 === 0 ) { + this.snapThresholdX = this.options.snapThreshold; + this.snapThresholdY = this.options.snapThreshold; + } else { + this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold); + this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold); + } + }); + + this.on('flick', function () { + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.x - this.startX), 1000), + Math.min(Math.abs(this.y - this.startY), 1000) + ), 300); + + this.goToPage( + this.currentPage.pageX + this.directionX, + this.currentPage.pageY + this.directionY, + time + ); + }); + }, + + _nearestSnap: function (x, y) { + if ( !this.pages.length ) { + return { x: 0, y: 0, pageX: 0, pageY: 0 }; + } + + var i = 0, + l = this.pages.length, + m = 0; + + // Check if we exceeded the snap threshold + if ( Math.abs(x - this.absStartX) < this.snapThresholdX && + Math.abs(y - this.absStartY) < this.snapThresholdY ) { + return this.currentPage; + } + + if ( x > 0 ) { + x = 0; + } else if ( x < this.maxScrollX ) { + x = this.maxScrollX; + } + + if ( y > 0 ) { + y = 0; + } else if ( y < this.maxScrollY ) { + y = this.maxScrollY; + } + + for ( ; i < l; i++ ) { + if ( x >= this.pages[i][0].cx ) { + x = this.pages[i][0].x; + break; + } + } + + l = this.pages[i].length; + + for ( ; m < l; m++ ) { + if ( y >= this.pages[0][m].cy ) { + y = this.pages[0][m].y; + break; + } + } + + if ( i == this.currentPage.pageX ) { + i += this.directionX; + + if ( i < 0 ) { + i = 0; + } else if ( i >= this.pages.length ) { + i = this.pages.length - 1; + } + + x = this.pages[i][0].x; + } + + if ( m == this.currentPage.pageY ) { + m += this.directionY; + + if ( m < 0 ) { + m = 0; + } else if ( m >= this.pages[0].length ) { + m = this.pages[0].length - 1; + } + + y = this.pages[0][m].y; + } + + return { + x: x, + y: y, + pageX: i, + pageY: m + }; + }, + + goToPage: function (x, y, time, easing) { + easing = easing || this.options.bounceEasing; + + if ( x >= this.pages.length ) { + x = this.pages.length - 1; + } else if ( x < 0 ) { + x = 0; + } + + if ( y >= this.pages[x].length ) { + y = this.pages[x].length - 1; + } else if ( y < 0 ) { + y = 0; + } + + var posX = this.pages[x][y].x, + posY = this.pages[x][y].y; + + time = time === undefined ? this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(posX - this.x), 1000), + Math.min(Math.abs(posY - this.y), 1000) + ), 300) : time; + + this.currentPage = { + x: posX, + y: posY, + pageX: x, + pageY: y + }; + + this.scrollTo(posX, posY, time, easing); + }, + + next: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; + + x++; + + if ( x >= this.pages.length && this.hasVerticalScroll ) { + x = 0; + y++; + } + + this.goToPage(x, y, time, easing); + }, + + prev: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; + + x--; + + if ( x < 0 && this.hasVerticalScroll ) { + x = 0; + y--; + } + + this.goToPage(x, y, time, easing); + }, + + _initKeys: function (e) { + // default key bindings + var keys = { + pageUp: 33, + pageDown: 34, + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40 + }; + var i; + + // if you give me characters I give you keycode + if ( typeof this.options.keyBindings == 'object' ) { + for ( i in this.options.keyBindings ) { + if ( typeof this.options.keyBindings[i] == 'string' ) { + this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0); + } + } + } else { + this.options.keyBindings = {}; + } + + for ( i in keys ) { + this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i]; + } + + utils.addEvent(window, 'keydown', this); + + this.on('destroy', function () { + utils.removeEvent(window, 'keydown', this); + }); + }, + + _key: function (e) { + if ( !this.enabled ) { + return; + } + + var snap = this.options.snap, // we are using this alot, better to cache it + newX = snap ? this.currentPage.pageX : this.x, + newY = snap ? this.currentPage.pageY : this.y, + now = utils.getTime(), + prevTime = this.keyTime || 0, + acceleration = 0.250, + pos; + + if ( this.options.useTransition && this.isInTransition ) { + pos = this.getComputedPosition(); + + this._translate(Math.round(pos.x), Math.round(pos.y)); + this.isInTransition = false; + } + + this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0; + + switch ( e.keyCode ) { + case this.options.keyBindings.pageUp: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX += snap ? 1 : this.wrapperWidth; + } else { + newY += snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.pageDown: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX -= snap ? 1 : this.wrapperWidth; + } else { + newY -= snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.end: + newX = snap ? this.pages.length-1 : this.maxScrollX; + newY = snap ? this.pages[0].length-1 : this.maxScrollY; + break; + case this.options.keyBindings.home: + newX = 0; + newY = 0; + break; + case this.options.keyBindings.left: + newX += snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.up: + newY += snap ? 1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.right: + newX -= snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.down: + newY -= snap ? 1 : 5 + this.keyAcceleration>>0; + break; + default: + return; + } + + if ( snap ) { + this.goToPage(newX, newY); + return; + } + + if ( newX > 0 ) { + newX = 0; + this.keyAcceleration = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + this.keyAcceleration = 0; + } + + if ( newY > 0 ) { + newY = 0; + this.keyAcceleration = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + this.keyAcceleration = 0; + } + + this.scrollTo(newX, newY, 0); + + this.keyTime = now; + }, + + _animate: function (destX, destY, duration, easingFn) { + var that = this, + startX = this.x, + startY = this.y, + startTime = utils.getTime(), + destTime = startTime + duration; + + function step () { + var now = utils.getTime(), + newX, newY, + easing; + + if ( now >= destTime ) { + that.isAnimating = false; + that._translate(destX, destY); + + if ( !that.resetPosition(that.options.bounceTime) ) { + that._execEvent('scrollEnd'); + } + + return; + } + + now = ( now - startTime ) / duration; + easing = easingFn(now); + newX = ( destX - startX ) * easing + startX; + newY = ( destY - startY ) * easing + startY; + that._translate(newX, newY); + + if ( that.isAnimating ) { + rAF(step); + } + } + + this.isAnimating = true; + step(); + }, + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + case 'orientationchange': + case 'resize': + this._resize(); + break; + case 'transitionend': + case 'webkitTransitionEnd': + case 'oTransitionEnd': + case 'MSTransitionEnd': + this._transitionEnd(e); + break; + case 'wheel': + case 'DOMMouseScroll': + case 'mousewheel': + this._wheel(e); + break; + case 'keydown': + this._key(e); + break; + case 'click': + if ( !e._constructed ) { + e.preventDefault(); + e.stopPropagation(); + } + break; + } + } +}; +function createDefaultScrollbar (direction, interactive, type) { + var scrollbar = document.createElement('div'), + indicator = document.createElement('div'); + + if ( type === true ) { + scrollbar.style.cssText = 'position:absolute;z-index:9999'; + indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px'; + } + + indicator.className = 'iScrollIndicator'; + + if ( direction == 'h' ) { + if ( type === true ) { + scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0'; + indicator.style.height = '100%'; + } + scrollbar.className = 'iScrollHorizontalScrollbar'; + } else { + if ( type === true ) { + scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px'; + indicator.style.width = '100%'; + } + scrollbar.className = 'iScrollVerticalScrollbar'; + } + + scrollbar.style.cssText += ';overflow:hidden'; + + if ( !interactive ) { + scrollbar.style.pointerEvents = 'none'; + } + + scrollbar.appendChild(indicator); + + return scrollbar; +} + +function Indicator (scroller, options) { + this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el; + this.wrapperStyle = this.wrapper.style; + this.indicator = this.wrapper.children[0]; + this.indicatorStyle = this.indicator.style; + this.scroller = scroller; + + this.options = { + listenX: true, + listenY: true, + interactive: false, + resize: true, + defaultScrollbars: false, + shrink: false, + fade: false, + speedRatioX: 0, + speedRatioY: 0 + }; + + for ( var i in options ) { + this.options[i] = options[i]; + } + + this.sizeRatioX = 1; + this.sizeRatioY = 1; + this.maxPosX = 0; + this.maxPosY = 0; + + if ( this.options.interactive ) { + if ( !this.options.disableTouch ) { + utils.addEvent(this.indicator, 'touchstart', this); + utils.addEvent(window, 'touchend', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(this.indicator, 'mousedown', this); + utils.addEvent(window, 'mouseup', this); + } + } + + if ( this.options.fade ) { + this.wrapperStyle[utils.style.transform] = this.scroller.translateZ; + this.wrapperStyle[utils.style.transitionDuration] = utils.isBadAndroid ? '0.001s' : '0ms'; + this.wrapperStyle.opacity = '0'; + } +} + +Indicator.prototype = { + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + } + }, + + destroy: function () { + if ( this.options.interactive ) { + utils.removeEvent(this.indicator, 'touchstart', this); + utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.removeEvent(this.indicator, 'mousedown', this); + + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); + + utils.removeEvent(window, 'touchend', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this); + utils.removeEvent(window, 'mouseup', this); + } + + if ( this.options.defaultScrollbars ) { + this.wrapper.parentNode.removeChild(this.wrapper); + } + }, + + _start: function (e) { + var point = e.touches ? e.touches[0] : e; + + e.preventDefault(); + e.stopPropagation(); + + this.transitionTime(); + + this.initiated = true; + this.moved = false; + this.lastPointX = point.pageX; + this.lastPointY = point.pageY; + + this.startTime = utils.getTime(); + + if ( !this.options.disableTouch ) { + utils.addEvent(window, 'touchmove', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(window, 'mousemove', this); + } + + this.scroller._execEvent('beforeScrollStart'); + }, + + _move: function (e) { + var point = e.touches ? e.touches[0] : e, + deltaX, deltaY, + newX, newY, + timestamp = utils.getTime(); + + if ( !this.moved ) { + this.scroller._execEvent('scrollStart'); + } + + this.moved = true; + + deltaX = point.pageX - this.lastPointX; + this.lastPointX = point.pageX; + + deltaY = point.pageY - this.lastPointY; + this.lastPointY = point.pageY; + + newX = this.x + deltaX; + newY = this.y + deltaY; + + this._pos(newX, newY); + +// INSERT POINT: indicator._move + + e.preventDefault(); + e.stopPropagation(); + }, + + _end: function (e) { + if ( !this.initiated ) { + return; + } + + this.initiated = false; + + e.preventDefault(); + e.stopPropagation(); + + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); + + if ( this.scroller.options.snap ) { + var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y); + + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.scroller.x - snap.x), 1000), + Math.min(Math.abs(this.scroller.y - snap.y), 1000) + ), 300); + + if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) { + this.scroller.directionX = 0; + this.scroller.directionY = 0; + this.scroller.currentPage = snap; + this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing); + } + } + + if ( this.moved ) { + this.scroller._execEvent('scrollEnd'); + } + }, + + transitionTime: function (time) { + time = time || 0; + this.indicatorStyle[utils.style.transitionDuration] = time + 'ms'; + + if ( !time && utils.isBadAndroid ) { + this.indicatorStyle[utils.style.transitionDuration] = '0.001s'; + } + }, + + transitionTimingFunction: function (easing) { + this.indicatorStyle[utils.style.transitionTimingFunction] = easing; + }, + + refresh: function () { + this.transitionTime(); + + if ( this.options.listenX && !this.options.listenY ) { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; + } else if ( this.options.listenY && !this.options.listenX ) { + this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; + } else { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; + } + + if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) { + utils.addClass(this.wrapper, 'iScrollBothScrollbars'); + utils.removeClass(this.wrapper, 'iScrollLoneScrollbar'); + + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '8px'; + } else { + this.wrapper.style.bottom = '8px'; + } + } + } else { + utils.removeClass(this.wrapper, 'iScrollBothScrollbars'); + utils.addClass(this.wrapper, 'iScrollLoneScrollbar'); + + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '2px'; + } else { + this.wrapper.style.bottom = '2px'; + } + } + } + + var r = this.wrapper.offsetHeight; // force refresh + + if ( this.options.listenX ) { + this.wrapperWidth = this.wrapper.clientWidth; + if ( this.options.resize ) { + this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); + this.indicatorStyle.width = this.indicatorWidth + 'px'; + } else { + this.indicatorWidth = this.indicator.clientWidth; + } + + this.maxPosX = this.wrapperWidth - this.indicatorWidth; + + if ( this.options.shrink == 'clip' ) { + this.minBoundaryX = -this.indicatorWidth + 8; + this.maxBoundaryX = this.wrapperWidth - 8; + } else { + this.minBoundaryX = 0; + this.maxBoundaryX = this.maxPosX; + } + + this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); + } + + if ( this.options.listenY ) { + this.wrapperHeight = this.wrapper.clientHeight; + if ( this.options.resize ) { + this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); + this.indicatorStyle.height = this.indicatorHeight + 'px'; + } else { + this.indicatorHeight = this.indicator.clientHeight; + } + + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + + if ( this.options.shrink == 'clip' ) { + this.minBoundaryY = -this.indicatorHeight + 8; + this.maxBoundaryY = this.wrapperHeight - 8; + } else { + this.minBoundaryY = 0; + this.maxBoundaryY = this.maxPosY; + } + + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); + } + + this.updatePosition(); + }, + + updatePosition: function () { + var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, + y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; + + if ( !this.options.ignoreBoundaries ) { + if ( x < this.minBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth + x, 8); + this.indicatorStyle.width = this.width + 'px'; + } + x = this.minBoundaryX; + } else if ( x > this.maxBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8); + this.indicatorStyle.width = this.width + 'px'; + x = this.maxPosX + this.indicatorWidth - this.width; + } else { + x = this.maxBoundaryX; + } + } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) { + this.width = this.indicatorWidth; + this.indicatorStyle.width = this.width + 'px'; + } + + if ( y < this.minBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight + y * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + } + y = this.minBoundaryY; + } else if ( y > this.maxBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + y = this.maxPosY + this.indicatorHeight - this.height; + } else { + y = this.maxBoundaryY; + } + } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) { + this.height = this.indicatorHeight; + this.indicatorStyle.height = this.height + 'px'; + } + } + + this.x = x; + this.y = y; + + if ( this.scroller.options.useTransform ) { + this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ; + } else { + this.indicatorStyle.left = x + 'px'; + this.indicatorStyle.top = y + 'px'; + } + }, + + _pos: function (x, y) { + if ( x < 0 ) { + x = 0; + } else if ( x > this.maxPosX ) { + x = this.maxPosX; + } + + if ( y < 0 ) { + y = 0; + } else if ( y > this.maxPosY ) { + y = this.maxPosY; + } + + x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x; + y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y; + + this.scroller.scrollTo(x, y); + }, + + fade: function (val, hold) { + if ( hold && !this.visible ) { + return; + } + + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; + + var time = val ? 250 : 500, + delay = val ? 0 : 300; + + val = val ? '1' : '0'; + + this.wrapperStyle[utils.style.transitionDuration] = time + 'ms'; + + this.fadeTimeout = setTimeout((function (val) { + this.wrapperStyle.opacity = val; + this.visible = +val; + }).bind(this, val), delay); + } +}; + +IScroll.utils = utils; + +if ( typeof module != 'undefined' && module.exports ) { + module.exports = IScroll; +} else { + window.IScroll = IScroll; +} + +})(window, document, Math);
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/js/vendor/iscroll.js b/StoneIsland/platforms/ios/www/js/vendor/iscroll.js index 8bd2b8da..09e07d69 100755..100644 --- a/StoneIsland/platforms/ios/www/js/vendor/iscroll.js +++ b/StoneIsland/platforms/ios/www/js/vendor/iscroll.js @@ -1,2011 +1,2170 @@ -/*! iScroll v5.1.3 ~ (c) 2008-2014 Matteo Spinelli ~ http://cubiq.org/license */ +/*! iScroll v5.2.0-snapshot ~ (c) 2008-2017 Matteo Spinelli ~ http://cubiq.org/license */ (function (window, document, Math) { -var rAF = window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - window.msRequestAnimationFrame || - function (callback) { window.setTimeout(callback, 1000 / 60); }; +var rAF = window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function (callback) { window.setTimeout(callback, 1000 / 60); }; var utils = (function () { - var me = {}; + var me = {}; - var _elementStyle = document.createElement('div').style; - var _vendor = (function () { - var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'], - transform, - i = 0, - l = vendors.length; + var _elementStyle = document.createElement('div').style; + var _vendor = (function () { + var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'], + transform, + i = 0, + l = vendors.length; - for ( ; i < l; i++ ) { - transform = vendors[i] + 'ransform'; - if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1); - } + for ( ; i < l; i++ ) { + transform = vendors[i] + 'ransform'; + if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1); + } - return false; - })(); + return false; + })(); - function _prefixStyle (style) { - if ( _vendor === false ) return false; - if ( _vendor === '' ) return style; - return _vendor + style.charAt(0).toUpperCase() + style.substr(1); - } + function _prefixStyle (style) { + if ( _vendor === false ) return false; + if ( _vendor === '' ) return style; + return _vendor + style.charAt(0).toUpperCase() + style.substr(1); + } - me.getTime = Date.now || function getTime () { return new Date().getTime(); }; + me.getTime = Date.now || function getTime () { return new Date().getTime(); }; - me.extend = function (target, obj) { - for ( var i in obj ) { - target[i] = obj[i]; - } - }; + me.extend = function (target, obj) { + for ( var i in obj ) { + target[i] = obj[i]; + } + }; - me.addEvent = function (el, type, fn, capture) { - el.addEventListener(type, fn, !!capture); - }; + me.addEvent = function (el, type, fn, capture) { + el.addEventListener(type, fn, !!capture); + }; - me.removeEvent = function (el, type, fn, capture) { - el.removeEventListener(type, fn, !!capture); - }; + me.removeEvent = function (el, type, fn, capture) { + el.removeEventListener(type, fn, !!capture); + }; - me.prefixPointerEvent = function (pointerEvent) { - return window.MSPointerEvent ? - 'MSPointer' + pointerEvent.charAt(9).toUpperCase() + pointerEvent.substr(10): - pointerEvent; - }; + me.prefixPointerEvent = function (pointerEvent) { + return window.MSPointerEvent ? + 'MSPointer' + pointerEvent.charAt(7).toUpperCase() + pointerEvent.substr(8): + pointerEvent; + }; - me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) { - var distance = current - start, - speed = Math.abs(distance) / time, - destination, - duration; + me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) { + var distance = current - start, + speed = Math.abs(distance) / time, + destination, + duration; - deceleration = deceleration === undefined ? 0.0006 : deceleration; + deceleration = deceleration === undefined ? 0.0006 : deceleration; - destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 ); - duration = speed / deceleration; + destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 ); + duration = speed / deceleration; - if ( destination < lowerMargin ) { - destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin; - distance = Math.abs(destination - current); - duration = distance / speed; - } else if ( destination > 0 ) { - destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0; - distance = Math.abs(current) + destination; - duration = distance / speed; - } + if ( destination < lowerMargin ) { + destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin; + distance = Math.abs(destination - current); + duration = distance / speed; + } else if ( destination > 0 ) { + destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0; + distance = Math.abs(current) + destination; + duration = distance / speed; + } - return { - destination: Math.round(destination), - duration: duration - }; - }; + return { + destination: Math.round(destination), + duration: duration + }; + }; - var _transform = _prefixStyle('transform'); + var _transform = _prefixStyle('transform'); - me.extend(me, { - hasTransform: _transform !== false, - hasPerspective: _prefixStyle('perspective') in _elementStyle, - hasTouch: 'ontouchstart' in window, - hasPointer: window.PointerEvent || window.MSPointerEvent, // IE10 is prefixed - hasTransition: _prefixStyle('transition') in _elementStyle - }); + me.extend(me, { + hasTransform: _transform !== false, + hasPerspective: _prefixStyle('perspective') in _elementStyle, + hasTouch: 'ontouchstart' in window, + hasPointer: !!(window.PointerEvent || window.MSPointerEvent), // IE10 is prefixed + hasTransition: _prefixStyle('transition') in _elementStyle + }); - // This should find all Android browsers lower than build 535.19 (both stock browser and webview) - me.isBadAndroid = /Android /.test(window.navigator.appVersion) && !(/Chrome\/\d/.test(window.navigator.appVersion)); + /* + This should find all Android browsers lower than build 535.19 (both stock browser and webview) + - galaxy S2 is ok + - 2.3.6 : `AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1` + - 4.0.4 : `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S3 is badAndroid (stock brower, webview) + `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S4 is badAndroid (stock brower, webview) + `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S5 is OK + `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)` + - galaxy S6 is OK + `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)` + */ + me.isBadAndroid = (function() { + var appVersion = window.navigator.appVersion; + // Android browser is not a chrome browser. + if (/Android/.test(appVersion) && !(/Chrome\/\d/.test(appVersion))) { + var safariVersion = appVersion.match(/Safari\/(\d+.\d)/); + if(safariVersion && typeof safariVersion === "object" && safariVersion.length >= 2) { + return parseFloat(safariVersion[1]) < 535.19; + } else { + return true; + } + } else { + return false; + } + })(); - me.extend(me.style = {}, { - transform: _transform, - transitionTimingFunction: _prefixStyle('transitionTimingFunction'), - transitionDuration: _prefixStyle('transitionDuration'), - transitionDelay: _prefixStyle('transitionDelay'), - transformOrigin: _prefixStyle('transformOrigin') - }); + me.extend(me.style = {}, { + transform: _transform, + transitionTimingFunction: _prefixStyle('transitionTimingFunction'), + transitionDuration: _prefixStyle('transitionDuration'), + transitionDelay: _prefixStyle('transitionDelay'), + transformOrigin: _prefixStyle('transformOrigin'), + touchAction: _prefixStyle('touchAction') + }); - me.hasClass = function (e, c) { - var re = new RegExp("(^|\\s)" + c + "(\\s|$)"); - return re.test(e.className); - }; + me.hasClass = function (e, c) { + var re = new RegExp("(^|\\s)" + c + "(\\s|$)"); + return re.test(e.className); + }; - me.addClass = function (e, c) { - if ( me.hasClass(e, c) ) { - return; - } + me.addClass = function (e, c) { + if ( me.hasClass(e, c) ) { + return; + } - var newclass = e.className.split(' '); - newclass.push(c); - e.className = newclass.join(' '); - }; + var newclass = e.className.split(' '); + newclass.push(c); + e.className = newclass.join(' '); + }; - me.removeClass = function (e, c) { - if ( !me.hasClass(e, c) ) { - return; - } + me.removeClass = function (e, c) { + if ( !me.hasClass(e, c) ) { + return; + } - var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g'); - e.className = e.className.replace(re, ' '); - }; + var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g'); + e.className = e.className.replace(re, ' '); + }; - me.offset = function (el) { - var left = -el.offsetLeft, - top = -el.offsetTop; + me.offset = function (el) { + var left = -el.offsetLeft, + top = -el.offsetTop; - // jshint -W084 - while (el = el.offsetParent) { - left -= el.offsetLeft; - top -= el.offsetTop; - } - // jshint +W084 + // jshint -W084 + while (el = el.offsetParent) { + left -= el.offsetLeft; + top -= el.offsetTop; + } + // jshint +W084 - return { - left: left, - top: top - }; - }; + return { + left: left, + top: top + }; + }; - me.preventDefaultException = function (el, exceptions) { - for ( var i in exceptions ) { - if ( exceptions[i].test(el[i]) ) { - return true; - } - } + me.preventDefaultException = function (el, exceptions) { + for ( var i in exceptions ) { + if ( exceptions[i].test(el[i]) ) { + return true; + } + } - return false; - }; + return false; + }; - me.extend(me.eventType = {}, { - touchstart: 1, - touchmove: 1, - touchend: 1, + me.extend(me.eventType = {}, { + touchstart: 1, + touchmove: 1, + touchend: 1, - mousedown: 2, - mousemove: 2, - mouseup: 2, + mousedown: 2, + mousemove: 2, + mouseup: 2, - pointerdown: 3, - pointermove: 3, - pointerup: 3, + pointerdown: 3, + pointermove: 3, + pointerup: 3, - MSPointerDown: 3, - MSPointerMove: 3, - MSPointerUp: 3 - }); + MSPointerDown: 3, + MSPointerMove: 3, + MSPointerUp: 3 + }); - me.extend(me.ease = {}, { - quadratic: { - style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', - fn: function (k) { - return k * ( 2 - k ); - } - }, - circular: { - style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1) - fn: function (k) { - return Math.sqrt( 1 - ( --k * k ) ); - } - }, - back: { - style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', - fn: function (k) { - var b = 4; - return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1; - } - }, - bounce: { - style: '', - fn: function (k) { - if ( ( k /= 1 ) < ( 1 / 2.75 ) ) { - return 7.5625 * k * k; - } else if ( k < ( 2 / 2.75 ) ) { - return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75; - } else if ( k < ( 2.5 / 2.75 ) ) { - return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375; - } else { - return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375; - } - } - }, - elastic: { - style: '', - fn: function (k) { - var f = 0.22, - e = 0.4; + me.extend(me.ease = {}, { + quadratic: { + style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + fn: function (k) { + return k * ( 2 - k ); + } + }, + circular: { + style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1) + fn: function (k) { + return Math.sqrt( 1 - ( --k * k ) ); + } + }, + back: { + style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', + fn: function (k) { + var b = 4; + return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1; + } + }, + bounce: { + style: '', + fn: function (k) { + if ( ( k /= 1 ) < ( 1 / 2.75 ) ) { + return 7.5625 * k * k; + } else if ( k < ( 2 / 2.75 ) ) { + return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75; + } else if ( k < ( 2.5 / 2.75 ) ) { + return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375; + } else { + return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375; + } + } + }, + elastic: { + style: '', + fn: function (k) { + var f = 0.22, + e = 0.4; - if ( k === 0 ) { return 0; } - if ( k == 1 ) { return 1; } + if ( k === 0 ) { return 0; } + if ( k == 1 ) { return 1; } - return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 ); - } - } - }); + return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 ); + } + } + }); - me.tap = function (e, eventName) { - var ev = document.createEvent('Event'); - ev.initEvent(eventName, true, true); - ev.pageX = e.pageX; - ev.pageY = e.pageY; - e.target.dispatchEvent(ev); - }; + me.tap = function (e, eventName) { + var ev = document.createEvent('Event'); + ev.initEvent(eventName, true, true); + ev.pageX = e.pageX; + ev.pageY = e.pageY; + e.target.dispatchEvent(ev); + }; - me.click = function (e) { - var target = e.target, - ev; + me.click = function (e) { + var target = e.target, + ev; - if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) { - ev = document.createEvent('MouseEvents'); - ev.initMouseEvent('click', true, true, e.view, 1, - target.screenX, target.screenY, target.clientX, target.clientY, - e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, - 0, null); + if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) { + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent + // initMouseEvent is deprecated. + ev = document.createEvent(window.MouseEvent ? 'MouseEvents' : 'Event'); + ev.initEvent('click', true, true); + ev.view = e.view || window; + ev.detail = 1; + ev.screenX = target.screenX || 0; + ev.screenY = target.screenY || 0; + ev.clientX = target.clientX || 0; + ev.clientY = target.clientY || 0; + ev.ctrlKey = !!e.ctrlKey; + ev.altKey = !!e.altKey; + ev.shiftKey = !!e.shiftKey; + ev.metaKey = !!e.metaKey; + ev.button = 0; + ev.relatedTarget = null; + ev._constructed = true; + target.dispatchEvent(ev); + } + }; - ev._constructed = true; - target.dispatchEvent(ev); - } - }; + me.getTouchAction = function(eventPassthrough, addPinch) { + var touchAction = 'none'; + if ( eventPassthrough === 'vertical' ) { + touchAction = 'pan-y'; + } else if (eventPassthrough === 'horizontal' ) { + touchAction = 'pan-x'; + } + if (addPinch && touchAction != 'none') { + // add pinch-zoom support if the browser supports it, but if not (eg. Chrome <55) do nothing + touchAction += ' pinch-zoom'; + } + return touchAction; + }; - return me; -})(); + me.getRect = function(el) { + if (el instanceof SVGElement) { + var rect = el.getBoundingClientRect(); + return { + top : rect.top, + left : rect.left, + width : rect.width, + height : rect.height + }; + } else { + return { + top : el.offsetTop, + left : el.offsetLeft, + width : el.offsetWidth, + height : el.offsetHeight + }; + } + }; + return me; +})(); function IScroll (el, options) { - this.wrapper = typeof el == 'string' ? document.querySelector(el) : el; - this.scroller = this.wrapper.children[0]; - this.scrollerStyle = this.scroller.style; // cache style for better performance + this.wrapper = typeof el == 'string' ? document.querySelector(el) : el; + this.scroller = this.wrapper.children[0]; + this.scrollerStyle = this.scroller.style; // cache style for better performance - this.options = { + this.options = { - resizeScrollbars: true, + resizeScrollbars: true, - mouseWheelSpeed: 20, + mouseWheelSpeed: 20, - snapThreshold: 0.334, + snapThreshold: 0.334, -// INSERT POINT: OPTIONS +// INSERT POINT: OPTIONS + disablePointer : !utils.hasPointer, + disableTouch : utils.hasPointer || !utils.hasTouch, + disableMouse : utils.hasPointer || utils.hasTouch, + startX: 0, + startY: 0, + scrollY: true, + directionLockThreshold: 5, + momentum: true, - startX: 0, - startY: 0, - scrollY: true, - directionLockThreshold: 5, - momentum: true, + bounce: true, + bounceTime: 600, + bounceEasing: '', - bounce: true, - bounceTime: 600, - bounceEasing: '', + preventDefault: true, + preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ }, - preventDefault: true, - preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ }, + HWCompositing: true, + useTransition: true, + useTransform: true, + bindToWrapper: typeof window.onmousedown === "undefined" + }; - HWCompositing: true, - useTransition: true, - useTransform: true - }; + for ( var i in options ) { + this.options[i] = options[i]; + } - for ( var i in options ) { - this.options[i] = options[i]; - } + // Normalize options + this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : ''; - // Normalize options - this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : ''; + this.options.useTransition = utils.hasTransition && this.options.useTransition; + this.options.useTransform = utils.hasTransform && this.options.useTransform; - this.options.useTransition = utils.hasTransition && this.options.useTransition; - this.options.useTransform = utils.hasTransform && this.options.useTransform; + this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough; + this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault; - this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough; - this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault; + // If you want eventPassthrough I have to lock one of the axes + this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY; + this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX; - // If you want eventPassthrough I have to lock one of the axes - this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY; - this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX; + // With eventPassthrough we also need lockDirection mechanism + this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough; + this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold; - // With eventPassthrough we also need lockDirection mechanism - this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough; - this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold; + this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing; - this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing; + this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling; - this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling; + if ( this.options.tap === true ) { + this.options.tap = 'tap'; + } - if ( this.options.tap === true ) { - this.options.tap = 'tap'; - } + // https://github.com/cubiq/iscroll/issues/1029 + if (!this.options.useTransition && !this.options.useTransform) { + if(!(/relative|absolute/i).test(this.scrollerStyle.position)) { + this.scrollerStyle.position = "relative"; + } + } - if ( this.options.shrinkScrollbars == 'scale' ) { - this.options.useTransition = false; - } + if ( this.options.shrinkScrollbars == 'scale' ) { + this.options.useTransition = false; + } - this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1; + this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1; // INSERT POINT: NORMALIZATION - // Some defaults - this.x = 0; - this.y = 0; - this.directionX = 0; - this.directionY = 0; - this._events = {}; + // Some defaults + this.x = 0; + this.y = 0; + this.directionX = 0; + this.directionY = 0; + this._events = {}; // INSERT POINT: DEFAULTS - this._init(); - this.refresh(); + this._init(); + this.refresh(); - this.scrollTo(this.options.startX, this.options.startY); - this.enable(); + this.scrollTo(this.options.startX, this.options.startY); + this.enable(); } IScroll.prototype = { - version: '5.1.3', + version: '5.2.0-snapshot', - _init: function () { - this._initEvents(); + _init: function () { + this._initEvents(); - if ( this.options.scrollbars || this.options.indicators ) { - this._initIndicators(); - } + if ( this.options.scrollbars || this.options.indicators ) { + this._initIndicators(); + } - if ( this.options.mouseWheel ) { - this._initWheel(); - } + if ( this.options.mouseWheel ) { + this._initWheel(); + } - if ( this.options.snap ) { - this._initSnap(); - } + if ( this.options.snap ) { + this._initSnap(); + } - if ( this.options.keyBindings ) { - this._initKeys(); - } + if ( this.options.keyBindings ) { + this._initKeys(); + } // INSERT POINT: _init - }, - - destroy: function () { - this._initEvents(true); - - this._execEvent('destroy'); - }, + }, - _transitionEnd: function (e) { - if ( e.target != this.scroller || !this.isInTransition ) { - return; - } + destroy: function () { + this._initEvents(true); + clearTimeout(this.resizeTimeout); + this.resizeTimeout = null; + this._execEvent('destroy'); + }, - this._transitionTime(); - if ( !this.resetPosition(this.options.bounceTime) ) { - this.isInTransition = false; - this._execEvent('scrollEnd'); - } - }, + _transitionEnd: function (e) { + if ( e.target != this.scroller || !this.isInTransition ) { + return; + } - _start: function (e) { - // React to left mouse button only - if ( utils.eventType[e.type] != 1 ) { - if ( e.button !== 0 ) { - return; - } - } + this._transitionTime(); + if ( !this.resetPosition(this.options.bounceTime) ) { + this.isInTransition = false; + this._execEvent('scrollEnd'); + } + }, - if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) { - return; - } + _start: function (e) { + // React to left mouse button only + if ( utils.eventType[e.type] != 1 ) { + // for button property + // http://unixpapa.com/js/mouse.html + var button; + if (!e.which) { + /* IE case */ + button = (e.button < 2) ? 0 : + ((e.button == 4) ? 1 : 2); + } else { + /* All others */ + button = e.button; + } + if ( button !== 0 ) { + return; + } + } - if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { - e.preventDefault(); - } + if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) { + return; + } - var point = e.touches ? e.touches[0] : e, - pos; + if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } - this.initiated = utils.eventType[e.type]; - this.moved = false; - this.distX = 0; - this.distY = 0; - this.directionX = 0; - this.directionY = 0; - this.directionLocked = 0; + var point = e.touches ? e.touches[0] : e, + pos; - this._transitionTime(); + this.initiated = utils.eventType[e.type]; + this.moved = false; + this.distX = 0; + this.distY = 0; + this.directionX = 0; + this.directionY = 0; + this.directionLocked = 0; - this.startTime = utils.getTime(); + this.startTime = utils.getTime(); - if ( this.options.useTransition && this.isInTransition ) { - this.isInTransition = false; - pos = this.getComputedPosition(); - this._translate(Math.round(pos.x), Math.round(pos.y)); - this._execEvent('scrollEnd'); - } else if ( !this.options.useTransition && this.isAnimating ) { - this.isAnimating = false; - this._execEvent('scrollEnd'); - } + if ( this.options.useTransition && this.isInTransition ) { + this._transitionTime(); + this.isInTransition = false; + pos = this.getComputedPosition(); + this._translate(Math.round(pos.x), Math.round(pos.y)); + this._execEvent('scrollEnd'); + } else if ( !this.options.useTransition && this.isAnimating ) { + this.isAnimating = false; + this._execEvent('scrollEnd'); + } - this.startX = this.x; - this.startY = this.y; - this.absStartX = this.x; - this.absStartY = this.y; - this.pointX = point.pageX; - this.pointY = point.pageY; + this.startX = this.x; + this.startY = this.y; + this.absStartX = this.x; + this.absStartY = this.y; + this.pointX = point.pageX; + this.pointY = point.pageY; - this._execEvent('beforeScrollStart'); - }, + this._execEvent('beforeScrollStart'); + }, - _move: function (e) { - if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { - return; - } + _move: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } - if ( this.options.preventDefault ) { // increases performance on Android? TODO: check! - e.preventDefault(); - } + if ( this.options.preventDefault ) { // increases performance on Android? TODO: check! + e.preventDefault(); + } - var point = e.touches ? e.touches[0] : e, - deltaX = point.pageX - this.pointX, - deltaY = point.pageY - this.pointY, - timestamp = utils.getTime(), - newX, newY, - absDistX, absDistY; + var point = e.touches ? e.touches[0] : e, + deltaX = point.pageX - this.pointX, + deltaY = point.pageY - this.pointY, + timestamp = utils.getTime(), + newX, newY, + absDistX, absDistY; - this.pointX = point.pageX; - this.pointY = point.pageY; + this.pointX = point.pageX; + this.pointY = point.pageY; - this.distX += deltaX; - this.distY += deltaY; - absDistX = Math.abs(this.distX); - absDistY = Math.abs(this.distY); + this.distX += deltaX; + this.distY += deltaY; + absDistX = Math.abs(this.distX); + absDistY = Math.abs(this.distY); - // We need to move at least 10 pixels for the scrolling to initiate - if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) { - return; - } + // We need to move at least 10 pixels for the scrolling to initiate + if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) { + return; + } - // If you are scrolling in one direction lock the other - if ( !this.directionLocked && !this.options.freeScroll ) { - if ( absDistX > absDistY + this.options.directionLockThreshold ) { - this.directionLocked = 'h'; // lock horizontally - } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) { - this.directionLocked = 'v'; // lock vertically - } else { - this.directionLocked = 'n'; // no lock - } - } + // If you are scrolling in one direction lock the other + if ( !this.directionLocked && !this.options.freeScroll ) { + if ( absDistX > absDistY + this.options.directionLockThreshold ) { + this.directionLocked = 'h'; // lock horizontally + } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) { + this.directionLocked = 'v'; // lock vertically + } else { + this.directionLocked = 'n'; // no lock + } + } - if ( this.directionLocked == 'h' ) { - if ( this.options.eventPassthrough == 'vertical' ) { - e.preventDefault(); - } else if ( this.options.eventPassthrough == 'horizontal' ) { - this.initiated = false; - return; - } + if ( this.directionLocked == 'h' ) { + if ( this.options.eventPassthrough == 'vertical' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'horizontal' ) { + this.initiated = false; + return; + } - deltaY = 0; - } else if ( this.directionLocked == 'v' ) { - if ( this.options.eventPassthrough == 'horizontal' ) { - e.preventDefault(); - } else if ( this.options.eventPassthrough == 'vertical' ) { - this.initiated = false; - return; - } + deltaY = 0; + } else if ( this.directionLocked == 'v' ) { + if ( this.options.eventPassthrough == 'horizontal' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'vertical' ) { + this.initiated = false; + return; + } - deltaX = 0; - } + deltaX = 0; + } - deltaX = this.hasHorizontalScroll ? deltaX : 0; - deltaY = this.hasVerticalScroll ? deltaY : 0; + deltaX = this.hasHorizontalScroll ? deltaX : 0; + deltaY = this.hasVerticalScroll ? deltaY : 0; - newX = this.x + deltaX; - newY = this.y + deltaY; + newX = this.x + deltaX; + newY = this.y + deltaY; - // Slow down if outside of the boundaries - if ( newX > 0 || newX < this.maxScrollX ) { - newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; - } - if ( newY > 0 || newY < this.maxScrollY ) { - newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; - } + // Slow down if outside of the boundaries + if ( newX > 0 || newX < this.maxScrollX ) { + newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; + } + if ( newY > 0 || newY < this.maxScrollY ) { + newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; + } - this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0; - this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0; + this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0; + this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0; - if ( !this.moved ) { - this._execEvent('scrollStart'); - } + if ( !this.moved ) { + this._execEvent('scrollStart'); + } - this.moved = true; + this.moved = true; - this._translate(newX, newY); + this._translate(newX, newY); /* REPLACE START: _move */ - if ( timestamp - this.startTime > 300 ) { - this.startTime = timestamp; - this.startX = this.x; - this.startY = this.y; - } + if ( timestamp - this.startTime > 300 ) { + this.startTime = timestamp; + this.startX = this.x; + this.startY = this.y; + } /* REPLACE END: _move */ - }, + }, - _end: function (e) { - if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { - return; - } + _end: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } - if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { - e.preventDefault(); - } + if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } - var point = e.changedTouches ? e.changedTouches[0] : e, - momentumX, - momentumY, - duration = utils.getTime() - this.startTime, - newX = Math.round(this.x), - newY = Math.round(this.y), - distanceX = Math.abs(newX - this.startX), - distanceY = Math.abs(newY - this.startY), - time = 0, - easing = ''; + var point = e.changedTouches ? e.changedTouches[0] : e, + momentumX, + momentumY, + duration = utils.getTime() - this.startTime, + newX = Math.round(this.x), + newY = Math.round(this.y), + distanceX = Math.abs(newX - this.startX), + distanceY = Math.abs(newY - this.startY), + time = 0, + easing = ''; - this.isInTransition = 0; - this.initiated = 0; - this.endTime = utils.getTime(); + this.isInTransition = 0; + this.initiated = 0; + this.endTime = utils.getTime(); - // reset if we are outside of the boundaries - if ( this.resetPosition(this.options.bounceTime) ) { - return; - } + // reset if we are outside of the boundaries + if ( this.resetPosition(this.options.bounceTime) ) { + return; + } - this.scrollTo(newX, newY); // ensures that the last position is rounded + this.scrollTo(newX, newY); // ensures that the last position is rounded - // we scrolled less than 10 pixels - if ( !this.moved ) { - if ( this.options.tap ) { - utils.tap(e, this.options.tap); - } + // we scrolled less than 10 pixels + if ( !this.moved ) { + if ( this.options.tap ) { + utils.tap(e, this.options.tap); + } - if ( this.options.click ) { - utils.click(e); - } + if ( this.options.click ) { + utils.click(e); + } - this._execEvent('scrollCancel'); - return; - } + this._execEvent('scrollCancel'); + return; + } - if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) { - this._execEvent('flick'); - return; - } + if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) { + this._execEvent('flick'); + return; + } - // start momentum animation if needed - if ( this.options.momentum && duration < 300 ) { - momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 }; - momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 }; - newX = momentumX.destination; - newY = momentumY.destination; - time = Math.max(momentumX.duration, momentumY.duration); - this.isInTransition = 1; - } + // start momentum animation if needed + if ( this.options.momentum && duration < 300 ) { + momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 }; + momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 }; + newX = momentumX.destination; + newY = momentumY.destination; + time = Math.max(momentumX.duration, momentumY.duration); + this.isInTransition = 1; + } - if ( this.options.snap ) { - var snap = this._nearestSnap(newX, newY); - this.currentPage = snap; - time = this.options.snapSpeed || Math.max( - Math.max( - Math.min(Math.abs(newX - snap.x), 1000), - Math.min(Math.abs(newY - snap.y), 1000) - ), 300); - newX = snap.x; - newY = snap.y; + if ( this.options.snap ) { + var snap = this._nearestSnap(newX, newY); + this.currentPage = snap; + time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(newX - snap.x), 1000), + Math.min(Math.abs(newY - snap.y), 1000) + ), 300); + newX = snap.x; + newY = snap.y; - this.directionX = 0; - this.directionY = 0; - easing = this.options.bounceEasing; - } + this.directionX = 0; + this.directionY = 0; + easing = this.options.bounceEasing; + } // INSERT POINT: _end - if ( newX != this.x || newY != this.y ) { - // change easing function when scroller goes out of the boundaries - if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) { - easing = utils.ease.quadratic; - } + if ( newX != this.x || newY != this.y ) { + // change easing function when scroller goes out of the boundaries + if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) { + easing = utils.ease.quadratic; + } - this.scrollTo(newX, newY, time, easing); - return; - } + this.scrollTo(newX, newY, time, easing); + return; + } - this._execEvent('scrollEnd'); - }, + this._execEvent('scrollEnd'); + }, - _resize: function () { - var that = this; + _resize: function () { + var that = this; - clearTimeout(this.resizeTimeout); + clearTimeout(this.resizeTimeout); - this.resizeTimeout = setTimeout(function () { - that.refresh(); - }, this.options.resizePolling); - }, + this.resizeTimeout = setTimeout(function () { + that.refresh(); + }, this.options.resizePolling); + }, - resetPosition: function (time) { - var x = this.x, - y = this.y; + resetPosition: function (time) { + var x = this.x, + y = this.y; - time = time || 0; + time = time || 0; - if ( !this.hasHorizontalScroll || this.x > 0 ) { - x = 0; - } else if ( this.x < this.maxScrollX ) { - x = this.maxScrollX; - } + if ( !this.hasHorizontalScroll || this.x > 0 ) { + x = 0; + } else if ( this.x < this.maxScrollX ) { + x = this.maxScrollX; + } - if ( !this.hasVerticalScroll || this.y > 0 ) { - y = 0; - } else if ( this.y < this.maxScrollY ) { - y = this.maxScrollY; - } + if ( !this.hasVerticalScroll || this.y > 0 ) { + y = 0; + } else if ( this.y < this.maxScrollY ) { + y = this.maxScrollY; + } - if ( x == this.x && y == this.y ) { - return false; - } + if ( x == this.x && y == this.y ) { + return false; + } - this.scrollTo(x, y, time, this.options.bounceEasing); + this.scrollTo(x, y, time, this.options.bounceEasing); - return true; - }, + return true; + }, - disable: function () { - this.enabled = false; - }, + disable: function () { + this.enabled = false; + }, - enable: function () { - this.enabled = true; - }, + enable: function () { + this.enabled = true; + }, - refresh: function () { - var rf = this.wrapper.offsetHeight; // Force reflow + refresh: function () { + utils.getRect(this.wrapper); // Force reflow - this.wrapperWidth = this.wrapper.clientWidth; - this.wrapperHeight = this.wrapper.clientHeight; + this.wrapperWidth = this.wrapper.clientWidth; + this.wrapperHeight = this.wrapper.clientHeight; + var rect = utils.getRect(this.scroller); /* REPLACE START: refresh */ - this.scrollerWidth = this.scroller.offsetWidth; - this.scrollerHeight = this.scroller.offsetHeight; + this.scrollerWidth = rect.width; + this.scrollerHeight = rect.height; - this.maxScrollX = this.wrapperWidth - this.scrollerWidth; - this.maxScrollY = this.wrapperHeight - this.scrollerHeight; + this.maxScrollX = this.wrapperWidth - this.scrollerWidth; + this.maxScrollY = this.wrapperHeight - this.scrollerHeight; /* REPLACE END: refresh */ - this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; - this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; + this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + + if ( !this.hasHorizontalScroll ) { + this.maxScrollX = 0; + this.scrollerWidth = this.wrapperWidth; + } - if ( !this.hasHorizontalScroll ) { - this.maxScrollX = 0; - this.scrollerWidth = this.wrapperWidth; - } + if ( !this.hasVerticalScroll ) { + this.maxScrollY = 0; + this.scrollerHeight = this.wrapperHeight; + } - if ( !this.hasVerticalScroll ) { - this.maxScrollY = 0; - this.scrollerHeight = this.wrapperHeight; - } + this.endTime = 0; + this.directionX = 0; + this.directionY = 0; + + if(utils.hasPointer && !this.options.disablePointer) { + // The wrapper should have `touchAction` property for using pointerEvent. + this.wrapper.style[utils.style.touchAction] = utils.getTouchAction(this.options.eventPassthrough, true); - this.endTime = 0; - this.directionX = 0; - this.directionY = 0; + // case. not support 'pinch-zoom' + // https://github.com/cubiq/iscroll/issues/1118#issuecomment-270057583 + if (!this.wrapper.style[utils.style.touchAction]) { + this.wrapper.style[utils.style.touchAction] = utils.getTouchAction(this.options.eventPassthrough, false); + } + } + this.wrapperOffset = utils.offset(this.wrapper); - this.wrapperOffset = utils.offset(this.wrapper); + this._execEvent('refresh'); - this._execEvent('refresh'); - - this.resetPosition(); + this.resetPosition(); // INSERT POINT: _refresh - }, - - on: function (type, fn) { - if ( !this._events[type] ) { - this._events[type] = []; - } + }, - this._events[type].push(fn); - }, + on: function (type, fn) { + if ( !this._events[type] ) { + this._events[type] = []; + } - off: function (type, fn) { - if ( !this._events[type] ) { - return; - } + this._events[type].push(fn); + }, - var index = this._events[type].indexOf(fn); + off: function (type, fn) { + if ( !this._events[type] ) { + return; + } - if ( index > -1 ) { - this._events[type].splice(index, 1); - } - }, + var index = this._events[type].indexOf(fn); - _execEvent: function (type) { - if ( !this._events[type] ) { - return; - } + if ( index > -1 ) { + this._events[type].splice(index, 1); + } + }, - var i = 0, - l = this._events[type].length; + _execEvent: function (type) { + if ( !this._events[type] ) { + return; + } - if ( !l ) { - return; - } + var i = 0, + l = this._events[type].length; - for ( ; i < l; i++ ) { - this._events[type][i].apply(this, [].slice.call(arguments, 1)); - } - }, + if ( !l ) { + return; + } - scrollBy: function (x, y, time, easing) { - x = this.x + x; - y = this.y + y; - time = time || 0; + for ( ; i < l; i++ ) { + this._events[type][i].apply(this, [].slice.call(arguments, 1)); + } + }, - this.scrollTo(x, y, time, easing); - }, + scrollBy: function (x, y, time, easing) { + x = this.x + x; + y = this.y + y; + time = time || 0; - scrollTo: function (x, y, time, easing) { - easing = easing || utils.ease.circular; + this.scrollTo(x, y, time, easing); + }, - this.isInTransition = this.options.useTransition && time > 0; + scrollTo: function (x, y, time, easing) { + easing = easing || utils.ease.circular; - if ( !time || (this.options.useTransition && easing.style) ) { - this._transitionTimingFunction(easing.style); - this._transitionTime(time); - this._translate(x, y); - } else { - this._animate(x, y, time, easing.fn); - } - }, + this.isInTransition = this.options.useTransition && time > 0; + var transitionType = this.options.useTransition && easing.style; + if ( !time || transitionType ) { + if(transitionType) { + this._transitionTimingFunction(easing.style); + this._transitionTime(time); + } + this._translate(x, y); + } else { + this._animate(x, y, time, easing.fn); + } + }, - scrollToElement: function (el, time, offsetX, offsetY, easing) { - el = el.nodeType ? el : this.scroller.querySelector(el); + scrollToElement: function (el, time, offsetX, offsetY, easing) { + el = el.nodeType ? el : this.scroller.querySelector(el); - if ( !el ) { - return; - } + if ( !el ) { + return; + } - var pos = utils.offset(el); + var pos = utils.offset(el); - pos.left -= this.wrapperOffset.left; - pos.top -= this.wrapperOffset.top; + pos.left -= this.wrapperOffset.left; + pos.top -= this.wrapperOffset.top; - // if offsetX/Y are true we center the element to the screen - if ( offsetX === true ) { - offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2); - } - if ( offsetY === true ) { - offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2); - } + // if offsetX/Y are true we center the element to the screen + var elRect = utils.getRect(el); + var wrapperRect = utils.getRect(this.wrapper); + if ( offsetX === true ) { + offsetX = Math.round(elRect.width / 2 - wrapperRect.width / 2); + } + if ( offsetY === true ) { + offsetY = Math.round(elRect.height / 2 - wrapperRect.height / 2); + } - pos.left -= offsetX || 0; - pos.top -= offsetY || 0; + pos.left -= offsetX || 0; + pos.top -= offsetY || 0; - pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left; - pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top; + pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left; + pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top; - time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time; + time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time; - this.scrollTo(pos.left, pos.top, time, easing); - }, + this.scrollTo(pos.left, pos.top, time, easing); + }, - _transitionTime: function (time) { - time = time || 0; + _transitionTime: function (time) { + if (!this.options.useTransition) { + return; + } + time = time || 0; + var durationProp = utils.style.transitionDuration; + if(!durationProp) { + return; + } - this.scrollerStyle[utils.style.transitionDuration] = time + 'ms'; + this.scrollerStyle[durationProp] = time + 'ms'; - if ( !time && utils.isBadAndroid ) { - this.scrollerStyle[utils.style.transitionDuration] = '0.001s'; - } + if ( !time && utils.isBadAndroid ) { + this.scrollerStyle[durationProp] = '0.0001ms'; + // remove 0.0001ms + var self = this; + rAF(function() { + if(self.scrollerStyle[durationProp] === '0.0001ms') { + self.scrollerStyle[durationProp] = '0s'; + } + }); + } - if ( this.indicators ) { - for ( var i = this.indicators.length; i--; ) { - this.indicators[i].transitionTime(time); - } - } + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTime(time); + } + } // INSERT POINT: _transitionTime - }, + }, - _transitionTimingFunction: function (easing) { - this.scrollerStyle[utils.style.transitionTimingFunction] = easing; + _transitionTimingFunction: function (easing) { + this.scrollerStyle[utils.style.transitionTimingFunction] = easing; - if ( this.indicators ) { - for ( var i = this.indicators.length; i--; ) { - this.indicators[i].transitionTimingFunction(easing); - } - } + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTimingFunction(easing); + } + } // INSERT POINT: _transitionTimingFunction - }, + }, - _translate: function (x, y) { - if ( this.options.useTransform ) { + _translate: function (x, y) { + if ( this.options.useTransform ) { /* REPLACE START: _translate */ - this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ; + this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ; /* REPLACE END: _translate */ - } else { - x = Math.round(x); - y = Math.round(y); - this.scrollerStyle.left = x + 'px'; - this.scrollerStyle.top = y + 'px'; - } + } else { + x = Math.round(x); + y = Math.round(y); + this.scrollerStyle.left = x + 'px'; + this.scrollerStyle.top = y + 'px'; + } - this.x = x; - this.y = y; + this.x = x; + this.y = y; - if ( this.indicators ) { - for ( var i = this.indicators.length; i--; ) { - this.indicators[i].updatePosition(); - } - } + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].updatePosition(); + } + } // INSERT POINT: _translate - }, + }, - _initEvents: function (remove) { - var eventType = remove ? utils.removeEvent : utils.addEvent, - target = this.options.bindToWrapper ? this.wrapper : window; + _initEvents: function (remove) { + var eventType = remove ? utils.removeEvent : utils.addEvent, + target = this.options.bindToWrapper ? this.wrapper : window; - eventType(window, 'orientationchange', this); - eventType(window, 'resize', this); + eventType(window, 'orientationchange', this); + eventType(window, 'resize', this); - if ( this.options.click ) { - eventType(this.wrapper, 'click', this, true); - } + if ( this.options.click ) { + eventType(this.wrapper, 'click', this, true); + } - if ( !this.options.disableMouse ) { - eventType(this.wrapper, 'mousedown', this); - eventType(target, 'mousemove', this); - eventType(target, 'mousecancel', this); - eventType(target, 'mouseup', this); - } + if ( !this.options.disableMouse ) { + eventType(this.wrapper, 'mousedown', this); + eventType(target, 'mousemove', this); + eventType(target, 'mousecancel', this); + eventType(target, 'mouseup', this); + } - if ( utils.hasPointer && !this.options.disablePointer ) { - eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this); - eventType(target, utils.prefixPointerEvent('pointermove'), this); - eventType(target, utils.prefixPointerEvent('pointercancel'), this); - eventType(target, utils.prefixPointerEvent('pointerup'), this); - } + if ( utils.hasPointer && !this.options.disablePointer ) { + eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this); + eventType(target, utils.prefixPointerEvent('pointermove'), this); + eventType(target, utils.prefixPointerEvent('pointercancel'), this); + eventType(target, utils.prefixPointerEvent('pointerup'), this); + } - if ( utils.hasTouch && !this.options.disableTouch ) { - eventType(this.wrapper, 'touchstart', this); - eventType(target, 'touchmove', this); - eventType(target, 'touchcancel', this); - eventType(target, 'touchend', this); - } + if ( utils.hasTouch && !this.options.disableTouch ) { + eventType(this.wrapper, 'touchstart', this); + eventType(target, 'touchmove', this); + eventType(target, 'touchcancel', this); + eventType(target, 'touchend', this); + } - eventType(this.scroller, 'transitionend', this); - eventType(this.scroller, 'webkitTransitionEnd', this); - eventType(this.scroller, 'oTransitionEnd', this); - eventType(this.scroller, 'MSTransitionEnd', this); - }, + eventType(this.scroller, 'transitionend', this); + eventType(this.scroller, 'webkitTransitionEnd', this); + eventType(this.scroller, 'oTransitionEnd', this); + eventType(this.scroller, 'MSTransitionEnd', this); + }, - getComputedPosition: function () { - var matrix = window.getComputedStyle(this.scroller, null), - x, y; + getComputedPosition: function () { + var matrix = window.getComputedStyle(this.scroller, null), + x, y; - if ( this.options.useTransform ) { - matrix = matrix[utils.style.transform].split(')')[0].split(', '); - x = +(matrix[12] || matrix[4]); - y = +(matrix[13] || matrix[5]); - } else { - x = +matrix.left.replace(/[^-\d.]/g, ''); - y = +matrix.top.replace(/[^-\d.]/g, ''); - } + if ( this.options.useTransform ) { + matrix = matrix[utils.style.transform].split(')')[0].split(', '); + x = +(matrix[12] || matrix[4]); + y = +(matrix[13] || matrix[5]); + } else { + x = +matrix.left.replace(/[^-\d.]/g, ''); + y = +matrix.top.replace(/[^-\d.]/g, ''); + } - return { x: x, y: y }; - }, + return { x: x, y: y }; + }, + _initIndicators: function () { + var interactive = this.options.interactiveScrollbars, + customStyle = typeof this.options.scrollbars != 'string', + indicators = [], + indicator; - _initIndicators: function () { - var interactive = this.options.interactiveScrollbars, - customStyle = typeof this.options.scrollbars != 'string', - indicators = [], - indicator; + var that = this; - var that = this; + this.indicators = []; - this.indicators = []; + if ( this.options.scrollbars ) { + // Vertical scrollbar + if ( this.options.scrollY ) { + indicator = { + el: createDefaultScrollbar('v', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenX: false + }; - if ( this.options.scrollbars ) { - // Vertical scrollbar - if ( this.options.scrollY ) { - indicator = { - el: createDefaultScrollbar('v', interactive, this.options.scrollbars), - interactive: interactive, - defaultScrollbars: true, - customStyle: customStyle, - resize: this.options.resizeScrollbars, - shrink: this.options.shrinkScrollbars, - fade: this.options.fadeScrollbars, - listenX: false - }; + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } - this.wrapper.appendChild(indicator.el); - indicators.push(indicator); - } + // Horizontal scrollbar + if ( this.options.scrollX ) { + indicator = { + el: createDefaultScrollbar('h', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenY: false + }; - // Horizontal scrollbar - if ( this.options.scrollX ) { - indicator = { - el: createDefaultScrollbar('h', interactive, this.options.scrollbars), - interactive: interactive, - defaultScrollbars: true, - customStyle: customStyle, - resize: this.options.resizeScrollbars, - shrink: this.options.shrinkScrollbars, - fade: this.options.fadeScrollbars, - listenY: false - }; + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + } - this.wrapper.appendChild(indicator.el); - indicators.push(indicator); - } - } + if ( this.options.indicators ) { + // TODO: check concat compatibility + indicators = indicators.concat(this.options.indicators); + } - if ( this.options.indicators ) { - // TODO: check concat compatibility - indicators = indicators.concat(this.options.indicators); - } + for ( var i = indicators.length; i--; ) { + this.indicators.push( new Indicator(this, indicators[i]) ); + } - for ( var i = indicators.length; i--; ) { - this.indicators.push( new Indicator(this, indicators[i]) ); - } + // TODO: check if we can use array.map (wide compatibility and performance issues) + function _indicatorsMap (fn) { + if (that.indicators) { + for ( var i = that.indicators.length; i--; ) { + fn.call(that.indicators[i]); + } + } + } - // TODO: check if we can use array.map (wide compatibility and performance issues) - function _indicatorsMap (fn) { - for ( var i = that.indicators.length; i--; ) { - fn.call(that.indicators[i]); - } - } + if ( this.options.fadeScrollbars ) { + this.on('scrollEnd', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); - if ( this.options.fadeScrollbars ) { - this.on('scrollEnd', function () { - _indicatorsMap(function () { - this.fade(); - }); - }); + this.on('scrollCancel', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); - this.on('scrollCancel', function () { - _indicatorsMap(function () { - this.fade(); - }); - }); + this.on('scrollStart', function () { + _indicatorsMap(function () { + this.fade(1); + }); + }); - this.on('scrollStart', function () { - _indicatorsMap(function () { - this.fade(1); - }); - }); + this.on('beforeScrollStart', function () { + _indicatorsMap(function () { + this.fade(1, true); + }); + }); + } - this.on('beforeScrollStart', function () { - _indicatorsMap(function () { - this.fade(1, true); - }); - }); - } + this.on('refresh', function () { + _indicatorsMap(function () { + this.refresh(); + }); + }); - this.on('refresh', function () { - _indicatorsMap(function () { - this.refresh(); - }); - }); + this.on('destroy', function () { + _indicatorsMap(function () { + this.destroy(); + }); - this.on('destroy', function () { - _indicatorsMap(function () { - this.destroy(); - }); + delete this.indicators; + }); + }, - delete this.indicators; - }); - }, + _initWheel: function () { + utils.addEvent(this.wrapper, 'wheel', this); + utils.addEvent(this.wrapper, 'mousewheel', this); + utils.addEvent(this.wrapper, 'DOMMouseScroll', this); - _initWheel: function () { - utils.addEvent(this.wrapper, 'wheel', this); - utils.addEvent(this.wrapper, 'mousewheel', this); - utils.addEvent(this.wrapper, 'DOMMouseScroll', this); + this.on('destroy', function () { + clearTimeout(this.wheelTimeout); + this.wheelTimeout = null; + utils.removeEvent(this.wrapper, 'wheel', this); + utils.removeEvent(this.wrapper, 'mousewheel', this); + utils.removeEvent(this.wrapper, 'DOMMouseScroll', this); + }); + }, - this.on('destroy', function () { - utils.removeEvent(this.wrapper, 'wheel', this); - utils.removeEvent(this.wrapper, 'mousewheel', this); - utils.removeEvent(this.wrapper, 'DOMMouseScroll', this); - }); - }, + _wheel: function (e) { + if ( !this.enabled ) { + return; + } - _wheel: function (e) { - if ( !this.enabled ) { - return; - } + e.preventDefault(); - e.preventDefault(); - e.stopPropagation(); + var wheelDeltaX, wheelDeltaY, + newX, newY, + that = this; - var wheelDeltaX, wheelDeltaY, - newX, newY, - that = this; + if ( this.wheelTimeout === undefined ) { + that._execEvent('scrollStart'); + } - if ( this.wheelTimeout === undefined ) { - that._execEvent('scrollStart'); - } + // Execute the scrollEnd event after 400ms the wheel stopped scrolling + clearTimeout(this.wheelTimeout); + this.wheelTimeout = setTimeout(function () { + if(!that.options.snap) { + that._execEvent('scrollEnd'); + } + that.wheelTimeout = undefined; + }, 400); - // Execute the scrollEnd event after 400ms the wheel stopped scrolling - clearTimeout(this.wheelTimeout); - this.wheelTimeout = setTimeout(function () { - that._execEvent('scrollEnd'); - that.wheelTimeout = undefined; - }, 400); + if ( 'deltaX' in e ) { + if (e.deltaMode === 1) { + wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed; + wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed; + } else { + wheelDeltaX = -e.deltaX; + wheelDeltaY = -e.deltaY; + } + } else if ( 'wheelDeltaX' in e ) { + wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed; + wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed; + } else if ( 'wheelDelta' in e ) { + wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed; + } else if ( 'detail' in e ) { + wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed; + } else { + return; + } - if ( 'deltaX' in e ) { - if (e.deltaMode === 1) { - wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed; - wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed; - } else { - wheelDeltaX = -e.deltaX; - wheelDeltaY = -e.deltaY; - } - } else if ( 'wheelDeltaX' in e ) { - wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed; - wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed; - } else if ( 'wheelDelta' in e ) { - wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed; - } else if ( 'detail' in e ) { - wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed; - } else { - return; - } + wheelDeltaX *= this.options.invertWheelDirection; + wheelDeltaY *= this.options.invertWheelDirection; - wheelDeltaX *= this.options.invertWheelDirection; - wheelDeltaY *= this.options.invertWheelDirection; + if ( !this.hasVerticalScroll ) { + wheelDeltaX = wheelDeltaY; + wheelDeltaY = 0; + } - if ( !this.hasVerticalScroll ) { - wheelDeltaX = wheelDeltaY; - wheelDeltaY = 0; - } + if ( this.options.snap ) { + newX = this.currentPage.pageX; + newY = this.currentPage.pageY; - if ( this.options.snap ) { - newX = this.currentPage.pageX; - newY = this.currentPage.pageY; + if ( wheelDeltaX > 0 ) { + newX--; + } else if ( wheelDeltaX < 0 ) { + newX++; + } - if ( wheelDeltaX > 0 ) { - newX--; - } else if ( wheelDeltaX < 0 ) { - newX++; - } + if ( wheelDeltaY > 0 ) { + newY--; + } else if ( wheelDeltaY < 0 ) { + newY++; + } - if ( wheelDeltaY > 0 ) { - newY--; - } else if ( wheelDeltaY < 0 ) { - newY++; - } + this.goToPage(newX, newY); - this.goToPage(newX, newY); + return; + } - return; - } + newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0); + newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0); - newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0); - newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0); + this.directionX = wheelDeltaX > 0 ? -1 : wheelDeltaX < 0 ? 1 : 0; + this.directionY = wheelDeltaY > 0 ? -1 : wheelDeltaY < 0 ? 1 : 0; - if ( newX > 0 ) { - newX = 0; - } else if ( newX < this.maxScrollX ) { - newX = this.maxScrollX; - } + if ( newX > 0 ) { + newX = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + } - if ( newY > 0 ) { - newY = 0; - } else if ( newY < this.maxScrollY ) { - newY = this.maxScrollY; - } + if ( newY > 0 ) { + newY = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + } - this.scrollTo(newX, newY, 0); + this.scrollTo(newX, newY, 0); // INSERT POINT: _wheel - }, + }, - _initSnap: function () { - this.currentPage = {}; + _initSnap: function () { + this.currentPage = {}; - if ( typeof this.options.snap == 'string' ) { - this.options.snap = this.scroller.querySelectorAll(this.options.snap); - } + if ( typeof this.options.snap == 'string' ) { + this.options.snap = this.scroller.querySelectorAll(this.options.snap); + } - this.on('refresh', function () { - var i = 0, l, - m = 0, n, - cx, cy, - x = 0, y, - stepX = this.options.snapStepX || this.wrapperWidth, - stepY = this.options.snapStepY || this.wrapperHeight, - el; + this.on('refresh', function () { + var i = 0, l, + m = 0, n, + cx, cy, + x = 0, y, + stepX = this.options.snapStepX || this.wrapperWidth, + stepY = this.options.snapStepY || this.wrapperHeight, + el, + rect; - this.pages = []; + this.pages = []; - if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) { - return; - } + if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) { + return; + } - if ( this.options.snap === true ) { - cx = Math.round( stepX / 2 ); - cy = Math.round( stepY / 2 ); + if ( this.options.snap === true ) { + cx = Math.round( stepX / 2 ); + cy = Math.round( stepY / 2 ); - while ( x > -this.scrollerWidth ) { - this.pages[i] = []; - l = 0; - y = 0; + while ( x > -this.scrollerWidth ) { + this.pages[i] = []; + l = 0; + y = 0; - while ( y > -this.scrollerHeight ) { - this.pages[i][l] = { - x: Math.max(x, this.maxScrollX), - y: Math.max(y, this.maxScrollY), - width: stepX, - height: stepY, - cx: x - cx, - cy: y - cy - }; + while ( y > -this.scrollerHeight ) { + this.pages[i][l] = { + x: Math.max(x, this.maxScrollX), + y: Math.max(y, this.maxScrollY), + width: stepX, + height: stepY, + cx: x - cx, + cy: y - cy + }; - y -= stepY; - l++; - } + y -= stepY; + l++; + } - x -= stepX; - i++; - } - } else { - el = this.options.snap; - l = el.length; - n = -1; + x -= stepX; + i++; + } + } else { + el = this.options.snap; + l = el.length; + n = -1; - for ( ; i < l; i++ ) { - if ( i === 0 || el[i].offsetLeft <= el[i-1].offsetLeft ) { - m = 0; - n++; - } + for ( ; i < l; i++ ) { + rect = utils.getRect(el[i]); + if ( i === 0 || rect.left <= utils.getRect(el[i-1]).left ) { + m = 0; + n++; + } - if ( !this.pages[m] ) { - this.pages[m] = []; - } + if ( !this.pages[m] ) { + this.pages[m] = []; + } - x = Math.max(-el[i].offsetLeft, this.maxScrollX); - y = Math.max(-el[i].offsetTop, this.maxScrollY); - cx = x - Math.round(el[i].offsetWidth / 2); - cy = y - Math.round(el[i].offsetHeight / 2); + x = Math.max(-rect.left, this.maxScrollX); + y = Math.max(-rect.top, this.maxScrollY); + cx = x - Math.round(rect.width / 2); + cy = y - Math.round(rect.height / 2); - this.pages[m][n] = { - x: x, - y: y, - width: el[i].offsetWidth, - height: el[i].offsetHeight, - cx: cx, - cy: cy - }; + this.pages[m][n] = { + x: x, + y: y, + width: rect.width, + height: rect.height, + cx: cx, + cy: cy + }; - if ( x > this.maxScrollX ) { - m++; - } - } - } + if ( x > this.maxScrollX ) { + m++; + } + } + } - this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0); + this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0); - // Update snap threshold if needed - if ( this.options.snapThreshold % 1 === 0 ) { - this.snapThresholdX = this.options.snapThreshold; - this.snapThresholdY = this.options.snapThreshold; - } else { - this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold); - this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold); - } - }); + // Update snap threshold if needed + if ( this.options.snapThreshold % 1 === 0 ) { + this.snapThresholdX = this.options.snapThreshold; + this.snapThresholdY = this.options.snapThreshold; + } else { + this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold); + this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold); + } + }); - this.on('flick', function () { - var time = this.options.snapSpeed || Math.max( - Math.max( - Math.min(Math.abs(this.x - this.startX), 1000), - Math.min(Math.abs(this.y - this.startY), 1000) - ), 300); + this.on('flick', function () { + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.x - this.startX), 1000), + Math.min(Math.abs(this.y - this.startY), 1000) + ), 300); - this.goToPage( - this.currentPage.pageX + this.directionX, - this.currentPage.pageY + this.directionY, - time - ); - }); - }, + this.goToPage( + this.currentPage.pageX + this.directionX, + this.currentPage.pageY + this.directionY, + time + ); + }); + }, - _nearestSnap: function (x, y) { - if ( !this.pages.length ) { - return { x: 0, y: 0, pageX: 0, pageY: 0 }; - } + _nearestSnap: function (x, y) { + if ( !this.pages.length ) { + return { x: 0, y: 0, pageX: 0, pageY: 0 }; + } - var i = 0, - l = this.pages.length, - m = 0; + var i = 0, + l = this.pages.length, + m = 0; - // Check if we exceeded the snap threshold - if ( Math.abs(x - this.absStartX) < this.snapThresholdX && - Math.abs(y - this.absStartY) < this.snapThresholdY ) { - return this.currentPage; - } + // Check if we exceeded the snap threshold + if ( Math.abs(x - this.absStartX) < this.snapThresholdX && + Math.abs(y - this.absStartY) < this.snapThresholdY ) { + return this.currentPage; + } - if ( x > 0 ) { - x = 0; - } else if ( x < this.maxScrollX ) { - x = this.maxScrollX; - } + if ( x > 0 ) { + x = 0; + } else if ( x < this.maxScrollX ) { + x = this.maxScrollX; + } - if ( y > 0 ) { - y = 0; - } else if ( y < this.maxScrollY ) { - y = this.maxScrollY; - } + if ( y > 0 ) { + y = 0; + } else if ( y < this.maxScrollY ) { + y = this.maxScrollY; + } - for ( ; i < l; i++ ) { - if ( x >= this.pages[i][0].cx ) { - x = this.pages[i][0].x; - break; - } - } + for ( ; i < l; i++ ) { + if ( x >= this.pages[i][0].cx ) { + x = this.pages[i][0].x; + break; + } + } - l = this.pages[i].length; + l = this.pages[i].length; - for ( ; m < l; m++ ) { - if ( y >= this.pages[0][m].cy ) { - y = this.pages[0][m].y; - break; - } - } + for ( ; m < l; m++ ) { + if ( y >= this.pages[0][m].cy ) { + y = this.pages[0][m].y; + break; + } + } - if ( i == this.currentPage.pageX ) { - i += this.directionX; + if ( i == this.currentPage.pageX ) { + i += this.directionX; - if ( i < 0 ) { - i = 0; - } else if ( i >= this.pages.length ) { - i = this.pages.length - 1; - } + if ( i < 0 ) { + i = 0; + } else if ( i >= this.pages.length ) { + i = this.pages.length - 1; + } - x = this.pages[i][0].x; - } + x = this.pages[i][0].x; + } - if ( m == this.currentPage.pageY ) { - m += this.directionY; + if ( m == this.currentPage.pageY ) { + m += this.directionY; - if ( m < 0 ) { - m = 0; - } else if ( m >= this.pages[0].length ) { - m = this.pages[0].length - 1; - } + if ( m < 0 ) { + m = 0; + } else if ( m >= this.pages[0].length ) { + m = this.pages[0].length - 1; + } - y = this.pages[0][m].y; - } + y = this.pages[0][m].y; + } - return { - x: x, - y: y, - pageX: i, - pageY: m - }; - }, + return { + x: x, + y: y, + pageX: i, + pageY: m + }; + }, - goToPage: function (x, y, time, easing) { - easing = easing || this.options.bounceEasing; + goToPage: function (x, y, time, easing) { + easing = easing || this.options.bounceEasing; - if ( x >= this.pages.length ) { - x = this.pages.length - 1; - } else if ( x < 0 ) { - x = 0; - } + if ( x >= this.pages.length ) { + x = this.pages.length - 1; + } else if ( x < 0 ) { + x = 0; + } - if ( y >= this.pages[x].length ) { - y = this.pages[x].length - 1; - } else if ( y < 0 ) { - y = 0; - } + if ( y >= this.pages[x].length ) { + y = this.pages[x].length - 1; + } else if ( y < 0 ) { + y = 0; + } - var posX = this.pages[x][y].x, - posY = this.pages[x][y].y; + var posX = this.pages[x][y].x, + posY = this.pages[x][y].y; - time = time === undefined ? this.options.snapSpeed || Math.max( - Math.max( - Math.min(Math.abs(posX - this.x), 1000), - Math.min(Math.abs(posY - this.y), 1000) - ), 300) : time; + time = time === undefined ? this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(posX - this.x), 1000), + Math.min(Math.abs(posY - this.y), 1000) + ), 300) : time; - this.currentPage = { - x: posX, - y: posY, - pageX: x, - pageY: y - }; + this.currentPage = { + x: posX, + y: posY, + pageX: x, + pageY: y + }; - this.scrollTo(posX, posY, time, easing); - }, + this.scrollTo(posX, posY, time, easing); + }, - next: function (time, easing) { - var x = this.currentPage.pageX, - y = this.currentPage.pageY; + next: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; - x++; + x++; - if ( x >= this.pages.length && this.hasVerticalScroll ) { - x = 0; - y++; - } + if ( x >= this.pages.length && this.hasVerticalScroll ) { + x = 0; + y++; + } - this.goToPage(x, y, time, easing); - }, + this.goToPage(x, y, time, easing); + }, - prev: function (time, easing) { - var x = this.currentPage.pageX, - y = this.currentPage.pageY; + prev: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; - x--; + x--; - if ( x < 0 && this.hasVerticalScroll ) { - x = 0; - y--; - } + if ( x < 0 && this.hasVerticalScroll ) { + x = 0; + y--; + } - this.goToPage(x, y, time, easing); - }, + this.goToPage(x, y, time, easing); + }, - _initKeys: function (e) { - // default key bindings - var keys = { - pageUp: 33, - pageDown: 34, - end: 35, - home: 36, - left: 37, - up: 38, - right: 39, - down: 40 - }; - var i; + _initKeys: function (e) { + // default key bindings + var keys = { + pageUp: 33, + pageDown: 34, + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40 + }; + var i; - // if you give me characters I give you keycode - if ( typeof this.options.keyBindings == 'object' ) { - for ( i in this.options.keyBindings ) { - if ( typeof this.options.keyBindings[i] == 'string' ) { - this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0); - } - } - } else { - this.options.keyBindings = {}; - } + // if you give me characters I give you keycode + if ( typeof this.options.keyBindings == 'object' ) { + for ( i in this.options.keyBindings ) { + if ( typeof this.options.keyBindings[i] == 'string' ) { + this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0); + } + } + } else { + this.options.keyBindings = {}; + } - for ( i in keys ) { - this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i]; - } + for ( i in keys ) { + this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i]; + } - utils.addEvent(window, 'keydown', this); + utils.addEvent(window, 'keydown', this); - this.on('destroy', function () { - utils.removeEvent(window, 'keydown', this); - }); - }, + this.on('destroy', function () { + utils.removeEvent(window, 'keydown', this); + }); + }, - _key: function (e) { - if ( !this.enabled ) { - return; - } + _key: function (e) { + if ( !this.enabled ) { + return; + } - var snap = this.options.snap, // we are using this alot, better to cache it - newX = snap ? this.currentPage.pageX : this.x, - newY = snap ? this.currentPage.pageY : this.y, - now = utils.getTime(), - prevTime = this.keyTime || 0, - acceleration = 0.250, - pos; + var snap = this.options.snap, // we are using this alot, better to cache it + newX = snap ? this.currentPage.pageX : this.x, + newY = snap ? this.currentPage.pageY : this.y, + now = utils.getTime(), + prevTime = this.keyTime || 0, + acceleration = 0.250, + pos; - if ( this.options.useTransition && this.isInTransition ) { - pos = this.getComputedPosition(); + if ( this.options.useTransition && this.isInTransition ) { + pos = this.getComputedPosition(); - this._translate(Math.round(pos.x), Math.round(pos.y)); - this.isInTransition = false; - } + this._translate(Math.round(pos.x), Math.round(pos.y)); + this.isInTransition = false; + } - this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0; + this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0; - switch ( e.keyCode ) { - case this.options.keyBindings.pageUp: - if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { - newX += snap ? 1 : this.wrapperWidth; - } else { - newY += snap ? 1 : this.wrapperHeight; - } - break; - case this.options.keyBindings.pageDown: - if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { - newX -= snap ? 1 : this.wrapperWidth; - } else { - newY -= snap ? 1 : this.wrapperHeight; - } - break; - case this.options.keyBindings.end: - newX = snap ? this.pages.length-1 : this.maxScrollX; - newY = snap ? this.pages[0].length-1 : this.maxScrollY; - break; - case this.options.keyBindings.home: - newX = 0; - newY = 0; - break; - case this.options.keyBindings.left: - newX += snap ? -1 : 5 + this.keyAcceleration>>0; - break; - case this.options.keyBindings.up: - newY += snap ? 1 : 5 + this.keyAcceleration>>0; - break; - case this.options.keyBindings.right: - newX -= snap ? -1 : 5 + this.keyAcceleration>>0; - break; - case this.options.keyBindings.down: - newY -= snap ? 1 : 5 + this.keyAcceleration>>0; - break; - default: - return; - } + switch ( e.keyCode ) { + case this.options.keyBindings.pageUp: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX += snap ? 1 : this.wrapperWidth; + } else { + newY += snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.pageDown: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX -= snap ? 1 : this.wrapperWidth; + } else { + newY -= snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.end: + newX = snap ? this.pages.length-1 : this.maxScrollX; + newY = snap ? this.pages[0].length-1 : this.maxScrollY; + break; + case this.options.keyBindings.home: + newX = 0; + newY = 0; + break; + case this.options.keyBindings.left: + newX += snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.up: + newY += snap ? 1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.right: + newX -= snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.down: + newY -= snap ? 1 : 5 + this.keyAcceleration>>0; + break; + default: + return; + } - if ( snap ) { - this.goToPage(newX, newY); - return; - } + if ( snap ) { + this.goToPage(newX, newY); + return; + } - if ( newX > 0 ) { - newX = 0; - this.keyAcceleration = 0; - } else if ( newX < this.maxScrollX ) { - newX = this.maxScrollX; - this.keyAcceleration = 0; - } + if ( newX > 0 ) { + newX = 0; + this.keyAcceleration = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + this.keyAcceleration = 0; + } - if ( newY > 0 ) { - newY = 0; - this.keyAcceleration = 0; - } else if ( newY < this.maxScrollY ) { - newY = this.maxScrollY; - this.keyAcceleration = 0; - } + if ( newY > 0 ) { + newY = 0; + this.keyAcceleration = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + this.keyAcceleration = 0; + } - this.scrollTo(newX, newY, 0); + this.scrollTo(newX, newY, 0); - this.keyTime = now; - }, + this.keyTime = now; + }, - _animate: function (destX, destY, duration, easingFn) { - var that = this, - startX = this.x, - startY = this.y, - startTime = utils.getTime(), - destTime = startTime + duration; + _animate: function (destX, destY, duration, easingFn) { + var that = this, + startX = this.x, + startY = this.y, + startTime = utils.getTime(), + destTime = startTime + duration; - function step () { - var now = utils.getTime(), - newX, newY, - easing; + function step () { + var now = utils.getTime(), + newX, newY, + easing; - if ( now >= destTime ) { - that.isAnimating = false; - that._translate(destX, destY); + if ( now >= destTime ) { + that.isAnimating = false; + that._translate(destX, destY); - if ( !that.resetPosition(that.options.bounceTime) ) { - that._execEvent('scrollEnd'); - } + if ( !that.resetPosition(that.options.bounceTime) ) { + that._execEvent('scrollEnd'); + } - return; - } + return; + } - now = ( now - startTime ) / duration; - easing = easingFn(now); - newX = ( destX - startX ) * easing + startX; - newY = ( destY - startY ) * easing + startY; - that._translate(newX, newY); + now = ( now - startTime ) / duration; + easing = easingFn(now); + newX = ( destX - startX ) * easing + startX; + newY = ( destY - startY ) * easing + startY; + that._translate(newX, newY); - if ( that.isAnimating ) { - rAF(step); - } - } + if ( that.isAnimating ) { + rAF(step); + } + } - this.isAnimating = true; - step(); - }, - handleEvent: function (e) { - switch ( e.type ) { - case 'touchstart': - case 'pointerdown': - case 'MSPointerDown': - case 'mousedown': - this._start(e); - break; - case 'touchmove': - case 'pointermove': - case 'MSPointerMove': - case 'mousemove': - this._move(e); - break; - case 'touchend': - case 'pointerup': - case 'MSPointerUp': - case 'mouseup': - case 'touchcancel': - case 'pointercancel': - case 'MSPointerCancel': - case 'mousecancel': - this._end(e); - break; - case 'orientationchange': - case 'resize': - this._resize(); - break; - case 'transitionend': - case 'webkitTransitionEnd': - case 'oTransitionEnd': - case 'MSTransitionEnd': - this._transitionEnd(e); - break; - case 'wheel': - case 'DOMMouseScroll': - case 'mousewheel': - this._wheel(e); - break; - case 'keydown': - this._key(e); - break; - case 'click': - if ( !e._constructed ) { - e.preventDefault(); - e.stopPropagation(); - } - break; - } - } + this.isAnimating = true; + step(); + }, + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + case 'orientationchange': + case 'resize': + this._resize(); + break; + case 'transitionend': + case 'webkitTransitionEnd': + case 'oTransitionEnd': + case 'MSTransitionEnd': + this._transitionEnd(e); + break; + case 'wheel': + case 'DOMMouseScroll': + case 'mousewheel': + this._wheel(e); + break; + case 'keydown': + this._key(e); + break; + case 'click': + if ( this.enabled && !e._constructed ) { + e.preventDefault(); + e.stopPropagation(); + } + break; + } + } }; function createDefaultScrollbar (direction, interactive, type) { - var scrollbar = document.createElement('div'), - indicator = document.createElement('div'); + var scrollbar = document.createElement('div'), + indicator = document.createElement('div'); - if ( type === true ) { - scrollbar.style.cssText = 'position:absolute;z-index:9999'; - indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px'; - } + if ( type === true ) { + scrollbar.style.cssText = 'position:absolute;z-index:9999'; + indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px'; + } - indicator.className = 'iScrollIndicator'; + indicator.className = 'iScrollIndicator'; - if ( direction == 'h' ) { - if ( type === true ) { - scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0'; - indicator.style.height = '100%'; - } - scrollbar.className = 'iScrollHorizontalScrollbar'; - } else { - if ( type === true ) { - scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px'; - indicator.style.width = '100%'; - } - scrollbar.className = 'iScrollVerticalScrollbar'; - } + if ( direction == 'h' ) { + if ( type === true ) { + scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0'; + indicator.style.height = '100%'; + } + scrollbar.className = 'iScrollHorizontalScrollbar'; + } else { + if ( type === true ) { + scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px'; + indicator.style.width = '100%'; + } + scrollbar.className = 'iScrollVerticalScrollbar'; + } - scrollbar.style.cssText += ';overflow:hidden'; + scrollbar.style.cssText += ';overflow:hidden'; - if ( !interactive ) { - scrollbar.style.pointerEvents = 'none'; - } + if ( !interactive ) { + scrollbar.style.pointerEvents = 'none'; + } - scrollbar.appendChild(indicator); + scrollbar.appendChild(indicator); - return scrollbar; + return scrollbar; } function Indicator (scroller, options) { - this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el; - this.wrapperStyle = this.wrapper.style; - this.indicator = this.wrapper.children[0]; - this.indicatorStyle = this.indicator.style; - this.scroller = scroller; + this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el; + this.wrapperStyle = this.wrapper.style; + this.indicator = this.wrapper.children[0]; + this.indicatorStyle = this.indicator.style; + this.scroller = scroller; - this.options = { - listenX: true, - listenY: true, - interactive: false, - resize: true, - defaultScrollbars: false, - shrink: false, - fade: false, - speedRatioX: 0, - speedRatioY: 0 - }; + this.options = { + listenX: true, + listenY: true, + interactive: false, + resize: true, + defaultScrollbars: false, + shrink: false, + fade: false, + speedRatioX: 0, + speedRatioY: 0 + }; - for ( var i in options ) { - this.options[i] = options[i]; - } + for ( var i in options ) { + this.options[i] = options[i]; + } - this.sizeRatioX = 1; - this.sizeRatioY = 1; - this.maxPosX = 0; - this.maxPosY = 0; + this.sizeRatioX = 1; + this.sizeRatioY = 1; + this.maxPosX = 0; + this.maxPosY = 0; - if ( this.options.interactive ) { - if ( !this.options.disableTouch ) { - utils.addEvent(this.indicator, 'touchstart', this); - utils.addEvent(window, 'touchend', this); - } - if ( !this.options.disablePointer ) { - utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); - utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this); - } - if ( !this.options.disableMouse ) { - utils.addEvent(this.indicator, 'mousedown', this); - utils.addEvent(window, 'mouseup', this); - } - } + if ( this.options.interactive ) { + if ( !this.options.disableTouch ) { + utils.addEvent(this.indicator, 'touchstart', this); + utils.addEvent(window, 'touchend', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(this.indicator, 'mousedown', this); + utils.addEvent(window, 'mouseup', this); + } + } - if ( this.options.fade ) { - this.wrapperStyle[utils.style.transform] = this.scroller.translateZ; - this.wrapperStyle[utils.style.transitionDuration] = utils.isBadAndroid ? '0.001s' : '0ms'; - this.wrapperStyle.opacity = '0'; - } + if ( this.options.fade ) { + this.wrapperStyle[utils.style.transform] = this.scroller.translateZ; + var durationProp = utils.style.transitionDuration; + if(!durationProp) { + return; + } + this.wrapperStyle[durationProp] = utils.isBadAndroid ? '0.0001ms' : '0ms'; + // remove 0.0001ms + var self = this; + if(utils.isBadAndroid) { + rAF(function() { + if(self.wrapperStyle[durationProp] === '0.0001ms') { + self.wrapperStyle[durationProp] = '0s'; + } + }); + } + this.wrapperStyle.opacity = '0'; + } } Indicator.prototype = { - handleEvent: function (e) { - switch ( e.type ) { - case 'touchstart': - case 'pointerdown': - case 'MSPointerDown': - case 'mousedown': - this._start(e); - break; - case 'touchmove': - case 'pointermove': - case 'MSPointerMove': - case 'mousemove': - this._move(e); - break; - case 'touchend': - case 'pointerup': - case 'MSPointerUp': - case 'mouseup': - case 'touchcancel': - case 'pointercancel': - case 'MSPointerCancel': - case 'mousecancel': - this._end(e); - break; - } - }, + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + } + }, - destroy: function () { - if ( this.options.interactive ) { - utils.removeEvent(this.indicator, 'touchstart', this); - utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); - utils.removeEvent(this.indicator, 'mousedown', this); + destroy: function () { + if ( this.options.fadeScrollbars ) { + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; + } + if ( this.options.interactive ) { + utils.removeEvent(this.indicator, 'touchstart', this); + utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.removeEvent(this.indicator, 'mousedown', this); - utils.removeEvent(window, 'touchmove', this); - utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); - utils.removeEvent(window, 'mousemove', this); + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); - utils.removeEvent(window, 'touchend', this); - utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this); - utils.removeEvent(window, 'mouseup', this); - } + utils.removeEvent(window, 'touchend', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this); + utils.removeEvent(window, 'mouseup', this); + } - if ( this.options.defaultScrollbars ) { - this.wrapper.parentNode.removeChild(this.wrapper); - } - }, + if ( this.options.defaultScrollbars && this.wrapper.parentNode ) { + this.wrapper.parentNode.removeChild(this.wrapper); + } + }, - _start: function (e) { - var point = e.touches ? e.touches[0] : e; + _start: function (e) { + var point = e.touches ? e.touches[0] : e; - e.preventDefault(); - e.stopPropagation(); + e.preventDefault(); + e.stopPropagation(); - this.transitionTime(); + this.transitionTime(); - this.initiated = true; - this.moved = false; - this.lastPointX = point.pageX; - this.lastPointY = point.pageY; + this.initiated = true; + this.moved = false; + this.lastPointX = point.pageX; + this.lastPointY = point.pageY; - this.startTime = utils.getTime(); + this.startTime = utils.getTime(); - if ( !this.options.disableTouch ) { - utils.addEvent(window, 'touchmove', this); - } - if ( !this.options.disablePointer ) { - utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this); - } - if ( !this.options.disableMouse ) { - utils.addEvent(window, 'mousemove', this); - } + if ( !this.options.disableTouch ) { + utils.addEvent(window, 'touchmove', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(window, 'mousemove', this); + } - this.scroller._execEvent('beforeScrollStart'); - }, + this.scroller._execEvent('beforeScrollStart'); + }, - _move: function (e) { - var point = e.touches ? e.touches[0] : e, - deltaX, deltaY, - newX, newY, - timestamp = utils.getTime(); + _move: function (e) { + var point = e.touches ? e.touches[0] : e, + deltaX, deltaY, + newX, newY, + timestamp = utils.getTime(); - if ( !this.moved ) { - this.scroller._execEvent('scrollStart'); - } + if ( !this.moved ) { + this.scroller._execEvent('scrollStart'); + } - this.moved = true; + this.moved = true; - deltaX = point.pageX - this.lastPointX; - this.lastPointX = point.pageX; + deltaX = point.pageX - this.lastPointX; + this.lastPointX = point.pageX; - deltaY = point.pageY - this.lastPointY; - this.lastPointY = point.pageY; + deltaY = point.pageY - this.lastPointY; + this.lastPointY = point.pageY; - newX = this.x + deltaX; - newY = this.y + deltaY; + newX = this.x + deltaX; + newY = this.y + deltaY; - this._pos(newX, newY); + this._pos(newX, newY); // INSERT POINT: indicator._move - e.preventDefault(); - e.stopPropagation(); - }, + e.preventDefault(); + e.stopPropagation(); + }, + + _end: function (e) { + if ( !this.initiated ) { + return; + } - _end: function (e) { - if ( !this.initiated ) { - return; - } + this.initiated = false; - this.initiated = false; + e.preventDefault(); + e.stopPropagation(); - e.preventDefault(); - e.stopPropagation(); + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); - utils.removeEvent(window, 'touchmove', this); - utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); - utils.removeEvent(window, 'mousemove', this); + if ( this.scroller.options.snap ) { + var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y); - if ( this.scroller.options.snap ) { - var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y); + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.scroller.x - snap.x), 1000), + Math.min(Math.abs(this.scroller.y - snap.y), 1000) + ), 300); - var time = this.options.snapSpeed || Math.max( - Math.max( - Math.min(Math.abs(this.scroller.x - snap.x), 1000), - Math.min(Math.abs(this.scroller.y - snap.y), 1000) - ), 300); + if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) { + this.scroller.directionX = 0; + this.scroller.directionY = 0; + this.scroller.currentPage = snap; + this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing); + } + } - if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) { - this.scroller.directionX = 0; - this.scroller.directionY = 0; - this.scroller.currentPage = snap; - this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing); - } - } + if ( this.moved ) { + this.scroller._execEvent('scrollEnd'); + } + }, - if ( this.moved ) { - this.scroller._execEvent('scrollEnd'); - } - }, + transitionTime: function (time) { + time = time || 0; + var durationProp = utils.style.transitionDuration; + if(!durationProp) { + return; + } - transitionTime: function (time) { - time = time || 0; - this.indicatorStyle[utils.style.transitionDuration] = time + 'ms'; + this.indicatorStyle[durationProp] = time + 'ms'; - if ( !time && utils.isBadAndroid ) { - this.indicatorStyle[utils.style.transitionDuration] = '0.001s'; - } - }, + if ( !time && utils.isBadAndroid ) { + this.indicatorStyle[durationProp] = '0.0001ms'; + // remove 0.0001ms + var self = this; + rAF(function() { + if(self.indicatorStyle[durationProp] === '0.0001ms') { + self.indicatorStyle[durationProp] = '0s'; + } + }); + } + }, - transitionTimingFunction: function (easing) { - this.indicatorStyle[utils.style.transitionTimingFunction] = easing; - }, + transitionTimingFunction: function (easing) { + this.indicatorStyle[utils.style.transitionTimingFunction] = easing; + }, - refresh: function () { - this.transitionTime(); + refresh: function () { + this.transitionTime(); - if ( this.options.listenX && !this.options.listenY ) { - this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; - } else if ( this.options.listenY && !this.options.listenX ) { - this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; - } else { - this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; - } + if ( this.options.listenX && !this.options.listenY ) { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; + } else if ( this.options.listenY && !this.options.listenX ) { + this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; + } else { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; + } - if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) { - utils.addClass(this.wrapper, 'iScrollBothScrollbars'); - utils.removeClass(this.wrapper, 'iScrollLoneScrollbar'); + if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) { + utils.addClass(this.wrapper, 'iScrollBothScrollbars'); + utils.removeClass(this.wrapper, 'iScrollLoneScrollbar'); - if ( this.options.defaultScrollbars && this.options.customStyle ) { - if ( this.options.listenX ) { - this.wrapper.style.right = '8px'; - } else { - this.wrapper.style.bottom = '8px'; - } - } - } else { - utils.removeClass(this.wrapper, 'iScrollBothScrollbars'); - utils.addClass(this.wrapper, 'iScrollLoneScrollbar'); + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '8px'; + } else { + this.wrapper.style.bottom = '8px'; + } + } + } else { + utils.removeClass(this.wrapper, 'iScrollBothScrollbars'); + utils.addClass(this.wrapper, 'iScrollLoneScrollbar'); - if ( this.options.defaultScrollbars && this.options.customStyle ) { - if ( this.options.listenX ) { - this.wrapper.style.right = '2px'; - } else { - this.wrapper.style.bottom = '2px'; - } - } - } + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '2px'; + } else { + this.wrapper.style.bottom = '2px'; + } + } + } - var r = this.wrapper.offsetHeight; // force refresh + utils.getRect(this.wrapper); // force refresh - if ( this.options.listenX ) { - this.wrapperWidth = this.wrapper.clientWidth; - if ( this.options.resize ) { - this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); - this.indicatorStyle.width = this.indicatorWidth + 'px'; - } else { - this.indicatorWidth = this.indicator.clientWidth; - } + if ( this.options.listenX ) { + this.wrapperWidth = this.wrapper.clientWidth; + if ( this.options.resize ) { + this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); + this.indicatorStyle.width = this.indicatorWidth + 'px'; + } else { + this.indicatorWidth = this.indicator.clientWidth; + } - this.maxPosX = this.wrapperWidth - this.indicatorWidth; + this.maxPosX = this.wrapperWidth - this.indicatorWidth; - if ( this.options.shrink == 'clip' ) { - this.minBoundaryX = -this.indicatorWidth + 8; - this.maxBoundaryX = this.wrapperWidth - 8; - } else { - this.minBoundaryX = 0; - this.maxBoundaryX = this.maxPosX; - } + if ( this.options.shrink == 'clip' ) { + this.minBoundaryX = -this.indicatorWidth + 8; + this.maxBoundaryX = this.wrapperWidth - 8; + } else { + this.minBoundaryX = 0; + this.maxBoundaryX = this.maxPosX; + } - this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); - } + this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); + } - if ( this.options.listenY ) { - this.wrapperHeight = this.wrapper.clientHeight; - if ( this.options.resize ) { - this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); - this.indicatorStyle.height = this.indicatorHeight + 'px'; - } else { - this.indicatorHeight = this.indicator.clientHeight; - } + if ( this.options.listenY ) { + this.wrapperHeight = this.wrapper.clientHeight; + if ( this.options.resize ) { + this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); + this.indicatorStyle.height = this.indicatorHeight + 'px'; + } else { + this.indicatorHeight = this.indicator.clientHeight; + } - this.maxPosY = this.wrapperHeight - this.indicatorHeight; + this.maxPosY = this.wrapperHeight - this.indicatorHeight; - if ( this.options.shrink == 'clip' ) { - this.minBoundaryY = -this.indicatorHeight + 8; - this.maxBoundaryY = this.wrapperHeight - 8; - } else { - this.minBoundaryY = 0; - this.maxBoundaryY = this.maxPosY; - } + if ( this.options.shrink == 'clip' ) { + this.minBoundaryY = -this.indicatorHeight + 8; + this.maxBoundaryY = this.wrapperHeight - 8; + } else { + this.minBoundaryY = 0; + this.maxBoundaryY = this.maxPosY; + } - this.maxPosY = this.wrapperHeight - this.indicatorHeight; - this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); - } + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); + } - this.updatePosition(); - }, + this.updatePosition(); + }, - updatePosition: function () { - var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, - y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; + updatePosition: function () { + var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, + y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; - if ( !this.options.ignoreBoundaries ) { - if ( x < this.minBoundaryX ) { - if ( this.options.shrink == 'scale' ) { - this.width = Math.max(this.indicatorWidth + x, 8); - this.indicatorStyle.width = this.width + 'px'; - } - x = this.minBoundaryX; - } else if ( x > this.maxBoundaryX ) { - if ( this.options.shrink == 'scale' ) { - this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8); - this.indicatorStyle.width = this.width + 'px'; - x = this.maxPosX + this.indicatorWidth - this.width; - } else { - x = this.maxBoundaryX; - } - } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) { - this.width = this.indicatorWidth; - this.indicatorStyle.width = this.width + 'px'; - } + if ( !this.options.ignoreBoundaries ) { + if ( x < this.minBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth + x, 8); + this.indicatorStyle.width = this.width + 'px'; + } + x = this.minBoundaryX; + } else if ( x > this.maxBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8); + this.indicatorStyle.width = this.width + 'px'; + x = this.maxPosX + this.indicatorWidth - this.width; + } else { + x = this.maxBoundaryX; + } + } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) { + this.width = this.indicatorWidth; + this.indicatorStyle.width = this.width + 'px'; + } - if ( y < this.minBoundaryY ) { - if ( this.options.shrink == 'scale' ) { - this.height = Math.max(this.indicatorHeight + y * 3, 8); - this.indicatorStyle.height = this.height + 'px'; - } - y = this.minBoundaryY; - } else if ( y > this.maxBoundaryY ) { - if ( this.options.shrink == 'scale' ) { - this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); - this.indicatorStyle.height = this.height + 'px'; - y = this.maxPosY + this.indicatorHeight - this.height; - } else { - y = this.maxBoundaryY; - } - } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) { - this.height = this.indicatorHeight; - this.indicatorStyle.height = this.height + 'px'; - } - } + if ( y < this.minBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight + y * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + } + y = this.minBoundaryY; + } else if ( y > this.maxBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + y = this.maxPosY + this.indicatorHeight - this.height; + } else { + y = this.maxBoundaryY; + } + } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) { + this.height = this.indicatorHeight; + this.indicatorStyle.height = this.height + 'px'; + } + } - this.x = x; - this.y = y; + this.x = x; + this.y = y; - if ( this.scroller.options.useTransform ) { - this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ; - } else { - this.indicatorStyle.left = x + 'px'; - this.indicatorStyle.top = y + 'px'; - } - }, + if ( this.scroller.options.useTransform ) { + this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ; + } else { + this.indicatorStyle.left = x + 'px'; + this.indicatorStyle.top = y + 'px'; + } + }, - _pos: function (x, y) { - if ( x < 0 ) { - x = 0; - } else if ( x > this.maxPosX ) { - x = this.maxPosX; - } + _pos: function (x, y) { + if ( x < 0 ) { + x = 0; + } else if ( x > this.maxPosX ) { + x = this.maxPosX; + } - if ( y < 0 ) { - y = 0; - } else if ( y > this.maxPosY ) { - y = this.maxPosY; - } + if ( y < 0 ) { + y = 0; + } else if ( y > this.maxPosY ) { + y = this.maxPosY; + } - x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x; - y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y; + x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x; + y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y; - this.scroller.scrollTo(x, y); - }, + this.scroller.scrollTo(x, y); + }, - fade: function (val, hold) { - if ( hold && !this.visible ) { - return; - } + fade: function (val, hold) { + if ( hold && !this.visible ) { + return; + } - clearTimeout(this.fadeTimeout); - this.fadeTimeout = null; + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; - var time = val ? 250 : 500, - delay = val ? 0 : 300; + var time = val ? 250 : 500, + delay = val ? 0 : 300; - val = val ? '1' : '0'; + val = val ? '1' : '0'; - this.wrapperStyle[utils.style.transitionDuration] = time + 'ms'; + this.wrapperStyle[utils.style.transitionDuration] = time + 'ms'; - this.fadeTimeout = setTimeout((function (val) { - this.wrapperStyle.opacity = val; - this.visible = +val; - }).bind(this, val), delay); - } + this.fadeTimeout = setTimeout((function (val) { + this.wrapperStyle.opacity = val; + this.visible = +val; + }).bind(this, val), delay); + } }; IScroll.utils = utils; if ( typeof module != 'undefined' && module.exports ) { - module.exports = IScroll; + module.exports = IScroll; +} else if ( typeof define == 'function' && define.amd ) { + define( function () { return IScroll; } ); } else { - window.IScroll = IScroll; + window.IScroll = IScroll; } })(window, document, Math);
\ No newline at end of file diff --git a/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js b/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js new file mode 100644 index 00000000..f5d0aaf7 --- /dev/null +++ b/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/MobileAccessibilityNotifications.js @@ -0,0 +1,53 @@ +cordova.define("phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications", function(require, exports, module) { +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +/** + * Mobile Accessibility Notification event constants + */ +module.exports = { + /* MobileAccessibility window events */ + SCREEN_READER_STATUS_CHANGED : "screenreaderstatuschanged", + CLOSED_CAPTIONING_STATUS_CHANGED : "closedcaptioningstatuschanged", + GUIDED_ACCESS_STATUS_CHANGED : "guidedaccessstatuschanged", + INVERT_COLORS_STATUS_CHANGED : "invertcolorsstatuschanged", + MONO_AUDIO_STATUS_CHANGED : "monoaudiostatuschanged", + REDUCE_MOTION_STATUS_CHANGED : "reducemotionstatuschanged", + TOUCH_EXPLORATION_STATUS_CHANGED : "touchexplorationstatechanged", + BOLD_TEXT_STATUS_CHANGED : "boldtextstatuschanged", + DARKER_SYSTEM_COLORS_STATUS_CHANGED : "darkersystemcolorsstatuschanged", + GRAYSCALE_STATUS_CHANGED : "grayscalestatuschanged", + REDUCE_TRANSPARENCY_STATUS_CHANGED : "reducetransparencystatuschanged", + SPEAK_SCREEN_STATUS_CHANGED : "speakscreenstatuschanged", + SPEAK_SELECTION_STATUS_CHANGED : "speakselectionstatuschanged", + SWITCH_CONTROL_STATUS_CHANGED : "switchcontrolstatuschanged", + + /* iOS specific UIAccessibilityNotifications */ + SCREEN_CHANGED : 1000, + LAYOUT_CHANGED : 1001, + ANNOUNCEMENT : 1008, + PAGE_SCROLLED : 1009, + + /* Windows specific high contrast event */ + HIGH_CONTRAST_CHANGED : "highcontrastchanged" +}; + +}); diff --git a/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js b/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js new file mode 100644 index 00000000..852b8d34 --- /dev/null +++ b/StoneIsland/platforms/ios/www/plugins/phonegap-plugin-mobile-accessibility/www/mobile-accessibility.js @@ -0,0 +1,502 @@ +cordova.define("phonegap-plugin-mobile-accessibility.mobile-accessibility", function(require, exports, module) { +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * +*/ + +var argscheck = require('cordova/argscheck'), + utils = require('cordova/utils'), + exec = require('cordova/exec'), + device = require('cordova-plugin-device.device'), + network = require('cordova-plugin-network-information.network'), + connection = require('cordova-plugin-network-information.Connection'), + MobileAccessibilityNotifications = require('phonegap-plugin-mobile-accessibility.MobileAccessibilityNotifications'); + +var MobileAccessibility = function() { + this._isBoldTextEnabled = false; + this._isClosedCaptioningEnabled = false; + this._isDarkerSystemColorsEnabled = false; + this._isGrayscaleEnabled = false; + this._isGuidedAccessEnabled = false; + this._isInvertColorsEnabled = false; + this._isMonoAudioEnabled = false; + this._isReduceMotionEnabled = false; + this._isReduceTransparencyEnabled = false; + this._isScreenReaderRunning = false; + this._isSpeakScreenEnabled = false; + this._isSpeakSelectionEnabled = false; + this._isSwitchControlRunning = false; + this._isTouchExplorationEnabled = false; + this._usePreferredTextZoom = false; + this._isHighContrastEnabled = false; + this._highContrastScheme = undefined; + + // Create new event handlers on the window (returns a channel instance) + this.channels = { + boldtextstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED), + closedcaptioningstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED), + darkersystemcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED), + grayscalestatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED), + guidedaccessstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED), + invertcolorsstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED), + monoaudiostatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED), + reducemotionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED), + reducetransparencystatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED), + screenreaderstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED), + speakscreenstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED), + speakselectionstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED), + switchcontrolstatuschanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED), + touchexplorationstatechanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED), + highcontrastchanged : cordova.addWindowEventHandler(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED) + }; + for (var key in this.channels) { + this.channels[key].onHasSubscribersChange = MobileAccessibility.onHasSubscribersChange; + } +}; + +/** + * @private + * @ignore + */ +function handlers() { + return mobileAccessibility.channels.boldtextstatuschanged.numHandlers + + mobileAccessibility.channels.closedcaptioningstatuschanged.numHandlers + + mobileAccessibility.channels.darkersystemcolorsstatuschanged.numHandlers + + mobileAccessibility.channels.grayscalestatuschanged.numHandlers + + mobileAccessibility.channels.guidedaccessstatuschanged.numHandlers + + mobileAccessibility.channels.invertcolorsstatuschanged.numHandlers + + mobileAccessibility.channels.monoaudiostatuschanged.numHandlers + + mobileAccessibility.channels.reducemotionstatuschanged.numHandlers + + mobileAccessibility.channels.reducetransparencystatuschanged.numHandlers + + mobileAccessibility.channels.screenreaderstatuschanged.numHandlers + + mobileAccessibility.channels.speakscreenstatuschanged.numHandlers + + mobileAccessibility.channels.speakselectionstatuschanged.numHandlers + + mobileAccessibility.channels.switchcontrolstatuschanged.numHandlers + + mobileAccessibility.channels.touchexplorationstatechanged.numHandlers + + mobileAccessibility.channels.highcontrastchanged.numHandlers; +}; + +/** + * + * Event handlers for when callback methods get registered for mobileAccessibility. + * Keep track of how many handlers we have so we can start and stop the native MobileAccessibility listener + * appropriately. + * @private + * @ignore + */ +MobileAccessibility.onHasSubscribersChange = function() { + // If we just registered the first handler, make sure native listener is started. + if (this.numHandlers === 1 && handlers() === 1) { + exec(mobileAccessibility._status, mobileAccessibility._error, "MobileAccessibility", "start", []); + } else if (handlers() === 0) { + exec(null, null, "MobileAccessibility", "stop", []); + } +}; + +/** + * Asynchronous call to native MobileAccessibility determine if a screen reader is running. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isScreenReaderRunning = function(callback) { + exec(function(bool) { + mobileAccessibility.activateOrDeactivateChromeVox(bool); + callback(Boolean(bool)); + }, null, "MobileAccessibility", "isScreenReaderRunning", []); +}; +MobileAccessibility.prototype.isVoiceOverRunning = function(callback) { + if (device.platform.toLowerCase() === "ios") { + MobileAccessibility.prototype.isScreenReaderRunning(callback); + } else { + callback(false); + } +}; +MobileAccessibility.prototype.isTalkBackRunning = function(callback) { + if (device.platform.toLowerCase() === "android" || device.platform.toLowerCase() === "amazon-fireos") { + MobileAccessibility.prototype.isScreenReaderRunning(callback); + } else { + callback(false); + } +}; +MobileAccessibility.prototype.isChromeVoxActive = function () { + return typeof cvox !== "undefined" && cvox.ChromeVox.host.ttsLoaded() && cvox.Api.isChromeVoxActive(); +}; +MobileAccessibility.prototype.activateOrDeactivateChromeVox = function(bool) { + if (device.platform !== "Android") return; + if (typeof cvox === "undefined") { + if (bool) { + console.warn('A screen reader is running but ChromeVox has failed to initialize.'); + if (navigator.connection.type === Connection.UNKNOWN || navigator.connection.type === Connection.NONE) { + mobileAccessibility.injectLocalAndroidVoxScript(); + } + } + } else { + // activate or deactivate ChromeVox based on whether or not or not the screen reader is running. + try { + cvox.ChromeVox.host.activateOrDeactivateChromeVox(bool); + } catch (err) { + console.error(err); + } + } + + if (bool) { + if (!mobileAccessibility.hasOrientationChangeListener) { + window.addEventListener("orientationchange", mobileAccessibility.onOrientationChange); + mobileAccessibility.hasOrientationChangeListener = true; + } + } else if(mobileAccessibility.hasOrientationChangeListener) { + window.removeEventListener("orientationchange", mobileAccessibility.onOrientationChange); + mobileAccessibility.hasOrientationChangeListener = false; + } +}; + +MobileAccessibility.prototype.hasOrientationChangeListener = false; +MobileAccessibility.prototype.onOrientationChange = function(event) { + if (!mobileAccessibility.isChromeVoxActive()) return; + cvox.ChromeVox.navigationManager.updateIndicator(); +}; + +MobileAccessibility.prototype.scriptInjected = false; +MobileAccessibility.prototype.injectLocalAndroidVoxScript = function() { + var versionsplit = device.version.split('.'); + if (device.platform !== "Android" || + !(versionsplit[0] > 4 || (versionsplit[0] == 4 && versionsplit[1] >= 1)) || + typeof cvox !== "undefined" || mobileAccessibility.scriptInjected) return; + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.onload = function(){ + // console.log(this.src + ' has loaded'); + if (mobileAccessibility.isChromeVoxActive()) { + cordova.fireWindowEvent("screenreaderstatuschanged", { + isScreenReaderRunning: true + }); + } + }; + + script.src = (versionsplit[0] > 4 || versionsplit[1] > 3) + ? "plugins/com.phonegap.plugin.mobile-accessibility/android/chromeandroidvox.js" + : "plugins/com.phonegap.plugin.mobile-accessibility/android/AndroidVox_v1.js"; + document.getElementsByTagName('head')[0].appendChild(script); + mobileAccessibility.scriptInjected = true; +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Bold Text is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isBoldTextEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isBoldTextEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Closed Captioning is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isClosedCaptioningEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isClosedCaptioningEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Darker System Colors are enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isDarkerSystemColorsEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isDarkerSystemColorsEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Grayscale is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isGrayscaleEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isGrayscaleEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Guided Access is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isGuidedAccessEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isGuidedAccessEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if the display colors have been inverted. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isInvertColorsEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isInvertColorsEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Mono Audio is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isMonoAudioEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isMonoAudioEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Reduce Motion is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isReduceMotionEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isReduceMotionEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Reduce Transparency is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isReduceTransparencyEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isReduceTransparencyEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Speak Screen is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSpeakScreenEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isSpeakScreenEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Speak Selection is enabled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSpeakSelectionEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isSpeakSelectionEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Switch Control is running. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isSwitchControlRunning = function(callback) { + exec(callback, null, "MobileAccessibility", "isSwitchControlRunning", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if Touch Exploration is enabled on Android. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isTouchExplorationEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isTouchExplorationEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to determine if High Contrast is enabled on Windows. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.isHighContrastEnabled = function(callback) { + exec(callback, null, "MobileAccessibility", "isHighContrastEnabled", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to return the current text zoom percent value for the WebView. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.getTextZoom = function(callback) { + exec(callback, null, "MobileAccessibility", "getTextZoom", []); +}; + +/** + * Asynchronous call to native MobileAccessibility to set the current text zoom percent value for the WebView. + * @param {Number} textZoom A percentage value by which text in the WebView should be scaled. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.setTextZoom = function(textZoom, callback) { + exec(callback, null, "MobileAccessibility", "setTextZoom", [textZoom]); +}; + +/** + * Asynchronous call to native MobileAccessibility to retrieve the user's preferred text zoom from system settings and apply it to the application WebView. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility. + */ +MobileAccessibility.prototype.updateTextZoom = function(callback) { + exec(callback, null, "MobileAccessibility", "updateTextZoom", []); +}; + +MobileAccessibility.prototype.usePreferredTextZoom = function(bool) { + var currentValue = window.localStorage.getItem("MobileAccessibility.usePreferredTextZoom") === "true"; + + if (arguments.length === 0) { + return currentValue; + } + + if (currentValue != bool) { + window.localStorage.setItem("MobileAccessibility.usePreferredTextZoom", bool); + } + + var callback = function(){ + // Wrapping updateTextZoom call in a function to stop + // the event parameter propagation. This fixes an error + // on resume where cordova tried to call apply() on the + // event, expecting a function. + mobileAccessibility.updateTextZoom(); + }; + + document.removeEventListener("resume", callback); + + if (bool) { + // console.log("We should update the text zoom at this point: " + bool) + document.addEventListener("resume", callback, false); + mobileAccessibility.updateTextZoom(); + } else { + mobileAccessibility.setTextZoom(100); + } + + return Boolean(bool); +}; + +MobileAccessibility.prototype.MobileAccessibilityNotifications = MobileAccessibilityNotifications; + +/** + * Posts a notification with a string for a screen reader to announce, if it is running. + * @param {uint} mobileAccessibilityNotification A numeric constant for the type of notification to send. Constants are defined in MobileAccessibility.MobileAccessibilityNotifications. + * @param {string} string A string to be announced by a screen reader. + * @param {function} callback A callback method to receive the asynchronous result from the native MobileAccessibility, when the announcement is finished, the function should expect an object containing the stringValue that was voiced and a boolean indicating that the announcement wasSuccessful. + */ +MobileAccessibility.prototype.postNotification = function(mobileAccessibilityNotification, string, callback) { + exec(callback, null, "MobileAccessibility", "postNotification", [mobileAccessibilityNotification, string]); +}; + +/** + * Speaks the given string, and if ChromeVox is active, it will use the specified queueMode and properties. + * @param {string} string A string to be announced by a screen reader. + * @param {number} [queueMode] Optional number. Valid modes are 0 for flush; 1 for queue. + * @param {Object} [properties] Speech properties to use for this utterance. + */ +MobileAccessibility.prototype.speak = function(string, queueMode, properties) { + if (this.isChromeVoxActive()) { + cvox.ChromeVox.tts.speak(string, queueMode, properties); + } else { + exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, string]); + } +} + +/** + * Stops speech. + */ +MobileAccessibility.prototype.stop = function() { + if (this.isChromeVoxActive()) { + cvox.ChromeVox.tts.stop(); + } else { + exec(null, null, "MobileAccessibility", "postNotification", [MobileAccessibilityNotifications.ANNOUNCEMENT, "\u200b"]); + } +} + +/** + * Callback from native MobileAccessibility returning an object which describes the status of MobileAccessibility features. + * + * @param {Object} info + * @config {Boolean} [isBoldTextEnabled] Boolean to indicate bold text status (ios). + * @config {Boolean} [isClosedCaptioningEnabled] Boolean to indicate closed captioning status. + * @config {Boolean} [isDarkerSystemColorsEnabled] Boolean to indicate darker system colors status (ios). + * @config {Boolean} [isGrayscaleEnabled] Boolean to indicate grayscale status (ios). + * @config {Boolean} [isGuidedAccessEnabled] Boolean to indicate guided access status (ios). + * @config {Boolean} [isInvertColorsEnabled] Boolean to indicate invert colors status (ios). + * @config {Boolean} [isMonoAudioEnabled] Boolean to indicate mono audio status (ios). + * @config {Boolean} [isReduceMotionEnabled] Boolean to indicate reduce motion status (ios). + * @config {Boolean} [isReduceTransparencyEnabled] Boolean to indicate reduce transparency status (ios). + * @config {Boolean} [isScreenReaderRunning] Boolean to indicate screen reader status. + * @config {Boolean} [isSpeakScreenEnabled] Boolean to indicate speak screen status (ios). + * @config {Boolean} [isSpeakSelectionEnabled] Boolean to indicate speak selection status (ios). + * @config {Boolean} [isSwitchControlRunning] Boolean to indicate switch control status (ios). + * @config {Boolean} [isTouchExplorationEnabled] Boolean to indicate touch exploration status (android). + */ +MobileAccessibility.prototype._status = function(info) { + if (info) { + mobileAccessibility.activateOrDeactivateChromeVox(info.isScreenReaderRunning); + if (mobileAccessibility._isBoldTextEnabled !== info.isBoldTextEnabled) { + mobileAccessibility._isBoldTextEnabled = info.isBoldTextEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.BOLD_TEXT_STATUS_CHANGED, info); + } + if (mobileAccessibility._isClosedCaptioningEnabled !== info.isClosedCaptioningEnabled) { + mobileAccessibility._isClosedCaptioningEnabled = info.isClosedCaptioningEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.CLOSED_CAPTIONING_STATUS_CHANGED, info); + } + if (mobileAccessibility._isDarkerSystemColorsEnabled !== info.isDarkerSystemColorsEnabled) { + mobileAccessibility._isDarkerSystemColorsEnabled = info.isDarkerSystemColorsEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.DARKER_SYSTEM_COLORS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isGrayscaleEnabled !== info.isGrayscaleEnabled) { + mobileAccessibility._isGrayscaleEnabled = info.isGrayscaleEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.GRAYSCALE_STATUS_CHANGED, info); + } + if (mobileAccessibility._isGuidedAccessEnabled !== info.isGuidedAccessEnabled) { + mobileAccessibility._isGuidedAccessEnabled = info.isGuidedAccessEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.GUIDED_ACCESS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isInvertColorsEnabled !== info.isInvertColorsEnabled) { + mobileAccessibility._isInvertColorsEnabled = info.isInvertColorsEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.INVERT_COLORS_STATUS_CHANGED, info); + } + if (mobileAccessibility._isMonoAudioEnabled !== info.isMonoAudioEnabled) { + mobileAccessibility._isMonoAudioEnabled = info.isMonoAudioEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.MONO_AUDIO_STATUS_CHANGED, info); + } + if (mobileAccessibility._isReduceMotionEnabled !== info.isReduceMotionEnabled) { + mobileAccessibility._isReduceMotionEnabled = info.isReduceMotionEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_MOTION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isReduceTransparencyEnabled !== info.isReduceTransparencyEnabled) { + mobileAccessibility._isReduceTransparencyEnabled = info.isReduceTransparencyEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.REDUCE_TRANSPARENCY_STATUS_CHANGED, info); + } + if (mobileAccessibility._isScreenReaderRunning !== info.isScreenReaderRunning) { + mobileAccessibility._isScreenReaderRunning = info.isScreenReaderRunning; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SCREEN_READER_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSpeakScreenEnabled !== info.isSpeakScreenEnabled) { + mobileAccessibility._isSpeakScreenEnabled = info.isSpeakScreenEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SCREEN_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSpeakSelectionEnabled !== info.isSpeakSelectionEnabled) { + mobileAccessibility._isSpeakSelectionEnabled = info.isSpeakSelectionEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SPEAK_SELECTION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isSwitchControlRunning !== info.isSwitchControlRunning) { + mobileAccessibility._isSwitchControlRunning = info.isSwitchControlRunning; + cordova.fireWindowEvent(MobileAccessibilityNotifications.SWITCH_CONTROL_STATUS_CHANGED, info); + } + if (mobileAccessibility._isTouchExplorationEnabled !== info.isTouchExplorationEnabled) { + mobileAccessibility._isTouchExplorationEnabled = info.isTouchExplorationEnabled; + cordova.fireWindowEvent(MobileAccessibilityNotifications.TOUCH_EXPLORATION_STATUS_CHANGED, info); + } + if (mobileAccessibility._isHighContrastEnabled !== info.isHighContrastEnabled) { + mobileAccessibility._isHighContrastEnabled = info.isHighContrastEnabled; + mobileAccessibility._highContrastScheme = info.highContrastScheme; + cordova.fireWindowEvent(MobileAccessibilityNotifications.HIGH_CONTRAST_CHANGED, info); + } + } +}; + +/** + * Error callback for MobileAccessibility start + */ +MobileAccessibility.prototype._error = function(e) { + console.log("Error initializing MobileAccessibility: " + e); +}; + +var mobileAccessibility = new MobileAccessibility(); + +module.exports = mobileAccessibility; + +}); |
