function CookieHandler(){this.setCookie=function(C,D,E){if(typeof(E)!="undefined"){var B=new Date();B.setTime(B.getTime()+(E*1000));var A="; expires="+B.toGMTString()}else{var A=""}document.cookie=C+"="+D+A+"; path=/"};this.getCookie=function(B){B=B+"=";var A=document.cookie.split(";");for(var C=0;C<A.length;C++){var D=A[C];while(D.charAt(0)==" "){D=D.substring(1,D.length)}if(D.indexOf(B)==0){return D.substring(B.length,D.length)}}return null};this.deleteCookie=function(A){this.setCookie(A,"",-1)}}var Cookies=new CookieHandler();var unTouched=true;var curkey="";var notetext="";function advance(A){if(A=="no"){document.getElementById("adv_top").style.display="none";document.getElementById("adv_bot").style.display="none";document.getElementById("simple").style.display="inline";Cookies.setCookie("advanced","no",365*60*60)}else{document.getElementById("adv_top").style.display="inline";document.getElementById("adv_bot").style.display="inline";document.getElementById("simple").style.display="none";Cookies.setCookie("advanced","yes",365*60*60)}}function nowLoaded(){ce();mouseMotionEntropy(60);document.getElementById("encryption").innerHTML='| <a href="javascript:enterKey(Generate_key());">'+trans_lock+"</a>";document.getElementById("decryption").innerHTML="| "+trans_garbled;if(unTouched){document.getElementById("submitter").innerHTML='<input type="button" value="'+trans_save+'" disabled="disabled">'}else{document.getElementById("submitter").innerHTML='<input type="button"  tabindex="3" value="'+trans_save+'" onclick="submitter();">'}document.getElementById("backlog").innerHTML="";document.getElementById("showlists").innerHTML=backupsandsaves;document.getElementById("showLinks").innerHTML=' | <a href="javascript:showLinks();" title="'+trans_nice_title+'" alt="'+trans_nice_title+'">'+trans_nice+"</a>";var A=Cookies.getCookie("advanced");if(typeof(A)=="undefined"){A="no"}Cookies.setCookie("advanced",A,365*60*60);advance(A);document.note.text.focus();if(lockedcontent){unlock()}if(window.location.search.search(/niceview/)!=-1){showLinks()}}function enterKey(B){if(curkey.length==0){var A=prompt(trans_password,B);if(A&&A.length>0){curkey=A;document.getElementById("set").innerHTML="| "+trans_will_lock+' | <a href="javascript:clearKey();">'+trans_unlock+"</a>";document.getElementsByTagName("body")[0].style.backgroundColor="#fae5c3";document.getElementById("encryption").innerHTML="";document.getElementById("decryption").innerHTML=""}}document.note.text.focus()}function clearKey(){curkey="";document.getElementsByTagName("body")[0].style.backgroundColor="#c3e5fa";document.getElementById("set").innerHTML="";document.getElementById("encryption").innerHTML='| <a href="javascript:enterKey(Generate_key());">'+trans_lock+"</a>";document.note.text.focus();document.note.locked.value=""}function unlock(){enterKey("");if(document.note.text.value.length>4000){alert(trans_warn_unlock)}Decrypt_text();document.note.text.focus()}function submitter(){document.getElementById("submitter").innerHTML=trans_saving+': <a href="http://shrib.com/'+noteID+'">'+trans_cancel+"</a>";if(curkey.length>0){document.getElementById("submitter").innerHTML=trans_locking+': <a href="http://shrib.com/'+noteID+'">'+trans_cancel+"</a>";if(document.note.text.value.length>4000){Check=confirm(trans_warn_lock);if(Check==false){alert("Notes not saved!");if(unTouched){document.getElementById("submitter").innerHTML=""}else{document.getElementById("submitter").innerHTML='<input type="button"  tabindex="3" value="'+trans_save+'" onclick="submitter();">'}document.getElementById("submitter").innerHTML='<input type="button"  tabindex="3" value="'+trans_save+'" onclick="submitter();">';return}}Encrypt_text();clearKey();document.note.locked.value="yes"}if(notetext.length>0){hideLinks()}document.note.submit()}function viewLists(A){if(A=="no"){document.getElementById("backlog").innerHTML="";document.getElementById("showlists").innerHTML='<a href="javascript:viewLists(\'yes\')" title="'+trans_view_versions+'" alt="'+trans_view_versions+'">'+trans_versions+"</a>";document.note.text.focus()}else{document.getElementById("backlog").innerHTML=liststext;document.getElementById("showlists").innerHTML="<a href=\"javascript:viewLists('no')\" >"+trans_no_versions+"</a>";document.note.text.focus()}}function NotesToHTML(D){var K=D.split("\n");var L=0;var A="";var J="";var B="";var C=0;var E=false;while(C<K.length){J=K[C].replace(/</g,"&lt;").replace(/>/g,"&gt;");if(J.length==0){if(E==true){B=B+"</ul>";E=false}else{B=B+"<p></p>"}C++;continue}L=J.search(/\*/);if(L==0){J=J.substr(1,J.length-1);J="<li>"+J+" </li>";if(E==false){J="<ul>"+J}E=true}else{if(E==true){J="</ul>"+J;E=false}}B=B+"<p>\n";while(J.length>0){L=J.search(/https*:\/\//);if(L!=-1){if(L!=0){B=B+J.substring(0,L);J=J.substring(L,J.length)}L=J.search(/\s/);if(L==-1){L=J.length}while(J.substring(L-1,L).search(/\W/)!=-1){L=L-1}A=J.substring(0,L);B=B+'<a href="'+A+'">'+A+"</a>";J=J.substring(L,J.length);if(J.length<1){B=B+"</p>\n";break}}else{B=B+J+"</p>\n";break}}C++}return B}function showLinks(){notetext=document.note.text.value;document.note.style.display="none";document.getElementById("content").innerHTML="<p>shrib.com - <b>"+noteID+'</b> (<a href="javascript:hideLinks()">'+trans_edit+'</a>)</p><div style="border:1px solid #000000; color:#000000; background-color:#ffffff; padding:4px; margin:0px;">'+NotesToHTML(notetext)+"</div>";document.note.text.focus()}function hideLinks(){document.note.style.display="inline";document.getElementById("content").innerHTML="";notetext="";document.note.text.focus()}function isTouched(B){if(unTouched){var D;var C;var A;if(window.event){D=B.keyCode}else{if(B.which){D=B.which}}C=String.fromCharCode(D);A=/[\w\s]/;if(A.test(C)){document.getElementById("submitter").innerHTML='<input type="button"  tabindex="3" value="'+trans_save+'" onclick="submitter();">';unTouched=false}}ce()}var loadTime=(new Date()).getTime();var key;var prng;function setKey(){var C=encode_utf8(curkey);var B,D,E;if(C.length==1){C+=C}md5_init();for(B=0;B<C.length;B+=2){md5_update(C.charCodeAt(B))}md5_finish();D=byteArrayToHex(digestBits);md5_init();for(B=1;B<C.length;B+=2){md5_update(C.charCodeAt(B))}md5_finish();E=byteArrayToHex(digestBits);var A=D+E;key=hexToByteArray(A);A=byteArrayToHex(key)}function Generate_key(){var E,D,C="";var E,D,C="";addEntropyTime();var B=keyFromEntropy();var J=new AESprng(B);var A=("A").charCodeAt(0);for(E=0;E<12;E++){if(E>0){C+="-"}for(D=0;D<5;D++){C+=String.fromCharCode(A+J.nextInt(25))}}delete J;return C}function Encrypt_text(){var A,C;if(curkey.length==0){alert(trans_no_password);return}if(document.note.text.value.length==0){alert(trans_no_text);return}setKey();addEntropyTime();prng=new AESprng(keyFromEntropy());var D=encode_utf8(document.note.text.value);md5_init();for(C=0;C<D.length;C++){md5_update(D.charCodeAt(C))}md5_finish();var E="";for(C=0;C<digestBits.length;C++){E+=String.fromCharCode(digestBits[C])}C=D.length;E+=String.fromCharCode(C>>>24);E+=String.fromCharCode(C>>>16);E+=String.fromCharCode(C>>>8);E+=String.fromCharCode(C&255);var B=rijndaelEncrypt(E+D,key,"CBC");A=armour_base64(B);document.note.text.value=A+"decrypt at shrib.com";delete prng}function determineArmourType(B){var J,E,A,D,C;E=B.indexOf(codegroupSentinel);A=B.indexOf(hexSentinel);D=B.indexOf(base64sent);if(E==-1){E=B.length}if(A==-1){A=B.length}if(D==-1){D=B.length}C=Math.min(E,Math.min(A,D));if(C<B.length){if(C==E){J=0}else{if(C==A){J=1}else{J=2}}}else{J=2}return J}function Decrypt_text(){if(curkey.length==0){alert(trans_no_password);return}if(document.note.text.value.length==0){alert(trans_no_text);return}setKey();var D=new Array(),J;D=disarm_base64(document.note.text.value);var A=rijndaelDecrypt(D,key,"CBC");var K=A.slice(0,20);A=A.slice(20);var B=(K[16]<<24)|(K[17]<<16)|(K[18]<<8)|K[19];if((B<0)||(B>A.length)){B=A.length}var C,E="";md5_init();for(C=0;C<B;C++){E+=String.fromCharCode(A[C]);md5_update(A[C])}md5_finish();for(C=0;C<digestBits.length;C++){if(digestBits[C]!=K[C]){alert(trans_wrong_password);E="";document.getElementById("decryption").innerHTML="| "+trans_garbled;clearKey();break}}if(E.length>0){document.note.text.value=decode_utf8(E)}}function unicode_to_utf8(B){var A="";for(var D=0;D<B.length;D++){var C=B.charCodeAt(D);if(C<=127){A+=String.fromCharCode(C)}else{if((C>=128)&&(C<=2047)){A+=String.fromCharCode((C>>6)|192);A+=String.fromCharCode((C&63)|128)}else{A+=String.fromCharCode((C>>12)|224);A+=String.fromCharCode(((C>>6)&63)|128);A+=String.fromCharCode((C&63)|128)}}}return A}function utf8_to_unicode(C){var E="",D=0,B,A,A;while(D<C.length){B=C.charCodeAt(D);if(B<128){E+=String.fromCharCode(B);D++}else{if((B>=192)&&(B<224)){A=C.charCodeAt(D+1);E+=String.fromCharCode(((B&31)<<6)|(A&63));D+=2}else{A=C.charCodeAt(D+1);b3=C.charCodeAt(D+2);E+=String.fromCharCode(((B&15)<<12)|((A&63)<<6)|(b3&63));D+=3}}}return E}function encode_utf8(B){var A,C=false;for(A=0;A<B.length;A++){if((B.charCodeAt(A)==157)||(B.charCodeAt(A)>255)){C=true;break}}if(!C){return B}return String.fromCharCode(157)+unicode_to_utf8(B)}function decode_utf8(A){if((A.length>0)&&(A.charCodeAt(0)==157)){return utf8_to_unicode(A.substring(1))}return A}function array(A){for(i=0;i<A;i++){this[i]=0}this.length=A}function integer(A){return A%(4294967295+1)}function shr(B,A){B=integer(B);A=integer(A);if(B-2147483648>=0){B=B%2147483648;B>>=A;B+=1073741824>>(A-1)}else{B>>=A}return B}function shl1(A){A=A%2147483648;if(A&1073741824==1073741824){A-=1073741824;A*=2;A+=2147483648}else{A*=2}return A}function shl(B,A){B=integer(B);A=integer(A);for(var C=0;C<A;C++){B=shl1(B)}return B}function and(B,A){B=integer(B);A=integer(A);var D=B-2147483648;var C=A-2147483648;if(D>=0){if(C>=0){return((D&C)+2147483648)}else{return(D&A)}}else{if(C>=0){return(B&C)}else{return(B&A)}}}function or(B,A){B=integer(B);A=integer(A);var D=B-2147483648;var C=A-2147483648;if(D>=0){if(C>=0){return((D|C)+2147483648)}else{return((D|A)+2147483648)}}else{if(C>=0){return((B|C)+2147483648)}else{return(B|A)}}}function xor(B,A){B=integer(B);A=integer(A);var D=B-2147483648;var C=A-2147483648;if(D>=0){if(C>=0){return(D^C)}else{return((D^A)+2147483648)}}else{if(C>=0){return((B^C)+2147483648)}else{return(B^A)}}}function not(A){A=integer(A);return 4294967295-A}var state=new array(4);var count=new array(2);count[0]=0;count[1]=0;var buffer=new array(64);var transformBuffer=new array(16);var digestBits=new array(16);var S11=7;var S12=12;var S13=17;var S14=22;var S21=5;var S22=9;var S23=14;var S24=20;var S31=4;var S32=11;var S33=16;var S34=23;var S41=6;var S42=10;var S43=15;var S44=21;function F(A,C,B){return or(and(A,C),and(not(A),B))}function G(A,C,B){return or(and(A,B),and(C,not(B)))}function H(A,C,B){return xor(xor(A,C),B)}function I(A,C,B){return xor(C,or(A,not(B)))}function rotateLeft(A,B){return or(shl(A,B),(shr(A,(32-B))))}function FF(C,B,K,J,A,D,E){C=C+F(B,K,J)+A+E;C=rotateLeft(C,D);C=C+B;return C}function GG(C,B,K,J,A,D,E){C=C+G(B,K,J)+A+E;C=rotateLeft(C,D);C=C+B;return C}function HH(C,B,K,J,A,D,E){C=C+H(B,K,J)+A+E;C=rotateLeft(C,D);C=C+B;return C}function II(C,B,K,J,A,D,E){C=C+I(B,K,J)+A+E;C=rotateLeft(C,D);C=C+B;return C}function transform(D,J){var C=0,B=0,K=0,E=0;var A=transformBuffer;C=state[0];B=state[1];K=state[2];E=state[3];for(i=0;i<16;i++){A[i]=and(D[i*4+J],255);for(j=1;j<4;j++){A[i]+=shl(and(D[i*4+j+J],255),j*8)}}C=FF(C,B,K,E,A[0],S11,3614090360);E=FF(E,C,B,K,A[1],S12,3905402710);K=FF(K,E,C,B,A[2],S13,606105819);B=FF(B,K,E,C,A[3],S14,3250441966);C=FF(C,B,K,E,A[4],S11,4118548399);E=FF(E,C,B,K,A[5],S12,1200080426);K=FF(K,E,C,B,A[6],S13,2821735955);B=FF(B,K,E,C,A[7],S14,4249261313);C=FF(C,B,K,E,A[8],S11,1770035416);E=FF(E,C,B,K,A[9],S12,2336552879);K=FF(K,E,C,B,A[10],S13,4294925233);B=FF(B,K,E,C,A[11],S14,2304563134);C=FF(C,B,K,E,A[12],S11,1804603682);E=FF(E,C,B,K,A[13],S12,4254626195);K=FF(K,E,C,B,A[14],S13,2792965006);B=FF(B,K,E,C,A[15],S14,1236535329);C=GG(C,B,K,E,A[1],S21,4129170786);E=GG(E,C,B,K,A[6],S22,3225465664);K=GG(K,E,C,B,A[11],S23,643717713);B=GG(B,K,E,C,A[0],S24,3921069994);C=GG(C,B,K,E,A[5],S21,3593408605);E=GG(E,C,B,K,A[10],S22,38016083);K=GG(K,E,C,B,A[15],S23,3634488961);B=GG(B,K,E,C,A[4],S24,3889429448);C=GG(C,B,K,E,A[9],S21,568446438);E=GG(E,C,B,K,A[14],S22,3275163606);K=GG(K,E,C,B,A[3],S23,4107603335);B=GG(B,K,E,C,A[8],S24,1163531501);C=GG(C,B,K,E,A[13],S21,2850285829);E=GG(E,C,B,K,A[2],S22,4243563512);K=GG(K,E,C,B,A[7],S23,1735328473);B=GG(B,K,E,C,A[12],S24,2368359562);C=HH(C,B,K,E,A[5],S31,4294588738);E=HH(E,C,B,K,A[8],S32,2272392833);K=HH(K,E,C,B,A[11],S33,1839030562);B=HH(B,K,E,C,A[14],S34,4259657740);C=HH(C,B,K,E,A[1],S31,2763975236);E=HH(E,C,B,K,A[4],S32,1272893353);K=HH(K,E,C,B,A[7],S33,4139469664);B=HH(B,K,E,C,A[10],S34,3200236656);C=HH(C,B,K,E,A[13],S31,681279174);E=HH(E,C,B,K,A[0],S32,3936430074);K=HH(K,E,C,B,A[3],S33,3572445317);B=HH(B,K,E,C,A[6],S34,76029189);C=HH(C,B,K,E,A[9],S31,3654602809);E=HH(E,C,B,K,A[12],S32,3873151461);K=HH(K,E,C,B,A[15],S33,530742520);B=HH(B,K,E,C,A[2],S34,3299628645);C=II(C,B,K,E,A[0],S41,4096336452);E=II(E,C,B,K,A[7],S42,1126891415);K=II(K,E,C,B,A[14],S43,2878612391);B=II(B,K,E,C,A[5],S44,4237533241);C=II(C,B,K,E,A[12],S41,1700485571);E=II(E,C,B,K,A[3],S42,2399980690);K=II(K,E,C,B,A[10],S43,4293915773);B=II(B,K,E,C,A[1],S44,2240044497);C=II(C,B,K,E,A[8],S41,1873313359);E=II(E,C,B,K,A[15],S42,4264355552);K=II(K,E,C,B,A[6],S43,2734768916);B=II(B,K,E,C,A[13],S44,1309151649);C=II(C,B,K,E,A[4],S41,4149444226);E=II(E,C,B,K,A[11],S42,3174756917);K=II(K,E,C,B,A[2],S43,718787259);B=II(B,K,E,C,A[9],S44,3951481745);state[0]+=C;state[1]+=B;state[2]+=K;state[3]+=E}function md5_init(){count[0]=count[1]=0;state[0]=1732584193;state[1]=4023233417;state[2]=2562383102;state[3]=271733878;for(i=0;i<digestBits.length;i++){digestBits[i]=0}}function md5_update(A){var B,C;B=and(shr(count[0],3),63);if(count[0]<4294967295-7){count[0]+=8}else{count[1]++;count[0]-=4294967295+1;count[0]+=8}buffer[B]=and(A,255);if(B>=63){transform(buffer,0)}}function md5_finish(){var D=new array(8);var E;var C=0,B=0,A=0;for(C=0;C<4;C++){D[C]=and(shr(count[0],(C*8)),255)}for(C=0;C<4;C++){D[C+4]=and(shr(count[1],(C*8)),255)}B=and(shr(count[0],3),63);A=(B<56)?(56-B):(120-B);E=new array(64);E[0]=128;for(C=0;C<A;C++){md5_update(E[C])}for(C=0;C<8;C++){md5_update(D[C])}for(C=0;C<4;C++){for(j=0;j<4;j++){digestBits[C*4+j]=and(shr(state[C],(j*8)),255)}}}function uGen(C,B,J,E,A){var D;D=Math.floor(C/J);D=B*(C-(D*J))-(D*E);return Math.round((D<0)?(D+A):D)}function LEnext(){var A;this.gen1=uGen(this.gen1,40014,53668,12211,2147483563);this.gen2=uGen(this.gen2,40692,52774,3791,2147483399);A=Math.floor(this.state/67108862);this.state=Math.round((this.shuffle[A]+this.gen2)%2147483563);this.shuffle[A]=this.gen1;return this.state}function LEnint(C){var B=1;while(C>=B){B<<=1}B--;while(true){var A=this.next()&B;if(A<=C){return A}}}function LEcuyer(B){var A;this.shuffle=new Array(32);this.gen1=this.gen2=(B&2147483647);for(A=0;A<19;A++){this.gen1=uGen(this.gen1,40014,53668,12211,2147483563)}for(A=0;A<32;A++){this.gen1=uGen(this.gen1,40014,53668,12211,2147483563);this.shuffle[31-A]=this.gen1}this.state=this.shuffle[0];this.next=LEnext;this.nextInt=LEnint}var entropyData=new Array();var edlen=0;addEntropyTime();ce();function addEntropyByte(A){entropyData[edlen++]=A}function ce(){addEntropyByte(Math.floor((((new Date).getMilliseconds())*255)/999))}function addEntropy32(A){var B;for(B=0;B<4;B++){addEntropyByte(A&255);A>>=8}}function addEntropyTime(){addEntropy32((new Date()).getTime())}var mouseMotionCollect=0;var oldMoveHandler;function mouseMotionEntropy(A){if(mouseMotionCollect<=0){mouseMotionCollect=A;if((document.implementation.hasFeature("Events","2.0"))&&document.addEventListener){document.addEventListener("mousemove",mouseMoveEntropy,false)}else{if(document.attachEvent){document.attachEvent("onmousemove",mouseMoveEntropy)}else{oldMoveHandler=document.onmousemove;document.onmousemove=mouseMoveEntropy}}}}var mouseEntropyTime=0;function mouseMoveEntropy(A){if(!A){A=window.event}if(mouseMotionCollect>0){if(mouseEntropyTime--<=0){addEntropyByte(A.screenX&255);addEntropyByte(A.screenY&255);ce();mouseMotionCollect--;mouseEntropyTime=(entropyData[edlen-3]^entropyData[edlen-2]^entropyData[edlen-1])%19}if(mouseMotionCollect<=0){if(document.removeEventListener){document.removeEventListener("mousemove",mouseMoveEntropy,false)}else{if(document.detachEvent){document.detachEvent("onmousemove",mouseMoveEntropy)}else{document.onmousemove=oldMoveHandler}}}}}function keyFromEntropy(){var B,A=new Array(32);if(edlen==0){alert("Blooie!  Entropy vector void at call to keyFromEntropy.")}md5_init();for(B=0;B<edlen;B+=2){md5_update(entropyData[B])}md5_finish();for(B=0;B<16;B++){A[B]=digestBits[B]}md5_init();for(B=1;B<edlen;B+=2){md5_update(entropyData[B])}md5_finish();for(B=0;B<16;B++){A[B+16]=digestBits[B]}return A}var maxLineLength=64;var hexSentinel="?HX?",hexEndSentinel="?H";function armour_hex(A){var C=hexSentinel+byteArrayToHex(A)+hexEndSentinel;var B="";while(C.length>maxLineLength){B+=C.substring(0,maxLineLength)+"\n";C=C.substring(maxLineLength,C.length)}B+=C+"\n";return B}function disarm_hex(D){var A="0123456789abcdefABCDEF";var C="",B;if((B=D.indexOf(hexSentinel))>=0){D=D.substring(B+hexSentinel.length,D.length)}if((B=D.indexOf(hexEndSentinel))>=0){D=D.substring(0,B)}for(B=0;B<D.length;B++){var E=D.charAt(B);if(A.indexOf(E)>=0){C+=E}}return hexToByteArray(C)}var acgcl,acgt,acgg;function armour_cg_outgroup(){if(acgcl.length>maxLineLength){acgt+=acgcl+"\n";acgcl=""}if(acgcl.length>0){acgcl+=" "}acgcl+=acgg;acgg=""}function armour_cg_outletter(A){if(acgg.length>=5){armour_cg_outgroup()}acgg+=A}var codegroupSentinel="ZZZZZ";function armour_codegroup(B){var C=("A").charCodeAt(0);acgcl=codegroupSentinel;acgt="";acgg="";var A=new LEcuyer(195948557);for(i=0;i<B.length;i++){var D=A.nextInt(23);armour_cg_outletter(String.fromCharCode(C+((((B[i]>>4)&15))+D)%24));D=A.nextInt(23);armour_cg_outletter(String.fromCharCode(C+((((B[i]&15))+D)%24)))}delete A;while(acgg.length<5){armour_cg_outletter("Z")}armour_cg_outgroup();acgg="YYYYY";armour_cg_outgroup();acgt+=acgcl+"\n";return acgt}var dcgs,dcgi;function disarm_cg_insig(){while(dcgi<dcgs.length){var A=dcgs.charAt(dcgi++).toUpperCase();if((A>="A")&&(A<="Z")){return A}}return""}function disarm_codegroup(O){var L=new Array();var D=0,J,M=0,K;dcgs=O;dcgi=0;while(D<5){K=disarm_cg_insig();if(K=="Z"){D++}else{if(K==""){D=0;break}else{D=0}}}if(D==0){alert("No codegroup starting symbol found in message.");return""}var N=("A").charCodeAt(0);var E=new LEcuyer(195948557);for(D=0;D<2;){K=disarm_cg_insig();if((K=="Y")||(K=="")){break}else{if(K!="Z"){var A=E.nextInt(23);var B=K.charCodeAt(0)-N;B=(B+(24-A))%24;if(D==0){J=(B<<4);D++}else{J|=B;L[M++]=J;D=0}}}}delete E;var C="  Attempting decoding with data received.";if(D!=0){alert("Codegroup data truncated."+C)}else{if(K=="Y"){D=1;while(D<5){K=disarm_cg_insig();if(K!="Y"){break}D++}if(D!=5){alert("Codegroup end group incomplete."+C)}}else{alert("Codegroup end group missing."+C)}}return L}var base64code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",base64sent="?b64",base64esent="?64b",base64addsent=false;function armour_base64(A){var D="";var B=base64addsent?base64sent:"";var C;for(C=0;C<=A.length-3;C+=3){if((B.length+4)>maxLineLength){D+=B+"\n";B=""}B+=base64code.charAt(A[C]>>2);B+=base64code.charAt(((A[C]&3)<<4)|(A[C+1]>>4));B+=base64code.charAt(((A[C+1]&15)<<2)|(A[C+2]>>6));B+=base64code.charAt(A[C+2]&63)}if((A.length-C)==1){B+=base64code.charAt(A[C]>>2);B+=base64code.charAt(((A[C]&3)<<4));B+="=="}else{if((A.length-C)==2){B+=base64code.charAt(A[C]>>2);B+=base64code.charAt(((A[C]&3)<<4)|(A[C+1]>>4));B+=base64code.charAt(((A[C+1]&15)<<2));B+="="}}if((B.length+4)>maxLineLength){D+=B+"\n";B=""}if(base64addsent){B+=base64esent}D+=B+"\n";return D}function disarm_base64(D){var A=new Array();var C=0,B,L,K=0,J=0;var E=new Array();if((B=D.indexOf(base64sent))>=0){D=D.substring(B+base64sent.length,D.length)}if((B=D.indexOf(base64esent))>=0){D=D.substring(0,B)}while(C<D.length){if(base64code.indexOf(D.charAt(C))!=-1){break}C++}while(C<D.length){for(B=0;B<4;){if(C>=D.length){if(B>0){alert("Base64 cipher text truncated.");return A}break}L=base64code.indexOf(D.charAt(C));if(L>=0){E[B++]=L}else{if(D.charAt(C)=="="){E[B++]=0;K++}else{if(D.substring(C,C+base64esent.length)==base64esent){C=D.length;continue}else{}}}C++}if(B==4){A[J++]=((E[0]<<2)|(E[1]>>4))&255;if(K<2){A[J++]=((E[1]<<4)|(E[2]>>2))&255;if(K<1){A[J++]=((E[2]<<6)|E[3])&255}}}}return A}function AESprng(A){this.key=new Array();this.key=A;this.itext=hexToByteArray("9F489613248148F9C27945C6AE62EECA3E3367BB14064E4E6DC67A9F28AB3BD1");this.nbytes=0;this.next=AESprng_next;this.nextbits=AESprng_nextbits;this.nextInt=AESprng_nextInt;this.round=AESprng_round;bsb=blockSizeInBits;blockSizeInBits=256;var C,B;for(C=0;C<3;C++){this.key=rijndaelEncrypt(this.itext,this.key,"ECB")}var D=1+(this.key[3]&2)+(this.key[9]&1);for(C=0;C<D;C++){this.key=rijndaelEncrypt(this.itext,this.key,"ECB")}blockSizeInBits=bsb}function AESprng_round(){bsb=blockSizeInBits;blockSizeInBits=256;this.key=rijndaelEncrypt(this.itext,this.key,"ECB");this.nbytes=32;blockSizeInBits=bsb}function AESprng_next(){if(this.nbytes<=0){this.round()}return(this.key[--this.nbytes])}function AESprng_nextbits(D){var C,A=0,B=Math.floor((D+7)/8);for(C=0;C<B;C++){A=(A<<8)|this.next()}return A&((1<<D)-1)}function AESprng_nextInt(D){var C=1,A=0;while(D>=C){C<<=1;A++}C--;while(true){var B=this.nextbits(A)&C;if(B<=D){return B}}}var keySizeInBits=256;var blockSizeInBits=128;var roundsArray=[,,,,[,,,,10,,12,,14],,[,,,,12,,12,,14],,[,,,,14,,14,,14]];var shiftOffsets=[,,,,[,1,2,3],,[,1,2,3],,[,1,3,4]];var Rcon=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145];var SBox=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22];var SBoxInverse=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125];function cyclicShiftLeft(C,A){var B=C.slice(0,A);C=C.slice(A).concat(B);return C}var Nk=keySizeInBits/32;var Nb=blockSizeInBits/32;var Nr=roundsArray[Nk][Nb];function xtime(A){A<<=1;return((A&256)?(A^283):(A))}function mult_GF256(B,D){var C,A=0;for(C=1;C<256;C*=2,D=xtime(D)){if(B&C){A^=D}}return A}function byteSub(D,E){var C;if(E=="encrypt"){C=SBox}else{C=SBoxInverse}for(var B=0;B<4;B++){for(var A=0;A<Nb;A++){D[B][A]=C[D[B][A]]}}}function shiftRow(B,C){for(var A=1;A<4;A++){if(C=="encrypt"){B[A]=cyclicShiftLeft(B[A],shiftOffsets[Nb][A])}else{B[A]=cyclicShiftLeft(B[A],Nb-shiftOffsets[Nb][A])}}}function mixColumn(D,E){var A=[];for(var B=0;B<Nb;B++){for(var C=0;C<4;C++){if(E=="encrypt"){A[C]=mult_GF256(D[C][B],2)^mult_GF256(D[(C+1)%4][B],3)^D[(C+2)%4][B]^D[(C+3)%4][B]}else{A[C]=mult_GF256(D[C][B],14)^mult_GF256(D[(C+1)%4][B],11)^mult_GF256(D[(C+2)%4][B],13)^mult_GF256(D[(C+3)%4][B],9)}}for(var C=0;C<4;C++){D[C][B]=A[C]}}}function addRoundKey(B,C){for(var A=0;A<Nb;A++){B[0][A]^=(C[A]&255);B[1][A]^=((C[A]>>8)&255);B[2][A]^=((C[A]>>16)&255);B[3][A]^=((C[A]>>24)&255)}}function keyExpansion(D){var C=new Array();var A;Nk=keySizeInBits/32;Nb=blockSizeInBits/32;Nr=roundsArray[Nk][Nb];for(var B=0;B<Nk;B++){C[B]=(D[4*B])|(D[4*B+1]<<8)|(D[4*B+2]<<16)|(D[4*B+3]<<24)}for(B=Nk;B<Nb*(Nr+1);B++){A=C[B-1];if(B%Nk==0){A=((SBox[(A>>8)&255])|(SBox[(A>>16)&255]<<8)|(SBox[(A>>24)&255]<<16)|(SBox[A&255]<<24))^Rcon[Math.floor(B/Nk)-1]}else{if(Nk>6&&B%Nk==4){A=(SBox[(A>>24)&255]<<24)|(SBox[(A>>16)&255]<<16)|(SBox[(A>>8)&255]<<8)|(SBox[A&255])}}C[B]=C[B-Nk]^A}return C}function Round(A,B){byteSub(A,"encrypt");shiftRow(A,"encrypt");mixColumn(A,"encrypt");addRoundKey(A,B)}function InverseRound(A,B){addRoundKey(A,B);mixColumn(A,"decrypt");shiftRow(A,"decrypt");byteSub(A,"decrypt")}function FinalRound(A,B){byteSub(A,"encrypt");shiftRow(A,"encrypt");addRoundKey(A,B)}function InverseFinalRound(A,B){addRoundKey(A,B);shiftRow(A,"decrypt");byteSub(A,"decrypt")}function encrypt(C,A){var B;if(!C||C.length*8!=blockSizeInBits){return}if(!A){return}C=packBytes(C);addRoundKey(C,A);for(B=1;B<Nr;B++){Round(C,A.slice(Nb*B,Nb*(B+1)))}FinalRound(C,A.slice(Nb*Nr));return unpackBytes(C)}function decrypt(C,A){var B;if(!C||C.length*8!=blockSizeInBits){return}if(!A){return}C=packBytes(C);InverseFinalRound(C,A.slice(Nb*Nr));for(B=Nr-1;B>0;B--){InverseRound(C,A.slice(Nb*B,Nb*(B+1)))}addRoundKey(C,A);return unpackBytes(C)}function byteArrayToHex(B){var A="";if(!B){return}for(var C=0;C<B.length;C++){A+=((B[C]<16)?"0":"")+B[C].toString(16)}return A}function hexToByteArray(B){var A=[];if(B.length%2){return}if(B.indexOf("0x")==0||B.indexOf("0X")==0){B=B.substring(2)}for(var C=0;C<B.length;C+=2){A[Math.floor(C/2)]=parseInt(B.slice(C,C+2),16)}return A}function packBytes(B){var C=new Array();if(!B||B.length%4){return}C[0]=new Array();C[1]=new Array();C[2]=new Array();C[3]=new Array();for(var A=0;A<B.length;A+=4){C[0][A/4]=B[A];C[1][A/4]=B[A+1];C[2][A/4]=B[A+2];C[3][A/4]=B[A+3]}return C}function unpackBytes(B){var A=new Array();for(var C=0;C<B[0].length;C++){A[A.length]=B[0][C];A[A.length]=B[1][C];A[A.length]=B[2][C];A[A.length]=B[3][C]}return A}function formatPlaintext(B){var C=blockSizeInBits/8;var A;if((!((typeof B=="object")&&((typeof(B[0]))=="number")))&&((typeof B=="string")||B.indexOf)){B=B.split("");for(A=0;A<B.length;A++){B[A]=B[A].charCodeAt(0)&255}}A=B.length%C;if(A>0){B=B.concat(getRandomBytes(C-A))}return B}function getRandomBytes(C){var B,A=new Array();for(B=0;B<C;B++){A[B]=prng.nextInt(255)}return A}function rijndaelEncrypt(B,L,J){var C,E,M;var A=blockSizeInBits/8;var K;if(!B||!L){return}if(L.length*8!=keySizeInBits){return}if(J=="CBC"){K=getRandomBytes(A)}else{J="ECB";K=new Array()}B=formatPlaintext(B);C=keyExpansion(L);for(var D=0;D<B.length/A;D++){M=B.slice(D*A,(D+1)*A);if(J=="CBC"){for(var E=0;E<A;E++){M[E]^=K[(D*A)+E]}}K=K.concat(encrypt(M,C))}return K}function rijndaelDecrypt(C,K,J){var B;var A=blockSizeInBits/8;var M=new Array();var L;var D;if(!C||!K||typeof C=="string"){return}if(K.length*8!=keySizeInBits){return}if(!J){J="ECB"}B=keyExpansion(K);for(D=(C.length/A)-1;D>0;D--){L=decrypt(C.slice(D*A,(D+1)*A),B);if(J=="CBC"){for(var E=0;E<A;E++){M[(D-1)*A+E]=L[E]^C[(D-1)*A+E]}}else{M=L.concat(M)}}if(J=="ECB"){M=decrypt(C.slice(0,A),B).concat(M)}return M};
