Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / third_party / chromevox / chromeVoxChromeOptionsScript.js
index c7571c1..88a6e55 100644 (file)
@@ -1,5 +1,5 @@
 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.setTestOnly=function(a){if(!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");};goog.forwardDeclare=function(){};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?
@@ -20,7 +20,7 @@ goog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.DEBUG&&!d)throw
 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.isMac=-1!=navigator.platform.indexOf("Mac");cvox.ChromeVox.modKeyStr=cvox.ChromeVox.isChromeOS?"Shift+Search":cvox.ChromeVox.isMac?"Ctrl+Cmd":"Shift+Alt";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.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_()};
@@ -110,25 +110,25 @@ goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isN
 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.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.ASSUME_NATIVE_FUNCTIONS=!1;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.ASSUME_NATIVE_FUNCTIONS||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.ASSUME_NATIVE_FUNCTIONS||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.ASSUME_NATIVE_FUNCTIONS||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.ASSUME_NATIVE_FUNCTIONS||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.ASSUME_NATIVE_FUNCTIONS||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.ASSUME_NATIVE_FUNCTIONS||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.ASSUME_NATIVE_FUNCTIONS||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.ASSUME_NATIVE_FUNCTIONS||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.ASSUME_NATIVE_FUNCTIONS||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.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){a.sort(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.isSorted=function(a,b,c){b=b||goog.array.defaultCompare;for(var d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};goog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;var d=a.length;c=c||goog.array.defaultCompareEquality;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};
 goog.array.compare3=function(a,b,c){c=c||goog.array.defaultCompare;for(var d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};goog.array.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};
@@ -552,9 +552,8 @@ goog.i18n.pluralRules.mkSelect_=function(a,b){var c=a|0,d=goog.i18n.pluralRules.
 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.csSelect_=function(a,b){var c=a|0,d=goog.i18n.pluralRules.get_vf_(a,b);return 1==c&&0==d.v?goog.i18n.pluralRules.Keyword.ONE:2<=c&&4>=c&&0==d.v?goog.i18n.pluralRules.Keyword.FEW:0!=d.v?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
 goog.i18n.pluralRules.pt_PTSelect_=function(a,b){var c=goog.i18n.pluralRules.get_vf_(a,b);return 1==a&&0==c.v?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.beSelect_=function(a){return 1==a%10&&11!=a%100?goog.i18n.pluralRules.Keyword.ONE:2<=a%10&&4>=a%10&&(12>a%100||14<a%100)?goog.i18n.pluralRules.Keyword.FEW:0==a%10||5<=a%10&&9>=a%10||11<=a%100&&14>=a%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
 goog.i18n.pluralRules.akSelect_=function(a){return 0<=a&&1>=a?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.ptSelect_=function(a,b){var c=a|0,d=goog.i18n.pluralRules.get_vf_(a,b),e=goog.i18n.pluralRules.get_wt_(d.v,d.f);return 1==c&&0==d.v||0==c&&1==e.t?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};
-goog.i18n.pluralRules.ruSelect_=function(a,b){var c=a|0,d=goog.i18n.pluralRules.get_vf_(a,b);return 0==d.v&&1==c%10&&11!=c%100?goog.i18n.pluralRules.Keyword.ONE:0==d.v&&0==c%10||0==d.v&&5<=c%10&&9>=c%10||0==d.v&&11<=c%100&&14>=c%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
 goog.i18n.pluralRules.plSelect_=function(a,b){var c=a|0,d=goog.i18n.pluralRules.get_vf_(a,b);return 1==c&&0==d.v?goog.i18n.pluralRules.Keyword.ONE:0==d.v&&2<=c%10&&4>=c%10&&(12>c%100||14<c%100)?goog.i18n.pluralRules.Keyword.FEW:0==d.v&&1!=c&&0<=c%10&&1>=c%10||0==d.v&&5<=c%10&&9>=c%10||0==d.v&&12<=c%100&&14>=c%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
-goog.i18n.pluralRules.ukSelect_=function(a,b){var c=a|0,d=goog.i18n.pluralRules.get_vf_(a,b);return 0==d.v&&1==c%10&&11!=c%100?goog.i18n.pluralRules.Keyword.ONE:0==d.v&&2<=c%10&&4>=c%10&&(12>c%100||14<c%100)?goog.i18n.pluralRules.Keyword.FEW:0==d.v&&0==c%10||0==d.v&&5<=c%10&&9>=c%10||0==d.v&&11<=c%100&&14>=c%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
+goog.i18n.pluralRules.ruSelect_=function(a,b){var c=a|0,d=goog.i18n.pluralRules.get_vf_(a,b);return 0==d.v&&1==c%10&&11!=c%100?goog.i18n.pluralRules.Keyword.ONE:0==d.v&&2<=c%10&&4>=c%10&&(12>c%100||14<c%100)?goog.i18n.pluralRules.Keyword.FEW:0==d.v&&0==c%10||0==d.v&&5<=c%10&&9>=c%10||0==d.v&&11<=c%100&&14>=c%100?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
 goog.i18n.pluralRules.gvSelect_=function(a){return 1==a%10?goog.i18n.pluralRules.Keyword.ONE:2==a%10?goog.i18n.pluralRules.Keyword.TWO:0==a%100||20==a%100||40==a%100||60==a%100?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.lagSelect_=function(a){var b=a|0;return 0==a?goog.i18n.pluralRules.Keyword.ZERO:0!=b&&1!=b||0==a?goog.i18n.pluralRules.Keyword.OTHER:goog.i18n.pluralRules.Keyword.ONE};
 goog.i18n.pluralRules.shiSelect_=function(a){var b=a|0;return 0==b||1==a?goog.i18n.pluralRules.Keyword.ONE:2<=a&&10>=a?goog.i18n.pluralRules.Keyword.FEW:goog.i18n.pluralRules.Keyword.OTHER};goog.i18n.pluralRules.heSelect_=function(a,b){var c=a|0,d=goog.i18n.pluralRules.get_vf_(a,b);return 1==c&&0==d.v?goog.i18n.pluralRules.Keyword.ONE:2==c&&0==d.v?goog.i18n.pluralRules.Keyword.TWO:0==d.v&&(0>a||10<a)&&0==a%10?goog.i18n.pluralRules.Keyword.MANY:goog.i18n.pluralRules.Keyword.OTHER};
 goog.i18n.pluralRules.isSelect_=function(a,b){var c=a|0,d=goog.i18n.pluralRules.get_vf_(a,b),d=goog.i18n.pluralRules.get_wt_(d.v,d.f);return 0==d.t&&1==c%10&&11!=c%100||0!=d.t?goog.i18n.pluralRules.Keyword.ONE:goog.i18n.pluralRules.Keyword.OTHER};
@@ -575,7 +574,7 @@ if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.pluralRules.select=goo
 "no"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.esSelect_);"or"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.esSelect_);"pl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.plSelect_);"pt"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ptSelect_);if("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.ptSelect_;
 if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.pluralRules.select=goog.i18n.pluralRules.pt_PTSelect_;"ro"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.roSelect_);"ru"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ruSelect_);"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.esSelect_);
 "sr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.srSelect_);"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.esSelect_);"te"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.esSelect_);"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.esSelect_);"uk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ukSelect_);"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_);
+"tl"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.filSelect_);"tr"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.esSelect_);"uk"==goog.LOCALE&&(goog.i18n.pluralRules.select=goog.i18n.pluralRules.ruSelect_);"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.hiSelect_);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,
@@ -695,7 +694,7 @@ c.push(["visited_url"]);a.accessKey&&c.push(["access_key",a.accessKey]);return c
 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.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,!1)}};
 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)};
