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

Signing you up...

Thank you for signing up!

PHP Decode

<?php /* Copyright (c) Nicsoft LLC */ eval( '?>' . base64_decode('PD9waHANCg0Kc2Vzc2lvbl9z..

Decoded Output download

?>b'<?php

session_start ();
include \'../inc/auth_header.php\';

include_once \'../config.php\';
include_once \'../classes/Database.php\';


$jobname = isset ( $_POST [\'jobname\'] ) ? $_POST [\'jobname\'] : \'\';
$jobname = isset ( $_GET [\'jobname\'] ) ? $_GET [\'jobname\'] : \'\';


$mobileversion = isset ( $_POST [\'mobileversion\'] ) ? $_POST [\'mobileversion\'] : \'\';
$mobileversion = isset ( $_GET [\'mobileversion\'] ) ? $_GET [\'mobileversion\'] : \'\';

if ($jobname == \'\')
	die ( \'ERROR|No Job Name To Save.\' );
	








if($_SESSION [\'fb_user_privilege\'] == 9)
{
	$sql = "SELECT COUNT(id) AS ct FROM fb_jobs WHERE job_name = ?;";
	$params = array((string)$jobname);
	$row = Database::pdo_procedure_params($sql, $params);
	$user_count = $row[1][0][\'ct\'];

} else {

	$sql = "SELECT COUNT(id) AS ct FROM fb_jobs WHERE job_name = ? AND user_id = ?;";
	$params = array((string)$jobname, (int)$_SESSION[\'fb_user_id\']);
	$row = Database::pdo_procedure_params($sql, $params);
	$user_count = $row[1][0][\'ct\'];

}


if($user_count == 0)
	die(\'ERROR|You Do Not Have Access To This Job.\');

	

if (! file_exists ( "../../output/forms/" . $jobname ))
	die ( \'ERROR|Job Does Not Exist In The File System.\' );
	

$zipname = "../../output/forms/" . strtolower ( $jobname ) . \'.zip\';


if(isset($mobileversion) && $mobileversion == "1") {

	$zip = new ZipArchive ( );
	if (! $zip->open ( $zipname, ZIPARCHIVE::CREATE )) {
		return false;
	}
	
	addFolderToZip ("../../output/forms/" . $jobname . \'/\', $zip, "standard/" );
	addFolderToZip ("../../output/forms/" . $jobname . \'-mobile/\', $zip, "mobile/" );
	
	$pass = $zip->close();
	
} else {
	
	
	
	
	
	ExtendedZip::zipTree("../../output/forms/" . $jobname . \'/\', $zipname, ZipArchive::CREATE); $pass = true;
	
}


if(!$pass){
	echo \'Export Error: Unfortunately the export function failed to create a zip file, this probably happened because your server doesn\'t have the <a target="_blank" href="http://www.php.net/manual/en/zip.installation.php">PHP Zip</a> extension installed.\';	
} else {
	
	
	header ( "Pragma: public" );
	header ( "Expires: 0" );
	header ( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
	header ( "Cache-Control: private", false ); 

	header ( "Content-disposition: attachment; filename=\"" . strtolower ( $jobname ) . ".zip\"" );
	
	echo file_get_contents ( $zipname );
	
	
	unlink ( $zipname );

}





function addFolderToZip($dir, $zipArchive, $zipdir = \'\'){
	if (is_dir($dir)) {
		if ($dh = opendir($dir)) {

			
			if(!empty($zipdir)) $zipArchive->addEmptyDir($zipdir);

			
			while (($file = readdir($dh)) !== false) {

				
				if(!is_file($dir . $file)){
					
					if( ($file !== ".") && ($file !== "..")){
						addFolderToZip($dir . $file . "/", $zipArchive, $zipdir . $file . "/");
					}

				}else{
					
					$zipArchive->addFile($dir . $file, $zipdir . $file);

				}
			}
		}
	}
}









class ExtendedZip extends ZipArchive {

	
	public function addTree($dirname, $localname = \'\') {
		if ($localname)
			$this->addEmptyDir($localname);
		$this->_addTree($dirname, $localname);
	}

	
	protected function _addTree($dirname, $localname) {
		$dir = opendir($dirname);
		while ($filename = readdir($dir)) {
			
			if ($filename == \'.\' || $filename == \'..\')
				continue;

			
			$path = $dirname . \'/\' . $filename;
			$localpath = $localname ? ($localname . \'/\' . $filename) : $filename;
			if (is_dir($path)) {
				
				$this->addEmptyDir($localpath);
				$this->_addTree($path, $localpath);
			}
			else if (is_file($path)) {
				
				$this->addFile($path, $localpath);
			}
		}
		closedir($dir);
	}

	
	public static function zipTree($dirname, $zipFilename, $flags = 0, $localname = \'\') {
		$zip = new self();
		$zip->open($zipFilename, $flags);
		$zip->addTree($dirname, $localname);
		$zip->close();
	}
}





function Zip_2($source, $destination)
{
	if (!extension_loaded(\'zip\') || !file_exists($source)) {
		return false;
	}

	$zip = new ZipArchive();
	if (!$zip->open($destination, ZIPARCHIVE::CREATE)) {
		return false;
	}

	if (strtoupper(substr(PHP_OS, 0, 3)) === \'WIN\') {
		DEFINE(\'DS\', DIRECTORY_SEPARATOR); 
	} else {
		DEFINE(\'DS\', \'/\'); 
	}


	$source = str_replace(\'\\', DS, realpath($source));

	if (is_dir($source) === true)
	{
		$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
		echo $source;
		foreach ($files as $file)
		{
			$file = str_replace(\'\\',DS, $file);
			
			if( in_array(substr($file, strrpos($file, DS)+1), array(\'.\', \'..\')) )
				continue;

			$file = realpath($file);

			if (is_dir($file) === true)
			{
				$zip->addEmptyDir(str_replace($source . DS, \'\', $file . DS));
			}
			else if (is_file($file) === true)
			{
				$zip->addFromString(str_replace($source . DS, \'\', $file), file_get_contents($file));
			}
			echo $source;
		}
	}
	else if (is_file($source) === true)
	{
		$zip->addFromString(basename($source), file_get_contents($source));
	}

	return $zip->close();
}



function Zip_1($source, $destination) {
	
	if (! extension_loaded ( \'zip\' ) || ! file_exists ( $source )) {
		return false;
	}
	
	$zip = new ZipArchive ( );
	if (! $zip->open ( $destination, ZIPARCHIVE::CREATE )) {
		return false;
	}
	
	$source = str_replace ( \'\\', \'/\', realpath ( $source ) );
	
	if (is_dir ( $source ) === true) {
		$files = new RecursiveIteratorIterator ( new RecursiveDirectoryIterator ( $source ), RecursiveIteratorIterator::SELF_FIRST );
		
		foreach ( $files as $file ) {
			$file = str_replace ( \'\\', \'/\', $file );
			
			
			if (in_array ( substr ( $file, strrpos ( $file, \'/\' ) + 1 ), array (\'.\', \'..\' ) ))
				continue;
			
			
			
			
			if (is_dir ( $file ) === true) {
				$zip->addEmptyDir ( str_replace ( $source . \'/\', \'\', $file . \'/\' ) );
			} else if (is_file ( $file ) === true) {
				$zip->addFromString ( str_replace ( $source . \'/\', \'\', $file ), file_get_contents ( $file ) );
			}
		}
	} else if (is_file ( $source ) === true) {
		$zip->addFromString ( basename ( $source ), file_get_contents ( $source ) );
	}
	
	return $zip->close ();
	
}

?>'

Did this file decode correctly?

Original Code

<?php /* Copyright (c) Nicsoft LLC */ eval( '?>' . base64_decode('PD9waHANCg0Kc2Vzc2lvbl9zdGFydCAoKTsNCmluY2x1ZGUgJy4uL2luYy9hdXRoX2hlYWRlci5waHAnOw0KDQppbmNsdWRlX29uY2UgJy4uL2NvbmZpZy5waHAnOw0KaW5jbHVkZV9vbmNlICcuLi9jbGFzc2VzL0RhdGFiYXNlLnBocCc7DQoNCg0KJGpvYm5hbWUgPSBpc3NldCAoICRfUE9TVCBbJ2pvYm5hbWUnXSApID8gJF9QT1NUIFsnam9ibmFtZSddIDogJyc7DQokam9ibmFtZSA9IGlzc2V0ICggJF9HRVQgWydqb2JuYW1lJ10gKSA/ICRfR0VUIFsnam9ibmFtZSddIDogJyc7DQoNCg0KJG1vYmlsZXZlcnNpb24gPSBpc3NldCAoICRfUE9TVCBbJ21vYmlsZXZlcnNpb24nXSApID8gJF9QT1NUIFsnbW9iaWxldmVyc2lvbiddIDogJyc7DQokbW9iaWxldmVyc2lvbiA9IGlzc2V0ICggJF9HRVQgWydtb2JpbGV2ZXJzaW9uJ10gKSA/ICRfR0VUIFsnbW9iaWxldmVyc2lvbiddIDogJyc7DQoNCmlmICgkam9ibmFtZSA9PSAnJykNCglkaWUgKCAnRVJST1J8Tm8gSm9iIE5hbWUgVG8gU2F2ZS4nICk7DQoJDQoNCg0KDQoNCg0KDQoNCg0KaWYoJF9TRVNTSU9OIFsnZmJfdXNlcl9wcml2aWxlZ2UnXSA9PSA5KQ0Kew0KCSRzcWwgPSAiU0VMRUNUIENPVU5UKGlkKSBBUyBjdCBGUk9NIGZiX2pvYnMgV0hFUkUgam9iX25hbWUgPSA/OyI7DQoJJHBhcmFtcyA9IGFycmF5KChzdHJpbmcpJGpvYm5hbWUpOw0KCSRyb3cgPSBEYXRhYmFzZTo6cGRvX3Byb2NlZHVyZV9wYXJhbXMoJHNxbCwgJHBhcmFtcyk7DQoJJHVzZXJfY291bnQgPSAkcm93WzFdWzBdWydjdCddOw0KDQp9IGVsc2Ugew0KDQoJJHNxbCA9ICJTRUxFQ1QgQ09VTlQoaWQpIEFTIGN0IEZST00gZmJfam9icyBXSEVSRSBqb2JfbmFtZSA9ID8gQU5EIHVzZXJfaWQgPSA/OyI7DQoJJHBhcmFtcyA9IGFycmF5KChzdHJpbmcpJGpvYm5hbWUsIChpbnQpJF9TRVNTSU9OWydmYl91c2VyX2lkJ10pOw0KCSRyb3cgPSBEYXRhYmFzZTo6cGRvX3Byb2NlZHVyZV9wYXJhbXMoJHNxbCwgJHBhcmFtcyk7DQoJJHVzZXJfY291bnQgPSAkcm93WzFdWzBdWydjdCddOw0KDQp9DQoNCg0KaWYoJHVzZXJfY291bnQgPT0gMCkNCglkaWUoJ0VSUk9SfFlvdSBEbyBOb3QgSGF2ZSBBY2Nlc3MgVG8gVGhpcyBKb2IuJyk7DQoNCgkNCg0KaWYgKCEgZmlsZV9leGlzdHMgKCAiLi4vLi4vb3V0cHV0L2Zvcm1zLyIgLiAkam9ibmFtZSApKQ0KCWRpZSAoICdFUlJPUnxKb2IgRG9lcyBOb3QgRXhpc3QgSW4gVGhlIEZpbGUgU3lzdGVtLicgKTsNCgkNCg0KJHppcG5hbWUgPSAiLi4vLi4vb3V0cHV0L2Zvcm1zLyIgLiBzdHJ0b2xvd2VyICggJGpvYm5hbWUgKSAuICcuemlwJzsNCg0KDQppZihpc3NldCgkbW9iaWxldmVyc2lvbikgJiYgJG1vYmlsZXZlcnNpb24gPT0gIjEiKSB7DQoNCgkkemlwID0gbmV3IFppcEFyY2hpdmUgKCApOw0KCWlmICghICR6aXAtPm9wZW4gKCAkemlwbmFtZSwgWklQQVJDSElWRTo6Q1JFQVRFICkpIHsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCgkNCglhZGRGb2xkZXJUb1ppcCAoIi4uLy4uL291dHB1dC9mb3Jtcy8iIC4gJGpvYm5hbWUgLiAnLycsICR6aXAsICJzdGFuZGFyZC8iICk7DQoJYWRkRm9sZGVyVG9aaXAgKCIuLi8uLi9vdXRwdXQvZm9ybXMvIiAuICRqb2JuYW1lIC4gJy1tb2JpbGUvJywgJHppcCwgIm1vYmlsZS8iICk7DQoJDQoJJHBhc3MgPSAkemlwLT5jbG9zZSgpOw0KCQ0KfSBlbHNlIHsNCgkNCgkNCgkNCgkNCgkNCglFeHRlbmRlZFppcDo6emlwVHJlZSgiLi4vLi4vb3V0cHV0L2Zvcm1zLyIgLiAkam9ibmFtZSAuICcvJywgJHppcG5hbWUsIFppcEFyY2hpdmU6OkNSRUFURSk7ICRwYXNzID0gdHJ1ZTsNCgkNCn0NCg0KDQppZighJHBhc3Mpew0KCWVjaG8gJ0V4cG9ydCBFcnJvcjogVW5mb3J0dW5hdGVseSB0aGUgZXhwb3J0IGZ1bmN0aW9uIGZhaWxlZCB0byBjcmVhdGUgYSB6aXAgZmlsZSwgdGhpcyBwcm9iYWJseSBoYXBwZW5lZCBiZWNhdXNlIHlvdXIgc2VydmVyIGRvZXNuXCd0IGhhdmUgdGhlIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL3ppcC5pbnN0YWxsYXRpb24ucGhwIj5QSFAgWmlwPC9hPiBleHRlbnNpb24gaW5zdGFsbGVkLic7CQ0KfSBlbHNlIHsNCgkNCgkNCgloZWFkZXIgKCAiUHJhZ21hOiBwdWJsaWMiICk7DQoJaGVhZGVyICggIkV4cGlyZXM6IDAiICk7DQoJaGVhZGVyICggIkNhY2hlLUNvbnRyb2w6IG11c3QtcmV2YWxpZGF0ZSwgcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCIgKTsNCgloZWFkZXIgKCAiQ2FjaGUtQ29udHJvbDogcHJpdmF0ZSIsIGZhbHNlICk7IA0KDQoJaGVhZGVyICggIkNvbnRlbnQtZGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiIiAuIHN0cnRvbG93ZXIgKCAkam9ibmFtZSApIC4gIi56aXBcIiIgKTsNCgkNCgllY2hvIGZpbGVfZ2V0X2NvbnRlbnRzICggJHppcG5hbWUgKTsNCgkNCgkNCgl1bmxpbmsgKCAkemlwbmFtZSApOw0KDQp9DQoNCg0KDQoNCg0KZnVuY3Rpb24gYWRkRm9sZGVyVG9aaXAoJGRpciwgJHppcEFyY2hpdmUsICR6aXBkaXIgPSAnJyl7DQoJaWYgKGlzX2RpcigkZGlyKSkgew0KCQlpZiAoJGRoID0gb3BlbmRpcigkZGlyKSkgew0KDQoJCQkNCgkJCWlmKCFlbXB0eSgkemlwZGlyKSkgJHppcEFyY2hpdmUtPmFkZEVtcHR5RGlyKCR6aXBkaXIpOw0KDQoJCQkNCgkJCXdoaWxlICgoJGZpbGUgPSByZWFkZGlyKCRkaCkpICE9PSBmYWxzZSkgew0KDQoJCQkJDQoJCQkJaWYoIWlzX2ZpbGUoJGRpciAuICRmaWxlKSl7DQoJCQkJCQ0KCQkJCQlpZiggKCRmaWxlICE9PSAiLiIpICYmICgkZmlsZSAhPT0gIi4uIikpew0KCQkJCQkJYWRkRm9sZGVyVG9aaXAoJGRpciAuICRmaWxlIC4gIi8iLCAkemlwQXJjaGl2ZSwgJHppcGRpciAuICRmaWxlIC4gIi8iKTsNCgkJCQkJfQ0KDQoJCQkJfWVsc2V7DQoJCQkJCQ0KCQkJCQkkemlwQXJjaGl2ZS0+YWRkRmlsZSgkZGlyIC4gJGZpbGUsICR6aXBkaXIgLiAkZmlsZSk7DQoNCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQp9DQoNCg0KDQoNCg0KDQoNCg0KDQpjbGFzcyBFeHRlbmRlZFppcCBleHRlbmRzIFppcEFyY2hpdmUgew0KDQoJDQoJcHVibGljIGZ1bmN0aW9uIGFkZFRyZWUoJGRpcm5hbWUsICRsb2NhbG5hbWUgPSAnJykgew0KCQlpZiAoJGxvY2FsbmFtZSkNCgkJCSR0aGlzLT5hZGRFbXB0eURpcigkbG9jYWxuYW1lKTsNCgkJJHRoaXMtPl9hZGRUcmVlKCRkaXJuYW1lLCAkbG9jYWxuYW1lKTsNCgl9DQoNCgkNCglwcm90ZWN0ZWQgZnVuY3Rpb24gX2FkZFRyZWUoJGRpcm5hbWUsICRsb2NhbG5hbWUpIHsNCgkJJGRpciA9IG9wZW5kaXIoJGRpcm5hbWUpOw0KCQl3aGlsZSAoJGZpbGVuYW1lID0gcmVhZGRpcigkZGlyKSkgew0KCQkJDQoJCQlpZiAoJGZpbGVuYW1lID09ICcuJyB8fCAkZmlsZW5hbWUgPT0gJy4uJykNCgkJCQljb250aW51ZTsNCg0KCQkJDQoJCQkkcGF0aCA9ICRkaXJuYW1lIC4gJy8nIC4gJGZpbGVuYW1lOw0KCQkJJGxvY2FscGF0aCA9ICRsb2NhbG5hbWUgPyAoJGxvY2FsbmFtZSAuICcvJyAuICRmaWxlbmFtZSkgOiAkZmlsZW5hbWU7DQoJCQlpZiAoaXNfZGlyKCRwYXRoKSkgew0KCQkJCQ0KCQkJCSR0aGlzLT5hZGRFbXB0eURpcigkbG9jYWxwYXRoKTsNCgkJCQkkdGhpcy0+X2FkZFRyZWUoJHBhdGgsICRsb2NhbHBhdGgpOw0KCQkJfQ0KCQkJZWxzZSBpZiAoaXNfZmlsZSgkcGF0aCkpIHsNCgkJCQkNCgkJCQkkdGhpcy0+YWRkRmlsZSgkcGF0aCwgJGxvY2FscGF0aCk7DQoJCQl9DQoJCX0NCgkJY2xvc2VkaXIoJGRpcik7DQoJfQ0KDQoJDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB6aXBUcmVlKCRkaXJuYW1lLCAkemlwRmlsZW5hbWUsICRmbGFncyA9IDAsICRsb2NhbG5hbWUgPSAnJykgew0KCQkkemlwID0gbmV3IHNlbGYoKTsNCgkJJHppcC0+b3BlbigkemlwRmlsZW5hbWUsICRmbGFncyk7DQoJCSR6aXAtPmFkZFRyZWUoJGRpcm5hbWUsICRsb2NhbG5hbWUpOw0KCQkkemlwLT5jbG9zZSgpOw0KCX0NCn0NCg0KDQoNCg0KDQpmdW5jdGlvbiBaaXBfMigkc291cmNlLCAkZGVzdGluYXRpb24pDQp7DQoJaWYgKCFleHRlbnNpb25fbG9hZGVkKCd6aXAnKSB8fCAhZmlsZV9leGlzdHMoJHNvdXJjZSkpIHsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCSR6aXAgPSBuZXcgWmlwQXJjaGl2ZSgpOw0KCWlmICghJHppcC0+b3BlbigkZGVzdGluYXRpb24sIFpJUEFSQ0hJVkU6OkNSRUFURSkpIHsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCWlmIChzdHJ0b3VwcGVyKHN1YnN0cihQSFBfT1MsIDAsIDMpKSA9PT0gJ1dJTicpIHsNCgkJREVGSU5FKCdEUycsIERJUkVDVE9SWV9TRVBBUkFUT1IpOyANCgl9IGVsc2Ugew0KCQlERUZJTkUoJ0RTJywgJy8nKTsgDQoJfQ0KDQoNCgkkc291cmNlID0gc3RyX3JlcGxhY2UoJ1xcJywgRFMsIHJlYWxwYXRoKCRzb3VyY2UpKTsNCg0KCWlmIChpc19kaXIoJHNvdXJjZSkgPT09IHRydWUpDQoJew0KCQkkZmlsZXMgPSBuZXcgUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcihuZXcgUmVjdXJzaXZlRGlyZWN0b3J5SXRlcmF0b3IoJHNvdXJjZSksIFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3I6OlNFTEZfRklSU1QpOw0KCQllY2hvICRzb3VyY2U7DQoJCWZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkNCgkJew0KCQkJJGZpbGUgPSBzdHJfcmVwbGFjZSgnXFwnLERTLCAkZmlsZSk7DQoJCQkNCgkJCWlmKCBpbl9hcnJheShzdWJzdHIoJGZpbGUsIHN0cnJwb3MoJGZpbGUsIERTKSsxKSwgYXJyYXkoJy4nLCAnLi4nKSkgKQ0KCQkJCWNvbnRpbnVlOw0KDQoJCQkkZmlsZSA9IHJlYWxwYXRoKCRmaWxlKTsNCg0KCQkJaWYgKGlzX2RpcigkZmlsZSkgPT09IHRydWUpDQoJCQl7DQoJCQkJJHppcC0+YWRkRW1wdHlEaXIoc3RyX3JlcGxhY2UoJHNvdXJjZSAuIERTLCAnJywgJGZpbGUgLiBEUykpOw0KCQkJfQ0KCQkJZWxzZSBpZiAoaXNfZmlsZSgkZmlsZSkgPT09IHRydWUpDQoJCQl7DQoJCQkJJHppcC0+YWRkRnJvbVN0cmluZyhzdHJfcmVwbGFjZSgkc291cmNlIC4gRFMsICcnLCAkZmlsZSksIGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKSk7DQoJCQl9DQoJCQllY2hvICRzb3VyY2U7DQoJCX0NCgl9DQoJZWxzZSBpZiAoaXNfZmlsZSgkc291cmNlKSA9PT0gdHJ1ZSkNCgl7DQoJCSR6aXAtPmFkZEZyb21TdHJpbmcoYmFzZW5hbWUoJHNvdXJjZSksIGZpbGVfZ2V0X2NvbnRlbnRzKCRzb3VyY2UpKTsNCgl9DQoNCglyZXR1cm4gJHppcC0+Y2xvc2UoKTsNCn0NCg0KDQoNCmZ1bmN0aW9uIFppcF8xKCRzb3VyY2UsICRkZXN0aW5hdGlvbikgew0KCQ0KCWlmICghIGV4dGVuc2lvbl9sb2FkZWQgKCAnemlwJyApIHx8ICEgZmlsZV9leGlzdHMgKCAkc291cmNlICkpIHsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCgkNCgkkemlwID0gbmV3IFppcEFyY2hpdmUgKCApOw0KCWlmICghICR6aXAtPm9wZW4gKCAkZGVzdGluYXRpb24sIFpJUEFSQ0hJVkU6OkNSRUFURSApKSB7DQoJCXJldHVybiBmYWxzZTsNCgl9DQoJDQoJJHNvdXJjZSA9IHN0cl9yZXBsYWNlICggJ1xcJywgJy8nLCByZWFscGF0aCAoICRzb3VyY2UgKSApOw0KCQ0KCWlmIChpc19kaXIgKCAkc291cmNlICkgPT09IHRydWUpIHsNCgkJJGZpbGVzID0gbmV3IFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IgKCBuZXcgUmVjdXJzaXZlRGlyZWN0b3J5SXRlcmF0b3IgKCAkc291cmNlICksIFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3I6OlNFTEZfRklSU1QgKTsNCgkJDQoJCWZvcmVhY2ggKCAkZmlsZXMgYXMgJGZpbGUgKSB7DQoJCQkkZmlsZSA9IHN0cl9yZXBsYWNlICggJ1xcJywgJy8nLCAkZmlsZSApOw0KCQkJDQoJCQkNCgkJCWlmIChpbl9hcnJheSAoIHN1YnN0ciAoICRmaWxlLCBzdHJycG9zICggJGZpbGUsICcvJyApICsgMSApLCBhcnJheSAoJy4nLCAnLi4nICkgKSkNCgkJCQljb250aW51ZTsNCgkJCQ0KCQkJDQoJCQkNCgkJCQ0KCQkJaWYgKGlzX2RpciAoICRmaWxlICkgPT09IHRydWUpIHsNCgkJCQkkemlwLT5hZGRFbXB0eURpciAoIHN0cl9yZXBsYWNlICggJHNvdXJjZSAuICcvJywgJycsICRmaWxlIC4gJy8nICkgKTsNCgkJCX0gZWxzZSBpZiAoaXNfZmlsZSAoICRmaWxlICkgPT09IHRydWUpIHsNCgkJCQkkemlwLT5hZGRGcm9tU3RyaW5nICggc3RyX3JlcGxhY2UgKCAkc291cmNlIC4gJy8nLCAnJywgJGZpbGUgKSwgZmlsZV9nZXRfY29udGVudHMgKCAkZmlsZSApICk7DQoJCQl9DQoJCX0NCgl9IGVsc2UgaWYgKGlzX2ZpbGUgKCAkc291cmNlICkgPT09IHRydWUpIHsNCgkJJHppcC0+YWRkRnJvbVN0cmluZyAoIGJhc2VuYW1lICggJHNvdXJjZSApLCBmaWxlX2dldF9jb250ZW50cyAoICRzb3VyY2UgKSApOw0KCX0NCgkNCglyZXR1cm4gJHppcC0+Y2xvc2UgKCk7DQoJDQp9DQoNCj8+')); ?>

Function Calls

base64_decode 1

Variables

None

Stats

MD5 0f3b6340d17902ef5874c8cbb432e617
Eval Count 1
Decode Time 62 ms