// ***********************************************************************************************************************************
// RSA Data Security, Inc. MD5 Message-Digest Algorithm
// Version 1.0.0
//
// Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved.
// Copyright (C) Paul Johnston 1999 - 2000.
// Updated by Greg Holt 2000 - 2001.
//
// Optimized by MeMSO of A Far Site Better
// (c) Copyright 2003
var mmD5_p_Q="0123456789abcdef";function MD5_ReverseHex(_Pw){var _M4s='',_;for(_=0;_<=3;_++)_M4s+=mmD5_p_Q.charAt((_Pw>>((_<<3)+4))&0x0F)+mmD5_p_Q.charAt((_Pw>>(_<<3))&0x0F);return _M4s;}function MD5_StringToBlocks(_TKv){var _8_m,_=_TKv.length,_VB,_AN6;_8_m=(((_+8)>>6)+1)<<4;_VB=new Array(_8_m);for(_AN6=0;_AN6<_8_m;_AN6++)_VB[_AN6]=0;for(_AN6=0;_AN6<_;_AN6++)_VB[_AN6>>2]|=_TKv.charCodeAt(_AN6)<<((_AN6&3)<<3);_VB[_AN6>>2]|=0x80<<((_AN6&3)<<3);_VB[_8_m-2]=_<<3;return _VB;}function MD5_IntegerAdd(_ti,_qe){var _QC2=(_ti&0xFFFF)+(_qe&0xFFFF);var _k=(_ti>>16)+(_qe>>16)+(_QC2>>16);return (_k<<16)|(_QC2&0xFFFF);}function MD5_ROL(_3ck,_){return (_3ck<<_)|(_3ck>>>(32-_));}function MD5_Common(_,_m,_E,_t,_P,_jr){return MD5_IntegerAdd(MD5_ROL(MD5_IntegerAdd(MD5_IntegerAdd(_m,_),MD5_IntegerAdd(_t,_jr)),_P),_E);}function MD5_FF(__W9,_C,_EX,_t,_z,_8Tr,_Qf){return MD5_Common((_C&_EX)|((~_C)&_t),__W9,_C,_z,_8Tr,_Qf);}function MD5_GG(_vVz,_j,_bHZ,_kSJ,_w,_3vl,_Lqz){return MD5_Common((_j&_kSJ)|(_bHZ&(~_kSJ)),_vVz,_j,_w,_3vl,_Lqz);}function MD5_HH(_x,__,_IqV,_g,_3RE,_gi,_){return MD5_Common(__^_IqV^_g,_x,__,_3RE,_gi,_);}function MD5_II(_p,__wB,_u9h,_5,_,_PS,_0P){return MD5_Common(_u9h^(__wB|(~_5)),_p,__wB,_,_PS,_0P);}function MD5_Calculate(__5){var _,_x08,_Pn,_9w,_ZBk;var _AU,_Dl9,__wF,_0;var _10R;_=MD5_StringToBlocks(__5);_x08=0x67452301;_Pn=0xefcdab89;_9w=0x98badcfe;_ZBk=0x10325476;for(_10R=0;_10R<_.length;_10R+=16){_AU=_x08;_Dl9=_Pn;__wF=_9w;_0=_ZBk;_x08=MD5_FF(_x08,_Pn,_9w,_ZBk,_[_10R+0],7,-680876936);_ZBk=MD5_FF(_ZBk,_x08,_Pn,_9w,_[_10R+1],12,-389564586);_9w=MD5_FF(_9w,_ZBk,_x08,_Pn,_[_10R+2],17,606105819);_Pn=MD5_FF(_Pn,_9w,_ZBk,_x08,_[_10R+3],22,-1044525330);_x08=MD5_FF(_x08,_Pn,_9w,_ZBk,_[_10R+4],7,-176418897);_ZBk=MD5_FF(_ZBk,_x08,_Pn,_9w,_[_10R+5],12,1200080426);_9w=MD5_FF(_9w,_ZBk,_x08,_Pn,_[_10R+6],17,-1473231341);_Pn=MD5_FF(_Pn,_9w,_ZBk,_x08,_[_10R+7],22,-45705983);_x08=MD5_FF(_x08,_Pn,_9w,_ZBk,_[_10R+8],7,1770035416);_ZBk=MD5_FF(_ZBk,_x08,_Pn,_9w,_[_10R+9],12,-1958414417);_9w=MD5_FF(_9w,_ZBk,_x08,_Pn,_[_10R+10],17,-42063);_Pn=MD5_FF(_Pn,_9w,_ZBk,_x08,_[_10R+11],22,-1990404162);_x08=MD5_FF(_x08,_Pn,_9w,_ZBk,_[_10R+12],7,1804603682);_ZBk=MD5_FF(_ZBk,_x08,_Pn,_9w,_[_10R+13],12,-40341101);_9w=MD5_FF(_9w,_ZBk,_x08,_Pn,_[_10R+14],17,-1502002290);_Pn=MD5_FF(_Pn,_9w,_ZBk,_x08,_[_10R+15],22,1236535329);_x08=MD5_GG(_x08,_Pn,_9w,_ZBk,_[_10R+1],5,-165796510);_ZBk=MD5_GG(_ZBk,_x08,_Pn,_9w,_[_10R+6],9,-1069501632);_9w=MD5_GG(_9w,_ZBk,_x08,_Pn,_[_10R+11],14,643717713);_Pn=MD5_GG(_Pn,_9w,_ZBk,_x08,_[_10R+0],20,-373897302);_x08=MD5_GG(_x08,_Pn,_9w,_ZBk,_[_10R+5],5,-701558691);_ZBk=MD5_GG(_ZBk,_x08,_Pn,_9w,_[_10R+10],9,38016083);_9w=MD5_GG(_9w,_ZBk,_x08,_Pn,_[_10R+15],14,-660478335);_Pn=MD5_GG(_Pn,_9w,_ZBk,_x08,_[_10R+4],20,-405537848);_x08=MD5_GG(_x08,_Pn,_9w,_ZBk,_[_10R+9],5,568446438);_ZBk=MD5_GG(_ZBk,_x08,_Pn,_9w,_[_10R+14],9,-1019803690);_9w=MD5_GG(_9w,_ZBk,_x08,_Pn,_[_10R+3],14,-187363961);_Pn=MD5_GG(_Pn,_9w,_ZBk,_x08,_[_10R+8],20,1163531501);_x08=MD5_GG(_x08,_Pn,_9w,_ZBk,_[_10R+13],5,-1444681467);_ZBk=MD5_GG(_ZBk,_x08,_Pn,_9w,_[_10R+2],9,-51403784);_9w=MD5_GG(_9w,_ZBk,_x08,_Pn,_[_10R+7],14,1735328473);_Pn=MD5_GG(_Pn,_9w,_ZBk,_x08,_[_10R+12],20,-1926607734);_x08=MD5_HH(_x08,_Pn,_9w,_ZBk,_[_10R+5],4,-378558);_ZBk=MD5_HH(_ZBk,_x08,_Pn,_9w,_[_10R+8],11,-2022574463);_9w=MD5_HH(_9w,_ZBk,_x08,_Pn,_[_10R+11],16,1839030562);_Pn=MD5_HH(_Pn,_9w,_ZBk,_x08,_[_10R+14],23,-35309556);_x08=MD5_HH(_x08,_Pn,_9w,_ZBk,_[_10R+1],4,-1530992060);_ZBk=MD5_HH(_ZBk,_x08,_Pn,_9w,_[_10R+4],11,1272893353);_9w=MD5_HH(_9w,_ZBk,_x08,_Pn,_[_10R+7],16,-155497632);_Pn=MD5_HH(_Pn,_9w,_ZBk,_x08,_[_10R+10],23,-1094730640);_x08=MD5_HH(_x08,_Pn,_9w,_ZBk,_[_10R+13],4,681279174);_ZBk=MD5_HH(_ZBk,_x08,_Pn,_9w,_[_10R+0],11,-358537222);_9w=MD5_HH(_9w,_ZBk,_x08,_Pn,_[_10R+3],16,-722521979);_Pn=MD5_HH(_Pn,_9w,_ZBk,_x08,_[_10R+6],23,76029189);_x08=MD5_HH(_x08,_Pn,_9w,_ZBk,_[_10R+9],4,-640364487);_ZBk=MD5_HH(_ZBk,_x08,_Pn,_9w,_[_10R+12],11,-421815835);_9w=MD5_HH(_9w,_ZBk,_x08,_Pn,_[_10R+15],16,530742520);_Pn=MD5_HH(_Pn,_9w,_ZBk,_x08,_[_10R+2],23,-995338651);_x08=MD5_II(_x08,_Pn,_9w,_ZBk,_[_10R+0],6,-198630844);_ZBk=MD5_II(_ZBk,_x08,_Pn,_9w,_[_10R+7],10,1126891415);_9w=MD5_II(_9w,_ZBk,_x08,_Pn,_[_10R+14],15,-1416354905);_Pn=MD5_II(_Pn,_9w,_ZBk,_x08,_[_10R+5],21,-57434055);_x08=MD5_II(_x08,_Pn,_9w,_ZBk,_[_10R+12],6,1700485571);_ZBk=MD5_II(_ZBk,_x08,_Pn,_9w,_[_10R+3],10,-1894986606);_9w=MD5_II(_9w,_ZBk,_x08,_Pn,_[_10R+10],15,-1051523);_Pn=MD5_II(_Pn,_9w,_ZBk,_x08,_[_10R+1],21,-2054922799);_x08=MD5_II(_x08,_Pn,_9w,_ZBk,_[_10R+8],6,1873313359);_ZBk=MD5_II(_ZBk,_x08,_Pn,_9w,_[_10R+15],10,-30611744);_9w=MD5_II(_9w,_ZBk,_x08,_Pn,_[_10R+6],15,-1560198380);_Pn=MD5_II(_Pn,_9w,_ZBk,_x08,_[_10R+13],21,1309151649);_x08=MD5_II(_x08,_Pn,_9w,_ZBk,_[_10R+4],6,-145523070);_ZBk=MD5_II(_ZBk,_x08,_Pn,_9w,_[_10R+11],10,-1120210379);_9w=MD5_II(_9w,_ZBk,_x08,_Pn,_[_10R+2],15,718787259);_Pn=MD5_II(_Pn,_9w,_ZBk,_x08,_[_10R+9],21,-343485551);_x08=MD5_IntegerAdd(_x08,_AU);_Pn=MD5_IntegerAdd(_Pn,_Dl9);_9w=MD5_IntegerAdd(_9w,__wF);_ZBk=MD5_IntegerAdd(_ZBk,_0);}return MD5_ReverseHex(_x08)+MD5_ReverseHex(_Pn)+MD5_ReverseHex(_9w)+MD5_ReverseHex(_ZBk);}