ace/build/src/worker-javascript.js
2011-02-15 09:44:02 +01:00

1 line
No EOL
110 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function initSender(){var a=require("pilot/event_emitter").EventEmitter,b=require("pilot/oop"),c=function(){};(function(){b.implement(this,a),this.callback=function(a,b){postMessage({type:"call",id:b,data:a})},this.emit=function(a,b){postMessage({type:"event",name:a,data:b})}}).call(c.prototype);return new c}function initBaseUrls(a){require.tlns=a}var console={log:function(a){postMessage({type:"log",data:a})}},window={console:console},require=function(a){var b=require.modules[a];if(b){b.initialized||(b.exports=b.factory().exports,b.initialized=!0);return b.exports}var c=a.split("/");c[0]=require.tlns[c[0]]||c[0],path=c.join("/")+".js",require.id=a,importScripts(path);return require(a)};require.modules={},require.tlns={};var define=function(a,b){b||(b=a,a=require.id);a.indexOf("text!")!==0&&(require.modules[a]={factory:function(){var a={exports:{}},c=b(require,a.exports,a);c&&(a.exports=exports);return a}})},main,sender;onmessage=function(a){var b=a.data;if(b.command)main[b.command].apply(main,b.args);else if(b.init){initBaseUrls(b.tlns),require("pilot/fixoldbrowsers"),sender=initSender();var c=require(b.module)[b.classname];main=new c(sender)}else b.event&&sender._dispatchEvent(b.event,b.data)},define("pilot/fixoldbrowsers",function(a,b,c){Function.prototype.bind||(Function.prototype.bind=function(a){var b=[].slice,c=b.call(arguments,1),d=this,e=function(){};if(arguments.length==1)var f=function(){return d.apply(this instanceof e?this:a,arguments)};else var f=function(){return d.apply(this instanceof e?this:a||{},c.concat(b.call(arguments)))};e.prototype=d.prototype,f.prototype=new e,f.name=this.name,f.displayName=this.displayName,f.length=this.length,f.unbound=d;return f});var d=function(){},e=Function.prototype.call,f=e.bind(Object.prototype.hasOwnProperty),g,h,i,j;g=h=i=j=d,Object.prototype.__lookupGetter__&&(g=e.bind(Object.prototype.__lookupGetter__)),Object.prototype.__lookupSetter__&&(h=e.bind(Object.prototype.__lookupSetter__)),Object.prototype.__defineGetter__&&(i=e.bind(Object.prototype.__defineGetter__)),Object.prototype.__defineSetter__&&(j=e.bind(Object.prototype.__defineSetter__)),Array.isArray||(Array.isArray=function(a){return a&&Object.prototype.toString.call(a)==="[object Array]"}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){if(this===void 0||this===null)throw new TypeError;var b=Object(this),c=b.length>>>0;if(c===0)return-1;var d=0,e=d;arguments.length>0&&(d=Number(arguments[1]),d!==d?d=0:d!==0&&d!==1/e&&d!==-(1/e)&&(d=(d>0||-1)*Math.floor(Math.abs(d))));if(d>=c)return-1;var f=d>=0?d:Math.max(c-Math.abs(d),0);for(;f<c;f++)if(f in b&&b[f]===a)return f;return-1}),Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(a){"use strict";if(this===void 0||this===null)throw new TypeError;var b=Object(this),c=b.length>>>0;if(c===0)return-1;var d=c,e=!1|0;arguments.length>0&&(d=Number(arguments[1]),d!==d?d=0:d!==0&&d!==1/e&&d!==-(1/e)&&(d=(d>0||-1)*Math.floor(Math.abs(d))));var f=d>=0?Math.min(d,c-1):c-Math.abs(d);while(f>=0)if(f in b&&b[f]===a)return f;return-1}),Array.prototype.map||(Array.prototype.map=function(a){if(this===void 0||this===null)throw new TypeError;var b=Object(this),c=b.length>>>0;if(typeof a!=="function")throw new TypeError;res=Array(c);var d=arguments[1];for(var e=0;e<c;e++)e in b&&(res[e]=a.call(d,b[e],e,b));return res}),Array.prototype.forEach||(Array.prototype.forEach=function(a){if(this===void 0||this===null)throw new TypeError;var b=Object(this),c=b.length>>>0;if(typeof a!=="function")throw new TypeError;var d=arguments[1];for(var e=0;e<c;e++)e in b&&a.call(d,b[e],e,b)}),Array.prototype.filter||(Array.prototype.filter=function k(a,b){var c=[],d,e;for(d=0,e=this.length;d<e;d++)a.call(b,this[d])&&c.push(this[d]);return c}),Array.prototype.every||(Array.prototype.every=function l(a,b){var c,d;for(c=0,d=this.length;c<d;c++)if(!a.call(b,this[c]))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(a,b){var c,d;for(c=0,d=this.length;c<d;c++)if(a.call(b,this[c]))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(a){var b=this.length>>>0;if(typeof a!="function")throw new TypeError;if(b==0&&arguments.length==1)throw new TypeError;var c=0;if(arguments.length<2){do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0)}else var d=arguments[1];for(;c<b;c++)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(a){var b=this.length>>>0;if(typeof a!="function")throw new TypeError;if(b==0&&arguments.length==1)throw new TypeError;var c=b-1;if(arguments.length<2){do{if(c in this){d=this[c--];break}if(--c<0)throw new TypeError}while(!0)}else var d=arguments[1];for(;c>=0;c--)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Object.keys||(Object.keys=function m(a){var b,c=[];for(b in a)f(a,b)&&c.push(b);return c}),Object.getOwnPropertyNames||(Object.getOwnPropertyNames=Object.keys);var n="Object.getOwnPropertyDescriptor called on a non-object";Object.getOwnPropertyDescriptor||(Object.getOwnPropertyDescriptor=function o(a,b){var c,d,e;if(typeof a!=="object"&&typeof a!=="function"||a===null)throw new TypeError(n);f(a,b)&&(c={configurable:!0,enumerable:!0},d=c.get=g(a,b),e=c.set=h(a,b),!d&&!e&&(c.writeable=!0,c.value=a[b]));return c}),Object.getPrototypeOf||(Object.getPrototypeOf=function p(a){return a.__proto__||a.constructor.prototype}),Object.create||(Object.create=function q(a,b){var c;if(a===null)c={"__proto__":null};else{if(typeof a!=="object")throw new TypeError(a+" is not an object or null");d.prototype=a,c=new d}typeof b!=="undefined"&&Object.defineProperties(c,b);return c}),Object.defineProperty||(Object.defineProperty=function r(a,b,c){var d,e,f;if("object"!==typeof a&&"function"!==typeof a)throw new TypeError(a+"is not an object");if(c&&"object"!==typeof c)throw new TypeError("Property descriptor map must be an object");if("value"in c){if("get"in c||"set"in c)throw new TypeError('Invalid property. "value" present on property with getter or setter.');if(d=a.__proto__)a.__proto__=Object.prototype;delete a[b],a[b]=c.value,d&&(a.__proto__=d)}else(f=c.get)&&i(a,f),(e=c.set)&&j(a,e);return a}),Object.defineProperties||(Object.defineProperties=function s(a,b){Object.getOwnPropertyNames(b).forEach(function(c){Object.defineProperty(a,c,b[c])});return a});var t=function(a){return a};Object.seal||(Object.seal=t),Object.freeze||(Object.freeze=t),Object.preventExtensions||(Object.preventExtension=t);var u=function(){return!1},v=function(){return!0};Object.isSealed||(Object.isSealed=u),Object.isFrozen||(Object.isFrozen=u),Object.isExtensible||(Object.isExtensible=v),String.prototype.trim||(String.prototype.trim=function(){return this.trimLeft().trimRight()}),String.prototype.trimRight||(String.prototype.trimRight=function(){return this.replace(/[\t\v\f\s\u00a0\ufeff]+$/,"")}),String.prototype.trimLeft||(String.prototype.trimLeft=function(){return this.replace(/^[\t\v\f\s\u00a0\ufeff]+/,"")}),b.globalsLoaded=!0}),define("pilot/event_emitter",function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(c&&c.length){var b=b||{};b.type=a;for(var d=0;d<c.length;d++)c[d](b)}},d.on=d.addEventListener=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!c)var c=this._eventRegistry[a]=[];c.indexOf(b)==-1&&c.push(b)},d.removeListener=d.removeEventListener=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(c){var d=c.indexOf(b);d!==-1&&c.splice(d,1)}},d.removeAllListeners=function(a){this._eventRegistry&&(this._eventRegistry[a]=[])},b.EventEmitter=d}),define("pilot/oop",function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("ace/mode/javascript_worker",function(a,b,c){var d=a("pilot/oop"),e=a("ace/worker/mirror").Mirror,f=a("ace/worker/jslint").JSLINT,g=b.JavaScriptWorker=function(a){e.call(this,a),this.setTimeout(500)};d.inherits(g,e),function(){this.onUpdate=function(){var b=this.doc.getValue();b=b.replace(/^#!.*\n/,"\n");var c=a("ace/narcissus/jsparse");try{c.parse(b)}catch(d){sender.emit("narcissus",{row:d.lineno-1,column:null,text:d.message,type:"error"});return}finally{}f(b,{undef:!1,onevar:!1,passfail:!1}),this.sender.emit("jslint",f.errors)}}.call(g.prototype)}),define("ace/worker/mirror",function(a,b,c){var d=a("ace/document").Document,e=a("pilot/lang"),f=b.Mirror=function(a){this.sender=a;var b=this.doc=new d(""),c=this.deferredUpdate=e.deferredCall(this.onUpdate.bind(this)),f=this;a.on("change",function(a){b.applyDeltas([a.data]),c.schedule(f.$timeout)})};(function(){this.$timeout=500,this.setTimeout=function(a){this.$timeout=a},this.setValue=function(a){this.doc.setValue(a),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(a){this.sender.callback(this.doc.getValue(),a)},this.onUpdate=function(){}}).call(f.prototype)}),define("ace/document",function(a,b,c){var d=a("pilot/oop"),e=a("pilot/event_emitter").EventEmitter,f=a("ace/range").Range,g=function(a){this.$lines=[],Array.isArray(a)?this.insertLines(0,a):a.length==0?this.$lines=[""]:this.insert({row:0,column:0},a)};(function(){d.implement(this,e),this.setValue=function(a){var b=this.getLength();this.remove(new f(0,0,b,this.getLine(b-1).length)),this.insert({row:0,column:0},a)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},"aaa".split(/a/).length==0?this.$split=function(a){return a.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(a){return a.split(/\r\n|\r|\n/)},this.$detectNewLine=function(a){var b=a.match(/^.*?(\r?\n)/m);b?this.$autoNewLine=b[1]:this.$autoNewLine="\n"},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";case"auto":return this.$autoNewLine}},this.$autoNewLine="\n",this.$newLineMode="auto",this.setNewLineMode=function(a){this.$newLineMode!==a&&(this.$newLineMode=a)},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(a){return a=="\r\n"||a=="\r"||a=="\n"},this.getLine=function(a){return this.getLines(a,a+1)[0]||""},this.getLines=function(a,b){return this.$lines.slice(a,b+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(a){if(a.start.row==a.end.row)return this.$lines[a.start.row].substring(a.start.column,a.end.column);var b=[];b.push(this.$lines[a.start.row].substring(a.start.column)),b.push.apply(b,this.getLines(a.start.row+1,a.end.row-1)),b.push(this.$lines[a.end.row].substring(0,a.end.column));return b.join(this.getNewLineCharacter())},this.$clipPosition=function(a){var b=this.getLength();a.row>=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length);return a},this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b);if(this.isNewLine(b))var d=this.insertNewLine(a);else if(c.length==1)var d=this.insertInLine(a,b);else{if(c[0].length>0){var d=this.insertInLine(a,c[0]);this.insertNewLine(d)}if(a.row+1==this.getLength()){this.insertLines(a.row+1,c.slice(1,c.length));var d={row:a.row+c.length-1,column:a.column+c[c.length-1].length}}else{c.length>2&&this.insertLines(a.row+1,c.slice(1,c.length-1));var d=this.insertInLine({row:a.row+c.length-1,column:0},c[c.length-1])}}return d},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};this._dispatchEvent("change",{data:e});return d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:d});return c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};this._dispatchEvent("change",{data:e});return d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b!=c){var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};this._dispatchEvent("change",{data:i});return d.start}},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};this._dispatchEvent("change",{data:e});return d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._dispatchEvent("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b<a.length;b++){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.insertLines(d.start.row,c.lines):c.action=="insertText"?this.insert(d.start,c.text):c.action=="removeLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="removeText"&&this.remove(d)}},this.revertDeltas=function(a){for(var b=a.length-1;b>=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(g.prototype),b.Document=g}),define("ace/range",function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compare=function(a,b){if(!this.isMultiLine())if(a===this.start.row)return b<this.start.column?-1:b>this.end.column?1:0;if(a<this.start.row)return-1;if(a>this.end.row)return 1;if(this.start.row===a)return b>=this.start.column?0:-1;if(this.end.row===a)return b<=this.end.column?0:1;return 0},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row<a)var e={row:a,column:0};if(this.end.row<a)var c={row:a,column:0};return d.fromPoints(e||this.start,c||this.end)},this.extend=function(a,b){var c=this.compare(a,b);if(c==0)return this;if(c==-1)var e={row:a,column:b};else var f={row:a,column:b};return d.fromPoints(e||this.start,f||this.end)},this.isEmpty=function(){return this.start.row==this.end.row&&this.start.column==this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return d.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new d(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new d(this.start.row,0,this.end.row,0)},this.toScreenRange=function(a){var b=a.documentToScreenPosition(this.start),c=a.documentToScreenPosition(this.end);return new d(b.row,b.column,c.row,c.column)}}).call(d.prototype),d.fromPoints=function(a,b){return new d(a.row,a.column,b.row,b.column)},b.Range=d}),define("pilot/lang",function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return Array(b+1).join(a)},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.arrayToMap=function(a){var b={};for(var c=0;c<a.length;c++)b[a[c]]=1;return b},b.arrayRemove=function(a,b){for(var c=0;c<=a.length;c++)b===a[c]&&a.splice(c,1)},b.escapeRegExp=function(a){return a.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},b.deferredCall=function(a){var b=null,c=function(){b=null,a()};return{schedule:function(a){b||(b=setTimeout(c,a||0));return this},call:function(){this.cancel(),a();return this},cancel:function(){clearTimeout(b),b=null;return this}}}}),define("ace/worker/jslint",function(a,b,c){var d=b.JSLINT=function(){function cM(){var a,b,c,d,e,f,g,h=J.white,i;ba="html",bb="",R=null;for(;;){switch(I.value){case"<":ba="html",bF("<"),b={},f=I,f.identifier||bx("Bad identifier {a}.",f,f.value),d=f.value,J.cap&&(d=d.toLowerCase()),f.name=d,bF(),R||(R=[],cI(d)),g=y[d],typeof g!=="object"&&bz("Unrecognized tag '<{a}>'.",f,d),c=g.empty,f.type=d;for(;;){if(I.id==="/"){bF("/"),I.id!==">"&&bx("Expected '{a}' and instead saw '{b}'.",I,">",I.value);break}if(I.id&&I.id.substr(0,1)===">")break;I.identifier||((I.id==="(end)"||I.id==="(error)")&&bz("Missing '>'.",I),bx("Bad identifier.")),J.white=!0,bK(),a=I.value,J.white=h,bF(),!J.cap&&a!==a.toLowerCase()&&bx("Attribute '{a}' not all lower case.",I,a),a=a.toLowerCase(),bb="",bt(b,a)&&bx("Attribute '{a}' repeated.",I,a),a.slice(0,2)==="on"?(J.on||bx("Avoid HTML event handlers."),ba="scriptstring",bF("="),e=I.id,e!=='"'&&e!=="'"&&bz("Missing quote."),bb=e,i=J.white,J.white=!1,bF(e),bN(),cf("on"),J.white=i,I.id!==e&&bz("Missing close quote on script attribute."),ba="html",bb="",bF(e),g=!1):a==="style"?(ba="scriptstring",bF("="),e=I.id,e!=='"'&&e!=="'"&&bz("Missing quote."),ba="styleproperty",bb=e,bF(e),cD(),ba="html",bb="",bF(e),g=!1):I.id==="="?(bF("="),g=I.value,!I.identifier&&I.id!=='"'&&I.id!=="'"&&I.type!=="(string)"&&I.type!=="(number)"&&I.type!=="(color)"&&bx("Expected an attribute value and instead saw '{a}'.",X,a),bF()):g=!0,b[a]=g,cJ(d,a,g)}cK(d,b),c||R.push(f),ba="outer",bF(">");break;case"</":ba="html",bF("</"),I.identifier||bx("Bad identifier."),d=I.value,J.cap&&(d=d.toLowerCase()),bF(),R||bz("Unexpected '{a}'.",I,cL(d)),f=R.pop(),f||bz("Unexpected '{a}'.",I,cL(d)),f.name!==d&&bz("Expected '{a}' and instead saw '{b}'.",I,cL(f.name),cL(d)),I.id!==">"&&bz("Missing '{a}'.",I,">"),ba="outer",bF(">");break;case"<!":J.safe&&bx("ADsafe HTML violation."),ba="html";for(;;){bF();if(I.id===">"||I.id==="(end)")break;I.value.indexOf("--")>=0&&bz("Unexpected --."),I.value.indexOf("<")>=0&&bz("Unexpected <."),I.value.indexOf(">")>=0&&bz("Unexpected >.")}ba="outer",bF(">");break;case"(end)":return;default:I.id==="(end)"?bz("Missing '{a}'.",I,"</"+R[R.length-1].value+">"):bF()}if(R&&R.length===0&&(J.adsafe||!J.fragment||I.id==="(end)"))break}I.id!=="(end)"&&bz("Unexpected material after the end.")}function cL(a){return"</"+a+">"}function cK(d,e){var g,h=y[d],i;Q=!1,h||bz("Unrecognized tag '<{a}>'.",I,d===d.toLowerCase()?d:d+" (capitalization error)");if(R.length>0){d==="html"&&bz("Too many <html> tags.",X),i=h.parent;if(i)i.indexOf(" "+R[R.length-1].name+" ")<0&&bz("A '<{a}>' must be within '<{b}>'.",X,d,i);else if(!J.adsafe&&!J.fragment){g=R.length;do g<=0&&bz("A '<{a}>' must be within '<{b}>'.",X,d,"body"),g-=1;while(R[g].name!=="body")}}switch(d){case"div":J.adsafe&&R.length===1&&!a&&bx("ADSAFE violation: missing ID_.");break;case"script":ba="script",bF(">"),e.lang&&bx("lang is deprecated.",X),J.adsafe&&R.length!==1&&bx("ADsafe script placement violation.",X),e.src?(J.adsafe&&(!b||!f[e.src])&&bx("ADsafe unapproved script source.",X),e.type&&bx("type is unnecessary.",X)):(c&&bz("ADsafe script violation.",X),bN(),cf("script")),ba="html",bF("</"),!I.identifier&&I.value!=="script"&&bx("Expected '{a}' and instead saw '{b}'.",I,"script",I.value),bF(),ba="outer";break;case"style":ba="style",bF(">"),cH(),ba="html",bF("</"),!I.identifier&&I.value!=="style"&&bx("Expected '{a}' and instead saw '{b}'.",I,"style",I.value),bF(),ba="outer";break;case"input":switch(e.type){case"radio":case"checkbox":case"button":case"reset":case"submit":break;case"text":case"file":case"password":case"file":case"hidden":case"image":J.adsafe&&e.autocomplete!=="off"&&bx("ADsafe autocomplete violation.");break;default:bx("Bad input type.")}break;case"applet":case"body":case"embed":case"frame":case"frameset":case"head":case"iframe":case"noembed":case"noframes":case"object":case"param":J.adsafe&&bx("ADsafe violation: Disallowed tag: "+d)}}function cJ(b,c,d){var e,f;c==="id"?(e=typeof d==="string"?d.toUpperCase():"",z[e]===!0&&bx("Duplicate id='{a}'.",I,d),/^[A-Za-z][A-Za-z0-9._:\-]*$/.test(d)?J.adsafe&&(a?d.slice(0,a.length)!==a?bx("ADsafe violation: An id must have a '{a}' prefix",I,a):/^[A-Z]+_[A-Z]+$/.test(d)||bx("ADSAFE violation: bad id."):(a=d,/^[A-Z]+_$/.test(d)||bx("ADSAFE violation: bad id."))):bx("Bad id: '{a}'.",I,d),f=d.search(bq),f>=0&&bx("Unexpected character '{a}' in {b}.",X,d.charAt(f),c),z[e]=!0):c==="class"||c==="type"||c==="name"?(f=d.search(bp),f>=0&&bx("Unexpected character '{a}' in {b}.",X,d.charAt(f),c),z[e]=!0):c!=="href"&&c!=="background"&&c!=="content"&&c!=="data"&&c.indexOf("src")<0&&c.indexOf("url")<0?c==="for"?J.adsafe&&(a?d.slice(0,a.length)!==a?bx("ADsafe violation: An id must have a '{a}' prefix",I,a):/^[A-Z]+_[A-Z]+$/.test(d)||bx("ADSAFE violation: bad id."):bx("ADSAFE violation: bad id.")):c==="name"&&(J.adsafe&&d.indexOf("_")>=0&&bx("ADsafe name violation.")):(J.safe&&bm.test(d)&&bz("ADsafe URL violation."),Y.push(d))}function cI(a){a!=="html"&&!J.fragment&&(a==="div"&&J.adsafe?bz("ADSAFE: Use the fragment option."):bz("Expected '{a}' and instead saw '{b}'.",X,"html",a)),J.adsafe&&(a==="html"&&bz("Currently, ADsafe does not operate on whole HTML documents. It operates on <div> fragments and .js files.",X),J.fragment?a!=="div"&&bz("ADsafe violation: Wrap the widget in a div.",X):bz("Use the fragment option.",X)),J.browser=!0,bv()}function cH(){var a;while(I.id==="@"){a=bE(),bF("@");if(I.identifier)switch(I.value){case"import":bF(),cz()||(bx("Expected '{a}' and instead saw '{b}'.",I,"url",I.value),bF()),bM();break;case"media":bF();for(;;){(!I.identifier||q[I.value]===!0)&&bz("Expected a CSS media type, and instead saw '{a}'.",I,I.id),bF();if(I.id!==",")break;bL()}bF("{"),cG(),bF("}");break;default:bx("Expected an at-rule, and instead saw @{a}.",I,I.value)}else bx("Expected an at-rule, and instead saw '{a}'.",I,I.value)}cG()}function cG(){while(I.id!=="</"&&I.id!=="(end)")cF(),ba="styleproperty",I.id===";"?bM():(bF("{"),cD(),ba="style",bF("}"))}function cF(){I.id==="{"&&bx("Expected a style pattern, and instead saw '{a}'.",I,I.id);for(;;){cE();if(I.id==="</"||I.id==="{"||I.id==="(end)")return"";I.id===","&&bL()}}function cE(){if(I.identifier)bt(y,J.cap?I.value.toLowerCase():I.value)||bx("Expected a tagName, and instead saw {a}.",I,I.value),bF();else switch(I.id){case">":case"+":bF(),cE();break;case":":bF(":");switch(I.value){case"active":case"after":case"before":case"checked":case"disabled":case"empty":case"enabled":case"first-child":case"first-letter":case"first-line":case"first-of-type":case"focus":case"hover":case"last-child":case"last-of-type":case"link":case"only-of-type":case"root":case"target":case"visited":bF();break;case"lang":bF(),bF("("),I.identifier||bx("Expected a lang code, and instead saw :{a}.",I,I.value),bF(")");break;case"nth-child":case"nth-last-child":case"nth-last-of-type":case"nth-of-type":bF(),bF("("),cC(),bF(")");break;case"not":bF(),bF("("),I.id===":"&&bE(0).value==="not"&&bx("Nested not."),cE(),bF(")");break;default:bx("Expected a pseudo, and instead saw :{a}.",I,I.value)}break;case"#":bF("#"),I.identifier||bx("Expected an id, and instead saw #{a}.",I,I.value),bF();break;case"*":bF("*");break;case".":bF("."),I.identifier||bx("Expected a class, and instead saw #.{a}.",I,I.value),bF();break;case"[":bF("["),I.identifier||bx("Expected an attribute, and instead saw [{a}].",I,I.value),bF();if(I.id==="="||I.value==="~="||I.value==="$="||I.value==="|="||I.id==="*="||I.id==="^=")bF(),I.type!=="(string)"&&bx("Expected a string, and instead saw {a}.",I,I.value),bF();bF("]");break;default:bz("Expected a CSS selector, and instead saw {a}.",I,I.value)}}function cD(){var a;for(;;){if(I.id==="}"||I.id==="(end)"||bb&&I.id===bb)return;while(I.id===";")bx("Misplaced ';'."),bF(";");a=cA(),bF(":"),I.identifier&&I.value==="inherit"?bF():cB(a)||(bx("Unexpected token '{a}'.",I,I.value),bF()),I.id==="!"&&(bF("!"),bJ(),I.identifier&&I.value==="important"?bF():bx("Expected '{a}' and instead saw '{b}'.",I,"important",I.value)),I.id==="}"||I.id===bb?bx("Missing '{a}'.",I,";"):bM()}}function cC(){if(I.id==="(number)")bF(),I.value==="n"&&I.identifier&&(bJ(),bF(),I.id==="+"&&(bJ(),bF("+"),bJ(),bF("(number)")));else{if(I.identifier&&(I.value==="odd"||I.value==="even")){bF();return}bx("Unexpected token '{a}'.",I,I.value)}}function cB(a){var b=0,c,d,e,f,g=0,h;switch(typeof a){case"function":return a();case"string":if(I.identifier&&I.value===a){bF();return!0}return!1}for(;;){if(b>=a.length)return!1;h=a[b],b+=1;if(h===!0)break;typeof h==="number"?(c=h,h=a[b],b+=1):c=1,e=!1;while(c>0)if(cB(h))e=!0,c-=1;else break;if(e)return!0}g=b,d=[];for(;;){f=!1;for(b=g;b<a.length;b+=1)if(!d[b])if(cB(k[a[b]])){e=!0,f=!0,d[b]=!0;break}if(!f)return e}}function cA(){var a;while(I.id==="*"||I.id==="#"||I.value==="_")J.css||bx("Unexpected '{a}'.",I,I.value),bF();if(I.id==="-"){J.css||bx("Unexpected '{a}'.",I,I.value),bF("-"),I.identifier||bx("Expected a non-standard style attribute and instead saw '{a}'.",I,I.value),bF();return l}I.identifier?bt(k,I.value)?a=k[I.value]:(a=l,J.css||bx("Unrecognized style attribute '{a}'.",I,I.value)):bx("Excepted a style attribute, and instead saw '{a}'.",I,I.value),bF();return a}function cz(){var a,b;if(I.identifier&&I.value==="url"){I=bB.range("(",")"),b=I.value,a=b.charAt(0);if(a==='"'||a==="'")b.slice(-1)!==a?bx("Bad url string."):(b=b.slice(1,-1),b.indexOf(a)>=0&&bx("Bad url string."));b||bx("Missing url."),bF(),J.safe&&bm.test(b)&&bz("ADsafe URL violation."),Y.push(b);return!0}return!1}function cy(){var a;if(I.identifier&&I.value==="rect"){bF(),bF("(");for(a=0;a<4;a+=1)if(!cr()){bx("Expected a number and instead saw '{a}'.",I,I.value);break}bF(")");return!0}return!1}function cx(){if(I.identifier&&I.value==="counter"){bF(),bF("("),bF(),I.id===","&&(bL(),I.type!=="(string)"&&bx("Expected a string and instead saw '{a}'.",I,I.value),bF()),bF(")");return!0}if(I.identifier&&I.value==="counters"){bF(),bF("("),I.identifier||bx("Expected a name and instead saw '{a}'.",I,I.value),bF(),I.id===","&&(bL(),I.type!=="(string)"&&bx("Expected a string and instead saw '{a}'.",I,I.value),bF()),I.id===","&&(bL(),I.type!=="(string)"&&bx("Expected a string and instead saw '{a}'.",I,I.value),bF()),bF(")");return!0}return!1}function cw(){while(I.id!==";"){!cn()&&!cp()&&bx("Expected a name and instead saw '{a}'.",I,I.value);if(I.id!==",")return!0;bL()}}function cv(){if(I.identifier&&I.value==="attr"){bF(),bF("("),I.identifier||bx("Expected a name and instead saw '{a}'.",I,I.value),bF(),bF(")");return!0}return!1}function cu(){if(!I.identifier)return cr();if(I.value==="auto"){bF();return!0}}function ct(){if(!I.identifier)return cr();switch(I.value){case"thin":case"medium":case"thick":bF();return!0}}function cs(){I.id==="-"&&(bF("-"),bJ());if(I.type==="(number)"){bF(),I.type!=="(string)"&&p[I.value]===!0&&(bJ(),bF());return!0}return!1}function cr(){I.id==="-"&&(bF("-"),bJ());if(I.type==="(number)"){bF(),I.type!=="(string)"&&p[I.value]===!0?(bJ(),bF()):+X.value!==0&&bx("Expected a linear unit and instead saw '{a}'.",I,I.value);return!0}return!1}function cq(){var a,b,c;if(I.identifier){c=I.value;if(c==="rgb"||c==="rgba"){bF(),bF("(");for(a=0;a<3;a+=1)a&&bL(),b=I.value,I.type!=="(number)"||b<0?(bx("Expected a positive number and instead saw '{a}'",I,b),bF()):(bF(),I.id==="%"?(bF("%"),b>100&&bx("Expected a percentage and instead saw '{a}'",X,b)):b>255&&bx("Expected a small number and instead saw '{a}'",X,b));c==="rgba"&&(bL(),b=+I.value,(I.type!=="(number)"||b<0||b>1)&&bx("Expected a number between 0 and 1 and instead saw '{a}'",I,b),bF(),I.id==="%"&&(bx("Unexpected '%'."),bF("%"))),bF(")");return!0}if(m[I.value]===!0){bF();return!0}}else if(I.type==="(color)"){bF();return!0}return!1}function cp(){if(I.type==="(string)"){bF();return!0}}function co(){I.id==="-"&&(bF("-"),bJ());if(I.type==="(number)"){bF("(number)");return!0}}function cn(){if(I.identifier){bF();return!0}}function cm(){function b(){var a=I;bF("[");if(I.id!=="]")for(;;){if(I.id==="(end)")bz("Missing ']' to match '[' from line {a}.",I,a.line);else{if(I.id==="]"){bx("Unexpected comma.",X);break}I.id===","&&bz("Unexpected comma.",I)}cm();if(I.id!==",")break;bF(",")}bF("]")}function a(){var a={},b=I;bF("{");if(I.id!=="}")for(;;){if(I.id==="(end)")bz("Missing '}' to match '{' from line {a}.",I,b.line);else{if(I.id==="}"){bx("Unexpected comma.",X);break}I.id===","?bz("Unexpected comma.",I):I.id!=="(string)"&&bx("Expected a string and instead saw {a}.",I,I.value)}a[I.value]===!0?bx("Duplicate key '{a}'.",I,I.value):I.value==="__proto__"?bx("Stupid key '{a}'.",I,I.value):a[I.value]=!0,bF(),bF(":"),cm();if(I.id!==",")break;bF(",")}bF("}")}switch(I.id){case"{":a();break;case"[":b();break;case"true":case"false":case"null":case"(number)":case"(string)":bF();break;case"-":bF("-"),X.thru!==I.from&&bx("Unexpected space after '-'.",X),bJ(),bF("(number)");break;default:bz("Expected a JSON value.",I)}}function cl(a,b){var c=P;P=Object.create(c),u={"(name)":b||'"'+e+'"',"(line)":I.line,"(context)":u,"(breakage)":0,"(loopage)":0,"(scope)":P,"(token)":a},X.funct=u,w.push(u),b&&bC(b,"function"),a.name=b||"",a.first=u["(params)"]=ck(),a.block=cg(!1),P=c,u["(last)"]=X.line,u=u["(context)"];return a}function ck(){var a,b=I,c=[];bF("("),bI();if(I.id===")")bI(),bF(")");else for(;;){a=cd(),c.push(a),bC(a,"parameter");if(I.id===",")bL();else{bI(),bF(")",b);return c}}}function cj(){var a=cc(!0);a||(I.id==="(string)"?(a=I.value,J.adsafe&&(a.charAt(0)==="_"||a.charAt(a.length-1)==="_")&&bx("Unexpected {a} in '{b}'.",X,"dangling '_'",a),bF()):I.id==="(number)"&&(a=I.value.toString(),bF()));return a}function ci(a){var b=a.value,c=a.line,d=A[b];typeof d==="function"&&(d=!1),d?d[d.length-1]!==c&&d.push(c):(d=[c],A[b]=d)}function ch(a){H&&typeof H[a]!=="boolean"&&bx("Unexpected /*member '{a}'.",X,a),typeof G[a]==="number"?G[a]+=1:G[a]=1}function cg(a){var b,c=B,d=U,e=P,f;B=a,P=Object.create(P),bK(),f=I,I.id==="{"?(bF("{"),!a&&!bN()&&!d&&J.strict&&u["(context)"]["(global)"]&&bx('Missing "use strict" statement.'),b=cf(),U=d,bF("}",f)):a?(bx("Expected '{a}' and instead saw '{b}'.",I,"{",I.value),b=[ce()],b[0].disrupt&&(b.disrupt=!0)):bz("Expected '{a}' and instead saw '{b}'.",I,"{",I.value),u["(verb)"]=null,P=e,B=c,a&&b.length===0&&bx("Empty block.");return b}function cf(c){var d=[],e,f,g,h;if(J.adsafe)switch(c){case"script":b||(I.value!=="ADSAFE"||bE(0).id!=="."||bE(1).value!=="id"&&bE(1).value!=="go")&&bz("ADsafe violation: Missing ADSAFE.id or ADSAFE.go.",I),I.value==="ADSAFE"&&bE(0).id==="."&&bE(1).value==="id"&&(b&&bz("ADsafe violation.",I),bF("ADSAFE"),bF("."),bF("id"),bF("("),I.value!==a&&bz("ADsafe violation: id does not match.",I),bF("(string)"),bF(")"),bM(),b=!0);break;case"lib":if(I.value==="ADSAFE"){bF("ADSAFE"),bF("."),bF("lib"),bF("("),bF("(string)"),bL(),f=bO(0),f.id!=="function"&&bz("The second argument to lib must be a function.",f),g=f.funct["(params)"],g=g&&g.join(", "),g&&g!=="lib"&&bz("Expected '{a}' and instead saw '{b}'.",f,"(lib)","("+g+")"),bF(")"),bM();return d}bz("ADsafe lib violation.")}while(K[I.id]!==!0)I.id===";"?(bx("Unnecessary semicolon."),bF(";")):(e&&(bx("Unreachable '{a}' after '{b}'.",I,I.value,e.value),e=null),h=ce(),d.push(h),h.disrupt&&(e=h,d.disrupt=!0));return d}function ce(a){var b,c=P,d=I;if(d.id===";")bx("Unnecessary semicolon.",d),bF(";");else{d.identifier&&!d.reserved&&bE().id===":"&&(bF(),bF(":"),P=Object.create(c),bC(d.value,"label"),D[I.id]!==!0&&bx("Label '{a}' on '{b}' statement.",I,d.value,I.value),bl.test(d.value+":")&&bx("Label '{a}' looks like a javascript url.",d,d.value),I.label=d.value,d=I),b=bO(0,!0),b.arity==="statement"?b.id==="switch"||b.block&&b.id!=="do"?bK():bM():(b.id==="("&&b.first.id==="new"?bx("Do not use 'new' for side effects."):!b.assign&&b.id!=="delete"&&b.id!=="++"&&b.id!=="--"&&b.id!=="("&&bx("Expected an assignment or function call and instead saw an expression.",X),I.id!==";"?by("Missing semicolon.",X.line,X.from+X.value.length):bM()),P=c;return b}}function cd(){var a=cc();if(a)return a;X.id==="function"&&I.id==="("?bx("Missing name in function statement."):bz("Expected an identifier and instead saw '{a}'.",I,I.value)}function cc(){if(I.identifier){bF(),J.safe&&h[X.value]?bx("ADsafe violation: '{a}'.",X,X.value):X.reserved&&!J.es5&&bx("Expected an identifier and instead saw '{a}' (a reserved word).",X,X.id);return X.value}}function cb(a,b){var c=bP(a,150);c.led=function(a){bJ(N,X),J.plusplus?bx("Unexpected use of '{a}'.",this,this.id):(!a.identifier||a.reserved)&&a.id!=="."&&a.id!=="["&&bx("Bad operand.",this),this.first=a,this.arity="suffix";return this};return c}function ca(a,b){return bZ(a,b,function(a,c){J.bitwise&&bx("Unexpected use of '{a}'.",c,c.id),c.first=a,c.second=bO(b);return c})}function b_(a,b){var c=bZ(a,20,function(a,c){var d;J.bitwise&&b&&bx("Unexpected use of '{a}'.",c,c.id),c.first=a,L[a.value]===!1&&P[a.value]["(global)"]===!0?bx("Read only.",a):a["function"]&&bx("'{a}' is a function.",a,a.value);if(J.safe){d=a;do typeof L[d.value]==="boolean"&&bx("ADsafe violation.",d),d=d.first;while(d)}if(a){if(a.id==="."||a.id==="["){(!a.first||a.first.value==="arguments")&&bx("Bad assignment.",c),c.second=bO(19);return c}if(a.identifier&&!a.reserved){u[a.value]==="exception"&&bx("Do not assign to the exception parameter.",a),c.second=bO(19);return c}a===V["function"]&&bx("Expected an identifier in an assignment and instead saw a function invocation.",X)}bz("Bad assignment.",c)});c.assign=!0;return c}function b$(a,b){var c=bZ(a,100,function(a,c){var d=bO(100);b?bx("Expected '{a}' and instead saw '{b}'.",c,b,c.id):(a.id==="NaN"||d.id==="NaN")&&bx("Use the isNaN function to compare with NaN.",c),a.id==="!"&&bx("Confusing use of '{a}'.",a,"!"),d.id==="!"&&bx("Confusing use of '{a}'.",a,"!"),c.first=a,c.second=d;return c});return c}function bZ(a,b,c,d){var e=bP(a,b);bU(e),e.led=function(a){this.arity="infix",d||(bK(N,X),bK());if(typeof c==="function")return c(a,this);this.first=a,this.second=bO(b);return this};return e}function bY(a,b){return bX(a,function(){typeof b==="function"&&b(this);return this})}function bX(a,b){var c=bW(a,b);c.identifier=c.reserved=!0;return c}function bW(a,b){var c=bQ(a);c.type=a,c.nud=b;return c}function bV(a,b){var c=bP(a,150);bU(c),c.nud=typeof b==="function"?b:function(){a==="typeof"?bH():bJ(),this.first=bO(150),this.arity="prefix";if(this.id==="++"||this.id==="--")J.plusplus?bx("Unexpected use of '{a}'.",this,this.id):(!this.first.identifier||this.first.reserved)&&this.first.id!=="."&&this.first.id!=="["&&bx("Bad operand.",this);return this};return c}function bU(a){var b=a.id.charAt(0);if(b>="a"&&b<="z"||b>="A"&&b<="Z")a.identifier=a.reserved=!0;return a}function bT(a,b){var c=bS(a,b);c.disrupt=!0}function bS(a,b){var c=bQ(a);c.identifier=c.reserved=!0,c.fud=b;return c}function bR(a){var b=bP(a,0);b.from=0,b.thru=0,a.value=a;return b}function bQ(a){return bP(a,0)}function bP(a,b){var c=V[a];if(!c||typeof c!=="object")V[a]=c={id:a,lbp:b,value:a};return c}function bO(a,b){var c;I.id==="(end)"&&bz("Unexpected early end of program.",X),bF(),J.safe&&typeof L[X.value]==="boolean"&&(I.id!=="("&&I.id!==".")&&bx("ADsafe violation.",X),b&&(e="anonymous",u["(verb)"]=X.value);if(b===!0&&X.fud)c=X.fud();else{if(X.nud)c=X.nud();else{if(I.type==="(number)"&&X.id==="."){bx("A leading decimal point can be confused with a dot: '.{a}'.",X,I.value),bF();return X}bz("Expected an identifier and instead saw '{a}'.",X,X.id)}while(a<I.lbp)bF(),X.led?c=X.led(c):bz("Expected an operator and instead saw '{a}'.",X,X.id)}return c}function bN(){if(I.value==="use strict"){U&&bx('Unnecessary "use strict".'),bF(),bM(),U=!0,J.newcap=!0,J.undef=!0;return!0}return!1}function bM(){bJ(),bF(";");switch(I.id){case";":case'"':case"'":case")":break;default:bK()}}function bL(){bJ(),bF(","),bK()}function bK(a,b){J.white&&(a=a||X,b=b||I,a.thru===b.from&&a.line===b.line&&bx("Missing space between '{a}' and '{b}'.",b,a.value,b.value))}function bJ(a,b){a=a||X,b=b||I,b.id!=="(end)"&&(a.line!==b.line||J.white&&a.thru!==b.from)&&bx("Unexpected space between '{a}' and '{b}'.",b,a.value,b.value)}function bI(a,b){a=a||X,b=b||I,(J.white||ba==="styleproperty"||ba==="style")&&a.thru!==b.from&&a.line===b.line&&bx("Unexpected space between '{a}' and '{b}'.",b,a.value,b.value)}function bH(a,b){a=a||X,b=b||I,b.id!=="(end)"&&J.white&&(X.line!==b.line||X.thru+1!==b.from)&&bx("Expected exactly one space between '{a}' and '{b}'.",b,X.value,b.value)}function bG(a,b){a=a||X,b=b||I,b.id!=="(end)"&&(a.line!==b.line||J.white&&a.thru+1!==b.from)&&bx("Expected exactly one space between '{a}' and '{b}'.",b,a.value,b.value)}function bF(a,b){switch(X.id){case"(number)":I.id==="."&&bx("A dot following a number can be confused with a decimal point.",X);break;case"-":(I.id==="-"||I.id==="--")&&bx("Confusing minusses.");break;case"+":(I.id==="+"||I.id==="++")&&bx("Confusing plusses.")}if(X.type==="(string)"||X.identifier)e=X.value;a&&I.id!==a&&(b?I.id==="(end)"?bx("Unmatched '{a}'.",b,b.id):bx("Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.",I,a,b.id,b.line,I.value):(I.type!=="(identifier)"||I.value!==a)&&bx("Expected '{a}' and instead saw '{b}'.",I,a,I.value)),N=X,X=I;for(;;){I=F.shift()||bB.token();if(I.type!=="special")break;bD()}}function bE(a){var b=a||0,c=0,d;while(c<=b)d=F[c],d||(d=F[c]=bB.token()),c+=1;return d}function bD(){var a,b,c,d=I.value,e,f;switch(d){case"*/":bz("Unbegun comment.");break;case"/*members":case"/*member":d="/*members",H||(H={}),b=H;break;case"/*jslint":J.safe&&bx("ADsafe restriction."),b=J,c=i;break;case"/*global":J.safe&&bx("ADsafe restriction."),b=L;break;default:bz("What?")}e=bB.token();loop:for(;;){for(;;){if(e.type==="special"&&e.value==="*/")break loop;if(e.id!==",")break;e=bB.token()}e.type!=="(string)"&&e.type!=="(identifier)"&&d!=="/*members"&&bz("Bad option.",e),f=bB.token(),f.id===":"?(f=bB.token(),b===H&&bz("Expected '{a}' and instead saw '{b}'.",e,"*/",":"),e.value==="indent"&&d==="/*jslint"?(a=+f.value,(typeof a!=="number"||!isFinite(a)||a<=0||Math.floor(a)!==a)&&bz("Expected a small integer and instead saw '{a}'.",f,f.value),b.white=!0,b.indent=a):e.value==="maxerr"&&d==="/*jslint"?(a=+f.value,(typeof a!=="number"||!isFinite(a)||a<=0||Math.floor(a)!==a)&&bz("Expected a small integer and instead saw '{a}'.",f,f.value),b.maxerr=a):e.value==="maxlen"&&d==="/*jslint"?(a=+f.value,(typeof a!=="number"||!isFinite(a)||a<=0||Math.floor(a)!==a)&&bz("Expected a small integer and instead saw '{a}'.",f,f.value),b.maxlen=a):f.value==="true"?b[e.value]=!0:f.value==="false"?b[e.value]=!1:bz("Bad option value.",f),e=bB.token()):(d==="/*jslint"&&bz("Missing option value.",e),b[e.value]=!1,e=f)}c&&bv()}function bC(a,b){J.safe&&u["(global)"]&&typeof L[a]!=="boolean"?bx("ADsafe global: "+a+".",X):a==="hasOwnProperty"&&bx("'hasOwnProperty' is a really bad name."),bt(u,a)&&!u["(global)"]&&bx(u[a]===!0?"'{a}' was used before it was defined.":"'{a}' is already defined.",I,a),u[a]=b,u["(global)"]?(x[a]=u,bt(A,a)&&(bx("'{a}' was used before it was defined.",I,a),delete A[a])):P[a]=u}function bA(a,b,c,d,e,f,g){return bz(a,{line:b,from:c},d,e,f,g)}function bz(a,b,c,d,e,f){var g=bx(a,b,c,d,e,f);bw("Stopping, unable to continue.",g.line,g.character)}function by(a,b,c,d,e,f,g){return bx(a,{line:b,from:c},d,e,f,g)}function bx(a,b,c,e,f,g){var h,i,j;b=b||I,b.id==="(end)"&&(b=X),i=b.line||0,h=b.from||0,j={id:"(error)",raw:a,evidence:E[i-1]||"",line:i,character:h,a:c,b:e,c:f,d:g},j.reason=a.supplant(j),d.errors.push(j),J.passfail&&bw("Stopping. ",i,h),Z+=1,Z>=J.maxerr&&bw("Too many errors.",i,h);return j}function bw(a,b,c){throw{name:"JSLintError",line:b,character:c,message:a+" ("+Math.floor(b/E.length*100)+"% scanned)."}}function bv(){J.safe||(J.rhino&&bu(L,O),J.devel&&bu(L,s),J.browser&&bu(L,j),J.windows&&bu(L,_),J.widget&&bu(L,$))}function bu(a,b){var c;for(c in b)bt(b,c)&&(a[c]=b[c])}function bt(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function bs(){}var a,b,c,e,f,g={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},h={arguments:!0,callee:!0,caller:!0,constructor:!0,eval:!0,prototype:!0,stack:!0,unwatch:!0,valueOf:!0,watch:!0},i={adsafe:!0,bitwise:!0,browser:!0,cap:!0,css:!0,debug:!0,devel:!0,es5:!0,evil:!0,forin:!0,fragment:!0,newcap:!0,nomen:!0,on:!0,onevar:!0,passfail:!0,plusplus:!0,regexp:!0,rhino:!0,undef:!0,safe:!0,windows:!0,strict:!0,sub:!0,white:!0,widget:!0},j={addEventListener:!1,blur:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,defaultStatus:!1,document:!1,event:!1,focus:!1,frames:!1,getComputedStyle:!1,history:!1,Image:!1,length:!1,location:!1,moveBy:!1,moveTo:!1,name:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,setInterval:!1,setTimeout:!1,status:!1,top:!1,XMLHttpRequest:!1},k,l,m={aliceblue:!0,antiquewhite:!0,aqua:!0,aquamarine:!0,azure:!0,beige:!0,bisque:!0,black:!0,blanchedalmond:!0,blue:!0,blueviolet:!0,brown:!0,burlywood:!0,cadetblue:!0,chartreuse:!0,chocolate:!0,coral:!0,cornflowerblue:!0,cornsilk:!0,crimson:!0,cyan:!0,darkblue:!0,darkcyan:!0,darkgoldenrod:!0,darkgray:!0,darkgreen:!0,darkkhaki:!0,darkmagenta:!0,darkolivegreen:!0,darkorange:!0,darkorchid:!0,darkred:!0,darksalmon:!0,darkseagreen:!0,darkslateblue:!0,darkslategray:!0,darkturquoise:!0,darkviolet:!0,deeppink:!0,deepskyblue:!0,dimgray:!0,dodgerblue:!0,firebrick:!0,floralwhite:!0,forestgreen:!0,fuchsia:!0,gainsboro:!0,ghostwhite:!0,gold:!0,goldenrod:!0,gray:!0,green:!0,greenyellow:!0,honeydew:!0,hotpink:!0,indianred:!0,indigo:!0,ivory:!0,khaki:!0,lavender:!0,lavenderblush:!0,lawngreen:!0,lemonchiffon:!0,lightblue:!0,lightcoral:!0,lightcyan:!0,lightgoldenrodyellow:!0,lightgreen:!0,lightpink:!0,lightsalmon:!0,lightseagreen:!0,lightskyblue:!0,lightslategray:!0,lightsteelblue:!0,lightyellow:!0,lime:!0,limegreen:!0,linen:!0,magenta:!0,maroon:!0,mediumaquamarine:!0,mediumblue:!0,mediumorchid:!0,mediumpurple:!0,mediumseagreen:!0,mediumslateblue:!0,mediumspringgreen:!0,mediumturquoise:!0,mediumvioletred:!0,midnightblue:!0,mintcream:!0,mistyrose:!0,moccasin:!0,navajowhite:!0,navy:!0,oldlace:!0,olive:!0,olivedrab:!0,orange:!0,orangered:!0,orchid:!0,palegoldenrod:!0,palegreen:!0,paleturquoise:!0,palevioletred:!0,papayawhip:!0,peachpuff:!0,peru:!0,pink:!0,plum:!0,powderblue:!0,purple:!0,red:!0,rosybrown:!0,royalblue:!0,saddlebrown:!0,salmon:!0,sandybrown:!0,seagreen:!0,seashell:!0,sienna:!0,silver:!0,skyblue:!0,slateblue:!0,slategray:!0,snow:!0,springgreen:!0,steelblue:!0,tan:!0,teal:!0,thistle:!0,tomato:!0,turquoise:!0,violet:!0,wheat:!0,white:!0,whitesmoke:!0,yellow:!0,yellowgreen:!0,activeborder:!0,activecaption:!0,appworkspace:!0,background:!0,buttonface:!0,buttonhighlight:!0,buttonshadow:!0,buttontext:!0,captiontext:!0,graytext:!0,highlight:!0,highlighttext:!0,inactiveborder:!0,inactivecaption:!0,inactivecaptiontext:!0,infobackground:!0,infotext:!0,menu:!0,menutext:!0,scrollbar:!0,threeddarkshadow:!0,threedface:!0,threedhighlight:!0,threedlightshadow:!0,threedshadow:!0,window:!0,windowframe:!0,windowtext:!0},n,o,p={"%":!0,cm:!0,em:!0,ex:!0,"in":!0,mm:!0,pc:!0,pt:!0,px:!0},q,r,s={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},t={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"/":"\\/","\\":"\\\\"},u,v=["closure","exception","global","label","outer","unused","var"],w,x,y={a:{},abbr:{},acronym:{},address:{},applet:{},area:{empty:!0,parent:" map "},article:{},aside:{},audio:{},b:{},base:{empty:!0,parent:" head "},bdo:{},big:{},blockquote:{},body:{parent:" html noframes "},br:{empty:!0},button:{},canvas:{parent:" body p div th td "},caption:{parent:" table "},center:{},cite:{},code:{},col:{empty:!0,parent:" table colgroup "},colgroup:{parent:" table "},command:{parent:" menu "},datalist:{},dd:{parent:" dl "},del:{},details:{},dialog:{},dfn:{},dir:{},div:{},dl:{},dt:{parent:" dl "},em:{},embed:{},fieldset:{},figure:{},font:{},footer:{},form:{},frame:{empty:!0,parent:" frameset "},frameset:{parent:" html frameset "},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{parent:" html "},header:{},hgroup:{},hr:{empty:!0},"hta:application":{empty:!0,parent:" head "},html:{parent:"*"},i:{},iframe:{},img:{empty:!0},input:{empty:!0},ins:{},kbd:{},keygen:{},label:{},legend:{parent:" details fieldset figure "},li:{parent:" dir menu ol ul "},link:{empty:!0,parent:" head "},map:{},mark:{},menu:{},meta:{empty:!0,parent:" head noframes noscript "},meter:{},nav:{},noframes:{parent:" html body "},noscript:{parent:" body head noframes "},object:{},ol:{},optgroup:{parent:" select "},option:{parent:" optgroup select "},output:{},p:{},param:{empty:!0,parent:" applet object "},pre:{},progress:{},q:{},rp:{},rt:{},ruby:{},samp:{},script:{empty:!0,parent:" body div frame head iframe p pre span "},section:{},select:{},small:{},span:{},source:{},strong:{},style:{parent:" head ",empty:!0},sub:{},sup:{},table:{},tbody:{parent:" table "},td:{parent:" tr "},textarea:{},tfoot:{parent:" table "},th:{parent:" tr "},thead:{parent:" table "},time:{},title:{parent:" head "},tr:{parent:" table tbody thead tfoot "},tt:{},u:{},ul:{},"var":{},video:{}},z,A,B,C,D={"do":!0,"for":!0,"switch":!0,"while":!0},E,F,G,H,I,J,K={"(end)":!0,"(error)":!0,"</":!0,"}":!0,'"':!0,"'":!0,"case":!0,"default":!0},L,M,N,O={defineClass:!1,deserialize:!1,gc:!1,help:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},P,Q,R,S={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},T={E:!0,LN2:!0,LN10:!0,LOG2E:!0,LOG10E:!0,MAX_VALUE:!0,MIN_VALUE:!0,NEGATIVE_INFINITY:!0,PI:!0,POSITIVE_INFINITY:!0,SQRT1_2:!0,SQRT2:!0},U,V={},W,X,Y,Z,$={alert:!0,animator:!0,appleScript:!0,beep:!0,bytesToUIString:!0,Canvas:!0,chooseColor:!0,chooseFile:!0,chooseFolder:!0,closeWidget:!0,COM:!0,convertPathToHFS:!0,convertPathToPlatform:!0,CustomAnimation:!0,escape:!0,FadeAnimation:!0,filesystem:!0,Flash:!0,focusWidget:!0,form:!0,FormField:!0,Frame:!0,HotKey:!0,Image:!0,include:!0,isApplicationRunning:!0,iTunes:!0,konfabulatorVersion:!0,log:!0,md5:!0,MenuItem:!0,MoveAnimation:!0,openURL:!0,play:!0,Point:!0,popupMenu:!0,preferenceGroups:!0,preferences:!0,print:!0,prompt:!0,random:!0,Rectangle:!0,reloadWidget:!0,ResizeAnimation:!0,resolvePath:!0,resumeUpdates:!0,RotateAnimation:!0,runCommand:!0,runCommandInBg:!0,saveAs:!0,savePreferences:!0,screen:!0,ScrollBar:!0,showWidgetPreferences:!0,sleep:!0,speak:!0,Style:!0,suppressUpdates:!0,system:!0,tellWidget:!0,Text:!0,TextArea:!0,Timer:!0,unescape:!0,updateNow:!0,URL:!0,Web:!0,widget:!0,Window:!0,XMLDOM:!0,XMLHttpRequest:!0,yahooCheckLogin:!0,yahooLogin:!0,yahooLogout:!0},_={ActiveXObject:!1,CScript:!1,Debug:!1,Enumerator:!1,System:!1,VBArray:!1,WScript:!1},ba,bb,bc=/@cc|<\/?|script|\]\s*\]|<\s*!|&lt/i,bd=/[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,be=/^\s*([(){}\[.,:;'"~\?\]#@]|==?=?|\/(\*(jslint|members?|global)?|=|\/)?|\*[\/=]?|\+(?:=|\++)?|-(?:=|-+)?|%=?|&[&=]?|\|[|=]?|>>?>?=?|<([\/=!]|\!(\[|--)?|<=?)?|\^=?|\!=?=?|[a-zA-Z_$][a-zA-Z0-9_$]*|[0-9]+([xX][0-9a-fA-F]+|\.[0-9]*)?([eE][+\-]?[0-9]+)?)/,bf=/^\s*(['"=>\/&#]|<(?:\/|\!(?:--)?)?|[a-zA-Z][a-zA-Z0-9_\-:]*|[0-9]+|--)/,bg=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/,bh=/[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,bi=/[>&]|<[\/!]?|--/,bj=/\*\/|\/\*/,bk=/^([a-zA-Z_$][a-zA-Z0-9_$]*)$/,bl=/^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i,bm=/&|\+|\u00AD|\.\.|\/\*|%[^;]|base64|url|expression|data|mailto/i,bn=/^\s*([{:#%.=,>+\[\]@()"';]|\*=?|\$=|\|=|\^=|~=|[a-zA-Z_][a-zA-Z0-9_\-]*|[0-9]+|<\/|\/\*)/,bo=/^\s*([@#!"'};:\-%.=,+\[\]()*_]|[a-zA-Z][a-zA-Z0-9._\-]*|\/\*?|\d+(?:\.\d+)?|<\/)/,bp=/[^a-zA-Z0-9+\-_\/ ]/,bq=/[\[\]\/\\"'*<>.&:(){}+=#]/,br={outer:bf,html:bf,style:bn,styleproperty:bo};typeof Array.isArray!=="function"&&(Array.isArray=function(a){return Object.prototype.toString.apply(a)==="[object Array]"}),typeof Object.create!=="function"&&(Object.create=function(a){bs.prototype=a;return new bs}),typeof Object.keys!=="function"&&(Object.keys=function(a){var b=[],c;for(c in a)bt(a,c)&&b.push(c);return b}),typeof String.prototype.entityify!=="function"&&(String.prototype.entityify=function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}),typeof String.prototype.isAlpha!=="function"&&(String.prototype.isAlpha=function(){return this>="a"&&this<="z￿"||this>="A"&&this<="Z￿"}),typeof String.prototype.isDigit!=="function"&&(String.prototype.isDigit=function(){return this>="0"&&this<="9"}),typeof String.prototype.supplant!=="function"&&(String.prototype.supplant=function(a){return this.replace(/\{([^{}]*)\}/g,function(b,c){var d=a[c];return typeof d==="string"||typeof d==="number"?d:b})}),typeof String.prototype.name!=="function"&&(String.prototype.name=function(){if(bk.test(this))return this;if(bg.test(this))return'"'+this.replace(bh,function(a){var b=t[a];if(b)return b;return"\\u"+("0000"+a.charCodeAt().toString(16)).slice(-4)})+'"';return'"'+this+'"'});var bB=function bB(){function f(d,e){var f,g;d==="(color)"||d==="(range)"?g={type:d}:d==="(punctuator)"||d==="(identifier)"&&bt(V,e)?g=V[e]||V["(error)"]:g=V[d],g=Object.create(g);if(d==="(string)"||d==="(range)")bl.test(e)&&by("Script URL.",c,b);d==="(identifier)"&&(g.identifier=!0,e==="__iterator__"||e==="__proto__"?bA("Reserved name '{a}'.",c,b,e):J.nomen&&(e.charAt(0)==="_"||e.charAt(e.length-1)==="_")&&by("Unexpected {a} in '{b}'.",c,b,"dangling '_'",e)),e!==undefined&&(g.value=e),g.line=c,g.thru=a,g.from=b,f=g.id,M=f&&("(,=:[!&|?{};".indexOf(f.charAt(f.length-1))>=0||f==="return");return g}function e(){var b;if(c>=E.length)return!1;a=1,d=E[c],c+=1,b=d.search(/ \t/),b>=0&&by("Mixed spaces and tabs.",c,b+1),d=d.replace(/\t/g,W),b=d.search(bd),b>=0&&by("Unsafe character.",c,b),J.maxlen&&J.maxlen<d.length&&by("Line too long.",c,d.length);return!0}var a,b,c,d;return{init:function(a){typeof a==="string"?E=a.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split("\n"):E=a,c=0,e(),b=1},range:function(e,g){var h,i="";b=a,d.charAt(0)!==e&&bA("Expected '{a}' and instead saw '{b}'.",c,a,e,d.charAt(0));for(;;){d=d.slice(1),a+=1,h=d.charAt(0);switch(h){case"":bA("Missing '{a}'.",c,a,h);break;case g:d=d.slice(1),a+=1;return f("(range)",i);case bb:case"\\":by("Unexpected '{a}'.",c,a,h)}i+=h}},token:function(){function s(g){function k(b){var e=parseInt(d.substr(i+1,b),16);i+=b,e>=32&&e<=126&&e!==34&&e!==92&&e!==39&&by("Unnecessary escapement.",c,a),a+=b,h=String.fromCharCode(e)}var h,i,j="";C&&g!=='"'&&by("Strings must use doublequote.",c,a);if(bb===g||ba==="scriptstring"&&!bb)return f("(punctuator)",g);i=0;for(;;){while(i>=d.length)i=0,(ba!=="html"||!e())&&bA("Unclosed string.",c,b);h=d.charAt(i);if(h===g){a+=1,d=d.substr(i+1);return f("(string)",j,g)}if(h<" "){if(h==="\n"||h==="\r")break;by("Control character in string: {a}.",c,a+i,d.slice(0,i))}else if(h===bb)by("Bad HTML string",c,a+i);else if(h==="<")J.safe&&ba==="html"?by("ADsafe string violation.",c,a+i):d.charAt(i+1)==="/"&&(ba||J.safe)?by("Expected '<\\/' and instead saw '</'.",c,a):d.charAt(i+1)==="!"&&(ba||J.safe)&&by("Unexpected '<!' in a string.",c,a);else if(h==="\\")if(ba==="html")J.safe&&by("ADsafe string violation.",c,a+i);else if(ba==="styleproperty")i+=1,a+=1,h=d.charAt(i),h!==g&&by("Escapement in style string.",c,a+i);else{i+=1,a+=1,h=d.charAt(i);switch(h){case bb:by("Bad HTML string",c,a+i);break;case"\\":case'"':case"/":break;case"'":C&&by("Avoid \\'.",c,a);break;case"b":h="\b";break;case"f":h="\f";break;case"n":h="\n";break;case"r":h="\r";break;case"t":h="\t";break;case"u":k(4);break;case"v":C&&by("Avoid \\v.",c,a),h=" ";break;case"x":C&&by("Avoid \\x-.",c,a),k(2);break;default:by("Bad escapement.",c,a)}}j+=h,a+=1,i+=1}}function r(c){var e=c.exec(d),f;if(e){n=e[0].length,f=e[1],h=f.charAt(0),d=d.substr(n),b=a+n-f.length,a+=n;return f}}var g,h,i,j,k,l,m,n,o,p,q;for(;;){while(!d)if(!e())return f("(end)");while(ba==="outer"){m=d.search(bi);if(m===0)break;if(m>0){a+=1,d=d.slice(m);break}if(!e())return f("(end)","")}q=r(br[ba]||be);if(q){if(h.isAlpha()||h==="_"||h==="$")return f("(identifier)",q);if(h.isDigit()){ba!=="style"&&!isFinite(Number(q))&&by("Bad number '{a}'.",c,a,q),ba!=="style"&&ba!=="styleproperty"&&d.substr(0,1).isAlpha()&&by("Missing space after '{a}'.",c,a,q),h==="0"&&(j=q.substr(1,1),j.isDigit()?X.id!=="."&&ba!=="styleproperty"&&by("Don't use extra leading zeros '{a}'.",c,a,q):C&&(j==="x"||j==="X")&&by("Avoid 0x-. '{a}'.",c,a,q)),q.substr(q.length-1)==="."&&by("A trailing decimal point can be confused with a dot '{a}'.",c,a,q);return f("(number)",q)}switch(q){case'"':case"'":return s(q);case"//":Q||ba&&ba!=="script"?by("Unexpected comment.",c,a):ba==="script"&&/<\s*\//i.test(d)?by("Unexpected </ in comment.",c,a):(J.safe||ba==="script")&&bc.test(d)&&by("Dangerous comment.",c,a),d="",X.comment=!0;break;case"/*":(Q||ba&&ba!=="script"&&ba!=="style"&&ba!=="styleproperty")&&by("Unexpected comment.",c,a),J.safe&&bc.test(d)&&by("ADsafe comment violation.",c,a);for(;;){m=d.search(bj);if(m>=0)break;e()?J.safe&&bc.test(d)&&by("ADsafe comment violation.",c,a):bA("Unclosed comment.",c,a)}a+=m+2,d.substr(m,1)==="/"&&bA("Nested comment.",c,a),d=d.substr(m+2),X.comment=!0;break;case"/*members":case"/*member":case"/*jslint":case"/*global":case"*/":return{value:q,type:"special",line:c,thru:a,from:b};case"":break;case"/":X.id==="/="&&bA("A regular expression literal can be confused with '/='.",c,b);if(M){k=0,i=0,n=0;for(;;){g=!0,h=d.charAt(n),n+=1;switch(h){case"":bA("Unclosed regular expression.",c,b);return;case"/":k>0&&by("Unescaped '{a}'.",c,b+n,"/"),h=d.substr(0,n-1),p={g:!0,i:!0,m:!0};while(p[d.charAt(n)]===!0)p[d.charAt(n)]=!1,n+=1;a+=n,d=d.substr(n),p=d.charAt(0),(p==="/"||p==="*")&&bA("Confusing regular expression.",c,b);return f("(regexp)",h);case"\\":h=d.charAt(n),h<" "?by("Unexpected control character in regular expression.",c,b+n):h==="<"&&by("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1;break;case"(":k+=1,g=!1;if(d.charAt(n)==="?"){n+=1;switch(d.charAt(n)){case":":case"=":case"!":n+=1;break;default:by("Expected '{a}' and instead saw '{b}'.",c,b+n,":",d.charAt(n))}}else i+=1;break;case"|":g=!1;break;case")":k===0?by("Unescaped '{a}'.",c,b+n,")"):k-=1;break;case" ":p=1;while(d.charAt(n)===" ")n+=1,p+=1;p>1&&by("Spaces are hard to count. Use {{a}}.",c,b+n,p);break;case"[":h=d.charAt(n),h==="^"&&(n+=1,J.regexp?by("Insecure '{a}'.",c,b+n,h):d.charAt(n)==="]"&&bA("Unescaped '{a}'.",c,b+n,"^")),p=!1,h==="]"&&(by("Empty class.",c,b+n-1),p=!0);klass:do{h=d.charAt(n),n+=1;switch(h){case"[":case"^":by("Unescaped '{a}'.",c,b+n,h),p=!0;break;case"-":p?p=!1:(by("Unescaped '{a}'.",c,b+n,"-"),p=!0);break;case"]":p||by("Unescaped '{a}'.",c,b+n-1,"-");break klass;case"\\":h=d.charAt(n),h<" "?by("Unexpected control character in regular expression.",c,b+n):h==="<"&&by("Unexpected escaped character '{a}' in regular expression.",c,b+n,h),n+=1,p=!0;break;case"/":by("Unescaped '{a}'.",c,b+n-1,"/"),p=!0;break;case"<":ba==="script"&&(h=d.charAt(n),(h==="!"||h==="/")&&by("HTML confusion in regular expression '<{a}'.",c,b+n,h)),p=!0;break;default:p=!0}}while(h);break;case".":J.regexp&&by("Insecure '{a}'.",c,b+n,h);break;case"]":case"?":case"{":case"}":case"+":case"*":by("Unescaped '{a}'.",c,b+n,h);break;case"<":ba==="script"&&(h=d.charAt(n),(h==="!"||h==="/")&&by("HTML confusion in regular expression '<{a}'.",c,b+n,h))}if(g)switch(d.charAt(n)){case"?":case"+":case"*":n+=1,d.charAt(n)==="?"&&(n+=1);break;case"{":n+=1,h=d.charAt(n),(h<"0"||h>"9")&&by("Expected a number and instead saw '{a}'.",c,b+n,h),n+=1,o=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,o=+h+o*10}l=o;if(h===","){n+=1,l=Infinity,h=d.charAt(n);if(h>="0"&&h<="9"){n+=1,l=+h;for(;;){h=d.charAt(n);if(h<"0"||h>"9")break;n+=1,l=+h+l*10}}}d.charAt(n)!=="}"?by("Expected '{a}' and instead saw '{b}'.",c,b+n,"}",h):n+=1,d.charAt(n)==="?"&&(n+=1),o>l&&by("'{a}' should not be greater than '{b}'.",c,b+n,o,l)}}h=d.substr(0,n-1),a+=n,d=d.substr(n);return f("(regexp)",h)}return f("(punctuator)",q);case"<!--":n=c,h=a;for(;;){m=d.indexOf("--");if(m>=0)break;m=d.indexOf("<!"),m>=0&&bA("Nested HTML comment.",c,a+m),e()||bA("Unclosed HTML comment.",n,h)}n=d.indexOf("<!"),n>=0&&n<m&&bA("Nested HTML comment.",c,a+n),a+=m,d.charAt(m+2)!==">"&&bA("Expected -->.",c,a),a+=3,d=d.slice(m+3);break;case"#":if(ba==="html"||ba==="styleproperty"){for(;;){h=d.charAt(0);if((h<"0"||h>"9")&&(h<"a"||h>"f")&&(h<"A"||h>"F"))break;a+=1,d=d.substr(1),q+=h}q.length!==4&&q.length!==7&&by("Bad hex color '{a}'.",c,b+n,q);return f("(color)",q)}return f("(punctuator)",q);default:if(ba==="outer"&&h==="&"){a+=1,d=d.substr(1);for(;;){h=d.charAt(0),a+=1,d=d.substr(1);if(h===";")break;(h<"0"||h>"9")&&(h<"a"||h>"z")&&h!=="#"&&bA("Bad entity",c,b+n,a)}break}return f("(punctuator)",q)}}else{q="",h="";while(d&&d<"!")d=d.substr(1);if(d){if(ba==="html")return f("(error)",d.charAt(0));bA("Unexpected '{a}'.",c,a,d.substr(0,1))}}}}}}();bW("(number)",function(){this.arity="number";return this}),bW("(string)",function(){this.arity="string";return this}),V["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var a=this.value,b=P[a],c;typeof b==="function"?b=undefined:typeof b==="boolean"&&(c=u,u=w[0],bC(a,"var"),b=u,u=c);if(u===b)switch(u[a]){case"unused":u[a]="var";break;case"unction":u[a]="function",this["function"]=!0;break;case"function":this["function"]=!0;break;case"label":bx("'{a}' is a statement label.",X,a)}else if(u["(global)"])J.undef&&typeof L[a]!=="boolean"&&bx("'{a}' is not defined.",X,a),ci(X);else switch(u[a]){case"closure":case"function":case"var":case"unused":bx("'{a}' used out of scope.",X,a);break;case"label":bx("'{a}' is a statement label.",X,a);break;case"outer":case"global":break;default:if(b===!0)u[a]=!0;else if(b===null)bx("'{a}' is not allowed.",X,a),ci(X);else if(typeof b!=="object")J.undef?bx("'{a}' is not defined.",X,a):u[a]=!0,ci(X);else switch(b[a]){case"function":case"unction":this["function"]=!0,b[a]="closure",u[a]=b["(global)"]?"global":"outer";break;case"var":case"unused":b[a]="closure",u[a]=b["(global)"]?"global":"outer";break;case"closure":case"parameter":u[a]=b["(global)"]?"global":"outer";break;case"label":bx("'{a}' is a statement label.",X,a)}}return this},led:function(){bz("Expected an operator and instead saw '{a}'.",I,I.value)}},bW("(regexp)",function(){return this}),bR("(begin)"),bR("(end)"),bR("(error)"),bQ("</"),bQ("<!"),bQ("<!--"),bQ("-->"),bQ("}"),bQ(")"),bQ("]"),bQ('"'),bQ("'"),bQ(";"),bQ(":"),bQ(","),bQ("#"),bQ("@"),bX("else"),bX("case"),bX("catch"),bX("default"),bX("finally"),bY("arguments",function(a){U&&u["(global)"]?bx("Strict violation.",a):J.safe&&bx("ADsafe violation.",a)}),bY("eval",function(a){J.safe&&bx("ADsafe violation.",a)}),bY("false"),bY("Infinity"),bY("NaN"),bY("null"),bY("this",function(a){U&&(u["(statement)"]&&u["(name)"].charAt(0)>"Z"||u["(global)"])?bx("Strict violation.",a):J.safe&&bx("ADsafe violation.",a)}),bY("true"),bY("undefined"),b_("="),b_("+="),b_("-="),b_("*="),b_("/=").nud=function(){bz("A regular expression literal can be confused with '/='.")},b_("%="),b_("&=",!0),b_("|=",!0),b_("^=",!0),b_("<<=",!0),b_(">>=",!0),b_(">>>=",!0),bZ("?",30,function(a,b){b.first=a,b.second=bO(10),bK(),bF(":"),bK(),b.third=bO(10);return b}),bZ("||",40),bZ("&&",50),ca("|",70),ca("^",80),ca("&",90),b$("==","==="),b$("==="),b$("!=","!=="),b$("!=="),b$("<"),b$(">"),b$("<="),b$(">="),ca("<<",120),ca(">>",120),ca(">>>",120),bZ("in",120),bZ("instanceof",120),bZ("+",130,function(a,b){var c=bO(130);if(a&&c&&a.id==="(string)"&&c.id==="(string)"){a.value+=c.value,a.thru=c.thru,bl.test(a.value)&&bx("JavaScript URL.",a);return a}b.first=a,b.second=c;return b}),bV("+","num"),bV("+++",function(){bx("Confusing pluses."),this.first=bO(150),this.arity="prefix";return this}),bZ("+++",130,function(a){bx("Confusing pluses."),this.first=a,this.second=bO(130);return this}),bZ("-",130),bV("-"),bV("---",function(){bx("Confusing minuses."),this.first=bO(150),this.arity="prefix";return this}),bZ("---",130,function(a){bx("Confusing minuses."),this.first=a,this.second=bO(130);return this}),bZ("*",140),bZ("/",140),bZ("%",140),cb("++"),bV("++"),cb("--"),bV("--"),bV("delete",function(){bH();var a=bO(0);(!a||a.id!=="."&&a.id!=="[")&&bx("Only properties should be deleted."),this.first=a;return this}),bV("~",function(){bJ(),J.bitwise&&bx("Unexpected '{a}'.",this,"~"),bO(150);return this}),bV("!",function(){bJ(),this.first=bO(150),this.arity="prefix",g[this.first.id]===!0&&bx("Confusing use of '{a}'.",this,"!");return this}),bV("typeof"),bV("new",function(){bH();var a=bO(160),b;if(a.id!=="function")if(a.identifier)switch(a.value){case"Object":bx("Use the object literal notation {}.",X);break;case"Array":I.id!=="("?bx("Use the array literal notation [].",X):(bF("("),I.id===")"&&bx("Use the array literal notation [].",X),bF(")")),this.first=a;return this;case"Number":case"String":case"Boolean":case"Math":case"JSON":bx("Do not use {a} as a constructor.",X,a.value);break;case"Function":J.evil||bx("The Function constructor is eval.");break;case"Date":case"RegExp":break;default:a.id!=="function"&&(b=a.value.substr(0,1),J.newcap&&(b<"A"||b>"Z")&&bx("A constructor name should start with an uppercase letter.",X))}else a.id!=="."&&a.id!=="["&&a.id!=="("&&bx("Bad constructor.",X);else bx("Weird construction. Delete 'new'.",this);I.id!=="("&&bx("Missing '()' invoking a constructor."),this.first=a;return this}),bZ("(",160,function(a,b){bJ(N,X),!a.immed&&a.id==="function"&&bx("Wrap an immediate function invocation in parentheses to assist the reader in understanding that the expression is the result of a function, and not the function itself.");var c=[];a&&(a.type==="(identifier)"?a.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&(a.value!=="Number"&&a.value!=="String"&&a.value!=="Boolean"&&a.value!=="Date"&&(a.value==="Math"?bx("Math is not a function.",a):J.newcap&&bx("Missing 'new' prefix when invoking a constructor.",a))):a.id==="."&&(J.safe&&a.first.value==="Math"&&a.second==="random"&&bx("ADsafe violation.",a)));if(I.id!==")"){bI();for(;;){c.push(bO(10));if(I.id!==",")break;bL()}}bI(),bF(")"),typeof a==="object"&&(a.value==="parseInt"&&c.length===1&&bx("Missing radix parameter.",a),J.evil||(a.value==="eval"||a.value==="Function"||a.value==="execScript"?bx("eval is evil.",a):c[0]&&c[0].id==="(string)"&&(a.value==="setTimeout"||a.value==="setInterval")&&bx("Implied eval is evil. Pass a function instead of a string.",a)),!a.identifier&&a.id!=="."&&a.id!=="["&&a.id!=="("&&a.id!=="&&"&&a.id!=="||"&&a.id!=="?"&&bx("Bad invocation.",a)),b.first=a,b.second=c;return b},!0),bV("(",function(){bI(),I.id==="function"&&(I.immed=!0);var a=bO(0);bI(),bF(")",this),a.id==="function"&&(I.id==="("?bx("Move the invocation into the parens that contain the function.",I):bx("Do not wrap function literals in parens unless they are to be immediately invoked.",this));return a}),bZ(".",170,function(d,e){bI(N,X),bI();var f=cd();typeof f==="string"&&ch(f),e.first=d,e.second=f,!d||d.value!=="arguments"||f!=="callee"&&f!=="caller"?J.evil||!d||d.value!=="document"||f!=="write"&&f!=="writeln"?J.adsafe&&(d&&d.value==="ADSAFE"&&(f==="id"||f==="lib"?bx("ADsafe violation.",e):f==="go"&&(ba!=="script"?bx("ADsafe violation.",e):(c||I.id!=="("||bE(0).id!=="(string)"||bE(0).value!==a||bE(1).id!==",")&&bz("ADsafe violation: go.",e),c=!0,b=!1))):bx("document.write can be a form of eval.",d):bx("Avoid arguments.{a}.",d,f);if(J.evil||f!=="eval"&&f!=="execScript"){if(J.safe)for(;;){h[f]===!0&&bx("ADsafe restricted word '{a}'.",X,f);if(typeof L[d.value]!=="boolean"||I.id==="(")break;if(T[f]===!0){I.id==="."&&bx("ADsafe violation.",e);break}if(I.id!=="."){bx("ADsafe violation.",e);break}bF("."),X.first=e,X.second=f,e=X,f=cd(),typeof f==="string"&&ch(f)}}else bx("eval is evil.");return e},!0),bZ("[",170,function(a,b){bJ(N,X),bI();var c=bO(0),d;if(c&&c.type==="(string)")J.safe&&h[c.value]===!0?bx("ADsafe restricted word '{a}'.",b,c.value):J.evil||c.value!=="eval"&&c.value!=="execScript"?J.safe&&(c.value.charAt(0)==="_"||c.value.charAt(0)==="-")&&bx("ADsafe restricted subscript '{a}'.",b,c.value):bx("eval is evil.",b),ch(c.value),!J.sub&&bk.test(c.value)&&(d=V[c.value],(!d||!d.reserved)&&bx("['{a}'] is better written in dot notation.",c,c.value));else if(!c||c.type!=="(number)"||c.value<0)J.safe&&bx("ADsafe subscripting.");bF("]",b),bI(N,X),b.first=a,b.second=c;return b},!0),bV("[",function(){this.first=[];while(I.id!=="(end)"){while(I.id===",")bx("Extra comma."),bF(",");if(I.id==="]")break;this.first.push(bO(10));if(I.id!==",")break;bL();if(I.id==="]"&&!J.es5){bx("Extra comma.",X);break}}bF("]",this);return this},170),bV("{",function(){var a,b,c,d,e,f,g={},h;this.arity="prefix",this.first=[];while(I.id!=="}"){I.value==="get"&&bE().id!==":"?(J.es5||bx("get/set are ES5 features."),a=I,bG(),bF("get"),d=I,b=cj(),b||bz("Missing property name."),cl(a,""),u["(loopage)"]&&bx("Don't make functions within a loop.",h),e=a.first,e&&bx("Unexpected parameter '{a}' in get {b} function.",h,e[0],b),bL(),f=I,bK(),bF("set"),bG(),c=cj(),b!==c&&bz("Expected '{a}' and instead saw '{b}'.",X,b,c),cl(f,""),e=f.first,(!e||e.length!==1||e[0]!=="value")&&bx("Expected (value) in set {a} function.",h,b),d.first=[a,f]):(d=I,b=cj(),typeof b!=="string"&&bz("Missing property name."),bF(":"),bK(),d.first=bO(10)),this.first.push(d),g[b]===!0&&bx("Duplicate member '{a}'.",I,b),g[b]=!0,ch(b);if(I.id!==",")break;for(;;){bL();if(I.id!==",")break;bx("Extra comma.")}I.id==="}"&&!J.es5&&bx("Extra comma.",X)}bF("}",this);return this}),bS("{",function(){bx("Expected to see a statement and instead saw a block."),this.arity="statement",this.block=cf(),this.disrupt=this.block.disrupt,bF("}");return this}),bS("var",function(){var a,b,c;u["(onevar)"]&&J.onevar?bx("Too many var statements."):u["(global)"]||(u["(onevar)"]=!0),this.arity="statement",this.first=[];for(;;){bK(),c=I,b=cd(),u["(global)"]&&L[b]===!1&&bx("Redefinition of '{a}'.",X,b),bC(b,"unused"),I.id==="="?(a=I,a.first=c,bK(),bF("="),bK(),I.id==="undefined"&&bx("It is not necessary to initialize '{a}' to 'undefined'.",X,b),bE(0).id==="="&&I.identifier&&bz("Variable {a} was not declared correctly.",I,I.value),a.second=bO(0),a.arity="infix",this.first.push(a)):this.first.push(c);if(I.id!==",")break;bL()}return this}),bS("function",function(){bH(),B&&bx("Function statements should not be placed in blocks. Use a function expression or move the statement to the top of the outer function.",X);var a=cd();a&&(bC(a,"unction"),bJ()),cl(this,a,!0),I.id==="("&&I.line===X.line&&bz("Function statements are not invocable. Wrap the whole function invocation in parens."),this.arity="statement";return this}),bV("function",function(){bH();var a=cc();a&&bJ(),cl(this,a),u["(loopage)"]&&bx("Don't make functions within a loop."),this.arity="function";return this}),bS("if",function(){var a=I;bH(),bF("("),bI(),this.arity="statement",this.first=bO(20),I.id==="="&&(bx("Expected a conditional expression and instead saw an assignment."),bF("="),bO(20)),bI(),bF(")",a),bG(),this.block=cg(!0),I.id==="else"&&(bH(),bF("else"),bG(),this["else"]=I.id==="if"||I.id==="switch"?ce(!0):cg(!0),this["else"].disrupt&&this.block.disrupt&&(this.disrupt=!0));return this}),bS("try",function(){var a,b,c,d;J.adsafe&&bx("ADsafe try violation.",this),bG(),this.arity="statement",this.block=cg(!1),I.id==="catch"&&(bH(),bF("catch"),bH(),bF("("),bJ(),c=P,P=Object.create(c),b=I.value,this.first=b,I.type!=="(identifier)"?bx("Expected an identifier and instead saw '{a}'.",I,b):bC(b,"exception"),bF(),bJ(),bF(")"),bH(),this.second=cg(!1),a=!0,P=c),I.id==="finally"?(bH(),d=I,bF("finally"),bH(),this.third=cg(!1)):a||bz("Expected '{a}' and instead saw '{b}'.",I,"catch",I.value);return this}),bS("while",function(){bH();var a=I;u["(breakage)"]+=1,u["(loopage)"]+=1,bF("("),bI(),this.arity="statement",this.first=bO(20),I.id==="="&&(bx("Expected a conditional expression and instead saw an assignment."),bF("="),bO(20)),bI(),bF(")",a),bG(),this.block=cg(!0),this.block.disrupt&&bx("Strange loop.",N),u["(breakage)"]-=1,u["(loopage)"]-=1;return this}),bX("with"),bS("switch",function(){var a=!0,b,c=I;u["(breakage)"]+=1,bH(),bF("("),bI(),this.arity="statement",this.first=bO(20),bI(),bF(")",c),bG(),bF("{"),this.second=[];while(I.id==="case"){c=I,c.first=[];do bK(),bF("case"),bH(),c.first.push(bO(0)),bJ(),bF(":");while(I.id==="case");bK(),c.second=cf(),c.second&&c.second.length>0?(b=c.second[c.second.length-1],b.disrupt?b.id==="break"&&(a=!1):bx("Missing break after case.")):bx("Empty case"),this.second.push(c)}this.second.length===0&&bx("switch without cases."),I.id==="default"&&(bK(),c=I,bF("default"),bJ(),bF(":"),bK(),c.second=cf(),c.second&&c.second.length>0&&(b=c.second[c.second.length-1],a&&b.disrupt&&b.id!=="break"&&(this.disrupt=!0)),this.second.push(c)),u["(breakage)"]-=1,bK(),bF("}");return this}),bS("debugger",function(){J.debug||bx("All 'debugger' statements should be removed."),this.arity="statement";return this}),bS("do",function(){u["(breakage)"]+=1,u["(loopage)"]+=1,bG(),this.arity="statement",this.block=cg(!0),this.block.disrupt&&bx("Strange loop.",N),bH(),bF("while");var a=I;bG(),bF("("),bI(),this.first=bO(0),this.first.id==="="&&bx("Expected a conditional expression and instead saw an assignment."),bI(),bF(")",a),u["(breakage)"]-=1,u["(loopage)"]-=1;return this}),bS("for",function(){var a=J.forin,b,c,d=I,e;this.arity="statement",u["(breakage)"]+=1,u["(loopage)"]+=1,bF("("),bK(this,d),bI();if(bE(0).id==="in"){e=I;switch(u[e.value]){case"unused":u[e.value]="var";break;case"var":break;default:bx("Bad for in variable '{a}'.",e,e.value)}bF(),b=I,bF("in"),b.first=e,b.second=bO(20),bF(")",d),this.first=b,c=cg(!0),!a&&(c.length>1||typeof c[0]!=="object"||c[0].value!=="if")&&bx("The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.",this)}else{if(I.id!==";"){this.first=[];for(;;){this.first.push(bO(0,"for"));if(I.id!==",")break;bL()}}bM(),I.id!==";"&&(this.second=bO(20),this.second.id==="="&&bx("Expected a conditional expression and instead saw an assignment.")),bM(X),I.id===";"&&bz("Expected '{a}' and instead saw '{b}'.",I,")",";");if(I.id!==")"){this.third=[];for(;;){this.third.push(bO(0,"for"));if(I.id!==",")break;bL()}}bI(),bF(")",d),bG(),c=cg(!0)}c.disrupt&&bx("Strange loop.",N),this.block=c,u["(breakage)"]-=1,u["(loopage)"]-=1;return this}),bT("break",function(){var a=I.value;this.arity="statement",u["(breakage)"]===0&&bx("Unexpected '{a}'.",I,this.value),I.identifier&&X.line===I.line&&(bG(),u[a]!=="label"?bx("'{a}' is not a label.",I,a):P[a]!==u&&bx("'{a}' is out of scope.",I,a),this.first=I,bF());return this}),bT("continue",function(){var a=I.value;this.arity="statement",u["(breakage)"]===0&&bx("Unexpected '{a}'.",I,this.value),I.identifier&&X.line===I.line&&(bG(),u[a]!=="label"?bx("'{a}' is not a label.",I,a):P[a]!==u&&bx("'{a}' is out of scope.",I,a),this.first=I,bF());return this}),bT("return",function(){this.arity="statement",I.id!==";"&&I.line===X.line&&(bG(),(I.id==="/"||I.id==="(regexp)")&&bx("Wrap the /regexp/ literal in parens to disambiguate the slash operator."),this.first=bO(20));return this}),bT("throw",function(){this.arity="statement",bG(),this.first=bO(20);return this}),bX("void"),bX("class"),bX("const"),bX("enum"),bX("export"),bX("extends"),bX("import"),bX("super"),bX("let"),bX("yield"),bX("implements"),bX("interface"),bX("package"),bX("private"),bX("protected"),bX("public"),bX("static"),l=[cz,function(){for(;;)if(I.identifier)switch(I.value.toLowerCase()){case"url":cz();break;case"expression":bx("Unexpected expression '{a}'.",I,I.value),bF();break;default:bF()}else{if(I.id===";"||I.id==="!"||I.id==="(end)"||I.id==="}")return!0;bF()}}],n=["none","dashed","dotted","double","groove","hidden","inset","outset","ridge","solid"],o=["auto","always","avoid","left","right"],q={all:!0,braille:!0,embossed:!0,handheld:!0,print:!0,projection:!0,screen:!0,speech:!0,tty:!0,tv:!0},r=["auto","hidden","scroll","visible"],k={background:[!0,"background-attachment","background-color","background-image","background-position","background-repeat"],"background-attachment":["scroll","fixed"],"background-color":["transparent",cq],"background-image":["none",cz],"background-position":[2,[cr,"top","bottom","left","right","center"]],"background-repeat":["repeat","repeat-x","repeat-y","no-repeat"],border:[!0,"border-color","border-style","border-width"],"border-bottom":[!0,"border-bottom-color","border-bottom-style","border-bottom-width"],"border-bottom-color":cq,"border-bottom-style":n,"border-bottom-width":ct,"border-collapse":["collapse","separate"],"border-color":["transparent",4,cq],"border-left":[!0,"border-left-color","border-left-style","border-left-width"],"border-left-color":cq,"border-left-style":n,"border-left-width":ct,"border-right":[!0,"border-right-color","border-right-style","border-right-width"],"border-right-color":cq,"border-right-style":n,"border-right-width":ct,"border-spacing":[2,cr],"border-style":[4,n],"border-top":[!0,"border-top-color","border-top-style","border-top-width"],"border-top-color":cq,"border-top-style":n,"border-top-width":ct,"border-width":[4,ct],bottom:[cr,"auto"],"caption-side":["bottom","left","right","top"],clear:["both","left","none","right"],clip:[cy,"auto"],color:cq,content:["open-quote","close-quote","no-open-quote","no-close-quote",cp,cz,cx,cv],"counter-increment":[cn,"none"],"counter-reset":[cn,"none"],cursor:[cz,"auto","crosshair","default","e-resize","help","move","n-resize","ne-resize","nw-resize","pointer","s-resize","se-resize","sw-resize","w-resize","text","wait"],direction:["ltr","rtl"],display:["block","compact","inline","inline-block","inline-table","list-item","marker","none","run-in","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group"],"empty-cells":["show","hide"],"float":["left","none","right"],font:["caption","icon","menu","message-box","small-caption","status-bar",!0,"font-size","font-style","font-weight","font-family"],"font-family":cw,"font-size":["xx-small","x-small","small","medium","large","x-large","xx-large","larger","smaller",cr],"font-size-adjust":["none",co],"font-stretch":["normal","wider","narrower","ultra-condensed","extra-condensed","condensed","semi-condensed","semi-expanded","expanded","extra-expanded"],"font-style":["normal","italic","oblique"],"font-variant":["normal","small-caps"],"font-weight":["normal","bold","bolder","lighter",co],height:[cr,"auto"],left:[cr,"auto"],"letter-spacing":["normal",cr],"line-height":["normal",cs],"list-style":[!0,"list-style-image","list-style-position","list-style-type"],"list-style-image":["none",cz],"list-style-position":["inside","outside"],"list-style-type":["circle","disc","square","decimal","decimal-leading-zero","lower-roman","upper-roman","lower-greek","lower-alpha","lower-latin","upper-alpha","upper-latin","hebrew","katakana","hiragana-iroha","katakana-oroha","none"],margin:[4,cu],"margin-bottom":cu,"margin-left":cu,"margin-right":cu,"margin-top":cu,"marker-offset":[cr,"auto"],"max-height":[cr,"none"],"max-width":[cr,"none"],"min-height":cr,"min-width":cr,opacity:co,outline:[!0,"outline-color","outline-style","outline-width"],"outline-color":["invert",cq],"outline-style":["dashed","dotted","double","groove","inset","none","outset","ridge","solid"],"outline-width":ct,overflow:r,"overflow-x":r,"overflow-y":r,padding:[4,cr],"padding-bottom":cr,"padding-left":cr,"padding-right":cr,"padding-top":cr,"page-break-after":o,"page-break-before":o,position:["absolute","fixed","relative","static"],quotes:[8,cp],right:[cr,"auto"],"table-layout":["auto","fixed"],"text-align":["center","justify","left","right"],"text-decoration":["none","underline","overline","line-through","blink"],"text-indent":cr,"text-shadow":["none",4,[cq,cr]],"text-transform":["capitalize","uppercase","lowercase","none"],top:[cr,"auto"],"unicode-bidi":["normal","embed","bidi-override"],"vertical-align":["baseline","bottom","sub","super","top","text-top","middle","text-bottom",cr],visibility:["visible","hidden","collapse"],"white-space":["normal","nowrap","pre","pre-line","pre-wrap","inherit"],width:[cr,"auto"],"word-spacing":["normal",cr],"word-wrap":["break-word","normal"],"z-index":["auto",co]};var cN=function(e,g){var h,i,j;d.errors=[],d.tree="",L=Object.create(S);if(g){h=g.predef;if(h)if(Array.isArray(h))for(i=0;i<h.length;i+=1)L[h[i]]=!0;else if(typeof h==="object"){j=Object.keys(h);for(i=0;i<j.length;i+=1)L[j[i]]=!!h[j]}g.adsafe&&(g.safe=!0),g.safe&&(g.browser=g.css=g.debug=g.devel=g.evil=g.forin=g.on=g.rhino=g.windows=g.sub=g.widget=!1,g.nomen=g.safe=g.undef=!0,L.Date=L.eval=L.Function=L.Object=null,L.ADSAFE=L.lib=!1),J=g}else J={};J.indent=J.indent||4,J.maxerr=J.maxerr||50,a="",b=!1,c=!1,f={};if(J.approved)for(i=0;i<J.approved.length;i+=1)f[J.approved[i]]=J.approved[i];else f.test="test";W="";for(i=0;i<J.indent;i+=1)W+=" ";x=Object.create(L),P=x,u={"(global)":!0,"(name)":"(global)","(scope)":P,"(breakage)":0,"(loopage)":0},w=[u],z={},Y=[],Q=!1,ba=!1,R=null,G={},H=null,A={},B=!1,F=[],C=!1,Z=0,bB.init(e),M=!0,U=!1,N=X=I=V["(begin)"],bv();try{bF();if(I.value.charAt(0)==="<")cM(),J.adsafe&&!c&&bx("ADsafe violation: Missing ADSAFE.go.",this);else switch(I.id){case"{":case"[":C=!0,cm();break;case"@":case"*":case"#":case".":case":":ba="style",bF(),(X.id!=="@"||!I.identifier||I.value!=="charset"||X.line!==1||X.from!==1)&&bz("A css file should begin with @charset 'UTF-8';"),bF(),I.type!=="(string)"&&I.value!=="UTF-8"&&bz("A css file should begin with @charset 'UTF-8';"),bF(),bM(),cH();break;default:J.adsafe&&J.fragment&&bz("Expected '{a}' and instead saw '{b}'.",I,"<div>",I.value),I.value==="use strict"&&(bx('Use the function form of "use strict".'),bN()),d.tree=cf("lib"),d.tree.disrupt&&bx("Weird program.",N)}bF("(end)")}catch(k){k&&d.errors.push({reason:k.message,line:k.line||I.line,character:k.character||I.from},null)}return d.errors.length===0};cN.data=function(){var a={functions:[]},b,c,d=[],e,f,g,h=[],i,j=[],k;cN.errors.length&&(a.errors=cN.errors),C&&(a.json=!0);for(i in A)bt(A,i)&&d.push({name:i,line:A[i]});d.length>0&&(a.implieds=d),Y.length>0&&(a.urls=Y),c=Object.keys(P),c.length>0&&(a.globals=c);for(f=1;f<w.length;f+=1){e=w[f],b={};for(g=0;g<v.length;g+=1)b[v[g]]=[];for(i in e)bt(e,i)&&i.charAt(0)!=="("&&(k=e[i],k==="unction"&&(k="unused"),Array.isArray(b[k])&&(b[k].push(i),k==="unused"&&j.push({name:i,line:e["(line)"],"function":e["(name)"]})));for(g=0;g<v.length;g+=1)b[v[g]].length===0&&delete b[v[g]];b.name=e["(name)"],b.param=e["(params)"],b.line=e["(line)"],b.last=e["(last)"],a.functions.push(b)}j.length>0&&(a.unused=j),h=[];for(i in G)if(typeof G[i]==="number"){a.member=G;break}return a},cN.report=function(a){function o(a,b){var c,d,e;if(b){m.push("<div><i>"+a+"</i> "),b=b.sort();for(d=0;d<b.length;d+=1)b[d]!==e&&(e=b[d],m.push((c?", ":"")+e),c=!0);m.push("</div>")}}var b=cN.data(),c=[],d,e,f,g,h,i,j,k="",l,m=[],n;if(b.errors||b.implieds||b.unused){f=!0,m.push("<div id=errors><i>Error:</i>");if(b.errors)for(h=0;h<b.errors.length;h+=1)d=b.errors[h],d&&(e=d.evidence||"",m.push("<p>Problem"+(isFinite(d.line)?" at line "+d.line+" character "+d.character:"")+": "+d.reason.entityify()+"</p><p class=evidence>"+(e&&(e.length>80?e.slice(0,77)+"...":e).entityify())+"</p>"));if(b.implieds){n=[];for(h=0;h<b.implieds.length;h+=1)n[h]="<code>"+b.implieds[h].name+"</code>&nbsp;<i>"+b.implieds[h].line+"</i>";m.push("<p><i>Implied global:</i> "+n.join(", ")+"</p>")}if(b.unused){n=[];for(h=0;h<b.unused.length;h+=1)n[h]="<code><u>"+b.unused[h].name+"</u></code>&nbsp;<i>"+b.unused[h].line+" </i> <small>"+b.unused[h]["function"]+"</small>";m.push("<p><i>Unused variable:</i> "+n.join(", ")+"</p>")}b.json&&m.push("<p>JSON: bad.</p>"),m.push("</div>")}if(!a){m.push("<br><div id=functions>"),b.urls&&o("URLs<br>",b.urls,"<br>"),ba==="style"?m.push("<p>CSS.</p>"):b.json&&!f?m.push("<p>JSON: good.</p>"):b.globals?m.push("<div><i>Global</i> "+b.globals.sort().join(", ")+"</div>"):m.push("<div><i>No new global variables introduced.</i></div>");for(h=0;h<b.functions.length;h+=1)g=b.functions[h],m.push("<br><div class=function><i>"+g.line+"-"+g.last+"</i> "+(g.name||"")+"("+(g.param?g.param.join(", "):"")+")</div>"),o("<big><b>Unused</b></big>",g.unused),o("Closure",g.closure),o("Variable",g["var"]),o("Exception",g.exception),o("Outer",g.outer),o("Global",g.global),o("Label",g.label);if(b.member){c=Object.keys(b.member);if(c.length){c=c.sort(),k="<br><pre id=members>/*members ",j=10;for(h=0;h<c.length;h+=1)i=c[h],l=i.name(),j+l.length>72&&(m.push(k+"<br>"),k=" ",j=1),j+=l.length+2,b.member[i]===1&&(l="<i>"+l+"</i>"),h<c.length-1&&(l+=", "),k+=l;m.push(k+"<br>*/</pre>")}m.push("</div>")}}return m.join("")},cN.jslint=cN,cN.edition="2011-01-09";return cN}()}),define("ace/narcissus/jsparse",function(require,exports,module){function parseStdin(a,b){for(;;)try{var c=new lexer.Tokenizer(a,"stdin",b.value),d=Script(c,!1);b.value=c.lineno;return d}catch(e){if(!c.unexpectedEOF)throw e;var f=readline();if(!f)throw e;a+="\n"+f}}function parse(a,b,c){var d=new lexer.Tokenizer(a,b,c),e=Script(d,!1);if(!d.done)throw d.newSyntaxError("Syntax error");return e}function PrimaryExpression(a,b){var c,d,e=a.get(!0);switch(e){case FUNCTION:c=FunctionDefinition(a,b,!1,EXPRESSED_FORM);break;case LEFT_BRACKET:c=new Node(a,{type:ARRAY_INIT});while((e=a.peek(!0))!==RIGHT_BRACKET){if(e===COMMA){a.get(),c.push(null);continue}c.push(AssignExpression(a,b));if(e!==COMMA&&!a.match(COMMA))break}c.children.length===1&&a.match(FOR)&&(d=new Node(a,{type:ARRAY_COMP,expression:c.children[0],tail:ComprehensionTail(a,b)}),c=d),a.mustMatch(RIGHT_BRACKET);break;case LEFT_CURLY:var f,g;c=new Node(a,{type:OBJECT_INIT});object_init:if(!a.match(RIGHT_CURLY)){do{e=a.get();if(a.token.value!=="get"&&a.token.value!=="set"||a.peek()!==IDENTIFIER){switch(e){case IDENTIFIER:case NUMBER:case STRING:f=new Node(a,{type:IDENTIFIER});break;case RIGHT_CURLY:if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal trailing ,");break object_init;default:if(a.token.value in definitions.keywords){f=new Node(a,{type:IDENTIFIER});break}throw a.newSyntaxError("Invalid property name")}if(a.match(COLON))d=new Node(a,{type:PROPERTY_INIT}),d.push(f),d.push(AssignExpression(a,b)),c.push(d);else{if(a.peek()!==COMMA&&a.peek()!==RIGHT_CURLY)throw a.newSyntaxError("missing : after property");c.push(f)}}else{if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal property accessor");c.push(FunctionDefinition(a,b,!0,EXPRESSED_FORM))}}while(a.match(COMMA));a.mustMatch(RIGHT_CURLY)}break;case LEFT_PAREN:c=ParenExpression(a,b),a.mustMatch(RIGHT_PAREN),c.parenthesized=!0;break;case LET:c=LetBlock(a,b,!1);break;case NULL:case THIS:case TRUE:case FALSE:case IDENTIFIER:case NUMBER:case STRING:case REGEXP:c=new Node(a);break;default:throw a.newSyntaxError("missing operand")}return c}function ArgumentList(a,b){var c,d;c=new Node(a,{type:LIST});if(a.match(RIGHT_PAREN,!0))return c;do{d=AssignExpression(a,b);if(d.type===YIELD&&!d.parenthesized&&a.peek()===COMMA)throw a.newSyntaxError("Yield expression must be parenthesized");if(a.match(FOR)){d=GeneratorExpression(a,b,d);if(c.children.length>1||a.peek(!0)===COMMA)throw a.newSyntaxError("Generator expression must be parenthesized")}c.push(d)}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN);return c}function MemberExpression(a,b,c){var d,e,f,g;a.match(NEW)?(d=new Node(a),d.push(MemberExpression(a,b,!1)),a.match(LEFT_PAREN)&&(d.type=NEW_WITH_ARGS,d.push(ArgumentList(a,b)))):d=PrimaryExpression(a,b);while((g=a.get())!==END){switch(g){case DOT:e=new Node(a),e.push(d),a.mustMatch(IDENTIFIER),e.push(new Node(a));break;case LEFT_BRACKET:e=new Node(a,{type:INDEX}),e.push(d),e.push(Expression(a,b)),a.mustMatch(RIGHT_BRACKET);break;case LEFT_PAREN:if(c){e=new Node(a,{type:CALL}),e.push(d),e.push(ArgumentList(a,b));break};default:a.unget();return d}d=e}return d}function UnaryExpression(a,b){var c,d,e;switch(e=a.get(!0)){case DELETE:case VOID:case TYPEOF:case NOT:case BITWISE_NOT:case PLUS:case MINUS:e===PLUS?c=new Node(a,{type:UNARY_PLUS}):e===MINUS?c=new Node(a,{type:UNARY_MINUS}):c=new Node(a),c.push(UnaryExpression(a,b));break;case INCREMENT:case DECREMENT:c=new Node(a),c.push(MemberExpression(a,b,!0));break;default:a.unget(),c=MemberExpression(a,b,!0);if(a.tokens[a.tokenIndex+a.lookahead-1&3].lineno===a.lineno)if(a.match(INCREMENT)||a.match(DECREMENT))d=new Node(a,{postfix:!0}),d.push(c),c=d}return c}function MultiplyExpression(a,b){var c,d;c=UnaryExpression(a,b);while(a.match(MUL)||a.match(DIV)||a.match(MOD))d=new Node(a),d.push(c),d.push(UnaryExpression(a,b)),c=d;return c}function AddExpression(a,b){var c,d;c=MultiplyExpression(a,b);while(a.match(PLUS)||a.match(MINUS))d=new Node(a),d.push(c),d.push(MultiplyExpression(a,b)),c=d;return c}function ShiftExpression(a,b){var c,d;c=AddExpression(a,b);while(a.match(LSH)||a.match(RSH)||a.match(URSH))d=new Node(a),d.push(c),d.push(AddExpression(a,b)),c=d;return c}function RelationalExpression(a,b){var c,d,e=b.update({inForLoopInit:!1});c=ShiftExpression(a,e);while(a.match(LT)||a.match(LE)||a.match(GE)||a.match(GT)||!b.inForLoopInit&&a.match(IN)||a.match(INSTANCEOF))d=new Node(a),d.push(c),d.push(ShiftExpression(a,e)),c=d;return c}function EqualityExpression(a,b){var c,d;c=RelationalExpression(a,b);while(a.match(EQ)||a.match(NE)||a.match(STRICT_EQ)||a.match(STRICT_NE))d=new Node(a),d.push(c),d.push(RelationalExpression(a,b)),c=d;return c}function BitwiseAndExpression(a,b){var c,d;c=EqualityExpression(a,b);while(a.match(BITWISE_AND))d=new Node(a),d.push(c),d.push(EqualityExpression(a,b)),c=d;return c}function BitwiseXorExpression(a,b){var c,d;c=BitwiseAndExpression(a,b);while(a.match(BITWISE_XOR))d=new Node(a),d.push(c),d.push(BitwiseAndExpression(a,b)),c=d;return c}function BitwiseOrExpression(a,b){var c,d;c=BitwiseXorExpression(a,b);while(a.match(BITWISE_OR))d=new Node(a),d.push(c),d.push(BitwiseXorExpression(a,b)),c=d;return c}function AndExpression(a,b){var c,d;c=BitwiseOrExpression(a,b);while(a.match(AND))d=new Node(a),d.push(c),d.push(BitwiseOrExpression(a,b)),c=d;return c}function OrExpression(a,b){var c,d;c=AndExpression(a,b);while(a.match(OR))d=new Node(a),d.push(c),d.push(AndExpression(a,b)),c=d;return c}function ConditionalExpression(a,b){var c,d;c=OrExpression(a,b);if(a.match(HOOK)){d=c,c=new Node(a,{type:HOOK}),c.push(d),c.push(AssignExpression(a,b.update({inForLoopInit:!1})));if(!a.match(COLON))throw a.newSyntaxError("missing : after ?");c.push(AssignExpression(a,b))}return c}function AssignExpression(a,b){var c,d;if(a.match(YIELD,!0))return ReturnOrYield(a,b);c=new Node(a,{type:ASSIGN}),d=ConditionalExpression(a,b);if(!a.match(ASSIGN))return d;switch(d.type){case OBJECT_INIT:case ARRAY_INIT:d.destructuredNames=checkDestructuring(a,b,d);case IDENTIFIER:case DOT:case INDEX:case CALL:break;default:throw a.newSyntaxError("Bad left-hand side of assignment")}c.assignOp=a.token.assignOp,c.push(d),c.push(AssignExpression(a,b));return c}function Expression(a,b){var c,d;c=AssignExpression(a,b);if(a.match(COMMA)){d=new Node(a,{type:COMMA}),d.push(c),c=d;do{d=c.children[c.children.length-1];if(d.type===YIELD&&!d.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");c.push(AssignExpression(a,b))}while(a.match(COMMA))}return c}function ParenExpression(a,b){var c=Expression(a,b.update({inForLoopInit:b.inForLoopInit&&a.token.type===LEFT_PAREN}));if(a.match(FOR)){if(c.type===YIELD&&!c.parenthesized)throw a.newSyntaxError("Yield expression must be parenthesized");if(c.type===COMMA&&!c.parenthesized)throw a.newSyntaxError("Generator expression must be parenthesized");c=GeneratorExpression(a,b,c)}return c}function HeadExpression(a,b){var c=MaybeLeftParen(a,b),d=ParenExpression(a,b);MaybeRightParen(a,c);if(c===END&&!d.parenthesized){var e=a.peek();if(e!==LEFT_CURLY&&!definitions.isStatementStartCode[e])throw a.newSyntaxError("Unparenthesized head followed by unbraced body")}return d}function ComprehensionTail(a,b){var c,d,e,f,g;c=new Node(a,{type:COMP_TAIL});do{d=new Node(a,{type:FOR_IN,isLoop:!0}),a.match(IDENTIFIER)&&(a.token.value==="each"?d.isEach=!0:a.unget()),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),d.iterator=DestructuringExpression(a,b);break;case IDENTIFIER:d.iterator=f=new Node(a,{type:IDENTIFIER}),f.name=f.value,d.varDecl=e=new Node(a,{type:VAR}),e.push(f),b.parentScript.varDecls.push(f);break;default:throw a.newSyntaxError("missing identifier")}a.mustMatch(IN),d.object=Expression(a,b),MaybeRightParen(a,g),c.push(d)}while(a.match(FOR));a.match(IF)&&(c.guard=HeadExpression(a,b));return c}function GeneratorExpression(a,b,c){return new Node(a,{type:GENERATOR,expression:c,tail:ComprehensionTail(a,b)})}function DestructuringExpression(a,b,c){var d=PrimaryExpression(a,b);d.destructuredNames=checkDestructuring(a,b,d,c);return d}function checkDestructuring(a,b,c,d){if(c.type===ARRAY_COMP)throw a.newSyntaxError("Invalid array comprehension left-hand side");if(c.type===ARRAY_INIT||c.type===OBJECT_INIT){var e={},f,g,h,i,j,k=c.children;for(var l=0,m=k.length;l<m;l++){if(!(f=k[l]))continue;f.type===PROPERTY_INIT?(j=f.children,i=j[1],h=j[0].value):c.type===OBJECT_INIT?(i=f,h=f.value):(i=f,h=l);if(i.type===ARRAY_INIT||i.type===OBJECT_INIT)e[h]=checkDestructuring(a,b,i,d);else{if(d&&i.type!==IDENTIFIER)throw a.newSyntaxError("missing name in pattern");e[h]=i}}return e}}function LetBlock(a,b,c){var d,e;d=new Node(a,{type:LET_BLOCK,varDecls:[]}),a.mustMatch(LEFT_PAREN),d.variables=Variables(a,b,d),a.mustMatch(RIGHT_PAREN),c&&a.peek()!==LEFT_CURLY&&(e=new Node(a,{type:SEMICOLON,expression:d}),c=!1),c?d.block=Block(a,b):d.expression=AssignExpression(a,b);return d}function Variables(a,b,c){var d,e,f,g,h,i;i=a.token.type;switch(i){case VAR:case CONST:h=b.parentScript;break;case LET:h=b.parentBlock;break;case LEFT_PAREN:i=LET,h=c}d=new Node(a,{type:i,destructurings:[]});do{i=a.get();if(i===LEFT_BRACKET||i===LEFT_CURLY){a.unget();var j=DestructuringExpression(a,b,!0);e=new Node(a,{type:IDENTIFIER,name:j,readOnly:d.type===CONST}),d.push(e),pushDestructuringVarDecls(e.name.destructuredNames,h),d.destructurings.push({exp:j,decl:e});if(b.inForLoopInit&&a.peek()===IN)continue;a.mustMatch(ASSIGN);if(a.token.assignOp)throw a.newSyntaxError("Invalid variable initialization");e.initializer=AssignExpression(a,b);continue}if(i!==IDENTIFIER)throw a.newSyntaxError("missing variable name");e=new Node(a,{type:IDENTIFIER,name:a.token.value,readOnly:d.type===CONST}),d.push(e),h.varDecls.push(e);if(a.match(ASSIGN)){if(a.token.assignOp)throw a.newSyntaxError("Invalid variable initialization");e.initializer=AssignExpression(a,b)}}while(a.match(COMMA));return d}function FunctionDefinition(a,b,c,d){var e,f=new Node(a,{params:[]});f.type!==FUNCTION&&(f.type=f.value==="get"?GETTER:SETTER);if(a.match(IDENTIFIER))f.name=a.token.value;else if(c)throw a.newSyntaxError("missing function identifier");var g=new StaticContext(null,null,!0,!1,NESTING_TOP);a.mustMatch(LEFT_PAREN);if(!a.match(RIGHT_PAREN)){do switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.params.push(DestructuringExpression(a,g));break;case IDENTIFIER:f.params.push(a.token.value);break;default:throw a.newSyntaxError("missing formal parameter")}while(a.match(COMMA));a.mustMatch(RIGHT_PAREN)}e=a.get(),e!==LEFT_CURLY&&a.unget();if(e!==LEFT_CURLY){f.body=AssignExpression(a,g);if(f.body.isGenerator)throw a.newSyntaxError("Generator returns a value")}else f.body=Script(a,!0);e===LEFT_CURLY&&a.mustMatch(RIGHT_CURLY),f.end=a.token.end,f.functionForm=d,d===DECLARED_FORM&&b.parentScript.funDecls.push(f);return f}function ReturnOrYield(a,b){var c,d,e=a.token.type,f,g=b.parentScript;if(e===RETURN){if(!b.inFunction)throw a.newSyntaxError("Return not in function")}else{if(!b.inFunction)throw a.newSyntaxError("Yield not in function");g.isGenerator=!0}c=new Node(a,{value:undefined}),f=a.peek(!0),f!==END&&f!==NEWLINE&&f!==SEMICOLON&&f!==RIGHT_CURLY&&(e!==YIELD||f!==e&&f!==RIGHT_BRACKET&&f!==RIGHT_PAREN&&f!==COLON&&f!==COMMA)?e===RETURN?(c.value=Expression(a,b),g.hasReturnWithValue=!0):c.value=AssignExpression(a,b):e===RETURN&&(g.hasEmptyReturn=!0);if(g.hasReturnWithValue&&g.isGenerator)throw a.newSyntaxError("Generator returns a value");return c}function MagicalSemicolon(a){var b;if(a.lineno===a.token.lineno){b=a.peekOnSameLine();if(b!==END&&b!==NEWLINE&&b!==SEMICOLON&&b!==RIGHT_CURLY)throw a.newSyntaxError("missing ; before statement")}a.match(SEMICOLON)}function Statement(a,b){var c,d,e,f,g,h,i,j=a.get(!0),k,l,m;switch(j){case FUNCTION:return FunctionDefinition(a,b,!0,b.nesting!==NESTING_TOP?STATEMENT_FORM:DECLARED_FORM);case LEFT_CURLY:e=new Node(a,blockInit()),Statements(a,b.update({parentBlock:e}).pushTarget(e).nest(NESTING_SHALLOW),e),a.mustMatch(RIGHT_CURLY);return e;case IF:e=new Node(a),e.condition=HeadExpression(a,b),l=b.pushTarget(e).nest(NESTING_DEEP),e.thenPart=Statement(a,l),e.elsePart=a.match(ELSE)?Statement(a,l):null;return e;case SWITCH:e=new Node(a,{cases:[],defaultIndex:-1}),e.discriminant=HeadExpression(a,b),l=b.pushTarget(e).nest(NESTING_DEEP),a.mustMatch(LEFT_CURLY);while((j=a.get())!==RIGHT_CURLY){switch(j){case DEFAULT:if(e.defaultIndex>=0)throw a.newSyntaxError("More than one switch default");case CASE:f=new Node(a),j===DEFAULT?e.defaultIndex=e.cases.length:f.caseLabel=Expression(a,l,COLON);break;default:throw a.newSyntaxError("Invalid switch case")}a.mustMatch(COLON),f.statements=new Node(a,blockInit());while((j=a.peek(!0))!==CASE&&j!==DEFAULT&&j!==RIGHT_CURLY)f.statements.push(Statement(a,l));e.cases.push(f)}return e;case FOR:e=new Node(a,LOOP_INIT),a.match(IDENTIFIER)&&(a.token.value==="each"?e.isEach=!0:a.unget()),b.parenFreeMode||a.mustMatch(LEFT_PAREN),l=b.pushTarget(e).nest(NESTING_DEEP),m=b.update({inForLoopInit:!0}),(j=a.peek())!==SEMICOLON&&(j===VAR||j===CONST?(a.get(),f=Variables(a,m)):j===LET?(a.get(),a.peek()===LEFT_PAREN?f=LetBlock(a,m,!1):(m.parentBlock=e,e.varDecls=[],f=Variables(a,m))):f=Expression(a,m));if(f&&a.match(IN)){e.type=FOR_IN,e.object=Expression(a,m);if(f.type===VAR||f.type===LET){h=f.children;if(h.length!==1&&f.destructurings.length!==1)throw new SyntaxError("Invalid for..in left-hand side",a.filename,f.lineno);f.destructurings.length>0?e.iterator=f.destructurings[0]:e.iterator=h[0],e.varDecl=f}else{if(f.type===ARRAY_INIT||f.type===OBJECT_INIT)f.destructuredNames=checkDestructuring(a,m,f);e.iterator=f}}else{e.setup=f,a.mustMatch(SEMICOLON);if(e.isEach)throw a.newSyntaxError("Invalid for each..in loop");e.condition=a.peek()===SEMICOLON?null:Expression(a,m),a.mustMatch(SEMICOLON),k=a.peek(),e.update=(b.parenFreeMode?k===LEFT_CURLY||definitions.isStatementStartCode[k]:k===RIGHT_PAREN)?null:Expression(a,m)}b.parenFreeMode||a.mustMatch(RIGHT_PAREN),e.body=Statement(a,l);return e;case WHILE:e=new Node(a,{isLoop:!0}),e.condition=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest(NESTING_DEEP));return e;case DO:e=new Node(a,{isLoop:!0}),e.body=Statement(a,b.pushTarget(e).nest(NESTING_DEEP)),a.mustMatch(WHILE),e.condition=HeadExpression(a,b);if(!b.ecmaStrictMode){a.match(SEMICOLON);return e}break;case BREAK:case CONTINUE:e=new Node(a),l=b.pushTarget(e),a.peekOnSameLine()===IDENTIFIER&&(a.get(),e.label=a.token.value),e.target=e.label?l.labeledTargets.find(function(a){return a.labels.has(e.label)}):l.defaultTarget;if(!e.target)throw a.newSyntaxError("Invalid "+(j===BREAK?"break":"continue"));if(!e.target.isLoop&&j===CONTINUE)throw a.newSyntaxError("Invalid continue");break;case TRY:e=new Node(a,{catchClauses:[]}),e.tryBlock=Block(a,b);while(a.match(CATCH)){f=new Node(a),g=MaybeLeftParen(a,b);switch(a.get()){case LEFT_BRACKET:case LEFT_CURLY:a.unget(),f.varName=DestructuringExpression(a,b,!0);break;case IDENTIFIER:f.varName=a.token.value;break;default:throw a.newSyntaxError("missing identifier in catch")}if(a.match(IF)){if(b.ecma3OnlyMode)throw a.newSyntaxError("Illegal catch guard");if(e.catchClauses.length&&!e.catchClauses.top().guard)throw a.newSyntaxError("Guarded catch after unguarded");f.guard=Expression(a,b)}MaybeRightParen(a,g),f.block=Block(a,b),e.catchClauses.push(f)}a.match(FINALLY)&&(e.finallyBlock=Block(a,b));if(!e.catchClauses.length&&!e.finallyBlock)throw a.newSyntaxError("Invalid try statement");return e;case CATCH:case FINALLY:throw a.newSyntaxError(definitions.tokens[j]+" without preceding try");case THROW:e=new Node(a),e.exception=Expression(a,b);break;case RETURN:e=ReturnOrYield(a,b);break;case WITH:e=new Node(a),e.object=HeadExpression(a,b),e.body=Statement(a,b.pushTarget(e).nest(NESTING_DEEP));return e;case VAR:case CONST:e=Variables(a,b);break;case LET:a.peek()===LEFT_PAREN?e=LetBlock(a,b,!0):e=Variables(a,b);break;case DEBUGGER:e=new Node(a);break;case NEWLINE:case SEMICOLON:e=new Node(a,{type:SEMICOLON}),e.expression=null;return e;default:if(j===IDENTIFIER){j=a.peek();if(j===COLON){d=a.token.value;if(b.allLabels.has(d))throw a.newSyntaxError("Duplicate label");a.get(),e=new Node(a,{type:LABEL,label:d}),e.statement=Statement(a,b.pushLabel(d).nest(NESTING_SHALLOW)),e.target=e.statement.type===LABEL?e.statement.target:e.statement;return e}}e=new Node(a,{type:SEMICOLON}),a.unget(),e.expression=Expression(a,b),e.end=e.expression.end}MagicalSemicolon(a);return e}function Block(a,b){a.mustMatch(LEFT_CURLY);var c=new Node(a,blockInit());Statements(a,b.update({parentBlock:c}).pushTarget(c),c),a.mustMatch(RIGHT_CURLY);return c}function Statements(a,b,c){try{while(!a.done&&a.peek(!0)!==RIGHT_CURLY)c.push(Statement(a,b))}catch(d){a.done&&(a.unexpectedEOF=!0);throw d}}function MaybeRightParen(a,b){b===LEFT_PAREN&&a.mustMatch(RIGHT_PAREN)}function MaybeLeftParen(a,b){if(b.parenFreeMode)return a.match(LEFT_PAREN)?LEFT_PAREN:END;return a.mustMatch(LEFT_PAREN).type}function scriptInit(){return{type:SCRIPT,funDecls:[],varDecls:[],modDecls:[],impDecls:[],expDecls:[],loadDeps:[],hasEmptyReturn:!1,hasReturnWithValue:!1,isGenerator:!1}}function blockInit(){return{type:BLOCK,varDecls:[]}}function tokenString(a){var b=definitions.tokens[a];return/^\W/.test(b)?definitions.opTypeNames[b]:b.toUpperCase()}function Node(a,b){var c=a.token;c?(this.type=c.type,this.value=c.value,this.lineno=c.lineno,this.start=c.start,this.end=c.end):this.lineno=a.lineno,this.tokenizer=a,this.children=[];for(var d in b)this[d]=b[d]}function Script(a,b){var c=new Node(a,scriptInit()),d=new StaticContext(c,c,b,!1,NESTING_TOP);Statements(a,d,c);return c}function StaticContext(a,b,c,d,e){this.parentScript=a,this.parentBlock=b,this.inFunction=c,this.inForLoopInit=d,this.nesting=e,this.allLabels=new Stack,this.currentLabels=new Stack,this.labeledTargets=new Stack,this.defaultTarget=null,definitions.options.ecma3OnlyMode&&(this.ecma3OnlyMode=!0),definitions.options.parenFreeMode&&(this.parenFreeMode=!0)}function pushDestructuringVarDecls(a,b){for(var c in a){var d=a[c];d.type===IDENTIFIER?b.varDecls.push(d):pushDestructuringVarDecls(d,b)}}var lexer=require("ace/narcissus/jslex"),definitions=require("ace/narcissus/jsdefs");const StringMap=definitions.StringMap,Stack=definitions.Stack;eval(definitions.consts);const NESTING_TOP=0,NESTING_SHALLOW=1,NESTING_DEEP=2;StaticContext.prototype={ecma3OnlyMode:!1,parenFreeMode:!1,update:function(a){var b={};for(var c in a)b[c]={value:a[c],writable:!0,enumerable:!0,configurable:!0};return Object.create(this,b)},pushLabel:function(a){return this.update({currentLabels:this.currentLabels.push(a),allLabels:this.allLabels.push(a)})},pushTarget:function(a){var b=a.isLoop||a.type===SWITCH;if(this.currentLabels.isEmpty())return b?this.update({defaultTarget:a}):this;a.labels=new StringMap,this.currentLabels.forEach(function(b){a.labels.set(b,!0)});return this.update({currentLabels:new Stack,labeledTargets:this.labeledTargets.push(a),defaultTarget:b?a:this.defaultTarget})},nest:function(a){var b=Math.max(this.nesting,a);return b!==this.nesting?this.update({nesting:b}):this}},definitions.defineProperty(Array.prototype,"top",function(){return this.length&&this[this.length-1]},!1,!1,!0);var Np=Node.prototype={};Np.constructor=Node,Np.toSource=Object.prototype.toSource,Np.push=function(a){a!==null&&(a.start<this.start&&(this.start=a.start),this.end<a.end&&(this.end=a.end));return this.children.push(a)},Node.indentLevel=0,Np.toString=function(){var a=[];for(var b in this)this.hasOwnProperty(b)&&b!=="type"&&b!=="target"&&a.push({id:b,value:this[b]});a.sort(function(a,b){return a.id<b.id?-1:1});const c=" ";var d=++Node.indentLevel,e="{\n"+c.repeat(d)+"type: "+tokenString(this.type);for(b=0;b<a.length;b++)e+=",\n"+c.repeat(d)+a[b].id+": "+a[b].value;d=--Node.indentLevel,e+="\n"+c.repeat(d)+"}";return e},Np.getSource=function(){return this.tokenizer.source.slice(this.start,this.end)};const LOOP_INIT={isLoop:!0};definitions.defineGetter(Np,"filename",function(){return this.tokenizer.filename}),definitions.defineProperty(String.prototype,"repeat",function(a){var b="",c=this+b;while(--a>=0)b+=c;return b},!1,!1,!0);const DECLARED_FORM=0,EXPRESSED_FORM=1,STATEMENT_FORM=2;exports.parse=parse,exports.parseStdin=parseStdin,exports.Node=Node,exports.DECLARED_FORM=DECLARED_FORM,exports.EXPRESSED_FORM=EXPRESSED_FORM,exports.STATEMENT_FORM=STATEMENT_FORM,exports.Tokenizer=lexer.Tokenizer,exports.FunctionDefinition=FunctionDefinition}),define("ace/narcissus/jslex",function(require,exports,module){function Tokenizer(a,b,c){this.cursor=0,this.source=String(a),this.tokens=[],this.tokenIndex=0,this.lookahead=0,this.scanNewlines=!1,this.unexpectedEOF=!1,this.filename=b||"",this.lineno=c||1}var definitions=require("ace/narcissus/jsdefs");eval(definitions.consts);var opTokens={};for(var op in definitions.opTypeNames){if(op==="\n"||op===".")continue;var node=opTokens;for(var i=0;i<op.length;i++){var ch=op[i];ch in node||(node[ch]={}),node=node[ch],node.op=op}}Tokenizer.prototype={get done(){return this.peek(!0)===END},get token(){return this.tokens[this.tokenIndex]},match:function(a,b){return this.get(b)===a||this.unget()},mustMatch:function(a){if(!this.match(a))throw this.newSyntaxError("Missing "+definitions.tokens[a].toLowerCase());return this.token},peek:function(a){var b,c;this.lookahead?(c=this.tokens[this.tokenIndex+this.lookahead&3],b=this.scanNewlines&&c.lineno!==this.lineno?NEWLINE:c.type):(b=this.get(a),this.unget());return b},peekOnSameLine:function(a){this.scanNewlines=!0;var b=this.peek(a);this.scanNewlines=!1;return b},skip:function(){var a=this.source;for(;;){var b=a[this.cursor++],c=a[this.cursor];if(b!=="\n"||this.scanNewlines){if(b==="/"&&c==="*"){this.cursor++;for(;;){b=a[this.cursor++];if(b===undefined)throw this.newSyntaxError("Unterminated comment");if(b==="*"){c=a[this.cursor];if(c==="/"){this.cursor++;break}}else b==="\n"&&this.lineno++}}else if(b==="/"&&c==="/"){this.cursor++;for(;;){b=a[this.cursor++];if(b===undefined)return;if(b==="\n"){this.lineno++;break}}}else if(b!==" "&&b!=="\t"){this.cursor--;return}}else this.lineno++}},lexExponent:function(){var a=this.source,b=a[this.cursor];if(b==="e"||b==="E"){this.cursor++,ch=a[this.cursor++];if(ch==="+"||ch==="-")ch=a[this.cursor++];if(ch<"0"||ch>"9")throw this.newSyntaxError("Missing exponent");do ch=a[this.cursor++];while(ch>="0"&&ch<="9");this.cursor--;return!0}return!1},lexZeroNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER,a=c[this.cursor++];if(a==="."){do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.value=parseFloat(b.start,this.cursor)}else if(a==="x"||a==="X"){do a=c[this.cursor++];while(a>="0"&&a<="9"||a>="a"&&a<="f"||a>="A"&&a<="F");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}else if(a<"0"||a>"7")this.cursor--,this.lexExponent(),b.value=0;else{do a=c[this.cursor++];while(a>="0"&&a<="7");this.cursor--,b.value=parseInt(c.substring(b.start,this.cursor))}},lexNumber:function(a){var b=this.token,c=this.source;b.type=NUMBER;var d=!1;do a=c[this.cursor++],a==="."&&!d&&(d=!0,a=c[this.cursor++]);while(a>="0"&&a<="9");this.cursor--;var e=this.lexExponent();d=d||e;var f=c.substring(b.start,this.cursor);b.value=d?parseFloat(f):parseInt(f)},lexDot:function(a){var b=this.token,c=this.source,d=c[this.cursor];if(d<"0"||d>"9")b.type=DOT,b.assignOp=null,b.value=".";else{do a=c[this.cursor++];while(a>="0"&&a<="9");this.cursor--,this.lexExponent(),b.type=NUMBER,b.value=parseFloat(b.start,this.cursor)}},lexString:function(ch){var token=this.token,input=this.source;token.type=STRING;var hasEscapes=!1,delim=ch;while((ch=input[this.cursor++])!==delim){if(this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal");if(ch==="\\"){hasEscapes=!0;if(++this.cursor==input.length)throw this.newSyntaxError("Unterminated string literal")}}token.value=hasEscapes?eval(input.substring(token.start,this.cursor)):input.substring(token.start+1,this.cursor-1)},lexRegExp:function(ch){var token=this.token,input=this.source;token.type=REGEXP;do{ch=input[this.cursor++];if(ch==="\\")this.cursor++;else if(ch==="["){do{if(ch===undefined)throw this.newSyntaxError("Unterminated character class");ch==="\\"&&this.cursor++,ch=input[this.cursor++]}while(ch!=="]")}else if(ch===undefined)throw this.newSyntaxError("Unterminated regex")}while(ch!=="/");do ch=input[this.cursor++];while(ch>="a"&&ch<="z");this.cursor--,token.value=eval(input.substring(token.start,this.cursor))},lexOp:function(a){var b=this.token,c=this.source,d=opTokens[a],e=c[this.cursor];e in d&&(d=d[e],this.cursor++,e=c[this.cursor],e in d&&(d=d[e],this.cursor++,e=c[this.cursor]));var f=d.op;definitions.assignOps[f]&&c[this.cursor]==="="?(this.cursor++,b.type=ASSIGN,b.assignOp=definitions.tokenIds[definitions.opTypeNames[f]],f+="="):(b.type=definitions.tokenIds[definitions.opTypeNames[f]],b.assignOp=null),b.value=f},lexIdent:function(a){var b=this.token,c=this.source;do a=c[this.cursor++];while(a>="a"&&a<="z"||a>="A"&&a<="Z"||a>="0"&&a<="9"||a==="$"||a==="_");this.cursor--;var d=c.substring(b.start,this.cursor);b.type=definitions.keywords[d]||IDENTIFIER,b.value=d},get:function(a){var b;while(this.lookahead){--this.lookahead,this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex];if(b.type!==NEWLINE||this.scanNewlines)return b.type}this.skip(),this.tokenIndex=this.tokenIndex+1&3,b=this.tokens[this.tokenIndex],b||(this.tokens[this.tokenIndex]=b={});var c=this.source;if(this.cursor===c.length)return b.type=END;b.start=this.cursor,b.lineno=this.lineno;var d=c[this.cursor++];if(d>="a"&&d<="z"||d>="A"&&d<="Z"||d==="$"||d==="_")this.lexIdent(d);else if(a&&d==="/")this.lexRegExp(d);else if(d in opTokens)this.lexOp(d);else if(d===".")this.lexDot(d);else if(d<"1"||d>"9")if(d==="0")this.lexZeroNumber(d);else if(d==='"'||d==="'")this.lexString(d);else if(this.scanNewlines&&d==="\n")b.type=NEWLINE,b.value="\n",this.lineno++;else throw this.newSyntaxError("Illegal token");else this.lexNumber(d);b.end=this.cursor;return b.type},unget:function(){if(++this.lookahead===4)throw"PANIC: too much lookahead!";this.tokenIndex=this.tokenIndex-1&3},newSyntaxError:function(a){var b=new SyntaxError(a,this.filename,this.lineno);b.source=this.source,b.lineno=this.lineno,b.cursor=this.lookahead?this.tokens[this.tokenIndex+this.lookahead&3].start:this.cursor;return b}},exports.Tokenizer=Tokenizer}),define("ace/narcissus/jsdefs",function(a,b,c){function y(a){this.elts=a||null}function x(){this.table=Object.create(null,{}),this.size=0}function v(){return undefined}function u(a){return{getOwnPropertyDescriptor:function(b){var c=Object.getOwnPropertyDescriptor(a,b);c.configurable=!0;return c},getPropertyDescriptor:function(b){var c=s(a,b);c.configurable=!0;return c},getOwnPropertyNames:function(){return Object.getOwnPropertyNames(a)},defineProperty:function(b,c){Object.defineProperty(a,b,c)},"delete":function(b){return delete a[b]},fix:function(){if(Object.isFrozen(a))return t(a);return undefined},has:function(b){return b in a},hasOwn:function(b){return({}).hasOwnProperty.call(a,b)},get:function(b,c){return a[c]},set:function(b,c,d){a[c]=d;return!0},enumerate:function(){var b=[];for(m in a)b.push(m);return b},keys:function(){return Object.keys(a)}}}function t(a){var b={};for(var c in Object.getOwnPropertyNames(a))b[c]=Object.getOwnPropertyDescriptor(a,c);return b}function s(a,b){while(a){if(({}).hasOwnProperty.call(a,b))return Object.getOwnPropertyDescriptor(a,b);a=Object.getPrototypeOf(a)}}function r(a){return typeof a==="function"&&a.toString().match(/\[native code\]/)}function q(a,b,c,d,e,f){Object.defineProperty(a,b,{value:c,writable:!e,configurable:!d,enumerable:!f})}function p(a,b,c,d,e){Object.defineProperty(a,b,{get:c,configurable:!d,enumerable:!e})}b.options={version:185},function(){b.hostGlobal=this}();var d=["END","\n",";",",","=","?",":","CONDITIONAL","||","&&","|","^","&","==","!=","===","!==","<","<=",">=",">","<<",">>",">>>","+","-","*","/","%","!","~","UNARY_PLUS","UNARY_MINUS","++","--",".","[","]","{","}","(",")","SCRIPT","BLOCK","LABEL","FOR_IN","CALL","NEW_WITH_ARGS","INDEX","ARRAY_INIT","OBJECT_INIT","PROPERTY_INIT","GETTER","SETTER","GROUP","LIST","LET_BLOCK","ARRAY_COMP","GENERATOR","COMP_TAIL","IDENTIFIER","NUMBER","STRING","REGEXP","break","case","catch","const","continue","debugger","default","delete","do","else","false","finally","for","function","if","in","instanceof","let","new","null","return","switch","this","throw","true","try","typeof","var","void","yield","while","with"],e=["break","const","continue","debugger","do","for","if","return","switch","throw","try","var","yield","while","with"],f={"\n":"NEWLINE",";":"SEMICOLON",",":"COMMA","?":"HOOK",":":"COLON","||":"OR","&&":"AND","|":"BITWISE_OR","^":"BITWISE_XOR","&":"BITWISE_AND","===":"STRICT_EQ","==":"EQ","=":"ASSIGN","!==":"STRICT_NE","!=":"NE","<<":"LSH","<=":"LE","<":"LT",">>>":"URSH",">>":"RSH",">=":"GE",">":"GT","++":"INCREMENT","--":"DECREMENT","+":"PLUS","-":"MINUS","*":"MUL","/":"DIV","%":"MOD","!":"NOT","~":"BITWISE_NOT",".":"DOT","[":"LEFT_BRACKET","]":"RIGHT_BRACKET","{":"LEFT_CURLY","}":"RIGHT_CURLY","(":"LEFT_PAREN",")":"RIGHT_PAREN"},g={"__proto__":null},h={},i="const ";for(var j=0,k=d.length;j<k;j++){j>0&&(i+=", ");var l=d[j],m;/^[a-z]/.test(l)?(m=l.toUpperCase(),g[l]=j):m=/^\W/.test(l)?f[l]:l,i+=m+" = "+j,h[m]=j,d[l]=j}i+=";";var n={"__proto__":null};for(j=0,k=e.length;j<k;j++)n[g[e[j]]]=!0;var o=["|","^","&","<<",">>",">>>","+","-","*","/","%"];for(j=0,k=o.length;j<k;j++)l=o[j],o[l]=d[l];var w=({}).hasOwnProperty;x.prototype={has:function(a){return w.call(this.table,a)},set:function(a,b){w.call(this.table,a)||this.size++,this.table[a]=b},get:function(a){return this.table[a]},getDef:function(a,b){w.call(this.table,a)||(this.size++,this.table[a]=b());return this.table[a]},forEach:function(a){var b=this.table;for(var c in b)a.call(this,c,b[c])},toString:function(){return"[object StringMap]"}},y.prototype={push:function(a){return new y({top:a,rest:this.elts})},top:function(){if(!this.elts)throw new Error("empty stack");return this.elts.top},isEmpty:function(){return this.top===null},find:function(a){for(var b=this.elts;b;b=b.rest)if(a(b.top))return b.top;return null},has:function(a){return Boolean(this.find(function(b){return b===a}))},forEach:function(a){for(var b=this.elts;b;b=b.rest)a(b.top)}},b.tokens=d,b.opTypeNames=f,b.keywords=g,b.isStatementStartCode=n,b.tokenIds=h,b.consts=i,b.assignOps=o,b.defineGetter=p,b.defineProperty=q,b.isNativeCode=r,b.makePassthruHandler=u,b.noPropFound=v,b.StringMap=x,b.Stack=y})