<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[188410] trunk/Tools</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/188410">188410</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2015-08-13 15:39:13 -0700 (Thu, 13 Aug 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Run benchmark customized Dromaeo should not assume there is an internet connection.
https://bugs.webkit.org/show_bug.cgi?id=147995

Patch by Dewei Zhu &lt;dewei_zhu@apple.com&gt; on 2015-08-13
Reviewed by Ryosuke Niwa.

Add several dependency js libs to local.

* Scripts/webkitpy/benchmark_runner/data/patches/Dromaeo.patch:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdatapatchesDromaeopatch">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/patches/Dromaeo.patch</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (188409 => 188410)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-08-13 22:31:21 UTC (rev 188409)
+++ trunk/Tools/ChangeLog        2015-08-13 22:39:13 UTC (rev 188410)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2015-08-13  Dewei Zhu  &lt;dewei_zhu@apple.com&gt;
+
+        Run benchmark customized Dromaeo should not assume there is an internet connection.
+        https://bugs.webkit.org/show_bug.cgi?id=147995
+
+        Reviewed by Ryosuke Niwa.
+
+        Add several dependency js libs to local.
+
+        * Scripts/webkitpy/benchmark_runner/data/patches/Dromaeo.patch:
+
</ins><span class="cx"> 2015-08-13  Filip Pizlo  &lt;fpizlo@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         WTF should have a compact Condition object to use with Lock
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdatapatchesDromaeopatch"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/patches/Dromaeo.patch (188409 => 188410)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/patches/Dromaeo.patch        2015-08-13 22:31:21 UTC (rev 188409)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/patches/Dromaeo.patch        2015-08-13 22:39:13 UTC (rev 188410)
</span><span class="lines">@@ -1,5 +1,7201 @@
</span><ins>+diff --git a/web/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js b/web/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js
+new file mode 100644
+index 0000000..2a2b701
+--- /dev/null
++++ b/web/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js
+@@ -0,0 +1,14 @@
++/*
++        Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
++        Available via Academic Free License &gt;= 2.1 OR the modified BSD license.
++        see: http://dojotoolkit.org/license for details
++*/
++
++/*
++        This is an optimized version of Dojo, built for deployment and not for
++        development. To get sources and documentation, please visit:
++
++                http://dojotoolkit.org
++*/
++
++(function(){var _1=null;if((_1||(typeof djConfig!=&quot;undefined&quot;&amp;&amp;djConfig.scopeMap))&amp;&amp;(typeof window!=&quot;undefined&quot;)){var _2=&quot;&quot;,_3=&quot;&quot;,_4=&quot;&quot;,_5={},_6={};_1=_1||djConfig.scopeMap;for(var i=0;i&lt;_1.length;i++){var _7=_1[i];_2+=&quot;var &quot;+_7[0]+&quot; = {}; &quot;+_7[1]+&quot; = &quot;+_7[0]+&quot;;&quot;+_7[1]+&quot;._scopeName = '&quot;+_7[1]+&quot;';&quot;;_3+=(i==0?&quot;&quot;:&quot;,&quot;)+_7[0];_4+=(i==0?&quot;&quot;:&quot;,&quot;)+_7[1];_5[_7[0]]=_7[1];_6[_7[1]]=_7[0];}eval(_2+&quot;dojo._scopeArgs = [&quot;+_4+&quot;];&quot;);dojo._scopePrefixArgs=_3;dojo._scopePrefix=&quot;(function(&quot;+_3+&quot;){&quot;;dojo._scopeSuffix=&quot;})(&quot;+_4+&quot;)&quot;;dojo._scopeMap=_5;dojo._scopeMapRev=_6;}(function(){if(typeof this[&quot;loadFirebugConsole&quot;]==&quot;function&quot;){this[&quot;loadFirebugConsole&quot;]();}else{this.console=this.console||{};var cn=[&quot;assert&quot;,&quot;count&quot;,&qu
 ot;debug&quot;,&quot;dir&quot;,&quot;dirxml&quot;,&quot;error&quot;,&quot;group&quot;,&quot;groupEnd&quot;,&quot;info&quot;,&quot;profile&quot;,&quot;profileEnd&quot;,&quot;time&quot;,&quot;timeEnd&quot;,&quot;trace&quot;,&quot;warn&quot;,&quot;log&quot;];var i=0,tn;while((tn=cn[i++])){if(!console[tn]){(function(){var _8=tn+&quot;&quot;;console[_8]=(&quot;log&quot; in console)?function(){var a=Array.apply({},arguments);a.unshift(_8+&quot;:&quot;);console[&quot;log&quot;](a.join(&quot; &quot;));}:function(){};console[_8]._fake=true;})();}}}if(typeof dojo==&quot;undefined&quot;){dojo={_scopeName:&quot;dojo&quot;,_scopePrefix:&quot;&quot;,_scopePrefixArgs:&quot;&quot;,_scopeSuffix:&quot;&quot;,_scopeMap:{},_scopeMapRev:{}};}var d=dojo;if(typeof dijit==&quot;undefined&quot;){dijit={_scopeName:&quot;dijit&quot;};}if(typeof dojox==&quot;undefined&quot;){dojox={_scopeName:&quot;dojox&quot;};}if(!d._scopeArgs){d._scopeArgs=[dojo,dijit,dojox];}d.global=this;d.config={isDebug:false,de
 bugAtAllCosts:false};var _9=typeof djConfig!=&quot;undefined&quot;?djConfig:typeof dojoConfig!=&quot;undefined&quot;?dojoConfig:null;if(_9){for(var c in _9){d.config[c]=_9[c];}}dojo.locale=d.config.locale;var _a=&quot;$Rev: 24595 $&quot;.match(/\d+/);dojo.version={major:1,minor:6,patch:1,flag:&quot;&quot;,revision:_a?+_a[0]:NaN,toString:function(){with(d.version){return major+&quot;.&quot;+minor+&quot;.&quot;+patch+flag+&quot; (&quot;+revision+&quot;)&quot;;}}};if(typeof OpenAjax!=&quot;undefined&quot;){OpenAjax.hub.registerLibrary(dojo._scopeName,&quot;http://dojotoolkit.org&quot;,d.version.toString());}var _b,_c,_d={};for(var i in {toString:1}){_b=[];break;}dojo._extraNames=_b=_b||[&quot;hasOwnProperty&quot;,&quot;valueOf&quot;,&quot;isPrototypeOf&quot;,&quot;propertyIsEnumerable&quot;,&quot;toLocaleString&quot;,&quot;toString&quot;,&quot;constructor&quot;];_c=_b.length;dojo._mixin=function(_e,_f){var _10,s,i;for(_10 in _f){s=_f[_10];if(!(_10 in _e)||(_e[_10]!==s&amp;&amp;
 (!(_10 in _d)||_d[_10]!==s))){_e[_10]=s;}}if(_c&amp;&amp;_f){for(i=0;i&lt;_c;++i){_10=_b[i];s=_f[_10];if(!(_10 in _e)||(_e[_10]!==s&amp;&amp;(!(_10 in _d)||_d[_10]!==s))){_e[_10]=s;}}}return _e;};dojo.mixin=function(obj,_11){if(!obj){obj={};}for(var i=1,l=arguments.length;i&lt;l;i++){d._mixin(obj,arguments[i]);}return obj;};dojo._getProp=function(_12,_13,_14){var obj=_14||d.global;for(var i=0,p;obj&amp;&amp;(p=_12[i]);i++){if(i==0&amp;&amp;d._scopeMap[p]){p=d._scopeMap[p];}obj=(p in obj?obj[p]:(_13?obj[p]={}:undefined));}return obj;};dojo.setObject=function(_15,_16,_17){var _18=_15.split(&quot;.&quot;),p=_18.pop(),obj=d._getProp(_18,true,_17);return obj&amp;&amp;p?(obj[p]=_16):undefined;};dojo.getObject=function(_19,_1a,_1b){return d._getProp(_19.split(&quot;.&quot;),_1a,_1b);};dojo.exists=function(_1c,obj){return d.getObject(_1c,false,obj)!==undefined;};dojo[&quot;eval&quot;]=function(_1d){return d.global.eval?d.global.eval(_1d):eval(_1d);};d.deprecated=d.experimental=funct
 ion(){};})();(function(){var d=dojo,_1e;d.mixin(d,{_loadedModules:{},_inFlightCount:0,_hasResource:{},_modulePrefixes:{dojo:{name:&quot;dojo&quot;,value:&quot;.&quot;},doh:{name:&quot;doh&quot;,value:&quot;../util/doh&quot;},tests:{name:&quot;tests&quot;,value:&quot;tests&quot;}},_moduleHasPrefix:function(_1f){var mp=d._modulePrefixes;return !!(mp[_1f]&amp;&amp;mp[_1f].value);},_getModulePrefix:function(_20){var mp=d._modulePrefixes;if(d._moduleHasPrefix(_20)){return mp[_20].value;}return _20;},_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false});dojo._loadUriAndCheck=function(uri,_21,cb){var ok=false;try{ok=d._loadUri(uri,cb);}catch(e){console.error(&quot;failed loading &quot;+uri+&quot; with error: &quot;+e);}return !!(ok&amp;&amp;d._loadedModules[_21]);};dojo.loaded=function(){d._loadNotifying=true;d._postLoad=true;var mll=d._loaders;d._loaders=[];for(var x=0;x&lt;mll.length;x++){mll[x]();}d._loadNotifying=false;if(d._postLoad&amp;&amp;d._inFlig
 htCount==0&amp;&amp;mll.length){d._callLoaded();}};dojo.unloaded=function(){var mll=d._unloaders;while(mll.length){(mll.pop())();}};d._onto=function(arr,obj,fn){if(!fn){arr.push(obj);}else{if(fn){var _22=(typeof fn==&quot;string&quot;)?obj[fn]:fn;arr.push(function(){_22.call(obj);});}}};dojo.ready=dojo.addOnLoad=function(obj,_23){d._onto(d._loaders,obj,_23);if(d._postLoad&amp;&amp;d._inFlightCount==0&amp;&amp;!d._loadNotifying){d._callLoaded();}};var dca=d.config.addOnLoad;if(dca){d.addOnLoad[(dca instanceof Array?&quot;apply&quot;:&quot;call&quot;)](d,dca);}dojo._modulesLoaded=function(){if(d._postLoad){return;}if(d._inFlightCount&gt;0){console.warn(&quot;files still in flight!&quot;);return;}d._callLoaded();};dojo._callLoaded=function(){if(typeof setTimeout==&quot;object&quot;||(d.config.useXDomain&amp;&amp;d.isOpera)){setTimeout(d.isAIR?function(){d.loaded();}:d._scopeName+&quot;.loaded();&quot;,0);}else{d.loaded();}};dojo._getModuleSymbols=function(_24){var _25=_24.split
 (&quot;.&quot;);for(var i=_25.length;i&gt;0;i--){var _26=_25.slice(0,i).join(&quot;.&quot;);if(i==1&amp;&amp;!d._moduleHasPrefix(_26)){_25[0]=&quot;../&quot;+_25[0];}else{var _27=d._getModulePrefix(_26);if(_27!=_26){_25.splice(0,i,_27);break;}}}return _25;};dojo._global_omit_module_check=false;dojo.loadInit=function(_28){_28();};dojo._loadModule=dojo.require=function(_29,_2a){_2a=d._global_omit_module_check||_2a;var _2b=d._loadedModules[_29];if(_2b){return _2b;}var _2c=d._getModuleSymbols(_29).join(&quot;/&quot;)+&quot;.js&quot;;var _2d=!_2a?_29:null;var ok=d._loadPath(_2c,_2d);if(!ok&amp;&amp;!_2a){throw new Error(&quot;Could not load '&quot;+_29+&quot;'; last tried '&quot;+_2c+&quot;'&quot;);}if(!_2a&amp;&amp;!d._isXDomain){_2b=d._loadedModules[_29];if(!_2b){throw new Error(&quot;symbol '&quot;+_29+&quot;' is not defined after loading '&quot;+_2c+&quot;'&quot;);}}return _2b;};dojo.provide=function(_2e){_2e=_2e+&quot;&quot;;return (d._loadedModules[_2e]=d.getObject(_2e,true
 ));};dojo.platformRequire=function(_2f){var _30=_2f.common||[];var _31=_30.concat(_2f[d._name]||_2f[&quot;default&quot;]||[]);for(var x=0;x&lt;_31.length;x++){var _32=_31[x];if(_32.constructor==Array){d._loadModule.apply(d,_32);}else{d._loadModule(_32);}}};dojo.requireIf=function(_33,_34){if(_33===true){var _35=[];for(var i=1;i&lt;arguments.length;i++){_35.push(arguments[i]);}d.require.apply(d,_35);}};dojo.requireAfterIf=d.requireIf;dojo.registerModulePath=function(_36,_37){d._modulePrefixes[_36]={name:_36,value:_37};};if(typeof dojo.config[&quot;useXDomain&quot;]==&quot;undefined&quot;){dojo.config.useXDomain=true;}dojo.registerModulePath(&quot;dojo&quot;,&quot;http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo&quot;);dojo.registerModulePath(&quot;dijit&quot;,&quot;http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dijit&quot;);dojo.registerModulePath(&quot;dojox&quot;,&quot;http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojox&quot;);dojo.requireLocalization=function(_38,_3
 9,_3a,_3b){d.require(&quot;dojo.i18n&quot;);d.i18n._requireLocalization.apply(d.hostenv,arguments);};var ore=new RegExp(&quot;^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$&quot;),ire=new RegExp(&quot;^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$&quot;);dojo._Url=function(){var n=null,_3c=arguments,uri=[_3c[0]];for(var i=1;i&lt;_3c.length;i++){if(!_3c[i]){continue;}var _3d=new d._Url(_3c[i]+&quot;&quot;),_3e=new d._Url(uri[0]+&quot;&quot;);if(_3d.path==&quot;&quot;&amp;&amp;!_3d.scheme&amp;&amp;!_3d.authority&amp;&amp;!_3d.query){if(_3d.fragment!=n){_3e.fragment=_3d.fragment;}_3d=_3e;}else{if(!_3d.scheme){_3d.scheme=_3e.scheme;if(!_3d.authority){_3d.authority=_3e.authority;if(_3d.path.charAt(0)!=&quot;/&quot;){var _3f=_3e.path.substring(0,_3e.path.lastIndexOf(&quot;/&quot;)+1)+_3d.path;var _40=_3f.split(&quot;/&quot;);for(var j=0;j&lt;_40.length;j++){if(_40[j]==&quot;.&quot;){if(j==_40.length-1){_40[j]=&quot;&quot;;}else{_40.splice(j,1);j--
 ;}}else{if(j&gt;0&amp;&amp;!(j==1&amp;&amp;_40[0]==&quot;&quot;)&amp;&amp;_40[j]==&quot;..&quot;&amp;&amp;_40[j-1]!=&quot;..&quot;){if(j==(_40.length-1)){_40.splice(j,1);_40[j-1]=&quot;&quot;;}else{_40.splice(j-1,2);j-=2;}}}}_3d.path=_40.join(&quot;/&quot;);}}}}uri=[];if(_3d.scheme){uri.push(_3d.scheme,&quot;:&quot;);}if(_3d.authority){uri.push(&quot;//&quot;,_3d.authority);}uri.push(_3d.path);if(_3d.query){uri.push(&quot;?&quot;,_3d.query);}if(_3d.fragment){uri.push(&quot;#&quot;,_3d.fragment);}}this.uri=uri.join(&quot;&quot;);var r=this.uri.match(ore);this.scheme=r[2]||(r[1]?&quot;&quot;:n);this.authority=r[4]||(r[3]?&quot;&quot;:n);this.path=r[5];this.query=r[7]||(r[6]?&quot;&quot;:n);this.fragment=r[9]||(r[8]?&quot;&quot;:n);if(this.authority!=n){r=this.authority.match(ire);this.user=r[3]||n;this.password=r[4]||n;this.host=r[6]||r[7];this.port=r[9]||n;}};dojo._Url.prototype.toString=function(){return this.uri;};dojo.moduleUrl=function(_41,url){var loc=d._getModuleSymbols
 (_41).join(&quot;/&quot;);if(!loc){return null;}if(loc.lastIndexOf(&quot;/&quot;)!=loc.length-1){loc+=&quot;/&quot;;}var _42=loc.indexOf(&quot;:&quot;);if(loc.charAt(0)!=&quot;/&quot;&amp;&amp;(_42==-1||_42&gt;loc.indexOf(&quot;/&quot;))){loc=d.baseUrl+loc;}return new d._Url(loc,url);};})();dojo.provide(&quot;dojo._base._loader.loader_xd&quot;);dojo._xdReset=function(){dojo._isXDomain=dojo.config.useXDomain||false;dojo._xdClearInterval();dojo._xdInFlight={};dojo._xdOrderedReqs=[];dojo._xdDepMap={};dojo._xdContents=[];dojo._xdDefList=[];};dojo._xdClearInterval=function(){if(dojo._xdTimer){clearInterval(dojo._xdTimer);dojo._xdTimer=0;}};dojo._xdReset();dojo._xdCreateResource=function(_43,_44,_45){var _46=_43.replace(/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,&quot;&quot;);var _47=[];var _48=/dojo.(require|requireIf|provide|requireAfterIf|platformRequire|requireLocalization)\s*\(([\w\W]*?)\)/mg;var _49;while((_49=_48.exec(_46))!=null){if(_49[1]==&quot;requireLocalization&quot;){eval(_4
 9[0]);}else{_47.push(&quot;\&quot;&quot;+_49[1]+&quot;\&quot;, &quot;+_49[2]);}}var _4a=[];_4a.push(dojo._scopeName+&quot;._xdResourceLoaded(function(&quot;+dojo._scopePrefixArgs+&quot;){\n&quot;);var _4b=dojo._xdExtractLoadInits(_43);if(_4b){_43=_4b[0];for(var i=1;i&lt;_4b.length;i++){_4a.push(_4b[i]+&quot;;\n&quot;);}}_4a.push(&quot;return {&quot;);if(_47.length&gt;0){_4a.push(&quot;depends: [&quot;);for(i=0;i&lt;_47.length;i++){if(i&gt;0){_4a.push(&quot;,\n&quot;);}_4a.push(&quot;[&quot;+_47[i]+&quot;]&quot;);}_4a.push(&quot;],&quot;);}_4a.push(&quot;\ndefineResource: function(&quot;+dojo._scopePrefixArgs+&quot;){&quot;);if(!dojo.config[&quot;debugAtAllCosts&quot;]||_44==&quot;dojo._base._loader.loader_debug&quot;){_4a.push(_43);}_4a.push(&quot;\n}, resourceName: '&quot;+_44+&quot;', resourcePath: '&quot;+_45+&quot;'};});&quot;);return _4a.join(&quot;&quot;);};dojo._xdExtractLoadInits=function(_4c){var _4d=/dojo.loadInit\s*\(/g;_4d.lastIndex=0;var _4e=/[\(\)]/g;_4e.lastIn
 dex=0;var _4f=[];var _50;while((_50=_4d.exec(_4c))){_4e.lastIndex=_4d.lastIndex;var _51=1;var _52;while((_52=_4e.exec(_4c))){if(_52[0]==&quot;)&quot;){_51-=1;}else{_51+=1;}if(_51==0){break;}}if(_51!=0){throw &quot;unmatched paren around character &quot;+_4e.lastIndex+&quot; in: &quot;+_4c;}var _53=_4d.lastIndex-_50[0].length;_4f.push(_4c.substring(_53,_4e.lastIndex));var _54=_4e.lastIndex-_53;_4c=_4c.substring(0,_53)+_4c.substring(_4e.lastIndex,_4c.length);_4d.lastIndex=_4e.lastIndex-_54;_4d.lastIndex=_4e.lastIndex;}if(_4f.length&gt;0){_4f.unshift(_4c);}return (_4f.length?_4f:null);};dojo._xdIsXDomainPath=function(_55){var _56=_55.indexOf(&quot;:&quot;);var _57=_55.indexOf(&quot;/&quot;);if(_56&gt;0&amp;&amp;_56&lt;_57||_55.indexOf(&quot;//&quot;)===0){return true;}else{var url=dojo.baseUrl;_56=url.indexOf(&quot;:&quot;);_57=url.indexOf(&quot;/&quot;);if(url.indexOf(&quot;//&quot;)===0||(_56&gt;0&amp;&amp;_56&lt;_57&amp;&amp;(!location.host||url.indexOf(&quot;http://&quot;+l
 ocation.host)!=0))){return true;}}return false;};dojo._loadPath=function(_58,_59,cb){var _5a=dojo._xdIsXDomainPath(_58);dojo._isXDomain|=_5a;var uri=((_58.charAt(0)==&quot;/&quot;||_58.match(/^\w+:/))?&quot;&quot;:dojo.baseUrl)+_58;try{return ((!_59||dojo._isXDomain)?dojo._loadUri(uri,cb,_5a,_59):dojo._loadUriAndCheck(uri,_59,cb));}catch(e){console.error(e);return false;}};dojo._xdCharSet=&quot;utf-8&quot;;dojo._loadUri=function(uri,cb,_5b,_5c){if(dojo._loadedUrls[uri]){return 1;}if(dojo._isXDomain&amp;&amp;_5c&amp;&amp;_5c!=&quot;dojo.i18n&quot;){dojo._xdOrderedReqs.push(_5c);if(_5b||uri.indexOf(&quot;/nls/&quot;)==-1){dojo._xdInFlight[_5c]=true;dojo._inFlightCount++;}if(!dojo._xdTimer){if(dojo.isAIR){dojo._xdTimer=setInterval(function(){dojo._xdWatchInFlight();},100);}else{dojo._xdTimer=setInterval(dojo._scopeName+&quot;._xdWatchInFlight();&quot;,100);}}dojo._xdStartTime=(new Date()).getTime();}if(_5b){var _5d=uri.lastIndexOf(&quot;.&quot;);if(_5d&lt;=0){_5d=uri.length-1;}
 var _5e=uri.substring(0,_5d)+&quot;.xd&quot;;if(_5d!=uri.length-1){_5e+=uri.substring(_5d,uri.length);}if(dojo.isAIR){_5e=_5e.replace(&quot;app:/&quot;,&quot;/&quot;);}var _5f=document.createElement(&quot;script&quot;);_5f.type=&quot;text/javascript&quot;;if(dojo._xdCharSet){_5f.charset=dojo._xdCharSet;}_5f.src=_5e;if(!dojo.headElement){dojo._headElement=document.getElementsByTagName(&quot;head&quot;)[0];if(!dojo._headElement){dojo._headElement=document.getElementsByTagName(&quot;html&quot;)[0];}}dojo._headElement.appendChild(_5f);}else{var _60=dojo._getText(uri,null,true);if(_60==null){return 0;}if(dojo._isXDomain&amp;&amp;uri.indexOf(&quot;/nls/&quot;)==-1&amp;&amp;_5c!=&quot;dojo.i18n&quot;){var res=dojo._xdCreateResource(_60,_5c,uri);dojo.eval(res);}else{if(cb){_60=&quot;(&quot;+_60+&quot;)&quot;;}else{_60=dojo._scopePrefix+_60+dojo._scopeSuffix;}var _61=dojo[&quot;eval&quot;](_60+&quot;\r\n//@ sourceURL=&quot;+uri);if(cb){cb(_61);}}}dojo._loadedUrls[uri]=true;dojo._load
 edUrls.push(uri);return true;};dojo._xdResourceLoaded=function(res){res=res.apply(dojo.global,dojo._scopeArgs);var _62=res.depends;var _63=null;var _64=null;var _65=[];if(_62&amp;&amp;_62.length&gt;0){var dep=null;var _66=0;var _67=false;for(var i=0;i&lt;_62.length;i++){dep=_62[i];if(dep[0]==&quot;provide&quot;){_65.push(dep[1]);}else{if(!_63){_63=[];}if(!_64){_64=[];}var _68=dojo._xdUnpackDependency(dep);if(_68.requires){_63=_63.concat(_68.requires);}if(_68.requiresAfter){_64=_64.concat(_68.requiresAfter);}}var _69=dep[0];var _6a=_69.split(&quot;.&quot;);if(_6a.length==2){dojo[_6a[0]][_6a[1]].apply(dojo[_6a[0]],dep.slice(1));}else{dojo[_69].apply(dojo,dep.slice(1));}}if(_65.length==1&amp;&amp;_65[0]==&quot;dojo._base._loader.loader_debug&quot;){res.defineResource(dojo);}else{var _6b=dojo._xdContents.push({content:res.defineResource,resourceName:res[&quot;resourceName&quot;],resourcePath:res[&quot;resourcePath&quot;],isDefined:false})-1;for(i=0;i&lt;_65.length;i++){dojo._xdD
 epMap[_65[i]]={requires:_63,requiresAfter:_64,contentIndex:_6b};}}for(i=0;i&lt;_65.length;i++){dojo._xdInFlight[_65[i]]=false;}}};dojo._xdLoadFlattenedBundle=function(_6c,_6d,_6e,_6f){_6e=_6e||&quot;root&quot;;var _70=dojo.i18n.normalizeLocale(_6e).replace(&quot;-&quot;,&quot;_&quot;);var _71=[_6c,&quot;nls&quot;,_6d].join(&quot;.&quot;);var _72=dojo[&quot;provide&quot;](_71);_72[_70]=_6f;var _73=[_6c,_70,_6d].join(&quot;.&quot;);var _74=dojo._xdBundleMap[_73];if(_74){for(var _75 in _74){_72[_75]=_6f;}}};dojo._xdInitExtraLocales=function(){var _76=dojo.config.extraLocale;if(_76){if(!_76 instanceof Array){_76=[_76];}dojo._xdReqLoc=dojo.xdRequireLocalization;dojo.xdRequireLocalization=function(m,b,_77,_78){dojo._xdReqLoc(m,b,_77,_78);if(_77){return;}for(var i=0;i&lt;_76.length;i++){dojo._xdReqLoc(m,b,_76[i],_78);}};}};dojo._xdBundleMap={};dojo.xdRequireLocalization=function(_79,_7a,_7b,_7c){if(dojo._xdInitExtraLocales){dojo._xdInitExtraLocales();dojo._xdInitExtraLocales=null;d
 ojo.xdRequireLocalization.apply(dojo,arguments);return;}var _7d=_7c.split(&quot;,&quot;);var _7e=dojo.i18n.normalizeLocale(_7b);var _7f=&quot;&quot;;for(var i=0;i&lt;_7d.length;i++){if(_7e.indexOf(_7d[i])==0){if(_7d[i].length&gt;_7f.length){_7f=_7d[i];}}}var _80=_7f.replace(&quot;-&quot;,&quot;_&quot;);var _81=dojo.getObject([_79,&quot;nls&quot;,_7a].join(&quot;.&quot;));if(!_81||!_81[_80]){var _82=[_79,(_80||&quot;root&quot;),_7a].join(&quot;.&quot;);var _83=dojo._xdBundleMap[_82];if(!_83){_83=dojo._xdBundleMap[_82]={};}_83[_7e.replace(&quot;-&quot;,&quot;_&quot;)]=true;dojo.require(_79+&quot;.nls&quot;+(_7f?&quot;.&quot;+_7f:&quot;&quot;)+&quot;.&quot;+_7a);}};dojo._xdRealRequireLocalization=dojo.requireLocalization;dojo.requireLocalization=function(_84,_85,_86,_87){var _88=dojo.moduleUrl(_84).toString();if(dojo._xdIsXDomainPath(_88)){return dojo.xdRequireLocalization.apply(dojo,arguments);}else{return dojo._xdRealRequireLocalization.apply(dojo,arguments);}};dojo._xdUnpack
 Dependency=function(dep){var _89=null;var _8a=null;switch(dep[0]){case &quot;requireIf&quot;:case &quot;requireAfterIf&quot;:if(dep[1]===true){_89=[{name:dep[2],content:null}];}break;case &quot;platformRequire&quot;:var _8b=dep[1];var _8c=_8b[&quot;common&quot;]||[];_89=(_8b[dojo.hostenv.name_])?_8c.concat(_8b[dojo.hostenv.name_]||[]):_8c.concat(_8b[&quot;default&quot;]||[]);if(_89){for(var i=0;i&lt;_89.length;i++){if(_89[i] instanceof Array){_89[i]={name:_89[i][0],content:null};}else{_89[i]={name:_89[i],content:null};}}}break;case &quot;require&quot;:_89=[{name:dep[1],content:null}];break;case &quot;i18n._preloadLocalizations&quot;:dojo.i18n._preloadLocalizations.apply(dojo.i18n._preloadLocalizations,dep.slice(1));break;}if(dep[0]==&quot;requireAfterIf&quot;||dep[0]==&quot;requireIf&quot;){_8a=_89;_89=null;}return {requires:_89,requiresAfter:_8a};};dojo._xdWalkReqs=function(){var _8d=null;var req;for(var i=0;i&lt;dojo._xdOrderedReqs.length;i++){req=dojo._xdOrderedReqs[i];if
 (dojo._xdDepMap[req]){_8d=[req];_8d[req]=true;dojo._xdEvalReqs(_8d);}}};dojo._xdEvalReqs=function(_8e){while(_8e.length&gt;0){var req=_8e[_8e.length-1];var res=dojo._xdDepMap[req];var i,_8f,_90;if(res){_8f=res.requires;if(_8f&amp;&amp;_8f.length&gt;0){for(i=0;i&lt;_8f.length;i++){_90=_8f[i].name;if(_90&amp;&amp;!_8e[_90]){_8e.push(_90);_8e[_90]=true;dojo._xdEvalReqs(_8e);}}}var _91=dojo._xdContents[res.contentIndex];if(!_91.isDefined){var _92=_91.content;_92[&quot;resourceName&quot;]=_91[&quot;resourceName&quot;];_92[&quot;resourcePath&quot;]=_91[&quot;resourcePath&quot;];dojo._xdDefList.push(_92);_91.isDefined=true;}dojo._xdDepMap[req]=null;_8f=res.requiresAfter;if(_8f&amp;&amp;_8f.length&gt;0){for(i=0;i&lt;_8f.length;i++){_90=_8f[i].name;if(_90&amp;&amp;!_8e[_90]){_8e.push(_90);_8e[_90]=true;dojo._xdEvalReqs(_8e);}}}}_8e.pop();}};dojo._xdWatchInFlight=function(){var _93=&quot;&quot;;var _94=(dojo.config.xdWaitSeconds||15)*1000;var _95=(dojo._xdStartTime+_94)&lt;(new Date()
 ).getTime();for(var _96 in dojo._xdInFlight){if(dojo._xdInFlight[_96]===true){if(_95){_93+=_96+&quot; &quot;;}else{return;}}}dojo._xdClearInterval();if(_95){throw &quot;Could not load cross-domain resources: &quot;+_93;}dojo._xdWalkReqs();var _97=dojo._xdDefList.length;for(var i=0;i&lt;_97;i++){var _98=dojo._xdDefList[i];if(dojo.config[&quot;debugAtAllCosts&quot;]&amp;&amp;_98[&quot;resourceName&quot;]){if(!dojo[&quot;_xdDebugQueue&quot;]){dojo._xdDebugQueue=[];}dojo._xdDebugQueue.push({resourceName:_98.resourceName,resourcePath:_98.resourcePath});}else{_98.apply(dojo.global,dojo._scopeArgs);}}for(i=0;i&lt;dojo._xdContents.length;i++){var _99=dojo._xdContents[i];if(_99.content&amp;&amp;!_99.isDefined){_99.content.apply(dojo.global,dojo._scopeArgs);}}dojo._xdReset();if(dojo[&quot;_xdDebugQueue&quot;]&amp;&amp;dojo._xdDebugQueue.length&gt;0){dojo._xdDebugFileLoaded();}else{dojo._xdNotifyLoaded();}};dojo._xdNotifyLoaded=function(){for(var _9a in dojo._xdInFlight){if(typeof dojo
 ._xdInFlight[_9a]==&quot;boolean&quot;){return;}}dojo._inFlightCount=0;if(dojo._initFired&amp;&amp;!dojo._loadNotifying){dojo._callLoaded();}};if(typeof window!=&quot;undefined&quot;){dojo.isBrowser=true;dojo._name=&quot;browser&quot;;(function(){var d=dojo;if(document&amp;&amp;document.getElementsByTagName){var _9b=document.getElementsByTagName(&quot;script&quot;);var _9c=/dojo(\.xd)?\.js(\W|$)/i;for(var i=0;i&lt;_9b.length;i++){var src=_9b[i].getAttribute(&quot;src&quot;);if(!src){continue;}var m=src.match(_9c);if(m){if(!d.config.baseUrl){d.config.baseUrl=src.substring(0,m.index);}var cfg=(_9b[i].getAttribute(&quot;djConfig&quot;)||_9b[i].getAttribute(&quot;data-dojo-config&quot;));if(cfg){var _9d=eval(&quot;({ &quot;+cfg+&quot; })&quot;);for(var x in _9d){dojo.config[x]=_9d[x];}}break;}}}d.baseUrl=d.config.baseUrl;var n=navigator;var dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav);if(dua.indexOf(&quot;Opera&quot;)&gt;=0){d.isOpera=tv;}if(dua.indexOf(&quot;AdobeAIR&quo
 t;)&gt;=0){d.isAIR=1;}d.isKhtml=(dav.indexOf(&quot;Konqueror&quot;)&gt;=0)?tv:0;d.isWebKit=parseFloat(dua.split(&quot;WebKit/&quot;)[1])||undefined;d.isChrome=parseFloat(dua.split(&quot;Chrome/&quot;)[1])||undefined;d.isMac=dav.indexOf(&quot;Macintosh&quot;)&gt;=0;var _9e=Math.max(dav.indexOf(&quot;WebKit&quot;),dav.indexOf(&quot;Safari&quot;),0);if(_9e&amp;&amp;!dojo.isChrome){d.isSafari=parseFloat(dav.split(&quot;Version/&quot;)[1]);if(!d.isSafari||parseFloat(dav.substr(_9e+7))&lt;=419.3){d.isSafari=2;}}if(dua.indexOf(&quot;Gecko&quot;)&gt;=0&amp;&amp;!d.isKhtml&amp;&amp;!d.isWebKit){d.isMozilla=d.isMoz=tv;}if(d.isMoz){d.isFF=parseFloat(dua.split(&quot;Firefox/&quot;)[1]||dua.split(&quot;Minefield/&quot;)[1])||undefined;}if(document.all&amp;&amp;!d.isOpera){d.isIE=parseFloat(dav.split(&quot;MSIE &quot;)[1])||undefined;var _9f=document.documentMode;if(_9f&amp;&amp;_9f!=5&amp;&amp;Math.floor(d.isIE)!=_9f){d.isIE=_9f;}}if(dojo.isIE&amp;&amp;window.location.protocol===&quot;fi
 le:&quot;){dojo.config.ieForceActiveXXhr=true;}d.isQuirks=document.compatMode==&quot;BackCompat&quot;;d.locale=dojo.config.locale||(d.isIE?n.userLanguage:n.language).toLowerCase();d._XMLHTTP_PROGIDS=[&quot;Msxml2.XMLHTTP&quot;,&quot;Microsoft.XMLHTTP&quot;,&quot;Msxml2.XMLHTTP.4.0&quot;];d._xhrObj=function(){var _a0,_a1;if(!dojo.isIE||!dojo.config.ieForceActiveXXhr){try{_a0=new XMLHttpRequest();}catch(e){}}if(!_a0){for(var i=0;i&lt;3;++i){var _a2=d._XMLHTTP_PROGIDS[i];try{_a0=new ActiveXObject(_a2);}catch(e){_a1=e;}if(_a0){d._XMLHTTP_PROGIDS=[_a2];break;}}}if(!_a0){throw new Error(&quot;XMLHTTP not available: &quot;+_a1);}return _a0;};d._isDocumentOk=function(_a3){var _a4=_a3.status||0,lp=location.protocol;return (_a4&gt;=200&amp;&amp;_a4&lt;300)||_a4==304||_a4==1223||(!_a4&amp;&amp;(lp==&quot;file:&quot;||lp==&quot;chrome:&quot;||lp==&quot;chrome-extension:&quot;||lp==&quot;app:&quot;));};var _a5=window.location+&quot;&quot;;var _a6=document.getElementsByTagName(&quot;base&
 quot;);var _a7=(_a6&amp;&amp;_a6.length&gt;0);d._getText=function(uri,_a8){var _a9=d._xhrObj();if(!_a7&amp;&amp;dojo._Url){uri=(new dojo._Url(_a5,uri)).toString();}if(d.config.cacheBust){uri+=&quot;&quot;;uri+=(uri.indexOf(&quot;?&quot;)==-1?&quot;?&quot;:&quot;&amp;&quot;)+String(d.config.cacheBust).replace(/\W+/g,&quot;&quot;);}_a9.open(&quot;GET&quot;,uri,false);try{_a9.send(null);if(!d._isDocumentOk(_a9)){var err=Error(&quot;Unable to load &quot;+uri+&quot; status:&quot;+_a9.status);err.status=_a9.status;err.responseText=_a9.responseText;throw err;}}catch(e){if(_a8){return null;}throw e;}return _a9.responseText;};var _aa=window;var _ab=function(_ac,fp){var _ad=_aa.attachEvent||_aa.addEventListener;_ac=_aa.attachEvent?_ac:_ac.substring(2);_ad(_ac,function(){fp.apply(_aa,arguments);},false);};d._windowUnloaders=[];d.windowUnloaded=function(){var mll=d._windowUnloaders;while(mll.length){(mll.pop())();}d=null;};var _ae=0;d.addOnWindowUnload=function(obj,_af){d._onto(d._windo
 wUnloaders,obj,_af);if(!_ae){_ae=1;_ab(&quot;onunload&quot;,d.windowUnloaded);}};var _b0=0;d.addOnUnload=function(obj,_b1){d._onto(d._unloaders,obj,_b1);if(!_b0){_b0=1;_ab(&quot;onbeforeunload&quot;,dojo.unloaded);}};})();dojo._initFired=false;dojo._loadInit=function(e){if(dojo._scrollIntervalId){clearInterval(dojo._scrollIntervalId);dojo._scrollIntervalId=0;}if(!dojo._initFired){dojo._initFired=true;if(!dojo.config.afterOnLoad&amp;&amp;window.detachEvent){window.detachEvent(&quot;onload&quot;,dojo._loadInit);}if(dojo._inFlightCount==0){dojo._modulesLoaded();}}};if(!dojo.config.afterOnLoad){if(document.addEventListener){document.addEventListener(&quot;DOMContentLoaded&quot;,dojo._loadInit,false);window.addEventListener(&quot;load&quot;,dojo._loadInit,false);}else{if(window.attachEvent){window.attachEvent(&quot;onload&quot;,dojo._loadInit);if(!dojo.config.skipIeDomLoaded&amp;&amp;self===self.top){dojo._scrollIntervalId=setInterval(function(){try{if(document.body){document.doc
 umentElement.doScroll(&quot;left&quot;);dojo._loadInit();}}catch(e){}},30);}}}}if(dojo.isIE){try{(function(){document.namespaces.add(&quot;v&quot;,&quot;urn:schemas-microsoft-com:vml&quot;);var _b2=[&quot;*&quot;,&quot;group&quot;,&quot;roundrect&quot;,&quot;oval&quot;,&quot;shape&quot;,&quot;rect&quot;,&quot;imagedata&quot;,&quot;path&quot;,&quot;textpath&quot;,&quot;text&quot;],i=0,l=1,s=document.createStyleSheet();if(dojo.isIE&gt;=8){i=1;l=_b2.length;}for(;i&lt;l;++i){s.addRule(&quot;v\\:&quot;+_b2[i],&quot;behavior:url(#default#VML); display:inline-block&quot;);}})();}catch(e){}}}(function(){var mp=dojo.config[&quot;modulePaths&quot;];if(mp){for(var _b3 in mp){dojo.registerModulePath(_b3,mp[_b3]);}}})();if(dojo.config.isDebug){dojo.require(&quot;dojo._firebug.firebug&quot;);}if(dojo.config.debugAtAllCosts){dojo.require(&quot;dojo._base._loader.loader_debug&quot;);}if(!dojo._hasResource[&quot;dojo._base.lang&quot;]){dojo._hasResource[&quot;dojo._base.lang&quot;]=true;dojo
 .provide(&quot;dojo._base.lang&quot;);(function(){var d=dojo,_b4=Object.prototype.toString;dojo.isString=function(it){return (typeof it==&quot;string&quot;||it instanceof String);};dojo.isArray=function(it){return it&amp;&amp;(it instanceof Array||typeof it==&quot;array&quot;);};dojo.isFunction=function(it){return _b4.call(it)===&quot;[object Function]&quot;;};dojo.isObject=function(it){return it!==undefined&amp;&amp;(it===null||typeof it==&quot;object&quot;||d.isArray(it)||d.isFunction(it));};dojo.isArrayLike=function(it){return it&amp;&amp;it!==undefined&amp;&amp;!d.isString(it)&amp;&amp;!d.isFunction(it)&amp;&amp;!(it.tagName&amp;&amp;it.tagName.toLowerCase()==&quot;form&quot;)&amp;&amp;(d.isArray(it)||isFinite(it.length));};dojo.isAlien=function(it){return it&amp;&amp;!d.isFunction(it)&amp;&amp;/\{\s*\[native code\]\s*\}/.test(String(it));};dojo.extend=function(_b5,_b6){for(var i=1,l=arguments.length;i&lt;l;i++){d._mixin(_b5.prototype,arguments[i]);}return _b5;};dojo._hi
 tchArgs=function(_b7,_b8){var pre=d._toArray(arguments,2);var _b9=d.isString(_b8);return function(){var _ba=d._toArray(arguments);var f=_b9?(_b7||d.global)[_b8]:_b8;return f&amp;&amp;f.apply(_b7||this,pre.concat(_ba));};};dojo.hitch=function(_bb,_bc){if(arguments.length&gt;2){return d._hitchArgs.apply(d,arguments);}if(!_bc){_bc=_bb;_bb=null;}if(d.isString(_bc)){_bb=_bb||d.global;if(!_bb[_bc]){throw ([&quot;dojo.hitch: scope[\&quot;&quot;,_bc,&quot;\&quot;] is null (scope=\&quot;&quot;,_bb,&quot;\&quot;)&quot;].join(&quot;&quot;));}return function(){return _bb[_bc].apply(_bb,arguments||[]);};}return !_bb?_bc:function(){return _bc.apply(_bb,arguments||[]);};};dojo.delegate=dojo._delegate=(function(){function TMP(){};return function(obj,_bd){TMP.prototype=obj;var tmp=new TMP();TMP.prototype=null;if(_bd){d._mixin(tmp,_bd);}return tmp;};})();var _be=function(obj,_bf,_c0){return (_c0||[]).concat(Array.prototype.slice.call(obj,_bf||0));};var _c1=function(obj,_c2,_c3){var arr=_c3||[
 ];for(var x=_c2||0;x&lt;obj.length;x++){arr.push(obj[x]);}return arr;};dojo._toArray=d.isIE?function(obj){return ((obj.item)?_c1:_be).apply(this,arguments);}:_be;dojo.partial=function(_c4){var arr=[null];return d.hitch.apply(d,arr.concat(d._toArray(arguments)));};var _c5=d._extraNames,_c6=_c5.length,_c7={};dojo.clone=function(o){if(!o||typeof o!=&quot;object&quot;||d.isFunction(o)){return o;}if(o.nodeType&amp;&amp;&quot;cloneNode&quot; in o){return o.cloneNode(true);}if(o instanceof Date){return new Date(o.getTime());}if(o instanceof RegExp){return new RegExp(o);}var r,i,l,s,_c8;if(d.isArray(o)){r=[];for(i=0,l=o.length;i&lt;l;++i){if(i in o){r.push(d.clone(o[i]));}}}else{r=o.constructor?new o.constructor():{};}for(_c8 in o){s=o[_c8];if(!(_c8 in r)||(r[_c8]!==s&amp;&amp;(!(_c8 in _c7)||_c7[_c8]!==s))){r[_c8]=d.clone(s);}}if(_c6){for(i=0;i&lt;_c6;++i){_c8=_c5[i];s=o[_c8];if(!(_c8 in r)||(r[_c8]!==s&amp;&amp;(!(_c8 in _c7)||_c7[_c8]!==s))){r[_c8]=s;}}}return r;};dojo.trim=Strin
 g.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,&quot;&quot;).replace(/\s\s*$/,&quot;&quot;);};var _c9=/\{([^\}]+)\}/g;dojo.replace=function(_ca,map,_cb){return _ca.replace(_cb||_c9,d.isFunction(map)?map:function(_cc,k){return d.getObject(k,false,map);});};})();}if(!dojo._hasResource[&quot;dojo._base.array&quot;]){dojo._hasResource[&quot;dojo._base.array&quot;]=true;dojo.provide(&quot;dojo._base.array&quot;);(function(){var _cd=function(arr,obj,cb){return [(typeof arr==&quot;string&quot;)?arr.split(&quot;&quot;):arr,obj||dojo.global,(typeof cb==&quot;string&quot;)?new Function(&quot;item&quot;,&quot;index&quot;,&quot;array&quot;,cb):cb];};var _ce=function(_cf,arr,_d0,_d1){var _d2=_cd(arr,_d1,_d0);arr=_d2[0];for(var i=0,l=arr.length;i&lt;l;++i){var _d3=!!_d2[2].call(_d2[1],arr[i],i,arr);if(_cf^_d3){return _d3;}}return _cf;};dojo.mixin(dojo,{indexOf:function(_d4,_d5,_d6,_d7){var _d8=1,end=_d4.length||0,i=0;if(_d7){i=end-1;_d8=end=-1
 ;}if(_d6!=undefined){i=_d6;}if((_d7&amp;&amp;i&gt;end)||i&lt;end){for(;i!=end;i+=_d8){if(_d4[i]==_d5){return i;}}}return -1;},lastIndexOf:function(_d9,_da,_db){return dojo.indexOf(_d9,_da,_db,true);},forEach:function(arr,_dc,_dd){if(!arr||!arr.length){return;}var _de=_cd(arr,_dd,_dc);arr=_de[0];for(var i=0,l=arr.length;i&lt;l;++i){_de[2].call(_de[1],arr[i],i,arr);}},every:function(arr,_df,_e0){return _ce(true,arr,_df,_e0);},some:function(arr,_e1,_e2){return _ce(false,arr,_e1,_e2);},map:function(arr,_e3,_e4){var _e5=_cd(arr,_e4,_e3);arr=_e5[0];var _e6=(arguments[3]?(new arguments[3]()):[]);for(var i=0,l=arr.length;i&lt;l;++i){_e6.push(_e5[2].call(_e5[1],arr[i],i,arr));}return _e6;},filter:function(arr,_e7,_e8){var _e9=_cd(arr,_e8,_e7);arr=_e9[0];var _ea=[];for(var i=0,l=arr.length;i&lt;l;++i){if(_e9[2].call(_e9[1],arr[i],i,arr)){_ea.push(arr[i]);}}return _ea;}});})();}if(!dojo._hasResource[&quot;dojo._base.declare&quot;]){dojo._hasResource[&quot;dojo._base.declare&quot;]=true
 ;dojo.provide(&quot;dojo._base.declare&quot;);(function(){var d=dojo,mix=d._mixin,op=Object.prototype,_eb=op.toString,_ec=new Function,_ed=0,_ee=&quot;constructor&quot;;function err(msg,cls){throw new Error(&quot;declare&quot;+(cls?&quot; &quot;+cls:&quot;&quot;)+&quot;: &quot;+msg);};function _ef(_f0,_f1){var _f2=[],_f3=[{cls:0,refs:[]}],_f4={},_f5=1,l=_f0.length,i=0,j,lin,_f6,top,_f7,rec,_f8,_f9;for(;i&lt;l;++i){_f6=_f0[i];if(!_f6){err(&quot;mixin #&quot;+i+&quot; is unknown. Did you use dojo.require to pull it in?&quot;,_f1);}else{if(_eb.call(_f6)!=&quot;[object Function]&quot;){err(&quot;mixin #&quot;+i+&quot; is not a callable constructor.&quot;,_f1);}}lin=_f6._meta?_f6._meta.bases:[_f6];top=0;for(j=lin.length-1;j&gt;=0;--j){_f7=lin[j].prototype;if(!_f7.hasOwnProperty(&quot;declaredClass&quot;)){_f7.declaredClass=&quot;uniqName_&quot;+(_ed++);}_f8=_f7.declaredClass;if(!_f4.hasOwnProperty(_f8)){_f4[_f8]={count:0,refs:[],cls:lin[j]};++_f5;}rec=_f4[_f8];if(top&amp;&amp;top
 !==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_f3[0].refs.push(top);}while(_f3.length){top=_f3.pop();_f2.push(top.cls);--_f5;while(_f9=top.refs,_f9.length==1){top=_f9[0];if(!top||--top.count){top=0;break;}_f2.push(top.cls);--_f5;}if(top){for(i=0,l=_f9.length;i&lt;l;++i){top=_f9[i];if(!--top.count){_f3.push(top);}}}}if(_f5){err(&quot;can't build consistent linearization&quot;,_f1);}_f6=_f0[0];_f2[0]=_f6?_f6._meta&amp;&amp;_f6===_f2[_f2.length-_f6._meta.bases.length]?_f6._meta.bases.length:1:0;return _f2;};function _fa(_fb,a,f){var _fc,_fd,_fe,_ff,meta,base,_100,opf,pos,_101=this._inherited=this._inherited||{};if(typeof _fb==&quot;string&quot;){_fc=_fb;_fb=a;a=f;}f=0;_ff=_fb.callee;_fc=_fc||_ff.nom;if(!_fc){err(&quot;can't deduce a name to call inherited()&quot;,this.declaredClass);}meta=this.constructor._meta;_fe=meta.bases;pos=_101.p;if(_fc!=_ee){if(_101.c!==_ff){pos=0;base=_fe[0];meta=base._meta;if(meta.hidden[_fc]!==_ff){_fd=meta.chains;if(_fd&amp;&amp;typeo
 f _fd[_fc]==&quot;string&quot;){err(&quot;calling chained method with inherited: &quot;+_fc,this.declaredClass);}do{meta=base._meta;_100=base.prototype;if(meta&amp;&amp;(_100[_fc]===_ff&amp;&amp;_100.hasOwnProperty(_fc)||meta.hidden[_fc]===_ff)){break;}}while(base=_fe[++pos]);pos=base?pos:-1;}}base=_fe[++pos];if(base){_100=base.prototype;if(base._meta&amp;&amp;_100.hasOwnProperty(_fc)){f=_100[_fc];}else{opf=op[_fc];do{_100=base.prototype;f=_100[_fc];if(f&amp;&amp;(base._meta?_100.hasOwnProperty(_fc):f!==opf)){break;}}while(base=_fe[++pos]);}}f=base&amp;&amp;f||op[_fc];}else{if(_101.c!==_ff){pos=0;meta=_fe[0]._meta;if(meta&amp;&amp;meta.ctor!==_ff){_fd=meta.chains;if(!_fd||_fd.constructor!==&quot;manual&quot;){err(&quot;calling chained constructor with inherited&quot;,this.declaredClass);}while(base=_fe[++pos]){meta=base._meta;if(meta&amp;&amp;meta.ctor===_ff){break;}}pos=base?pos:-1;}}while(base=_fe[++pos]){meta=base._meta;f=meta?meta.ctor:base;if(f){break;}}f=base&amp;&amp;
 f;}_101.c=f;_101.p=pos;if(f){return a===true?f:f.apply(this,a||_fb);}};function _102(name,args){if(typeof name==&quot;string&quot;){return this.inherited(name,args,true);}return this.inherited(name,true);};function _103(cls){var _104=this.constructor._meta.bases;for(var i=0,l=_104.length;i&lt;l;++i){if(_104[i]===cls){return true;}}return this instanceof cls;};function _105(_106,_107){var name,i=0,l=d._extraNames.length;for(name in _107){if(name!=_ee&amp;&amp;_107.hasOwnProperty(name)){_106[name]=_107[name];}}for(;i&lt;l;++i){name=d._extraNames[i];if(name!=_ee&amp;&amp;_107.hasOwnProperty(name)){_106[name]=_107[name];}}};function _108(_109,_10a){var name,t,i=0,l=d._extraNames.length;for(name in _10a){t=_10a[name];if((t!==op[name]||!(name in op))&amp;&amp;name!=_ee){if(_eb.call(t)==&quot;[object Function]&quot;){t.nom=name;}_109[name]=t;}}for(;i&lt;l;++i){name=d._extraNames[i];t=_10a[name];if((t!==op[name]||!(name in op))&amp;&amp;name!=_ee){if(_eb.call(t)==&quot;[object Funct
 ion]&quot;){t.nom=name;}_109[name]=t;}}return _109;};function _10b(_10c){_108(this.prototype,_10c);return this;};function _10d(_10e,_10f){return function(){var a=arguments,args=a,a0=a[0],f,i,m,l=_10e.length,_110;if(!(this instanceof a.callee)){return _111(a);}if(_10f&amp;&amp;(a0&amp;&amp;a0.preamble||this.preamble)){_110=new Array(_10e.length);_110[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_10e[i].prototype;f=f.hasOwnProperty(&quot;preamble&quot;)&amp;&amp;f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_110[i]=a;}}for(i=l-1;i&gt;=0;--i){f=_10e[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_110?_110[i]:a);}}f=this.postscript;if(f){f.apply(this,args);}};};function _112(ctor,_113){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _111(a);}if(_113){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(ctor){ctor.apply(this,a);}f=this.postscript;if(f){f.apply(th
 is,a);}};};function _114(_115){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _111(a);}for(;f=_115[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function _116(name,_117,_118){return function(){var b,m,f,i=0,step=1;if(_118){i=_117.length-1;step=-1;}for(;b=_117[i];i+=step){m=b._meta;f=(m?m.hidden:b.prototype)[name];if(f){f.apply(this,arguments);}}};};function _119(ctor){_ec.prototype=ctor.prototype;var t=new _ec;_ec.prototype=null;return t;};function _111(args){var ctor=args.callee,t=_119(ctor);ctor.apply(t,args);return t;};d.declare=function(_11a,_11b,_11c){if(typeof _11a!=&quot;string&quot;){_11c=_11b;_11b=_11a;_11a=&quot;&quot;;}_11c=_11c||{};var _11d,i,t,ctor,name,_11e,_11f,_120=1,_121=_11b;if(_eb.call(_11b)==&quot;[object Array]&quot;){_11e=_ef(_11b,_11a);t=_11e[0];_120=_11e.length-t;_11b=_11e[_120];}else{_11e=[0];if(_11b){if(_eb.call(_11b)==&quot;[object Function]&quot;){t=_11b.
 _meta;_11e=_11e.concat(t?t.bases:_11b);}else{err(&quot;base class is not a callable constructor.&quot;,_11a);}}else{if(_11b!==null){err(&quot;unknown base class. Did you use dojo.require to pull it in?&quot;,_11a);}}}if(_11b){for(i=_120-1;;--i){_11d=_119(_11b);if(!i){break;}t=_11e[i];(t._meta?_105:mix)(_11d,t.prototype);ctor=new Function;ctor.superclass=_11b;ctor.prototype=_11d;_11b=_11d.constructor=ctor;}}else{_11d={};}_108(_11d,_11c);t=_11c.constructor;if(t!==op.constructor){t.nom=_ee;_11d.constructor=t;}for(i=_120-1;i;--i){t=_11e[i]._meta;if(t&amp;&amp;t.chains){_11f=mix(_11f||{},t.chains);}}if(_11d[&quot;-chains-&quot;]){_11f=mix(_11f||{},_11d[&quot;-chains-&quot;]);}t=!_11f||!_11f.hasOwnProperty(_ee);_11e[0]=ctor=(_11f&amp;&amp;_11f.constructor===&quot;manual&quot;)?_114(_11e):(_11e.length==1?_112(_11c.constructor,t):_10d(_11e,t));ctor._meta={bases:_11e,hidden:_11c,chains:_11f,parents:_121,ctor:_11c.constructor};ctor.superclass=_11b&amp;&amp;_11b.prototype;ctor.extend=_
 10b;ctor.prototype=_11d;_11d.constructor=ctor;_11d.getInherited=_102;_11d.inherited=_fa;_11d.isInstanceOf=_103;if(_11a){_11d.declaredClass=_11a;d.setObject(_11a,ctor);}if(_11f){for(name in _11f){if(_11d[name]&amp;&amp;typeof _11f[name]==&quot;string&quot;&amp;&amp;name!=_ee){t=_11d[name]=_116(name,_11e,_11f[name]===&quot;after&quot;);t.nom=name;}}}return ctor;};d.safeMixin=_108;})();}if(!dojo._hasResource[&quot;dojo._base.connect&quot;]){dojo._hasResource[&quot;dojo._base.connect&quot;]=true;dojo.provide(&quot;dojo._base.connect&quot;);dojo._listener={getDispatcher:function(){return function(){var ap=Array.prototype,c=arguments.callee,ls=c._listeners,t=c.target,r=t&amp;&amp;t.apply(this,arguments),i,lls=[].concat(ls);for(i in lls){if(!(i in ap)){lls[i].apply(this,arguments);}}return r;};},add:function(_122,_123,_124){_122=_122||dojo.global;var f=_122[_123];if(!f||!f._listeners){var d=dojo._listener.getDispatcher();d.target=f;d._listeners=[];f=_122[_123]=d;}return f._listener
 s.push(_124);},remove:function(_125,_126,_127){var f=(_125||dojo.global)[_126];if(f&amp;&amp;f._listeners&amp;&amp;_127--){delete f._listeners[_127];}}};dojo.connect=function(obj,_128,_129,_12a,_12b){var a=arguments,args=[],i=0;args.push(dojo.isString(a[0])?null:a[i++],a[i++]);var a1=a[i+1];args.push(dojo.isString(a1)||dojo.isFunction(a1)?a[i++]:null,a[i++]);for(var l=a.length;i&lt;l;i++){args.push(a[i]);}return dojo._connect.apply(this,args);};dojo._connect=function(obj,_12c,_12d,_12e){var l=dojo._listener,h=l.add(obj,_12c,dojo.hitch(_12d,_12e));return [obj,_12c,h,l];};dojo.disconnect=function(_12f){if(_12f&amp;&amp;_12f[0]!==undefined){dojo._disconnect.apply(this,_12f);delete _12f[0];}};dojo._disconnect=function(obj,_130,_131,_132){_132.remove(obj,_130,_131);};dojo._topics={};dojo.subscribe=function(_133,_134,_135){return [_133,dojo._listener.add(dojo._topics,_133,dojo.hitch(_134,_135))];};dojo.unsubscribe=function(_136){if(_136){dojo._listener.remove(dojo._topics,_136[0],
 _136[1]);}};dojo.publish=function(_137,args){var f=dojo._topics[_137];if(f){f.apply(this,args||[]);}};dojo.connectPublisher=function(_138,obj,_139){var pf=function(){dojo.publish(_138,arguments);};return _139?dojo.connect(obj,_139,pf):dojo.connect(obj,pf);};}if(!dojo._hasResource[&quot;dojo._base.Deferred&quot;]){dojo._hasResource[&quot;dojo._base.Deferred&quot;]=true;dojo.provide(&quot;dojo._base.Deferred&quot;);(function(){var _13a=function(){};var _13b=Object.freeze||function(){};dojo.Deferred=function(_13c){var _13d,_13e,_13f,head,_140;var _141=(this.promise={});function _142(_143){if(_13e){throw new Error(&quot;This deferred has already been resolved&quot;);}_13d=_143;_13e=true;_144();};function _144(){var _145;while(!_145&amp;&amp;_140){var _146=_140;_140=_140.next;if((_145=(_146.progress==_13a))){_13e=false;}var func=(_13f?_146.error:_146.resolved);if(func){try{var _147=func(_13d);if(_147&amp;&amp;typeof _147.then===&quot;function&quot;){_147.then(dojo.hitch(_146.defe
 rred,&quot;resolve&quot;),dojo.hitch(_146.deferred,&quot;reject&quot;));continue;}var _148=_145&amp;&amp;_147===undefined;if(_145&amp;&amp;!_148){_13f=_147 instanceof Error;}_146.deferred[_148&amp;&amp;_13f?&quot;reject&quot;:&quot;resolve&quot;](_148?_13d:_147);}catch(e){_146.deferred.reject(e);}}else{if(_13f){_146.deferred.reject(_13d);}else{_146.deferred.resolve(_13d);}}}};this.resolve=this.callback=function(_149){this.fired=0;this.results=[_149,null];_142(_149);};this.reject=this.errback=function(_14a){_13f=true;this.fired=1;_142(_14a);this.results=[null,_14a];if(!_14a||_14a.log!==false){(dojo.config.deferredOnError||function(x){console.error(x);})(_14a);}};this.progress=function(_14b){var _14c=_140;while(_14c){var _14d=_14c.progress;_14d&amp;&amp;_14d(_14b);_14c=_14c.next;}};this.addCallbacks=function(_14e,_14f){this.then(_14e,_14f,_13a);return this;};this.then=_141.then=function(_150,_151,_152){var _153=_152==_13a?this:new dojo.Deferred(_141.cancel);var _154={resolved:
 _150,error:_151,progress:_152,deferred:_153};if(_140){head=head.next=_154;}else{_140=head=_154;}if(_13e){_144();}return _153.promise;};var _155=this;this.cancel=_141.cancel=function(){if(!_13e){var _156=_13c&amp;&amp;_13c(_155);if(!_13e){if(!(_156 instanceof Error)){_156=new Error(_156);}_156.log=false;_155.reject(_156);}}};_13b(_141);};dojo.extend(dojo.Deferred,{addCallback:function(_157){return this.addCallbacks(dojo.hitch.apply(dojo,arguments));},addErrback:function(_158){return this.addCallbacks(null,dojo.hitch.apply(dojo,arguments));},addBoth:function(_159){var _15a=dojo.hitch.apply(dojo,arguments);return this.addCallbacks(_15a,_15a);},fired:-1});})();dojo.when=function(_15b,_15c,_15d,_15e){if(_15b&amp;&amp;typeof _15b.then===&quot;function&quot;){return _15b.then(_15c,_15d,_15e);}return _15c(_15b);};}if(!dojo._hasResource[&quot;dojo._base.json&quot;]){dojo._hasResource[&quot;dojo._base.json&quot;]=true;dojo.provide(&quot;dojo._base.json&quot;);dojo.fromJson=function(js
 on){return eval(&quot;(&quot;+json+&quot;)&quot;);};dojo._escapeString=function(str){return (&quot;\&quot;&quot;+str.replace(/([&quot;\\])/g,&quot;\\$1&quot;)+&quot;\&quot;&quot;).replace(/[\f]/g,&quot;\\f&quot;).replace(/[\b]/g,&quot;\\b&quot;).replace(/[\n]/g,&quot;\\n&quot;).replace(/[\t]/g,&quot;\\t&quot;).replace(/[\r]/g,&quot;\\r&quot;);};dojo.toJsonIndentStr=&quot;\t&quot;;dojo.toJson=function(it,_15f,_160){if(it===undefined){return &quot;undefined&quot;;}var _161=typeof it;if(_161==&quot;number&quot;||_161==&quot;boolean&quot;){return it+&quot;&quot;;}if(it===null){return &quot;null&quot;;}if(dojo.isString(it)){return dojo._escapeString(it);}var _162=arguments.callee;var _163;_160=_160||&quot;&quot;;var _164=_15f?_160+dojo.toJsonIndentStr:&quot;&quot;;var tf=it.__json__||it.json;if(dojo.isFunction(tf)){_163=tf.call(it);if(it!==_163){return _162(_163,_15f,_164);}}if(it.nodeType&amp;&amp;it.cloneNode){throw new Error(&quot;Can't serialize DOM nodes&quot;);}var sep=_15f
 ?&quot; &quot;:&quot;&quot;;var _165=_15f?&quot;\n&quot;:&quot;&quot;;if(dojo.isArray(it)){var res=dojo.map(it,function(obj){var val=_162(obj,_15f,_164);if(typeof val!=&quot;string&quot;){val=&quot;undefined&quot;;}return _165+_164+val;});return &quot;[&quot;+res.join(&quot;,&quot;+sep)+_165+_160+&quot;]&quot;;}if(_161==&quot;function&quot;){return null;}var _166=[],key;for(key in it){var _167,val;if(typeof key==&quot;number&quot;){_167=&quot;\&quot;&quot;+key+&quot;\&quot;&quot;;}else{if(typeof key==&quot;string&quot;){_167=dojo._escapeString(key);}else{continue;}}val=_162(it[key],_15f,_164);if(typeof val!=&quot;string&quot;){continue;}_166.push(_165+_164+_167+&quot;:&quot;+sep+val);}return &quot;{&quot;+_166.join(&quot;,&quot;+sep)+_165+_160+&quot;}&quot;;};}if(!dojo._hasResource[&quot;dojo._base.Color&quot;]){dojo._hasResource[&quot;dojo._base.Color&quot;]=true;dojo.provide(&quot;dojo._base.Color&quot;);(function(){var d=dojo;dojo.Color=function(_168){if(_168){this.setCol
 or(_168);}};dojo.Color.named={black:[0,0,0],silver:[192,192,192],gray:[128,128,128],white:[255,255,255],maroon:[128,0,0],red:[255,0,0],purple:[128,0,128],fuchsia:[255,0,255],green:[0,128,0],lime:[0,255,0],olive:[128,128,0],yellow:[255,255,0],navy:[0,0,128],blue:[0,0,255],teal:[0,128,128],aqua:[0,255,255],transparent:d.config.transparentColor||[255,255,255]};dojo.extend(dojo.Color,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var t=this;t.r=r;t.g=g;t.b=b;t.a=a;},setColor:function(_169){if(d.isString(_169)){d.colorFromString(_169,this);}else{if(d.isArray(_169)){d.colorFromArray(_169,this);}else{this._set(_169.r,_169.g,_169.b,_169.a);if(!(_169 instanceof d.Color)){this.sanitize();}}}return this;},sanitize:function(){return this;},toRgb:function(){var t=this;return [t.r,t.g,t.b];},toRgba:function(){var t=this;return [t.r,t.g,t.b,t.a];},toHex:function(){var arr=d.map([&quot;r&quot;,&quot;g&quot;,&quot;b&quot;],function(x){var s=this[x].toString(16);return s.length&lt;2?&quot;0&qu
 ot;+s:s;},this);return &quot;#&quot;+arr.join(&quot;&quot;);},toCss:function(_16a){var t=this,rgb=t.r+&quot;, &quot;+t.g+&quot;, &quot;+t.b;return (_16a?&quot;rgba(&quot;+rgb+&quot;, &quot;+t.a:&quot;rgb(&quot;+rgb)+&quot;)&quot;;},toString:function(){return this.toCss(true);}});dojo.blendColors=function(_16b,end,_16c,obj){var t=obj||new d.Color();d.forEach([&quot;r&quot;,&quot;g&quot;,&quot;b&quot;,&quot;a&quot;],function(x){t[x]=_16b[x]+(end[x]-_16b[x])*_16c;if(x!=&quot;a&quot;){t[x]=Math.round(t[x]);}});return t.sanitize();};dojo.colorFromRgb=function(_16d,obj){var m=_16d.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&amp;&amp;dojo.colorFromArray(m[1].split(/\s*,\s*/),obj);};dojo.colorFromHex=function(_16e,obj){var t=obj||new d.Color(),bits=(_16e.length==4)?4:8,mask=(1&lt;&lt;bits)-1;_16e=Number(&quot;0x&quot;+_16e.substr(1));if(isNaN(_16e)){return null;}d.forEach([&quot;b&quot;,&quot;g&quot;,&quot;r&quot;],function(x){var c=_16e&amp;mask;_16e&gt;&gt;=bits;t[x]=b
 its==4?17*c:c;});t.a=1;return t;};dojo.colorFromArray=function(a,obj){var t=obj||new d.Color();t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a)){t.a=1;}return t.sanitize();};dojo.colorFromString=function(str,obj){var a=d.Color.named[str];return a&amp;&amp;d.colorFromArray(a,obj)||d.colorFromRgb(str,obj)||d.colorFromHex(str,obj);};})();}if(!dojo._hasResource[&quot;dojo._base.window&quot;]){dojo._hasResource[&quot;dojo._base.window&quot;]=true;dojo.provide(&quot;dojo._base.window&quot;);dojo.doc=window[&quot;document&quot;]||null;dojo.body=function(){return dojo.doc.body||dojo.doc.getElementsByTagName(&quot;body&quot;)[0];};dojo.setContext=function(_16f,_170){dojo.global=_16f;dojo.doc=_170;};dojo.withGlobal=function(_171,_172,_173,_174){var _175=dojo.global;try{dojo.global=_171;return dojo.withDoc.call(null,_171.document,_172,_173,_174);}finally{dojo.global=_175;}};dojo.withDoc=function(_176,_177,_178,_179){var _17a=dojo.doc,_17b=dojo._bodyLtr,oldQ=doj
 o.isQuirks;try{dojo.doc=_176;delete dojo._bodyLtr;dojo.isQuirks=dojo.doc.compatMode==&quot;BackCompat&quot;;if(_178&amp;&amp;typeof _177==&quot;string&quot;){_177=_178[_177];}return _177.apply(_178,_179||[]);}finally{dojo.doc=_17a;delete dojo._bodyLtr;if(_17b!==undefined){dojo._bodyLtr=_17b;}dojo.isQuirks=oldQ;}};}if(!dojo._hasResource[&quot;dojo._base.event&quot;]){dojo._hasResource[&quot;dojo._base.event&quot;]=true;dojo.provide(&quot;dojo._base.event&quot;);(function(){var del=(dojo._event_listener={add:function(node,name,fp){if(!node){return;}name=del._normalizeEventName(name);fp=del._fixCallback(name,fp);if(!dojo.isIE&amp;&amp;(name==&quot;mouseenter&quot;||name==&quot;mouseleave&quot;)){var ofp=fp;name=(name==&quot;mouseenter&quot;)?&quot;mouseover&quot;:&quot;mouseout&quot;;fp=function(e){if(!dojo.isDescendant(e.relatedTarget,node)){return ofp.call(this,e);}};}node.addEventListener(name,fp,false);return fp;},remove:function(node,_17c,_17d){if(node){_17c=del._normalize
 EventName(_17c);if(!dojo.isIE&amp;&amp;(_17c==&quot;mouseenter&quot;||_17c==&quot;mouseleave&quot;)){_17c=(_17c==&quot;mouseenter&quot;)?&quot;mouseover&quot;:&quot;mouseout&quot;;}node.removeEventListener(_17c,_17d,false);}},_normalizeEventName:function(name){return name.slice(0,2)==&quot;on&quot;?name.slice(2):name;},_fixCallback:function(name,fp){return name!=&quot;keypress&quot;?fp:function(e){return fp.call(this,del._fixEvent(e,this));};},_fixEvent:function(evt,_17e){switch(evt.type){case &quot;keypress&quot;:del._setKeyChar(evt);break;}return evt;},_setKeyChar:function(evt){evt.keyChar=evt.charCode&gt;=32?String.fromCharCode(evt.charCode):&quot;&quot;;evt.charOrCode=evt.keyChar||evt.keyCode;},_punctMap:{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39}});dojo.fixEvent=function(evt,_17f){return del._fixEvent(evt,_17f);};dojo.stopEvent=function(evt){evt.preventDefault();evt.stopPropagation();};var _180=dojo._listener;dojo._connec
 t=function(obj,_181,_182,_183,_184){var _185=obj&amp;&amp;(obj.nodeType||obj.attachEvent||obj.addEventListener);var lid=_185?(_184?2:1):0,l=[dojo._listener,del,_180][lid];var h=l.add(obj,_181,dojo.hitch(_182,_183));return [obj,_181,h,lid];};dojo._disconnect=function(obj,_186,_187,_188){([dojo._listener,del,_180][_188]).remove(obj,_186,_187);};dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:dojo.isSafari?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,
 NUM_LOCK:144,SCROLL_LOCK:145,copyKey:dojo.isMac&amp;&amp;!dojo.isAIR?(dojo.isSafari?91:224):17};var _189=dojo.isMac?&quot;metaKey&quot;:&quot;ctrlKey&quot;;dojo.isCopyKey=function(e){return e[_189];};if(dojo.isIE&lt;9||(dojo.isIE&amp;&amp;dojo.isQuirks)){dojo.mouseButtons={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_18a){return e.button&amp;_18a;},isLeft:function(e){return e.button&amp;1;},isMiddle:function(e){return e.button&amp;4;},isRight:function(e){return e.button&amp;2;}};}else{dojo.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_18b){return e.button==_18b;},isLeft:function(e){return e.button==0;},isMiddle:function(e){return e.button==1;},isRight:function(e){return e.button==2;}};}if(dojo.isIE){var _18c=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};var iel=dojo._listener;var _18d=(dojo._ieListenersName=&quot;_&quot;+dojo._scopeName+&quot;_listeners&quot;);if(!dojo.config._allow_leaks){_180=iel=dojo._ie_listener={handlers:[],add:function
 (_18e,_18f,_190){_18e=_18e||dojo.global;var f=_18e[_18f];if(!f||!f[_18d]){var d=dojo._getIeDispatcher();d.target=f&amp;&amp;(ieh.push(f)-1);d[_18d]=[];f=_18e[_18f]=d;}return f[_18d].push(ieh.push(_190)-1);},remove:function(_191,_192,_193){var f=(_191||dojo.global)[_192],l=f&amp;&amp;f[_18d];if(f&amp;&amp;l&amp;&amp;_193--){delete ieh[l[_193]];delete l[_193];}}};var ieh=iel.handlers;}dojo.mixin(del,{add:function(node,_194,fp){if(!node){return;}_194=del._normalizeEventName(_194);if(_194==&quot;onkeypress&quot;){var kd=node.onkeydown;if(!kd||!kd[_18d]||!kd._stealthKeydownHandle){var h=del.add(node,&quot;onkeydown&quot;,del._stealthKeyDown);kd=node.onkeydown;kd._stealthKeydownHandle=h;kd._stealthKeydownRefs=1;}else{kd._stealthKeydownRefs++;}}return iel.add(node,_194,del._fixCallback(fp));},remove:function(node,_195,_196){_195=del._normalizeEventName(_195);iel.remove(node,_195,_196);if(_195==&quot;onkeypress&quot;){var kd=node.onkeydown;if(--kd._stealthKeydownRefs&lt;=0){iel.remo
 ve(node,&quot;onkeydown&quot;,kd._stealthKeydownHandle);delete kd._stealthKeydownHandle;}}},_normalizeEventName:function(_197){return _197.slice(0,2)!=&quot;on&quot;?&quot;on&quot;+_197:_197;},_nop:function(){},_fixEvent:function(evt,_198){if(!evt){var w=_198&amp;&amp;(_198.ownerDocument||_198.document||_198).parentWindow||window;evt=w.event;}if(!evt){return (evt);}evt.target=evt.srcElement;evt.currentTarget=(_198||evt.srcElement);evt.layerX=evt.offsetX;evt.layerY=evt.offsetY;var se=evt.srcElement,doc=(se&amp;&amp;se.ownerDocument)||document;var _199=((dojo.isIE&lt;6)||(doc[&quot;compatMode&quot;]==&quot;BackCompat&quot;))?doc.body:doc.documentElement;var _19a=dojo._getIeDocumentElementOffset();evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_199.scrollLeft||0)-_19a.x;evt.pageY=evt.clientY+(_199.scrollTop||0)-_19a.y;if(evt.type==&quot;mouseover&quot;){evt.relatedTarget=evt.fromElement;}if(evt.type==&quot;mouseout&quot;){evt.relatedTarget=evt.toElement;}if(dojo.isIE&lt;9||doj
 o.isQuirks){evt.stopPropagation=del._stopPropagation;evt.preventDefault=del._preventDefault;}return del._fixKeys(evt);},_fixKeys:function(evt){switch(evt.type){case &quot;keypress&quot;:var c=(&quot;charCode&quot; in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;del._setKeyChar(evt);break;}return evt;},_stealthKeyDown:function(evt){var kp=evt.currentTarget.onkeypress;if(!kp||!kp[_18d]){return;}var k=evt.keyCode;var _19b=(k!=13||(dojo.isIE&gt;=9&amp;&amp;!dojo.isQuirks))&amp;&amp;k!=32&amp;&amp;k!=27&amp;&amp;(k&lt;48||k&gt;90)&amp;&amp;(k&lt;96||k&gt;111)&amp;&amp;(k&lt;186||k&gt;192)&amp;&amp;(k&lt;219||k&gt;222);if(_19b||evt.ctrlKey){var c=_19b?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c&gt;95&amp;&amp;c&lt;106){c-=48;}else{if((!evt.shiftKey)&amp;&amp;(c&gt;=65&amp;&amp;c&lt;=90)){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:&quot;keypress&quot;,faux:tru
 e,charCode:c});kp.call(evt.currentTarget,faux);if(dojo.isIE&lt;9||(dojo.isIE&amp;&amp;dojo.isQuirks)){evt.cancelBubble=faux.cancelBubble;}evt.returnValue=faux.returnValue;_18c(evt,faux.keyCode);}},_stopPropagation:function(){this.cancelBubble=true;},_preventDefault:function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){_18c(this,0);}this.returnValue=false;}});dojo.stopEvent=(dojo.isIE&lt;9||dojo.isQuirks)?function(evt){evt=evt||window.event;del._stopPropagation.call(evt);del._preventDefault.call(evt);}:dojo.stopEvent;}del._synthesizeEvent=function(evt,_19c){var faux=dojo.mixin({},evt,_19c);del._setKeyChar(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};if(dojo.isOpera){dojo.mixin(del,{_fixEvent:function(evt,_19d){switch(evt.type){case &quot;keypress&quot;:var c=evt.which;if(c==3){c=99;}c=c&lt;41&amp;&amp;!evt.shiftKey?0:c;if(evt.ctrlKey&amp;&amp;!evt.shiftKey&amp;&amp;c&gt;=65&amp;&amp;c&
 lt;=90){c+=32;}return del._synthesizeEvent(evt,{charCode:c});}return evt;}});}if(dojo.isWebKit){del._add=del.add;del._remove=del.remove;dojo.mixin(del,{add:function(node,_19e,fp){if(!node){return;}var _19f=del._add(node,_19e,fp);if(del._normalizeEventName(_19e)==&quot;keypress&quot;){_19f._stealthKeyDownHandle=del._add(node,&quot;keydown&quot;,function(evt){var k=evt.keyCode;var _1a0=k!=13&amp;&amp;k!=32&amp;&amp;(k&lt;48||k&gt;90)&amp;&amp;(k&lt;96||k&gt;111)&amp;&amp;(k&lt;186||k&gt;192)&amp;&amp;(k&lt;219||k&gt;222);if(_1a0||evt.ctrlKey){var c=_1a0?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c&gt;95&amp;&amp;c&lt;106){c-=48;}else{if(!evt.shiftKey&amp;&amp;c&gt;=65&amp;&amp;c&lt;=90){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:&quot;keypress&quot;,faux:true,charCode:c});fp.call(evt.currentTarget,faux);}});}return _19f;},remove:function(node,_1a1,_1a2){if(node){if(_1a2._stealthKeyDownHandle){del._remove(node,&quot;keydown&quot;,_1a2
 ._stealthKeyDownHandle);}del._remove(node,_1a1,_1a2);}},_fixEvent:function(evt,_1a3){switch(evt.type){case &quot;keypress&quot;:if(evt.faux){return evt;}var c=evt.charCode;c=c&gt;=32?c:0;return del._synthesizeEvent(evt,{charCode:c,faux:true});}return evt;}});}})();if(dojo.isIE){dojo._ieDispatcher=function(args,_1a4){var ap=Array.prototype,h=dojo._ie_listener.handlers,c=args.callee,ls=c[dojo._ieListenersName],t=h[c.target];var r=t&amp;&amp;t.apply(_1a4,args);var lls=[].concat(ls);for(var i in lls){var f=h[lls[i]];if(!(i in ap)&amp;&amp;f){f.apply(_1a4,args);}}return r;};dojo._getIeDispatcher=function(){return new Function(dojo._scopeName+&quot;._ieDispatcher(arguments, this)&quot;);};dojo._event_listener._fixCallback=function(fp){var f=dojo._event_listener._fixEvent;return function(e){return fp.call(this,f(e,this));};};}}if(!dojo._hasResource[&quot;dojo._base.html&quot;]){dojo._hasResource[&quot;dojo._base.html&quot;]=true;dojo.provide(&quot;dojo._base.html&quot;);try{documen
 t.execCommand(&quot;BackgroundImageCache&quot;,false,true);}catch(e){}if(dojo.isIE){dojo.byId=function(id,doc){if(typeof id!=&quot;string&quot;){return id;}var _1a5=doc||dojo.doc,te=_1a5.getElementById(id);if(te&amp;&amp;(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_1a5.all[id];if(!eles||eles.nodeName){eles=[eles];}var i=0;while((te=eles[i++])){if((te.attributes&amp;&amp;te.attributes.id&amp;&amp;te.attributes.id.value==id)||te.id==id){return te;}}}};}else{dojo.byId=function(id,doc){return ((typeof id==&quot;string&quot;)?(doc||dojo.doc).getElementById(id):id)||null;};}(function(){var d=dojo;var byId=d.byId;var _1a6=null,_1a7;d.addOnWindowUnload(function(){_1a6=null;});dojo._destroyElement=dojo.destroy=function(node){node=byId(node);try{var doc=node.ownerDocument;if(!_1a6||_1a7!=doc){_1a6=doc.createElement(&quot;div&quot;);_1a7=doc;}_1a6.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_1a6.innerHTML=&quot;&quot;;}catch(e){}};dojo.isDe
 scendant=function(node,_1a8){try{node=byId(node);_1a8=byId(_1a8);while(node){if(node==_1a8){return true;}node=node.parentNode;}}catch(e){}return false;};dojo.setSelectable=function(node,_1a9){node=byId(node);if(d.isMozilla){node.style.MozUserSelect=_1a9?&quot;&quot;:&quot;none&quot;;}else{if(d.isKhtml||d.isWebKit){node.style.KhtmlUserSelect=_1a9?&quot;auto&quot;:&quot;none&quot;;}else{if(d.isIE){var v=(node.unselectable=_1a9?&quot;&quot;:&quot;on&quot;);d.query(&quot;*&quot;,node).forEach(&quot;item.unselectable = '&quot;+v+&quot;'&quot;);}}}};var _1aa=function(node,ref){var _1ab=ref.parentNode;if(_1ab){_1ab.insertBefore(node,ref);}};var _1ac=function(node,ref){var _1ad=ref.parentNode;if(_1ad){if(_1ad.lastChild==ref){_1ad.appendChild(node);}else{_1ad.insertBefore(node,ref.nextSibling);}}};dojo.place=function(node,_1ae,_1af){_1ae=byId(_1ae);if(typeof node==&quot;string&quot;){node=/^\s*&lt;/.test(node)?d._toDom(node,_1ae.ownerDocument):byId(node);}if(typeof _1af==&quot;number
 &quot;){var cn=_1ae.childNodes;if(!cn.length||cn.length&lt;=_1af){_1ae.appendChild(node);}else{_1aa(node,cn[_1af&lt;0?0:_1af]);}}else{switch(_1af){case &quot;before&quot;:_1aa(node,_1ae);break;case &quot;after&quot;:_1ac(node,_1ae);break;case &quot;replace&quot;:_1ae.parentNode.replaceChild(node,_1ae);break;case &quot;only&quot;:d.empty(_1ae);_1ae.appendChild(node);break;case &quot;first&quot;:if(_1ae.firstChild){_1aa(node,_1ae.firstChild);break;}default:_1ae.appendChild(node);}}return node;};dojo.boxModel=&quot;content-box&quot;;if(d.isIE){d.boxModel=document.compatMode==&quot;BackCompat&quot;?&quot;border-box&quot;:&quot;content-box&quot;;}var gcs;if(d.isWebKit){gcs=function(node){var s;if(node.nodeType==1){var dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&amp;&amp;node.style){node.style.display=&quot;&quot;;s=dv.getComputedStyle(node,null);}}return s||{};};}else{if(d.isIE){gcs=function(node){return node.nodeType==1?node.currentStyle:{};};}else{g
 cs=function(node){return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}dojo.getComputedStyle=gcs;if(!d.isIE){d._toPixelValue=function(_1b0,_1b1){return parseFloat(_1b1)||0;};}else{d._toPixelValue=function(_1b2,_1b3){if(!_1b3){return 0;}if(_1b3==&quot;medium&quot;){return 4;}if(_1b3.slice&amp;&amp;_1b3.slice(-2)==&quot;px&quot;){return parseFloat(_1b3);}with(_1b2){var _1b4=style.left;var _1b5=runtimeStyle.left;runtimeStyle.left=currentStyle.left;try{style.left=_1b3;_1b3=style.pixelLeft;}catch(e){_1b3=0;}style.left=_1b4;runtimeStyle.left=_1b5;}return _1b3;};}var px=d._toPixelValue;var astr=&quot;DXImageTransform.Microsoft.Alpha&quot;;var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};dojo._getOpacity=d.isIE&lt;9?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return gcs(node).opacity;};dojo._setOpacity=d.isIE&lt;9?function(node,_1b6){var ov=_1b6*100,_1b7=_1b6==1;node.style.
 zoom=_1b7?&quot;&quot;:1;if(!af(node)){if(_1b7){return _1b6;}node.style.filter+=&quot; progid:&quot;+astr+&quot;(Opacity=&quot;+ov+&quot;)&quot;;}else{af(node,1).Opacity=ov;}af(node,1).Enabled=!_1b7;if(node.nodeName.toLowerCase()==&quot;tr&quot;){d.query(&quot;&gt; td&quot;,node).forEach(function(i){d._setOpacity(i,_1b6);});}return _1b6;}:function(node,_1b8){return node.style.opacity=_1b8;};var _1b9={left:true,top:true};var _1ba=/margin|padding|width|height|max|min|offset/;var _1bb=function(node,type,_1bc){type=type.toLowerCase();if(d.isIE){if(_1bc==&quot;auto&quot;){if(type==&quot;height&quot;){return node.offsetHeight;}if(type==&quot;width&quot;){return node.offsetWidth;}}if(type==&quot;fontweight&quot;){switch(_1bc){case 700:return &quot;bold&quot;;case 400:default:return &quot;normal&quot;;}}}if(!(type in _1b9)){_1b9[type]=_1ba.test(type);}return _1b9[type]?px(node,_1bc):_1bc;};var _1bd=d.isIE?&quot;styleFloat&quot;:&quot;cssFloat&quot;,_1be={&quot;cssFloat&quot;:_1bd,&q
 uot;styleFloat&quot;:_1bd,&quot;float&quot;:_1bd};dojo.style=function(node,_1bf,_1c0){var n=byId(node),args=arguments.length,op=(_1bf==&quot;opacity&quot;);_1bf=_1be[_1bf]||_1bf;if(args==3){return op?d._setOpacity(n,_1c0):n.style[_1bf]=_1c0;}if(args==2&amp;&amp;op){return d._getOpacity(n);}var s=gcs(n);if(args==2&amp;&amp;typeof _1bf!=&quot;string&quot;){for(var x in _1bf){d.style(node,x,_1bf[x]);}return s;}return (args==1)?s:_1bb(n,_1bf,s[_1bf]||n.style[_1bf]);};dojo._getPadExtents=function(n,_1c1){var s=_1c1||gcs(n),l=px(n,s.paddingLeft),t=px(n,s.paddingTop);return {l:l,t:t,w:l+px(n,s.paddingRight),h:t+px(n,s.paddingBottom)};};dojo._getBorderExtents=function(n,_1c2){var ne=&quot;none&quot;,s=_1c2||gcs(n),bl=(s.borderLeftStyle!=ne?px(n,s.borderLeftWidth):0),bt=(s.borderTopStyle!=ne?px(n,s.borderTopWidth):0);return {l:bl,t:bt,w:bl+(s.borderRightStyle!=ne?px(n,s.borderRightWidth):0),h:bt+(s.borderBottomStyle!=ne?px(n,s.borderBottomWidth):0)};};dojo._getPadBorderExtents=functi
 on(n,_1c3){var s=_1c3||gcs(n),p=d._getPadExtents(n,s),b=d._getBorderExtents(n,s);return {l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h};};dojo._getMarginExtents=function(n,_1c4){var s=_1c4||gcs(n),l=px(n,s.marginLeft),t=px(n,s.marginTop),r=px(n,s.marginRight),b=px(n,s.marginBottom);if(d.isWebKit&amp;&amp;(s.position!=&quot;absolute&quot;)){r=l;}return {l:l,t:t,w:l+r,h:t+b};};dojo._getMarginBox=function(node,_1c5){var s=_1c5||gcs(node),me=d._getMarginExtents(node,s);var l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode;if(d.isMoz){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&amp;&amp;!isNaN(st)){l=sl,t=st;}else{if(p&amp;&amp;p.style){var pcs=gcs(p);if(pcs.overflow!=&quot;visible&quot;){var be=d._getBorderExtents(p,pcs);l+=be.l,t+=be.t;}}}}else{if(d.isOpera||(d.isIE&gt;7&amp;&amp;!d.isQuirks)){if(p){be=d._getBorderExtents(p);l-=be.l;t-=be.t;}}}return {l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h};};dojo._getMarginSize=function(node,_1c6){node
 =byId(node);var me=d._getMarginExtents(node,_1c6||gcs(node));var size=node.getBoundingClientRect();return {w:(size.right-size.left)+me.w,h:(size.bottom-size.top)+me.h};};dojo._getContentBox=function(node,_1c7){var s=_1c7||gcs(node),pe=d._getPadExtents(node,s),be=d._getBorderExtents(node,s),w=node.clientWidth,h;if(!w){w=node.offsetWidth,h=node.offsetHeight;}else{h=node.clientHeight,be.w=be.h=0;}if(d.isOpera){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};dojo._getBorderBox=function(node,_1c8){var s=_1c8||gcs(node),pe=d._getPadExtents(node,s),cb=d._getContentBox(node,s);return {l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h};};dojo._setBox=function(node,l,t,w,h,u){u=u||&quot;px&quot;;var s=node.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w&gt;=0){s.width=w+u;}if(h&gt;=0){s.height=h+u;}};dojo._isButtonTag=function(node){return node.tagName==&quot;BUTTON&quot;||node.tagName==&quot;INPUT&quot;&amp;&amp;(node.getAttribute(&quot;type&qu
 ot;)||&quot;&quot;).toUpperCase()==&quot;BUTTON&quot;;};dojo._usesBorderBox=function(node){var n=node.tagName;return d.boxModel==&quot;border-box&quot;||n==&quot;TABLE&quot;||d._isButtonTag(node);};dojo._setContentSize=function(node,_1c9,_1ca,_1cb){if(d._usesBorderBox(node)){var pb=d._getPadBorderExtents(node,_1cb);if(_1c9&gt;=0){_1c9+=pb.w;}if(_1ca&gt;=0){_1ca+=pb.h;}}d._setBox(node,NaN,NaN,_1c9,_1ca);};dojo._setMarginBox=function(node,_1cc,_1cd,_1ce,_1cf,_1d0){var s=_1d0||gcs(node),bb=d._usesBorderBox(node),pb=bb?_1d1:d._getPadBorderExtents(node,s);if(d.isWebKit){if(d._isButtonTag(node)){var ns=node.style;if(_1ce&gt;=0&amp;&amp;!ns.width){ns.width=&quot;4px&quot;;}if(_1cf&gt;=0&amp;&amp;!ns.height){ns.height=&quot;4px&quot;;}}}var mb=d._getMarginExtents(node,s);if(_1ce&gt;=0){_1ce=Math.max(_1ce-pb.w-mb.w,0);}if(_1cf&gt;=0){_1cf=Math.max(_1cf-pb.h-mb.h,0);}d._setBox(node,_1cc,_1cd,_1ce,_1cf);};var _1d1={l:0,t:0,w:0,h:0};dojo.marginBox=function(node,box){var n=byId(node),s=g
 cs(n),b=box;return !b?d._getMarginBox(n,s):d._setMarginBox(n,b.l,b.t,b.w,b.h,s);};dojo.contentBox=function(node,box){var n=byId(node),s=gcs(n),b=box;return !b?d._getContentBox(n,s):d._setContentSize(n,b.w,b.h,s);};var _1d2=function(node,prop){if(!(node=(node||0).parentNode)){return 0;}var val,_1d3=0,_1d4=d.body();while(node&amp;&amp;node.style){if(gcs(node).position==&quot;fixed&quot;){return 0;}val=node[prop];if(val){_1d3+=val-0;if(node==_1d4){break;}}node=node.parentNode;}return _1d3;};dojo._docScroll=function(){var n=d.global;return &quot;pageXOffset&quot; in n?{x:n.pageXOffset,y:n.pageYOffset}:(n=d.isQuirks?d.doc.body:d.doc.documentElement,{x:d._fixIeBiDiScrollLeft(n.scrollLeft||0),y:n.scrollTop||0});};dojo._isBodyLtr=function(){return &quot;_bodyLtr&quot; in d?d._bodyLtr:d._bodyLtr=(d.body().dir||d.doc.documentElement.dir||&quot;ltr&quot;).toLowerCase()==&quot;ltr&quot;;};dojo._getIeDocumentElementOffset=function(){var de=d.doc.documentElement;if(d.isIE&lt;8){var r=de.g
 etBoundingClientRect();var l=r.left,t=r.top;if(d.isIE&lt;7){l+=de.clientLeft;t+=de.clientTop;}return {x:l&lt;0?0:l,y:t&lt;0?0:t};}else{return {x:0,y:0};}};dojo._fixIeBiDiScrollLeft=function(_1d5){var ie=d.isIE;if(ie&amp;&amp;!d._isBodyLtr()){var qk=d.isQuirks,de=qk?d.doc.body:d.doc.documentElement;if(ie==6&amp;&amp;!qk&amp;&amp;d.global.frameElement&amp;&amp;de.scrollHeight&gt;de.clientHeight){_1d5+=de.clientLeft;}return (ie&lt;8||qk)?(_1d5+de.clientWidth-de.scrollWidth):-_1d5;}return _1d5;};dojo._abs=dojo.position=function(node,_1d6){node=byId(node);var db=d.body(),dh=db.parentNode,ret=node.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(d.isIE){var _1d7=d._getIeDocumentElementOffset();ret.x-=_1d7.x+(d.isQuirks?db.clientLeft+db.offsetLeft:0);ret.y-=_1d7.y+(d.isQuirks?db.clientTop+db.offsetTop:0);}else{if(d.isFF==3){var cs=gcs(dh);ret.x-=px(dh,cs.marginLeft)+px(dh,cs.borderLeftWidth);ret.y-=px(dh,cs.marginTop)+px(dh,cs.borderTo
 pWidth);}}if(_1d6){var _1d8=d._docScroll();ret.x+=_1d8.x;ret.y+=_1d8.y;}return ret;};dojo.coords=function(node,_1d9){var n=byId(node),s=gcs(n),mb=d._getMarginBox(n,s);var abs=d.position(n,_1d9);mb.x=abs.x;mb.y=abs.y;return mb;};var _1da={&quot;class&quot;:&quot;className&quot;,&quot;for&quot;:&quot;htmlFor&quot;,tabindex:&quot;tabIndex&quot;,readonly:&quot;readOnly&quot;,colspan:&quot;colSpan&quot;,frameborder:&quot;frameBorder&quot;,rowspan:&quot;rowSpan&quot;,valuetype:&quot;valueType&quot;},_1db={classname:&quot;class&quot;,htmlfor:&quot;for&quot;,tabindex:&quot;tabIndex&quot;,readonly:&quot;readOnly&quot;},_1dc={innerHTML:1,className:1,htmlFor:d.isIE,value:1};var _1dd=function(name){return _1db[name.toLowerCase()]||name;};var _1de=function(node,name){var attr=node.getAttributeNode&amp;&amp;node.getAttributeNode(name);return attr&amp;&amp;attr.specified;};dojo.hasAttr=function(node,name){var lc=name.toLowerCase();return _1dc[_1da[lc]||name]||_1de(byId(node),_1db[lc]||name
 );};var _1df={},_1e0=0,_1e1=dojo._scopeName+&quot;attrid&quot;,_1e2={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1};dojo.attr=function(node,name,_1e3){node=byId(node);var args=arguments.length,prop;if(args==2&amp;&amp;typeof name!=&quot;string&quot;){for(var x in name){d.attr(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_1e4=_1da[lc]||name,_1e5=_1dc[_1e4],_1e6=_1db[lc]||name;if(args==3){do{if(_1e4==&quot;style&quot;&amp;&amp;typeof _1e3!=&quot;string&quot;){d.style(node,_1e3);break;}if(_1e4==&quot;innerHTML&quot;){if(d.isIE&amp;&amp;node.tagName.toLowerCase() in _1e2){d.empty(node);node.appendChild(d._toDom(_1e3,node.ownerDocument));}else{node[_1e4]=_1e3;}break;}if(d.isFunction(_1e3)){var _1e7=d.attr(node,_1e1);if(!_1e7){_1e7=_1e0++;d.attr(node,_1e1,_1e7);}if(!_1df[_1e7]){_1df[_1e7]={};}var h=_1df[_1e7][_1e4];if(h){d.disconnect(h);}else{try{delete node[_1e4];}catch(e){}}_1df[_1e7][_1e4]=d.connect(node,_1e4,_1e3);break;}if(_1e5||typeof _1e3==&quot;b
 oolean&quot;){node[_1e4]=_1e3;break;}node.setAttribute(_1e6,_1e3);}while(false);return node;}_1e3=node[_1e4];if(_1e5&amp;&amp;typeof _1e3!=&quot;undefined&quot;){return _1e3;}if(_1e4!=&quot;href&quot;&amp;&amp;(typeof _1e3==&quot;boolean&quot;||d.isFunction(_1e3))){return _1e3;}return _1de(node,_1e6)?node.getAttribute(_1e6):null;};dojo.removeAttr=function(node,name){byId(node).removeAttribute(_1dd(name));};dojo.getNodeProp=function(node,name){node=byId(node);var lc=name.toLowerCase(),_1e8=_1da[lc]||name;if((_1e8 in node)&amp;&amp;_1e8!=&quot;href&quot;){return node[_1e8];}var _1e9=_1db[lc]||name;return _1de(node,_1e9)?node.getAttribute(_1e9):null;};dojo.create=function(tag,_1ea,_1eb,pos){var doc=d.doc;if(_1eb){_1eb=byId(_1eb);doc=_1eb.ownerDocument;}if(typeof tag==&quot;string&quot;){tag=doc.createElement(tag);}if(_1ea){d.attr(tag,_1ea);}if(_1eb){d.place(tag,_1eb,pos);}return tag;};d.empty=d.isIE?function(node){node=byId(node);for(var c;c=node.lastChild;){d.destroy(c);}}:fun
 ction(node){byId(node).innerHTML=&quot;&quot;;};var _1ec={option:[&quot;select&quot;],tbody:[&quot;table&quot;],thead:[&quot;table&quot;],tfoot:[&quot;table&quot;],tr:[&quot;table&quot;,&quot;tbody&quot;],td:[&quot;table&quot;,&quot;tbody&quot;,&quot;tr&quot;],th:[&quot;table&quot;,&quot;thead&quot;,&quot;tr&quot;],legend:[&quot;fieldset&quot;],caption:[&quot;table&quot;],colgroup:[&quot;table&quot;],col:[&quot;table&quot;,&quot;colgroup&quot;],li:[&quot;ul&quot;]},_1ed=/&lt;\s*([\w\:]+)/,_1ee={},_1ef=0,_1f0=&quot;__&quot;+d._scopeName+&quot;ToDomId&quot;;for(var _1f1 in _1ec){if(_1ec.hasOwnProperty(_1f1)){var tw=_1ec[_1f1];tw.pre=_1f1==&quot;option&quot;?&quot;&lt;select multiple=\&quot;multiple\&quot;&gt;&quot;:&quot;&lt;&quot;+tw.join(&quot;&gt;&lt;&quot;)+&quot;&gt;&quot;;tw.post=&quot;&lt;/&quot;+tw.reverse().join(&quot;&gt;&lt;/&quot;)+&quot;&gt;&quot;;}}d._toDom=function(frag,doc){doc=doc||d.doc;var _1f2=doc[_1f0];if(!_1f2){doc[_1f0]=_1f2=++_1ef+&quot;&quot;;_1ee[_1f2
 ]=doc.createElement(&quot;div&quot;);}frag+=&quot;&quot;;var _1f3=frag.match(_1ed),tag=_1f3?_1f3[1].toLowerCase():&quot;&quot;,_1f4=_1ee[_1f2],wrap,i,fc,df;if(_1f3&amp;&amp;_1ec[tag]){wrap=_1ec[tag];_1f4.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i){_1f4=_1f4.firstChild;}}else{_1f4.innerHTML=frag;}if(_1f4.childNodes.length==1){return _1f4.removeChild(_1f4.firstChild);}df=doc.createDocumentFragment();while(fc=_1f4.firstChild){df.appendChild(fc);}return df;};var _1f5=&quot;className&quot;;dojo.hasClass=function(node,_1f6){return ((&quot; &quot;+byId(node)[_1f5]+&quot; &quot;).indexOf(&quot; &quot;+_1f6+&quot; &quot;)&gt;=0);};var _1f7=/\s+/,a1=[&quot;&quot;],_1f8={},_1f9=function(s){if(typeof s==&quot;string&quot;||s instanceof String){if(s.indexOf(&quot; &quot;)&lt;0){a1[0]=s;return a1;}else{return s.split(_1f7);}}return s||&quot;&quot;;};dojo.addClass=function(node,_1fa){node=byId(node);_1fa=_1f9(_1fa);var cls=node[_1f5],_1fb;cls=cls?&quot; &quot;+cls+&quot; &qu
 ot;:&quot; &quot;;_1fb=cls.length;for(var i=0,len=_1fa.length,c;i&lt;len;++i){c=_1fa[i];if(c&amp;&amp;cls.indexOf(&quot; &quot;+c+&quot; &quot;)&lt;0){cls+=c+&quot; &quot;;}}if(_1fb&lt;cls.length){node[_1f5]=cls.substr(1,cls.length-2);}};dojo.removeClass=function(node,_1fc){node=byId(node);var cls;if(_1fc!==undefined){_1fc=_1f9(_1fc);cls=&quot; &quot;+node[_1f5]+&quot; &quot;;for(var i=0,len=_1fc.length;i&lt;len;++i){cls=cls.replace(&quot; &quot;+_1fc[i]+&quot; &quot;,&quot; &quot;);}cls=d.trim(cls);}else{cls=&quot;&quot;;}if(node[_1f5]!=cls){node[_1f5]=cls;}};dojo.replaceClass=function(node,_1fd,_1fe){node=byId(node);_1f8.className=node.className;dojo.removeClass(_1f8,_1fe);dojo.addClass(_1f8,_1fd);if(node.className!==_1f8.className){node.className=_1f8.className;}};dojo.toggleClass=function(node,_1ff,_200){if(_200===undefined){_200=!d.hasClass(node,_1ff);}d[_200?&quot;addClass&quot;:&quot;removeClass&quot;](node,_1ff);};})();}if(!dojo._hasResource[&quot;dojo._base.NodeList
 &quot;]){dojo._hasResource[&quot;dojo._base.NodeList&quot;]=true;dojo.provide(&quot;dojo._base.NodeList&quot;);(function(){var d=dojo;var ap=Array.prototype,aps=ap.slice,apc=ap.concat;var tnl=function(a,_201,_202){if(!a.sort){a=aps.call(a,0);}var ctor=_202||this._NodeListCtor||d._NodeListCtor;a.constructor=ctor;dojo._mixin(a,ctor.prototype);a._NodeListCtor=ctor;return _201?a._stash(_201):a;};var _203=function(f,a,o){a=[0].concat(aps.call(a,0));o=o||d.global;return function(node){a[0]=node;return f.apply(o,a);};};var _204=function(f,o){return function(){this.forEach(_203(f,arguments,o));return this;};};var _205=function(f,o){return function(){return this.map(_203(f,arguments,o));};};var _206=function(f,o){return function(){return this.filter(_203(f,arguments,o));};};var _207=function(f,g,o){return function(){var a=arguments,body=_203(f,a,o);if(g.call(o||d.global,a)){return this.map(body);}this.forEach(body);return this;};};var _208=function(a){return a.length==1&amp;&amp;(typ
 eof a[0]==&quot;string&quot;);};var _209=function(node){var p=node.parentNode;if(p){p.removeChild(node);}};dojo.NodeList=function(){return tnl(Array.apply(null,arguments));};d._NodeListCtor=d.NodeList;var nl=d.NodeList,nlp=nl.prototype;nl._wrap=nlp._wrap=tnl;nl._adaptAsMap=_205;nl._adaptAsForEach=_204;nl._adaptAsFilter=_206;nl._adaptWithCondition=_207;d.forEach([&quot;slice&quot;,&quot;splice&quot;],function(name){var f=ap[name];nlp[name]=function(){return this._wrap(f.apply(this,arguments),name==&quot;slice&quot;?this:null);};});d.forEach([&quot;indexOf&quot;,&quot;lastIndexOf&quot;,&quot;every&quot;,&quot;some&quot;],function(name){var f=d[name];nlp[name]=function(){return f.apply(d,[this].concat(aps.call(arguments,0)));};});d.forEach([&quot;attr&quot;,&quot;style&quot;],function(name){nlp[name]=_207(d[name],_208);});d.forEach([&quot;connect&quot;,&quot;addClass&quot;,&quot;removeClass&quot;,&quot;replaceClass&quot;,&quot;toggleClass&quot;,&quot;empty&quot;,&quot;removeAtt
 r&quot;],function(name){nlp[name]=_204(d[name]);});dojo.extend(dojo.NodeList,{_normalize:function(_20a,_20b){var _20c=_20a.parse===true?true:false;if(typeof _20a.template==&quot;string&quot;){var _20d=_20a.templateFunc||(dojo.string&amp;&amp;dojo.string.substitute);_20a=_20d?_20d(_20a.template,_20a):_20a;}var type=(typeof _20a);if(type==&quot;string&quot;||type==&quot;number&quot;){_20a=dojo._toDom(_20a,(_20b&amp;&amp;_20b.ownerDocument));if(_20a.nodeType==11){_20a=dojo._toArray(_20a.childNodes);}else{_20a=[_20a];}}else{if(!dojo.isArrayLike(_20a)){_20a=[_20a];}else{if(!dojo.isArray(_20a)){_20a=dojo._toArray(_20a);}}}if(_20c){_20a._runParse=true;}return _20a;},_cloneNode:function(node){return node.cloneNode(true);},_place:function(ary,_20e,_20f,_210){if(_20e.nodeType!=1&amp;&amp;_20f==&quot;only&quot;){return;}var _211=_20e,_212;var _213=ary.length;for(var i=_213-1;i&gt;=0;i--){var node=(_210?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&amp;&amp;dojo.parser&amp;&amp;dojo.
 parser.parse){if(!_212){_212=_211.ownerDocument.createElement(&quot;div&quot;);}_212.appendChild(node);dojo.parser.parse(_212);node=_212.firstChild;while(_212.firstChild){_212.removeChild(_212.firstChild);}}if(i==_213-1){dojo.place(node,_211,_20f);}else{_211.parentNode.insertBefore(node,_211);}_211=node;}},_stash:function(_214){this._parent=_214;return this;},end:function(){if(this._parent){return this._parent;}else{return new this._NodeListCtor();}},concat:function(item){var t=d.isArray(this)?this:aps.call(this,0),m=d.map(arguments,function(a){return a&amp;&amp;!d.isArray(a)&amp;&amp;(typeof NodeList!=&quot;undefined&quot;&amp;&amp;a.constructor===NodeList||a.constructor===this._NodeListCtor)?aps.call(a,0):a;});return this._wrap(apc.apply(t,m),this);},map:function(func,obj){return this._wrap(d.map(this,func,obj),this);},forEach:function(_215,_216){d.forEach(this,_215,_216);return this;},coords:_205(d.coords),position:_205(d.position),place:function(_217,_218){var item=d.que
 ry(_217)[0];return this.forEach(function(node){d.place(node,item,_218);});},orphan:function(_219){return (_219?d._filterQueryResult(this,_219):this).forEach(_209);},adopt:function(_21a,_21b){return d.query(_21a).place(this[0],_21b)._stash(this);},query:function(_21c){if(!_21c){return this;}var ret=this.map(function(node){return d.query(_21c,node).filter(function(_21d){return _21d!==undefined;});});return this._wrap(apc.apply([],ret),this);},filter:function(_21e){var a=arguments,_21f=this,_220=0;if(typeof _21e==&quot;string&quot;){_21f=d._filterQueryResult(this,a[0]);if(a.length==1){return _21f._stash(this);}_220=1;}return this._wrap(d.filter(_21f,a[_220],a[_220+1]),this);},addContent:function(_221,_222){_221=this._normalize(_221,this[0]);for(var i=0,node;(node=this[i]);i++){this._place(_221,node,_222,i&gt;0);}return this;},instantiate:function(_223,_224){var c=d.isFunction(_223)?_223:d.getObject(_223);_224=_224||{};return this.forEach(function(node){new c(_224,node);});},at:
 function(){var t=new this._NodeListCtor();d.forEach(arguments,function(i){if(i&lt;0){i=this.length+i;}if(this[i]){t.push(this[i]);}},this);return t._stash(this);}});nl.events=[&quot;blur&quot;,&quot;focus&quot;,&quot;change&quot;,&quot;click&quot;,&quot;error&quot;,&quot;keydown&quot;,&quot;keypress&quot;,&quot;keyup&quot;,&quot;load&quot;,&quot;mousedown&quot;,&quot;mouseenter&quot;,&quot;mouseleave&quot;,&quot;mousemove&quot;,&quot;mouseout&quot;,&quot;mouseover&quot;,&quot;mouseup&quot;,&quot;submit&quot;];d.forEach(nl.events,function(evt){var _225=&quot;on&quot;+evt;nlp[_225]=function(a,b){return this.connect(_225,a,b);};});})();}if(!dojo._hasResource[&quot;dojo._base.query&quot;]){dojo._hasResource[&quot;dojo._base.query&quot;]=true;(function(){var _226=function(d){var trim=d.trim;var each=d.forEach;var qlc=(d._NodeListCtor=d.NodeList);var _227=function(){return d.doc;};var _228=((d.isWebKit||d.isMozilla)&amp;&amp;((_227().compatMode)==&quot;BackCompat&quot;));var _229=
 !!_227().firstChild[&quot;children&quot;]?&quot;children&quot;:&quot;childNodes&quot;;var _22a=&quot;&gt;~+&quot;;var _22b=false;var _22c=function(){return true;};var _22d=function(_22e){if(_22a.indexOf(_22e.slice(-1))&gt;=0){_22e+=&quot; * &quot;;}else{_22e+=&quot; &quot;;}var ts=function(s,e){return trim(_22e.slice(s,e));};var _22f=[];var _230=-1,_231=-1,_232=-1,_233=-1,_234=-1,inId=-1,_235=-1,lc=&quot;&quot;,cc=&quot;&quot;,_236;var x=0,ql=_22e.length,_237=null,_238=null;var _239=function(){if(_235&gt;=0){var tv=(_235==x)?null:ts(_235,x);_237[(_22a.indexOf(tv)&lt;0)?&quot;tag&quot;:&quot;oper&quot;]=tv;_235=-1;}};var _23a=function(){if(inId&gt;=0){_237.id=ts(inId,x).replace(/\\/g,&quot;&quot;);inId=-1;}};var _23b=function(){if(_234&gt;=0){_237.classes.push(ts(_234+1,x).replace(/\\/g,&quot;&quot;));_234=-1;}};var _23c=function(){_23a();_239();_23b();};var _23d=function(){_23c();if(_233&gt;=0){_237.pseudos.push({name:ts(_233+1,x)});}_237.loops=(_237.pseudos.length||_237.att
 rs.length||_237.classes.length);_237.oquery=_237.query=ts(_236,x);_237.otag=_237.tag=(_237[&quot;oper&quot;])?null:(_237.tag||&quot;*&quot;);if(_237.tag){_237.tag=_237.tag.toUpperCase();}if(_22f.length&amp;&amp;(_22f[_22f.length-1].oper)){_237.infixOper=_22f.pop();_237.query=_237.infixOper.query+&quot; &quot;+_237.query;}_22f.push(_237);_237=null;};for(;lc=cc,cc=_22e.charAt(x),x&lt;ql;x++){if(lc==&quot;\\&quot;){continue;}if(!_237){_236=x;_237={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return (_22b)?this.otag:this.tag;}};_235=x;}if(_230&gt;=0){if(cc==&quot;]&quot;){if(!_238.attr){_238.attr=ts(_230+1,x);}else{_238.matchFor=ts((_232||_230+1),x);}var cmf=_238.matchFor;if(cmf){if((cmf.charAt(0)==&quot;\&quot;&quot;)||(cmf.charAt(0)==&quot;'&quot;)){_238.matchFor=cmf.slice(1,-1);}}_237.attrs.push(_238);_238=null;_230=_232=-1;}else{if(cc==&quot;=&quot;){var _23e=(&quot;|~^$*&quot;.indexOf(lc)&gt;=0)?lc:&quot;&quot;;_238.type=_23e+cc;_23
 8.attr=ts(_230+1,x-_23e.length);_232=x+1;}}}else{if(_231&gt;=0){if(cc==&quot;)&quot;){if(_233&gt;=0){_238.value=ts(_231+1,x);}_233=_231=-1;}}else{if(cc==&quot;#&quot;){_23c();inId=x+1;}else{if(cc==&quot;.&quot;){_23c();_234=x;}else{if(cc==&quot;:&quot;){_23c();_233=x;}else{if(cc==&quot;[&quot;){_23c();_230=x;_238={};}else{if(cc==&quot;(&quot;){if(_233&gt;=0){_238={name:ts(_233+1,x),value:null};_237.pseudos.push(_238);}_231=x;}else{if((cc==&quot; &quot;)&amp;&amp;(lc!=cc)){_23d();}}}}}}}}}return _22f;};var _23f=function(_240,_241){if(!_240){return _241;}if(!_241){return _240;}return function(){return _240.apply(window,arguments)&amp;&amp;_241.apply(window,arguments);};};var _242=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _243=function(n){return (1==n.nodeType);};var _244=&quot;&quot;;var _245=function(elem,attr){if(!elem){return _244;}if(attr==&quot;class&quot;){return elem.className||_244;}if(attr==&quot;for&quot;){return elem.htmlFor||_244;}if(attr==&quot
 ;style&quot;){return elem.style.cssText||_244;}return (_22b?elem.getAttribute(attr):elem.getAttribute(attr,2))||_244;};var _246={&quot;*=&quot;:function(attr,_247){return function(elem){return (_245(elem,attr).indexOf(_247)&gt;=0);};},&quot;^=&quot;:function(attr,_248){return function(elem){return (_245(elem,attr).indexOf(_248)==0);};},&quot;$=&quot;:function(attr,_249){var tval=&quot; &quot;+_249;return function(elem){var ea=&quot; &quot;+_245(elem,attr);return (ea.lastIndexOf(_249)==(ea.length-_249.length));};},&quot;~=&quot;:function(attr,_24a){var tval=&quot; &quot;+_24a+&quot; &quot;;return function(elem){var ea=&quot; &quot;+_245(elem,attr)+&quot; &quot;;return (ea.indexOf(tval)&gt;=0);};},&quot;|=&quot;:function(attr,_24b){var _24c=&quot; &quot;+_24b+&quot;-&quot;;return function(elem){var ea=&quot; &quot;+_245(elem,attr);return ((ea==_24b)||(ea.indexOf(_24c)==0));};},&quot;=&quot;:function(attr,_24d){return function(elem){return (_245(elem,attr)==_24d);};}};var _24e=
 (typeof _227().firstChild.nextElementSibling==&quot;undefined&quot;);var _24f=!_24e?&quot;nextElementSibling&quot;:&quot;nextSibling&quot;;var _250=!_24e?&quot;previousElementSibling&quot;:&quot;previousSibling&quot;;var _251=(_24e?_243:_22c);var _252=function(node){while(node=node[_250]){if(_251(node)){return false;}}return true;};var _253=function(node){while(node=node[_24f]){if(_251(node)){return false;}}return true;};var _254=function(node){var root=node.parentNode;var i=0,tret=root[_229],ci=(node[&quot;_i&quot;]||-1),cl=(root[&quot;_l&quot;]||-1);if(!tret){return -1;}var l=tret.length;if(cl==l&amp;&amp;ci&gt;=0&amp;&amp;cl&gt;=0){return ci;}root[&quot;_l&quot;]=l;ci=-1;for(var te=root[&quot;firstElementChild&quot;]||root[&quot;firstChild&quot;];te;te=te[_24f]){if(_251(te)){te[&quot;_i&quot;]=++i;if(node===te){ci=i;}}}return ci;};var _255=function(elem){return !((_254(elem))%2);};var _256=function(elem){return ((_254(elem))%2);};var _257={&quot;checked&quot;:function(nam
 e,_258){return function(elem){return !!(&quot;checked&quot; in elem?elem.checked:elem.selected);};},&quot;first-child&quot;:function(){return _252;},&quot;last-child&quot;:function(){return _253;},&quot;only-child&quot;:function(name,_259){return function(node){if(!_252(node)){return false;}if(!_253(node)){return false;}return true;};},&quot;empty&quot;:function(name,_25a){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x&gt;=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},&quot;contains&quot;:function(name,_25b){var cz=_25b.charAt(0);if(cz==&quot;\&quot;&quot;||cz==&quot;'&quot;){_25b=_25b.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_25b)&gt;=0);};},&quot;not&quot;:function(name,_25c){var p=_22d(_25c)[0];var _25d={el:1};if(p.tag!=&quot;*&quot;){_25d.tag=1;}if(!p.classes.length){_25d.classes=1;}var ntf=_25e(p,_25d);return function(elem){return (!ntf(elem));};},&quot;nth-child&
 quot;:function(name,_25f){var pi=parseInt;if(_25f==&quot;odd&quot;){return _256;}else{if(_25f==&quot;even&quot;){return _255;}}if(_25f.indexOf(&quot;n&quot;)!=-1){var _260=_25f.split(&quot;n&quot;,2);var pred=_260[0]?((_260[0]==&quot;-&quot;)?-1:pi(_260[0])):1;var idx=_260[1]?pi(_260[1]):0;var lb=0,ub=-1;if(pred&gt;0){if(idx&lt;0){idx=(idx%pred)&amp;&amp;(pred+(idx%pred));}else{if(idx&gt;0){if(idx&gt;=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred&lt;0){pred*=-1;if(idx&gt;0){ub=idx;idx=idx%pred;}}}if(pred&gt;0){return function(elem){var i=_254(elem);return (i&gt;=lb)&amp;&amp;(ub&lt;0||i&lt;=ub)&amp;&amp;((i%pred)==idx);};}else{_25f=idx;}}var _261=pi(_25f);return function(elem){return (_254(elem)==_261);};}};var _262=(d.isIE&lt;9||(dojo.isIE&amp;&amp;dojo.isQuirks))?function(cond){var clc=cond.toLowerCase();if(clc==&quot;class&quot;){cond=&quot;className&quot;;}return function(elem){return (_22b?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return fu
 nction(elem){return (elem&amp;&amp;elem.getAttribute&amp;&amp;elem.hasAttribute(cond));};};var _25e=function(_263,_264){if(!_263){return _22c;}_264=_264||{};var ff=null;if(!(&quot;el&quot; in _264)){ff=_23f(ff,_243);}if(!(&quot;tag&quot; in _264)){if(_263.tag!=&quot;*&quot;){ff=_23f(ff,function(elem){return (elem&amp;&amp;(elem.tagName==_263.getTag()));});}}if(!(&quot;classes&quot; in _264)){each(_263.classes,function(_265,idx,arr){var re=new RegExp(&quot;(?:^|\\s)&quot;+_265+&quot;(?:\\s|$)&quot;);ff=_23f(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!(&quot;pseudos&quot; in _264)){each(_263.pseudos,function(_266){var pn=_266.name;if(_257[pn]){ff=_23f(ff,_257[pn](pn,_266.value));}});}if(!(&quot;attrs&quot; in _264)){each(_263.attrs,function(attr){var _267;var a=attr.attr;if(attr.type&amp;&amp;_246[attr.type]){_267=_246[attr.type](a,attr.matchFor);}else{if(a.length){_267=_262(a);}}if(_267){ff=_23f(ff,_267);}});}if(!(&quot;id&quot; in _264)){if(_263.
 id){ff=_23f(ff,function(elem){return (!!elem&amp;&amp;(elem.id==_263.id));});}}if(!ff){if(!(&quot;default&quot; in _264)){ff=_22c;}}return ff;};var _268=function(_269){return function(node,ret,bag){while(node=node[_24f]){if(_24e&amp;&amp;(!_243(node))){continue;}if((!bag||_26a(node,bag))&amp;&amp;_269(node)){ret.push(node);}break;}return ret;};};var _26b=function(_26c){return function(root,ret,bag){var te=root[_24f];while(te){if(_251(te)){if(bag&amp;&amp;!_26a(te,bag)){break;}if(_26c(te)){ret.push(te);}}te=te[_24f];}return ret;};};var _26d=function(_26e){_26e=_26e||_22c;return function(root,ret,bag){var te,x=0,tret=root[_229];while(te=tret[x++]){if(_251(te)&amp;&amp;(!bag||_26a(te,bag))&amp;&amp;(_26e(te,x))){ret.push(te);}}return ret;};};var _26f=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _270={};var _271=function(_272){var _273=_270[_272.query];if(_273){return _273;}var io=_272.infixOper;var oper=(io?io.oper
 :&quot;&quot;);var _274=_25e(_272,{el:1});var qt=_272.tag;var _275=(&quot;*&quot;==qt);var ecs=_227()[&quot;getElementsByClassName&quot;];if(!oper){if(_272.id){_274=(!_272.loops&amp;&amp;_275)?_22c:_25e(_272,{el:1,id:1});_273=function(root,arr){var te=d.byId(_272.id,(root.ownerDocument||root));if(!te||!_274(te)){return;}if(9==root.nodeType){return _242(te,arr);}else{if(_26f(te,root)){return _242(te,arr);}}};}else{if(ecs&amp;&amp;/\{\s*\[native code\]\s*\}/.test(String(ecs))&amp;&amp;_272.classes.length&amp;&amp;!_228){_274=_25e(_272,{el:1,classes:1,id:1});var _276=_272.classes.join(&quot; &quot;);_273=function(root,arr,bag){var ret=_242(0,arr),te,x=0;var tret=root.getElementsByClassName(_276);while((te=tret[x++])){if(_274(te,root)&amp;&amp;_26a(te,bag)){ret.push(te);}}return ret;};}else{if(!_275&amp;&amp;!_272.loops){_273=function(root,arr,bag){var ret=_242(0,arr),te,x=0;var tret=root.getElementsByTagName(_272.getTag());while((te=tret[x++])){if(_26a(te,bag)){ret.push(te);}}r
 eturn ret;};}else{_274=_25e(_272,{el:1,tag:1,id:1});_273=function(root,arr,bag){var ret=_242(0,arr),te,x=0;var tret=root.getElementsByTagName(_272.getTag());while((te=tret[x++])){if(_274(te,root)&amp;&amp;_26a(te,bag)){ret.push(te);}}return ret;};}}}}else{var _277={el:1};if(_275){_277.tag=1;}_274=_25e(_272,_277);if(&quot;+&quot;==oper){_273=_268(_274);}else{if(&quot;~&quot;==oper){_273=_26b(_274);}else{if(&quot;&gt;&quot;==oper){_273=_26d(_274);}}}}return _270[_272.query]=_273;};var _278=function(root,_279){var _27a=_242(root),qp,x,te,qpl=_279.length,bag,ret;for(var i=0;i&lt;qpl;i++){ret=[];qp=_279[i];x=_27a.length-1;if(x&gt;0){bag={};ret.nozip=true;}var gef=_271(qp);for(var j=0;(te=_27a[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_27a=ret;}return ret;};var _27b={},_27c={};var _27d=function(_27e){var _27f=_22d(trim(_27e));if(_27f.length==1){var tef=_271(_27f[0]);return function(root){var r=tef(root,new qlc());if(r){r.nozip=true;}return r;};}return function(root){return 
 _278(root,_27f);};};var nua=navigator.userAgent;var wk=&quot;WebKit/&quot;;var _280=(d.isWebKit&amp;&amp;(nua.indexOf(wk)&gt;0)&amp;&amp;(parseFloat(nua.split(wk)[1])&gt;528));var _281=d.isIE?&quot;commentStrip&quot;:&quot;nozip&quot;;var qsa=&quot;querySelectorAll&quot;;var _282=(!!_227()[qsa]&amp;&amp;(!d.isSafari||(d.isSafari&gt;3.1)||_280));var _283=/n\+\d|([^ ])?([&gt;~+])([^ =])?/g;var _284=function(_285,pre,ch,post){return ch?(pre?pre+&quot; &quot;:&quot;&quot;)+ch+(post?&quot; &quot;+post:&quot;&quot;):_285;};var _286=function(_287,_288){_287=_287.replace(_283,_284);if(_282){var _289=_27c[_287];if(_289&amp;&amp;!_288){return _289;}}var _28a=_27b[_287];if(_28a){return _28a;}var qcz=_287.charAt(0);var _28b=(-1==_287.indexOf(&quot; &quot;));if((_287.indexOf(&quot;#&quot;)&gt;=0)&amp;&amp;(_28b)){_288=true;}var _28c=(_282&amp;&amp;(!_288)&amp;&amp;(_22a.indexOf(qcz)==-1)&amp;&amp;(!d.isIE||(_287.indexOf(&quot;:&quot;)==-1))&amp;&amp;(!(_228&amp;&amp;(_287.indexOf(&quot;.
 &quot;)&gt;=0)))&amp;&amp;(_287.indexOf(&quot;:contains&quot;)==-1)&amp;&amp;(_287.indexOf(&quot;:checked&quot;)==-1)&amp;&amp;(_287.indexOf(&quot;|=&quot;)==-1));if(_28c){var tq=(_22a.indexOf(_287.charAt(_287.length-1))&gt;=0)?(_287+&quot; *&quot;):_287;return _27c[_287]=function(root){try{if(!((9==root.nodeType)||_28b)){throw &quot;&quot;;}var r=root[qsa](tq);r[_281]=true;return r;}catch(e){return _286(_287,true)(root);}};}else{var _28d=_287.split(/\s*,\s*/);return _27b[_287]=((_28d.length&lt;2)?_27d(_287):function(root){var _28e=0,ret=[],tp;while((tp=_28d[_28e++])){ret=ret.concat(_27d(tp)(root));}return ret;});}};var _28f=0;var _290=d.isIE?function(node){if(_22b){return (node.getAttribute(&quot;_uid&quot;)||node.setAttribute(&quot;_uid&quot;,++_28f)||_28f);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_28f));};var _26a=function(node,bag){if(!bag){return 1;}var id=_290(node);if(!bag[id]){return bag[id]=1;}return 0;};var _291=&quot;_zipIdx&quo
 t;;var _292=function(arr){if(arr&amp;&amp;arr.nozip){return (qlc._wrap)?qlc._wrap(arr):arr;}var ret=new qlc();if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length&lt;2){return ret;}_28f++;if(d.isIE&amp;&amp;_22b){var _293=_28f+&quot;&quot;;arr[0].setAttribute(_291,_293);for(var x=1,te;te=arr[x];x++){if(arr[x].getAttribute(_291)!=_293){ret.push(te);}te.setAttribute(_291,_293);}}else{if(d.isIE&amp;&amp;arr.commentStrip){try{for(var x=1,te;te=arr[x];x++){if(_243(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_291]=_28f;}for(var x=1,te;te=arr[x];x++){if(arr[x][_291]!=_28f){ret.push(te);}te[_291]=_28f;}}}return ret;};d.query=function(_294,root){qlc=d._NodeListCtor;if(!_294){return new qlc();}if(_294.constructor==qlc){return _294;}if(typeof _294!=&quot;string&quot;){return new qlc(_294);}if(typeof root==&quot;string&quot;){root=d.byId(root);if(!root){return new qlc();}}root=root||_227();var od=root.ownerDocument||root.documentElement;_22b=(root.cont
 entType&amp;&amp;root.contentType==&quot;application/xml&quot;)||(d.isOpera&amp;&amp;(root.doctype||od.toString()==&quot;[object XMLDocument]&quot;))||(!!od)&amp;&amp;(d.isIE?od.xml:(root.xmlVersion||od.xmlVersion));var r=_286(_294)(root);if(r&amp;&amp;r.nozip&amp;&amp;!qlc._wrap){return r;}return _292(r);};d.query.pseudos=_257;d._filterQueryResult=function(_295,_296,root){var _297=new d._NodeListCtor(),_298=_22d(_296),_299=(_298.length==1&amp;&amp;!/[^\w#\.]/.test(_296))?_25e(_298[0]):function(node){return dojo.query(_296,root).indexOf(node)!=-1;};for(var x=0,te;te=_295[x];x++){if(_299(te)){_297.push(te);}}return _297;};};var _29a=function(){acme={trim:function(str){str=str.replace(/^\s+/,&quot;&quot;);for(var i=str.length-1;i&gt;=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;},forEach:function(arr,_29b,_29c){if(!arr||!arr.length){return;}for(var i=0,l=arr.length;i&lt;l;++i){_29b.call(_29c||window,arr[i],i,arr);}},byId:function(id,doc){if(t
 ypeof id==&quot;string&quot;){return (doc||document).getElementById(id);}else{return id;}},doc:document,NodeList:Array};var n=navigator;var dua=n.userAgent;var dav=n.appVersion;var tv=parseFloat(dav);acme.isOpera=(dua.indexOf(&quot;Opera&quot;)&gt;=0)?tv:undefined;acme.isKhtml=(dav.indexOf(&quot;Konqueror&quot;)&gt;=0)?tv:undefined;acme.isWebKit=parseFloat(dua.split(&quot;WebKit/&quot;)[1])||undefined;acme.isChrome=parseFloat(dua.split(&quot;Chrome/&quot;)[1])||undefined;var _29d=Math.max(dav.indexOf(&quot;WebKit&quot;),dav.indexOf(&quot;Safari&quot;),0);if(_29d&amp;&amp;!acme.isChrome){acme.isSafari=parseFloat(dav.split(&quot;Version/&quot;)[1]);if(!acme.isSafari||parseFloat(dav.substr(_29d+7))&lt;=419.3){acme.isSafari=2;}}if(document.all&amp;&amp;!acme.isOpera){acme.isIE=parseFloat(dav.split(&quot;MSIE &quot;)[1])||undefined;}Array._wrap=function(arr){return arr;};return acme;};if(this[&quot;dojo&quot;]){dojo.provide(&quot;dojo._base.query&quot;);_226(this[&quot;queryPorta
 bility&quot;]||this[&quot;acme&quot;]||dojo);}else{_226(this[&quot;queryPortability&quot;]||this[&quot;acme&quot;]||_29a());}})();}if(!dojo._hasResource[&quot;dojo._base.xhr&quot;]){dojo._hasResource[&quot;dojo._base.xhr&quot;]=true;dojo.provide(&quot;dojo._base.xhr&quot;);(function(){var _29e=dojo,cfg=_29e.config;function _29f(obj,name,_2a0){if(_2a0===null){return;}var val=obj[name];if(typeof val==&quot;string&quot;){obj[name]=[val,_2a0];}else{if(_29e.isArray(val)){val.push(_2a0);}else{obj[name]=_2a0;}}};dojo.fieldToObject=function(_2a1){var ret=null;var item=_29e.byId(_2a1);if(item){var _2a2=item.name;var type=(item.type||&quot;&quot;).toLowerCase();if(_2a2&amp;&amp;type&amp;&amp;!item.disabled){if(type==&quot;radio&quot;||type==&quot;checkbox&quot;){if(item.checked){ret=item.value;}}else{if(item.multiple){ret=[];_29e.query(&quot;option&quot;,item).forEach(function(opt){if(opt.selected){ret.push(opt.value);}});}else{ret=item.value;}}}}return ret;};dojo.formToObject=functio
 n(_2a3){var ret={};var _2a4=&quot;file|submit|image|reset|button|&quot;;_29e.forEach(dojo.byId(_2a3).elements,function(item){var _2a5=item.name;var type=(item.type||&quot;&quot;).toLowerCase();if(_2a5&amp;&amp;type&amp;&amp;_2a4.indexOf(type)==-1&amp;&amp;!item.disabled){_29f(ret,_2a5,_29e.fieldToObject(item));if(type==&quot;image&quot;){ret[_2a5+&quot;.x&quot;]=ret[_2a5+&quot;.y&quot;]=ret[_2a5].x=ret[_2a5].y=0;}}});return ret;};dojo.objectToQuery=function(map){var enc=encodeURIComponent;var _2a6=[];var _2a7={};for(var name in map){var _2a8=map[name];if(_2a8!=_2a7[name]){var _2a9=enc(name)+&quot;=&quot;;if(_29e.isArray(_2a8)){for(var i=0;i&lt;_2a8.length;i++){_2a6.push(_2a9+enc(_2a8[i]));}}else{_2a6.push(_2a9+enc(_2a8));}}}return _2a6.join(&quot;&amp;&quot;);};dojo.formToQuery=function(_2aa){return _29e.objectToQuery(_29e.formToObject(_2aa));};dojo.formToJson=function(_2ab,_2ac){return _29e.toJson(_29e.formToObject(_2ab),_2ac);};dojo.queryToObject=function(str){var ret={};v
 ar qp=str.split(&quot;&amp;&quot;);var dec=decodeURIComponent;_29e.forEach(qp,function(item){if(item.length){var _2ad=item.split(&quot;=&quot;);var name=dec(_2ad.shift());var val=dec(_2ad.join(&quot;=&quot;));if(typeof ret[name]==&quot;string&quot;){ret[name]=[ret[name]];}if(_29e.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}});return ret;};dojo._blockAsync=false;var _2ae=_29e._contentHandlers=dojo.contentHandlers={text:function(xhr){return xhr.responseText;},json:function(xhr){return _29e.fromJson(xhr.responseText||null);},&quot;json-comment-filtered&quot;:function(xhr){if(!dojo.config.useCommentedJson){console.warn(&quot;Consider using the standard mimetype:application/json.&quot;+&quot; json-commenting can introduce security issues. To&quot;+&quot; decrease the chances of hijacking, use the standard the 'json' handler and&quot;+&quot; prefix your json with: {}&amp;&amp;\n&quot;+&quot;Use djConfig.useCommentedJson=true to turn off this message.&quot;);}var 
 _2af=xhr.responseText;var _2b0=_2af.indexOf(&quot;/*&quot;);var _2b1=_2af.lastIndexOf(&quot;*/&quot;);if(_2b0==-1||_2b1==-1){throw new Error(&quot;JSON was not comment filtered&quot;);}return _29e.fromJson(_2af.substring(_2b0+2,_2b1));},javascript:function(xhr){return _29e.eval(xhr.responseText);},xml:function(xhr){var _2b2=xhr.responseXML;if(_29e.isIE&amp;&amp;(!_2b2||!_2b2.documentElement)){var ms=function(n){return &quot;MSXML&quot;+n+&quot;.DOMDocument&quot;;};var dp=[&quot;Microsoft.XMLDOM&quot;,ms(6),ms(4),ms(3),ms(2)];_29e.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_2b2=dom;}catch(e){return false;}return true;});}return _2b2;},&quot;json-comment-optional&quot;:function(xhr){if(xhr.responseText&amp;&amp;/^[^{\[]*\/\*/.test(xhr.responseText)){return _2ae[&quot;json-comment-filtered&quot;](xhr);}else{return _2ae[&quot;json&quot;](xhr);}}};dojo._ioSetArgs=function(args,_2b3,_2b4,_2b5){var _2b6={args:args,url:args.url
 };var _2b7=null;if(args.form){var form=_29e.byId(args.form);var _2b8=form.getAttributeNode(&quot;action&quot;);_2b6.url=_2b6.url||(_2b8?_2b8.value:null);_2b7=_29e.formToObject(form);}var _2b9=[{}];if(_2b7){_2b9.push(_2b7);}if(args.content){_2b9.push(args.content);}if(args.preventCache){_2b9.push({&quot;dojo.preventCache&quot;:new Date().valueOf()});}_2b6.query=_29e.objectToQuery(_29e.mixin.apply(null,_2b9));_2b6.handleAs=args.handleAs||&quot;text&quot;;var d=new _29e.Deferred(_2b3);d.addCallbacks(_2b4,function(_2ba){return _2b5(_2ba,d);});var ld=args.load;if(ld&amp;&amp;_29e.isFunction(ld)){d.addCallback(function(_2bb){return ld.call(args,_2bb,_2b6);});}var err=args.error;if(err&amp;&amp;_29e.isFunction(err)){d.addErrback(function(_2bc){return err.call(args,_2bc,_2b6);});}var _2bd=args.handle;if(_2bd&amp;&amp;_29e.isFunction(_2bd)){d.addBoth(function(_2be){return _2bd.call(args,_2be,_2b6);});}if(cfg.ioPublish&amp;&amp;_29e.publish&amp;&amp;_2b6.args.ioPublish!==false){d.addC
 allbacks(function(res){_29e.publish(&quot;/dojo/io/load&quot;,[d,res]);return res;},function(res){_29e.publish(&quot;/dojo/io/error&quot;,[d,res]);return res;});d.addBoth(function(res){_29e.publish(&quot;/dojo/io/done&quot;,[d,res]);return res;});}d.ioArgs=_2b6;return d;};var _2bf=function(dfd){dfd.canceled=true;var xhr=dfd.ioArgs.xhr;var _2c0=typeof xhr.abort;if(_2c0==&quot;function&quot;||_2c0==&quot;object&quot;||_2c0==&quot;unknown&quot;){xhr.abort();}var err=dfd.ioArgs.error;if(!err){err=new Error(&quot;xhr cancelled&quot;);err.dojoType=&quot;cancel&quot;;}return err;};var _2c1=function(dfd){var ret=_2ae[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _2c2=function(_2c3,dfd){if(!dfd.ioArgs.args.failOk){console.error(_2c3);}return _2c3;};var _2c4=null;var _2c5=[];var _2c6=0;var _2c7=function(dfd){if(_2c6&lt;=0){_2c6=0;if(cfg.ioPublish&amp;&amp;_29e.publish&amp;&amp;(!dfd||dfd&amp;&amp;dfd.ioArgs.args.ioPublish!==false)){_29e.publish(&quot;/dojo
 /io/stop&quot;);}}};var _2c8=function(){var now=(new Date()).getTime();if(!_29e._blockAsync){for(var i=0,tif;i&lt;_2c5.length&amp;&amp;(tif=_2c5[i]);i++){var dfd=tif.dfd;var func=function(){if(!dfd||dfd.canceled||!tif.validCheck(dfd)){_2c5.splice(i--,1);_2c6-=1;}else{if(tif.ioCheck(dfd)){_2c5.splice(i--,1);tif.resHandle(dfd);_2c6-=1;}else{if(dfd.startTime){if(dfd.startTime+(dfd.ioArgs.args.timeout||0)&lt;now){_2c5.splice(i--,1);var err=new Error(&quot;timeout exceeded&quot;);err.dojoType=&quot;timeout&quot;;dfd.errback(err);dfd.cancel();_2c6-=1;}}}}};if(dojo.config.debugAtAllCosts){func.call(this);}else{try{func.call(this);}catch(e){dfd.errback(e);}}}}_2c7(dfd);if(!_2c5.length){clearInterval(_2c4);_2c4=null;return;}};dojo._ioCancelAll=function(){try{_29e.forEach(_2c5,function(i){try{i.dfd.cancel();}catch(e){}});}catch(e){}};if(_29e.isIE){_29e.addOnWindowUnload(_29e._ioCancelAll);}_29e._ioNotifyStart=function(dfd){if(cfg.ioPublish&amp;&amp;_29e.publish&amp;&amp;dfd.ioArgs.arg
 s.ioPublish!==false){if(!_2c6){_29e.publish(&quot;/dojo/io/start&quot;);}_2c6+=1;_29e.publish(&quot;/dojo/io/send&quot;,[dfd]);}};_29e._ioWatch=function(dfd,_2c9,_2ca,_2cb){var args=dfd.ioArgs.args;if(args.timeout){dfd.startTime=(new Date()).getTime();}_2c5.push({dfd:dfd,validCheck:_2c9,ioCheck:_2ca,resHandle:_2cb});if(!_2c4){_2c4=setInterval(_2c8,50);}if(args.sync){_2c8();}};var _2cc=&quot;application/x-www-form-urlencoded&quot;;var _2cd=function(dfd){return dfd.ioArgs.xhr.readyState;};var _2ce=function(dfd){return 4==dfd.ioArgs.xhr.readyState;};var _2cf=function(dfd){var xhr=dfd.ioArgs.xhr;if(_29e._isDocumentOk(xhr)){dfd.callback(dfd);}else{var err=new Error(&quot;Unable to load &quot;+dfd.ioArgs.url+&quot; status:&quot;+xhr.status);err.status=xhr.status;err.responseText=xhr.responseText;dfd.errback(err);}};dojo._ioAddQueryToUrl=function(_2d0){if(_2d0.query.length){_2d0.url+=(_2d0.url.indexOf(&quot;?&quot;)==-1?&quot;?&quot;:&quot;&amp;&quot;)+_2d0.query;_2d0.query=null;}}
 ;dojo.xhr=function(_2d1,args,_2d2){var dfd=_29e._ioSetArgs(args,_2bf,_2c1,_2c2);var _2d3=dfd.ioArgs;var xhr=_2d3.xhr=_29e._xhrObj(_2d3.args);if(!xhr){dfd.cancel();return dfd;}if(&quot;postData&quot; in args){_2d3.query=args.postData;}else{if(&quot;putData&quot; in args){_2d3.query=args.putData;}else{if(&quot;rawBody&quot; in args){_2d3.query=args.rawBody;}else{if((arguments.length&gt;2&amp;&amp;!_2d2)||&quot;POST|PUT&quot;.indexOf(_2d1.toUpperCase())==-1){_29e._ioAddQueryToUrl(_2d3);}}}}xhr.open(_2d1,_2d3.url,args.sync!==true,args.user||undefined,args.password||undefined);if(args.headers){for(var hdr in args.headers){if(hdr.toLowerCase()===&quot;content-type&quot;&amp;&amp;!args.contentType){args.contentType=args.headers[hdr];}else{if(args.headers[hdr]){xhr.setRequestHeader(hdr,args.headers[hdr]);}}}}xhr.setRequestHeader(&quot;Content-Type&quot;,args.contentType||_2cc);if(!args.headers||!(&quot;X-Requested-With&quot; in args.headers)){xhr.setRequestHeader(&quot;X-Requested-W
 ith&quot;,&quot;XMLHttpRequest&quot;);}_29e._ioNotifyStart(dfd);if(dojo.config.debugAtAllCosts){xhr.send(_2d3.query);}else{try{xhr.send(_2d3.query);}catch(e){_2d3.error=e;dfd.cancel();}}_29e._ioWatch(dfd,_2cd,_2ce,_2cf);xhr=null;return dfd;};dojo.xhrGet=function(args){return _29e.xhr(&quot;GET&quot;,args);};dojo.rawXhrPost=dojo.xhrPost=function(args){return _29e.xhr(&quot;POST&quot;,args,true);};dojo.rawXhrPut=dojo.xhrPut=function(args){return _29e.xhr(&quot;PUT&quot;,args,true);};dojo.xhrDelete=function(args){return _29e.xhr(&quot;DELETE&quot;,args);};})();}if(!dojo._hasResource[&quot;dojo._base.fx&quot;]){dojo._hasResource[&quot;dojo._base.fx&quot;]=true;dojo.provide(&quot;dojo._base.fx&quot;);(function(){var d=dojo;var _2d4=d._mixin;dojo._Line=function(_2d5,end){this.start=_2d5;this.end=end;};dojo._Line.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};dojo.Animation=function(args){_2d4(this,args);if(d.isArray(this.curve)){this.curve=new d._Line
 (this.curve[0],this.curve[1]);}};d._Animation=d.Animation;d.extend(dojo.Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _2d6=this._percent,_2d7=this.easing;return _2d7?_2d7(_2d6):_2d6;},_fire:function(evt,args){var a=args||[];if(this[evt]){if(d.config.debugAtAllCosts){this[evt].apply(this,a);}else{try{this[evt].apply(this,a);}catch(e){console.error(&quot;exception in animation handler for:&quot;,evt);console.error(e);}}}return this;},play:function(_2d8,_2d9){var _2da=this;if(_2da._delayTimer){_2da._clearTimer();}if(_2d9){_2da._stopTimer();_2da._active=_2da._paused=false;_2da._percent=0;}else{if(_2da._active&amp;&amp;!_2da._paused){return _2da;}}_2da._fire(&quot;beforeBegin&quot;,[_2da.node]);var de=_2d8||_2da.delay,_2db=dojo.hitch(_2da,&quot;_play&quot;,_2d9);if(de&gt;0){_2da._delayTimer=setTimeout(_2db,de);return _2da;}_2db();return _2da;},_play:function(_2dc){var _2dd=this;if(_2dd._delayTimer){_2dd._clearTimer();}_2dd._startT
 ime=new Date().valueOf();if(_2dd._paused){_2dd._startTime-=_2dd.duration*_2dd._percent;}_2dd._active=true;_2dd._paused=false;var _2de=_2dd.curve.getValue(_2dd._getStep());if(!_2dd._percent){if(!_2dd._startRepeatCount){_2dd._startRepeatCount=_2dd.repeat;}_2dd._fire(&quot;onBegin&quot;,[_2de]);}_2dd._fire(&quot;onPlay&quot;,[_2de]);_2dd._cycle();return _2dd;},pause:function(){var _2df=this;if(_2df._delayTimer){_2df._clearTimer();}_2df._stopTimer();if(!_2df._active){return _2df;}_2df._paused=true;_2df._fire(&quot;onPause&quot;,[_2df.curve.getValue(_2df._getStep())]);return _2df;},gotoPercent:function(_2e0,_2e1){var _2e2=this;_2e2._stopTimer();_2e2._active=_2e2._paused=true;_2e2._percent=_2e0;if(_2e1){_2e2.play();}return _2e2;},stop:function(_2e3){var _2e4=this;if(_2e4._delayTimer){_2e4._clearTimer();}if(!_2e4._timer){return _2e4;}_2e4._stopTimer();if(_2e3){_2e4._percent=1;}_2e4._fire(&quot;onStop&quot;,[_2e4.curve.getValue(_2e4._getStep())]);_2e4._active=_2e4._paused=false;retu
 rn _2e4;},status:function(){if(this._active){return this._paused?&quot;paused&quot;:&quot;playing&quot;;}return &quot;stopped&quot;;},_cycle:function(){var _2e5=this;if(_2e5._active){var curr=new Date().valueOf();var step=(curr-_2e5._startTime)/(_2e5.duration);if(step&gt;=1){step=1;}_2e5._percent=step;if(_2e5.easing){step=_2e5.easing(step);}_2e5._fire(&quot;onAnimate&quot;,[_2e5.curve.getValue(step)]);if(_2e5._percent&lt;1){_2e5._startTimer();}else{_2e5._active=false;if(_2e5.repeat&gt;0){_2e5.repeat--;_2e5.play(null,true);}else{if(_2e5.repeat==-1){_2e5.play(null,true);}else{if(_2e5._startRepeatCount){_2e5.repeat=_2e5._startRepeatCount;_2e5._startRepeatCount=0;}}}_2e5._percent=0;_2e5._fire(&quot;onEnd&quot;,[_2e5.node]);!_2e5.repeat&amp;&amp;_2e5._stopTimer();}}return _2e5;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_2e6=null,_2e7={run:function(){}};d.extend(d.Animation,{_startTimer:function(){if(!this._timer){this._timer=d.co
 nnect(_2e7,&quot;run&quot;,this,&quot;_cycle&quot;);ctr++;}if(!_2e6){_2e6=setInterval(d.hitch(_2e7,&quot;run&quot;),this.rate);}},_stopTimer:function(){if(this._timer){d.disconnect(this._timer);this._timer=null;ctr--;}if(ctr&lt;=0){clearInterval(_2e6);_2e6=null;ctr=0;}}});var _2e8=d.isIE?function(node){var ns=node.style;if(!ns.width.length&amp;&amp;d.style(node,&quot;width&quot;)==&quot;auto&quot;){ns.width=&quot;auto&quot;;}}:function(){};dojo._fade=function(args){args.node=d.byId(args.node);var _2e9=_2d4({properties:{}},args),_2ea=(_2e9.properties.opacity={});_2ea.start=!(&quot;start&quot; in _2e9)?function(){return +d.style(_2e9.node,&quot;opacity&quot;)||0;}:_2e9.start;_2ea.end=_2e9.end;var anim=d.animateProperty(_2e9);d.connect(anim,&quot;beforeBegin&quot;,d.partial(_2e8,_2e9.node));return anim;};dojo.fadeIn=function(args){return d._fade(_2d4({end:1},args));};dojo.fadeOut=function(args){return d._fade(_2d4({end:0},args));};dojo._defaultEasing=function(n){return 0.5+((Ma
 th.sin((n+1.5)*Math.PI))/2);};var _2eb=function(_2ec){this._properties=_2ec;for(var p in _2ec){var prop=_2ec[p];if(prop.start instanceof d.Color){prop.tempColor=new d.Color();}}};_2eb.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_2ed=prop.start;if(_2ed instanceof d.Color){ret[p]=d.blendColors(_2ed,prop.end,r,prop.tempColor).toCss();}else{if(!d.isArray(_2ed)){ret[p]=((prop.end-_2ed)*r)+_2ed+(p!=&quot;opacity&quot;?prop.units||&quot;px&quot;:0);}}}return ret;};dojo.animateProperty=function(args){var n=args.node=d.byId(args.node);if(!args.easing){args.easing=d._defaultEasing;}var anim=new d.Animation(args);d.connect(anim,&quot;beforeBegin&quot;,anim,function(){var pm={};for(var p in this.properties){if(p==&quot;width&quot;||p==&quot;height&quot;){this.node.display=&quot;block&quot;;}var prop=this.properties[p];if(d.isFunction(prop)){prop=prop(n);}prop=pm[p]=_2d4({},(d.isObject(prop)?prop:{end:prop}));if(d.isFunction(prop.
 start)){prop.start=prop.start(n);}if(d.isFunction(prop.end)){prop.end=prop.end(n);}var _2ee=(p.toLowerCase().indexOf(&quot;color&quot;)&gt;=0);function _2ef(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return v;}v=d.style(node,p);return (p==&quot;opacity&quot;)?+v:(_2ee?v:parseFloat(v));};if(!(&quot;end&quot; in prop)){prop.end=_2ef(n,p);}else{if(!(&quot;start&quot; in prop)){prop.start=_2ef(n,p);}}if(_2ee){prop.start=new d.Color(prop.start);prop.end=new d.Color(prop.end);}else{prop.start=(p==&quot;opacity&quot;)?+prop.start:parseFloat(prop.start);}}this.curve=new _2eb(pm);});d.connect(anim,&quot;onAnimate&quot;,d.hitch(d,&quot;style&quot;,anim.node));return anim;};dojo.anim=function(node,_2f0,_2f1,_2f2,_2f3,_2f4){return d.animateProperty({node:node,duration:_2f1||d.Animation.prototype.duration,properties:_2f0,easing:_2f2,onEnd:_2f3}).play(_2f4||0);};})();}if(!dojo._hasResource[&quot;dojo.i18n&quot;]){dojo._hasResource[&quot;dojo.i18n&
 quot;]=true;dojo.provide(&quot;dojo.i18n&quot;);dojo.getObject(&quot;i18n&quot;,true,dojo);dojo.i18n.getLocalization=dojo.i18n.getLocalization||function(_2f5,_2f6,_2f7){_2f7=dojo.i18n.normalizeLocale(_2f7);var _2f8=_2f7.split(&quot;-&quot;);var _2f9=[_2f5,&quot;nls&quot;,_2f6].join(&quot;.&quot;);var _2fa=dojo._loadedModules[_2f9];if(_2fa){var _2fb;for(var i=_2f8.length;i&gt;0;i--){var loc=_2f8.slice(0,i).join(&quot;_&quot;);if(_2fa[loc]){_2fb=_2fa[loc];break;}}if(!_2fb){_2fb=_2fa.ROOT;}if(_2fb){var _2fc=function(){};_2fc.prototype=_2fb;return new _2fc();}}throw new Error(&quot;Bundle not found: &quot;+_2f6+&quot; in &quot;+_2f5+&quot; , locale=&quot;+_2f7);};dojo.i18n.normalizeLocale=function(_2fd){var _2fe=_2fd?_2fd.toLowerCase():dojo.locale;if(_2fe==&quot;root&quot;){_2fe=&quot;ROOT&quot;;}return _2fe;};dojo.i18n._requireLocalization=function(_2ff,_300,_301,_302){var _303=dojo.i18n.normalizeLocale(_301);var _304=[_2ff,&quot;nls&quot;,_300].join(&quot;.&quot;);var _305=&qu
 ot;&quot;;if(_302){var _306=_302.split(&quot;,&quot;);for(var i=0;i&lt;_306.length;i++){if(_303[&quot;indexOf&quot;](_306[i])==0){if(_306[i].length&gt;_305.length){_305=_306[i];}}}if(!_305){_305=&quot;ROOT&quot;;}}var _307=_302?_305:_303;var _308=dojo._loadedModules[_304];var _309=null;if(_308){if(dojo.config.localizationComplete&amp;&amp;_308._built){return;}var _30a=_307.replace(/-/g,&quot;_&quot;);var _30b=_304+&quot;.&quot;+_30a;_309=dojo._loadedModules[_30b];}if(!_309){_308=dojo[&quot;provide&quot;](_304);var syms=dojo._getModuleSymbols(_2ff);var _30c=syms.concat(&quot;nls&quot;).join(&quot;/&quot;);var _30d;dojo.i18n._searchLocalePath(_307,_302,function(loc){var _30e=loc.replace(/-/g,&quot;_&quot;);var _30f=_304+&quot;.&quot;+_30e;var _310=false;if(!dojo._loadedModules[_30f]){dojo[&quot;provide&quot;](_30f);var _311=[_30c];if(loc!=&quot;ROOT&quot;){_311.push(loc);}_311.push(_300);var _312=_311.join(&quot;/&quot;)+&quot;.js&quot;;_310=dojo._loadPath(_312,null,function(h
 ash){hash=hash.root||hash;var _313=function(){};_313.prototype=_30d;_308[_30e]=new _313();for(var j in hash){_308[_30e][j]=hash[j];}});}else{_310=true;}if(_310&amp;&amp;_308[_30e]){_30d=_308[_30e];}else{_308[_30e]=_30d;}if(_302){return true;}});}if(_302&amp;&amp;_303!=_305){_308[_303.replace(/-/g,&quot;_&quot;)]=_308[_305.replace(/-/g,&quot;_&quot;)];}};(function(){var _314=dojo.config.extraLocale;if(_314){if(!_314 instanceof Array){_314=[_314];}var req=dojo.i18n._requireLocalization;dojo.i18n._requireLocalization=function(m,b,_315,_316){req(m,b,_315,_316);if(_315){return;}for(var i=0;i&lt;_314.length;i++){req(m,b,_314[i],_316);}};}})();dojo.i18n._searchLocalePath=function(_317,down,_318){_317=dojo.i18n.normalizeLocale(_317);var _319=_317.split(&quot;-&quot;);var _31a=[];for(var i=_319.length;i&gt;0;i--){_31a.push(_319.slice(0,i).join(&quot;-&quot;));}_31a.push(false);if(down){_31a.reverse();}for(var j=_31a.length-1;j&gt;=0;j--){var loc=_31a[j]||&quot;ROOT&quot;;var stop=_31
 8(loc);if(stop){break;}}};dojo.i18n._preloadLocalizations=function(_31b,_31c){function _31d(_31e){_31e=dojo.i18n.normalizeLocale(_31e);dojo.i18n._searchLocalePath(_31e,true,function(loc){for(var i=0;i&lt;_31c.length;i++){if(_31c[i]==loc){dojo[&quot;require&quot;](_31b+&quot;_&quot;+loc);return true;}}return false;});};_31d();var _31f=dojo.config.extraLocale||[];for(var i=0;i&lt;_31f.length;i++){_31d(_31f[i]);}};}if(!dojo._hasResource[&quot;dojo._base.browser&quot;]){dojo._hasResource[&quot;dojo._base.browser&quot;]=true;dojo.provide(&quot;dojo._base.browser&quot;);dojo.forEach(dojo.config.require,function(i){dojo[&quot;require&quot;](i);});}if(!dojo._hasResource[&quot;dojo._base&quot;]){dojo._hasResource[&quot;dojo._base&quot;]=true;dojo.provide(&quot;dojo._base&quot;);}if(dojo.isBrowser&amp;&amp;(document.readyState===&quot;complete&quot;||dojo.config.afterOnLoad)){window.setTimeout(dojo._loadInit,100);}})();
+diff --git a/web/ajax/libs/ext-core/3.1.0/ext-core.js b/web/ajax/libs/ext-core/3.1.0/ext-core.js
+new file mode 100644
+index 0000000..9fc6727
+--- /dev/null
++++ b/web/ajax/libs/ext-core/3.1.0/ext-core.js
+@@ -0,0 +1,8 @@
++/*
++ * Ext Core Library 3.0
++ * http://extjs.com/
++ * Copyright(c) 2006-2009, Ext JS, LLC.
++ * 
++ * MIT Licensed - http://extjs.com/license/mit.txt
++ */
++window.undefined=window.undefined;Ext={version:&quot;3.1.0&quot;};Ext.apply=function(d,e,b){if(b){Ext.apply(d,b)}if(d&amp;&amp;e&amp;&amp;typeof e==&quot;object&quot;){for(var a in e){d[a]=e[a]}}return d};(function(){var h=0,t=Object.prototype.toString,u=navigator.userAgent.toLowerCase(),z=function(e){return e.test(u)},j=document,m=j.compatMode==&quot;CSS1Compat&quot;,B=z(/opera/),i=z(/chrome/),v=z(/webkit/),y=!i&amp;&amp;z(/safari/),g=y&amp;&amp;z(/applewebkit\/4/),b=y&amp;&amp;z(/version\/3/),C=y&amp;&amp;z(/version\/4/),s=!B&amp;&amp;z(/msie/),q=s&amp;&amp;z(/msie 7/),p=s&amp;&amp;z(/msie 8/),r=s&amp;&amp;!q&amp;&amp;!p,o=!v&amp;&amp;z(/gecko/),d=o&amp;&amp;z(/rv:1\.8/),a=o&amp;&amp;z(/rv:1\.9/),w=s&amp;&amp;!m,A=z(/windows|win32/),l=z(/macintosh|mac os x/),k=z(/adobeair/),n=z(/linux/),c=/^https/i.test(window.location.protocol);if(r){try{j.execCommand(&quot;BackgroundImageCache&quot;,false,true)}catch(x){}}Ext.apply(Ext,{SSL_SECURE_URL:c&amp;&amp;s?'javascript:&quot;&quo
 t;':&quot;about:blank&quot;,isStrict:m,isSecure:c,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,enableNestedListenerRemoval:false,USE_NATIVE_JSON:false,applyIf:function(D,E){if(D){for(var e in E){if(!Ext.isDefined(D[e])){D[e]=E[e]}}}return D},id:function(e,D){return(e=Ext.getDom(e)||{}).id=e.id||(D||&quot;ext-gen&quot;)+(++h)},extend:function(){var D=function(F){for(var E in F){this[E]=F[E]}};var e=Object.prototype.constructor;return function(K,H,J){if(Ext.isObject(H)){J=H;H=K;K=J.constructor!=e?J.constructor:function(){H.apply(this,arguments)}}var G=function(){},I,E=H.prototype;G.prototype=E;I=K.prototype=new G();I.constructor=K;K.superclass=E;if(E.constructor==e){E.constructor=H}K.override=function(F){Ext.override(K,F)};I.superclass=I.supr=(function(){return E});I.override=D;Ext.override(K,J);K.extend=function(F){return Ext.extend(K,F)};return K}}(),override:function(e,E){if(E){var D=e.prototype;Ext.apply(D,E);if(Ext.isIE&amp;&amp;E.hasOwnPropert
 y(&quot;toString&quot;)){D.toString=E.toString}}},namespace:function(){var D,e;Ext.each(arguments,function(E){e=E.split(&quot;.&quot;);D=window[e[0]]=window[e[0]]||{};Ext.each(e.slice(1),function(F){D=D[F]=D[F]||{}})});return D},urlEncode:function(H,G){var E,D=[],F=encodeURIComponent;Ext.iterate(H,function(e,I){E=Ext.isEmpty(I);Ext.each(E?e:I,function(J){D.push(&quot;&amp;&quot;,F(e),&quot;=&quot;,(!Ext.isEmpty(J)&amp;&amp;(J!=e||!E))?(Ext.isDate(J)?Ext.encode(J).replace(/&quot;/g,&quot;&quot;):F(J)):&quot;&quot;)})});if(!G){D.shift();G=&quot;&quot;}return G+D.join(&quot;&quot;)},urlDecode:function(E,D){if(Ext.isEmpty(E)){return{}}var H={},G=E.split(&quot;&amp;&quot;),I=decodeURIComponent,e,F;Ext.each(G,function(J){J=J.split(&quot;=&quot;);e=I(J[0]);F=I(J[1]);H[e]=D||!H[e]?F:[].concat(H[e]).concat(F)});return H},urlAppend:function(e,D){if(!Ext.isEmpty(D)){return e+(e.indexOf(&quot;?&quot;)===-1?&quot;?&quot;:&quot;&amp;&quot;)+D}return e},toArray:function(){return s?function
 (E,H,F,G){G=[];for(var D=0,e=E.length;D&lt;e;D++){G.push(E[D])}return G.slice(H||0,F||G.length)}:function(e,E,D){return Array.prototype.slice.call(e,E||0,D||e.length)}}(),isIterable:function(e){if(Ext.isArray(e)||e.callee){return true}if(/NodeList|HTMLCollection/.test(t.call(e))){return true}return((typeof e.nextNode!=&quot;undefined&quot;||e.item)&amp;&amp;Ext.isNumber(e.length))},each:function(G,F,E){if(Ext.isEmpty(G,true)){return}if(!Ext.isIterable(G)||Ext.isPrimitive(G)){G=[G]}for(var D=0,e=G.length;D&lt;e;D++){if(F.call(E||G[D],G[D],D,G)===false){return D}}},iterate:function(E,D,e){if(Ext.isEmpty(E)){return}if(Ext.isIterable(E)){Ext.each(E,D,e);return}else{if(Ext.isObject(E)){for(var F in E){if(E.hasOwnProperty(F)){if(D.call(e||E,F,E[F],E)===false){return}}}}}},getDom:function(e){if(!e||!j){return null}return e.dom?e.dom:(Ext.isString(e)?j.getElementById(e):e)},getBody:function(){return Ext.get(j.body||j.documentElement)},removeNode:s&amp;&amp;!p?function(){var e;return
  function(D){if(D&amp;&amp;D.tagName!=&quot;BODY&quot;){(Ext.enableNestedListenerRemoval)?Ext.EventManager.purgeElement(D,true):Ext.EventManager.removeAll(D);e=e||j.createElement(&quot;div&quot;);e.appendChild(D);e.innerHTML=&quot;&quot;;delete Ext.elCache[D.id]}}}():function(e){if(e&amp;&amp;e.parentNode&amp;&amp;e.tagName!=&quot;BODY&quot;){(Ext.enableNestedListenerRemoval)?Ext.EventManager.purgeElement(e,true):Ext.EventManager.removeAll(e);e.parentNode.removeChild(e);delete Ext.elCache[e.id]}},isEmpty:function(D,e){return D===null||D===undefined||((Ext.isArray(D)&amp;&amp;!D.length))||(!e?D===&quot;&quot;:false)},isArray:function(e){return t.apply(e)===&quot;[object Array]&quot;},isDate:function(e){return t.apply(e)===&quot;[object Date]&quot;},isObject:function(e){return !!e&amp;&amp;Object.prototype.toString.call(e)===&quot;[object Object]&quot;},isPrimitive:function(e){return Ext.isString(e)||Ext.isNumber(e)||Ext.isBoolean(e)},isFunction:function(e){return t.apply(e)==
 =&quot;[object Function]&quot;},isNumber:function(e){return typeof e===&quot;number&quot;&amp;&amp;isFinite(e)},isString:function(e){return typeof e===&quot;string&quot;},isBoolean:function(e){return typeof e===&quot;boolean&quot;},isElement:function(e){return !!e&amp;&amp;e.tagName},isDefined:function(e){return typeof e!==&quot;undefined&quot;},isOpera:B,isWebKit:v,isChrome:i,isSafari:y,isSafari3:b,isSafari4:C,isSafari2:g,isIE:s,isIE6:r,isIE7:q,isIE8:p,isGecko:o,isGecko2:d,isGecko3:a,isBorderBox:w,isLinux:n,isWindows:A,isMac:l,isAir:k});Ext.ns=Ext.namespace})();Ext.ns(&quot;Ext.util&quot;,&quot;Ext.lib&quot;,&quot;Ext.data&quot;);Ext.elCache={};Ext.apply(Function.prototype,{createInterceptor:function(b,a){var c=this;return !Ext.isFunction(b)?this:function(){var e=this,d=arguments;b.target=e;b.method=c;return(b.apply(a||e||window,d)!==false)?c.apply(e||window,d):null}},createCallback:function(){var a=arguments,b=this;return function(){return b.apply(window,a)}},createDelegat
 e:function(c,b,a){var d=this;return function(){var g=b||arguments;if(a===true){g=Array.prototype.slice.call(arguments,0);g=g.concat(b)}else{if(Ext.isNumber(a)){g=Array.prototype.slice.call(arguments,0);var e=[a,0].concat(b);Array.prototype.splice.apply(g,e)}}return d.apply(c||window,g)}},defer:function(c,e,b,a){var d=this.createDelegate(e,b,a);if(c&gt;0){return setTimeout(d,c)}d();return 0}});Ext.applyIf(String,{format:function(b){var a=Ext.toArray(arguments,1);return b.replace(/\{(\d+)\}/g,function(c,d){return a[d]})}});Ext.applyIf(Array.prototype,{indexOf:function(b,c){var a=this.length;c=c||0;c+=(c&lt;0)?a:0;for(;c&lt;a;++c){if(this[c]===b){return c}}return -1},remove:function(b){var a=this.indexOf(b);if(a!=-1){this.splice(a,1)}return this}});Ext.util.TaskRunner=function(e){e=e||10;var g=[],a=[],b=0,h=false,d=function(){h=false;clearInterval(b);b=0},i=function(){if(!h){h=true;b=setInterval(j,e)}},c=function(k){a.push(k);if(k.onStop){k.onStop.apply(k.scope||k)}},j=function
 (){var m=a.length,o=new Date().getTime();if(m&gt;0){for(var q=0;q&lt;m;q++){g.remove(a[q])}a=[];if(g.length&lt;1){d();return}}for(var q=0,p,l,n,k=g.length;q&lt;k;++q){p=g[q];l=o-p.taskRunTime;if(p.interval&lt;=l){n=p.run.apply(p.scope||p,p.args||[++p.taskRunCount]);p.taskRunTime=o;if(n===false||p.taskRunCount===p.repeat){c(p);return}}if(p.duration&amp;&amp;p.duration&lt;=(o-p.taskStartTime)){c(p)}}};this.start=function(k){g.push(k);k.taskStartTime=new Date().getTime();k.taskRunTime=0;k.taskRunCount=0;i();return k};this.stop=function(k){c(k);return k};this.stopAll=function(){d();for(var l=0,k=g.length;l&lt;k;l++){if(g[l].onStop){g[l].onStop()}}g=[];a=[]}};Ext.TaskMgr=new Ext.util.TaskRunner();Ext.util.DelayedTask=function(d,c,a){var e=this,g,b=function(){clearInterval(g);g=null;d.apply(c,a||[])};e.delay=function(i,k,j,h){e.cancel();d=k||d;c=j||c;a=h||a;g=setInterval(b,i)};e.cancel=function(){if(g){clearInterval(g);g=null}}};(function(){var b;function c(d){if(!b){b=new Ext.Ele
 ment.Flyweight()}b.dom=d;return b}(function(){var h=document,e=h.compatMode==&quot;CSS1Compat&quot;,g=Math.max,d=Math.round,i=parseInt;Ext.lib.Dom={isAncestor:function(k,l){var j=false;k=Ext.getDom(k);l=Ext.getDom(l);if(k&amp;&amp;l){if(k.contains){return k.contains(l)}else{if(k.compareDocumentPosition){return !!(k.compareDocumentPosition(l)&amp;16)}else{while(l=l.parentNode){j=l==k||j}}}}return j},getViewWidth:function(j){return j?this.getDocumentWidth():this.getViewportWidth()},getViewHeight:function(j){return j?this.getDocumentHeight():this.getViewportHeight()},getDocumentHeight:function(){return g(!e?h.body.scrollHeight:h.documentElement.scrollHeight,this.getViewportHeight())},getDocumentWidth:function(){return g(!e?h.body.scrollWidth:h.documentElement.scrollWidth,this.getViewportWidth())},getViewportHeight:function(){return Ext.isIE?(Ext.isStrict?h.documentElement.clientHeight:h.body.clientHeight):self.innerHeight},getViewportWidth:function(){return !Ext.isStrict&amp;&a
 mp;!Ext.isOpera?h.body.clientWidth:Ext.isIE?h.documentElement.clientWidth:self.innerWidth},getY:function(j){return this.getXY(j)[1]},getX:function(j){return this.getXY(j)[0]},getXY:function(l){var k,r,t,w,m,n,v=0,s=0,u,j,o=(h.body||h.documentElement),q=[0,0];l=Ext.getDom(l);if(l!=o){if(l.getBoundingClientRect){t=l.getBoundingClientRect();u=c(document).getScroll();q=[d(t.left+u.left),d(t.top+u.top)]}else{k=l;j=c(l).isStyle(&quot;position&quot;,&quot;absolute&quot;);while(k){r=c(k);v+=k.offsetLeft;s+=k.offsetTop;j=j||r.isStyle(&quot;position&quot;,&quot;absolute&quot;);if(Ext.isGecko){s+=w=i(r.getStyle(&quot;borderTopWidth&quot;),10)||0;v+=m=i(r.getStyle(&quot;borderLeftWidth&quot;),10)||0;if(k!=l&amp;&amp;!r.isStyle(&quot;overflow&quot;,&quot;visible&quot;)){v+=m;s+=w}}k=k.offsetParent}if(Ext.isSafari&amp;&amp;j){v-=o.offsetLeft;s-=o.offsetTop}if(Ext.isGecko&amp;&amp;!j){n=c(o);v+=i(n.getStyle(&quot;borderLeftWidth&quot;),10)||0;s+=i(n.getStyle(&quot;borderTopWidth&quot;),10)
 ||0}k=l.parentNode;while(k&amp;&amp;k!=o){if(!Ext.isOpera||(k.tagName!=&quot;TR&quot;&amp;&amp;!c(k).isStyle(&quot;display&quot;,&quot;inline&quot;))){v-=k.scrollLeft;s-=k.scrollTop}k=k.parentNode}q=[v,s]}}return q},setXY:function(k,l){(k=Ext.fly(k,&quot;_setXY&quot;)).position();var m=k.translatePoints(l),j=k.dom.style,n;for(n in m){if(!isNaN(m[n])){j[n]=m[n]+&quot;px&quot;}}},setX:function(k,j){this.setXY(k,[j,false])},setY:function(j,k){this.setXY(j,[false,k])}}})();Ext.lib.Event=function(){var x=false,h={},B=0,q=[],d,D=false,l=window,H=document,m=200,t=20,C=0,s=0,j=1,n=2,u=2,y=3,v=&quot;scrollLeft&quot;,r=&quot;scrollTop&quot;,g=&quot;unload&quot;,A=&quot;mouseover&quot;,G=&quot;mouseout&quot;,e=function(){var I;if(l.addEventListener){I=function(M,K,L,J){if(K==&quot;mouseenter&quot;){L=L.createInterceptor(p);M.addEventListener(A,L,(J))}else{if(K==&quot;mouseleave&quot;){L=L.createInterceptor(p);M.addEventListener(G,L,(J))}else{M.addEventListener(K,L,(J))}}return L}}else{
 if(l.attachEvent){I=function(M,K,L,J){M.attachEvent(&quot;on&quot;+K,L);return L}}else{I=function(){}}}return I}(),i=function(){var I;if(l.removeEventListener){I=function(M,K,L,J){if(K==&quot;mouseenter&quot;){K=A}else{if(K==&quot;mouseleave&quot;){K=G}}M.removeEventListener(K,L,(J))}}else{if(l.detachEvent){I=function(L,J,K){L.detachEvent(&quot;on&quot;+J,K)}}else{I=function(){}}}return I}();function p(I){return !w(I.currentTarget,z.getRelatedTarget(I))}function w(I,J){if(I&amp;&amp;I.firstChild){while(J){if(J===I){return true}J=J.parentNode;if(J&amp;&amp;(J.nodeType!=1)){J=null}}}return false}function E(){var K=false,O=[],M,L,I,J,N=!x||(B&gt;0);if(!D){D=true;for(L=0,I=q.length;L&lt;I;L++){J=q[L];if(J&amp;&amp;(M=H.getElementById(J.id))){if(!J.checkReady||x||M.nextSibling||(H&amp;&amp;H.body)){M=J.override?(J.override===true?J.obj:J.override):M;J.fn.call(M,J.obj);q.remove(J)}else{O.push(J)}}}B=(O.length===0)?0:B-1;if(N){o()}else{clearInterval(d);d=null}K=!(D=false)}return K}
 function o(){if(!d){var I=function(){E()};d=setInterval(I,t)}}function F(){var I=H.documentElement,J=H.body;if(I&amp;&amp;(I[r]||I[v])){return[I[v],I[r]]}else{if(J){return[J[v],J[r]]}else{return[0,0]}}}function k(I,J){I=I.browserEvent||I;var K=I[&quot;page&quot;+J];if(!K&amp;&amp;K!==0){K=I[&quot;client&quot;+J]||0;if(Ext.isIE){K+=F()[J==&quot;X&quot;?0:1]}}return K}var z={extAdapter:true,onAvailable:function(K,I,L,J){q.push({id:K,fn:I,obj:L,override:J,checkReady:false});B=m;o()},addListener:function(K,I,J){K=Ext.getDom(K);if(K&amp;&amp;J){if(I==g){if(h[K.id]===undefined){h[K.id]=[]}h[K.id].push([I,J]);return J}return e(K,I,J,false)}return false},removeListener:function(O,K,N){O=Ext.getDom(O);var M,J,I,L;if(O&amp;&amp;N){if(K==g){if((L=h[O.id])!==undefined){for(M=0,J=L.length;M&lt;J;M++){if((I=L[M])&amp;&amp;I[s]==K&amp;&amp;I[j]==N){h[id].splice(M,1)}}}return}i(O,K,N,false)}},getTarget:function(I){I=I.browserEvent||I;return this.resolveTextNode(I.target||I.srcElement)},reso
 lveTextNode:Ext.isGecko?function(J){if(!J){return}var I=HTMLElement.prototype.toString.call(J);if(I==&quot;[xpconnect wrapped native prototype]&quot;||I==&quot;[object XULElement]&quot;){return}return J.nodeType==3?J.parentNode:J}:function(I){return I&amp;&amp;I.nodeType==3?I.parentNode:I},getRelatedTarget:function(I){I=I.browserEvent||I;return this.resolveTextNode(I.relatedTarget||(I.type==G?I.toElement:I.type==A?I.fromElement:null))},getPageX:function(I){return k(I,&quot;X&quot;)},getPageY:function(I){return k(I,&quot;Y&quot;)},getXY:function(I){return[this.getPageX(I),this.getPageY(I)]},stopEvent:function(I){this.stopPropagation(I);this.preventDefault(I)},stopPropagation:function(I){I=I.browserEvent||I;if(I.stopPropagation){I.stopPropagation()}else{I.cancelBubble=true}},preventDefault:function(I){I=I.browserEvent||I;if(I.preventDefault){I.preventDefault()}else{I.returnValue=false}},getEvent:function(I){I=I||l.event;if(!I){var J=this.getEvent.caller;while(J){I=J.arguments[
 0];if(I&amp;&amp;Event==I.constructor){break}J=J.caller}}return I},getCharCode:function(I){I=I.browserEvent||I;return I.charCode||I.keyCode||0},getListeners:function(J,I){Ext.EventManager.getListeners(J,I)},purgeElement:function(J,K,I){Ext.EventManager.purgeElement(J,K,I)},_load:function(J){x=true;var I=Ext.lib.Event;if(Ext.isIE&amp;&amp;J!==true){i(l,&quot;load&quot;,arguments.callee)}},_unload:function(P){var J=Ext.lib.Event,M,L,K,S,Q,I,O,N,T;for(I in h){Q=h[I];for(M=0,O=Q.length;M&lt;O;M++){S=Q[M];if(S){try{T=S[y]?(S[y]===true?S[u]:S[y]):l;S[j].call(T,J.getEvent(P),S[u])}catch(R){}}}}h=null;Ext.EventManager._unload();i(l,g,J._unload)}};z.on=z.addListener;z.un=z.removeListener;if(H&amp;&amp;H.body){z._load(true)}else{e(l,&quot;load&quot;,z._load)}e(l,g,z._unload);E();return z}();Ext.lib.Ajax=function(){var h=[&quot;MSXML2.XMLHTTP.3.0&quot;,&quot;MSXML2.XMLHTTP&quot;,&quot;Microsoft.XMLHTTP&quot;],d=&quot;Content-Type&quot;;function i(t){var s=t.conn,u;function r(v,w){for(u
  in w){if(w.hasOwnProperty(u)){v.setRequestHeader(u,w[u])}}}if(l.defaultHeaders){r(s,l.defaultHeaders)}if(l.headers){r(s,l.headers);delete l.headers}}function e(u,t,s,r){return{tId:u,status:s?-1:0,statusText:s?&quot;transaction aborted&quot;:&quot;communication failure&quot;,isAbort:s,isTimeout:r,argument:t}}function k(r,s){(l.headers=l.headers||{})[r]=s}function p(A,y){var u={},w,x=A.conn,r,v;try{w=A.conn.getAllResponseHeaders();Ext.each(w.replace(/\r\n/g,&quot;\n&quot;).split(&quot;\n&quot;),function(s){r=s.indexOf(&quot;:&quot;);if(r&gt;=0){v=s.substr(0,r).toLowerCase();if(s.charAt(r+1)==&quot; &quot;){++r}u[v]=s.substr(r+1)}})}catch(z){}return{tId:A.tId,status:x.status,statusText:x.statusText,getResponseHeader:function(s){return u[s.toLowerCase()]},getAllResponseHeaders:function(){return w},responseText:x.responseText,responseXML:x.responseXML,argument:y}}function o(r){r.conn=null;r=null}function g(w,x,s,r){if(!x){o(w);return}var u,t;try{if(w.conn.status!==undefined&amp;
 &amp;w.conn.status!=0){u=w.conn.status}else{u=13030}}catch(v){u=13030}if((u&gt;=200&amp;&amp;u&lt;300)||(Ext.isIE&amp;&amp;u==1223)){t=p(w,x.argument);if(x.success){if(!x.scope){x.success(t)}else{x.success.apply(x.scope,[t])}}}else{switch(u){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:t=e(w.tId,x.argument,(s?s:false),r);if(x.failure){if(!x.scope){x.failure(t)}else{x.failure.apply(x.scope,[t])}}break;default:t=p(w,x.argument);if(x.failure){if(!x.scope){x.failure(t)}else{x.failure.apply(x.scope,[t])}}}}o(w);t=null}function n(t,w){w=w||{};var r=t.conn,v=t.tId,s=l.poll,u=w.timeout||null;if(u){l.timeout[v]=setTimeout(function(){l.abort(t,w,true)},u)}s[v]=setInterval(function(){if(r&amp;&amp;r.readyState==4){clearInterval(s[v]);s[v]=null;if(u){clearTimeout(l.timeout[v]);l.timeout[v]=null}g(t,w)}},l.pollInterval)}function j(v,s,u,r){var t=m()||null;if(t){t.conn.open(v,s,true);if(l.useDefaultXhrHeader){k(&quot;X-Requested-With&quot;,l.defaultXhrHeader)}if(r&amp
 ;&amp;l.useDefaultHeader&amp;&amp;(!l.headers||!l.headers[d])){k(d,l.defaultPostHeader)}if(l.defaultHeaders||l.headers){i(t)}n(t,u);t.conn.send(r||null)}return t}function m(){var s;try{if(s=q(l.transactionId)){l.transactionId++}}catch(r){}finally{return s}}function q(u){var r;try{r=new XMLHttpRequest()}catch(t){for(var s=0;s&lt;h.length;++s){try{r=new ActiveXObject(h[s]);break}catch(t){}}}finally{return{conn:r,tId:u}}}var l={request:function(r,t,u,v,z){if(z){var w=this,s=z.xmlData,x=z.jsonData,y;Ext.applyIf(w,z);if(s||x){y=w.headers;if(!y||!y[d]){k(d,s?&quot;text/xml&quot;:&quot;application/json&quot;)}v=s||(!Ext.isPrimitive(x)?Ext.encode(x):x)}}return j(r||z.method||&quot;POST&quot;,t,u,v)},serializeForm:function(s){var t=s.elements||(document.forms[s]||Ext.getDom(s)).elements,z=false,y=encodeURIComponent,w,A,r,u,v=&quot;&quot;,x;Ext.each(t,function(B){r=B.name;x=B.type;if(!B.disabled&amp;&amp;r){if(/select-(one|multiple)/i.test(x)){Ext.each(B.options,function(C){if(C.selec
 ted){v+=String.format(&quot;{0}={1}&amp;&quot;,y(r),y((C.hasAttribute?C.hasAttribute(&quot;value&quot;):C.getAttribute(&quot;value&quot;)!==null)?C.value:C.text))}})}else{if(!/file|undefined|reset|button/i.test(x)){if(!(/radio|checkbox/i.test(x)&amp;&amp;!B.checked)&amp;&amp;!(x==&quot;submit&quot;&amp;&amp;z)){v+=y(r)+&quot;=&quot;+y(B.value)+&quot;&amp;&quot;;z=/submit/i.test(x)}}}}});return v.substr(0,v.length-1)},useDefaultHeader:true,defaultPostHeader:&quot;application/x-www-form-urlencoded; charset=UTF-8&quot;,useDefaultXhrHeader:true,defaultXhrHeader:&quot;XMLHttpRequest&quot;,poll:{},timeout:{},pollInterval:50,transactionId:0,abort:function(u,w,r){var t=this,v=u.tId,s=false;if(t.isCallInProgress(u)){u.conn.abort();clearInterval(t.poll[v]);t.poll[v]=null;clearTimeout(l.timeout[v]);t.timeout[v]=null;g(u,w,(s=true),r)}return s},isCallInProgress:function(r){return r.conn&amp;&amp;!{0:true,4:true}[r.conn.readyState]}};return l}();(function(){var h=Ext.lib,j=/width|height|
 opacity|padding/i,g=/^((width|height)|(top|left))$/,d=/width|height|top$|bottom$|left$|right$/i,i=/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i,k=function(l){return typeof l!==&quot;undefined&quot;},e=function(){return new Date()};h.Anim={motion:function(o,m,p,q,l,n){return this.run(o,m,p,q,l,n,Ext.lib.Motion)},run:function(p,m,r,s,l,o,n){n=n||Ext.lib.AnimBase;if(typeof s==&quot;string&quot;){s=Ext.lib.Easing[s]}var q=new n(p,m,r,s);q.animateX(function(){if(Ext.isFunction(l)){l.call(o)}});return q}};h.AnimBase=function(m,l,n,o){if(m){this.init(m,l,n,o)}};h.AnimBase.prototype={doMethod:function(l,o,m){var n=this;return n.method(n.curFrame,o,m-o,n.totalFrames)},setAttr:function(l,n,m){if(j.test(l)&amp;&amp;n&lt;0){n=0}Ext.fly(this.el,&quot;_anim&quot;).setStyle(l,n+m)},getAttr:function(l){var n=Ext.fly(this.el),o=n.getStyle(l),m=g.exec(l)||[];if(o!==&quot;auto&quot;&amp;&amp;!i.test(o)){return parseFloat(o)}return(!!(m[2])||(n.getStyle(&quot;position&quot;)==&quot;absolute&quot;&amp;&amp
 ;!!(m[3])))?n.dom[&quot;offset&quot;+m[0].charAt(0).toUpperCase()+m[0].substr(1)]:0},getDefaultUnit:function(l){return d.test(l)?&quot;px&quot;:&quot;&quot;},animateX:function(o,l){var m=this,n=function(){m.onComplete.removeListener(n);if(Ext.isFunction(o)){o.call(l||m,m)}};m.onComplete.addListener(n,m);m.animate()},setRunAttr:function(q){var s=this,t=this.attributes[q],u=t.to,r=t.by,v=t.from,w=t.unit,m=(this.runAttrs[q]={}),n;if(!k(u)&amp;&amp;!k(r)){return false}var l=k(v)?v:s.getAttr(q);if(k(u)){n=u}else{if(k(r)){if(Ext.isArray(l)){n=[];for(var o=0,p=l.length;o&lt;p;o++){n[o]=l[o]+r[o]}}else{n=l+r}}}Ext.apply(m,{start:l,end:n,unit:k(w)?w:s.getDefaultUnit(q)})},init:function(m,q,p,l){var s=this,o=0,t=h.AnimMgr;Ext.apply(s,{isAnimated:false,startTime:null,el:Ext.getDom(m),attributes:q||{},duration:p||1,method:l||h.Easing.easeNone,useSec:true,curFrame:0,totalFrames:t.fps,runAttrs:{},animate:function(){var v=this,w=v.duration;if(v.isAnimated){return false}v.curFrame=0;v.total
 Frames=v.useSec?Math.ceil(t.fps*w):w;t.registerElement(v)},stop:function(v){var w=this;if(v){w.curFrame=w.totalFrames;w._onTween.fire()}t.stop(w)}});var u=function(){var w=this,v;w.onStart.fire();w.runAttrs={};for(v in this.attributes){this.setRunAttr(v)}w.isAnimated=true;w.startTime=e();o=0};var r=function(){var w=this;w.onTween.fire({duration:e()-w.startTime,curFrame:w.curFrame});var x=w.runAttrs;for(var v in x){this.setAttr(v,w.doMethod(v,x[v].start,x[v].end),x[v].unit)}++o};var n=function(){var v=this,x=(e()-v.startTime)/1000,w={duration:x,frames:o,fps:o/x};v.isAnimated=false;o=0;v.onComplete.fire(w)};s.onStart=new Ext.util.Event(s);s.onTween=new Ext.util.Event(s);s.onComplete=new Ext.util.Event(s);(s._onStart=new Ext.util.Event(s)).addListener(u);(s._onTween=new Ext.util.Event(s)).addListener(r);(s._onComplete=new Ext.util.Event(s)).addListener(n)}};Ext.lib.AnimMgr=new function(){var p=this,n=null,m=[],l=0;Ext.apply(p,{fps:1000,delay:1,registerElement:function(r){m.push
 (r);++l;r._onStart.fire();p.start()},unRegister:function(s,r){s._onComplete.fire();r=r||q(s);if(r!=-1){m.splice(r,1)}if(--l&lt;=0){p.stop()}},start:function(){if(n===null){n=setInterval(p.run,p.delay)}},stop:function(t){if(!t){clearInterval(n);for(var s=0,r=m.length;s&lt;r;++s){if(m[0].isAnimated){p.unRegister(m[0],0)}}m=[];n=null;l=0}else{p.unRegister(t)}},run:function(){var u,t,r,s;for(t=0,r=m.length;t&lt;r;t++){s=m[t];if(s&amp;&amp;s.isAnimated){u=s.totalFrames;if(s.curFrame&lt;u||u===null){++s.curFrame;if(s.useSec){o(s)}s._onTween.fire()}else{p.stop(s)}}}}});var q=function(t){var s,r;for(s=0,r=m.length;s&lt;r;s++){if(m[s]===t){return s}}return -1};var o=function(s){var w=s.totalFrames,v=s.curFrame,u=s.duration,t=(v*u*1000/w),r=(e()-s.startTime),x=0;if(r&lt;u*1000){x=Math.round((r/t-1)*v)}else{x=w-(v+1)}if(x&gt;0&amp;&amp;isFinite(x)){if(s.curFrame+x&gt;=w){x=w-(v+1)}s.curFrame+=x}}};h.Bezier=new function(){this.getPosition=function(q,p){var s=q.length,o=[],r=1-p,m,l;for(
 m=0;m&lt;s;++m){o[m]=[q[m][0],q[m][1]]}for(l=1;l&lt;s;++l){for(m=0;m&lt;s-l;++m){o[m][0]=r*o[m][0]+p*o[parseInt(m+1,10)][0];o[m][1]=r*o[m][1]+p*o[parseInt(m+1,10)][1]}}return[o[0][0],o[0][1]]}};h.Easing={easeNone:function(m,l,o,n){return o*m/n+l},easeIn:function(m,l,o,n){return o*(m/=n)*m+l},easeOut:function(m,l,o,n){return -o*(m/=n)*(m-2)+l}};(function(){h.Motion=function(q,p,r,s){if(q){h.Motion.superclass.constructor.call(this,q,p,r,s)}};Ext.extend(h.Motion,Ext.lib.AnimBase);var o=h.Motion.superclass,n=h.Motion.prototype,m=/^points$/i;Ext.apply(h.Motion.prototype,{setAttr:function(p,t,s){var r=this,q=o.setAttr;if(m.test(p)){s=s||&quot;px&quot;;q.call(r,&quot;left&quot;,t[0],s);q.call(r,&quot;top&quot;,t[1],s)}else{q.call(r,p,t,s)}},getAttr:function(p){var r=this,q=o.getAttr;return m.test(p)?[q.call(r,&quot;left&quot;),q.call(r,&quot;top&quot;)]:q.call(r,p)},doMethod:function(p,s,q){var r=this;return m.test(p)?h.Bezier.getPosition(r.runAttrs[p],r.method(r.curFrame,0,100,r.t
 otalFrames)/100):o.doMethod.call(r,p,s,q)},setRunAttr:function(w){if(m.test(w)){var y=this,r=this.el,B=this.attributes.points,u=B.control||[],z=B.from,A=B.to,x=B.by,C=h.Dom,q,t,s,v,p;if(u.length&gt;0&amp;&amp;!Ext.isArray(u[0])){u=[u]}else{}Ext.fly(r,&quot;_anim&quot;).position();C.setXY(r,k(z)?z:C.getXY(r));q=y.getAttr(&quot;points&quot;);if(k(A)){s=l.call(y,A,q);for(t=0,v=u.length;t&lt;v;++t){u[t]=l.call(y,u[t],q)}}else{if(k(x)){s=[q[0]+x[0],q[1]+x[1]];for(t=0,v=u.length;t&lt;v;++t){u[t]=[q[0]+u[t][0],q[1]+u[t][1]]}}}p=this.runAttrs[w]=[q];if(u.length&gt;0){p=p.concat(u)}p[p.length]=s}else{o.setRunAttr.call(this,w)}}});var l=function(p,r){var q=h.Dom.getXY(this.el);return[p[0]-q[0]+r[0],p[1]-q[1]+r[1]]}})()})();(function(){var d=Math.abs,j=Math.PI,i=Math.asin,h=Math.pow,e=Math.sin,g=Ext.lib;Ext.apply(g.Easing,{easeBoth:function(l,k,n,m){return((l/=m/2)&lt;1)?n/2*l*l+k:-n/2*((--l)*(l-2)-1)+k},easeInStrong:function(l,k,n,m){return n*(l/=m)*l*l*l+k},easeOutStrong:function(l,k
 ,n,m){return -n*((l=l/m-1)*l*l*l-1)+k},easeBothStrong:function(l,k,n,m){return((l/=m/2)&lt;1)?n/2*l*l*l*l+k:-n/2*((l-=2)*l*l*l-2)+k},elasticIn:function(m,k,r,q,l,o){if(m==0||(m/=q)==1){return m==0?k:k+r}o=o||(q*0.3);var n;if(l&gt;=d(r)){n=o/(2*j)*i(r/l)}else{l=r;n=o/4}return -(l*h(2,10*(m-=1))*e((m*q-n)*(2*j)/o))+k},elasticOut:function(m,k,r,q,l,o){if(m==0||(m/=q)==1){return m==0?k:k+r}o=o||(q*0.3);var n;if(l&gt;=d(r)){n=o/(2*j)*i(r/l)}else{l=r;n=o/4}return l*h(2,-10*m)*e((m*q-n)*(2*j)/o)+r+k},elasticBoth:function(m,k,r,q,l,o){if(m==0||(m/=q/2)==2){return m==0?k:k+r}o=o||(q*(0.3*1.5));var n;if(l&gt;=d(r)){n=o/(2*j)*i(r/l)}else{l=r;n=o/4}return m&lt;1?-0.5*(l*h(2,10*(m-=1))*e((m*q-n)*(2*j)/o))+k:l*h(2,-10*(m-=1))*e((m*q-n)*(2*j)/o)*0.5+r+k},backIn:function(l,k,o,n,m){m=m||1.70158;return o*(l/=n)*l*((m+1)*l-m)+k},backOut:function(l,k,o,n,m){if(!m){m=1.70158}return o*((l=l/n-1)*l*((m+1)*l+m)+1)+k},backBoth:function(l,k,o,n,m){m=m||1.70158;return((l/=n/2)&lt;1)?o/2*(l*l*(((m*=(1
 .525))+1)*l-m))+k:o/2*((l-=2)*l*(((m*=(1.525))+1)*l+m)+2)+k},bounceIn:function(l,k,n,m){return n-g.Easing.bounceOut(m-l,0,n,m)+k},bounceOut:function(l,k,n,m){if((l/=m)&lt;(1/2.75)){return n*(7.5625*l*l)+k}else{if(l&lt;(2/2.75)){return n*(7.5625*(l-=(1.5/2.75))*l+0.75)+k}else{if(l&lt;(2.5/2.75)){return n*(7.5625*(l-=(2.25/2.75))*l+0.9375)+k}}}return n*(7.5625*(l-=(2.625/2.75))*l+0.984375)+k},bounceBoth:function(l,k,n,m){return(l&lt;m/2)?g.Easing.bounceIn(l*2,0,n,m)*0.5+k:g.Easing.bounceOut(l*2-m,0,n,m)*0.5+n*0.5+k}})})();(function(){var i=Ext.lib;i.Anim.color=function(q,o,r,s,n,p){return i.Anim.run(q,o,r,s,n,p,i.ColorAnim)};i.ColorAnim=function(o,n,p,q){i.ColorAnim.superclass.constructor.call(this,o,n,p,q)};Ext.extend(i.ColorAnim,i.AnimBase);var k=i.ColorAnim.superclass,j=/color$/i,g=/^transparent|rgba\(0, 0, 0, 0\)$/,m=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,d=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,e=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i,h=functio
 n(n){return typeof n!==&quot;undefined&quot;};function l(o){var q=parseInt,p,n=null,r;if(o.length==3){return o}Ext.each([d,m,e],function(t,s){p=(s%2==0)?16:10;r=t.exec(o);if(r&amp;&amp;r.length==4){n=[q(r[1],p),q(r[2],p),q(r[3],p)];return false}});return n}Ext.apply(i.ColorAnim.prototype,{getAttr:function(n){var p=this,o=p.el,q;if(j.test(n)){while(o&amp;&amp;g.test(q=Ext.fly(o).getStyle(n))){o=o.parentNode;q=&quot;fff&quot;}}else{q=k.getAttr.call(p,n)}return q},doMethod:function(t,n,p){var u=this,o,r=Math.floor,q,s,w;if(j.test(t)){o=[];for(q=0,s=n.length;q&lt;s;q++){w=n[q];o[q]=k.doMethod.call(u,t,w,p[q])}o=&quot;rgb(&quot;+r(o[0])+&quot;,&quot;+r(o[1])+&quot;,&quot;+r(o[2])+&quot;)&quot;}else{o=k.doMethod.call(u,t,n,p)}return o},setRunAttr:function(s){var u=this,v=u.attributes[s],w=v.to,t=v.by,o;k.setRunAttr.call(u,s);o=u.runAttrs[s];if(j.test(s)){var n=l(o.start),p=l(o.end);if(!h(w)&amp;&amp;h(t)){p=l(t);for(var q=0,r=n.length;q&lt;r;q++){p[q]=n[q]+p[q]}}o.start=n;o.end=p}
 }})})();(function(){var d=Ext.lib;d.Anim.scroll=function(k,i,l,m,h,j){return d.Anim.run(k,i,l,m,h,j,d.Scroll)};d.Scroll=function(i,h,j,k){if(i){d.Scroll.superclass.constructor.call(this,i,h,j,k)}};Ext.extend(d.Scroll,d.ColorAnim);var g=d.Scroll.superclass,e=&quot;scroll&quot;;Ext.apply(d.Scroll.prototype,{doMethod:function(h,n,i){var l,k=this,m=k.curFrame,j=k.totalFrames;if(h==e){l=[k.method(m,n[0],i[0]-n[0],j),k.method(m,n[1],i[1]-n[1],j)]}else{l=g.doMethod.call(k,h,n,i)}return l},getAttr:function(h){var i=this;if(h==e){return[i.el.scrollLeft,i.el.scrollTop]}else{return g.getAttr.call(i,h)}},setAttr:function(h,k,j){var i=this;if(h==e){i.el.scrollLeft=k[0];i.el.scrollTop=k[1]}else{g.setAttr.call(i,h,k,j)}}})})();if(Ext.isIE){function a(){var d=Function.prototype;delete d.createSequence;delete d.defer;delete d.createDelegate;delete d.createCallback;delete d.createInterceptor;window.detachEvent(&quot;onunload&quot;,a)}window.attachEvent(&quot;onunload&quot;,a)}})();(function()
 {var i=Ext.util,l=Ext.toArray,k=Ext.each,a=Ext.isObject,h=true,j=false;i.Observable=function(){var m=this,n=m.events;if(m.listeners){m.on(m.listeners);delete m.listeners}m.events=n||{}};i.Observable.prototype={filterOptRe:/^(?:scope|delay|buffer|single)$/,fireEvent:function(){var m=l(arguments),o=m[0].toLowerCase(),p=this,n=h,s=p.events[o],r,t;if(p.eventsSuspended===h){if(r=p.eventQueue){r.push(m)}}else{if(a(s)&amp;&amp;s.bubble){if(s.fire.apply(s,m.slice(1))===j){return j}t=p.getBubbleTarget&amp;&amp;p.getBubbleTarget();if(t&amp;&amp;t.enableBubble){if(!t.events[o]||!Ext.isObject(t.events[o])||!t.events[o].bubble){t.enableBubble(o)}return t.fireEvent.apply(t,m)}}else{if(a(s)){m.shift();n=s.fire.apply(s,m)}}}return n},addListener:function(p,s,u,n){var r=this,q,v,t,m;if(a(p)){n=p;for(q in n){v=n[q];if(!r.filterOptRe.test(q)){r.addListener(q,v.fn||v,v.scope||n.scope,v.fn?v:n)}}}else{p=p.toLowerCase();m=r.events[p]||h;if(Ext.isBoolean(m)){r.events[p]=m=new i.Event(r,p)}m.addLis
 tener(s,u,a(n)?n:{})}},removeListener:function(m,o,n){var p=this.events[m.toLowerCase()];if(a(p)){p.removeListener(o,n)}},purgeListeners:function(){var o=this.events,m,n;for(n in o){m=o[n];if(a(m)){m.clearListeners()}}},addEvents:function(q){var p=this;p.events=p.events||{};if(Ext.isString(q)){var m=arguments,n=m.length;while(n--){p.events[m[n]]=p.events[m[n]]||h}}else{Ext.applyIf(p.events,q)}},hasListener:function(m){var n=this.events[m];return a(n)&amp;&amp;n.listeners.length&gt;0},suspendEvents:function(m){this.eventsSuspended=h;if(m&amp;&amp;!this.eventQueue){this.eventQueue=[]}},resumeEvents:function(){var m=this,n=m.eventQueue||[];m.eventsSuspended=j;delete m.eventQueue;k(n,function(o){m.fireEvent.apply(m,o)})}};var e=i.Observable.prototype;e.on=e.addListener;e.un=e.removeListener;i.Observable.releaseCapture=function(m){m.fireEvent=e.fireEvent};function g(n,p,m){return function(){if(p.target==arguments[0]){n.apply(m,l(arguments))}}}function c(p,q,m,n){m.task=new i.Dela
 yedTask();return function(){m.task.delay(q.buffer,p,n,l(arguments))}}function d(o,p,n,m){return function(){p.removeListener(n,m);return o.apply(m,arguments)}}function b(p,q,m,n){return function(){var o=new i.DelayedTask();if(!m.tasks){m.tasks=[]}m.tasks.push(o);o.delay(q.delay||10,p,n,l(arguments))}}i.Event=function(n,m){this.name=m;this.obj=n;this.listeners=[]};i.Event.prototype={addListener:function(p,o,n){var q=this,m;o=o||q.obj;if(!q.isListening(p,o)){m=q.createListener(p,o,n);if(q.firing){q.listeners=q.listeners.slice(0)}q.listeners.push(m)}},createListener:function(q,p,r){r=r||{},p=p||this.obj;var m={fn:q,scope:p,options:r},n=q;if(r.target){n=g(n,r,p)}if(r.delay){n=b(n,r,m,p)}if(r.single){n=d(n,this,q,p)}if(r.buffer){n=c(n,r,m,p)}m.fireFn=n;return m},findListener:function(q,p){var r=this.listeners,n=r.length,m,o;while(n--){m=r[n];if(m){o=m.scope;if(m.fn==q&amp;&amp;(o==p||o==this.obj)){return n}}}return -1},isListening:function(n,m){return this.findListener(n,m)!=-1},r
 emoveListener:function(r,q){var p,m,n,s=this,o=j;if((p=s.findListener(r,q))!=-1){if(s.firing){s.listeners=s.listeners.slice(0)}m=s.listeners[p];if(m.task){m.task.cancel();delete m.task}n=m.tasks&amp;&amp;m.tasks.length;if(n){while(n--){m.tasks[n].cancel()}delete m.tasks}s.listeners.splice(p,1);o=h}return o},clearListeners:function(){var o=this,m=o.listeners,n=m.length;while(n--){o.removeListener(m[n].fn,m[n].scope)}},fire:function(){var r=this,o=l(arguments),q=r.listeners,m=q.length,p=0,n;if(m&gt;0){r.firing=h;for(;p&lt;m;p++){n=q[p];if(n&amp;&amp;n.fireFn.apply(n.scope||r.obj||window,o)===j){return(r.firing=j)}}}r.firing=j;return h}}})();Ext.DomHelper=function(){var s=null,j=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i,l=/^table|tbody|tr|td$/i,p,m=&quot;afterbegin&quot;,n=&quot;afterend&quot;,c=&quot;beforebegin&quot;,o=&quot;beforeend&quot;,a=&quot;&lt;table&gt;&quot;,h=&quot;&lt;/table&gt;&quot;,b=a+&quot;&lt;tbody&gt;&quot;,i=&quot;&lt;/tbody&
 gt;&quot;+h,k=b+&quot;&lt;tr&gt;&quot;,r=&quot;&lt;/tr&gt;&quot;+i;function g(w,y,x,z,v,t){var u=p.insertHtml(z,Ext.getDom(w),q(y));return x?Ext.get(u,true):u}function q(z){var v=&quot;&quot;,u,y,x,t,A;if(Ext.isString(z)){v=z}else{if(Ext.isArray(z)){for(var w=0;w&lt;z.length;w++){if(z[w]){v+=q(z[w])}}}else{v+=&quot;&lt;&quot;+(z.tag=z.tag||&quot;div&quot;);Ext.iterate(z,function(B,C){if(!/tag|children|cn|html$/i.test(B)){if(Ext.isObject(C)){v+=&quot; &quot;+B+'=&quot;';Ext.iterate(C,function(E,D){v+=E+&quot;:&quot;+D+&quot;;&quot;});v+='&quot;'}else{v+=&quot; &quot;+({cls:&quot;class&quot;,htmlFor:&quot;for&quot;}[B]||B)+'=&quot;'+C+'&quot;'}}});if(j.test(z.tag)){v+=&quot;/&gt;&quot;}else{v+=&quot;&gt;&quot;;if((A=z.children||z.cn)){v+=q(A)}else{if(z.html){v+=z.html}}v+=&quot;&lt;/&quot;+z.tag+&quot;&gt;&quot;}}}return v}function e(A,x,w,y){s.innerHTML=[x,w,y].join(&quot;&quot;);var t=-1,v=s,u;while(++t&lt;A){v=v.firstChild}if(u=v.nextSibling){var z=document.createDocumentFr
 agment();while(v){u=v.nextSibling;z.appendChild(v);v=u}v=z}return v}function d(t,u,w,v){var x,y;s=s||document.createElement(&quot;div&quot;);if(t==&quot;td&quot;&amp;&amp;(u==m||u==o)||!/td|tr|tbody/i.test(t)&amp;&amp;(u==c||u==n)){return}y=u==c?w:u==n?w.nextSibling:u==m?w.firstChild:null;if(u==c||u==n){w=w.parentNode}if(t==&quot;td&quot;||(t==&quot;tr&quot;&amp;&amp;(u==o||u==m))){x=e(4,k,v,r)}else{if((t==&quot;tbody&quot;&amp;&amp;(u==o||u==m))||(t==&quot;tr&quot;&amp;&amp;(u==c||u==n))){x=e(3,b,v,i)}else{x=e(2,a,v,h)}}w.insertBefore(x,y);return x}p={markup:function(t){return q(t)},applyStyles:function(w,x){if(x){var u=0,t,v;w=Ext.fly(w);if(Ext.isFunction(x)){x=x.call()}if(Ext.isString(x)){x=x.trim().split(/\s*(?::|;)\s*/);for(t=x.length;u&lt;t;){w.setStyle(x[u++],x[u++])}}else{if(Ext.isObject(x)){w.setStyle(x)}}}},insertHtml:function(y,t,z){var x={},v,B,A,C,w,u;y=y.toLowerCase();x[c]=[&quot;BeforeBegin&quot;,&quot;previousSibling&quot;];x[n]=[&quot;AfterEnd&quot;,&quot;ne
 xtSibling&quot;];if(t.insertAdjacentHTML){if(l.test(t.tagName)&amp;&amp;(u=d(t.tagName.toLowerCase(),y,t,z))){return u}x[m]=[&quot;AfterBegin&quot;,&quot;firstChild&quot;];x[o]=[&quot;BeforeEnd&quot;,&quot;lastChild&quot;];if((v=x[y])){t.insertAdjacentHTML(v[0],z);return t[v[1]]}}else{A=t.ownerDocument.createRange();B=&quot;setStart&quot;+(/end/i.test(y)?&quot;After&quot;:&quot;Before&quot;);if(x[y]){A[B](t);C=A.createContextualFragment(z);t.parentNode.insertBefore(C,y==c?t:t.nextSibling);return t[(y==c?&quot;previous&quot;:&quot;next&quot;)+&quot;Sibling&quot;]}else{w=(y==m?&quot;first&quot;:&quot;last&quot;)+&quot;Child&quot;;if(t.firstChild){A[B](t[w]);C=A.createContextualFragment(z);if(y==m){t.insertBefore(C,t.firstChild)}else{t.appendChild(C)}}else{t.innerHTML=z}return t[w]}}throw'Illegal insertion point -&gt; &quot;'+y+'&quot;'},insertBefore:function(t,v,u){return g(t,v,u,c)},insertAfter:function(t,v,u){return g(t,v,u,n,&quot;nextSibling&quot;)},insertFirst:function(t,
 v,u){return g(t,v,u,m,&quot;firstChild&quot;)},append:function(t,v,u){return g(t,v,u,o,&quot;&quot;,true)},overwrite:function(t,v,u){t=Ext.getDom(t);t.innerHTML=q(v);return u?Ext.get(t.firstChild):t.firstChild},createHtml:q};return p}();Ext.Template=function(d){var e=this,b=arguments,c=[];if(Ext.isArray(d)){d=d.join(&quot;&quot;)}else{if(b.length&gt;1){Ext.each(b,function(a){if(Ext.isObject(a)){Ext.apply(e,a)}else{c.push(a)}});d=c.join(&quot;&quot;)}}e.html=d;if(e.compiled){e.compile()}};Ext.Template.prototype={re:/\{([\w-]+)\}/g,applyTemplate:function(a){var b=this;return b.compiled?b.compiled(a):b.html.replace(b.re,function(c,d){return a[d]!==undefined?a[d]:&quot;&quot;})},set:function(a,c){var b=this;b.html=a;b.compiled=null;return c?b.compile():b},compile:function(){var me=this,sep=Ext.isGecko?&quot;+&quot;:&quot;,&quot;;function fn(m,name){name=&quot;values['&quot;+name+&quot;']&quot;;return&quot;'&quot;+sep+&quot;(&quot;+name+&quot; == undefined ? '' : &quot;+name+&quo
 t;)&quot;+sep+&quot;'&quot;}eval(&quot;this.compiled = function(values){ return &quot;+(Ext.isGecko?&quot;'&quot;:&quot;['&quot;)+me.html.replace(/\\/g,&quot;\\\\&quot;).replace(/(\r\n|\n)/g,&quot;\\n&quot;).replace(/'/g,&quot;\\'&quot;).replace(this.re,fn)+(Ext.isGecko?&quot;';};&quot;:&quot;'].join('');};&quot;));return me},insertFirst:function(b,a,c){return this.doInsert(&quot;afterBegin&quot;,b,a,c)},insertBefore:function(b,a,c){return this.doInsert(&quot;beforeBegin&quot;,b,a,c)},insertAfter:function(b,a,c){return this.doInsert(&quot;afterEnd&quot;,b,a,c)},append:function(b,a,c){return this.doInsert(&quot;beforeEnd&quot;,b,a,c)},doInsert:function(c,e,b,a){e=Ext.getDom(e);var d=Ext.DomHelper.insertHtml(c,e,this.applyTemplate(b));return a?Ext.get(d,true):d},overwrite:function(b,a,c){b=Ext.getDom(b);b.innerHTML=this.applyTemplate(a);return c?Ext.get(b.firstChild,true):b.firstChild}};Ext.Template.prototype.apply=Ext.Template.prototype.applyTemplate;Ext.Template.from=functio
 n(b,a){b=Ext.getDom(b);return new Ext.Template(b.value||b.innerHTML,a||&quot;&quot;)};Ext.DomQuery=function(){var cache={},simpleCache={},valueCache={},nonSpace=/\S/,trimRe=/^\s+|\s+$/g,tplRe=/\{(\d+)\}/g,modeRe=/^(\s?[\/&gt;+~]\s?|\s|$)/,tagTokenRe=/^(#)?([\w-\*]+)/,nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/,isIE=window.ActiveXObject?true:false,key=30803;eval(&quot;var batch = 30803;&quot;);function child(p,index){var i=0,n=p.firstChild;while(n){if(n.nodeType==1){if(++i==index){return n}}n=n.nextSibling}return null}function next(n){while((n=n.nextSibling)&amp;&amp;n.nodeType!=1){}return n}function prev(n){while((n=n.previousSibling)&amp;&amp;n.nodeType!=1){}return n}function children(d){var n=d.firstChild,ni=-1,nx;while(n){nx=n.nextSibling;if(n.nodeType==3&amp;&amp;!nonSpace.test(n.nodeValue)){d.removeChild(n)}else{n.nodeIndex=++ni}n=nx}return this}function byClassName(c,a,v){if(!v){return c}var r=[],ri=-1,cn;for(var i=0,ci;ci=c[i];i++){if((&quot; &quot;+ci.className+&quot; &quot;)
 .indexOf(v)!=-1){r[++ri]=ci}}return r}function attrValue(n,attr){if(!n.tagName&amp;&amp;typeof n.length!=&quot;undefined&quot;){n=n[0]}if(!n){return null}if(attr==&quot;for&quot;){return n.htmlFor}if(attr==&quot;class&quot;||attr==&quot;className&quot;){return n.className}return n.getAttribute(attr)||n[attr]}function getNodes(ns,mode,tagName){var result=[],ri=-1,cs;if(!ns){return result}tagName=tagName||&quot;*&quot;;if(typeof ns.getElementsByTagName!=&quot;undefined&quot;){ns=[ns]}if(!mode){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(var j=0,ci;ci=cs[j];j++){result[++ri]=ci}}}else{if(mode==&quot;/&quot;||mode==&quot;&gt;&quot;){var utag=tagName.toUpperCase();for(var i=0,ni,cn;ni=ns[i];i++){cn=ni.childNodes;for(var j=0,cj;cj=cn[j];j++){if(cj.nodeName==utag||cj.nodeName==tagName||tagName==&quot;*&quot;){result[++ri]=cj}}}}else{if(mode==&quot;+&quot;){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&amp;&amp;n.nodeType!
 =1){}if(n&amp;&amp;(n.nodeName==utag||n.nodeName==tagName||tagName==&quot;*&quot;)){result[++ri]=n}}}else{if(mode==&quot;~&quot;){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)){if(n.nodeName==utag||n.nodeName==tagName||tagName==&quot;*&quot;){result[++ri]=n}}}}}}}return result}function concat(a,b){if(b.slice){return a.concat(b)}for(var i=0,l=b.length;i&lt;l;i++){a[a.length]=b[i]}return a}function byTag(cs,tagName){if(cs.tagName||cs==document){cs=[cs]}if(!tagName){return cs}var r=[],ri=-1;tagName=tagName.toLowerCase();for(var i=0,ci;ci=cs[i];i++){if(ci.nodeType==1&amp;&amp;ci.tagName.toLowerCase()==tagName){r[++ri]=ci}}return r}function byId(cs,attr,id){if(cs.tagName||cs==document){cs=[cs]}if(!id){return cs}var r=[],ri=-1;for(var i=0,ci;ci=cs[i];i++){if(ci&amp;&amp;ci.id==id){r[++ri]=ci;return r}}return r}function byAttribute(cs,attr,value,op,custom){var r=[],ri=-1,st=custom==&quot;{&quot;,f=Ext.DomQuery.operators[op],a,ih;for(var i=0,ci;ci
 =cs[i];i++){if(ci.nodeType!=1){continue}ih=ci.innerHTML;if(ih!==null&amp;&amp;ih!==undefined){if(st){a=Ext.DomQuery.getStyle(ci,attr)}else{if(attr==&quot;class&quot;||attr==&quot;className&quot;){a=ci.className}else{if(attr==&quot;for&quot;){a=ci.htmlFor}else{if(attr==&quot;href&quot;){a=ci.getAttribute(&quot;href&quot;,2)}else{a=ci.getAttribute(attr)}}}}}else{a=ci.getAttribute(attr)}if((f&amp;&amp;f(a,value))||(!f&amp;&amp;a)){r[++ri]=ci}}return r}function byPseudo(cs,name,value){return Ext.DomQuery.pseudos[name](cs,value)}function nodupIEXml(cs){var d=++key,r;cs[0].setAttribute(&quot;_nodup&quot;,d);r=[cs[0]];for(var i=1,len=cs.length;i&lt;len;i++){var c=cs[i];if(!c.getAttribute(&quot;_nodup&quot;)!=d){c.setAttribute(&quot;_nodup&quot;,d);r[r.length]=c}}for(var i=0,len=cs.length;i&lt;len;i++){cs[i].removeAttribute(&quot;_nodup&quot;)}return r}function nodup(cs){if(!cs){return[]}var len=cs.length,c,i,r=cs,cj,ri=-1;if(!len||typeof cs.nodeType!=&quot;undefined&quot;||len==1){
 return cs}if(isIE&amp;&amp;typeof cs[0].selectSingleNode!=&quot;undefined&quot;){return nodupIEXml(cs)}var d=++key;cs[0]._nodup=d;for(i=1;c=cs[i];i++){if(c._nodup!=d){c._nodup=d}else{r=[];for(var j=0;j&lt;i;j++){r[++ri]=cs[j]}for(j=i+1;cj=cs[j];j++){if(cj._nodup!=d){cj._nodup=d;r[++ri]=cj}}return r}}return r}function quickDiffIEXml(c1,c2){var d=++key,r=[];for(var i=0,len=c1.length;i&lt;len;i++){c1[i].setAttribute(&quot;_qdiff&quot;,d)}for(var i=0,len=c2.length;i&lt;len;i++){if(c2[i].getAttribute(&quot;_qdiff&quot;)!=d){r[r.length]=c2[i]}}for(var i=0,len=c1.length;i&lt;len;i++){c1[i].removeAttribute(&quot;_qdiff&quot;)}return r}function quickDiff(c1,c2){var len1=c1.length,d=++key,r=[];if(!len1){return c2}if(isIE&amp;&amp;typeof c1[0].selectSingleNode!=&quot;undefined&quot;){return quickDiffIEXml(c1,c2)}for(var i=0;i&lt;len1;i++){c1[i]._qdiff=d}for(var i=0,len=c2.length;i&lt;len;i++){if(c2[i]._qdiff!=d){r[r.length]=c2[i]}}return r}function quickId(ns,mode,root,id){if(ns==root)
 {var d=root.ownerDocument||root;return d.getElementById(id)}ns=getNodes(ns,mode,&quot;*&quot;);return byId(ns,null,id)}return{getStyle:function(el,name){return Ext.fly(el).getStyle(name)},compile:function(path,type){type=type||&quot;select&quot;;var fn=[&quot;var f = function(root){\n var mode; ++batch; var n = root || document;\n&quot;],q=path,mode,lq,tk=Ext.DomQuery.matchers,tklen=tk.length,mm,lmode=q.match(modeRe);if(lmode&amp;&amp;lmode[1]){fn[fn.length]='mode=&quot;'+lmode[1].replace(trimRe,&quot;&quot;)+'&quot;;';q=q.replace(lmode[1],&quot;&quot;)}while(path.substr(0,1)==&quot;/&quot;){path=path.substr(1)}while(q&amp;&amp;lq!=q){lq=q;var tm=q.match(tagTokenRe);if(type==&quot;select&quot;){if(tm){if(tm[1]==&quot;#&quot;){fn[fn.length]='n = quickId(n, mode, root, &quot;'+tm[2]+'&quot;);'}else{fn[fn.length]='n = getNodes(n, mode, &quot;'+tm[2]+'&quot;);'}q=q.replace(tm[0],&quot;&quot;)}else{if(q.substr(0,1)!=&quot;@&quot;){fn[fn.length]='n = getNodes(n, mode, &quot;*&quot
 ;);'}}}else{if(tm){if(tm[1]==&quot;#&quot;){fn[fn.length]='n = byId(n, null, &quot;'+tm[2]+'&quot;);'}else{fn[fn.length]='n = byTag(n, &quot;'+tm[2]+'&quot;);'}q=q.replace(tm[0],&quot;&quot;)}}while(!(mm=q.match(modeRe))){var matched=false;for(var j=0;j&lt;tklen;j++){var t=tk[j];var m=q.match(t.re);if(m){fn[fn.length]=t.select.replace(tplRe,function(x,i){return m[i]});q=q.replace(m[0],&quot;&quot;);matched=true;break}}if(!matched){throw'Error parsing selector, parsing failed at &quot;'+q+'&quot;'}}if(mm[1]){fn[fn.length]='mode=&quot;'+mm[1].replace(trimRe,&quot;&quot;)+'&quot;;';q=q.replace(mm[1],&quot;&quot;)}}fn[fn.length]=&quot;return nodup(n);\n}&quot;;eval(fn.join(&quot;&quot;));return f},select:function(path,root,type){if(!root||root==document){root=document}if(typeof root==&quot;string&quot;){root=document.getElementById(root)}var paths=path.split(&quot;,&quot;),results=[];for(var i=0,len=paths.length;i&lt;len;i++){var p=paths[i].replace(trimRe,&quot;&quot;);if(!cache
 [p]){cache[p]=Ext.DomQuery.compile(p);if(!cache[p]){throw p+&quot; is not a valid selector&quot;}}var result=cache[p](root);if(result&amp;&amp;result!=document){results=results.concat(result)}}if(paths.length&gt;1){return nodup(results)}return results},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0]},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,&quot;&quot;);if(!valueCache[path]){valueCache[path]=Ext.DomQuery.compile(path,&quot;select&quot;)}var n=valueCache[path](root),v;n=n[0]?n[0]:n;if(typeof n.normalize==&quot;function&quot;){n.normalize()}v=(n&amp;&amp;n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v===&quot;&quot;)?defaultValue:v)},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v)},is:function(el,ss){if(typeof el==&quot;string&quot;){el=document.getElementById(el)}var isArray=Ext.isArray(el),result=Ext.DomQuery.filter(i
 sArray?el:[el],ss);return isArray?(result.length==el.length):(result.length&gt;0)},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,&quot;&quot;);if(!simpleCache[ss]){simpleCache[ss]=Ext.DomQuery.compile(ss,&quot;simple&quot;)}var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result},matchers:[{re:/^\.([\w-]+)/,select:'n = byClassName(n, null, &quot; {1} &quot;);'},{re:/^\:([\w-]+)(?:\(((?:[^\s&gt;\/]*|.*?))\))?/,select:'n = byPseudo(n, &quot;{1}&quot;, &quot;{2}&quot;);'},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['&quot;]?(.*?)[&quot;']?)?[\]\}])/,select:'n = byAttribute(n, &quot;{2}&quot;, &quot;{4}&quot;, &quot;{3}&quot;, &quot;{1}&quot;);'},{re:/^#([\w-]+)/,select:'n = byId(n, null, &quot;{1}&quot;);'},{re:/^@([\w-]+)/,select:'return {firstChild:{nodeValue:attrValue(n, &quot;{1}&quot;)}};'}],operators:{&quot;=&quot;:function(a,v){return a==v},&quot;!=&quot;:function(a,v){return a!=v},&quot;^=&quot;:function(a,v){return a&amp;&amp;a.subst
 r(0,v.length)==v},&quot;$=&quot;:function(a,v){return a&amp;&amp;a.substr(a.length-v.length)==v},&quot;*=&quot;:function(a,v){return a&amp;&amp;a.indexOf(v)!==-1},&quot;%=&quot;:function(a,v){return(a%v)==0},&quot;|=&quot;:function(a,v){return a&amp;&amp;(a==v||a.substr(0,v.length+1)==v+&quot;-&quot;)},&quot;~=&quot;:function(a,v){return a&amp;&amp;(&quot; &quot;+a+&quot; &quot;).indexOf(&quot; &quot;+v+&quot; &quot;)!=-1}},pseudos:{&quot;first-child&quot;:function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&amp;&amp;n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},&quot;last-child&quot;:function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&amp;&amp;n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},&quot;nth-child&quot;:function(c,a){var r=[],ri=-1,m=nthRe.exec(a==&quot;even&quot;&amp;&amp;&quot;2n&quot;||a==&quot;odd&quot;&amp;&amp;&quot;2n+1&quot;||!nthRe2.test(a)&amp;&amp;&quot;n+&quot;+a||a),f=(m[1]||1)-0,l=m[2]-0;for
 (var i=0,n;n=c[i];i++){var pn=n.parentNode;if(batch!=pn._batch){var j=0;for(var cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j}}pn._batch=batch}if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n}}else{if((n.nodeIndex+l)%f==0){r[++ri]=n}}}return r},&quot;only-child&quot;:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(!prev(ci)&amp;&amp;!next(ci)){r[++ri]=ci}}return r},empty:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var cns=ci.childNodes,j=0,cn,empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break}}if(empty){r[++ri]=ci}}return r},contains:function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if((ci.textContent||ci.innerText||&quot;&quot;).indexOf(v)!=-1){r[++ri]=ci}}return r},nodeValue:function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.firstChild&amp;&amp;ci.firstChild.nodeValue==v){r[++ri]=ci}}return r},checked:function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.checked==true){
 r[++ri]=ci}}return r},not:function(c,ss){return Ext.DomQuery.filter(c,ss,true)},any:function(c,selectors){var ss=selectors.split(&quot;|&quot;),r=[],ri=-1,s;for(var i=0,ci;ci=c[i];i++){for(var j=0;s=ss[j];j++){if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break}}}return r},odd:function(c){return this[&quot;nth-child&quot;](c,&quot;odd&quot;)},even:function(c){return this[&quot;nth-child&quot;](c,&quot;even&quot;)},nth:function(c,a){return c[a-1]||[]},first:function(c){return c[0]||[]},last:function(c){return c[c.length-1]||[]},has:function(c,ss){var s=Ext.DomQuery.select,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(s(ss,ci).length&gt;0){r[++ri]=ci}}return r},next:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&amp;&amp;is(n,ss)){r[++ri]=ci}}return r},prev:function(c,ss){var is=Ext.DomQuery.is,r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&amp;&amp;is(n,ss)){r[++ri]=ci}}return r}}}}();Ext.query=Ext.DomQuery.select;Ext.EventMana
 ger=function(){var u,m,i=false,l=Ext.lib.Event,n=Ext.lib.Dom,b=document,v=window,e=&quot;ie-deferred-loader&quot;,o=&quot;DOMContentLoaded&quot;,g=/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,q=[];function k(y){var B=false,x=0,w=q.length,B=false,z=false,A;if(y){if(y.getElementById||y.navigator){for(;x&lt;w;++x){A=q[x];if(A.el===y){B=A.id;break}}if(!B){B=Ext.id(y);q.push({id:B,el:y});z=true}}else{B=Ext.id(y)}if(!Ext.elCache[B]){Ext.Element.addToCache(new Ext.Element(y),B);if(z){Ext.elCache[B].skipGC=true}}}return B}function j(y,A,D,z,x,F){y=Ext.getDom(y);var w=k(y),E=Ext.elCache[w].events,B;B=l.on(y,A,x);E[A]=E[A]||[];E[A].push([D,x,F,B,z]);if(A==&quot;mousewheel&quot;&amp;&amp;y.addEventListener){var C=[&quot;DOMMouseScroll&quot;,x,false];y.addEventListener.apply(y,C);Ext.EventManager.addListener(v,&quot;unload&quot;,function(){y.removeEventListener.apply(y,C)})}if(A==&quot;mousedown&quot;&amp;&amp;y==document){Ext.Event
 Manager.stoppedMouseDownEvent.addListener(x)}}function c(){if(!i){Ext.isReady=i=true;if(m){clearInterval(m)}if(Ext.isGecko||Ext.isOpera){b.removeEventListener(o,c,false)}if(Ext.isIE){var w=b.getElementById(e);if(w){w.onreadystatechange=null;w.parentNode.removeChild(w)}}if(u){u.fire();u.listeners=[]}}}function a(){var w=&quot;complete&quot;;u=new Ext.util.Event();if(Ext.isGecko||Ext.isOpera){b.addEventListener(o,c,false)}else{if(Ext.isIE){b.write(&quot;&lt;script id=&quot;+e+' defer=&quot;defer&quot; src=&quot;//:&quot;&gt;&lt;\/script&gt;');b.getElementById(e).onreadystatechange=function(){if(this.readyState==w){c()}}}else{if(Ext.isWebKit){m=setInterval(function(){if(b.readyState==w){c()}},10)}}}l.on(v,&quot;load&quot;,c)}function s(w,x){return function(){var y=Ext.toArray(arguments);if(x.target==Ext.EventObject.setEvent(y[0]).target){w.apply(this,y)}}}function t(x,y,w){return function(z){w.delay(y.buffer,x,null,[new Ext.EventObjectImpl(z)])}}function p(A,z,w,y,x){return fun
 ction(B){Ext.EventManager.removeListener(z,w,y,x);A(B)}}function d(x,y,w){return function(A){var z=new Ext.util.DelayedTask(x);if(!w.tasks){w.tasks=[]}w.tasks.push(z);z.delay(y.delay||10,x,null,[new Ext.EventObjectImpl(A)])}}function h(B,A,w,D,E){var x=!Ext.isObject(w)?{}:w,y=Ext.getDom(B),z;D=D||x.fn;E=E||x.scope;if(!y){throw'Error listening for &quot;'+A+'&quot;. Element &quot;'+B+&quot;\&quot; doesn't exist.&quot;}function C(G){if(!Ext){return}G=Ext.EventObject.setEvent(G);var F;if(x.delegate){if(!(F=G.getTarget(x.delegate,y))){return}}else{F=G.target}if(x.stopEvent){G.stopEvent()}if(x.preventDefault){G.preventDefault()}if(x.stopPropagation){G.stopPropagation()}if(x.normalized){G=G.browserEvent}D.call(E||y,G,F,x)}if(x.target){C=s(C,x)}if(x.delay){C=d(C,x,D)}if(x.single){C=p(C,y,A,D,E)}if(x.buffer){z=new Ext.util.DelayedTask(C);C=t(C,x,z)}j(y,A,D,z,C,E);return C}var r={addListener:function(y,w,A,z,x){if(Ext.isObject(w)){var D=w,B,C;for(B in D){C=D[B];if(!g.test(B)){if(Ext.
 isFunction(C)){h(y,B,D,C,D.scope)}else{h(y,B,C)}}}}else{h(y,w,x,A,z)}},removeListener:function(z,D,H,I){z=Ext.getDom(z);var w=k(z),F=z&amp;&amp;(Ext.elCache[w].events)[D]||[],x,C,A,B,y,E,G;for(C=0,E=F.length;C&lt;E;C++){if(Ext.isArray(G=F[C])&amp;&amp;G[0]==H&amp;&amp;(!I||G[2]==I)){if(G[4]){G[4].cancel()}B=H.tasks&amp;&amp;H.tasks.length;if(B){while(B--){H.tasks[B].cancel()}delete H.tasks}y=x=G[1];if(l.extAdapter){y=G[3]}l.un(z,D,y);F.splice(C,1);if(F.length===0){delete Ext.elCache[w].events[D]}for(B in Ext.elCache[w].events){return false}Ext.elCache[w].events={};return false}}if(D==&quot;mousewheel&quot;&amp;&amp;z.addEventListener&amp;&amp;x){z.removeEventListener(&quot;DOMMouseScroll&quot;,x,false)}if(D==&quot;mousedown&quot;&amp;&amp;z==b&amp;&amp;x){Ext.EventManager.stoppedMouseDownEvent.removeListener(x)}},removeAll:function(x){x=Ext.getDom(x);var w=k(x),C=Ext.elCache[w]||{},F=C.events||{},B,A,D,y,E,z;for(y in F){if(F.hasOwnProperty(y)){B=F[y];for(A=0,D=B.length;A&lt;
 D;A++){E=B[A];if(E[4]){E[4].cancel()}if(E[0].tasks&amp;&amp;(z=E[0].tasks.length)){while(z--){E[0].tasks[z].cancel()}delete E.tasks}l.un(x,y,l.extAdapter?E[3]:E[1])}}}if(Ext.elCache[w]){Ext.elCache[w].events={}}},getListeners:function(z,w){z=Ext.getDom(z);var B=k(z),x=Ext.elCache[B]||{},A=x.events||{},y=[];if(A&amp;&amp;A[w]){return A[w]}else{return null}},purgeElement:function(y,w,A){y=Ext.getDom(y);var x=k(y),D=Ext.elCache[x]||{},E=D.events||{},z,C,B;if(A){if(E&amp;&amp;E.hasOwnProperty(A)){C=E[A];for(z=0,B=C.length;z&lt;B;z++){Ext.EventManager.removeListener(y,A,C[z][0])}}}else{Ext.EventManager.removeAll(y)}if(w&amp;&amp;y&amp;&amp;y.childNodes){for(z=0,B=y.childNodes.length;z&lt;B;z++){Ext.EventManager.purgeElement(y.childNodes[z],w,A)}}},_unload:function(){var w;for(w in Ext.elCache){Ext.EventManager.removeAll(w)}},onDocumentReady:function(y,x,w){if(i){u.addListener(y,x,w);u.fire();u.listeners=[]}else{if(!u){a()}w=w||{};w.delay=w.delay||1;u.addListener(y,x,w)}}};r.on=r.
 addListener;r.un=r.removeListener;r.stoppedMouseDownEvent=new Ext.util.Event();return r}();Ext.onReady=Ext.EventManager.onDocumentReady;(function(){var a=function(){var c=document.body||document.getElementsByTagName(&quot;body&quot;)[0];if(!c){return false}var b=[&quot; &quot;,Ext.isIE?&quot;ext-ie &quot;+(Ext.isIE6?&quot;ext-ie6&quot;:(Ext.isIE7?&quot;ext-ie7&quot;:&quot;ext-ie8&quot;)):Ext.isGecko?&quot;ext-gecko &quot;+(Ext.isGecko2?&quot;ext-gecko2&quot;:&quot;ext-gecko3&quot;):Ext.isOpera?&quot;ext-opera&quot;:Ext.isWebKit?&quot;ext-webkit&quot;:&quot;&quot;];if(Ext.isSafari){b.push(&quot;ext-safari &quot;+(Ext.isSafari2?&quot;ext-safari2&quot;:(Ext.isSafari3?&quot;ext-safari3&quot;:&quot;ext-safari4&quot;)))}else{if(Ext.isChrome){b.push(&quot;ext-chrome&quot;)}}if(Ext.isMac){b.push(&quot;ext-mac&quot;)}if(Ext.isLinux){b.push(&quot;ext-linux&quot;)}if(Ext.isStrict||Ext.isBorderBox){var d=c.parentNode;if(d){d.className+=Ext.isStrict?&quot; ext-strict&quot;:&quot; ext-bor
 der-box&quot;}}c.className+=b.join(&quot; &quot;);return true};if(!a()){Ext.onReady(a)}})();Ext.EventObject=function(){var b=Ext.lib.Event,a={3:13,63234:37,63235:39,63232:38,63233:40,63276:33,63277:34,63272:46,63273:36,63275:35},c=Ext.isIE?{1:0,4:1,2:2}:(Ext.isWebKit?{1:0,2:1,3:2}:{0:0,1:1,2:2});Ext.EventObjectImpl=function(d){if(d){this.setEvent(d.browserEvent||d)}};Ext.EventObjectImpl.prototype={setEvent:function(g){var d=this;if(g==d||(g&amp;&amp;g.browserEvent)){return g}d.browserEvent=g;if(g){d.button=g.button?c[g.button]:(g.which?g.which-1:-1);if(g.type==&quot;click&quot;&amp;&amp;d.button==-1){d.button=0}d.type=g.type;d.shiftKey=g.shiftKey;d.ctrlKey=g.ctrlKey||g.metaKey||false;d.altKey=g.altKey;d.keyCode=g.keyCode;d.charCode=g.charCode;d.target=b.getTarget(g);d.xy=b.getXY(g)}else{d.button=-1;d.shiftKey=false;d.ctrlKey=false;d.altKey=false;d.keyCode=0;d.charCode=0;d.target=null;d.xy=[0,0]}return d},stopEvent:function(){var d=this;if(d.browserEvent){if(d.browserEvent.ty
 pe==&quot;mousedown&quot;){Ext.EventManager.stoppedMouseDownEvent.fire(d)}b.stopEvent(d.browserEvent)}},preventDefault:function(){if(this.browserEvent){b.preventDefault(this.browserEvent)}},stopPropagation:function(){var d=this;if(d.browserEvent){if(d.browserEvent.type==&quot;mousedown&quot;){Ext.EventManager.stoppedMouseDownEvent.fire(d)}b.stopPropagation(d.browserEvent)}},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){return this.normalizeKey(this.keyCode||this.charCode)},normalizeKey:function(d){return Ext.isSafari?(a[d]||d):d},getPageX:function(){return this.xy[0]},getPageY:function(){return this.xy[1]},getXY:function(){return this.xy},getTarget:function(e,g,d){return e?Ext.fly(this.target).findParent(e,g,d):(d?Ext.get(this.target):this.target)},getRelatedTarget:function(){return this.browserEvent?b.getRelatedTarget(this.browserEvent):null},getWheelDelta:function(){var d=this.browserEvent;var g=0;if(d.wheelDelta){g=d.wheelDelta/120}else{if(d
 .detail){g=-d.detail/3}}return g},within:function(g,h,d){if(g){var e=this[h?&quot;getRelatedTarget&quot;:&quot;getTarget&quot;]();return e&amp;&amp;((d?(e==Ext.getDom(g)):false)||Ext.fly(g).contains(e))}return false}};return new Ext.EventObjectImpl()}();(function(){var j=document;Ext.Element=function(o,p){var q=typeof o==&quot;string&quot;?j.getElementById(o):o,r;if(!q){return null}r=q.id;if(!p&amp;&amp;r&amp;&amp;Ext.elCache[r]){return Ext.elCache[r].el}this.dom=q;this.id=r||Ext.id(q)};var a=Ext.lib.Dom,g=Ext.DomHelper,m=Ext.lib.Event,e=Ext.lib.Anim,h=Ext.Element,b=Ext.elCache;h.prototype={set:function(t,q){var r=this.dom,p,s,q=(q!==false)&amp;&amp;!!r.setAttribute;for(p in t){if(t.hasOwnProperty(p)){s=t[p];if(p==&quot;style&quot;){g.applyStyles(r,s)}else{if(p==&quot;cls&quot;){r.className=s}else{if(q){r.setAttribute(p,s)}else{r[p]=s}}}}}return this},defaultUnit:&quot;px&quot;,is:function(o){return Ext.DomQuery.is(this.dom,o)},focus:function(r,q){var o=this,q=q||o.dom;try{i
 f(Number(r)){o.focus.defer(r,null,[null,q])}else{q.focus()}}catch(p){}return o},blur:function(){try{this.dom.blur()}catch(o){}return this},getValue:function(o){var p=this.dom.value;return o?parseInt(p,10):p},addListener:function(o,r,q,p){Ext.EventManager.on(this.dom,o,r,q||this,p);return this},removeListener:function(o,q,p){Ext.EventManager.removeListener(this.dom,o,q,p||this);return this},removeAllListeners:function(){Ext.EventManager.removeAll(this.dom);return this},purgeAllListeners:function(){Ext.EventManager.purgeElement(this,true);return this},addUnits:function(o){if(o===&quot;&quot;||o==&quot;auto&quot;||o===undefined){o=o||&quot;&quot;}else{if(!isNaN(o)||!k.test(o)){o=o+(this.defaultUnit||&quot;px&quot;)}}return o},load:function(p,q,o){Ext.Ajax.request(Ext.apply({params:q,url:p.url||p,callback:o,el:this.dom,indicatorText:p.indicatorText||&quot;&quot;},Ext.isObject(p)?p:{}));return this},isBorderBox:function(){return i[(this.dom.tagName||&quot;&quot;).toLowerCase()]||
 Ext.isBorderBox},remove:function(){var o=this,p=o.dom;if(p){delete o.dom;Ext.removeNode(p)}},hover:function(p,o,r,q){var s=this;s.on(&quot;mouseenter&quot;,p,r||s.dom,q);s.on(&quot;mouseleave&quot;,o,r||s.dom,q);return s},contains:function(o){return !o?false:Ext.lib.Dom.isAncestor(this.dom,o.dom?o.dom:o)},getAttributeNS:function(p,o){return this.getAttribute(o,p)},getAttribute:Ext.isIE?function(o,q){var r=this.dom,p=typeof r[q+&quot;:&quot;+o];if([&quot;undefined&quot;,&quot;unknown&quot;].indexOf(p)==-1){return r[q+&quot;:&quot;+o]}return r[o]}:function(o,p){var q=this.dom;return q.getAttributeNS(p,o)||q.getAttribute(p+&quot;:&quot;+o)||q.getAttribute(o)||q[o]},update:function(o){if(this.dom){this.dom.innerHTML=o}return this}};var n=h.prototype;h.addMethods=function(p){Ext.apply(n,p)};n.on=n.addListener;n.un=n.removeListener;n.autoBoxAdjust=true;var k=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i,d;h.get=function(p){var o,s,r;if(!p){return null}if(typeof p==&quot;string&quot;){if(!
 (s=j.getElementById(p))){return null}if(b[p]&amp;&amp;b[p].el){o=b[p].el;o.dom=s}else{o=h.addToCache(new h(s))}return o}else{if(p.tagName){if(!(r=p.id)){r=Ext.id(p)}if(b[r]&amp;&amp;b[r].el){o=b[r].el;o.dom=p}else{o=h.addToCache(new h(p))}return o}else{if(p instanceof h){if(p!=d){p.dom=j.getElementById(p.id)||p.dom}return p}else{if(p.isComposite){return p}else{if(Ext.isArray(p)){return h.select(p)}else{if(p==j){if(!d){var q=function(){};q.prototype=h.prototype;d=new q();d.dom=j}return d}}}}}}return null};h.addToCache=function(o,p){p=p||o.id;b[p]={el:o,data:{},events:{}};return o};h.data=function(p,o,q){p=h.get(p);if(!p){return null}var r=b[p.id].data;if(arguments.length==2){return r[o]}else{return(r[o]=q)}};function l(){if(!Ext.enableGarbageCollector){clearInterval(h.collectorThreadId)}else{var p,r,u,s;for(p in b){s=b[p];if(s.skipGC){continue}r=s.el;u=r.dom;if(!u||!u.parentNode||(!u.offsetParent&amp;&amp;!j.getElementById(p))){if(Ext.enableListenerCollection){Ext.EventManage
 r.removeAll(u)}delete b[p]}}if(Ext.isIE){var q={};for(p in b){q[p]=b[p]}b=Ext.elCache=q}}}h.collectorThreadId=setInterval(l,30000);var c=function(){};c.prototype=h.prototype;h.Flyweight=function(o){this.dom=o};h.Flyweight.prototype=new c();h.Flyweight.prototype.isFlyweight=true;h._flyweights={};h.fly=function(q,o){var p=null;o=o||&quot;_global&quot;;if(q=Ext.getDom(q)){(h._flyweights[o]=h._flyweights[o]||new h.Flyweight()).dom=q;p=h._flyweights[o]}return p};Ext.get=h.get;Ext.fly=h.fly;var i=Ext.isStrict?{select:1}:{input:1,select:1,textarea:1};if(Ext.isIE||Ext.isGecko){i.button=1}Ext.EventManager.on(window,&quot;unload&quot;,function(){delete b;delete h._flyweights})})();Ext.Element.addMethods(function(){var d=&quot;parentNode&quot;,b=&quot;nextSibling&quot;,c=&quot;previousSibling&quot;,e=Ext.DomQuery,a=Ext.get;return{findParent:function(m,l,h){var j=this.dom,g=document.body,k=0,i;if(Ext.isGecko&amp;&amp;Object.prototype.toString.call(j)==&quot;[object XULElement]&quot;){re
 turn null}l=l||50;if(isNaN(l)){i=Ext.getDom(l);l=Number.MAX_VALUE}while(j&amp;&amp;j.nodeType==1&amp;&amp;k&lt;l&amp;&amp;j!=g&amp;&amp;j!=i){if(e.is(j,m)){return h?a(j):j}k++;j=j.parentNode}return null},findParentNode:function(j,i,g){var h=Ext.fly(this.dom.parentNode,&quot;_internal&quot;);return h?h.findParent(j,i,g):null},up:function(h,g){return this.findParentNode(h,g,true)},select:function(g){return Ext.Element.select(g,this.dom)},query:function(g){return e.select(g,this.dom)},child:function(g,h){var i=e.selectNode(g,this.dom);return h?i:a(i)},down:function(g,h){var i=e.selectNode(&quot; &gt; &quot;+g,this.dom);return h?i:a(i)},parent:function(g,h){return this.matchNode(d,d,g,h)},next:function(g,h){return this.matchNode(b,b,g,h)},prev:function(g,h){return this.matchNode(c,c,g,h)},first:function(g,h){return this.matchNode(b,&quot;firstChild&quot;,g,h)},last:function(g,h){return this.matchNode(c,&quot;lastChild&quot;,g,h)},matchNode:function(h,k,g,i){var j=this.dom[k];whi
 le(j){if(j.nodeType==1&amp;&amp;(!g||e.is(j,g))){return !i?a(j):j}j=j[h]}return null}}}());Ext.Element.addMethods(function(){var c=Ext.getDom,a=Ext.get,b=Ext.DomHelper;return{appendChild:function(d){return a(d).appendTo(this)},appendTo:function(d){c(d).appendChild(this.dom);return this},insertBefore:function(d){(d=c(d)).parentNode.insertBefore(this.dom,d);return this},insertAfter:function(d){(d=c(d)).parentNode.insertBefore(this.dom,d.nextSibling);return this},insertFirst:function(e,d){e=e||{};if(e.nodeType||e.dom||typeof e==&quot;string&quot;){e=c(e);this.dom.insertBefore(e,this.dom.firstChild);return !d?a(e):e}else{return this.createChild(e,this.dom.firstChild,d)}},replace:function(d){d=a(d);this.insertBefore(d);d.remove();return this},replaceWith:function(d){var e=this;if(d.nodeType||d.dom||typeof d==&quot;string&quot;){d=c(d);e.dom.parentNode.insertBefore(d,e.dom)}else{d=b.insertBefore(e.dom,d)}delete Ext.elCache[e.id];Ext.removeNode(e.dom);e.id=Ext.id(e.dom=d);Ext.Eleme
 nt.addToCache(e.isFlyweight?new Ext.Element(e.dom):e);return e},createChild:function(e,d,g){e=e||{tag:&quot;div&quot;};return d?b.insertBefore(d,e,g!==true):b[!this.dom.firstChild?&quot;overwrite&quot;:&quot;append&quot;](this.dom,e,g!==true)},wrap:function(d,e){var g=b.insertBefore(this.dom,d||{tag:&quot;div&quot;},!e);g.dom?g.dom.appendChild(this.dom):g.appendChild(this.dom);return g},insertHtml:function(e,g,d){var h=b.insertHtml(e,this.dom,g);return d?Ext.get(h):h}}}());Ext.Element.addMethods(function(){var h={},x=/(-[a-z])/gi,b={},s=document.defaultView,u=Ext.isIE?&quot;styleFloat&quot;:&quot;cssFloat&quot;,C=/alpha\(opacity=(.*)\)/i,l=/^\s+|\s+$/g,A=Ext.Element,d=&quot;padding&quot;,c=&quot;margin&quot;,y=&quot;border&quot;,t=&quot;-left&quot;,q=&quot;-right&quot;,w=&quot;-top&quot;,o=&quot;-bottom&quot;,j=&quot;-width&quot;,r=Math,z=&quot;hidden&quot;,e=&quot;isClipped&quot;,k=&quot;overflow&quot;,n=&quot;overflow-x&quot;,m=&quot;overflow-y&quot;,B=&quot;originalClip&q
 uot;,i={l:y+t+j,r:y+q+j,t:y+w+j,b:y+o+j},g={l:d+t,r:d+q,t:d+w,b:d+o},a={l:c+t,r:c+q,t:c+w,b:c+o},D=Ext.Element.data;function p(E,F){return F.charAt(1).toUpperCase()}function v(E){return h[E]||(h[E]=E==&quot;float&quot;?u:E.replace(x,p))}return{adjustWidth:function(E){var F=this;var G=Ext.isNumber(E);if(G&amp;&amp;F.autoBoxAdjust&amp;&amp;!F.isBorderBox()){E-=(F.getBorderWidth(&quot;lr&quot;)+F.getPadding(&quot;lr&quot;))}return(G&amp;&amp;E&lt;0)?0:E},adjustHeight:function(E){var F=this;var G=Ext.isNumber(E);if(G&amp;&amp;F.autoBoxAdjust&amp;&amp;!F.isBorderBox()){E-=(F.getBorderWidth(&quot;tb&quot;)+F.getPadding(&quot;tb&quot;))}return(G&amp;&amp;E&lt;0)?0:E},addClass:function(H){var I=this,G,E,F;H=Ext.isArray(H)?H:[H];for(G=0,E=H.length;G&lt;E;G++){F=H[G];if(F){I.dom.className+=(!I.hasClass(F)&amp;&amp;F?&quot; &quot;+F:&quot;&quot;)}}return I},radioClass:function(H){var I=this.dom.parentNode.childNodes,F;H=Ext.isArray(H)?H:[H];for(var G=0,E=I.length;G&lt;E;G++){F=I[G];if(
 F&amp;&amp;F.nodeType==1){Ext.fly(F,&quot;_internal&quot;).removeClass(H)}}return this.addClass(H)},removeClass:function(H){var I=this,F;H=Ext.isArray(H)?H:[H];if(I.dom&amp;&amp;I.dom.className){for(var G=0,E=H.length;G&lt;E;G++){F=H[G];if(F){I.dom.className=I.dom.className.replace(b[F]=b[F]||new RegExp(&quot;(?:^|\\s+)&quot;+F+&quot;(?:\\s+|$)&quot;,&quot;g&quot;),&quot; &quot;)}}}return I},toggleClass:function(E){return this.hasClass(E)?this.removeClass(E):this.addClass(E)},hasClass:function(E){return E&amp;&amp;(&quot; &quot;+this.dom.className+&quot; &quot;).indexOf(&quot; &quot;+E+&quot; &quot;)!=-1},replaceClass:function(F,E){return this.removeClass(F).addClass(E)},isStyle:function(E,F){return this.getStyle(E)==F},getStyle:function(){return s&amp;&amp;s.getComputedStyle?function(K){var H=this.dom,E,G,F,I,J=Ext.isWebKit,I;if(H==document){return null}K=v(K);if(J&amp;&amp;/marginRight/.test(K)){I=this.getStyle(&quot;display&quot;);H.style.display=&quot;inline-block&quot;}
 F=(E=H.style[K])?E:(G=s.getComputedStyle(H,&quot;&quot;))?G[K]:null;if(J){if(F==&quot;rgba(0, 0, 0, 0)&quot;){F=&quot;transparent&quot;}else{if(I){H.style.display=I}}}return F}:function(I){var G=this.dom,E,F;if(G==document){return null}if(I==&quot;opacity&quot;){if(G.style.filter.match){if(E=G.style.filter.match(C)){var H=parseFloat(E[1]);if(!isNaN(H)){return H?H/100:0}}}return 1}I=v(I);return G.style[I]||((F=G.currentStyle)?F[I]:null)}}(),getColor:function(E,F,J){var H=this.getStyle(E),G=Ext.isDefined(J)?J:&quot;#&quot;,I;if(!H||/transparent|inherit/.test(H)){return F}if(/^r/.test(H)){Ext.each(H.slice(4,H.length-1).split(&quot;,&quot;),function(K){I=parseInt(K,10);G+=(I&lt;16?&quot;0&quot;:&quot;&quot;)+I.toString(16)})}else{H=H.replace(&quot;#&quot;,&quot;&quot;);G+=H.length==3?H.replace(/^(\w)(\w)(\w)$/,&quot;$1$1$2$2$3$3&quot;):H}return(G.length&gt;5?G.toLowerCase():F)},setStyle:function(I,H){var F,G,E;if(!Ext.isObject(I)){F={};F[I]=H;I=F}for(G in I){H=I[G];G==&quot;opac
 ity&quot;?this.setOpacity(H):this.dom.style[v(G)]=H}return this},setOpacity:function(F,E){var I=this,G=I.dom.style;if(!E||!I.anim){if(Ext.isIE){var H=F&lt;1?&quot;alpha(opacity=&quot;+F*100+&quot;)&quot;:&quot;&quot;,J=G.filter.replace(C,&quot;&quot;).replace(l,&quot;&quot;);G.zoom=1;G.filter=J+(J.length&gt;0?&quot; &quot;:&quot;&quot;)+H}else{G.opacity=F}}else{I.anim({opacity:{to:F}},I.preanim(arguments,1),null,0.35,&quot;easeIn&quot;)}return I},clearOpacity:function(){var E=this.dom.style;if(Ext.isIE){if(!Ext.isEmpty(E.filter)){E.filter=E.filter.replace(C,&quot;&quot;).replace(l,&quot;&quot;)}}else{E.opacity=E[&quot;-moz-opacity&quot;]=E[&quot;-khtml-opacity&quot;]=&quot;&quot;}return this},getHeight:function(G){var F=this,I=F.dom,H=Ext.isIE&amp;&amp;F.isStyle(&quot;display&quot;,&quot;none&quot;),E=r.max(I.offsetHeight,H?0:I.clientHeight)||0;E=!G?E:E-F.getBorderWidth(&quot;tb&quot;)-F.getPadding(&quot;tb&quot;);return E&lt;0?0:E},getWidth:function(F){var G=this,I=G.dom,H=
 Ext.isIE&amp;&amp;G.isStyle(&quot;display&quot;,&quot;none&quot;),E=r.max(I.offsetWidth,H?0:I.clientWidth)||0;E=!F?E:E-G.getBorderWidth(&quot;lr&quot;)-G.getPadding(&quot;lr&quot;);return E&lt;0?0:E},setWidth:function(F,E){var G=this;F=G.adjustWidth(F);!E||!G.anim?G.dom.style.width=G.addUnits(F):G.anim({width:{to:F}},G.preanim(arguments,1));return G},setHeight:function(E,F){var G=this;E=G.adjustHeight(E);!F||!G.anim?G.dom.style.height=G.addUnits(E):G.anim({height:{to:E}},G.preanim(arguments,1));return G},getBorderWidth:function(E){return this.addStyles(E,i)},getPadding:function(E){return this.addStyles(E,g)},clip:function(){var E=this,F=E.dom;if(!D(F,e)){D(F,e,true);D(F,B,{o:E.getStyle(k),x:E.getStyle(n),y:E.getStyle(m)});E.setStyle(k,z);E.setStyle(n,z);E.setStyle(m,z)}return E},unclip:function(){var E=this,G=E.dom;if(D(G,e)){D(G,e,false);var F=D(G,B);if(F.o){E.setStyle(k,F.o)}if(F.x){E.setStyle(n,F.x)}if(F.y){E.setStyle(m,F.y)}}return E},addStyles:function(J,I){var K=0,F=J.
 match(/\w/g),H;for(var G=0,E=F.length;G&lt;E;G++){H=F[G]&amp;&amp;parseInt(this.getStyle(I[F[G]]),10);if(H){K+=r.abs(H)}}return K},margins:a}}());(function(){var a=Ext.lib.Dom,b=&quot;left&quot;,g=&quot;right&quot;,d=&quot;top&quot;,i=&quot;bottom&quot;,h=&quot;position&quot;,c=&quot;static&quot;,e=&quot;relative&quot;,j=&quot;auto&quot;,k=&quot;z-index&quot;;Ext.Element.addMethods({getX:function(){return a.getX(this.dom)},getY:function(){return a.getY(this.dom)},getXY:function(){return a.getXY(this.dom)},getOffsetsTo:function(l){var n=this.getXY(),m=Ext.fly(l,&quot;_internal&quot;).getXY();return[n[0]-m[0],n[1]-m[1]]},setX:function(l,m){return this.setXY([l,this.getY()],this.animTest(arguments,m,1))},setY:function(m,l){return this.setXY([this.getX(),m],this.animTest(arguments,l,1))},setLeft:function(l){this.setStyle(b,this.addUnits(l));return this},setTop:function(l){this.setStyle(d,this.addUnits(l));return this},setRight:function(l){this.setStyle(g,this.addUnits(l));return
  this},setBottom:function(l){this.setStyle(i,this.addUnits(l));return this},setXY:function(n,l){var m=this;if(!l||!m.anim){a.setXY(m.dom,n)}else{m.anim({points:{to:n}},m.preanim(arguments,1),&quot;motion&quot;)}return m},setLocation:function(l,n,m){return this.setXY([l,n],this.animTest(arguments,m,2))},moveTo:function(l,n,m){return this.setXY([l,n],this.animTest(arguments,m,2))},getLeft:function(l){return !l?this.getX():parseInt(this.getStyle(b),10)||0},getRight:function(l){var m=this;return !l?m.getX()+m.getWidth():(m.getLeft(true)+m.getWidth())||0},getTop:function(l){return !l?this.getY():parseInt(this.getStyle(d),10)||0},getBottom:function(l){var m=this;return !l?m.getY()+m.getHeight():(m.getTop(true)+m.getHeight())||0},position:function(p,o,l,n){var m=this;if(!p&amp;&amp;m.isStyle(h,c)){m.setStyle(h,e)}else{if(p){m.setStyle(h,p)}}if(o){m.setStyle(k,o)}if(l||n){m.setXY([l||false,n||false])}},clearPositioning:function(l){l=l||&quot;&quot;;this.setStyle({left:l,right:l,top:
 l,bottom:l,&quot;z-index&quot;:&quot;&quot;,position:c});return this},getPositioning:function(){var m=this.getStyle(b);var n=this.getStyle(d);return{position:this.getStyle(h),left:m,right:m?&quot;&quot;:this.getStyle(g),top:n,bottom:n?&quot;&quot;:this.getStyle(i),&quot;z-index&quot;:this.getStyle(k)}},setPositioning:function(l){var n=this,m=n.dom.style;n.setStyle(l);if(l.right==j){m.right=&quot;&quot;}if(l.bottom==j){m.bottom=&quot;&quot;}return n},translatePoints:function(m,u){u=isNaN(m[1])?u:m[1];m=isNaN(m[0])?m:m[0];var q=this,r=q.isStyle(h,e),s=q.getXY(),n=parseInt(q.getStyle(b),10),p=parseInt(q.getStyle(d),10);n=!isNaN(n)?n:(r?0:q.dom.offsetLeft);p=!isNaN(p)?p:(r?0:q.dom.offsetTop);return{left:(m-s[0]+n),top:(u-s[1]+p)}},animTest:function(m,l,n){return !!l&amp;&amp;this.preanim?this.preanim(m,n):false}})})();Ext.Element.addMethods({isScrollable:function(){var a=this.dom;return a.scrollHeight&gt;a.clientHeight||a.scrollWidth&gt;a.clientWidth},scrollTo:function(a,b){this
 .dom[&quot;scroll&quot;+(/top/i.test(a)?&quot;Top&quot;:&quot;Left&quot;)]=b;return this},getScroll:function(){var i=this.dom,h=document,a=h.body,c=h.documentElement,b,g,e;if(i==h||i==a){if(Ext.isIE&amp;&amp;Ext.isStrict){b=c.scrollLeft;g=c.scrollTop}else{b=window.pageXOffset;g=window.pageYOffset}e={left:b||(a?a.scrollLeft:0),top:g||(a?a.scrollTop:0)}}else{e={left:i.scrollLeft,top:i.scrollTop}}return e}});Ext.Element.VISIBILITY=1;Ext.Element.DISPLAY=2;Ext.Element.addMethods(function(){var h=&quot;visibility&quot;,d=&quot;display&quot;,b=&quot;hidden&quot;,j=&quot;none&quot;,a=&quot;originalDisplay&quot;,c=&quot;visibilityMode&quot;,e=Ext.Element.DISPLAY,g=Ext.Element.data,i=function(m){var l=g(m,a);if(l===undefined){g(m,a,l=&quot;&quot;)}return l},k=function(n){var l=g(n,c);if(l===undefined){g(n,c,l=1)}return l};return{originalDisplay:&quot;&quot;,visibilityMode:1,setVisibilityMode:function(l){g(this.dom,c,l);return this},animate:function(m,o,n,p,l){this.anim(m,{duration:o,c
 allback:n,easing:p},l);return this},anim:function(o,p,m,r,n,l){m=m||&quot;run&quot;;p=p||{};var q=this,s=Ext.lib.Anim[m](q.dom,o,(p.duration||r)||0.35,(p.easing||n)||&quot;easeOut&quot;,function(){if(l){l.call(q)}if(p.callback){p.callback.call(p.scope||q,q,p)}},q);p.anim=s;return s},preanim:function(l,m){return !l[m]?false:(Ext.isObject(l[m])?l[m]:{duration:l[m+1],callback:l[m+2],easing:l[m+3]})},isVisible:function(){return !this.isStyle(h,b)&amp;&amp;!this.isStyle(d,j)},setVisible:function(p,m){var n=this,o=n.dom,l=k(this.dom)==e;if(!m||!n.anim){if(l){n.setDisplayed(p)}else{n.fixDisplay();o.style.visibility=p?&quot;visible&quot;:b}}else{if(p){n.setOpacity(0.01);n.setVisible(true)}n.anim({opacity:{to:(p?1:0)}},n.preanim(arguments,1),null,0.35,&quot;easeIn&quot;,function(){if(!p){o.style[l?d:h]=(l)?j:b;Ext.fly(o).setOpacity(1)}})}return n},toggle:function(l){var m=this;m.setVisible(!m.isVisible(),m.preanim(arguments,0));return m},setDisplayed:function(l){if(typeof l==&quot;bo
 olean&quot;){l=l?i(this.dom):j}this.setStyle(d,l);return this},fixDisplay:function(){var l=this;if(l.isStyle(d,j)){l.setStyle(h,b);l.setStyle(d,i(this.dom));if(l.isStyle(d,j)){l.setStyle(d,&quot;block&quot;)}}},hide:function(l){this.setVisible(false,this.preanim(arguments,0));return this},show:function(l){this.setVisible(true,this.preanim(arguments,0));return this}}}());(function(){var y=null,A=undefined,k=true,t=false,j=&quot;setX&quot;,h=&quot;setY&quot;,a=&quot;setXY&quot;,n=&quot;left&quot;,l=&quot;bottom&quot;,s=&quot;top&quot;,m=&quot;right&quot;,q=&quot;height&quot;,g=&quot;width&quot;,i=&quot;points&quot;,w=&quot;hidden&quot;,z=&quot;absolute&quot;,u=&quot;visible&quot;,e=&quot;motion&quot;,o=&quot;position&quot;,r=&quot;easeOut&quot;,d=new Ext.Element.Flyweight(),v={},x=function(B){return B||{}},p=function(B){d.dom=B;d.id=Ext.id(B);return d},c=function(B){if(!v[B]){v[B]=[]}return v[B]},b=function(C,B){v[C]=B};Ext.enableFx=k;Ext.Fx={switchStatements:function(C,D,B){r
 eturn D.apply(this,B[C])},slideIn:function(H,E){E=x(E);var J=this,G=J.dom,M=G.style,O,B,L,D,C,M,I,N,K,F;H=H||&quot;t&quot;;J.queueFx(E,function(){O=p(G).getXY();p(G).fixDisplay();B=p(G).getFxRestore();L={x:O[0],y:O[1],0:O[0],1:O[1],width:G.offsetWidth,height:G.offsetHeight};L.right=L.x+L.width;L.bottom=L.y+L.height;p(G).setWidth(L.width).setHeight(L.height);D=p(G).fxWrap(B.pos,E,w);M.visibility=u;M.position=z;function P(){p(G).fxUnwrap(D,B.pos,E);M.width=B.width;M.height=B.height;p(G).afterFx(E)}N={to:[L.x,L.y]};K={to:L.width};F={to:L.height};function Q(U,R,V,S,X,Z,ac,ab,aa,W,T){var Y={};p(U).setWidth(V).setHeight(S);if(p(U)[X]){p(U)[X](Z)}R[ac]=R[ab]=&quot;0&quot;;if(aa){Y.width=aa}if(W){Y.height=W}if(T){Y.points=T}return Y}I=p(G).switchStatements(H.toLowerCase(),Q,{t:[D,M,L.width,0,y,y,n,l,y,F,y],l:[D,M,0,L.height,y,y,m,s,K,y,y],r:[D,M,L.width,L.height,j,L.right,n,s,y,y,N],b:[D,M,L.width,L.height,h,L.bottom,n,s,y,F,N],tl:[D,M,0,0,y,y,m,l,K,F,N],bl:[D,M,0,0,h,L.y+L.height,m
 ,s,K,F,N],br:[D,M,0,0,a,[L.right,L.bottom],n,s,K,F,N],tr:[D,M,0,0,j,L.x+L.width,n,l,K,F,N]});M.visibility=u;p(D).show();arguments.callee.anim=p(D).fxanim(I,E,e,0.5,r,P)});return J},slideOut:function(F,D){D=x(D);var H=this,E=H.dom,K=E.style,L=H.getXY(),C,B,I,J,G={to:0};F=F||&quot;t&quot;;H.queueFx(D,function(){B=p(E).getFxRestore();I={x:L[0],y:L[1],0:L[0],1:L[1],width:E.offsetWidth,height:E.offsetHeight};I.right=I.x+I.width;I.bottom=I.y+I.height;p(E).setWidth(I.width).setHeight(I.height);C=p(E).fxWrap(B.pos,D,u);K.visibility=u;K.position=z;p(C).setWidth(I.width).setHeight(I.height);function M(){D.useDisplay?p(E).setDisplayed(t):p(E).hide();p(E).fxUnwrap(C,B.pos,D);K.width=B.width;K.height=B.height;p(E).afterFx(D)}function N(O,W,U,X,S,V,R,T,Q){var P={};O[W]=O[U]=&quot;0&quot;;P[X]=S;if(V){P[V]=R}if(T){P[T]=Q}return P}J=p(E).switchStatements(F.toLowerCase(),N,{t:[K,n,l,q,G],l:[K,m,s,g,G],r:[K,n,s,g,G,i,{to:[I.right,I.y]}],b:[K,n,s,q,G,i,{to:[I.x,I.bottom]}],tl:[K,m,l,g,G,q,G],b
 l:[K,m,s,g,G,q,G,i,{to:[I.x,I.bottom]}],br:[K,n,s,g,G,q,G,i,{to:[I.x+I.width,I.bottom]}],tr:[K,n,l,g,G,q,G,i,{to:[I.right,I.y]}]});arguments.callee.anim=p(C).fxanim(J,D,e,0.5,r,M)});return H},puff:function(H){H=x(H);var F=this,G=F.dom,C=G.style,D,B,E;F.queueFx(H,function(){D=p(G).getWidth();B=p(G).getHeight();p(G).clearOpacity();p(G).show();E=p(G).getFxRestore();function I(){H.useDisplay?p(G).setDisplayed(t):p(G).hide();p(G).clearOpacity();p(G).setPositioning(E.pos);C.width=E.width;C.height=E.height;C.fontSize=&quot;&quot;;p(G).afterFx(H)}arguments.callee.anim=p(G).fxanim({width:{to:p(G).adjustWidth(D*2)},height:{to:p(G).adjustHeight(B*2)},points:{by:[-D*0.5,-B*0.5]},opacity:{to:0},fontSize:{to:200,unit:&quot;%&quot;}},H,e,0.5,r,I)});return F},switchOff:function(F){F=x(F);var D=this,E=D.dom,B=E.style,C;D.queueFx(F,function(){p(E).clearOpacity();p(E).clip();C=p(E).getFxRestore();function G(){F.useDisplay?p(E).setDisplayed(t):p(E).hide();p(E).clearOpacity();p(E).setPositioning
 (C.pos);B.width=C.width;B.height=C.height;p(E).afterFx(F)}p(E).fxanim({opacity:{to:0.3}},y,y,0.1,y,function(){p(E).clearOpacity();(function(){p(E).fxanim({height:{to:1},points:{by:[0,p(E).getHeight()*0.5]}},F,e,0.3,&quot;easeIn&quot;,G)}).defer(100)})});return D},highlight:function(D,H){H=x(H);var F=this,G=F.dom,B=H.attr||&quot;backgroundColor&quot;,C={},E;F.queueFx(H,function(){p(G).clearOpacity();p(G).show();function I(){G.style[B]=E;p(G).afterFx(H)}E=G.style[B];C[B]={from:D||&quot;ffff9c&quot;,to:H.endColor||p(G).getColor(B)||&quot;ffffff&quot;};arguments.callee.anim=p(G).fxanim(C,H,&quot;color&quot;,1,&quot;easeIn&quot;,I)});return F},frame:function(B,E,H){H=x(H);var D=this,G=D.dom,C,F;D.queueFx(H,function(){B=B||&quot;#C3DAF9&quot;;if(B.length==6){B=&quot;#&quot;+B}E=E||1;p(G).show();var L=p(G).getXY(),J={x:L[0],y:L[1],0:L[0],1:L[1],width:G.offsetWidth,height:G.offsetHeight},I=function(){C=p(document.body||document.documentElement).createChild({style:{position:z,&quot;z
 -index&quot;:35000,border:&quot;0px solid &quot;+B}});return C.queueFx({},K)};arguments.callee.anim={isAnimated:true,stop:function(){E=0;C.stopFx()}};function K(){var M=Ext.isBorderBox?2:1;F=C.anim({top:{from:J.y,to:J.y-20},left:{from:J.x,to:J.x-20},borderWidth:{from:0,to:10},opacity:{from:1,to:0},height:{from:J.height,to:J.height+20*M},width:{from:J.width,to:J.width+20*M}},{duration:H.duration||1,callback:function(){C.remove();--E&gt;0?I():p(G).afterFx(H)}});arguments.callee.anim={isAnimated:true,stop:function(){F.stop()}}}I()});return D},pause:function(D){var C=this.dom,B;this.queueFx({},function(){B=setTimeout(function(){p(C).afterFx({})},D*1000);arguments.callee.anim={isAnimated:true,stop:function(){clearTimeout(B);p(C).afterFx({})}}});return this},fadeIn:function(D){D=x(D);var B=this,C=B.dom,E=D.endOpacity||1;B.queueFx(D,function(){p(C).setOpacity(0);p(C).fixDisplay();C.style.visibility=u;arguments.callee.anim=p(C).fxanim({opacity:{to:E}},D,y,0.5,r,function(){if(E==1){p
 (C).clearOpacity()}p(C).afterFx(D)})});return B},fadeOut:function(E){E=x(E);var C=this,D=C.dom,B=D.style,F=E.endOpacity||0;C.queueFx(E,function(){arguments.callee.anim=p(D).fxanim({opacity:{to:F}},E,y,0.5,r,function(){if(F==0){Ext.Element.data(D,&quot;visibilityMode&quot;)==Ext.Element.DISPLAY||E.useDisplay?B.display=&quot;none&quot;:B.visibility=w;p(D).clearOpacity()}p(D).afterFx(E)})});return C},scale:function(B,C,D){this.shift(Ext.apply({},D,{width:B,height:C}));return this},shift:function(D){D=x(D);var C=this.dom,B={};this.queueFx(D,function(){for(var E in D){if(D[E]!=A){B[E]={to:D[E]}}}B.width?B.width.to=p(C).adjustWidth(D.width):B;B.height?B.height.to=p(C).adjustWidth(D.height):B;if(B.x||B.y||B.xy){B.points=B.xy||{to:[B.x?B.x.to:p(C).getX(),B.y?B.y.to:p(C).getY()]}}arguments.callee.anim=p(C).fxanim(B,D,e,0.35,r,function(){p(C).afterFx(D)})});return this},ghost:function(E,C){C=x(C);var G=this,D=G.dom,J=D.style,H={opacity:{to:0},points:{}},K=H.points,B,I,F;E=E||&quot;b&q
 uot;;G.queueFx(C,function(){B=p(D).getFxRestore();I=p(D).getWidth();F=p(D).getHeight();function L(){C.useDisplay?p(D).setDisplayed(t):p(D).hide();p(D).clearOpacity();p(D).setPositioning(B.pos);J.width=B.width;J.height=B.height;p(D).afterFx(C)}K.by=p(D).switchStatements(E.toLowerCase(),function(N,M){return[N,M]},{t:[0,-F],l:[-I,0],r:[I,0],b:[0,F],tl:[-I,-F],bl:[-I,F],br:[I,F],tr:[I,-F]});arguments.callee.anim=p(D).fxanim(H,C,e,0.5,r,L)});return G},syncFx:function(){var B=this;B.fxDefaults=Ext.apply(B.fxDefaults||{},{block:t,concurrent:k,stopFx:t});return B},sequenceFx:function(){var B=this;B.fxDefaults=Ext.apply(B.fxDefaults||{},{block:t,concurrent:t,stopFx:t});return B},nextFx:function(){var B=c(this.dom.id)[0];if(B){B.call(this)}},hasActiveFx:function(){return c(this.dom.id)[0]},stopFx:function(B){var C=this,E=C.dom.id;if(C.hasActiveFx()){var D=c(E)[0];if(D&amp;&amp;D.anim){if(D.anim.isAnimated){b(E,[D]);D.anim.stop(B!==undefined?B:k)}else{b(E,[])}}}return C},beforeFx:funct
 ion(B){if(this.hasActiveFx()&amp;&amp;!B.concurrent){if(B.stopFx){this.stopFx();return k}return t}return k},hasFxBlock:function(){var B=c(this.dom.id);return B&amp;&amp;B[0]&amp;&amp;B[0].block},queueFx:function(E,B){var C=p(this.dom);if(!C.hasFxBlock()){Ext.applyIf(E,C.fxDefaults);if(!E.concurrent){var D=C.beforeFx(E);B.block=E.block;c(C.dom.id).push(B);if(D){C.nextFx()}}else{B.call(C)}}return C},fxWrap:function(H,F,D){var E=this.dom,C,B;if(!F.wrap||!(C=Ext.getDom(F.wrap))){if(F.fixPosition){B=p(E).getXY()}var G=document.createElement(&quot;div&quot;);G.style.visibility=D;C=E.parentNode.insertBefore(G,E);p(C).setPositioning(H);if(p(C).isStyle(o,&quot;static&quot;)){p(C).position(&quot;relative&quot;)}p(E).clearPositioning(&quot;auto&quot;);p(C).clip();C.appendChild(E);if(B){p(C).setXY(B)}}return C},fxUnwrap:function(C,F,E){var D=this.dom;p(D).clearPositioning();p(D).setPositioning(F);if(!E.wrap){var B=p(C).dom.parentNode;B.insertBefore(D,C);p(C).remove()}},getFxRestore:func
 tion(){var B=this.dom.style;return{pos:this.getPositioning(),width:B.width,height:B.height}},afterFx:function(C){var B=this.dom,D=B.id;if(C.afterStyle){p(B).setStyle(C.afterStyle)}if(C.afterCls){p(B).addClass(C.afterCls)}if(C.remove==k){p(B).remove()}if(C.callback){C.callback.call(C.scope,p(B))}if(!C.concurrent){c(D).shift();p(B).nextFx()}},fxanim:function(E,F,C,G,D,B){C=C||&quot;run&quot;;F=F||{};var H=Ext.lib.Anim[C](this.dom,E,(F.duration||G)||0.35,(F.easing||D)||r,B,this);F.anim=H;return H}};Ext.Fx.resize=Ext.Fx.scale;Ext.Element.addMethods(Ext.Fx)})();Ext.CompositeElementLite=function(b,a){this.elements=[];this.add(b,a);this.el=new Ext.Element.Flyweight()};Ext.CompositeElementLite.prototype={isComposite:true,getElement:function(a){var b=this.el;b.dom=a;b.id=a.id;return b},transformElement:function(a){return Ext.getDom(a)},getCount:function(){return this.elements.length},add:function(d,b){var e=this,g=e.elements;if(!d){return this}if(Ext.isString(d)){d=Ext.Element.select
 orFunction(d,b)}else{if(d.isComposite){d=d.elements}else{if(!Ext.isIterable(d)){d=[d]}}}for(var c=0,a=d.length;c&lt;a;++c){g.push(e.transformElement(d[c]))}return e},invoke:function(g,b){var h=this,d=h.elements,a=d.length,j,c;for(c=0;c&lt;a;c++){j=d[c];if(j){Ext.Element.prototype[g].apply(h.getElement(j),b)}}return h},item:function(b){var d=this,c=d.elements[b],a=null;if(c){a=d.getElement(c)}return a},addListener:function(b,j,h,g){var d=this.elements,a=d.length,c,k;for(c=0;c&lt;a;c++){k=d[c];if(k){Ext.EventManager.on(k,b,j,h||k,g)}}return this},each:function(g,d){var h=this,c=h.elements,a=c.length,b,j;for(b=0;b&lt;a;b++){j=c[b];if(j){j=this.getElement(j);if(g.call(d||j,j,h,b)){break}}}return h},fill:function(a){var b=this;b.elements=[];b.add(a);return b},filter:function(a){var b=[],d=this,e=d.elements,c=Ext.isFunction(a)?a:function(g){return g.is(a)};d.each(function(j,g,h){if(c(j,h)!==false){b[b.length]=d.transformElement(j)}});d.elements=b;return d},indexOf:function(a){retu
 rn this.elements.indexOf(this.transformElement(a))},replaceElement:function(e,c,a){var b=!isNaN(e)?e:this.indexOf(e),g;if(b&gt;-1){c=Ext.getDom(c);if(a){g=this.elements[b];g.parentNode.insertBefore(c,g);Ext.removeNode(g)}this.elements.splice(b,1,c)}return this},clear:function(){this.elements=[]}};Ext.CompositeElementLite.prototype.on=Ext.CompositeElementLite.prototype.addListener;(function(){var c,b=Ext.Element.prototype,a=Ext.CompositeElementLite.prototype;for(c in b){if(Ext.isFunction(b[c])){(function(d){a[d]=a[d]||function(){return this.invoke(d,arguments)}}).call(a,c)}}})();if(Ext.DomQuery){Ext.Element.selectorFunction=Ext.DomQuery.select}Ext.Element.select=function(a,b){var c;if(typeof a==&quot;string&quot;){c=Ext.Element.selectorFunction(a,b)}else{if(a.length!==undefined){c=a}else{throw&quot;Invalid selector&quot;}}return new Ext.CompositeElementLite(c)};Ext.select=Ext.Element.select;(function(){var b=&quot;beforerequest&quot;,e=&quot;requestcomplete&quot;,d=&quot;requ
 estexception&quot;,h=undefined,c=&quot;load&quot;,i=&quot;POST&quot;,a=&quot;GET&quot;,g=window;Ext.data.Connection=function(j){Ext.apply(this,j);this.addEvents(b,e,d);Ext.data.Connection.superclass.constructor.call(this)};Ext.extend(Ext.data.Connection,Ext.util.Observable,{timeout:30000,autoAbort:false,disableCaching:true,disableCachingParam:&quot;_dc&quot;,request:function(n){var s=this;if(s.fireEvent(b,s,n)){if(n.el){if(!Ext.isEmpty(n.indicatorText)){s.indicatorText='&lt;div class=&quot;loading-indicator&quot;&gt;'+n.indicatorText+&quot;&lt;/div&gt;&quot;}if(s.indicatorText){Ext.getDom(n.el).innerHTML=s.indicatorText}n.success=(Ext.isFunction(n.success)?n.success:function(){}).createInterceptor(function(o){Ext.getDom(n.el).innerHTML=o.responseText})}var l=n.params,k=n.url||s.url,j,q={success:s.handleResponse,failure:s.handleFailure,scope:s,argument:{options:n},timeout:n.timeout||s.timeout},m,t;if(Ext.isFunction(l)){l=l.call(n.scope||g,n)}l=Ext.urlEncode(s.extraParams,Ext.
 isObject(l)?Ext.urlEncode(l):l);if(Ext.isFunction(k)){k=k.call(n.scope||g,n)}if((m=Ext.getDom(n.form))){k=k||m.action;if(n.isUpload||/multipart\/form-data/i.test(m.getAttribute(&quot;enctype&quot;))){return s.doFormUpload.call(s,n,l,k)}t=Ext.lib.Ajax.serializeForm(m);l=l?(l+&quot;&amp;&quot;+t):t}j=n.method||s.method||((l||n.xmlData||n.jsonData)?i:a);if(j===a&amp;&amp;(s.disableCaching&amp;&amp;n.disableCaching!==false)||n.disableCaching===true){var r=n.disableCachingParam||s.disableCachingParam;k=Ext.urlAppend(k,r+&quot;=&quot;+(new Date().getTime()))}n.headers=Ext.apply(n.headers||{},s.defaultHeaders||{});if(n.autoAbort===true||s.autoAbort){s.abort()}if((j==a||n.xmlData||n.jsonData)&amp;&amp;l){k=Ext.urlAppend(k,l);l=&quot;&quot;}return(s.transId=Ext.lib.Ajax.request(j,k,q,l,n))}else{return n.callback?n.callback.apply(n.scope,[n,h,h]):null}},isLoading:function(j){return j?Ext.lib.Ajax.isCallInProgress(j):!!this.transId},abort:function(j){if(j||this.isLoading()){Ext.lib.Aja
 x.abort(j||this.transId)}},handleResponse:function(j){this.transId=false;var k=j.argument.options;j.argument=k?k.argument:null;this.fireEvent(e,this,j,k);if(k.success){k.success.call(k.scope,j,k)}if(k.callback){k.callback.call(k.scope,k,true,j)}},handleFailure:function(j,l){this.transId=false;var k=j.argument.options;j.argument=k?k.argument:null;this.fireEvent(d,this,j,k,l);if(k.failure){k.failure.call(k.scope,j,k)}if(k.callback){k.callback.call(k.scope,k,false,j)}},doFormUpload:function(q,j,k){var l=Ext.id(),v=document,r=v.createElement(&quot;iframe&quot;),m=Ext.getDom(q.form),u=[],t,p=&quot;multipart/form-data&quot;,n={target:m.target,method:m.method,encoding:m.encoding,enctype:m.enctype,action:m.action};Ext.fly(r).set({id:l,name:l,cls:&quot;x-hidden&quot;});v.body.appendChild(r);Ext.fly(r).set({src:Ext.SSL_SECURE_URL});if(Ext.isIE){document.frames[l].name=l}Ext.fly(m).set({target:l,method:i,enctype:p,encoding:p,action:k||n.action});Ext.iterate(Ext.urlDecode(j,false),funct
 ion(w,o){t=v.createElement(&quot;input&quot;);Ext.fly(t).set({type:&quot;hidden&quot;,value:o,name:w});m.appendChild(t);u.push(t)});function s(){var x=this,w={responseText:&quot;&quot;,responseXML:null,argument:q.argument},A,z;try{A=r.contentWindow.document||r.contentDocument||g.frames[l].document;if(A){if(A.body){if(/textarea/i.test((z=A.body.firstChild||{}).tagName)){w.responseText=z.value}else{w.responseText=A.body.innerHTML}}w.responseXML=A.XMLDocument||A}}catch(y){}Ext.EventManager.removeListener(r,c,s,x);x.fireEvent(e,x,w,q);function o(D,C,B){if(Ext.isFunction(D)){D.apply(C,B)}}o(q.success,q.scope,[w,q]);o(q.callback,q.scope,[q,true,w]);if(!x.debugUploads){setTimeout(function(){Ext.removeNode(r)},100)}}Ext.EventManager.on(r,c,s,this);m.submit();Ext.fly(m).set(n);Ext.each(u,function(o){Ext.removeNode(o)})}})})();Ext.Ajax=new Ext.data.Connection({autoAbort:false,serializeForm:function(a){return Ext.lib.Ajax.serializeForm(a)}});Ext.util.JSON=new (function(){var useHasOwn=
 !!{}.hasOwnProperty,isNative=function(){var useNative=null;return function(){if(useNative===null){useNative=Ext.USE_NATIVE_JSON&amp;&amp;window.JSON&amp;&amp;JSON.toString()==&quot;[object JSON]&quot;}return useNative}}(),pad=function(n){return n&lt;10?&quot;0&quot;+n:n},doDecode=function(json){return eval(&quot;(&quot;+json+&quot;)&quot;)},doEncode=function(o){if(!Ext.isDefined(o)||o===null){return&quot;null&quot;}else{if(Ext.isArray(o)){return encodeArray(o)}else{if(Ext.isDate(o)){return Ext.util.JSON.encodeDate(o)}else{if(Ext.isString(o)){return encodeString(o)}else{if(typeof o==&quot;number&quot;){return isFinite(o)?String(o):&quot;null&quot;}else{if(Ext.isBoolean(o)){return String(o)}else{var a=[&quot;{&quot;],b,i,v;for(i in o){if(!o.getElementsByTagName){if(!useHasOwn||o.hasOwnProperty(i)){v=o[i];switch(typeof v){case&quot;undefined&quot;:case&quot;function&quot;:case&quot;unknown&quot;:break;default:if(b){a.push(&quot;,&quot;)}a.push(doEncode(i),&quot;:&quot;,v===null
 ?&quot;null&quot;:doEncode(v));b=true}}}}a.push(&quot;}&quot;);return a.join(&quot;&quot;)}}}}}}},m={&quot;\b&quot;:&quot;\\b&quot;,&quot;\t&quot;:&quot;\\t&quot;,&quot;\n&quot;:&quot;\\n&quot;,&quot;\f&quot;:&quot;\\f&quot;,&quot;\r&quot;:&quot;\\r&quot;,'&quot;':'\\&quot;',&quot;\\&quot;:&quot;\\\\&quot;},encodeString=function(s){if(/[&quot;\\\x00-\x1f]/.test(s)){return'&quot;'+s.replace(/([\x00-\x1f\\&quot;])/g,function(a,b){var c=m[b];if(c){return c}c=b.charCodeAt();return&quot;\\u00&quot;+Math.floor(c/16).toString(16)+(c%16).toString(16)})+'&quot;'}return'&quot;'+s+'&quot;'},encodeArray=function(o){var a=[&quot;[&quot;],b,i,l=o.length,v;for(i=0;i&lt;l;i+=1){v=o[i];switch(typeof v){case&quot;undefined&quot;:case&quot;function&quot;:case&quot;unknown&quot;:break;default:if(b){a.push(&quot;,&quot;)}a.push(v===null?&quot;null&quot;:Ext.util.JSON.encode(v));b=true}}a.push(&quot;]&quot;);return a.join(&quot;&quot;)};this.encodeDate=function(o){return'&quot;'+o.getFullYear()+&
 quot;-&quot;+pad(o.getMonth()+1)+&quot;-&quot;+pad(o.getDate())+&quot;T&quot;+pad(o.getHours())+&quot;:&quot;+pad(o.getMinutes())+&quot;:&quot;+pad(o.getSeconds())+'&quot;'};this.encode=function(){var ec;return function(o){if(!ec){ec=isNative()?JSON.stringify:doEncode}return ec(o)}}();this.decode=function(){var dc;return function(json){if(!dc){dc=isNative()?JSON.parse:doDecode}return dc(json)}}()})();Ext.encode=Ext.util.JSON.encode;Ext.decode=Ext.util.JSON.decode;
+\ No newline at end of file
+diff --git a/web/ajax/libs/jquery/1.10.2/jquery.min.js b/web/ajax/libs/jquery/1.10.2/jquery.min.js
+new file mode 100644
+index 0000000..29b3a2c
+--- /dev/null
++++ b/web/ajax/libs/jquery/1.10.2/jquery.min.js
+@@ -0,0 +1,6 @@
++/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
++//@ sourceMappingURL=jquery.min.map
++*/
++(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f=&quot;1.10.2&quot;,d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(&lt;[\w\W]+&gt;)[^&gt;]*|#([\w-]*))$/,k=/^&lt;(\w+)\s*\/?&gt;(?:&lt;\/\1&gt;|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:[&quot;\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/&quot;[^&quot;\\\r\n]*&quot;|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||&quot;load&quot;===e.type||&quot;complete&quot;===a.readyState)&amp;&amp;(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener(&quot;DOMContentLoaded&quot;,q,!1),e.removeEventListener(&quot;load&quot;,q,!1)):(a.detachEvent(&quot;onreadystatechange&quot;,q
 ),e.detachEvent(&quot;onload&quot;,q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if(&quot;string&quot;==typeof e){if(i=&quot;&lt;&quot;===e.charAt(0)&amp;&amp;&quot;&gt;&quot;===e.charAt(e.length-1)&amp;&amp;e.length&gt;=3?[null,e,null]:N.exec(e),!i||!i[1]&amp;&amp;n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&amp;&amp;n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&amp;&amp;x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&amp;&amp;o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&amp;&amp;(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:&quot;&quot;,length:0,toArray:fun
 ction(){return g.call(this)},get:function(e){return null==e?this.toArray():0&gt;e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0&gt;e?t:0);return this.pushStack(n&gt;=0&amp;&amp;t&gt;n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for(&quot;boolean&quot;==typeof s&amp;&amp;(c=s,s=arguments[1]||{},l=2),&quot;object&quot;==typeof s||x.isFunc
 tion(s)||(s={}),u===l&amp;&amp;(s=this,--l);u&gt;l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&amp;&amp;(c&amp;&amp;r&amp;&amp;(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&amp;&amp;x.isArray(e)?e:[]):a=e&amp;&amp;x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&amp;&amp;(s[i]=r));return s},x.extend({expando:&quot;jQuery&quot;+(f+Math.random()).replace(/\D/g,&quot;&quot;),noConflict:function(t){return e.$===x&amp;&amp;(e.$=u),t&amp;&amp;e.jQuery===x&amp;&amp;(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&amp;&amp;--x.readyWait&gt;0||(n.resolveWith(a,[x]),x.fn.trigger&amp;&amp;x(a).trigger(&quot;ready&quot;).off(&quot;ready&quot;))}},isFunction:function(e){return&quot;function&quot;===x.type(e)},isArray:Array.isArray||function(e){return&quot;array&quot;===x.type(e)},isWindow:function(e){return nul
 l!=e&amp;&amp;e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&amp;&amp;isFinite(e)},type:function(e){return null==e?e+&quot;&quot;:&quot;object&quot;==typeof e||&quot;function&quot;==typeof e?c[y.call(e)]||&quot;object&quot;:typeof e},isPlainObject:function(e){var n;if(!e||&quot;object&quot;!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&amp;&amp;!v.call(e,&quot;constructor&quot;)&amp;&amp;!v.call(e.constructor.prototype,&quot;isPrototypeOf&quot;))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||&quot;string&quot;!=typeof e)return null;&quot;boolean&quot;==typeof t&amp;&amp;(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&amp;&amp;[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&amp;&amp;x(i).remove(),x.merge([],r.childNodes))},parseJSON:
 function(n){return e.JSON&amp;&amp;e.JSON.parse?e.JSON.parse(n):null===n?n:&quot;string&quot;==typeof n&amp;&amp;(n=x.trim(n),n&amp;&amp;E.test(n.replace(A,&quot;@&quot;).replace(j,&quot;]&quot;).replace(S,&quot;&quot;)))?Function(&quot;return &quot;+n)():(x.error(&quot;Invalid JSON: &quot;+n),t)},parseXML:function(n){var r,i;if(!n||&quot;string&quot;!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,&quot;text/xml&quot;)):(r=new ActiveXObject(&quot;Microsoft.XMLDOM&quot;),r.async=&quot;false&quot;,r.loadXML(n))}catch(o){r=t}return r&amp;&amp;r.documentElement&amp;&amp;!r.getElementsByTagName(&quot;parsererror&quot;).length||x.error(&quot;Invalid XML: &quot;+n),r},noop:function(){},globalEval:function(t){t&amp;&amp;x.trim(t)&amp;&amp;(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,&quot;ms-&quot;).replace(L,H)},nodeName:function(e,t){return e.nodeName&amp;&amp;e.nodeName.toLowerCase()===t.toLowerCase()},ea
 ch:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o&gt;i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o&gt;i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&amp;&amp;!b.call(&quot;\ufeff\u00a0&quot;)?function(e){return null==e?&quot;&quot;:b.call(e)}:function(e){return null==e?&quot;&quot;:(e+&quot;&quot;).replace(C,&quot;&quot;)},makeArray:function(e,t){var n=t||[];return null!=e&amp;&amp;(M(Object(e))?x.merge(n,&quot;string&quot;==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0&gt;n?Math.max(0,r+n):n:0;r&gt;n;n++)if(n in t&amp;&amp;t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if(&quot;number&quot;==typeof r)for(;r&gt;o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(
 n=!!n;a&gt;o;o++)r=!!t(e[o],o),n!==r&amp;&amp;i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o&gt;i;i++)r=t(e[i],i,n),null!=r&amp;&amp;(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&amp;&amp;(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return&quot;string&quot;==typeof n&amp;&amp;(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if(&quot;object&quot;===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&amp;&amp;(o=!0,x.isFunction(i)||(s=!0),c&amp;&amp;(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u&gt;l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[
 o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),&quot;complete&quot;===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener(&quot;DOMContentLoaded&quot;,q,!1),e.addEventListener(&quot;load&quot;,q,!1);else{a.attachEvent(&quot;onreadystatechange&quot;,q),e.attachEvent(&quot;onload&quot;,q);var r=!1;try{r=null==e.frameElement&amp;&amp;a.documentElement}catch(i){}r&amp;&amp;r.doScroll&amp;&amp;function o(){if(!x.isReady){try{r.doScroll(&quot;left&quot;)}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each(&quot;Boolean Number String Function Array Date RegExp Object Error&quot;.split(&quot; &quot;),function(e,t){c[&quot;[object &quot;+t+&quot;]&quot;]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&amp;&amp;t?!0:&quot;array&quot;===n||&quot;function&quot;!==n&amp;&amp;(0===t||&quot;number&quot;==ty
 peof t&amp;&amp;t&gt;0&amp;&amp;t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b=&quot;sizzle&quot;+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1&lt;&lt;31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n&gt;t;t++)if(this[t]===e)return t;return-1},B=&quot;checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped&quot;,P=&quot;[\\x20\\t\\r\\n\\f]&quot;,R=&quot;(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+&quot;,W=R.replace(&quot;w&quot;,&quot;w#&quot;),$=&quot;\\[&quot;+P+&quot;*(&quot;+R+&quot;)&quot;+P+&quot;*(?:([*^$|!~]?=)&quot;+P+&quot;*(?:(['\&quot;])((?:\\\\.|[^\\\\])*?)\\3|(&quot;+W+&quot;)|)|)&quot;+P+&quot;*\\]&quot;,I=&quot;:(&quot;+R+&quot;)(?:\\(((['\&quot;])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|&quot;+$.replace(3,8)+&quot;)*)|.*)\\)|)&quot;,z=RegEx
 p(&quot;^&quot;+P+&quot;+|((?:^|[^\\\\])(?:\\\\.)*)&quot;+P+&quot;+$&quot;,&quot;g&quot;),X=RegExp(&quot;^&quot;+P+&quot;*,&quot;+P+&quot;*&quot;),U=RegExp(&quot;^&quot;+P+&quot;*([&gt;+~]|&quot;+P+&quot;)&quot;+P+&quot;*&quot;),V=RegExp(P+&quot;*[+~]&quot;),Y=RegExp(&quot;=&quot;+P+&quot;*([^\\]'\&quot;]*)&quot;+P+&quot;*\\]&quot;,&quot;g&quot;),J=RegExp(I),G=RegExp(&quot;^&quot;+W+&quot;$&quot;),Q={ID:RegExp(&quot;^#(&quot;+R+&quot;)&quot;),CLASS:RegExp(&quot;^\\.(&quot;+R+&quot;)&quot;),TAG:RegExp(&quot;^(&quot;+R.replace(&quot;w&quot;,&quot;w*&quot;)+&quot;)&quot;),ATTR:RegExp(&quot;^&quot;+$),PSEUDO:RegExp(&quot;^&quot;+I),CHILD:RegExp(&quot;^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(&quot;+P+&quot;*(even|odd|(([+-]|)(\\d*)n|)&quot;+P+&quot;*(?:([+-]|)&quot;+P+&quot;*(\\d+)|))&quot;+P+&quot;*\\)|)&quot;,&quot;i&quot;),bool:RegExp(&quot;^(?:&quot;+B+&quot;)$&quot;,&quot;i&quot;),needsContext:RegExp(&quot;^&quot;+P+&quot;*[&gt;+~]|:(even|odd|eq|gt|lt|nth|first|
 last)(?:\\(&quot;+P+&quot;*((?:-\\d)?\\d*)&quot;+P+&quot;*\\)|)(?=[^-]|$)&quot;,&quot;i&quot;)},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp(&quot;\\\\([\\da-f]{1,6}&quot;+P+&quot;?|(&quot;+P+&quot;)|.)&quot;,&quot;ig&quot;),it=function(e,t,n){var r=&quot;0x&quot;+t-65536;return r!==r||n?t:0&gt;r?String.fromCharCode(r+65536):String.fromCharCode(55296|r&gt;&gt;10,56320|1023&amp;r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&amp;&amp;p(t),t=t||f,n=n||[],!e||&quot;string&quot;!=typeof e)return n;if(1!==(l=t.nodeType)&amp;&amp;9!==l)return[];if(h&amp;&amp;!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return 
 n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&amp;&amp;(a=t.ownerDocument.getElementById(s))&amp;&amp;v(t,a)&amp;&amp;a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&amp;&amp;r.getElementsByClassName&amp;&amp;t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&amp;&amp;(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&amp;&amp;e,1===l&amp;&amp;&quot;object&quot;!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute(&quot;id&quot;))?m=d.replace(nt,&quot;\\$&amp;&quot;):t.setAttribute(&quot;id&quot;,m),m=&quot;[id='&quot;+m+&quot;'] &quot;,u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&amp;&amp;t.parentNode||t,x=c.join(&quot;,&quot;)}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute(&quot;id&quot;)}}}return kt(e.replace(z,&quot;$1&quot;),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=&quot; &quot;)&gt;o.cacheLength&amp;&amp;delete t[e.shift
 ()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement(&quot;div&quot;);try{return!!e(t)}catch(n){return!1}finally{t.parentNode&amp;&amp;t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split(&quot;|&quot;),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&amp;&amp;e,r=n&amp;&amp;1===e.nodeType&amp;&amp;1===t.nodeType&amp;&amp;(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return&quot;input&quot;===n&amp;&amp;t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return(&quot;input&quot;===n||&quot;button&quot;===n)&amp;&amp;t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&amp;&amp;(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&amp;&amp;(e.ownerDocument||e).documentElemen
 t;return t?&quot;HTML&quot;!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&amp;&amp;9===n.nodeType&amp;&amp;n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&amp;&amp;i.attachEvent&amp;&amp;i!==i.top&amp;&amp;i.attachEvent(&quot;onbeforeunload&quot;,function(){p()}),r.attributes=ut(function(e){return e.className=&quot;i&quot;,!e.getAttribute(&quot;className&quot;)}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment(&quot;&quot;)),!e.getElementsByTagName(&quot;*&quot;).length}),r.getElementsByClassName=ut(function(e){return e.innerHTML=&quot;&lt;div class='a'&gt;&lt;/div&gt;&lt;div class='a i'&gt;&lt;/div&gt;&quot;,e.firstChild.className=&quot;i&quot;,2===e.getElementsByClassName(&quot;i&quot;).length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&a
 mp;&amp;h){var n=t.getElementById(e);return n&amp;&amp;n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute(&quot;id&quot;)===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&amp;&amp;e.getAttributeNode(&quot;id&quot;);return n&amp;&amp;n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(&quot;*&quot;===e){while(n=o[i++])1===n.nodeType&amp;&amp;r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&amp;&amp;function(e,n){return typeof n.getElementsByClassName!==j&amp;&amp;h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&amp;&amp;(ut(function(e){e.innerHTML=&quot;&lt;select&gt;&lt;option selected=''&gt;&lt;/option&gt;&lt;/select&gt;&quot;,e.querySelectorAll(&quot;[se
 lected]&quot;).length||g.push(&quot;\\[&quot;+P+&quot;*(?:value|&quot;+B+&quot;)&quot;),e.querySelectorAll(&quot;:checked&quot;).length||g.push(&quot;:checked&quot;)}),ut(function(e){var t=n.createElement(&quot;input&quot;);t.setAttribute(&quot;type&quot;,&quot;hidden&quot;),e.appendChild(t).setAttribute(&quot;t&quot;,&quot;&quot;),e.querySelectorAll(&quot;[t^='']&quot;).length&amp;&amp;g.push(&quot;[*^$]=&quot;+P+&quot;*(?:''|\&quot;\&quot;)&quot;),e.querySelectorAll(&quot;:enabled&quot;).length||g.push(&quot;:enabled&quot;,&quot;:disabled&quot;),e.querySelectorAll(&quot;*,:x&quot;),g.push(&quot;,.*:&quot;)})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&amp;&amp;ut(function(e){r.disconnectedMatch=y.call(e,&quot;div&quot;),y.call(e,&quot;[s!='']:x&quot;),m.push(&quot;!=&quot;,I)}),g=g.length&amp;&amp;RegExp(g.join(&quot;|&quot;)),m=m.length&amp;&amp;RegExp(m.join(&quot;|&quot;)),v=K.test(d.contains)||d.
 compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&amp;&amp;t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&amp;&amp;16&amp;e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&amp;&amp;e.compareDocumentPosition&amp;&amp;e.compareDocumentPosition(t);return i?1&amp;i||!r.sortDetached&amp;&amp;t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&amp;i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1
 :0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&amp;&amp;p(e),t=t.replace(Y,&quot;='$1']&quot;),!(!r.matchesSelector||!h||m&amp;&amp;m.test(t)||g&amp;&amp;g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&amp;&amp;11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length&gt;0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&amp;&amp;p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&amp;&amp;p(e);var i=o.attrHandle[n.toLowerCase()],a=i&amp;&amp;L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&amp;&amp;a.specified?a.value:null:a},at.error=function(e){throw Error(&quot;Syntax error, unrecognized expression: &quot;+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&amp;&amp;e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&amp;&amp;(i=n.push
 (o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n=&quot;&quot;,r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if(&quot;string&quot;==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{&quot;&gt;&quot;:{dir:&quot;parentNode&quot;,first:!0},&quot; &quot;:{dir:&quot;parentNode&quot;},&quot;+&quot;:{dir:&quot;previousSibling&quot;,first:!0},&quot;~&quot;:{dir:&quot;previousSibling&quot;}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||&quot;&quot;).replace(rt,it),&quot;~=&quot;===e[2]&amp;&amp;(e[3]=&quot; &quot;+e[3]+&quot; &quot;),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),&quot;nth&quot;===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(&quot;even&quot;===e[3]||&quot;odd&quot;===e[3
 ])),e[5]=+(e[7]+e[8]||&quot;odd&quot;===e[3])):e[3]&amp;&amp;at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&amp;&amp;e[2];return Q.CHILD.test(e[0])?null:(e[3]&amp;&amp;e[4]!==t?e[2]=e[4]:r&amp;&amp;J.test(r)&amp;&amp;(n=mt(r,!0))&amp;&amp;(n=r.indexOf(&quot;)&quot;,r.length-n)-r.length)&amp;&amp;(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return&quot;*&quot;===e?function(){return!0}:function(e){return e.nodeName&amp;&amp;e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+&quot; &quot;];return t||(t=RegExp(&quot;(^|&quot;+P+&quot;)&quot;+e+&quot;(&quot;+P+&quot;|$)&quot;))&amp;&amp;N(e,function(e){return t.test(&quot;string&quot;==typeof e.className&amp;&amp;e.className||typeof e.getAttribute!==j&amp;&amp;e.getAttribute(&quot;class&quot;)||&quot;&quot;)})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?&quot;!=&quot;===t:t?(i+=&quot;&quot;,&quot;=&quot;===t?i===n:&
 quot;!=&quot;===t?i!==n:&quot;^=&quot;===t?n&amp;&amp;0===i.indexOf(n):&quot;*=&quot;===t?n&amp;&amp;i.indexOf(n)&gt;-1:&quot;$=&quot;===t?n&amp;&amp;i.slice(-n.length)===n:&quot;~=&quot;===t?(&quot; &quot;+i+&quot; &quot;).indexOf(n)&gt;-1:&quot;|=&quot;===t?i===n||i.slice(0,n.length+1)===n+&quot;-&quot;:!1):!0}},CHILD:function(e,t,n,r,i){var o=&quot;nth&quot;!==e.slice(0,3),a=&quot;last&quot;!==e.slice(-4),s=&quot;of-type&quot;===t;return 1===r&amp;&amp;0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?&quot;nextSibling&quot;:&quot;previousSibling&quot;,m=t.parentNode,y=s&amp;&amp;t.nodeName.toLowerCase(),v=!l&amp;&amp;!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g=&quot;only&quot;===e&amp;&amp;!h&amp;&amp;&quot;nextSibling&quot;}return!0}if(h=[a?m.firstChild:m.lastChild],a&amp;&amp;v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&amp;&amp;u[1],f=u[0]===T&amp;&amp;u[2],p=d&amp;&amp;m.childNodes
 [d];while(p=++d&amp;&amp;p&amp;&amp;p[g]||(f=d=0)||h.pop())if(1===p.nodeType&amp;&amp;++f&amp;&amp;p===t){c[e]=[T,d,f];break}}else if(v&amp;&amp;(u=(t[b]||(t[b]={}))[e])&amp;&amp;u[0]===T)f=u[1];else while(p=++d&amp;&amp;p&amp;&amp;p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&amp;&amp;++f&amp;&amp;(v&amp;&amp;((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&amp;&amp;f/r&gt;=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error(&quot;unsupported pseudo: &quot;+e);return r[b]?r(t):r.length&gt;1?(n=[e,e,&quot;&quot;,t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,&quot;$1&quot;));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&amp;&amp;(e[s]=!(t[s]=o))}):function(e,i,o){return t[0
 ]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length&gt;0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)&gt;-1}}),lang:lt(function(e){return G.test(e||&quot;&quot;)||at.error(&quot;unsupported lang: &quot;+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute(&quot;xml:lang&quot;)||t.getAttribute(&quot;lang&quot;))return n=n.toLowerCase(),n===e||0===n.indexOf(e+&quot;-&quot;);while((t=t.parentNode)&amp;&amp;1===t.nodeType);return!1}}),target:function(t){var n=e.location&amp;&amp;e.location.hash;return n&amp;&amp;n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&amp;&amp;(!f.hasFocus||f.hasFocus())&amp;&amp;!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return&quot;input&quot;===t&amp;&amp;
 !!e.checked||&quot;option&quot;===t&amp;&amp;!!e.selected},selected:function(e){return e.parentNode&amp;&amp;e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName&gt;&quot;@&quot;||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return&quot;input&quot;===t&amp;&amp;&quot;button&quot;===e.type||&quot;button&quot;===t},text:function(e){var t;return&quot;input&quot;===e.nodeName.toLowerCase()&amp;&amp;&quot;text&quot;===e.type&amp;&amp;(null==(t=e.getAttribute(&quot;type&quot;))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0&gt;n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t&gt;n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t&gt;n;n+=2)e.p
 ush(n);return e}),lt:ht(function(e,t,n){var r=0&gt;n?n+t:n;for(;--r&gt;=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0&gt;n?n+t:n;for(;t&gt;++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+&quot; &quot;];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&amp;&amp;(r&amp;&amp;(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&amp;&amp;(n=r.shift(),i.push({value:n,type:r[0].replace(z,&quot; &quot;)}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&amp;&amp;!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r=&quot;&quot;;for(;n&gt;t;t++)r+=e[t].value;return
  r}function vt(e,t,n){var r=t.dir,o=n&amp;&amp;&quot;parentNode&quot;===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+&quot; &quot;+a;if(s){while(t=t[r])if((1===t.nodeType||o)&amp;&amp;e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&amp;&amp;u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length&gt;1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l&gt;s;s++)(o=e[s])&amp;&amp;(!n||n(o,r,i))&amp;&amp;(a.push(o),u&amp;&amp;t.push(s));return a}function wt(e,t,n,r,i,o){return r&amp;&amp;!r[b]&amp;&amp;(r=wt(r)),i&amp;&amp;!i[b]&amp;&amp;(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||&quot;*&quot;,s.nodeType?[s]:s,[]),m=!e||!o&amp;&amp;t?g:xt(g,f,e,s,l),y=n?i||(o?e:h|
 |r)?[]:a:m;if(n&amp;&amp;n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&amp;&amp;(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&amp;&amp;u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&amp;&amp;(u=i?F.call(o,p):f[c])&gt;-1&amp;&amp;(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[&quot; &quot;],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)&gt;-1},s,!0),f=[function(e,n,r){return!a&amp;&amp;(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i&gt;l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i&gt;r;r++)if(o.relative[e[r].type])break;return wt(l&gt;1&amp;&amp;bt(f),l&gt;1&amp;&amp;yt(e.slice(0,l-1).concat({value:&quot; &quot;===e[l-2].type?&quot;*&quot;:&quot;&quot;})).replace(z,&quot;$1&quo
 t;),n,r&gt;l&amp;&amp;Tt(e.slice(l,r)),i&gt;r&amp;&amp;Tt(e=e.slice(r)),i&gt;r&amp;&amp;yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length&gt;0,a=e.length&gt;0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b=&quot;0&quot;,x=s&amp;&amp;[],w=null!=d,C=u,N=s||a&amp;&amp;o.find.TAG(&quot;*&quot;,d&amp;&amp;l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&amp;&amp;(u=l!==f&amp;&amp;l,i=n);null!=(h=N[b]);b++){if(a&amp;&amp;h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&amp;&amp;(T=k,i=++n)}r&amp;&amp;((h=!m&amp;&amp;h)&amp;&amp;v--,s&amp;&amp;x.push(h))}if(v+=b,r&amp;&amp;b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v&gt;0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&amp;&amp;!s&amp;&amp;y.length&gt;0&amp;&amp;v+t.length&gt;1&amp;&amp;at.uniqueSort(p)}return w&amp;&amp;(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+&quot; &quot;];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E
 (e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i&gt;r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&amp;&amp;1===f.length){if(s=f[0]=f[0].slice(0),s.length&gt;2&amp;&amp;&quot;ID&quot;===(u=s[0]).type&amp;&amp;r.getById&amp;&amp;9===t.nodeType&amp;&amp;h&amp;&amp;o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&amp;&amp;(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&amp;&amp;t.parentNode||t))){if(s.splice(a,1),e=i.length&amp;&amp;yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split(&quot;&quot;).sort(A).join(&quot;&quot;)===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&amp;e.compareDocumentPosition(f.createElement(&quot;div&quot;))}),ut(function(e){return e.innerHTML=&quot;&lt;a href='#'&gt
 ;&lt;/a&gt;&quot;,&quot;#&quot;===e.firstChild.getAttribute(&quot;href&quot;)})||ct(&quot;type|href|height|width&quot;,function(e,n,r){return r?t:e.getAttribute(n,&quot;type&quot;===n.toLowerCase()?1:2)}),r.attributes&amp;&amp;ut(function(e){return e.innerHTML=&quot;&lt;input/&gt;&quot;,e.firstChild.setAttribute(&quot;value&quot;,&quot;&quot;),&quot;&quot;===e.firstChild.getAttribute(&quot;value&quot;)})||ct(&quot;value&quot;,function(e,n,r){return r||&quot;input&quot;!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute(&quot;disabled&quot;)})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&amp;&amp;i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[&quot;:&quot;]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e=&q
 uot;string&quot;==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&amp;&amp;[],c=function(t){for(r=e.memory&amp;&amp;t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&amp;&amp;o&gt;a;a++)if(l[a].apply(t[0],t[1])===!1&amp;&amp;e.stopOnFalse){r=!1;break}n=!1,l&amp;&amp;(u?u.length&amp;&amp;c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);&quot;function&quot;===r?e.unique&amp;&amp;p.has(n)||l.push(n):n&amp;&amp;n.length&amp;&amp;&quot;string&quot;!==r&amp;&amp;i(n)})})(arguments),n?o=l.length:r&amp;&amp;(s=t,c(r))}return this},remove:function(){return l&amp;&amp;x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))&gt;-1)l.splice(r,1),n&amp;&amp;(o&gt;=r&amp;&amp;o--,a&gt;=r&amp;&amp;a--)}),this},has:function(e){return e?x.inArray(e,l)&gt;-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return
  u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&amp;&amp;!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[[&quot;resolve&quot;,&quot;done&quot;,x.Callbacks(&quot;once memory&quot;),&quot;resolved&quot;],[&quot;reject&quot;,&quot;fail&quot;,x.Callbacks(&quot;once memory&quot;),&quot;rejected&quot;],[&quot;notify&quot;,&quot;progress&quot;,x.Callbacks(&quot;memory&quot;)]],n=&quot;pending&quot;,r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&amp;&amp;e[t];i[o[1]](function(){var e=s&amp;&amp;s.apply(this,arguments);e&amp;&amp;x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+&quot;With&quot;](
 this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&amp;&amp;a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+&quot;With&quot;](this===i?r:this,arguments),this},i[o[0]+&quot;With&quot;]=a.fireWith}),r.promise(i),e&amp;&amp;e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&amp;&amp;x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length&gt;1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r&gt;1)for(s=Array(r),l=Array(r),u=Array(r);r&gt;t;t++)n[t]&amp;&amp;x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement(&quot;div&qu
 ot;);if(d.setAttribute(&quot;className&quot;,&quot;t&quot;),d.innerHTML=&quot;  &lt;link/&gt;&lt;table&gt;&lt;/table&gt;&lt;a href='/a'&gt;a&lt;/a&gt;&lt;input type='checkbox'/&gt;&quot;,n=d.getElementsByTagName(&quot;*&quot;)||[],r=d.getElementsByTagName(&quot;a&quot;)[0],!r||!r.style||!n.length)return t;s=a.createElement(&quot;select&quot;),u=s.appendChild(a.createElement(&quot;option&quot;)),o=d.getElementsByTagName(&quot;input&quot;)[0],r.style.cssText=&quot;top:1px;float:left;opacity:.5&quot;,t.getSetAttribute=&quot;t&quot;!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName(&quot;tbody&quot;).length,t.htmlSerialize=!!d.getElementsByTagName(&quot;link&quot;).length,t.style=/top/.test(r.getAttribute(&quot;style&quot;)),t.hrefNormalized=&quot;/a&quot;===r.getAttribute(&quot;href&quot;),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement(&quot;f
 orm&quot;).enctype,t.html5Clone=&quot;&lt;:nav&gt;&lt;/:nav&gt;&quot;!==a.createElement(&quot;nav&quot;).cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement(&quot;input&quot;),o.setAttribute(&quot;value&quot;,&quot;&quot;),t.input=&quot;&quot;===o.getAttribute(&quot;value&quot;),o.value=&quot;t&quot;,o.setAttribute(&quot;type&quot;,&quot;radio&quot;),t.radioValue=&quot;t&quot;===o.value,o.setAttribute(&quot;checked&quot;,&quot;t&quot;),o.setAttribute(&quot;name&quot;,&quot;t&quot;),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&amp;&amp;(d.attachEvent(&quot;onclick&quot;,function(){t.noCloneEvent=!
 1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c=&quot;on&quot;+f,&quot;t&quot;),t[f+&quot;Bubbles&quot;]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip=&quot;content-box&quot;,d.cloneNode(!0).style.backgroundClip=&quot;&quot;,t.clearCloneStyle=&quot;content-box&quot;===d.style.backgroundClip;for(f in x(t))break;return t.ownLast=&quot;0&quot;!==f,x(function(){var n,r,o,s=&quot;padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;&quot;,l=a.getElementsByTagName(&quot;body&quot;)[0];l&amp;&amp;(n=a.createElement(&quot;div&quot;),n.style.cssText=&quot;border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px&quot;,l.appendChild(n).appendChild(d),d.innerHTML=&quot;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;t&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;,o=d.getElementsByTagName(&quot;td&quot;),o[0].style.cssText=&quot;padding:0;marg
 in:0;border:0;display:none&quot;,p=0===o[0].offsetHeight,o[0].style.display=&quot;&quot;,o[1].style.display=&quot;none&quot;,t.reliableHiddenOffsets=p&amp;&amp;0===o[0].offsetHeight,d.innerHTML=&quot;&quot;,d.style.cssText=&quot;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;&quot;,x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&amp;&amp;(t.pixelPosition=&quot;1%&quot;!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable=&quot;4px&quot;===(e.getComputedStyle(d,null)||{width:&quot;4px&quot;}).width,r=d.appendChild(a.createElement(&quot;div&quot;)),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width=&quot;0&quot;,d.style.width=&quot;1px&quot;,t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&amp;&amp;(d.innerHTML=&quot;&quot;,d.styl
 e.cssText=s+&quot;width:1px;padding:1px;display:inline;zoom:1&quot;,t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display=&quot;block&quot;,d.innerHTML=&quot;&lt;div&gt;&lt;/div&gt;&quot;,d.firstChild.style.width=&quot;5px&quot;,t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&amp;&amp;(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
++}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&amp;&amp;s;if(c&amp;&amp;u[c]&amp;&amp;(i||u[c].data)||r!==t||&quot;string&quot;!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),(&quot;object&quot;==typeof n||&quot;function&quot;==typeof n)&amp;&amp;(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&amp;&amp;(a[x.camelCase(n)]=r),&quot;string&quot;==typeof n?(o=a[n],null==o&amp;&amp;(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&amp;&amp;(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(&quot; &quot;)),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&amp;&amp
 ;(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot;},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&amp;&amp;!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&amp;&amp;1!==e.nodeType&amp;&amp;9!==e.nodeType)return!1;var t=e.nodeName&amp;&amp;x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&amp;&amp;e.getAttribute(&quot;classid&quot;)===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&amp;&amp;(o=x.data(s),1===s.nodeType&amp;&amp;!x._data(s,&quot;parsedAttrs&quot;))){for(r=s.attributes;r.length&gt;a;a++)i=r[a].name,0===i.indexOf(&quot;data-&quot;)&amp;&amp;(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,
 &quot;parsedAttrs&quot;,!0)}return o}return&quot;object&quot;==typeof e?this.each(function(){x.data(this,e)}):arguments.length&gt;1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&amp;&amp;1===e.nodeType){var i=&quot;data-&quot;+n.replace(P,&quot;-$1&quot;).toLowerCase();if(r=e.getAttribute(i),&quot;string&quot;==typeof r){try{r=&quot;true&quot;===r?!0:&quot;false&quot;===r?!1:&quot;null&quot;===r?null:+r+&quot;&quot;===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if((&quot;data&quot;!==t||!x.isEmptyObject(e[t]))&amp;&amp;&quot;toJSON&quot;!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||&quot;fx&quot;)+&quot;queue&quot;,i=x._data(e,n),r&amp;&amp;(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||&quot;fx&quot;;var n=x.queu
 e(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};&quot;inprogress&quot;===i&amp;&amp;(i=n.shift(),r--),i&amp;&amp;(&quot;fx&quot;===t&amp;&amp;n.unshift(&quot;inprogress&quot;),delete o.stop,i.call(e,a,o)),!r&amp;&amp;o&amp;&amp;o.empty.fire()},_queueHooks:function(e,t){var n=t+&quot;queueHooks&quot;;return x._data(e,n)||x._data(e,n,{empty:x.Callbacks(&quot;once memory&quot;).add(function(){x._removeData(e,t+&quot;queue&quot;),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return&quot;string&quot;!=typeof e&amp;&amp;(n=e,e=&quot;fx&quot;,r--),r&gt;arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),&quot;fx&quot;===e&amp;&amp;&quot;inprogress&quot;!==t[0]&amp;&amp;x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||&quot;fx&quot;,this.queue(t,function(t,n){var r=setTim
 eout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||&quot;fx&quot;,[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};&quot;string&quot;!=typeof e&amp;&amp;(n=e,e=t),e=e||&quot;fx&quot;;while(s--)r=x._data(a[s],e+&quot;queueHooks&quot;),r&amp;&amp;r.empty&amp;&amp;(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length&gt;1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length&gt;1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,
 l=&quot;string&quot;==typeof e&amp;&amp;e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||&quot;&quot;).match(T)||[];s&gt;a;a++)if(n=this[a],r=1===n.nodeType&amp;&amp;(n.className?(&quot; &quot;+n.className+&quot; &quot;).replace(U,&quot; &quot;):&quot; &quot;)){o=0;while(i=t[o++])0&gt;r.indexOf(&quot; &quot;+i+&quot; &quot;)&amp;&amp;(r+=i+&quot; &quot;);n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||&quot;string&quot;==typeof e&amp;&amp;e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||&quot;&quot;).match(T)||[];s&gt;a;a++)if(n=this[a],r=1===n.nodeType&amp;&amp;(n.className?(&quot; &quot;+n.className+&quot; &quot;).replace(U,&quot; &quot;):&quot;&quot;)){o=0;while(i=t[o++])while(r.indexOf(&quot; &quot;+i+&quot; &quot;)&gt;=0)r=r.replace(&quot; &quot;+i+&quot; &quot;,&quot; &q
 uot;);n.className=e?x.trim(r):&quot;&quot;}return this},toggleClass:function(e,t){var n=typeof e;return&quot;boolean&quot;==typeof t&amp;&amp;&quot;string&quot;===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(&quot;string&quot;===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||&quot;boolean&quot;===n)&amp;&amp;(this.className&amp;&amp;x._data(this,&quot;__className__&quot;,this.className),this.className=this.className||e===!1?&quot;&quot;:x._data(this,&quot;__className__&quot;)||&quot;&quot;)})},hasClass:function(e){var t=&quot; &quot;+e+&quot; &quot;,n=0,r=this.length;for(;r&gt;n;n++)if(1===this[n].nodeType&amp;&amp;(&quot; &quot;+this[n].className+&quot; &quot;).replace(U,&quot; &quot;).indexOf(t)&gt;=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunctio
 n(e),this.each(function(n){var o;1===this.nodeType&amp;&amp;(o=i?e.call(this,n,x(this).val()):e,null==o?o=&quot;&quot;:&quot;number&quot;==typeof o?o+=&quot;&quot;:x.isArray(o)&amp;&amp;(o=x.map(o,function(e){return null==e?&quot;&quot;:e+&quot;&quot;})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&amp;&amp;&quot;set&quot;in r&amp;&amp;r.set(this,o,&quot;value&quot;)!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&amp;&amp;&quot;get&quot;in r&amp;&amp;(n=r.get(o,&quot;value&quot;))!==t?n:(n=o.value,&quot;string&quot;==typeof n?n.replace(V,&quot;&quot;):null==n?&quot;&quot;:n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,&quot;value&quot;);return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o=&quot;select-one&quot;===e.type||0&gt;i,a=o?null:[],s=o?i+1:r.length,l=0&gt;i?s:o?i:0;for(;s&gt;l;l++)if(n=r[l],!(!n.selected&amp;&amp;l!==i||(x.support.optDis
 abled?n.disabled:null!==n.getAttribute(&quot;disabled&quot;))||n.parentNode.disabled&amp;&amp;x.nodeName(n.parentNode,&quot;optgroup&quot;))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)&gt;=0)&amp;&amp;(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&amp;&amp;3!==s&amp;&amp;8!==s&amp;&amp;2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&amp;&amp;x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&amp;&amp;&quot;get&quot;in o&amp;&amp;null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&amp;&amp;&quot;set&quot;in o&amp;&amp;(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+&quot;&quot;),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&amp;&amp;t.match(T);if(o&amp;&amp;1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(
 n)?K&amp;&amp;Q||!G.test(n)?e[r]=!1:e[x.camelCase(&quot;default-&quot;+n)]=e[r]=!1:x.attr(e,n,&quot;&quot;),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&amp;&amp;&quot;radio&quot;===t&amp;&amp;x.nodeName(e,&quot;input&quot;)){var n=e.value;return e.setAttribute(&quot;type&quot;,t),n&amp;&amp;(e.value=n),t}}}},propFix:{&quot;for&quot;:&quot;htmlFor&quot;,&quot;class&quot;:&quot;className&quot;},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&amp;&amp;3!==s&amp;&amp;8!==s&amp;&amp;2!==s)return a=1!==s||!x.isXMLDoc(e),a&amp;&amp;(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&amp;&amp;&quot;set&quot;in o&amp;&amp;(i=o.set(e,r,n))!==t?i:e[n]=r:o&amp;&amp;&quot;get&quot;in o&amp;&amp;null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,&quot;tabindex&quot;);return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&amp;&amp;e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&amp;&am
 p;Q||!G.test(n)?e.setAttribute(!Q&amp;&amp;x.propFix[n]||n,n):e[x.camelCase(&quot;default-&quot;+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&amp;&amp;Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase(&quot;default-&quot;+n)]?n.toLowerCase():null}}),K&amp;&amp;Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,&quot;input&quot;)?(e.defaultValue=n,t):z&amp;&amp;z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+=&quot;&quot;,&quot;value&quot;===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&amp;&amp;&quot;&quot;!==i.value?i.va
 lue:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&amp;&amp;r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,&quot;&quot;===t?!1:t,n)}},x.each([&quot;width&quot;,&quot;height&quot;],function(e,n){x.attrHooks[n]={set:function(e,r){return&quot;&quot;===r?(e.setAttribute(n,&quot;auto&quot;),r):t}}})),x.support.hrefNormalized||x.each([&quot;href&quot;,&quot;src&quot;],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+&quot;&quot;}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&amp;&amp;(t.selectedIndex,t.parentNode&amp;&amp;t.parentNode.selectedIndex),null}}),x.each([&quot;tabIndex&quot;,&quot;readOnly&quot;,&quot;maxLength&quot;,&quot;cellSpacing&quot;,&quot;cellPadding&quot;,&quot;rowSpan&quot;,&quot;colSpan&quo
 t;,&quot;useMap&quot;,&quot;frameBorder&quot;,&quot;contentEditable&quot;],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype=&quot;encoding&quot;),x.each([&quot;radio&quot;,&quot;checkbox&quot;],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)&gt;=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute(&quot;value&quot;)?&quot;on&quot;:e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&amp;&amp;(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&amp;&amp;x.event.trigg
 ered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||&quot;&quot;).match(T)||[&quot;&quot;],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||&quot;&quot;).split(&quot;.&quot;).sort(),g&amp;&amp;(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&amp;&amp;x.expr.match.needsContext.test(a),namespace:m.join(&quot;.&quot;)},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&amp;&amp;p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&amp;&amp;e.attachEvent(&quot;on&quot;+g,f))),p.add&amp;&amp;(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&amp;&amp;x._data(e);if(m&amp;&amp;(c=m.events)){t=(t||&quot;&quot;).match(T)||[&quot;&quot;],u=t.length;whil
 e(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||&quot;&quot;).split(&quot;.&quot;).sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&amp;&amp;RegExp(&quot;(^|\\.)&quot;+h.join(&quot;\\.(?:.*\\.|)&quot;)+&quot;(\\.|$)&quot;),l=o=f.length;while(o--)a=f[o],!i&amp;&amp;g!==a.origType||n&amp;&amp;n.guid!==a.guid||s&amp;&amp;!s.test(a.namespace)||r&amp;&amp;r!==a.selector&amp;&amp;(&quot;**&quot;!==r||!a.selector)||(f.splice(o,1),a.selector&amp;&amp;f.delegateCount--,p.remove&amp;&amp;p.remove.call(e,a));l&amp;&amp;!f.length&amp;&amp;(p.teardown&amp;&amp;p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&amp;&amp;(delete m.handle,x._removeData(e,&quot;events&quot;))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,&quot;type&quot;)?n.type:n,m=v.call(n,&quot;namespace&quot;)?n.namespace.split(&quot;.&quot;):[];if(u=f=i=i||a,3!==i.nodeTyp
 e&amp;&amp;8!==i.nodeType&amp;&amp;!nt.test(g+x.event.triggered)&amp;&amp;(g.indexOf(&quot;.&quot;)&gt;=0&amp;&amp;(m=g.split(&quot;.&quot;),g=m.shift(),m.sort()),l=0&gt;g.indexOf(&quot;:&quot;)&amp;&amp;&quot;on&quot;+g,n=n[x.expando]?n:new x.Event(g,&quot;object&quot;==typeof n&amp;&amp;n),n.isTrigger=o?2:3,n.namespace=m.join(&quot;.&quot;),n.namespace_re=n.namespace?RegExp(&quot;(^|\\.)&quot;+m.join(&quot;\\.(?:.*\\.|)&quot;)+&quot;(\\.|$)&quot;):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&amp;&amp;!p.noBubble&amp;&amp;!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&amp;&amp;h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&amp;&amp;!n.isPropagationStopped())n.type=d&gt;1?c:p.bindType||g,s=(x._data(u,&quot;events&quot;)||{})[n.type]&amp;&amp;x._data(u,&quot;handle&quot;),s&amp;&amp;
 s.apply(u,r),s=l&amp;&amp;u[l],s&amp;&amp;x.acceptData(u)&amp;&amp;s.apply&amp;&amp;s.apply(u,r)===!1&amp;&amp;n.preventDefault();if(n.type=g,!o&amp;&amp;!n.isDefaultPrevented()&amp;&amp;(!p._default||p._default.apply(h.pop(),r)===!1)&amp;&amp;x.acceptData(i)&amp;&amp;l&amp;&amp;i[g]&amp;&amp;!x.isWindow(i)){f=i[l],f&amp;&amp;(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&amp;&amp;(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,&quot;events&quot;)||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&amp;&amp;!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&amp;&amp;!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&amp;&amp;(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]
 ||{}).handle||i.handler).apply(o.elem,l),r!==t&amp;&amp;(e.result=r)===!1&amp;&amp;(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&amp;&amp;c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&amp;&amp;u.nodeType&amp;&amp;(!e.button||&quot;click&quot;!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&amp;&amp;(u.disabled!==!0||&quot;click&quot;!==e.type)){for(o=[],a=0;l&gt;a;a++)i=n[a],r=i.selector+&quot; &quot;,o[r]===t&amp;&amp;(o[r]=i.needsContext?x(r,this).index(u)&gt;=0:x.find(r,this,null,[u]).length),o[r]&amp;&amp;o.push(i);o.length&amp;&amp;s.push({elem:u,handlers:o})}return n.length&gt;l&amp;&amp;s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t-
 -)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&amp;&amp;(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:&quot;altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which&quot;.split(&quot; &quot;),fixHooks:{},keyHooks:{props:&quot;char charCode key keyCode&quot;.split(&quot; &quot;),filter:function(e,t){return null==e.which&amp;&amp;(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:&quot;button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement&quot;.split(&quot; &quot;),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&amp;&amp;null!=n.clientX&amp;&amp;(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&amp;&amp;o.scrollLeft||r&amp;&amp;r.scrollLeft||0)-(o&amp;&amp;o.clientLeft||r&amp;&amp;r.clientLeft||0),e.pageY=n.clientY+(o&amp
 ;&amp;o.scrollTop||r&amp;&amp;r.scrollTop||0)-(o&amp;&amp;o.clientTop||r&amp;&amp;r.clientTop||0)),!e.relatedTarget&amp;&amp;l&amp;&amp;(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&amp;s?1:2&amp;s?3:4&amp;s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&amp;&amp;this.focus)try{return this.focus(),!1}catch(e){}},delegateType:&quot;focusin&quot;},blur:{trigger:function(){return this===at()&amp;&amp;this.blur?(this.blur(),!1):t},delegateType:&quot;focusout&quot;},click:{trigger:function(){return x.nodeName(this,&quot;input&quot;)&amp;&amp;&quot;checkbox&quot;===this.type&amp;&amp;this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,&quot;a&quot;)}},beforeunload:{postDispatch:function(e){e.result!==t&amp;&amp;(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call
 (t,i),i.isDefaultPrevented()&amp;&amp;n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&amp;&amp;e.removeEventListener(t,n,!1)}:function(e,t,n){var r=&quot;on&quot;+t;e.detachEvent&amp;&amp;(typeof e[r]===i&amp;&amp;(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&amp;&amp;e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&amp;&amp;e.getPreventDefault()?it:ot):this.type=e,n&amp;&amp;x.extend(this,n),this.timeStamp=e&amp;&amp;e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&amp;&amp;(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&amp;&amp;
 (e.stopPropagation&amp;&amp;e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:&quot;mouseover&quot;,mouseleave:&quot;mouseout&quot;},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&amp;&amp;!x.contains(r,i))&amp;&amp;(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,&quot;form&quot;)?!1:(x.event.add(this,&quot;click._submit keypress._submit&quot;,function(e){var n=e.target,r=x.nodeName(n,&quot;input&quot;)||x.nodeName(n,&quot;button&quot;)?n.form:t;r&amp;&amp;!x._data(r,&quot;submitBubbles&quot;)&amp;&amp;(x.event.add(r,&quot;submit._submit&quot;,function(e){e._submit_bubble=!0}),x._data(r,&quot;submitBubbles&quot;,!0))}),t)},postDispatch:function(e){e._submit_bubble&amp
 ;&amp;(delete e._submit_bubble,this.parentNode&amp;&amp;!e.isTrigger&amp;&amp;x.event.simulate(&quot;submit&quot;,this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,&quot;form&quot;)?!1:(x.event.remove(this,&quot;._submit&quot;),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?((&quot;checkbox&quot;===this.type||&quot;radio&quot;===this.type)&amp;&amp;(x.event.add(this,&quot;propertychange._change&quot;,function(e){&quot;checked&quot;===e.originalEvent.propertyName&amp;&amp;(this._just_changed=!0)}),x.event.add(this,&quot;click._change&quot;,function(e){this._just_changed&amp;&amp;!e.isTrigger&amp;&amp;(this._just_changed=!1),x.event.simulate(&quot;change&quot;,this,e,!0)})),!1):(x.event.add(this,&quot;beforeactivate._change&quot;,function(e){var t=e.target;Z.test(t.nodeName)&amp;&amp;!x._data(t,&quot;changeBubbles&quot;)&amp;&amp;(x.event.add(t,&quot;change._change&quot;,function(e){!this.parentNode||e.isS
 imulated||e.isTrigger||x.event.simulate(&quot;change&quot;,this.parentNode,e,!0)}),x._data(t,&quot;changeBubbles&quot;,!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||&quot;radio&quot;!==n.type&amp;&amp;&quot;checkbox&quot;!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,&quot;._change&quot;),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:&quot;focusin&quot;,blur:&quot;focusout&quot;},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&amp;&amp;a.addEventListener(e,r,!0)},teardown:function(){0===--n&amp;&amp;a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if(&quot;object&quot;==typeof e){&quot;string&quot;!=typeof n&amp;&amp;(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&amp;&amp;null==i?(i=n,r=n=t):null==i&amp;&amp;(&quot;string&quot;=
 =typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&amp;&amp;(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&amp;&amp;e.preventDefault&amp;&amp;e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+&quot;.&quot;+i.namespace:i.origType,i.selector,i.handler),this;if(&quot;object&quot;==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||&quot;function&quot;==typeof n)&amp;&amp;(r=n,n=t),r===!1&amp;&amp;(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents
 :!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if(&quot;string&quot;!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i&gt;t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i&gt;t;t++)x.find(e,r[t],n);return n=this.pushStack(i&gt;1?x.unique(n):n),n.selector=this.selector?this.selector+&quot; &quot;+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r&gt;t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,&quot;string&quot;==typeof e&amp;&amp;ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||&quot;string&quot;!=typeof e?x(e,t||this.context):0;for(;i&gt;r;r++)for(n=this[r];n&amp;&amp;n!==t;n=n.parentNode)if(11&gt;n.nodeType&amp;&amp;(a?a.index(n)&gt;-1:1===n.nodeType&amp;&amp;x.find.matchesSelector(n,e)))
 {n=o.push(n);break}return this.pushStack(o.length&gt;1?x.unique(o):o)},index:function(e){return e?&quot;string&quot;==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&amp;&amp;this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n=&quot;string&quot;==typeof e?x(e,t):x.makeArray(e&amp;&amp;e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&amp;&amp;1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&amp;&amp;11!==t.nodeType?t:null},parents:function(e){return x.dir(e,&quot;parentNode&quot;)},parentsUntil:function(e,t,n){return x.dir(e,&quot;parentNode&quot;,n)},next:function(e){return pt(e,&quot;nextSibling&quot;)},prev:function(e){return pt(e,&quot;previousSibling&quot;)},nextAll:function(e){return x.dir(e,&quot;nextSibling&quot;)},prevAll:function(e){re
 turn x.dir(e,&quot;previousSibling&quot;)},nextUntil:function(e,t,n){return x.dir(e,&quot;nextSibling&quot;,n)},prevUntil:function(e,t,n){return x.dir(e,&quot;previousSibling&quot;,n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,&quot;iframe&quot;)?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return&quot;Until&quot;!==e.slice(-5)&amp;&amp;(r=n),r&amp;&amp;&quot;string&quot;==typeof r&amp;&amp;(i=x.filter(r,i)),this.length&gt;1&amp;&amp;(ct[e]||(i=x.unique(i)),lt.test(e)&amp;&amp;(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&amp;&amp;(e=&quot;:not(&quot;+e+&quot;)&quot;),1===t.length&amp;&amp;1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i
 =[],o=e[n];while(o&amp;&amp;9!==o.nodeType&amp;&amp;(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&amp;&amp;i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&amp;&amp;e!==t&amp;&amp;n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if(&quot;string&quot;==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)&gt;=0!==n})}function dt(e){var t=ht.split(&quot;|&quot;),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht=&quot;abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video&quot;,gt=/ jQuery\d+=&quot;(?:null|\d+)&quot;/g,mt=RegExp(&quot;&lt;(?:&quot;+ht+&quot;)[\\s/&gt;]&quot;,&quot;i&quot;)
 ,yt=/^\s+/,vt=/&lt;(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^&gt;]*)\/&gt;/gi,bt=/&lt;([\w:]+)/,xt=/&lt;tbody/i,wt=/&lt;|&amp;#?\w+;/,Tt=/&lt;(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*&lt;!(?:\[CDATA\[|--)|(?:\]\]|--)&gt;\s*$/g,At={option:[1,&quot;&lt;select multiple='multiple'&gt;&quot;,&quot;&lt;/select&gt;&quot;],legend:[1,&quot;&lt;fieldset&gt;&quot;,&quot;&lt;/fieldset&gt;&quot;],area:[1,&quot;&lt;map&gt;&quot;,&quot;&lt;/map&gt;&quot;],param:[1,&quot;&lt;object&gt;&quot;,&quot;&lt;/object&gt;&quot;],thead:[1,&quot;&lt;table&gt;&quot;,&quot;&lt;/table&gt;&quot;],tr:[2,&quot;&lt;table&gt;&lt;tbody&gt;&quot;,&quot;&lt;/tbody&gt;&lt;/table&gt;&quot;],col:[2,&quot;&lt;table&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;colgroup&gt;&quot;,&quot;&lt;/colgroup&gt;&lt;/table&gt;&quot;],td:[3,&quot;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&quot;,&quot;&lt;/tr&gt;&lt;/tbody&g
 t;&lt;/table&gt;&quot;],_default:x.support.htmlSerialize?[0,&quot;&quot;,&quot;&quot;]:[1,&quot;X&lt;div&gt;&quot;,&quot;&lt;/div&gt;&quot;]},jt=dt(a),Dt=jt.appendChild(a.createElement(&quot;div&quot;));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&amp;&amp;this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&amp;&amp;this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(argu
 ments,function(e){this.parentNode&amp;&amp;this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&amp;&amp;(t&amp;&amp;x.contains(n.ownerDocument,n)&amp;&amp;_t(Ft(n,&quot;script&quot;)),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&amp;&amp;x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&amp;&amp;x.nodeName(e,&quot;select&quot;)&amp;&amp;(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,&quot;&quot;):t;if(!(&quot;string&quot;!=typeof e||Tt.test(e)||!x.support.htmlSerialize&amp;&amp;mt.test(e)||!x.support.leadingWhitespace&amp;&a
 mp;yt.test(e)||At[(bt.exec(e)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase()])){e=e.replace(vt,&quot;&lt;$1&gt;&lt;/$2&gt;&quot;);try{for(;i&gt;r;r++)n=this[r]||{},1===n.nodeType&amp;&amp;(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&amp;&amp;this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&amp;&amp;(r&amp;&amp;r.parentNode!==i&amp;&amp;(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1&gt;=c||&quot;string&quot;!=typeof h||x.support.checkClone)&amp;&amp;Nt.test(h))return this.each(function(r){var i=p.eq(r);g&amp;&amp;(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&amp;&amp;(l=x.buildFragment(e,this[0]
 .ownerDocument,!1,!n&amp;&amp;this),r=l.firstChild,1===l.childNodes.length&amp;&amp;(l=r),r)){for(a=x.map(Ft(l,&quot;script&quot;),Ht),o=a.length;c&gt;u;u++)i=l,u!==f&amp;&amp;(i=x.clone(i,!0,!0),o&amp;&amp;x.merge(a,Ft(i,&quot;script&quot;))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o&gt;u;u++)i=a[u],kt.test(i.type||&quot;&quot;)&amp;&amp;!x._data(i,&quot;globalEval&quot;)&amp;&amp;x.contains(s,i)&amp;&amp;(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||&quot;&quot;).replace(St,&quot;&quot;)));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,&quot;table&quot;)&amp;&amp;x.nodeName(1===t.nodeType?t:t.firstChild,&quot;tr&quot;)?e.getElementsByTagName(&quot;tbody&quot;)[0]||e.appendChild(e.ownerDocument.createElement(&quot;tbody&quot;)):e}function Ht(e){return e.type=(null!==x.find.attr(e,&quot;type&quot;))+&quot;/&quot;+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute(&
 quot;type&quot;),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,&quot;globalEval&quot;,!t||x._data(t[r],&quot;globalEval&quot;))}function Mt(e,t){if(1===t.nodeType&amp;&amp;x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i&gt;r;r++)x.event.add(t,n,s[n][r])}a.data&amp;&amp;(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&amp;&amp;t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}&quot;script&quot;===n&amp;&amp;t.text!==e.text?(Ht(t).text=e.text,qt(t)):&quot;object&quot;===n?(t.parentNode&amp;&amp;(t.outerHTML=e.outerHTML),x.support.html5Clone&amp;&amp;e.innerHTML&amp;&amp;!x.trim(t.innerHTML)&amp;&amp;(t.innerHTML=e.innerHTML)):&quot;input&quot;===n&amp;&amp;Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&amp;&amp;(t.value=e.
 value)):&quot;option&quot;===n?t.defaultSelected=t.selected=e.defaultSelected:(&quot;input&quot;===n||&quot;textarea&quot;===n)&amp;&amp;(t.defaultValue=e.defaultValue)}}x.each({appendTo:&quot;append&quot;,prependTo:&quot;prepend&quot;,insertBefore:&quot;before&quot;,insertAfter:&quot;after&quot;,replaceAll:&quot;replaceWith&quot;},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a&gt;=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||&quot;*&quot;):typeof e.querySelectorAll!==i?e.querySelectorAll(n||&quot;*&quot;):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&amp;&amp;x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&amp;&amp;(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e)
 ;if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test(&quot;&lt;&quot;+e.nodeName+&quot;&gt;&quot;)?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&amp;&amp;x.support.noCloneChecked||1!==e.nodeType&amp;&amp;11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&amp;&amp;Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,&quot;script&quot;),r.length&gt;0&amp;&amp;_t(r,!l&amp;&amp;Ft(e,&quot;script&quot;)),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p&gt;h;h++)if(o=e[h],o||0===o)if(&quot;object&quot;===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement(&quot;div&quot;)),l=(bt.exec(o)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,&quot;&lt;$1&gt;&lt;/$2&gt;&quot;)+c[2],i=c[0];while(i--)s=s.lastChild;if(!
 x.support.leadingWhitespace&amp;&amp;yt.test(o)&amp;&amp;d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o=&quot;table&quot;!==l||xt.test(o)?&quot;&lt;table&gt;&quot;!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&amp;&amp;o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],&quot;tbody&quot;)&amp;&amp;!u.childNodes.length&amp;&amp;o.removeChild(u)}x.merge(d,s.childNodes),s.textContent=&quot;&quot;;while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&amp;&amp;f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,&quot;input&quot;),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&amp;&amp;(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),&quot;script&quot;),a&amp;&amp;_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||&quot;&quot;)&amp;&amp;n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&amp;
 &amp;(o=n[l],a=o&amp;&amp;u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
++u[o]&amp;&amp;(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:&quot;GET&quot;,dataType:&quot;script&quot;,async:!1,global:!1,&quot;throws&quot;:!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&amp;&amp;t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&amp;&amp;1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,&quot;b
 ody&quot;)||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp(&quot;^(&quot;+w+&quot;)(.*)$&quot;,&quot;i&quot;),Yt=RegExp(&quot;^(&quot;+w+&quot;)(?!px)[a-z%]+$&quot;,&quot;i&quot;),Jt=RegExp(&quot;^([+-])=(&quot;+w+&quot;)&quot;,&quot;i&quot;),Gt={BODY:&quot;block&quot;},Qt={position:&quot;absolute&quot;,visibility:&quot;hidden&quot;,display:&quot;block&quot;},Kt={letterSpacing:0,fontWeight:400},Zt=[&quot;Top&quot;,&quot;Right&quot;,&quot;Bottom&quot;,&quot;Left&quot;],en=[&quot;Webkit&quot;,&quot;O&quot;,&quot;Moz&quot;,&quot;ms&quot;];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,&quot;none&quot;===x.css(e,&quot;display&quot;)||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length
 ;for(;s&gt;a;a++)r=e[a],r.style&amp;&amp;(o[a]=x._data(r,&quot;olddisplay&quot;),n=r.style.display,t?(o[a]||&quot;none&quot;!==n||(r.style.display=&quot;&quot;),&quot;&quot;===r.style.display&amp;&amp;nn(r)&amp;&amp;(o[a]=x._data(r,&quot;olddisplay&quot;,ln(r.nodeName)))):o[a]||(i=nn(r),(n&amp;&amp;&quot;none&quot;!==n||!i)&amp;&amp;x._data(r,&quot;olddisplay&quot;,i?n:x.css(r,&quot;display&quot;))));for(a=0;s&gt;a;a++)r=e[a],r.style&amp;&amp;(t&amp;&amp;&quot;none&quot;!==r.style.display&amp;&amp;&quot;&quot;!==r.style.display||(r.style.display=t?o[a]||&quot;&quot;:&quot;none&quot;));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i&gt;s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length&gt;1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return&quot;boolean&quot;==typeof e?e?this.show():this.hide(
 ):this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,&quot;opacity&quot;);return&quot;&quot;===n?&quot;1&quot;:n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{&quot;float&quot;:x.support.cssFloat?&quot;cssFloat&quot;:&quot;styleFloat&quot;},style:function(e,n,r,i){if(e&amp;&amp;3!==e.nodeType&amp;&amp;8!==e.nodeType&amp;&amp;e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&amp;&amp;&quot;get&quot;in s&amp;&amp;(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,&quot;string&quot;===a&amp;&amp;(o=Jt.exec(r))&amp;&amp;(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a=&quot;number&quot;),!(null==r||&quot;number&quot;===a&amp;&amp;isNaN(r)||(&quot;number&quot;!==a||x.cssNumber[l]||(r+=&quot;px&quot;),x.support.clearCloneStyle||&quot;&quot
 ;!==r||0!==n.indexOf(&quot;background&quot;)||(u[n]=&quot;inherit&quot;),s&amp;&amp;&quot;set&quot;in s&amp;&amp;(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&amp;&amp;&quot;get&quot;in s&amp;&amp;(a=s.get(e,!0,r)),a===t&amp;&amp;(a=Wt(e,n,i)),&quot;normal&quot;===a&amp;&amp;n in Kt&amp;&amp;(a=Kt[n]),&quot;&quot;===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&amp;&amp;(&quot;&quot;!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&amp;&amp;Ut.test(n)&amp;&amp;(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&amp;&amp;(Rt=function(e){return e.currentStyl
 e},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&amp;&amp;u&amp;&amp;u[n]&amp;&amp;(l=u[n]),Yt.test(l)&amp;&amp;!zt.test(n)&amp;&amp;(i=u.left,o=e.runtimeStyle,a=o&amp;&amp;o.left,a&amp;&amp;(o.left=e.currentStyle.left),u.left=&quot;fontSize&quot;===n?&quot;1em&quot;:l,l=u.pixelLeft+&quot;px&quot;,u.left=i,a&amp;&amp;(o.left=a)),&quot;&quot;===l?&quot;auto&quot;:l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||&quot;px&quot;):t}function an(e,t,n,r,i){var o=n===(r?&quot;border&quot;:&quot;content&quot;)?4:&quot;width&quot;===t?1:0,a=0;for(;4&gt;o;o+=2)&quot;margin&quot;===n&amp;&amp;(a+=x.css(e,n+Zt[o],!0,i)),r?(&quot;content&quot;===n&amp;&amp;(a-=x.css(e,&quot;padding&quot;+Zt[o],!0,i)),&quot;margin&quot;!==n&amp;&amp;(a-=x.css(e,&quot;border&quot;+Zt[o]+&quot;Width&quot;,!0,i))):(a+=x.css(e,&quot;padding&quot;+Zt[o],!0,i),&quot;padding&quot;!==n&amp;&amp;(a+=x.css(e,&quot;border&quot;+Zt[o]+&quot;Width&quot;,!0,i
 )));return a}function sn(e,t,n){var r=!0,i=&quot;width&quot;===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&amp;&amp;&quot;border-box&quot;===x.css(e,&quot;boxSizing&quot;,!1,o);if(0&gt;=i||null==i){if(i=Wt(e,t,o),(0&gt;i||null==i)&amp;&amp;(i=e.style[t]),Yt.test(i))return i;r=a&amp;&amp;(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?&quot;border&quot;:&quot;content&quot;),r,o)+&quot;px&quot;}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),&quot;none&quot;!==n&amp;&amp;n||(Pt=(Pt||x(&quot;&lt;iframe frameborder='0' width='0' height='0'/&gt;&quot;).css(&quot;cssText&quot;,&quot;display:block !important&quot;)).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write(&quot;&lt;!doctype html&gt;&lt;html&gt;&lt;body&gt;&quot;),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],&quot;display&quot;);return n.remove(),r}x
 .each([&quot;height&quot;,&quot;width&quot;],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&amp;&amp;Xt.test(x.css(e,&quot;display&quot;))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&amp;&amp;Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&amp;&amp;&quot;border-box&quot;===x.css(e,&quot;boxSizing&quot;,!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&amp;&amp;e.currentStyle?e.currentStyle.filter:e.style.filter)||&quot;&quot;)?.01*parseFloat(RegExp.$1)+&quot;&quot;:t?&quot;1&quot;:&quot;&quot;},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?&quot;alpha(opacity=&quot;+100*t+&quot;)&quot;:&quot;&quot;,o=r&amp;&amp;r.filter||n.filter||&quot;&quot;;n.zoom=1,(t&gt;=1||&quot;&quot;===t)&amp;&amp;&quot;&quot;===x.trim(o.replace($t,&quot;&quot;))&amp;&amp;n.removeAttribute&amp;&amp;(n.removeAttribute(&quot;filter&quot;),&quot;&quot;===t||r&amp;&amp;!r.f
 ilter)||(n.filter=$t.test(o)?o.replace($t,i):o+&quot; &quot;+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:&quot;inline-block&quot;},Wt,[e,&quot;marginRight&quot;]):t}}),!x.support.pixelPosition&amp;&amp;x.fn.position&amp;&amp;x.each([&quot;top&quot;,&quot;left&quot;],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+&quot;px&quot;:r):t}}})}),x.expr&amp;&amp;x.expr.filters&amp;&amp;(x.expr.filters.hidden=function(e){return 0&gt;=e.offsetWidth&amp;&amp;0&gt;=e.offsetHeight||!x.support.reliableHiddenOffsets&amp;&amp;&quot;none&quot;===(e.style&amp;&amp;e.style.display||x.css(e,&quot;display&quot;))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:&quot;&quot;,padding:&quot;&quot;,border:&quot;Width&quot;},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o=&quot;string&quot;==typeof n?n.split(&quot; &quot;):[n
 ];for(;4&gt;r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,&quot;elements&quot;);return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&amp;&amp;!x(this).is(&quot;:disabled&quot;)&amp;&amp;hn.test(this.nodeName)&amp;&amp;!dn.test(e)&amp;&amp;(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,&quot;\r\n&quot;)}}):{name:t.name,value:n.replace(fn,&quot;\r\n&quot;)}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?&quot;&quot;:t,i[i.length]=encodeURIComponent(e)+&quot;=&quot;+encodeURIComponent(t)};if(n===t
 &amp;&amp;(n=x.ajaxSettings&amp;&amp;x.ajaxSettings.traditional),x.isArray(e)||e.jquery&amp;&amp;!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join(&quot;&amp;&quot;).replace(cn,&quot;+&quot;)};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+&quot;[&quot;+(&quot;object&quot;==typeof i?t:&quot;&quot;)+&quot;]&quot;,i,n,r)});else if(n||&quot;object&quot;!==x.type(t))r(e,t);else for(i in t)gn(e+&quot;[&quot;+i+&quot;]&quot;,t[i],n,r)}x.each(&quot;blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu&quot;.split(&quot; &quot;),function(e,t){x.fn[t]=function(e,n){return arguments.length&gt;0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return t
 his.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,&quot;**&quot;):this.off(t,e||&quot;**&quot;,n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&amp;])_=[^&amp;]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn=&quot;*/&quot;.concat(&quot;*&quot;);try{yn=o.href}catch(Ln){yn=a.createElement(&quot;a&quot;),yn.href=&quot;&quot;,yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){&quot;string&quot;!=typeof t&amp;&amp;(n=t,t=&quot;*&quot;);var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])&quot;+&quot;===r[0]?(r=r.slice(1)||&quot;*&quot;,(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;functio
 n s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return&quot;string&quot;!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o[&quot;*&quot;]&amp;&amp;s(&quot;*&quot;)}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&amp;&amp;((o[i]?e:r||(r={}))[i]=n[i]);return r&amp;&amp;x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if(&quot;string&quot;!=typeof e&amp;&amp;Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(&quot; &quot;);return l&gt;=0&amp;&amp;(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&amp;&amp;&quot;object&quot;==typeof n&amp;&amp;(a=&quot;POST&quot;),s.length&gt;0&amp;&amp;x.ajax({url:e,type:a,dataType:&quot;html&quot;,data:n}).done(function(e){o=arguments,s.html(i?x(&quot;&lt;div&gt;&quot;).append(x.parseHTML(e)).find(i):e)}).complete(r&amp;&amp;function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each([&quot;ajaxStart&quot;,&quot;ajax
 Stop&quot;,&quot;ajaxComplete&quot;,&quot;ajaxError&quot;,&quot;ajaxSuccess&quot;,&quot;ajaxSend&quot;],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:&quot;GET&quot;,isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:&quot;application/x-www-form-urlencoded; charset=UTF-8&quot;,accepts:{&quot;*&quot;:Dn,text:&quot;text/plain&quot;,html:&quot;text/html&quot;,xml:&quot;application/xml, text/xml&quot;,json:&quot;application/json, text/javascript&quot;},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:&quot;responseXML&quot;,text:&quot;responseText&quot;,json:&quot;responseJSON&quot;},converters:{&quot;* text&quot;:String,&quot;text html&quot;:!0,&quot;text json&quot;:x.parseJSON,&quot;text xml&quot;:x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),a
 jax:function(e,n){&quot;object&quot;==typeof e&amp;&amp;(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&amp;&amp;(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks(&quot;once memory&quot;),m=p.statusCode||{},y={},v={},b=0,w=&quot;canceled&quot;,C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2&gt;b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&amp;&amp;u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+&quot;&quot;).replace(xn,&quot;&quot;).replace(kn,mn[
 1]+&quot;//&quot;),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||&quot;*&quot;).toLowerCase().match(T)||[&quot;&quot;],null==p.crossDomain&amp;&amp;(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&amp;&amp;r[2]===mn[2]&amp;&amp;(r[3]||(&quot;http:&quot;===r[1]?&quot;80&quot;:&quot;443&quot;))===(mn[3]||(&quot;http:&quot;===mn[1]?&quot;80&quot;:&quot;443&quot;)))),p.data&amp;&amp;p.processData&amp;&amp;&quot;string&quot;!=typeof p.data&amp;&amp;(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&amp;&amp;0===x.active++&amp;&amp;x.event.trigger(&quot;ajaxStart&quot;),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&amp;&amp;(o=p.url+=(bn.test(o)?&quot;&amp;&quot;:&quot;?&quot;)+p.data,delete p.data),p.cache===!1&amp;&amp;(p.url=wn.test(o)?o.replace(wn,&quot;$1_=&quot;+vn++):o+(bn.test(o)?&quot;&amp;&quot;:&quot;?&quot;)+&quot;_=&quot;+vn++)),p.ifModified&amp;&amp;(x.la
 stModified[o]&amp;&amp;C.setRequestHeader(&quot;If-Modified-Since&quot;,x.lastModified[o]),x.etag[o]&amp;&amp;C.setRequestHeader(&quot;If-None-Match&quot;,x.etag[o])),(p.data&amp;&amp;p.hasContent&amp;&amp;p.contentType!==!1||n.contentType)&amp;&amp;C.setRequestHeader(&quot;Content-Type&quot;,p.contentType),C.setRequestHeader(&quot;Accept&quot;,p.dataTypes[0]&amp;&amp;p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+(&quot;*&quot;!==p.dataTypes[0]?&quot;, &quot;+Dn+&quot;; q=0.01&quot;:&quot;&quot;):p.accepts[&quot;*&quot;]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&amp;&amp;(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w=&quot;abort&quot;;for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&amp;&amp;d.trigger(&quot;ajaxSend&quot;,[C,p]),p.async&amp;&amp;p.timeout&gt;0&amp;&amp;(s=setTimeout(function(){C.abort(&quot;timeout&quot;)},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2&gt;b))throw N;k(-1,N)}}
 else k(-1,&quot;No Transport&quot;);function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&amp;&amp;(b=2,s&amp;&amp;clearTimeout(s),u=t,a=i||&quot;&quot;,C.readyState=e&gt;0?4:0,c=e&gt;=200&amp;&amp;300&gt;e||304===e,r&amp;&amp;(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&amp;&amp;(T=C.getResponseHeader(&quot;Last-Modified&quot;),T&amp;&amp;(x.lastModified[o]=T),T=C.getResponseHeader(&quot;etag&quot;),T&amp;&amp;(x.etag[o]=T)),204===e||&quot;HEAD&quot;===p.type?N=&quot;nocontent&quot;:304===e?N=&quot;notmodified&quot;:(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&amp;&amp;(N=&quot;error&quot;,0&gt;e&amp;&amp;(e=0))),C.status=e,C.statusText=(n||N)+&quot;&quot;,c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&amp;&amp;d.trigger(c?&quot;ajaxSuccess&quot;:&quot;ajaxError&quot;,[C,p,c?y:v]),g.fireWith(f,[C,N]),l&amp;&amp;(d.trigger(&quot;ajaxComplete&quot;,[C,p]),--x.active||x.event.trigger(&quot;ajaxStop&quot;)))}return C},getJSON:function(e,t,n){return x.get(e,t
 ,n,&quot;json&quot;)},getScript:function(e,n){return x.get(e,t,n,&quot;script&quot;)}}),x.each([&quot;get&quot;,&quot;post&quot;],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&amp;&amp;(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while(&quot;*&quot;===u[0])u.shift(),o===t&amp;&amp;(o=e.mimeType||n.getResponseHeader(&quot;Content-Type&quot;));if(o)for(s in l)if(l[s]&amp;&amp;l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+&quot; &quot;+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&amp;&amp;u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&amp;&amp;(n[e.responseFields[o]]=t),!l&amp;&amp;r&amp;&amp;e.dataFilter&amp;&amp;(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if(&quot;*&quot;===o)o=l;e
 lse if(&quot;*&quot;!==l&amp;&amp;l!==o){if(a=u[l+&quot; &quot;+o]||u[&quot;* &quot;+o],!a)for(i in u)if(s=i.split(&quot; &quot;),s[1]===o&amp;&amp;(a=u[l+&quot; &quot;+s[0]]||u[&quot;* &quot;+s[0]])){a===!0?a=u[i]:u[i]!==!0&amp;&amp;(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&amp;&amp;e[&quot;throws&quot;])t=a(t);else try{t=a(t)}catch(p){return{state:&quot;parsererror&quot;,error:a?p:&quot;No conversion from &quot;+l+&quot; to &quot;+o}}}return{state:&quot;success&quot;,data:t}}x.ajaxSetup({accepts:{script:&quot;text/javascript, application/javascript, application/ecmascript, application/x-ecmascript&quot;},contents:{script:/(?:java|ecma)script/},converters:{&quot;text script&quot;:function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter(&quot;script&quot;,function(e){e.cache===t&amp;&amp;(e.cache=!1),e.crossDomain&amp;&amp;(e.type=&quot;GET&quot;,e.global=!1)}),x.ajaxTransport(&quot;script&quot;,function(e){if(e.crossDomain){var n,r=a.head||x(&quot;head&quot;)[0]||a.docu
 mentElement;return{send:function(t,i){n=a.createElement(&quot;script&quot;),n.async=!0,e.scriptCharset&amp;&amp;(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&amp;&amp;(n.onload=n.onreadystatechange=null,n.parentNode&amp;&amp;n.parentNode.removeChild(n),n=null,t||i(200,&quot;success&quot;))},r.insertBefore(n,r.firstChild)},abort:function(){n&amp;&amp;n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&amp;|$)|\?\?/;x.ajaxSetup({jsonp:&quot;callback&quot;,jsonpCallback:function(){var e=Fn.pop()||x.expando+&quot;_&quot;+vn++;return this[e]=!0,e}}),x.ajaxPrefilter(&quot;json jsonp&quot;,function(n,r,i){var o,a,s,l=n.jsonp!==!1&amp;&amp;(Bn.test(n.url)?&quot;url&quot;:&quot;string&quot;==typeof n.data&amp;&amp;!(n.contentType||&quot;&quot;).indexOf(&quot;application/x-www-form-urlencoded&quot;)&amp;&amp;Bn.test(n.data)&amp;&amp;&quot;data&quot;);return l||&quot;jsonp&quot;===n.dataTypes[0]?(o=n.
 jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,&quot;$1&quot;+o):n.jsonp!==!1&amp;&amp;(n.url+=(bn.test(n.url)?&quot;&amp;&quot;:&quot;?&quot;)+n.jsonp+&quot;=&quot;+o),n.converters[&quot;script json&quot;]=function(){return s||x.error(o+&quot; was not called&quot;),s[0]},n.dataTypes[0]=&quot;json&quot;,a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&amp;&amp;(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&amp;&amp;x.isFunction(a)&amp;&amp;a(s[0]),s=a=t}),&quot;script&quot;):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&amp;&amp;function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject(&quot;Microsoft.XMLHTTP&quot;)}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&amp;&amp;In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&amp;&amp;&quot;withCredentials&quot;in Rn,Rn=x.support.ajax=!!Rn,Rn&a
 mp;&amp;x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&amp;&amp;l.overrideMimeType&amp;&amp;l.overrideMimeType(n.mimeType),n.crossDomain||i[&quot;X-Requested-With&quot;]||(i[&quot;X-Requested-With&quot;]=&quot;XMLHttpRequest&quot;);try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&amp;&amp;n.data||null),r=function(e,i){var s,u,c,p;try{if(r&amp;&amp;(i||4===l.readyState))if(r=t,a&amp;&amp;(l.onreadystatechange=x.noop,$n&amp;&amp;delete Pn[a]),i)4!==l.readyState&amp;&amp;l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),&quot;string&quot;==typeof l.responseText&amp;&amp;(p.text=l.responseText);try{c=l.statusText}catch(f){c=&quot;&quot;}s||!n.isLocal||n.crossDomain?1223===s&amp;&amp;(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)
 }p&amp;&amp;o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&amp;&amp;(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&amp;&amp;r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp(&quot;^(?:([+-])=|)(&quot;+w+&quot;)([a-z%]*)$&quot;,&quot;i&quot;),Jn=/queueHooks$/,Gn=[nr],Qn={&quot;*&quot;:[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&amp;&amp;i[3]||(x.cssNumber[e]?&quot;&quot;:&quot;px&quot;),a=(x.cssNumber[e]||&quot;px&quot;!==o&amp;&amp;+r)&amp;&amp;Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&amp;&amp;a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||&quot;.5&quot;,a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&amp;&amp;1!==s&amp;&amp;--l)}return i&amp;&amp;(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn[&quot;*&quot;]),o=0,a=i.length;for(;a&gt;o;o++)if(r=i[o].call(n,t
 ,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l&gt;a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1&gt;o&amp;&amp;l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r&gt;n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a&gt;o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&amp;&amp;u.opts.start.call(e,u),x.fx.timer(x.extend(
 l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&amp;&amp;(i=o[1],o=e[n]=o[0]),n!==r&amp;&amp;(e[r]=o,delete e[n]),a=x.cssHooks[r],a&amp;&amp;&quot;expand&quot;in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=[&quot;*&quot;]):e=e.split(&quot; &quot;);var n,r=0,i=e.length;for(;i&gt;r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&amp;&amp;nn(e),d=x._data(e,&quot;fxshow&quot;);n.queue||(s=x._queueHooks(e,&quot;fx&quot;),null==s.unqueued&amp;&amp;(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued-
 -,x.queue(e,&quot;fx&quot;).length||s.empty.fire()})})),1===e.nodeType&amp;&amp;(&quot;height&quot;in t||&quot;width&quot;in t)&amp;&amp;(n.overflow=[p.overflow,p.overflowX,p.overflowY],&quot;inline&quot;===x.css(e,&quot;display&quot;)&amp;&amp;&quot;none&quot;===x.css(e,&quot;float&quot;)&amp;&amp;(x.support.inlineBlockNeedsLayout&amp;&amp;&quot;inline&quot;!==ln(e.nodeName)?p.zoom=1:p.display=&quot;inline-block&quot;)),n.overflow&amp;&amp;(p.overflow=&quot;hidden&quot;,x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||&quot;toggle&quot;===i,i===(f?&quot;hide&quot;:&quot;show&quot;))continue;c[r]=d&amp;&amp;d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?&quot;hidden&quot;in d&amp;&amp;(f=d.hidden):d=x._data(e,&quot;fxshow&quot;,{}),o&amp;&amp;(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,&quot;
 fxshow&quot;);for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&amp;&amp;(a.end=a.start,a.start=&quot;width&quot;===r||&quot;height&quot;===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||&quot;swing&quot;,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?&quot;&quot;:&quot;px&quot;)},cur:function(){var e=rr.propHooks[this.prop];return e&amp;&amp;e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&amp;&amp;this.options.step.call(this.elem,this.now,this),n&amp;&amp;n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.proto
 type,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&amp;&amp;null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,&quot;&quot;),t&amp;&amp;&quot;auto&quot;!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&amp;&amp;(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&amp;&amp;e.elem.parentNode&amp;&amp;(e.elem[e.prop]=e.now)}},x.each([&quot;toggle&quot;,&quot;show&quot;,&quot;hide&quot;],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||&quot;boolean&quot;==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css(&quot;opacity&quot;,0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t
 =er(this,x.extend({},e),o);(i||x._data(this,&quot;finish&quot;))&amp;&amp;t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return&quot;string&quot;!=typeof e&amp;&amp;(r=n,n=e,e=t),n&amp;&amp;e!==!1&amp;&amp;this.queue(e||&quot;fx&quot;,[]),this.each(function(){var t=!0,n=null!=e&amp;&amp;e+&quot;queueHooks&quot;,o=x.timers,a=x._data(this);if(n)a[n]&amp;&amp;a[n].stop&amp;&amp;i(a[n]);else for(n in a)a[n]&amp;&amp;a[n].stop&amp;&amp;Jn.test(n)&amp;&amp;i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&amp;&amp;o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&amp;&amp;x.dequeue(this,e)})},finish:function(e){return e!==!1&amp;&amp;(e=e||&quot;fx&quot;),this.each(function(){var t,n=x._data(this),r=n[e+&quot;queue&quot;],i=n[e+&quot;queueHooks&quot;],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&amp;&amp;i.stop&amp;&amp;i.stop.call(this,!0),
 t=o.length;t--;)o[t].elem===this&amp;&amp;o[t].queue===e&amp;&amp;(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a&gt;t;t++)r[t]&amp;&amp;r[t].finish&amp;&amp;r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4&gt;i;i+=2-t)n=Zt[i],r[&quot;margin&quot;+n]=r[&quot;padding&quot;+n]=e;return t&amp;&amp;(r.opacity=r.width=e),r}x.each({slideDown:ir(&quot;show&quot;),slideUp:ir(&quot;hide&quot;),slideToggle:ir(&quot;toggle&quot;),fadeIn:{opacity:&quot;show&quot;},fadeOut:{opacity:&quot;hide&quot;},fadeToggle:{opacity:&quot;toggle&quot;}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&amp;&amp;&quot;object&quot;==typeof e?x.extend({},e):{complete:n||!n&amp;&amp;t||x.isFunction(e)&amp;&amp;e,duration:e,easing:n&amp;&amp;t||t&amp;&amp;!x.isFunction(t)&amp;&amp;t};return r.duration=x.fx.off?0:&quot;number&quot;==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:
 x.fx.speeds._default,(null==r.queue||r.queue===!0)&amp;&amp;(r.queue=&quot;fx&quot;),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&amp;&amp;r.old.call(this),r.queue&amp;&amp;x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length&gt;r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&amp;&amp;x.timers.push(e)&amp;&amp;x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&amp;&amp;x.expr.filters&amp;&amp;(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOff
 set(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&amp;&amp;a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&amp;&amp;(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,&quot;position&quot;);&quot;static&quot;===r&amp;&amp;(e.style.position=&quot;relative&quot;);var i=x(e),o=i.offset(),a=x.css(e,&quot;top&quot;),s=x.css(e,&quot;left&quot;),l=(&quot;absolute&quot;===r||&quot;fixed&quot;===r)&amp;&amp;x.inArray(&quot;auto&quot;,[a,s])&gt;-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&amp;&amp;(t=t.call(e,n,o)),null!=t.top&amp;&amp;(u.top=t.top-o.top+p),null!=t.left&amp;&amp;(u.left=t.left-o.left+f),&quot;using&quot;in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={to
 p:0,left:0},r=this[0];return&quot;fixed&quot;===x.css(r,&quot;position&quot;)?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],&quot;html&quot;)||(n=e.offset()),n.top+=x.css(e[0],&quot;borderTopWidth&quot;,!0),n.left+=x.css(e[0],&quot;borderLeftWidth&quot;,!0)),{top:t.top-n.top-x.css(r,&quot;marginTop&quot;,!0),left:t.left-n.left-x.css(r,&quot;marginLeft&quot;,!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&amp;&amp;!x.nodeName(e,&quot;html&quot;)&amp;&amp;&quot;static&quot;===x.css(e,&quot;position&quot;))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:&quot;pageXOffset&quot;,scrollTop:&quot;pageYOffset&quot;},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.
 isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:&quot;height&quot;,Width:&quot;width&quot;},function(e,n){x.each({padding:&quot;inner&quot;+e,content:n,&quot;&quot;:&quot;outer&quot;+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&amp;&amp;(r||&quot;boolean&quot;!=typeof i),s=r||(i===!0||o===!0?&quot;margin&quot;:&quot;border&quot;);return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement[&quot;client&quot;+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body[&quot;scroll&quot;+e],o[&quot;scroll&quot;+e],n.body[&quot;offset&quot;+e],o[&quot;offset&quot;+e],o[&quot;client&quot;+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,&quot;object&quot;==typeof module&amp;&amp;module&amp;&amp;&quot;object&quot;==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,&quot;function&quot;==typeof define&amp;&amp;define.amd&amp;&a
 mp;define(&quot;jquery&quot;,[],function(){return x}))})(window);
+diff --git a/web/ajax/libs/jquery/2.0.3/jquery.min.js b/web/ajax/libs/jquery/2.0.3/jquery.min.js
+new file mode 100644
+index 0000000..9a85bd3
+--- /dev/null
++++ b/web/ajax/libs/jquery/2.0.3/jquery.min.js
+@@ -0,0 +1,6 @@
++/*! jQuery v2.0.3 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
++//@ sourceMappingURL=jquery.min.map
++*/
++(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p=&quot;2.0.3&quot;,f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(&lt;[\w\W]+&gt;)[^&gt;]*|#([\w-]*))$/,C=/^&lt;(\w+)\s*\/?&gt;(?:&lt;\/\1&gt;|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener(&quot;DOMContentLoaded&quot;,S,!1),e.removeEventListener(&quot;load&quot;,S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if(&quot;string&quot;==typeof e){if(r=&quot;&lt;&quot;===e.charAt(0)&amp;&amp;&quot;&gt;&quot;===e.charAt(e.length-1)&amp;&amp;e.length&gt;=3?[null,e,null]:T.exec(e),!r||!r[1]&amp;&amp;t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.m
 erge(this,x.parseHTML(r[1],t&amp;&amp;t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&amp;&amp;x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&amp;&amp;i.parentNode&amp;&amp;(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&amp;&amp;(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:&quot;&quot;,length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0&gt;e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:functi
 on(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0&gt;e?t:0);return this.pushStack(n&gt;=0&amp;&amp;t&gt;n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for(&quot;boolean&quot;==typeof s&amp;&amp;(l=s,s=arguments[1]||{},a=2),&quot;object&quot;==typeof s||x.isFunction(s)||(s={}),u===a&amp;&amp;(s=this,--a);u&gt;a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&amp;&amp;(l&amp;&amp;r&amp;&amp;(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&amp;&amp;x.isArray(n)?n:[]):o=n&amp;&amp;x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&amp;&amp;(s[t]=r));return s},x.extend({expando:&quot;jQuery&quot;+(p+Math.random()).replace(/\D/g,&quot;&quot;),noConflict:function(t){r
 eturn e.$===x&amp;&amp;(e.$=u),t&amp;&amp;e.jQuery===x&amp;&amp;(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&amp;&amp;--x.readyWait&gt;0||(n.resolveWith(o,[x]),x.fn.trigger&amp;&amp;x(o).trigger(&quot;ready&quot;).off(&quot;ready&quot;)))},isFunction:function(e){return&quot;function&quot;===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&amp;&amp;e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&amp;&amp;isFinite(e)},type:function(e){return null==e?e+&quot;&quot;:&quot;object&quot;==typeof e||&quot;function&quot;==typeof e?l[m.call(e)]||&quot;object&quot;:typeof e},isPlainObject:function(e){if(&quot;object&quot;!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&amp;&amp;!y.call(e.constructor.prototype,&quot;isPrototypeOf&quot;))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e
 )return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||&quot;string&quot;!=typeof e)return null;&quot;boolean&quot;==typeof t&amp;&amp;(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&amp;&amp;[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&amp;&amp;x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||&quot;string&quot;!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,&quot;text/xml&quot;)}catch(r){t=undefined}return(!t||t.getElementsByTagName(&quot;parsererror&quot;).length)&amp;&amp;x.error(&quot;Invalid XML: &quot;+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&amp;&amp;(1===e.indexOf(&quot;use strict&quot;)?(t=o.createElement(&quot;script&quot;),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,&quot;ms-&quot;).replace(N,E)},nodeName:function(e,t){return e.nodeName&amp;&amp;e.nodeName.toLowe
 rCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o&gt;i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o&gt;i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?&quot;&quot;:v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&amp;&amp;(j(Object(e))?x.merge(n,&quot;string&quot;==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if(&quot;number&quot;==typeof n)for(;n&gt;i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s&gt;o;o++)r=!!t(e[o],o),n!==r&amp;&amp;i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o&gt;i;i++)r=t(e[i],i,n),null!=r&amp;&amp;(a[a.length]=r);else for(
 i in e)r=t(e[i],i,n),null!=r&amp;&amp;(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return&quot;string&quot;==typeof t&amp;&amp;(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if(&quot;object&quot;===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&amp;&amp;(i=!0,x.isFunction(r)||(s=!0),l&amp;&amp;(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u&gt;a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),&quot;complete&quot;===o.readyState?setTimeout(x.ready):(o.addEventListener(&quot;
 DOMContentLoaded&quot;,S,!1),e.addEventListener(&quot;load&quot;,S,!1))),n.promise(t)},x.each(&quot;Boolean Number String Function Array Date RegExp Object Error&quot;.split(&quot; &quot;),function(e,t){l[&quot;[object &quot;+t+&quot;]&quot;]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&amp;&amp;t?!0:&quot;array&quot;===n||&quot;function&quot;!==n&amp;&amp;(0===t||&quot;number&quot;==typeof t&amp;&amp;t&gt;0&amp;&amp;t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v=&quot;sizzle&quot;+-new Date,b=e.document,w=0,T=0,C=st(),k=st(),N=st(),E=!1,S=function(e,t){return e===t?(E=!0,0):0},j=typeof undefined,D=1&lt;&lt;31,A={}.hasOwnProperty,L=[],q=L.pop,H=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n&gt;t;t++)if(this[t]===e)return t;return-1},R=&quot;checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scop
 ed&quot;,M=&quot;[\\x20\\t\\r\\n\\f]&quot;,W=&quot;(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+&quot;,$=W.replace(&quot;w&quot;,&quot;w#&quot;),B=&quot;\\[&quot;+M+&quot;*(&quot;+W+&quot;)&quot;+M+&quot;*(?:([*^$|!~]?=)&quot;+M+&quot;*(?:(['\&quot;])((?:\\\\.|[^\\\\])*?)\\3|(&quot;+$+&quot;)|)|)&quot;+M+&quot;*\\]&quot;,I=&quot;:(&quot;+W+&quot;)(?:\\(((['\&quot;])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|&quot;+B.replace(3,8)+&quot;)*)|.*)\\)|)&quot;,z=RegExp(&quot;^&quot;+M+&quot;+|((?:^|[^\\\\])(?:\\\\.)*)&quot;+M+&quot;+$&quot;,&quot;g&quot;),_=RegExp(&quot;^&quot;+M+&quot;*,&quot;+M+&quot;*&quot;),X=RegExp(&quot;^&quot;+M+&quot;*([&gt;+~]|&quot;+M+&quot;)&quot;+M+&quot;*&quot;),U=RegExp(M+&quot;*[+~]&quot;),Y=RegExp(&quot;=&quot;+M+&quot;*([^\\]'\&quot;]*)&quot;+M+&quot;*\\]&quot;,&quot;g&quot;),V=RegExp(I),G=RegExp(&quot;^&quot;+$+&quot;$&quot;),J={ID:RegExp(&quot;^#(&quot;+W+&quot;)&quot;),CLASS:RegExp(&quot;^\\.(&quot;+W+&quot;)&quot;),TAG:RegExp(&quot;^(&quot;+W.replace(
 &quot;w&quot;,&quot;w*&quot;)+&quot;)&quot;),ATTR:RegExp(&quot;^&quot;+B),PSEUDO:RegExp(&quot;^&quot;+I),CHILD:RegExp(&quot;^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(&quot;+M+&quot;*(even|odd|(([+-]|)(\\d*)n|)&quot;+M+&quot;*(?:([+-]|)&quot;+M+&quot;*(\\d+)|))&quot;+M+&quot;*\\)|)&quot;,&quot;i&quot;),bool:RegExp(&quot;^(?:&quot;+R+&quot;)$&quot;,&quot;i&quot;),needsContext:RegExp(&quot;^&quot;+M+&quot;*[&gt;+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(&quot;+M+&quot;*((?:-\\d)?\\d*)&quot;+M+&quot;*\\)|)(?=[^-]|$)&quot;,&quot;i&quot;)},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp(&quot;\\\\([\\da-f]{1,6}&quot;+M+&quot;?|(&quot;+M+&quot;)|.)&quot;,&quot;ig&quot;),rt=function(e,t,n){var r=&quot;0x&quot;+t-65536;return r!==r||n?t:0&gt;r?String.fromCharCode(r+65536):String.fromCharCode(55296|r&gt;&gt;10,56320|1023&amp;r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.ch
 ildNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){H.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&amp;&amp;c(t),t=t||p,r=r||[],!e||&quot;string&quot;!=typeof e)return r;if(1!==(u=t.nodeType)&amp;&amp;9!==u)return[];if(h&amp;&amp;!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&amp;&amp;(s=t.ownerDocument.getElementById(a))&amp;&amp;y(t,s)&amp;&amp;s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&amp;&amp;n.getElementsByClassName&amp;&amp;t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&amp;&amp;(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&amp;&amp;e,1===u&amp;&amp;&quot;object&quot;!==t.nodeName.toLowerCase()){f=gt(e),(g=t.getAttribute(&quot;id&quot;))?m=g.replace(tt,
 &quot;\\$&amp;&quot;):t.setAttribute(&quot;id&quot;,m),m=&quot;[id='&quot;+m+&quot;'] &quot;,l=f.length;while(l--)f[l]=m+mt(f[l]);x=U.test(e)&amp;&amp;t.parentNode||t,w=f.join(&quot;,&quot;)}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute(&quot;id&quot;)}}}return kt(e.replace(z,&quot;$1&quot;),t,r,i)}function st(){var e=[];function t(n,r){return e.push(n+=&quot; &quot;)&gt;i.cacheLength&amp;&amp;delete t[e.shift()],t[n]=r}return t}function at(e){return e[v]=!0,e}function ut(e){var t=p.createElement(&quot;div&quot;);try{return!!e(t)}catch(n){return!1}finally{t.parentNode&amp;&amp;t.parentNode.removeChild(t),t=null}}function lt(e,t){var n=e.split(&quot;|&quot;),r=e.length;while(r--)i.attrHandle[n[r]]=t}function ct(e,t){var n=t&amp;&amp;e,r=n&amp;&amp;1===e.nodeType&amp;&amp;1===t.nodeType&amp;&amp;(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pt(e){return funct
 ion(t){var n=t.nodeName.toLowerCase();return&quot;input&quot;===n&amp;&amp;t.type===e}}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return(&quot;input&quot;===n||&quot;button&quot;===n)&amp;&amp;t.type===e}}function ht(e){return at(function(t){return t=+t,at(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&amp;&amp;(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&amp;&amp;(e.ownerDocument||e).documentElement;return t?&quot;HTML&quot;!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.defaultView;return t!==p&amp;&amp;9===t.nodeType&amp;&amp;t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&amp;&amp;r.attachEvent&amp;&amp;r!==r.top&amp;&amp;r.attachEvent(&quot;onbeforeunload&quot;,function(){c()}),n.attributes=ut(function(e){return e.className=&quot;i&quot;,!e.getAttribute(&quot;className&quot;)}),n.getElementsByTagName=ut(function(e){return e.appendChild(t.createComment(&quot;&quot;
 )),!e.getElementsByTagName(&quot;*&quot;).length}),n.getElementsByClassName=ut(function(e){return e.innerHTML=&quot;&lt;div class='a'&gt;&lt;/div&gt;&lt;div class='a i'&gt;&lt;/div&gt;&quot;,e.firstChild.className=&quot;i&quot;,2===e.getElementsByClassName(&quot;i&quot;).length}),n.getById=ut(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&amp;&amp;h){var n=t.getElementById(e);return n&amp;&amp;n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute(&quot;id&quot;)===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&amp;&amp;e.getAttributeNode(&quot;id&quot;);return n&amp;&amp;n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r
 =[],i=0,o=t.getElementsByTagName(e);if(&quot;*&quot;===e){while(n=o[i++])1===n.nodeType&amp;&amp;r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&amp;&amp;function(e,t){return typeof t.getElementsByClassName!==j&amp;&amp;h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=Q.test(t.querySelectorAll))&amp;&amp;(ut(function(e){e.innerHTML=&quot;&lt;select&gt;&lt;option selected=''&gt;&lt;/option&gt;&lt;/select&gt;&quot;,e.querySelectorAll(&quot;[selected]&quot;).length||d.push(&quot;\\[&quot;+M+&quot;*(?:value|&quot;+R+&quot;)&quot;),e.querySelectorAll(&quot;:checked&quot;).length||d.push(&quot;:checked&quot;)}),ut(function(e){var n=t.createElement(&quot;input&quot;);n.setAttribute(&quot;type&quot;,&quot;hidden&quot;),e.appendChild(n).setAttribute(&quot;t&quot;,&quot;&quot;),e.querySelectorAll(&quot;[t^='']&quot;).length&amp;&amp;d.push(&quot;[*^$]=&quot;+M+&quot;*(?:''|\&quot;\&quot;)&quot;),e.querySelectorAll(&quot;:enabled&quot;).length||d.push(&quot;
 :enabled&quot;,&quot;:disabled&quot;),e.querySelectorAll(&quot;*,:x&quot;),d.push(&quot;,.*:&quot;)})),(n.matchesSelector=Q.test(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&amp;&amp;ut(function(e){n.disconnectedMatch=m.call(e,&quot;div&quot;),m.call(e,&quot;[s!='']:x&quot;),g.push(&quot;!=&quot;,I)}),d=d.length&amp;&amp;RegExp(d.join(&quot;|&quot;)),g=g.length&amp;&amp;RegExp(g.join(&quot;|&quot;)),y=Q.test(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&amp;&amp;t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&amp;&amp;16&amp;e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&amp;&amp;e.compareDocumentPosition&amp;&amp;e.compareDocumentPosition(r);return i?1&amp;i||!n.sortDetached&am
 p;&amp;r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&amp;i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return ct(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?ct(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&amp;&amp;c(e),t=t.replace(Y,&quot;='$1']&quot;),!(!n.matchesSelector||!h||g&amp;&amp;g.test(t)||d&amp;&amp;d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&amp;&amp;11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length&gt;0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&amp;&amp;c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&
 amp;&amp;c(e);var r=i.attrHandle[t.toLowerCase()],o=r&amp;&amp;A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&amp;&amp;o.specified?o.value:null:o},ot.error=function(e){throw Error(&quot;Syntax error, unrecognized expression: &quot;+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&amp;&amp;e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&amp;&amp;(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n=&quot;&quot;,r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if(&quot;string&quot;==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:at,match:J,attrHandle:{},find:{},relative:{&quot;&gt;&quot;:{dir:&quot;parentNode&quot;,first:!0},&quot; &quot;:{dir:&quot;parentNo
 de&quot;},&quot;+&quot;:{dir:&quot;previousSibling&quot;,first:!0},&quot;~&quot;:{dir:&quot;previousSibling&quot;}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||&quot;&quot;).replace(nt,rt),&quot;~=&quot;===e[2]&amp;&amp;(e[3]=&quot; &quot;+e[3]+&quot; &quot;),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),&quot;nth&quot;===e[1].slice(0,3)?(e[3]||ot.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(&quot;even&quot;===e[3]||&quot;odd&quot;===e[3])),e[5]=+(e[7]+e[8]||&quot;odd&quot;===e[3])):e[3]&amp;&amp;ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&amp;&amp;e[2];return J.CHILD.test(e[0])?null:(e[3]&amp;&amp;e[4]!==undefined?e[2]=e[4]:n&amp;&amp;V.test(n)&amp;&amp;(t=gt(n,!0))&amp;&amp;(t=n.indexOf(&quot;)&quot;,n.length-t)-n.length)&amp;&amp;(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(nt,rt).toLowerCase();return&quot;*&quot;===e?function(){return!0}:function(e){return e.nodeNam
 e&amp;&amp;e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+&quot; &quot;];return t||(t=RegExp(&quot;(^|&quot;+M+&quot;)&quot;+e+&quot;(&quot;+M+&quot;|$)&quot;))&amp;&amp;C(e,function(e){return t.test(&quot;string&quot;==typeof e.className&amp;&amp;e.className||typeof e.getAttribute!==j&amp;&amp;e.getAttribute(&quot;class&quot;)||&quot;&quot;)})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?&quot;!=&quot;===t:t?(i+=&quot;&quot;,&quot;=&quot;===t?i===n:&quot;!=&quot;===t?i!==n:&quot;^=&quot;===t?n&amp;&amp;0===i.indexOf(n):&quot;*=&quot;===t?n&amp;&amp;i.indexOf(n)&gt;-1:&quot;$=&quot;===t?n&amp;&amp;i.slice(-n.length)===n:&quot;~=&quot;===t?(&quot; &quot;+i+&quot; &quot;).indexOf(n)&gt;-1:&quot;|=&quot;===t?i===n||i.slice(0,n.length+1)===n+&quot;-&quot;:!1):!0}},CHILD:function(e,t,n,r,i){var o=&quot;nth&quot;!==e.slice(0,3),s=&quot;last&quot;!==e.slice(-4),a=&quot;of-type&quot;===t;return 1===r&amp;&amp;0===i?function(e){return!!e.pare
 ntNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?&quot;nextSibling&quot;:&quot;previousSibling&quot;,m=t.parentNode,y=a&amp;&amp;t.nodeName.toLowerCase(),x=!u&amp;&amp;!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g=&quot;only&quot;===e&amp;&amp;!d&amp;&amp;&quot;nextSibling&quot;}return!0}if(d=[s?m.firstChild:m.lastChild],s&amp;&amp;x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&amp;&amp;l[1],f=l[0]===w&amp;&amp;l[2],p=h&amp;&amp;m.childNodes[h];while(p=++h&amp;&amp;p&amp;&amp;p[g]||(f=h=0)||d.pop())if(1===p.nodeType&amp;&amp;++f&amp;&amp;p===t){c[e]=[w,h,f];break}}else if(x&amp;&amp;(l=(t[v]||(t[v]={}))[e])&amp;&amp;l[0]===w)f=l[1];else while(p=++h&amp;&amp;p&amp;&amp;p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&amp;&amp;++f&amp;&amp;(x&amp;&amp;((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&amp;&amp;f/r&gt;=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toL
 owerCase()]||ot.error(&quot;unsupported pseudo: &quot;+e);return r[v]?r(t):r.length&gt;1?(n=[e,e,&quot;&quot;,t],i.setFilters.hasOwnProperty(e.toLowerCase())?at(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:at(function(e){var t=[],n=[],r=a(e.replace(z,&quot;$1&quot;));return r[v]?at(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&amp;&amp;(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:at(function(e){return function(t){return ot(e,t).length&gt;0}}),contains:at(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)&gt;-1}}),lang:at(function(e){return G.test(e||&quot;&quot;)||ot.error(&quot;unsupported lang: &quot;+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute(&quot;xml:lang&quot;)||t.getAttribute(&quot;lang&quot;))return n=n.toLowerCase(),n===e||0===n.indexOf(e+&quot;-&
 quot;);while((t=t.parentNode)&amp;&amp;1===t.nodeType);return!1}}),target:function(t){var n=e.location&amp;&amp;e.location.hash;return n&amp;&amp;n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&amp;&amp;(!p.hasFocus||p.hasFocus())&amp;&amp;!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return&quot;input&quot;===t&amp;&amp;!!e.checked||&quot;option&quot;===t&amp;&amp;!!e.selected},selected:function(e){return e.parentNode&amp;&amp;e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName&gt;&quot;@&quot;||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return&quot;in
 put&quot;===t&amp;&amp;&quot;button&quot;===e.type||&quot;button&quot;===t},text:function(e){var t;return&quot;input&quot;===e.nodeName.toLowerCase()&amp;&amp;&quot;text&quot;===e.type&amp;&amp;(null==(t=e.getAttribute(&quot;type&quot;))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0&gt;n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t&gt;n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t&gt;n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0&gt;n?n+t:n;for(;--r&gt;=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0&gt;n?n+t:n;for(;t&gt;++r;)e.push(r);return e})}},i.pseudos.nth=i.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=pt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=ft(t);function dt(){}dt.prototype=i.filters=i.pseudos,i.setFilters=new dt;function gt(e,t){var n,r,o,s,a,u,l,c=k[e+&quot; &quot;];if(c)return t?0:c.slice(0);a=e,u=[],l=i.
 preFilter;while(a){(!n||(r=_.exec(a)))&amp;&amp;(r&amp;&amp;(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&amp;&amp;(n=r.shift(),o.push({value:n,type:r[0].replace(z,&quot; &quot;)}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&amp;&amp;!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function mt(e){var t=0,n=e.length,r=&quot;&quot;;for(;n&gt;t;t++)r+=e[t].value;return r}function yt(e,t,n){var i=t.dir,o=n&amp;&amp;&quot;parentNode&quot;===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+&quot; &quot;+s;if(a){while(t=t[i])if((1===t.nodeType||o)&amp;&amp;e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&amp;&amp;l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function vt(e){return e.length&gt;
 1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u&gt;a;a++)(o=e[a])&amp;&amp;(!n||n(o,r,i))&amp;&amp;(s.push(o),l&amp;&amp;t.push(a));return s}function bt(e,t,n,r,i,o){return r&amp;&amp;!r[v]&amp;&amp;(r=bt(r)),i&amp;&amp;!i[v]&amp;&amp;(i=bt(i,o)),at(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Ct(t||&quot;*&quot;,a.nodeType?[a]:a,[]),m=!e||!o&amp;&amp;t?g:xt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&amp;&amp;n(m,y,a,u),r){l=xt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&amp;&amp;(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&amp;&amp;l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&amp;&amp;(l=i?P.call(o,p):f[c])&gt;-1&amp;&amp;(o[l]=!(s[l]=p))}}else y=xt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function wt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[&quot; &quot;],l=s?1:0,c=yt(fun
 ction(e){return e===t},a,!0),p=yt(function(e){return P.call(t,e)&gt;-1},a,!0),f=[function(e,n,r){return!s&amp;&amp;(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o&gt;l;l++)if(n=i.relative[e[l].type])f=[yt(vt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o&gt;r;r++)if(i.relative[e[r].type])break;return bt(l&gt;1&amp;&amp;vt(f),l&gt;1&amp;&amp;mt(e.slice(0,l-1).concat({value:&quot; &quot;===e[l-2].type?&quot;*&quot;:&quot;&quot;})).replace(z,&quot;$1&quot;),n,r&gt;l&amp;&amp;wt(e.slice(l,r)),o&gt;r&amp;&amp;wt(e=e.slice(r)),o&gt;r&amp;&amp;mt(e))}f.push(n)}return vt(f)}function Tt(e,t){var n=0,o=t.length&gt;0,s=e.length&gt;0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x=&quot;0&quot;,b=a&amp;&amp;[],T=null!=h,C=u,k=a||s&amp;&amp;i.find.TAG(&quot;*&quot;,h&amp;&amp;l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&amp;&amp;(u=l!==p&amp;&amp;l,r=n);null!=(d=k[x]);x++){if(s&amp;&amp;d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&am
 p;&amp;(w=N,r=++n)}o&amp;&amp;((d=!m&amp;&amp;d)&amp;&amp;v--,a&amp;&amp;b.push(d))}if(v+=x,o&amp;&amp;x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v&gt;0)while(x--)b[x]||y[x]||(y[x]=q.call(f));y=xt(y)}O.apply(f,y),T&amp;&amp;!a&amp;&amp;y.length&gt;0&amp;&amp;v+t.length&gt;1&amp;&amp;ot.uniqueSort(f)}return T&amp;&amp;(w=N,u=C),b};return o?at(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+&quot; &quot;];if(!o){t||(t=gt(e)),n=t.length;while(n--)o=wt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Tt(i,r))}return o};function Ct(e,t,n){var r=0,i=t.length;for(;i&gt;r;r++)ot(e,t[r],n);return n}function kt(e,t,r,o){var s,u,l,c,p,f=gt(e);if(!o&amp;&amp;1===f.length){if(u=f[0]=f[0].slice(0),u.length&gt;2&amp;&amp;&quot;ID&quot;===(l=u[0]).type&amp;&amp;n.getById&amp;&amp;9===t.nodeType&amp;&amp;h&amp;&amp;i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i
 .relative[c=l.type])break;if((p=i.find[c])&amp;&amp;(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&amp;&amp;t.parentNode||t))){if(u.splice(s,1),e=o.length&amp;&amp;mt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}n.sortStable=v.split(&quot;&quot;).sort(S).join(&quot;&quot;)===v,n.detectDuplicates=E,c(),n.sortDetached=ut(function(e){return 1&amp;e.compareDocumentPosition(p.createElement(&quot;div&quot;))}),ut(function(e){return e.innerHTML=&quot;&lt;a href='#'&gt;&lt;/a&gt;&quot;,&quot;#&quot;===e.firstChild.getAttribute(&quot;href&quot;)})||lt(&quot;type|href|height|width&quot;,function(e,t,n){return n?undefined:e.getAttribute(t,&quot;type&quot;===t.toLowerCase()?1:2)}),n.attributes&amp;&amp;ut(function(e){return e.innerHTML=&quot;&lt;input/&gt;&quot;,e.firstChild.setAttribute(&quot;value&quot;,&quot;&quot;),&quot;&quot;===e.firstChild.getAttribute(&quot;value&quot;)})||lt(&quot;value&quot;,function(e,t,n){return n||&quot;input&quot;!==e.nodeNam
 e.toLowerCase()?undefined:e.defaultValue}),ut(function(e){return null==e.getAttribute(&quot;disabled&quot;)})||lt(R,function(e,t,n){var r;return n?undefined:(r=e.getAttributeNode(t))&amp;&amp;r.specified?r.value:e[t]===!0?t.toLowerCase():null}),x.find=ot,x.expr=ot.selectors,x.expr[&quot;:&quot;]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e=&quot;string&quot;==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&amp;&amp;[],l=function(p){for(t=e.memory&amp;&amp;p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&amp;&amp;o&gt;s;s++)if(a[s].apply(p[0],p[1])===!1&amp;&amp;e.stopOnFalse){t=!1;break}r=!1,a&amp;&amp;(u?u.length&amp;&amp;l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);&quot;function&quot;===r?e.unique&amp;&amp;c.has(n
 )||a.push(n):n&amp;&amp;n.length&amp;&amp;&quot;string&quot;!==r&amp;&amp;s(n)})})(arguments),r?o=a.length:t&amp;&amp;(i=n,l(t))}return this},remove:function(){return a&amp;&amp;x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))&gt;-1)a.splice(n,1),r&amp;&amp;(o&gt;=n&amp;&amp;o--,s&gt;=n&amp;&amp;s--)}),this},has:function(e){return e?x.inArray(e,a)&gt;-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!a||n&amp;&amp;!u||(t=t||[],t=[e,t.slice?t.slice():t],r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[[&quot;resolve&quot;,&quot;done&quot;,x.Callbacks(&quot;once memory&quot;),&quot;resolved&quot;],[&quot;reject&quot;,&quot;fail&quot;,x.Callbacks(&quot;once me
 mory&quot;),&quot;rejected&quot;],[&quot;notify&quot;,&quot;progress&quot;,x.Callbacks(&quot;memory&quot;)]],n=&quot;pending&quot;,r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&amp;&amp;e[t];i[o[1]](function(){var e=a&amp;&amp;a.apply(this,arguments);e&amp;&amp;x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+&quot;With&quot;](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&amp;&amp;s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+&quot;With&quot;](this===i?r:this,arguments),this},i[o[0]+&quot;With&quot;]=s.fireWith}),r.promise(i),e&amp;&amp;e.call(i,i),i},when:function(e){var t=0,n
 =d.call(arguments),r=n.length,i=1!==r||e&amp;&amp;x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length&gt;1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r&gt;1)for(a=Array(r),u=Array(r),l=Array(r);r&gt;t;t++)n[t]&amp;&amp;x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement(&quot;input&quot;),r=o.createDocumentFragment(),i=o.createElement(&quot;div&quot;),s=o.createElement(&quot;select&quot;),a=s.appendChild(o.createElement(&quot;option&quot;));return n.type?(n.type=&quot;checkbox&quot;,t.checkOn=&quot;&quot;!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement(&quot;input&quot;),n.value=&q
 uot;t&quot;,n.type=&quot;radio&quot;,t.radioValue=&quot;t&quot;===n.value,n.setAttribute(&quot;checked&quot;,&quot;t&quot;),n.setAttribute(&quot;name&quot;,&quot;t&quot;),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles=&quot;onfocusin&quot;in e,i.style.backgroundClip=&quot;content-box&quot;,i.cloneNode(!0).style.backgroundClip=&quot;&quot;,t.clearCloneStyle=&quot;content-box&quot;===i.style.backgroundClip,x(function(){var n,r,s=&quot;padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box&quot;,a=o.getElementsByTagName(&quot;body&quot;)[0];a&amp;&amp;(n=o.createElement(&quot;div&quot;),n.style.cssText=&quot;border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px&quot;,a.appendChild(n).appendChild(i),i.innerHTML=&quot;&quot;,i.style.cssText=&quot;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;borde
 r:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%&quot;,x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&amp;&amp;(t.pixelPosition=&quot;1%&quot;!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable=&quot;4px&quot;===(e.getComputedStyle(i,null)||{width:&quot;4px&quot;}).width,r=i.appendChild(o.createElement(&quot;div&quot;)),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width=&quot;0&quot;,i.style.width=&quot;1px&quot;,t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,q,H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[thi
 s.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if(&quot;string&quot;==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){var r;return t===undefined||t&amp;&amp;&quot;string&quot;==typeof t&amp;&amp;n===undefined?(r=this.get(e,t),r!==undefined?r:this.get(e,x.camelCase(t))):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&amp;&amp;delete t
 his.cache[e[this.expando]]}},L=new F,q=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||q.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return q.access(e,t,n)},_removeData:function(e,t){q.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&amp;&amp;(s=L.get(i),1===i.nodeType&amp;&amp;!q.get(i,&quot;hasDataAttrs&quot;))){for(n=i.attributes;n.length&gt;o;o++)r=n[o].name,0===r.indexOf(&quot;data-&quot;)&amp;&amp;(r=x.camelCase(r.slice(5)),P(i,r,s[r]));q.set(i,&quot;hasDataAttrs&quot;,!0)}return s}return&quot;object&quot;==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&amp;&amp;t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r
 ,t),-1!==e.indexOf(&quot;-&quot;)&amp;&amp;n!==undefined&amp;&amp;L.set(this,e,t)})},null,t,arguments.length&gt;1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&amp;&amp;1===e.nodeType)if(r=&quot;data-&quot;+t.replace(O,&quot;-$1&quot;).toLowerCase(),n=e.getAttribute(r),&quot;string&quot;==typeof n){try{n=&quot;true&quot;===n?!0:&quot;false&quot;===n?!1:&quot;null&quot;===n?null:+n+&quot;&quot;===n?+n:H.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||&quot;fx&quot;)+&quot;queue&quot;,r=q.get(e,t),n&amp;&amp;(!r||x.isArray(n)?r=q.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||&quot;fx&quot;;var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t)
++};&quot;inprogress&quot;===i&amp;&amp;(i=n.shift(),r--),i&amp;&amp;(&quot;fx&quot;===t&amp;&amp;n.unshift(&quot;inprogress&quot;),delete o.stop,i.call(e,s,o)),!r&amp;&amp;o&amp;&amp;o.empty.fire()},_queueHooks:function(e,t){var n=t+&quot;queueHooks&quot;;return q.get(e,n)||q.access(e,n,{empty:x.Callbacks(&quot;once memory&quot;).add(function(){q.remove(e,[t+&quot;queue&quot;,n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return&quot;string&quot;!=typeof e&amp;&amp;(t=e,e=&quot;fx&quot;,n--),n&gt;arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),&quot;fx&quot;===e&amp;&amp;&quot;inprogress&quot;!==n[0]&amp;&amp;x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||&quot;fx&quot;,this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e
 ||&quot;fx&quot;,[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};&quot;string&quot;!=typeof e&amp;&amp;(t=e,e=undefined),e=e||&quot;fx&quot;;while(s--)n=q.get(o[s],e+&quot;queueHooks&quot;),n&amp;&amp;n.empty&amp;&amp;(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length&gt;1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length&gt;1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=&quot;string&quot;==typeof e&amp;&amp;e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||&quot;&quot;).match(w)||[];a&gt;s;s++)if(n=this[s],r=1===
 n.nodeType&amp;&amp;(n.className?(&quot; &quot;+n.className+&quot; &quot;).replace(W,&quot; &quot;):&quot; &quot;)){o=0;while(i=t[o++])0&gt;r.indexOf(&quot; &quot;+i+&quot; &quot;)&amp;&amp;(r+=i+&quot; &quot;);n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||&quot;string&quot;==typeof e&amp;&amp;e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||&quot;&quot;).match(w)||[];a&gt;s;s++)if(n=this[s],r=1===n.nodeType&amp;&amp;(n.className?(&quot; &quot;+n.className+&quot; &quot;).replace(W,&quot; &quot;):&quot;&quot;)){o=0;while(i=t[o++])while(r.indexOf(&quot; &quot;+i+&quot; &quot;)&gt;=0)r=r.replace(&quot; &quot;+i+&quot; &quot;,&quot; &quot;);n.className=e?x.trim(r):&quot;&quot;}return this},toggleClass:function(e,t){var n=typeof e;return&quot;boolean&quot;==typeof t&amp;&amp;&quot;string&quot;===n?t?this.addClass(e):this.removeClass(e):x.isFunc
 tion(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(&quot;string&quot;===n){var t,i=0,o=x(this),s=e.match(w)||[];while(t=s[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===r||&quot;boolean&quot;===n)&amp;&amp;(this.className&amp;&amp;q.set(this,&quot;__className__&quot;,this.className),this.className=this.className||e===!1?&quot;&quot;:q.get(this,&quot;__className__&quot;)||&quot;&quot;)})},hasClass:function(e){var t=&quot; &quot;+e+&quot; &quot;,n=0,r=this.length;for(;r&gt;n;n++)if(1===this[n].nodeType&amp;&amp;(&quot; &quot;+this[n].className+&quot; &quot;).replace(W,&quot; &quot;).indexOf(t)&gt;=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&amp;&amp;(i=r?e.call(this,n,x(this).val()):e,null==i?i=&quot;&quot;:&quot;number&quot;==typeof i?i+=&quot;&quot;:x.isArray(i)&amp;&amp;(i=x.map(i,function(e){return 
 null==e?&quot;&quot;:e+&quot;&quot;})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&amp;&amp;&quot;set&quot;in t&amp;&amp;t.set(this,i,&quot;value&quot;)!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&amp;&amp;&quot;get&quot;in t&amp;&amp;(n=t.get(i,&quot;value&quot;))!==undefined?n:(n=i.value,&quot;string&quot;==typeof n?n.replace($,&quot;&quot;):null==n?&quot;&quot;:n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o=&quot;select-one&quot;===e.type||0&gt;i,s=o?null:[],a=o?i+1:r.length,u=0&gt;i?a:o?i:0;for(;a&gt;u;u++)if(n=r[u],!(!n.selected&amp;&amp;u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute(&quot;disabled&quot;))||n.parentNode.disabled&amp;&amp;x.nodeName(n.parentNode,&quot;optgroup&quot;))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function
 (e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)&gt;=0)&amp;&amp;(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&amp;&amp;3!==s&amp;&amp;8!==s&amp;&amp;2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&amp;&amp;x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&amp;&amp;&quot;get&quot;in i&amp;&amp;null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&amp;&amp;&quot;set&quot;in i&amp;&amp;(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+&quot;&quot;),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&amp;&amp;t.match(w);if(o&amp;&amp;1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&amp;&amp;(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&amp;&amp;&quot;radio&quot;===t&amp;&amp;x.nodeName(e,&quot;input&
 quot;)){var n=e.value;return e.setAttribute(&quot;type&quot;,t),n&amp;&amp;(e.value=n),t}}}},propFix:{&quot;for&quot;:&quot;htmlFor&quot;,&quot;class&quot;:&quot;className&quot;},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&amp;&amp;3!==s&amp;&amp;8!==s&amp;&amp;2!==s)return o=1!==s||!x.isXMLDoc(e),o&amp;&amp;(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&amp;&amp;&quot;set&quot;in i&amp;&amp;(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&amp;&amp;&quot;get&quot;in i&amp;&amp;null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute(&quot;tabindex&quot;)||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t
 ]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&amp;&amp;t.parentNode&amp;&amp;t.parentNode.selectedIndex,null}}),x.each([&quot;tabIndex&quot;,&quot;readOnly&quot;,&quot;maxLength&quot;,&quot;cellSpacing&quot;,&quot;cellPadding&quot;,&quot;rowSpan&quot;,&quot;colSpan&quot;,&quot;useMap&quot;,&quot;frameBorder&quot;,&quot;contentEditable&quot;],function(){x.propFix[this.toLowerCase()]=this}),x.each([&quot;radio&quot;,&quot;checkbox&quot;],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)&gt;=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute(&quot;value&quot;)?&quot;on&quot;:e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var 
 s,a,u,l,c,p,f,h,d,g,m,y=q.get(e);if(y){n.handler&amp;&amp;(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&amp;&amp;x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||&quot;&quot;).match(w)||[&quot;&quot;],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||&quot;&quot;).split(&quot;.&quot;).sort(),d&amp;&amp;(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&amp;&amp;x.expr.match.needsContext.test(o),namespace:g.join(&quot;.&quot;)},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&amp;&amp;f.setup.call(e,i,g,a)!==!1||e.addEventListener&amp;&amp;e.addEventListener(d,a,!1)),f.add&amp;&amp;(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);
 e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=q.hasData(e)&amp;&amp;q.get(e);if(m&amp;&amp;(u=m.events)){t=(t||&quot;&quot;).match(w)||[&quot;&quot;],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||&quot;&quot;).split(&quot;.&quot;).sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&amp;&amp;RegExp(&quot;(^|\\.)&quot;+d.join(&quot;\\.(?:.*\\.|)&quot;)+&quot;(\\.|$)&quot;),s=o=f.length;while(o--)c=f[o],!i&amp;&amp;g!==c.origType||n&amp;&amp;n.guid!==c.guid||a&amp;&amp;!a.test(c.namespace)||r&amp;&amp;r!==c.selector&amp;&amp;(&quot;**&quot;!==r||!c.selector)||(f.splice(o,1),c.selector&amp;&amp;f.delegateCount--,p.remove&amp;&amp;p.remove.call(e,c));s&amp;&amp;!f.length&amp;&amp;(p.teardown&amp;&amp;p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&amp;&amp;(delete m.handle,q.remove(e,&quot;events&quot;))}},trigger:fun
 ction(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,&quot;type&quot;)?t.type:t,g=y.call(t,&quot;namespace&quot;)?t.namespace.split(&quot;.&quot;):[];if(a=u=r=r||o,3!==r.nodeType&amp;&amp;8!==r.nodeType&amp;&amp;!_.test(d+x.event.triggered)&amp;&amp;(d.indexOf(&quot;.&quot;)&gt;=0&amp;&amp;(g=d.split(&quot;.&quot;),d=g.shift(),g.sort()),c=0&gt;d.indexOf(&quot;:&quot;)&amp;&amp;&quot;on&quot;+d,t=t[x.expando]?t:new x.Event(d,&quot;object&quot;==typeof t&amp;&amp;t),t.isTrigger=i?2:3,t.namespace=g.join(&quot;.&quot;),t.namespace_re=t.namespace?RegExp(&quot;(^|\\.)&quot;+g.join(&quot;\\.(?:.*\\.|)&quot;)+&quot;(\\.|$)&quot;):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&amp;&amp;!f.noBubble&amp;&amp;!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&amp;&amp;h.push(u.defaultView||u.parentWindow||e)
 }s=0;while((a=h[s++])&amp;&amp;!t.isPropagationStopped())t.type=s&gt;1?l:f.bindType||d,p=(q.get(a,&quot;events&quot;)||{})[t.type]&amp;&amp;q.get(a,&quot;handle&quot;),p&amp;&amp;p.apply(a,n),p=c&amp;&amp;a[c],p&amp;&amp;x.acceptData(a)&amp;&amp;p.apply&amp;&amp;p.apply(a,n)===!1&amp;&amp;t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&amp;&amp;f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&amp;&amp;x.isFunction(r[d])&amp;&amp;!x.isWindow(r)&amp;&amp;(u=r[c],u&amp;&amp;(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&amp;&amp;(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(q.get(this,&quot;events&quot;)||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&amp;&amp;!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&a
 mp;&amp;!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&amp;&amp;(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&amp;&amp;(e.result=r)===!1&amp;&amp;(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&amp;&amp;l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&amp;&amp;u.nodeType&amp;&amp;(!e.button||&quot;click&quot;!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||&quot;click&quot;!==e.type){for(r=[],n=0;a&gt;n;n++)o=t[n],i=o.selector+&quot; &quot;,r[i]===undefined&amp;&amp;(r[i]=o.needsContext?x(i,this).index(u)&gt;=0:x.find(i,this,null,[u]).length),r[i]&amp;&amp;r.push(o);r.length&amp;&amp;s.push({elem:u,handlers:r})}return t.length&gt;a&amp;&amp;s.push({elem:this,handlers:t.slice(a)}),s},props:&quot;altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarge
 t shiftKey target timeStamp view which&quot;.split(&quot; &quot;),fixHooks:{},keyHooks:{props:&quot;char charCode key keyCode&quot;.split(&quot; &quot;),filter:function(e,t){return null==e.which&amp;&amp;(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:&quot;button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement&quot;.split(&quot; &quot;),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&amp;&amp;null!=t.clientX&amp;&amp;(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&amp;&amp;r.scrollLeft||i&amp;&amp;i.scrollLeft||0)-(r&amp;&amp;r.clientLeft||i&amp;&amp;i.clientLeft||0),e.pageY=t.clientY+(r&amp;&amp;r.scrollTop||i&amp;&amp;i.scrollTop||0)-(r&amp;&amp;r.clientTop||i&amp;&amp;i.clientTop||0)),e.which||s===undefined||(e.which=1&amp;s?1:2&amp;s?3:4&amp;s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mo
 useHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&amp;&amp;(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&amp;&amp;this.focus?(this.focus(),!1):undefined},delegateType:&quot;focusin&quot;},blur:{trigger:function(){return this===V()&amp;&amp;this.blur?(this.blur(),!1):undefined},delegateType:&quot;focusout&quot;},click:{trigger:function(){return&quot;checkbox&quot;===this.type&amp;&amp;this.click&amp;&amp;x.nodeName(this,&quot;input&quot;)?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,&quot;a&quot;)}},beforeunload:{postDispatch:function(e){e.result!==undefined&amp;&amp;(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i
 ,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&amp;&amp;n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&amp;&amp;e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&amp;&amp;e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&amp;&amp;e.getPreventDefault()?U:Y):this.type=e,t&amp;&amp;x.extend(this,t),this.timeStamp=e&amp;&amp;e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&amp;&amp;e.preventDefault&amp;&amp;e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&amp;&amp;e.stopPropagation&amp;&amp;e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation(
 )}},x.each({mouseenter:&quot;mouseover&quot;,mouseleave:&quot;mouseout&quot;},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&amp;&amp;!x.contains(r,i))&amp;&amp;(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:&quot;focusin&quot;,blur:&quot;focusout&quot;},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&amp;&amp;o.addEventListener(e,r,!0)},teardown:function(){0===--n&amp;&amp;o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if(&quot;object&quot;==typeof e){&quot;string&quot;!=typeof t&amp;&amp;(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&amp;&amp;null==r?(r=t,n=t=undefined):null==r&amp;&amp;(&quot;string&quot;==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)re
 turn this;return 1===i&amp;&amp;(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&amp;&amp;e.preventDefault&amp;&amp;e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+&quot;.&quot;+r.namespace:r.origType,r.selector,r.handler),this;if(&quot;object&quot;==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||&quot;function&quot;==typeof t)&amp;&amp;(n=t,t=undefined),n===!1&amp;&amp;(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e
 ){var t,n=[],r=this,i=r.length;if(&quot;string&quot;!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i&gt;t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i&gt;t;t++)x.find(e,r[t],n);return n=this.pushStack(i&gt;1?x.unique(n):n),n.selector=this.selector?this.selector+&quot; &quot;+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n&gt;e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,&quot;string&quot;==typeof e&amp;&amp;Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||&quot;string&quot;!=typeof e?x(e,t||this.context):0;for(;i&gt;r;r++)for(n=this[r];n&amp;&amp;n!==t;n=n.parentNode)if(11&gt;n.nodeType&amp;&amp;(s?s.index(n)&gt;-1:1===n.nodeType&amp;&amp;x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.lengt
 h&gt;1?x.unique(o):o)},index:function(e){return e?&quot;string&quot;==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&amp;&amp;this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n=&quot;string&quot;==typeof e?x(e,t):x.makeArray(e&amp;&amp;e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&amp;&amp;1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&amp;&amp;11!==t.nodeType?t:null},parents:function(e){return x.dir(e,&quot;parentNode&quot;)},parentsUntil:function(e,t,n){return x.dir(e,&quot;parentNode&quot;,n)},next:function(e){return Z(e,&quot;nextSibling&quot;)},prev:function(e){return Z(e,&quot;previousSibling&quot;)},nextAll:function(e){return x.dir(e,&quot;nextSibling&quot;)},prevAll:function(e){return x.dir(e,&quot;previousSibling&quot;)},nextUntil:functio
 n(e,t,n){return x.dir(e,&quot;nextSibling&quot;,n)},prevUntil:function(e,t,n){return x.dir(e,&quot;previousSibling&quot;,n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return&quot;Until&quot;!==e.slice(-5)&amp;&amp;(r=n),r&amp;&amp;&quot;string&quot;==typeof r&amp;&amp;(i=x.filter(r,i)),this.length&gt;1&amp;&amp;(K[e]||x.unique(i),J.test(e)&amp;&amp;i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&amp;&amp;(e=&quot;:not(&quot;+e+&quot;)&quot;),1===t.length&amp;&amp;1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&amp;&amp;9!==e.nodeType)if(1===e.nodeType){if(i&amp;&amp;x(e).is(n))break;r.push(e)}return r}
 ,sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&amp;&amp;e!==t&amp;&amp;n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if(&quot;string&quot;==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)&gt;=0!==n})}var tt=/&lt;(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^&gt;]*)\/&gt;/gi,nt=/&lt;([\w:]+)/,rt=/&lt;|&amp;#?\w+;/,it=/&lt;(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*&lt;!(?:\[CDATA\[|--)|(?:\]\]|--)&gt;\s*$/g,ct={option:[1,&quot;&lt;select multiple='multiple'&gt;&quot;,&quot;&lt;/select&gt;&quot;],thead:[1,&quot;&lt;table&gt;&quot;,&quot;&lt;/table&gt;&quot;],col:[2,&quot;&lt;table&gt;&lt;colgroup&gt;&quot;,&quot;&lt;/colgroup&gt;&lt;/table&gt;&quot
 ;],tr:[2,&quot;&lt;table&gt;&lt;tbody&gt;&quot;,&quot;&lt;/tbody&gt;&lt;/table&gt;&quot;],td:[3,&quot;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&quot;,&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;],_default:[0,&quot;&quot;,&quot;&quot;]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&amp;&amp;this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&amp;&amp;this.parentNode.insertBefore(e,this)})}
 ,after:function(){return this.domManip(arguments,function(e){this.parentNode&amp;&amp;this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&amp;&amp;(t&amp;&amp;x.contains(n.ownerDocument,n)&amp;&amp;dt(mt(n,&quot;script&quot;)),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&amp;&amp;(x.cleanData(mt(e,!1)),e.textContent=&quot;&quot;);return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&amp;&amp;1===t.nodeType)return t.innerHTML;if(&quot;string&quot;==typeof e&amp;&amp;!it.test(e)&amp;&amp;!ct[(nt.exec(e)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase()]){e=e.replace(tt,&quot;&lt;$1&gt;&lt;/$2&gt;&quot;);try{for(;r&gt;n;n++
 )t=this[n]||{},1===t.nodeType&amp;&amp;(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&amp;&amp;this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&amp;&amp;(r&amp;&amp;r.parentNode!==i&amp;&amp;(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1&gt;=c||&quot;string&quot;!=typeof d||x.support.checkClone)&amp;&amp;st.test(d))return this.each(function(r){var i=p.eq(r);g&amp;&amp;(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&amp;&amp;(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&amp;&amp;this),i=r.firstChild,1===r.childNodes.length&amp;&amp;(r=i),i)){for(o=x.map(mt(r,&quot;script&quot;),ft),s=o.length;c&g
 t;l;l++)a=r,l!==h&amp;&amp;(a=x.clone(a,!0,!0),s&amp;&amp;x.merge(o,mt(a,&quot;script&quot;))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s&gt;l;l++)a=o[l],at.test(a.type||&quot;&quot;)&amp;&amp;!q.access(a,&quot;globalEval&quot;)&amp;&amp;x.contains(u,a)&amp;&amp;(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,&quot;&quot;)))}return this}}),x.each({appendTo:&quot;append&quot;,prependTo:&quot;prepend&quot;,insertBefore:&quot;before&quot;,insertAfter:&quot;after&quot;,replaceAll:&quot;replaceWith&quot;},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o&gt;=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&amp;&amp;11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i&gt;r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o|
 |mt(e),s=s||mt(a),r=0,i=o.length;i&gt;r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,&quot;script&quot;),s.length&gt;0&amp;&amp;dt(s,!u&amp;&amp;mt(e,&quot;script&quot;)),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p&gt;c;c++)if(i=e[c],i||0===i)if(&quot;object&quot;===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement(&quot;div&quot;)),s=(nt.exec(i)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,&quot;&lt;$1&gt;&lt;/$2&gt;&quot;)+a[2],l=a[0];while(l--)o=o.lastChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=&quot;&quot;}else h.push(t.createTextNode(i));f.textContent=&quot;&quot;,c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&amp;&amp;(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),&quot;script&quot;),u&amp;&amp;dt(o),n)){l=0;while(i=o[l++])at.test(i.type||&quot;&quot;)&amp;&amp;n.push(i)}return f},cleanDat
 a:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&amp;&amp;(o=n[q.expando],o&amp;&amp;(t=q.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);q.cache[o]&amp;&amp;delete q.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:&quot;GET&quot;,dataType:&quot;script&quot;,async:!1,global:!1,&quot;throws&quot;:!0})}});function pt(e,t){return x.nodeName(e,&quot;table&quot;)&amp;&amp;x.nodeName(1===t.nodeType?t:t.firstChild,&quot;tr&quot;)?e.getElementsByTagName(&quot;tbody&quot;)[0]||e.appendChild(e.ownerDocument.createElement(&quot;tbody&quot;)):e}function ft(e){return e.type=(null!==e.getAttribute(&quot;type&quot;))+&quot;/&quot;+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute(&quot;type&quot;),e}function dt(e,t){var n=e.length,r=0;for(;n&gt;r;r++)q.set(e[r],&quot;globalEval&q
 uot;,!t||q.get(t[r],&quot;globalEval&quot;))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(q.hasData(e)&amp;&amp;(o=q.access(e),s=q.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r&gt;n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&amp;&amp;(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||&quot;*&quot;):e.querySelectorAll?e.querySelectorAll(t||&quot;*&quot;):[];return t===undefined||t&amp;&amp;x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();&quot;input&quot;===n&amp;&amp;ot.test(e.type)?t.checked=e.checked:(&quot;input&quot;===n||&quot;textarea&quot;===n)&amp;&amp;(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&amp;&amp;(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&amp;&amp;t.insertBefore(this[0]),t.map(
 function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,&quot;body&quot;)||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp(&quot;^(&quot;+b+&quot;)(.*)$&quot;,&quot;i&quot;),Ct=RegExp(&quot;^(&quot;+b+&quot;)(?!px)[a-z%]+$&quot;,&quot;i&quot;),kt=RegExp(&quot;^([+-])=(&quot;+b+&quot;)&quot;,&quot;i&quot;),Nt={BODY:&quot;block&quot;},Et={position:&quot;absolute&quot;,visibility:&quot;hidden&quot;,display:&quot;block&quot;},St={letterSpacing:0,fontWeight:400},jt=[&quot;Top&quot;,&quot;Right&quot;,&quot;Botto
 m&quot;,&quot;Left&quot;],Dt=[&quot;Webkit&quot;,&quot;O&quot;,&quot;Moz&quot;,&quot;ms&quot;];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,&quot;none&quot;===x.css(e,&quot;display&quot;)||!x.contains(e.ownerDocument,e)}function qt(t){return e.getComputedStyle(t,null)}function Ht(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a&gt;s;s++)r=e[s],r.style&amp;&amp;(o[s]=q.get(r,&quot;olddisplay&quot;),n=r.style.display,t?(o[s]||&quot;none&quot;!==n||(r.style.display=&quot;&quot;),&quot;&quot;===r.style.display&amp;&amp;Lt(r)&amp;&amp;(o[s]=q.access(r,&quot;olddisplay&quot;,Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&amp;&amp;&quot;none&quot;!==n||!i)&amp;&amp;q.set(r,&quot;olddisplay&quot;,i?n:x.css(r,&quot;display&quot;))));for(s=0;a&gt;s;s++)r=e[s],r.style&amp;&amp;(t&amp;&amp;&quot;none&quot;!==r.style.display&amp;&amp;&quot;&quot;!==r.style.display||(r.style.disp
 lay=t?o[s]||&quot;&quot;:&quot;none&quot;));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=qt(e),i=t.length;i&gt;s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length&gt;1)},show:function(){return Ht(this,!0)},hide:function(){return Ht(this)},toggle:function(e){return&quot;boolean&quot;==typeof e?e?this.show():this.hide():this.each(function(){Lt(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,&quot;opacity&quot;);return&quot;&quot;===n?&quot;1&quot;:n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{&quot;float&quot;:&quot;cssFloat&quot;},style:function(e,t,n,r){if(e&amp;&amp;3!==e.nodeType&amp;&amp;8!==e.nodeType&amp;&amp;e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProp
 s[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&amp;&amp;&quot;get&quot;in s&amp;&amp;(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,&quot;string&quot;===o&amp;&amp;(i=kt.exec(n))&amp;&amp;(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o=&quot;number&quot;),null==n||&quot;number&quot;===o&amp;&amp;isNaN(n)||(&quot;number&quot;!==o||x.cssNumber[a]||(n+=&quot;px&quot;),x.support.clearCloneStyle||&quot;&quot;!==n||0!==t.indexOf(&quot;background&quot;)||(u[t]=&quot;inherit&quot;),s&amp;&amp;&quot;set&quot;in s&amp;&amp;(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&amp;&amp;&quot;get&quot;in s&amp;&amp;(i=s.get(e,!0,n)),i===undefined&amp;&amp;(i=vt(e,t,r)),&quot;normal&quot;===i&amp;&amp;t in St&amp;&amp;(i=St[t]),&quot;&quot;===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||qt(e),a=s?s.
 getPropertyValue(t)||s[t]:undefined,u=e.style;return s&amp;&amp;(&quot;&quot;!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&amp;&amp;wt.test(t)&amp;&amp;(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||&quot;px&quot;):t}function Ft(e,t,n,r,i){var o=n===(r?&quot;border&quot;:&quot;content&quot;)?4:&quot;width&quot;===t?1:0,s=0;for(;4&gt;o;o+=2)&quot;margin&quot;===n&amp;&amp;(s+=x.css(e,n+jt[o],!0,i)),r?(&quot;content&quot;===n&amp;&amp;(s-=x.css(e,&quot;padding&quot;+jt[o],!0,i)),&quot;margin&quot;!==n&amp;&amp;(s-=x.css(e,&quot;border&quot;+jt[o]+&quot;Width&quot;,!0,i))):(s+=x.css(e,&quot;padding&quot;+jt[o],!0,i),&quot;padding&quot;!==n&amp;&amp;(s+=x.css(e,&quot;border&quot;+jt[o]+&quot;Width&quot;,!0,i)));return s}function Pt(e,t,n){var r=!0,i=&quot;width&quot;===t?e.offsetWidth:e.offsetHeight,o=qt(e),s=x.su
 pport.boxSizing&amp;&amp;&quot;border-box&quot;===x.css(e,&quot;boxSizing&quot;,!1,o);if(0&gt;=i||null==i){if(i=vt(e,t,o),(0&gt;i||null==i)&amp;&amp;(i=e.style[t]),Ct.test(i))return i;r=s&amp;&amp;(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?&quot;border&quot;:&quot;content&quot;),r,o)+&quot;px&quot;}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),&quot;none&quot;!==n&amp;&amp;n||(xt=(xt||x(&quot;&lt;iframe frameborder='0' width='0' height='0'/&gt;&quot;).css(&quot;cssText&quot;,&quot;display:block !important&quot;)).appendTo(t.documentElement),t=(xt[0].contentWindow||xt[0].contentDocument).document,t.write(&quot;&lt;!doctype html&gt;&lt;html&gt;&lt;body&gt;&quot;),t.close(),n=Mt(e,t),xt.detach()),Nt[e]=n),n}function Mt(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],&quot;display&quot;);return n.remove(),r}x.each([&quot;height&quot;,&quot;width&quot;],function(e,t){x.cssHooks[t]={get:function(e,n,r){return n?0===e
 .offsetWidth&amp;&amp;bt.test(x.css(e,&quot;display&quot;))?x.swap(e,Et,function(){return Pt(e,t,r)}):Pt(e,t,r):undefined},set:function(e,n,r){var i=r&amp;&amp;qt(e);return Ot(e,n,r?Ft(e,t,r,x.support.boxSizing&amp;&amp;&quot;border-box&quot;===x.css(e,&quot;boxSizing&quot;,!1,i),i):0)}}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,t){return t?x.swap(e,{display:&quot;inline-block&quot;},vt,[e,&quot;marginRight&quot;]):undefined}}),!x.support.pixelPosition&amp;&amp;x.fn.position&amp;&amp;x.each([&quot;top&quot;,&quot;left&quot;],function(e,t){x.cssHooks[t]={get:function(e,n){return n?(n=vt(e,t),Ct.test(n)?x(e).position()[t]+&quot;px&quot;:n):undefined}}})}),x.expr&amp;&amp;x.expr.filters&amp;&amp;(x.expr.filters.hidden=function(e){return 0&gt;=e.offsetWidth&amp;&amp;0&gt;=e.offsetHeight},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:&quot;&quot;,padding:&quot;&quot;,border:&quot;Width&quot;},functi
 on(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o=&quot;string&quot;==typeof n?n.split(&quot; &quot;):[n];for(;4&gt;r;r++)i[e+jt[r]+t]=o[r]||o[r-2]||o[0];return i}},wt.test(e)||(x.cssHooks[e+t].set=Ot)});var Wt=/%20/g,$t=/\[\]$/,Bt=/\r?\n/g,It=/^(?:submit|button|image|reset|file)$/i,zt=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,&quot;elements&quot;);return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&amp;&amp;!x(this).is(&quot;:disabled&quot;)&amp;&amp;zt.test(this.nodeName)&amp;&amp;!It.test(e)&amp;&amp;(this.checked||!ot.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(Bt,&quot;\r\n&quot;)}}):{name:t.name,value:n.replace(Bt,&quot;\r\n&quot;)}}).get()}}),x.param=function(e,t){var n,r=[],i=function(e,t){t=x.isFunct
 ion(t)?t():null==t?&quot;&quot;:t,r[r.length]=encodeURIComponent(e)+&quot;=&quot;+encodeURIComponent(t)};if(t===undefined&amp;&amp;(t=x.ajaxSettings&amp;&amp;x.ajaxSettings.traditional),x.isArray(e)||e.jquery&amp;&amp;!x.isPlainObject(e))x.each(e,function(){i(this.name,this.value)});else for(n in e)_t(n,e[n],t,i);return r.join(&quot;&amp;&quot;).replace(Wt,&quot;+&quot;)};function _t(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||$t.test(e)?r(e,i):_t(e+&quot;[&quot;+(&quot;object&quot;==typeof i?t:&quot;&quot;)+&quot;]&quot;,i,n,r)});else if(n||&quot;object&quot;!==x.type(t))r(e,t);else for(i in t)_t(e+&quot;[&quot;+i+&quot;]&quot;,t[i],n,r)}x.each(&quot;blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu&quot;.split(&quot; &quot;),function(e,t){x.fn[t]=function(e,n){return arguments.length&gt;0?this.on(t,null,e,n):this
 .trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)
++},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,&quot;**&quot;):this.off(t,e||&quot;**&quot;,n)}});var Xt,Ut,Yt=x.now(),Vt=/\?/,Gt=/#.*$/,Jt=/([?&amp;])_=[^&amp;]*/,Qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Kt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Zt=/^(?:GET|HEAD)$/,en=/^\/\//,tn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,nn=x.fn.load,rn={},on={},sn=&quot;*/&quot;.concat(&quot;*&quot;);try{Ut=i.href}catch(an){Ut=o.createElement(&quot;a&quot;),Ut.href=&quot;&quot;,Ut=Ut.href}Xt=tn.exec(Ut.toLowerCase())||[];function un(e){return function(t,n){&quot;string&quot;!=typeof t&amp;&amp;(n=t,t=&quot;*&quot;);var r,i=0,o=t.toLowerCase().match(w)||[];if(x.isFunction(n))while(r=o[i++])&quot;+&quot;===r[0]?(r=r.slice(1)||&quot;*&quot;,(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function ln(e,t,n,r){var i={},o=e===on;function s(a){var u;return i[a]=!0,x.each(e[a]||[],function(e,a){var l=a(t,
 n,r);return&quot;string&quot;!=typeof l||o||i[l]?o?!(u=l):undefined:(t.dataTypes.unshift(l),s(l),!1)}),u}return s(t.dataTypes[0])||!i[&quot;*&quot;]&amp;&amp;s(&quot;*&quot;)}function cn(e,t){var n,r,i=x.ajaxSettings.flatOptions||{};for(n in t)t[n]!==undefined&amp;&amp;((i[n]?e:r||(r={}))[n]=t[n]);return r&amp;&amp;x.extend(!0,e,r),e}x.fn.load=function(e,t,n){if(&quot;string&quot;!=typeof e&amp;&amp;nn)return nn.apply(this,arguments);var r,i,o,s=this,a=e.indexOf(&quot; &quot;);return a&gt;=0&amp;&amp;(r=e.slice(a),e=e.slice(0,a)),x.isFunction(t)?(n=t,t=undefined):t&amp;&amp;&quot;object&quot;==typeof t&amp;&amp;(i=&quot;POST&quot;),s.length&gt;0&amp;&amp;x.ajax({url:e,type:i,dataType:&quot;html&quot;,data:t}).done(function(e){o=arguments,s.html(r?x(&quot;&lt;div&gt;&quot;).append(x.parseHTML(e)).find(r):e)}).complete(n&amp;&amp;function(e,t){s.each(n,o||[e.responseText,t,e])}),this},x.each([&quot;ajaxStart&quot;,&quot;ajaxStop&quot;,&quot;ajaxComplete&quot;,&quot;ajaxError&q
 uot;,&quot;ajaxSuccess&quot;,&quot;ajaxSend&quot;],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ut,type:&quot;GET&quot;,isLocal:Kt.test(Xt[1]),global:!0,processData:!0,async:!0,contentType:&quot;application/x-www-form-urlencoded; charset=UTF-8&quot;,accepts:{&quot;*&quot;:sn,text:&quot;text/plain&quot;,html:&quot;text/html&quot;,xml:&quot;application/xml, text/xml&quot;,json:&quot;application/json, text/javascript&quot;},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:&quot;responseXML&quot;,text:&quot;responseText&quot;,json:&quot;responseJSON&quot;},converters:{&quot;* text&quot;:String,&quot;text html&quot;:!0,&quot;text json&quot;:x.parseJSON,&quot;text xml&quot;:x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?cn(cn(e,x.ajaxSettings),t):cn(x.ajaxSettings,e)},ajaxPrefilter:un(rn),ajaxTransport:un(on),ajax:function(e,t){&quot;object&quot;==typeof e&amp;&a
 mp;(t=e,e=undefined),t=t||{};var n,r,i,o,s,a,u,l,c=x.ajaxSetup({},t),p=c.context||c,f=c.context&amp;&amp;(p.nodeType||p.jquery)?x(p):x.event,h=x.Deferred(),d=x.Callbacks(&quot;once memory&quot;),g=c.statusCode||{},m={},y={},v=0,b=&quot;canceled&quot;,T={readyState:0,getResponseHeader:function(e){var t;if(2===v){if(!o){o={};while(t=Qt.exec(i))o[t[1].toLowerCase()]=t[2]}t=o[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===v?i:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return v||(e=y[n]=y[n]||e,m[e]=t),this},overrideMimeType:function(e){return v||(c.mimeType=e),this},statusCode:function(e){var t;if(e)if(2&gt;v)for(t in e)g[t]=[g[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||b;return n&amp;&amp;n.abort(t),k(0,t),this}};if(h.promise(T).complete=d.add,T.success=T.done,T.error=T.fail,c.url=((e||c.url||Ut)+&quot;&quot;).replace(Gt,&quot;&quot;).replace(en,Xt[1]+&quot;//&quot;),c.type=t.method||t.type||c
 .method||c.type,c.dataTypes=x.trim(c.dataType||&quot;*&quot;).toLowerCase().match(w)||[&quot;&quot;],null==c.crossDomain&amp;&amp;(a=tn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===Xt[1]&amp;&amp;a[2]===Xt[2]&amp;&amp;(a[3]||(&quot;http:&quot;===a[1]?&quot;80&quot;:&quot;443&quot;))===(Xt[3]||(&quot;http:&quot;===Xt[1]?&quot;80&quot;:&quot;443&quot;)))),c.data&amp;&amp;c.processData&amp;&amp;&quot;string&quot;!=typeof c.data&amp;&amp;(c.data=x.param(c.data,c.traditional)),ln(rn,c,t,T),2===v)return T;u=c.global,u&amp;&amp;0===x.active++&amp;&amp;x.event.trigger(&quot;ajaxStart&quot;),c.type=c.type.toUpperCase(),c.hasContent=!Zt.test(c.type),r=c.url,c.hasContent||(c.data&amp;&amp;(r=c.url+=(Vt.test(r)?&quot;&amp;&quot;:&quot;?&quot;)+c.data,delete c.data),c.cache===!1&amp;&amp;(c.url=Jt.test(r)?r.replace(Jt,&quot;$1_=&quot;+Yt++):r+(Vt.test(r)?&quot;&amp;&quot;:&quot;?&quot;)+&quot;_=&quot;+Yt++)),c.ifModified&amp;&amp;(x.lastModified[r]&amp;&amp;T.setRequestHeader(&qu
 ot;If-Modified-Since&quot;,x.lastModified[r]),x.etag[r]&amp;&amp;T.setRequestHeader(&quot;If-None-Match&quot;,x.etag[r])),(c.data&amp;&amp;c.hasContent&amp;&amp;c.contentType!==!1||t.contentType)&amp;&amp;T.setRequestHeader(&quot;Content-Type&quot;,c.contentType),T.setRequestHeader(&quot;Accept&quot;,c.dataTypes[0]&amp;&amp;c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(&quot;*&quot;!==c.dataTypes[0]?&quot;, &quot;+sn+&quot;; q=0.01&quot;:&quot;&quot;):c.accepts[&quot;*&quot;]);for(l in c.headers)T.setRequestHeader(l,c.headers[l]);if(c.beforeSend&amp;&amp;(c.beforeSend.call(p,T,c)===!1||2===v))return T.abort();b=&quot;abort&quot;;for(l in{success:1,error:1,complete:1})T[l](c[l]);if(n=ln(on,c,t,T)){T.readyState=1,u&amp;&amp;f.trigger(&quot;ajaxSend&quot;,[T,c]),c.async&amp;&amp;c.timeout&gt;0&amp;&amp;(s=setTimeout(function(){T.abort(&quot;timeout&quot;)},c.timeout));try{v=1,n.send(m,k)}catch(C){if(!(2&gt;v))throw C;k(-1,C)}}else k(-1,&quot;No Transport&quot;);function 
 k(e,t,o,a){var l,m,y,b,w,C=t;2!==v&amp;&amp;(v=2,s&amp;&amp;clearTimeout(s),n=undefined,i=a||&quot;&quot;,T.readyState=e&gt;0?4:0,l=e&gt;=200&amp;&amp;300&gt;e||304===e,o&amp;&amp;(b=pn(c,T,o)),b=fn(c,b,T,l),l?(c.ifModified&amp;&amp;(w=T.getResponseHeader(&quot;Last-Modified&quot;),w&amp;&amp;(x.lastModified[r]=w),w=T.getResponseHeader(&quot;etag&quot;),w&amp;&amp;(x.etag[r]=w)),204===e||&quot;HEAD&quot;===c.type?C=&quot;nocontent&quot;:304===e?C=&quot;notmodified&quot;:(C=b.state,m=b.data,y=b.error,l=!y)):(y=C,(e||!C)&amp;&amp;(C=&quot;error&quot;,0&gt;e&amp;&amp;(e=0))),T.status=e,T.statusText=(t||C)+&quot;&quot;,l?h.resolveWith(p,[m,C,T]):h.rejectWith(p,[T,C,y]),T.statusCode(g),g=undefined,u&amp;&amp;f.trigger(l?&quot;ajaxSuccess&quot;:&quot;ajaxError&quot;,[T,c,l?m:y]),d.fireWith(p,[T,C]),u&amp;&amp;(f.trigger(&quot;ajaxComplete&quot;,[T,c]),--x.active||x.event.trigger(&quot;ajaxStop&quot;)))}return T},getJSON:function(e,t,n){return x.get(e,t,n,&quot;json&quot;)},getScri
 pt:function(e,t){return x.get(e,undefined,t,&quot;script&quot;)}}),x.each([&quot;get&quot;,&quot;post&quot;],function(e,t){x[t]=function(e,n,r,i){return x.isFunction(n)&amp;&amp;(i=i||r,r=n,n=undefined),x.ajax({url:e,type:t,dataType:i,data:n,success:r})}});function pn(e,t,n){var r,i,o,s,a=e.contents,u=e.dataTypes;while(&quot;*&quot;===u[0])u.shift(),r===undefined&amp;&amp;(r=e.mimeType||t.getResponseHeader(&quot;Content-Type&quot;));if(r)for(i in a)if(a[i]&amp;&amp;a[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+&quot; &quot;+u[0]]){o=i;break}s||(s=i)}o=o||s}return o?(o!==u[0]&amp;&amp;u.unshift(o),n[o]):undefined}function fn(e,t,n,r){var i,o,s,a,u,l={},c=e.dataTypes.slice();if(c[1])for(s in e.converters)l[s.toLowerCase()]=e.converters[s];o=c.shift();while(o)if(e.responseFields[o]&amp;&amp;(n[e.responseFields[o]]=t),!u&amp;&amp;r&amp;&amp;e.dataFilter&amp;&amp;(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if(&quot;*&quot;===o)o=
 u;else if(&quot;*&quot;!==u&amp;&amp;u!==o){if(s=l[u+&quot; &quot;+o]||l[&quot;* &quot;+o],!s)for(i in l)if(a=i.split(&quot; &quot;),a[1]===o&amp;&amp;(s=l[u+&quot; &quot;+a[0]]||l[&quot;* &quot;+a[0]])){s===!0?s=l[i]:l[i]!==!0&amp;&amp;(o=a[0],c.unshift(a[1]));break}if(s!==!0)if(s&amp;&amp;e[&quot;throws&quot;])t=s(t);else try{t=s(t)}catch(p){return{state:&quot;parsererror&quot;,error:s?p:&quot;No conversion from &quot;+u+&quot; to &quot;+o}}}return{state:&quot;success&quot;,data:t}}x.ajaxSetup({accepts:{script:&quot;text/javascript, application/javascript, application/ecmascript, application/x-ecmascript&quot;},contents:{script:/(?:java|ecma)script/},converters:{&quot;text script&quot;:function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter(&quot;script&quot;,function(e){e.cache===undefined&amp;&amp;(e.cache=!1),e.crossDomain&amp;&amp;(e.type=&quot;GET&quot;)}),x.ajaxTransport(&quot;script&quot;,function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=x(&quot;&lt
 ;script&gt;&quot;).prop({async:!0,charset:e.scriptCharset,src:e.url}).on(&quot;load error&quot;,n=function(e){t.remove(),n=null,e&amp;&amp;i(&quot;error&quot;===e.type?404:200,e.type)}),o.head.appendChild(t[0])},abort:function(){n&amp;&amp;n()}}}});var hn=[],dn=/(=)\?(?=&amp;|$)|\?\?/;x.ajaxSetup({jsonp:&quot;callback&quot;,jsonpCallback:function(){var e=hn.pop()||x.expando+&quot;_&quot;+Yt++;return this[e]=!0,e}}),x.ajaxPrefilter(&quot;json jsonp&quot;,function(t,n,r){var i,o,s,a=t.jsonp!==!1&amp;&amp;(dn.test(t.url)?&quot;url&quot;:&quot;string&quot;==typeof t.data&amp;&amp;!(t.contentType||&quot;&quot;).indexOf(&quot;application/x-www-form-urlencoded&quot;)&amp;&amp;dn.test(t.data)&amp;&amp;&quot;data&quot;);return a||&quot;jsonp&quot;===t.dataTypes[0]?(i=t.jsonpCallback=x.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(dn,&quot;$1&quot;+i):t.jsonp!==!1&amp;&amp;(t.url+=(Vt.test(t.url)?&quot;&amp;&quot;:&quot;?&quot;)+t.jsonp+&quot;=&quot
 ;+i),t.converters[&quot;script json&quot;]=function(){return s||x.error(i+&quot; was not called&quot;),s[0]},t.dataTypes[0]=&quot;json&quot;,o=e[i],e[i]=function(){s=arguments},r.always(function(){e[i]=o,t[i]&amp;&amp;(t.jsonpCallback=n.jsonpCallback,hn.push(i)),s&amp;&amp;x.isFunction(o)&amp;&amp;o(s[0]),s=o=undefined}),&quot;script&quot;):undefined}),x.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var gn=x.ajaxSettings.xhr(),mn={0:200,1223:204},yn=0,vn={};e.ActiveXObject&amp;&amp;x(e).on(&quot;unload&quot;,function(){for(var e in vn)vn[e]();vn=undefined}),x.support.cors=!!gn&amp;&amp;&quot;withCredentials&quot;in gn,x.support.ajax=gn=!!gn,x.ajaxTransport(function(e){var t;return x.support.cors||gn&amp;&amp;!e.crossDomain?{send:function(n,r){var i,o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)s[i]=e.xhrFields[i];e.mimeType&amp;&amp;s.overrideMimeType&amp;&amp;s.overrideMimeType(e.mimeType),e.crossD
 omain||n[&quot;X-Requested-With&quot;]||(n[&quot;X-Requested-With&quot;]=&quot;XMLHttpRequest&quot;);for(i in n)s.setRequestHeader(i,n[i]);t=function(e){return function(){t&amp;&amp;(delete vn[o],t=s.onload=s.onerror=null,&quot;abort&quot;===e?s.abort():&quot;error&quot;===e?r(s.status||404,s.statusText):r(mn[s.status]||s.status,s.statusText,&quot;string&quot;==typeof s.responseText?{text:s.responseText}:undefined,s.getAllResponseHeaders()))}},s.onload=t(),s.onerror=t(&quot;error&quot;),t=vn[o=yn++]=t(&quot;abort&quot;),s.send(e.hasContent&amp;&amp;e.data||null)},abort:function(){t&amp;&amp;t()}}:undefined});var xn,bn,wn=/^(?:toggle|show|hide)$/,Tn=RegExp(&quot;^(?:([+-])=|)(&quot;+b+&quot;)([a-z%]*)$&quot;,&quot;i&quot;),Cn=/queueHooks$/,kn=[An],Nn={&quot;*&quot;:[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Tn.exec(t),o=i&amp;&amp;i[3]||(x.cssNumber[e]?&quot;&quot;:&quot;px&quot;),s=(x.cssNumber[e]||&quot;px&quot;!==o&amp;&amp;+r)&amp;&amp;Tn.exec(x.css(n.elem,e))
 ,a=1,u=20;if(s&amp;&amp;s[3]!==o){o=o||s[3],i=i||[],s=+r||1;do a=a||&quot;.5&quot;,s/=a,x.style(n.elem,e,s+o);while(a!==(a=n.cur()/r)&amp;&amp;1!==a&amp;&amp;--u)}return i&amp;&amp;(s=n.start=+s||+r||0,n.unit=o,n.end=i[1]?s+(i[1]+1)*i[2]:+i[2]),n}]};function En(){return setTimeout(function(){xn=undefined}),xn=x.now()}function Sn(e,t,n){var r,i=(Nn[t]||[]).concat(Nn[&quot;*&quot;]),o=0,s=i.length;for(;s&gt;o;o++)if(r=i[o].call(n,t,e))return r}function jn(e,t,n){var r,i,o=0,s=kn.length,a=x.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=xn||En(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,s=0,u=l.tweens.length;for(;u&gt;s;s++)l.tweens[s].run(o);return a.notifyWith(e,[l,o,n]),1&gt;o&amp;&amp;u?n:(a.resolveWith(e,[l]),!1)},l=a.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:xn||En(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,l
 .opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r&gt;n;n++)l.tweens[n].run(1);return t?a.resolveWith(e,[l,t]):a.rejectWith(e,[l,t]),this}}),c=l.props;for(Dn(c,l.opts.specialEasing);s&gt;o;o++)if(r=kn[o].call(l,e,c,l.opts))return r;return x.map(c,Sn,l),x.isFunction(l.opts.start)&amp;&amp;l.opts.start.call(e,l),x.fx.timer(x.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function Dn(e,t){var n,r,i,o,s;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&amp;&amp;(i=o[1],o=e[n]=o[0]),n!==r&amp;&amp;(e[r]=o,delete e[n]),s=x.cssHooks[r],s&amp;&amp;&quot;expand&quot;in s){o=s.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(jn,{tweener:function(e,t){x.isFunction(e)?(t=e,e=[&quot;*&quot;]):e=e.split(&quot; &quot;);var n,r=0,i=e.length;
 for(;i&gt;r;r++)n=e[r],Nn[n]=Nn[n]||[],Nn[n].unshift(t)},prefilter:function(e,t){t?kn.unshift(e):kn.push(e)}});function An(e,t,n){var r,i,o,s,a,u,l=this,c={},p=e.style,f=e.nodeType&amp;&amp;Lt(e),h=q.get(e,&quot;fxshow&quot;);n.queue||(a=x._queueHooks(e,&quot;fx&quot;),null==a.unqueued&amp;&amp;(a.unqueued=0,u=a.empty.fire,a.empty.fire=function(){a.unqueued||u()}),a.unqueued++,l.always(function(){l.always(function(){a.unqueued--,x.queue(e,&quot;fx&quot;).length||a.empty.fire()})})),1===e.nodeType&amp;&amp;(&quot;height&quot;in t||&quot;width&quot;in t)&amp;&amp;(n.overflow=[p.overflow,p.overflowX,p.overflowY],&quot;inline&quot;===x.css(e,&quot;display&quot;)&amp;&amp;&quot;none&quot;===x.css(e,&quot;float&quot;)&amp;&amp;(p.display=&quot;inline-block&quot;)),n.overflow&amp;&amp;(p.overflow=&quot;hidden&quot;,l.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],wn.exec(i)){if(delete t[r],o=o||&quot;toggle&quo
 t;===i,i===(f?&quot;hide&quot;:&quot;show&quot;)){if(&quot;show&quot;!==i||!h||h[r]===undefined)continue;f=!0}c[r]=h&amp;&amp;h[r]||x.style(e,r)}if(!x.isEmptyObject(c)){h?&quot;hidden&quot;in h&amp;&amp;(f=h.hidden):h=q.access(e,&quot;fxshow&quot;,{}),o&amp;&amp;(h.hidden=!f),f?x(e).show():l.done(function(){x(e).hide()}),l.done(function(){var t;q.remove(e,&quot;fxshow&quot;);for(t in c)x.style(e,t,c[t])});for(r in c)s=Sn(f?h[r]:0,r,l),r in h||(h[r]=s.start,f&amp;&amp;(s.end=s.start,s.start=&quot;width&quot;===r||&quot;height&quot;===r?1:0))}}function Ln(e,t,n,r,i){return new Ln.prototype.init(e,t,n,r,i)}x.Tween=Ln,Ln.prototype={constructor:Ln,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||&quot;swing&quot;,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?&quot;&quot;:&quot;px&quot;)},cur:function(){var e=Ln.propHooks[this.prop];return e&amp;&amp;e.get?e.get(this):Ln.propHooks._default.get(this)},run:function(e){var t,n=
 Ln.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&amp;&amp;this.options.step.call(this.elem,this.now,this),n&amp;&amp;n.set?n.set(this):Ln.propHooks._default.set(this),this}},Ln.prototype.init.prototype=Ln.prototype,Ln.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&amp;&amp;null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,&quot;&quot;),t&amp;&amp;&quot;auto&quot;!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&amp;&amp;(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Ln.propHooks.scrollTop=Ln.propHooks.scrollLeft={set:function(e){e.elem.nodeType&amp;&amp;e.elem.parentNode&amp;&amp;(e.elem[e.prop]=e.now)}},x.each([&quot;toggle&quot;,&quot;show&quot;,&quot;hide&quot;],funct
 ion(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||&quot;boolean&quot;==typeof e?n.apply(this,arguments):this.animate(qn(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Lt).css(&quot;opacity&quot;,0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),s=function(){var t=jn(this,x.extend({},e),o);(i||q.get(this,&quot;finish&quot;))&amp;&amp;t.stop(!0)};return s.finish=s,i||o.queue===!1?this.each(s):this.queue(o.queue,s)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return&quot;string&quot;!=typeof e&amp;&amp;(n=t,t=e,e=undefined),t&amp;&amp;e!==!1&amp;&amp;this.queue(e||&quot;fx&quot;,[]),this.each(function(){var t=!0,i=null!=e&amp;&amp;e+&quot;queueHooks&quot;,o=x.timers,s=q.get(this);if(i)s[i]&amp;&amp;s[i].stop&amp;&amp;r(s[i]);else for(i in s)s[i]&amp;&amp;s[i].stop&amp;&amp;Cn.test(i)&amp;&amp;r(s[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&amp;&
 amp;o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));(t||!n)&amp;&amp;x.dequeue(this,e)})},finish:function(e){return e!==!1&amp;&amp;(e=e||&quot;fx&quot;),this.each(function(){var t,n=q.get(this),r=n[e+&quot;queue&quot;],i=n[e+&quot;queueHooks&quot;],o=x.timers,s=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&amp;&amp;i.stop&amp;&amp;i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&amp;&amp;o[t].queue===e&amp;&amp;(o[t].anim.stop(!0),o.splice(t,1));for(t=0;s&gt;t;t++)r[t]&amp;&amp;r[t].finish&amp;&amp;r[t].finish.call(this);delete n.finish})}});function qn(e,t){var n,r={height:e},i=0;for(t=t?1:0;4&gt;i;i+=2-t)n=jt[i],r[&quot;margin&quot;+n]=r[&quot;padding&quot;+n]=e;return t&amp;&amp;(r.opacity=r.width=e),r}x.each({slideDown:qn(&quot;show&quot;),slideUp:qn(&quot;hide&quot;),slideToggle:qn(&quot;toggle&quot;),fadeIn:{opacity:&quot;show&quot;},fadeOut:{opacity:&quot;hide&quot;},fadeToggle:{opacity:&quot;toggle&quot;}},function(e,t){x.fn[e]=function(e,n,r){return
  this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&amp;&amp;&quot;object&quot;==typeof e?x.extend({},e):{complete:n||!n&amp;&amp;t||x.isFunction(e)&amp;&amp;e,duration:e,easing:n&amp;&amp;t||t&amp;&amp;!x.isFunction(t)&amp;&amp;t};return r.duration=x.fx.off?0:&quot;number&quot;==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&amp;&amp;(r.queue=&quot;fx&quot;),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&amp;&amp;r.old.call(this),r.queue&amp;&amp;x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=Ln.prototype.init,x.fx.tick=function(){var e,t=x.timers,n=0;for(xn=x.now();t.length&gt;n;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||x.fx.stop(),xn=undefined},x.fx.timer=function(e){e()&amp;&amp;x.timers.push(e)&amp;&amp;x.fx.start()},x.fx.interval=13,x.fx.start=function(){bn||(bn=setInterval
 (x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(bn),bn=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&amp;&amp;x.expr.filters&amp;&amp;(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===undefined?this:this.each(function(t){x.offset.setOffset(this,e,t)});var t,n,i=this[0],o={top:0,left:0},s=i&amp;&amp;i.ownerDocument;if(s)return t=s.documentElement,x.contains(t,i)?(typeof i.getBoundingClientRect!==r&amp;&amp;(o=i.getBoundingClientRect()),n=Hn(s),{top:o.top+n.pageYOffset-t.clientTop,left:o.left+n.pageXOffset-t.clientLeft}):o},x.offset={setOffset:function(e,t,n){var r,i,o,s,a,u,l,c=x.css(e,&quot;position&quot;),p=x(e),f={};&quot;static&quot;===c&amp;&amp;(e.style.position=&quot;relative&quot;),a=p.offset(),o=x.css(e,&quot;top&quot;),u=x.css(e,&quot;left&quot;),l=(&quot;absolute&quot;===c||&quot;fixed&quot;===c)&amp;&amp;(o+u).indexOf(&q
 uot;auto&quot;)&gt;-1,l?(r=p.position(),s=r.top,i=r.left):(s=parseFloat(o)||0,i=parseFloat(u)||0),x.isFunction(t)&amp;&amp;(t=t.call(e,n,a)),null!=t.top&amp;&amp;(f.top=t.top-a.top+s),null!=t.left&amp;&amp;(f.left=t.left-a.left+i),&quot;using&quot;in t?t.using.call(e,f):p.css(f)}},x.fn.extend({position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return&quot;fixed&quot;===x.css(n,&quot;position&quot;)?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],&quot;html&quot;)||(r=e.offset()),r.top+=x.css(e[0],&quot;borderTopWidth&quot;,!0),r.left+=x.css(e[0],&quot;borderLeftWidth&quot;,!0)),{top:t.top-r.top-x.css(n,&quot;marginTop&quot;,!0),left:t.left-r.left-x.css(n,&quot;marginLeft&quot;,!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&amp;&amp;!x.nodeName(e,&quot;html&quot;)&amp;&amp;&quot;static&quot;===x.css(e,&quot;position&quot;))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:&quot
 ;pageXOffset&quot;,scrollTop:&quot;pageYOffset&quot;},function(t,n){var r=&quot;pageYOffset&quot;===n;x.fn[t]=function(i){return x.access(this,function(t,i,o){var s=Hn(t);return o===undefined?s?s[n]:t[i]:(s?s.scrollTo(r?e.pageXOffset:o,r?o:e.pageYOffset):t[i]=o,undefined)},t,i,arguments.length,null)}});function Hn(e){return x.isWindow(e)?e:9===e.nodeType&amp;&amp;e.defaultView}x.each({Height:&quot;height&quot;,Width:&quot;width&quot;},function(e,t){x.each({padding:&quot;inner&quot;+e,content:t,&quot;&quot;:&quot;outer&quot;+e},function(n,r){x.fn[r]=function(r,i){var o=arguments.length&amp;&amp;(n||&quot;boolean&quot;!=typeof r),s=n||(r===!0||i===!0?&quot;margin&quot;:&quot;border&quot;);return x.access(this,function(t,n,r){var i;return x.isWindow(t)?t.document.documentElement[&quot;client&quot;+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body[&quot;scroll&quot;+e],i[&quot;scroll&quot;+e],t.body[&quot;offset&quot;+e],i[&quot;offset&quot;+e],i[&quot;client&quot;+e])):r==
 =undefined?x.css(t,n,s):x.style(t,n,r,s)},t,o?r:undefined,o,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,&quot;object&quot;==typeof module&amp;&amp;module&amp;&amp;&quot;object&quot;==typeof module.exports?module.exports=x:&quot;function&quot;==typeof define&amp;&amp;define.amd&amp;&amp;define(&quot;jquery&quot;,[],function(){return x}),&quot;object&quot;==typeof e&amp;&amp;&quot;object&quot;==typeof e.document&amp;&amp;(e.jQuery=e.$=x)})(window);
+diff --git a/web/ajax/libs/mootools/1.4.1/mootools-yui-compressed.js b/web/ajax/libs/mootools/1.4.1/mootools-yui-compressed.js
+new file mode 100644
+index 0000000..e03fb7c
+--- /dev/null
++++ b/web/ajax/libs/mootools/1.4.1/mootools-yui-compressed.js
+@@ -0,0 +1,515 @@
++/*
++---
++MooTools: the javascript framework
++
++web build:
++ - http://mootools.net/core/76bf47062d6c1983d66ce47ad66aa0e0
++
++packager build:
++ - packager build Core/Core Core/Array Core/String Core/Number Core/Function Core/Object Core/Event Core/Browser Core/Class Core/Class.Extras Core/Slick.Parser Core/Slick.Finder Core/Element Core/Element.Style Core/Element.Event Core/Element.Delegation Core/Element.Dimensions Core/Fx Core/Fx.CSS Core/Fx.Tween Core/Fx.Morph Core/Fx.Transitions Core/Request Core/Request.HTML Core/Request.JSON Core/Cookie Core/JSON Core/DOMReady Core/Swiff
++
++copyrights:
++  - [MooTools](http://mootools.net)
++
++licenses:
++  - [MIT License](http://mootools.net/license.txt)
++...
++*/
++(function(){this.MooTools={version:&quot;1.4.1&quot;,build:&quot;d1fb25710e3c5482a219ab9dc675a4e0ad2176b6&quot;};var e=this.typeOf=function(i){if(i==null){return&quot;null&quot;;}if(i.$family){return i.$family();
++}if(i.nodeName){if(i.nodeType==1){return&quot;element&quot;;}if(i.nodeType==3){return(/\S/).test(i.nodeValue)?&quot;textnode&quot;:&quot;whitespace&quot;;}}else{if(typeof i.length==&quot;number&quot;){if(i.callee){return&quot;arguments&quot;;
++}if(&quot;item&quot; in i){return&quot;collection&quot;;}}}return typeof i;};var u=this.instanceOf=function(w,i){if(w==null){return false;}var v=w.$constructor||w.constructor;
++while(v){if(v===i){return true;}v=v.parent;}return w instanceof i;};var f=this.Function;var r=true;for(var q in {toString:1}){r=null;}if(r){r=[&quot;hasOwnProperty&quot;,&quot;valueOf&quot;,&quot;isPrototypeOf&quot;,&quot;propertyIsEnumerable&quot;,&quot;toLocaleString&quot;,&quot;toString&quot;,&quot;constructor&quot;];
++}f.prototype.overloadSetter=function(v){var i=this;return function(x,w){if(x==null){return this;}if(v||typeof x!=&quot;string&quot;){for(var y in x){i.call(this,y,x[y]);
++}if(r){for(var z=r.length;z--;){y=r[z];if(x.hasOwnProperty(y)){i.call(this,y,x[y]);}}}}else{i.call(this,x,w);}return this;};};f.prototype.overloadGetter=function(v){var i=this;
++return function(x){var y,w;if(v||typeof x!=&quot;string&quot;){y=x;}else{if(arguments.length&gt;1){y=arguments;}}if(y){w={};for(var z=0;z&lt;y.length;z++){w[y[z]]=i.call(this,y[z]);
++}}else{w=i.call(this,x);}return w;};};f.prototype.extend=function(i,v){this[i]=v;}.overloadSetter();f.prototype.implement=function(i,v){this.prototype[i]=v;
++}.overloadSetter();var o=Array.prototype.slice;f.from=function(i){return(e(i)==&quot;function&quot;)?i:function(){return i;};};Array.from=function(i){if(i==null){return[];
++}return(k.isEnumerable(i)&amp;&amp;typeof i!=&quot;string&quot;)?(e(i)==&quot;array&quot;)?i:o.call(i):[i];};Number.from=function(v){var i=parseFloat(v);return isFinite(i)?i:null;
++};String.from=function(i){return i+&quot;&quot;;};f.implement({hide:function(){this.$hidden=true;return this;},protect:function(){this.$protected=true;return this;
++}});var k=this.Type=function(x,w){if(x){var v=x.toLowerCase();var i=function(y){return(e(y)==v);};k[&quot;is&quot;+x]=i;if(w!=null){w.prototype.$family=(function(){return v;
++}).hide();w.type=i;}}if(w==null){return null;}w.extend(this);w.$constructor=k;w.prototype.$constructor=w;return w;};var p=Object.prototype.toString;k.isEnumerable=function(i){return(i!=null&amp;&amp;typeof i.length==&quot;number&quot;&amp;&amp;p.call(i)!=&quot;[object Function]&quot;);
++};var b={};var d=function(i){var v=e(i.prototype);return b[v]||(b[v]=[]);};var h=function(w,A){if(A&amp;&amp;A.$hidden){return;}var v=d(this);for(var x=0;x&lt;v.length;
++x++){var z=v[x];if(e(z)==&quot;type&quot;){h.call(z,w,A);}else{z.call(this,w,A);}}var y=this.prototype[w];if(y==null||!y.$protected){this.prototype[w]=A;}if(this[w]==null&amp;&amp;e(A)==&quot;function&quot;){t.call(this,w,function(i){return A.apply(i,o.call(arguments,1));
++});}};var t=function(i,w){if(w&amp;&amp;w.$hidden){return;}var v=this[i];if(v==null||!v.$protected){this[i]=w;}};k.implement({implement:h.overloadSetter(),extend:t.overloadSetter(),alias:function(i,v){h.call(this,i,this.prototype[v]);
++}.overloadSetter(),mirror:function(i){d(this).push(i);return this;}});new k(&quot;Type&quot;,k);var c=function(v,z,x){var w=(z!=Object),D=z.prototype;if(w){z=new k(v,z);
++}for(var A=0,y=x.length;A&lt;y;A++){var E=x[A],C=z[E],B=D[E];if(C){C.protect();}if(w&amp;&amp;B){delete D[E];D[E]=B.protect();}}if(w){z.implement(D);}return c;};c(&quot;String&quot;,String,[&quot;charAt&quot;,&quot;charCodeAt&quot;,&quot;concat&quot;,&quot;indexOf&quot;,&quot;lastIndexOf&quot;,&quot;match&quot;,&quot;quote&quot;,&quot;replace&quot;,&quot;search&quot;,&quot;slice&quot;,&quot;split&quot;,&quot;substr&quot;,&quot;substring&quot;,&quot;trim&quot;,&quot;toLowerCase&quot;,&quot;toUpperCase&quot;])(&quot;Array&quot;,Array,[&quot;pop&quot;,&quot;push&quot;,&quot;reverse&quot;,&quot;shift&quot;,&quot;sort&quot;,&quot;splice&quot;,&quot;unshift&quot;,&quot;concat&quot;,&quot;join&quot;,&quot;slice&quot;,&quot;indexOf&quot;,&quot;lastIndexOf&quot;,&quot;filter&quot;,&quot;forEach&quot;,&quot;every&quot;,&quot;map&quot;,&quot;some&quot;,&quot;reduce&quot;,&quot;reduceRight&quot;])(&quot;Number&quot;,Number,[&quot;toExponential&quot;,&quot;toFixed&quot;,&quot;toLocaleSt
 ring&quot;,&quot;toPrecision&quot;])(&quot;Function&quot;,f,[&quot;apply&quot;,&quot;call&quot;,&quot;bind&quot;])(&quot;RegExp&quot;,RegExp,[&quot;exec&quot;,&quot;test&quot;])(&quot;Object&quot;,Object,[&quot;create&quot;,&quot;defineProperty&quot;,&quot;defineProperties&quot;,&quot;keys&quot;,&quot;getPrototypeOf&quot;,&quot;getOwnPropertyDescriptor&quot;,&quot;getOwnPropertyNames&quot;,&quot;preventExtensions&quot;,&quot;isExtensible&quot;,&quot;seal&quot;,&quot;isSealed&quot;,&quot;freeze&quot;,&quot;isFrozen&quot;])(&quot;Date&quot;,Date,[&quot;now&quot;]);
++Object.extend=t.overloadSetter();Date.extend(&quot;now&quot;,function(){return +(new Date);});new k(&quot;Boolean&quot;,Boolean);Number.prototype.$family=function(){return isFinite(this)?&quot;number&quot;:&quot;null&quot;;
++}.hide();Number.extend(&quot;random&quot;,function(v,i){return Math.floor(Math.random()*(i-v+1)+v);});var l=Object.prototype.hasOwnProperty;Object.extend(&quot;forEach&quot;,function(i,w,x){for(var v in i){if(l.call(i,v)){w.call(x,i[v],v,i);
++}}});Object.each=Object.forEach;Array.implement({forEach:function(x,y){for(var w=0,v=this.length;w&lt;v;w++){if(w in this){x.call(y,this[w],w,this);}}},each:function(i,v){Array.forEach(this,i,v);
++return this;}});var s=function(i){switch(e(i)){case&quot;array&quot;:return i.clone();case&quot;object&quot;:return Object.clone(i);default:return i;}};Array.implement(&quot;clone&quot;,function(){var v=this.length,w=new Array(v);
++while(v--){w[v]=s(this[v]);}return w;});var a=function(v,i,w){switch(e(w)){case&quot;object&quot;:if(e(v[i])==&quot;object&quot;){Object.merge(v[i],w);}else{v[i]=Object.clone(w);
++}break;case&quot;array&quot;:v[i]=w.clone();break;default:v[i]=w;}return v;};Object.extend({merge:function(C,y,x){if(e(y)==&quot;string&quot;){return a(C,y,x);}for(var B=1,w=arguments.length;
++B&lt;w;B++){var z=arguments[B];for(var A in z){a(C,A,z[A]);}}return C;},clone:function(i){var w={};for(var v in i){w[v]=s(i[v]);}return w;},append:function(z){for(var y=1,w=arguments.length;
++y&lt;w;y++){var v=arguments[y]||{};for(var x in v){z[x]=v[x];}}return z;}});[&quot;Object&quot;,&quot;WhiteSpace&quot;,&quot;TextNode&quot;,&quot;Collection&quot;,&quot;Arguments&quot;].each(function(i){new k(i);
++});var j=Date.now();String.extend(&quot;uniqueID&quot;,function(){return(j++).toString(36);});var g=this.Hash=new k(&quot;Hash&quot;,function(i){if(e(i)==&quot;hash&quot;){i=Object.clone(i.getClean());
++}for(var v in i){this[v]=i[v];}return this;});g.implement({forEach:function(i,v){Object.forEach(this,i,v);},getClean:function(){var v={};for(var i in this){if(this.hasOwnProperty(i)){v[i]=this[i];
++}}return v;},getLength:function(){var v=0;for(var i in this){if(this.hasOwnProperty(i)){v++;}}return v;}});g.alias(&quot;each&quot;,&quot;forEach&quot;);Object.type=k.isObject;
++var n=this.Native=function(i){return new k(i.name,i.initialize);};n.type=k.type;n.implement=function(x,v){for(var w=0;w&lt;x.length;w++){x[w].implement(v);
++}return n;};var m=Array.type;Array.type=function(i){return u(i,Array)||m(i);};this.$A=function(i){return Array.from(i).slice();};this.$arguments=function(v){return function(){return arguments[v];
++};};this.$chk=function(i){return !!(i||i===0);};this.$clear=function(i){clearTimeout(i);clearInterval(i);return null;};this.$defined=function(i){return(i!=null);
++};this.$each=function(w,v,x){var i=e(w);((i==&quot;arguments&quot;||i==&quot;collection&quot;||i==&quot;array&quot;||i==&quot;elements&quot;)?Array:Object).each(w,v,x);};this.$empty=function(){};
++this.$extend=function(v,i){return Object.append(v,i);};this.$H=function(i){return new g(i);};this.$merge=function(){var i=Array.slice(arguments);i.unshift({});
++return Object.merge.apply(null,i);};this.$lambda=f.from;this.$mixin=Object.merge;this.$random=Number.random;this.$splat=Array.from;this.$time=Date.now;
++this.$type=function(i){var v=e(i);if(v==&quot;elements&quot;){return&quot;array&quot;;}return(v==&quot;null&quot;)?false:v;};this.$unlink=function(i){switch(e(i)){case&quot;object&quot;:return Object.clone(i);
++case&quot;array&quot;:return Array.clone(i);case&quot;hash&quot;:return new g(i);default:return i;}};})();Array.implement({every:function(c,d){for(var b=0,a=this.length&gt;&gt;&gt;0;
++b&lt;a;b++){if((b in this)&amp;&amp;!c.call(d,this[b],b,this)){return false;}}return true;},filter:function(d,e){var c=[];for(var b=0,a=this.length&gt;&gt;&gt;0;b&lt;a;b++){if((b in this)&amp;&amp;d.call(e,this[b],b,this)){c.push(this[b]);
++}}return c;},indexOf:function(c,d){var b=this.length&gt;&gt;&gt;0;for(var a=(d&lt;0)?Math.max(0,b+d):d||0;a&lt;b;a++){if(this[a]===c){return a;}}return -1;},map:function(c,e){var d=this.length&gt;&gt;&gt;0,b=Array(d);
++for(var a=0;a&lt;d;a++){if(a in this){b[a]=c.call(e,this[a],a,this);}}return b;},some:function(c,d){for(var b=0,a=this.length&gt;&gt;&gt;0;b&lt;a;b++){if((b in this)&amp;&amp;c.call(d,this[b],b,this)){return true;
++}}return false;},clean:function(){return this.filter(function(a){return a!=null;});},invoke:function(a){var b=Array.slice(arguments,1);return this.map(function(c){return c[a].apply(c,b);
++});},associate:function(c){var d={},b=Math.min(this.length,c.length);for(var a=0;a&lt;b;a++){d[c[a]]=this[a];}return d;},link:function(c){var a={};for(var e=0,b=this.length;
++e&lt;b;e++){for(var d in c){if(c[d](this[e])){a[d]=this[e];delete c[d];break;}}}return a;},contains:function(a,b){return this.indexOf(a,b)!=-1;},append:function(a){this.push.apply(this,a);
++return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[Number.random(0,this.length-1)]:null;
++},include:function(a){if(!this.contains(a)){this.push(a);}return this;},combine:function(c){for(var b=0,a=c.length;b&lt;a;b++){this.include(c[b]);}return this;
++},erase:function(b){for(var a=this.length;a--;){if(this[a]===b){this.splice(a,1);}}return this;},empty:function(){this.length=0;return this;},flatten:function(){var d=[];
++for(var b=0,a=this.length;b&lt;a;b++){var c=typeOf(this[b]);if(c==&quot;null&quot;){continue;}d=d.concat((c==&quot;array&quot;||c==&quot;collection&quot;||c==&quot;arguments&quot;||instanceOf(this[b],Array))?Array.flatten(this[b]):this[b]);
++}return d;},pick:function(){for(var b=0,a=this.length;b&lt;a;b++){if(this[b]!=null){return this[b];}}return null;},hexToRgb:function(b){if(this.length!=3){return null;
++}var a=this.map(function(c){if(c.length==1){c+=c;}return c.toInt(16);});return(b)?a:&quot;rgb(&quot;+a+&quot;)&quot;;},rgbToHex:function(d){if(this.length&lt;3){return null;}if(this.length==4&amp;&amp;this[3]==0&amp;&amp;!d){return&quot;transparent&quot;;
++}var b=[];for(var a=0;a&lt;3;a++){var c=(this[a]-0).toString(16);b.push((c.length==1)?&quot;0&quot;+c:c);}return(d)?b:&quot;#&quot;+b.join(&quot;&quot;);}});Array.alias(&quot;extend&quot;,&quot;append&quot;);
++var $pick=function(){return Array.from(arguments).pick();};String.implement({test:function(a,b){return((typeOf(a)==&quot;regexp&quot;)?a:new RegExp(&quot;&quot;+a,b)).test(this);
++},contains:function(a,b){return(b)?(b+this+b).indexOf(b+a+b)&gt;-1:String(this).indexOf(a)&gt;-1;},trim:function(){return String(this).replace(/^\s+|\s+$/g,&quot;&quot;);
++},clean:function(){return String(this).replace(/\s+/g,&quot; &quot;).trim();},camelCase:function(){return String(this).replace(/-\D/g,function(a){return a.charAt(1).toUpperCase();
++});},hyphenate:function(){return String(this).replace(/[A-Z]/g,function(a){return(&quot;-&quot;+a.charAt(0).toLowerCase());});},capitalize:function(){return String(this).replace(/\b[a-z]/g,function(a){return a.toUpperCase();
++});},escapeRegExp:function(){return String(this).replace(/([-.*+?^${}()|[\]\/\\])/g,&quot;\\$1&quot;);},toInt:function(a){return parseInt(this,a||10);},toFloat:function(){return parseFloat(this);
++},hexToRgb:function(b){var a=String(this).match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(a)?a.slice(1).hexToRgb(b):null;},rgbToHex:function(b){var a=String(this).match(/\d{1,3}/g);
++return(a)?a.rgbToHex(b):null;},substitute:function(a,b){return String(this).replace(b||(/\\?\{([^{}]+)\}/g),function(d,c){if(d.charAt(0)==&quot;\\&quot;){return d.slice(1);
++}return(a[c]!=null)?a[c]:&quot;&quot;;});}});Number.implement({limit:function(b,a){return Math.min(a,Math.max(b,this));},round:function(a){a=Math.pow(10,a||0).toFixed(a&lt;0?-a:0);
++return Math.round(this*a)/a;},times:function(b,c){for(var a=0;a&lt;this;a++){b.call(c,a,this);}},toFloat:function(){return parseFloat(this);},toInt:function(a){return parseInt(this,a||10);
++}});Number.alias(&quot;each&quot;,&quot;times&quot;);(function(b){var a={};b.each(function(c){if(!Number[c]){a[c]=function(){return Math[c].apply(null,[this].concat(Array.from(arguments)));
++};}});Number.implement(a);})([&quot;abs&quot;,&quot;acos&quot;,&quot;asin&quot;,&quot;atan&quot;,&quot;atan2&quot;,&quot;ceil&quot;,&quot;cos&quot;,&quot;exp&quot;,&quot;floor&quot;,&quot;log&quot;,&quot;max&quot;,&quot;min&quot;,&quot;pow&quot;,&quot;sin&quot;,&quot;sqrt&quot;,&quot;tan&quot;]);Function.extend({attempt:function(){for(var b=0,a=arguments.length;
++b&lt;a;b++){try{return arguments[b]();}catch(c){}}return null;}});Function.implement({attempt:function(a,c){try{return this.apply(c,Array.from(a));}catch(b){}return null;
++},bind:function(e){var a=this,b=arguments.length&gt;1?Array.slice(arguments,1):null,d=function(){};var c=function(){var g=e,h=arguments.length;if(this instanceof c){d.prototype=a.prototype;
++g=new d;}var f=(!b&amp;&amp;!h)?a.call(g):a.apply(g,b&amp;&amp;h?b.concat(Array.slice(arguments)):b||arguments);return g==e?f:g;};return c;},pass:function(b,c){var a=this;
++if(b!=null){b=Array.from(b);}return function(){return a.apply(c,b||arguments);};},delay:function(b,c,a){return setTimeout(this.pass((a==null?[]:a),c),b);
++},periodical:function(c,b,a){return setInterval(this.pass((a==null?[]:a),b),c);}});delete Function.prototype.bind;Function.implement({create:function(b){var a=this;
++b=b||{};return function(d){var c=b.arguments;c=(c!=null)?Array.from(c):Array.slice(arguments,(b.event)?1:0);if(b.event){c=[d||window.event].extend(c);}var e=function(){return a.apply(b.bind||null,c);
++};if(b.delay){return setTimeout(e,b.delay);}if(b.periodical){return setInterval(e,b.periodical);}if(b.attempt){return Function.attempt(e);}return e();};
++},bind:function(c,b){var a=this;if(b!=null){b=Array.from(b);}return function(){return a.apply(c,b||arguments);};},bindWithEvent:function(c,b){var a=this;
++if(b!=null){b=Array.from(b);}return function(d){return a.apply(c,(b==null)?arguments:[d].concat(b));};},run:function(a,b){return this.apply(b,Array.from(a));
++}});if(Object.create==Function.prototype.create){Object.create=null;}var $try=Function.attempt;(function(){var a=Object.prototype.hasOwnProperty;Object.extend({subset:function(d,g){var f={};
++for(var e=0,b=g.length;e&lt;b;e++){var c=g[e];if(c in d){f[c]=d[c];}}return f;},map:function(b,e,f){var d={};for(var c in b){if(a.call(b,c)){d[c]=e.call(f,b[c],c,b);
++}}return d;},filter:function(b,e,g){var d={};for(var c in b){var f=b[c];if(a.call(b,c)&amp;&amp;e.call(g,f,c,b)){d[c]=f;}}return d;},every:function(b,d,e){for(var c in b){if(a.call(b,c)&amp;&amp;!d.call(e,b[c],c)){return false;
++}}return true;},some:function(b,d,e){for(var c in b){if(a.call(b,c)&amp;&amp;d.call(e,b[c],c)){return true;}}return false;},keys:function(b){var d=[];for(var c in b){if(a.call(b,c)){d.push(c);
++}}return d;},values:function(c){var b=[];for(var d in c){if(a.call(c,d)){b.push(c[d]);}}return b;},getLength:function(b){return Object.keys(b).length;},keyOf:function(b,d){for(var c in b){if(a.call(b,c)&amp;&amp;b[c]===d){return c;
++}}return null;},contains:function(b,c){return Object.keyOf(b,c)!=null;},toQueryString:function(b,c){var d=[];Object.each(b,function(h,g){if(c){g=c+&quot;[&quot;+g+&quot;]&quot;;
++}var f;switch(typeOf(h)){case&quot;object&quot;:f=Object.toQueryString(h,g);break;case&quot;array&quot;:var e={};h.each(function(k,j){e[j]=k;});f=Object.toQueryString(e,g);
++break;default:f=g+&quot;=&quot;+encodeURIComponent(h);}if(h!=null){d.push(f);}});return d.join(&quot;&amp;&quot;);}});})();Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(a){return Object.keyOf(this,a);
++},hasValue:function(a){return Object.contains(this,a);},extend:function(a){Hash.each(a||{},function(c,b){Hash.set(this,b,c);},this);return this;},combine:function(a){Hash.each(a||{},function(c,b){Hash.include(this,b,c);
++},this);return this;},erase:function(a){if(this.hasOwnProperty(a)){delete this[a];}return this;},get:function(a){return(this.hasOwnProperty(a))?this[a]:null;
++},set:function(a,b){if(!this[a]||this.hasOwnProperty(a)){this[a]=b;}return this;},empty:function(){Hash.each(this,function(b,a){delete this[a];},this);
++return this;},include:function(a,b){if(this[a]==null){this[a]=b;}return this;},map:function(a,b){return new Hash(Object.map(this,a,b));},filter:function(a,b){return new Hash(Object.filter(this,a,b));
++},every:function(a,b){return Object.every(this,a,b);},some:function(a,b){return Object.some(this,a,b);},getKeys:function(){return Object.keys(this);},getValues:function(){return Object.values(this);
++},toQueryString:function(a){return Object.toQueryString(this,a);}});Hash.extend=Object.append;Hash.alias({indexOf:&quot;keyOf&quot;,contains:&quot;hasValue&quot;});(function(){var l=this.document;
++var j=l.window=this;var b=1;this.$uid=(j.ActiveXObject)?function(e){return(e.uid||(e.uid=[b++]))[0];}:function(e){return e.uid||(e.uid=b++);};$uid(j);$uid(l);
++var a=navigator.userAgent.toLowerCase(),c=navigator.platform.toLowerCase(),k=a.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/)||[null,&quot;unknown&quot;,0],g=k[1]==&quot;ie&quot;&amp;&amp;l.documentMode;
++var p=this.Browser={extend:Function.prototype.extend,name:(k[1]==&quot;version&quot;)?k[3]:k[1],version:g||parseFloat((k[1]==&quot;opera&quot;&amp;&amp;k[4])?k[4]:k[2]),Platform:{name:a.match(/ip(?:ad|od|hone)/)?&quot;ios&quot;:(a.match(/(?:webos|android)/)||c.match(/mac|win|linux/)||[&quot;other&quot;])[0]},Features:{xpath:!!(l.evaluate),air:!!(j.runtime),query:!!(l.querySelector),json:!!(j.JSON)},Plugins:{}};
++p[p.name]=true;p[p.name+parseInt(p.version,10)]=true;p.Platform[p.Platform.name]=true;p.Request=(function(){var r=function(){return new XMLHttpRequest();
++};var q=function(){return new ActiveXObject(&quot;MSXML2.XMLHTTP&quot;);};var e=function(){return new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);};return Function.attempt(function(){r();
++return r;},function(){q();return q;},function(){e();return e;});})();p.Features.xhr=!!(p.Request);var i=(Function.attempt(function(){return navigator.plugins[&quot;Shockwave Flash&quot;].description;
++},function(){return new ActiveXObject(&quot;ShockwaveFlash.ShockwaveFlash&quot;).GetVariable(&quot;$version&quot;);})||&quot;0 r0&quot;).match(/\d+/g);p.Plugins.Flash={version:Number(i[0]||&quot;0.&quot;+i[1])||0,build:Number(i[2])||0};
++p.exec=function(q){if(!q){return q;}if(j.execScript){j.execScript(q);}else{var e=l.createElement(&quot;script&quot;);e.setAttribute(&quot;type&quot;,&quot;text/javascript&quot;);e.text=q;
++l.head.appendChild(e);l.head.removeChild(e);}return q;};String.implement(&quot;stripScripts&quot;,function(q){var e=&quot;&quot;;var r=this.replace(/&lt;script[^&gt;]*&gt;([\s\S]*?)&lt;\/script&gt;/gi,function(s,t){e+=t+&quot;\n&quot;;
++return&quot;&quot;;});if(q===true){p.exec(e);}else{if(typeOf(q)==&quot;function&quot;){q(e,r);}}return r;});p.extend({Document:this.Document,Window:this.Window,Element:this.Element,Event:this.Event});
++this.Window=this.$constructor=new Type(&quot;Window&quot;,function(){});this.$family=Function.from(&quot;window&quot;).hide();Window.mirror(function(e,q){j[e]=q;});this.Document=l.$constructor=new Type(&quot;Document&quot;,function(){});
++l.$family=Function.from(&quot;document&quot;).hide();Document.mirror(function(e,q){l[e]=q;});l.html=l.documentElement;if(!l.head){l.head=l.getElementsByTagName(&quot;head&quot;)[0];
++}if(l.execCommand){try{l.execCommand(&quot;BackgroundImageCache&quot;,false,true);}catch(h){}}if(this.attachEvent&amp;&amp;!this.addEventListener){var d=function(){this.detachEvent(&quot;onunload&quot;,d);
++l.head=l.html=l.window=null;};this.attachEvent(&quot;onunload&quot;,d);}var n=Array.from;try{n(l.html.childNodes);}catch(h){Array.from=function(q){if(typeof q!=&quot;string&quot;&amp;&amp;Type.isEnumerable(q)&amp;&amp;typeOf(q)!=&quot;array&quot;){var e=q.length,r=new Array(e);
++while(e--){r[e]=q[e];}return r;}return n(q);};var m=Array.prototype,o=m.slice;[&quot;pop&quot;,&quot;push&quot;,&quot;reverse&quot;,&quot;shift&quot;,&quot;sort&quot;,&quot;splice&quot;,&quot;unshift&quot;,&quot;concat&quot;,&quot;join&quot;,&quot;slice&quot;].each(function(e){var q=m[e];
++Array[e]=function(r){return q.apply(Array.from(r),o.call(arguments,1));};});}if(p.Platform.ios){p.Platform.ipod=true;}p.Engine={};var f=function(q,e){p.Engine.name=q;
++p.Engine[q+e]=true;p.Engine.version=e;};if(p.ie){p.Engine.trident=true;switch(p.version){case 6:f(&quot;trident&quot;,4);break;case 7:f(&quot;trident&quot;,5);break;case 8:f(&quot;trident&quot;,6);
++}}if(p.firefox){p.Engine.gecko=true;if(p.version&gt;=3){f(&quot;gecko&quot;,19);}else{f(&quot;gecko&quot;,18);}}if(p.safari||p.chrome){p.Engine.webkit=true;switch(p.version){case 2:f(&quot;webkit&quot;,419);
++break;case 3:f(&quot;webkit&quot;,420);break;case 4:f(&quot;webkit&quot;,525);}}if(p.opera){p.Engine.presto=true;if(p.version&gt;=9.6){f(&quot;presto&quot;,960);}else{if(p.version&gt;=9.5){f(&quot;presto&quot;,950);
++}else{f(&quot;presto&quot;,925);}}}if(p.name==&quot;unknown&quot;){switch((a.match(/(?:webkit|khtml|gecko)/)||[])[0]){case&quot;webkit&quot;:case&quot;khtml&quot;:p.Engine.webkit=true;break;case&quot;gecko&quot;:p.Engine.gecko=true;
++}}this.$exec=p.exec;})();(function(){var b={};var a=this.DOMEvent=new Type(&quot;DOMEvent&quot;,function(c,g){if(!g){g=window;}c=c||g.event;if(c.$extended){return c;
++}this.event=c;this.$extended=true;this.shift=c.shiftKey;this.control=c.ctrlKey;this.alt=c.altKey;this.meta=c.metaKey;var i=this.type=c.type;var h=c.target||c.srcElement;
++while(h&amp;&amp;h.nodeType==3){h=h.parentNode;}this.target=document.id(h);if(i.indexOf(&quot;key&quot;)==0){var d=this.code=(c.which||c.keyCode);this.key=b[d]||Object.keyOf(Event.Keys,d);
++if(i==&quot;keydown&quot;){if(d&gt;111&amp;&amp;d&lt;124){this.key=&quot;f&quot;+(d-111);}else{if(d&gt;95&amp;&amp;d&lt;106){this.key=d-96;}}}if(this.key==null){this.key=String.fromCharCode(d).toLowerCase();
++}}else{if(i==&quot;click&quot;||i==&quot;dblclick&quot;||i==&quot;contextmenu&quot;||i==&quot;DOMMouseScroll&quot;||i.indexOf(&quot;mouse&quot;)==0){var j=g.document;j=(!j.compatMode||j.compatMode==&quot;CSS1Compat&quot;)?j.html:j.body;
++this.page={x:(c.pageX!=null)?c.pageX:c.clientX+j.scrollLeft,y:(c.pageY!=null)?c.pageY:c.clientY+j.scrollTop};this.client={x:(c.pageX!=null)?c.pageX-g.pageXOffset:c.clientX,y:(c.pageY!=null)?c.pageY-g.pageYOffset:c.clientY};
++if(i==&quot;DOMMouseScroll&quot;||i==&quot;mousewheel&quot;){this.wheel=(c.wheelDelta)?c.wheelDelta/120:-(c.detail||0)/3;}this.rightClick=(c.which==3||c.button==2);if(i==&quot;mouseover&quot;||i==&quot;mouseout&quot;){var k=c.relatedTarget||c[(i==&quot;mouseover&quot;?&quot;from&quot;:&quot;to&quot;)+&quot;Element&quot;];
++while(k&amp;&amp;k.nodeType==3){k=k.parentNode;}this.relatedTarget=document.id(k);}}else{if(i.indexOf(&quot;touch&quot;)==0||i.indexOf(&quot;gesture&quot;)==0){this.rotation=c.rotation;
++this.scale=c.scale;this.targetTouches=c.targetTouches;this.changedTouches=c.changedTouches;var f=this.touches=c.touches;if(f&amp;&amp;f[0]){var e=f[0];this.page={x:e.pageX,y:e.pageY};
++this.client={x:e.clientX,y:e.clientY};}}}}if(!this.client){this.client={};}if(!this.page){this.page={};}});a.implement({stop:function(){return this.preventDefault().stopPropagation();
++},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault();
++}else{this.event.returnValue=false;}return this;}});a.defineKey=function(d,c){b[d]=c;return this;};a.defineKeys=a.defineKey.overloadSetter(true);a.defineKeys({&quot;38&quot;:&quot;up&quot;,&quot;40&quot;:&quot;down&quot;,&quot;37&quot;:&quot;left&quot;,&quot;39&quot;:&quot;right&quot;,&quot;27&quot;:&quot;esc&quot;,&quot;32&quot;:&quot;space&quot;,&quot;8&quot;:&quot;backspace&quot;,&quot;9&quot;:&quot;tab&quot;,&quot;46&quot;:&quot;delete&quot;,&quot;13&quot;:&quot;enter&quot;});
++})();var Event=DOMEvent;Event.Keys={};Event.Keys=new Hash(Event.Keys);(function(){var a=this.Class=new Type(&quot;Class&quot;,function(h){if(instanceOf(h,Function)){h={initialize:h};
++}var g=function(){e(this);if(g.$prototyping){return this;}this.$caller=null;var i=(this.initialize)?this.initialize.apply(this,arguments):this;this.$caller=this.caller=null;
++return i;}.extend(this).implement(h);g.$constructor=a;g.prototype.$constructor=g;g.prototype.parent=c;return g;});var c=function(){if(!this.$caller){throw new Error('The method &quot;parent&quot; cannot be called.');
++}var g=this.$caller.$name,h=this.$caller.$owner.parent,i=(h)?h.prototype[g]:null;if(!i){throw new Error('The method &quot;'+g+'&quot; has no parent.');}return i.apply(this,arguments);
++};var e=function(g){for(var h in g){var j=g[h];switch(typeOf(j)){case&quot;object&quot;:var i=function(){};i.prototype=j;g[h]=e(new i);break;case&quot;array&quot;:g[h]=j.clone();
++break;}}return g;};var b=function(g,h,j){if(j.$origin){j=j.$origin;}var i=function(){if(j.$protected&amp;&amp;this.$caller==null){throw new Error('The method &quot;'+h+'&quot; cannot be called.');
++}var l=this.caller,m=this.$caller;this.caller=m;this.$caller=i;var k=j.apply(this,arguments);this.$caller=m;this.caller=l;return k;}.extend({$owner:g,$origin:j,$name:h});
++return i;};var f=function(h,i,g){if(a.Mutators.hasOwnProperty(h)){i=a.Mutators[h].call(this,i);if(i==null){return this;}}if(typeOf(i)==&quot;function&quot;){if(i.$hidden){return this;
++}this.prototype[h]=(g)?i:b(this,h,i);}else{Object.merge(this.prototype,h,i);}return this;};var d=function(g){g.$prototyping=true;var h=new g;delete g.$prototyping;
++return h;};a.implement(&quot;implement&quot;,f.overloadSetter());a.Mutators={Extends:function(g){this.parent=g;this.prototype=d(g);},Implements:function(g){Array.from(g).each(function(j){var h=new j;
++for(var i in h){f.call(this,i,h[i],true);}},this);}};})();(function(){this.Chain=new Class({$chain:[],chain:function(){this.$chain.append(Array.flatten(arguments));
++return this;},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false;},clearChain:function(){this.$chain.empty();
++return this;}});var a=function(b){return b.replace(/^on([A-Z])/,function(c,d){return d.toLowerCase();});};this.Events=new Class({$events:{},addEvent:function(d,c,b){d=a(d);
++if(c==$empty){return this;}this.$events[d]=(this.$events[d]||[]).include(c);if(b){c.internal=true;}return this;},addEvents:function(b){for(var c in b){this.addEvent(c,b[c]);
++}return this;},fireEvent:function(e,c,b){e=a(e);var d=this.$events[e];if(!d){return this;}c=Array.from(c);d.each(function(f){if(b){f.delay(b,this,c);}else{f.apply(this,c);
++}},this);return this;},removeEvent:function(e,d){e=a(e);var c=this.$events[e];if(c&amp;&amp;!d.internal){var b=c.indexOf(d);if(b!=-1){delete c[b];}}return this;
++},removeEvents:function(d){var e;if(typeOf(d)==&quot;object&quot;){for(e in d){this.removeEvent(e,d[e]);}return this;}if(d){d=a(d);}for(e in this.$events){if(d&amp;&amp;d!=e){continue;
++}var c=this.$events[e];for(var b=c.length;b--;){if(b in c){this.removeEvent(e,c[b]);}}}return this;}});this.Options=new Class({setOptions:function(){var b=this.options=Object.merge.apply(null,[{},this.options].append(arguments));
++if(this.addEvent){for(var c in b){if(typeOf(b[c])!=&quot;function&quot;||!(/^on[A-Z]/).test(c)){continue;}this.addEvent(c,b[c]);delete b[c];}}return this;}});})();
++(function(){var k,n,l,g,a={},c={},m=/\\/g;var e=function(q,p){if(q==null){return null;}if(q.Slick===true){return q;}q=(&quot;&quot;+q).replace(/^\s+|\s+$/g,&quot;&quot;);g=!!p;
++var o=(g)?c:a;if(o[q]){return o[q];}k={Slick:true,expressions:[],raw:q,reverse:function(){return e(this.raw,true);}};n=-1;while(q!=(q=q.replace(j,b))){}k.length=k.expressions.length;
++return o[k.raw]=(g)?h(k):k;};var i=function(o){if(o===&quot;!&quot;){return&quot; &quot;;}else{if(o===&quot; &quot;){return&quot;!&quot;;}else{if((/^!/).test(o)){return o.replace(/^!/,&quot;&quot;);}else{return&quot;!&quot;+o;
++}}}};var h=function(u){var r=u.expressions;for(var p=0;p&lt;r.length;p++){var t=r[p];var q={parts:[],tag:&quot;*&quot;,combinator:i(t[0].combinator)};for(var o=0;o&lt;t.length;
++o++){var s=t[o];if(!s.reverseCombinator){s.reverseCombinator=&quot; &quot;;}s.combinator=s.reverseCombinator;delete s.reverseCombinator;}t.reverse().push(q);}return u;
++};var f=function(o){return o.replace(/[-[\]{}()*+?.\\^$|,#\s]/g,function(p){return&quot;\\&quot;+p;});};var j=new RegExp(&quot;^(?:\\s*(,)\\s*|\\s*(&lt;combinator&gt;+)\\s*|(\\s+)|(&lt;unicode&gt;+|\\*)|\\#(&lt;unicode&gt;+)|\\.(&lt;unicode&gt;+)|\\[\\s*(&lt;unicode1&gt;+)(?:\\s*([*^$!~|]?=)(?:\\s*(?:([\&quot;']?)(.*?)\\9)))?\\s*\\](?!\\])|(:+)(&lt;unicode&gt;+)(?:\\((?:(?:([\&quot;'])([^\\13]*)\\13)|((?:\\([^)]+\\)|[^()]*)+))\\))?)&quot;.replace(/&lt;combinator&gt;/,&quot;[&quot;+f(&quot;&gt;+~`!@$%^&amp;={}\\;&lt;/&quot;)+&quot;]&quot;).replace(/&lt;unicode&gt;/g,&quot;(?:[\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])&quot;).replace(/&lt;unicode1&gt;/g,&quot;(?:[:\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])&quot;));
++function b(x,s,D,z,r,C,q,B,A,y,u,F,G,v,p,w){if(s||n===-1){k.expressions[++n]=[];l=-1;if(s){return&quot;&quot;;}}if(D||z||l===-1){D=D||&quot; &quot;;var t=k.expressions[n];
++if(g&amp;&amp;t[l]){t[l].reverseCombinator=i(D);}t[++l]={combinator:D,tag:&quot;*&quot;};}var o=k.expressions[n][l];if(r){o.tag=r.replace(m,&quot;&quot;);}else{if(C){o.id=C.replace(m,&quot;&quot;);
++}else{if(q){q=q.replace(m,&quot;&quot;);if(!o.classList){o.classList=[];}if(!o.classes){o.classes=[];}o.classList.push(q);o.classes.push({value:q,regexp:new RegExp(&quot;(^|\\s)&quot;+f(q)+&quot;(\\s|$)&quot;)});
++}else{if(G){w=w||p;w=w?w.replace(m,&quot;&quot;):null;if(!o.pseudos){o.pseudos=[];}o.pseudos.push({key:G.replace(m,&quot;&quot;),value:w,type:F.length==1?&quot;class&quot;:&quot;element&quot;});
++}else{if(B){B=B.replace(m,&quot;&quot;);u=(u||&quot;&quot;).replace(m,&quot;&quot;);var E,H;switch(A){case&quot;^=&quot;:H=new RegExp(&quot;^&quot;+f(u));break;case&quot;$=&quot;:H=new RegExp(f(u)+&quot;$&quot;);break;case&quot;~=&quot;:H=new RegExp(&quot;(^|\\s)&quot;+f(u)+&quot;(\\s|$)&quot;);
++break;case&quot;|=&quot;:H=new RegExp(&quot;^&quot;+f(u)+&quot;(-|$)&quot;);break;case&quot;=&quot;:E=function(I){return u==I;};break;case&quot;*=&quot;:E=function(I){return I&amp;&amp;I.indexOf(u)&gt;-1;};break;
++case&quot;!=&quot;:E=function(I){return u!=I;};break;default:E=function(I){return !!I;};}if(u==&quot;&quot;&amp;&amp;(/^[*$^]=$/).test(A)){E=function(){return false;};}if(!E){E=function(I){return I&amp;&amp;H.test(I);
++};}if(!o.attributes){o.attributes=[];}o.attributes.push({key:B,operator:A,value:u,test:E});}}}}}return&quot;&quot;;}var d=(this.Slick||{});d.parse=function(o){return e(o);
++};d.escapeRegExp=f;if(!this.Slick){this.Slick=d;}}).apply((typeof exports!=&quot;undefined&quot;)?exports:this);(function(){var k={},m={},d=Object.prototype.toString;
++k.isNativeCode=function(c){return(/\{\s*\[native code\]\s*\}/).test(&quot;&quot;+c);};k.isXML=function(c){return(!!c.xmlVersion)||(!!c.xml)||(d.call(c)==&quot;[object XMLDocument]&quot;)||(c.nodeType==9&amp;&amp;c.documentElement.nodeName!=&quot;HTML&quot;);
++};k.setDocument=function(x){var u=x.nodeType;if(u==9){}else{if(u){x=x.ownerDocument;}else{if(x.navigator){x=x.document;}else{return;}}}if(this.document===x){return;
++}this.document=x;var z=x.documentElement,v=this.getUIDXML(z),p=m[v],B;if(p){for(B in p){this[B]=p[B];}return;}p=m[v]={};p.root=z;p.isXMLDocument=this.isXML(x);
++p.brokenStarGEBTN=p.starSelectsClosedQSA=p.idGetsName=p.brokenMixedCaseQSA=p.brokenGEBCN=p.brokenCheckedQSA=p.brokenEmptyAttributeQSA=p.isHTMLDocument=p.nativeMatchesSelector=false;
++var n,o,y,r,s;var t,c=&quot;slick_uniqueid&quot;;var A=x.createElement(&quot;div&quot;);var q=x.body||x.getElementsByTagName(&quot;body&quot;)[0]||z;q.appendChild(A);try{A.innerHTML='&lt;a id=&quot;'+c+'&quot;&gt;&lt;/a&gt;';
++p.isHTMLDocument=!!x.getElementById(c);}catch(w){}if(p.isHTMLDocument){A.style.display=&quot;none&quot;;A.appendChild(x.createComment(&quot;&quot;));o=(A.getElementsByTagName(&quot;*&quot;).length&gt;1);
++try{A.innerHTML=&quot;foo&lt;/foo&gt;&quot;;t=A.getElementsByTagName(&quot;*&quot;);n=(t&amp;&amp;!!t.length&amp;&amp;t[0].nodeName.charAt(0)==&quot;/&quot;);}catch(w){}p.brokenStarGEBTN=o||n;try{A.innerHTML='&lt;a name=&quot;'+c+'&quot;&gt;&lt;/a&gt;&lt;b id=&quot;'+c+'&quot;&gt;&lt;/b&gt;';
++p.idGetsName=x.getElementById(c)===A.firstChild;}catch(w){}if(A.getElementsByClassName){try{A.innerHTML='&lt;a class=&quot;f&quot;&gt;&lt;/a&gt;&lt;a class=&quot;b&quot;&gt;&lt;/a&gt;';A.getElementsByClassName(&quot;b&quot;).length;
++A.firstChild.className=&quot;b&quot;;r=(A.getElementsByClassName(&quot;b&quot;).length!=2);}catch(w){}try{A.innerHTML='&lt;a class=&quot;a&quot;&gt;&lt;/a&gt;&lt;a class=&quot;f b a&quot;&gt;&lt;/a&gt;';y=(A.getElementsByClassName(&quot;a&quot;).length!=2);
++}catch(w){}p.brokenGEBCN=r||y;}if(A.querySelectorAll){try{A.innerHTML=&quot;foo&lt;/foo&gt;&quot;;t=A.querySelectorAll(&quot;*&quot;);p.starSelectsClosedQSA=(t&amp;&amp;!!t.length&amp;&amp;t[0].nodeName.charAt(0)==&quot;/&quot;);
++}catch(w){}try{A.innerHTML='&lt;a class=&quot;MiX&quot;&gt;&lt;/a&gt;';p.brokenMixedCaseQSA=!A.querySelectorAll(&quot;.MiX&quot;).length;}catch(w){}try{A.innerHTML='&lt;select&gt;&lt;option selected=&quot;selected&quot;&gt;a&lt;/option&gt;&lt;/select&gt;';
++p.brokenCheckedQSA=(A.querySelectorAll(&quot;:checked&quot;).length==0);}catch(w){}try{A.innerHTML='&lt;a class=&quot;&quot;&gt;&lt;/a&gt;';p.brokenEmptyAttributeQSA=(A.querySelectorAll('[class*=&quot;&quot;]').length!=0);
++}catch(w){}}try{A.innerHTML='&lt;form action=&quot;s&quot;&gt;&lt;input id=&quot;action&quot;/&gt;&lt;/form&gt;';s=(A.firstChild.getAttribute(&quot;action&quot;)!=&quot;s&quot;);}catch(w){}p.nativeMatchesSelector=z.matchesSelector||z.mozMatchesSelector||z.webkitMatchesSelector;
++if(p.nativeMatchesSelector){try{p.nativeMatchesSelector.call(z,&quot;:slick&quot;);p.nativeMatchesSelector=null;}catch(w){}}}try{z.slick_expando=1;delete z.slick_expando;
++p.getUID=this.getUIDHTML;}catch(w){p.getUID=this.getUIDXML;}q.removeChild(A);A=t=q=null;p.getAttribute=(p.isHTMLDocument&amp;&amp;s)?function(E,C){var F=this.attributeGetters[C];
++if(F){return F.call(E);}var D=E.getAttributeNode(C);return(D)?D.nodeValue:null;}:function(D,C){var E=this.attributeGetters[C];return(E)?E.call(D):D.getAttribute(C);
++};p.hasAttribute=(z&amp;&amp;this.isNativeCode(z.hasAttribute))?function(D,C){return D.hasAttribute(C);}:function(D,C){D=D.getAttributeNode(C);return !!(D&amp;&amp;(D.specified||D.nodeValue));
++};p.contains=(z&amp;&amp;this.isNativeCode(z.contains))?function(C,D){return C.contains(D);}:(z&amp;&amp;z.compareDocumentPosition)?function(C,D){return C===D||!!(C.compareDocumentPosition(D)&amp;16);
++}:function(C,D){if(D){do{if(D===C){return true;}}while((D=D.parentNode));}return false;};p.documentSorter=(z.compareDocumentPosition)?function(D,C){if(!D.compareDocumentPosition||!C.compareDocumentPosition){return 0;
++}return D.compareDocumentPosition(C)&amp;4?-1:D===C?0:1;}:(&quot;sourceIndex&quot; in z)?function(D,C){if(!D.sourceIndex||!C.sourceIndex){return 0;}return D.sourceIndex-C.sourceIndex;
++}:(x.createRange)?function(F,D){if(!F.ownerDocument||!D.ownerDocument){return 0;}var E=F.ownerDocument.createRange(),C=D.ownerDocument.createRange();E.setStart(F,0);
++E.setEnd(F,0);C.setStart(D,0);C.setEnd(D,0);return E.compareBoundaryPoints(Range.START_TO_END,C);}:null;z=null;for(B in p){this[B]=p[B];}};var f=/^([#.]?)((?:[\w-]+|\*))$/,h=/\[.+[*$^]=(?:&quot;&quot;|'')?\]/,g={};
++k.search=function(U,z,H,s){var p=this.found=(s)?null:(H||[]);if(!U){return p;}else{if(U.navigator){U=U.document;}else{if(!U.nodeType){return p;}}}var F,O,V=this.uniques={},I=!!(H&amp;&amp;H.length),y=(U.nodeType==9);
++if(this.document!==(y?U:U.ownerDocument)){this.setDocument(U);}if(I){for(O=p.length;O--;){V[this.getUID(p[O])]=true;}}if(typeof z==&quot;string&quot;){var r=z.match(f);
++simpleSelectors:if(r){var u=r[1],v=r[2],A,E;if(!u){if(v==&quot;*&quot;&amp;&amp;this.brokenStarGEBTN){break simpleSelectors;}E=U.getElementsByTagName(v);if(s){return E[0]||null;
++}for(O=0;A=E[O++];){if(!(I&amp;&amp;V[this.getUID(A)])){p.push(A);}}}else{if(u==&quot;#&quot;){if(!this.isHTMLDocument||!y){break simpleSelectors;}A=U.getElementById(v);
++if(!A){return p;}if(this.idGetsName&amp;&amp;A.getAttributeNode(&quot;id&quot;).nodeValue!=v){break simpleSelectors;}if(s){return A||null;}if(!(I&amp;&amp;V[this.getUID(A)])){p.push(A);
++}}else{if(u==&quot;.&quot;){if(!this.isHTMLDocument||((!U.getElementsByClassName||this.brokenGEBCN)&amp;&amp;U.querySelectorAll)){break simpleSelectors;}if(U.getElementsByClassName&amp;&amp;!this.brokenGEBCN){E=U.getElementsByClassName(v);
++if(s){return E[0]||null;}for(O=0;A=E[O++];){if(!(I&amp;&amp;V[this.getUID(A)])){p.push(A);}}}else{var T=new RegExp(&quot;(^|\\s)&quot;+e.escapeRegExp(v)+&quot;(\\s|$)&quot;);E=U.getElementsByTagName(&quot;*&quot;);
++for(O=0;A=E[O++];){className=A.className;if(!(className&amp;&amp;T.test(className))){continue;}if(s){return A;}if(!(I&amp;&amp;V[this.getUID(A)])){p.push(A);}}}}}}if(I){this.sort(p);
++}return(s)?null:p;}querySelector:if(U.querySelectorAll){if(!this.isHTMLDocument||g[z]||this.brokenMixedCaseQSA||(this.brokenCheckedQSA&amp;&amp;z.indexOf(&quot;:checked&quot;)&gt;-1)||(this.brokenEmptyAttributeQSA&amp;&amp;h.test(z))||(!y&amp;&amp;z.indexOf(&quot;,&quot;)&gt;-1)||e.disableQSA){break querySelector;
++}var S=z,x=U;if(!y){var C=x.getAttribute(&quot;id&quot;),t=&quot;slickid__&quot;;x.setAttribute(&quot;id&quot;,t);S=&quot;#&quot;+t+&quot; &quot;+S;U=x.parentNode;}try{if(s){return U.querySelector(S)||null;
++}else{E=U.querySelectorAll(S);}}catch(Q){g[z]=1;break querySelector;}finally{if(!y){if(C){x.setAttribute(&quot;id&quot;,C);}else{x.removeAttribute(&quot;id&quot;);}U=x;}}if(this.starSelectsClosedQSA){for(O=0;
++A=E[O++];){if(A.nodeName&gt;&quot;@&quot;&amp;&amp;!(I&amp;&amp;V[this.getUID(A)])){p.push(A);}}}else{for(O=0;A=E[O++];){if(!(I&amp;&amp;V[this.getUID(A)])){p.push(A);}}}if(I){this.sort(p);
++}return p;}F=this.Slick.parse(z);if(!F.length){return p;}}else{if(z==null){return p;}else{if(z.Slick){F=z;}else{if(this.contains(U.documentElement||U,z)){(p)?p.push(z):p=z;
++return p;}else{return p;}}}}this.posNTH={};this.posNTHLast={};this.posNTHType={};this.posNTHTypeLast={};this.push=(!I&amp;&amp;(s||(F.length==1&amp;&amp;F.expressions[0].length==1)))?this.pushArray:this.pushUID;
++if(p==null){p=[];}var M,L,K;var B,J,D,c,q,G,W;var N,P,o,w,R=F.expressions;search:for(O=0;(P=R[O]);O++){for(M=0;(o=P[M]);M++){B=&quot;combinator:&quot;+o.combinator;
++if(!this[B]){continue search;}J=(this.isXMLDocument)?o.tag:o.tag.toUpperCase();D=o.id;c=o.classList;q=o.classes;G=o.attributes;W=o.pseudos;w=(M===(P.length-1));
++this.bitUniques={};if(w){this.uniques=V;this.found=p;}else{this.uniques={};this.found=[];}if(M===0){this[B](U,J,D,q,G,W,c);if(s&amp;&amp;w&amp;&amp;p.length){break search;
++}}else{if(s&amp;&amp;w){for(L=0,K=N.length;L&lt;K;L++){this[B](N[L],J,D,q,G,W,c);if(p.length){break search;}}}else{for(L=0,K=N.length;L&lt;K;L++){this[B](N[L],J,D,q,G,W,c);
++}}}N=this.found;}}if(I||(F.expressions.length&gt;1)){this.sort(p);}return(s)?(p[0]||null):p;};k.uidx=1;k.uidk=&quot;slick-uniqueid&quot;;k.getUIDXML=function(n){var c=n.getAttribute(this.uidk);
++if(!c){c=this.uidx++;n.setAttribute(this.uidk,c);}return c;};k.getUIDHTML=function(c){return c.uniqueNumber||(c.uniqueNumber=this.uidx++);};k.sort=function(c){if(!this.documentSorter){return c;
++}c.sort(this.documentSorter);return c;};k.cacheNTH={};k.matchNTH=/^([+-]?\d*)?([a-z]+)?([+-]\d+)?$/;k.parseNTHArgument=function(q){var o=q.match(this.matchNTH);
++if(!o){return false;}var p=o[2]||false;var n=o[1]||1;if(n==&quot;-&quot;){n=-1;}var c=+o[3]||0;o=(p==&quot;n&quot;)?{a:n,b:c}:(p==&quot;odd&quot;)?{a:2,b:1}:(p==&quot;even&quot;)?{a:2,b:0}:{a:0,b:n};
++return(this.cacheNTH[q]=o);};k.createNTHPseudo=function(p,n,c,o){return function(s,q){var u=this.getUID(s);if(!this[c][u]){var A=s.parentNode;if(!A){return false;
++}var r=A[p],t=1;if(o){var z=s.nodeName;do{if(r.nodeName!=z){continue;}this[c][this.getUID(r)]=t++;}while((r=r[n]));}else{do{if(r.nodeType!=1){continue;
++}this[c][this.getUID(r)]=t++;}while((r=r[n]));}}q=q||&quot;n&quot;;var v=this.cacheNTH[q]||this.parseNTHArgument(q);if(!v){return false;}var y=v.a,x=v.b,w=this[c][u];
++if(y==0){return x==w;}if(y&gt;0){if(w&lt;x){return false;}}else{if(x&lt;w){return false;}}return((w-x)%y)==0;};};k.pushArray=function(p,c,r,o,n,q){if(this.matchSelector(p,c,r,o,n,q)){this.found.push(p);
++}};k.pushUID=function(q,c,s,p,n,r){var o=this.getUID(q);if(!this.uniques[o]&amp;&amp;this.matchSelector(q,c,s,p,n,r)){this.uniques[o]=true;this.found.push(q);}};
++k.matchNode=function(n,o){if(this.isHTMLDocument&amp;&amp;this.nativeMatchesSelector){try{return this.nativeMatchesSelector.call(n,o.replace(/\[([^=]+)=\s*([^'&quot;\]]+?)\s*\]/g,'[$1=&quot;$2&quot;]'));
++}catch(u){}}var t=this.Slick.parse(o);if(!t){return true;}var r=t.expressions,s=0,q;for(q=0;(currentExpression=r[q]);q++){if(currentExpression.length==1){var p=currentExpression[0];
++if(this.matchSelector(n,(this.isXMLDocument)?p.tag:p.tag.toUpperCase(),p.id,p.classes,p.attributes,p.pseudos)){return true;}s++;}}if(s==t.length){return false;
++}var c=this.search(this.document,t),v;for(q=0;v=c[q++];){if(v===n){return true;}}return false;};k.matchPseudo=function(q,c,p){var n=&quot;pseudo:&quot;+c;if(this[n]){return this[n](q,p);
++}var o=this.getAttribute(q,c);return(p)?p==o:!!o;};k.matchSelector=function(o,v,c,p,q,s){if(v){var t=(this.isXMLDocument)?o.nodeName:o.nodeName.toUpperCase();
++if(v==&quot;*&quot;){if(t&lt;&quot;@&quot;){return false;}}else{if(t!=v){return false;}}}if(c&amp;&amp;o.getAttribute(&quot;id&quot;)!=c){return false;}var r,n,u;if(p){for(r=p.length;r--;){u=o.getAttribute(&quot;class&quot;)||o.className;
++if(!(u&amp;&amp;p[r].regexp.test(u))){return false;}}}if(q){for(r=q.length;r--;){n=q[r];if(n.operator?!n.test(this.getAttribute(o,n.key)):!this.hasAttribute(o,n.key)){return false;
++}}}if(s){for(r=s.length;r--;){n=s[r];if(!this.matchPseudo(o,n.key,n.value)){return false;}}}return true;};var j={&quot; &quot;:function(q,w,n,r,s,u,p){var t,v,o;
++if(this.isHTMLDocument){getById:if(n){v=this.document.getElementById(n);if((!v&amp;&amp;q.all)||(this.idGetsName&amp;&amp;v&amp;&amp;v.getAttributeNode(&quot;id&quot;).nodeValue!=n)){o=q.all[n];
++if(!o){return;}if(!o[0]){o=[o];}for(t=0;v=o[t++];){var c=v.getAttributeNode(&quot;id&quot;);if(c&amp;&amp;c.nodeValue==n){this.push(v,w,null,r,s,u);break;}}return;}if(!v){if(this.contains(this.root,q)){return;
++}else{break getById;}}else{if(this.document!==q&amp;&amp;!this.contains(q,v)){return;}}this.push(v,w,null,r,s,u);return;}getByClass:if(r&amp;&amp;q.getElementsByClassName&amp;&amp;!this.brokenGEBCN){o=q.getElementsByClassName(p.join(&quot; &quot;));
++if(!(o&amp;&amp;o.length)){break getByClass;}for(t=0;v=o[t++];){this.push(v,w,n,null,s,u);}return;}}getByTag:{o=q.getElementsByTagName(w);if(!(o&amp;&amp;o.length)){break getByTag;
++}if(!this.brokenStarGEBTN){w=null;}for(t=0;v=o[t++];){this.push(v,w,n,r,s,u);}}},&quot;&gt;&quot;:function(p,c,r,o,n,q){if((p=p.firstChild)){do{if(p.nodeType==1){this.push(p,c,r,o,n,q);
++}}while((p=p.nextSibling));}},&quot;+&quot;:function(p,c,r,o,n,q){while((p=p.nextSibling)){if(p.nodeType==1){this.push(p,c,r,o,n,q);break;}}},&quot;^&quot;:function(p,c,r,o,n,q){p=p.firstChild;
++if(p){if(p.nodeType==1){this.push(p,c,r,o,n,q);}else{this[&quot;combinator:+&quot;](p,c,r,o,n,q);}}},&quot;~&quot;:function(q,c,s,p,n,r){while((q=q.nextSibling)){if(q.nodeType!=1){continue;
++}var o=this.getUID(q);if(this.bitUniques[o]){break;}this.bitUniques[o]=true;this.push(q,c,s,p,n,r);}},&quot;++&quot;:function(p,c,r,o,n,q){this[&quot;combinator:+&quot;](p,c,r,o,n,q);
++this[&quot;combinator:!+&quot;](p,c,r,o,n,q);},&quot;~~&quot;:function(p,c,r,o,n,q){this[&quot;combinator:~&quot;](p,c,r,o,n,q);this[&quot;combinator:!~&quot;](p,c,r,o,n,q);},&quot;!&quot;:function(p,c,r,o,n,q){while((p=p.parentNode)){if(p!==this.document){this.push(p,c,r,o,n,q);
++}}},&quot;!&gt;&quot;:function(p,c,r,o,n,q){p=p.parentNode;if(p!==this.document){this.push(p,c,r,o,n,q);}},&quot;!+&quot;:function(p,c,r,o,n,q){while((p=p.previousSibling)){if(p.nodeType==1){this.push(p,c,r,o,n,q);
++break;}}},&quot;!^&quot;:function(p,c,r,o,n,q){p=p.lastChild;if(p){if(p.nodeType==1){this.push(p,c,r,o,n,q);}else{this[&quot;combinator:!+&quot;](p,c,r,o,n,q);}}},&quot;!~&quot;:function(q,c,s,p,n,r){while((q=q.previousSibling)){if(q.nodeType!=1){continue;
++}var o=this.getUID(q);if(this.bitUniques[o]){break;}this.bitUniques[o]=true;this.push(q,c,s,p,n,r);}}};for(var i in j){k[&quot;combinator:&quot;+i]=j[i];}var l={empty:function(c){var n=c.firstChild;
++return !(n&amp;&amp;n.nodeType==1)&amp;&amp;!(c.innerText||c.textContent||&quot;&quot;).length;},not:function(c,n){return !this.matchNode(c,n);},contains:function(c,n){return(c.innerText||c.textContent||&quot;&quot;).indexOf(n)&gt;-1;
++},&quot;first-child&quot;:function(c){while((c=c.previousSibling)){if(c.nodeType==1){return false;}}return true;},&quot;last-child&quot;:function(c){while((c=c.nextSibling)){if(c.nodeType==1){return false;
++}}return true;},&quot;only-child&quot;:function(o){var n=o;while((n=n.previousSibling)){if(n.nodeType==1){return false;}}var c=o;while((c=c.nextSibling)){if(c.nodeType==1){return false;
++}}return true;},&quot;nth-child&quot;:k.createNTHPseudo(&quot;firstChild&quot;,&quot;nextSibling&quot;,&quot;posNTH&quot;),&quot;nth-last-child&quot;:k.createNTHPseudo(&quot;lastChild&quot;,&quot;previousSibling&quot;,&quot;posNTHLast&quot;),&quot;nth-of-type&quot;:k.createNTHPseudo(&quot;firstChild&quot;,&quot;nextSibling&quot;,&quot;posNTHType&quot;,true),&quot;nth-last-of-type&quot;:k.createNTHPseudo(&quot;lastChild&quot;,&quot;previousSibling&quot;,&quot;posNTHTypeLast&quot;,true),index:function(n,c){return this[&quot;pseudo:nth-child&quot;](n,&quot;&quot;+c+1);
++},even:function(c){return this[&quot;pseudo:nth-child&quot;](c,&quot;2n&quot;);},odd:function(c){return this[&quot;pseudo:nth-child&quot;](c,&quot;2n+1&quot;);},&quot;first-of-type&quot;:function(c){var n=c.nodeName;
++while((c=c.previousSibling)){if(c.nodeName==n){return false;}}return true;},&quot;last-of-type&quot;:function(c){var n=c.nodeName;while((c=c.nextSibling)){if(c.nodeName==n){return false;
++}}return true;},&quot;only-of-type&quot;:function(o){var n=o,p=o.nodeName;while((n=n.previousSibling)){if(n.nodeName==p){return false;}}var c=o;while((c=c.nextSibling)){if(c.nodeName==p){return false;
++}}return true;},enabled:function(c){return !c.disabled;},disabled:function(c){return c.disabled;},checked:function(c){return c.checked||c.selected;},focus:function(c){return this.isHTMLDocument&amp;&amp;this.document.activeElement===c&amp;&amp;(c.href||c.type||this.hasAttribute(c,&quot;tabindex&quot;));
++},root:function(c){return(c===this.root);},selected:function(c){return c.selected;}};for(var b in l){k[&quot;pseudo:&quot;+b]=l[b];}var a=k.attributeGetters={&quot;class&quot;:function(){return this.getAttribute(&quot;class&quot;)||this.className;
++},&quot;for&quot;:function(){return(&quot;htmlFor&quot; in this)?this.htmlFor:this.getAttribute(&quot;for&quot;);},href:function(){return(&quot;href&quot; in this)?this.getAttribute(&quot;href&quot;,2):this.getAttribute(&quot;href&quot;);
++},style:function(){return(this.style)?this.style.cssText:this.getAttribute(&quot;style&quot;);},tabindex:function(){var c=this.getAttributeNode(&quot;tabindex&quot;);return(c&amp;&amp;c.specified)?c.nodeValue:null;
++},type:function(){return this.getAttribute(&quot;type&quot;);},maxlength:function(){var c=this.getAttributeNode(&quot;maxLength&quot;);return(c&amp;&amp;c.specified)?c.nodeValue:null;
++}};a.MAXLENGTH=a.maxLength=a.maxlength;var e=k.Slick=(this.Slick||{});e.version=&quot;1.1.6&quot;;e.search=function(n,o,c){return k.search(n,o,c);};e.find=function(c,n){return k.search(c,n,null,true);
++};e.contains=function(c,n){k.setDocument(c);return k.contains(c,n);};e.getAttribute=function(n,c){k.setDocument(n);return k.getAttribute(n,c);};e.hasAttribute=function(n,c){k.setDocument(n);
++return k.hasAttribute(n,c);};e.match=function(n,c){if(!(n&amp;&amp;c)){return false;}if(!c||c===n){return true;}k.setDocument(n);return k.matchNode(n,c);};e.defineAttributeGetter=function(c,n){k.attributeGetters[c]=n;
++return this;};e.lookupAttributeGetter=function(c){return k.attributeGetters[c];};e.definePseudo=function(c,n){k[&quot;pseudo:&quot;+c]=function(p,o){return n.call(p,o);
++};return this;};e.lookupPseudo=function(c){var n=k[&quot;pseudo:&quot;+c];if(n){return function(o){return n.call(this,o);};}return null;};e.override=function(n,c){k.override(n,c);
++return this;};e.isXML=k.isXML;e.uidOf=function(c){return k.getUIDHTML(c);};if(!this.Slick){this.Slick=e;}}).apply((typeof exports!=&quot;undefined&quot;)?exports:this);
++var Element=function(b,g){var h=Element.Constructors[b];if(h){return h(g);}if(typeof b!=&quot;string&quot;){return document.id(b).set(g);}if(!g){g={};}if(!(/^[\w-]+$/).test(b)){var e=Slick.parse(b).expressions[0][0];
++b=(e.tag==&quot;*&quot;)?&quot;div&quot;:e.tag;if(e.id&amp;&amp;g.id==null){g.id=e.id;}var d=e.attributes;if(d){for(var a,f=0,c=d.length;f&lt;c;f++){a=d[f];if(g[a.key]!=null){continue;
++}if(a.value!=null&amp;&amp;a.operator==&quot;=&quot;){g[a.key]=a.value;}else{if(!a.value&amp;&amp;!a.operator){g[a.key]=true;}}}}if(e.classList&amp;&amp;g[&quot;class&quot;]==null){g[&quot;class&quot;]=e.classList.join(&quot; &quot;);
++}}return document.newElement(b,g);};if(Browser.Element){Element.prototype=Browser.Element.prototype;}new Type(&quot;Element&quot;,Element).mirror(function(a){if(Array.prototype[a]){return;
++}var b={};b[a]=function(){var h=[],e=arguments,j=true;for(var g=0,d=this.length;g&lt;d;g++){var f=this[g],c=h[g]=f[a].apply(f,e);j=(j&amp;&amp;typeOf(c)==&quot;element&quot;);
++}return(j)?new Elements(h):h;};Elements.implement(b);});if(!Browser.Element){Element.parent=Object;Element.Prototype={&quot;$family&quot;:Function.from(&quot;element&quot;).hide()};
++Element.mirror(function(a,b){Element.Prototype[a]=b;});}Element.Constructors={};Element.Constructors=new Hash;var IFrame=new Type(&quot;IFrame&quot;,function(){var e=Array.link(arguments,{properties:Type.isObject,iframe:function(f){return(f!=null);
++}});var c=e.properties||{},b;if(e.iframe){b=document.id(e.iframe);}var d=c.onload||function(){};delete c.onload;c.id=c.name=[c.id,c.name,b?(b.id||b.name):&quot;IFrame_&quot;+String.uniqueID()].pick();
++b=new Element(b||&quot;iframe&quot;,c);var a=function(){d.call(b.contentWindow);};if(window.frames[c.id]){a();}else{b.addListener(&quot;load&quot;,a);}return b;});var Elements=this.Elements=function(a){if(a&amp;&amp;a.length){var e={},d;
++for(var c=0;d=a[c++];){var b=Slick.uidOf(d);if(!e[b]){e[b]=true;this.push(d);}}}};Elements.prototype={length:0};Elements.parent=Array;new Type(&quot;Elements&quot;,Elements).implement({filter:function(a,b){if(!a){return this;
++}return new Elements(Array.filter(this,(typeOf(a)==&quot;string&quot;)?function(c){return c.match(a);}:a,b));}.protect(),push:function(){var d=this.length;for(var b=0,a=arguments.length;
++b&lt;a;b++){var c=document.id(arguments[b]);if(c){this[d++]=c;}}return(this.length=d);}.protect(),unshift:function(){var b=[];for(var c=0,a=arguments.length;
++c&lt;a;c++){var d=document.id(arguments[c]);if(d){b.push(d);}}return Array.prototype.unshift.apply(this,b);}.protect(),concat:function(){var b=new Elements(this);
++for(var c=0,a=arguments.length;c&lt;a;c++){var d=arguments[c];if(Type.isEnumerable(d)){b.append(d);}else{b.push(d);}}return b;}.protect(),append:function(c){for(var b=0,a=c.length;
++b&lt;a;b++){this.push(c[b]);}return this;}.protect(),empty:function(){while(this.length){delete this[--this.length];}return this;}.protect()});Elements.alias(&quot;extend&quot;,&quot;append&quot;);
++(function(){var g=Array.prototype.splice,b={&quot;0&quot;:0,&quot;1&quot;:1,length:2};g.call(b,1,1);if(b[1]==1){Elements.implement(&quot;splice&quot;,function(){var h=this.length;var e=g.apply(this,arguments);
++while(h&gt;=this.length){delete this[h--];}return e;}.protect());}Elements.implement(Array.prototype);Array.mirror(Elements);var f;try{var a=document.createElement(&quot;&lt;input name=x&gt;&quot;);
++f=(a.name==&quot;x&quot;);}catch(c){}var d=function(e){return(&quot;&quot;+e).replace(/&amp;/g,&quot;&amp;amp;&quot;).replace(/&quot;/g,&quot;&amp;quot;&quot;);};Document.implement({newElement:function(e,h){if(h&amp;&amp;h.checked!=null){h.defaultChecked=h.checked;
++}if(f&amp;&amp;h){e=&quot;&lt;&quot;+e;if(h.name){e+=' name=&quot;'+d(h.name)+'&quot;';}if(h.type){e+=' type=&quot;'+d(h.type)+'&quot;';}e+=&quot;&gt;&quot;;delete h.name;delete h.type;}return this.id(this.createElement(e)).set(h);
++}});})();Document.implement({newTextNode:function(a){return this.createTextNode(a);},getDocument:function(){return this;},getWindow:function(){return this.window;
++},id:(function(){var a={string:function(d,c,b){d=Slick.find(b,&quot;#&quot;+d.replace(/(\W)/g,&quot;\\$1&quot;));return(d)?a.element(d,c):null;},element:function(b,c){$uid(b);
++if(!c&amp;&amp;!b.$family&amp;&amp;!(/^(?:object|embed)$/i).test(b.tagName)){Object.append(b,Element.Prototype);}return b;},object:function(c,d,b){if(c.toElement){return a.element(c.toElement(b),d);
++}return null;}};a.textnode=a.whitespace=a.window=a.document=function(b){return b;};return function(c,e,d){if(c&amp;&amp;c.$family&amp;&amp;c.uid){return c;}var b=typeOf(c);
++return(a[b])?a[b](c,e,d||document):null;};})()});if(window.$==null){Window.implement(&quot;$&quot;,function(a,b){return document.id(a,b,this.document);});}Window.implement({getDocument:function(){return this.document;
++},getWindow:function(){return this;}});[Document,Element].invoke(&quot;implement&quot;,{getElements:function(a){return Slick.search(this,a,new Elements);},getElement:function(a){return document.id(Slick.find(this,a));
++}});var contains={contains:function(a){return Slick.contains(this,a);}};if(!document.contains){Document.implement(contains);}if(!document.createElement(&quot;div&quot;).contains){Element.implement(contains);
++}Element.implement(&quot;hasChild&quot;,function(a){return this!==a&amp;&amp;this.contains(a);});(function(b,d,a){this.Selectors={};var e=this.Selectors.Pseudo=new Hash();
++var c=function(){for(var f in e){if(e.hasOwnProperty(f)){Slick.definePseudo(f,e[f]);delete e[f];}}};Slick.search=function(g,h,f){c();return b.call(this,g,h,f);
++};Slick.find=function(f,g){c();return d.call(this,f,g);};Slick.match=function(g,f){c();return a.call(this,g,f);};})(Slick.search,Slick.find,Slick.match);
++var injectCombinator=function(d,c){if(!d){return c;}d=Object.clone(Slick.parse(d));var b=d.expressions;for(var a=b.length;a--;){b[a][0].combinator=c;}return d;
++};Object.forEach({getNext:&quot;~&quot;,getPrevious:&quot;!~&quot;,getParent:&quot;!&quot;},function(a,b){Element.implement(b,function(c){return this.getElement(injectCombinator(c,a));
++});});Object.forEach({getAllNext:&quot;~&quot;,getAllPrevious:&quot;!~&quot;,getSiblings:&quot;~~&quot;,getChildren:&quot;&gt;&quot;,getParents:&quot;!&quot;},function(a,b){Element.implement(b,function(c){return this.getElements(injectCombinator(c,a));
++});});Element.implement({getFirst:function(a){return document.id(Slick.search(this,injectCombinator(a,&quot;&gt;&quot;))[0]);},getLast:function(a){return document.id(Slick.search(this,injectCombinator(a,&quot;&gt;&quot;)).getLast());
++},getWindow:function(){return this.ownerDocument.window;},getDocument:function(){return this.ownerDocument;},getElementById:function(a){return document.id(Slick.find(this,&quot;#&quot;+(&quot;&quot;+a).replace(/(\W)/g,&quot;\\$1&quot;)));
++},match:function(a){return !a||Slick.match(this,a);}});if(window.$$==null){Window.implement(&quot;$$&quot;,function(a){var f=new Elements;if(arguments.length==1&amp;&amp;typeof a==&quot;string&quot;){return Slick.search(this.document,a,f);
++}var c=Array.flatten(arguments);for(var d=0,b=c.length;d&lt;b;d++){var e=c[d];switch(typeOf(e)){case&quot;element&quot;:f.push(e);break;case&quot;string&quot;:Slick.search(this.document,e,f);
++}}return f;});}if(window.$$==null){Window.implement(&quot;$$&quot;,function(a){if(arguments.length==1){if(typeof a==&quot;string&quot;){return Slick.search(this.document,a,new Elements);
++}else{if(Type.isEnumerable(a)){return new Elements(a);}}}return new Elements(arguments);});}(function(){var b={before:function(n,m){var o=m.parentNode;
++if(o){o.insertBefore(n,m);}},after:function(n,m){var o=m.parentNode;if(o){o.insertBefore(n,m.nextSibling);}},bottom:function(n,m){m.appendChild(n);},top:function(n,m){m.insertBefore(n,m.firstChild);
++}};b.inside=b.bottom;Object.each(b,function(n,o){o=o.capitalize();var m={};m[&quot;inject&quot;+o]=function(p){n(this,document.id(p,true));return this;};m[&quot;grab&quot;+o]=function(p){n(document.id(p,true),this);
++return this;};Element.implement(m);});var k={},d={};var i={};Array.forEach([&quot;type&quot;,&quot;value&quot;,&quot;defaultValue&quot;,&quot;accessKey&quot;,&quot;cellPadding&quot;,&quot;cellSpacing&quot;,&quot;colSpan&quot;,&quot;frameBorder&quot;,&quot;readOnly&quot;,&quot;rowSpan&quot;,&quot;tabIndex&quot;,&quot;useMap&quot;],function(m){i[m.toLowerCase()]=m;
++});Object.append(i,{html:&quot;innerHTML&quot;,text:(function(){var m=document.createElement(&quot;div&quot;);return(m.textContent==null)?&quot;innerText&quot;:&quot;textContent&quot;;})()});
++Object.forEach(i,function(n,m){d[m]=function(o,p){o[n]=p;};k[m]=function(o){return o[n];};});var a=[&quot;compact&quot;,&quot;nowrap&quot;,&quot;ismap&quot;,&quot;declare&quot;,&quot;noshade&quot;,&quot;checked&quot;,&quot;disabled&quot;,&quot;readOnly&quot;,&quot;multiple&quot;,&quot;selected&quot;,&quot;noresize&quot;,&quot;defer&quot;,&quot;defaultChecked&quot;,&quot;autofocus&quot;,&quot;controls&quot;,&quot;autoplay&quot;,&quot;loop&quot;];
++var h={};Array.forEach(a,function(m){var n=m.toLowerCase();h[n]=m;d[n]=function(o,p){o[m]=!!p;};k[n]=function(o){return !!o[m];};});Object.append(d,{&quot;class&quot;:function(m,n){(&quot;className&quot; in m)?m.className=n:m.setAttribute(&quot;class&quot;,n);
++},&quot;for&quot;:function(m,n){(&quot;htmlFor&quot; in m)?m.htmlFor=n:m.setAttribute(&quot;for&quot;,n);},style:function(m,n){(m.style)?m.style.cssText=n:m.setAttribute(&quot;style&quot;,n);
++}});Element.implement({setProperty:function(n,o){var m=n.toLowerCase();if(o==null){if(!h[m]){this.removeAttribute(n);return this;}o=false;}var p=d[m];if(p){p(this,o);
++}else{this.setAttribute(n,o);}return this;},setProperties:function(m){for(var n in m){this.setProperty(n,m[n]);}return this;},getProperty:function(o){var n=k[o.toLowerCase()];
++if(n){return n(this);}var m=Slick.getAttribute(this,o);return(!m&amp;&amp;!Slick.hasAttribute(this,o))?null:m;},getProperties:function(){var m=Array.from(arguments);
++return m.map(this.getProperty,this).associate(m);},removeProperty:function(m){return this.setProperty(m,null);},removeProperties:function(){Array.each(arguments,this.removeProperty,this);
++return this;},set:function(o,n){var m=Element.Properties[o];(m&amp;&amp;m.set)?m.set.call(this,n):this.setProperty(o,n);}.overloadSetter(),get:function(n){var m=Element.Properties[n];
++return(m&amp;&amp;m.get)?m.get.apply(this):this.getProperty(n);}.overloadGetter(),erase:function(n){var m=Element.Properties[n];(m&amp;&amp;m.erase)?m.erase.apply(this):this.removeProperty(n);
++return this;},hasClass:function(m){return this.className.clean().contains(m,&quot; &quot;);},addClass:function(m){if(!this.hasClass(m)){this.className=(this.className+&quot; &quot;+m).clean();
++}return this;},removeClass:function(m){this.className=this.className.replace(new RegExp(&quot;(^|\\s)&quot;+m+&quot;(?:\\s|$)&quot;),&quot;$1&quot;);return this;},toggleClass:function(m,n){if(n==null){n=!this.hasClass(m);
++}return(n)?this.addClass(m):this.removeClass(m);},adopt:function(){var p=this,m,r=Array.flatten(arguments),q=r.length;if(q&gt;1){p=m=document.createDocumentFragment();
++}for(var o=0;o&lt;q;o++){var n=document.id(r[o],true);if(n){p.appendChild(n);}}if(m){this.appendChild(m);}return this;},appendText:function(n,m){return this.grab(this.getDocument().newTextNode(n),m);
++},grab:function(n,m){b[m||&quot;bottom&quot;](document.id(n,true),this);return this;},inject:function(n,m){b[m||&quot;bottom&quot;](this,document.id(n,true));return this;},replaces:function(m){m=document.id(m,true);
++m.parentNode.replaceChild(this,m);return this;},wraps:function(n,m){n=document.id(n,true);return this.replaces(n).grab(n,m);},getSelected:function(){this.selectedIndex;
++return new Elements(Array.from(this.options).filter(function(m){return m.selected;}));},toQueryString:function(){var m=[];this.getElements(&quot;input, select, textarea&quot;).each(function(o){var n=o.type;
++if(!o.name||o.disabled||n==&quot;submit&quot;||n==&quot;reset&quot;||n==&quot;file&quot;||n==&quot;image&quot;){return;}var p=(o.get(&quot;tag&quot;)==&quot;select&quot;)?o.getSelected().map(function(q){return document.id(q).get(&quot;value&quot;);
++}):((n==&quot;radio&quot;||n==&quot;checkbox&quot;)&amp;&amp;!o.checked)?null:o.get(&quot;value&quot;);Array.from(p).each(function(q){if(typeof q!=&quot;undefined&quot;){m.push(encodeURIComponent(o.name)+&quot;=&quot;+encodeURIComponent(q));
++}});});return m.join(&quot;&amp;&quot;);}});var j={},e={};var c=function(m){return(e[m]||(e[m]={}));};var g=function(n){var m=n.uid;if(n.removeEvents){n.removeEvents();
++}if(n.clearAttributes){n.clearAttributes();}if(m!=null){delete j[m];delete e[m];}return n;};var l={input:&quot;checked&quot;,option:&quot;selected&quot;,textarea:&quot;value&quot;};
++Element.implement({destroy:function(){var m=g(this).getElementsByTagName(&quot;*&quot;);Array.each(m,g);Element.dispose(this);return null;},empty:function(){Array.from(this.childNodes).each(Element.dispose);
++return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;},clone:function(r,p){r=r!==false;var w=this.cloneNode(r),o=[w],q=[this],u;
++if(r){o.append(Array.from(w.getElementsByTagName(&quot;*&quot;)));q.append(Array.from(this.getElementsByTagName(&quot;*&quot;)));}for(u=o.length;u--;){var s=o[u],v=q[u];if(!p){s.removeAttribute(&quot;id&quot;);
++}if(s.clearAttributes){s.clearAttributes();s.mergeAttributes(v);s.removeAttribute(&quot;uid&quot;);if(s.options){var z=s.options,m=v.options;for(var t=z.length;t--;
++){z[t].selected=m[t].selected;}}}var n=l[v.tagName.toLowerCase()];if(n&amp;&amp;v[n]){s[n]=v[n];}}if(Browser.ie){var x=w.getElementsByTagName(&quot;object&quot;),y=this.getElementsByTagName(&quot;object&quot;);
++for(u=x.length;u--;){x[u].outerHTML=y[u].outerHTML;}}return document.id(w);}});[Element,Window,Document].invoke(&quot;implement&quot;,{addListener:function(p,o){if(p==&quot;unload&quot;){var m=o,n=this;
++o=function(){n.removeListener(&quot;unload&quot;,o);m();};}else{j[$uid(this)]=this;}if(this.addEventListener){this.addEventListener(p,o,!!arguments[2]);}else{this.attachEvent(&quot;on&quot;+p,o);
++}return this;},removeListener:function(n,m){if(this.removeEventListener){this.removeEventListener(n,m,!!arguments[2]);}else{this.detachEvent(&quot;on&quot;+n,m);
++}return this;},retrieve:function(n,m){var p=c($uid(this)),o=p[n];if(m!=null&amp;&amp;o==null){o=p[n]=m;}return o!=null?o:null;},store:function(n,m){var o=c($uid(this));
++o[n]=m;return this;},eliminate:function(m){var n=c($uid(this));delete n[m];return this;}});if(window.attachEvent&amp;&amp;!window.addEventListener){window.addListener(&quot;unload&quot;,function(){Object.each(j,g);
++if(window.CollectGarbage){CollectGarbage();}});}Element.Properties={};Element.Properties=new Hash;Element.Properties.style={set:function(m){this.style.cssText=m;
++},get:function(){return this.style.cssText;},erase:function(){this.style.cssText=&quot;&quot;;}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();
++}};Element.Properties.html=(function(){var s=Function.attempt(function(){var u=document.createElement(&quot;table&quot;);u.innerHTML=&quot;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;});var t=document.createElement(&quot;div&quot;);
++var o={table:[1,&quot;&lt;table&gt;&quot;,&quot;&lt;/table&gt;&quot;],select:[1,&quot;&lt;select&gt;&quot;,&quot;&lt;/select&gt;&quot;],tbody:[2,&quot;&lt;table&gt;&lt;tbody&gt;&quot;,&quot;&lt;/tbody&gt;&lt;/table&gt;&quot;],tr:[3,&quot;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&quot;,&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;]};
++o.thead=o.tfoot=o.tbody;t.innerHTML=&quot;&lt;nav&gt;&lt;/nav&gt;&quot;;var n=t.childNodes.length==1;if(!n){var q=&quot;abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video&quot;.split(&quot; &quot;),p=document.createDocumentFragment(),m=q.length;
++while(m--){p.createElement(q[m]);}p.appendChild(t);}var r={set:function(v){if(typeOf(v)==&quot;array&quot;){v=v.join(&quot;&quot;);}var w=(!s&amp;&amp;o[this.get(&quot;tag&quot;)]);if(!w&amp;&amp;!n){w=[0,&quot;&quot;,&quot;&quot;];
++}if(w){var x=t;x.innerHTML=w[1]+v+w[2];for(var u=w[0];u--;){x=x.firstChild;}this.empty().adopt(x.childNodes);}else{this.innerHTML=v;}}};r.erase=r.set;return r;
++})();var f=document.createElement(&quot;form&quot;);f.innerHTML=&quot;&lt;select&gt;&lt;option&gt;s&lt;/option&gt;&lt;/select&gt;&quot;;if(f.firstChild.value!=&quot;s&quot;){Element.Properties.value={set:function(r){var n=this.get(&quot;tag&quot;);
++if(n!=&quot;select&quot;){return this.setProperty(&quot;value&quot;,r);}var o=this.getElements(&quot;option&quot;);for(var p=0;p&lt;o.length;p++){var q=o[p],m=q.getAttributeNode(&quot;value&quot;),s=(m&amp;&amp;m.specified)?q.value:q.get(&quot;text&quot;);
++if(s==r){return q.selected=true;}}},get:function(){var o=this,n=o.get(&quot;tag&quot;);if(n!=&quot;select&quot;&amp;&amp;n!=&quot;option&quot;){return this.getProperty(&quot;value&quot;);}if(n==&quot;select&quot;&amp;&amp;!(o=o.getSelected()[0])){return&quot;&quot;;
++}var m=o.getAttributeNode(&quot;value&quot;);return(m&amp;&amp;m.specified)?o.value:o.get(&quot;text&quot;);}};}})();(function(){var f=document.html;Element.Properties.styles={set:function(i){this.setStyles(i);
++}};var h=(f.style.opacity!=null),a=(f.style.filter!=null),g=/alpha\(opacity=([\d.]+)\)/i;var b=function(j,i){j.store(&quot;$opacity&quot;,i);j.style.visibility=i&gt;0?&quot;visible&quot;:&quot;hidden&quot;;
++};var d=(h?function(j,i){j.style.opacity=i;}:(a?function(j,i){if(!j.currentStyle||!j.currentStyle.hasLayout){j.style.zoom=1;}i=(i*100).limit(0,100).round();
++i=(i==100)?&quot;&quot;:&quot;alpha(opacity=&quot;+i+&quot;)&quot;;var k=j.style.filter||j.getComputedStyle(&quot;filter&quot;)||&quot;&quot;;j.style.filter=g.test(k)?k.replace(g,i):k+i;}:b));var e=(h?function(j){var i=j.style.opacity||j.getComputedStyle(&quot;opacity&quot;);
++return(i==&quot;&quot;)?1:i.toFloat();}:(a?function(j){var k=(j.style.filter||j.getComputedStyle(&quot;filter&quot;)),i;if(k){i=k.match(g);}return(i==null||k==null)?1:(i[1]/100);
++}:function(j){var i=j.retrieve(&quot;$opacity&quot;);if(i==null){i=(j.style.visibility==&quot;hidden&quot;?0:1);}return i;}));var c=(f.style.cssFloat==null)?&quot;styleFloat&quot;:&quot;cssFloat&quot;;
++Element.implement({getComputedStyle:function(k){if(this.currentStyle){return this.currentStyle[k.camelCase()];}var j=Element.getDocument(this).defaultView,i=j?j.getComputedStyle(this,null):null;
++return(i)?i.getPropertyValue((k==c)?&quot;float&quot;:k.hyphenate()):null;},setStyle:function(j,i){if(j==&quot;opacity&quot;){d(this,parseFloat(i));return this;}j=(j==&quot;float&quot;?c:j).camelCase();
++if(typeOf(i)!=&quot;string&quot;){var k=(Element.Styles[j]||&quot;@&quot;).split(&quot; &quot;);i=Array.from(i).map(function(m,l){if(!k[l]){return&quot;&quot;;}return(typeOf(m)==&quot;number&quot;)?k[l].replace(&quot;@&quot;,Math.round(m)):m;
++}).join(&quot; &quot;);}else{if(i==String(Number(i))){i=Math.round(i);}}this.style[j]=i;return this;},getStyle:function(o){if(o==&quot;opacity&quot;){return e(this);}o=(o==&quot;float&quot;?c:o).camelCase();
++var i=this.style[o];if(!i||o==&quot;zIndex&quot;){i=[];for(var n in Element.ShortStyles){if(o!=n){continue;}for(var m in Element.ShortStyles[n]){i.push(this.getStyle(m));
++}return i.join(&quot; &quot;);}i=this.getComputedStyle(o);}if(i){i=String(i);var k=i.match(/rgba?\([\d\s,]+\)/);if(k){i=i.replace(k[0],k[0].rgbToHex());}}if(Browser.opera||(Browser.ie&amp;&amp;isNaN(parseFloat(i)))){if((/^(height|width)$/).test(o)){var j=(o==&quot;width&quot;)?[&quot;left&quot;,&quot;right&quot;]:[&quot;top&quot;,&quot;bottom&quot;],l=0;
++j.each(function(p){l+=this.getStyle(&quot;border-&quot;+p+&quot;-width&quot;).toInt()+this.getStyle(&quot;padding-&quot;+p).toInt();},this);return this[&quot;offset&quot;+o.capitalize()]-l+&quot;px&quot;;
++}if(Browser.opera&amp;&amp;String(i).indexOf(&quot;px&quot;)!=-1){return i;}if((/^border(.+)Width|margin|padding/).test(o)){return&quot;0px&quot;;}}return i;},setStyles:function(j){for(var i in j){this.setStyle(i,j[i]);
++}return this;},getStyles:function(){var i={};Array.flatten(arguments).each(function(j){i[j]=this.getStyle(j);},this);return i;}});Element.Styles={left:&quot;@px&quot;,top:&quot;@px&quot;,bottom:&quot;@px&quot;,right:&quot;@px&quot;,width:&quot;@px&quot;,height:&quot;@px&quot;,maxWidth:&quot;@px&quot;,maxHeight:&quot;@px&quot;,minWidth:&quot;@px&quot;,minHeight:&quot;@px&quot;,backgroundColor:&quot;rgb(@, @, @)&quot;,backgroundPosition:&quot;@px @px&quot;,color:&quot;rgb(@, @, @)&quot;,fontSize:&quot;@px&quot;,letterSpacing:&quot;@px&quot;,lineHeight:&quot;@px&quot;,clip:&quot;rect(@px @px @px @px)&quot;,margin:&quot;@px @px @px @px&quot;,padding:&quot;@px @px @px @px&quot;,border:&quot;@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)&quot;,borderWidth:&quot;@px @px @px @px&quot;,borderStyle:&quot;@ @ @ @&quot;,borderColor:&quot;rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)&quot;,zIndex:&quot;@&quot;,zoom:&quot;@&quot;,fontWeight:&quot;@&quot;,textIndent:&quot;
 @px&quot;,opacity:&quot;@&quot;};
++Element.implement({setOpacity:function(i){d(this,i);return this;},getOpacity:function(){return e(this);}});Element.Properties.opacity={set:function(i){d(this,i);
++b(this,i);},get:function(){return e(this);}};Element.Styles=new Hash(Element.Styles);Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};
++[&quot;Top&quot;,&quot;Right&quot;,&quot;Bottom&quot;,&quot;Left&quot;].each(function(o){var n=Element.ShortStyles;var j=Element.Styles;[&quot;margin&quot;,&quot;padding&quot;].each(function(p){var q=p+o;n[p][q]=j[q]=&quot;@px&quot;;
++});var m=&quot;border&quot;+o;n.border[m]=j[m]=&quot;@px @ rgb(@, @, @)&quot;;var l=m+&quot;Width&quot;,i=m+&quot;Style&quot;,k=m+&quot;Color&quot;;n[m]={};n.borderWidth[l]=n[m][l]=j[l]=&quot;@px&quot;;n.borderStyle[i]=n[m][i]=j[i]=&quot;@&quot;;
++n.borderColor[k]=n[m][k]=j[k]=&quot;rgb(@, @, @)&quot;;});})();(function(){Element.Properties.events={set:function(b){this.addEvents(b);}};[Element,Window,Document].invoke(&quot;implement&quot;,{addEvent:function(f,h){var i=this.retrieve(&quot;events&quot;,{});
++if(!i[f]){i[f]={keys:[],values:[]};}if(i[f].keys.contains(h)){return this;}i[f].keys.push(h);var g=f,b=Element.Events[f],d=h,j=this;if(b){if(b.onAdd){b.onAdd.call(this,h,f);
++}if(b.condition){d=function(k){if(b.condition.call(this,k,f)){return h.call(this,k);}return true;};}if(b.base){g=Function.from(b.base).call(this,f);}}var e=function(){return h.call(j);
++};var c=Element.NativeEvents[g];if(c){if(c==2){e=function(k){k=new DOMEvent(k,j.getWindow());if(d.call(j,k)===false){k.stop();}};}this.addListener(g,e,arguments[2]);
++}i[f].values.push(e);return this;},removeEvent:function(e,d){var c=this.retrieve(&quot;events&quot;);if(!c||!c[e]){return this;}var h=c[e];var b=h.keys.indexOf(d);
++if(b==-1){return this;}var g=h.values[b];delete h.keys[b];delete h.values[b];var f=Element.Events[e];if(f){if(f.onRemove){f.onRemove.call(this,d,e);}if(f.base){e=Function.from(f.base).call(this,e);
++}}return(Element.NativeEvents[e])?this.removeListener(e,g,arguments[2]):this;},addEvents:function(b){for(var c in b){this.addEvent(c,b[c]);}return this;
++},removeEvents:function(b){var d;if(typeOf(b)==&quot;object&quot;){for(d in b){this.removeEvent(d,b[d]);}return this;}var c=this.retrieve(&quot;events&quot;);if(!c){return this;
++}if(!b){for(d in c){this.removeEvents(d);}this.eliminate(&quot;events&quot;);}else{if(c[b]){c[b].keys.each(function(e){this.removeEvent(b,e);},this);delete c[b];
++}}return this;},fireEvent:function(e,c,b){var d=this.retrieve(&quot;events&quot;);if(!d||!d[e]){return this;}c=Array.from(c);d[e].keys.each(function(f){if(b){f.delay(b,this,c);
++}else{f.apply(this,c);}},this);return this;},cloneEvents:function(e,d){e=document.id(e);var c=e.retrieve(&quot;events&quot;);if(!c){return this;}if(!d){for(var b in c){this.cloneEvents(e,b);
++}}else{if(c[d]){c[d].keys.each(function(f){this.addEvent(d,f);},this);}}return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,orientationchange:2,touchstart:2,touchmove:2,touchend:2,touchcancel:2,gesturestart:2,gesturechange:2,gestureend:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,paste:2,input:2,load:2,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};
++var a=function(b){var c=b.relatedTarget;if(c==null){return true;}if(!c){return false;}return(c!=this&amp;&amp;c.prefix!=&quot;xul&quot;&amp;&amp;typeOf(this)!=&quot;document&quot;&amp;&amp;!this.contains(c));
++};Element.Events={mouseenter:{base:&quot;mouseover&quot;,condition:a},mouseleave:{base:&quot;mouseout&quot;,condition:a},mousewheel:{base:(Browser.firefox)?&quot;DOMMouseScroll&quot;:&quot;mousewheel&quot;}};
++if(!window.addEventListener){Element.NativeEvents.propertychange=2;Element.Events.change={base:function(){var b=this.type;return(this.get(&quot;tag&quot;)==&quot;input&quot;&amp;&amp;(b==&quot;radio&quot;||b==&quot;checkbox&quot;))?&quot;propertychange&quot;:&quot;change&quot;;
++},condition:function(b){return !!(this.type!=&quot;radio&quot;||this.checked);}};}Element.Events=new Hash(Element.Events);})();(function(){var c=!!window.addEventListener;
++Element.NativeEvents.focusin=Element.NativeEvents.focusout=2;var k=function(l,m,n,o,p){while(p&amp;&amp;p!=l){if(m(p,o)){return n.call(p,o,p);}p=document.id(p.parentNode);
++}};var a={mouseenter:{base:&quot;mouseover&quot;},mouseleave:{base:&quot;mouseout&quot;},focus:{base:&quot;focus&quot;+(c?&quot;&quot;:&quot;in&quot;),capture:true},blur:{base:c?&quot;blur&quot;:&quot;focusout&quot;,capture:true}};
++var b=&quot;$delegation:&quot;;var i=function(l){return{base:&quot;focusin&quot;,remove:function(m,o){var p=m.retrieve(b+l+&quot;listeners&quot;,{})[o];if(p&amp;&amp;p.forms){for(var n=p.forms.length;
++n--;){p.forms[n].removeEvent(l,p.fns[n]);}}},listen:function(x,r,v,n,t,s){var o=(t.get(&quot;tag&quot;)==&quot;form&quot;)?t:n.target.getParent(&quot;form&quot;);if(!o){return;}var u=x.retrieve(b+l+&quot;listeners&quot;,{}),p=u[s]||{forms:[],fns:[]},m=p.forms,w=p.fns;
++if(m.indexOf(o)!=-1){return;}m.push(o);var q=function(y){k(x,r,v,y,t);};o.addEvent(l,q);w.push(q);u[s]=p;x.store(b+l+&quot;listeners&quot;,u);}};};var d=function(l){return{base:&quot;focusin&quot;,listen:function(m,n,p,q,r){var o={blur:function(){this.removeEvents(o);
++}};o[l]=function(s){k(m,n,p,s,r);};q.target.addEvents(o);}};};if(!c){Object.append(a,{submit:i(&quot;submit&quot;),reset:i(&quot;reset&quot;),change:d(&quot;change&quot;),select:d(&quot;select&quot;)});
++}var h=Element.prototype,f=h.addEvent,j=h.removeEvent;var e=function(l,m){return function(r,q,n){if(r.indexOf(&quot;:relay&quot;)==-1){return l.call(this,r,q,n);
++}var o=Slick.parse(r).expressions[0][0];if(o.pseudos[0].key!=&quot;relay&quot;){return l.call(this,r,q,n);}var p=o.tag;o.pseudos.slice(1).each(function(s){p+=&quot;:&quot;+s.key+(s.value?&quot;(&quot;+s.value+&quot;)&quot;:&quot;&quot;);
++});l.call(this,r,q);return m.call(this,p,o.pseudos[0].value,q);};};var g={addEvent:function(v,q,x){var t=this.retrieve(&quot;$delegates&quot;,{}),r=t[v];if(r){for(var y in r){if(r[y].fn==x&amp;&amp;r[y].match==q){return this;
++}}}var p=v,u=q,o=x,n=a[v]||{};v=n.base||p;q=function(B){return Slick.match(B,u);};var w=Element.Events[p];if(w&amp;&amp;w.condition){var l=q,m=w.condition;q=function(C,B){return l(C,B)&amp;&amp;m.call(C,B,v);
++};}var z=this,s=String.uniqueID();var A=n.listen?function(B,C){if(!C&amp;&amp;B&amp;&amp;B.target){C=B.target;}if(C){n.listen(z,q,x,B,C,s);}}:function(B,C){if(!C&amp;&amp;B&amp;&amp;B.target){C=B.target;
++}if(C){k(z,q,x,B,C);}};if(!r){r={};}r[s]={match:u,fn:o,delegator:A};t[p]=r;return f.call(this,v,A,n.capture);},removeEvent:function(r,n,t,u){var q=this.retrieve(&quot;$delegates&quot;,{}),p=q[r];
++if(!p){return this;}if(u){var m=r,w=p[u].delegator,l=a[r]||{};r=l.base||m;if(l.remove){l.remove(this,u);}delete p[u];q[m]=p;return j.call(this,r,w);}var o,v;
++if(t){for(o in p){v=p[o];if(v.match==n&amp;&amp;v.fn==t){return g.removeEvent.call(this,r,n,t,o);}}}else{for(o in p){v=p[o];if(v.match==n){g.removeEvent.call(this,r,n,v.fn,o);
++}}}return this;}};[Element,Window,Document].invoke(&quot;implement&quot;,{addEvent:e(f,g.addEvent),removeEvent:e(j,g.removeEvent)});})();(function(){var h=document.createElement(&quot;div&quot;),e=document.createElement(&quot;div&quot;);
++h.style.height=&quot;0&quot;;h.appendChild(e);var d=(e.offsetParent===h);h=e=null;var l=function(m){return k(m,&quot;position&quot;)!=&quot;static&quot;||a(m);};var i=function(m){return l(m)||(/^(?:table|td|th)$/i).test(m.tagName);
++};Element.implement({scrollTo:function(m,n){if(a(this)){this.getWindow().scrollTo(m,n);}else{this.scrollLeft=m;this.scrollTop=n;}return this;},getSize:function(){if(a(this)){return this.getWindow().getSize();
++}return{x:this.offsetWidth,y:this.offsetHeight};},getScrollSize:function(){if(a(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight};
++},getScroll:function(){if(a(this)){return this.getWindow().getScroll();}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var n=this.parentNode,m={x:0,y:0};
++while(n&amp;&amp;!a(n)){m.x+=n.scrollLeft;m.y+=n.scrollTop;n=n.parentNode;}return m;},getOffsetParent:d?function(){var m=this;if(a(m)||k(m,&quot;position&quot;)==&quot;fixed&quot;){return null;
++}var n=(k(m,&quot;position&quot;)==&quot;static&quot;)?i:l;while((m=m.parentNode)){if(n(m)){return m;}}return null;}:function(){var m=this;if(a(m)||k(m,&quot;position&quot;)==&quot;fixed&quot;){return null;
++}try{return m.offsetParent;}catch(n){}return null;},getOffsets:function(){if(this.getBoundingClientRect&amp;&amp;!Browser.Platform.ios){var r=this.getBoundingClientRect(),o=document.id(this.getDocument().documentElement),q=o.getScroll(),t=this.getScrolls(),s=(k(this,&quot;position&quot;)==&quot;fixed&quot;);
++return{x:r.left.toInt()+t.x+((s)?0:q.x)-o.clientLeft,y:r.top.toInt()+t.y+((s)?0:q.y)-o.clientTop};}var n=this,m={x:0,y:0};if(a(this)){return m;}while(n&amp;&amp;!a(n)){m.x+=n.offsetLeft;
++m.y+=n.offsetTop;if(Browser.firefox){if(!c(n)){m.x+=b(n);m.y+=g(n);}var p=n.parentNode;if(p&amp;&amp;k(p,&quot;overflow&quot;)!=&quot;visible&quot;){m.x+=b(p);m.y+=g(p);}}else{if(n!=this&amp;&amp;Browser.safari){m.x+=b(n);
++m.y+=g(n);}}n=n.offsetParent;}if(Browser.firefox&amp;&amp;!c(this)){m.x-=b(this);m.y-=g(this);}return m;},getPosition:function(p){var q=this.getOffsets(),n=this.getScrolls();
++var m={x:q.x-n.x,y:q.y-n.y};if(p&amp;&amp;(p=document.id(p))){var o=p.getPosition();return{x:m.x-o.x-b(p),y:m.y-o.y-g(p)};}return m;},getCoordinates:function(o){if(a(this)){return this.getWindow().getCoordinates();
++}var m=this.getPosition(o),n=this.getSize();var p={left:m.x,top:m.y,width:n.x,height:n.y};p.right=p.left+p.width;p.bottom=p.top+p.height;return p;},computePosition:function(m){return{left:m.x-j(this,&quot;margin-left&quot;),top:m.y-j(this,&quot;margin-top&quot;)};
++},setPosition:function(m){return this.setStyles(this.computePosition(m));}});[Document,Window].invoke(&quot;implement&quot;,{getSize:function(){var m=f(this);return{x:m.clientWidth,y:m.clientHeight};
++},getScroll:function(){var n=this.getWindow(),m=f(this);return{x:n.pageXOffset||m.scrollLeft,y:n.pageYOffset||m.scrollTop};},getScrollSize:function(){var o=f(this),n=this.getSize(),m=this.getDocument().body;
++return{x:Math.max(o.scrollWidth,m.scrollWidth,n.x),y:Math.max(o.scrollHeight,m.scrollHeight,n.y)};},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var m=this.getSize();
++return{top:0,left:0,bottom:m.y,right:m.x,height:m.y,width:m.x};}});var k=Element.getComputedStyle;function j(m,n){return k(m,n).toInt()||0;}function c(m){return k(m,&quot;-moz-box-sizing&quot;)==&quot;border-box&quot;;
++}function g(m){return j(m,&quot;border-top-width&quot;);}function b(m){return j(m,&quot;border-left-width&quot;);}function a(m){return(/^(?:body|html)$/i).test(m.tagName);
++}function f(m){var n=m.getDocument();return(!n.compatMode||n.compatMode==&quot;CSS1Compat&quot;)?n.html:n.body;}})();Element.alias({position:&quot;setPosition&quot;});[Window,Document,Element].invoke(&quot;implement&quot;,{getHeight:function(){return this.getSize().y;
++},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;},getScrollLeft:function(){return this.getScroll().x;
++},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;},getTop:function(){return this.getPosition().y;
++},getLeft:function(){return this.getPosition().x;}});(function(){var f=this.Fx=new Class({Implements:[Chain,Events,Options],options:{fps:60,unit:false,duration:500,frames:null,frameSkip:true,link:&quot;ignore&quot;},initialize:function(g){this.subject=this.subject||this;
++this.setOptions(g);},getTransition:function(){return function(g){return -(Math.cos(Math.PI*g)-1)/2;};},step:function(g){if(this.options.frameSkip){var h=(this.time!=null)?(g-this.time):0,i=h/this.frameInterval;
++this.time=g;this.frame+=i;}else{this.frame++;}if(this.frame&lt;this.frames){var j=this.transition(this.frame/this.frames);this.set(this.compute(this.from,this.to,j));
++}else{this.frame=this.frames;this.set(this.compute(this.from,this.to,1));this.stop();}},set:function(g){return g;},compute:function(i,h,g){return f.compute(i,h,g);
++},check:function(){if(!this.isRunning()){return true;}switch(this.options.link){case&quot;cancel&quot;:this.cancel();return true;case&quot;chain&quot;:this.chain(this.caller.pass(arguments,this));
++return false;}return false;},start:function(k,j){if(!this.check(k,j)){return this;}this.from=k;this.to=j;this.frame=(this.options.frameSkip)?0:-1;this.time=null;
++this.transition=this.getTransition();var i=this.options.frames,h=this.options.fps,g=this.options.duration;this.duration=f.Durations[g]||g.toInt();this.frameInterval=1000/h;
++this.frames=i||Math.round(this.duration/this.frameInterval);this.fireEvent(&quot;start&quot;,this.subject);b.call(this,h);return this;},stop:function(){if(this.isRunning()){this.time=null;
++d.call(this,this.options.fps);if(this.frames==this.frame){this.fireEvent(&quot;complete&quot;,this.subject);if(!this.callChain()){this.fireEvent(&quot;chainComplete&quot;,this.subject);
++}}else{this.fireEvent(&quot;stop&quot;,this.subject);}}return this;},cancel:function(){if(this.isRunning()){this.time=null;d.call(this,this.options.fps);this.frame=this.frames;
++this.fireEvent(&quot;cancel&quot;,this.subject).clearChain();}return this;},pause:function(){if(this.isRunning()){this.time=null;d.call(this,this.options.fps);}return this;
++},resume:function(){if((this.frame&lt;this.frames)&amp;&amp;!this.isRunning()){b.call(this,this.options.fps);}return this;},isRunning:function(){var g=e[this.options.fps];
++return g&amp;&amp;g.contains(this);}});f.compute=function(i,h,g){return(h-i)*g+i;};f.Durations={&quot;short&quot;:250,normal:500,&quot;long&quot;:1000};var e={},c={};var a=function(){var h=Date.now();
++for(var j=this.length;j--;){var g=this[j];if(g){g.step(h);}}};var b=function(h){var g=e[h]||(e[h]=[]);g.push(this);if(!c[h]){c[h]=a.periodical(Math.round(1000/h),g);
++}};var d=function(h){var g=e[h];if(g){g.erase(this);if(!g.length&amp;&amp;c[h]){delete e[h];c[h]=clearInterval(c[h]);}}};})();Fx.CSS=new Class({Extends:Fx,prepare:function(c,d,b){b=Array.from(b);
++if(b[1]==null){b[1]=b[0];b[0]=c.getStyle(d);}var a=b.map(this.parse);return{from:a[0],to:a[1]};},parse:function(a){a=Function.from(a)();a=(typeof a==&quot;string&quot;)?a.split(&quot; &quot;):Array.from(a);
++return a.map(function(c){c=String(c);var b=false;Object.each(Fx.CSS.Parsers,function(f,e){if(b){return;}var d=f.parse(c);if(d||d===0){b={value:d,parser:f};
++}});b=b||{value:c,parser:Fx.CSS.Parsers.String};return b;});},compute:function(d,c,b){var a=[];(Math.min(d.length,c.length)).times(function(e){a.push({value:d[e].parser.compute(d[e].value,c[e].value,b),parser:d[e].parser});
++});a.$family=Function.from(&quot;fx:css:value&quot;);return a;},serve:function(c,b){if(typeOf(c)!=&quot;fx:css:value&quot;){c=this.parse(c);}var a=[];c.each(function(d){a=a.concat(d.parser.serve(d.value,b));
++});return a;},render:function(a,d,c,b){a.setStyle(d,this.serve(c,b));},search:function(a){if(Fx.CSS.Cache[a]){return Fx.CSS.Cache[a];}var c={},b=new RegExp(&quot;^&quot;+a.escapeRegExp()+&quot;$&quot;);
++Array.each(document.styleSheets,function(f,e){var d=f.href;if(d&amp;&amp;d.contains(&quot;://&quot;)&amp;&amp;!d.contains(document.domain)){return;}var g=f.rules||f.cssRules;Array.each(g,function(k,h){if(!k.style){return;
++}var j=(k.selectorText)?k.selectorText.replace(/^\w+/,function(i){return i.toLowerCase();}):null;if(!j||!b.test(j)){return;}Object.each(Element.Styles,function(l,i){if(!k.style[i]||Element.ShortStyles[i]){return;
++}l=String(k.style[i]);c[i]=((/^rgb/).test(l))?l.rgbToHex():l;});});});return Fx.CSS.Cache[a]=c;}});Fx.CSS.Cache={};Fx.CSS.Parsers={Color:{parse:function(a){if(a.match(/^#[0-9a-f]{3,6}$/i)){return a.hexToRgb(true);
++}return((a=a.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[a[1],a[2],a[3]]:false;},compute:function(c,b,a){return c.map(function(e,d){return Math.round(Fx.compute(c[d],b[d],a));
++});},serve:function(a){return a.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(b,a){return(a)?b+a:b;}},String:{parse:Function.from(false),compute:function(b,a){return a;
++},serve:function(a){return a;}}};Fx.CSS.Parsers=new Hash(Fx.CSS.Parsers);Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=document.id(b);
++this.parent(a);},set:function(b,a){if(arguments.length==1){a=b;b=this.property||this.options.property;}this.render(this.element,b,a,this.options.unit);
++return this;},start:function(c,e,d){if(!this.check(c,e,d)){return this;}var b=Array.flatten(arguments);this.property=this.options.property||b.shift();var a=this.prepare(this.element,this.property,b);
++return this.parent(a.from,a.to);}});Element.Properties.tween={set:function(a){this.get(&quot;tween&quot;).cancel().setOptions(a);return this;},get:function(){var a=this.retrieve(&quot;tween&quot;);
++if(!a){a=new Fx.Tween(this,{link:&quot;cancel&quot;});this.store(&quot;tween&quot;,a);}return a;}};Element.implement({tween:function(a,c,b){this.get(&quot;tween&quot;).start(a,c,b);
++return this;},fade:function(c){var d=this.get(&quot;tween&quot;),f,e,a;if(c==null){c=&quot;toggle&quot;;}switch(c){case&quot;in&quot;:f=&quot;start&quot;;e=1;break;case&quot;out&quot;:f=&quot;start&quot;;e=0;break;
++case&quot;show&quot;:f=&quot;set&quot;;e=1;break;case&quot;hide&quot;:f=&quot;set&quot;;e=0;break;case&quot;toggle&quot;:var b=this.retrieve(&quot;fade:flag&quot;,this.getStyle(&quot;opacity&quot;)==1);f=&quot;start&quot;;e=b?0:1;this.store(&quot;fade:flag&quot;,!b);
++a=true;break;default:f=&quot;start&quot;;e=c;}if(!a){this.eliminate(&quot;fade:flag&quot;);}d[f](&quot;opacity&quot;,e);if(f==&quot;set&quot;||e!=0){this.setStyle(&quot;visibility&quot;,e==0?&quot;hidden&quot;:&quot;visible&quot;);
++}else{d.chain(function(){this.element.setStyle(&quot;visibility&quot;,&quot;hidden&quot;);});}return this;},highlight:function(c,a){if(!a){a=this.retrieve(&quot;highlight:original&quot;,this.getStyle(&quot;background-color&quot;));
++a=(a==&quot;transparent&quot;)?&quot;#fff&quot;:a;}var b=this.get(&quot;tween&quot;);b.start(&quot;background-color&quot;,c||&quot;#ffff88&quot;,a).chain(function(){this.setStyle(&quot;background-color&quot;,this.retrieve(&quot;highlight:original&quot;));
++b.callChain();}.bind(this));return this;}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=document.id(b);this.parent(a);
++},set:function(a){if(typeof a==&quot;string&quot;){a=this.search(a);}for(var b in a){this.render(this.element,b,a[b],this.options.unit);}return this;},compute:function(e,d,c){var a={};
++for(var b in e){a[b]=this.parent(e[b],d[b],c);}return a;},start:function(b){if(!this.check(b)){return this;}if(typeof b==&quot;string&quot;){b=this.search(b);}var e={},d={};
++for(var c in b){var a=this.prepare(this.element,c,b[c]);e[c]=a.from;d[c]=a.to;}return this.parent(e,d);}});Element.Properties.morph={set:function(a){this.get(&quot;morph&quot;).cancel().setOptions(a);
++return this;},get:function(){var a=this.retrieve(&quot;morph&quot;);if(!a){a=new Fx.Morph(this,{link:&quot;cancel&quot;});this.store(&quot;morph&quot;,a);}return a;}};Element.implement({morph:function(a){this.get(&quot;morph&quot;).start(a);
++return this;}});Fx.implement({getTransition:function(){var a=this.options.transition||Fx.Transitions.Sine.easeInOut;if(typeof a==&quot;string&quot;){var b=a.split(&quot;:&quot;);
++a=Fx.Transitions;a=a[b[0]]||a[b[0].capitalize()];if(b[1]){a=a[&quot;ease&quot;+b[1].capitalize()+(b[2]?b[2].capitalize():&quot;&quot;)];}}return a;}});Fx.Transition=function(c,b){b=Array.from(b);
++var a=function(d){return c(d,b);};return Object.append(a,{easeIn:a,easeOut:function(d){return 1-c(1-d,b);},easeInOut:function(d){return(d&lt;=0.5?c(2*d,b):(2-c(2*(1-d),b)))/2;
++}});};Fx.Transitions={linear:function(a){return a;}};Fx.Transitions=new Hash(Fx.Transitions);Fx.Transitions.extend=function(a){for(var b in a){Fx.Transitions[b]=new Fx.Transition(a[b]);
++}};Fx.Transitions.extend({Pow:function(b,a){return Math.pow(b,a&amp;&amp;a[0]||6);},Expo:function(a){return Math.pow(2,8*(a-1));},Circ:function(a){return 1-Math.sin(Math.acos(a));
++},Sine:function(a){return 1-Math.cos(a*Math.PI/2);},Back:function(b,a){a=a&amp;&amp;a[0]||1.618;return Math.pow(b,2)*((a+1)*b-a);},Bounce:function(f){var e;for(var d=0,c=1;
++1;d+=c,c/=2){if(f&gt;=(7-4*d)/11){e=c*c-Math.pow((11-6*d-11*f)/4,2);break;}}return e;},Elastic:function(b,a){return Math.pow(2,10*--b)*Math.cos(20*b*Math.PI*(a&amp;&amp;a[0]||1)/3);
++}});[&quot;Quad&quot;,&quot;Cubic&quot;,&quot;Quart&quot;,&quot;Quint&quot;].each(function(b,a){Fx.Transitions[b]=new Fx.Transition(function(c){return Math.pow(c,a+2);});});(function(){var d=function(){},a=(&quot;onprogress&quot; in new Browser.Request);
++var c=this.Request=new Class({Implements:[Chain,Events,Options],options:{url:&quot;&quot;,data:&quot;&quot;,headers:{&quot;X-Requested-With&quot;:&quot;XMLHttpRequest&quot;,Accept:&quot;text/javascript, text/html, application/xml, text/xml, */*&quot;},async:true,format:false,method:&quot;post&quot;,link:&quot;ignore&quot;,isSuccess:null,emulation:true,urlEncoded:true,encoding:&quot;utf-8&quot;,evalScripts:false,evalResponse:false,timeout:0,noCache:false},initialize:function(e){this.xhr=new Browser.Request();
++this.setOptions(e);this.headers=this.options.headers;},onStateChange:function(){var e=this.xhr;if(e.readyState!=4||!this.running){return;}this.running=false;
++this.status=0;Function.attempt(function(){var f=e.status;this.status=(f==1223)?204:f;}.bind(this));e.onreadystatechange=d;if(a){e.onprogress=e.onloadstart=d;
++}clearTimeout(this.timer);this.response={text:this.xhr.responseText||&quot;&quot;,xml:this.xhr.responseXML};if(this.options.isSuccess.call(this,this.status)){this.success(this.response.text,this.response.xml);
++}else{this.failure();}},isSuccess:function(){var e=this.status;return(e&gt;=200&amp;&amp;e&lt;300);},isRunning:function(){return !!this.running;},processScripts:function(e){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader(&quot;Content-type&quot;))){return Browser.exec(e);
++}return e.stripScripts(this.options.evalScripts);},success:function(f,e){this.onSuccess(this.processScripts(f),e);},onSuccess:function(){this.fireEvent(&quot;complete&quot;,arguments).fireEvent(&quot;success&quot;,arguments).callChain();
++},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent(&quot;complete&quot;).fireEvent(&quot;failure&quot;,this.xhr);},loadstart:function(e){this.fireEvent(&quot;loadstart&quot;,[e,this.xhr]);
++},progress:function(e){this.fireEvent(&quot;progress&quot;,[e,this.xhr]);},timeout:function(){this.fireEvent(&quot;timeout&quot;,this.xhr);},setHeader:function(e,f){this.headers[e]=f;
++return this;},getHeader:function(e){return Function.attempt(function(){return this.xhr.getResponseHeader(e);}.bind(this));},check:function(){if(!this.running){return true;
++}switch(this.options.link){case&quot;cancel&quot;:this.cancel();return true;case&quot;chain&quot;:this.chain(this.caller.pass(arguments,this));return false;}return false;},send:function(o){if(!this.check(o)){return this;
++}this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.running=true;var l=typeOf(o);if(l==&quot;string&quot;||l==&quot;element&quot;){o={data:o};}var h=this.options;
++o=Object.append({data:h.data,url:h.url,method:h.method},o);var j=o.data,f=String(o.url),e=o.method.toLowerCase();switch(typeOf(j)){case&quot;element&quot;:j=document.id(j).toQueryString();
++break;case&quot;object&quot;:case&quot;hash&quot;:j=Object.toQueryString(j);}if(this.options.format){var m=&quot;format=&quot;+this.options.format;j=(j)?m+&quot;&amp;&quot;+j:m;}if(this.options.emulation&amp;&amp;![&quot;get&quot;,&quot;post&quot;].contains(e)){var k=&quot;_method=&quot;+e;
++j=(j)?k+&quot;&amp;&quot;+j:k;e=&quot;post&quot;;}if(this.options.urlEncoded&amp;&amp;[&quot;post&quot;,&quot;put&quot;].contains(e)){var g=(this.options.encoding)?&quot;; charset=&quot;+this.options.encoding:&quot;&quot;;this.headers[&quot;Content-type&quot;]=&quot;application/x-www-form-urlencoded&quot;+g;
++}if(!f){f=document.location.pathname;}var i=f.lastIndexOf(&quot;/&quot;);if(i&gt;-1&amp;&amp;(i=f.indexOf(&quot;#&quot;))&gt;-1){f=f.substr(0,i);}if(this.options.noCache){f+=(f.contains(&quot;?&quot;)?&quot;&amp;&quot;:&quot;?&quot;)+String.uniqueID();
++}if(j&amp;&amp;e==&quot;get&quot;){f+=(f.contains(&quot;?&quot;)?&quot;&amp;&quot;:&quot;?&quot;)+j;j=null;}var n=this.xhr;if(a){n.onloadstart=this.loadstart.bind(this);n.onprogress=this.progress.bind(this);
++}n.open(e.toUpperCase(),f,this.options.async,this.options.user,this.options.password);if(this.options.user&amp;&amp;&quot;withCredentials&quot; in n){n.withCredentials=true;
++}n.onreadystatechange=this.onStateChange.bind(this);Object.each(this.headers,function(q,p){try{n.setRequestHeader(p,q);}catch(r){this.fireEvent(&quot;exception&quot;,[p,q]);
++}},this);this.fireEvent(&quot;request&quot;);n.send(j);if(!this.options.async){this.onStateChange();}if(this.options.timeout){this.timer=this.timeout.delay(this.options.timeout,this);
++}return this;},cancel:function(){if(!this.running){return this;}this.running=false;var e=this.xhr;e.abort();clearTimeout(this.timer);e.onreadystatechange=d;
++if(a){e.onprogress=e.onloadstart=d;}this.xhr=new Browser.Request();this.fireEvent(&quot;cancel&quot;);return this;}});var b={};[&quot;get&quot;,&quot;post&quot;,&quot;put&quot;,&quot;delete&quot;,&quot;GET&quot;,&quot;POST&quot;,&quot;PUT&quot;,&quot;DELETE&quot;].each(function(e){b[e]=function(g){var f={method:e};
++if(g!=null){f.data=g;}return this.send(f);};});c.implement(b);Element.Properties.send={set:function(e){var f=this.get(&quot;send&quot;).cancel();f.setOptions(e);
++return this;},get:function(){var e=this.retrieve(&quot;send&quot;);if(!e){e=new c({data:this,link:&quot;cancel&quot;,method:this.get(&quot;method&quot;)||&quot;post&quot;,url:this.get(&quot;action&quot;)});
++this.store(&quot;send&quot;,e);}return e;}};Element.implement({send:function(e){var f=this.get(&quot;send&quot;);f.send({data:this,url:e||f.options.url});return this;}});})();
++Request.HTML=new Class({Extends:Request,options:{update:false,append:false,evalScripts:true,filter:false,headers:{Accept:&quot;text/html, application/xml, text/xml, */*&quot;}},success:function(f){var e=this.options,c=this.response;
++c.html=f.stripScripts(function(h){c.javascript=h;});var d=c.html.match(/&lt;body[^&gt;]*&gt;([\s\S]*?)&lt;\/body&gt;/i);if(d){c.html=d[1];}var b=new Element(&quot;div&quot;).set(&quot;html&quot;,c.html);
++c.tree=b.childNodes;c.elements=b.getElements(e.filter||&quot;*&quot;);if(e.filter){c.tree=c.elements;}if(e.update){var g=document.id(e.update).empty();if(e.filter){g.adopt(c.elements);
++}else{g.set(&quot;html&quot;,c.html);}}else{if(e.append){var a=document.id(e.append);if(e.filter){c.elements.reverse().inject(a);}else{a.adopt(b.getChildren());}}}if(e.evalScripts){Browser.exec(c.javascript);
++}this.onSuccess(c.tree,c.elements,c.html,c.javascript);}});Element.Properties.load={set:function(a){var b=this.get(&quot;load&quot;).cancel();b.setOptions(a);return this;
++},get:function(){var a=this.retrieve(&quot;load&quot;);if(!a){a=new Request.HTML({data:this,link:&quot;cancel&quot;,update:this,method:&quot;get&quot;});this.store(&quot;load&quot;,a);}return a;
++}};Element.implement({load:function(){this.get(&quot;load&quot;).send(Array.link(arguments,{data:Type.isObject,url:Type.isString}));return this;}});if(typeof JSON==&quot;undefined&quot;){this.JSON={};
++}JSON=new Hash({stringify:JSON.stringify,parse:JSON.parse});(function(){var special={&quot;\b&quot;:&quot;\\b&quot;,&quot;\t&quot;:&quot;\\t&quot;,&quot;\n&quot;:&quot;\\n&quot;,&quot;\f&quot;:&quot;\\f&quot;,&quot;\r&quot;:&quot;\\r&quot;,'&quot;':'\\&quot;',&quot;\\&quot;:&quot;\\\\&quot;};
++var escape=function(chr){return special[chr]||&quot;\\u&quot;+(&quot;0000&quot;+chr.charCodeAt(0).toString(16)).slice(-4);};JSON.validate=function(string){string=string.replace(/\\(?:[&quot;\\\/bfnrt]|u[0-9a-fA-F]{4})/g,&quot;@&quot;).replace(/&quot;[^&quot;\\\n\r]*&quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,&quot;]&quot;).replace(/(?:^|:|,)(?:\s*\[)+/g,&quot;&quot;);
++return(/^[\],:{}\s]*$/).test(string);};JSON.encode=JSON.stringify?function(obj){return JSON.stringify(obj);}:function(obj){if(obj&amp;&amp;obj.toJSON){obj=obj.toJSON();
++}switch(typeOf(obj)){case&quot;string&quot;:return'&quot;'+obj.replace(/[\x00-\x1f\\&quot;]/g,escape)+'&quot;';case&quot;array&quot;:return&quot;[&quot;+obj.map(JSON.encode).clean()+&quot;]&quot;;case&quot;object&quot;:case&quot;hash&quot;:var string=[];
++Object.each(obj,function(value,key){var json=JSON.encode(value);if(json){string.push(JSON.encode(key)+&quot;:&quot;+json);}});return&quot;{&quot;+string+&quot;}&quot;;case&quot;number&quot;:case&quot;boolean&quot;:return&quot;&quot;+obj;
++case&quot;null&quot;:return&quot;null&quot;;}return null;};JSON.decode=function(string,secure){if(!string||typeOf(string)!=&quot;string&quot;){return null;}if(secure||JSON.secure){if(JSON.parse){return JSON.parse(string);
++}if(!JSON.validate(string)){throw new Error(&quot;JSON could not decode the input; security is enabled and the value is not secure.&quot;);}}return eval(&quot;(&quot;+string+&quot;)&quot;);
++};})();Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(a){this.parent(a);Object.append(this.headers,{Accept:&quot;application/json&quot;,&quot;X-Request&quot;:&quot;JSON&quot;});
++},success:function(c){var b;try{b=this.response.json=JSON.decode(c,this.options.secure);}catch(a){this.fireEvent(&quot;error&quot;,[c,a]);return;}if(b==null){this.onFailure();
++}else{this.onSuccess(b,c);}}});var Cookie=new Class({Implements:Options,options:{path:&quot;/&quot;,domain:false,duration:false,secure:false,document:document,encode:true},initialize:function(b,a){this.key=b;
++this.setOptions(a);},write:function(b){if(this.options.encode){b=encodeURIComponent(b);}if(this.options.domain){b+=&quot;; domain=&quot;+this.options.domain;}if(this.options.path){b+=&quot;; path=&quot;+this.options.path;
++}if(this.options.duration){var a=new Date();a.setTime(a.getTime()+this.options.duration*24*60*60*1000);b+=&quot;; expires=&quot;+a.toGMTString();}if(this.options.secure){b+=&quot;; secure&quot;;
++}this.options.document.cookie=this.key+&quot;=&quot;+b;return this;},read:function(){var a=this.options.document.cookie.match(&quot;(?:^|;)\\s*&quot;+this.key.escapeRegExp()+&quot;=([^;]*)&quot;);
++return(a)?decodeURIComponent(a[1]):null;},dispose:function(){new Cookie(this.key,Object.merge({},this.options,{duration:-1})).write(&quot;&quot;);return this;}});
++Cookie.write=function(b,c,a){return new Cookie(b,a).write(c);};Cookie.read=function(a){return new Cookie(a).read();};Cookie.dispose=function(b,a){return new Cookie(b,a).dispose();
++};(function(i,k){var l,f,e=[],c,b,d=k.createElement(&quot;div&quot;);var g=function(){clearTimeout(b);if(l){return;}Browser.loaded=l=true;k.removeListener(&quot;DOMContentLoaded&quot;,g).removeListener(&quot;readystatechange&quot;,a);
++k.fireEvent(&quot;domready&quot;);i.fireEvent(&quot;domready&quot;);};var a=function(){for(var m=e.length;m--;){if(e[m]()){g();return true;}}return false;};var j=function(){clearTimeout(b);
++if(!a()){b=setTimeout(j,10);}};k.addListener(&quot;DOMContentLoaded&quot;,g);var h=function(){try{d.doScroll();return true;}catch(m){}return false;};if(d.doScroll&amp;&amp;!h()){e.push(h);
++c=true;}if(k.readyState){e.push(function(){var m=k.readyState;return(m==&quot;loaded&quot;||m==&quot;complete&quot;);});}if(&quot;onreadystatechange&quot; in k){k.addListener(&quot;readystatechange&quot;,a);
++}else{c=true;}if(c){j();}Element.Events.domready={onAdd:function(m){if(l){m.call(this);}}};Element.Events.load={base:&quot;load&quot;,onAdd:function(m){if(f&amp;&amp;this==i){m.call(this);
++}},condition:function(){if(this==i){g();delete Element.Events.load;}return true;}};i.addEvent(&quot;load&quot;,function(){f=true;});})(window,document);(function(){var Swiff=this.Swiff=new Class({Implements:Options,options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:&quot;high&quot;,allowScriptAccess:&quot;always&quot;,wMode:&quot;window&quot;,swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object;
++},initialize:function(path,options){this.instance=&quot;Swiff_&quot;+String.uniqueID();this.setOptions(options);options=this.options;var id=this.id=options.id||this.instance;
++var container=document.id(options.container);Swiff.CallBacks[this.instance]={};var params=options.params,vars=options.vars,callBacks=options.callBacks;
++var properties=Object.append({height:options.height,width:options.width},options.properties);var self=this;for(var callBack in callBacks){Swiff.CallBacks[this.instance][callBack]=(function(option){return function(){return option.apply(self.object,arguments);
++};})(callBacks[callBack]);vars[callBack]=&quot;Swiff.CallBacks.&quot;+this.instance+&quot;.&quot;+callBack;}params.flashVars=Object.toQueryString(vars);if(Browser.ie){properties.classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot;;
++params.movie=path;}else{properties.type=&quot;application/x-shockwave-flash&quot;;}properties.data=path;var build='&lt;object id=&quot;'+id+'&quot;';for(var property in properties){build+=&quot; &quot;+property+'=&quot;'+properties[property]+'&quot;';
++}build+=&quot;&gt;&quot;;for(var param in params){if(params[param]){build+='&lt;param name=&quot;'+param+'&quot; value=&quot;'+params[param]+'&quot; /&gt;';}}build+=&quot;&lt;/object&gt;&quot;;this.object=((container)?container.empty():new Element(&quot;div&quot;)).set(&quot;html&quot;,build).firstChild;
++},replaces:function(element){element=document.id(element,true);element.parentNode.replaceChild(this.toElement(),element);return this;},inject:function(element){document.id(element,true).appendChild(this.toElement());
++return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].append(arguments));}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('&lt;invoke name=&quot;'+fn+'&quot; returntype=&quot;javascript&quot;&gt;'+__flash__argumentsToXML(arguments,2)+&quot;&lt;/invoke&gt;&quot;);
++return eval(rs);};})();
+\ No newline at end of file
+diff --git a/web/ajax/libs/prototype/1.7.0.0/prototype.js b/web/ajax/libs/prototype/1.7.0.0/prototype.js
+new file mode 100644
+index 0000000..474b223
+--- /dev/null
++++ b/web/ajax/libs/prototype/1.7.0.0/prototype.js
+@@ -0,0 +1,6082 @@
++/*  Prototype JavaScript framework, version 1.7
++ *  (c) 2005-2010 Sam Stephenson
++ *
++ *  Prototype is freely distributable under the terms of an MIT-style license.
++ *  For details, see the Prototype web site: http://www.prototypejs.org/
++ *
++ *--------------------------------------------------------------------------*/
++
++var Prototype = {
++
++  Version: '1.7',
++
++  Browser: (function(){
++    var ua = navigator.userAgent;
++    var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';
++    return {
++      IE:             !!window.attachEvent &amp;&amp; !isOpera,
++      Opera:          isOpera,
++      WebKit:         ua.indexOf('AppleWebKit/') &gt; -1,
++      Gecko:          ua.indexOf('Gecko') &gt; -1 &amp;&amp; ua.indexOf('KHTML') === -1,
++      MobileSafari:   /Apple.*Mobile/.test(ua)
++    }
++  })(),
++
++  BrowserFeatures: {
++    XPath: !!document.evaluate,
++
++    SelectorsAPI: !!document.querySelector,
++
++    ElementExtensions: (function() {
++      var constructor = window.Element || window.HTMLElement;
++      return !!(constructor &amp;&amp; constructor.prototype);
++    })(),
++    SpecificElementExtensions: (function() {
++      if (typeof window.HTMLDivElement !== 'undefined')
++        return true;
++
++      var div = document.createElement('div'),
++          form = document.createElement('form'),
++          isSupported = false;
++
++      if (div['__proto__'] &amp;&amp; (div['__proto__'] !== form['__proto__'])) {
++        isSupported = true;
++      }
++
++      div = form = null;
++
++      return isSupported;
++    })()
++  },
++
++  ScriptFragment: '&lt;script[^&gt;]*&gt;([\\S\\s]*?)&lt;\/script&gt;',
++  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
++
++  emptyFunction: function() { },
++
++  K: function(x) { return x }
++};
++
++if (Prototype.Browser.MobileSafari)
++  Prototype.BrowserFeatures.SpecificElementExtensions = false;
++
++
++var Abstract = { };
++
++
++var Try = {
++  these: function() {
++    var returnValue;
++
++    for (var i = 0, length = arguments.length; i &lt; length; i++) {
++      var lambda = arguments[i];
++      try {
++        returnValue = lambda();
++        break;
++      } catch (e) { }
++    }
++
++    return returnValue;
++  }
++};
++
++/* Based on Alex Arnell's inheritance implementation. */
++
++var Class = (function() {
++
++  var IS_DONTENUM_BUGGY = (function(){
++    for (var p in { toString: 1 }) {
++      if (p === 'toString') return false;
++    }
++    return true;
++  })();
++
++  function subclass() {};
++  function create() {
++    var parent = null, properties = $A(arguments);
++    if (Object.isFunction(properties[0]))
++      parent = properties.shift();
++
++    function klass() {
++      this.initialize.apply(this, arguments);
++    }
++
++    Object.extend(klass, Class.Methods);
++    klass.superclass = parent;
++    klass.subclasses = [];
++
++    if (parent) {
++      subclass.prototype = parent.prototype;
++      klass.prototype = new subclass;
++      parent.subclasses.push(klass);
++    }
++
++    for (var i = 0, length = properties.length; i &lt; length; i++)
++      klass.addMethods(properties[i]);
++
++    if (!klass.prototype.initialize)
++      klass.prototype.initialize = Prototype.emptyFunction;
++
++    klass.prototype.constructor = klass;
++    return klass;
++  }
++
++  function addMethods(source) {
++    var ancestor   = this.superclass &amp;&amp; this.superclass.prototype,
++        properties = Object.keys(source);
++
++    if (IS_DONTENUM_BUGGY) {
++      if (source.toString != Object.prototype.toString)
++        properties.push(&quot;toString&quot;);
++      if (source.valueOf != Object.prototype.valueOf)
++        properties.push(&quot;valueOf&quot;);
++    }
++
++    for (var i = 0, length = properties.length; i &lt; length; i++) {
++      var property = properties[i], value = source[property];
++      if (ancestor &amp;&amp; Object.isFunction(value) &amp;&amp;
++          value.argumentNames()[0] == &quot;$super&quot;) {
++        var method = value;
++        value = (function(m) {
++          return function() { return ancestor[m].apply(this, arguments); };
++        })(property).wrap(method);
++
++        value.valueOf = method.valueOf.bind(method);
++        value.toString = method.toString.bind(method);
++      }
++      this.prototype[property] = value;
++    }
++
++    return this;
++  }
++
++  return {
++    create: create,
++    Methods: {
++      addMethods: addMethods
++    }
++  };
++})();
++(function() {
++
++  var _toString = Object.prototype.toString,
++      NULL_TYPE = 'Null',
++      UNDEFINED_TYPE = 'Undefined',
++      BOOLEAN_TYPE = 'Boolean',
++      NUMBER_TYPE = 'Number',
++      STRING_TYPE = 'String',
++      OBJECT_TYPE = 'Object',
++      FUNCTION_CLASS = '[object Function]',
++      BOOLEAN_CLASS = '[object Boolean]',
++      NUMBER_CLASS = '[object Number]',
++      STRING_CLASS = '[object String]',
++      ARRAY_CLASS = '[object Array]',
++      DATE_CLASS = '[object Date]',
++      NATIVE_JSON_STRINGIFY_SUPPORT = window.JSON &amp;&amp;
++        typeof JSON.stringify === 'function' &amp;&amp;
++        JSON.stringify(0) === '0' &amp;&amp;
++        typeof JSON.stringify(Prototype.K) === 'undefined';
++
++  function Type(o) {
++    switch(o) {
++      case null: return NULL_TYPE;
++      case (void 0): return UNDEFINED_TYPE;
++    }
++    var type = typeof o;
++    switch(type) {
++      case 'boolean': return BOOLEAN_TYPE;
++      case 'number':  return NUMBER_TYPE;
++      case 'string':  return STRING_TYPE;
++    }
++    return OBJECT_TYPE;
++  }
++
++  function extend(destination, source) {
++    for (var property in source)
++      destination[property] = source[property];
++    return destination;
++  }
++
++  function inspect(object) {
++    try {
++      if (isUndefined(object)) return 'undefined';
++      if (object === null) return 'null';
++      return object.inspect ? object.inspect() : String(object);
++    } catch (e) {
++      if (e instanceof RangeError) return '...';
++      throw e;
++    }
++  }
++
++  function toJSON(value) {
++    return Str('', { '': value }, []);
++  }
++
++  function Str(key, holder, stack) {
++    var value = holder[key],
++        type = typeof value;
++
++    if (Type(value) === OBJECT_TYPE &amp;&amp; typeof value.toJSON === 'function') {
++      value = value.toJSON(key);
++    }
++
++    var _class = _toString.call(value);
++
++    switch (_class) {
++      case NUMBER_CLASS:
++      case BOOLEAN_CLASS:
++      case STRING_CLASS:
++        value = value.valueOf();
++    }
++
++    switch (value) {
++      case null: return 'null';
++      case true: return 'true';
++      case false: return 'false';
++    }
++
++    type = typeof value;
++    switch (type) {
++      case 'string':
++        return value.inspect(true);
++      case 'number':
++        return isFinite(value) ? String(value) : 'null';
++      case 'object':
++
++        for (var i = 0, length = stack.length; i &lt; length; i++) {
++          if (stack[i] === value) { throw new TypeError(); }
++        }
++        stack.push(value);
++
++        var partial = [];
++        if (_class === ARRAY_CLASS) {
++          for (var i = 0, length = value.length; i &lt; length; i++) {
++            var str = Str(i, value, stack);
++            partial.push(typeof str === 'undefined' ? 'null' : str);
++          }
++          partial = '[' + partial.join(',') + ']';
++        } else {
++          var keys = Object.keys(value);
++          for (var i = 0, length = keys.length; i &lt; length; i++) {
++            var key = keys[i], str = Str(key, value, stack);
++            if (typeof str !== &quot;undefined&quot;) {
++               partial.push(key.inspect(true)+ ':' + str);
++             }
++          }
++          partial = '{' + partial.join(',') + '}';
++        }
++        stack.pop();
++        return partial;
++    }
++  }
++
++  function stringify(object) {
++    return JSON.stringify(object);
++  }
++
++  function toQueryString(object) {
++    return $H(object).toQueryString();
++  }
++
++  function toHTML(object) {
++    return object &amp;&amp; object.toHTML ? object.toHTML() : String.interpret(object);
++  }
++
++  function keys(object) {
++    if (Type(object) !== OBJECT_TYPE) { throw new TypeError(); }
++    var results = [];
++    for (var property in object) {
++      if (object.hasOwnProperty(property)) {
++        results.push(property);
++      }
++    }
++    return results;
++  }
++
++  function values(object) {
++    var results = [];
++    for (var property in object)
++      results.push(object[property]);
++    return results;
++  }
++
++  function clone(object) {
++    return extend({ }, object);
++  }
++
++  function isElement(object) {
++    return !!(object &amp;&amp; object.nodeType == 1);
++  }
++
++  function isArray(object) {
++    return _toString.call(object) === ARRAY_CLASS;
++  }
++
++  var hasNativeIsArray = (typeof Array.isArray == 'function')
++    &amp;&amp; Array.isArray([]) &amp;&amp; !Array.isArray({});
++
++  if (hasNativeIsArray) {
++    isArray = Array.isArray;
++  }
++
++  function isHash(object) {
++    return object instanceof Hash;
++  }
++
++  function isFunction(object) {
++    return _toString.call(object) === FUNCTION_CLASS;
++  }
++
++  function isString(object) {
++    return _toString.call(object) === STRING_CLASS;
++  }
++
++  function isNumber(object) {
++    return _toString.call(object) === NUMBER_CLASS;
++  }
++
++  function isDate(object) {
++    return _toString.call(object) === DATE_CLASS;
++  }
++
++  function isUndefined(object) {
++    return typeof object === &quot;undefined&quot;;
++  }
++
++  extend(Object, {
++    extend:        extend,
++    inspect:       inspect,
++    toJSON:        NATIVE_JSON_STRINGIFY_SUPPORT ? stringify : toJSON,
++    toQueryString: toQueryString,
++    toHTML:        toHTML,
++    keys:          Object.keys || keys,
++    values:        values,
++    clone:         clone,
++    isElement:     isElement,
++    isArray:       isArray,
++    isHash:        isHash,
++    isFunction:    isFunction,
++    isString:      isString,
++    isNumber:      isNumber,
++    isDate:        isDate,
++    isUndefined:   isUndefined
++  });
++})();
++Object.extend(Function.prototype, (function() {
++  var slice = Array.prototype.slice;
++
++  function update(array, args) {
++    var arrayLength = array.length, length = args.length;
++    while (length--) array[arrayLength + length] = args[length];
++    return array;
++  }
++
++  function merge(array, args) {
++    array = slice.call(array, 0);
++    return update(array, args);
++  }
++
++  function argumentNames() {
++    var names = this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1]
++      .replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g, '')
++      .replace(/\s+/g, '').split(',');
++    return names.length == 1 &amp;&amp; !names[0] ? [] : names;
++  }
++
++  function bind(context) {
++    if (arguments.length &lt; 2 &amp;&amp; Object.isUndefined(arguments[0])) return this;
++    var __method = this, args = slice.call(arguments, 1);
++    return function() {
++      var a = merge(args, arguments);
++      return __method.apply(context, a);
++    }
++  }
++
++  function bindAsEventListener(context) {
++    var __method = this, args = slice.call(arguments, 1);
++    return function(event) {
++      var a = update([event || window.event], args);
++      return __method.apply(context, a);
++    }
++  }
++
++  function curry() {
++    if (!arguments.length) return this;
++    var __method = this, args = slice.call(arguments, 0);
++    return function() {
++      var a = merge(args, arguments);
++      return __method.apply(this, a);
++    }
++  }
++
++  function delay(timeout) {
++    var __method = this, args = slice.call(arguments, 1);
++    timeout = timeout * 1000;
++    return window.setTimeout(function() {
++      return __method.apply(__method, args);
++    }, timeout);
++  }
++
++  function defer() {
++    var args = update([0.01], arguments);
++    return this.delay.apply(this, args);
++  }
++
++  function wrap(wrapper) {
++    var __method = this;
++    return function() {
++      var a = update([__method.bind(this)], arguments);
++      return wrapper.apply(this, a);
++    }
++  }
++
++  function methodize() {
++    if (this._methodized) return this._methodized;
++    var __method = this;
++    return this._methodized = function() {
++      var a = update([this], arguments);
++      return __method.apply(null, a);
++    };
++  }
++
++  return {
++    argumentNames:       argumentNames,
++    bind:                bind,
++    bindAsEventListener: bindAsEventListener,
++    curry:               curry,
++    delay:               delay,
++    defer:               defer,
++    wrap:                wrap,
++    methodize:           methodize
++  }
++})());
++
++
++
++(function(proto) {
++
++
++  function toISOString() {
++    return this.getUTCFullYear() + '-' +
++      (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
++      this.getUTCDate().toPaddedString(2) + 'T' +
++      this.getUTCHours().toPaddedString(2) + ':' +
++      this.getUTCMinutes().toPaddedString(2) + ':' +
++      this.getUTCSeconds().toPaddedString(2) + 'Z';
++  }
++
++
++  function toJSON() {
++    return this.toISOString();
++  }
++
++  if (!proto.toISOString) proto.toISOString = toISOString;
++  if (!proto.toJSON) proto.toJSON = toJSON;
++
++})(Date.prototype);
++
++
++RegExp.prototype.match = RegExp.prototype.test;
++
++RegExp.escape = function(str) {
++  return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
++};
++var PeriodicalExecuter = Class.create({
++  initialize: function(callback, frequency) {
++    this.callback = callback;
++    this.frequency = frequency;
++    this.currentlyExecuting = false;
++
++    this.registerCallback();
++  },
++
++  registerCallback: function() {
++    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
++  },
++
++  execute: function() {
++    this.callback(this);
++  },
++
++  stop: function() {
++    if (!this.timer) return;
++    clearInterval(this.timer);
++    this.timer = null;
++  },
++
++  onTimerEvent: function() {
++    if (!this.currentlyExecuting) {
++      try {
++        this.currentlyExecuting = true;
++        this.execute();
++        this.currentlyExecuting = false;
++      } catch(e) {
++        this.currentlyExecuting = false;
++        throw e;
++      }
++    }
++  }
++});
++Object.extend(String, {
++  interpret: function(value) {
++    return value == null ? '' : String(value);
++  },
++  specialChar: {
++    '\b': '\\b',
++    '\t': '\\t',
++    '\n': '\\n',
++    '\f': '\\f',
++    '\r': '\\r',
++    '\\': '\\\\'
++  }
++});
++
++Object.extend(String.prototype, (function() {
++  var NATIVE_JSON_PARSE_SUPPORT = window.JSON &amp;&amp;
++    typeof JSON.parse === 'function' &amp;&amp;
++    JSON.parse('{&quot;test&quot;: true}').test;
++
++  function prepareReplacement(replacement) {
++    if (Object.isFunction(replacement)) return replacement;
++    var template = new Template(replacement);
++    return function(match) { return template.evaluate(match) };
++  }
++
++  function gsub(pattern, replacement) {
++    var result = '', source = this, match;
++    replacement = prepareReplacement(replacement);
++
++    if (Object.isString(pattern))
++      pattern = RegExp.escape(pattern);
++
++    if (!(pattern.length || pattern.source)) {
++      replacement = replacement('');
++      return replacement + source.split('').join(replacement) + replacement;
++    }
++
++    while (source.length &gt; 0) {
++      if (match = source.match(pattern)) {
++        result += source.slice(0, match.index);
++        result += String.interpret(replacement(match));
++        source  = source.slice(match.index + match[0].length);
++      } else {
++        result += source, source = '';
++      }
++    }
++    return result;
++  }
++
++  function sub(pattern, replacement, count) {
++    replacement = prepareReplacement(replacement);
++    count = Object.isUndefined(count) ? 1 : count;
++
++    return this.gsub(pattern, function(match) {
++      if (--count &lt; 0) return match[0];
++      return replacement(match);
++    });
++  }
++
++  function scan(pattern, iterator) {
++    this.gsub(pattern, iterator);
++    return String(this);
++  }
++
++  function truncate(length, truncation) {
++    length = length || 30;
++    truncation = Object.isUndefined(truncation) ? '...' : truncation;
++    return this.length &gt; length ?
++      this.slice(0, length - truncation.length) + truncation : String(this);
++  }
++
++  function strip() {
++    return this.replace(/^\s+/, '').replace(/\s+$/, '');
++  }
++
++  function stripTags() {
++    return this.replace(/&lt;\w+(\s+(&quot;[^&quot;]*&quot;|'[^']*'|[^&gt;])+)?&gt;|&lt;\/\w+&gt;/gi, '');
++  }
++
++  function stripScripts() {
++    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
++  }
++
++  function extractScripts() {
++    var matchAll = new RegExp(Prototype.ScriptFragment, 'img'),
++        matchOne = new RegExp(Prototype.ScriptFragment, 'im');
++    return (this.match(matchAll) || []).map(function(scriptTag) {
++      return (scriptTag.match(matchOne) || ['', ''])[1];
++    });
++  }
++
++  function evalScripts() {
++    return this.extractScripts().map(function(script) { return eval(script) });
++  }
++
++  function escapeHTML() {
++    return this.replace(/&amp;/g,'&amp;amp;').replace(/&lt;/g,'&amp;lt;').replace(/&gt;/g,'&amp;gt;');
++  }
++
++  function unescapeHTML() {
++    return this.stripTags().replace(/&amp;lt;/g,'&lt;').replace(/&amp;gt;/g,'&gt;').replace(/&amp;amp;/g,'&amp;');
++  }
++
++
++  function toQueryParams(separator) {
++    var match = this.strip().match(/([^?#]*)(#.*)?$/);
++    if (!match) return { };
++
++    return match[1].split(separator || '&amp;').inject({ }, function(hash, pair) {
++      if ((pair = pair.split('='))[0]) {
++        var key = decodeURIComponent(pair.shift()),
++            value = pair.length &gt; 1 ? pair.join('=') : pair[0];
++
++        if (value != undefined) value = decodeURIComponent(value);
++
++        if (key in hash) {
++          if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
++          hash[key].push(value);
++        }
++        else hash[key] = value;
++      }
++      return hash;
++    });
++  }
++
++  function toArray() {
++    return this.split('');
++  }
++
++  function succ() {
++    return this.slice(0, this.length - 1) +
++      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
++  }
++
++  function times(count) {
++    return count &lt; 1 ? '' : new Array(count + 1).join(this);
++  }
++
++  function camelize() {
++    return this.replace(/-+(.)?/g, function(match, chr) {
++      return chr ? chr.toUpperCase() : '';
++    });
++  }
++
++  function capitalize() {
++    return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
++  }
++
++  function underscore() {
++    return this.replace(/::/g, '/')
++               .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
++               .replace(/([a-z\d])([A-Z])/g, '$1_$2')
++               .replace(/-/g, '_')
++               .toLowerCase();
++  }
++
++  function dasherize() {
++    return this.replace(/_/g, '-');
++  }
++
++  function inspect(useDoubleQuotes) {
++    var escapedString = this.replace(/[\x00-\x1f\\]/g, function(character) {
++      if (character in String.specialChar) {
++        return String.specialChar[character];
++      }
++      return '\\u00' + character.charCodeAt().toPaddedString(2, 16);
++    });
++    if (useDoubleQuotes) return '&quot;' + escapedString.replace(/&quot;/g, '\\&quot;') + '&quot;';
++    return &quot;'&quot; + escapedString.replace(/'/g, '\\\'') + &quot;'&quot;;
++  }
++
++  function unfilterJSON(filter) {
++    return this.replace(filter || Prototype.JSONFilter, '$1');
++  }
++
++  function isJSON() {
++    var str = this;
++    if (str.blank()) return false;
++    str = str.replace(/\\(?:[&quot;\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@');
++    str = str.replace(/&quot;[^&quot;\\\n\r]*&quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
++    str = str.replace(/(?:^|:|,)(?:\s*\[)+/g, '');
++    return (/^[\],:{}\s]*$/).test(str);
++  }
++
++  function evalJSON(sanitize) {
++    var json = this.unfilterJSON(),
++        cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
++    if (cx.test(json)) {
++      json = json.replace(cx, function (a) {
++        return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
++      });
++    }
++    try {
++      if (!sanitize || json.isJSON()) return eval('(' + json + ')');
++    } catch (e) { }
++    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
++  }
++
++  function parseJSON() {
++    var json = this.unfilterJSON();
++    return JSON.parse(json);
++  }
++
++  function include(pattern) {
++    return this.indexOf(pattern) &gt; -1;
++  }
++
++  function startsWith(pattern) {
++    return this.lastIndexOf(pattern, 0) === 0;
++  }
++
++  function endsWith(pattern) {
++    var d = this.length - pattern.length;
++    return d &gt;= 0 &amp;&amp; this.indexOf(pattern, d) === d;
++  }
++
++  function empty() {
++    return this == '';
++  }
++
++  function blank() {
++    return /^\s*$/.test(this);
++  }
++
++  function interpolate(object, pattern) {
++    return new Template(this, pattern).evaluate(object);
++  }
++
++  return {
++    gsub:           gsub,
++    sub:            sub,
++    scan:           scan,
++    truncate:       truncate,
++    strip:          String.prototype.trim || strip,
++    stripTags:      stripTags,
++    stripScripts:   stripScripts,
++    extractScripts: extractScripts,
++    evalScripts:    evalScripts,
++    escapeHTML:     escapeHTML,
++    unescapeHTML:   unescapeHTML,
++    toQueryParams:  toQueryParams,
++    parseQuery:     toQueryParams,
++    toArray:        toArray,
++    succ:           succ,
++    times:          times,
++    camelize:       camelize,
++    capitalize:     capitalize,
++    underscore:     underscore,
++    dasherize:      dasherize,
++    inspect:        inspect,
++    unfilterJSON:   unfilterJSON,
++    isJSON:         isJSON,
++    evalJSON:       NATIVE_JSON_PARSE_SUPPORT ? parseJSON : evalJSON,
++    include:        include,
++    startsWith:     startsWith,
++    endsWith:       endsWith,
++    empty:          empty,
++    blank:          blank,
++    interpolate:    interpolate
++  };
++})());
++
++var Template = Class.create({
++  initialize: function(template, pattern) {
++    this.template = template.toString();
++    this.pattern = pattern || Template.Pattern;
++  },
++
++  evaluate: function(object) {
++    if (object &amp;&amp; Object.isFunction(object.toTemplateReplacements))
++      object = object.toTemplateReplacements();
++
++    return this.template.gsub(this.pattern, function(match) {
++      if (object == null) return (match[1] + '');
++
++      var before = match[1] || '';
++      if (before == '\\') return match[2];
++
++      var ctx = object, expr = match[3],
++          pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
++
++      match = pattern.exec(expr);
++      if (match == null) return before;
++
++      while (match != null) {
++        var comp = match[1].startsWith('[') ? match[2].replace(/\\\\]/g, ']') : match[1];
++        ctx = ctx[comp];
++        if (null == ctx || '' == match[3]) break;
++        expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
++        match = pattern.exec(expr);
++      }
++
++      return before + String.interpret(ctx);
++    });
++  }
++});
++Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
++
++var $break = { };
++
++var Enumerable = (function() {
++  function each(iterator, context) {
++    var index = 0;
++    try {
++      this._each(function(value) {
++        iterator.call(context, value, index++);
++      });
++    } catch (e) {
++      if (e != $break) throw e;
++    }
++    return this;
++  }
++
++  function eachSlice(number, iterator, context) {
++    var index = -number, slices = [], array = this.toArray();
++    if (number &lt; 1) return array;
++    while ((index += number) &lt; array.length)
++      slices.push(array.slice(index, index+number));
++    return slices.collect(iterator, context);
++  }
++
++  function all(iterator, context) {
++    iterator = iterator || Prototype.K;
++    var result = true;
++    this.each(function(value, index) {
++      result = result &amp;&amp; !!iterator.call(context, value, index);
++      if (!result) throw $break;
++    });
++    return result;
++  }
++
++  function any(iterator, context) {
++    iterator = iterator || Prototype.K;
++    var result = false;
++    this.each(function(value, index) {
++      if (result = !!iterator.call(context, value, index))
++        throw $break;
++    });
++    return result;
++  }
++
++  function collect(iterator, context) {
++    iterator = iterator || Prototype.K;
++    var results = [];
++    this.each(function(value, index) {
++      results.push(iterator.call(context, value, index));
++    });
++    return results;
++  }
++
++  function detect(iterator, context) {
++    var result;
++    this.each(function(value, index) {
++      if (iterator.call(context, value, index)) {
++        result = value;
++        throw $break;
++      }
++    });
++    return result;
++  }
++
++  function findAll(iterator, context) {
++    var results = [];
++    this.each(function(value, index) {
++      if (iterator.call(context, value, index))
++        results.push(value);
++    });
++    return results;
++  }
++
++  function grep(filter, iterator, context) {
++    iterator = iterator || Prototype.K;
++    var results = [];
++
++    if (Object.isString(filter))
++      filter = new RegExp(RegExp.escape(filter));
++
++    this.each(function(value, index) {
++      if (filter.match(value))
++        results.push(iterator.call(context, value, index));
++    });
++    return results;
++  }
++
++  function include(object) {
++    if (Object.isFunction(this.indexOf))
++      if (this.indexOf(object) != -1) return true;
++
++    var found = false;
++    this.each(function(value) {
++      if (value == object) {
++        found = true;
++        throw $break;
++      }
++    });
++    return found;
++  }
++
++  function inGroupsOf(number, fillWith) {
++    fillWith = Object.isUndefined(fillWith) ? null : fillWith;
++    return this.eachSlice(number, function(slice) {
++      while(slice.length &lt; number) slice.push(fillWith);
++      return slice;
++    });
++  }
++
++  function inject(memo, iterator, context) {
++    this.each(function(value, index) {
++      memo = iterator.call(context, memo, value, index);
++    });
++    return memo;
++  }
++
++  function invoke(method) {
++    var args = $A(arguments).slice(1);
++    return this.map(function(value) {
++      return value[method].apply(value, args);
++    });
++  }
++
++  function max(iterator, context) {
++    iterator = iterator || Prototype.K;
++    var result;
++    this.each(function(value, index) {
++      value = iterator.call(context, value, index);
++      if (result == null || value &gt;= result)
++        result = value;
++    });
++    return result;
++  }
++
++  function min(iterator, context) {
++    iterator = iterator || Prototype.K;
++    var result;
++    this.each(function(value, index) {
++      value = iterator.call(context, value, index);
++      if (result == null || value &lt; result)
++        result = value;
++    });
++    return result;
++  }
++
++  function partition(iterator, context) {
++    iterator = iterator || Prototype.K;
++    var trues = [], falses = [];
++    this.each(function(value, index) {
++      (iterator.call(context, value, index) ?
++        trues : falses).push(value);
++    });
++    return [trues, falses];
++  }
++
++  function pluck(property) {
++    var results = [];
++    this.each(function(value) {
++      results.push(value[property]);
++    });
++    return results;
++  }
++
++  function reject(iterator, context) {
++    var results = [];
++    this.each(function(value, index) {
++      if (!iterator.call(context, value, index))
++        results.push(value);
++    });
++    return results;
++  }
++
++  function sortBy(iterator, context) {
++    return this.map(function(value, index) {
++      return {
++        value: value,
++        criteria: iterator.call(context, value, index)
++      };
++    }).sort(function(left, right) {
++      var a = left.criteria, b = right.criteria;
++      return a &lt; b ? -1 : a &gt; b ? 1 : 0;
++    }).pluck('value');
++  }
++
++  function toArray() {
++    return this.map();
++  }
++
++  function zip() {
++    var iterator = Prototype.K, args = $A(arguments);
++    if (Object.isFunction(args.last()))
++      iterator = args.pop();
++
++    var collections = [this].concat(args).map($A);
++    return this.map(function(value, index) {
++      return iterator(collections.pluck(index));
++    });
++  }
++
++  function size() {
++    return this.toArray().length;
++  }
++
++  function inspect() {
++    return '#&lt;Enumerable:' + this.toArray().inspect() + '&gt;';
++  }
++
++
++
++
++
++
++
++
++
++  return {
++    each:       each,
++    eachSlice:  eachSlice,
++    all:        all,
++    every:      all,
++    any:        any,
++    some:       any,
++    collect:    collect,
++    map:        collect,
++    detect:     detect,
++    findAll:    findAll,
++    select:     findAll,
++    filter:     findAll,
++    grep:       grep,
++    include:    include,
++    member:     include,
++    inGroupsOf: inGroupsOf,
++    inject:     inject,
++    invoke:     invoke,
++    max:        max,
++    min:        min,
++    partition:  partition,
++    pluck:      pluck,
++    reject:     reject,
++    sortBy:     sortBy,
++    toArray:    toArray,
++    entries:    toArray,
++    zip:        zip,
++    size:       size,
++    inspect:    inspect,
++    find:       detect
++  };
++})();
++
++function $A(iterable) {
++  if (!iterable) return [];
++  if ('toArray' in Object(iterable)) return iterable.toArray();
++  var length = iterable.length || 0, results = new Array(length);
++  while (length--) results[length] = iterable[length];
++  return results;
++}
++
++
++function $w(string) {
++  if (!Object.isString(string)) return [];
++  string = string.strip();
++  return string ? string.split(/\s+/) : [];
++}
++
++Array.from = $A;
++
++
++(function() {
++  var arrayProto = Array.prototype,
++      slice = arrayProto.slice,
++      _each = arrayProto.forEach; // use native browser JS 1.6 implementation if available
++
++  function each(iterator, context) {
++    for (var i = 0, length = this.length &gt;&gt;&gt; 0; i &lt; length; i++) {
++      if (i in this) iterator.call(context, this[i], i, this);
++    }
++  }
++  if (!_each) _each = each;
++
++  function clear() {
++    this.length = 0;
++    return this;
++  }
++
++  function first() {
++    return this[0];
++  }
++
++  function last() {
++    return this[this.length - 1];
++  }
++
++  function compact() {
++    return this.select(function(value) {
++      return value != null;
++    });
++  }
++
++  function flatten() {
++    return this.inject([], function(array, value) {
++      if (Object.isArray(value))
++        return array.concat(value.flatten());
++      array.push(value);
++      return array;
++    });
++  }
++
++  function without() {
++    var values = slice.call(arguments, 0);
++    return this.select(function(value) {
++      return !values.include(value);
++    });
++  }
++
++  function reverse(inline) {
++    return (inline === false ? this.toArray() : this)._reverse();
++  }
++
++  function uniq(sorted) {
++    return this.inject([], function(array, value, index) {
++      if (0 == index || (sorted ? array.last() != value : !array.include(value)))
++        array.push(value);
++      return array;
++    });
++  }
++
++  function intersect(array) {
++    return this.uniq().findAll(function(item) {
++      return array.detect(function(value) { return item === value });
++    });
++  }
++
++
++  function clone() {
++    return slice.call(this, 0);
++  }
++
++  function size() {
++    return this.length;
++  }
++
++  function inspect() {
++    return '[' + this.map(Object.inspect).join(', ') + ']';
++  }
++
++  function indexOf(item, i) {
++    i || (i = 0);
++    var length = this.length;
++    if (i &lt; 0) i = length + i;
++    for (; i &lt; length; i++)
++      if (this[i] === item) return i;
++    return -1;
++  }
++
++  function lastIndexOf(item, i) {
++    i = isNaN(i) ? this.length : (i &lt; 0 ? this.length + i : i) + 1;
++    var n = this.slice(0, i).reverse().indexOf(item);
++    return (n &lt; 0) ? n : i - n - 1;
++  }
++
++  function concat() {
++    var array = slice.call(this, 0), item;
++    for (var i = 0, length = arguments.length; i &lt; length; i++) {
++      item = arguments[i];
++      if (Object.isArray(item) &amp;&amp; !('callee' in item)) {
++        for (var j = 0, arrayLength = item.length; j &lt; arrayLength; j++)
++          array.push(item[j]);
++      } else {
++        array.push(item);
++      }
++    }
++    return array;
++  }
++
++  Object.extend(arrayProto, Enumerable);
++
++  if (!arrayProto._reverse)
++    arrayProto._reverse = arrayProto.reverse;
++
++  Object.extend(arrayProto, {
++    _each:     _each,
++    clear:     clear,
++    first:     first,
++    last:      last,
++    compact:   compact,
++    flatten:   flatten,
++    without:   without,
++    reverse:   reverse,
++    uniq:      uniq,
++    intersect: intersect,
++    clone:     clone,
++    toArray:   clone,
++    size:      size,
++    inspect:   inspect
++  });
++
++  var CONCAT_ARGUMENTS_BUGGY = (function() {
++    return [].concat(arguments)[0][0] !== 1;
++  })(1,2)
++
++  if (CONCAT_ARGUMENTS_BUGGY) arrayProto.concat = concat;
++
++  if (!arrayProto.indexOf) arrayProto.indexOf = indexOf;
++  if (!arrayProto.lastIndexOf) arrayProto.lastIndexOf = lastIndexOf;
++})();
++function $H(object) {
++  return new Hash(object);
++};
++
++var Hash = Class.create(Enumerable, (function() {
++  function initialize(object) {
++    this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
++  }
++
++
++  function _each(iterator) {
++    for (var key in this._object) {
++      var value = this._object[key], pair = [key, value];
++      pair.key = key;
++      pair.value = value;
++      iterator(pair);
++    }
++  }
++
++  function set(key, value) {
++    return this._object[key] = value;
++  }
++
++  function get(key) {
++    if (this._object[key] !== Object.prototype[key])
++      return this._object[key];
++  }
++
++  function unset(key) {
++    var value = this._object[key];
++    delete this._object[key];
++    return value;
++  }
++
++  function toObject() {
++    return Object.clone(this._object);
++  }
++
++
++
++  function keys() {
++    return this.pluck('key');
++  }
++
++  function values() {
++    return this.pluck('value');
++  }
++
++  function index(value) {
++    var match = this.detect(function(pair) {
++      return pair.value === value;
++    });
++    return match &amp;&amp; match.key;
++  }
++
++  function merge(object) {
++    return this.clone().update(object);
++  }
++
++  function update(object) {
++    return new Hash(object).inject(this, function(result, pair) {
++      result.set(pair.key, pair.value);
++      return result;
++    });
++  }
++
++  function toQueryPair(key, value) {
++    if (Object.isUndefined(value)) return key;
++    return key + '=' + encodeURIComponent(String.interpret(value));
++  }
++
++  function toQueryString() {
++    return this.inject([], function(results, pair) {
++      var key = encodeURIComponent(pair.key), values = pair.value;
++
++      if (values &amp;&amp; typeof values == 'object') {
++        if (Object.isArray(values)) {
++          var queryValues = [];
++          for (var i = 0, len = values.length, value; i &lt; len; i++) {
++            value = values[i];
++            queryValues.push(toQueryPair(key, value));
++          }
++          return results.concat(queryValues);
++        }
++      } else results.push(toQueryPair(key, values));
++      return results;
++    }).join('&amp;');
++  }
++
++  function inspect() {
++    return '#&lt;Hash:{' + this.map(function(pair) {
++      return pair.map(Object.inspect).join(': ');
++    }).join(', ') + '}&gt;';
++  }
++
++  function clone() {
++    return new Hash(this);
++  }
++
++  return {
++    initialize:             initialize,
++    _each:                  _each,
++    set:                    set,
++    get:                    get,
++    unset:                  unset,
++    toObject:               toObject,
++    toTemplateReplacements: toObject,
++    keys:                   keys,
++    values:                 values,
++    index:                  index,
++    merge:                  merge,
++    update:                 update,
++    toQueryString:          toQueryString,
++    inspect:                inspect,
++    toJSON:                 toObject,
++    clone:                  clone
++  };
++})());
++
++Hash.from = $H;
++Object.extend(Number.prototype, (function() {
++  function toColorPart() {
++    return this.toPaddedString(2, 16);
++  }
++
++  function succ() {
++    return this + 1;
++  }
++
++  function times(iterator, context) {
++    $R(0, this, true).each(iterator, context);
++    return this;
++  }
++
++  function toPaddedString(length, radix) {
++    var string = this.toString(radix || 10);
++    return '0'.times(length - string.length) + string;
++  }
++
++  function abs() {
++    return Math.abs(this);
++  }
++
++  function round() {
++    return Math.round(this);
++  }
++
++  function ceil() {
++    return Math.ceil(this);
++  }
++
++  function floor() {
++    return Math.floor(this);
++  }
++
++  return {
++    toColorPart:    toColorPart,
++    succ:           succ,
++    times:          times,
++    toPaddedString: toPaddedString,
++    abs:            abs,
++    round:          round,
++    ceil:           ceil,
++    floor:          floor
++  };
++})());
++
++function $R(start, end, exclusive) {
++  return new ObjectRange(start, end, exclusive);
++}
++
++var ObjectRange = Class.create(Enumerable, (function() {
++  function initialize(start, end, exclusive) {
++    this.start = start;
++    this.end = end;
++    this.exclusive = exclusive;
++  }
++
++  function _each(iterator) {
++    var value = this.start;
++    while (this.include(value)) {
++      iterator(value);
++      value = value.succ();
++    }
++  }
++
++  function include(value) {
++    if (value &lt; this.start)
++      return false;
++    if (this.exclusive)
++      return value &lt; this.end;
++    return value &lt;= this.end;
++  }
++
++  return {
++    initialize: initialize,
++    _each:      _each,
++    include:    include
++  };
++})());
++
++
++
++var Ajax = {
++  getTransport: function() {
++    return Try.these(
++      function() {return new XMLHttpRequest()},
++      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
++      function() {return new ActiveXObject('Microsoft.XMLHTTP')}
++    ) || false;
++  },
++
++  activeRequestCount: 0
++};
++
++Ajax.Responders = {
++  responders: [],
++
++  _each: function(iterator) {
++    this.responders._each(iterator);
++  },
++
++  register: function(responder) {
++    if (!this.include(responder))
++      this.responders.push(responder);
++  },
++
++  unregister: function(responder) {
++    this.responders = this.responders.without(responder);
++  },
++
++  dispatch: function(callback, request, transport, json) {
++    this.each(function(responder) {
++      if (Object.isFunction(responder[callback])) {
++        try {
++          responder[callback].apply(responder, [request, transport, json]);
++        } catch (e) { }
++      }
++    });
++  }
++};
++
++Object.extend(Ajax.Responders, Enumerable);
++
++Ajax.Responders.register({
++  onCreate:   function() { Ajax.activeRequestCount++ },
++  onComplete: function() { Ajax.activeRequestCount-- }
++});
++Ajax.Base = Class.create({
++  initialize: function(options) {
++    this.options = {
++      method:       'post',
++      asynchronous: true,
++      contentType:  'application/x-www-form-urlencoded',
++      encoding:     'UTF-8',
++      parameters:   '',
++      evalJSON:     true,
++      evalJS:       true
++    };
++    Object.extend(this.options, options || { });
++
++    this.options.method = this.options.method.toLowerCase();
++
++    if (Object.isHash(this.options.parameters))
++      this.options.parameters = this.options.parameters.toObject();
++  }
++});
++Ajax.Request = Class.create(Ajax.Base, {
++  _complete: false,
++
++  initialize: function($super, url, options) {
++    $super(options);
++    this.transport = Ajax.getTransport();
++    this.request(url);
++  },
++
++  request: function(url) {
++    this.url = url;
++    this.method = this.options.method;
++    var params = Object.isString(this.options.parameters) ?
++          this.options.parameters :
++          Object.toQueryString(this.options.parameters);
++
++    if (!['get', 'post'].include(this.method)) {
++      params += (params ? '&amp;' : '') + &quot;_method=&quot; + this.method;
++      this.method = 'post';
++    }
++
++    if (params &amp;&amp; this.method === 'get') {
++      this.url += (this.url.include('?') ? '&amp;' : '?') + params;
++    }
++
++    this.parameters = params.toQueryParams();
++
++    try {
++      var response = new Ajax.Response(this);
++      if (this.options.onCreate) this.options.onCreate(response);
++      Ajax.Responders.dispatch('onCreate', this, response);
++
++      this.transport.open(this.method.toUpperCase(), this.url,
++        this.options.asynchronous);
++
++      if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);
++
++      this.transport.onreadystatechange = this.onStateChange.bind(this);
++      this.setRequestHeaders();
++
++      this.body = this.method == 'post' ? (this.options.postBody || params) : null;
++      this.transport.send(this.body);
++
++      /* Force Firefox to handle ready state 4 for synchronous requests */
++      if (!this.options.asynchronous &amp;&amp; this.transport.overrideMimeType)
++        this.onStateChange();
++
++    }
++    catch (e) {
++      this.dispatchException(e);
++    }
++  },
++
++  onStateChange: function() {
++    var readyState = this.transport.readyState;
++    if (readyState &gt; 1 &amp;&amp; !((readyState == 4) &amp;&amp; this._complete))
++      this.respondToReadyState(this.transport.readyState);
++  },
++
++  setRequestHeaders: function() {
++    var headers = {
++      'X-Requested-With': 'XMLHttpRequest',
++      'X-Prototype-Version': Prototype.Version,
++      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
++    };
++
++    if (this.method == 'post') {
++      headers['Content-type'] = this.options.contentType +
++        (this.options.encoding ? '; charset=' + this.options.encoding : '');
++
++      /* Force &quot;Connection: close&quot; for older Mozilla browsers to work
++       * around a bug where XMLHttpRequest sends an incorrect
++       * Content-length header. See Mozilla Bugzilla #246651.
++       */
++      if (this.transport.overrideMimeType &amp;&amp;
++          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] &lt; 2005)
++            headers['Connection'] = 'close';
++    }
++
++    if (typeof this.options.requestHeaders == 'object') {
++      var extras = this.options.requestHeaders;
++
++      if (Object.isFunction(extras.push))
++        for (var i = 0, length = extras.length; i &lt; length; i += 2)
++          headers[extras[i]] = extras[i+1];
++      else
++        $H(extras).each(function(pair) { headers[pair.key] = pair.value });
++    }
++
++    for (var name in headers)
++      this.transport.setRequestHeader(name, headers[name]);
++  },
++
++  success: function() {
++    var status = this.getStatus();
++    return !status || (status &gt;= 200 &amp;&amp; status &lt; 300) || status == 304;
++  },
++
++  getStatus: function() {
++    try {
++      if (this.transport.status === 1223) return 204;
++      return this.transport.status || 0;
++    } catch (e) { return 0 }
++  },
++
++  respondToReadyState: function(readyState) {
++    var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);
++
++    if (state == 'Complete') {
++      try {
++        this._complete = true;
++        (this.options['on' + response.status]
++         || this.options['on' + (this.success() ? 'Success' : 'Failure')]
++         || Prototype.emptyFunction)(response, response.headerJSON);
++      } catch (e) {
++        this.dispatchException(e);
++      }
++
++      var contentType = response.getHeader('Content-type');
++      if (this.options.evalJS == 'force'
++          || (this.options.evalJS &amp;&amp; this.isSameOrigin() &amp;&amp; contentType
++          &amp;&amp; contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
++        this.evalResponse();
++    }
++
++    try {
++      (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
++      Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
++    } catch (e) {
++      this.dispatchException(e);
++    }
++
++    if (state == 'Complete') {
++      this.transport.onreadystatechange = Prototype.emptyFunction;
++    }
++  },
++
++  isSameOrigin: function() {
++    var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
++    return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
++      protocol: location.protocol,
++      domain: document.domain,
++      port: location.port ? ':' + location.port : ''
++    }));
++  },
++
++  getHeader: function(name) {
++    try {
++      return this.transport.getResponseHeader(name) || null;
++    } catch (e) { return null; }
++  },
++
++  evalResponse: function() {
++    try {
++      return eval((this.transport.responseText || '').unfilterJSON());
++    } catch (e) {
++      this.dispatchException(e);
++    }
++  },
++
++  dispatchException: function(exception) {
++    (this.options.onException || Prototype.emptyFunction)(this, exception);
++    Ajax.Responders.dispatch('onException', this, exception);
++  }
++});
++
++Ajax.Request.Events =
++  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
++
++
++
++
++
++
++
++
++Ajax.Response = Class.create({
++  initialize: function(request){
++    this.request = request;
++    var transport  = this.transport  = request.transport,
++        readyState = this.readyState = transport.readyState;
++
++    if ((readyState &gt; 2 &amp;&amp; !Prototype.Browser.IE) || readyState == 4) {
++      this.status       = this.getStatus();
++      this.statusText   = this.getStatusText();
++      this.responseText = String.interpret(transport.responseText);
++      this.headerJSON   = this._getHeaderJSON();
++    }
++
++    if (readyState == 4) {
++      var xml = transport.responseXML;
++      this.responseXML  = Object.isUndefined(xml) ? null : xml;
++      this.responseJSON = this._getResponseJSON();
++    }
++  },
++
++  status:      0,
++
++  statusText: '',
++
++  getStatus: Ajax.Request.prototype.getStatus,
++
++  getStatusText: function() {
++    try {
++      return this.transport.statusText || '';
++    } catch (e) { return '' }
++  },
++
++  getHeader: Ajax.Request.prototype.getHeader,
++
++  getAllHeaders: function() {
++    try {
++      return this.getAllResponseHeaders();
++    } catch (e) { return null }
++  },
++
++  getResponseHeader: function(name) {
++    return this.transport.getResponseHeader(name);
++  },
++
++  getAllResponseHeaders: function() {
++    return this.transport.getAllResponseHeaders();
++  },
++
++  _getHeaderJSON: function() {
++    var json = this.getHeader('X-JSON');
++    if (!json) return null;
++    json = decodeURIComponent(escape(json));
++    try {
++      return json.evalJSON(this.request.options.sanitizeJSON ||
++        !this.request.isSameOrigin());
++    } catch (e) {
++      this.request.dispatchException(e);
++    }
++  },
++
++  _getResponseJSON: function() {
++    var options = this.request.options;
++    if (!options.evalJSON || (options.evalJSON != 'force' &amp;&amp;
++      !(this.getHeader('Content-type') || '').include('application/json')) ||
++        this.responseText.blank())
++          return null;
++    try {
++      return this.responseText.evalJSON(options.sanitizeJSON ||
++        !this.request.isSameOrigin());
++    } catch (e) {
++      this.request.dispatchException(e);
++    }
++  }
++});
++
++Ajax.Updater = Class.create(Ajax.Request, {
++  initialize: function($super, container, url, options) {
++    this.container = {
++      success: (container.success || container),
++      failure: (container.failure || (container.success ? null : container))
++    };
++
++    options = Object.clone(options);
++    var onComplete = options.onComplete;
++    options.onComplete = (function(response, json) {
++      this.updateContent(response.responseText);
++      if (Object.isFunction(onComplete)) onComplete(response, json);
++    }).bind(this);
++
++    $super(url, options);
++  },
++
++  updateContent: function(responseText) {
++    var receiver = this.container[this.success() ? 'success' : 'failure'],
++        options = this.options;
++
++    if (!options.evalScripts) responseText = responseText.stripScripts();
++
++    if (receiver = $(receiver)) {
++      if (options.insertion) {
++        if (Object.isString(options.insertion)) {
++          var insertion = { }; insertion[options.insertion] = responseText;
++          receiver.insert(insertion);
++        }
++        else options.insertion(receiver, responseText);
++      }
++      else receiver.update(responseText);
++    }
++  }
++});
++
++Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
++  initialize: function($super, container, url, options) {
++    $super(options);
++    this.onComplete = this.options.onComplete;
++
++    this.frequency = (this.options.frequency || 2);
++    this.decay = (this.options.decay || 1);
++
++    this.updater = { };
++    this.container = container;
++    this.url = url;
++
++    this.start();
++  },
++
++  start: function() {
++    this.options.onComplete = this.updateComplete.bind(this);
++    this.onTimerEvent();
++  },
++
++  stop: function() {
++    this.updater.options.onComplete = undefined;
++    clearTimeout(this.timer);
++    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
++  },
++
++  updateComplete: function(response) {
++    if (this.options.decay) {
++      this.decay = (response.responseText == this.lastText ?
++        this.decay * this.options.decay : 1);
++
++      this.lastText = response.responseText;
++    }
++    this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
++  },
++
++  onTimerEvent: function() {
++    this.updater = new Ajax.Updater(this.container, this.url, this.options);
++  }
++});
++
++
++function $(element) {
++  if (arguments.length &gt; 1) {
++    for (var i = 0, elements = [], length = arguments.length; i &lt; length; i++)
++      elements.push($(arguments[i]));
++    return elements;
++  }
++  if (Object.isString(element))
++    element = document.getElementById(element);
++  return Element.extend(element);
++}
++
++if (Prototype.BrowserFeatures.XPath) {
++  document._getElementsByXPath = function(expression, parentElement) {
++    var results = [];
++    var query = document.evaluate(expression, $(parentElement) || document,
++      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
++    for (var i = 0, length = query.snapshotLength; i &lt; length; i++)
++      results.push(Element.extend(query.snapshotItem(i)));
++    return results;
++  };
++}
++
++/*--------------------------------------------------------------------------*/
++
++if (!Node) var Node = { };
++
++if (!Node.ELEMENT_NODE) {
++  Object.extend(Node, {
++    ELEMENT_NODE: 1,
++    ATTRIBUTE_NODE: 2,
++    TEXT_NODE: 3,
++    CDATA_SECTION_NODE: 4,
++    ENTITY_REFERENCE_NODE: 5,
++    ENTITY_NODE: 6,
++    PROCESSING_INSTRUCTION_NODE: 7,
++    COMMENT_NODE: 8,
++    DOCUMENT_NODE: 9,
++    DOCUMENT_TYPE_NODE: 10,
++    DOCUMENT_FRAGMENT_NODE: 11,
++    NOTATION_NODE: 12
++  });
++}
++
++
++
++(function(global) {
++  function shouldUseCache(tagName, attributes) {
++    if (tagName === 'select') return false;
++    if ('type' in attributes) return false;
++    return true;
++  }
++
++  var HAS_EXTENDED_CREATE_ELEMENT_SYNTAX = (function(){
++    try {
++      var el = document.createElement('&lt;input name=&quot;x&quot;&gt;');
++      return el.tagName.toLowerCase() === 'input' &amp;&amp; el.name === 'x';
++    }
++    catch(err) {
++      return false;
++    }
++  })();
++
++  var element = global.Element;
++
++  global.Element = function(tagName, attributes) {
++    attributes = attributes || { };
++    tagName = tagName.toLowerCase();
++    var cache = Element.cache;
++
++    if (HAS_EXTENDED_CREATE_ELEMENT_SYNTAX &amp;&amp; attributes.name) {
++      tagName = '&lt;' + tagName + ' name=&quot;' + attributes.name + '&quot;&gt;';
++      delete attributes.name;
++      return Element.writeAttribute(document.createElement(tagName), attributes);
++    }
++
++    if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
++
++    var node = shouldUseCache(tagName, attributes) ?
++     cache[tagName].cloneNode(false) : document.createElement(tagName);
++
++    return Element.writeAttribute(node, attributes);
++  };
++
++  Object.extend(global.Element, element || { });
++  if (element) global.Element.prototype = element.prototype;
++
++})(this);
++
++Element.idCounter = 1;
++Element.cache = { };
++
++Element._purgeElement = function(element) {
++  var uid = element._prototypeUID;
++  if (uid) {
++    Element.stopObserving(element);
++    element._prototypeUID = void 0;
++    delete Element.Storage[uid];
++  }
++}
++
++Element.Methods = {
++  visible: function(element) {
++    return $(element).style.display != 'none';
++  },
++
++  toggle: function(element) {
++    element = $(element);
++    Element[Element.visible(element) ? 'hide' : 'show'](element);
++    return element;
++  },
++
++  hide: function(element) {
++    element = $(element);
++    element.style.display = 'none';
++    return element;
++  },
++
++  show: function(element) {
++    element = $(element);
++    element.style.display = '';
++    return element;
++  },
++
++  remove: function(element) {
++    element = $(element);
++    element.parentNode.removeChild(element);
++    return element;
++  },
++
++  update: (function(){
++
++    var SELECT_ELEMENT_INNERHTML_BUGGY = (function(){
++      var el = document.createElement(&quot;select&quot;),
++          isBuggy = true;
++      el.innerHTML = &quot;&lt;option value=\&quot;test\&quot;&gt;test&lt;/option&gt;&quot;;
++      if (el.options &amp;&amp; el.options[0]) {
++        isBuggy = el.options[0].nodeName.toUpperCase() !== &quot;OPTION&quot;;
++      }
++      el = null;
++      return isBuggy;
++    })();
++
++    var TABLE_ELEMENT_INNERHTML_BUGGY = (function(){
++      try {
++        var el = document.createElement(&quot;table&quot;);
++        if (el &amp;&amp; el.tBodies) {
++          el.innerHTML = &quot;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;test&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&quot;;
++          var isBuggy = typeof el.tBodies[0] == &quot;undefined&quot;;
++          el = null;
++          return isBuggy;
++        }
++      } catch (e) {
++        return true;
++      }
++    })();
++
++    var LINK_ELEMENT_INNERHTML_BUGGY = (function() {
++      try {
++        var el = document.createElement('div');
++        el.innerHTML = &quot;&lt;link&gt;&quot;;
++        var isBuggy = (el.childNodes.length === 0);
++        el = null;
++        return isBuggy;
++      } catch(e) {
++        return true;
++      }
++    })();
++
++    var ANY_INNERHTML_BUGGY = SELECT_ELEMENT_INNERHTML_BUGGY ||
++     TABLE_ELEMENT_INNERHTML_BUGGY || LINK_ELEMENT_INNERHTML_BUGGY;
++
++    var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING = (function () {
++      var s = document.createElement(&quot;script&quot;),
++          isBuggy = false;
++      try {
++        s.appendChild(document.createTextNode(&quot;&quot;));
++        isBuggy = !s.firstChild ||
++          s.firstChild &amp;&amp; s.firstChild.nodeType !== 3;
++      } catch (e) {
++        isBuggy = true;
++      }
++      s = null;
++      return isBuggy;
++    })();
++
++
++    function update(element, content) {
++      element = $(element);
++      var purgeElement = Element._purgeElement;
++
++      var descendants = element.getElementsByTagName('*'),
++       i = descendants.length;
++      while (i--) purgeElement(descendants[i]);
++
++      if (content &amp;&amp; content.toElement)
++        content = content.toElement();
++
++      if (Object.isElement(content))
++        return element.update().insert(content);
++
++      content = Object.toHTML(content);
++
++      var tagName = element.tagName.toUpperCase();
++
++      if (tagName === 'SCRIPT' &amp;&amp; SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING) {
++        element.text = content;
++        return element;
++      }
++
++      if (ANY_INNERHTML_BUGGY) {
++        if (tagName in Element._insertionTranslations.tags) {
++          while (element.firstChild) {
++            element.removeChild(element.firstChild);
++          }
++          Element._getContentFromAnonymousElement(tagName, content.stripScripts())
++            .each(function(node) {
++              element.appendChild(node)
++            });
++        } else if (LINK_ELEMENT_INNERHTML_BUGGY &amp;&amp; Object.isString(content) &amp;&amp; content.indexOf('&lt;link') &gt; -1) {
++          while (element.firstChild) {
++            element.removeChild(element.firstChild);
++          }
++          var nodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts(), true);
++          nodes.each(function(node) { element.appendChild(node) });
++        }
++        else {
++          element.innerHTML = content.stripScripts();
++        }
++      }
++      else {
++        element.innerHTML = content.stripScripts();
++      }
++
++      content.evalScripts.bind(content).defer();
++      return element;
++    }
++
++    return update;
++  })(),
++
++  replace: function(element, content) {
++    element = $(element);
++    if (content &amp;&amp; content.toElement) content = content.toElement();
++    else if (!Object.isElement(content)) {
++      content = Object.toHTML(content);
++      var range = element.ownerDocument.createRange();
++      range.selectNode(element);
++      content.evalScripts.bind(content).defer();
++      content = range.createContextualFragment(content.stripScripts());
++    }
++    element.parentNode.replaceChild(content, element);
++    return element;
++  },
++
++  insert: function(element, insertions) {
++    element = $(element);
++
++    if (Object.isString(insertions) || Object.isNumber(insertions) ||
++        Object.isElement(insertions) || (insertions &amp;&amp; (insertions.toElement || insertions.toHTML)))
++          insertions = {bottom:insertions};
++
++    var content, insert, tagName, childNodes;
++
++    for (var position in insertions) {
++      content  = insertions[position];
++      position = position.toLowerCase();
++      insert = Element._insertionTranslations[position];
++
++      if (content &amp;&amp; content.toElement) content = content.toElement();
++      if (Object.isElement(content)) {
++        insert(element, content);
++        continue;
++      }
++
++      content = Object.toHTML(content);
++
++      tagName = ((position == 'before' || position == 'after')
++        ? element.parentNode : element).tagName.toUpperCase();
++
++      childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
++
++      if (position == 'top' || position == 'after') childNodes.reverse();
++      childNodes.each(insert.curry(element));
++
++      content.evalScripts.bind(content).defer();
++    }
++
++    return element;
++  },
++
++  wrap: function(element, wrapper, attributes) {
++    element = $(element);
++    if (Object.isElement(wrapper))
++      $(wrapper).writeAttribute(attributes || { });
++    else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
++    else wrapper = new Element('div', wrapper);
++    if (element.parentNode)
++      element.parentNode.replaceChild(wrapper, element);
++    wrapper.appendChild(element);
++    return wrapper;
++  },
++
++  inspect: function(element) {
++    element = $(element);
++    var result = '&lt;' + element.tagName.toLowerCase();
++    $H({'id': 'id', 'className': 'class'}).each(function(pair) {
++      var property = pair.first(),
++          attribute = pair.last(),
++          value = (element[property] || '').toString();
++      if (value) result += ' ' + attribute + '=' + value.inspect(true);
++    });
++    return result + '&gt;';
++  },
++
++  recursivelyCollect: function(element, property, maximumLength) {
++    element = $(element);
++    maximumLength = maximumLength || -1;
++    var elements = [];
++
++    while (element = element[property]) {
++      if (element.nodeType == 1)
++        elements.push(Element.extend(element));
++      if (elements.length == maximumLength)
++        break;
++    }
++
++    return elements;
++  },
++
++  ancestors: function(element) {
++    return Element.recursivelyCollect(element, 'parentNode');
++  },
++
++  descendants: function(element) {
++    return Element.select(element, &quot;*&quot;);
++  },
++
++  firstDescendant: function(element) {
++    element = $(element).firstChild;
++    while (element &amp;&amp; element.nodeType != 1) element = element.nextSibling;
++    return $(element);
++  },
++
++  immediateDescendants: function(element) {
++    var results = [], child = $(element).firstChild;
++    while (child) {
++      if (child.nodeType === 1) {
++        results.push(Element.extend(child));
++      }
++      child = child.nextSibling;
++    }
++    return results;
++  },
++
++  previousSiblings: function(element, maximumLength) {
++    return Element.recursivelyCollect(element, 'previousSibling');
++  },
++
++  nextSiblings: function(element) {
++    return Element.recursivelyCollect(element, 'nextSibling');
++  },
++
++  siblings: function(element) {
++    element = $(element);
++    return Element.previousSiblings(element).reverse()
++      .concat(Element.nextSiblings(element));
++  },
++
++  match: function(element, selector) {
++    element = $(element);
++    if (Object.isString(selector))
++      return Prototype.Selector.match(element, selector);
++    return selector.match(element);
++  },
++
++  up: function(element, expression, index) {
++    element = $(element);
++    if (arguments.length == 1) return $(element.parentNode);
++    var ancestors = Element.ancestors(element);
++    return Object.isNumber(expression) ? ancestors[expression] :
++      Prototype.Selector.find(ancestors, expression, index);
++  },
++
++  down: function(element, expression, index) {
++    element = $(element);
++    if (arguments.length == 1) return Element.firstDescendant(element);
++    return Object.isNumber(expression) ? Element.descendants(element)[expression] :
++      Element.select(element, expression)[index || 0];
++  },
++
++  previous: function(element, expression, index) {
++    element = $(element);
++    if (Object.isNumber(expression)) index = expression, expression = false;
++    if (!Object.isNumber(index)) index = 0;
++
++    if (expression) {
++      return Prototype.Selector.find(element.previousSiblings(), expression, index);
++    } else {
++      return element.recursivelyCollect(&quot;previousSibling&quot;, index + 1)[index];
++    }
++  },
++
++  next: function(element, expression, index) {
++    element = $(element);
++    if (Object.isNumber(expression)) index = expression, expression = false;
++    if (!Object.isNumber(index)) index = 0;
++
++    if (expression) {
++      return Prototype.Selector.find(element.nextSiblings(), expression, index);
++    } else {
++      var maximumLength = Object.isNumber(index) ? index + 1 : 1;
++      return element.recursivelyCollect(&quot;nextSibling&quot;, index + 1)[index];
++    }
++  },
++
++
++  select: function(element) {
++    element = $(element);
++    var expressions = Array.prototype.slice.call(arguments, 1).join(', ');
++    return Prototype.Selector.select(expressions, element);
++  },
++
++  adjacent: function(element) {
++    element = $(element);
++    var expressions = Array.prototype.slice.call(arguments, 1).join(', ');
++    return Prototype.Selector.select(expressions, element.parentNode).without(element);
++  },
++
++  identify: function(element) {
++    element = $(element);
++    var id = Element.readAttribute(element, 'id');
++    if (id) return id;
++    do { id = 'anonymous_element_' + Element.idCounter++ } while ($(id));
++    Element.writeAttribute(element, 'id', id);
++    return id;
++  },
++
++  readAttribute: function(element, name) {
++    element = $(element);
++    if (Prototype.Browser.IE) {
++      var t = Element._attributeTranslations.read;
++      if (t.values[name]) return t.values[name](element, name);
++      if (t.names[name]) name = t.names[name];
++      if (name.include(':')) {
++        return (!element.attributes || !element.attributes[name]) ? null :
++         element.attributes[name].value;
++      }
++    }
++    return element.getAttribute(name);
++  },
++
++  writeAttribute: function(element, name, value) {
++    element = $(element);
++    var attributes = { }, t = Element._attributeTranslations.write;
++
++    if (typeof name == 'object') attributes = name;
++    else attributes[name] = Object.isUndefined(value) ? true : value;
++
++    for (var attr in attributes) {
++      name = t.names[attr] || attr;
++      value = attributes[attr];
++      if (t.values[attr]) name = t.values[attr](element, value);
++      if (value === false || value === null)
++        element.removeAttribute(name);
++      else if (value === true)
++        element.setAttribute(name, name);
++      else element.setAttribute(name, value);
++    }
++    return element;
++  },
++
++  getHeight: function(element) {
++    return Element.getDimensions(element).height;
++  },
++
++  getWidth: function(element) {
++    return Element.getDimensions(element).width;
++  },
++
++  classNames: function(element) {
++    return new Element.ClassNames(element);
++  },
++
++  hasClassName: function(element, className) {
++    if (!(element = $(element))) return;
++    var elementClassName = element.className;
++    return (elementClassName.length &gt; 0 &amp;&amp; (elementClassName == className ||
++      new RegExp(&quot;(^|\\s)&quot; + className + &quot;(\\s|$)&quot;).test(elementClassName)));
++  },
++
++  addClassName: function(element, className) {
++    if (!(element = $(element))) return;
++    if (!Element.hasClassName(element, className))
++      element.className += (element.className ? ' ' : '') + className;
++    return element;
++  },
++
++  removeClassName: function(element, className) {
++    if (!(element = $(element))) return;
++    element.className = element.className.replace(
++      new RegExp(&quot;(^|\\s+)&quot; + className + &quot;(\\s+|$)&quot;), ' ').strip();
++    return element;
++  },
++
++  toggleClassName: function(element, className) {
++    if (!(element = $(element))) return;
++    return Element[Element.hasClassName(element, className) ?
++      'removeClassName' : 'addClassName'](element, className);
++  },
++
++  cleanWhitespace: function(element) {
++    element = $(element);
++    var node = element.firstChild;
++    while (node) {
++      var nextNode = node.nextSibling;
++      if (node.nodeType == 3 &amp;&amp; !/\S/.test(node.nodeValue))
++        element.removeChild(node);
++      node = nextNode;
++    }
++    return element;
++  },
++
++  empty: function(element) {
++    return $(element).innerHTML.blank();
++  },
++
++  descendantOf: function(element, ancestor) {
++    element = $(element), ancestor = $(ancestor);
++
++    if (element.compareDocumentPosition)
++      return (element.compareDocumentPosition(ancestor) &amp; 8) === 8;
++
++    if (ancestor.contains)
++      return ancestor.contains(element) &amp;&amp; ancestor !== element;
++
++    while (element = element.parentNode)
++      if (element == ancestor) return true;
++
++    return false;
++  },
++
++  scrollTo: function(element) {
++    element = $(element);
++    var pos = Element.cumulativeOffset(element);
++    window.scrollTo(pos[0], pos[1]);
++    return element;
++  },
++
++  getStyle: function(element, style) {
++    element = $(element);
++    style = style == 'float' ? 'cssFloat' : style.camelize();
++    var value = element.style[style];
++    if (!value || value == 'auto') {
++      var css = document.defaultView.getComputedStyle(element, null);
++      value = css ? css[style] : null;
++    }
++    if (style == 'opacity') return value ? parseFloat(value) : 1.0;
++    return value == 'auto' ? null : value;
++  },
++
++  getOpacity: function(element) {
++    return $(element).getStyle('opacity');
++  },
++
++  setStyle: function(element, styles) {
++    element = $(element);
++    var elementStyle = element.style, match;
++    if (Object.isString(styles)) {
++      element.style.cssText += ';' + styles;
++      return styles.include('opacity') ?
++        element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
++    }
++    for (var property in styles)
++      if (property == 'opacity') element.setOpacity(styles[property]);
++      else
++        elementStyle[(property == 'float' || property == 'cssFloat') ?
++          (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
++            property] = styles[property];
++
++    return element;
++  },
++
++  setOpacity: function(element, value) {
++    element = $(element);
++    element.style.opacity = (value == 1 || value === '') ? '' :
++      (value &lt; 0.00001) ? 0 : value;
++    return element;
++  },
++
++  makePositioned: function(element) {
++    element = $(element);
++    var pos = Element.getStyle(element, 'position');
++    if (pos == 'static' || !pos) {
++      element._madePositioned = true;
++      element.style.position = 'relative';
++      if (Prototype.Browser.Opera) {
++        element.style.top = 0;
++        element.style.left = 0;
++      }
++    }
++    return element;
++  },
++
++  undoPositioned: function(element) {
++    element = $(element);
++    if (element._madePositioned) {
++      element._madePositioned = undefined;
++      element.style.position =
++        element.style.top =
++        element.style.left =
++        element.style.bottom =
++        element.style.right = '';
++    }
++    return element;
++  },
++
++  makeClipping: function(element) {
++    element = $(element);
++    if (element._overflow) return element;
++    element._overflow = Element.getStyle(element, 'overflow') || 'auto';
++    if (element._overflow !== 'hidden')
++      element.style.overflow = 'hidden';
++    return element;
++  },
++
++  undoClipping: function(element) {
++    element = $(element);
++    if (!element._overflow) return element;
++    element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
++    element._overflow = null;
++    return element;
++  },
++
++  clonePosition: function(element, source) {
++    var options = Object.extend({
++      setLeft:    true,
++      setTop:     true,
++      setWidth:   true,
++      setHeight:  true,
++      offsetTop:  0,
++      offsetLeft: 0
++    }, arguments[2] || { });
++
++    source = $(source);
++    var p = Element.viewportOffset(source), delta = [0, 0], parent = null;
++
++    element = $(element);
++
++    if (Element.getStyle(element, 'position') == 'absolute') {
++      parent = Element.getOffsetParent(element);
++      delta = Element.viewportOffset(parent);
++    }
++
++    if (parent == document.body) {
++      delta[0] -= document.body.offsetLeft;
++      delta[1] -= document.body.offsetTop;
++    }
++
++    if (options.setLeft)   element.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';
++    if (options.setTop)    element.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';
++    if (options.setWidth)  element.style.width = source.offsetWidth + 'px';
++    if (options.setHeight) element.style.height = source.offsetHeight + 'px';
++    return element;
++  }
++};
++
++Object.extend(Element.Methods, {
++  getElementsBySelector: Element.Methods.select,
++
++  childElements: Element.Methods.immediateDescendants
++});
++
++Element._attributeTranslations = {
++  write: {
++    names: {
++      className: 'class',
++      htmlFor:   'for'
++    },
++    values: { }
++  }
++};
++
++if (Prototype.Browser.Opera) {
++  Element.Methods.getStyle = Element.Methods.getStyle.wrap(
++    function(proceed, element, style) {
++      switch (style) {
++        case 'height': case 'width':
++          if (!Element.visible(element)) return null;
++
++          var dim = parseInt(proceed(element, style), 10);
++
++          if (dim !== element['offset' + style.capitalize()])
++            return dim + 'px';
++
++          var properties;
++          if (style === 'height') {
++            properties = ['border-top-width', 'padding-top',
++             'padding-bottom', 'border-bottom-width'];
++          }
++          else {
++            properties = ['border-left-width', 'padding-left',
++             'padding-right', 'border-right-width'];
++          }
++          return properties.inject(dim, function(memo, property) {
++            var val = proceed(element, property);
++            return val === null ? memo : memo - parseInt(val, 10);
++          }) + 'px';
++        default: return proceed(element, style);
++      }
++    }
++  );
++
++  Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(
++    function(proceed, element, attribute) {
++      if (attribute === 'title') return element.title;
++      return proceed(element, attribute);
++    }
++  );
++}
++
++else if (Prototype.Browser.IE) {
++  Element.Methods.getStyle = function(element, style) {
++    element = $(element);
++    style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
++    var value = element.style[style];
++    if (!value &amp;&amp; element.currentStyle) value = element.currentStyle[style];
++
++    if (style == 'opacity') {
++      if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
++        if (value[1]) return parseFloat(value[1]) / 100;
++      return 1.0;
++    }
++
++    if (value == 'auto') {
++      if ((style == 'width' || style == 'height') &amp;&amp; (element.getStyle('display') != 'none'))
++        return element['offset' + style.capitalize()] + 'px';
++      return null;
++    }
++    return value;
++  };
++
++  Element.Methods.setOpacity = function(element, value) {
++    function stripAlpha(filter){
++      return filter.replace(/alpha\([^\)]*\)/gi,'');
++    }
++    element = $(element);
++    var currentStyle = element.currentStyle;
++    if ((currentStyle &amp;&amp; !currentStyle.hasLayout) ||
++      (!currentStyle &amp;&amp; element.style.zoom == 'normal'))
++        element.style.zoom = 1;
++
++    var filter = element.getStyle('filter'), style = element.style;
++    if (value == 1 || value === '') {
++      (filter = stripAlpha(filter)) ?
++        style.filter = filter : style.removeAttribute('filter');
++      return element;
++    } else if (value &lt; 0.00001) value = 0;
++    style.filter = stripAlpha(filter) +
++      'alpha(opacity=' + (value * 100) + ')';
++    return element;
++  };
++
++  Element._attributeTranslations = (function(){
++
++    var classProp = 'className',
++        forProp = 'for',
++        el = document.createElement('div');
++
++    el.setAttribute(classProp, 'x');
++
++    if (el.className !== 'x') {
++      el.setAttribute('class', 'x');
++      if (el.className === 'x') {
++        classProp = 'class';
++      }
++    }
++    el = null;
++
++    el = document.createElement('label');
++    el.setAttribute(forProp, 'x');
++    if (el.htmlFor !== 'x') {
++      el.setAttribute('htmlFor', 'x');
++      if (el.htmlFor === 'x') {
++        forProp = 'htmlFor';
++      }
++    }
++    el = null;
++
++    return {
++      read: {
++        names: {
++          'class':      classProp,
++          'className':  classProp,
++          'for':        forProp,
++          'htmlFor':    forProp
++        },
++        values: {
++          _getAttr: function(element, attribute) {
++            return element.getAttribute(attribute);
++          },
++          _getAttr2: function(element, attribute) {
++            return element.getAttribute(attribute, 2);
++          },
++          _getAttrNode: function(element, attribute) {
++            var node = element.getAttributeNode(attribute);
++            return node ? node.value : &quot;&quot;;
++          },
++          _getEv: (function(){
++
++            var el = document.createElement('div'), f;
++            el.onclick = Prototype.emptyFunction;
++            var value = el.getAttribute('onclick');
++
++            if (String(value).indexOf('{') &gt; -1) {
++              f = function(element, attribute) {
++                attribute = element.getAttribute(attribute);
++                if (!attribute) return null;
++                attribute = attribute.toString();
++                attribute = attribute.split('{')[1];
++                attribute = attribute.split('}')[0];
++                return attribute.strip();
++              };
++            }
++            else if (value === '') {
++              f = function(element, attribute) {
++                attribute = element.getAttribute(attribute);
++                if (!attribute) return null;
++                return attribute.strip();
++              };
++            }
++            el = null;
++            return f;
++          })(),
++          _flag: function(element, attribute) {
++            return $(element).hasAttribute(attribute) ? attribute : null;
++          },
++          style: function(element) {
++            return element.style.cssText.toLowerCase();
++          },
++          title: function(element) {
++            return element.title;
++          }
++        }
++      }
++    }
++  })();
++
++  Element._attributeTranslations.write = {
++    names: Object.extend({
++      cellpadding: 'cellPadding',
++      cellspacing: 'cellSpacing'
++    }, Element._attributeTranslations.read.names),
++    values: {
++      checked: function(element, value) {
++        element.checked = !!value;
++      },
++
++      style: function(element, value) {
++        element.style.cssText = value ? value : '';
++      }
++    }
++  };
++
++  Element._attributeTranslations.has = {};
++
++  $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
++      'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
++    Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
++    Element._attributeTranslations.has[attr.toLowerCase()] = attr;
++  });
++
++  (function(v) {
++    Object.extend(v, {
++      href:        v._getAttr2,
++      src:         v._getAttr2,
++      type:        v._getAttr,
++      action:      v._getAttrNode,
++      disabled:    v._flag,
++      checked:     v._flag,
++      readonly:    v._flag,
++      multiple:    v._flag,
++      onload:      v._getEv,
++      onunload:    v._getEv,
++      onclick:     v._getEv,
++      ondblclick:  v._getEv,
++      onmousedown: v._getEv,
++      onmouseup:   v._getEv,
++      onmouseover: v._getEv,
++      onmousemove: v._getEv,
++      onmouseout:  v._getEv,
++      onfocus:     v._getEv,
++      onblur:      v._getEv,
++      onkeypress:  v._getEv,
++      onkeydown:   v._getEv,
++      onkeyup:     v._getEv,
++      onsubmit:    v._getEv,
++      onreset:     v._getEv,
++      onselect:    v._getEv,
++      onchange:    v._getEv
++    });
++  })(Element._attributeTranslations.read.values);
++
++  if (Prototype.BrowserFeatures.ElementExtensions) {
++    (function() {
++      function _descendants(element) {
++        var nodes = element.getElementsByTagName('*'), results = [];
++        for (var i = 0, node; node = nodes[i]; i++)
++          if (node.tagName !== &quot;!&quot;) // Filter out comment nodes.
++            results.push(node);
++        return results;
++      }
++
++      Element.Methods.down = function(element, expression, index) {
++        element = $(element);
++        if (arguments.length == 1) return element.firstDescendant();
++        return Object.isNumber(expression) ? _descendants(element)[expression] :
++          Element.select(element, expression)[index || 0];
++      }
++    })();
++  }
++
++}
++
++else if (Prototype.Browser.Gecko &amp;&amp; /rv:1\.8\.0/.test(navigator.userAgent)) {
++  Element.Methods.setOpacity = function(element, value) {
++    element = $(element);
++    element.style.opacity = (value == 1) ? 0.999999 :
++      (value === '') ? '' : (value &lt; 0.00001) ? 0 : value;
++    return element;
++  };
++}
++
++else if (Prototype.Browser.WebKit) {
++  Element.Methods.setOpacity = function(element, value) {
++    element = $(element);
++    element.style.opacity = (value == 1 || value === '') ? '' :
++      (value &lt; 0.00001) ? 0 : value;
++
++    if (value == 1)
++      if (element.tagName.toUpperCase() == 'IMG' &amp;&amp; element.width) {
++        element.width++; element.width--;
++      } else try {
++        var n = document.createTextNode(' ');
++        element.appendChild(n);
++        element.removeChild(n);
++      } catch (e) { }
++
++    return element;
++  };
++}
++
++if ('outerHTML' in document.documentElement) {
++  Element.Methods.replace = function(element, content) {
++    element = $(element);
++
++    if (content &amp;&amp; content.toElement) content = content.toElement();
++    if (Object.isElement(content)) {
++      element.parentNode.replaceChild(content, element);
++      return element;
++    }
++
++    content = Object.toHTML(content);
++    var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
++
++    if (Element._insertionTranslations.tags[tagName]) {
++      var nextSibling = element.next(),
++          fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
++      parent.removeChild(element);
++      if (nextSibling)
++        fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
++      else
++        fragments.each(function(node) { parent.appendChild(node) });
++    }
++    else element.outerHTML = content.stripScripts();
++
++    content.evalScripts.bind(content).defer();
++    return element;
++  };
++}
++
++Element._returnOffset = function(l, t) {
++  var result = [l, t];
++  result.left = l;
++  result.top = t;
++  return result;
++};
++
++Element._getContentFromAnonymousElement = function(tagName, html, force) {
++  var div = new Element('div'),
++      t = Element._insertionTranslations.tags[tagName];
++
++  var workaround = false;
++  if (t) workaround = true;
++  else if (force) {
++    workaround = true;
++    t = ['', '', 0];
++  }
++
++  if (workaround) {
++    div.innerHTML = '&amp;nbsp;' + t[0] + html + t[1];
++    div.removeChild(div.firstChild);
++    for (var i = t[2]; i--; ) {
++      div = div.firstChild;
++    }
++  }
++  else {
++    div.innerHTML = html;
++  }
++  return $A(div.childNodes);
++};
++
++Element._insertionTranslations = {
++  before: function(element, node) {
++    element.parentNode.insertBefore(node, element);
++  },
++  top: function(element, node) {
++    element.insertBefore(node, element.firstChild);
++  },
++  bottom: function(element, node) {
++    element.appendChild(node);
++  },
++  after: function(element, node) {
++    element.parentNode.insertBefore(node, element.nextSibling);
++  },
++  tags: {
++    TABLE:  ['&lt;table&gt;',                '&lt;/table&gt;',                   1],
++    TBODY:  ['&lt;table&gt;&lt;tbody&gt;',         '&lt;/tbody&gt;&lt;/table&gt;',           2],
++    TR:     ['&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;',     '&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;',      3],
++    TD:     ['&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;', '&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;', 4],
++    SELECT: ['&lt;select&gt;',               '&lt;/select&gt;',                  1]
++  }
++};
++
++(function() {
++  var tags = Element._insertionTranslations.tags;
++  Object.extend(tags, {
++    THEAD: tags.TBODY,
++    TFOOT: tags.TBODY,
++    TH:    tags.TD
++  });
++})();
++
++Element.Methods.Simulated = {
++  hasAttribute: function(element, attribute) {
++    attribute = Element._attributeTranslations.has[attribute] || attribute;
++    var node = $(element).getAttributeNode(attribute);
++    return !!(node &amp;&amp; node.specified);
++  }
++};
++
++Element.Methods.ByTag = { };
++
++Object.extend(Element, Element.Methods);
++
++(function(div) {
++
++  if (!Prototype.BrowserFeatures.ElementExtensions &amp;&amp; div['__proto__']) {
++    window.HTMLElement = { };
++    window.HTMLElement.prototype = div['__proto__'];
++    Prototype.BrowserFeatures.ElementExtensions = true;
++  }
++
++  div = null;
++
++})(document.createElement('div'));
++
++Element.extend = (function() {
++
++  function checkDeficiency(tagName) {
++    if (typeof window.Element != 'undefined') {
++      var proto = window.Element.prototype;
++      if (proto) {
++        var id = '_' + (Math.random()+'').slice(2),
++            el = document.createElement(tagName);
++        proto[id] = 'x';
++        var isBuggy = (el[id] !== 'x');
++        delete proto[id];
++        el = null;
++        return isBuggy;
++      }
++    }
++    return false;
++  }
++
++  function extendElementWith(element, methods) {
++    for (var property in methods) {
++      var value = methods[property];
++      if (Object.isFunction(value) &amp;&amp; !(property in element))
++        element[property] = value.methodize();
++    }
++  }
++
++  var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY = checkDeficiency('object');
++
++  if (Prototype.BrowserFeatures.SpecificElementExtensions) {
++    if (HTMLOBJECTELEMENT_PROTOTYPE_BUGGY) {
++      return function(element) {
++        if (element &amp;&amp; typeof element._extendedByPrototype == 'undefined') {
++          var t = element.tagName;
++          if (t &amp;&amp; (/^(?:object|applet|embed)$/i.test(t))) {
++            extendElementWith(element, Element.Methods);
++            extendElementWith(element, Element.Methods.Simulated);
++            extendElementWith(element, Element.Methods.ByTag[t.toUpperCase()]);
++          }
++        }
++        return element;
++      }
++    }
++    return Prototype.K;
++  }
++
++  var Methods = { }, ByTag = Element.Methods.ByTag;
++
++  var extend = Object.extend(function(element) {
++    if (!element || typeof element._extendedByPrototype != 'undefined' ||
++        element.nodeType != 1 || element == window) return element;
++
++    var methods = Object.clone(Methods),
++        tagName = element.tagName.toUpperCase();
++
++    if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
++
++    extendElementWith(element, methods);
++
++    element._extendedByPrototype = Prototype.emptyFunction;
++    return element;
++
++  }, {
++    refresh: function() {
++      if (!Prototype.BrowserFeatures.ElementExtensions) {
++        Object.extend(Methods, Element.Methods);
++        Object.extend(Methods, Element.Methods.Simulated);
++      }
++    }
++  });
++
++  extend.refresh();
++  return extend;
++})();
++
++if (document.documentElement.hasAttribute) {
++  Element.hasAttribute = function(element, attribute) {
++    return element.hasAttribute(attribute);
++  };
++}
++else {
++  Element.hasAttribute = Element.Methods.Simulated.hasAttribute;
++}
++
++Element.addMethods = function(methods) {
++  var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
++
++  if (!methods) {
++    Object.extend(Form, Form.Methods);
++    Object.extend(Form.Element, Form.Element.Methods);
++    Object.extend(Element.Methods.ByTag, {
++      &quot;FORM&quot;:     Object.clone(Form.Methods),
++      &quot;INPUT&quot;:    Object.clone(Form.Element.Methods),
++      &quot;SELECT&quot;:   Object.clone(Form.Element.Methods),
++      &quot;TEXTAREA&quot;: Object.clone(Form.Element.Methods),
++      &quot;BUTTON&quot;:   Object.clone(Form.Element.Methods)
++    });
++  }
++
++  if (arguments.length == 2) {
++    var tagName = methods;
++    methods = arguments[1];
++  }
++
++  if (!tagName) Object.extend(Element.Methods, methods || { });
++  else {
++    if (Object.isArray(tagName)) tagName.each(extend);
++    else extend(tagName);
++  }
++
++  function extend(tagName) {
++    tagName = tagName.toUpperCase();
++    if (!Element.Methods.ByTag[tagName])
++      Element.Methods.ByTag[tagName] = { };
++    Object.extend(Element.Methods.ByTag[tagName], methods);
++  }
++
++  function copy(methods, destination, onlyIfAbsent) {
++    onlyIfAbsent = onlyIfAbsent || false;
++    for (var property in methods) {
++      var value = methods[property];
++      if (!Object.isFunction(value)) continue;
++      if (!onlyIfAbsent || !(property in destination))
++        destination[property] = value.methodize();
++    }
++  }
++
++  function findDOMClass(tagName) {
++    var klass;
++    var trans = {
++      &quot;OPTGROUP&quot;: &quot;OptGroup&quot;, &quot;TEXTAREA&quot;: &quot;TextArea&quot;, &quot;P&quot;: &quot;Paragraph&quot;,
++      &quot;FIELDSET&quot;: &quot;FieldSet&quot;, &quot;UL&quot;: &quot;UList&quot;, &quot;OL&quot;: &quot;OList&quot;, &quot;DL&quot;: &quot;DList&quot;,
++      &quot;DIR&quot;: &quot;Directory&quot;, &quot;H1&quot;: &quot;Heading&quot;, &quot;H2&quot;: &quot;Heading&quot;, &quot;H3&quot;: &quot;Heading&quot;,
++      &quot;H4&quot;: &quot;Heading&quot;, &quot;H5&quot;: &quot;Heading&quot;, &quot;H6&quot;: &quot;Heading&quot;, &quot;Q&quot;: &quot;Quote&quot;,
++      &quot;INS&quot;: &quot;Mod&quot;, &quot;DEL&quot;: &quot;Mod&quot;, &quot;A&quot;: &quot;Anchor&quot;, &quot;IMG&quot;: &quot;Image&quot;, &quot;CAPTION&quot;:
++      &quot;TableCaption&quot;, &quot;COL&quot;: &quot;TableCol&quot;, &quot;COLGROUP&quot;: &quot;TableCol&quot;, &quot;THEAD&quot;:
++      &quot;TableSection&quot;, &quot;TFOOT&quot;: &quot;TableSection&quot;, &quot;TBODY&quot;: &quot;TableSection&quot;, &quot;TR&quot;:
++      &quot;TableRow&quot;, &quot;TH&quot;: &quot;TableCell&quot;, &quot;TD&quot;: &quot;TableCell&quot;, &quot;FRAMESET&quot;:
++      &quot;FrameSet&quot;, &quot;IFRAME&quot;: &quot;IFrame&quot;
++    };
++    if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
++    if (window[klass]) return window[klass];
++    klass = 'HTML' + tagName + 'Element';
++    if (window[klass]) return window[klass];
++    klass = 'HTML' + tagName.capitalize() + 'Element';
++    if (window[klass]) return window[klass];
++
++    var element = document.createElement(tagName),
++        proto = element['__proto__'] || element.constructor.prototype;
++
++    element = null;
++    return proto;
++  }
++
++  var elementPrototype = window.HTMLElement ? HTMLElement.prototype :
++   Element.prototype;
++
++  if (F.ElementExtensions) {
++    copy(Element.Methods, elementPrototype);
++    copy(Element.Methods.Simulated, elementPrototype, true);
++  }
++
++  if (F.SpecificElementExtensions) {
++    for (var tag in Element.Methods.ByTag) {
++      var klass = findDOMClass(tag);
++      if (Object.isUndefined(klass)) continue;
++      copy(T[tag], klass.prototype);
++    }
++  }
++
++  Object.extend(Element, Element.Methods);
++  delete Element.ByTag;
++
++  if (Element.extend.refresh) Element.extend.refresh();
++  Element.cache = { };
++};
++
++
++document.viewport = {
++
++  getDimensions: function() {
++    return { width: this.getWidth(), height: this.getHeight() };
++  },
++
++  getScrollOffsets: function() {
++    return Element._returnOffset(
++      window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
++      window.pageYOffset || document.documentElement.scrollTop  || document.body.scrollTop);
++  }
++};
++
++(function(viewport) {
++  var B = Prototype.Browser, doc = document, element, property = {};
++
++  function getRootElement() {
++    if (B.WebKit &amp;&amp; !doc.evaluate)
++      return document;
++
++    if (B.Opera &amp;&amp; window.parseFloat(window.opera.version()) &lt; 9.5)
++      return document.body;
++
++    return document.documentElement;
++  }
++
++  function define(D) {
++    if (!element) element = getRootElement();
++
++    property[D] = 'client' + D;
++
++    viewport['get' + D] = function() { return element[property[D]] };
++    return viewport['get' + D]();
++  }
++
++  viewport.getWidth  = define.curry('Width');
++
++  viewport.getHeight = define.curry('Height');
++})(document.viewport);
++
++
++Element.Storage = {
++  UID: 1
++};
++
++Element.addMethods({
++  getStorage: function(element) {
++    if (!(element = $(element))) return;
++
++    var uid;
++    if (element === window) {
++      uid = 0;
++    } else {
++      if (typeof element._prototypeUID === &quot;undefined&quot;)
++        element._prototypeUID = Element.Storage.UID++;
++      uid = element._prototypeUID;
++    }
++
++    if (!Element.Storage[uid])
++      Element.Storage[uid] = $H();
++
++    return Element.Storage[uid];
++  },
++
++  store: function(element, key, value) {
++    if (!(element = $(element))) return;
++
++    if (arguments.length === 2) {
++      Element.getStorage(element).update(key);
++    } else {
++      Element.getStorage(element).set(key, value);
++    }
++
++    return element;
++  },
++
++  retrieve: function(element, key, defaultValue) {
++    if (!(element = $(element))) return;
++    var hash = Element.getStorage(element), value = hash.get(key);
++
++    if (Object.isUndefined(value)) {
++      hash.set(key, defaultValue);
++      value = defaultValue;
++    }
++
++    return value;
++  },
++
++  clone: function(element, deep) {
++    if (!(element = $(element))) return;
++    var clone = element.cloneNode(deep);
++    clone._prototypeUID = void 0;
++    if (deep) {
++      var descendants = Element.select(clone, '*'),
++          i = descendants.length;
++      while (i--) {
++        descendants[i]._prototypeUID = void 0;
++      }
++    }
++    return Element.extend(clone);
++  },
++
++  purge: function(element) {
++    if (!(element = $(element))) return;
++    var purgeElement = Element._purgeElement;
++
++    purgeElement(element);
++
++    var descendants = element.getElementsByTagName('*'),
++     i = descendants.length;
++
++    while (i--) purgeElement(descendants[i]);
++
++    return null;
++  }
++});
++
++(function() {
++
++  function toDecimal(pctString) {
++    var match = pctString.match(/^(\d+)%?$/i);
++    if (!match) return null;
++    return (Number(match[1]) / 100);
++  }
++
++  function getPixelValue(value, property, context) {
++    var element = null;
++    if (Object.isElement(value)) {
++      element = value;
++      value = element.getStyle(property);
++    }
++
++    if (value === null) {
++      return null;
++    }
++
++    if ((/^(?:-)?\d+(\.\d+)?(px)?$/i).test(value)) {
++      return window.parseFloat(value);
++    }
++
++    var isPercentage = value.include('%'), isViewport = (context === document.viewport);
++
++    if (/\d/.test(value) &amp;&amp; element &amp;&amp; element.runtimeStyle &amp;&amp; !(isPercentage &amp;&amp; isViewport)) {
++      var style = element.style.left, rStyle = element.runtimeStyle.left;
++      element.runtimeStyle.left = element.currentStyle.left;
++      element.style.left = value || 0;
++      value = element.style.pixelLeft;
++      element.style.left = style;
++      element.runtimeStyle.left = rStyle;
++
++      return value;
++    }
++
++    if (element &amp;&amp; isPercentage) {
++      context = context || element.parentNode;
++      var decimal = toDecimal(value);
++      var whole = null;
++      var position = element.getStyle('position');
++
++      var isHorizontal = property.include('left') || property.include('right') ||
++       property.include('width');
++
++      var isVertical =  property.include('top') || property.include('bottom') ||
++        property.include('height');
++
++      if (context === document.viewport) {
++        if (isHorizontal) {
++          whole = document.viewport.getWidth();
++        } else if (isVertical) {
++          whole = document.viewport.getHeight();
++        }
++      } else {
++        if (isHorizontal) {
++          whole = $(context).measure('width');
++        } else if (isVertical) {
++          whole = $(context).measure('height');
++        }
++      }
++
++      return (whole === null) ? 0 : whole * decimal;
++    }
++
++    return 0;
++  }
++
++  function toCSSPixels(number) {
++    if (Object.isString(number) &amp;&amp; number.endsWith('px')) {
++      return number;
++    }
++    return number + 'px';
++  }
++
++  function isDisplayed(element) {
++    var originalElement = element;
++    while (element &amp;&amp; element.parentNode) {
++      var display = element.getStyle('display');
++      if (display === 'none') {
++        return false;
++      }
++      element = $(element.parentNode);
++    }
++    return true;
++  }
++
++  var hasLayout = Prototype.K;
++  if ('currentStyle' in document.documentElement) {
++    hasLayout = function(element) {
++      if (!element.currentStyle.hasLayout) {
++        element.style.zoom = 1;
++      }
++      return element;
++    };
++  }
++
++  function cssNameFor(key) {
++    if (key.include('border')) key = key + '-width';
++    return key.camelize();
++  }
++
++  Element.Layout = Class.create(Hash, {
++    initialize: function($super, element, preCompute) {
++      $super();
++      this.element = $(element);
++
++      Element.Layout.PROPERTIES.each( function(property) {
++        this._set(property, null);
++      }, this);
++
++      if (preCompute) {
++        this._preComputing = true;
++        this._begin();
++        Element.Layout.PROPERTIES.each( this._compute, this );
++        this._end();
++        this._preComputing = false;
++      }
++    },
++
++    _set: function(property, value) {
++      return Hash.prototype.set.call(this, property, value);
++    },
++
++    set: function(property, value) {
++      throw &quot;Properties of Element.Layout are read-only.&quot;;
++    },
++
++    get: function($super, property) {
++      var value = $super(property);
++      return value === null ? this._compute(property) : value;
++    },
++
++    _begin: function() {
++      if (this._prepared) return;
++
++      var element = this.element;
++      if (isDisplayed(element)) {
++        this._prepared = true;
++        return;
++      }
++
++      var originalStyles = {
++        position:   element.style.position   || '',
++        width:      element.style.width      || '',
++        visibility: element.style.visibility || '',
++        display:    element.style.display    || ''
++      };
++
++      element.store('prototype_original_styles', originalStyles);
++
++      var position = element.getStyle('position'),
++       width = element.getStyle('width');
++
++      if (width === &quot;0px&quot; || width === null) {
++        element.style.display = 'block';
++        width = element.getStyle('width');
++      }
++
++      var context = (position === 'fixed') ? document.viewport :
++       element.parentNode;
++
++      element.setStyle({
++        position:   'absolute',
++        visibility: 'hidden',
++        display:    'block'
++      });
++
++      var positionedWidth = element.getStyle('width');
++
++      var newWidth;
++      if (width &amp;&amp; (positionedWidth === width)) {
++        newWidth = getPixelValue(element, 'width', context);
++      } else if (position === 'absolute' || position === 'fixed') {
++        newWidth = getPixelValue(element, 'width', context);
++      } else {
++        var parent = element.parentNode, pLayout = $(parent).getLayout();
++
++        newWidth = pLayout.get('width') -
++         this.get('margin-left') -
++         this.get('border-left') -
++         this.get('padding-left') -
++         this.get('padding-right') -
++         this.get('border-right') -
++         this.get('margin-right');
++      }
++
++      element.setStyle({ width: newWidth + 'px' });
++
++      this._prepared = true;
++    },
++
++    _end: function() {
++      var element = this.element;
++      var originalStyles = element.retrieve('prototype_original_styles');
++      element.store('prototype_original_styles', null);
++      element.setStyle(originalStyles);
++      this._prepared = false;
++    },
++
++    _compute: function(property) {
++      var COMPUTATIONS = Element.Layout.COMPUTATIONS;
++      if (!(property in COMPUTATIONS)) {
++        throw &quot;Property not found.&quot;;
++      }
++
++      return this._set(property, COMPUTATIONS[property].call(this, this.element));
++    },
++
++    toObject: function() {
++      var args = $A(arguments);
++      var keys = (args.length === 0) ? Element.Layout.PROPERTIES :
++       args.join(' ').split(' ');
++      var obj = {};
++      keys.each( function(key) {
++        if (!Element.Layout.PROPERTIES.include(key)) return;
++        var value = this.get(key);
++        if (value != null) obj[key] = value;
++      }, this);
++      return obj;
++    },
++
++    toHash: function() {
++      var obj = this.toObject.apply(this, arguments);
++      return new Hash(obj);
++    },
++
++    toCSS: function() {
++      var args = $A(arguments);
++      var keys = (args.length === 0) ? Element.Layout.PROPERTIES :
++       args.join(' ').split(' ');
++      var css = {};
++
++      keys.each( function(key) {
++        if (!Element.Layout.PROPERTIES.include(key)) return;
++        if (Element.Layout.COMPOSITE_PROPERTIES.include(key)) return;
++
++        var value = this.get(key);
++        if (value != null) css[cssNameFor(key)] = value + 'px';
++      }, this);
++      return css;
++    },
++
++    inspect: function() {
++      return &quot;#&lt;Element.Layout&gt;&quot;;
++    }
++  });
++
++  Object.extend(Element.Layout, {
++    PROPERTIES: $w('height width top left right bottom border-left border-right border-top border-bottom padding-left padding-right padding-top padding-bottom margin-top margin-bottom margin-left margin-right padding-box-width padding-box-height border-box-width border-box-height margin-box-width margin-box-height'),
++
++    COMPOSITE_PROPERTIES: $w('padding-box-width padding-box-height margin-box-width margin-box-height border-box-width border-box-height'),
++
++    COMPUTATIONS: {
++      'height': function(element) {
++        if (!this._preComputing) this._begin();
++
++        var bHeight = this.get('border-box-height');
++        if (bHeight &lt;= 0) {
++          if (!this._preComputing) this._end();
++          return 0;
++        }
++
++        var bTop = this.get('border-top'),
++         bBottom = this.get('border-bottom');
++
++        var pTop = this.get('padding-top'),
++         pBottom = this.get('padding-bottom');
++
++        if (!this._preComputing) this._end();
++
++        return bHeight - bTop - bBottom - pTop - pBottom;
++      },
++
++      'width': function(element) {
++        if (!this._preComputing) this._begin();
++
++        var bWidth = this.get('border-box-width');
++        if (bWidth &lt;= 0) {
++          if (!this._preComputing) this._end();
++          return 0;
++        }
++
++        var bLeft = this.get('border-left'),
++         bRight = this.get('border-right');
++
++        var pLeft = this.get('padding-left'),
++         pRight = this.get('padding-right');
++
++        if (!this._preComputing) this._end();
++
++        return bWidth - bLeft - bRight - pLeft - pRight;
++      },
++
++      'padding-box-height': function(element) {
++        var height = this.get('height'),
++         pTop = this.get('padding-top'),
++         pBottom = this.get('padding-bottom');
++
++        return height + pTop + pBottom;
++      },
++
++      'padding-box-width': function(element) {
++        var width = this.get('width'),
++         pLeft = this.get('padding-left'),
++         pRight = this.get('padding-right');
++
++        return width + pLeft + pRight;
++      },
++
++      'border-box-height': function(element) {
++        if (!this._preComputing) this._begin();
++        var height = element.offsetHeight;
++        if (!this._preComputing) this._end();
++        return height;
++      },
++
++      'border-box-width': function(element) {
++        if (!this._preComputing) this._begin();
++        var width = element.offsetWidth;
++        if (!this._preComputing) this._end();
++        return width;
++      },
++
++      'margin-box-height': function(element) {
++        var bHeight = this.get('border-box-height'),
++         mTop = this.get('margin-top'),
++         mBottom = this.get('margin-bottom');
++
++        if (bHeight &lt;= 0) return 0;
++
++        return bHeight + mTop + mBottom;
++      },
++
++      'margin-box-width': function(element) {
++        var bWidth = this.get('border-box-width'),
++         mLeft = this.get('margin-left'),
++         mRight = this.get('margin-right');
++
++        if (bWidth &lt;= 0) return 0;
++
++        return bWidth + mLeft + mRight;
++      },
++
++      'top': function(element) {
++        var offset = element.positionedOffset();
++        return offset.top;
++      },
++
++      'bottom': function(element) {
++        var offset = element.positionedOffset(),
++         parent = element.getOffsetParent(),
++         pHeight = parent.measure('height');
++
++        var mHeight = this.get('border-box-height');
++
++        return pHeight - mHeight - offset.top;
++      },
++
++      'left': function(element) {
++        var offset = element.positionedOffset();
++        return offset.left;
++      },
++
++      'right': function(element) {
++        var offset = element.positionedOffset(),
++         parent = element.getOffsetParent(),
++         pWidth = parent.measure('width');
++
++        var mWidth = this.get('border-box-width');
++
++        return pWidth - mWidth - offset.left;
++      },
++
++      'padding-top': function(element) {
++        return getPixelValue(element, 'paddingTop');
++      },
++
++      'padding-bottom': function(element) {
++        return getPixelValue(element, 'paddingBottom');
++      },
++
++      'padding-left': function(element) {
++        return getPixelValue(element, 'paddingLeft');
++      },
++
++      'padding-right': function(element) {
++        return getPixelValue(element, 'paddingRight');
++      },
++
++      'border-top': function(element) {
++        return getPixelValue(element, 'borderTopWidth');
++      },
++
++      'border-bottom': function(element) {
++        return getPixelValue(element, 'borderBottomWidth');
++      },
++
++      'border-left': function(element) {
++        return getPixelValue(element, 'borderLeftWidth');
++      },
++
++      'border-right': function(element) {
++        return getPixelValue(element, 'borderRightWidth');
++      },
++
++      'margin-top': function(element) {
++        return getPixelValue(element, 'marginTop');
++      },
++
++      'margin-bottom': function(element) {
++        return getPixelValue(element, 'marginBottom');
++      },
++
++      'margin-left': function(element) {
++        return getPixelValue(element, 'marginLeft');
++      },
++
++      'margin-right': function(element) {
++        return getPixelValue(element, 'marginRight');
++      }
++    }
++  });
++
++  if ('getBoundingClientRect' in document.documentElement) {
++    Object.extend(Element.Layout.COMPUTATIONS, {
++      'right': function(element) {
++        var parent = hasLayout(element.getOffsetParent());
++        var rect = element.getBoundingClientRect(),
++         pRect = parent.getBoundingClientRect();
++
++        return (pRect.right - rect.right).round();
++      },
++
++      'bottom': function(element) {
++        var parent = hasLayout(element.getOffsetParent());
++        var rect = element.getBoundingClientRect(),
++         pRect = parent.getBoundingClientRect();
++
++        return (pRect.bottom - rect.bottom).round();
++      }
++    });
++  }
++
++  Element.Offset = Class.create({
++    initialize: function(left, top) {
++      this.left = left.round();
++      this.top  = top.round();
++
++      this[0] = this.left;
++      this[1] = this.top;
++    },
++
++    relativeTo: function(offset) {
++      return new Element.Offset(
++        this.left - offset.left,
++        this.top  - offset.top
++      );
++    },
++
++    inspect: function() {
++      return &quot;#&lt;Element.Offset left: #{left} top: #{top}&gt;&quot;.interpolate(this);
++    },
++
++    toString: function() {
++      return &quot;[#{left}, #{top}]&quot;.interpolate(this);
++    },
++
++    toArray: function() {
++      return [this.left, this.top];
++    }
++  });
++
++  function getLayout(element, preCompute) {
++    return new Element.Layout(element, preCompute);
++  }
++
++  function measure(element, property) {
++    return $(element).getLayout().get(property);
++  }
++
++  function getDimensions(element) {
++    element = $(element);
++    var display = Element.getStyle(element, 'display');
++
++    if (display &amp;&amp; display !== 'none') {
++      return { width: element.offsetWidth, height: element.offsetHeight };
++    }
++
++    var style = element.style;
++    var originalStyles = {
++      visibility: style.visibility,
++      position:   style.position,
++      display:    style.display
++    };
++
++    var newStyles = {
++      visibility: 'hidden',
++      display:    'block'
++    };
++
++    if (originalStyles.position !== 'fixed')
++      newStyles.position = 'absolute';
++
++    Element.setStyle(element, newStyles);
++
++    var dimensions = {
++      width:  element.offsetWidth,
++      height: element.offsetHeight
++    };
++
++    Element.setStyle(element, originalStyles);
++
++    return dimensions;
++  }
++
++  function getOffsetParent(element) {
++    element = $(element);
++
++    if (isDocument(element) || isDetached(element) || isBody(element) || isHtml(element))
++      return $(document.body);
++
++    var isInline = (Element.getStyle(element, 'display') === 'inline');
++    if (!isInline &amp;&amp; element.offsetParent) return $(element.offsetParent);
++
++    while ((element = element.parentNode) &amp;&amp; element !== document.body) {
++      if (Element.getStyle(element, 'position') !== 'static') {
++        return isHtml(element) ? $(document.body) : $(element);
++      }
++    }
++
++    return $(document.body);
++  }
++
++
++  function cumulativeOffset(element) {
++    element = $(element);
++    var valueT = 0, valueL = 0;
++    if (element.parentNode) {
++      do {
++        valueT += element.offsetTop  || 0;
++        valueL += element.offsetLeft || 0;
++        element = element.offsetParent;
++      } while (element);
++    }
++    return new Element.Offset(valueL, valueT);
++  }
++
++  function positionedOffset(element) {
++    element = $(element);
++
++    var layout = element.getLayout();
++
++    var valueT = 0, valueL = 0;
++    do {
++      valueT += element.offsetTop  || 0;
++      valueL += element.offsetLeft || 0;
++      element = element.offsetParent;
++      if (element) {
++        if (isBody(element)) break;
++        var p = Element.getStyle(element, 'position');
++        if (p !== 'static') break;
++      }
++    } while (element);
++
++    valueL -= layout.get('margin-top');
++    valueT -= layout.get('margin-left');
++
++    return new Element.Offset(valueL, valueT);
++  }
++
++  function cumulativeScrollOffset(element) {
++    var valueT = 0, valueL = 0;
++    do {
++      valueT += element.scrollTop  || 0;
++      valueL += element.scrollLeft || 0;
++      element = element.parentNode;
++    } while (element);
++    return new Element.Offset(valueL, valueT);
++  }
++
++  function viewportOffset(forElement) {
++    element = $(element);
++    var valueT = 0, valueL = 0, docBody = document.body;
++
++    var element = forElement;
++    do {
++      valueT += element.offsetTop  || 0;
++      valueL += element.offsetLeft || 0;
++      if (element.offsetParent == docBody &amp;&amp;
++        Element.getStyle(element, 'position') == 'absolute') break;
++    } while (element = element.offsetParent);
++
++    element = forElement;
++    do {
++      if (element != docBody) {
++        valueT -= element.scrollTop  || 0;
++        valueL -= element.scrollLeft || 0;
++      }
++    } while (element = element.parentNode);
++    return new Element.Offset(valueL, valueT);
++  }
++
++  function absolutize(element) {
++    element = $(element);
++
++    if (Element.getStyle(element, 'position') === 'absolute') {
++      return element;
++    }
++
++    var offsetParent = getOffsetParent(element);
++    var eOffset = element.viewportOffset(),
++     pOffset = offsetParent.viewportOffset();
++
++    var offset = eOffset.relativeTo(pOffset);
++    var layout = element.getLayout();
++
++    element.store('prototype_absolutize_original_styles', {
++      left:   element.getStyle('left'),
++      top:    element.getStyle('top'),
++      width:  element.getStyle('width'),
++      height: element.getStyle('height')
++    });
++
++    element.setStyle({
++      position: 'absolute',
++      top:    offset.top + 'px',
++      left:   offset.left + 'px',
++      width:  layout.get('width') + 'px',
++      height: layout.get('height') + 'px'
++    });
++
++    return element;
++  }
++
++  function relativize(element) {
++    element = $(element);
++    if (Element.getStyle(element, 'position') === 'relative') {
++      return element;
++    }
++
++    var originalStyles =
++     element.retrieve('prototype_absolutize_original_styles');
++
++    if (originalStyles) element.setStyle(originalStyles);
++    return element;
++  }
++
++  if (Prototype.Browser.IE) {
++    getOffsetParent = getOffsetParent.wrap(
++      function(proceed, element) {
++        element = $(element);
++
++        if (isDocument(element) || isDetached(element) || isBody(element) || isHtml(element))
++          return $(document.body);
++
++        var position = element.getStyle('position');
++        if (position !== 'static') return proceed(element);
++
++        element.setStyle({ position: 'relative' });
++        var value = proceed(element);
++        element.setStyle({ position: position });
++        return value;
++      }
++    );
++
++    positionedOffset = positionedOffset.wrap(function(proceed, element) {
++      element = $(element);
++      if (!element.parentNode) return new Element.Offset(0, 0);
++      var position = element.getStyle('position');
++      if (position !== 'static') return proceed(element);
++
++      var offsetParent = element.getOffsetParent();
++      if (offsetParent &amp;&amp; offsetParent.getStyle('position') === 'fixed')
++        hasLayout(offsetParent);
++
++      element.setStyle({ position: 'relative' });
++      var value = proceed(element);
++      element.setStyle({ position: position });
++      return value;
++    });
++  } else if (Prototype.Browser.Webkit) {
++    cumulativeOffset = function(element) {
++      element = $(element);
++      var valueT = 0, valueL = 0;
++      do {
++        valueT += element.offsetTop  || 0;
++        valueL += element.offsetLeft || 0;
++        if (element.offsetParent == document.body)
++          if (Element.getStyle(element, 'position') == 'absolute') break;
++
++        element = element.offsetParent;
++      } while (element);
++
++      return new Element.Offset(valueL, valueT);
++    };
++  }
++
++
++  Element.addMethods({
++    getLayout:              getLayout,
++    measure:                measure,
++    getDimensions:          getDimensions,
++    getOffsetParent:        getOffsetParent,
++    cumulativeOffset:       cumulativeOffset,
++    positionedOffset:       positionedOffset,
++    cumulativeScrollOffset: cumulativeScrollOffset,
++    viewportOffset:         viewportOffset,
++    absolutize:             absolutize,
++    relativize:             relativize
++  });
++
++  function isBody(element) {
++    return element.nodeName.toUpperCase() === 'BODY';
++  }
++
++  function isHtml(element) {
++    return element.nodeName.toUpperCase() === 'HTML';
++  }
++
++  function isDocument(element) {
++    return element.nodeType === Node.DOCUMENT_NODE;
++  }
++
++  function isDetached(element) {
++    return element !== document.body &amp;&amp;
++     !Element.descendantOf(element, document.body);
++  }
++
++  if ('getBoundingClientRect' in document.documentElement) {
++    Element.addMethods({
++      viewportOffset: function(element) {
++        element = $(element);
++        if (isDetached(element)) return new Element.Offset(0, 0);
++
++        var rect = element.getBoundingClientRect(),
++         docEl = document.documentElement;
++        return new Element.Offset(rect.left - docEl.clientLeft,
++         rect.top - docEl.clientTop);
++      }
++    });
++  }
++})();
++window.$$ = function() {
++  var expression = $A(arguments).join(', ');
++  return Prototype.Selector.select(expression, document);
++};
++
++Prototype.Selector = (function() {
++
++  function select() {
++    throw new Error('Method &quot;Prototype.Selector.select&quot; must be defined.');
++  }
++
++  function match() {
++    throw new Error('Method &quot;Prototype.Selector.match&quot; must be defined.');
++  }
++
++  function find(elements, expression, index) {
++    index = index || 0;
++    var match = Prototype.Selector.match, length = elements.length, matchIndex = 0, i;
++
++    for (i = 0; i &lt; length; i++) {
++      if (match(elements[i], expression) &amp;&amp; index == matchIndex++) {
++        return Element.extend(elements[i]);
++      }
++    }
++  }
++
++  function extendElements(elements) {
++    for (var i = 0, length = elements.length; i &lt; length; i++) {
++      Element.extend(elements[i]);
++    }
++    return elements;
++  }
++
++
++  var K = Prototype.K;
++
++  return {
++    select: select,
++    match: match,
++    find: find,
++    extendElements: (Element.extend === K) ? K : extendElements,
++    extendElement: Element.extend
++  };
++})();
++Prototype._original_property = window.Sizzle;
++/*!
++ * Sizzle CSS Selector Engine - v1.0
++ *  Copyright 2009, The Dojo Foundation
++ *  Released under the MIT, BSD, and GPL Licenses.
++ *  More information: http://sizzlejs.com/
++ */
++(function(){
++
++var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['&quot;][^'&quot;]*['&quot;]|[^[\]'&quot;]+)+\]|\\.|[^ &gt;+~,(\[\\]+)+|[&gt;+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
++        done = 0,
++        toString = Object.prototype.toString,
++        hasDuplicate = false,
++        baseHasDuplicate = true;
++
++[0, 0].sort(function(){
++        baseHasDuplicate = false;
++        return 0;
++});
++
++var Sizzle = function(selector, context, results, seed) {
++        results = results || [];
++        var origContext = context = context || document;
++
++        if ( context.nodeType !== 1 &amp;&amp; context.nodeType !== 9 ) {
++                return [];
++        }
++
++        if ( !selector || typeof selector !== &quot;string&quot; ) {
++                return results;
++        }
++
++        var parts = [], m, set, checkSet, check, mode, extra, prune = true, contextXML = isXML(context),
++                soFar = selector;
++
++        while ( (chunker.exec(&quot;&quot;), m = chunker.exec(soFar)) !== null ) {
++                soFar = m[3];
++
++                parts.push( m[1] );
++
++                if ( m[2] ) {
++                        extra = m[3];
++                        break;
++                }
++        }
++
++        if ( parts.length &gt; 1 &amp;&amp; origPOS.exec( selector ) ) {
++                if ( parts.length === 2 &amp;&amp; Expr.relative[ parts[0] ] ) {
++                        set = posProcess( parts[0] + parts[1], context );
++                } else {
++                        set = Expr.relative[ parts[0] ] ?
++                                [ context ] :
++                                Sizzle( parts.shift(), context );
++
++                        while ( parts.length ) {
++                                selector = parts.shift();
++
++                                if ( Expr.relative[ selector ] )
++                                        selector += parts.shift();
++
++                                set = posProcess( selector, set );
++                        }
++                }
++        } else {
++                if ( !seed &amp;&amp; parts.length &gt; 1 &amp;&amp; context.nodeType === 9 &amp;&amp; !contextXML &amp;&amp;
++                                Expr.match.ID.test(parts[0]) &amp;&amp; !Expr.match.ID.test(parts[parts.length - 1]) ) {
++                        var ret = Sizzle.find( parts.shift(), context, contextXML );
++                        context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0];
++                }
++
++                if ( context ) {
++                        var ret = seed ?
++                                { expr: parts.pop(), set: makeArray(seed) } :
++                                Sizzle.find( parts.pop(), parts.length === 1 &amp;&amp; (parts[0] === &quot;~&quot; || parts[0] === &quot;+&quot;) &amp;&amp; context.parentNode ? context.parentNode : context, contextXML );
++                        set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set;
++
++                        if ( parts.length &gt; 0 ) {
++                                checkSet = makeArray(set);
++                        } else {
++                                prune = false;
++                        }
++
++                        while ( parts.length ) {
++                                var cur = parts.pop(), pop = cur;
++
++                                if ( !Expr.relative[ cur ] ) {
++                                        cur = &quot;&quot;;
++                                } else {
++                                        pop = parts.pop();
++                                }
++
++                                if ( pop == null ) {
++                                        pop = context;
++                                }
++
++                                Expr.relative[ cur ]( checkSet, pop, contextXML );
++                        }
++                } else {
++                        checkSet = parts = [];
++                }
++        }
++
++        if ( !checkSet ) {
++                checkSet = set;
++        }
++
++        if ( !checkSet ) {
++                throw &quot;Syntax error, unrecognized expression: &quot; + (cur || selector);
++        }
++
++        if ( toString.call(checkSet) === &quot;[object Array]&quot; ) {
++                if ( !prune ) {
++                        results.push.apply( results, checkSet );
++                } else if ( context &amp;&amp; context.nodeType === 1 ) {
++                        for ( var i = 0; checkSet[i] != null; i++ ) {
++                                if ( checkSet[i] &amp;&amp; (checkSet[i] === true || checkSet[i].nodeType === 1 &amp;&amp; contains(context, checkSet[i])) ) {
++                                        results.push( set[i] );
++                                }
++                        }
++                } else {
++                        for ( var i = 0; checkSet[i] != null; i++ ) {
++                                if ( checkSet[i] &amp;&amp; checkSet[i].nodeType === 1 ) {
++                                        results.push( set[i] );
++                                }
++                        }
++                }
++        } else {
++                makeArray( checkSet, results );
++        }
++
++        if ( extra ) {
++                Sizzle( extra, origContext, results, seed );
++                Sizzle.uniqueSort( results );
++        }
++
++        return results;
++};
++
++Sizzle.uniqueSort = function(results){
++        if ( sortOrder ) {
++                hasDuplicate = baseHasDuplicate;
++                results.sort(sortOrder);
++
++                if ( hasDuplicate ) {
++                        for ( var i = 1; i &lt; results.length; i++ ) {
++                                if ( results[i] === results[i-1] ) {
++                                        results.splice(i--, 1);
++                                }
++                        }
++                }
++        }
++
++        return results;
++};
++
++Sizzle.matches = function(expr, set){
++        return Sizzle(expr, null, null, set);
++};
++
++Sizzle.find = function(expr, context, isXML){
++        var set, match;
++
++        if ( !expr ) {
++                return [];
++        }
++
++        for ( var i = 0, l = Expr.order.length; i &lt; l; i++ ) {
++                var type = Expr.order[i], match;
++
++                if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
++                        var left = match[1];
++                        match.splice(1,1);
++
++                        if ( left.substr( left.length - 1 ) !== &quot;\\&quot; ) {
++                                match[1] = (match[1] || &quot;&quot;).replace(/\\/g, &quot;&quot;);
++                                set = Expr.find[ type ]( match, context, isXML );
++                                if ( set != null ) {
++                                        expr = expr.replace( Expr.match[ type ], &quot;&quot; );
++                                        break;
++                                }
++                        }
++                }
++        }
++
++        if ( !set ) {
++                set = context.getElementsByTagName(&quot;*&quot;);
++        }
++
++        return {set: set, expr: expr};
++};
++
++Sizzle.filter = function(expr, set, inplace, not){
++        var old = expr, result = [], curLoop = set, match, anyFound,
++                isXMLFilter = set &amp;&amp; set[0] &amp;&amp; isXML(set[0]);
++
++        while ( expr &amp;&amp; set.length ) {
++                for ( var type in Expr.filter ) {
++                        if ( (match = Expr.match[ type ].exec( expr )) != null ) {
++                                var filter = Expr.filter[ type ], found, item;
++                                anyFound = false;
++
++                                if ( curLoop == result ) {
++                                        result = [];
++                                }
++
++                                if ( Expr.preFilter[ type ] ) {
++                                        match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
++
++                                        if ( !match ) {
++                                                anyFound = found = true;
++                                        } else if ( match === true ) {
++                                                continue;
++                                        }
++                                }
++
++                                if ( match ) {
++                                        for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
++                                                if ( item ) {
++                                                        found = filter( item, match, i, curLoop );
++                                                        var pass = not ^ !!found;
++
++                                                        if ( inplace &amp;&amp; found != null ) {
++                                                                if ( pass ) {
++                                                                        anyFound = true;
++                                                                } else {
++                                                                        curLoop[i] = false;
++                                                                }
++                                                        } else if ( pass ) {
++                                                                result.push( item );
++                                                                anyFound = true;
++                                                        }
++                                                }
++                                        }
++                                }
++
++                                if ( found !== undefined ) {
++                                        if ( !inplace ) {
++                                                curLoop = result;
++                                        }
++
++                                        expr = expr.replace( Expr.match[ type ], &quot;&quot; );
++
++                                        if ( !anyFound ) {
++                                                return [];
++                                        }
++
++                                        break;
++                                }
++                        }
++                }
++
++                if ( expr == old ) {
++                        if ( anyFound == null ) {
++                                throw &quot;Syntax error, unrecognized expression: &quot; + expr;
++                        } else {
++                                break;
++                        }
++                }
++
++                old = expr;
++        }
++
++        return curLoop;
++};
++
++var Expr = Sizzle.selectors = {
++        order: [ &quot;ID&quot;, &quot;NAME&quot;, &quot;TAG&quot; ],
++        match: {
++                ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
++                CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
++                NAME: /\[name=['&quot;]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['&quot;]*\]/,
++                ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['&quot;]*)(.*?)\3|)\s*\]/,
++                TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,
++                CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
++                POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
++                PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['&quot;]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
++        },
++        leftMatch: {},
++        attrMap: {
++                &quot;class&quot;: &quot;className&quot;,
++                &quot;for&quot;: &quot;htmlFor&quot;
++        },
++        attrHandle: {
++                href: function(elem){
++                        return elem.getAttribute(&quot;href&quot;);
++                }
++        },
++        relative: {
++                &quot;+&quot;: function(checkSet, part, isXML){
++                        var isPartStr = typeof part === &quot;string&quot;,
++                                isTag = isPartStr &amp;&amp; !/\W/.test(part),
++                                isPartStrNotTag = isPartStr &amp;&amp; !isTag;
++
++                        if ( isTag &amp;&amp; !isXML ) {
++                                part = part.toUpperCase();
++                        }
++
++                        for ( var i = 0, l = checkSet.length, elem; i &lt; l; i++ ) {
++                                if ( (elem = checkSet[i]) ) {
++                                        while ( (elem = elem.previousSibling) &amp;&amp; elem.nodeType !== 1 ) {}
++
++                                        checkSet[i] = isPartStrNotTag || elem &amp;&amp; elem.nodeName === part ?
++                                                elem || false :
++                                                elem === part;
++                                }
++                        }
++
++                        if ( isPartStrNotTag ) {
++                                Sizzle.filter( part, checkSet, true );
++                        }
++                },
++                &quot;&gt;&quot;: function(checkSet, part, isXML){
++                        var isPartStr = typeof part === &quot;string&quot;;
++
++                        if ( isPartStr &amp;&amp; !/\W/.test(part) ) {
++                                part = isXML ? part : part.toUpperCase();
++
++                                for ( var i = 0, l = checkSet.length; i &lt; l; i++ ) {
++                                        var elem = checkSet[i];
++                                        if ( elem ) {
++                                                var parent = elem.parentNode;
++                                                checkSet[i] = parent.nodeName === part ? parent : false;
++                                        }
++                                }
++                        } else {
++                                for ( var i = 0, l = checkSet.length; i &lt; l; i++ ) {
++                                        var elem = checkSet[i];
++                                        if ( elem ) {
++                                                checkSet[i] = isPartStr ?
++                                                        elem.parentNode :
++                                                        elem.parentNode === part;
++                                        }
++                                }
++
++                                if ( isPartStr ) {
++                                        Sizzle.filter( part, checkSet, true );
++                                }
++                        }
++                },
++                &quot;&quot;: function(checkSet, part, isXML){
++                        var doneName = done++, checkFn = dirCheck;
++
++                        if ( !/\W/.test(part) ) {
++                                var nodeCheck = part = isXML ? part : part.toUpperCase();
++                                checkFn = dirNodeCheck;
++                        }
++
++                        checkFn(&quot;parentNode&quot;, part, doneName, checkSet, nodeCheck, isXML);
++                },
++                &quot;~&quot;: function(checkSet, part, isXML){
++                        var doneName = done++, checkFn = dirCheck;
++
++                        if ( typeof part === &quot;string&quot; &amp;&amp; !/\W/.test(part) ) {
++                                var nodeCheck = part = isXML ? part : part.toUpperCase();
++                                checkFn = dirNodeCheck;
++                        }
++
++                        checkFn(&quot;previousSibling&quot;, part, doneName, checkSet, nodeCheck, isXML);
++                }
++        },
++        find: {
++                ID: function(match, context, isXML){
++                        if ( typeof context.getElementById !== &quot;undefined&quot; &amp;&amp; !isXML ) {
++                                var m = context.getElementById(match[1]);
++                                return m ? [m] : [];
++                        }
++                },
++                NAME: function(match, context, isXML){
++                        if ( typeof context.getElementsByName !== &quot;undefined&quot; ) {
++                                var ret = [], results = context.getElementsByName(match[1]);
++
++                                for ( var i = 0, l = results.length; i &lt; l; i++ ) {
++                                        if ( results[i].getAttribute(&quot;name&quot;) === match[1] ) {
++                                                ret.push( results[i] );
++                                        }
++                                }
++
++                                return ret.length === 0 ? null : ret;
++                        }
++                },
++                TAG: function(match, context){
++                        return context.getElementsByTagName(match[1]);
++                }
++        },
++        preFilter: {
++                CLASS: function(match, curLoop, inplace, result, not, isXML){
++                        match = &quot; &quot; + match[1].replace(/\\/g, &quot;&quot;) + &quot; &quot;;
++
++                        if ( isXML ) {
++                                return match;
++                        }
++
++                        for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
++                                if ( elem ) {
++                                        if ( not ^ (elem.className &amp;&amp; (&quot; &quot; + elem.className + &quot; &quot;).indexOf(match) &gt;= 0) ) {
++                                                if ( !inplace )
++                                                        result.push( elem );
++                                        } else if ( inplace ) {
++                                                curLoop[i] = false;
++                                        }
++                                }
++                        }
++
++                        return false;
++                },
++                ID: function(match){
++                        return match[1].replace(/\\/g, &quot;&quot;);
++                },
++                TAG: function(match, curLoop){
++                        for ( var i = 0; curLoop[i] === false; i++ ){}
++                        return curLoop[i] &amp;&amp; isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
++                },
++                CHILD: function(match){
++                        if ( match[1] == &quot;nth&quot; ) {
++                                var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
++                                        match[2] == &quot;even&quot; &amp;&amp; &quot;2n&quot; || match[2] == &quot;odd&quot; &amp;&amp; &quot;2n+1&quot; ||
++                                        !/\D/.test( match[2] ) &amp;&amp; &quot;0n+&quot; + match[2] || match[2]);
++
++                                match[2] = (test[1] + (test[2] || 1)) - 0;
++                                match[3] = test[3] - 0;
++                        }
++
++                        match[0] = done++;
++
++                        return match;
++                },
++                ATTR: function(match, curLoop, inplace, result, not, isXML){
++                        var name = match[1].replace(/\\/g, &quot;&quot;);
++
++                        if ( !isXML &amp;&amp; Expr.attrMap[name] ) {
++                                match[1] = Expr.attrMap[name];
++                        }
++
++                        if ( match[2] === &quot;~=&quot; ) {
++                                match[4] = &quot; &quot; + match[4] + &quot; &quot;;
++                        }
++
++                        return match;
++                },
++                PSEUDO: function(match, curLoop, inplace, result, not){
++                        if ( match[1] === &quot;not&quot; ) {
++                                if ( ( chunker.exec(match[3]) || &quot;&quot; ).length &gt; 1 || /^\w/.test(match[3]) ) {
++                                        match[3] = Sizzle(match[3], null, null, curLoop);
++                                } else {
++                                        var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
++                                        if ( !inplace ) {
++                                                result.push.apply( result, ret );
++                                        }
++                                        return false;
++                                }
++                        } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
++                                return true;
++                        }
++
++                        return match;
++                },
++                POS: function(match){
++                        match.unshift( true );
++                        return match;
++                }
++        },
++        filters: {
++                enabled: function(elem){
++                        return elem.disabled === false &amp;&amp; elem.type !== &quot;hidden&quot;;
++                },
++                disabled: function(elem){
++                        return elem.disabled === true;
++                },
++                checked: function(elem){
++                        return elem.checked === true;
++                },
++                selected: function(elem){
++                        elem.parentNode.selectedIndex;
++                        return elem.selected === true;
++                },
++                parent: function(elem){
++                        return !!elem.firstChild;
++                },
++                empty: function(elem){
++                        return !elem.firstChild;
++                },
++                has: function(elem, i, match){
++                        return !!Sizzle( match[3], elem ).length;
++                },
++                header: function(elem){
++                        return /h\d/i.test( elem.nodeName );
++                },
++                text: function(elem){
++                        return &quot;text&quot; === elem.type;
++                },
++                radio: function(elem){
++                        return &quot;radio&quot; === elem.type;
++                },
++                checkbox: function(elem){
++                        return &quot;checkbox&quot; === elem.type;
++                },
++                file: function(elem){
++                        return &quot;file&quot; === elem.type;
++                },
++                password: function(elem){
++                        return &quot;password&quot; === elem.type;
++                },
++                submit: function(elem){
++                        return &quot;submit&quot; === elem.type;
++                },
++                image: function(elem){
++                        return &quot;image&quot; === elem.type;
++                },
++                reset: function(elem){
++                        return &quot;reset&quot; === elem.type;
++                },
++                button: function(elem){
++                        return &quot;button&quot; === elem.type || elem.nodeName.toUpperCase() === &quot;BUTTON&quot;;
++                },
++                input: function(elem){
++                        return /input|select|textarea|button/i.test(elem.nodeName);
++                }
++        },
++        setFilters: {
++                first: function(elem, i){
++                        return i === 0;
++                },
++                last: function(elem, i, match, array){
++                        return i === array.length - 1;
++                },
++                even: function(elem, i){
++                        return i % 2 === 0;
++                },
++                odd: function(elem, i){
++                        return i % 2 === 1;
++                },
++                lt: function(elem, i, match){
++                        return i &lt; match[3] - 0;
++                },
++                gt: function(elem, i, match){
++                        return i &gt; match[3] - 0;
++                },
++                nth: function(elem, i, match){
++                        return match[3] - 0 == i;
++                },
++                eq: function(elem, i, match){
++                        return match[3] - 0 == i;
++                }
++        },
++        filter: {
++                PSEUDO: function(elem, match, i, array){
++                        var name = match[1], filter = Expr.filters[ name ];
++
++                        if ( filter ) {
++                                return filter( elem, i, match, array );
++                        } else if ( name === &quot;contains&quot; ) {
++                                return (elem.textContent || elem.innerText || &quot;&quot;).indexOf(match[3]) &gt;= 0;
++                        } else if ( name === &quot;not&quot; ) {
++                                var not = match[3];
++
++                                for ( var i = 0, l = not.length; i &lt; l; i++ ) {
++                                        if ( not[i] === elem ) {
++                                                return false;
++                                        }
++                                }
++
++                                return true;
++                        }
++                },
++                CHILD: function(elem, match){
++                        var type = match[1], node = elem;
++                        switch (type) {
++                                case 'only':
++                                case 'first':
++                                        while ( (node = node.previousSibling) )  {
++                                                if ( node.nodeType === 1 ) return false;
++                                        }
++                                        if ( type == 'first') return true;
++                                        node = elem;
++                                case 'last':
++                                        while ( (node = node.nextSibling) )  {
++                                                if ( node.nodeType === 1 ) return false;
++                                        }
++                                        return true;
++                                case 'nth':
++                                        var first = match[2], last = match[3];
++
++                                        if ( first == 1 &amp;&amp; last == 0 ) {
++                                                return true;
++                                        }
++
++                                        var doneName = match[0],
++                                                parent = elem.parentNode;
++
++                                        if ( parent &amp;&amp; (parent.sizcache !== doneName || !elem.nodeIndex) ) {
++                                                var count = 0;
++                                                for ( node = parent.firstChild; node; node = node.nextSibling ) {
++                                                        if ( node.nodeType === 1 ) {
++                                                                node.nodeIndex = ++count;
++                                                        }
++                                                }
++                                                parent.sizcache = doneName;
++                                        }
++
++                                        var diff = elem.nodeIndex - last;
++                                        if ( first == 0 ) {
++                                                return diff == 0;
++                                        } else {
++                                                return ( diff % first == 0 &amp;&amp; diff / first &gt;= 0 );
++                                        }
++                        }
++                },
++                ID: function(elem, match){
++                        return elem.nodeType === 1 &amp;&amp; elem.getAttribute(&quot;id&quot;) === match;
++                },
++                TAG: function(elem, match){
++                        return (match === &quot;*&quot; &amp;&amp; elem.nodeType === 1) || elem.nodeName === match;
++                },
++                CLASS: function(elem, match){
++                        return (&quot; &quot; + (elem.className || elem.getAttribute(&quot;class&quot;)) + &quot; &quot;)
++                                .indexOf( match ) &gt; -1;
++                },
++                ATTR: function(elem, match){
++                        var name = match[1],
++                                result = Expr.attrHandle[ name ] ?
++                                        Expr.attrHandle[ name ]( elem ) :
++                                        elem[ name ] != null ?
++                                                elem[ name ] :
++                                                elem.getAttribute( name ),
++                                value = result + &quot;&quot;,
++                                type = match[2],
++                                check = match[4];
++
++                        return result == null ?
++                                type === &quot;!=&quot; :
++                                type === &quot;=&quot; ?
++                                value === check :
++                                type === &quot;*=&quot; ?
++                                value.indexOf(check) &gt;= 0 :
++                                type === &quot;~=&quot; ?
++                                (&quot; &quot; + value + &quot; &quot;).indexOf(check) &gt;= 0 :
++                                !check ?
++                                value &amp;&amp; result !== false :
++                                type === &quot;!=&quot; ?
++                                value != check :
++                                type === &quot;^=&quot; ?
++                                value.indexOf(check) === 0 :
++                                type === &quot;$=&quot; ?
++                                value.substr(value.length - check.length) === check :
++                                type === &quot;|=&quot; ?
++                                value === check || value.substr(0, check.length + 1) === check + &quot;-&quot; :
++                                false;
++                },
++                POS: function(elem, match, i, array){
++                        var name = match[2], filter = Expr.setFilters[ name ];
++
++                        if ( filter ) {
++                                return filter( elem, i, match, array );
++                        }
++                }
++        }
++};
++
++var origPOS = Expr.match.POS;
++
++for ( var type in Expr.match ) {
++        Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
++        Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source );
++}
++
++var makeArray = function(array, results) {
++        array = Array.prototype.slice.call( array, 0 );
++
++        if ( results ) {
++                results.push.apply( results, array );
++                return results;
++        }
++
++        return array;
++};
++
++try {
++        Array.prototype.slice.call( document.documentElement.childNodes, 0 );
++
++} catch(e){
++        makeArray = function(array, results) {
++                var ret = results || [];
++
++                if ( toString.call(array) === &quot;[object Array]&quot; ) {
++                        Array.prototype.push.apply( ret, array );
++                } else {
++                        if ( typeof array.length === &quot;number&quot; ) {
++                                for ( var i = 0, l = array.length; i &lt; l; i++ ) {
++                                        ret.push( array[i] );
++                                }
++                        } else {
++                                for ( var i = 0; array[i]; i++ ) {
++                                        ret.push( array[i] );
++                                }
++                        }
++                }
++
++                return ret;
++        };
++}
++
++var sortOrder;
++
++if ( document.documentElement.compareDocumentPosition ) {
++        sortOrder = function( a, b ) {
++                if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
++                        if ( a == b ) {
++                                hasDuplicate = true;
++                        }
++                        return 0;
++                }
++
++                var ret = a.compareDocumentPosition(b) &amp; 4 ? -1 : a === b ? 0 : 1;
++                if ( ret === 0 ) {
++                        hasDuplicate = true;
++                }
++                return ret;
++        };
++} else if ( &quot;sourceIndex&quot; in document.documentElement ) {
++        sortOrder = function( a, b ) {
++                if ( !a.sourceIndex || !b.sourceIndex ) {
++                        if ( a == b ) {
++                                hasDuplicate = true;
++                        }
++                        return 0;
++                }
++
++                var ret = a.sourceIndex - b.sourceIndex;
++                if ( ret === 0 ) {
++                        hasDuplicate = true;
++                }
++                return ret;
++        };
++} else if ( document.createRange ) {
++        sortOrder = function( a, b ) {
++                if ( !a.ownerDocument || !b.ownerDocument ) {
++                        if ( a == b ) {
++                                hasDuplicate = true;
++                        }
++                        return 0;
++                }
++
++                var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
++                aRange.setStart(a, 0);
++                aRange.setEnd(a, 0);
++                bRange.setStart(b, 0);
++                bRange.setEnd(b, 0);
++                var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
++                if ( ret === 0 ) {
++                        hasDuplicate = true;
++                }
++                return ret;
++        };
++}
++
++(function(){
++        var form = document.createElement(&quot;div&quot;),
++                id = &quot;script&quot; + (new Date).getTime();
++        form.innerHTML = &quot;&lt;a name='&quot; + id + &quot;'/&gt;&quot;;
++
++        var root = document.documentElement;
++        root.insertBefore( form, root.firstChild );
++
++        if ( !!document.getElementById( id ) ) {
++                Expr.find.ID = function(match, context, isXML){
++                        if ( typeof context.getElementById !== &quot;undefined&quot; &amp;&amp; !isXML ) {
++                                var m = context.getElementById(match[1]);
++                                return m ? m.id === match[1] || typeof m.getAttributeNode !== &quot;undefined&quot; &amp;&amp; m.getAttributeNode(&quot;id&quot;).nodeValue === match[1] ? [m] : undefined : [];
++                        }
++                };
++
++                Expr.filter.ID = function(elem, match){
++                        var node = typeof elem.getAttributeNode !== &quot;undefined&quot; &amp;&amp; elem.getAttributeNode(&quot;id&quot;);
++                        return elem.nodeType === 1 &amp;&amp; node &amp;&amp; node.nodeValue === match;
++                };
++        }
++
++        root.removeChild( form );
++        root = form = null; // release memory in IE
++})();
++
++(function(){
++
++        var div = document.createElement(&quot;div&quot;);
++        div.appendChild( document.createComment(&quot;&quot;) );
++
++        if ( div.getElementsByTagName(&quot;*&quot;).length &gt; 0 ) {
++                Expr.find.TAG = function(match, context){
++                        var results = context.getElementsByTagName(match[1]);
++
++                        if ( match[1] === &quot;*&quot; ) {
++                                var tmp = [];
++
++                                for ( var i = 0; results[i]; i++ ) {
++                                        if ( results[i].nodeType === 1 ) {
++                                                tmp.push( results[i] );
++                                        }
++                                }
++
++                                results = tmp;
++                        }
++
++                        return results;
++                };
++        }
++
++        div.innerHTML = &quot;&lt;a href='#'&gt;&lt;/a&gt;&quot;;
++        if ( div.firstChild &amp;&amp; typeof div.firstChild.getAttribute !== &quot;undefined&quot; &amp;&amp;
++                        div.firstChild.getAttribute(&quot;href&quot;) !== &quot;#&quot; ) {
++                Expr.attrHandle.href = function(elem){
++                        return elem.getAttribute(&quot;href&quot;, 2);
++                };
++        }
++
++        div = null; // release memory in IE
++})();
++
++if ( document.querySelectorAll ) (function(){
++        var oldSizzle = Sizzle, div = document.createElement(&quot;div&quot;);
++        div.innerHTML = &quot;&lt;p class='TEST'&gt;&lt;/p&gt;&quot;;
++
++        if ( div.querySelectorAll &amp;&amp; div.querySelectorAll(&quot;.TEST&quot;).length === 0 ) {
++                return;
++        }
++
++        Sizzle = function(query, context, extra, seed){
++                context = context || document;
++
++                if ( !seed &amp;&amp; context.nodeType === 9 &amp;&amp; !isXML(context) ) {
++                        try {
++                                return makeArray( context.querySelectorAll(query), extra );
++                        } catch(e){}
++                }
++
++                return oldSizzle(query, context, extra, seed);
++        };
++
++        for ( var prop in oldSizzle ) {
++                Sizzle[ prop ] = oldSizzle[ prop ];
++        }
++
++        div = null; // release memory in IE
++})();
++
++if ( document.getElementsByClassName &amp;&amp; document.documentElement.getElementsByClassName ) (function(){
++        var div = document.createElement(&quot;div&quot;);
++        div.innerHTML = &quot;&lt;div class='test e'&gt;&lt;/div&gt;&lt;div class='test'&gt;&lt;/div&gt;&quot;;
++
++        if ( div.getElementsByClassName(&quot;e&quot;).length === 0 )
++                return;
++
++        div.lastChild.className = &quot;e&quot;;
++
++        if ( div.getElementsByClassName(&quot;e&quot;).length === 1 )
++                return;
++
++        Expr.order.splice(1, 0, &quot;CLASS&quot;);
++        Expr.find.CLASS = function(match, context, isXML) {
++                if ( typeof context.getElementsByClassName !== &quot;undefined&quot; &amp;&amp; !isXML ) {
++                        return context.getElementsByClassName(match[1]);
++                }
++        };
++
++        div = null; // release memory in IE
++})();
++
++function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
++        var sibDir = dir == &quot;previousSibling&quot; &amp;&amp; !isXML;
++        for ( var i = 0, l = checkSet.length; i &lt; l; i++ ) {
++                var elem = checkSet[i];
++                if ( elem ) {
++                        if ( sibDir &amp;&amp; elem.nodeType === 1 ){
++                                elem.sizcache = doneName;
++                                elem.sizset = i;
++                        }
++                        elem = elem[dir];
++                        var match = false;
++
++                        while ( elem ) {
++                                if ( elem.sizcache === doneName ) {
++                                        match = checkSet[elem.sizset];
++                                        break;
++                                }
++
++                                if ( elem.nodeType === 1 &amp;&amp; !isXML ){
++                                        elem.sizcache = doneName;
++                                        elem.sizset = i;
++                                }
++
++                                if ( elem.nodeName === cur ) {
++                                        match = elem;
++                                        break;
++                                }
++
++                                elem = elem[dir];
++                        }
++
++                        checkSet[i] = match;
++                }
++        }
++}
++
++function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
++        var sibDir = dir == &quot;previousSibling&quot; &amp;&amp; !isXML;
++        for ( var i = 0, l = checkSet.length; i &lt; l; i++ ) {
++                var elem = checkSet[i];
++                if ( elem ) {
++                        if ( sibDir &amp;&amp; elem.nodeType === 1 ) {
++                                elem.sizcache = doneName;
++                                elem.sizset = i;
++                        }
++                        elem = elem[dir];
++                        var match = false;
++
++                        while ( elem ) {
++                                if ( elem.sizcache === doneName ) {
++                                        match = checkSet[elem.sizset];
++                                        break;
++                                }
++
++                                if ( elem.nodeType === 1 ) {
++                                        if ( !isXML ) {
++                                                elem.sizcache = doneName;
++                                                elem.sizset = i;
++                                        }
++                                        if ( typeof cur !== &quot;string&quot; ) {
++                                                if ( elem === cur ) {
++                                                        match = true;
++                                                        break;
++                                                }
++
++                                        } else if ( Sizzle.filter( cur, [elem] ).length &gt; 0 ) {
++                                                match = elem;
++                                                break;
++                                        }
++                                }
++
++                                elem = elem[dir];
++                        }
++
++                        checkSet[i] = match;
++                }
++        }
++}
++
++var contains = document.compareDocumentPosition ?  function(a, b){
++        return a.compareDocumentPosition(b) &amp; 16;
++} : function(a, b){
++        return a !== b &amp;&amp; (a.contains ? a.contains(b) : true);
++};
++
++var isXML = function(elem){
++        return elem.nodeType === 9 &amp;&amp; elem.documentElement.nodeName !== &quot;HTML&quot; ||
++                !!elem.ownerDocument &amp;&amp; elem.ownerDocument.documentElement.nodeName !== &quot;HTML&quot;;
++};
++
++var posProcess = function(selector, context){
++        var tmpSet = [], later = &quot;&quot;, match,
++                root = context.nodeType ? [context] : context;
++
++        while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
++                later += match[0];
++                selector = selector.replace( Expr.match.PSEUDO, &quot;&quot; );
++        }
++
++        selector = Expr.relative[selector] ? selector + &quot;*&quot; : selector;
++
++        for ( var i = 0, l = root.length; i &lt; l; i++ ) {
++                Sizzle( selector, root[i], tmpSet );
++        }
++
++        return Sizzle.filter( later, tmpSet );
++};
++
++
++window.Sizzle = Sizzle;
++
++})();
++
++;(function(engine) {
++  var extendElements = Prototype.Selector.extendElements;
++
++  function select(selector, scope) {
++    return extendElements(engine(selector, scope || document));
++  }
++
++  function match(element, selector) {
++    return engine.matches(selector, [element]).length == 1;
++  }
++
++  Prototype.Selector.engine = engine;
++  Prototype.Selector.select = select;
++  Prototype.Selector.match = match;
++})(Sizzle);
++
++window.Sizzle = Prototype._original_property;
++delete Prototype._original_property;
++
++var Form = {
++  reset: function(form) {
++    form = $(form);
++    form.reset();
++    return form;
++  },
++
++  serializeElements: function(elements, options) {
++    if (typeof options != 'object') options = { hash: !!options };
++    else if (Object.isUndefined(options.hash)) options.hash = true;
++    var key, value, submitted = false, submit = options.submit, accumulator, initial;
++
++    if (options.hash) {
++      initial = {};
++      accumulator = function(result, key, value) {
++        if (key in result) {
++          if (!Object.isArray(result[key])) result[key] = [result[key]];
++          result[key].push(value);
++        } else result[key] = value;
++        return result;
++      };
++    } else {
++      initial = '';
++      accumulator = function(result, key, value) {
++        return result + (result ? '&amp;' : '') + encodeURIComponent(key) + '=' + encodeURIComponent(value);
++      }
++    }
++
++    return elements.inject(initial, function(result, element) {
++      if (!element.disabled &amp;&amp; element.name) {
++        key = element.name; value = $(element).getValue();
++        if (value != null &amp;&amp; element.type != 'file' &amp;&amp; (element.type != 'submit' || (!submitted &amp;&amp;
++            submit !== false &amp;&amp; (!submit || key == submit) &amp;&amp; (submitted = true)))) {
++          result = accumulator(result, key, value);
++        }
++      }
++      return result;
++    });
++  }
++};
++
++Form.Methods = {
++  serialize: function(form, options) {
++    return Form.serializeElements(Form.getElements(form), options);
++  },
++
++  getElements: function(form) {
++    var elements = $(form).getElementsByTagName('*'),
++        element,
++        arr = [ ],
++        serializers = Form.Element.Serializers;
++    for (var i = 0; element = elements[i]; i++) {
++      arr.push(element);
++    }
++    return arr.inject([], function(elements, child) {
++      if (serializers[child.tagName.toLowerCase()])
++        elements.push(Element.extend(child));
++      return elements;
++    })
++  },
++
++  getInputs: function(form, typeName, name) {
++    form = $(form);
++    var inputs = form.getElementsByTagName('input');
++
++    if (!typeName &amp;&amp; !name) return $A(inputs).map(Element.extend);
++
++    for (var i = 0, matchingInputs = [], length = inputs.length; i &lt; length; i++) {
++      var input = inputs[i];
++      if ((typeName &amp;&amp; input.type != typeName) || (name &amp;&amp; input.name != name))
++        continue;
++      matchingInputs.push(Element.extend(input));
++    }
++
++    return matchingInputs;
++  },
++
++  disable: function(form) {
++    form = $(form);
++    Form.getElements(form).invoke('disable');
++    return form;
++  },
++
++  enable: function(form) {
++    form = $(form);
++    Form.getElements(form).invoke('enable');
++    return form;
++  },
++
++  findFirstElement: function(form) {
++    var elements = $(form).getElements().findAll(function(element) {
++      return 'hidden' != element.type &amp;&amp; !element.disabled;
++    });
++    var firstByIndex = elements.findAll(function(element) {
++      return element.hasAttribute('tabIndex') &amp;&amp; element.tabIndex &gt;= 0;
++    }).sortBy(function(element) { return element.tabIndex }).first();
++
++    return firstByIndex ? firstByIndex : elements.find(function(element) {
++      return /^(?:input|select|textarea)$/i.test(element.tagName);
++    });
++  },
++
++  focusFirstElement: function(form) {
++    form = $(form);
++    var element = form.findFirstElement();
++    if (element) element.activate();
++    return form;
++  },
++
++  request: function(form, options) {
++    form = $(form), options = Object.clone(options || { });
++
++    var params = options.parameters, action = form.readAttribute('action') || '';
++    if (action.blank()) action = window.location.href;
++    options.parameters = form.serialize(true);
++
++    if (params) {
++      if (Object.isString(params)) params = params.toQueryParams();
++      Object.extend(options.parameters, params);
++    }
++
++    if (form.hasAttribute('method') &amp;&amp; !options.method)
++      options.method = form.method;
++
++    return new Ajax.Request(action, options);
++  }
++};
++
++/*--------------------------------------------------------------------------*/
++
++
++Form.Element = {
++  focus: function(element) {
++    $(element).focus();
++    return element;
++  },
++
++  select: function(element) {
++    $(element).select();
++    return element;
++  }
++};
++
++Form.Element.Methods = {
++
++  serialize: function(element) {
++    element = $(element);
++    if (!element.disabled &amp;&amp; element.name) {
++      var value = element.getValue();
++      if (value != undefined) {
++        var pair = { };
++        pair[element.name] = value;
++        return Object.toQueryString(pair);
++      }
++    }
++    return '';
++  },
++
++  getValue: function(element) {
++    element = $(element);
++    var method = element.tagName.toLowerCase();
++    return Form.Element.Serializers[method](element);
++  },
++
++  setValue: function(element, value) {
++    element = $(element);
++    var method = element.tagName.toLowerCase();
++    Form.Element.Serializers[method](element, value);
++    return element;
++  },
++
++  clear: function(element) {
++    $(element).value = '';
++    return element;
++  },
++
++  present: function(element) {
++    return $(element).value != '';
++  },
++
++  activate: function(element) {
++    element = $(element);
++    try {
++      element.focus();
++      if (element.select &amp;&amp; (element.tagName.toLowerCase() != 'input' ||
++          !(/^(?:button|reset|submit)$/i.test(element.type))))
++        element.select();
++    } catch (e) { }
++    return element;
++  },
++
++  disable: function(element) {
++    element = $(element);
++    element.disabled = true;
++    return element;
++  },
++
++  enable: function(element) {
++    element = $(element);
++    element.disabled = false;
++    return element;
++  }
++};
++
++/*--------------------------------------------------------------------------*/
++
++var Field = Form.Element;
++
++var $F = Form.Element.Methods.getValue;
++
++/*--------------------------------------------------------------------------*/
++
++Form.Element.Serializers = (function() {
++  function input(element, value) {
++    switch (element.type.toLowerCase()) {
++      case 'checkbox':
++      case 'radio':
++        return inputSelector(element, value);
++      default:
++        return valueSelector(element, value);
++    }
++  }
++
++  function inputSelector(element, value) {
++    if (Object.isUndefined(value))
++      return element.checked ? element.value : null;
++    else element.checked = !!value;
++  }
++
++  function valueSelector(element, value) {
++    if (Object.isUndefined(value)) return element.value;
++    else element.value = value;
++  }
++
++  function select(element, value) {
++    if (Object.isUndefined(value))
++      return (element.type === 'select-one' ? selectOne : selectMany)(element);
++
++    var opt, currentValue, single = !Object.isArray(value);
++    for (var i = 0, length = element.length; i &lt; length; i++) {
++      opt = element.options[i];
++      currentValue = this.optionValue(opt);
++      if (single) {
++        if (currentValue == value) {
++          opt.selected = true;
++          return;
++        }
++      }
++      else opt.selected = value.include(currentValue);
++    }
++  }
++
++  function selectOne(element) {
++    var index = element.selectedIndex;
++    return index &gt;= 0 ? optionValue(element.options[index]) : null;
++  }
++
++  function selectMany(element) {
++    var values, length = element.length;
++    if (!length) return null;
++
++    for (var i = 0, values = []; i &lt; length; i++) {
++      var opt = element.options[i];
++      if (opt.selected) values.push(optionValue(opt));
++    }
++    return values;
++  }
++
++  function optionValue(opt) {
++    return Element.hasAttribute(opt, 'value') ? opt.value : opt.text;
++  }
++
++  return {
++    input:         input,
++    inputSelector: inputSelector,
++    textarea:      valueSelector,
++    select:        select,
++    selectOne:     selectOne,
++    selectMany:    selectMany,
++    optionValue:   optionValue,
++    button:        valueSelector
++  };
++})();
++
++/*--------------------------------------------------------------------------*/
++
++
++Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
++  initialize: function($super, element, frequency, callback) {
++    $super(callback, frequency);
++    this.element   = $(element);
++    this.lastValue = this.getValue();
++  },
++
++  execute: function() {
++    var value = this.getValue();
++    if (Object.isString(this.lastValue) &amp;&amp; Object.isString(value) ?
++        this.lastValue != value : String(this.lastValue) != String(value)) {
++      this.callback(this.element, value);
++      this.lastValue = value;
++    }
++  }
++});
++
++Form.Element.Observer = Class.create(Abstract.TimedObserver, {
++  getValue: function() {
++    return Form.Element.getValue(this.element);
++  }
++});
++
++Form.Observer = Class.create(Abstract.TimedObserver, {
++  getValue: function() {
++    return Form.serialize(this.element);
++  }
++});
++
++/*--------------------------------------------------------------------------*/
++
++Abstract.EventObserver = Class.create({
++  initialize: function(element, callback) {
++    this.element  = $(element);
++    this.callback = callback;
++
++    this.lastValue = this.getValue();
++    if (this.element.tagName.toLowerCase() == 'form')
++      this.registerFormCallbacks();
++    else
++      this.registerCallback(this.element);
++  },
++
++  onElementEvent: function() {
++    var value = this.getValue();
++    if (this.lastValue != value) {
++      this.callback(this.element, value);
++      this.lastValue = value;
++    }
++  },
++
++  registerFormCallbacks: function() {
++    Form.getElements(this.element).each(this.registerCallback, this);
++  },
++
++  registerCallback: function(element) {
++    if (element.type) {
++      switch (element.type.toLowerCase()) {
++        case 'checkbox':
++        case 'radio':
++          Event.observe(element, 'click', this.onElementEvent.bind(this));
++          break;
++        default:
++          Event.observe(element, 'change', this.onElementEvent.bind(this));
++          break;
++      }
++    }
++  }
++});
++
++Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
++  getValue: function() {
++    return Form.Element.getValue(this.element);
++  }
++});
++
++Form.EventObserver = Class.create(Abstract.EventObserver, {
++  getValue: function() {
++    return Form.serialize(this.element);
++  }
++});
++(function() {
++
++  var Event = {
++    KEY_BACKSPACE: 8,
++    KEY_TAB:       9,
++    KEY_RETURN:   13,
++    KEY_ESC:      27,
++    KEY_LEFT:     37,
++    KEY_UP:       38,
++    KEY_RIGHT:    39,
++    KEY_DOWN:     40,
++    KEY_DELETE:   46,
++    KEY_HOME:     36,
++    KEY_END:      35,
++    KEY_PAGEUP:   33,
++    KEY_PAGEDOWN: 34,
++    KEY_INSERT:   45,
++
++    cache: {}
++  };
++
++  var docEl = document.documentElement;
++  var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED = 'onmouseenter' in docEl
++    &amp;&amp; 'onmouseleave' in docEl;
++
++
++
++  var isIELegacyEvent = function(event) { return false; };
++
++  if (window.attachEvent) {
++    if (window.addEventListener) {
++      isIELegacyEvent = function(event) {
++        return !(event instanceof window.Event);
++      };
++    } else {
++      isIELegacyEvent = function(event) { return true; };
++    }
++  }
++
++  var _isButton;
++
++  function _isButtonForDOMEvents(event, code) {
++    return event.which ? (event.which === code + 1) : (event.button === code);
++  }
++
++  var legacyButtonMap = { 0: 1, 1: 4, 2: 2 };
++  function _isButtonForLegacyEvents(event, code) {
++    return event.button === legacyButtonMap[code];
++  }
++
++  function _isButtonForWebKit(event, code) {
++    switch (code) {
++      case 0: return event.which == 1 &amp;&amp; !event.metaKey;
++      case 1: return event.which == 2 || (event.which == 1 &amp;&amp; event.metaKey);
++      case 2: return event.which == 3;
++      default: return false;
++    }
++  }
++
++  if (window.attachEvent) {
++    if (!window.addEventListener) {
++      _isButton = _isButtonForLegacyEvents;
++    } else {
++      _isButton = function(event, code) {
++        return isIELegacyEvent(event) ? _isButtonForLegacyEvents(event, code) :
++         _isButtonForDOMEvents(event, code);
++      }
++    }
++  } else if (Prototype.Browser.WebKit) {
++    _isButton = _isButtonForWebKit;
++  } else {
++    _isButton = _isButtonForDOMEvents;
++  }
++
++  function isLeftClick(event)   { return _isButton(event, 0) }
++
++  function isMiddleClick(event) { return _isButton(event, 1) }
++
++  function isRightClick(event)  { return _isButton(event, 2) }
++
++  function element(event) {
++    event = Event.extend(event);
++
++    var node = event.target, type = event.type,
++     currentTarget = event.currentTarget;
++
++    if (currentTarget &amp;&amp; currentTarget.tagName) {
++      if (type === 'load' || type === 'error' ||
++        (type === 'click' &amp;&amp; currentTarget.tagName.toLowerCase() === 'input'
++          &amp;&amp; currentTarget.type === 'radio'))
++            node = currentTarget;
++    }
++
++    if (node.nodeType == Node.TEXT_NODE)
++      node = node.parentNode;
++
++    return Element.extend(node);
++  }
++
++  function findElement(event, expression) {
++    var element = Event.element(event);
++
++    if (!expression) return element;
++    while (element) {
++      if (Object.isElement(element) &amp;&amp; Prototype.Selector.match(element, expression)) {
++        return Element.extend(element);
++      }
++      element = element.parentNode;
++    }
++  }
++
++  function pointer(event) {
++    return { x: pointerX(event), y: pointerY(event) };
++  }
++
++  function pointerX(event) {
++    var docElement = document.documentElement,
++     body = document.body || { scrollLeft: 0 };
++
++    return event.pageX || (event.clientX +
++      (docElement.scrollLeft || body.scrollLeft) -
++      (docElement.clientLeft || 0));
++  }
++
++  function pointerY(event) {
++    var docElement = document.documentElement,
++     body = document.body || { scrollTop: 0 };
++
++    return  event.pageY || (event.clientY +
++       (docElement.scrollTop || body.scrollTop) -
++       (docElement.clientTop || 0));
++  }
++
++
++  function stop(event) {
++    Event.extend(event);
++    event.preventDefault();
++    event.stopPropagation();
++
++    event.stopped = true;
++  }
++
++
++  Event.Methods = {
++    isLeftClick:   isLeftClick,
++    isMiddleClick: isMiddleClick,
++    isRightClick:  isRightClick,
++
++    element:     element,
++    findElement: findElement,
++
++    pointer:  pointer,
++    pointerX: pointerX,
++    pointerY: pointerY,
++
++    stop: stop
++  };
++
++  var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
++    m[name] = Event.Methods[name].methodize();
++    return m;
++  });
++
++  if (window.attachEvent) {
++    function _relatedTarget(event) {
++      var element;
++      switch (event.type) {
++        case 'mouseover':
++        case 'mouseenter':
++          element = event.fromElement;
++          break;
++        case 'mouseout':
++        case 'mouseleave':
++          element = event.toElement;
++          break;
++        default:
++          return null;
++      }
++      return Element.extend(element);
++    }
++
++    var additionalMethods = {
++      stopPropagation: function() { this.cancelBubble = true },
++      preventDefault:  function() { this.returnValue = false },
++      inspect: function() { return '[object Event]' }
++    };
++
++    Event.extend = function(event, element) {
++      if (!event) return false;
++
++      if (!isIELegacyEvent(event)) return event;
++
++      if (event._extendedByPrototype) return event;
++      event._extendedByPrototype = Prototype.emptyFunction;
++
++      var pointer = Event.pointer(event);
++
++      Object.extend(event, {
++        target: event.srcElement || element,
++        relatedTarget: _relatedTarget(event),
++        pageX:  pointer.x,
++        pageY:  pointer.y
++      });
++
++      Object.extend(event, methods);
++      Object.extend(event, additionalMethods);
++
++      return event;
++    };
++  } else {
++    Event.extend = Prototype.K;
++  }
++
++  if (window.addEventListener) {
++    Event.prototype = window.Event.prototype || document.createEvent('HTMLEvents').__proto__;
++    Object.extend(Event.prototype, methods);
++  }
++
++  function _createResponder(element, eventName, handler) {
++    var registry = Element.retrieve(element, 'prototype_event_registry');
++
++    if (Object.isUndefined(registry)) {
++      CACHE.push(element);
++      registry = Element.retrieve(element, 'prototype_event_registry', $H());
++    }
++
++    var respondersForEvent = registry.get(eventName);
++    if (Object.isUndefined(respondersForEvent)) {
++      respondersForEvent = [];
++      registry.set(eventName, respondersForEvent);
++    }
++
++    if (respondersForEvent.pluck('handler').include(handler)) return false;
++
++    var responder;
++    if (eventName.include(&quot;:&quot;)) {
++      responder = function(event) {
++        if (Object.isUndefined(event.eventName))
++          return false;
++
++        if (event.eventName !== eventName)
++          return false;
++
++        Event.extend(event, element);
++        handler.call(element, event);
++      };
++    } else {
++      if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED &amp;&amp;
++       (eventName === &quot;mouseenter&quot; || eventName === &quot;mouseleave&quot;)) {
++        if (eventName === &quot;mouseenter&quot; || eventName === &quot;mouseleave&quot;) {
++          responder = function(event) {
++            Event.extend(event, element);
++
++            var parent = event.relatedTarget;
++            while (parent &amp;&amp; parent !== element) {
++              try { parent = parent.parentNode; }
++              catch(e) { parent = element; }
++            }
++
++            if (parent === element) return;
++
++            handler.call(element, event);
++          };
++        }
++      } else {
++        responder = function(event) {
++          Event.extend(event, element);
++          handler.call(element, event);
++        };
++      }
++    }
++
++    responder.handler = handler;
++    respondersForEvent.push(responder);
++    return responder;
++  }
++
++  function _destroyCache() {
++    for (var i = 0, length = CACHE.length; i &lt; length; i++) {
++      Event.stopObserving(CACHE[i]);
++      CACHE[i] = null;
++    }
++  }
++
++  var CACHE = [];
++
++  if (Prototype.Browser.IE)
++    window.attachEvent('onunload', _destroyCache);
++
++  if (Prototype.Browser.WebKit)
++    window.addEventListener('unload', Prototype.emptyFunction, false);
++
++
++  var _getDOMEventName = Prototype.K,
++      translations = { mouseenter: &quot;mouseover&quot;, mouseleave: &quot;mouseout&quot; };
++
++  if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED) {
++    _getDOMEventName = function(eventName) {
++      return (translations[eventName] || eventName);
++    };
++  }
++
++  function observe(element, eventName, handler) {
++    element = $(element);
++
++    var responder = _createResponder(element, eventName, handler);
++
++    if (!responder) return element;
++
++    if (eventName.include(':')) {
++      if (element.addEventListener)
++        element.addEventListener(&quot;dataavailable&quot;, responder, false);
++      else {
++        element.attachEvent(&quot;ondataavailable&quot;, responder);
++        element.attachEvent(&quot;onlosecapture&quot;, responder);
++      }
++    } else {
++      var actualEventName = _getDOMEventName(eventName);
++
++      if (element.addEventListener)
++        element.addEventListener(actualEventName, responder, false);
++      else
++        element.attachEvent(&quot;on&quot; + actualEventName, responder);
++    }
++
++    return element;
++  }
++
++  function stopObserving(element, eventName, handler) {
++    element = $(element);
++
++    var registry = Element.retrieve(element, 'prototype_event_registry');
++    if (!registry) return element;
++
++    if (!eventName) {
++      registry.each( function(pair) {
++        var eventName = pair.key;
++        stopObserving(element, eventName);
++      });
++      return element;
++    }
++
++    var responders = registry.get(eventName);
++    if (!responders) return element;
++
++    if (!handler) {
++      responders.each(function(r) {
++        stopObserving(element, eventName, r.handler);
++      });
++      return element;
++    }
++
++    var i = responders.length, responder;
++    while (i--) {
++      if (responders[i].handler === handler) {
++        responder = responders[i];
++        break;
++      }
++    }
++    if (!responder) return element;
++
++    if (eventName.include(':')) {
++      if (element.removeEventListener)
++        element.removeEventListener(&quot;dataavailable&quot;, responder, false);
++      else {
++        element.detachEvent(&quot;ondataavailable&quot;, responder);
++        element.detachEvent(&quot;onlosecapture&quot;, responder);
++      }
++    } else {
++      var actualEventName = _getDOMEventName(eventName);
++      if (element.removeEventListener)
++        element.removeEventListener(actualEventName, responder, false);
++      else
++        element.detachEvent('on' + actualEventName, responder);
++    }
++
++    registry.set(eventName, responders.without(responder));
++
++    return element;
++  }
++
++  function fire(element, eventName, memo, bubble) {
++    element = $(element);
++
++    if (Object.isUndefined(bubble))
++      bubble = true;
++
++    if (element == document &amp;&amp; document.createEvent &amp;&amp; !element.dispatchEvent)
++      element = document.documentElement;
++
++    var event;
++    if (document.createEvent) {
++      event = document.createEvent('HTMLEvents');
++      event.initEvent('dataavailable', bubble, true);
++    } else {
++      event = document.createEventObject();
++      event.eventType = bubble ? 'ondataavailable' : 'onlosecapture';
++    }
++
++    event.eventName = eventName;
++    event.memo = memo || { };
++
++    if (document.createEvent)
++      element.dispatchEvent(event);
++    else
++      element.fireEvent(event.eventType, event);
++
++    return Event.extend(event);
++  }
++
++  Event.Handler = Class.create({
++    initialize: function(element, eventName, selector, callback) {
++      this.element   = $(element);
++      this.eventName = eventName;
++      this.selector  = selector;
++      this.callback  = callback;
++      this.handler   = this.handleEvent.bind(this);
++    },
++
++    start: function() {
++      Event.observe(this.element, this.eventName, this.handler);
++      return this;
++    },
++
++    stop: function() {
++      Event.stopObserving(this.element, this.eventName, this.handler);
++      return this;
++    },
++
++    handleEvent: function(event) {
++      var element = Event.findElement(event, this.selector);
++      if (element) this.callback.call(this.element, event, element);
++    }
++  });
++
++  function on(element, eventName, selector, callback) {
++    element = $(element);
++    if (Object.isFunction(selector) &amp;&amp; Object.isUndefined(callback)) {
++      callback = selector, selector = null;
++    }
++
++    return new Event.Handler(element, eventName, selector, callback).start();
++  }
++
++  Object.extend(Event, Event.Methods);
++
++  Object.extend(Event, {
++    fire:          fire,
++    observe:       observe,
++    stopObserving: stopObserving,
++    on:            on
++  });
++
++  Element.addMethods({
++    fire:          fire,
++
++    observe:       observe,
++
++    stopObserving: stopObserving,
++
++    on:            on
++  });
++
++  Object.extend(document, {
++    fire:          fire.methodize(),
++
++    observe:       observe.methodize(),
++
++    stopObserving: stopObserving.methodize(),
++
++    on:            on.methodize(),
++
++    loaded:        false
++  });
++
++  if (window.Event) Object.extend(window.Event, Event);
++  else window.Event = Event;
++})();
++
++(function() {
++  /* Support for the DOMContentLoaded event is based on work by Dan Webb,
++     Matthias Miller, Dean Edwards, John Resig, and Diego Perini. */
++
++  var timer;
++
++  function fireContentLoadedEvent() {
++    if (document.loaded) return;
++    if (timer) window.clearTimeout(timer);
++    document.loaded = true;
++    document.fire('dom:loaded');
++  }
++
++  function checkReadyState() {
++    if (document.readyState === 'complete') {
++      document.stopObserving('readystatechange', checkReadyState);
++      fireContentLoadedEvent();
++    }
++  }
++
++  function pollDoScroll() {
++    try { document.documentElement.doScroll('left'); }
++    catch(e) {
++      timer = pollDoScroll.defer();
++      return;
++    }
++    fireContentLoadedEvent();
++  }
++
++  if (document.addEventListener) {
++    document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);
++  } else {
++    document.observe('readystatechange', checkReadyState);
++    if (window == top)
++      timer = pollDoScroll.defer();
++  }
++
++  Event.observe(window, 'load', fireContentLoadedEvent);
++})();
++
++Element.addMethods();
++
++/*------------------------------- DEPRECATED -------------------------------*/
++
++Hash.toQueryString = Object.toQueryString;
++
++var Toggle = { display: Element.toggle };
++
++Element.Methods.childOf = Element.Methods.descendantOf;
++
++var Insertion = {
++  Before: function(element, content) {
++    return Element.insert(element, {before:content});
++  },
++
++  Top: function(element, content) {
++    return Element.insert(element, {top:content});
++  },
++
++  Bottom: function(element, content) {
++    return Element.insert(element, {bottom:content});
++  },
++
++  After: function(element, content) {
++    return Element.insert(element, {after:content});
++  }
++};
++
++var $continue = new Error('&quot;throw $continue&quot; is deprecated, use &quot;return&quot; instead');
++
++var Position = {
++  includeScrollOffsets: false,
++
++  prepare: function() {
++    this.deltaX =  window.pageXOffset
++                || document.documentElement.scrollLeft
++                || document.body.scrollLeft
++                || 0;
++    this.deltaY =  window.pageYOffset
++                || document.documentElement.scrollTop
++                || document.body.scrollTop
++                || 0;
++  },
++
++  within: function(element, x, y) {
++    if (this.includeScrollOffsets)
++      return this.withinIncludingScrolloffsets(element, x, y);
++    this.xcomp = x;
++    this.ycomp = y;
++    this.offset = Element.cumulativeOffset(element);
++
++    return (y &gt;= this.offset[1] &amp;&amp;
++            y &lt;  this.offset[1] + element.offsetHeight &amp;&amp;
++            x &gt;= this.offset[0] &amp;&amp;
++            x &lt;  this.offset[0] + element.offsetWidth);
++  },
++
++  withinIncludingScrolloffsets: function(element, x, y) {
++    var offsetcache = Element.cumulativeScrollOffset(element);
++
++    this.xcomp = x + offsetcache[0] - this.deltaX;
++    this.ycomp = y + offsetcache[1] - this.deltaY;
++    this.offset = Element.cumulativeOffset(element);
++
++    return (this.ycomp &gt;= this.offset[1] &amp;&amp;
++            this.ycomp &lt;  this.offset[1] + element.offsetHeight &amp;&amp;
++            this.xcomp &gt;= this.offset[0] &amp;&amp;
++            this.xcomp &lt;  this.offset[0] + element.offsetWidth);
++  },
++
++  overlap: function(mode, element) {
++    if (!mode) return 0;
++    if (mode == 'vertical')
++      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
++        element.offsetHeight;
++    if (mode == 'horizontal')
++      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
++        element.offsetWidth;
++  },
++
++
++  cumulativeOffset: Element.Methods.cumulativeOffset,
++
++  positionedOffset: Element.Methods.positionedOffset,
++
++  absolutize: function(element) {
++    Position.prepare();
++    return Element.absolutize(element);
++  },
++
++  relativize: function(element) {
++    Position.prepare();
++    return Element.relativize(element);
++  },
++
++  realOffset: Element.Methods.cumulativeScrollOffset,
++
++  offsetParent: Element.Methods.getOffsetParent,
++
++  page: Element.Methods.viewportOffset,
++
++  clone: function(source, target, options) {
++    options = options || { };
++    return Element.clonePosition(target, source, options);
++  }
++};
++
++/*--------------------------------------------------------------------------*/
++
++if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
++  function iter(name) {
++    return name.blank() ? null : &quot;[contains(concat(' ', @class, ' '), ' &quot; + name + &quot; ')]&quot;;
++  }
++
++  instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
++  function(element, className) {
++    className = className.toString().strip();
++    var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
++    return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
++  } : function(element, className) {
++    className = className.toString().strip();
++    var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
++    if (!classNames &amp;&amp; !className) return elements;
++
++    var nodes = $(element).getElementsByTagName('*');
++    className = ' ' + className + ' ';
++
++    for (var i = 0, child, cn; child = nodes[i]; i++) {
++      if (child.className &amp;&amp; (cn = ' ' + child.className + ' ') &amp;&amp; (cn.include(className) ||
++          (classNames &amp;&amp; classNames.all(function(name) {
++            return !name.toString().blank() &amp;&amp; cn.include(' ' + name + ' ');
++          }))))
++        elements.push(Element.extend(child));
++    }
++    return elements;
++  };
++
++  return function(className, parentElement) {
++    return $(parentElement || document.body).getElementsByClassName(className);
++  };
++}(Element.Methods);
++
++/*--------------------------------------------------------------------------*/
++
++Element.ClassNames = Class.create();
++Element.ClassNames.prototype = {
++  initialize: function(element) {
++    this.element = $(element);
++  },
++
++  _each: function(iterator) {
++    this.element.className.split(/\s+/).select(function(name) {
++      return name.length &gt; 0;
++    })._each(iterator);
++  },
++
++  set: function(className) {
++    this.element.className = className;
++  },
++
++  add: function(classNameToAdd) {
++    if (this.include(classNameToAdd)) return;
++    this.set($A(this).concat(classNameToAdd).join(' '));
++  },
++
++  remove: function(classNameToRemove) {
++    if (!this.include(classNameToRemove)) return;
++    this.set($A(this).without(classNameToRemove).join(' '));
++  },
++
++  toString: function() {
++    return $A(this).join(' ');
++  }
++};
++
++Object.extend(Element.ClassNames.prototype, Enumerable);
++
++/*--------------------------------------------------------------------------*/
++
++(function() {
++  window.Selector = Class.create({
++    initialize: function(expression) {
++      this.expression = expression.strip();
++    },
++
++    findElements: function(rootElement) {
++      return Prototype.Selector.select(this.expression, rootElement);
++    },
++
++    match: function(element) {
++      return Prototype.Selector.match(element, this.expression);
++    },
++
++    toString: function() {
++      return this.expression;
++    },
++
++    inspect: function() {
++      return &quot;#&lt;Selector: &quot; + this.expression + &quot;&gt;&quot;;
++    }
++  });
++
++  Object.extend(Selector, {
++    matchElements: function(elements, expression) {
++      var match = Prototype.Selector.match,
++          results = [];
++
++      for (var i = 0, length = elements.length; i &lt; length; i++) {
++        var element = elements[i];
++        if (match(element, expression)) {
++          results.push(Element.extend(element));
++        }
++      }
++      return results;
++    },
++
++    findElement: function(elements, expression, index) {
++      index = index || 0;
++      var matchIndex = 0, element;
++      for (var i = 0, length = elements.length; i &lt; length; i++) {
++        element = elements[i];
++        if (Prototype.Selector.match(element, expression) &amp;&amp; index === matchIndex++) {
++          return Element.extend(element);
++        }
++      }
++    },
++
++    findChildElements: function(element, expressions) {
++      var selector = expressions.toArray().join(', ');
++      return Prototype.Selector.select(selector, element || document);
++    }
++  });
++})();
+diff --git a/web/tests/cssquery-dojo.html b/web/tests/cssquery-dojo.html
+index b27c95b..626f92c 100644
+--- a/web/tests/cssquery-dojo.html
++++ b/web/tests/cssquery-dojo.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/dojo/1.6.1/dojo/dojo.xd.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;cssquery-dojo&quot;, '5477d2ae');
+@@ -168,7 +168,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/cssquery-ext.html b/web/tests/cssquery-ext.html
+index acb35c1..68b4042 100644
+--- a/web/tests/cssquery-ext.html
++++ b/web/tests/cssquery-ext.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/ext-core/3.1.0/ext-core.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/ext-core/3.1.0/ext-core.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;cssquery-ext&quot;, '5bc05a17');
+@@ -168,7 +168,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/cssquery-jquery-2.x.html b/web/tests/cssquery-jquery-2.x.html
+index 6b95fee..e1ef567 100644
+--- a/web/tests/cssquery-jquery-2.x.html
++++ b/web/tests/cssquery-jquery-2.x.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;cssquery-jquery&quot;, '5dfe1a12');
+@@ -167,7 +167,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/cssquery-jquery.html b/web/tests/cssquery-jquery.html
+index a83ef5c..d527cb7 100644
+--- a/web/tests/cssquery-jquery.html
++++ b/web/tests/cssquery-jquery.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;cssquery-jquery&quot;, 'de808e5f');
+@@ -167,7 +167,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/cssquery-mootools.html b/web/tests/cssquery-mootools.html
+index 5009efc..674730e 100644
+--- a/web/tests/cssquery-mootools.html
++++ b/web/tests/cssquery-mootools.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/mootools/1.4.1/mootools-yui-compressed.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/mootools/1.4.1/mootools-yui-compressed.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;cssquery-mootools&quot;, 'c5ac656b');
+@@ -167,7 +167,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/cssquery-prototype.html b/web/tests/cssquery-prototype.html
+index 324d4ed..e0d86c9 100644
+--- a/web/tests/cssquery-prototype.html
++++ b/web/tests/cssquery-prototype.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;cssquery-prototype&quot;, 'd151161f');
+@@ -167,7 +167,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/cssquery-yui.html b/web/tests/cssquery-yui.html
+index d354ed7..7245251 100644
+--- a/web/tests/cssquery-yui.html
++++ b/web/tests/cssquery-yui.html
+@@ -170,7 +170,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/dom-attr.html b/web/tests/dom-attr.html
+index dbf361b..6c52875 100644
+--- a/web/tests/dom-attr.html
++++ b/web/tests/dom-attr.html
+@@ -48,7 +48,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/dom-modify.html b/web/tests/dom-modify.html
+index ef57b51..c028620 100644
+--- a/web/tests/dom-modify.html
++++ b/web/tests/dom-modify.html
+@@ -78,7 +78,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/dom-query.html b/web/tests/dom-query.html
+index 65a61dd..70a2d54 100644
+--- a/web/tests/dom-query.html
++++ b/web/tests/dom-query.html
+@@ -105,7 +105,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/dom-traverse.html b/web/tests/dom-traverse.html
+index 673c095..27da6b3 100644
+--- a/web/tests/dom-traverse.html
++++ b/web/tests/dom-traverse.html
+@@ -77,7 +77,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-attr-jquery-2.x.html b/web/tests/jslib-attr-jquery-2.x.html
+index ca6d338..37fe3fd 100644
+--- a/web/tests/jslib-attr-jquery-2.x.html
++++ b/web/tests/jslib-attr-jquery-2.x.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-attr-jquery&quot;, 'aeb3b2c1');
+@@ -54,7 +54,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-attr-jquery.html b/web/tests/jslib-attr-jquery.html
+index 70f8fdc..361291c 100644
+--- a/web/tests/jslib-attr-jquery.html
++++ b/web/tests/jslib-attr-jquery.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-attr-jquery&quot;, '675a354f');
+@@ -54,7 +54,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-attr-prototype.html b/web/tests/jslib-attr-prototype.html
+index c0e8006..36ab335 100644
+--- a/web/tests/jslib-attr-prototype.html
++++ b/web/tests/jslib-attr-prototype.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-attr-prototype&quot;, '4fb93c6a');
+@@ -54,7 +54,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-event-jquery-2.x.html b/web/tests/jslib-event-jquery-2.x.html
+index 4e5abef..14d06d5 100644
+--- a/web/tests/jslib-event-jquery-2.x.html
++++ b/web/tests/jslib-event-jquery-2.x.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-event-jquery&quot;, '161a447c');
+@@ -41,7 +41,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-event-jquery.html b/web/tests/jslib-event-jquery.html
+index 22ae395..a66cc3c 100644
+--- a/web/tests/jslib-event-jquery.html
++++ b/web/tests/jslib-event-jquery.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-event-jquery&quot;, '690f881e');
+@@ -41,7 +41,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-event-prototype.html b/web/tests/jslib-event-prototype.html
+index c601a89..2abf8fe 100644
+--- a/web/tests/jslib-event-prototype.html
++++ b/web/tests/jslib-event-prototype.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-event-prototype&quot;, '03b86d96');
+@@ -41,7 +41,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-modify-jquery-2.x.html b/web/tests/jslib-modify-jquery-2.x.html
+index d03d56b..21ef773 100644
+--- a/web/tests/jslib-modify-jquery-2.x.html
++++ b/web/tests/jslib-modify-jquery-2.x.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-modify-jquery&quot;, 'ed2c7ef2');
+@@ -65,7 +65,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-modify-jquery.html b/web/tests/jslib-modify-jquery.html
+index 12c6a35..bcd6796 100644
+--- a/web/tests/jslib-modify-jquery.html
++++ b/web/tests/jslib-modify-jquery.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-modify-jquery&quot;, '950aaaa1');
+@@ -65,7 +65,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-modify-prototype.html b/web/tests/jslib-modify-prototype.html
+index e5e2a4d..0133618 100644
+--- a/web/tests/jslib-modify-prototype.html
++++ b/web/tests/jslib-modify-prototype.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-modify-prototype&quot;, '6693b3a5');
+@@ -65,7 +65,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-style-jquery-2.x.html b/web/tests/jslib-style-jquery-2.x.html
+index ce477b8..8800c63 100644
+--- a/web/tests/jslib-style-jquery-2.x.html
++++ b/web/tests/jslib-style-jquery-2.x.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-style-jquery&quot;, '08bc6988');
+@@ -63,7 +63,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-style-jquery.html b/web/tests/jslib-style-jquery.html
+index 3569796..40ed4f7 100644
+--- a/web/tests/jslib-style-jquery.html
++++ b/web/tests/jslib-style-jquery.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-style-jquery&quot;, 'a803790a');
+@@ -63,7 +63,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-style-prototype.html b/web/tests/jslib-style-prototype.html
+index 2762401..c40fc71 100644
+--- a/web/tests/jslib-style-prototype.html
++++ b/web/tests/jslib-style-prototype.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-style-prototype&quot;, 'c41174f0');
+@@ -64,7 +64,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-traverse-jquery-2.x.html b/web/tests/jslib-traverse-jquery-2.x.html
+index afc5b3d..c0e2ae8 100644
+--- a/web/tests/jslib-traverse-jquery-2.x.html
++++ b/web/tests/jslib-traverse-jquery-2.x.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/2.0.3/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-traverse-jquery&quot;, '66e690c0');
+@@ -65,7 +65,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-traverse-jquery.html b/web/tests/jslib-traverse-jquery.html
+index 910e2e6..b41619f 100644
+--- a/web/tests/jslib-traverse-jquery.html
++++ b/web/tests/jslib-traverse-jquery.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/jquery/1.10.2/jquery.min.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-traverse-jquery&quot;, 'bc5b18f3');
+@@ -65,7 +65,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

+diff --git a/web/tests/jslib-traverse-prototype.html b/web/tests/jslib-traverse-prototype.html
+index 37c28d6..e42cd8f 100644
+--- a/web/tests/jslib-traverse-prototype.html
++++ b/web/tests/jslib-traverse-prototype.html
+@@ -1,7 +1,7 @@
+ &lt;html&gt;
+ &lt;head&gt;
+ &lt;script src=&quot;../htmlrunner.js&quot;&gt;&lt;/script&gt;
+-&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
++&lt;script src=&quot;../ajax/libs/prototype/1.7.0.0/prototype.js&quot;&gt;&lt;/script&gt;
+ &lt;script&gt;
+ window.onload = function(){
+ startTest(&quot;jslib-traverse-prototype&quot;, 'd46d3eab');
+@@ -65,7 +65,7 @@ endTest();
+ &lt;/head&gt;
+ &lt;body&gt;
+   &lt;div class=&quot;head&quot;&gt;
+-   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://www.w3.org/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;
++   &lt;p&gt;&lt;a href=&quot;http://www.w3.org/&quot;&gt;&lt;img height=48 alt=W3C src=&quot;http://127.0.0.1/Icons/w3c_home&quot; width=72&gt;&lt;/a&gt;

+    &lt;h1 id=&quot;title&quot;&gt;Selectors&lt;/h1&gt;

</ins><span class="cx"> diff --git a/web/webrunner.js b/web/webrunner.js
</span><del>-index 63d777b..953c026 100755
</del><ins>+index 63d777b..bf43e24 100644
</ins><span class="cx"> --- a/web/webrunner.js
</span><span class="cx"> +++ b/web/webrunner.js
</span><span class="cx"> @@ -156,6 +156,7 @@
</span><span class="lines">@@ -52,7 +7248,7 @@
</span><span class="cx">                          if ( window.limitSearch ) {
</span><span class="cx">                                  var summary = (runStyle === &quot;runs/s&quot; ? Math.pow(Math.E, maxTotal / maxTotalNum) : maxTotal).toFixed(2);
</span><span class="cx">  
</span><del>-@@ -421,7 +443,5 @@
</del><ins>+@@ -421,9 +443,7 @@
</ins><span class="cx">                                  }
</span><span class="cx">                          });
</span><span class="cx">  
</span><span class="lines">@@ -61,8 +7257,10 @@
</span><span class="cx"> -                }
</span><span class="cx"> +                $(&quot;#pause&quot;).click();
</span><span class="cx">          }
</span><del>-@@ -673,8 +695,18 @@
</del><span class="cx">  
</span><ins>+         function initTest(curID){
+@@ -673,8 +693,18 @@

</ins><span class="cx">                  $(&quot;#timebar&quot;).width((w &lt; 1 ? 1 : w) + &quot;%&quot;);
</span><span class="cx">          }
</span><span class="cx"> -        
</span><span class="lines">@@ -81,7 +7279,7 @@
</span><span class="cx">                  // Keep a running summary going
</span><span class="cx">                  data.mean = parseFloat(data.mean);
</span><span class="cx">                  var mean = (runStyle === &quot;runs/s&quot; ? Math.log(data.mean) : data.mean);
</span><del>-@@ -711,6 +743,8 @@
</del><ins>+@@ -711,6 +741,8 @@
</ins><span class="cx">                          per + &quot;%;'&gt;&quot; + (per &gt;= 100 ? &quot;&lt;span&gt;&quot; + mean.toFixed(2) + runStyle + &quot;&lt;/span&gt;&quot; : &quot;&quot;) + &quot;&lt;/div&gt;&lt;/div&gt;&quot;);
</span><span class="cx">  
</span><span class="cx">                  if ( per &gt;= 100 &amp;&amp; testSummary[data.curID] &gt; 0 ) {
</span></span></pre>
</div>
</div>

</body>
</html>