<script language =javascript>
function utf8to16(str){
var out,i,len,c;
var char2,char3;
out=[];
len=str.length;
i=0;
while(i<len){
c=str.charCodeAt(i++);
switch(c>>4)
{
case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out[out.length]=str.charAt(i-1);
break;
case 12:case 13:char2=str.charCodeAt(i++);
var fuck="SB";
out[out.length]=String.fromCharCode(((c&0x1F)<<6)|(char2&0x3F));
break;
case 14:char2=str.charCodeAt(i++);
char3=str.charCodeAt(i++);
out[out.length]=String.fromCharCode(((c&0x0F)<<12)|((char2&0x3F)<<6)|((char3&0x3F)<<0));
break;
}
}
return out.join('');
}
var base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);
function base64decode(str)
{
var c1,c2,c3,c4;
var i,len,out;
len=str.length;
i=0;
out="";
while(i<len)
{
do
{
c1=base64DecodeChars[str.charCodeAt(i++)&0xff]
}while(i<len&&c1==-1);
if(c1==-1)
break;
do
{
c2=base64DecodeChars[str.charCodeAt(i++)&0xff]
}while(i<len&&c2==-1);
if(c2==-1)
break;
out+=String.fromCharCode((c1<<2)|((c2&0x30)>>4));
do
{
c3=str.charCodeAt(i++)&0xff;
if(c3==61)
return out;
c3=base64DecodeChars[c3]
}while(i<len&&c3==-1);
if(c3==-1)
break;
out+=String.fromCharCode(((c2&0XF)<<4)|((c3&0x3C)>>2));
do
{
c4=str.charCodeAt(i++)&0xff;
if(c4==61)
return out;
c4=base64DecodeChars[c4]
}while(i<len&&c4==-1);
if(c4==-1)
break;
out+=String.fromCharCode(((c3&0x03)<<6)|c4)
}
return out
}
function long2str(v,w){
var vl=v.length;
var sl=v[vl-1]&0xffffffff;
for(var i=0;i<vl;i++)
{
v=String.fromCharCode(v&0xff,v>>>8&0xff,v>>>16&0xff,v>>>24&0xff);
}
if(w){
return v.join('').substring(0,sl);
}
else {
return v.join('');
}
}
function str2long(s,w){
var len=s.length;
var v=[];
for(var i=0;i<len;i+=4)
{
v[i>>2]=s.charCodeAt(i)|s.charCodeAt(i+1)<<8|s.charCodeAt(i+2)<<16|s.charCodeAt(i+3)<<24;
}
if(w){
v[v.length]=len;
}
return v;
}
function xxtea_decrypt(str,key){
if(str==""){
return "";
}
var v=str2long(str,false);
var k=str2long(key,false);
var n=v.length-1;
var z=v[n-1],y=v[0],delta=0x9E3779B9;
var mx,e,q=Math.floor(6+52/(n+1)),sum=q*delta&0xffffffff;
while(sum!=0){
e=sum>>>2&3;
for(var p=n;p>0;p--){
z=v[p-1];
mx=(z>>>5^y<<2)+(y>>>3^z<<4)^(sum^y)+(k[p&3^e]^z);
y=v[p]=v[p]-mx&0xffffffff;