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 /* */ $codelock_rfiled=dirname(__FILE__); if ($codelock_file == '') { echo "<font..

Decoded Output download

 $codelock_active_key="loveb2bbuilder"; @extract($_REQUEST); error_reporting(E_ALL ^ E_NOTICE); if ($codelock_act >= 1) { } else { @set_time_limit(240); } if ($codelock_enc == "") { $codelock_enc="codelock.php"; } else {} if ($codelock_act >= 1) { 		$codelock_testsize=@filesize($codelock_filed/$codelock_enc); 		if($codelock_testsize != $codelock_mastersize){ 		@chmod("$codelock_filed/$codelock_enc", 0777); 		if (@copy ("$codelock_rfiled/$codelock_enc","$codelock_filed/$codelock_enc")){}else{ 			$codelock_fp2 = @fopen("$codelock_filed/$codelock_enc", "wb"); 			if ($codelock_fp2) { } else { @unlink($codelock_filed/$codelock_enc); $codelock_fp2 = @fopen("$codelock_filed/$codelock_enc", "wb"); } 			if ($codelock_fp2) { 			@fwrite($codelock_fp2, $codelock_masterdata); 			@fclose($codelock_fp2); 			} 		} 		@chmod("$codelock_enc", 0777); } } else {} $codelock_encbrowser=""; $codelock_usezlib=""; $codelock_scname=""; $codelock_coname=""; $codelock_extranotes=""; if (!function_exists('gzdeflate') AND $codelock_usezlib=="^") { 	echo"<font face='verdana' size='2'><br><b>Error!</b> You need to install the ZLIB module for PHP to run this script!</font>"; 	die(); } else {}  if (function_exists('codelock_enc_int')) { } else { function codelock_enc_int($codelock_enc_int_code,$codelock_enc_key) { $codelock_encint_code=base64_encode($codelock_enc_int_code);  if ($codelock_enc_key == "") { } else { $codelock_enc_key=base64_encode($codelock_enc_key); $codelock_k1=substr($codelock_enc_key,0,1); $codelock_k2=substr($codelock_enc_key,1,1); $codelock_k3=substr($codelock_enc_key,2,1); $codelock_encint_code=str_replace("$codelock_k1", "$", $codelock_encint_code); $codelock_encint_code=str_replace("$codelock_k2", "(", $codelock_encint_code); $codelock_encint_code=str_replace("$codelock_k3", ")", $codelock_encint_code); } return $codelock_encint_code; } }  if (function_exists('codelock_dec_int')) { } else { function codelock_dec_int($codelock_decint_code,$codelock_calc_key) {  if ($codelock_calc_key == "") { } else { $codelock_calc_key=base64_encode($codelock_calc_key); $codelock_k1=substr($codelock_calc_key,0,1); $codelock_k2=substr($codelock_calc_key,1,1); $codelock_k3=substr($codelock_calc_key,2,1); $codelock_decint_code=str_replace("$", "$codelock_k1", $codelock_decint_code); $codelock_decint_code=str_replace("(", "$codelock_k2", $codelock_decint_code); $codelock_decint_code=str_replace(")", "$codelock_k3", $codelock_decint_code); } $codelock_decint_code=base64_decode($codelock_decint_code);  return $codelock_decint_code; } } if (function_exists('codelock_dec')) { } else { function codelock_dec($codelock_v){ switch($codelock_v){ case "A":$dv=0;break; case "B":$dv=1;break; case "C":$dv=2;break; case "D":$dv=3;break; case "E":$dv=4;break; case "F":$dv=5;break; case "G":$dv=6;break; case "H":$dv=7;break;	case "I":$dv=8;break; case "J":$dv=9;break; case "K":$dv=10;break; case "L":$dv=11;break; case "M":$dv=12;break; case "N":$dv=13;break; case "O":$dv=14;break; case "P":$dv=15;break; case "Q":$dv=16;break; case "R":$dv=17;break; case "S":$dv=18;break; case "T":$dv=19;break; case "U":$dv=20;break; case "V":$dv=21;break; case "W":$dv=22;break; case "X":$dv=23;break; case "Y":$dv=24;break; case "Z":$dv=25;break; case "a":$dv=26;break; case "b":$dv=27;break; case "c":$dv=28;break; case "d":$dv=29;break; case "e":$dv=30;break; case "f":$dv=31;break; case "g":$dv=32;break; case "h":$dv=33;break; case "i":$dv=34;break; case "j":$dv=35;break; case "k":$dv=36;break; case "l":$dv=37;break; case "m":$dv=38;break; case "n":$dv=39;break;	case "o":$dv=40;break; case "p":$dv=41;break; case "q":$dv=42;break; case "r":$dv=43;break; case "s":$dv=44;break; case "t":$dv=45;break; case "u":$dv=46;break; case "v":$dv=47;break; case "w":$dv=48;break; case "x":$dv=49;break; case "y":$dv=50;break; case "z":$dv=51;break; case "0":$dv=52;break; case "1":$dv=53;break; case "2":$dv=54;break; case "3":$dv=55;break;	case "4":$dv=56;break; case "5":$dv=57;break; case "6":$dv=58;break; case "7":$dv=59;break; case "8":$dv=60;break; case "9":$dv=61;break; case "+":$dv=62;break; case "/":$dv=63;break; case "=":$dv=64;break; default: $dv=0;break; } return $dv; } } if (function_exists('codelock_run')) { } else { function codelock_run($ciph,$key){ $m=0; $abc=""; for($i=0;$i<strlen($ciph);$i++){ $c=substr($ciph,$i,1); $dv=codelock_dec($c); $dv=($dv-$m)/4; $fb=decbin($dv); while(strlen($fb)<4){ $fb="0".$fb; } $abc=$abc.$fb; $m++; if($m>3){ $m=0; } } $kl=0; $pd=""; for($j=0;$j<strlen($abc);$j=$j+8){ $c=substr($abc,$j,8); $k=substr($key,$kl,1); $dc=bindec($c); $dc=$dc - strlen($key); $c=chr($dc); $kl++; if($kl>=strlen($key)){ $kl=0; } $dc=ord($c)^ord($k); $p=chr($dc); $pd=$pd.$p; } return $pd; } }  if (substr($codelock_active_key, 0, 15) != "codelock_active") { 	if ($codelock_enc == "") { $codelock_enc="codelock.php"; } else {} 		if($codelock_fixpath==""){ 			$codelock_located_file_temp=$codelock_filed."/".$codelock_enc; 		}else{ 			$codelock_located_file_temp=$codelock_fixpath."/".$codelock_enc; 		} 	$codelock_fp3 = @fopen("$codelock_located_file_temp", "rb"); 	$codelock_skip = fgets($codelock_fp3, 8192); 	$codelock_skip2 = fgets($codelock_fp3, 8192); 	$codelock_skip3 = fgets($codelock_fp3, 65536); 	$codelock_key_data = fread($codelock_fp3, filesize("$codelock_located_file_temp")); 	fclose ($codelock_fp3); 	if ($codelock_usezlib == "^") { 	$codelock_key_data=base64_decode($codelock_key_data); 	$codelock_key_data=gzinflate($codelock_key_data); 	} else {} 	$codelock_key_data=codelock_dec_int($codelock_key_data,$codelock_active_key); 	eval($codelock_key_data); 	if ($codelock_act >= 1) { 	} else { 	return; 	} } else {  	$codelock_askforkey="n"; 	if($codelock_askforkey == "y") { 	} else { 	$codelock_unlock="loveb2bbuilder"; 	$codelock_sub="y"; 	}  	 if ($codelock_enc == "") { $codelock_enc="codelock.php"; } else {} 		if($codelock_fixpath==""){ 		$codelock_openthisfile2=$codelock_filed."/".$codelock_enc; 		}else{ 		$codelock_openthisfile2=$codelock_fixpath."/".$codelock_enc; 		} 	 	if($codelock_sub == "y") { 		$codelock_fp = @fopen("$codelock_openthisfile2", "rb"); 		$codelock_skip = fgets($codelock_fp, 8192); 		$codelock_skip2 = fgets($codelock_fp, 8192); 		$codelock_skip3 = fgets($codelock_fp, 65536); 		$codelock_key_data = fread($codelock_fp, filesize("$codelock_openthisfile2")); 		fclose ($codelock_fp); 			if ($codelock_usezlib == "^") { 			$codelock_key_data=base64_decode($codelock_key_data); 			$codelock_key_data=gzinflate($codelock_key_data); 			} else {} 		$codelock_exec=codelock_run($codelock_key_data,$codelock_unlock); 		if (eregi("codelock_decrypted", $codelock_exec)) {  			if ($codelock_usezlib == "^") { 			$codelock_codeii=$codelock_lock; 			for ($codelock_ii=0; $codelock_ii < 11; $codelock_ii++) { 			$codelock_codeii=gzinflate(base64_decode($codelock_codeii)); 			$codelock_codeii=str_replace("eval(gzinf"."late(base64_de"."code('", "", $codelock_codeii); 			$codelock_codeii=str_replace("')));", "", $codelock_codeii); 			} 			$codelock_lock=$codelock_codeii; 			} else { 			$codelock_lock=base64_decode($codelock_lock); 			}  			$codelock_skip3=$codelock_lock; 			$codelock_skip3=str_replace("codelock_ac"."tive_key_text", $codelock_unlock, $codelock_skip3); 			$pres_codelock_skip3=$codelock_skip3; 	 			if ($codelock_usezlib == "^") { 			$codelock_codeii=$codelock_skip3; 			$codelock_codeii=gzdeflate($codelock_codeii); $codelock_codeii=base64_encode($codelock_codeii); 			for ($codelock_ii=0; $codelock_ii < 10; $codelock_ii++) { 			$codelock_codeii="eval(gzinflate(base64_decode('".$codelock_codeii."')));"; 			$codelock_codeii=gzdeflate($codelock_codeii); $codelock_codeii=base64_encode($codelock_codeii); 			} 			$codelock_skip3=$codelock_codeii; 			} else { 			$codelock_skip3=base64_encode($codelock_skip3); 			}  		$codelock_nskip3=$codelock_skip3; 		$codelock_nnskip3=""; 		if ($codelock_exp == "") { } else { $codelock_nnskip3.="$"."codelock_exp=\"$codelock_exp\"; "; }  			if ($codelock_usezlib == "^") { 			$codelock_nnnskip3="if ("."$"."codelock_file == '') { echo \"<font face='verdana' size='2'><br><b>Error!</b> You cannot run codelock directly...</font>\"; die(); } else {} ".$codelock_nnskip3."$"."codelock_lock=\"$codelock_nskip3\"; eval(gzinflate(base64_decode("."$"."codelock_lock))); return; ?".chr(62).chr(13).chr(10); 			} else { 			$codelock_nnnskip3="if ("."$"."codelock_file == '') { echo \"<font face='verdana' size='2'><br><b>Error!</b> You cannot run codelock directly...</font>\"; die(); } else {} ".$codelock_nnskip3."$"."codelock_lock=\"$codelock_nskip3\"; eval(base64_decode("."$"."codelock_lock)); return; ?".chr(62).chr(13).chr(10); 			} 		$codelock_exec2=codelock_enc_int($codelock_exec,$codelock_unlock);  		if ($codelock_usezlib == "^") { 			$codelock_exec2=gzdeflate($codelock_exec2); 			$codelock_exec2=base64_encode($codelock_exec2); 			} else {} 		$codelock_fdata=$codelock_skip.$codelock_skip2.'$codelock_rfiled=dirname(__FILE__); '.$codelock_nnnskip3.$codelock_exec2; 		$codelock_masterdata=$codelock_fdata; 		@chmod("$codelock_enc", 0777); 		$codelock_fp2 = @fopen("$codelock_enc", "wb"); 		if ($codelock_fp2) { } else { echo "<br><b>Error!</b> There is a write permission problem.  You need to CHMOD the file: <b>$codelock_enc</b> to 777."; die(); } 		@fwrite($codelock_fp2, $codelock_fdata); 		@fclose ($codelock_fp2); 		@chmod("$codelock_enc", 0777); 		$codelock_mastersize=@filesize($codelock_enc);         ob_start(); phpinfo(INFO_GENERAL); $codelock_op_string = ob_get_contents();         ob_end_clean(); if (strstr($codelock_op_string, "indows")) { $codelock_w_op="y"; } else {} 		if ($codelock_w_op == "y") { $codelock_sep_str=";"; } else { $codelock_sep_str=":"; } 		$include_curr_dir=$codelock_filed; 		$include_dir_write=ini_get('include_path'); $include_dir_write=$include_dir_write.$codelock_sep_str.$include_curr_dir; 		ini_set('include_path', $include_dir_write); 		eval($codelock_exec); 		} else {} 		} else {}  if ($codelock_act >= 1) { 	return; 	} else { 		echo"



























"; 		echo"<br><table width=\"600\" border=\"1\" cellspacing=\"10\" cellpadding=\"10\" bgcolor=\"#E1EAFF\" bordercolor=\"#006699\"><tr><td>"; 	if($codelock_frun == ""){ 	$codelock_openthisfile=$codelock_file; 	}else{ 	$codelock_openthisfile='http://'.$_SERVER['HTTP_HOST']."/".$codelock_frun."/".$codelock_file; 	} 		echo"<form method=\"post\" action=\"$codelock_openthisfile\"><div align=\"center\">"; 			if ($codelock_scname == "") { 			echo "<font face=\"arial\" color=\"#006699\" size=\"4\"><b></b></font><br><br>"; 			} else { 			echo "<font face=\"arial\" color=\"#006699\" size=\"4\"><b>$codelock_scname </b></font><br><br>"; 			} 		if ($codelock_sub == "y") { 		echo "<font face=\"arial\" color=\"#cc0000\" size=\"4\"><b> </b></font><font face=\"arial\" color=\"#006699\" size=\"2\"><b></b></font><br><br>"; 		} else {} 		echo"<font face=\"Arial\" size=\"2\"></font><br><input type=\"text\" name=\"codelock_unlock\" size=\"32\" maxlength=\"64\">"; 		echo"<input type=\"hidden\" name=\"codelock_sub\" value=\"y\">"; 		echo"<input type=\"hidden\" name=\"codelock_encbrowser\" value=\"$codelock_encbrowser\">"; 		echo"<input type=\"hidden\" name=\"codelock_enc\" value=\"$codelock_enc\">"; 		echo"<br><br><input type=\"submit\" name=\"Submit\" value=\"\">"; 		if ($codelock_coname == "") { } else {  		echo "<br><br><font face=\"arial\" color=\"#000000\" size=\"2\"> $codelock_coname</font>"; 		} 		if ($codelock_extranotes == "") {} else { 		echo "<br><font face=\"arial\" color=\"#000000\" size=\"2\"><b>Note: </b>$codelock_extranotes</font>"; 			} 		echo"</div></form></td></tr></table>"; 	} } return;

Did this file decode correctly?

Original Code

<?PHP
/*  */
$codelock_rfiled=dirname(__FILE__); if ($codelock_file == '') { echo "<font face='verdana' size='2'><br><b>Error!</b> You cannot run codelock directly...</font>"; die(); } else {} $codelock_lock="ICRjb2RlbG9ja19hY3RpdmVfa2V5PSJsb3ZlYjJiYnVpbGRlciI7IEBleHRyYWN0KCRfUkVRVUVTVCk7IGVycm9yX3JlcG9ydGluZyhFX0FMTCBeIEVfTk9USUNFKTsgaWYgKCRjb2RlbG9ja19hY3QgPj0gMSkgeyB9IGVsc2UgeyBAc2V0X3RpbWVfbGltaXQoMjQwKTsgfSBpZiAoJGNvZGVsb2NrX2VuYyA9PSAiIikgeyAkY29kZWxvY2tfZW5jPSJjb2RlbG9jay5waHAiOyB9IGVsc2Uge30gaWYgKCRjb2RlbG9ja19hY3QgPj0gMSkgeyAJCSRjb2RlbG9ja190ZXN0c2l6ZT1AZmlsZXNpemUoJGNvZGVsb2NrX2ZpbGVkLyRjb2RlbG9ja19lbmMpOyAJCWlmKCRjb2RlbG9ja190ZXN0c2l6ZSAhPSAkY29kZWxvY2tfbWFzdGVyc2l6ZSl7IAkJQGNobW9kKCIkY29kZWxvY2tfZmlsZWQvJGNvZGVsb2NrX2VuYyIsIDA3NzcpOyAJCWlmIChAY29weSAoIiRjb2RlbG9ja19yZmlsZWQvJGNvZGVsb2NrX2VuYyIsIiRjb2RlbG9ja19maWxlZC8kY29kZWxvY2tfZW5jIikpe31lbHNleyAJCQkkY29kZWxvY2tfZnAyID0gQGZvcGVuKCIkY29kZWxvY2tfZmlsZWQvJGNvZGVsb2NrX2VuYyIsICJ3YiIpOyAJCQlpZiAoJGNvZGVsb2NrX2ZwMikgeyB9IGVsc2UgeyBAdW5saW5rKCRjb2RlbG9ja19maWxlZC8kY29kZWxvY2tfZW5jKTsgJGNvZGVsb2NrX2ZwMiA9IEBmb3BlbigiJGNvZGVsb2NrX2ZpbGVkLyRjb2RlbG9ja19lbmMiLCAid2IiKTsgfSAJCQlpZiAoJGNvZGVsb2NrX2ZwMikgeyAJCQlAZndyaXRlKCRjb2RlbG9ja19mcDIsICRjb2RlbG9ja19tYXN0ZXJkYXRhKTsgCQkJQGZjbG9zZSgkY29kZWxvY2tfZnAyKTsgCQkJfSAJCX0gCQlAY2htb2QoIiRjb2RlbG9ja19lbmMiLCAwNzc3KTsgfSB9IGVsc2Uge30gJGNvZGVsb2NrX2VuY2Jyb3dzZXI9IiI7ICRjb2RlbG9ja191c2V6bGliPSIiOyAkY29kZWxvY2tfc2NuYW1lPSIiOyAkY29kZWxvY2tfY29uYW1lPSIiOyAkY29kZWxvY2tfZXh0cmFub3Rlcz0iIjsgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2d6ZGVmbGF0ZScpIEFORCAkY29kZWxvY2tfdXNlemxpYj09Il4iKSB7IAllY2hvIjxmb250IGZhY2U9J3ZlcmRhbmEnIHNpemU9JzInPjxicj48Yj5FcnJvciE8L2I+IFlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIFpMSUIgbW9kdWxlIGZvciBQSFAgdG8gcnVuIHRoaXMgc2NyaXB0ITwvZm9udD4iOyAJZGllKCk7IH0gZWxzZSB7fSAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnY29kZWxvY2tfZW5jX2ludCcpKSB7IH0gZWxzZSB7IGZ1bmN0aW9uIGNvZGVsb2NrX2VuY19pbnQoJGNvZGVsb2NrX2VuY19pbnRfY29kZSwkY29kZWxvY2tfZW5jX2tleSkgeyAkY29kZWxvY2tfZW5jaW50X2NvZGU9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfZW5jX2ludF9jb2RlKTsgIGlmICgkY29kZWxvY2tfZW5jX2tleSA9PSAiIikgeyB9IGVsc2UgeyAkY29kZWxvY2tfZW5jX2tleT1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19lbmNfa2V5KTsgJGNvZGVsb2NrX2sxPXN1YnN0cigkY29kZWxvY2tfZW5jX2tleSwwLDEpOyAkY29kZWxvY2tfazI9c3Vic3RyKCRjb2RlbG9ja19lbmNfa2V5LDEsMSk7ICRjb2RlbG9ja19rMz1zdWJzdHIoJGNvZGVsb2NrX2VuY19rZXksMiwxKTsgJGNvZGVsb2NrX2VuY2ludF9jb2RlPXN0cl9yZXBsYWNlKCIkY29kZWxvY2tfazEiLCAiJCIsICRjb2RlbG9ja19lbmNpbnRfY29kZSk7ICRjb2RlbG9ja19lbmNpbnRfY29kZT1zdHJfcmVwbGFjZSgiJGNvZGVsb2NrX2syIiwgIigiLCAkY29kZWxvY2tfZW5jaW50X2NvZGUpOyAkY29kZWxvY2tfZW5jaW50X2NvZGU9c3RyX3JlcGxhY2UoIiRjb2RlbG9ja19rMyIsICIpIiwgJGNvZGVsb2NrX2VuY2ludF9jb2RlKTsgfSByZXR1cm4gJGNvZGVsb2NrX2VuY2ludF9jb2RlOyB9IH0gIGlmIChmdW5jdGlvbl9leGlzdHMoJ2NvZGVsb2NrX2RlY19pbnQnKSkgeyB9IGVsc2UgeyBmdW5jdGlvbiBjb2RlbG9ja19kZWNfaW50KCRjb2RlbG9ja19kZWNpbnRfY29kZSwkY29kZWxvY2tfY2FsY19rZXkpIHsgIGlmICgkY29kZWxvY2tfY2FsY19rZXkgPT0gIiIpIHsgfSBlbHNlIHsgJGNvZGVsb2NrX2NhbGNfa2V5PWJhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX2NhbGNfa2V5KTsgJGNvZGVsb2NrX2sxPXN1YnN0cigkY29kZWxvY2tfY2FsY19rZXksMCwxKTsgJGNvZGVsb2NrX2syPXN1YnN0cigkY29kZWxvY2tfY2FsY19rZXksMSwxKTsgJGNvZGVsb2NrX2szPXN1YnN0cigkY29kZWxvY2tfY2FsY19rZXksMiwxKTsgJGNvZGVsb2NrX2RlY2ludF9jb2RlPXN0cl9yZXBsYWNlKCIkIiwgIiRjb2RlbG9ja19rMSIsICRjb2RlbG9ja19kZWNpbnRfY29kZSk7ICRjb2RlbG9ja19kZWNpbnRfY29kZT1zdHJfcmVwbGFjZSgiKCIsICIkY29kZWxvY2tfazIiLCAkY29kZWxvY2tfZGVjaW50X2NvZGUpOyAkY29kZWxvY2tfZGVjaW50X2NvZGU9c3RyX3JlcGxhY2UoIikiLCAiJGNvZGVsb2NrX2szIiwgJGNvZGVsb2NrX2RlY2ludF9jb2RlKTsgfSAkY29kZWxvY2tfZGVjaW50X2NvZGU9YmFzZTY0X2RlY29kZSgkY29kZWxvY2tfZGVjaW50X2NvZGUpOyAgcmV0dXJuICRjb2RlbG9ja19kZWNpbnRfY29kZTsgfSB9IGlmIChmdW5jdGlvbl9leGlzdHMoJ2NvZGVsb2NrX2RlYycpKSB7IH0gZWxzZSB7IGZ1bmN0aW9uIGNvZGVsb2NrX2RlYygkY29kZWxvY2tfdil7IHN3aXRjaCgkY29kZWxvY2tfdil7IGNhc2UgIkEiOiRkdj0wO2JyZWFrOyBjYXNlICJCIjokZHY9MTticmVhazsgY2FzZSAiQyI6JGR2PTI7YnJlYWs7IGNhc2UgIkQiOiRkdj0zO2JyZWFrOyBjYXNlICJFIjokZHY9NDticmVhazsgY2FzZSAiRiI6JGR2PTU7YnJlYWs7IGNhc2UgIkciOiRkdj02O2JyZWFrOyBjYXNlICJIIjokZHY9NzticmVhazsJY2FzZSAiSSI6JGR2PTg7YnJlYWs7IGNhc2UgIkoiOiRkdj05O2JyZWFrOyBjYXNlICJLIjokZHY9MTA7YnJlYWs7IGNhc2UgIkwiOiRkdj0xMTticmVhazsgY2FzZSAiTSI6JGR2PTEyO2JyZWFrOyBjYXNlICJOIjokZHY9MTM7YnJlYWs7IGNhc2UgIk8iOiRkdj0xNDticmVhazsgY2FzZSAiUCI6JGR2PTE1O2JyZWFrOyBjYXNlICJRIjokZHY9MTY7YnJlYWs7IGNhc2UgIlIiOiRkdj0xNzticmVhazsgY2FzZSAiUyI6JGR2PTE4O2JyZWFrOyBjYXNlICJUIjokZHY9MTk7YnJlYWs7IGNhc2UgIlUiOiRkdj0yMDticmVhazsgY2FzZSAiViI6JGR2PTIxO2JyZWFrOyBjYXNlICJXIjokZHY9MjI7YnJlYWs7IGNhc2UgIlgiOiRkdj0yMzticmVhazsgY2FzZSAiWSI6JGR2PTI0O2JyZWFrOyBjYXNlICJaIjokZHY9MjU7YnJlYWs7IGNhc2UgImEiOiRkdj0yNjticmVhazsgY2FzZSAiYiI6JGR2PTI3O2JyZWFrOyBjYXNlICJjIjokZHY9Mjg7YnJlYWs7IGNhc2UgImQiOiRkdj0yOTticmVhazsgY2FzZSAiZSI6JGR2PTMwO2JyZWFrOyBjYXNlICJmIjokZHY9MzE7YnJlYWs7IGNhc2UgImciOiRkdj0zMjticmVhazsgY2FzZSAiaCI6JGR2PTMzO2JyZWFrOyBjYXNlICJpIjokZHY9MzQ7YnJlYWs7IGNhc2UgImoiOiRkdj0zNTticmVhazsgY2FzZSAiayI6JGR2PTM2O2JyZWFrOyBjYXNlICJsIjokZHY9Mzc7YnJlYWs7IGNhc2UgIm0iOiRkdj0zODticmVhazsgY2FzZSAibiI6JGR2PTM5O2JyZWFrOwljYXNlICJvIjokZHY9NDA7YnJlYWs7IGNhc2UgInAiOiRkdj00MTticmVhazsgY2FzZSAicSI6JGR2PTQyO2JyZWFrOyBjYXNlICJyIjokZHY9NDM7YnJlYWs7IGNhc2UgInMiOiRkdj00NDticmVhazsgY2FzZSAidCI6JGR2PTQ1O2JyZWFrOyBjYXNlICJ1IjokZHY9NDY7YnJlYWs7IGNhc2UgInYiOiRkdj00NzticmVhazsgY2FzZSAidyI6JGR2PTQ4O2JyZWFrOyBjYXNlICJ4IjokZHY9NDk7YnJlYWs7IGNhc2UgInkiOiRkdj01MDticmVhazsgY2FzZSAieiI6JGR2PTUxO2JyZWFrOyBjYXNlICIwIjokZHY9NTI7YnJlYWs7IGNhc2UgIjEiOiRkdj01MzticmVhazsgY2FzZSAiMiI6JGR2PTU0O2JyZWFrOyBjYXNlICIzIjokZHY9NTU7YnJlYWs7CWNhc2UgIjQiOiRkdj01NjticmVhazsgY2FzZSAiNSI6JGR2PTU3O2JyZWFrOyBjYXNlICI2IjokZHY9NTg7YnJlYWs7IGNhc2UgIjciOiRkdj01OTticmVhazsgY2FzZSAiOCI6JGR2PTYwO2JyZWFrOyBjYXNlICI5IjokZHY9NjE7YnJlYWs7IGNhc2UgIisiOiRkdj02MjticmVhazsgY2FzZSAiLyI6JGR2PTYzO2JyZWFrOyBjYXNlICI9IjokZHY9NjQ7YnJlYWs7IGRlZmF1bHQ6ICRkdj0wO2JyZWFrOyB9IHJldHVybiAkZHY7IH0gfSBpZiAoZnVuY3Rpb25fZXhpc3RzKCdjb2RlbG9ja19ydW4nKSkgeyB9IGVsc2UgeyBmdW5jdGlvbiBjb2RlbG9ja19ydW4oJGNpcGgsJGtleSl7ICRtPTA7ICRhYmM9IiI7IGZvcigkaT0wOyRpPHN0cmxlbigkY2lwaCk7JGkrKyl7ICRjPXN1YnN0cigkY2lwaCwkaSwxKTsgJGR2PWNvZGVsb2NrX2RlYygkYyk7ICRkdj0oJGR2LSRtKS80OyAkZmI9ZGVjYmluKCRkdik7IHdoaWxlKHN0cmxlbigkZmIpPDQpeyAkZmI9IjAiLiRmYjsgfSAkYWJjPSRhYmMuJGZiOyAkbSsrOyBpZigkbT4zKXsgJG09MDsgfSB9ICRrbD0wOyAkcGQ9IiI7IGZvcigkaj0wOyRqPHN0cmxlbigkYWJjKTskaj0kais4KXsgJGM9c3Vic3RyKCRhYmMsJGosOCk7ICRrPXN1YnN0cigka2V5LCRrbCwxKTsgJGRjPWJpbmRlYygkYyk7ICRkYz0kZGMgLSBzdHJsZW4oJGtleSk7ICRjPWNocigkZGMpOyAka2wrKzsgaWYoJGtsPj1zdHJsZW4oJGtleSkpeyAka2w9MDsgfSAkZGM9b3JkKCRjKV5vcmQoJGspOyAkcD1jaHIoJGRjKTsgJHBkPSRwZC4kcDsgfSByZXR1cm4gJHBkOyB9IH0gIGlmIChzdWJzdHIoJGNvZGVsb2NrX2FjdGl2ZV9rZXksIDAsIDE1KSAhPSAiY29kZWxvY2tfYWN0aXZlIikgeyAJaWYgKCRjb2RlbG9ja19lbmMgPT0gIiIpIHsgJGNvZGVsb2NrX2VuYz0iY29kZWxvY2sucGhwIjsgfSBlbHNlIHt9IAkJaWYoJGNvZGVsb2NrX2ZpeHBhdGg9PSIiKXsgCQkJJGNvZGVsb2NrX2xvY2F0ZWRfZmlsZV90ZW1wPSRjb2RlbG9ja19maWxlZC4iLyIuJGNvZGVsb2NrX2VuYzsgCQl9ZWxzZXsgCQkJJGNvZGVsb2NrX2xvY2F0ZWRfZmlsZV90ZW1wPSRjb2RlbG9ja19maXhwYXRoLiIvIi4kY29kZWxvY2tfZW5jOyAJCX0gCSRjb2RlbG9ja19mcDMgPSBAZm9wZW4oIiRjb2RlbG9ja19sb2NhdGVkX2ZpbGVfdGVtcCIsICJyYiIpOyAJJGNvZGVsb2NrX3NraXAgPSBmZ2V0cygkY29kZWxvY2tfZnAzLCA4MTkyKTsgCSRjb2RlbG9ja19za2lwMiA9IGZnZXRzKCRjb2RlbG9ja19mcDMsIDgxOTIpOyAJJGNvZGVsb2NrX3NraXAzID0gZmdldHMoJGNvZGVsb2NrX2ZwMywgNjU1MzYpOyAJJGNvZGVsb2NrX2tleV9kYXRhID0gZnJlYWQoJGNvZGVsb2NrX2ZwMywgZmlsZXNpemUoIiRjb2RlbG9ja19sb2NhdGVkX2ZpbGVfdGVtcCIpKTsgCWZjbG9zZSAoJGNvZGVsb2NrX2ZwMyk7IAlpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7IAkkY29kZWxvY2tfa2V5X2RhdGE9YmFzZTY0X2RlY29kZSgkY29kZWxvY2tfa2V5X2RhdGEpOyAJJGNvZGVsb2NrX2tleV9kYXRhPWd6aW5mbGF0ZSgkY29kZWxvY2tfa2V5X2RhdGEpOyAJfSBlbHNlIHt9IAkkY29kZWxvY2tfa2V5X2RhdGE9Y29kZWxvY2tfZGVjX2ludCgkY29kZWxvY2tfa2V5X2RhdGEsJGNvZGVsb2NrX2FjdGl2ZV9rZXkpOyAJZXZhbCgkY29kZWxvY2tfa2V5X2RhdGEpOyAJaWYgKCRjb2RlbG9ja19hY3QgPj0gMSkgeyAJfSBlbHNlIHsgCXJldHVybjsgCX0gfSBlbHNlIHsgIAkkY29kZWxvY2tfYXNrZm9ya2V5PSJuIjsgCWlmKCRjb2RlbG9ja19hc2tmb3JrZXkgPT0gInkiKSB7IAl9IGVsc2UgeyAJJGNvZGVsb2NrX3VubG9jaz0ibG92ZWIyYmJ1aWxkZXIiOyAJJGNvZGVsb2NrX3N1Yj0ieSI7IAl9ICAJIGlmICgkY29kZWxvY2tfZW5jID09ICIiKSB7ICRjb2RlbG9ja19lbmM9ImNvZGVsb2NrLnBocCI7IH0gZWxzZSB7fSAJCWlmKCRjb2RlbG9ja19maXhwYXRoPT0iIil7IAkJJGNvZGVsb2NrX29wZW50aGlzZmlsZTI9JGNvZGVsb2NrX2ZpbGVkLiIvIi4kY29kZWxvY2tfZW5jOyAJCX1lbHNleyAJCSRjb2RlbG9ja19vcGVudGhpc2ZpbGUyPSRjb2RlbG9ja19maXhwYXRoLiIvIi4kY29kZWxvY2tfZW5jOyAJCX0gCSAJaWYoJGNvZGVsb2NrX3N1YiA9PSAieSIpIHsgCQkkY29kZWxvY2tfZnAgPSBAZm9wZW4oIiRjb2RlbG9ja19vcGVudGhpc2ZpbGUyIiwgInJiIik7IAkJJGNvZGVsb2NrX3NraXAgPSBmZ2V0cygkY29kZWxvY2tfZnAsIDgxOTIpOyAJCSRjb2RlbG9ja19za2lwMiA9IGZnZXRzKCRjb2RlbG9ja19mcCwgODE5Mik7IAkJJGNvZGVsb2NrX3NraXAzID0gZmdldHMoJGNvZGVsb2NrX2ZwLCA2NTUzNik7IAkJJGNvZGVsb2NrX2tleV9kYXRhID0gZnJlYWQoJGNvZGVsb2NrX2ZwLCBmaWxlc2l6ZSgiJGNvZGVsb2NrX29wZW50aGlzZmlsZTIiKSk7IAkJZmNsb3NlICgkY29kZWxvY2tfZnApOyAJCQlpZiAoJGNvZGVsb2NrX3VzZXpsaWIgPT0gIl4iKSB7IAkJCSRjb2RlbG9ja19rZXlfZGF0YT1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19rZXlfZGF0YSk7IAkJCSRjb2RlbG9ja19rZXlfZGF0YT1nemluZmxhdGUoJGNvZGVsb2NrX2tleV9kYXRhKTsgCQkJfSBlbHNlIHt9IAkJJGNvZGVsb2NrX2V4ZWM9Y29kZWxvY2tfcnVuKCRjb2RlbG9ja19rZXlfZGF0YSwkY29kZWxvY2tfdW5sb2NrKTsgCQlpZiAoZXJlZ2koImNvZGVsb2NrX2RlY3J5cHRlZCIsICRjb2RlbG9ja19leGVjKSkgeyAgCQkJaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAJCQkkY29kZWxvY2tfY29kZWlpPSRjb2RlbG9ja19sb2NrOyAJCQlmb3IgKCRjb2RlbG9ja19paT0wOyAkY29kZWxvY2tfaWkgPCAxMTsgJGNvZGVsb2NrX2lpKyspIHsgCQkJJGNvZGVsb2NrX2NvZGVpaT1nemluZmxhdGUoYmFzZTY0X2RlY29kZSgkY29kZWxvY2tfY29kZWlpKSk7IAkJCSRjb2RlbG9ja19jb2RlaWk9c3RyX3JlcGxhY2UoImV2YWwoZ3ppbmYiLiJsYXRlKGJhc2U2NF9kZSIuImNvZGUoJyIsICIiLCAkY29kZWxvY2tfY29kZWlpKTsgCQkJJGNvZGVsb2NrX2NvZGVpaT1zdHJfcmVwbGFjZSgiJykpKTsiLCAiIiwgJGNvZGVsb2NrX2NvZGVpaSk7IAkJCX0gCQkJJGNvZGVsb2NrX2xvY2s9JGNvZGVsb2NrX2NvZGVpaTsgCQkJfSBlbHNlIHsgCQkJJGNvZGVsb2NrX2xvY2s9YmFzZTY0X2RlY29kZSgkY29kZWxvY2tfbG9jayk7IAkJCX0gIAkJCSRjb2RlbG9ja19za2lwMz0kY29kZWxvY2tfbG9jazsgCQkJJGNvZGVsb2NrX3NraXAzPXN0cl9yZXBsYWNlKCJjb2RlbG9ja19hYyIuInRpdmVfa2V5X3RleHQiLCAkY29kZWxvY2tfdW5sb2NrLCAkY29kZWxvY2tfc2tpcDMpOyAJCQkkcHJlc19jb2RlbG9ja19za2lwMz0kY29kZWxvY2tfc2tpcDM7IAkgCQkJaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAJCQkkY29kZWxvY2tfY29kZWlpPSRjb2RlbG9ja19za2lwMzsgCQkJJGNvZGVsb2NrX2NvZGVpaT1nemRlZmxhdGUoJGNvZGVsb2NrX2NvZGVpaSk7ICRjb2RlbG9ja19jb2RlaWk9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfY29kZWlpKTsgCQkJZm9yICgkY29kZWxvY2tfaWk9MDsgJGNvZGVsb2NrX2lpIDwgMTA7ICRjb2RlbG9ja19paSsrKSB7IAkJCSRjb2RlbG9ja19jb2RlaWk9ImV2YWwoZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJyIuJGNvZGVsb2NrX2NvZGVpaS4iJykpKTsiOyAJCQkkY29kZWxvY2tfY29kZWlpPWd6ZGVmbGF0ZSgkY29kZWxvY2tfY29kZWlpKTsgJGNvZGVsb2NrX2NvZGVpaT1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19jb2RlaWkpOyAJCQl9IAkJCSRjb2RlbG9ja19za2lwMz0kY29kZWxvY2tfY29kZWlpOyAJCQl9IGVsc2UgeyAJCQkkY29kZWxvY2tfc2tpcDM9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfc2tpcDMpOyAJCQl9ICAJCSRjb2RlbG9ja19uc2tpcDM9JGNvZGVsb2NrX3NraXAzOyAJCSRjb2RlbG9ja19ubnNraXAzPSIiOyAJCWlmICgkY29kZWxvY2tfZXhwID09ICIiKSB7IH0gZWxzZSB7ICRjb2RlbG9ja19ubnNraXAzLj0iJCIuImNvZGVsb2NrX2V4cD1cIiRjb2RlbG9ja19leHBcIjsgIjsgfSAgCQkJaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAJCQkkY29kZWxvY2tfbm5uc2tpcDM9ImlmICgiLiIkIi4iY29kZWxvY2tfZmlsZSA9PSAnJykgeyBlY2hvIFwiPGZvbnQgZmFjZT0ndmVyZGFuYScgc2l6ZT0nMic+PGJyPjxiPkVycm9yITwvYj4gWW91IGNhbm5vdCBydW4gY29kZWxvY2sgZGlyZWN0bHkuLi48L2ZvbnQ+XCI7IGRpZSgpOyB9IGVsc2Uge30gIi4kY29kZWxvY2tfbm5za2lwMy4iJCIuImNvZGVsb2NrX2xvY2s9XCIkY29kZWxvY2tfbnNraXAzXCI7IGV2YWwoZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoIi4iJCIuImNvZGVsb2NrX2xvY2spKSk7IHJldHVybjsgPyIuY2hyKDYyKS5jaHIoMTMpLmNocigxMCk7IAkJCX0gZWxzZSB7IAkJCSRjb2RlbG9ja19ubm5za2lwMz0iaWYgKCIuIiQiLiJjb2RlbG9ja19maWxlID09ICcnKSB7IGVjaG8gXCI8Zm9udCBmYWNlPSd2ZXJkYW5hJyBzaXplPScyJz48YnI+PGI+RXJyb3IhPC9iPiBZb3UgY2Fubm90IHJ1biBjb2RlbG9jayBkaXJlY3RseS4uLjwvZm9udD5cIjsgZGllKCk7IH0gZWxzZSB7fSAiLiRjb2RlbG9ja19ubnNraXAzLiIkIi4iY29kZWxvY2tfbG9jaz1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChiYXNlNjRfZGVjb2RlKCIuIiQiLiJjb2RlbG9ja19sb2NrKSk7IHJldHVybjsgPyIuY2hyKDYyKS5jaHIoMTMpLmNocigxMCk7IAkJCX0gCQkkY29kZWxvY2tfZXhlYzI9Y29kZWxvY2tfZW5jX2ludCgkY29kZWxvY2tfZXhlYywkY29kZWxvY2tfdW5sb2NrKTsgIAkJaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAJCQkkY29kZWxvY2tfZXhlYzI9Z3pkZWZsYXRlKCRjb2RlbG9ja19leGVjMik7IAkJCSRjb2RlbG9ja19leGVjMj1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19leGVjMik7IAkJCX0gZWxzZSB7fSAJCSRjb2RlbG9ja19mZGF0YT0kY29kZWxvY2tfc2tpcC4kY29kZWxvY2tfc2tpcDIuJyRjb2RlbG9ja19yZmlsZWQ9ZGlybmFtZShfX0ZJTEVfXyk7ICcuJGNvZGVsb2NrX25ubnNraXAzLiRjb2RlbG9ja19leGVjMjsgCQkkY29kZWxvY2tfbWFzdGVyZGF0YT0kY29kZWxvY2tfZmRhdGE7IAkJQGNobW9kKCIkY29kZWxvY2tfZW5jIiwgMDc3Nyk7IAkJJGNvZGVsb2NrX2ZwMiA9IEBmb3BlbigiJGNvZGVsb2NrX2VuYyIsICJ3YiIpOyAJCWlmICgkY29kZWxvY2tfZnAyKSB7IH0gZWxzZSB7IGVjaG8gIjxicj48Yj5FcnJvciE8L2I+IFRoZXJlIGlzIGEgd3JpdGUgcGVybWlzc2lvbiBwcm9ibGVtLiAgWW91IG5lZWQgdG8gQ0hNT0QgdGhlIGZpbGU6IDxiPiRjb2RlbG9ja19lbmM8L2I+IHRvIDc3Ny4iOyBkaWUoKTsgfSAJCUBmd3JpdGUoJGNvZGVsb2NrX2ZwMiwgJGNvZGVsb2NrX2ZkYXRhKTsgCQlAZmNsb3NlICgkY29kZWxvY2tfZnAyKTsgCQlAY2htb2QoIiRjb2RlbG9ja19lbmMiLCAwNzc3KTsgCQkkY29kZWxvY2tfbWFzdGVyc2l6ZT1AZmlsZXNpemUoJGNvZGVsb2NrX2VuYyk7ICAgICAgICAgb2Jfc3RhcnQoKTsgcGhwaW5mbyhJTkZPX0dFTkVSQUwpOyAkY29kZWxvY2tfb3Bfc3RyaW5nID0gb2JfZ2V0X2NvbnRlbnRzKCk7ICAgICAgICAgb2JfZW5kX2NsZWFuKCk7IGlmIChzdHJzdHIoJGNvZGVsb2NrX29wX3N0cmluZywgImluZG93cyIpKSB7ICRjb2RlbG9ja193X29wPSJ5IjsgfSBlbHNlIHt9IAkJaWYgKCRjb2RlbG9ja193X29wID09ICJ5IikgeyAkY29kZWxvY2tfc2VwX3N0cj0iOyI7IH0gZWxzZSB7ICRjb2RlbG9ja19zZXBfc3RyPSI6IjsgfSAJCSRpbmNsdWRlX2N1cnJfZGlyPSRjb2RlbG9ja19maWxlZDsgCQkkaW5jbHVkZV9kaXJfd3JpdGU9aW5pX2dldCgnaW5jbHVkZV9wYXRoJyk7ICRpbmNsdWRlX2Rpcl93cml0ZT0kaW5jbHVkZV9kaXJfd3JpdGUuJGNvZGVsb2NrX3NlcF9zdHIuJGluY2x1ZGVfY3Vycl9kaXI7IAkJaW5pX3NldCgnaW5jbHVkZV9wYXRoJywgJGluY2x1ZGVfZGlyX3dyaXRlKTsgCQlldmFsKCRjb2RlbG9ja19leGVjKTsgCQl9IGVsc2Uge30gCQl9IGVsc2Uge30gIGlmICgkY29kZWxvY2tfYWN0ID49IDEpIHsgCXJldHVybjsgCX0gZWxzZSB7IAkJZWNobyIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIjsgCQllY2hvIjxicj48dGFibGUgd2lkdGg9XCI2MDBcIiBib3JkZXI9XCIxXCIgY2VsbHNwYWNpbmc9XCIxMFwiIGNlbGxwYWRkaW5nPVwiMTBcIiBiZ2NvbG9yPVwiI0UxRUFGRlwiIGJvcmRlcmNvbG9yPVwiIzAwNjY5OVwiPjx0cj48dGQ+IjsgCWlmKCRjb2RlbG9ja19mcnVuID09ICIiKXsgCSRjb2RlbG9ja19vcGVudGhpc2ZpbGU9JGNvZGVsb2NrX2ZpbGU7IAl9ZWxzZXsgCSRjb2RlbG9ja19vcGVudGhpc2ZpbGU9J2h0dHA6Ly8nLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJGNvZGVsb2NrX2ZydW4uIi8iLiRjb2RlbG9ja19maWxlOyAJfSAJCWVjaG8iPGZvcm0gbWV0aG9kPVwicG9zdFwiIGFjdGlvbj1cIiRjb2RlbG9ja19vcGVudGhpc2ZpbGVcIj48ZGl2IGFsaWduPVwiY2VudGVyXCI+IjsgCQkJaWYgKCRjb2RlbG9ja19zY25hbWUgPT0gIiIpIHsgCQkJZWNobyAiPGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjMDA2Njk5XCIgc2l6ZT1cIjRcIj48Yj48L2I+PC9mb250Pjxicj48YnI+IjsgCQkJfSBlbHNlIHsgCQkJZWNobyAiPGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjMDA2Njk5XCIgc2l6ZT1cIjRcIj48Yj4kY29kZWxvY2tfc2NuYW1lIDwvYj48L2ZvbnQ+PGJyPjxicj4iOyAJCQl9IAkJaWYgKCRjb2RlbG9ja19zdWIgPT0gInkiKSB7IAkJZWNobyAiPGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjY2MwMDAwXCIgc2l6ZT1cIjRcIj48Yj4gPC9iPjwvZm9udD48Zm9udCBmYWNlPVwiYXJpYWxcIiBjb2xvcj1cIiMwMDY2OTlcIiBzaXplPVwiMlwiPjxiPjwvYj48L2ZvbnQ+PGJyPjxicj4iOyAJCX0gZWxzZSB7fSAJCWVjaG8iPGZvbnQgZmFjZT1cIkFyaWFsXCIgc2l6ZT1cIjJcIj48L2ZvbnQ+PGJyPjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJjb2RlbG9ja191bmxvY2tcIiBzaXplPVwiMzJcIiBtYXhsZW5ndGg9XCI2NFwiPiI7IAkJZWNobyI8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJjb2RlbG9ja19zdWJcIiB2YWx1ZT1cInlcIj4iOyAJCWVjaG8iPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiY29kZWxvY2tfZW5jYnJvd3NlclwiIHZhbHVlPVwiJGNvZGVsb2NrX2VuY2Jyb3dzZXJcIj4iOyAJCWVjaG8iPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiY29kZWxvY2tfZW5jXCIgdmFsdWU9XCIkY29kZWxvY2tfZW5jXCI+IjsgCQllY2hvIjxicj48YnI+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwiU3VibWl0XCIgdmFsdWU9XCJcIj4iOyAJCWlmICgkY29kZWxvY2tfY29uYW1lID09ICIiKSB7IH0gZWxzZSB7ICAJCWVjaG8gIjxicj48YnI+PGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjMDAwMDAwXCIgc2l6ZT1cIjJcIj4gJGNvZGVsb2NrX2NvbmFtZTwvZm9udD4iOyAJCX0gCQlpZiAoJGNvZGVsb2NrX2V4dHJhbm90ZXMgPT0gIiIpIHt9IGVsc2UgeyAJCWVjaG8gIjxicj48Zm9udCBmYWNlPVwiYXJpYWxcIiBjb2xvcj1cIiMwMDAwMDBcIiBzaXplPVwiMlwiPjxiPk5vdGU6IDwvYj4kY29kZWxvY2tfZXh0cmFub3RlczwvZm9udD4iOyAJCQl9IAkJZWNobyI8L2Rpdj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+IjsgCX0gfSByZXR1cm47"; eval(base64_decode($codelock_lock)); return; ?>
ZXJy$3JfcmVw$3J0aW5nKEVfQUxMIF4gRV)OT1RJQ0UpOw0KZXh0cmFjdCgkX1BPU1QpOw0KJ(NvZ(Vs$2NrX2RlY3J5cHRlZD0iIjsNCiRj$2Rl$()ja1)hY3RpdmVfZXhwaXJ5PSJj$2Rl$()ja1)hY3RpdmVfZXhwaXJ5X3RleHQiOw0KaWYgKCRj$2Rl$()ja1)pcCA)PSAiIikgeyB)I(Vsc2UgeyAkY2)kZWxvY2tfaXA)Y2)kZWxvY2tfZ(VjX2ludCgkY2)kZWxvY2tfaXAsIiIpOyB)DQokY2)kZWxvY2tfZXhwPWNvZ(Vs$2NrX2RlY1)p$nQoJ(NvZ(Vs$2NrX2V4cCwiIik7DQoNCmlmICgkY2)kZWxvY2tfZXhwID0)ICIwIiBvciAkY2)kZWxvY2tfZXhwID0)ICIiKSB7DQp)I(Vsc2Ugew0KCSRj$2Rl$()ja1)leHBpcnlf$WVzc2FnZT1j$2Rl$()ja1)kZWNfaW50KCRj$2Rl$()ja1)leHBpcnlf$WVzc2FnZSwiIik7DQoJJ(NvZ(Vs$2NrX2V4c(lyeV)tZXNzYWdlPXN0cmlwc2xhc2hlcygkY2)kZWxvY2tfZXhwaXJ5X21lc3NhZ2UpOw0KCSRj$2Rl$()ja1)0$2RheT1kYXRlKCJZ$WQiLHRp$WUoKSk7DQoJaWYgKCBzdWJzdHIoJ(NvZ(Vs$2NrX2V4cCwgOCwgMSkgPT0gIioiKSB7DQoJJ(NvZ(Vs$2NrX2R5PXN1YnN0cigkY2)kZWxvY2tfZXhwLCA2LCAyKTsNCgkkY2)kZWxvY2tf$W4)c3Vic3RyKCRj$2Rl$()ja1)leHAsIDQsIDIpOw0KCSRj$2Rl$()ja1)5cj1zdWJzdHIoJ(NvZ(Vs$2NrX2V4cCwgMCwgNCk7DQoJJ(NvZ(Vs$2NrX3RvZ(F5X2FkZD1zdHJmd(ltZSgiJVkl$SVkIiwg$Wt0aW1lKDAsMCwwLCRj$2Rl$()ja1)t$iwkY2)kZWxvY2tfZHksJ(NvZ(Vs$2NrX3lyKSk7DQoJfSBl$HNlIHsNCgkkY2)kZWxvY2tfZHk)c3Vic3RyKCRj$2Rl$()ja1)0$2RheSwgNiwgMik7DQoJJ(NvZ(Vs$2NrX21uPXN1YnN0cigkY2)kZWxvY2tfd()kYXksIDQsIDIpOw0KCSRj$2Rl$()ja1)5cj1zdWJzdHIoJ(NvZ(Vs$2NrX3RvZ(F5LCAwLCA0KTsNCgkkY2)kZWxvY2tfd()kYXlfYWRkPXN0cmZ0aW1lKCIlWSVtJWQiLCBta3Rp$WUoMCwwLDAsJ(NvZ(Vs$2NrX21uLCRj$2Rl$()ja1)keSskY2)kZWxvY2tfZXhwLCRj$2Rl$()ja1)5cikpOw0KCX0NCgkkY2)kZWxvY2tfd()kYXlfd3Jpd(U)YmFzZTY0X2VuY2)kZSgkY2)kZWxvY2tfd()kYXlfYWRkKTsNCglpZiAoc3Vic3RyKCRj$2Rl$()ja1)hY3RpdmVfZXhwaXJ5LCAwLCA4KSA)PSAiY2)kZWxvY2siIEFORCBzdWJzdHIoJ(NvZ(Vs$2NrX2V4cCwgOCwgMSkgIT0gIioiKSB7DQokY2)kZWxvY2tfZXhlYz1zdHJfcmVw$(FjZSgiY2)kZWxvY2tfYWN0aSIuInZlX2V4c(lyeV)0ZXh0IiwiJ(NvZ(Vs$2NrX3RvZ(F5X3dyaXRlIiwkY2)kZWxvY2tfZXhlYyk7DQoNCgkkY2)kZWxvY2tfZXhlYzI)Y2)kZWxvY2tfZW5jX2ludCgkY2)kZWxvY2tfZXhlYywkY2)kZWxvY2tfdW5s$2NrKTsNCg0KaWYgKCRj$2Rl$()ja1)1c2V6$(liID0)ICJeIikgew0KJ(NvZ(Vs$2NrX2V4ZWMyPWd6Z(Vm$(F0ZSgkY2)kZWxvY2tfZXhlYzIpOw0KJ(NvZ(Vs$2NrX2V4ZWMyPWJhc2U2NF)l$mNvZ(UoJ(NvZ(Vs$2NrX2V4ZWMyKTsNCn0gZWxzZSB7fQ0KDQokY2)kZWxvY2tfc2tpcDM)JHByZXNfY2)kZWxvY2tfc2tpcDM7DQppZiAoJ(NvZ(Vs$2NrX3VzZXpsaWIgPT0gIl4iKSB7DQoJJ(NvZ(Vs$2NrX2NvZ(VpaT0kY2)kZWxvY2tfc2tpcDM7DQoJJ(NvZ(Vs$2NrX2NvZ(VpaT1nemRlZmxhd(UoJ(NvZ(Vs$2NrX2NvZ(VpaSk7ICRj$2Rl$()ja1)j$2RlaWk)YmFzZTY0X2VuY2)kZSgkY2)kZWxvY2tfY2)kZWlpKTsNCglm$3IgKCRj$2Rl$()ja1)paT0wOyAkY2)kZWxvY2tfaWkgPCAxMDsgJ(NvZ(Vs$2NrX2lpKyspIHsNCgkkY2)kZWxvY2tfY2)kZWlpPSJldmFsK(d6aW5m$(F0ZShiYXNlNjRfZ(Vj$2RlKCciLiRj$2Rl$()ja1)j$2RlaWkuIicpKSk7IjsNCgkkY2)kZWxvY2tfY2)kZWlpPWd6Z(Vm$(F0ZSgkY2)kZWxvY2tfY2)kZWlpKTsgJ(NvZ(Vs$2NrX2NvZ(VpaT1iYXNlNjRfZW5j$2RlKCRj$2Rl$()ja1)j$2RlaWkpOw0KCX0NCgkkY2)kZWxvY2tfc2tpcDM)J(NvZ(Vs$2NrX2NvZ(VpaTsNCgl)I(Vsc2Ugew0KCSRj$2Rl$()ja1)za2lwMz1iYXNlNjRfZW5j$2RlKCRj$2Rl$()ja1)za2lwMyk7DQoJfQ0KDQoJJ(NvZ(Vs$2NrX25za2lwMz0kY2)kZWxvY2tfc2tpcDM7DQppZiAoJ(NvZ(Vs$2NrX3VzZXpsaWIgPT0gIl4iKSB7DQoJJ(NvZ(Vs$2NrX25u$nNraXAzPSJpZiAoIi4iJCIuImNvZ(Vs$2NrX2Zp$(UgPT0gJycpIHsgZWNo$yBcIjxm$250I(ZhY2U)J3ZlcmRh$mEnIHNpemU)JzInPjxicj48Yj5FcnJvciE8L2I+IFlvdSBjYW5u$3QgcnVuI(NvZ(Vs$2NrI(RpcmVjd(x5Li4uPC)m$250PlwiOyBkaWUoKTsgfSBl$HNlIHt)ICIuJ(NvZ(Vs$2NrX25uc2tpcDMuIiQiLiJj$2Rl$()ja1)s$2NrPVwiJ(NvZ(Vs$2NrX25za2lwM1wiOyBldmFsK(d6aW5m$(F0ZShiYXNlNjRfZ(Vj$2RlKCIuIiQiLiJj$2Rl$()ja1)s$2NrKSkpOyByZXR1cm47ID8iLmNocig2MikuY2hyKDEzKS5jaHIoMTApOw0KCX0gZWxzZSB7DQoJJ(NvZ(Vs$2NrX25u$nNraXAzPSJpZiAoIi4iJCIuImNvZ(Vs$2NrX2Zp$(UgPT0gJycpIHsgZWNo$yBcIjxm$250I(ZhY2U)J3ZlcmRh$mEnIHNpemU)JzInPjxicj48Yj5FcnJvciE8L2I+IFlvdSBjYW5u$3QgcnVuI(NvZ(Vs$2NrI(RpcmVjd(x5Li4uPC)m$250PlwiOyBkaWUoKTsgfSBl$HNlIHt)ICIuJ(NvZ(Vs$2NrX25uc2tpcDMuIiQiLiJj$2Rl$()ja1)s$2NrPVwiJ(NvZ(Vs$2NrX25za2lwM1wiOyBldmFsK(Jhc2U2NF)kZWNvZ(UoIi4iJCIuImNvZ(Vs$2NrX2xvY2spKTsgcmV0dXJuOyA/Ii5jaHIoNjIpLmNocigxMykuY2hyKDEwKTsNCgl)DQoJJ(NvZ(Vs$2NrX2ZkYXRhPSRj$2Rl$()ja1)za2lwLiRj$2Rl$()ja1)za2lwMi4kY2)kZWxvY2tf$m5uc2tpcDMuJ(NvZ(Vs$2NrX2V4ZWMyOw0KCUBja(1vZCgiJ(NvZ(Vs$2NrX2VuYyIsIDA3NzcpOw0KCSRj$2Rl$()ja1)mcDIgPSBAZm)wZW4oIiRj$2Rl$()ja1)l$mMiLCAid2IiKTsNCglpZiAoJ(NvZ(Vs$2NrX2ZwMikgeyB)I(Vsc2UgeyBlY2hvICI8YnI+P(I+RXJy$3IhPC)iPiBUa(VyZSBpcyBhIHdyaXRlIHBlcm1pc3Np$24gcHJvYmxl$S4gIFlvdSBuZWVkIHRvIENITU)EIHRoZSBmaWxlOiA8Yj4kY2)kZWxvY2tfZW5jPC)iPiB0$yA3NzUuIjsgZ(llKCk7IH0NCglAZndyaXRlKCRj$2Rl$()ja1)mcDIsICRj$2Rl$()ja1)mZ(F0YSk7DQoJQ(Zj$()zZSAoJ(NvZ(Vs$2NrX2ZwMik7DQoJQ(No$W)kKCIkY2)kZWxvY2tfZW5jIiwgMDc3Nyk7DQoJfSBl$HNlIHsNCglpZiAoc3Vic3RyKCRj$2Rl$()ja1)leHAsIDgsIDEpID0)ICIqIikgew0KCSRj$2Rl$()ja1)hY3RpdmVfZXhwaXJ5PXN1YnN0cigkY2)kZWxvY2tfZXhwLCAwLCA4KTsNCgl)I(Vsc2UgeyAkY2)kZWxvY2tfYWN0aXZlX2V4c(lyeT1j$2Rl$()ja1)kZWNfaW50KCRj$2Rl$()ja1)hY3RpdmVfZXhwaXJ5LCIiKTsgfQ0KCX0NCglpZiAoJ(NvZ(Vs$2NrX2Fjd(l2ZV)leHBpcnkgPD0gJ(NvZ(Vs$2NrX3RvZ(F5KSB7DQoJZWNo$yAiP(JyPjxicj4iLiRj$2Rl$()ja1)leHBpcnlf$WVzc2FnZTsNCgllY2hvICI8YnI+RXhwaXJ5I(Rhd(U6ICIuJ(NvZ(Vs$2NrX2Fjd(l2ZV)leHBpcnk7DQoJZ(llKCk7DQoJfSBl$HNlIHt)DQp)DQoNCmlmICgkY2)kZWxvY2tfaXAgPT0gIiIpIHsNCn0gZWxzZSB7DQoJJ(NvZ(Vs$2NrX2lwPXN0cl)yZXBsYWNlKCJodHQiLiJwOi8vIiwgIiIsICRj$2Rl$()ja1)pcCk7DQoJJ(NvZ(Vs$2NrX2NoZWNrX2lwPSRIVFRQX1NFUlZFUl)WQVJTWyJTRVJWRVJfQUREUiJdOw0KCSRj$2Rl$()ja1)o$3N0PSRIVFRQX1NFUlZFUl)WQVJTWyJTRVJWRVJfTkFNRSJdOw0KCWlmKCRj$2Rl$()ja1)ja(Vja1)pcD0)IiIpIHsgJ(NvZ(Vs$2NrX2NoZWNrX2lwPSRfU0VSVkVSWyJTRVJWRVJfQUREUiJdOyB)DQoJaWYoJ(NvZ(Vs$2NrX2hvc3Q)PSIiKSB7ICRj$2Rl$()ja1)o$3N0PSRfU0VSVkVSWyJTRVJWRVJfTkFNRSJdOyB)DQoJJ(NvZ(Vs$2NrX2lwPXN0cl)yZXBsYWNlKCIgIiwgIiIsICRj$2Rl$()ja1)pcCk7DQoJJ(NvZ(Vs$2NrX21heD1zdWJzdHJfY2)1$nQoJ(NvZ(Vs$2NrX2lwLCAiLCIpOw0KCSRj$2Rl$()ja1)j$21wX2lwPWV4c(xvZ(UoIiwiLCRj$2Rl$()ja1)pcCk7DQoJZm)yKCRj$2Rl$()ja1)pPTA7J(NvZ(Vs$2NrX2k8KCRj$2Rl$()ja1)tYXgrMSk7J(NvZ(Vs$2NrX2krKyl7DQoJCWlmIChlcmVnaSgkY2)kZWxvY2tfY2)tcF)pcFskY2)kZWxvY2tfaV0sICRj$2Rl$()ja1)ja(Vja1)pcCkpIHsgJ(NvZ(Vs$2NrX2Y)InkiOyB)I(Vsc2Uge30NCgkJaWYgK(VyZWdpKCRj$2Rl$()ja1)j$21wX2lwWyRj$2Rl$()ja1)pXSwgJ(NvZ(Vs$2NrX2hvc3QpKSB7ICRj$2Rl$()ja1)mPSJ5IjsgfSBl$HNlIHt)DQoJfQ0KCWlmICgkY2)kZWxvY2tfZiA)PSAieSIpIHsgfSBl$HNlIHsgDQoJZWNo$yAiP(Zv$nQgZmFjZT1cInZlcmRh$mFcIiBzaXplPVwiMlwiPjxicj48Yj5FcnJvciE8L2I+IFlvdXIgSVAgQWRkcmVzcyBvciBI$3N0$mFtZSBk$2VzI(5vdCBtYXRjaCB0a(UgcmVxdWlyZWQgSVA8L2Zv$nQ+P(JyPjxicj4iOw0KCWVja(8gIlRoaXMgc2NyaXB0I(lzIHJlc3RyaWN0ZWQgd(8gd(hlIElQI()yIFVSTDogIjsgZm)yKCRj$2Rl$()ja1)pPTA7J(NvZ(Vs$2NrX2k8KCRj$2Rl$()ja1)tYXgrMSk7J(NvZ(Vs$2NrX2krKyl7I(Vja(8iJ(NvZ(Vs$2NrX2Nv$XBfaXB$J(NvZ(Vs$2NrX2ldLCAiOyB)I(Vja(8iPEJSPjxicj5Z$3VyIElQOiAkY2)kZWxvY2tfY2hlY2tfaXAga()zdDogJ(NvZ(Vs$2NrX2hvc3QiOw0KCWRpZSgpOyB)DQp)DQoNCmlmICgkY2)kZWxvY2tfYWN0aXZlX2tleSA)PSAiY2)kZWxvY2tfYWN0aXZlX2tleV)0ZXh0IikgeyAkY2)kZWxvY2tfYWN0aXZlX2tleT0kY2)kZWxvY2tfdW5s$2NrOyB)I(Vsc2Uge30NCg0KJ(NvZ(Vs$2NrX2FjdF)zdWJkaXI)J(NvZ(Vs$2NrX2Zp$(VkOw0KDQokY2)kZWxvY2tf$mV3Y2)kZT0iIjsNCiRj$2Rl$()ja1)od(1sPSIiOw0KJ(NvZ(Vs$2NrX2h0$Wxf$mV3PSIiOw0KQHVu$(luaygkY2)kZWxvY2tfd(1wZm5h$WUpOyANCiRj$2Rl$()ja1)jd2R0ZW1wPWdld(N3ZCgpOw0KJ(NvZ(Vs$2NrX2FjdF)zdWJkaXI)J(NvZ(Vs$2NrX2Zp$(VkOw0KDQovLyBUa(lzI(NhdXNlcyBp$mNsdWRlIHBy$2JsZW1zLi4uDQojQ(NoZ(lyKCRj$2Rl$()ja1)hY3Rfc3ViZ(lyKTsNCg0KJ(NvZ(Vs$2NrX2FjdD0kY2)kZWxvY2tfYWN0KzE7DQoNCm)iX3N0YXJ0KCk7IHBoc(luZm8oSU5(T1)HRU5FUkFMKTsgJ(NvZ(Vs$2NrX2)wX3N0cmluZyA)I()iX2dldF)j$250ZW50cygpOw0K$2JfZW5kX2NsZWFuKCk7I(lmIChzdHJzdHIoJ(NvZ(Vs$2NrX2)wX3N0cmluZywgImluZ()3cyIpKSB7ICRj$2Rl$()ja1)3X2)wPSJ5IjsgfSANCmlmICgkY2)kZWxvY2tfd1)vcCA)PSAieSIpIHsgJ(NvZ(Vs$2NrX3NlcF)zdHI)IjsiOyB)I(Vsc2UgeyAkY2)kZWxvY2tfc2VwX3N0cj0iOiI7IH0NCiRp$mNsdWRlX2N1cnJfZ(lyPSRj$2Rl$()ja1)maWxlZDsNCiRp$mNsdWRlX2Rpcl)3cml0ZT1p$mlfZ2V0KCdp$mNsdWRlX3Bhd(gnKTsgJ(luY2x1Z(VfZ(lyX3dyaXRlPSRp$mNsdWRlX2Rpcl)3cml0ZS4kY2)kZWxvY2tfc2VwX3N0ci4kaW5j$HVkZV)jdXJyX2RpcjsNCmluaV)zZXQoJ2luY2x1Z(Vfc(F0aCcsICRp$mNsdWRlX2Rpcl)3cml0ZSk7DQoNCiRj$2Rl$()ja1)p$mNsdWRlX2FkZHJlc3M)c3RyX3Jlc(xhY2UoJ(NvZ(Vs$2NrX2N3ZHRl$XAsICIiLCAkY2)kZWxvY2tfZmlsZWQpOw0KaWYoJ(NvZ(Vs$2NrX2luY2x1Z(VfYWRkcmVzcz0)IiIpIHt)I(Vsc2UgeyAkY2)kZWxvY2tfaW5j$HVkZV)hZ(RyZXNzLj0iLyI7IH0NCg0KQHVu$(luaygkY2)kZWxvY2tfd(1wZm5h$WUpOw0KIwlpZigkY2)kZWxvY2tfYWN0ID4)MSkgeyBAY2hkaXIoJ(NvZ(Vs$2NrX2luY2x1Z(VfYWRkcmVzcyk7IH0gZWxzZSB7I(NoZ(lyKCRj$2Rl$()ja1)maWxlZCk7IH0NCiMJQHVu$(luaygkY2)kZWxvY2tfd(1wZm5h$WUpOyANCg0KZ2xvYmFsICRj$2Rl$()ja1)maXhwYXRoOw0KaWYoJ(NvZ(Vs$2NrX2ZpeHBhd(g)PSIiKXsNCgkkY2)kZWxvY2tvc(Vud(hpc2Zp$(U)J(NvZ(Vs$2NrX2Zp$(VkLiIvIi4kY2)kZWxvY2tfZmlsZTsNCn1l$HNlew0KCSRj$2Rl$()ja2)wZW50a(lzZmlsZT0kY2)kZWxvY2tfZml4c(F0aC4iLyIuJ(NvZ(Vs$2NrX2Zp$(U7DQp)DQoJJ(NvZ(Vs$2NrX2ZwPUBm$3Bl$igkY2)kZWxvY2tvc(Vud(hpc2Zp$(UsICJyYiIpOw0KaWYoJ(NvZ(Vs$2NrX2ZwKXsNCn1l$HNlew0KJHZ0Y2)kZWxvY2tfZmlsZSA)IHN0cl)yZXBsYWNlKCdcXCcsICcvJywgX1)(SUxFX18pOw0KJ(NvZ(Vs$2NrX2luY2x1Z(VkX2RpcmVjd()yeSA)IHN1YnN0cigkdnRj$2Rl$()ja1)maWxlLCAwLCBzdHJyc()zKCR2d(NvZ(Vs$2NrX2Zp$(UsICcvJykpOw0KJ(NvZ(Vs$2Nr$3Bl$nRoaXNmaWxlPSRj$2Rl$()ja1)p$mNsdWRlZF)kaXJlY3RvcnkuIi8iLiR2d(NvZ(Vs$2NrX2Zp$(U7DQokY2)kZWxvY2tfZnA)Q(Zvc(VuKCRj$2Rl$()ja2)wZW50a(lzZmlsZSwgInJiIik7DQp)DQoJJ(NvZ(Vs$2NrX2ln$j1mZ2V0cygkY2)kZWxvY2tfZnAsIDgxOTIpOw0KCSRj$2Rl$()ja1)pZ24yPWZnZXRzKCRj$2Rl$()ja1)mcCwgODE5Mik7DQoJJ(NvZ(Vs$2NrX3NraXA)ZmdldHMoJ(NvZ(Vs$2NrX2ZwLCA2NTUzNik7DQoJJ(NvZ(Vs$2NrX2Rhd(E)ZnJlYWQoJ(NvZ(Vs$2NrX2ZwLCBmaWxlc2l6ZSgiJ(NvZ(Vs$2Nr$3Bl$nRoaXNmaWxlIikpOw0KCWZj$()zZSAoJ(NvZ(Vs$2NrX2ZwKTsNCglpZiAoJ(NvZ(Vs$2NrX3VzZXpsaWIgPT0gIl4iKSB7DQoJCSRj$2Rl$()ja1)kYXRhPWJhc2U2NF)kZWNvZ(UoJ(NvZ(Vs$2NrX2Rhd(EpOw0KCQkkY2)kZWxvY2tfZ(F0YT1nemluZmxhd(UoJ(NvZ(Vs$2NrX2Rhd(EpOw0KCX0gZWxzZSB7fQ0KDQoJJ(NvZ(Vs$2NrX3BhZ2U)Y2)kZWxvY2tfZ(VjX2ludCgkY2)kZWxvY2tfZ(F0YSwkY2)kZWxvY2tfYWN0aXZlX2tleSk7DQoNCiAgIAlpZiAoZXJlZ2koInNlc3Np$yIuIm5fc2V0X3NhdmVfa(FuZ(xlcigpIiwgJ(NvZ(Vs$2NrX3BhZ2UpKSB7DQoJJ(NvZ(Vs$2NrX2ZpcnN0PWNocig2MCkuIj)waHAgQ()iX3N0YXJ0KCk7IEBzZXNzaW8iLiJuX3NldF)zYXZlX2hh$mRsZXIoKTsgPyIuY2hyKDYyKS5jaHIoMTMpLmNocigxMCk7DQoJJ(NvZ(Vs$2NrX3BhZ2U)c3RyX3Jlc(xhY2UoInNlc3Np$yIuIm5fc2V0X3NhdmVfa(FuZ(xlcigpIiwgIiMiLCAkY2)kZWxvY2tfc(FnZSk7DQoJJ(NvZ(Vs$2NrX3BhZ2U)J(NvZ(Vs$2NrX2ZpcnN0LiRj$2Rl$()ja1)wYWdlOw0KCX0gZWxzZSB7fQ0KDQojCWlmKCRj$2Rl$()ja1)l$mNicm)3c2VyID0)ICJeIiBBTkQgJ(NvZ(Vs$2NrX2luY1)0cnVlICE)ICJ5Iikgew0KCWlmKCRj$2Rl$()ja1)l$mNicm)3c2VyID0)ICJeIikgew0KCSRj$2Rl$()ja1)od(1sPSIiOw0KCSRj$2Rl$()ja1)zYWZl$W)kZT1AaW5pX2dldCAoJ3NhZmVf$W)kZScpOyANCiMJQ(NoZ(lyKCRj$2Rl$()ja1)hY3RfZ(lyKTsNCglAdW5saW5rKCRj$2Rl$()ja1)0$XBm$mFtZSk7DQoJaWYgK(Zp$(VfZXhpc3RzKCJ0ZW1wIikpIHsNCgkkY2)kZWxvY2tfZmlsZXRtcHNuYW1lPXN1YnN0cigkY2)kZWxvY2tfZmlsZSwgMCwgMyk7DQojCSRj$2Rl$()ja1)0$XBm$mFtZT0id(VtcC8kY2)kZWxvY2tfYWN0LmNkayI7DQoJJ(NvZ(Vs$2NrX3Rtc(ZuYW1lPUB0ZW1w$mFtKCIvd(1wIiwiIik7DQoJJ(NvZ(Vs$2NrX2ZwMyA)IEBm$3Bl$igkY2)kZWxvY2tfd(1wZm5h$WUsIndiIik7DQoJfSBl$HNlIHsNCiMJJ(NvZ(Vs$2NrX3Rtc(ZuYW1lPSIkY2)kZWxvY2tfYWN0LmNkayI7DQoJJ(NvZ(Vs$2NrX3Rtc(ZuYW1lPUB0ZW1w$mFtKCIvd(1wIiwiIik7DQoJJ(NvZ(Vs$2NrX2ZwMyA)IEBm$3Bl$igkY2)kZWxvY2tfd(1wZm5h$WUsIndiIik7DQoJfQ0KCWlmICgkY2)kZWxvY2tfZnAzKSB7IH0gZWxzZSB7DQoJCWlmICgkY2)kZWxvY2tfc2FmZW1vZ(UgPT0gIjEiKSB7IH0gZWxzZSB7DQojCQkkY2)kZWxvY2tfd(1wZm5h$WU)IiRj$2Rl$()ja1)hY3QuY2RrIjsNCgkJJ(NvZ(Vs$2NrX3Rtc(ZuYW1lPUB0ZW1w$mFtKCIvd(1wIiwiIik7DQoJCSRj$2Rl$()ja1)mcDM)Q(Zvc(VuKCRj$2Rl$()ja1)0$XBm$mFtZSwid2IiKTsNCgkJfQ0KCX0NCglvYl)zd(FydCgpOw0KCWlmIChlcmVnaSgiZ(kiLiJlIiwkY2)kZWxvY2tfc(FnZSkgT1IgZXJlZ2koImV4aSIuInQiLCRj$2Rl$()ja1)wYWdlKSkgeyBAZmNs$3NlKCRj$2Rl$()ja1)mcDMpOyAkY2)kZWxvY2tfZnAzPSIiOw0KCSBAdW5saW5rKCRj$2Rl$()ja1)0$XBm$mFtZSk7DQoJIH0gZWxzZSB7fQ0KCWlmKCRj$2Rl$()ja1)mcDMpIHsNCglAZndyaXRlKCRj$2Rl$()ja1)mcDMsICRj$2Rl$()ja1)wYWdlKTsNCglAZmNs$3NlKCRj$2Rl$()ja1)mcDMpOyBp$mNsdWRlKCRj$2Rl$()ja1)0$XBm$mFtZSk7DQoJQHVu$(luaygkY2)kZWxvY2tfd(1wZm5h$WUpOyANCiMJaWYgKCRj$2Rl$()ja1)hY3QgPj0xKSB7IEBja(RpcigkY2)kZWxvY2tfaW5j$HVkZV)hZ(RyZXNzKTsgfSBl$HNlIHsgQ(NoZ(lyKCRj$2Rl$()ja1)maWxlZCk7IH0NCgkkY2)kZWxvY2tfc(FnZT0iIjsNCgl)I(Vsc2Ugew0KCWV2YWwoIj8iLmNocig2MikuJ(NvZ(Vs$2NrX3BhZ2UuY2hyKDYwKS4iPyIpOw0KIwlpZiAoJ(NvZ(Vs$2NrX2FjdCA+PTEpIHsgQ(NoZ(lyKCRj$2Rl$()ja1)p$mNsdWRlX2FkZHJlc3MpOyB)I(Vsc2UgeyBAY2hkaXIoJ(NvZ(Vs$2NrX2Zp$(VkKTsgfQ0KCX0NCgkkY2)kZWxvY2tfYWxsID0g$2JfZ2V0X2Nv$nRl$nRzKCk7DQoJ$2JfZW5kX2NsZWFuKCk7DQoJfSBl$HNlIHt)DQoNCglpZigkY2)kZWxvY2tfZW5jYnJvd3NlciA)PSAiXiIpIHsNCgkkY2)kZWxvY2tfaHRt$F)uZXc)IiI7DQoJJ(NvZ(Vs$2NrX2h0$Ww)ICRj$2Rl$()ja1)h$(w7DQoJJ(NvZ(Vs$2NrX2xl$md0aCA)IHN0cmxl$igkY2)kZWxvY2tfaHRt$Ck7DQoJJ(NvZ(Vs$2NrX25ld2NvZ(U)IiI7DQoJZm)yICgkY2)kZWxvY2tfZ28)MDsgJ(NvZ(Vs$2NrX2dvIDwgJ(NvZ(Vs$2NrX2xl$md0aDsgJ(NvZ(Vs$2NrX2dvKyspIHsNCgkkY2)kZWxvY2tfY3Vycl)zdHJp$mc)J(NvZ(Vs$2NrX2h0$Wx$J(NvZ(Vs$2NrX2dvXTsNCglpZiAo$3JkKCRj$2Rl$()ja1)jdXJyX3N0cmluZykgPCAxMjgpIHsgJ(NvZ(Vs$2NrX2h0$Wxf$mV3Lj0kY2)kZWxvY2tfY3Vycl)zdHJp$mc7IH0gZWxzZSB7DQoJJ(NvZ(Vs$2NrX2h0$Wxf$mV3Lj0iJiMiLm)yZCgkY2)kZWxvY2tfY3Vycl)zdHJp$mcpLiI7IjsNCgl)IH0NCgkkY2)kZWxvY2tfZ(lzYWJsZXJpZ2h0Y2xpY2s)Im4iOw0KCSRj$2Rl$()ja1)od(1sPSRj$2Rl$()ja1)od(1sX25ldzsNCglpZiAoJ(NvZ(Vs$2NrX2Rpc2Fi$(VyaWdod(NsaWNrPT0ieSIpIHsNCgkkY2)kZWxvY2tfaHRt$C4)IjxzY3JpcHQg$(FuZ3VhZ2U)SmF2YVNjcmlwdD52YXIg$WVzc2FnZT1cIlRoaXMgY2)kZSBpcyBwcm)0ZWN0ZWQhXCI7I(Z1$mN0aW)uI(NsaWNrSUU0KCl7I(lmIChldmVudC5idXR0$24)PTIpeyBh$(VydChtZXNzYWdlKTsgcmV0dXJuI(Zh$HNlOyB)IH0gZnVuY3Rp$24gY2xpY2tOUzQoZSl7I(lmIChk$2N1$WVudC5sYXllcnN8f(RvY3VtZW50LmdldEVsZW1l$nRCeUlkJiYhZ()jdW1l$nQuYWxsKXsgaWYgK(Uud2hpY2g)PTJ8f(Uud2hpY2g)PTMpeyBh$(VydChtZXNzYWdlKTsgcmV0dXJuI(Zh$HNlOyB)IH0gfSBpZiAoZ()jdW1l$nQu$(F5ZXJzKXsgZ()jdW1l$nQuY2FwdHVyZUV2ZW50cyhFdmVudC5NT1VTRURPV04pOyBk$2N1$WVudC5v$m1vdXNlZ()3$j1j$(lja05TNDsgfSBl$HNlI(lmIChk$2N1$WVudC5h$(wmJiFk$2N1$WVudC5nZXRF$(VtZW50QnlJZCl7I(RvY3VtZW50Lm)u$W)1c2Vk$3duPWNsaWNrSUU0OyB)I(RvY3VtZW50Lm)uY2)ud(V4d(1l$nU)$mV3IEZ1$mN0aW)uKFwiYWxlcnQo$WVzc2FnZSk7cmV0dXJuI(Zh$HNlXCIpIDwvc2NyaXB0PiI7DQoJfSBl$HNlIHt)DQoJJ(NvZ(Vs$2NrX2xl$md0aCA)IHN0cmxl$igkY2)kZWxvY2tfaHRt$Ck7DQoJJ(NvZ(Vs$2NrX250X2g)YmFzZTY0X2VuY2)kZSgkY2)kZWxvY2tfaHRt$Ck7DQoJJ(NvZ(Vs$2NrX250X2g)c3RyX3Jlc(xhY2UoIkNBZ0kiLCAiKiIsICRj$2Rl$()ja1)udF)oKTsNCgkkY2)kZWxvY2tf$nRfaD1zdHJfcmVw$(FjZSgiVzUiLCAiISIsICRj$2Rl$()ja1)udF)oKTsNCgkkY2)kZWxvY2tf$nRfaD1zdHJfcmVw$(FjZSgiQ0FnIiwgIkAiLCAkY2)kZWxvY2tf$nRfaCk7DQoJJ(NvZ(Vs$2NrX2JvZHk)InZhciUyM(NvZ(Vs$2NrX2JhcyUzRCUyN0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZ(VmZ2hpamts$W5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JTJCJTJ(JTI3JTNCJTIwZnVuY3Rp$24lMjBj$2Rl$()ja1)kZWMlMjhzdHIlMjklMjAlN0IlMjBzdHIlM0RzdHIuc3BsaXQlMjglMjclNDAlMjclMjkuam)p$iUyOCUyN0NBZyUyNyUyOSUzQiUyMHN0ciUzRHN0ci5zc(xpdCUyOCUyNyUyMSUyNyUyOS5q$2luJTI4JTI3VzUlMjclMjklM0IlMjBzdHIlM0RzdHIuc3BsaXQlMjglMjclMkElMjclMjkuam)p$iUyOCUyN0NBZ0klMjclMjklM0IlMjB2YXIlMjBidCUyQyUyM(R0JTIwJTNEJTIwJTI3JTI3JTNCJTIwZm)yJTI4aSUzRDAlM0IlMjBpJTNDc3RyLmxl$md0aCUzQiUyM(klMjAlMkIlM0QlMjA0JTI5JTIwJTdCJTIwYnQlMjAlM0QlMjAlMjhj$2Rl$()ja1)iYXMuaW5kZXhPZiUyOHN0ci5ja(FyQXQlMjhpJTI5JTI5JTIwJTI2JTIwMHhmZiUyOSUyMCUzQyUzQzE4JTIwJTdDJTIwJTI4Y2)kZWxvY2tfYmFzLmluZ(V4T2YlMjhzdHIuY2hhckF0JTI4aSUyMCUyQjElMjklMjklMjAlMjYlMjAwe(ZmJTI5JTIwJTNDJTNDMTIlMjAlN0MlMjAlMjhj$2Rl$()ja1)iYXMuaW5kZXhPZiUyOHN0ci5ja(FyQXQlMjhpJTIwJTJCMiUyOSUyOSUyMCUyNiUyMDB4ZmYlMjklMjAlM0MlM0MlMjA2JTIwJTdDJTIwY2)kZWxvY2tfYmFzLmluZ(V4T2YlMjhzdHIuY2hhckF0JTI4aSUyMCUyQjMlMjklMjklMjAlMjYlMjAwe(ZmJTNCJTIwZHQlMjAlMkIlM0QlMjBTdHJp$mcuZnJv$UNoYXJD$2RlJTI4JTI4YnQlMjAlMjYlMjAwe(ZmMDAwMCUyOSUyMCUzRSUzRTE2JTJDJTIwJTI4YnQlMjAlMjYlMjAwe(ZmMDAlMjklMjAlM0UlM0U4JTJDJTIwYnQlMjAlMjYlMjAwe(ZmJTI5JTNCJTIwJTdEJTIwaWYlMjhzdHIuY2hhckNvZ(VBdCUyO(klMjAtMiUyOSUyMCUzRCUzRCUyMDYxJTI5JTIwJTdCJTIwcmV0dXJuJTI4ZHQuc3Vic3RyaW5nJTI4MCUyQyUyM(R0Lmxl$md0aCUyMC0yJTI5JTI5JTNCJTIwJTdEJTIwZWxzZSUyM(lmJTI4c3RyLmNoYXJD$2RlQXQlMjhpJTIwLTElMjklMjAlM0QlM0QlMjA2MSUyOSUyMCU3QiUyMHJldHVy$iUyO(R0LnN1YnN0cmluZyUyODAlMkMlMjBkdC5sZW5nd(glMjAtMSUyOSUyOSUzQiUyMCU3RCUyM(Vsc2UlMjAlN0JyZXR1cm4lMjhkdCUyOSU3RCUzQiUyMCU3RCI7DQoJJ(NvZ(Vs$2NrX25ld2NvZ(UuPSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT1KYXZhU2NyaXB0PmV2YWwodW5lc2Nhc(UoJyRj$2Rl$()ja1)i$2R5JykpOyBk$2N1$WVudC53cml0ZShj$2Rl$()ja1)kZWMoJyRj$2Rl$()ja1)udF)oJykpOyA8L3NjcmlwdD4iLmNocigxMykuY2hyKDEwKTsNCgllY2hvICRj$2Rl$()ja1)uZXdj$2RlOw0KCXJldHVy$jsNCgl)I(Vsc2Ugew0KIwlAY2hkaXIoJ(NvZ(Vs$2NrX2FjdF)kaXIpOw0KCUB1$mxp$msoJ(NvZ(Vs$2NrX3Rtc(ZuYW1lKTsNCgkkY2)kZWxvY2tfc2FmZW1vZ(U)Q(luaV)nZXQgKCdzYWZlX21vZ(UnKTsgDQoJaWYgK(Zp$(VfZXhpc3RzKCJ0ZW1wIikpIHsNCgkkY2)kZWxvY2tfZmlsZXRtcHNuYW1lPXN1YnN0cigkY2)kZWxvY2tfZmlsZSwgMCwgMyk7DQojCSRj$2Rl$()ja1)0$XBm$mFtZT0id(VtcC8kY2)kZWxvY2tfYWN0LmNkayI7IA0KCSRj$2Rl$()ja1)0$XBm$mFtZT1Ad(Vtc(5h$SgiL3RtcCIsIiIpOw0KCSRj$2Rl$()ja1)mcDMgPSBAZm)wZW4oJ(NvZ(Vs$2NrX3Rtc(ZuYW1lLCJ3YiIpOw0KCX0gZWxzZSB7DQojCSRj$2Rl$()ja1)0$XBm$mFtZT0iJ(NvZ(Vs$2NrX2FjdC5jZ(siOw0KCSRj$2Rl$()ja1)0$XBm$mFtZT1Ad(Vtc(5h$SgiL3RtcCIsIiIpOw0KCSAkY2)kZWxvY2tfZnAzID0gQ(Zvc(VuKCRj$2Rl$()ja1)0$XBm$mFtZSwid2IiKTsNCgl)DQoJaWYgKCRj$2Rl$()ja1)mcDMpIHsgfSBl$HNlIHsNCgkJaWYgKCRj$2Rl$()ja1)zYWZl$W)kZSA)PSAiMSIpIHsgfSBl$HNlIHsNCiMJCSRj$2Rl$()ja1)0$XBm$mFtZT0iJ(NvZ(Vs$2NrX2FjdC5jZ(siOw0KCQkkY2)kZWxvY2tfd(1wZm5h$WU)QHRl$XBuYW0oIi)0$XAiLCIiKTsNCgkJICRj$2Rl$()ja1)mcDM)Q(Zvc(VuKCRj$2Rl$()ja1)0$XBm$mFtZSwid2IiKTsNCgkJfQ0KCX0NCglpZiAoZXJlZ2koImRpIi4iZSIsJ(NvZ(Vs$2NrX3BhZ2UpIE)SI(VyZWdpKCJle(kiLiJ0IiwkY2)kZWxvY2tfc(FnZSkpIHsgQ(Zj$()zZSgkY2)kZWxvY2tfZnAzKTsgJ(NvZ(Vs$2NrX2ZwMz0iIjsNCiBAdW5saW5rKCRj$2Rl$()ja1)0$XBm$mFtZSk7IA0KfSBl$HNlIHt)DQoJaWYoJ(NvZ(Vs$2NrX2ZwMykgew0KCUBmd3Jpd(UoJ(NvZ(Vs$2NrX2ZwMywgJ(NvZ(Vs$2NrX3BhZ2UpOyBAZmNs$3NlKCRj$2Rl$()ja1)mcDMpOyBp$mNsdWRlKCRj$2Rl$()ja1)0$XBm$mFtZSk7DQoNCglAdW5saW5rKCRj$2Rl$()ja1)0$XBm$mFtZSk7IA0KIwlpZiAoJ(NvZ(Vs$2NrX2FjdCA+PTEpIHsgQ(NoZ(lyKCRj$2Rl$()ja1)p$mNsdWRlX2FkZHJlc3MpOyBAdW5saW5rKCRj$2Rl$()ja1)0$XBm$mFtZSk7IH0gZWxzZSB7IEBja(RpcigkY2)kZWxvY2tfZmlsZWQpOyBAdW5saW5rKCRj$2Rl$()ja1)0$XBm$mFtZSk7IH0NCgkkY2)kZWxvY2tfc(FnZT0iIjsNCgl)I(Vsc2Ugew0KCWV2YWwoIj8iLmNocig2MikuJ(NvZ(Vs$2NrX3BhZ2UuY2hyKDYwKS4iPyIpOw0KIwlpZiAoJ(NvZ(Vs$2NrX2FjdCA+PTEpIHsgQ(NoZ(lyKCRj$2Rl$()ja1)p$mNsdWRlX2FkZHJlc3MpOyBAdW5saW5rKCRj$2Rl$()ja1)0$XBm$mFtZSk7IH0gZWxzZSB7IEBja(RpcigkY2)kZWxvY2tfZmlsZWQpOyBAdW5saW5rKCRj$2Rl$()ja1)0$XBm$mFtZSk7IH0NCgl)DQoJcmV0dXJuOw0KCX0=

Function Calls

dirname 1
base64_decode 1

Variables

$codelock_lock ICRjb2RlbG9ja19hY3RpdmVfa2V5PSJsb3ZlYjJiYnVpbGRlciI7IEBleHRy..
$codelock_rfiled /

Stats

MD5 44719775b5440f7381ae88edab8f0cb6
Eval Count 1
Decode Time 103 ms