/* @license Copyright (C) Exontrol. All rights reserved. */ !function(){"use strict";function e(){var e,t,n=function(){},i=run.contentWindow,o=i.requestAnimationFrame||i.webkitRequestAnimationFrame||i.mozRequestAnimationFrame||i.oRequestAnimationFrame||i.msRequestAnimationFrame,r=i.cancelAnimationFrame||i.webkitCancelAnimationFrame||i.mozCancelAnimationFrame||i.oCancelAnimationFrame||i.msCancelAnimationFrame;if(o&&r)for(t=o.call(i,n),e=Math.max(0,t-16);e<=t;e++)r.call(i,e);for(t=setTimeout.call(i,n),e=Math.max(0,t-16);e<=t;e++)clearTimeout.call(i,e);for(t=setInterval.call(i,n),e=Math.max(0,t-16);e<=t;e++)clearInterval.call(i,e)}function t(){return run.contentDocument||run.contentWindow.document}function n(e,t,n){n=n||1;var i,o={w:~~((run.contentWindow.innerWidth-q)/t),h:~~((run.contentWindow.innerHeight-q)/n)};return(i=J[e])&&(null!=i[0]&&(o.w=i[0]),null!=i[1]&&(o.h=i[1])),o}function i(){code.syncKeywords(),o()}function o(){function e(e){var t,n;return(t=e.exontrol)&&(t=t.oCC)&&(t=t.rgC)&&t.forEach(function(e){n||(n=function(e){return e.oT||e}(e).constructor.type)}),n}var i,o=t().querySelectorAll("["+se+"]"),r=o.length,s=1;r&&(o.forEach(function(t){J[e(t)]&&(s=2)}),o.forEach(function(t){!function(e,t,n){if(e.tagName.toLowerCase()==he){e.width=t,e.height=n;var i=i=e.exontrol;i&&(i=i.oCC)&&i.resize&&i.resize()}else e.style.width=U(t),e.style.height=U(n)}(t,(i=n(e(t),r,s)).w*window.devicePixelRatio,i.h*window.devicePixelRatio)}))}function r(e){return ke+e}function s(e){var t=window.innerWidth-q,n=parseInt(getComputedStyle(vsplit).width)+parseInt(getComputedStyle(lineno).width)+4;e=Math.max(0,Math.min(e,t-n)),code.style.width=U(e),run.style.width=U(t-(n+parseInt(code.style.width))),hsplit.style.width=U(t),i()}function c(e){var t=window.innerHeight-q,n=parseInt(getComputedStyle(hsplit).height)+q;e=Math.max(0,Math.min(e,t-n)),desc.style.height=U(e),lineno.style.height=vsplit.style.height=run.style.height=code.style.height=U(window.innerHeight-(n+parseInt(getComputedStyle(desc).height))),i()}function l(i){function o(){function e(e){function t(){var t,n=new Map;return o.forEach(function(i){var o=Q[i];o&&o.split(",").forEach(function(i){n.get(i)||(n.set(i,i),i=function(e){if(Me){var t,n,i=e.match(/(?:(.*)([\\\/]))?(.*\.js)/);i&&(t=i[3],/\.(def|shapes)\.js/.test(t)||(t=t.replace(".js",".min.js")),(n=i[1]||"")&&(n+="/lib"),e=n+(i[2]||"")+t)}return e}(i),new RegExp(be.replace("FILE",i.replace(/\./g,"\\."))).test(e)||(t=t||[]).push(i))})}),t}var n,i,o=new Map,r=new Map,s=new Map;if($(ge,e,function(e){3==e.length&&(e[1]&&o.set(e[1],e[1]),e[2]&&r.set(e[2],e[2]),e[1]&&e[2]&&s.set(e[2],e[1]))}),$(ye,e,function(e){2==e.length&&(n=e[1])&&(n&&o.set(n,n),!i&&n in Q&&(i=n))}),$(ve,e,function(e){2==e.length&&(n=e[1])&&n&&o.set(n,n)}),o.size||r.size||i)return{src:t(),id:function(){var t;return r.forEach(function(n){!new RegExp(Ce.replace("ID",n.replace(/\./g,"\\."))).test(e)&&(t=t||[]).push(n)}),t}(),type:s,use:i}}function i(e){var t="";return e&&e.forEach(function(e){t+=function(e){return A(we,!0,'type="text/javascript" src="'+r(e)+'"')}(e)}),t}function o(e,t,i){var o,r=!Ae&&A(we,"window.onerror = function(message, source, lineno, colno){window.parent.setError(message, source, lineno, colno);}")||"",s=1;return e&&(t.forEach(function(e){J[e]&&(s=2)}),e.forEach(function(i){o=n(t.get(i),e.length,s);var c=Z[t.get(i)]||he,l=c==he;r+=oe+A(c,!l||fe+"\n",se+' id="'+i+'" tabIndex="0" '+function(e,t,n){function i(e){return n&&(e=U(e)),o+r+e+s+r+c}var o=n?":":"=",r=n?"":'"',s=n?";":"",c=n?"":" ",l="width"+i(e)+"height"+i(t);return n&&(l='style="'+l+'"'),l}(o.w,o.h,!l)).trim()})),i&&(r+=oe+A(we,i)),z(function(){window.parent.exttsa&&(r+=oe+A(we,"exontrol.DPR.X()"))}),r}var s=t();xError(),s.open(),s.write(function(){var t,n=d(T(a())),s=e(n),c=E(n);return function(){var t;if(n&&!c&&!s)for(var i in Q)if(t=new RegExp(Se.replace("TYPE",i)).exec(n)){h(n=(xe.exec(n)||"")+"var "+t[1]+" = new exontrol."+i+"('cvs"+i+"');\n\n"+n),code.updateKeyword(),s=e(n);break}}(),I=s&&s.use||"",function(){var e,t,i="",o=(window.location.href.indexOf("4.EXHELPER"),0);$(Ee,n,function(s){i+=n.substr(o,s.index-o),(t=s[0])&&(window.parent.extnfo=window.parent.extnfo||{},window.parent.extnfo.rel=(window.parent.extnfo.rel||0)+1,(window.parent.extnfo.occ=window.parent.extnfo.occ||new Map).set(t,t),e=t.charAt(0),t=t.substr(1,t.length-2),t=r((I&&"ex"+I.toLowerCase()+"/"||"")+t),i+=t=e+t+e),o=s.index+s[0].length}),i+=n.substr(o),n=i}(),t=A(ue,i(s&&s.src))+oe,c?(t+=o(s&&s.id,s&&s.type,"")+oe+n,n=t):(t+=A(ae,o(s&&s.id,s&&s.type,n)),n=A(le,t)),Ae>0&&(1==Ae?n=y():2==Ae&&(n=x()),n=A(pe,Le[Ae],'class="view"')+A(me,n.trim(),'spellcheck="false" readonly style="width: '+(window.innerWidth-De-2*q)+"px;height: "+(window.innerHeight-2*q)+'px"')),n}()),s.close(),!code.hasError()&&m()}e(),clearTimeout(W),(i=~~i)&&!Ke||(i?(Je.ignoreUKey=!0,W=setTimeout(o,i)):o())}function u(){Je.ignoreUKey=!0,l(),H(),!code.hasError()&&setTimeout(function(){code.updateKeyword()})}function a(){return code.getValue()}function h(e){var t=a();code.setValue(e),R(t!=a())}function d(e,t){return null==e&&(e=a()),t=t||G(e),h(e=t.c),"o"in t&&(O=t.o,w(t.d),m()),e}function f(){var e=desc.innerHTML.replace(/\n/g,ce).trim();return e&&e!=Oe&&e||""}function w(e){null!=e&&(desc.innerHTML=e),desc.style.minHeight=f()||Re?U(Ue):"initial",c(qe)}function p(){return ie+ne(O,Qe)+f()}function m(){g(),code.updateKeyword()}function g(){var e,t=function(){var e="";return O&&(e+=O.t&&O.t[0]||"",O.e&&O.e[0]&&(e+=e?", ":"",e+="E"+O.e[0])),e}(),n=(!F&&z(function(){var e=run.contentWindow.exontrol;e&&(F=e.version)}),F),i=" "+Ie+" "+function(e){return e?e.charAt(0).toUpperCase()+e.substring(1).toLowerCase():""}(re)+(n?" ("+n+")":"");(I||t)&&(I?(e=I+"/JS",t&&(e+=" ("+t+")")):e=t),e=e||He,z(function(){window.top.document.title=e+i})}function y(){return te(a(),f(),O,"DIV"==code.tagName?ce:oe)}function v(e){code.setValue(e),R(!0)}function x(){var e=y();return new P(K()).Set(Xe,e&&btoa(e)||null).href}function E(e){null==e&&(e=a());var t=e.match(/\s*=0&&r<=t;)o=i,(r=e.indexOf(oe,r))>=0&&(i=r+oe.length,r",o||t.charAt(0)==oe||(i+=oe),i+=t,o||t.charAt(t.length-1)==oe||(i+=oe),i+="",o&&(i+="\n")),i}function L(){window.frameElement&&(window.frameElement.height=window.parent.innerHeight-58)}function H(){window.parent.onexample&&window.parent.onexample(y())}var I,O,X,F,N,W,V,Y=comrun.RUR,P=comrun.URLParam,j=comrun.SEP,z=comrun.tryC,B=comrun.getLocalItem,D=comrun.setLocalItem,U=comrun.suffiPX,q=comrun.border,Q=comrun.lib,J=comrun.size,Z=comrun.tag,$=comrun.feMU,G=comrun.splitQ,_=comrun.toA,ee=comrun.uCL,te=comrun.buildQ,ne=comrun.buildQI,ie=comrun.INLINECOMMENT,oe=comrun.EOL,re="exontrol",se=re,ce="
",le="html",ue="head",ae="body",he="canvas",de="contentEditable",fe="Your browser does not support the canvas tag.",we="script",pe="span",me="textarea",ge=/new\s*exontrol\.(.*?)\s*\(\s*['"](.*?)['"]/gm,ye=/new\s*exontrol\.(.*?)\s*\(/gm,ve=/exontrol\.([^.(]*)[.(]/gm,xe=/^[ \t]*/,Ee=/["']((?!(?:text\/javascript))[^+*\-\n\\\/#A-Z0-9<>.].([^+*\-\n<>()"'`,:|?*\[\]]*?)[\\\/][^+*\-\n]*?|[^\n<>()"'`,:|?*\[\]]*?\.(csv|xml|txt))["']/g,be="",Ce="<[a-zA-Z]+\\s*.*[iI][dD]\\s*=\\s*['\"]ID['\"].*?>",Se="(\\w*TYPE)\\b",Me=comrun.isMin(),ke="../",Ke=!1,Re=!1,Te=2e3,Ae=0,Le=["result","code","url","html"],He="Run JavaScript",Ie="|",Oe="

",Xe="E64",Fe="edit",Ne="dirty",We="lincaret",Ve="host-keyword",Ye="keyword",Pe="run-js.width",je="run-js.height",ze="run-js.auto",Be="run-js.eval",De=window.innerWidth,Ue=28,qe=0,Qe={e:[],t:[],k:[]},Je={setDirty:R,toggleKeyword:M,getComment:p,evaluateCustomExpression:k,win:null,key:null,ignoreUKey:!1,ignoreXKey:!1},Ze=/^(?!\s*(?:break|case|catch|class|const|continue|debugger|default|delete|do|else|export|extends|finally|for|function|if|import|in|instanceof|let|new|return|super|switch|this|throw|try|typeof|var|void|while|with|yield)\s*$)(?!.*=>).+$/;window.onload=function(){this.ace?(lineno.style.display="none",Je.win=run.contentWindow,this.acelib.replCode.call(this,Je)):(lineno.update=function(){var e,t=1+function(e,t){var n=t.length,i=0;if(n)for(var o=-n;-1!=(o=e.indexOf(t,o+n));)i++;return i}(code.getValue(),oe);if(this.children.length!=t){code.scrollHeight>code.clientHeight&&t++,e="";for(var n=0;n"+(n+1)+"";this.innerHTML=e}},code.init=function(){this.style.lineHeight=lineno.style.lineHeight="1.4em",lineno.style.font=getComputedStyle(this).font},code.getValue=function(){return this.value||this.innerText},code.setValue=function(e){this["value"in this?"value":"innerText"]=e,lineno.update()},code.hasError=function(){return lineno.getElementsByClassName("linerr").length},code.setError=function(e,t){if(_(lineno.getElementsByClassName("linerr")).forEach(function(e){ee(e,"linerr",!0)}),setSelCol(),this.xKeywords(),e){var n=lineno.children.item(e-1),i=this.getValue(),o=C(i,e,t);n&&ee(n,"linerr"),this.setSelectionRange&&(setSelCol("style-sel-err"),this.setSelectionRange(o,o+(/\w/.test(i.charAt(o))&&(i.substr(o).match(/\w\w*/)||[])[0].length||0)),this.ensureVisibleSel(),this.focus())}},code.updateCaret=function(){setTimeout(function(){this.selectionStart!=N&&this.oncaret(N=this.selectionStart)}.bind(this))},code.pos2XY=function(e){var t=this.value,n=getComputedStyle(this),i=S(t,e),o=C(t,i.l,1),r=function(e){e=null!=e?String(e):"";var t,i=document.createElement(pe),o=!e.length;return document.body.appendChild(i),i.innerHTML=function(e){for(var t,n="",i=0,o=e.length;i=n.length||!/\w/g.test(n.charAt(t+e.length))))}if(e&&~(i=n.indexOf(e)))for(!r&&s(i)&&(r=!0,Je.ignoreXKey=u,setSelCol("style-sel-key"),this.setSelectionRange(i,i+e.length),this.ensureVisibleSel());~i;)o=i,i+=e.length,s(o)&&l.push.apply(l,t.call(this,o,i,e)),i=n.indexOf(e,i)},this)),function(e){this.xKeywords(),e&&e.length&&(ee(this,Ve),this.exkeys=[],e.forEach(function(e){var t=document.createElement(pe);t.className=Ye,t.exrect=e,document.body.appendChild(t),this.exkeys.push(t)},this),this.syncKeywords())}.call(this,l),s&&this.setSelectionRange(s.s,s.e)}Je.ignoreUKey=!1},code.syncKeywords=function(){var e,t,n,i,o=this.exkeys||[],r=this.getBoundingClientRect(),s=[r.x,r.y,code.clientWidth,code.clientHeight],c=this.scrollLeft,l=this.scrollTop;o.forEach(function(o){(i=o.exrect.slice())[0]+=s[0]-c,i[1]+=s[1]-l,(n=i[0]+i[2]>=s[0]&&s[0]+s[2]>=i[0]&&i[1]+i[3]>=s[1]&&s[1]+s[3]>=i[1])&&(e=Math.max(i[0],s[0]),t=Math.max(i[1],s[1]),i=[e,t,Math.min(i[0]+i[2],s[0]+s[2])-e,Math.min(i[1]+i[3],s[1]+s[3])-t],o.style.left=U(i[0]),o.style.width=U(i[2]),o.style.top=U(i[1]),o.style.height=U(i[3])),o.style.visibility=n?"":"hidden"})},code.xKeywords=function(){this.exkeys&&this.exkeys.forEach(function(e){e.remove()}),ee(this,Ve,!0),this.exkeys=null},code.oninput=function(e){this.updateCaret(),xError(),lineno.update(),R(!0),this.setSelectionRange&&e&&"/"==e.data&&this.selectionStart==this.selectionEnd&&(1==this.selectionStart||2==this.selectionStart)&&setTimeout(function(){var e=this.getValue(),t=ie.length;e!=ie&&e.substr(0,t+1)!=ie+oe||(e=p()+e.substr(t),this.setValue(e),this.setSelectionRange(t,t))}.bind(this))},code.onscroll=function(){this.syncKeywords(),lineno.scrollTop=this.scrollTop},code.onkeydown=function(e){if(this.updateCaret(),e.ctrlKey&&13==e.keyCode)this.updateKeyword(a().substr(this.selectionStart,Math.abs(this.selectionStart-this.selectionEnd)));else if(36==e.keyCode)code.scrollLeft=0;else if(!e.ctrlKey&&!e.altKey)switch(e.keyCode){case 9:return this.setSelectionRange?function(e){function t(e,t){for(var n=0,o=0,s=r.length;e=n[0]&&e=n[1]&&tthis.offsetHeight-36?(V&&V.n&&null!=V.i&&(V.n=!1,V.i++),n=(V=V||function(){var e=document.getElementById("tricks");return e&&(e=e.innerHTML.trim())&&(e=e.split("\n")),e||[]}())[V.i=(V.i||0)%V.length].trim()):V&&(V.n=!0)),this.setAttribute("title",n||"")},code.ensureVisibleSel=function(){var e=this.pos2XY(this.selectionEnd);this.scrollLeft=e[0]+e[2]+8-this.clientWidth,this.scrollTop=e[1]+e[3]-this.clientHeight}),vsplit.onpointerdown=vsplit.onmousedown=function(e){Y.Do(e,function(e){if(4==e.drag.status)e.offsetX<0&&(u(),(e.ctrlKey||e.altKey||e.shiftKey)&&(Ke=!Ke));else{var t=Math.max(0,De+e.drag.offset.x/window.devicePixelRatio);s(t),7==e.drag.status&&(De=t)}})},hsplit.onpointerdown=hsplit.onmousedown=function(e){Y.Do(e,function(e){var t=Math.max(0,qe+e.drag.offset.y/window.devicePixelRatio);c(t),7==e.drag.status&&(qe=t)})},hsplit.oncontextmenu=vsplit.oncontextmenu=function(){return!1},run.onload=function(){R(!1);var e=t(),n=document.getElementById("style-run");n&&n.content&&e.head.appendChild(n.content.cloneNode(!0)),o(),!F&&g()},run.contentWindow.console.log=function(e){return function(){e.apply(this,arguments),setOutput.apply(window,arguments)}}(run.contentWindow.console.log),run.eval=function(e){var n,i=t();(n=i.createElement(we)).appendChild(i.createTextNode(Ze.test(e)?"console.log("+e+")":e)),i.body.appendChild(n),n.remove()},output.oncontextmenu=function(e){return window.xOutput(),window.showOutput(!1),j(e)},code.init(),showOutput(!1),showError(!1),L(),function(){var e="",t=new P(K()).Get(Xe);t&&z(function(){e=atob(t)}),De=~~((~~B(Pe)||384||De+1)-1),qe=~~((~~B(je)||qe+1)-1),Ke=~~B(ze),v(e)}(),c(qe),s(De),l()},window.onbeforeunload=function(){D(Pe,De+1),D(je,qe+1),D(ze,~~Ke)},window.onresize=function(){L(),c(qe),s(De),i()},window.onkeydown=function(t){function n(e){Ae!=e&&(Ae=e,l())}function i(e,t){Re!=e&&(Re=e,desc.setAttribute(de,e?"true":"false"),w(),ee(desc,Fe,!e),(e?desc:code).focus(),!e&&H(),t&&window.top.history.replaceState(null,null,x()))}var o=!1;switch(t.keyCode){case 27:e(),i(!1,!1),n(0);break;case 48:case 49:case 50:case 51:(o=t.ctrlKey||t.altKey)&&n(t.keyCode-48);break;case 69:(o=t.ctrlKey)&&i(!Re,Re);break;case 83:(o=t.ctrlKey)&&u()}if(o)return j(t)},window.setError=function(t,n,i,o){var r,s,c,l,u=arguments,h="",d=null!=i;e(),code.setError(),t&&(h=t,d&&((c=E(r=a()))&&(d=(s=r.match(//i))&&r.substr(s.index).match(/<\/script\s*>/i))&&(l=S(r,s.index+s[0].length),o+=1==i?l.c-1:0,i+=l.l-1),i--,c||r.charAt(0)==oe||i--,h+=" on line "+(i+1),d&&(code.setError(i+1,o),window.parent.extnfo=window.parent.extnfo||{},window.parent.extnfo.err=(window.parent.extnfo.err||0)+1))),showError(error.innerHTML=h),z(function(){this.parent&&this.parent.setError&&this.parent.setError.apply(this.parent,u)},this)},window.xError=function(){window.setError()},window.showError=function(e){error.style.visibility=e?"visible":"hidden"},window.showOutput=function(e){output.style.visibility=e?"visible":"hidden"},window.setOutput=function(){for(var e,t="",n=output.innerHTML.trim(),i=0,o=arguments.length;i