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 /* WARNING: This script is protected. Any attempt to reverse engineer, debug or dec..

Decoded Output download

 $codelock_active_key="denonmanual"; @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="denonmanual";     $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 (preg_match("/codelock_decrypted/i", $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>This script is protected</b></font><br /><br />";             } else {             echo "<font face=\"arial\" color=\"#006699\" size=\"4\"><b>$codelock_scname is protected</b></font><br /><br />";             }         if ($codelock_sub == "y") {         echo "<font face=\"arial\" color=\"#cc0000\" size=\"4\"><b>error </b></font><font face=\"arial\" color=\"#006699\" size=\"2\"><b>wrong unlock key</b></font><br /><br />";         } else {}         echo"<font face=\"Arial\" size=\"2\">Please enter your unlock key to proceed:</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=\"Unlock Now >>>\">";         if ($codelock_coname == "") { } else {          echo "<br /><br /><font face=\"arial\" color=\"#000000\" size=\"2\">This software is licensed to: $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
/* WARNING: This script is protected. Any attempt to reverse engineer, debug or decode this file or its dependent files is strictly prohibited */
$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="ICRjb2RlbG9ja19hY3RpdmVfa2V5PSJkZW5vbm1hbnVhbCI7IEBleHRyYWN0KCRfUkVRVUVTVCk7IGVycm9yX3JlcG9ydGluZyhFX0FMTCBeIEVfTk9USUNFKTsgaWYgKCRjb2RlbG9ja19hY3QgPj0gMSkgeyB9IGVsc2UgeyBAc2V0X3RpbWVfbGltaXQoMjQwKTsgfSBpZiAoJGNvZGVsb2NrX2VuYyA9PSAiIikgeyAkY29kZWxvY2tfZW5jPSJjb2RlbG9jay5waHAiOyB9IGVsc2Uge30gaWYgKCRjb2RlbG9ja19hY3QgPj0gMSkgeyAgICAgICAgICRjb2RlbG9ja190ZXN0c2l6ZT1AZmlsZXNpemUoJGNvZGVsb2NrX2ZpbGVkLyRjb2RlbG9ja19lbmMpOyAgICAgICAgIGlmKCRjb2RlbG9ja190ZXN0c2l6ZSAhPSAkY29kZWxvY2tfbWFzdGVyc2l6ZSl7ICAgICAgICAgQGNobW9kKCIkY29kZWxvY2tfZmlsZWQvJGNvZGVsb2NrX2VuYyIsIDA3NzcpOyAgICAgICAgIGlmIChAY29weSAoIiRjb2RlbG9ja19yZmlsZWQvJGNvZGVsb2NrX2VuYyIsIiRjb2RlbG9ja19maWxlZC8kY29kZWxvY2tfZW5jIikpe31lbHNleyAgICAgICAgICAgICAkY29kZWxvY2tfZnAyID0gQGZvcGVuKCIkY29kZWxvY2tfZmlsZWQvJGNvZGVsb2NrX2VuYyIsICJ3YiIpOyAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX2ZwMikgeyB9IGVsc2UgeyBAdW5saW5rKCRjb2RlbG9ja19maWxlZC8kY29kZWxvY2tfZW5jKTsgJGNvZGVsb2NrX2ZwMiA9IEBmb3BlbigiJGNvZGVsb2NrX2ZpbGVkLyRjb2RlbG9ja19lbmMiLCAid2IiKTsgfSAgICAgICAgICAgICBpZiAoJGNvZGVsb2NrX2ZwMikgeyAgICAgICAgICAgICBAZndyaXRlKCRjb2RlbG9ja19mcDIsICRjb2RlbG9ja19tYXN0ZXJkYXRhKTsgICAgICAgICAgICAgQGZjbG9zZSgkY29kZWxvY2tfZnAyKTsgICAgICAgICAgICAgfSAgICAgICAgIH0gICAgICAgICBAY2htb2QoIiRjb2RlbG9ja19lbmMiLCAwNzc3KTsgfSB9IGVsc2Uge30gJGNvZGVsb2NrX2VuY2Jyb3dzZXI9IiI7ICRjb2RlbG9ja191c2V6bGliPSIiOyAkY29kZWxvY2tfc2NuYW1lPSIiOyAkY29kZWxvY2tfY29uYW1lPSIiOyAkY29kZWxvY2tfZXh0cmFub3Rlcz0iIjsgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2d6ZGVmbGF0ZScpIEFORCAkY29kZWxvY2tfdXNlemxpYj09Il4iKSB7ICAgICBlY2hvIjxmb250IGZhY2U9J3ZlcmRhbmEnIHNpemU9JzInPjxiciAvPjxiPkVycm9yITwvYj4gWW91IG5lZWQgdG8gaW5zdGFsbCB0aGUgWkxJQiBtb2R1bGUgZm9yIFBIUCB0byBydW4gdGhpcyBzY3JpcHQhPC9mb250PiI7ICAgICBkaWUoKTsgfSBlbHNlIHt9ICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdjb2RlbG9ja19lbmNfaW50JykpIHsgfSBlbHNlIHsgZnVuY3Rpb24gY29kZWxvY2tfZW5jX2ludCgkY29kZWxvY2tfZW5jX2ludF9jb2RlLCRjb2RlbG9ja19lbmNfa2V5KSB7ICRjb2RlbG9ja19lbmNpbnRfY29kZT1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19lbmNfaW50X2NvZGUpOyAgaWYgKCRjb2RlbG9ja19lbmNfa2V5ID09ICIiKSB7IH0gZWxzZSB7ICRjb2RlbG9ja19lbmNfa2V5PWJhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX2VuY19rZXkpOyAkY29kZWxvY2tfazE9c3Vic3RyKCRjb2RlbG9ja19lbmNfa2V5LDAsMSk7ICRjb2RlbG9ja19rMj1zdWJzdHIoJGNvZGVsb2NrX2VuY19rZXksMSwxKTsgJGNvZGVsb2NrX2szPXN1YnN0cigkY29kZWxvY2tfZW5jX2tleSwyLDEpOyAkY29kZWxvY2tfZW5jaW50X2NvZGU9c3RyX3JlcGxhY2UoIiRjb2RlbG9ja19rMSIsICIkIiwgJGNvZGVsb2NrX2VuY2ludF9jb2RlKTsgJGNvZGVsb2NrX2VuY2ludF9jb2RlPXN0cl9yZXBsYWNlKCIkY29kZWxvY2tfazIiLCAiKCIsICRjb2RlbG9ja19lbmNpbnRfY29kZSk7ICRjb2RlbG9ja19lbmNpbnRfY29kZT1zdHJfcmVwbGFjZSgiJGNvZGVsb2NrX2szIiwgIikiLCAkY29kZWxvY2tfZW5jaW50X2NvZGUpOyB9IHJldHVybiAkY29kZWxvY2tfZW5jaW50X2NvZGU7IH0gfSAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnY29kZWxvY2tfZGVjX2ludCcpKSB7IH0gZWxzZSB7IGZ1bmN0aW9uIGNvZGVsb2NrX2RlY19pbnQoJGNvZGVsb2NrX2RlY2ludF9jb2RlLCRjb2RlbG9ja19jYWxjX2tleSkgeyAgaWYgKCRjb2RlbG9ja19jYWxjX2tleSA9PSAiIikgeyB9IGVsc2UgeyAkY29kZWxvY2tfY2FsY19rZXk9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfY2FsY19rZXkpOyAkY29kZWxvY2tfazE9c3Vic3RyKCRjb2RlbG9ja19jYWxjX2tleSwwLDEpOyAkY29kZWxvY2tfazI9c3Vic3RyKCRjb2RlbG9ja19jYWxjX2tleSwxLDEpOyAkY29kZWxvY2tfazM9c3Vic3RyKCRjb2RlbG9ja19jYWxjX2tleSwyLDEpOyAkY29kZWxvY2tfZGVjaW50X2NvZGU9c3RyX3JlcGxhY2UoIiQiLCAiJGNvZGVsb2NrX2sxIiwgJGNvZGVsb2NrX2RlY2ludF9jb2RlKTsgJGNvZGVsb2NrX2RlY2ludF9jb2RlPXN0cl9yZXBsYWNlKCIoIiwgIiRjb2RlbG9ja19rMiIsICRjb2RlbG9ja19kZWNpbnRfY29kZSk7ICRjb2RlbG9ja19kZWNpbnRfY29kZT1zdHJfcmVwbGFjZSgiKSIsICIkY29kZWxvY2tfazMiLCAkY29kZWxvY2tfZGVjaW50X2NvZGUpOyB9ICRjb2RlbG9ja19kZWNpbnRfY29kZT1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19kZWNpbnRfY29kZSk7ICByZXR1cm4gJGNvZGVsb2NrX2RlY2ludF9jb2RlOyB9IH0gaWYgKGZ1bmN0aW9uX2V4aXN0cygnY29kZWxvY2tfZGVjJykpIHsgfSBlbHNlIHsgZnVuY3Rpb24gY29kZWxvY2tfZGVjKCRjb2RlbG9ja192KXsgc3dpdGNoKCRjb2RlbG9ja192KXsgY2FzZSAiQSI6JGR2PTA7YnJlYWs7IGNhc2UgIkIiOiRkdj0xO2JyZWFrOyBjYXNlICJDIjokZHY9MjticmVhazsgY2FzZSAiRCI6JGR2PTM7YnJlYWs7IGNhc2UgIkUiOiRkdj00O2JyZWFrOyBjYXNlICJGIjokZHY9NTticmVhazsgY2FzZSAiRyI6JGR2PTY7YnJlYWs7IGNhc2UgIkgiOiRkdj03O2JyZWFrOyBjYXNlICJJIjokZHY9ODticmVhazsgY2FzZSAiSiI6JGR2PTk7YnJlYWs7IGNhc2UgIksiOiRkdj0xMDticmVhazsgY2FzZSAiTCI6JGR2PTExO2JyZWFrOyBjYXNlICJNIjokZHY9MTI7YnJlYWs7IGNhc2UgIk4iOiRkdj0xMzticmVhazsgY2FzZSAiTyI6JGR2PTE0O2JyZWFrOyBjYXNlICJQIjokZHY9MTU7YnJlYWs7IGNhc2UgIlEiOiRkdj0xNjticmVhazsgY2FzZSAiUiI6JGR2PTE3O2JyZWFrOyBjYXNlICJTIjokZHY9MTg7YnJlYWs7IGNhc2UgIlQiOiRkdj0xOTticmVhazsgY2FzZSAiVSI6JGR2PTIwO2JyZWFrOyBjYXNlICJWIjokZHY9MjE7YnJlYWs7IGNhc2UgIlciOiRkdj0yMjticmVhazsgY2FzZSAiWCI6JGR2PTIzO2JyZWFrOyBjYXNlICJZIjokZHY9MjQ7YnJlYWs7IGNhc2UgIloiOiRkdj0yNTticmVhazsgY2FzZSAiYSI6JGR2PTI2O2JyZWFrOyBjYXNlICJiIjokZHY9Mjc7YnJlYWs7IGNhc2UgImMiOiRkdj0yODticmVhazsgY2FzZSAiZCI6JGR2PTI5O2JyZWFrOyBjYXNlICJlIjokZHY9MzA7YnJlYWs7IGNhc2UgImYiOiRkdj0zMTticmVhazsgY2FzZSAiZyI6JGR2PTMyO2JyZWFrOyBjYXNlICJoIjokZHY9MzM7YnJlYWs7IGNhc2UgImkiOiRkdj0zNDticmVhazsgY2FzZSAiaiI6JGR2PTM1O2JyZWFrOyBjYXNlICJrIjokZHY9MzY7YnJlYWs7IGNhc2UgImwiOiRkdj0zNzticmVhazsgY2FzZSAibSI6JGR2PTM4O2JyZWFrOyBjYXNlICJuIjokZHY9Mzk7YnJlYWs7IGNhc2UgIm8iOiRkdj00MDticmVhazsgY2FzZSAicCI6JGR2PTQxO2JyZWFrOyBjYXNlICJxIjokZHY9NDI7YnJlYWs7IGNhc2UgInIiOiRkdj00MzticmVhazsgY2FzZSAicyI6JGR2PTQ0O2JyZWFrOyBjYXNlICJ0IjokZHY9NDU7YnJlYWs7IGNhc2UgInUiOiRkdj00NjticmVhazsgY2FzZSAidiI6JGR2PTQ3O2JyZWFrOyBjYXNlICJ3IjokZHY9NDg7YnJlYWs7IGNhc2UgIngiOiRkdj00OTticmVhazsgY2FzZSAieSI6JGR2PTUwO2JyZWFrOyBjYXNlICJ6IjokZHY9NTE7YnJlYWs7IGNhc2UgIjAiOiRkdj01MjticmVhazsgY2FzZSAiMSI6JGR2PTUzO2JyZWFrOyBjYXNlICIyIjokZHY9NTQ7YnJlYWs7IGNhc2UgIjMiOiRkdj01NTticmVhazsgY2FzZSAiNCI6JGR2PTU2O2JyZWFrOyBjYXNlICI1IjokZHY9NTc7YnJlYWs7IGNhc2UgIjYiOiRkdj01ODticmVhazsgY2FzZSAiNyI6JGR2PTU5O2JyZWFrOyBjYXNlICI4IjokZHY9NjA7YnJlYWs7IGNhc2UgIjkiOiRkdj02MTticmVhazsgY2FzZSAiKyI6JGR2PTYyO2JyZWFrOyBjYXNlICIvIjokZHY9NjM7YnJlYWs7IGNhc2UgIj0iOiRkdj02NDticmVhazsgZGVmYXVsdDogJGR2PTA7YnJlYWs7IH0gcmV0dXJuICRkdjsgfSB9IGlmIChmdW5jdGlvbl9leGlzdHMoJ2NvZGVsb2NrX3J1bicpKSB7IH0gZWxzZSB7IGZ1bmN0aW9uIGNvZGVsb2NrX3J1bigkY2lwaCwka2V5KXsgJG09MDsgJGFiYz0iIjsgZm9yKCRpPTA7JGk8c3RybGVuKCRjaXBoKTskaSsrKXsgJGM9c3Vic3RyKCRjaXBoLCRpLDEpOyAkZHY9Y29kZWxvY2tfZGVjKCRjKTsgJGR2PSgkZHYtJG0pLzQ7ICRmYj1kZWNiaW4oJGR2KTsgd2hpbGUoc3RybGVuKCRmYik8NCl7ICRmYj0iMCIuJGZiOyB9ICRhYmM9JGFiYy4kZmI7ICRtKys7IGlmKCRtPjMpeyAkbT0wOyB9IH0gJGtsPTA7ICRwZD0iIjsgZm9yKCRqPTA7JGo8c3RybGVuKCRhYmMpOyRqPSRqKzgpeyAkYz1zdWJzdHIoJGFiYywkaiw4KTsgJGs9c3Vic3RyKCRrZXksJGtsLDEpOyAkZGM9YmluZGVjKCRjKTsgJGRjPSRkYyAtIHN0cmxlbigka2V5KTsgJGM9Y2hyKCRkYyk7ICRrbCsrOyBpZigka2w+PXN0cmxlbigka2V5KSl7ICRrbD0wOyB9ICRkYz1vcmQoJGMpXm9yZCgkayk7ICRwPWNocigkZGMpOyAkcGQ9JHBkLiRwOyB9IHJldHVybiAkcGQ7IH0gfSAgaWYgKHN1YnN0cigkY29kZWxvY2tfYWN0aXZlX2tleSwgMCwgMTUpICE9ICJjb2RlbG9ja19hY3RpdmUiKSB7ICAgICBpZiAoJGNvZGVsb2NrX2VuYyA9PSAiIikgeyAkY29kZWxvY2tfZW5jPSJjb2RlbG9jay5waHAiOyB9IGVsc2Uge30gICAgICAgICBpZigkY29kZWxvY2tfZml4cGF0aD09IiIpeyAgICAgICAgICAgICAkY29kZWxvY2tfbG9jYXRlZF9maWxlX3RlbXA9JGNvZGVsb2NrX2ZpbGVkLiIvIi4kY29kZWxvY2tfZW5jOyAgICAgICAgIH1lbHNleyAgICAgICAgICAgICAkY29kZWxvY2tfbG9jYXRlZF9maWxlX3RlbXA9JGNvZGVsb2NrX2ZpeHBhdGguIi8iLiRjb2RlbG9ja19lbmM7ICAgICAgICAgfSAgICAgJGNvZGVsb2NrX2ZwMyA9IEBmb3BlbigiJGNvZGVsb2NrX2xvY2F0ZWRfZmlsZV90ZW1wIiwgInJiIik7ICAgICAkY29kZWxvY2tfc2tpcCA9IEBmZ2V0cygkY29kZWxvY2tfZnAzLCA4MTkyKTsgICAgICRjb2RlbG9ja19za2lwMiA9IEBmZ2V0cygkY29kZWxvY2tfZnAzLCA4MTkyKTsgICAgICRjb2RlbG9ja19za2lwMyA9IEBmZ2V0cygkY29kZWxvY2tfZnAzLCA2NTUzNik7ICAgICAkY29kZWxvY2tfa2V5X2RhdGEgPSBAZnJlYWQoJGNvZGVsb2NrX2ZwMywgQGZpbGVzaXplKCIkY29kZWxvY2tfbG9jYXRlZF9maWxlX3RlbXAiKSk7ICAgICBAZmNsb3NlICgkY29kZWxvY2tfZnAzKTsgICAgIGlmICgkY29kZWxvY2tfdXNlemxpYiA9PSAiXiIpIHsgICAgICRjb2RlbG9ja19rZXlfZGF0YT1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19rZXlfZGF0YSk7ICAgICAkY29kZWxvY2tfa2V5X2RhdGE9Z3ppbmZsYXRlKCRjb2RlbG9ja19rZXlfZGF0YSk7ICAgICB9IGVsc2Uge30gICAgICRjb2RlbG9ja19rZXlfZGF0YT1jb2RlbG9ja19kZWNfaW50KCRjb2RlbG9ja19rZXlfZGF0YSwkY29kZWxvY2tfYWN0aXZlX2tleSk7ICAgICBldmFsKCRjb2RlbG9ja19rZXlfZGF0YSk7ICAgICBpZiAoJGNvZGVsb2NrX2FjdCA+PSAxKSB7ICAgICB9IGVsc2UgeyAgICAgcmV0dXJuOyAgICAgfSB9IGVsc2UgeyAgICAgICRjb2RlbG9ja19hc2tmb3JrZXk9Im4iOyAgICAgaWYoJGNvZGVsb2NrX2Fza2ZvcmtleSA9PSAieSIpIHsgICAgIH0gZWxzZSB7ICAgICAkY29kZWxvY2tfdW5sb2NrPSJkZW5vbm1hbnVhbCI7ICAgICAkY29kZWxvY2tfc3ViPSJ5IjsgICAgIH0gICAgICAgaWYgKCRjb2RlbG9ja19lbmMgPT0gIiIpIHsgJGNvZGVsb2NrX2VuYz0iY29kZWxvY2sucGhwIjsgfSBlbHNlIHt9ICAgICAgICAgaWYoJGNvZGVsb2NrX2ZpeHBhdGg9PSIiKXsgICAgICAgICAkY29kZWxvY2tfb3BlbnRoaXNmaWxlMj0kY29kZWxvY2tfZmlsZWQuIi8iLiRjb2RlbG9ja19lbmM7ICAgICAgICAgfWVsc2V7ICAgICAgICAgJGNvZGVsb2NrX29wZW50aGlzZmlsZTI9JGNvZGVsb2NrX2ZpeHBhdGguIi8iLiRjb2RlbG9ja19lbmM7ICAgICAgICAgfSAgICAgICAgIGlmKCRjb2RlbG9ja19zdWIgPT0gInkiKSB7ICAgICAgICAgJGNvZGVsb2NrX2ZwID0gQGZvcGVuKCIkY29kZWxvY2tfb3BlbnRoaXNmaWxlMiIsICJyYiIpOyAgICAgICAgICRjb2RlbG9ja19za2lwID0gQGZnZXRzKCRjb2RlbG9ja19mcCwgODE5Mik7ICAgICAgICAgJGNvZGVsb2NrX3NraXAyID0gQGZnZXRzKCRjb2RlbG9ja19mcCwgODE5Mik7ICAgICAgICAgJGNvZGVsb2NrX3NraXAzID0gQGZnZXRzKCRjb2RlbG9ja19mcCwgNjU1MzYpOyAgICAgICAgICRjb2RlbG9ja19rZXlfZGF0YSA9IEBmcmVhZCgkY29kZWxvY2tfZnAsIEBmaWxlc2l6ZSgiJGNvZGVsb2NrX29wZW50aGlzZmlsZTIiKSk7ICAgICAgICAgQGZjbG9zZSAoJGNvZGVsb2NrX2ZwKTsgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAgICAgICAgICAgICAkY29kZWxvY2tfa2V5X2RhdGE9YmFzZTY0X2RlY29kZSgkY29kZWxvY2tfa2V5X2RhdGEpOyAgICAgICAgICAgICAkY29kZWxvY2tfa2V5X2RhdGE9Z3ppbmZsYXRlKCRjb2RlbG9ja19rZXlfZGF0YSk7ICAgICAgICAgICAgIH0gZWxzZSB7fSAgICAgICAgICRjb2RlbG9ja19leGVjPWNvZGVsb2NrX3J1bigkY29kZWxvY2tfa2V5X2RhdGEsJGNvZGVsb2NrX3VubG9jayk7ICAgICAgICAgaWYgKHByZWdfbWF0Y2goIi9jb2RlbG9ja19kZWNyeXB0ZWQvaSIsICRjb2RlbG9ja19leGVjKSkgeyAgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPSRjb2RlbG9ja19sb2NrOyAgICAgICAgICAgICBmb3IgKCRjb2RlbG9ja19paT0wOyAkY29kZWxvY2tfaWkgPCAxMTsgJGNvZGVsb2NrX2lpKyspIHsgICAgICAgICAgICAgJGNvZGVsb2NrX2NvZGVpaT1nemluZmxhdGUoYmFzZTY0X2RlY29kZSgkY29kZWxvY2tfY29kZWlpKSk7ICAgICAgICAgICAgICRjb2RlbG9ja19jb2RlaWk9c3RyX3JlcGxhY2UoImV2YWwoZ3ppbmYiLiJsYXRlKGJhc2U2NF9kZSIuImNvZGUoJyIsICIiLCAkY29kZWxvY2tfY29kZWlpKTsgICAgICAgICAgICAgJGNvZGVsb2NrX2NvZGVpaT1zdHJfcmVwbGFjZSgiJykpKTsiLCAiIiwgJGNvZGVsb2NrX2NvZGVpaSk7ICAgICAgICAgICAgIH0gICAgICAgICAgICAgJGNvZGVsb2NrX2xvY2s9JGNvZGVsb2NrX2NvZGVpaTsgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgJGNvZGVsb2NrX2xvY2s9YmFzZTY0X2RlY29kZSgkY29kZWxvY2tfbG9jayk7ICAgICAgICAgICAgIH0gICAgICAgICAgICAgICRjb2RlbG9ja19za2lwMz0kY29kZWxvY2tfbG9jazsgICAgICAgICAgICAgJGNvZGVsb2NrX3NraXAzPXN0cl9yZXBsYWNlKCJjb2RlbG9ja19hYyIuInRpdmVfa2V5X3RleHQiLCAkY29kZWxvY2tfdW5sb2NrLCAkY29kZWxvY2tfc2tpcDMpOyAgICAgICAgICAgICAkcHJlc19jb2RlbG9ja19za2lwMz0kY29kZWxvY2tfc2tpcDM7ICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPSRjb2RlbG9ja19za2lwMzsgICAgICAgICAgICAgJGNvZGVsb2NrX2NvZGVpaT1nemRlZmxhdGUoJGNvZGVsb2NrX2NvZGVpaSk7ICRjb2RlbG9ja19jb2RlaWk9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfY29kZWlpKTsgICAgICAgICAgICAgZm9yICgkY29kZWxvY2tfaWk9MDsgJGNvZGVsb2NrX2lpIDwgMTA7ICRjb2RlbG9ja19paSsrKSB7ICAgICAgICAgICAgICRjb2RlbG9ja19jb2RlaWk9ImV2YWwoZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJyIuJGNvZGVsb2NrX2NvZGVpaS4iJykpKTsiOyAgICAgICAgICAgICAkY29kZWxvY2tfY29kZWlpPWd6ZGVmbGF0ZSgkY29kZWxvY2tfY29kZWlpKTsgJGNvZGVsb2NrX2NvZGVpaT1iYXNlNjRfZW5jb2RlKCRjb2RlbG9ja19jb2RlaWkpOyAgICAgICAgICAgICB9ICAgICAgICAgICAgICRjb2RlbG9ja19za2lwMz0kY29kZWxvY2tfY29kZWlpOyAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAkY29kZWxvY2tfc2tpcDM9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfc2tpcDMpOyAgICAgICAgICAgICB9ICAgICAgICAgICRjb2RlbG9ja19uc2tpcDM9JGNvZGVsb2NrX3NraXAzOyAgICAgICAgICRjb2RlbG9ja19ubnNraXAzPSIiOyAgICAgICAgIGlmICgkY29kZWxvY2tfZXhwID09ICIiKSB7IH0gZWxzZSB7ICRjb2RlbG9ja19ubnNraXAzLj0iJCIuImNvZGVsb2NrX2V4cD1cIiRjb2RlbG9ja19leHBcIjsgIjsgfSAgICAgICAgICAgICAgaWYgKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgeyAgICAgICAgICAgICAkY29kZWxvY2tfbm5uc2tpcDM9ImlmICgiLiIkIi4iY29kZWxvY2tfZmlsZSA9PSAnJykgeyBlY2hvIFwiPGZvbnQgZmFjZT0ndmVyZGFuYScgc2l6ZT0nMic+PGJyIC8+PGI+RXJyb3IhPC9iPiBZb3UgY2Fubm90IHJ1biBjb2RlbG9jayBkaXJlY3RseS4uLjwvZm9udD5cIjsgZGllKCk7IH0gZWxzZSB7fSAiLiRjb2RlbG9ja19ubnNraXAzLiIkIi4iY29kZWxvY2tfbG9jaz1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChnemluZmxhdGUoYmFzZTY0X2RlY29kZSgiLiIkIi4iY29kZWxvY2tfbG9jaykpKTsgcmV0dXJuOyA/Ii5jaHIoNjIpLmNocigxMykuY2hyKDEwKTsgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgJGNvZGVsb2NrX25ubnNraXAzPSJpZiAoIi4iJCIuImNvZGVsb2NrX2ZpbGUgPT0gJycpIHsgZWNobyBcIjxmb250IGZhY2U9J3ZlcmRhbmEnIHNpemU9JzInPjxiciAvPjxiPkVycm9yITwvYj4gWW91IGNhbm5vdCBydW4gY29kZWxvY2sgZGlyZWN0bHkuLi48L2ZvbnQ+XCI7IGRpZSgpOyB9IGVsc2Uge30gIi4kY29kZWxvY2tfbm5za2lwMy4iJCIuImNvZGVsb2NrX2xvY2s9XCIkY29kZWxvY2tfbnNraXAzXCI7IGV2YWwoYmFzZTY0X2RlY29kZSgiLiIkIi4iY29kZWxvY2tfbG9jaykpOyByZXR1cm47ID8iLmNocig2MikuY2hyKDEzKS5jaHIoMTApOyAgICAgICAgICAgICB9ICAgICAgICAgJGNvZGVsb2NrX2V4ZWMyPWNvZGVsb2NrX2VuY19pbnQoJGNvZGVsb2NrX2V4ZWMsJGNvZGVsb2NrX3VubG9jayk7ICAgICAgICAgIGlmICgkY29kZWxvY2tfdXNlemxpYiA9PSAiXiIpIHsgICAgICAgICAgICAgJGNvZGVsb2NrX2V4ZWMyPWd6ZGVmbGF0ZSgkY29kZWxvY2tfZXhlYzIpOyAgICAgICAgICAgICAkY29kZWxvY2tfZXhlYzI9YmFzZTY0X2VuY29kZSgkY29kZWxvY2tfZXhlYzIpOyAgICAgICAgICAgICB9IGVsc2Uge30gICAgICAgICAkY29kZWxvY2tfZmRhdGE9JGNvZGVsb2NrX3NraXAuJGNvZGVsb2NrX3NraXAyLickY29kZWxvY2tfcmZpbGVkPWRpcm5hbWUoX19GSUxFX18pOyAnLiRjb2RlbG9ja19ubm5za2lwMy4kY29kZWxvY2tfZXhlYzI7ICAgICAgICAgJGNvZGVsb2NrX21hc3RlcmRhdGE9JGNvZGVsb2NrX2ZkYXRhOyAgICAgICAgIEBjaG1vZCgiJGNvZGVsb2NrX2VuYyIsIDA3NzcpOyAgICAgICAgICRjb2RlbG9ja19mcDIgPSBAZm9wZW4oIiRjb2RlbG9ja19lbmMiLCAid2IiKTsgICAgICAgICBpZiAoJGNvZGVsb2NrX2ZwMikgeyB9IGVsc2UgeyBlY2hvICI8YnIgLz48Yj5FcnJvciE8L2I+IFRoZXJlIGlzIGEgd3JpdGUgcGVybWlzc2lvbiBwcm9ibGVtLiAgWW91IG5lZWQgdG8gQ0hNT0QgdGhlIGZpbGU6IDxiPiRjb2RlbG9ja19lbmM8L2I+IHRvIDc3Ny4iOyBkaWUoKTsgfSAgICAgICAgIEBmd3JpdGUoJGNvZGVsb2NrX2ZwMiwgJGNvZGVsb2NrX2ZkYXRhKTsgICAgICAgICBAZmNsb3NlICgkY29kZWxvY2tfZnAyKTsgICAgICAgICBAY2htb2QoIiRjb2RlbG9ja19lbmMiLCAwNzc3KTsgICAgICAgICAkY29kZWxvY2tfbWFzdGVyc2l6ZT1AZmlsZXNpemUoJGNvZGVsb2NrX2VuYyk7ICAgICAgICAgb2Jfc3RhcnQoKTsgcGhwaW5mbyhJTkZPX0dFTkVSQUwpOyAkY29kZWxvY2tfb3Bfc3RyaW5nID0gb2JfZ2V0X2NvbnRlbnRzKCk7ICAgICAgICAgb2JfZW5kX2NsZWFuKCk7IGlmIChzdHJzdHIoJGNvZGVsb2NrX29wX3N0cmluZywgImluZG93cyIpKSB7ICRjb2RlbG9ja193X29wPSJ5IjsgfSBlbHNlIHt9ICAgICAgICAgaWYgKCRjb2RlbG9ja193X29wID09ICJ5IikgeyAkY29kZWxvY2tfc2VwX3N0cj0iOyI7IH0gZWxzZSB7ICRjb2RlbG9ja19zZXBfc3RyPSI6IjsgfSAgICAgICAgICRpbmNsdWRlX2N1cnJfZGlyPSRjb2RlbG9ja19maWxlZDsgICAgICAgICAkaW5jbHVkZV9kaXJfd3JpdGU9QGluaV9nZXQoJ2luY2x1ZGVfcGF0aCcpOyAkaW5jbHVkZV9kaXJfd3JpdGU9JGluY2x1ZGVfZGlyX3dyaXRlLiRjb2RlbG9ja19zZXBfc3RyLiRpbmNsdWRlX2N1cnJfZGlyOyAgICAgICAgIEBpbmlfc2V0KCdpbmNsdWRlX3BhdGgnLCAkaW5jbHVkZV9kaXJfd3JpdGUpOyAgICAgICAgIGV2YWwoJGNvZGVsb2NrX2V4ZWMpOyAgICAgICAgIH0gZWxzZSB7fSAgICAgICAgIH0gZWxzZSB7fSAgaWYgKCRjb2RlbG9ja19hY3QgPj0gMSkgeyAgICAgcmV0dXJuOyAgICAgfSBlbHNlIHsgICAgICAgICBlY2hvIgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoiOyAgICAgICAgIGVjaG8iPGJyIC8+PHRhYmxlIHdpZHRoPVwiNjAwXCIgYm9yZGVyPVwiMVwiIGNlbGxzcGFjaW5nPVwiMTBcIiBjZWxscGFkZGluZz1cIjEwXCIgYmdjb2xvcj1cIiNFMUVBRkZcIiBib3JkZXJjb2xvcj1cIiMwMDY2OTlcIj48dHI+PHRkPiI7ICAgICBpZigkY29kZWxvY2tfZnJ1biA9PSAiIil7ICAgICAkY29kZWxvY2tfb3BlbnRoaXNmaWxlPSRjb2RlbG9ja19maWxlOyAgICAgfWVsc2V7ICAgICAkY29kZWxvY2tfb3BlbnRoaXNmaWxlPSdodHRwOi8vJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIi8iLiRjb2RlbG9ja19mcnVuLiIvIi4kY29kZWxvY2tfZmlsZTsgICAgIH0gICAgICAgICBlY2hvIjxmb3JtIG1ldGhvZD1cInBvc3RcIiBhY3Rpb249XCIkY29kZWxvY2tfb3BlbnRoaXNmaWxlXCI+PGRpdiBhbGlnbj1cImNlbnRlclwiPiI7ICAgICAgICAgICAgIGlmICgkY29kZWxvY2tfc2NuYW1lID09ICIiKSB7ICAgICAgICAgICAgIGVjaG8gIjxmb250IGZhY2U9XCJhcmlhbFwiIGNvbG9yPVwiIzAwNjY5OVwiIHNpemU9XCI0XCI+PGI+VGhpcyBzY3JpcHQgaXMgcHJvdGVjdGVkPC9iPjwvZm9udD48YnIgLz48YnIgLz4iOyAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICBlY2hvICI8Zm9udCBmYWNlPVwiYXJpYWxcIiBjb2xvcj1cIiMwMDY2OTlcIiBzaXplPVwiNFwiPjxiPiRjb2RlbG9ja19zY25hbWUgaXMgcHJvdGVjdGVkPC9iPjwvZm9udD48YnIgLz48YnIgLz4iOyAgICAgICAgICAgICB9ICAgICAgICAgaWYgKCRjb2RlbG9ja19zdWIgPT0gInkiKSB7ICAgICAgICAgZWNobyAiPGZvbnQgZmFjZT1cImFyaWFsXCIgY29sb3I9XCIjY2MwMDAwXCIgc2l6ZT1cIjRcIj48Yj5lcnJvciA8L2I+PC9mb250Pjxmb250IGZhY2U9XCJhcmlhbFwiIGNvbG9yPVwiIzAwNjY5OVwiIHNpemU9XCIyXCI+PGI+d3JvbmcgdW5sb2NrIGtleTwvYj48L2ZvbnQ+PGJyIC8+PGJyIC8+IjsgICAgICAgICB9IGVsc2Uge30gICAgICAgICBlY2hvIjxmb250IGZhY2U9XCJBcmlhbFwiIHNpemU9XCIyXCI+UGxlYXNlIGVudGVyIHlvdXIgdW5sb2NrIGtleSB0byBwcm9jZWVkOjwvZm9udD48YnIgLz48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiY29kZWxvY2tfdW5sb2NrXCIgc2l6ZT1cIjMyXCIgbWF4bGVuZ3RoPVwiNjRcIj4iOyAgICAgICAgIGVjaG8iPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiY29kZWxvY2tfc3ViXCIgdmFsdWU9XCJ5XCI+IjsgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImNvZGVsb2NrX2VuY2Jyb3dzZXJcIiB2YWx1ZT1cIiRjb2RlbG9ja19lbmNicm93c2VyXCI+IjsgICAgICAgICBlY2hvIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImNvZGVsb2NrX2VuY1wiIHZhbHVlPVwiJGNvZGVsb2NrX2VuY1wiPiI7ICAgICAgICAgZWNobyI8YnIgLz48YnIgLz48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJTdWJtaXRcIiB2YWx1ZT1cIlVubG9jayBOb3cgPj4+XCI+IjsgICAgICAgICBpZiAoJGNvZGVsb2NrX2NvbmFtZSA9PSAiIikgeyB9IGVsc2UgeyAgICAgICAgICBlY2hvICI8YnIgLz48YnIgLz48Zm9udCBmYWNlPVwiYXJpYWxcIiBjb2xvcj1cIiMwMDAwMDBcIiBzaXplPVwiMlwiPlRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdG86ICRjb2RlbG9ja19jb25hbWU8L2ZvbnQ+IjsgICAgICAgICB9ICAgICAgICAgaWYgKCRjb2RlbG9ja19leHRyYW5vdGVzID09ICIiKSB7fSBlbHNlIHsgICAgICAgICBlY2hvICI8YnIgLz48Zm9udCBmYWNlPVwiYXJpYWxcIiBjb2xvcj1cIiMwMDAwMDBcIiBzaXplPVwiMlwiPjxiPk5vdGU6IDwvYj4kY29kZWxvY2tfZXh0cmFub3RlczwvZm9udD4iOyAgICAgICAgICAgICB9ICAgICAgICAgZWNobyI8L2Rpdj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+IjsgICAgIH0gfSByZXR1cm47"; eval(base64_decode($codelock_lock)); return; ?>
J(Nv$()sb2NrX2)4c(lye)9t$XNzYWdlPSJWR2hwY3lCelkzSnBjSFFnYUd(eklH)jRjR2x5WldRaCI7I()ycm9yX3Jlc(9yd(lu$yhFX0FMTCBeIE)fTk9USUNFKTsNCm)4dHJhY3QoJF9QT1NUKTsNCiRjb2Rlb(9ja19k$WNyeXB0$WQ9IiI7DQokY29k$WxvY2tfYWN0aX$lX2)4c(lyeT0iY29k$WxvY2tfYWN0aX$lX2)4c(lye)90$Xh0IjsNCmlmICgkY29k$WxvY2tfaXAgPT0gIiIpIHsgfSBlbHNlIHsgJ(Nv$()sb2NrX2lwPWNv$()sb2NrX2RlY19pbnQoJ(Nv$()sb2NrX2lwLCIiKTsgfQ0KJ(Nv$()sb2NrX2)4cD1jb2Rlb(9ja19k$WNfaW50KCRjb2Rlb(9ja19leHAsIiIpOw0KDQpp$iAoJ(Nv$()sb2NrX2)4cCA9PSAiMCIgb3IgJ(Nv$()sb2NrX2)4cCA9PSAiIikgew0KfSBlbHNlIHsNCiAgICAkY29k$WxvY2tf$XhwaXJ5X21lc3Nh$2U9Y29k$WxvY2tf$()jX2ludCgkY29k$WxvY2tf$XhwaXJ5X21lc3Nh$2UsIiIpOw0KICAgICRjb2Rlb(9ja19leHBpcnlfbW)zc2Fn$T1zdHJpcHNsYXNo$XMoJ(Nv$()sb2NrX2)4c(lye)9t$XNzYWdlKTsNCiAgICAkY29k$WxvY2tfd(9kYXk9$(F0$SgiWW1kIix0aW1lKCkpOw0KICAgI(lmICggc3)ic3RyKCRjb2Rlb(9ja19leHAsIDgsIDEpID09ICIqIikgew0KICAgICRjb2Rlb(9ja19keT1zdWJzdHIoJ(Nv$()sb2NrX2)4cCwgNiwgMik7DQogICAgJ(Nv$()sb2NrX21uPXN1YnN0cigkY29k$WxvY2tf$XhwLCA0LCAyKTsNCiAgICAkY29k$WxvY2tfeXI9c3)ic3RyKCRjb2Rlb(9ja19leHAsIDAsIDQpOw0KICAgICRjb2Rlb(9ja190b2Rhe)9h$(Q9c3Ry$nRpbWUoIi)$JW0l$CIsI(1rd(lt$SgwLDAsMCwkY29k$WxvY2tfbW4sJ(Nv$()sb2NrX2R5LCRjb2Rlb(9ja195cikpOw0KICAgIH0g$Wxz$SB7DQogICAgJ(Nv$()sb2NrX2R5PXN1YnN0cigkY29k$WxvY2tfd(9kYXksIDYsIDIpOw0KICAgICRjb2Rlb(9ja19tbj1zdWJzdHIoJ(Nv$()sb2NrX3Rv$(F5LCA0LCAyKTsNCiAgICAkY29k$WxvY2tfeXI9c3)ic3RyKCRjb2Rlb(9ja190b2RheSwgMCwgNCk7DQogICAgJ(Nv$()sb2NrX3Rv$(F5X2Fk$D1zdHJmd(lt$SgiJ)klbS)kIiwgbWt0aW1lKDAsMCwwLCRjb2Rlb(9ja19tbiwkY29k$WxvY2tf$HkrJ(Nv$()sb2NrX2)4cCwkY29k$WxvY2tfeXIpKTsNCiAgICB9DQogICAgJ(Nv$()sb2NrX3Rv$(F5X3dyaXRlPWJhc2U2NF9lbmNv$(UoJ(Nv$()sb2NrX3Rv$(F5X2Fk$Ck7DQogICAgaWYgKHN1YnN0cigkY29k$WxvY2tfYWN0aX$lX2)4c(lyeSwgMCwgOCkgPT0gImNv$()sb2NrIiBBTkQgc3)ic3RyKCRjb2Rlb(9ja19leHAsIDgsIDEpICE9ICIqIikgew0KJ(Nv$()sb2NrX2)4$WM9c3RyX3Jlc(xhY2UoImNv$()sb2NrX2Fjd(kiLiJ2$)9leHBpcnlfd()4dCIsIiRjb2Rlb(9ja190b2Rhe)93cml0$SIsJ(Nv$()sb2NrX2)4$WMpOw0KDQogICAgJ(Nv$()sb2NrX2)4$WMyPWNv$()sb2NrX2)uY19pbnQoJ(Nv$()sb2NrX2)4$WMsJ(Nv$()sb2NrX3)ub(9jayk7DQoNCmlmICgkY29k$WxvY2tfdXNlemxpYiA9PSAiXiIpIHsNCiRjb2Rlb(9ja19le()jMj1nemRl$mxhd(UoJ(Nv$()sb2NrX2)4$WMyKTsNCiRjb2Rlb(9ja19le()jMj1iYXNlNjRf$W5jb2RlKCRjb2Rlb(9ja19le()jMik7DQp9I()sc2Uge30NCg0KJ(Nv$()sb2NrX3NraXAzPSRwcm)zX2Nv$()sb2NrX3NraXAzOw0KaWYgKCRjb2Rlb(9ja191c2)6b(liID09ICJeIikgew0KICAgICRjb2Rlb(9ja19jb2RlaWk9J(Nv$()sb2NrX3NraXAzOw0KICAgICRjb2Rlb(9ja19jb2RlaWk9$3pk$W$sYXRlKCRjb2Rlb(9ja19jb2RlaWkpOyAkY29k$WxvY2tfY29k$WlpPWJhc2U2NF9lbmNv$(UoJ(Nv$()sb2NrX2Nv$()paSk7DQogICAg$m9yICgkY29k$WxvY2tfaWk9MDsgJ(Nv$()sb2NrX2lpIDwgMTA7ICRjb2Rlb(9ja19paSsrKSB7DQogICAgJ(Nv$()sb2NrX2Nv$()paT0i$X$hbChnemlu$mxhd(UoYmFz$TY0X2RlY29k$SgnIi4kY29k$WxvY2tfY29k$WlpLiInKSkpOyI7DQogICAgJ(Nv$()sb2NrX2Nv$()paT1nemRl$mxhd(UoJ(Nv$()sb2NrX2Nv$()paSk7ICRjb2Rlb(9ja19jb2RlaWk9YmFz$TY0X2)uY29k$SgkY29k$WxvY2tfY29k$WlpKTsNCiAgICB9DQogICAgJ(Nv$()sb2NrX3NraXAzPSRjb2Rlb(9ja19jb2RlaWk7DQogICAgfSBlbHNlIHsNCiAgICAkY29k$WxvY2tfc2tpcDM9YmFz$TY0X2)uY29k$SgkY29k$WxvY2tfc2tpcDMpOw0KICAgIH0NCg0KICAgICRjb2Rlb(9ja19uc2tpcDM9J(Nv$()sb2NrX3NraXAzOw0KaWYgKCRjb2Rlb(9ja191c2)6b(liID09ICJeIikgew0KICAgICRjb2Rlb(9ja19ubm5za2lwMz0iaWYgKCIuIiQiLiJjb2Rlb(9ja19maWxlID09ICcnKSB7I()ja(8gXCI8$m9udCBmYWNlPSd2$XJkYW5hJyBzaXplPScyJz48YnIgLz48Yj5FcnJvciE8L2I+IFlvdSBjYW5ub3Qgcn)uI(Nv$()sb2NrI(Rpcm)jd(x5Li4uPC9mb250PlwiOyBkaWUoKTsgfSBlbHNlIHt9ICIuJ(Nv$()sb2NrX25uc2tpcDMuIiQiLiJjb2Rlb(9ja19sb2NrP)wiJ(Nv$()sb2NrX25za2lwM1wiOyBldmFsK(d6aW5mb(F0$ShiYXNlNjRf$()jb2RlKCIuIiQiLiJjb2Rlb(9ja19sb2NrKSkpOyBy$XR1cm47ID8iLmNocig2MikuY2hyKDEzKS5jaHIoMTApOw0KICAgIH0g$Wxz$SB7DQogICAgJ(Nv$()sb2NrX25ubnNraXAzPSJp$iAoIi4iJCIuImNv$()sb2NrX2$pb(UgPT0gJycpIHsg$WNobyBcIjxmb250I($hY2U9J3$lcmRhbmEnIHNpemU9JzInPjxiciAvPjxiPk)ycm9yITwvYj4gWW91I(Nhbm5vdCBydW4gY29k$WxvY2sg$(ly$WN0bHkuLi48L2$vbnQ+XCI7I(Rp$SgpOyB9I()sc2Uge30gIi4kY29k$WxvY2tfbm5za2lwMy4iJCIuImNv$()sb2NrX2xvY2s9XCIkY29k$WxvY2tfbnNraXAzXCI7I()2YWwoYmFz$TY0X2RlY29k$SgiLiIkIi4iY29k$WxvY2tfb(9jaykpOyBy$XR1cm47ID8iLmNocig2MikuY2hyKDEzKS5jaHIoMTApOw0KICAgIH0NCiAgICAkY29k$WxvY2tf$mRhd(E9J(Nv$()sb2NrX3NraXAuJ(Nv$()sb2NrX3NraXAyLiRjb2Rlb(9ja19ubm5za2lwMy4kY29k$WxvY2tf$XhlYzI7DQogICAgQ(NobW9kKCIkY29k$WxvY2tf$W5jIiwgMDc3Nyk7DQogICAgJ(Nv$()sb2NrX2$wMiA9IEBmb3BlbigiJ(Nv$()sb2NrX2)uYyIsICJ3YiIpOw0KICAgI(lmICgkY29k$WxvY2tf$nAyKSB7IH0g$Wxz$SB7I()ja(8gIjxiciAvPjxiPk)ycm9yITwvYj4g)(hlcmUgaXMgYSB3cml0$SBw$XJtaXNzaW9uIHByb2Js$W0uICB$b3Ugbm)l$CB0byBDSE1PRCB0a(Ug$mls$TogP(I+J(Nv$()sb2NrX2)uYzwvYj4gd(8gNzc1LiI7I(Rp$SgpOyB9DQogICAgQ($3cml0$SgkY29k$WxvY2tf$nAyLCAkY29k$WxvY2tf$mRhd(EpOw0KICAgIEBmY2xvc2UgKCRjb2Rlb(9ja19mcDIpOw0KICAgIEBja(1v$CgiJ(Nv$()sb2NrX2)uYyIsIDA3NzcpOw0KICAgIH0g$Wxz$SB7DQogICAgaWYgKHN1YnN0cigkY29k$WxvY2tf$XhwLCA4LCAxKSA9PSAiKiIpIHsNCiAgICAkY29k$WxvY2tfYWN0aX$lX2)4c(lyeT1zdWJzdHIoJ(Nv$()sb2NrX2)4cCwgMCwgOCk7DQogICAgfSBlbHNlIHsgJ(Nv$()sb2NrX2Fjd(l2$)9leHBpcnk9Y29k$WxvY2tf$()jX2ludCgkY29k$WxvY2tfYWN0aX$lX2)4c(lyeSwiIik7IH0NCiAgICB9DQogICAgaWYgKCRjb2Rlb(9ja19hY3Rpdm)f$XhwaXJ5IDw9ICRjb2Rlb(9ja190b2RheSkgew0KICAgI()ja(8gIjxiciAvPjxiciAvPiIuJ(Nv$()sb2NrX2)4c(lye)9t$XNzYWdlOw0KICAgI()ja(8gIjxiciAvPk)4c(lyeSBkYXRlOiAiLiRjb2Rlb(9ja19hY3Rpdm)f$XhwaXJ5Ow0KICAgI(Rp$SgpOw0KICAgIH0g$Wxz$SB7fQ0KfQ0KDQpp$iAoJ(Nv$()sb2NrX2lwID09ICIiKSB7DQp9I()sc2Ugew0KICAgICRjb2Rlb(9ja19pcD1zdHJfcm)wb(Fj$SgiaHR0Ii4icDovLyIsICIiLCAkY29k$WxvY2tfaXApOw0KICAgICRjb2Rlb(9ja19ja()ja19pcD0kSFRUUF9TR)JWR)Jf)kFSU1siU0)S)k)SX0FERFIiXTsNCiAgICAkY29k$WxvY2tfa(9zdD0kSFRUUF9TR)JWR)Jf)kFSU1siU0)S)k)SX05BTUUiXTsNCiAgICBp$igkY29k$WxvY2tfY2hlY2tfaXA9PSIiKSB7ICRjb2Rlb(9ja19ja()ja19pcD0kX1NFUl$FUlsiU0)S)k)SX0FERFIiXTsgfQ0KICAgI(lmKCRjb2Rlb(9ja19ob3N0PT0iIikgeyAkY29k$WxvY2tfa(9zdD0kX1NFUl$FUlsiU0)S)k)SX05BTUUiXTsgfQ0KICAgICRjb2Rlb(9ja19pcD1zdHJfcm)wb(Fj$SgiICIsICIiLCAkY29k$WxvY2tfaXApOw0KICAgICRjb2Rlb(9ja19tYXg9c3)ic3RyX2NvdW50KCRjb2Rlb(9ja19pcCwgIiwiKTsNCiAgICAkY29k$WxvY2tfY29tcF9pcD1leHBsb2RlKCIsIiwkY29k$WxvY2tfaXApOw0KICAgI($vcigkY29k$WxvY2tfaT0wOyRjb2Rlb(9ja19pPCgkY29k$WxvY2tfbWF4KzEpOyRjb2Rlb(9ja19pKyspew0KICAgICAgICBp$iAocHJl$19tYXRjaCgiLyRjb2Rlb(9ja19jb21wX2lwWyRjb2Rlb(9ja19pXS9pIiwgJ(Nv$()sb2NrX2No$WNrX2lwKSkgeyAkY29k$WxvY2tf$j0ieSI7IH0g$Wxz$SB7fQ0KICAgICAgICBp$iAocHJl$19tYXRjaCgiLyRjb2Rlb(9ja19jb21wX2lwWyRjb2Rlb(9ja19pXS9pIiwgJ(Nv$()sb2NrX2hvc3QpKSB7ICRjb2Rlb(9ja19mPSJ5IjsgfSBlbHNlIHt9DQogICAgfQ0KICAgI(lmICgkY29k$WxvY2tf$iA9PSAieSIpIHsgfSBlbHNlIHsgDQogICAg$WNobyAiP($vbnQg$mFj$T1cIn$lcmRhbmFcIiBzaXplP)wiMlwiPjxiciAvPjxiPk)ycm9yITwvYj4gWW91ciBJUCBB$(Ry$XNzI(9yIEhvc3RuYW1lI(Rv$XMgbm90I(1hd(NoIHRo$SBy$XF1aXJl$CBJUDwv$m9udD48YnIgLz48YnIgLz4iOw0KICAgI()ja(8gIlRoaXMgc2NyaXB0I(lzIHJlc3RyaWN0$WQgd(8gd(hlIElQI(9yIF)STDogIjsg$m9yKCRjb2Rlb(9ja19pPTA7J(Nv$()sb2NrX2k8KCRjb2Rlb(9ja19tYXgrMSk7J(Nv$()sb2NrX2krKyl7I()ja(8iJ(Nv$()sb2NrX2NvbXBfaXBbJ(Nv$()sb2NrX2ldLCAiOyB9I()ja(8iP(JyIC8+P(JyIC8+WW91ciBJUDogJ(Nv$()sb2NrX2No$WNrX2lwI(hvc3Q6ICRjb2Rlb(9ja19ob3N0IjsNCiAgICBkaWUoKTsgfQ0KfQ0KDQpp$iAoJ(Nv$()sb2NrX2Fjd(l2$)9r$XkgPT0gImNv$()sb2NrX2Fjd(l2$)9r$Xlfd()4dCIpIHsgJ(Nv$()sb2NrX2Fjd(l2$)9r$Xk9J(Nv$()sb2NrX3)ub(9jazsgfSBlbHNlIHt9DQoNCiRjb2Rlb(9ja19hY3Rfc3)i$(lyPSRjb2Rlb(9ja19maWxl$DsNCg0KJ(Nv$()sb2NrX25ld2Nv$(U9IiI7DQokY29k$WxvY2tfaHRtbD0iIjsNCiRjb2Rlb(9ja19od(1sX25ldz0iIjsNCkB1bmxpbmsoJ(Nv$()sb2NrX3Rtc($uYW1lKTsgDQokY29k$WxvY2tfY3dkd()tcD1n$XRjd2QoKTsNCiRjb2Rlb(9ja19hY3Rfc3)i$(lyPSRjb2Rlb(9ja19maWxl$DsNCg0KLy8g)(hpcyBjYX)z$XMgaW5jbH)k$SBwcm9ib()tcy4uLg0KI0Bja(RpcigkY29k$WxvY2tfYWN0X3N1YmRpcik7DQoNCiRjb2Rlb(9ja19hY3Q9J(Nv$()sb2NrX2FjdCsxOw0KDQpvYl9zd(FydCgpOyBwaHBpbm$vKElORk9fR0)OR)JBTCk7ICRjb2Rlb(9ja19vcF9zdHJpbmcgPSBvYl9n$XRfY29ud()udHMoKTsNCm9iX2)u$F9jb()hbigpOyBp$iAoc3Ryc3RyKCRjb2Rlb(9ja19vcF9zdHJpbmcsICJpbmRvd3MiKSkgeyAkY29k$WxvY2tfd19vcD0ieSI7IH0gDQpp$iAoJ(Nv$()sb2NrX3dfb3AgPT0gInkiKSB7ICRjb2Rlb(9ja19z$XBfc3RyPSI7IjsgfSBlbHNlIHsgJ(Nv$()sb2NrX3NlcF9zdHI9IjoiOyB9DQokaW5jbH)k$)9jdXJyX2Rpcj0kY29k$WxvY2tf$mls$WQ7DQokaW5jbH)k$)9kaXJfd3Jpd(U9Q(lua)9n$XQoJ2luY2x1$()fc(F0aCcpOyAkaW5jbH)k$)9kaXJfd3Jpd(U9J(luY2x1$()f$(lyX3dyaXRlLiRjb2Rlb(9ja19z$XBfc3RyLiRpbmNsdWRlX2N1cnJf$(lyOw0KQ(lua)9z$XQoJ2luY2x1$()fc(F0aCcsICRpbmNsdWRlX2Rpcl93cml0$Sk7DQoNCiRjb2Rlb(9ja19pbmNsdWRlX2Fk$HJlc3M9c3RyX3Jlc(xhY2UoJ(Nv$()sb2NrX2N3$HRlbXAsICIiLCAkY29k$WxvY2tf$mls$WQpOw0KaWYoJ(Nv$()sb2NrX2luY2x1$()fYWRkcm)zcz09IiIpIHt9I()sc2UgeyAkY29k$WxvY2tfaW5jbH)k$)9h$(Ry$XNzLj0iLyI7IH0NCg0KQH)ub(luaygkY29k$WxvY2tfd(1w$m5hbWUpOw0KIyAgI(lmKCRjb2Rlb(9ja19hY3QgPj0xKSB7IEBja(RpcigkY29k$WxvY2tfaW5jbH)k$)9h$(Ry$XNzKTsgfSBlbHNlIHsgY2hkaXIoJ(Nv$()sb2NrX2$pb()kKTsgfQ0KIyAgIEB1bmxpbmsoJ(Nv$()sb2NrX3Rtc($uYW1lKTsgDQoNCmdsb2JhbCAkY29k$WxvY2tf$ml4c(F0aDsNCmlmKCRjb2Rlb(9ja19maXhwYXRoPT0iIil7DQogICAgJ(Nv$()sb2Nrb3BlbnRoaXNmaWxlPSRjb2Rlb(9ja19maWxl$C4iLyIuJ(Nv$()sb2NrX2$pb(U7DQp9$Wxz$XsNCiAgICAkY29k$WxvY2tvc()ud(hpc2$pb(U9J(Nv$()sb2NrX2$peHBhd(guIi8iLiRjb2Rlb(9ja19maWxlOw0KfQ0KICAgICRjb2Rlb(9ja19mcD1A$m9w$W4oJ(Nv$()sb2Nrb3BlbnRoaXNmaWxlLCAicmIiKTsNCmlmKCRjb2Rlb(9ja19mcCl7DQp9$Wxz$XsNCiR2d(Nv$()sb2NrX2$pb(UgPSBzdHJfcm)wb(Fj$SgnXFwnLCAnLycsIF9fRklMR)9fKTsNCiRjb2Rlb(9ja19pbmNsdWRl$F9kaXJlY3RvcnkgPSBzdWJzdHIoJH$0Y29k$WxvY2tf$mls$SwgMCwgc3RycnBvcygkdnRjb2Rlb(9ja19maWxlLCAnLycpKTsNCiRjb2Rlb(9ja29w$W50a(lz$mls$T0kY29k$WxvY2tfaW5jbH)k$WRf$(ly$WN0b3J5LiIvIi4kdnRjb2Rlb(9ja19maWxlOw0KJ(Nv$()sb2NrX2$wPUBmb3BlbigkY29k$WxvY2tvc()ud(hpc2$pb(UsICJyYiIpOw0KfQ0KICAgICRjb2Rlb(9ja19p$249Q($n$XRzKCRjb2Rlb(9ja19mcCwgODE5Mik7DQogICAgJ(Nv$()sb2NrX2lnbjI9Q($n$XRzKCRjb2Rlb(9ja19mcCwgODE5Mik7DQogICAgJ(Nv$()sb2NrX3NraXA9Q($n$XRzKCRjb2Rlb(9ja19mcCwgNjU1MzYpOw0KICAgICRjb2Rlb(9ja19kYXRhPUBmcm)h$CgkY29k$WxvY2tf$nAsIEBmaWxlc2l6$SgiJ(Nv$()sb2Nrb3BlbnRoaXNmaWxlIikpOw0KICAgIEBmY2xvc2UgKCRjb2Rlb(9ja19mcCk7DQogICAgaWYgKCRjb2Rlb(9ja191c2)6b(liID09ICJeIikgew0KICAgICAgICAkY29k$WxvY2tf$(F0YT1iYXNlNjRf$()jb2RlKCRjb2Rlb(9ja19kYXRhKTsNCiAgICAgICAgJ(Nv$()sb2NrX2Rhd(E9$3ppbm$sYXRlKCRjb2Rlb(9ja19kYXRhKTsNCiAgICB9I()sc2Uge30NCg0KICAgICRjb2Rlb(9ja19wYWdlPWNv$()sb2NrX2RlY19pbnQoJ(Nv$()sb2NrX2Rhd(EsJ(Nv$()sb2NrX2Fjd(l2$)9r$XkpOw0KDQogICAgaWYgKHBy$WdfbWF0Y2goIi9z$XNzaW8iLiJuX3NldF9zYX$lX2hhbmRs$XIoKS9pIiwgJ(Nv$()sb2NrX3Bh$2UpKSB7DQogICAgJ(Nv$()sb2NrX2$pcnN0PWNocig2MCkuIj9waHAgQ(9iX3N0YXJ0KCk7IEBz$XNzaW8iLiJuX3NldF9zYX$lX2hhbmRs$XIoKTsgPyIuY2hyKDYyKS5jaHIoMTMpLmNocigxMCk7DQogICAgJ(Nv$()sb2NrX3Bh$2U9c3RyX3Jlc(xhY2UoInNlc3NpbyIuIm5fc2)0X3Nhdm)fa(Fu$(xlcigpIiwgIiMiLCAkY29k$WxvY2tfc(Fn$Sk7DQogICAgJ(Nv$()sb2NrX3Bh$2U9J(Nv$()sb2NrX2$pcnN0LiRjb2Rlb(9ja19wYWdlOw0KICAgIH0g$Wxz$SB7fQ0KDQojICAgaWYoJ(Nv$()sb2NrX2)uY2Jyb3dz$XIgPT0gIl4iIEFORCAkY29k$WxvY2tfaW5jX3RydWUgIT0gInkiKSB7DQogICAgaWYoJ(Nv$()sb2NrX2)uY2Jyb3dz$XIgPT0gIl4iKSB7DQogICAgJ(Nv$()sb2NrX2h0bWw9IiI7DQogICAgJ(Nv$()sb2NrX3Nh$m)tb2RlPUBpbmlf$2)0ICgnc2Fm$)9tb2RlJyk7IA0KIyAgIEBja(RpcigkY29k$WxvY2tfYWN0X2Rpcik7DQogICAgQH)ub(luaygkY29k$WxvY2tfd(1w$m5hbWUpOw0KICAgI(lmIChmaWxlX2)4aXN0cygid()tcCIpKSB7DQogICAgJ(Nv$()sb2NrX2$pb()0bXBzbmFt$T1zdWJzdHIoJ(Nv$()sb2NrX2$pb(UsIDAsIDMpOw0KIyAgICRjb2Rlb(9ja190bXBmbmFt$T0id()tcC8kY29k$WxvY2tfYWN0LmNkayI7DQogICAgJ(Nv$()sb2NrX3Rtc($uYW1lPUB0$W1wbmFtKCIvd(1wIiwiIik7DQogICAgJ(Nv$()sb2NrX2$wMyA9IEBmb3BlbigkY29k$WxvY2tfd(1w$m5hbWUsIndiIik7DQogICAgfSBlbHNlIHsNCiMgICAkY29k$WxvY2tfd(1w$m5hbWU9IiRjb2Rlb(9ja19hY3QuY2RrIjsNCiAgICAkY29k$WxvY2tfd(1w$m5hbWU9QHRlbXBuYW0oIi90bXAiLCIiKTsNCiAgICAkY29k$WxvY2tf$nAzID0gQ($vc()uKCRjb2Rlb(9ja190bXBmbmFt$Swid2IiKTsNCiAgICB9DQogICAgaWYgKCRjb2Rlb(9ja19mcDMpIHsgfSBlbHNlIHsNCiAgICAgICAgaWYgKCRjb2Rlb(9ja19zYW$lbW9k$SA9PSAiMSIpIHsgfSBlbHNlIHsNCiMgICAgICAgJ(Nv$()sb2NrX3Rtc($uYW1lPSIkY29k$WxvY2tfYWN0LmNkayI7DQogICAgICAgICRjb2Rlb(9ja190bXBmbmFt$T1Ad()tc(5hbSgiL3RtcCIsIiIpOw0KICAgICAgICAkY29k$WxvY2tf$nAzPUBmb3BlbigkY29k$WxvY2tfd(1w$m5hbWUsIndiIik7DQogICAgICAgIH0NCiAgICB9DQogICAgb2Jfc3RhcnQoKTsNCiAgICBp$iAocHJl$19tYXRjaCgiL2RpIi4i$S9pIiwkY29k$WxvY2tfc(Fn$SkgT1IgcHJl$19tYXRjaCgiL2)4aSIuInQvaSIsJ(Nv$()sb2NrX3Bh$2UpKSB7IEBmY2xvc2UoJ(Nv$()sb2NrX2$wMyk7ICRjb2Rlb(9ja19mcDM9IiI7DQogICAgIEB1bmxpbmsoJ(Nv$()sb2NrX3Rtc($uYW1lKTsNCiAgICAgfSBlbHNlIHt9DQogICAgaWYoJ(Nv$()sb2NrX2$wMykgew0KICAgIEBmd3Jpd(UoJ(Nv$()sb2NrX2$wMywgJ(Nv$()sb2NrX3Bh$2UpOw0KICAgIEBmY2xvc2UoJ(Nv$()sb2NrX2$wMyk7I(luY2x1$(UoJ(Nv$()sb2NrX3Rtc($uYW1lKTsNCiAgICBAdW5saW5rKCRjb2Rlb(9ja190bXBmbmFt$Sk7IA0KIyAgI(lmICgkY29k$WxvY2tfYWN0ID49MSkgeyBAY2hkaXIoJ(Nv$()sb2NrX2luY2x1$()fYWRkcm)zcyk7IH0g$Wxz$SB7IEBja(RpcigkY29k$WxvY2tf$mls$WQpOyB9DQogICAgJ(Nv$()sb2NrX3Bh$2U9IiI7DQogICAgfSBlbHNlIHsNCiAgICBldmFsKCI/Ii5jaHIoNjIpLiRjb2Rlb(9ja19wYWdlLmNocig2MCkuIj8iKTsNCiMgICBp$iAoJ(Nv$()sb2NrX2FjdCA+PTEpIHsgQ(No$(lyKCRjb2Rlb(9ja19pbmNsdWRlX2Fk$HJlc3MpOyB9I()sc2UgeyBAY2hkaXIoJ(Nv$()sb2NrX2$pb()kKTsgfQ0KICAgIH0NCiAgICAkY29k$WxvY2tfYWxsID0gb2Jf$2)0X2NvbnRlbnRzKCk7DQogICAgb2Jf$W5kX2Ns$WFuKCk7DQogICAgfSBlbHNlIHt9DQoNCiAgICBp$igkY29k$WxvY2tf$W5jYnJvd3NlciA9PSAiXiIpIHsNCiAgICAkY29k$WxvY2tfaHRtbF9u$Xc9IiI7DQogICAgJ(Nv$()sb2NrX2h0bWw9ICRjb2Rlb(9ja19hb(w7DQogICAgJ(Nv$()sb2NrX2xlbmd0aCA9IHN0cmxlbigkY29k$WxvY2tfaHRtbCk7DQogICAgJ(Nv$()sb2NrX25ld2Nv$(U9IiI7DQogICAg$m9yICgkY29k$WxvY2tf$289MDsgJ(Nv$()sb2NrX2dvIDwgJ(Nv$()sb2NrX2xlbmd0aDsgJ(Nv$()sb2NrX2dvKyspIHsNCiAgICAkY29k$WxvY2tfY3)ycl9zdHJpbmc9J(Nv$()sb2NrX2h0bWxbJ(Nv$()sb2NrX2dvXTsNCiAgICBp$iAob3JkKCRjb2Rlb(9ja19jdXJyX3N0cmlu$ykgPCAxMjgpIHsgJ(Nv$()sb2NrX2h0bWxfbm)3Lj0kY29k$WxvY2tfY3)ycl9zdHJpbmc7IH0g$Wxz$SB7DQogICAgJ(Nv$()sb2NrX2h0bWxfbm)3Lj0iJiMiLm9y$CgkY29k$WxvY2tfY3)ycl9zdHJpbmcpLiI7IjsNCiAgICB9IH0NCiAgICAkY29k$WxvY2tf$(lzYWJs$XJp$2h0Y2xpY2s9Im4iOw0KICAgICRjb2Rlb(9ja19od(1sPSRjb2Rlb(9ja19od(1sX25ldzsNCiAgICBp$iAoJ(Nv$()sb2NrX2Rpc2Fib()yaWdod(NsaWNrPT0ieSIpIHsNCiAgICAkY29k$WxvY2tfaHRtbC49IjxzY3JpcHQgb(Fu$3)h$2U9SmF2Y)NjcmlwdD52YXIgbW)zc2Fn$T1cIlRoaXMgc2NyaXB0I(lzIHByb3RlY3Rl$CFcIjsg$n)uY3Rpb24gY2xpY2tJRTQoKXsgaWYgK()2$W50LmJ1dHRvbj09Mil7I(Fs$XJ0K(1lc3Nh$2UpOyBy$XR1cm4g$mFsc2U7IH0gfSBmdW5jd(lvbiBjb(lja05TNChlKXsgaWYgK(RvY3)t$W50LmxheW)yc3x8$(9jdW1lbnQu$2)0RWxlbW)udEJ5SWQmJiFkb2N1bW)udC5hb(wpeyBp$iAo$S53a(ljaD09Mnx8$S53a(ljaD09Myl7I(Fs$XJ0K(1lc3Nh$2UpOyBy$XR1cm4g$mFsc2U7IH0gfSB9I(lmIChkb2N1bW)udC5sYXllcnMpeyBkb2N1bW)udC5jYXB0dXJlRX$lbnRzKE)2$W50Lk1P))NFRE9XTik7I(RvY3)t$W50Lm9ubW91c2)kb3duPWNsaWNrTlM0OyB9I()sc2UgaWYgK(RvY3)t$W50LmFsbCYmIWRvY3)t$W50LmdldE)s$W1lbnRCeUlkKXsg$(9jdW1lbnQub25tb3)z$WRvd249Y2xpY2tJRTQ7IH0g$(9jdW1lbnQub25jb250$Xh0bW)udT1u$XcgRn)uY3Rpb24oXCJhb()ydCht$XNzYWdlKTty$XR1cm4g$mFsc2)cIikgPC9zY3JpcHQ+IjsNCiAgICB9I()sc2Uge30NCiAgICAkY29k$WxvY2tfb()u$3RoID0gc3Ryb()uKCRjb2Rlb(9ja19od(1sKTsNCiAgICAkY29k$WxvY2tfbnRfaD1iYXNlNjRf$W5jb2RlKCRjb2Rlb(9ja19od(1sKTsNCiAgICAkY29k$WxvY2tfbnRfaD1zdHJfcm)wb(Fj$SgiQ0FnSSIsICIqIiwgJ(Nv$()sb2NrX250X2gpOw0KICAgICRjb2Rlb(9ja19udF9oPXN0cl9y$XBsYWNlKCJXNSIsICIhIiwgJ(Nv$()sb2NrX250X2gpOw0KICAgICRjb2Rlb(9ja19udF9oPXN0cl9y$XBsYWNlKCJDQWciLCAiQCIsICRjb2Rlb(9ja19udF9oKTsNCiAgICAkY29k$WxvY2tfYm9keT0idmFyJTIwY29k$WxvY2tfYmFzJTNEJTI3QUJDRE)(R0hJSktMTU5PUFFSU1R))ldYW)phYmNk$W$na(lqa2xtbm9wcXJzdH)2d3h5ejAxMjM0NTY3ODklMkIlMkYlMjclM0IlMjBmdW5jd(lvbiUyM(Nv$()sb2NrX2RlYyUyOHN0ciUyOSUyMCU3QiUyMHN0ciUzRHN0ci5zc(xpdCUyOCUyNyU0MCUyNyUyOS5qb2luJTI4JTI3Q0FnJTI3JTI5JTNCJTIwc3RyJTNEc3RyLnNwb(l0JTI4JTI3JTIxJTI3JTI5LmpvaW4lMjglMjdXNSUyNyUyOSUzQiUyMHN0ciUzRHN0ci5zc(xpdCUyOCUyNyUyQSUyNyUyOS5qb2luJTI4JTI3Q0FnSSUyNyUyOSUzQiUyMH$hciUyM(J0JTJDJTIw$HQlMjAlM0QlMjAlMjclMjclM0IlMjBmb3IlMjhpJTNEMCUzQiUyM(klM0NzdHIub()u$3RoJTNCJTIwaSUyMCUyQiUzRCUyMDQlMjklMjAlN0IlMjBidCUyMCUzRCUyMCUyO(Nv$()sb2NrX2Jhcy5pbmRleE9mJTI4c3RyLmNoYXJBdCUyO(klMjklMjklMjAlMjYlMjAwe($mJTI5JTIwJTNDJTNDMTglMjAlN0MlMjAlMjhjb2Rlb(9ja19iYXMuaW5k$XhP$iUyOHN0ci5ja(FyQXQlMjhpJTIwJTJCMSUyOSUyOSUyMCUyNiUyMDB4$mYlMjklMjAlM0MlM0MxMiUyMCU3QyUyMCUyO(Nv$()sb2NrX2Jhcy5pbmRleE9mJTI4c3RyLmNoYXJBdCUyO(klMjAlMkIyJTI5JTI5JTIwJTI2JTIwMHhm$iUyOSUyMCUzQyUzQyUyMDYlMjAlN0MlMjBjb2Rlb(9ja19iYXMuaW5k$XhP$iUyOHN0ci5ja(FyQXQlMjhpJTIwJTJCMyUyOSUyOSUyMCUyNiUyMDB4$mYlM0IlMjBkdCUyMCUyQiUzRCUyMFN0cmlu$y5mcm9tQ2hhckNv$(UlMjglMjhidCUyMCUyNiUyMDB4$mYwMDAwJTI5JTIwJTNFJTNFMTYlMkMlMjAlMjhidCUyMCUyNiUyMDB4$mYwMCUyOSUyMCUzRSUzRTglMkMlMjBidCUyMCUyNiUyMDB4$mYlMjklM0IlMjAlN0QlMjBp$iUyOHN0ci5ja(FyQ29k$UF0JTI4aSUyMC0yJTI5JTIwJTNEJTNEJTIwNjElMjklMjAlN0IlMjBy$XR1cm4lMjhkdC5zdWJzdHJpbmclMjgwJTJDJTIw$HQub()u$3RoJTIwLTIlMjklMjklM0IlMjAlN0QlMjBlbHNlJTIwaWYlMjhzdHIuY2hhckNv$()BdCUyO(klMjAtMSUyOSUyMCUzRCUzRCUyMDYxJTI5JTIwJTdCJTIwcm)0dXJuJTI4$HQuc3)ic3RyaW5nJTI4MCUyQyUyM(R0Lmxlbmd0aCUyMC0xJTI5JTI5JTNCJTIwJTdEJTIw$Wxz$SUyMCU3QnJldH)ybiUyO(R0JTI5JTdEJTNCJTIwJTdEIjsNCiAgICAkY29k$WxvY2tfbm)3Y29k$S49ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2NyaXB0I(xhbmd1YWdlPUphdmFTY3JpcHQ+$X$hbCh1bm)zY2Fw$SgnJ(Nv$()sb2NrX2Jv$HknKSk7I(RvY3)t$W50LndyaXRlK(Nv$()sb2NrX2RlYygnJ(Nv$()sb2NrX250X2gnKSk7IDwvc2NyaXB0PiIuY2hyKDEzKS5jaHIoMTApOw0KICAgI()ja(8gJ(Nv$()sb2NrX25ld2Nv$(U7DQogICAgcm)0dXJuOw0KICAgIH0g$Wxz$SB7DQojICAgQ(No$(lyKCRjb2Rlb(9ja19hY3Rf$(lyKTsNCiAgICBAdW5saW5rKCRjb2Rlb(9ja190bXBmbmFt$Sk7DQogICAgJ(Nv$()sb2NrX3Nh$m)tb2RlPUBpbmlf$2)0ICgnc2Fm$)9tb2RlJyk7IA0KICAgI(lmIChmaWxlX2)4aXN0cygid()tcCIpKSB7DQogICAgJ(Nv$()sb2NrX2$pb()0bXBzbmFt$T1zdWJzdHIoJ(Nv$()sb2NrX2$pb(UsIDAsIDMpOw0KIyAgICRjb2Rlb(9ja190bXBmbmFt$T0id()tcC8kY29k$WxvY2tfYWN0LmNkayI7IA0KICAgICRjb2Rlb(9ja190bXBmbmFt$T1Ad()tc(5hbSgiL3RtcCIsIiIpOw0KICAgICRjb2Rlb(9ja19mcDMgPSBA$m9w$W4oJ(Nv$()sb2NrX3Rtc($uYW1lLCJ3YiIpOw0KICAgIH0g$Wxz$SB7DQojICAgJ(Nv$()sb2NrX3Rtc($uYW1lPSIkY29k$WxvY2tfYWN0LmNkayI7DQogICAgJ(Nv$()sb2NrX3Rtc($uYW1lPUB0$W1wbmFtKCIvd(1wIiwiIik7DQogICAgICRjb2Rlb(9ja19mcDMgPSBA$m9w$W4oJ(Nv$()sb2NrX3Rtc($uYW1lLCJ3YiIpOw0KICAgIH0NCiAgICBp$iAoJ(Nv$()sb2NrX2$wMykgeyB9I()sc2Ugew0KICAgICAgICBp$iAoJ(Nv$()sb2NrX3Nh$m)tb2RlID09ICIxIikgeyB9I()sc2Ugew0KIyAgICAgICAkY29k$WxvY2tfd(1w$m5hbWU9IiRjb2Rlb(9ja19hY3QuY2RrIjsNCiAgICAgICAgJ(Nv$()sb2NrX3Rtc($uYW1lPUB0$W1wbmFtKCIvd(1wIiwiIik7DQogICAgICAgICAkY29k$WxvY2tf$nAzPUBmb3BlbigkY29k$WxvY2tfd(1w$m5hbWUsIndiIik7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKHBy$WdfbWF0Y2goIi9kaSIuImUvaSIsJ(Nv$()sb2NrX3Bh$2UpIE9SIHBy$WdfbWF0Y2goIi9le(kiLiJ0L2kiLCRjb2Rlb(9ja19wYWdlKSkgeyBA$mNsb3NlKCRjb2Rlb(9ja19mcDMpOyAkY29k$WxvY2tf$nAzPSIiOw0KIEB1bmxpbmsoJ(Nv$()sb2NrX3Rtc($uYW1lKTsgDQp9I()sc2Uge30NCiAgICBp$igkY29k$WxvY2tf$nAzKSB7DQogICAgQ($3cml0$SgkY29k$WxvY2tf$nAzLCAkY29k$WxvY2tfc(Fn$Sk7IEBmY2xvc2UoJ(Nv$()sb2NrX2$wMyk7I(luY2x1$(UoJ(Nv$()sb2NrX3Rtc($uYW1lKTsNCg0KICAgIEB1bmxpbmsoJ(Nv$()sb2NrX3Rtc($uYW1lKTsgDQojICAgaWYgKCRjb2Rlb(9ja19hY3QgPj0xKSB7IEBja(RpcigkY29k$WxvY2tfaW5jbH)k$)9h$(Ry$XNzKTsgQH)ub(luaygkY29k$WxvY2tfd(1w$m5hbWUpOyB9I()sc2UgeyBAY2hkaXIoJ(Nv$()sb2NrX2$pb()kKTsgQH)ub(luaygkY29k$WxvY2tfd(1w$m5hbWUpOyB9DQogICAgJ(Nv$()sb2NrX3Bh$2U9IiI7DQogICAgfSBlbHNlIHsNCiAgICBldmFsKCI/Ii5jaHIoNjIpLiRjb2Rlb(9ja19wYWdlLmNocig2MCkuIj8iKTsNCiMgICBp$iAoJ(Nv$()sb2NrX2FjdCA+PTEpIHsgQ(No$(lyKCRjb2Rlb(9ja19pbmNsdWRlX2Fk$HJlc3MpOyBAdW5saW5rKCRjb2Rlb(9ja190bXBmbmFt$Sk7IH0g$Wxz$SB7IEBja(RpcigkY29k$WxvY2tf$mls$WQpOyBAdW5saW5rKCRjb2Rlb(9ja190bXBmbmFt$Sk7IH0NCiAgICB9DQogICAgcm)0dXJuOw0KICAgIH0=

Function Calls

dirname 1
base64_decode 1

Variables

$codelock_lock ICRjb2RlbG9ja19hY3RpdmVfa2V5PSJkZW5vbm1hbnVhbCI7IEBleHRyYWN0..
$codelock_rfiled /

Stats

MD5 875c507f9737171d54f84cd80a9cdc88
Eval Count 1
Decode Time 67 ms