var CreateAmtRemoteTerminal=function(e,r){var t={};t.DivId=e,t.DivElement=document.getElementById(e),t.protocol=1,r.protocol&&(t.protocol=r.protocol),t.terminalEmulation=1,t.fxEmulation=0,t.lineFeed="\r\n",t.debugmode=0,t.width=80,t.height=25,t.heightLock=0;var i,n=["000000","BB0000","00BB00","BBBB00","0000BB","BB00BB","00BBBB","BBBBBB","555555","FF5555","55FF55","FFFF55","5555FF","FF55FF","55FFFF","FFFFFF"],a=0,h=7,o=0,c=!0,f=0,s=0,d=0,l=0,m=0,u=[],g=0,w=0,C=[],S=[],T=!1,b=!0,k=!1,v=[],p="";function y(e,r){switch(m){case 0:if(27===r)m=1,u=[],g=0,w=0;else B(e);break;case 1:switch(e){case"[":m=2;break;case"(":m=4;break;case")":m=5;break;case"]":m=6;break;case"=":k=!0,m=0;break;case">":k=!1,m=0;break;case"7":d=f,l=s,m=0;break;case"8":f=d,s=l,m=0;break;case"M":for(var n=i[1];n>=i[0]+1;n--)for(var T=0;Ti[0]-1;n--)for(T=0;T="0"&&e<="9"){u[g]?u[g]=10*u[g]+(e-"0"):u[g]=e-"0";break}if(";"==e){g++;break}if("?"==e){w=1;break}u[0]||(u[0]=0),function(e,r,n,d){if(1==d)switch(e){case"l":25==r[0]&&(b=!1);break;case"h":25==r[0]&&(b=!0)}else if(0==d){var l;switch(e){case"c":t.TermResetScreen();break;case"A":1==n&&(0==r[0]?s--:s-=r[0],s<0&&(s=0));break;case"B":1==n&&(0==r[0]?s++:s+=r[0],s>t.height&&(s=t.height));break;case"C":1==n&&(0==r[0]?f++:f+=r[0],f>t.width&&(f=t.width));break;case"D":1==n&&(0==r[0]?f--:f-=r[0],f<0&&(f=0));break;case"d":1==n&&((s=r[0]-1)>t.height&&(s=t.height),s<0&&(s=0));break;case"G":1==n&&((f=r[0]-1)<0&&(f=0),f>t.width-1&&(f=t.width-1));break;case"P":var m=1;for(1==n&&(m=r[0]),l=f;l=s+u;w--)S[w]=S[w-u],C[w]=C[w-u];for(w=s;wt.height&&(r[0]=t.height),r[1]>t.width&&(r[1]=t.width),s=r[0]-1,f=r[1]-1):(s=0,f=0);break;case"m":for(l=0;l=8&&(h-=8);else if(7==r[l])a=2;else if(27==r[l])a=0;else if(r[l]>=30&&r[l]<=37){var g=h>=8;h=r[l]-30,g&&h<=8&&(h+=8)}else r[l]>=40&&r[l]<=47?o=r[l]-40:r[l]>=90&&r[l]<=99?h=r[l]-82:r[l]>=100&&r[l]<=109&&(o=r[l]-92);else o=0,h=7,a=0;break;case"K":0!=n&&(1!=n||r[0]&&0!=r[0])?1==n&&(1==r[0]?function(){for(var e=(h<<6)+(o<<12)+a,r=0;rt.height-1&&(i[0]=t.height-1),i[1]<0&&(i[1]=0),i[1]>t.height-1&&(i[1]=t.height-1),i[0]>i[1]&&(i[0]=i[1]);break;case"S":m=1;1==n&&(m=r[0]);for(var w=i[0];w<=i[1]-m;w++)for(var T=0;Ti[0]+m;w--)for(T=0;Ti[0];w--)for(T=0;T0&&p=t.width&&(k=0,p++);break;default:console.log("Unknown terminal code",e,r,d)}}}(e,u,g+1,w),m=0;break;case 4:case 5:m=0;break;case 6:var p=e.charCodeAt(0);";"==e?g++:7==p?(!function(e){if(0==e.length)return;var r=parseInt(e[0]);(0==r||2==r)&&e.length>1&&"?"!=e[1]&&t.onTitleChange&&t.onTitleChange(t,t.title=e[1])}(u),m=0):u[g]?u[g]+=e:u[g]=e}}t.title=null,t.onTitleChange=null,t.Start=function(){},t.Init=function(e,r){t.width=e||80,t.height=r||25;for(var i=0;it.width&&(f=t.width),s>t.height-1&&(s=t.height-1),e){case"\b":f>0&&(f--,T&&F(" "));break;case"\t":for(var n=8-f%8,a=0;ai[1]&&(t.recordLineTobackBuffer(0),P(1),s=i[1]),(t.lineFeed="\r")&&(f=0);break;case"\r":f=0;break;default:f>=t.width&&(f=0,c&&s++,s>=t.height-1&&(P(1),s=t.height-1)),F(e),f++}}}function F(e){S[s][f]=e,C[s][f]=(h<<6)+(o<<12)+a}function E(){for(var e=(h<<6)+(o<<12)+a,r=f;r=65&&e.which<=90&&1==e.ctrlKey)return t.TermSendKey(e.which-64),e.preventDefault&&e.preventDefault(),void(e.stopPropagation&&e.stopPropagation());if(27==e.which)return t.TermSendKeys(String.fromCharCode(27)),!0;if(1==k){if(37==e.which)return t.TermSendKeys(String.fromCharCode(27,79,68)),!0;if(38==e.which)return t.TermSendKeys(String.fromCharCode(27,79,65)),!0;if(39==e.which)return t.TermSendKeys(String.fromCharCode(27,79,67)),!0;if(40==e.which)return t.TermSendKeys(String.fromCharCode(27,79,66)),!0}else{if(37==e.which)return t.TermSendKeys(String.fromCharCode(27,91,68)),!0;if(38==e.which)return t.TermSendKeys(String.fromCharCode(27,91,65)),!0;if(39==e.which)return t.TermSendKeys(String.fromCharCode(27,91,67)),!0;if(40==e.which)return t.TermSendKeys(String.fromCharCode(27,91,66)),!0}if(33==e.which)return t.TermSendKeys(String.fromCharCode(27,91,53,126)),!0;if(34==e.which)return t.TermSendKeys(String.fromCharCode(27,91,54,126)),!0;if(35==e.which)return t.TermSendKeys(String.fromCharCode(27,91,70)),!0;if(36==e.which)return t.TermSendKeys(String.fromCharCode(27,91,72)),!0;if(45==e.which)return t.TermSendKeys(String.fromCharCode(27,91,50,126)),!0;if(46==e.which)return t.TermSendKeys(String.fromCharCode(27,91,51,126)),!0;if(9==e.which)return t.TermSendKeys("\t"),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!0;var r=[80,81,119,120,116,117,113,114,112,77],i=[49,50,51,52,53,54,55,56,57,48,33,64],n=[80,81,82,83,84,85,86,87,88,89,90,91];if(e.which>111&e.which<124&&0==e.repeat){if(0==t.fxEmulation&&e.which<122)return t.TermSendKeys(String.fromCharCode(27,91,79,r[e.which-112])),!0;if(1==t.fxEmulation)return t.TermSendKeys(String.fromCharCode(27,i[e.which-112])),!0;if(2==t.fxEmulation)return t.TermSendKeys(String.fromCharCode(27,79,n[e.which-112])),!0}r=[80,81,119,120,116,117,113,114,112,77];if(e.which>111&e.which<122&&0==e.repeat)return t.TermSendKeys(String.fromCharCode(27,91,79,r[e.which-112])),!0;i=[49,50,51,52,53,54,55,56,57,48,33,64];if(e.which>111&e.which<124&&0==e.repeat)return t.TermSendKeys(String.fromCharCode(27,i[e.which-112])),!0;n=[80,81,82,83,84,85,86,87,88,89,90,91];return e.which>111&e.which<124&&0==e.repeat?(t.TermSendKeys(String.fromCharCode(27,79,n[e.which-112])),!0):8!=e.which&&32!=e.which&&9!=e.which||(t.TermSendKey(e.which),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1)},t.recordLineTobackBuffer=function(e){var r="",i="",n=t.TermDrawLine(i,e,r);i=n[0],r=n[1],v.push(i+r+"
")},t.TermDrawLine=function(e,r,i){for(var a,h,o,c,d=1,l=0;l>c&63],1&a&&(e+=";text-decoration:underline"),e+=';">',i=""+(i=""),d=a),h=S[r][l]){case"&":e+="&";break;case"<":e+="<";break;case">":e+=">";break;case" ":e+=" ";break;default:e+=h}return[e,i]},t.TermDraw=function(){for(var e="",r="",i=0;i")}v.length>800&&(v=v.slice(v.length-800));var a=v.join("");t.DivElement.innerHTML=""+a+r+e+"",t.DivElement.scrollTop=t.DivElement.scrollHeight,0==t.heightLock&&setTimeout(t.TermLockHeight,10)},t.TermLockHeight=function(){t.heightLock=t.DivElement.clientHeight,t.DivElement.style.height=t.DivElement.parentNode.style.height=t.heightLock+"px",t.DivElement.style["overflow-y"]="scroll"},t.TermInit=function(){t.TermResetScreen()},t.heightLock=0,t.DivElement.style.height="",null!=r&&null!=r.cols&&null!=r.rows?t.Init(r.cols,r.rows):t.Init(),t}