@@ -791,12 +790,13 @@ var d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2
 (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");})}();cvox.ExtensionBridge=function(){};cvox.ExtensionBridge.init=function(){var a=cvox.ExtensionBridge;a.messageListeners=[];a.disconnectListeners=[];/^chrome-extension:\/\/.*background\.html$/.test(window.location.href)?(a.context=a.BACKGROUND,a.initBackground()):chrome&&chrome.extension&&(a.context=a.CONTENT_SCRIPT,a.initContentScript())};cvox.ExtensionBridge.BACKGROUND=0;cvox.ExtensionBridge.CONTENT_SCRIPT=1;cvox.ExtensionBridge.PORT_NAME="cvox.ExtensionBridge.Port";cvox.ExtensionBridge.PING_MSG="cvox.ExtensionBridge.Ping";
 cvox.ExtensionBridge.PONG_MSG="cvox.ExtensionBridge.Pong";cvox.ExtensionBridge.send=function(a){var b=cvox.ExtensionBridge;switch(b.context){case b.BACKGROUND:b.sendBackgroundToContentScript(a);break;case b.CONTENT_SCRIPT:b.sendContentScriptToBackground(a)}};cvox.ExtensionBridge.addMessageListener=function(a){cvox.ExtensionBridge.messageListeners.push(a)};cvox.ExtensionBridge.addDisconnectListener=function(a){cvox.ExtensionBridge.disconnectListeners.push(a)};
-cvox.ExtensionBridge.removeMessageListeners=function(){cvox.ExtensionBridge.messageListeners.length=0};
-cvox.ExtensionBridge.initBackground=function(){var a=cvox.ExtensionBridge;a.portCache_=[];var b=function(b){b.name==a.PORT_NAME&&(a.portCache_.push(b),b.onMessage.addListener(function(d){if(d[cvox.ExtensionBridge.PING_MSG])d={},d[cvox.ExtensionBridge.PONG_MSG]=1,b.postMessage(d);else for(var e=0;e<a.messageListeners.length;e++)a.messageListeners[e](d,b)}),b.onDisconnect.addListener(function(){for(var d=0;d<a.portCache_.length;d++)if(a.portCache_[d]==b){a.portCache_.splice(d,1);break}}))};chrome.extension.onConnect.addListener(b);
-chrome.extension.onConnectExternal.addListener(b)};cvox.ExtensionBridge.initContentScript=function(){var a=cvox.ExtensionBridge;a.connected=!1;a.pingAttempts=0;a.queuedMessages=[];var b=function(b,d,e){if(!b||!b.srcFile){if(b[cvox.ExtensionBridge.PONG_MSG])a.gotPongFromBackgroundPage();else for(d=0;d<a.messageListeners.length;d++)a.messageListeners[d](b,cvox.ExtensionBridge.backgroundPort);e({})}};chrome.extension.onMessage.addListener(b);a.setupBackgroundPort();a.tryToPingBackgroundPage()};
-cvox.ExtensionBridge.setupBackgroundPort=function(){var a=cvox.ExtensionBridge;a.backgroundPort=chrome.extension.connect({name:a.PORT_NAME});a.backgroundPort.onMessage.addListener(function(b){if(b[cvox.ExtensionBridge.PONG_MSG])a.gotPongFromBackgroundPage();else for(var c=0;c<a.messageListeners.length;c++)a.messageListeners[c](b,a.backgroundPort)});a.backgroundPort.onDisconnect.addListener(function(){if(a.connected)for(var b=0;b<a.disconnectListeners.length;b++)a.disconnectListeners[b]();else a.backgroundPort=
-null})};cvox.ExtensionBridge.tryToPingBackgroundPage=function(){var a=cvox.ExtensionBridge;if(!a.connected)if(a.pingAttempts++,5<a.pingAttempts)for(var b=0;b<a.disconnectListeners.length;b++)a.disconnectListeners[b]();else b={},b[cvox.ExtensionBridge.PING_MSG]=1,a.backgroundPort||a.setupBackgroundPort(),a.backgroundPort.postMessage(b),window.setTimeout(cvox.ExtensionBridge.tryToPingBackgroundPage,500)};
-cvox.ExtensionBridge.gotPongFromBackgroundPage=function(){var a=cvox.ExtensionBridge;for(a.connected=!0;0<a.queuedMessages.length;)a.sendContentScriptToBackground(a.queuedMessages.shift())};cvox.ExtensionBridge.sendContentScriptToBackground=function(a){var b=cvox.ExtensionBridge;b.connected?cvox.ExtensionBridge.backgroundPort?cvox.ExtensionBridge.backgroundPort.postMessage(a):chrome.extension.sendMessage(a):b.queuedMessages.push(a)};
+cvox.ExtensionBridge.removeMessageListeners=function(){cvox.ExtensionBridge.messageListeners.length=0};cvox.ExtensionBridge.uniqueId=function(){var a=cvox.ExtensionBridge;return a.id_};
+cvox.ExtensionBridge.initBackground=function(){var a=cvox.ExtensionBridge;a.portCache_=[];a.nextPongId_=1;a.id_=0;var b=function(b){b.name==a.PORT_NAME&&(a.portCache_.push(b),b.onMessage.addListener(function(d){if(d[cvox.ExtensionBridge.PING_MSG])d={},d[cvox.ExtensionBridge.PONG_MSG]=a.nextPongId_++,b.postMessage(d);else for(var e=0;e<a.messageListeners.length;e++)a.messageListeners[e](d,b)}),b.onDisconnect.addListener(function(){for(var d=0;d<a.portCache_.length;d++)if(a.portCache_[d]==b){a.portCache_.splice(d,
+1);break}}))};chrome.extension.onConnect.addListener(b);chrome.extension.onConnectExternal.addListener(b)};
+cvox.ExtensionBridge.initContentScript=function(){var a=cvox.ExtensionBridge;a.connected=!1;a.pingAttempts=0;a.queuedMessages=[];a.id_=-1;var b=function(b,d,e){if(!b||!b.srcFile){if(b[cvox.ExtensionBridge.PONG_MSG])a.gotPongFromBackgroundPage(b[cvox.ExtensionBridge.PONG_MSG]);else for(d=0;d<a.messageListeners.length;d++)a.messageListeners[d](b,cvox.ExtensionBridge.backgroundPort);e({})}};chrome.extension.onMessage.addListener(b);a.setupBackgroundPort();a.tryToPingBackgroundPage()};
+cvox.ExtensionBridge.setupBackgroundPort=function(){var a=cvox.ExtensionBridge;a.backgroundPort=chrome.extension.connect({name:a.PORT_NAME});a.backgroundPort.onMessage.addListener(function(b){if(b[cvox.ExtensionBridge.PONG_MSG])a.gotPongFromBackgroundPage(b[cvox.ExtensionBridge.PONG_MSG]);else for(var c=0;c<a.messageListeners.length;c++)a.messageListeners[c](b,a.backgroundPort)});a.backgroundPort.onDisconnect.addListener(function(){if(a.connected)for(var b=0;b<a.disconnectListeners.length;b++)a.disconnectListeners[b]();
+else a.backgroundPort=null})};cvox.ExtensionBridge.tryToPingBackgroundPage=function(){var a=cvox.ExtensionBridge;if(!a.connected)if(a.pingAttempts++,5<a.pingAttempts)for(var b=0;b<a.disconnectListeners.length;b++)a.disconnectListeners[b]();else b={},b[cvox.ExtensionBridge.PING_MSG]=1,a.backgroundPort||a.setupBackgroundPort(),a.backgroundPort.postMessage(b),window.setTimeout(cvox.ExtensionBridge.tryToPingBackgroundPage,500)};
+cvox.ExtensionBridge.gotPongFromBackgroundPage=function(a){var b=cvox.ExtensionBridge;b.connected=!0;b.id_=a;for(console.log("Got unique id"+b.id_);0<b.queuedMessages.length;)b.sendContentScriptToBackground(b.queuedMessages.shift())};cvox.ExtensionBridge.sendContentScriptToBackground=function(a){var b=cvox.ExtensionBridge;b.connected?cvox.ExtensionBridge.backgroundPort?cvox.ExtensionBridge.backgroundPort.postMessage(a):chrome.extension.sendMessage(a):b.queuedMessages.push(a)};
 cvox.ExtensionBridge.sendBackgroundToContentScript=function(a){chrome.tabs.query({active:!0,lastFocusedWindow:!0},function(b){b&&0<b.length?chrome.tabs.sendMessage(b[0].id,a):cvox.ExtensionBridge.portCache_.forEach(function(b){b.postMessage(a)})})};cvox.ExtensionBridge.init();cvox.ChromeEarcons=function(){cvox.AbstractEarcons.call(this)};goog.inherits(cvox.ChromeEarcons,cvox.AbstractEarcons);cvox.ChromeEarcons.prototype.playEarcon=function(a){cvox.ChromeEarcons.superClass_.playEarcon.call(this,a);this.enabled&&cvox.ExtensionBridge.send({target:"EARCON",action:"play",earcon:a})};
 cvox.ChromeEarcons.prototype.toggle=function(){cvox.ChromeEarcons.superClass_.toggle.call(this);cvox.ChromeVox.host.sendToBackgroundPage({target:"Prefs",action:"setPref",pref:"earcons",value:this.enabled});this.enabled||cvox.ChromeVox.host.sendToBackgroundPage({target:"Prefs",action:"setPref",pref:"useVerboseMode",value:!0});return this.enabled};cvox.HostFactory.earconsConstructor=cvox.ChromeEarcons;cvox.BuildInfo={};cvox.BuildInfo.build="development build";"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_+
@@ -855,7 +855,8 @@ cvox.ChromeVoxEditableTextArea.prototype.getShadow=function(){var a=cvox.ChromeV
 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.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.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.isLastChar=function(){var a=window.getSelection(),b=new cvox.Cursor(a.baseNode,a.baseOffset,"");return a.baseNode==a.extentNode&&a.baseOffset==a.extentOffset&&a.baseNode.nodeType==Node.ELEMENT_NODE&&a.baseNode.querySelector("BR")&&cvox.TraverseUtil.forwardsChar(b,[],[])?!0:!1};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))};
