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 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 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 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++){update(E[C])}for(C=0;C<8;C++){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 hexa(D){var C="0123456789abcdef";var A="";var B=D;for(hexa_i=0;hexa_i<8;hexa_i++){A=C.charAt(Math.abs(B)%16)+A;B=Math.floor(B/16)}return A}var ascii="01234567890123456789012345678901 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";function MD5(L){var A,J,B,K,E,D,C;init();for(B=0;B<L.length;B++){A=L.charAt(B);update(ascii.lastIndexOf(A))}finish();K=E=D=C=0;for(i=0;i<4;i++){K+=shl(digestBits[15-i],(i*8))}for(i=4;i<8;i++){E+=shl(digestBits[15-i],((i-4)*8))}for(i=8;i<12;i++){D+=shl(digestBits[15-i],((i-8)*8))}for(i=12;i<16;i++){C+=shl(digestBits[15-i],((i-12)*8))}J=hexa(C)+hexa(D)+hexa(E)+hexa(K);return J};
