javascript: var getKeys=function(a){var b=[],d;for(d in a)b.push(d);return b},nKeys=function(a){var b=0,d;for(d in a)b++;return b},splitArrayToSubArrays=function(a,b){for(var d=[],i=0;i>>32-b},addUnsigned=function(a,b){var d,i,f,j,c;f=a&2147483648;j=b&2147483648;d=a&1073741824;i=b&1073741824;c=(a&1073741823)+(b&1073741823);if(d&i)return c^2147483648^f^j;return d|i?c&1073741824?c^3221225472^f^j:c^1073741824^f^j:c^f^j},F=function(a,b,d){return a&b|~a&d},G=function(a,b,d){return a&d|b&~d},H=function(a,b,d){return a^b^d},I=function(a,b,d){return b^(a|~d)},FF=function(a, b,d,i,f,j,c){a=addUnsigned(a,addUnsigned(addUnsigned(F(b,d,i),f),c));return addUnsigned(rotateLeft(a,j),b)},GG=function(a,b,d,i,f,j,c){a=addUnsigned(a,addUnsigned(addUnsigned(G(b,d,i),f),c));return addUnsigned(rotateLeft(a,j),b)},HH=function(a,b,d,i,f,j,c){a=addUnsigned(a,addUnsigned(addUnsigned(H(b,d,i),f),c));return addUnsigned(rotateLeft(a,j),b)},II=function(a,b,d,i,f,j,c){a=addUnsigned(a,addUnsigned(addUnsigned(I(b,d,i),f),c));return addUnsigned(rotateLeft(a,j),b)},convertToWordArray=function(a){var b, d=a.length;b=d+8;for(var i=((b-mod(b,64))/64+1)*16,f=Array(i-1),j=0,c=0;c>>29;return f},wordToHex=function(a){var b="",d="",i;for(i=0;i<=3;i++){d=a>>>i*8&255;d="0"+d.toString(16);b+=d.substr(d.length-2,2)}return b},uTF8Encode=function(a){a=a.replace(/\x0d\x0a/g,"\n");for(var b="",d=0;d127&& i<2048)b+=String.fromCharCode(i>>6|192);else{b+=String.fromCharCode(i>>12|224);b+=String.fromCharCode(i>>6&63|128)}b+=String.fromCharCode(i&63|128)}}return b},md5=function(a){var b=[],d,i,f,j,c,g,e,h;a=uTF8Encode(a);b=convertToWordArray(a);c=1732584193;g=4023233417;e=2562383102;h=271733878;for(a=0;a