!function(a){function b(){y.autorun=!0,y.previousModule&&t("moduleDone",w,{name:y.previousModule,failed:y.moduleStats.bad,passed:y.moduleStats.all-y.moduleStats.bad,total:y.moduleStats.all}),delete y.previousModule;var b,c,d=r("qunit-banner"),e=r("qunit-tests"),f=+new E-y.started,g=y.stats.all-y.stats.bad,h=["Tests completed in ",f," milliseconds.
","",g," assertions of ",y.stats.all," passed, ",y.stats.bad," failed."].join("");if(d&&(d.className=y.stats.bad?"qunit-fail":"qunit-pass"),e&&(r("qunit-testresult").innerHTML=h),y.altertitle&&G.document&&document.title&&(document.title=[y.stats.bad?"✖":"✔",document.title.replace(/^[\u2714\u2716] /i,"")].join(" ")),y.reorder&&G.sessionStorage&&0===y.stats.bad)for(b=0;b&]/g,function(a){switch(a){case"'":return"'";case'"':return""";case"<":return"<";case">":return">";case"&":return"&"}})):""}function g(a,b){y.queue.push(a),y.autorun&&!y.blocking&&h(b)}function h(a){function c(){h(a)}var d=(new E).getTime();for(y.depth=y.depth?y.depth+1:1;y.queue.length&&!y.blocking;){if(!(!G.setTimeout||y.updateRate<=0||(new E).getTime()-d0&&w.pushFailure("Introduced global variable(s): "+a.join(", ")),b=k(c,y.pollution),b.length>0&&w.pushFailure("Deleted global variable(s): "+b.join(", "))}function k(a,b){var c,d,e=a.slice();for(c=0;c-1}function p(a,b){o(a,b)||(a.className+=(a.className?" ":"")+b)}function q(a,b){for(var c=" "+a.className+" ";c.indexOf(" "+b+" ")>-1;)c=c.replace(" "+b+" "," ");a.className="function"==typeof c.trim?c.trim():c.replace(/^\s+|\s+$/g,"")}function r(a){return G.document&&document.getElementById&&document.getElementById(a)}function s(a){return function(b){y[a].push(b)}}function t(a,b,c){var d,e;if(w.hasOwnProperty(a))w[a].call(b,c);else for(e=y[a],d=0;d"+f(a)+"";2===arguments.length&&(d=b,b=null),y.currentModule&&(i=""+f(y.currentModule)+": "+i),h=new v({nameHtml:i,testName:a,expected:b,async:g,callback:d,module:y.currentModule,moduleTestEnvironment:y.currentModuleTestEnvironment,stack:e(2)}),c(h)&&h.queue()},expect:function(a){if(1!==arguments.length)return y.current.expected;y.current.expected=a},start:function(a){return void 0===y.semaphore?void w.begin(function(){F(function(){w.start(a)})}):(y.semaphore-=a||1,y.semaphore>0?void 0:y.semaphore<0?(y.semaphore=0,void w.pushFailure("Called start() while already started (QUnit.config.semaphore was 0 already)",null,e(2))):void(G.setTimeout?F(function(){y.semaphore>0||(y.timeout&&clearTimeout(y.timeout),y.blocking=!1,h(!0))},13):(y.blocking=!1,h(!0))))},stop:function(a){y.semaphore+=a||1,y.blocking=!0,y.testTimeout&&G.setTimeout&&(clearTimeout(y.timeout),y.timeout=F(function(){w.ok(!1,"Test timed out"),y.semaphore=1,w.start()},y.testTimeout))}},function(){function a(){}a.prototype=w,w=new a,w.constructor=a}(),y={queue:[],blocking:!0,hidepassed:!1,reorder:!0,altertitle:!0,requireExpects:!1,urlConfig:[{id:"noglobals",label:"Check for Globals",tooltip:"Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."},{id:"notrycatch",label:"No try-catch",tooltip:"Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."}],modules:{},begin:[],done:[],log:[],testStart:[],testDone:[],moduleStart:[],moduleDone:[]},function(){var b,c,d=a.location||{search:"",protocol:"file:"},e=d.search.slice(1).split("&"),f=e.length,g={};if(e[0])for(b=0;b