@@ -1349,7 +1350,7 @@ cvox.ChromeVox.navigationManager.performAction(b);break;case "moveToStartOfLine"
 action:"setPref",pref:"typingEcho",value:cvox.TypingEcho.cycle(cvox.ChromeVox.typingEcho),announce:!0});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();
 cvox.ChromeVox.host.sendToBackgroundPage({target:"HelpDocs",action:"open"});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":cvox.ChromeVox.host.sendToBackgroundPage({target:"BookmarkManager",action:"open"});break;case "showOptionsPage":cvox.ChromeVox.tts.stop();cvox.ChromeVox.host.sendToBackgroundPage({target:"Options",action:"open"});
 break;case "showKbExplorerPage":cvox.ChromeVox.tts.stop();cvox.ChromeVox.host.sendToBackgroundPage({target:"KbExplorer",action:"open"});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");
+break;case "performDefaultAction":cvox.DomPredicates.linkPredicate([document.activeElement])&&cvox.DomUtil.isInternalLink(document.activeElement)&&(cvox.DomUtil.syncInternalLink(document.activeElement),cvox.ChromeVox.navigationManager.sync(),a.announce=!0);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":cvox.ChromeVox.host.sendToBackgroundPage({target:"Prefs",action:"setPref",pref:"active",value:!cvox.ChromeVox.isActive});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,