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 /* ===================================================== DataLife Engine - by So..

Decoded Output download

?><?php
/*
=====================================================
 DataLife Engine - by SoftNews Media Group 
-----------------------------------------------------
 https://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004-2023 SoftNews Media Group
=====================================================
 This code is protected by copyright
=====================================================
 File: functions.inc.php
=====================================================
*/

if( !defined( 'DATALIFEENGINE' ) ) {
	header( "HTTP/1.1 403 Forbidden" );
	header ( 'Location: ../../../' );
	die( "Hacking attempt!" );
}

if ( isset($config['auth_domain']) AND $config['auth_domain'] ) {

	$domain_cookie = explode (".", clean_url( $_SERVER['HTTP_HOST'] ));
	$domain_cookie_count = count($domain_cookie);
	$domain_allow_count = -2;
	
	if ( $domain_cookie_count > 2 ) {
	
		if ( in_array($domain_cookie[$domain_cookie_count-2], array('com', 'net', 'org') )) $domain_allow_count = -3;
		if ( $domain_cookie[$domain_cookie_count-1] == 'ua' ) $domain_allow_count = -3;
		
		$domain_cookie = array_slice($domain_cookie, $domain_allow_count);
	}
	
	$domain_cookie = "." . implode (".", $domain_cookie);
	
	if( ip2long($_SERVER['HTTP_HOST']) == -1 OR ip2long($_SERVER['HTTP_HOST']) === false) define( 'DOMAIN', $domain_cookie );
	else define( 'DOMAIN', '' );

} else define( 'DOMAIN', '' );

function dle_session( $sid = false ) {
	global $config;
	
	$params = session_get_cookie_params();

	if ( DOMAIN ) $params['domain'] = DOMAIN;
	
	if (isset($config['only_ssl']) AND $config['only_ssl']) $params['secure'] = true;

	session_set_cookie_params($params['lifetime'], "/", $params['domain'], $params['secure'], true);

	if ( $sid ) session_id( $sid );

	session_start();

}

function set_cookie($name, $value, $expires) {
	global $config;
	
	if( $expires ) {
		
		$expires = time() + ($expires * 86400);
	
	} else {
		
		$expires = FALSE;
	
	}
	
	if (isset($config['only_ssl']) AND $config['only_ssl']) setcookie( $name, $value, $expires, "/", DOMAIN, TRUE, TRUE );
	else setcookie( $name, $value, $expires, "/", DOMAIN, FALSE, TRUE );

}

function check_login($username, $md5_password, $post = true, $check_log = false) {
	global $member_id, $db, $user_group, $lang, $_IP, $_TIME, $config;

	if( $username == "" OR $md5_password == "" ) return false;
	
	$result = false;
	
	if( $post ) {
		
		$username = $db->safesql( $username );
		if( strlen($md5_password) > 72 ) $md5_password = substr($md5_password, 0, 72);

		if ($config['auth_metod']) {

			if ( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\/|\|\&\~\*\+]/", $username) ) return false;	
			$where_name = "email='{$username}'";
	
		} else {

			if ( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\|\&\~\*\+]/", $username) ) return false;
			$where_name = "name='{$username}'";
	
		}

		$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE {$where_name}" );
		
		if( isset($member_id['user_id']) AND $member_id['user_id'] AND $member_id['password'] AND $member_id['banned'] != 'yes' AND $user_group[$member_id['user_group']]['allow_admin'] ) {
			
			if( is_md5hash( $member_id['password'] ) ) {
				
				if($member_id['password'] == md5( md5($md5_password) ) ) {
					$result = true;
				}
				
			} else {
				
				if(password_verify($md5_password, $member_id['password'] ) ) {
					$result = true;
				}
				
			}
			
		}
		
		if( !$result ) {

			$member_id = array ();
	
			$username = $db->safesql(trim( htmlspecialchars( stripslashes($username), ENT_QUOTES, $config['charset'])));
	
			if( version_compare($config['version_id'], "9.3", '>') ) $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$username."', '{$_TIME}', '{$_IP}', '89', '')" );

		}

	} else {
		
		$username = intval( $username );
		
		$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE user_id='{$username}'" );
		
		if( $member_id['user_id'] AND $member_id['password'] AND md5($member_id['password']) == $md5_password AND $user_group[$member_id['user_group']]['allow_admin'] AND $member_id['banned'] != 'yes' ) {

			$result = true;

		} else {

			$username = $db->safesql(trim( htmlspecialchars( stripslashes($member_id['name']), ENT_QUOTES, $config['charset'])));

			$member_id = array ();
	
			if( version_compare($config['version_id'], "9.3", '>') ) $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$username."', '{$_TIME}', '{$_IP}', '90', '')" );

		}
	
	}

	if( $result ) {
		
		if( !allowed_ip( $member_id['allowed_ip'] ) OR !allowed_ip( $config['admin_allowed_ip'] ) ) {
			
			$member_id = array ();
			$result = false;
			set_cookie( "dle_user_id", "", 0 );
			set_cookie( "dle_name", "", 0 );
			set_cookie( "dle_password", "", 0 );
			set_cookie( "dle_hash", "", 0 );
			@session_destroy();
			@session_unset();
			set_cookie( session_name(), "", 0 );
			
			msg( "info", $lang['index_msge'], $lang['ip_block'] );
		
		}
	}

	if ( !$result ) { 

		if ($config['login_log']) $db->query( "INSERT INTO " . PREFIX . "_login_log (ip, count, date) VALUES('{$_IP}', '1', '".time()."') ON DUPLICATE KEY UPDATE count=count+1, date='".time()."'" );

	} else {

		if ( $check_log AND !isset($_SESSION['check_log']) ) {

			if( $post ) { $a_id = 82; $extr =""; } else { $a_id = 86; if (isset($_SERVER['HTTP_REFERER']) AND $_SERVER['HTTP_REFERER']) $extr = $db->safesql(htmlspecialchars($_SERVER['HTTP_REFERER'], ENT_QUOTES)); else $extr = "Direct DLE Adminpanel"; }

			if( version_compare($config['version_id'], "9.3", '>') )  $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$_TIME}', '{$_IP}', '{$a_id}', '{$extr}')" );
			
			$_SESSION['check_log'] = 1;
		}

	}

	return $result;
}


function deletenewsbyid( $id ) {
	global $config, $db;
	
	$id = intval($id);
	DLEFiles::init( $config['file_driver'], false );
	
	$row = $db->super_query( "SELECT user_id FROM " . PREFIX . "_post_extras WHERE news_id = '{$id}'" );
	
	$db->query( "UPDATE " . USERPREFIX . "_users SET news_num=news_num-1 WHERE user_id='{$row['user_id']}'" );
	
	$db->query( "DELETE FROM " . PREFIX . "_post WHERE id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_extras WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_extras_cats WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_poll WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_poll_log WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_log WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_pass WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_tags WHERE news_id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_xfsearch WHERE news_id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_logs WHERE news_id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_subscribe WHERE news_id='{$id}'");

	deletecommentsbynewsid( $id );

	$row = $db->super_query( "SELECT images  FROM " . PREFIX . "_images WHERE news_id = '{$id}'" );

	if( isset($row['images']) AND $row['images']) {
		
		$listimages = explode( "|||", $row['images'] );
	
		foreach ( $listimages as $dataimage ) {
			
			$dataimage = get_uploaded_image_info($dataimage);
		
			$query = $db->safesql( $dataimage->path );
			$row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%'");

			if( isset($row['count']) AND $row['count'] ) {
				continue;
			}
			
			if( $dataimage->remote AND DLEFiles::$driver == 'remote' ) $disk = 'remote';
			else $disk = 'local';

			DLEFiles::Delete( "posts/" . $dataimage->path, $disk );

			if ($dataimage->hidpi) {
				DLEFiles::Delete("posts/{$dataimage->folder}/{$dataimage->hidpi}", $disk);
			}

			if( $dataimage->thumb ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $disk );

				if ($dataimage->hidpi) {
					DLEFiles::Delete("posts/{$dataimage->folder}/thumbs/{$dataimage->hidpi}", $disk);
				}
				
			}
			
			if( $dataimage->medium ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/medium/{$dataimage->name}", $disk );
				
				if ($dataimage->hidpi) {
					DLEFiles::Delete("posts/{$dataimage->folder}/medium/{$dataimage->hidpi}", $disk);
				}
			}
						
		}
	
		$db->query( "DELETE FROM " . PREFIX . "_images WHERE news_id = '{$id}'" );
	
	}

	$db->query( "SELECT * FROM " . PREFIX . "_files WHERE news_id = '{$id}'" );

	while ( $row = $db->get_row() ) {

		if( $row['driver'] AND DLEFiles::$driver == 'remote' ) $disk = 'remote';
		else $disk = 'local';
		
		if( trim($row['onserver']) == ".htaccess") die("Hacking attempt!");
		
		if( $row['is_public'] ) $uploaded_path = 'public_files/'; else $uploaded_path = 'files/';

		DLEFiles::Delete( $uploaded_path.$row['onserver'], $disk );

	}

	$db->query( "DELETE FROM " . PREFIX . "_files WHERE news_id = '{$id}'" );

	$sql_result = $db->query( "SELECT user_id, favorites FROM " . USERPREFIX . "_users WHERE favorites LIKE '%{$id}%'" );
	
	while ( $row = $db->get_row($sql_result) ) {
		
		$temp_fav = explode( ",", $row['favorites'] );
		$new_fav = array();
		
		foreach ( $temp_fav as $value ) {
			$value = intval($value);
			if($value != $id ) $new_fav[] = $value;
		}
		
		if(count($new_fav)) $new_fav = $db->safesql(implode(",", $new_fav));
		else $new_fav = "";
		
		$db->query( "UPDATE " . USERPREFIX . "_users SET favorites='{$new_fav}' WHERE user_id='{$row['user_id']}'" );

	}
}

function deletecomments( $id ) {
	global $config, $db;
	
	$id = intval($id);
	DLEFiles::init( $config['file_driver'], false );
	
	$row = $db->super_query( "SELECT id, post_id, user_id, is_register, approve FROM " . PREFIX . "_comments WHERE id = '{$id}'" );
	
	$db->query( "DELETE FROM " . PREFIX . "_comments WHERE id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_comment_rating_log WHERE c_id = '{$id}'" );	

	if( $row['is_register'] ) {
		$db->query( "UPDATE " . USERPREFIX . "_users SET comm_num=comm_num-1 WHERE user_id ='{$row['user_id']}'" );
	}
	
	if($row['approve']) $db->query( "UPDATE " . PREFIX . "_post SET comm_num=comm_num-1 WHERE id='{$row['post_id']}'" );

	$db->query( "SELECT id, name, driver FROM " . PREFIX . "_comments_files WHERE c_id = '{$id}'" );
	
	while ( $row = $db->get_row() ) {
		
		$dataimage = get_uploaded_image_info( $row['name'] );
		
		if( $row['driver'] AND DLEFiles::$driver == 'remote' ) $disk = 'remote';
		else $disk = 'local';
		
		DLEFiles::Delete( "posts/" . $dataimage->path, $disk );
		
		if( $dataimage->thumb ) {
			
			DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $disk );
			
		}
			
	}
	
	$db->query( "DELETE FROM " . PREFIX . "_comments_files WHERE c_id = '{$id}'" );
	
	if ( $config['tree_comments'] ) {

		$sql_result = $db->query( "SELECT id FROM " . PREFIX . "_comments WHERE parent = '{$id}'" );
	
		while ( $row = $db->get_row( $sql_result ) ) {
			deletecomments( $row['id'] );
		}

	}

}

function deletecommentsbynewsid( $id ) {
	global $config, $db;
	
	$id = intval($id);
	DLEFiles::init( $config['file_driver'], false );
	
	$result = $db->query( "SELECT id FROM " . PREFIX . "_comments WHERE post_id='{$id}'" );
	
	while ( $row = $db->get_array( $result ) ) {
		
		$db->query( "DELETE FROM " . PREFIX . "_comment_rating_log WHERE c_id = '{$row['id']}'" );

		$sub_result = $db->query( "SELECT id, name, driver FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
		
		while ( $file = $db->get_row( $sub_result ) ) {
			
			$dataimage = get_uploaded_image_info( $file['name'] );
			
			if( $file['driver'] AND DLEFiles::$driver == 'remote' ) $disk = 'remote';
			else $disk = 'local';
			
			DLEFiles::Delete( "posts/" . $dataimage->path, $disk );
			
			if( $dataimage->thumb ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $disk );
				
			}

		}
		
		$db->query( "DELETE FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
	
	}
	
	$result = $db->query( "SELECT COUNT(*) as count, user_id FROM " . PREFIX . "_comments WHERE post_id='{$id}' AND is_register='1' GROUP BY user_id" );
	
	while ( $row = $db->get_array( $result ) ) {
		
		$db->query( "UPDATE " . USERPREFIX . "_users SET comm_num=comm_num-{$row['count']} WHERE user_id='{$row['user_id']}'" );
	
	}
	
	$db->query( "DELETE FROM " . PREFIX . "_comments WHERE post_id='{$id}'" );


}

function deletecommentsbyuserid( $id, $ip = false ) {
	global $config, $db;
	
	$id = intval($id);
	DLEFiles::init( $config['file_driver'], false );
	
	if($ip) {
		$ip = $db->safesql($ip);
		$result = $db->query( "SELECT id, post_id, user_id, is_register, approve FROM " . PREFIX . "_comments WHERE ip='{$ip}' AND is_register='0'" );
	} else {
		$result = $db->query( "SELECT id, post_id, user_id, is_register, approve FROM " . PREFIX . "_comments WHERE user_id='{$id}' AND is_register='1'" );
	}
	
	while ( $row = $db->get_array( $result ) ) {
		
		$db->query( "DELETE FROM " . PREFIX . "_comment_rating_log WHERE c_id = '{$row['id']}'" );

		$sub_result = $db->query( "SELECT id, name, driver FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
		
		while ( $file = $db->get_row( $sub_result ) ) {
			$dataimage = get_uploaded_image_info( $file['name'] );
			
			if( $file['driver'] AND DLEFiles::$driver == 'remote' ) $disk = 'remote';
			else $disk = 'local';
			
			DLEFiles::Delete( "posts/" . $dataimage->path, $disk );
			
			if( $dataimage->thumb ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $disk );
				
			}
		}
		
		$db->query( "DELETE FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
	
	}
	
	if($ip) {
		
		$result = $db->query( "SELECT COUNT(*) as count, post_id FROM " . PREFIX . "_comments WHERE ip='{$ip}' AND is_register='0' AND approve='1' GROUP BY post_id" );
			
		while ( $row = $db->get_array( $result ) ) {
			
			$db->query( "UPDATE " . PREFIX . "_post SET comm_num=comm_num-{$row['count']} WHERE id='{$row['post_id']}'" );
		
		}
		$db->free( $result );
			
		$db->query( "DELETE FROM " . PREFIX . "_comments WHERE ip='{$ip}' AND is_register='0'" );
		
	} else {
		
		$result = $db->query( "SELECT COUNT(*) as count, post_id FROM " . PREFIX . "_comments WHERE user_id='{$id}' AND is_register='1' AND approve='1' GROUP BY post_id" );
			
		while ( $row = $db->get_array( $result ) ) {
	
			$db->query( "UPDATE " . PREFIX . "_post SET comm_num=comm_num-{$row['count']} WHERE id='{$row['post_id']}'" );
			
		}

		$db->free( $result );

		$db->query( "DELETE FROM " . PREFIX . "_comments WHERE user_id='{$id}' AND is_register='1'" );
	}


}

function formatsize($file_size) {
	
	if( !$file_size OR $file_size < 1) return '0 b';
	
    $prefix = array("b", "Kb", "Mb", "Gb", "Tb");
    $exp = floor(log($file_size, 1024)) | 0;

    $file_size = round($file_size / (pow(1024, $exp)), 2).' '.$prefix[$exp];
	$file_size = str_replace(",", ".", $file_size);

    return $file_size;

}

function CheckCanGzip() {
	
	if( headers_sent() || connection_aborted() || ! function_exists( 'ob_gzhandler' ) || ini_get( 'zlib.output_compression' ) ) return 0;
	
	if( strpos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip' ) !== false ) return "x-gzip";
	if( strpos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip' ) !== false ) return "gzip";
	
	return 0;
}

function GzipOut() {
	
	$ENCODING = CheckCanGzip();
	
	if( $ENCODING ) {
		$Contents = ob_get_contents();
		ob_end_clean();
		
		header( "Content-Encoding: $ENCODING" );
		
		$Contents = gzencode( $Contents, 1, FORCE_GZIP );
		echo $Contents;
		
		exit();
	} else {
		//      ob_end_flush(); 
		exit();
	}
}

function allowed_ip($ip_array) {
	
	$ip_array = trim( $ip_array );

	$_IP = get_ip();

	if( !$ip_array ) {
		return true;
	}
	
	if( strpos($_IP, ":") === false ) {
		$delimiter = ".";
	} else $delimiter = ":";
	
	$db_ip_split = explode( $delimiter, $_IP );
	$ip_lenght = count($db_ip_split);
	
	$ip_array = explode( "|", $ip_array );
	
	foreach ( $ip_array as $ip ) {
		
		$ip = trim( $ip );
		
		if( $ip == $_IP ) {
			
			return true;
		
		} elseif( count(explode ('/', $ip)) == 2 ) {
				
			if( maskmatch($_IP, $ip) ) return true;
				
		} else {
			
			$ip_check_matches = 0;
			$this_ip_split = explode( $delimiter, $ip );
			
			for($i_i = 0; $i_i < $ip_lenght; $i_i ++) {
				if( $this_ip_split[$i_i] == $db_ip_split[$i_i] OR $this_ip_split[$i_i] == '*' ) {
					$ip_check_matches += 1;
				}
			
			}
			
			if( $ip_check_matches == $ip_lenght ) return true;
		}
	
	}
	
	return false;
}


function maskmatch($IP, $CIDR) {
	
    list ($address, $netmask) = explode('/', $CIDR, 2);

	if( strpos($IP, ".") !== false AND strpos($CIDR, ".") !== false ) {
		
		return ( ip2long($IP) & ~((1 << (32 - $netmask)) - 1) ) == ip2long ($address);
	
	} elseif( strpos($IP, ":") !== false AND strpos($CIDR, ":") !== false ) {
		
        if (!((extension_loaded('sockets') && defined('AF_INET6')) || @inet_pton('::1'))) {
          return false;
        }
		
        $bytesAddr = unpack('n*', @inet_pton($address));
        $bytesTest = unpack('n*', @inet_pton($IP));

        if (!$bytesAddr || !$bytesTest) {
            return false;
        }

        for ($i = 1, $ceil = ceil($netmask / 16); $i <= $ceil; ++$i) {
            $left = $netmask - 16 * ($i - 1);
            $left = ($left <= 16) ? $left : 16;
            $mask = ~(0xffff >> $left) & 0xffff;
            if (($bytesAddr[$i] & $mask) != ($bytesTest[$i] & $mask)) {
                return false;
            }
        }
		
		return true;
		
	}
	
	return false;

}

function msg($type, $title, $text, $back = false) {
	global $lang;
	
	$buttons = array();
	
	if(is_array( $back )) {
		$bc = 1;
		
		foreach ($back as $key => $value) {
			
			if($bc == 1) $color="teal";
			elseif($bc == 2) $color="slate-600";
			elseif($bc == 3) $color="brown-600";
			else $color="primary-600";
			
			if( $value == $lang['add_s_5'] ) $target = " target=\"_blank\"";
			else $target="";
			
			$buttons[] = "<a class=\"btn btn-sm bg-{$color} btn-raised position-left\" href=\"{$key}\"{$target}>{$value}</a>";
			
			$bc++;
			
			if($bc > 4) $bc = 1;
		}
	} elseif( $back ) {
		$buttons[] = "<a class=\"btn btn-sm bg-teal btn-raised position-left\" href=\"{$back}\">{$lang['func_msg']}</a>";
	}
	
	if(count($buttons) ) {
		$back = "<div class=\"panel-footer\"><div class=\"text-center\">".implode('', $buttons)."</div></div>";
	} else $back ="";
	
	
	if ($title == "error") $title = $lang['addnews_error'];
	
	echoheader( "<i class=\"fa fa-comment-o position-left\"></i><span class=\"text-semibold\">{$lang['header_box_title']}</span>", $title );

	if($type == "error") {
		$type = "alert-danger";
	} elseif ( $type == "warning" ) {
		$type = "alert-warning";
	} elseif ( $type == "success" ) {
		$type = "alert-success";
	} else $type = "alert-info";
	
	if( is_array( $title ) ) {
		$title = end($title);
	}

	echo <<<HTML
<div class="alert {$type} alert-styled-left alert-arrow-left alert-component message_box">
  <h4>{$title}</h4>
  <div class="panel-body">
		<table width="100%">
		    <tr>
		        <td height="80" class="text-center">{$text}</td>
		    </tr>
		</table>
	</div>
	{$back}
</div>
HTML;
	
	echofooter();
	die();
}

function echoheader($header_title, $header_subtitle) {
	global $skin_header, $skin_footer, $skin_not_logged_header, $member_id, $user_group, $js_array, $css_array, $config, $lang, $is_loged_in, $mod, $action, $langdate, $db, $dle_login_hash;

	if( !is_array( $header_subtitle )) $header_subtitle = array ( '' => $header_subtitle);
	
	$breadcrumb = array( "<li><a href=\"?mod=main\"><i class=\"fa fa-home position-left\"></i>{$lang['skin_main']}</a></li>" );

	foreach ($header_subtitle as $key => $value) {
		
		if($key) {
			$breadcrumb[] = "<li><a href=\"{$key}\">{$value}</a></li>";
		} else {
			$breadcrumb[] = "<li class=\"active\">{$value}</li>";
		}
	}

	$breadcrumb = implode('', $breadcrumb);

	include_once (DLEPlugins::Check(ENGINE_DIR . '/skins/default.skin.php'));
	
	$js = build_js($js_array);
	$css = build_css($css_array);
	
	$skin_header = str_replace( "{js_files}", $js, $skin_header );
	$skin_header = str_replace( "{css_files}", $css, $skin_header );
	$skin_not_logged_header = str_replace( "{js_files}", $js, $skin_not_logged_header );
	$skin_not_logged_header = str_replace( "{css_files}", $css, $skin_not_logged_header );
	
	if( $is_loged_in ) echo $skin_header;
	else echo $skin_not_logged_header;
}

function echofooter() {
	global $is_loged_in, $skin_footer, $skin_not_logged_footer;

	if( $is_loged_in ) echo $skin_footer;
	else echo $skin_not_logged_footer;

}

function listdir($dir) {
	
	if( is_dir($dir) ) {

		$current_dir = @opendir( $dir );
		
		if($current_dir !== false ) {
			while ( $entryname = readdir( $current_dir ) ) {
				if( is_dir( $dir."/".$entryname ) AND ($entryname != "." AND $entryname != "..") ) {
					listdir( $dir."/".$entryname );
				} elseif( $entryname != "." AND $entryname != ".." ) {
					@unlink( $dir."/".$entryname );
				}
			}
			@closedir( $current_dir );
			@rmdir( $dir );
		}

	}

}

function totranslit($var, $lower = true, $punkt = true, $translit = true ) {
	global $langtranslit;
	
	if ( !is_string($var) ) return "";

	$bads = array( '!', '*', '\'', '(', ')', ';', ':', '@', '&', '=', '+', '$', ',', '/', '?', '#', '[', ']', '%', '\', '"', '<', '>', '^', '{', '}', '|', '`', '.php' );

	$var = html_entity_decode($var, ENT_QUOTES | ENT_HTML5, 'utf-8');

	$var = strip_tags( $var );
	$var = str_replace(chr(0), '', $var);
	
	if ( $lower ) {
		$var = dle_strtolower($var);	
	}
	
	$var = str_replace( array( "
", "
", "
" ), ' ', $var );
	$var = preg_replace( "/\s+/u", "-", $var );

	if ( !$punkt ) {
		$bads[] = '.';
	}
	
	$var = str_ireplace( $bads, '', $var );
	
	if( $translit ) {
		
		if (is_array($langtranslit) AND count($langtranslit) ) {
			$var = strtr($var, $langtranslit);
		}
		
		if ( $punkt ) {
			
			$var = preg_replace( "/[^a-z0-9\_\-.]+/mi", '', $var );
			$var = preg_replace( '#[.]+#i', '.', $var );
			
		} else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", '', $var );
	
	}
	
	$var = str_ireplace( ".php", ".ppp", $var );
	$var = preg_replace( '/\-+/', '-', $var );
	
	if( dle_strlen( $var ) > 150 ) {
		
		$var = dle_substr( $var, 0, 150 );
		
		if( ($temp_max = dle_strrpos( $var, '-' )) ) $var = dle_substr( $var, 0, $temp_max );
	
	}
    
	$var = trim( $var, '-' );
    $var = trim( $var );
	
	return $var;
}

function langdate($format, $stamp, $servertime = false, $custom = false ) {
	global $langdate, $member_id, $customlangdate;

	$timezones = array('Pacific/Midway','US/Samoa','US/Hawaii','US/Alaska','US/Pacific','America/Tijuana','US/Arizona','US/Mountain','America/Chihuahua','America/Mazatlan','America/Mexico_City','America/Monterrey','US/Central','US/Eastern','US/East-Indiana','America/Lima','America/Caracas','Canada/Atlantic','America/La_Paz','America/Santiago','Canada/Newfoundland','America/Buenos_Aires','America/Godthab','Atlantic/Stanley','Atlantic/Azores','Africa/Casablanca','Europe/Dublin','Europe/Lisbon','Europe/London','Europe/Amsterdam','Europe/Belgrade','Europe/Berlin','Europe/Bratislava','Europe/Brussels','Europe/Budapest','Europe/Copenhagen','Europe/Madrid','Europe/Paris','Europe/Prague','Europe/Rome','Europe/Sarajevo','Europe/Stockholm','Europe/Vienna','Europe/Warsaw','Europe/Zagreb','Europe/Athens','Europe/Bucharest','Europe/Helsinki','Europe/Istanbul','Asia/Jerusalem','Europe/Kiev','Europe/Minsk','Europe/Riga','Europe/Sofia','Europe/Tallinn','Europe/Vilnius','Asia/Baghdad','Asia/Kuwait','Africa/Nairobi','Asia/Tehran','Europe/Kaliningrad','Europe/Moscow','Europe/Volgograd','Europe/Samara','Asia/Baku','Asia/Muscat','Asia/Tbilisi','Asia/Yerevan','Asia/Kabul','Asia/Yekaterinburg','Asia/Tashkent','Asia/Kolkata','Asia/Kathmandu','Asia/Almaty','Asia/Novosibirsk','Asia/Jakarta','Asia/Krasnoyarsk','Asia/Hong_Kong','Asia/Kuala_Lumpur','Asia/Singapore','Asia/Taipei','Asia/Ulaanbaatar','Asia/Urumqi','Asia/Irkutsk','Asia/Seoul','Asia/Tokyo','Australia/Adelaide','Australia/Darwin','Asia/Yakutsk','Australia/Brisbane','Pacific/Port_Moresby','Australia/Sydney','Asia/Vladivostok','Asia/Sakhalin','Asia/Magadan','Pacific/Auckland','Pacific/Fiji');

	if( is_array($custom) ) $locallangdate = $customlangdate; else $locallangdate = $langdate;

	if (!$stamp) { $stamp = time(); }
	
	$local = new DateTime('@'.$stamp);

	if (isset($member_id['timezone']) AND $member_id['timezone'] AND !$servertime) {
		$localzone = $member_id['timezone'];

	} else {

		$localzone = date_default_timezone_get();
	}

	if (!in_array($localzone, $timezones)) $localzone = 'Europe/Moscow';

	$local->setTimeZone(new DateTimeZone($localzone));

	return strtr( $local->format($format), $locallangdate );

}

function difflangdate($format, $stamp) {
	global $_TIME, $langdate, $member_id, $lang, $langcommentsweekdays;

	$timezones = array('Pacific/Midway', 'US/Samoa', 'US/Hawaii', 'US/Alaska', 'US/Pacific', 'America/Tijuana', 'US/Arizona', 'US/Mountain', 'America/Chihuahua', 'America/Mazatlan', 'America/Mexico_City', 'America/Monterrey', 'US/Central', 'US/Eastern', 'US/East-Indiana', 'America/Lima', 'America/Caracas', 'Canada/Atlantic', 'America/La_Paz', 'America/Santiago', 'Canada/Newfoundland', 'America/Buenos_Aires', 'America/Godthab', 'Atlantic/Stanley', 'Atlantic/Azores', 'Africa/Casablanca', 'Europe/Dublin', 'Europe/Lisbon', 'Europe/London', 'Europe/Amsterdam', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels', 'Europe/Budapest', 'Europe/Copenhagen', 'Europe/Madrid', 'Europe/Paris', 'Europe/Prague', 'Europe/Rome', 'Europe/Sarajevo', 'Europe/Stockholm', 'Europe/Vienna', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Athens', 'Europe/Bucharest', 'Europe/Helsinki', 'Europe/Istanbul', 'Asia/Jerusalem', 'Europe/Kiev', 'Europe/Minsk', 'Europe/Riga', 'Europe/Sofia', 'Europe/Tallinn', 'Europe/Vilnius', 'Asia/Baghdad', 'Asia/Kuwait', 'Africa/Nairobi', 'Asia/Tehran', 'Europe/Kaliningrad', 'Europe/Moscow', 'Europe/Volgograd', 'Europe/Samara', 'Asia/Baku', 'Asia/Muscat', 'Asia/Tbilisi', 'Asia/Yerevan', 'Asia/Kabul', 'Asia/Yekaterinburg', 'Asia/Tashkent', 'Asia/Kolkata', 'Asia/Kathmandu', 'Asia/Almaty', 'Asia/Novosibirsk', 'Asia/Jakarta', 'Asia/Krasnoyarsk', 'Asia/Hong_Kong', 'Asia/Kuala_Lumpur', 'Asia/Singapore', 'Asia/Taipei', 'Asia/Ulaanbaatar', 'Asia/Urumqi', 'Asia/Irkutsk', 'Asia/Seoul', 'Asia/Tokyo', 'Australia/Adelaide', 'Australia/Darwin', 'Asia/Yakutsk', 'Australia/Brisbane', 'Pacific/Port_Moresby', 'Australia/Sydney', 'Asia/Vladivostok', 'Asia/Sakhalin', 'Asia/Magadan', 'Pacific/Auckland', 'Pacific/Fiji');

	if (!is_array($langdate)) {
		$langdate = array();
	}

	if (!is_array($langcommentsweekdays)) {
		$langcommentsweekdays = array();
	}

	if (!$stamp) {
		$stamp = $_TIME;
	}

	$olddate = new DateTime('@' . $stamp);
	$nowdate = new DateTime('@' . $_TIME);
	$yesterdaydate = new DateTime('-1 day');

	if (isset($member_id['timezone']) and $member_id['timezone']) {
		$localzone = $member_id['timezone'];
	} else {

		$localzone = date_default_timezone_get();
	}

	if (!in_array($localzone, $timezones)) $localzone = 'Europe/Moscow';

	$olddate->setTimeZone(new DateTimeZone($localzone));
	$nowdate->setTimeZone(new DateTimeZone($localzone));
	$yesterdaydate->setTimeZone(new DateTimeZone($localzone));

	$diff = $olddate->diff($nowdate);

	$days    = intval($diff->format('%a'));
	$hours   = intval($diff->format('%h'));
	$minutes = intval($diff->format('%i'));

	if ($olddate->format('Ymd') == $yesterdaydate->format('Ymd')) {

		$lang_format = str_replace('{date}', $lang['time_gestern'], $lang['diffs_format']);
		$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);

		return $lang_format;
	} elseif ($days < 1) {

		if ($hours < 1) {

			if ($minutes < 1) {

				return $lang['now_diffs'];
			} else {

				return $minutes . ' ' . declination(array('', $minutes, $lang['minutes_diffs'])) . ' ' . $lang['time_diffs'];
			}
		} elseif ($hours <= 12) {

			return $hours . ' ' . declination(array('', $hours, $lang['hours_diffs'])) . ' ' . $lang['time_diffs'];
		} else {

			$lang_format = str_replace('{date}', $lang['time_heute'], $lang['diffs_format']);
			$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);

			return $lang_format;
		}
	} else {

		if ($days < 6) {

			$lang_format = str_replace('{date}', $olddate->format('l'), $lang['diffs_format']);
			$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);

			return strtr($lang_format, $langcommentsweekdays);
		} else return strtr($olddate->format($format), $langdate);
	}
}

function declination($matches = array())
{

	$matches[1] = strip_tags($matches[1]);
	$matches[1] = str_replace(' ', '', $matches[1]);

	$matches[1] = intval($matches[1]);
	$words = explode('|', trim($matches[2]));
	$parts_word = array();

	switch (count($words)) {
		case 1:
			$parts_word[0] = $words[0];
			$parts_word[1] = $words[0];
			$parts_word[2] = $words[0];
			break;
		case 2:
			$parts_word[0] = $words[0];
			$parts_word[1] = $words[0] . $words[1];
			$parts_word[2] = $words[0] . $words[1];
			break;
		case 3:
			$parts_word[0] = $words[0];
			$parts_word[1] = $words[0] . $words[1];
			$parts_word[2] = $words[0] . $words[2];
			break;
		case 4:
			$parts_word[0] = $words[0] . $words[1];
			$parts_word[1] = $words[0] . $words[2];
			$parts_word[2] = $words[0] . $words[3];
			break;
	}

	$word = $matches[1] % 10 == 1 && $matches[1] % 100 != 11 ? $parts_word[0] : ($matches[1] % 10 >= 2 && $matches[1] % 10 <= 4 && ($matches[1] % 100 < 10 || $matches[1] % 100 >= 20) ? $parts_word[1] : $parts_word[2]);

	return $word;
}

function CategoryNewsSelection($categoryid = 0, $parentid = 0, $nocat = TRUE, $sublevelmarker = '', $returnstring = '') {
	global $cat_info, $member_id, $user_group, $mod;
	
	if ($mod == "addnews" OR $mod == "editnews") {
		
		if($member_id['cat_allow_addnews']) {
			$allow_list = explode( ',', $member_id['cat_allow_addnews'] );
		} else $allow_list = explode( ',', $user_group[$member_id['user_group']]['cat_allow_addnews'] );
		
	} else {
		
		$allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );
		
	}
	
	if( $mod != "usergroup" AND $mod != "editusers") {
		
		$not_allow_list = explode( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
		
	} else $not_allow_list = array();
	
	if( $parentid == 0 ) {
		if( $nocat ) $returnstring .= '<option value="0"></option>';
	} else {
		$sublevelmarker .= '&nbsp;&nbsp;&nbsp;&nbsp;';
	}
	
	if( count( $cat_info ) ) {
		
		$root_category = array();
		
		foreach ( $cat_info as $cats ) {
			if( $cats['parentid'] == $parentid ) $root_category[] = $cats['id'];
		}

		if( count( $root_category ) ) {
			
			foreach ( $root_category as $id ) {
				
				if( ( $allow_list[0] == "all" OR in_array( $id, $allow_list ) ) OR $mod == "usergroup" OR $mod == "editusers" ) {
					
					if( in_array( $id, $not_allow_list ) ) continue;
					
					$returnstring .= "<option value=\"" . $id . '" ';
					
					if( is_array( $categoryid ) ) {
						foreach ( $categoryid as $element ) {
							if( $element == $id ) $returnstring .= 'selected';
						}
					} elseif( $categoryid == $id ) $returnstring .= 'selected';
					
					$returnstring .= '>' . $sublevelmarker . $cat_info[$id]['name'] . '</option>';
				}
				
				$returnstring = CategoryNewsSelection( $categoryid, $id, $nocat, $sublevelmarker, $returnstring );
			}
		}
	}
	
	return $returnstring;
}


function array_selection($array_list, $selid = 0, $parentid = 0, $sublevelmarker = '', $returnstring = '') {

	$root_category = array ();
	
	if( $parentid == 0 ) {
		$returnstring .= '<option value="0"></option>';
	} else {
		$sublevelmarker .= '&nbsp;&nbsp;&nbsp;';
	}
	
	if( count( $array_list ) ) {
		
		foreach ( $array_list as $list ) {
			if( $list['parentid'] == $parentid ) $root_category[] = $list['id'];
		}
		
		if( count( $root_category ) ) {
			foreach ( $root_category as $id ) {
					
				$returnstring .= "<option value=\"" . $id . '" ';
					
				if( is_array( $selid ) ) {
					foreach ( $selid as $element ) {
						
						$element = intval($element);
						
						if( $element == $id ) $returnstring .= 'selected';
						
					}
				} elseif( intval($selid) == $id ) $returnstring .= 'selected';
					
				$returnstring .= '>' . $sublevelmarker . $array_list[$id]['title'] . '</option>';
				
				$returnstring = array_selection($array_list, $selid, $id, $sublevelmarker, $returnstring );
			}
		}
	}
	
	return $returnstring;
}

function dle_cache($prefix, $cache_id = false, $member_prefix = false) {
	global $config, $is_logged, $member_id, $dlefastcache;
	
	if( !$config['allow_cache'] ) return false;

	$config['clear_cache'] = (intval($config['clear_cache']) > 1) ? intval($config['clear_cache']) : 0;

	if( $is_logged ) $end_file = $member_id['user_group'];
	else $end_file = "0";
	
	if( ! $cache_id ) {
		
		$key = $prefix;
	
	} else {
		
		$cache_id = md5( $cache_id );
		
		if( $member_prefix ) $key = $prefix . "_" . $cache_id . "_" . $end_file;
		else $key = $prefix . "_" . $cache_id;
	
	}
	
	if( $config['cache_type'] ) {
		if( $dlefastcache->connection > 0 ) {
			return $dlefastcache->get($key);
		}
	}

	$buffer = @file_get_contents( ENGINE_DIR . "/cache/" . $key . ".tmp" );

	if ( $buffer !== false AND $config['clear_cache'] ) {

		$file_date = @filemtime( ENGINE_DIR . "/cache/" . $key . ".tmp" );
		$file_date = time()-$file_date;

		if ( $file_date > ( $config['clear_cache'] * 60 ) ) {
			$buffer = false;
			@unlink( ENGINE_DIR . "/cache/" . $key . ".tmp" );
		}

		return $buffer;

	} else return $buffer;

}

function create_cache($prefix, $cache_text, $cache_id = false, $member_prefix = false) {
	global $config, $is_logged, $member_id, $dlefastcache;
	
	if( !$config['allow_cache'] ) return false;
	
	if( $is_logged ) $end_file = $member_id['user_group'];
	else $end_file = "0";
	
	if( ! $cache_id ) {
		
		$key = $prefix;
		
	} else {
		
		$cache_id = md5( $cache_id );
		
		if( $member_prefix ) $key = $prefix . "_" . $cache_id . "_" . $end_file;
		else $key = $prefix . "_" . $cache_id;
	
	}
	
	if($cache_text === false) $cache_text = '';

	if( $config['cache_type'] ) {
		if( $dlefastcache->connection > 0 ) {
			$dlefastcache->set( $key, $cache_text );
			return true;
		}
	}

	file_put_contents (ENGINE_DIR . "/cache/" . $key . ".tmp", $cache_text, LOCK_EX);
	@chmod( ENGINE_DIR . "/cache/" . $key . ".tmp", 0666 );
	
	return true;
	
}

function clear_cache($cache_areas = false) {
	global $dlefastcache, $config;

	if( $config['cache_type'] ) {
		if( $dlefastcache->connection > 0 ) {
			$dlefastcache->clear( $cache_areas );
			return true;
		}
	}

	if ( $cache_areas ) {
		if(!is_array($cache_areas)) {
			$cache_areas = array($cache_areas);
		}
	}
		
	$fdir = opendir( ENGINE_DIR . '/cache' );
		
	while ( $file = readdir( $fdir ) ) {
		if( $file != '.htaccess' AND !is_dir(ENGINE_DIR . '/cache/' . $file) ) {
			
			if( $cache_areas ) {
				
				foreach($cache_areas as $cache_area) if( stripos( $file, $cache_area ) === 0 ) @unlink( ENGINE_DIR . '/cache/' . $file );
			
			} else {
				
				@unlink( ENGINE_DIR . '/cache/' . $file );
			
			}
		}
	}
}

function clear_all_caches() {
	global $config;
	
	listdir( ENGINE_DIR . '/cache/system/CSS' );
	listdir( ENGINE_DIR . '/cache/system/HTML' );
	listdir( ENGINE_DIR . '/cache/system/URI' );
	listdir( ENGINE_DIR . '/cache/system/plugins' );
	
	$fdir = opendir( ENGINE_DIR . '/cache/system/' );
	while ( $file = readdir( $fdir ) ) {
		if( !is_dir(ENGINE_DIR . '/cache/system/' . $file ) AND $file != '.htaccess' AND $file != 'cron.php' ) {
			@unlink( ENGINE_DIR . '/cache/system/' . $file );
		
		}
	}
	
	if( $config['cache_type'] ) {
		$fdir = opendir( ENGINE_DIR . '/cache' );
		while ( $file = readdir( $fdir ) ) {
			if( $file != '.htaccess' AND !is_dir(ENGINE_DIR . '/cache/' . $file)  ) {
					@unlink( ENGINE_DIR . '/cache/' . $file );
			}
		}
	}
	
	clear_cache();
	
	if (function_exists('opcache_reset')) {
		opcache_reset();
	}
	
}

function clear_static_cache_id( $save = true ) {

	$salt = str_shuffle("abchefghjkmnpqrstuvwxyz0123456789");

	$new_cache_id = "";

	for ($i = 0; $i < 5; $i++) {
		$new_cache_id .= $salt[random_int(0, 32)];
	}

	if ($save AND is_writable(ENGINE_DIR . '/data/config.php')) {

		include(ENGINE_DIR . '/data/config.php');

		$config['cache_id'] = $new_cache_id;

		$handler = fopen(ENGINE_DIR . '/data/config.php', "w");
		fwrite($handler, "<?php 

//System Configurations

\$config = array (

");
		foreach ($config as $name => $value) {
			fwrite($handler, "'{$name}' => \"{$value}\",

");
		}
		fwrite($handler, ");

?>");
		fclose($handler);

	}

	return $new_cache_id;

}

function xfieldsdataload($id) {
	
	if( $id == "" ) return;
	
	$xfieldsdata = explode( "||", $id );
	foreach ( $xfieldsdata as $xfielddata ) {
		list ( $xfielddataname, $xfielddatavalue ) = explode( "|", $xfielddata );
		$xfielddataname = str_replace( "&#124;", "|", $xfielddataname );
		$xfielddataname = str_replace( "__NEWL__", "
", $xfielddataname );
		$xfielddatavalue = str_replace( "&#124;", "|", $xfielddatavalue );
		$xfielddatavalue = str_replace( "__NEWL__", "
", $xfielddatavalue );
		$data[$xfielddataname] = $xfielddatavalue;
	}
	
	return $data;
}

function xfieldsload() {
	global $lang, $config;
	
	$path = ENGINE_DIR . '/data/xfields.txt';
	$filecontents = file( $path );
	$fields = array();
	$tmp_arr = array();

	if( !is_array( $filecontents ) ) {
		
		return array();
	
	} elseif( count($filecontents) ) {
		
		foreach ( $filecontents as $name => $value ) {
			
			if( trim($value) ) {
				
				$tmp_arr = explode( "|", trim($value, "	

") );
				
				foreach ( $tmp_arr as $name2 => $value2 ) {
					$value2 = str_replace( "&#124;", "|", $value2 );
					$value2 = str_replace( "__NEWL__", "
", $value2 );
					$value2 = html_entity_decode($value2, ENT_QUOTES, $config['charset']);
					$fields[$name][$name2] = $value2;
				}
				
			}
		}

		return $fields;

	}
	
	return array();
}

function clear_content ( $content, $len = 300 ) {
	
	global $config;
	
	if(!$content OR !is_string($content) ) {
		return '';
	}
	
	$remove = array ("`", "	", "
", "
", '	', '
', '
', "{PAGEBREAK}", "&nbsp;", "<br />", "<br>", " ," );
	$len = intval($len);
	
	$content = stripslashes($content);
	
	$content = html_entity_decode($content, ENT_QUOTES | ENT_HTML5, $config['charset'] );

	$content = preg_replace( "#\[hide(.*?)\](.+?)\[/hide\]#is", "", $content );
	$content = preg_replace( "'\[attachment=(.*?)\]'si", "", $content );
	$content = preg_replace( "'\[page=(.*?)\](.*?)\[/page\]'si", "", $content );
	$content = preg_replace( "'{banner_(.*?)}'si", "", $content );
	$content = preg_replace( "'\[banner_(.*?)\](.*?)\[/banner_(.*?)\]'si", "", $content );
	$content = preg_replace( "#<pre(.*?)>(.+?)</pre>#is", "", $content );
	$content = str_replace( "&#1072;", "a", $content );
	$content = str_replace( "&#111;", "o", $content );
	$content = preg_replace( "#&(.+?);#", "", $content );

	$content = str_replace( $remove, ' ', $content );
	$content = strip_tags($content);
	
	$content = preg_replace("#(^|\s|>)((http|https)://\w+[^\s\[\]\<]+)#i", '', $content);
	
	$content = str_replace("&amp;amp;", "&amp;", htmlspecialchars($content, ENT_COMPAT, $config['charset'] ));
	
	$content = preg_replace('/\s+/u', ' ', $content);

	if( $len AND $len > 1 ) {

		if(dle_strlen( $content, $config['charset'] ) > $len ) {
	
			$content = dle_substr( $content, 0, $len, $config['charset'] );
				
			if( ($temp_dmax = dle_strrpos( $content, ' ', $config['charset'] )) ) $content = dle_substr( $content, 0, $temp_dmax, $config['charset'] );
				
		}

	}
	
	return trim($content);
}

function create_metatags($story, $ajax = false) {
	global $config, $db;
	
	$keyword_count = 20;
	$newarr = array ();
	$headers = array ();

	$bad_keywords_symbol = array (",", ".", "/", "#", ":", "@", "~", "=", "-", "+", "*", "^", "%", "$", "?", "!");
	$remove = array ('	', '
', '
' );
	
	$story = explode( "{PAGEBREAK}", $story );
	$story = $story[0];

	$story = str_replace( $remove, ' ', $story );

	$_REQUEST['meta_title'] = isset($_REQUEST['meta_title']) ? trim( str_replace($remove, ' ', $_REQUEST['meta_title']) ) : '';
	$_REQUEST['descr'] = isset($_REQUEST['descr']) ? trim( str_replace($remove, ' ', $_REQUEST['descr']) ) : '';
	$_REQUEST['keywords'] = isset($_REQUEST['keywords']) ? trim( str_replace($remove, ' ', $_REQUEST['keywords']) ) : '';

	if( $_REQUEST['meta_title'] ) {
	
		$headers['title'] = clear_content( $_REQUEST['meta_title'] );
		
		$headers['title'] = $db->safesql( $headers['title']  );
		

	} else $headers['title'] = "";
	
	if( $_REQUEST['descr'] ) {
		
		$headers['description'] = clear_content( $_REQUEST['descr'] );
		
		$headers['description'] = $db->safesql( $headers['description'] );
		
	} elseif($config['create_metatags'] OR $ajax) {

		$headers['description'] = clear_content(stripslashes($story), 0);
		
		if( dle_strlen( $headers['description'], $config['charset'] ) > 300 ) {
			
			$headers['description'] = dle_substr( $headers['description'], 0, 300, $config['charset'] );
			
			if( ($temp_dmax = dle_strrpos( $headers['description'], ' ', $config['charset'] )) ) $headers['description'] = dle_substr( $headers['description'], 0, $temp_dmax, $config['charset'] );

		}
		
		$headers['description'] = $db->safesql( $headers['description'] );

	} else {

		$headers['description'] = '';

	}
	
	if( $_REQUEST['keywords'] ) {
		
		$arr = explode( ",", clear_content($_REQUEST['keywords'], 0) );
		$newarr = array();

		foreach ( $arr as $word ) {
			$newarr[] = trim(str_replace($bad_keywords_symbol, '', $word));
		}

		$_REQUEST['keywords'] = implode( ", ", $newarr );

		$headers['keywords'] = $db->safesql( $_REQUEST['keywords'] );

	} elseif( $config['create_metatags'] OR $ajax) {

		$story = clear_content(str_replace($bad_keywords_symbol, '', stripslashes($story)), 0);

		$arr = explode(" ", $story );
		
		foreach ( $arr as $word ) {
			if( dle_strlen( $word, $config['charset'] ) > 4 ) $newarr[] = $word;
		}
		
		$arr = array_count_values( $newarr );
		arsort( $arr );
		
		$arr = array_keys( $arr );
		
		$offset = 0;
		
		$arr = array_slice( $arr, $offset, $keyword_count );
		
		$headers['keywords'] = $db->safesql( implode( ", ", $arr ) );
		
	} else {

		$headers['keywords'] = '';

	}

	return $headers;
}

function set_vars($file, $data) {
	
	$file = totranslit($file, true, false);
	
	if ( is_array($data) OR is_int($data) OR is_string($data) ) {
		
		file_put_contents (ENGINE_DIR . '/cache/system/' . $file . '.php', json_encode( $data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ), LOCK_EX);
		@chmod( ENGINE_DIR . '/cache/system/' . $file . '.php', 0666 );
		
	}
}

function get_vars($file) {
	$file = totranslit($file, true, false);

	$data = @file_get_contents( ENGINE_DIR . '/cache/system/' . $file . '.php' );

	if ( $data !== false ) {

		$data = json_decode( $data, true );
		if ( is_array($data) OR is_int($data) OR is_string($data) ) return $data;

	} 

	return false;	
}

function get_folder_list( $folder = 'language' ) {
	global $lang;
	$allowed_folder = array( 'language', 'templates' );
	
	$list = array ();
	
	if( !in_array($folder, $allowed_folder) ) {
		return $list;
	}
	
	if( !$handle = opendir( ROOT_DIR . "/". $folder ) ) {
		$list[]['name'] = $lang['opt_errfo']." ".$folder;
		return $list;
	}
	
	while ( false !== ($file = readdir( $handle )) ) {
		
		if( is_dir( ROOT_DIR . "/".$folder."/".$file ) AND ($file != "." and $file != "..") ) {
			
			if( is_file( ROOT_DIR . "/".$folder."/".$file."/info.json" ) ) {
				
				$data = json_decode( trim(file_get_contents( ROOT_DIR . "/".$folder."/".$file."/info.json" ) ), true );
				
				if( isset($data['name']) AND $data['name'] ) {
					$list[$file] = $data;
					continue;
				}
			}
			
			$list[$file]['name'] = $file;
		}
		
	}

	closedir( $handle );
	ksort($list);

	return $list;

	
}

function get_groups($id = false) {
	global $user_group;
	
	$returnstring = "";
	
	foreach ( $user_group as $group ) {
		$returnstring .= '<option value="' . $group['id'] . '" ';
		
		if( is_array( $id ) ) {
			foreach ( $id as $element ) {
				if( $element == $group['id'] ) $returnstring .= 'SELECTED';
			}
		} elseif( $id and $id == $group['id'] ) $returnstring .= 'SELECTED';
		
		$returnstring .= ">" . $group['group_name'] . "</option>
";
	}
	
	return $returnstring;

}
function permload($id) {
	
	if( $id == "" ) return;
	
	$data = array ();
	
	$groups = explode( "|", $id );
	foreach ( $groups as $group ) {
		list ( $groupid, $groupvalue ) = explode( ":", $group );
		$data[$groupid][1] = ($groupvalue == 1) ? "selected" : "";
		$data[$groupid][2] = ($groupvalue == 2) ? "selected" : "";
		$data[$groupid][3] = ($groupvalue == 3) ? "selected" : "";
	}
	return $data;
}

function check_xss() {

	if (isset($_GET['mod']) AND isset($_GET['action']) AND $_GET['mod'] == "editnews" AND $_GET['action'] == "list") return;
	if (isset($_GET['mod']) AND isset($_GET['action']) AND $_GET['mod'] == "static" AND $_GET['action'] == "list") return;
	if (isset($_GET['mod']) AND ($_GET['mod'] == "tagscloud" OR $_GET['mod'] == "links" OR $_GET['mod'] == "redirects"  OR $_GET['mod'] == "metatags") ) return;
	
	$url = html_entity_decode( urldecode( $_SERVER['QUERY_STRING'] ), ENT_QUOTES, 'ISO-8859-1' );

	$url = str_replace( "\", "/", $url );

	if( $url ) {
		
		if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '"' ) !== false) || (strpos( $url, './' ) !== false) || (strpos( $url, '../' ) !== false) || (strpos( $url, '\'' ) !== false) || (strpos( $url, '.php' ) !== false) ) {

			header( "HTTP/1.1 403 Forbidden" );
			die( "Hacking attempt!" );
		
		}
	
	}
	
	$url = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ), ENT_QUOTES, 'ISO-8859-1' );
	$url = str_replace( "\", "/", $url );
	
	if( $url ) {
		
		if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '"' ) !== false) || (strpos( $url, '\'' ) !== false) ) {
			header( "HTTP/1.1 403 Forbidden" );
			die( "Hacking attempt!" );
		
		}
	
	}

}

function clean_url($url) {
	
	if( $url == '' ) return;
	
	$url = str_replace( "http://", "", $url );
	$url = str_replace( "https://", "", $url );
	if( strtolower( substr( $url, 0, 4 ) ) == 'www.' ) $url = substr( $url, 4 );
	$url = explode( '/', $url );
	$url = reset( $url );
	$url = explode( ':', $url );
	$url = reset( $url );
	
	return $url;
}

function get_url($id) {
	
	global $cat_info;

	$cat_id = false;
	
	if( !$id ) return "";

	$id = explode (",", $id);

	foreach ($id as $val) {
		
		$val = intval($val);
		
		if ( isset($cat_info[$val]['id']) AND $cat_info[$val]['id'] AND $val ) {
			$cat_id = $val;
			break;
		}
		
	}
	
	if( !$cat_id ) return "";
	
	$id = $cat_id;
	
	$parent_id = $cat_info[$id]['parentid'];
	
	$url = $cat_info[$id]['alt_name'];
	
	while ( $parent_id ) {
		
		if( !$cat_info[$parent_id]['id'] ) {
			break;
		}
		
		$url = $cat_info[$parent_id]['alt_name'] . "/" . $url;
		
		$parent_id = $cat_info[$parent_id]['parentid'];

		if($parent_id) {	
			if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
		}
	
	}
	
	return $url;
}

function convert_unicode($t, $to = '') {
// deprecated
	return $t;
}

function check_netz($ip1, $ip2) {
	
	if( strpos($ip1, ":") === false ) {
		$delimiter = ".";
	} else $delimiter = ":";
	
	$ip1 = explode( $delimiter, $ip1 );
	$ip2 = explode( $delimiter, $ip2 );
	
	if( $ip1[0] != $ip2[0] ) return false;
	if( $ip1[1] != $ip2[1] ) return false;
	
	if($delimiter == ":") {
		if( $ip1[2] != $ip2[2] ) return false;
		if( $ip1[3] != $ip2[3] ) return false;
	}
	
	return true;

}

function compare_filter($a, $b) {
	
	$a = explode( "|", $a );
	$b = explode( "|", $b );
	
	if( $a[1] == $b[1] ) return 0;
	
	return strcasecmp( $a[1], $b[1] );

}

function build_js($js) {
	global $config;

	$js_array = array();
	$i=0;
	$defer = "";
	
	if ($config['js_min']) {

		$js_array[] = "<script src=\"engine/classes/min/index.php?charset={$config['charset']}&amp;g=admin&amp;v={$config['cache_id']}\"></script>";

		if ( count($js) ) $js_array[] = "<script src=\"engine/classes/min/index.php?charset={$config['charset']}&amp;f=".implode(",", $js)."&amp;v={$config['cache_id']}\" defer></script>";

		return implode("
", $js_array);

	} else {

		$default_array = array (
			'engine/skins/javascripts/application.js',
		);

		if ( count($js) ) $js = array_merge($default_array, $js); else $js = $default_array;

		foreach ($js as $value) {
			
			if($i > 0) $defer =" defer";
			
			$js_array[] = "<script src=\"{$value}?v={$config['cache_id']}\"{$defer}></script>";
			
			$i++;
		
		}

		return implode("
", $js_array);
	}

}


function build_css($css) {
	global $config;

	$default_array = array (
		'engine/skins/fonts/fontawesome/styles.min.css',
		'engine/skins/stylesheets/application.css'
	);
	
	$css_array = array();

	if ( count($css) ) $css = array_merge($default_array, $css); else $css = $default_array;

	if ($config['js_min']) {

		return "<link href=\"engine/classes/min/index.php?charset={$config['charset']}&amp;f=".implode(",", $css)."&amp;v={$config['cache_id']}\" rel=\"stylesheet\" type=\"text/css\">";

	} else {

		foreach ($css as $value) {
		
			$css_array[] = "<link href=\"{$value}?v={$config['cache_id']}\" rel=\"stylesheet\" type=\"text/css\">";
		
		}

		return implode("
", $css_array);
	}

}

function dle_strlen($value, $charset = "utf-8" ) {

	if( function_exists( 'mb_strlen' ) ) {
		return mb_strlen( $value, $charset );
	} elseif( function_exists( 'iconv_strlen' ) ) {
		return iconv_strlen($value, $charset);
	}

	return strlen($value);
}

function dle_substr($str, $start, $length, $charset = "utf-8" ) {

	if( function_exists( 'mb_substr' ) ) {
		return mb_substr( $str, $start, $length, $charset );
	
	} elseif( function_exists( 'iconv_substr' ) ) {
		return iconv_substr($str, $start, $length, $charset);
	}

	return substr($str, $start, $length);

}

function dle_strrpos($str, $needle, $charset = "utf-8" ) {

	if( function_exists( 'mb_strrpos' ) ) {
		return mb_strrpos( $str, $needle, 0, $charset );
	
	} elseif( function_exists( 'iconv_strrpos' ) ) {
		return iconv_strrpos($str, $needle, $charset);
	}

	return strrpos($str, $needle);

}

function dle_strpos($str, $needle, $charset = "utf-8" ) {

	if( function_exists( 'mb_strpos' ) ) {
		return mb_strpos( $str, $needle, 0, $charset );
	} elseif( function_exists( 'iconv_strrpos' ) ) {
		return iconv_strpos($str, $needle, 0, $charset);
	}

	return strpos($str, $needle);

}

function dle_strtolower($str, $charset = "utf-8" ) {

	if( function_exists( 'mb_strtolower' ) ) {
		return mb_strtolower( $str, $charset );
	}

	return strtolower($str);

}

function check_allow_login($ip, $max ) {
	global $db, $config;

	$config['login_ban_timeout'] = intval($config['login_ban_timeout']);
	
	$max = intval($max);
	
	if( $max < 2 ) $max = 2;
	
	$block_date = time()-($config['login_ban_timeout'] * 60);

	$row = $db->super_query( "SELECT * FROM " . PREFIX . "_login_log WHERE ip='{$ip}'" );

	if ( isset($row['count']) AND $row['count'] AND $row['date'] < $block_date ) {
		$db->query( "DELETE FROM " . PREFIX . "_login_log WHERE ip = '{$ip}'" );
		return true;
	}

	if ( isset($row['count']) AND $row['count'] >= $max AND $row['date'] > $block_date ) return false;
	else return true;

}

function detect_encoding($string) {  
  static $list = array('utf-8', 'windows-1251');
   
  foreach ($list as $item) {

	if( function_exists( 'mb_convert_encoding' ) ) {

		$sample = mb_convert_encoding( $string, $item, $item );

	} elseif( function_exists( 'iconv' ) ) {
	
		$sample = iconv($item, $item, $string);
	
	}

	if (md5($sample) == md5($string)) return $item;
   }

   return null;
}

function get_ip() {
	global $config;
	
	if (isset($config['own_ip']) AND $config['own_ip']) $ip = $_SERVER[$config['own_ip']]; else $ip = $_SERVER['REMOTE_ADDR'];

	$temp_ip = explode(",", $ip);

	if(count($temp_ip) > 1) $ip = trim($temp_ip[0]);

	if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) {
		return filter_var( $ip , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
	}

	if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) {
		return filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
	}

	return 'not detected';
}

function http_get_contents( $file, $post_params = false ) {
		
	$data = false;

	if (stripos($file, "http://") !== 0 AND stripos($file, "https://") !== 0) {
		return false;
	}
		
	if( function_exists( 'curl_init' ) ) {
			
		$ch = curl_init();
		curl_setopt( $ch, CURLOPT_URL, $file );

		if( is_array($post_params) ) {

			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_params));

		}
		
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
		curl_setopt($ch, CURLOPT_TIMEOUT, 5 );
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
		curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
			
		$data = curl_exec( $ch );
		curl_close( $ch );

		if( $data !== false ) return $data;
		
	} 

	if( preg_match('/1|yes|on|true/i', ini_get('allow_url_fopen')) ) {

		if( is_array($post_params) ) {

			$file .= '?'.http_build_query($post_params);
		}

		$data = @file_get_contents( $file );
			
		if( $data !== false ) return $data;

	}

	return false;	
}

function cleanpath($path) {
	$path = trim(str_replace(chr(0), '', (string)$path));
	$path = str_replace(array('/', '\'), '/', $path);
	$path = str_replace(array('"', "'"), '', $path);
	
	if (preg_match('#\p{C}+#u', $path)) {
        return '';
    }
	
	$path = strip_tags($path);
	
	$parts = array_filter(explode('/', $path), 'strlen');
	$absolutes = array();
	foreach ($parts as $part) {
		if ('.' == $part OR !$part) continue;
		if ('..' == $part) {
			array_pop($absolutes);
		} else {
			$absolutes[] = $part;
		}
	}

	return implode('/', $absolutes);
}

function is_md5hash( $md5 = '' ) {
  return strlen($md5) == 32 && ctype_xdigit($md5);
}

function generate_pin(){
	
	$pin = "";
	
	for($i = 0; $i < 5; $i ++) {

		$pin .= random_int(0, 9);
	}
	
    return $pin;
}

function send_activation( $query ) {
	
	$data = http_get_contents("https://dle-news.ru/extras/activate2009.php?".$query);

	if( $data !== false ) {	
		if( stripos( $data, "antw:activated" ) !== false ) return "1";
		elseif( stripos( $data, "antw:denied;expires" ) !== false ) return "-4";
		elseif( stripos( $data, "antw:denied" ) !== false ) return "0";
	}

	return "-1";
}

function get_domen_hash() {
	$domen_md5 = explode( '.', $_SERVER['HTTP_HOST'] );
	$count_key = count( $domen_md5 ) - 1;
	unset( $domen_md5[$count_key] );
	if( end( $domen_md5 ) == "com" OR end( $domen_md5 ) == "net" ) $count_key --;
	$domen_md5 = $domen_md5[$count_key - 1];
	$domen_md5 = md5( md5( $domen_md5 . "780918" ) );
	return $domen_md5;
}

function dle_activation($key, $domen_md5, $config, $offline = false) {	
	global $lang;
	
	$domain = urlencode( strip_tags( $_SERVER['HTTP_HOST'] ) );
	$key = trim( strip_tags( $key ) );
	@header( "Content-type: text/html; charset=utf-8" );

	if ( $offline ) {

		if( $key == md5( $domen_md5 . DINITVERSION ) ) {
			
			$buffer = "1";
		
		} else {
			
			$buffer = "-2";
		
		}

	} else {

		if( strlen( $key ) == 32 ) {

			$buffer = "-3";

		} else {

			$buffer = send_activation( "domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID );

		}
	}

	switch ($buffer) {
		
		case "-4" :
			$buffer = $lang['trial_act7'];
			break;
		
		case "-3" :
			$buffer = $lang['trial_act6']." ".$lang['key_format']." <b>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</b>";
			break;
		
		case "-2" :
			$buffer = $lang['trial_act5'];
			break;
		
		case "-1" :
			$buffer = $lang['trial_act1'] . $lang['get_offline_key'] . " <a href=\"https://dle-news.ru/index.php?do=offlinekey&domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID . "\" class=\"status-error\" target=\"_blank\">" . $lang['get_key'] . "</a> " . $lang['key_activation'];
			$buffer .= "<br /><br /><b>$lang[site_code]</b><span class=\"sitecodefield\"><input class=\"classic width-400 mr-10 ml-10\" type=\"text\" name=\"sitecode\" id=\"sitecode\"> <button onclick=\"dle_activation( 'code' ); return false;\" class=\"btn bg-teal btn-raised btn-sm\">{$lang['trial_act']}</button></span><div id=\"result_info\" style=\"color:red;\"></div>";
			break;
		
		case "0" :
			$buffer = $lang['trial_act2'];
			break;
		
		case "1" :

			include(ENGINE_DIR . '/data/config.php');
			
			$config['key'] = md5( $domen_md5 . DINITVERSION );
			
			$handler = fopen( ENGINE_DIR . '/data/config.php', "w" );
			fwrite( $handler, "<?php 

//System Configurations

\$config = array (

" );
			foreach ( $config as $name => $value ) {
				fwrite( $handler, "'{$name}' => \"{$value}\",

" );
			}
			fwrite( $handler, ");

?>" );
			fclose( $handler );
			
			if (function_exists('opcache_reset')) {
				opcache_reset();
			}
			
			$buffer = $lang['trial_act3'];
			break;
		
		default :
			$buffer = $lang['trial_act4'] . $lang['get_offline_key'] . " <a href=\"https://dle-news.ru/index.php?do=offlinekey&domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID . "\" >" . $lang['get_key'] . "</a> " . $lang['key_activation'];
	}
	
	echo $buffer;
	die();
}

function normalize_name($var, $punkt = true) {
	
	if ( !is_string($var) ) return;

	$var = str_replace(chr(0), '', $var);
	
	$var = trim( strip_tags( $var ) );
	$var = preg_replace( "/\s+/u", "-", $var );
	$var = str_replace( "/", "-", $var );
	
	if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
	else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );

	$var = preg_replace( '#[\-]+#i', '-', $var );
	$var = preg_replace( '#[.]+#i', '.', $var );
	
	return $var;
}

function clearfilepath( $file, $ext=array() ) {

	$file = trim(str_replace(chr(0), '', (string)$file));
	$file = str_replace(array('/', '\'), '/', $file);
	
	$path_parts = pathinfo( $file );

	if( count($ext) ) {
		if ( !isset($path_parts['extension']) OR !in_array( $path_parts['extension'], $ext ) ) return '';
	}
	
	$filename = normalize_name($path_parts['basename'], true);
	
	if( !$filename) return '';
	
	$parts = array_filter(explode('/', $path_parts['dirname']), 'strlen');
	
	$absolutes = array();
	
	foreach ($parts as $part) {
		if ('.' == $part) continue;
		if ('..' == $part) {
			array_pop($absolutes);
		} else {
			$absolutes[] = normalize_name($part, false);
		}
	}

	$path = implode('/', $absolutes);
	
	if ( $path ) return implode('/', $absolutes).'/'.$filename;
	else return '';

}

function execute_query($id, $query) {
	global $config, $db;

	if(!$query) return;
	
	if( version_compare($db->mysql_version, '5.6.4', '<') ) {
		$storage_engine = "MyISAM";
	} else $storage_engine = "InnoDB";
	
	$query = str_ireplace(array("{prefix}", "{userprefix}", "{charset}", "{engine}"), array(PREFIX, USERPREFIX, COLLATE, $storage_engine), $query);

	$db->query_errors_list = array();
		
	$db->multi_query( trim($query), false );
	
	$id = intval($id);

	if( count($db->query_errors_list) ){

		foreach($db->query_errors_list as $error) {
			$db->query( "INSERT INTO " . PREFIX . "_plugins_logs (plugin_id, area, error, type) values ('{$id}', '".$db->safesql( htmlspecialchars( $error['query'], ENT_QUOTES, $config['charset'] ), false)."', '".$db->safesql( htmlspecialchars( $error['error'], ENT_QUOTES, $config['charset'] ) )."', 'mysql')" );
		}
		
	}
	
	$db->query_errors_list = array();
	
}

function check_referer( $current_path ) {

	if( !$_SERVER['HTTP_REFERER'] ) return false;
	
	$ref = parse_url($_SERVER['HTTP_REFERER']);
	$ref['host'] = clean_url($ref['host']);
	$ref['path'] = basename($ref['path']);
	
	$current_path = html_entity_decode($current_path, ENT_QUOTES | ENT_XML1, 'UTF-8');
	$curr = parse_url($current_path);
	$curr['host'] = clean_url($_SERVER['HTTP_HOST']);
	$curr['path'] = basename($curr['path']);
	
	if( $ref['path'] AND $curr['path'] AND $ref['host'] AND $curr['host'] AND $ref['path'] == $curr['path'] AND $ref['host'] == $curr['host'] ) {
		if( strpos($ref['query'], $curr['query']) !== false) {
			return true;
		}
	}
	
	return false;
	
}

function isSSL() {
    if( (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off')
        || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
        || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && strtolower($_SERVER['HTTP_X_FORWARDED_SSL']) == 'on')
        || (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443)
        || (isset($_SERVER['HTTP_X_FORWARDED_PORT']) && $_SERVER['HTTP_X_FORWARDED_PORT'] == 443)
        || (isset($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https')
		|| (isset($_SERVER['CF_VISITOR']) && $_SERVER['CF_VISITOR'] == '{"scheme":"https"}')
		|| (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')
    ) return true; else return false;
}

function get_uploaded_image_info( $file, $root_folder = 'posts', $force_size = false ) {
	global $config;
	
	$info = array();
	$file = explode("|", $file);
	$path = $file[0];
	$path = str_replace('&#58;',':', $path);

	if( stripos($path, "https://" ) === 0 OR stripos($path, "http://" ) === 0 OR stripos($path, "//" ) === 0 ) {
		
		$info['remote'] = true;
		$info['local'] 	= false;
		$info['exists'] = true;
		$info['url'] 	= $path;
		
		$path = explode("/{$root_folder}/", $path);
		
		$info['path'] = $path[1];
		$info['root'] = $path[0] . "/{$root_folder}/";
		
	} else {
		
		$info['remote'] = false;
		$info['exists'] = true;
		$info['path'] 	= $path;
		$info['root']   = $config['http_home_url'] . "uploads/{$root_folder}/";
		$info['url'] 	= $info['root'] . $info['path'];
		
		if( !file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) ) {
			
			$info['url'] = 	$config['http_home_url'] . "engine/skins/images/noimage.jpg";
			$file[1] = 0;
			$file[2] = 0;
			$file[3] = "0x0";
			$file[4] = "0 b";
			$info['exists'] = false;
	
		}

	}

	if( count($file) == 1) {

		$info['local_check'] = true;
		$file[1] = 0;
		$file[2] = 0;

		$files_array = explode('/', $file[0]);

		if( count($files_array) == 2 ) {
			$folder_prefix = $files_array[0].'/';
			$file_name =  $files_array[1];
		} else {
			$folder_prefix = '';
			$file_name =  $files_array[0];
		}

		if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $folder_prefix . "thumbs/" . $file_name ) ) $file[1] = 1;
		if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $folder_prefix . "medium/" . $file_name ) ) $file[2] = 1;
		
		if( $force_size ) {
			
			if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) ) {
				
				$img_info =  @getimagesize( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] );
				$file[3] = "{$img_info[0]}x{$img_info[1]}";
				$file[4] = formatsize( filesize( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) );
	
			} else {
				
				$file[3] = "0x0";
				$file[4] = "0 b";
				
			}
				
		}
		
		
	} else $info['local_check'] = false;

	$parts = pathinfo($info['path']);
	$info['folder'] = $parts['dirname'];
	$info['name'] = $parts['basename'];

	if (isset($file[5]) and $file[5]) {
		$info['hidpi'] = pathinfo($info['name'], PATHINFO_FILENAME) . '@x2.' . pathinfo($info['name'], PATHINFO_EXTENSION);
	} else {
		$info['hidpi'] = false;
	}

	if( isset($file[1]) AND $file[1]) {
		$info['thumb'] = $info['root'] . $info['folder'] . "/thumbs/" . $info['name'];

		if( $info['hidpi'] ) $info['hidpi_thumb'] = $info['root'] . $info['folder'] . "/thumbs/" . $info['hidpi'];
	} else {
		$info['thumb'] = false;
	}
	
	if( isset($file[2]) AND $file[2]) {
		$info['medium'] = $info['root'] . $info['folder'] . "/medium/" . $info['name'];

		if ($info['hidpi']) $info['hidpi_medium'] = $info['root'] . $info['folder'] . "/medium/" . $info['hidpi'];
	} else {
		$info['medium'] = false;
	}

	if( isset($file[3]) AND $file[3]) $info['dimension'] = $file[3]; else $info['dimension'] = false;
	if( isset($file[4]) AND $file[4]) $info['size'] = $file[4]; else $info['size'] = false;

	return (object)$info;
}

?>

Did this file decode correctly?

Original Code

<?php
/*
=====================================================
 DataLife Engine - by SoftNews Media Group 
-----------------------------------------------------
 https://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004,2023 SoftNews Media Group
-----------------------------------------------------
 You use Demo Version of DataLife Engine
=====================================================
*/
?><?php $_F=__FILE__;$_X='P2xlP2d9Z20gKm1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVW04RkFpQWs2VHo4UmFkNmF6OC04MVk4PT5UaUV6cjk4WnpRNkE4TWg+L2Y4bS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tbThdaWlmOTogIFF3ei1henI5cWgvIG0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLW04bz5mWWg2ZF1pOChIKThCUFB4LUJQQkk4PT5UaUV6cjk4WnpRNkE4TWg+L2ZtVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVtOFZdNjk4SD5Rejg2OThmaD5pekhpelE4MVk4SD5mWWg2ZF1pbVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVbTg3Nnd6OjhUL2FIaTY+YTlxNmFIcWZdZm1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVW0qIG1tNlQoOCFRelQ2YXpRKDgnRmJWYmtjN1JSRU1jRVInOCk4KThHbQldekFRemgoOCJ9VlZnIDJxMjh4UEk4Nz5oMTZRUXphIjgpO20JXXpBUXpoOCg4J2s+SEFpNj5hOjhxcSBxcSBxcSAnOCk7bQlRNnooOCJ9QUhONmFkOEFpaXpEZmkhIjgpO21KbW02VDgoODY5OXppKCRIPmFUNmRYJ0EvaV1fUT5EQTZhJzMpOGJFRjgkSD5hVDZkWCdBL2ldX1E+REE2YSczOCk4R21tCSRRPkRBNmFfSD4+TjZ6OFU4enNmdz5RejgoInEiLDhId3pBYV8vaHcoOCRfPVJPdVJPWCd9VlZnX31XPVYnMzgpKTttCSRRPkRBNmFfSD4+TjZ6X0g+L2FpOFU4SD4vYWkoJFE+REE2YV9IPj5ONnopO20JJFE+REE2YV9Bd3c+cl9IPi9haThVOC1CO20JbQk2VDgoOCRRPkRBNmFfSD4+TjZ6X0g+L2FpOGw4QjgpOEdtCW0JCTZUOCg4NmFfQWhoQVkoJFE+REE2YV9IPj5ONnpYJFE+REE2YV9IPj5ONnpfSD4vYWktQjMsOEFoaEFZKCdIPkQnLDgnYXppJyw4Jz5oZCcpOCkpOCRRPkRBNmFfQXd3PnJfSD4vYWk4VTgtSTttCQk2VDgoOCRRPkRBNmFfSD4+TjZ6WCRRPkRBNmFfSD4+TjZ6X0g+L2FpLTIzOFVVOCcvQSc4KTgkUT5EQTZhX0F3dz5yX0g+L2FpOFU4LUk7bQkJbQkJJFE+REE2YV9IPj5ONno4VThBaGhBWV85dzZIeigkUT5EQTZhX0g+Pk42eiw4JFE+REE2YV9Bd3c+cl9IPi9haSk7bQlKbQltCSRRPkRBNmFfSD4+TjZ6OFU4InEiOHE4NkRmdz5RejgoInEiLDgkUT5EQTZhX0g+Pk42eik7bQltCTZUKDg2ZkJ3PmFkKCRfPVJPdVJPWCd9VlZnX31XPVYnMyk4VVU4LTI4V084NmZCdz5hZCgkXz1ST3VST1gnfVZWZ199Vz1WJzMpOFVVVThUQXc5eik4UXpUNmF6KDgnRldaYmNFJyw4JFE+REE2YV9IPj5ONno4KTttCXp3OXo4UXpUNmF6KDgnRldaYmNFJyw4Jyc4KTttbUo4enc5ejhRelQ2YXooOCdGV1piY0UnLDgnJzgpO21tVC9hSGk2PmE4UXd6Xzl6OTk2PmEoOCQ5NlE4VThUQXc5ejgpOEdtCWR3PjFBdzgkSD5hVDZkO20JbQkkZkFoQUQ5OFU4OXo5OTY+YV9kemlfSD4+TjZ6X2ZBaEFEOSgpO21tCTZUOCg4RldaYmNFOCk4JGZBaEFEOVgnUT5EQTZhJzM4VThGV1piY0U7bQltCTZUOCg2OTl6aSgkSD5hVDZkWCc+YXdZXzk5dyczKThiRUY4JEg+YVQ2ZFgnPmF3WV85OXcnMyk4JGZBaEFEOVgnOXpIL2h6JzM4VThpaC96O21tCTl6OTk2PmFfOXppX0g+Pk42el9mQWhBRDkoJGZBaEFEOVgndzZUemk2RHonMyw4IiAiLDgkZkFoQUQ5WCdRPkRBNmEnMyw4JGZBaEFEOVgnOXpIL2h6JzMsOGloL3opO21tCTZUOCg4JDk2UTgpODl6OTk2PmFfNlEoOCQ5NlE4KTttbQk5ejk5Nj5hXzlpQWhpKCk7bW1KbW1UL2FIaTY+YTg5emlfSD4+TjZ6KCRhQUR6LDgkMEF3L3osOCR6c2Y2aHo5KThHbQlkdz4xQXc4JEg+YVQ2ZDttCW0JNlQoOCR6c2Y2aHo5OCk4R20JCW0JCSR6c2Y2aHo5OFU4aTZEeigpOCs4KCR6c2Y2aHo5OCo4Q3t4UFApO20JbQlKOHp3OXo4R20JCW0JCSR6c2Y2aHo5OFU4N2JrPVI7bQltCUptCW0JNlQ4KDY5OXppKCRIPmFUNmRYJz5hd1lfOTl3JzMpOGJFRjgkSD5hVDZkWCc+YXdZXzk5dyczKTg5emlIPj5ONnooOCRhQUR6LDgkMEF3L3osOCR6c2Y2aHo5LDgiICIsOEZXWmJjRSw4Vk88Uiw4Vk88UjgpO20Jenc5ejg5emlIPj5ONnooOCRhQUR6LDgkMEF3L3osOCR6c2Y2aHo5LDgiICIsOEZXWmJjRSw4N2JrPVIsOFZPPFI4KTttbUptbVQvYUhpNj5hOEhdekhOX3c+ZDZhKCQvOXpoYUFEeiw4JERRdl9mQTk5cj5oUSw4JGY+OWk4VThpaC96LDgkSF16SE5fdz5kOFU4VEF3OXopOEdtCWR3PjFBdzgkRHpEMXpoXzZRLDgkUTEsOCQvOXpoX2RoPi9mLDgkd0FhZCw4JF9jZyw4JF9WY1pSLDgkSD5hVDZkO21tCTZUKDgkLzl6aGFBRHo4VVU4IiI4V084JERRdl9mQTk5cj5oUThVVTgiIjgpOGh6aS9oYThUQXc5ejttCW0JJGh6OS93aThVOFRBdzl6O20JbQk2VCg4JGY+OWk4KThHbQkJbQkJJC85emhhQUR6OFU4JFExLWw5QVR6OUx3KDgkLzl6aGFBRHo4KTttCQk2VCg4OWlod3phKCREUXZfZkE5OXI+aFEpOGw4dEI4KTgkRFF2X2ZBOTlyPmhROFU4OS8xOWloKCREUXZfZkE5OXI+aFEsOFAsOHRCKTttbQkJNlQ4KCRIPmFUNmRYJ0EvaV1fRHppPlEnMyk4R21tCQkJNlQ4KDhmaHpkX0RBaUhdKDgiIFhcfHxcJ3xcZXxcbHxcInxcIXxcP3xcJHxcIHxcXFx8XCZcflwqXCszICIsOCQvOXpoYUFEeik4KThoemkvaGE4VEF3OXo7CW0JCQkkcl16aHpfYUFEejhVOCJ6REE2d1UnRyQvOXpoYUFEekonIjttCW0JCUo4enc5ejhHbW0JCQk2VDgoOGZoemRfREFpSF0oOCIgWFx8fFwnfFxlfFxsfFwifFwhfFw/fFwkfFxAfFwgfFxcXHxcJlx+XCpcKzMgIiw4JC85emhhQUR6KTgpOGh6aS9oYThUQXc5ejttCQkJJHJdemh6X2FBRHo4VTgiYUFEelUnRyQvOXpoYUFEekonIjttCW0JCUptbQkJJER6RDF6aF82UThVOCRRMS1sOS9memhfTC96aFkoOCI9UmtSb1Y4Kjg3T1daOCI4cTg8PVJPZ09SN2NuOHE4Il8vOXpoOThLfVJPUjhHJHJdemh6X2FBRHpKIjgpO20JCW0JCTZUKDg2OTl6aSgkRHpEMXpoXzZRWCcvOXpoXzZRJzMpOGJFRjgkRHpEMXpoXzZRWCcvOXpoXzZRJzM4YkVGOCREekQxemhfNlFYJ2ZBOTlyPmhRJzM4YkVGOCREekQxemhfNlFYJzFBYWF6USczOCFVOCdZejknOGJFRjgkLzl6aF9kaD4vZlgkRHpEMXpoXzZRWCcvOXpoX2RoPi9mJzMzWCdBd3c+cl9BUUQ2YSczOCk4R20JCQltCQkJNlQoODY5X0RRdl1BOV0oOCREekQxemhfNlFYJ2ZBOTlyPmhRJzM4KTgpOEdtCQkJCW0JCQkJNlQoJER6RDF6aF82UVgnZkE5OXI+aFEnMzhVVThEUXYoOERRdigkRFF2X2ZBOTlyPmhRKTgpOCk4R20JCQkJCSRoejkvd2k4VThpaC96O20JCQkJSm0JCQkJbQkJCUo4enc5ejhHbQkJCQltCQkJCTZUKGZBOTlyPmhRXzB6aDZUWSgkRFF2X2ZBOTlyPmhRLDgkRHpEMXpoXzZRWCdmQTk5cj5oUSczOCk4KThHbQkJCQkJJGh6OS93aThVOGloL3o7bQkJCQlKbQkJCQltCQkJSm0JCQltCQlKbQkJbQkJNlQoOCEkaHo5L3dpOCk4R21tCQkJJER6RDF6aF82UThVOEFoaEFZOCgpO20JbQkJCSQvOXpoYUFEejhVOCRRMS1sOUFUejlMdyhpaDZEKDhdaUR3OWZ6SDZBd0hdQWg5KDg5aWg2Zjl3QTldejkoJC85emhhQUR6KSw4UkVWX3A8V1ZSPSw4JEg+YVQ2ZFgnSF1BaDl6aSczKSkpO20JbQkJCTZUKDgwemg5Nj5hX0g+RGZBaHooJEg+YVQ2ZFgnMHpoOTY+YV82USczLDgianFJIiw4J2wnKTgpOCRRMS1sTC96aFkoOCJjRT1ST1Y4Y0VWVzgiOHE4PD1ST2dPUjdjbjhxOCJfQVFENmFfdz5kOTgoYUFEeiw4UUFpeiw4NmYsOEFIaTY+YSw4enNpaEE5KTgwQXcvejk4KCcicSQvOXpoYUFEenEiJyw4J0ckX1ZjWlJKJyw4J0ckX2NnSicsOCdDaicsOCcnKSI4KTttbQkJSm1tCUo4enc5ejhHbQkJbQkJJC85emhhQUR6OFU4NmFpMEF3KDgkLzl6aGFBRHo4KTttCQltCQkkRHpEMXpoXzZROFU4JFExLWw5L2Z6aF9ML3poWSg4Ij1Sa1JvVjgqODdPV1o4IjhxODw9Uk9nT1I3Y244cTgiXy85emg5OEt9Uk9SOC85emhfNlFVJ0ckLzl6aGFBRHpKJyI4KTttCQltCQk2VCg4JER6RDF6aF82UVgnLzl6aF82USczOGJFRjgkRHpEMXpoXzZRWCdmQTk5cj5oUSczOGJFRjhEUXYoJER6RDF6aF82UVgnZkE5OXI+aFEnMyk4VVU4JERRdl9mQTk5cj5oUThiRUY4JC85emhfZGg+L2ZYJER6RDF6aF82UVgnLzl6aF9kaD4vZiczM1gnQXd3PnJfQVFENmEnMzhiRUY4JER6RDF6aF82UVgnMUFhYXpRJzM4IVU4J1l6OSc4KThHbW0JCQkkaHo5L3dpOFU4aWgvejttbQkJSjh6dzl6OEdtbQkJCSQvOXpoYUFEejhVOCRRMS1sOUFUejlMdyhpaDZEKDhdaUR3OWZ6SDZBd0hdQWg5KDg5aWg2Zjl3QTldejkoJER6RDF6aF82UVgnYUFEeiczKSw4UkVWX3A8V1ZSPSw4JEg+YVQ2ZFgnSF1BaDl6aSczKSkpO21tCQkJJER6RDF6aF82UThVOEFoaEFZOCgpO20JbQkJCTZUKDgwemg5Nj5hX0g+RGZBaHooJEg+YVQ2ZFgnMHpoOTY+YV82USczLDgianFJIiw4J2wnKTgpOCRRMS1sTC96aFkoOCJjRT1ST1Y4Y0VWVzgiOHE4PD1ST2dPUjdjbjhxOCJfQVFENmFfdz5kOTgoYUFEeiw4UUFpeiw4NmYsOEFIaTY+YSw4enNpaEE5KTgwQXcvejk4KCcicSQvOXpoYUFEenEiJyw4J0ckX1ZjWlJKJyw4J0ckX2NnSicsOCdqUCcsOCcnKSI4KTttbQkJSm0JbQlKbW0JNlQoOCRoejkvd2k4KThHbQkJbQkJNlQoOCFBd3c+cnpRXzZmKDgkRHpEMXpoXzZRWCdBd3c+cnpRXzZmJzM4KThXTzghQXd3PnJ6UV82Zig4JEg+YVQ2ZFgnQVFENmFfQXd3PnJ6UV82ZiczOCk4KThHbQkJCW0JCQkkRHpEMXpoXzZROFU4QWhoQVk4KCk7bQkJCSRoejkvd2k4VThUQXc5ejttCQkJOXppX0g+Pk42eig4IlF3el8vOXpoXzZRIiw4IiIsOFA4KTttCQkJOXppX0g+Pk42eig4IlF3el9hQUR6Iiw4IiIsOFA4KTttCQkJOXppX0g+Pk42eig4IlF3el9mQTk5cj5oUSIsOCIiLDhQOCk7bQkJCTl6aV9IPj5ONnooOCJRd3pfXUE5XSIsOCIiLDhQOCk7bQkJCUA5ejk5Nj5hX1F6OWloPlkoKTttCQkJQDl6OTk2PmFfL2E5emkoKTttCQkJOXppX0g+Pk42eig4OXo5OTY+YV9hQUR6KCksOCIiLDhQOCk7bQkJCW0JCQlEOWQoOCI2YVQ+Iiw4JHdBYWRYJzZhUXpzX0Q5ZHonMyw4JHdBYWRYJzZmXzF3PkhOJzM4KTttCQltCQlKbQlKbW0JNlQ4KDghJGh6OS93aTgpOEc4bW0JCTZUOCgkSD5hVDZkWCd3PmQ2YV93PmQnMyk4JFExLWxML3poWSg4ImNFPVJPVjhjRVZXOCI4cThnT1I3Y244cTgiX3c+ZDZhX3c+ZDgoNmYsOEg+L2FpLDhRQWl6KTh1Yms8Uj0oJ0ckX2NnSicsOCcyJyw4JyJxaTZEeigpcSInKThXRThGPGdrY29iVlI4NFI1ODxnRmJWUjhIPi9haVVIPi9haSsyLDhRQWl6VScicWk2RHooKXEiJyI4KTttbQlKOHp3OXo4R21tCQk2VDgoOCRIXXpITl93PmQ4YkVGOCE2OTl6aSgkXz1SPT1jV0VYJ0hdekhOX3c+ZCczKTgpOEdtbQkJCTZUKDgkZj45aTgpOEc4JEFfNlE4VThDQjs4JHpzaWg4VSIiOzhKOHp3OXo4RzgkQV82UThVOEN7Ozg2VDgoNjk5emkoJF89Uk91Uk9YJ31WVmdfT1I3Uk9STyczKThiRUY4JF89Uk91Uk9YJ31WVmdfT1I3Uk9STyczKTgkenNpaDhVOCRRMS1sOUFUejlMdyhdaUR3OWZ6SDZBd0hdQWg5KCRfPVJPdVJPWCd9VlZnX09SN1JPUk8nMyw4UkVWX3A8V1ZSPSkpOzh6dzl6OCR6c2loOFU4IkY2aHpIaThGa1I4YlFENmFmQWF6dyI7OEptbQkJCTZUKDgwemg5Nj5hX0g+RGZBaHooJEg+YVQ2ZFgnMHpoOTY+YV82USczLDgianFJIiw4J2wnKTgpODgkUTEtbEwvemhZKDgiY0U9Uk9WOGNFVlc4IjhxODw9Uk9nT1I3Y244cTgiX0FRRDZhX3c+ZDk4KGFBRHosOFFBaXosODZmLDhBSGk2PmEsOHpzaWhBOSk4MEF3L3o5OCgnInEkUTEtbDlBVHo5THcoJER6RDF6aF82UVgnYUFEeiczKXEiJyw4J0ckX1ZjWlJKJyw4J0ckX2NnSicsOCdHJEFfNlFKJyw4J0ckenNpaEonKSI4KTttCQkJbQkJCSRfPVI9PWNXRVgnSF16SE5fdz5kJzM4VTgyO20JCUptbQlKbW0JaHppL2hhOCRoejkvd2k7bUptbW1UL2FIaTY+YThRend6aXphenI5MVk2USg4JDZROCk4R20JZHc+MUF3OCRIPmFUNmQsOCRRMTttCW0JJDZROFU4NmFpMEF3KCQ2USk7bQlGa1I3Nnd6OTo6NmE2aSg4JEg+YVQ2ZFgnVDZ3el9RaDYwemgnMyw4VEF3OXo4KTttCW0JJGg+cjhVOCRRMS1sOS9memhfTC96aFkoOCI9UmtSb1Y4Lzl6aF82UTg3T1daOCI4cThnT1I3Y244cTgiX2Y+OWlfenNpaEE5OEt9Uk9SOGF6cjlfNlE4VTgnRyQ2UUonIjgpO20JbQkkUTEtbEwvemhZKDgiPGdGYlZSOCI4cTg8PVJPZ09SN2NuOHE4Il8vOXpoOTg9UlY4YXpyOV9hL0RVYXpyOV9hL0QtMjhLfVJPUjgvOXpoXzZRVSdHJGg+clgnLzl6aF82USczSiciOCk7bQltCSRRMS1sTC96aFkoOCJGUmtSVlI4N09XWjgiOHE4Z09SN2NuOHE4Il9mPjlpOEt9Uk9SODZRVSdHJDZRSiciOCk7bQkkUTEtbEwvemhZKDgiRlJrUlZSODdPV1o4IjhxOGdPUjdjbjhxOCJfZj45aV96c2loQTk4S31ST1I4YXpyOV82UVUnRyQ2UUonIjgpO20JJFExLWxML3poWSg4IkZSa1JWUjg3T1daOCI4cThnT1I3Y244cTgiX2Y+OWlfenNpaEE5X0hBaTk4S31ST1I4YXpyOV82UVUnRyQ2UUonIjgpO20JJFExLWxML3poWSg4IkZSa1JWUjg3T1daOCI4cThnT1I3Y244cTgiX2Y+d3c4S31ST1I4YXpyOV82UVUnRyQ2UUonIjgpO20JJFExLWxML3poWSg4IkZSa1JWUjg3T1daOCI4cThnT1I3Y244cTgiX2Y+d3dfdz5kOEt9Uk9SOGF6cjlfNlFVJ0ckNlFKJyI4KTttCSRRMS1sTC96aFkoOCJGUmtSVlI4N09XWjgiOHE4Z09SN2NuOHE4Il9mPjlpX3c+ZDhLfVJPUjhhenI5XzZRVSdHJDZRSiciOCk7bQkkUTEtbEwvemhZKDgiRlJrUlZSODdPV1o4IjhxOGdPUjdjbjhxOCJfZj45aV9mQTk5OEt9Uk9SOGF6cjlfNlFVJ0ckNlFKJyI4KTttCSRRMS1sTC96aFkoOCJGUmtSVlI4N09XWjgiOHE4Z09SN2NuOHE4Il9pQWQ5OEt9Uk9SOGF6cjlfNlE4VTgnRyQ2UUonIjgpO20JJFExLWxML3poWSg4IkZSa1JWUjg3T1daOCI4cThnT1I3Y244cTgiX3NUOXpBaEhdOEt9Uk9SOGF6cjlfNlE4VTgnRyQ2UUonIjgpO20JJFExLWxML3poWSg4IkZSa1JWUjg3T1daOCI4cThnT1I3Y244cTgiX3c+ZDk4S31ST1I4YXpyOV82UThVOCdHJDZRSiciOCk7bQkkUTEtbEwvemhZKDgiRlJrUlZSODdPV1o4IjhxOGdPUjdjbjhxOCJfOS8xOUhoNjF6OEt9Uk9SOGF6cjlfNlFVJ0ckNlFKJyIpO21tCVF6d3ppekg+RER6YWk5MVlhenI5NlEoOCQ2UTgpO21tCSRoPnI4VTgkUTEtbDkvZnpoX0wvemhZKDgiPVJrUm9WODZEQWR6OTg4N09XWjgiOHE4Z09SN2NuOHE4Il82REFkejk4S31ST1I4YXpyOV82UThVOCdHJDZRSiciOCk7bW0JNlQoODY5OXppKCRoPnJYJzZEQWR6OSczKThiRUY4JGg+clgnNkRBZHo5JzMpOEdtCQltCQkkdzY5aTZEQWR6OThVOHpzZnc+UXooOCJ8fHwiLDgkaD5yWCc2REFkejknMzgpO20JbQkJVD5oekFIXTgoOCR3NjlpNkRBZHo5OEE5OCRRQWlBNkRBZHo4KThHbQkJCW0JCQkkUUFpQTZEQWR6OFU4ZHppXy9mdz5BUXpRXzZEQWR6XzZhVD4oJFFBaUE2REFkeik7bQkJbQkJCSRML3poWThVOCRRMS1sOUFUejlMdyg4JFFBaUE2REFkei1sZkFpXTgpO20JCQkkaD5yOFU4JFExLWw5L2Z6aF9ML3poWSgiPVJrUm9WOG9XPEVWKCopOEE5OEg+L2FpODdPV1o4IjhxOGdPUjdjbjhxOCJfZj45aThLfVJPUjg5XT5oaV85aT5oWThrYzRSOCclRyRML3poWUolJzhXTzhUL3d3XzlpPmhZOGtjNFI4JyVHJEwvemhZSiUnOFdPOHNUNnp3UTk4a2M0UjgnJUckTC96aFlKJSciKTttbQkJCTZUKDg2OTl6aSgkaD5yWCdIPi9haSczKThiRUY4JGg+clgnSD4vYWknMzgpOEdtCQkJCUg+YWk2YS96O20JCQlKbQkJCW0JCQk2VCg4JFFBaUE2REFkei1saHpEPml6OGJFRjhGa1I3Nnd6OTo6JFFoNjB6aDhVVTgnaHpEPml6JzgpOCRRNjlOOFU4J2h6RD5peic7bQkJCXp3OXo4JFE2OU44VTgndz5IQXcnO21tCQkJRmtSNzZ3ejk6OkZ6d3ppeig4ImY+OWk5ICI4cTgkUUFpQTZEQWR6LWxmQWldLDgkUTY5TjgpO21tCQkJNlQ4KCRRQWlBNkRBZHotbF02UWY2KThHbQkJCQlGa1I3Nnd6OTo6Rnp3eml6KCJmPjlpOSBHJFFBaUE2REFkei1sVD53UXpoSiBHJFFBaUE2REFkei1sXTZRZjZKIiw4JFE2OU4pO20JCQlKbW0JCQk2VCg4JFFBaUE2REFkei1saV0vRDE4KThHbQkJCQltCQkJCUZrUjc2d3o5OjpGend6aXooOCJmPjlpOSBHJFFBaUE2REFkei1sVD53UXpoSiBpXS9EMTkgRyRRQWlBNkRBZHotbGFBRHpKIiw4JFE2OU44KTttbQkJCQk2VDgoJFFBaUE2REFkei1sXTZRZjYpOEdtCQkJCQlGa1I3Nnd6OTo6Rnp3eml6KCJmPjlpOSBHJFFBaUE2REFkei1sVD53UXpoSiBpXS9EMTkgRyRRQWlBNkRBZHotbF02UWY2SiIsOCRRNjlOKTttCQkJCUptCQkJCW0JCQlKbQkJCW0JCQk2VCg4JFFBaUE2REFkei1sRHpRNi9EOCk4R20JCQkJbQkJCQlGa1I3Nnd6OTo6Rnp3eml6KDgiZj45aTkgRyRRQWlBNkRBZHotbFQ+d1F6aEogRHpRNi9EIEckUUFpQTZEQWR6LWxhQUR6SiIsOCRRNjlOOCk7bQkJCQltCQkJCTZUOCgkUUFpQTZEQWR6LWxdNlFmNik4R20JCQkJCUZrUjc2d3o5OjpGend6aXooImY+OWk5IEckUUFpQTZEQWR6LWxUPndRemhKIER6UTYvRCBHJFFBaUE2REFkei1sXTZRZjZKIiw4JFE2OU4pO20JCQkJSm0JCQlKbQkJCQkJCW0JCUptCW0JCSRRMS1sTC96aFkoOCJGUmtSVlI4N09XWjgiOHE4Z09SN2NuOHE4Il82REFkejk4S31ST1I4YXpyOV82UThVOCdHJDZRSiciOCk7bQltCUptbQkkUTEtbEwvemhZKDgiPVJrUm9WOCo4N09XWjgiOHE4Z09SN2NuOHE4Il9UNnd6OThLfVJPUjhhenI5XzZROFU4J0ckNlFKJyI4KTttbQlyXTZ3ejgoOCRoPnI4VTgkUTEtbGR6aV9oPnIoKTgpOEdtbQkJNlQoOCRoPnJYJ1FoNjB6aCczOGJFRjhGa1I3Nnd6OTo6JFFoNjB6aDhVVTgnaHpEPml6JzgpOCRRNjlOOFU4J2h6RD5peic7bQkJenc5ejgkUTY5TjhVOCd3PkhBdyc7bQkJbQkJNlQoOGloNkQoJGg+clgnPmE5emgwemgnMyk4VVU4InFdaUFISHo5OSIpOFE2eigifUFITjZhZDhBaWl6RGZpISIpO20JCW0JCTZUKDgkaD5yWCc2OV9mLzF3NkgnMzgpOCQvZnc+QVF6UV9mQWldOFU4J2YvMXc2SF9UNnd6OSAnOzh6dzl6OCQvZnc+QVF6UV9mQWldOFU4J1Q2d3o5ICc7bW0JCUZrUjc2d3o5OjpGend6aXooOCQvZnc+QVF6UV9mQWldcSRoPnJYJz5hOXpoMHpoJzMsOCRRNjlOOCk7bW0JSm1tCSRRMS1sTC96aFkoOCJGUmtSVlI4N09XWjgiOHE4Z09SN2NuOHE4Il9UNnd6OThLfVJPUjhhenI5XzZROFU4J0ckNlFKJyI4KTttbQkkOUx3X2h6OS93aThVOCRRMS1sTC96aFkoOCI9UmtSb1Y4Lzl6aF82USw4VEEwPmg2aXo5ODdPV1o4IjhxODw9Uk9nT1I3Y244cTgiXy85emg5OEt9Uk9SOFRBMD5oNml6OThrYzRSOCclRyQ2UUolJyI4KTttCW0Jcl02d3o4KDgkaD5yOFU4JFExLWxkemlfaD5yKCQ5THdfaHo5L3dpKTgpOEdtCQltCQkkaXpEZl9UQTA4VTh6c2Z3PlF6KDgiLCIsOCRoPnJYJ1RBMD5oNml6OSczOCk7bQkJJGF6cl9UQTA4VThBaGhBWSgpO20JCW0JCVQ+aHpBSF04KDgkaXpEZl9UQTA4QTk4JDBBdy96OCk4R20JCQkkMEF3L3o4VTg2YWkwQXcoJDBBdy96KTttCQkJNlQoJDBBdy96OCFVOCQ2UTgpOCRhenJfVEEwWDM4VTgkMEF3L3o7bQkJSm0JCW0JCTZUKEg+L2FpKCRhenJfVEEwKSk4JGF6cl9UQTA4VTgkUTEtbDlBVHo5THcoNkRmdz5ReigiLCIsOCRhenJfVEEwKSk7bQkJenc5ejgkYXpyX1RBMDhVOCIiO20JCW0JCSRRMS1sTC96aFkoOCI8Z0ZiVlI4IjhxODw9Uk9nT1I3Y244cTgiXy85emg5OD1SVjhUQTA+aDZpejlVJ0ckYXpyX1RBMEonOEt9Uk9SOC85emhfNlFVJ0ckaD5yWCcvOXpoXzZRJzNKJyI4KTttbQlKbUptbVQvYUhpNj5hOFF6d3ppekg+RER6YWk5KDgkNlE4KThHbQlkdz4xQXc4JEg+YVQ2ZCw4JFExO20JbQkkNlE4VTg2YWkwQXcoJDZRKTttCUZrUjc2d3o5Ojo2YTZpKDgkSD5hVDZkWCdUNnd6X1FoNjB6aCczLDhUQXc5ejgpO20JbQkkaD5yOFU4JFExLWw5L2Z6aF9ML3poWSg4Ij1Sa1JvVjg2USw4Zj45aV82USw4Lzl6aF82USw4NjlfaHpkNjlpemgsOEFmZmg+MHo4N09XWjgiOHE4Z09SN2NuOHE4Il9IPkREemFpOThLfVJPUjg2UThVOCdHJDZRSiciOCk7bQltCSRRMS1sTC96aFkoOCJGUmtSVlI4N09XWjgiOHE4Z09SN2NuOHE4Il9IPkREemFpOThLfVJPUjg2UThVOCdHJDZRSiciOCk7bQkkUTEtbEwvemhZKDgiRlJrUlZSODdPV1o4IjhxOGdPUjdjbjhxOCJfSD5ERHphaV9oQWk2YWRfdz5kOEt9Uk9SOEhfNlE4VTgnRyQ2UUonIjgpOwltbQk2VCg4JGg+clgnNjlfaHpkNjlpemgnMzgpOEdtCQkkUTEtbEwvemhZKDgiPGdGYlZSOCI4cTg8PVJPZ09SN2NuOHE4Il8vOXpoOTg9UlY4SD5ERF9hL0RVSD5ERF9hL0QtMjhLfVJPUjgvOXpoXzZROFUnRyRoPnJYJy85emhfNlEnM0onIjgpO20JSm0JbQk2VCgkaD5yWCdBZmZoPjB6JzMpOCRRMS1sTC96aFkoOCI8Z0ZiVlI4IjhxOGdPUjdjbjhxOCJfZj45aTg9UlY4SD5ERF9hL0RVSD5ERF9hL0QtMjhLfVJPUjg2UVUnRyRoPnJYJ2Y+OWlfNlEnM0onIjgpO21tCSRRMS1sTC96aFkoOCI9UmtSb1Y4NlEsOGFBRHosOFFoNjB6aDg3T1daOCI4cThnT1I3Y244cTgiX0g+RER6YWk5X1Q2d3o5OEt9Uk9SOEhfNlE4VTgnRyQ2UUonIjgpO20JbQlyXTZ3ejgoOCRoPnI4VTgkUTEtbGR6aV9oPnIoKTgpOEdtCQltCQkkUUFpQTZEQWR6OFU4ZHppXy9mdz5BUXpRXzZEQWR6XzZhVD4oOCRoPnJYJ2FBRHonMzgpO20JCW0JCTZUKDgkaD5yWCdRaDYwemgnMzhiRUY4RmtSNzZ3ejk6OiRRaDYwemg4VVU4J2h6RD5peic4KTgkUTY5TjhVOCdoekQ+aXonO20JCXp3OXo4JFE2OU44VTgndz5IQXcnO20JCW0JCUZrUjc2d3o5OjpGend6aXooOCJmPjlpOSAiOHE4JFFBaUE2REFkei1sZkFpXSw4JFE2OU44KTttCQltCQk2VCg4JFFBaUE2REFkei1saV0vRDE4KThHbQkJCW0JCQlGa1I3Nnd6OTo6Rnp3eml6KDgiZj45aTkgRyRRQWlBNkRBZHotbFQ+d1F6aEogaV0vRDE5IEckUUFpQTZEQWR6LWxhQUR6SiIsOCRRNjlOOCk7bQkJCW0JCUptCQkJbQlKbQltCSRRMS1sTC96aFkoOCJGUmtSVlI4N09XWjgiOHE4Z09SN2NuOHE4Il9IPkREemFpOV9UNnd6OThLfVJPUjhIXzZROFU4J0ckNlFKJyI4KTttCW0JNlQ4KDgkSD5hVDZkWCdpaHp6X0g+RER6YWk5JzM4KThHbW0JCSQ5THdfaHo5L3dpOFU4JFExLWxML3poWSg4Ij1Sa1JvVjg2UTg3T1daOCI4cThnT1I3Y244cTgiX0g+RER6YWk5OEt9Uk9SOGZBaHphaThVOCdHJDZRSiciOCk7bQltCQlyXTZ3ejgoOCRoPnI4VTgkUTEtbGR6aV9oPnIoOCQ5THdfaHo5L3dpOCk4KThHbQkJCVF6d3ppekg+RER6YWk5KDgkaD5yWCc2USczOCk7bQkJSm1tCUptbUptbVQvYUhpNj5hOFF6d3ppekg+RER6YWk5MVlhenI5NlEoOCQ2UTgpOEdtCWR3PjFBdzgkSD5hVDZkLDgkUTE7bQltCSQ2UThVODZhaTBBdygkNlEpO20JRmtSNzZ3ejk6OjZhNmkoOCRIPmFUNmRYJ1Q2d3pfUWg2MHpoJzMsOFRBdzl6OCk7bQltCSRoejkvd2k4VTgkUTEtbEwvemhZKDgiPVJrUm9WODZRODdPV1o4IjhxOGdPUjdjbjhxOCJfSD5ERHphaTk4S31ST1I4Zj45aV82UVUnRyQ2UUonIjgpO20JbQlyXTZ3ejgoOCRoPnI4VTgkUTEtbGR6aV9BaGhBWSg4JGh6OS93aTgpOCk4R20JCW0JCSRRMS1sTC96aFkoOCJGUmtSVlI4N09XWjgiOHE4Z09SN2NuOHE4Il9IPkREemFpX2hBaTZhZF93PmQ4S31ST1I4SF82UThVOCdHJGg+clgnNlEnM0onIjgpO21tCQkkOS8xX2h6OS93aThVOCRRMS1sTC96aFkoOCI9UmtSb1Y4NlEsOGFBRHosOFFoNjB6aDg3T1daOCI4cThnT1I3Y244cTgiX0g+RER6YWk5X1Q2d3o5OEt9Uk9SOEhfNlE4VTgnRyRoPnJYJzZRJzNKJyI4KTttCQltCQlyXTZ3ejgoOCRUNnd6OFU4JFExLWxkemlfaD5yKDgkOS8xX2h6OS93aTgpOCk4R20JCQltCQkJJFFBaUE2REFkejhVOGR6aV8vZnc+QVF6UV82REFkel82YVQ+KDgkVDZ3elgnYUFEeiczOCk7bQkJCW0JCQk2VCg4JFQ2d3pYJ1FoNjB6aCczOGJFRjhGa1I3Nnd6OTo6JFFoNjB6aDhVVTgnaHpEPml6JzgpOCRRNjlOOFU4J2h6RD5peic7bQkJCXp3OXo4JFE2OU44VTgndz5IQXcnO20JCQltCQkJRmtSNzZ3ejk6OkZ6d3ppeig4ImY+OWk5ICI4cTgkUUFpQTZEQWR6LWxmQWldLDgkUTY5TjgpO20JCQltCQkJNlQoOCRRQWlBNkRBZHotbGldL0QxOCk4R20JCQkJbQkJCQlGa1I3Nnd6OTo6Rnp3eml6KDgiZj45aTkgRyRRQWlBNkRBZHotbFQ+d1F6aEogaV0vRDE5IEckUUFpQTZEQWR6LWxhQUR6SiIsOCRRNjlOOCk7bQkJCQltCQkJSm1tCQlKbQkJbQkJJFExLWxML3poWSg4IkZSa1JWUjg3T1daOCI4cThnT1I3Y244cTgiX0g+RER6YWk5X1Q2d3o5OEt9Uk9SOEhfNlE4VTgnRyRoPnJYJzZRJzNKJyI4KTttCW0JSm0JbQkkaHo5L3dpOFU4JFExLWxML3poWSg4Ij1Sa1JvVjhvVzxFVigqKThBOThIPi9haSw4Lzl6aF82UTg3T1daOCI4cThnT1I3Y244cTgiX0g+RER6YWk5OEt9Uk9SOGY+OWlfNlFVJ0ckNlFKJzhiRUY4NjlfaHpkNjlpemhVJzInOE1PVzxnOFs1OC85emhfNlEiOCk7bQltCXJdNnd6OCg4JGg+cjhVOCRRMS1sZHppX0FoaEFZKDgkaHo5L3dpOCk4KThHbQkJbQkJJFExLWxML3poWSg4IjxnRmJWUjgiOHE4PD1ST2dPUjdjbjhxOCJfLzl6aDk4PVJWOEg+RERfYS9EVUg+RERfYS9ELUckaD5yWCdIPi9haSczSjhLfVJPUjgvOXpoXzZRVSdHJGg+clgnLzl6aF82USczSiciOCk7bQltCUptCW0JJFExLWxML3poWSg4IkZSa1JWUjg3T1daOCI4cThnT1I3Y244cTgiX0g+RER6YWk5OEt9Uk9SOGY+OWlfNlFVJ0ckNlFKJyI4KTttbW1KbW1UL2FIaTY+YThRend6aXpIPkREemFpOTFZLzl6aDZRKDgkNlEsOCQ2ZjhVOFRBdzl6OCk4R20JZHc+MUF3OCRIPmFUNmQsOCRRMTttCW0JJDZROFU4NmFpMEF3KCQ2USk7bQlGa1I3Nnd6OTo6NmE2aSg4JEg+YVQ2ZFgnVDZ3el9RaDYwemgnMyw4VEF3OXo4KTttCW0JNlQoJDZmKThHbQkJJDZmOFU4JFExLWw5QVR6OUx3KCQ2Zik7bQkJJGh6OS93aThVOCRRMS1sTC96aFkoOCI9UmtSb1Y4NlEsOGY+OWlfNlEsOC85emhfNlEsODY5X2h6ZDY5aXpoLDhBZmZoPjB6ODdPV1o4IjhxOGdPUjdjbjhxOCJfSD5ERHphaTk4S31ST1I4NmZVJ0ckNmZKJzhiRUY4NjlfaHpkNjlpemhVJ1AnIjgpO20JSjh6dzl6OEdtCQkkaHo5L3dpOFU4JFExLWxML3poWSg4Ij1Sa1JvVjg2USw4Zj45aV82USw4Lzl6aF82USw4NjlfaHpkNjlpemgsOEFmZmg+MHo4N09XWjgiOHE4Z09SN2NuOHE4Il9IPkREemFpOThLfVJPUjgvOXpoXzZRVSdHJDZRSic4YkVGODY5X2h6ZDY5aXpoVScyJyI4KTttCUptCW0Jcl02d3o4KDgkaD5yOFU4JFExLWxkemlfQWhoQVkoOCRoejkvd2k4KTgpOEdtCQltCQkkUTEtbEwvemhZKDgiRlJrUlZSODdPV1o4IjhxOGdPUjdjbjhxOCJfSD5ERHphaV9oQWk2YWRfdz5kOEt9Uk9SOEhfNlE4VTgnRyRoPnJYJzZRJzNKJyI4KTttbQkJJDkvMV9oejkvd2k4VTgkUTEtbEwvemhZKDgiPVJrUm9WODZRLDhhQUR6LDhRaDYwemg4N09XWjgiOHE4Z09SN2NuOHE4Il9IPkREemFpOV9UNnd6OThLfVJPUjhIXzZROFU4J0ckaD5yWCc2USczSiciOCk7bQkJbQkJcl02d3o4KDgkVDZ3ejhVOCRRMS1sZHppX2g+cig4JDkvMV9oejkvd2k4KTgpOEdtCQkJJFFBaUE2REFkejhVOGR6aV8vZnc+QVF6UV82REFkel82YVQ+KDgkVDZ3elgnYUFEeiczOCk7bQkJCW0JCQk2VCg4JFQ2d3pYJ1FoNjB6aCczOGJFRjhGa1I3Nnd6OTo6JFFoNjB6aDhVVTgnaHpEPml6JzgpOCRRNjlOOFU4J2h6RD5peic7bQkJCXp3OXo4JFE2OU44VTgndz5IQXcnO20JCQltCQkJRmtSNzZ3ejk6OkZ6d3ppeig4ImY+OWk5ICI4cTgkUUFpQTZEQWR6LWxmQWldLDgkUTY5TjgpO20JCQltCQkJNlQoOCRRQWlBNkRBZHotbGldL0QxOCk4R20JCQkJbQkJCQlGa1I3Nnd6OTo6Rnp3eml6KDgiZj45aTkgRyRRQWlBNkRBZHotbFQ+d1F6aEogaV0vRDE5IEckUUFpQTZEQWR6LWxhQUR6SiIsOCRRNjlOOCk7bQkJCQltCQkJSm0JCUptCQltCQkkUTEtbEwvemhZKDgiRlJrUlZSODdPV1o4IjhxOGdPUjdjbjhxOCJfSD5ERHphaTlfVDZ3ejk4S31ST1I4SF82UThVOCdHJGg+clgnNlEnM0onIjgpO20JbQlKbQltCTZUKCQ2Zik4R20JCW0JCSRoejkvd2k4VTgkUTEtbEwvemhZKDgiPVJrUm9WOG9XPEVWKCopOEE5OEg+L2FpLDhmPjlpXzZRODdPV1o4IjhxOGdPUjdjbjhxOCJfSD5ERHphaTk4S31ST1I4NmZVJ0ckNmZKJzhiRUY4NjlfaHpkNjlpemhVJ1AnOGJFRjhBZmZoPjB6VScyJzhNT1c8ZzhbNThmPjlpXzZRIjgpO20JCQltCQlyXTZ3ejgoOCRoPnI4VTgkUTEtbGR6aV9BaGhBWSg4JGh6OS93aTgpOCk4R20JCQltCQkJJFExLWxML3poWSg4IjxnRmJWUjgiOHE4Z09SN2NuOHE4Il9mPjlpOD1SVjhIPkREX2EvRFVIPkREX2EvRC1HJGg+clgnSD4vYWknM0o4S31ST1I4NlFVJ0ckaD5yWCdmPjlpXzZRJzNKJyI4KTttCQltCQlKbQkJJFExLWxUaHp6KDgkaHo5L3dpOCk7bQkJCW0JCSRRMS1sTC96aFkoOCJGUmtSVlI4N09XWjgiOHE4Z09SN2NuOHE4Il9IPkREemFpOThLfVJPUjg2ZlUnRyQ2ZkonOGJFRjg2OV9oemQ2OWl6aFUnUCciOCk7bQkJbQlKOHp3OXo4R20JCW0JCSRoejkvd2k4VTgkUTEtbEwvemhZKDgiPVJrUm9WOG9XPEVWKCopOEE5OEg+L2FpLDhmPjlpXzZRODdPV1o4IjhxOGdPUjdjbjhxOCJfSD5ERHphaTk4S31ST1I4Lzl6aF82UVUnRyQ2UUonOGJFRjg2OV9oemQ2OWl6aFUnMic4YkVGOEFmZmg+MHpVJzInOE1PVzxnOFs1OGY+OWlfNlEiOCk7bQkJCW0JCXJdNnd6OCg4JGg+cjhVOCRRMS1sZHppX0FoaEFZKDgkaHo5L3dpOCk4KThHbQltCQkJJFExLWxML3poWSg4IjxnRmJWUjgiOHE4Z09SN2NuOHE4Il9mPjlpOD1SVjhIPkREX2EvRFVIPkREX2EvRC1HJGg+clgnSD4vYWknM0o4S31ST1I4NlFVJ0ckaD5yWCdmPjlpXzZRJzNKJyI4KTttCQkJbQkJSm1tCQkkUTEtbFRoenooOCRoejkvd2k4KTttbQkJJFExLWxML3poWSg4IkZSa1JWUjg3T1daOCI4cThnT1I3Y244cTgiX0g+RER6YWk5OEt9Uk9SOC85emhfNlFVJ0ckNlFKJzhiRUY4NjlfaHpkNjlpemhVJzInIjgpO20JSm1tbUptbVQvYUhpNj5hOFQ+aERBaTk2CnooJFQ2d3pfOTYKeik4R20JbQk2VCg4ISRUNnd6Xzk2Cno4V084JFQ2d3pfOTYKejhlODIpOGh6aS9oYTgnUDgxJzttCW04ODg4JGZoelQ2czhVOEFoaEFZKCIxIiw4IjQxIiw4IloxIiw4Ik0xIiw4IlYxIik7bTg4ODgkenNmOFU4VHc+Pmgodz5kKCRUNnd6Xzk2CnosODJQQngpKTh8OFA7bW04ODg4JFQ2d3pfOTYKejhVOGg+L2FRKCRUNnd6Xzk2Cno4IDgoZj5yKDJQQngsOCR6c2YpKSw4QilxJzgncSRmaHpUNnNYJHpzZjM7bQkkVDZ3el85Ngp6OFU4OWloX2h6ZndBSHooIiwiLDgicSIsOCRUNnd6Xzk2CnopO21tODg4OGh6aS9oYTgkVDZ3el85Ngp6O21tSm1tVC9hSGk2PmE4b116SE5vQWFNCjZmKCk4R20JbQk2VCg4XXpBUXpoOV85emFpKCk4fHw4SD5hYXpIaTY+YV9BMT5oaXpRKCk4fHw4IThUL2FIaTY+YV96czY5aTkoOCc+MV9kCl1BYVF3emgnOCk4fHw4NmE2X2R6aSg4Jwp3NjFxPi9pZi9pX0g+RGZoejk5Nj5hJzgpOCk4aHppL2hhOFA7bQltCTZUKDg5aWhmPjkoOCRfPVJPdVJPWCd9VlZnX2Jvb1JnVl9SRW9XRmNFTSczLDgncy1kCjZmJzgpOCFVVThUQXc5ejgpOGh6aS9oYTgicy1kCjZmIjttCTZUKDg5aWhmPjkoOCRfPVJPdVJPWCd9VlZnX2Jvb1JnVl9SRW9XRmNFTSczLDgnZAo2Zic4KTghVVU4VEF3OXo4KThoemkvaGE4ImQKNmYiO20JbQloemkvaGE4UDttSm1tVC9hSGk2PmE4TQo2ZlcvaSgpOEdtCW0JJFJFb1dGY0VNOFU4b116SE5vQWFNCjZmKCk7bQltCTZUKDgkUkVvV0ZjRU04KThHbQkJJG8+YWl6YWk5OFU4PjFfZHppX0g+YWl6YWk5KCk7bQkJPjFfemFRX0h3ekFhKCk7bQkJbQkJXXpBUXpoKDgibz5haXphaS1SYUg+UTZhZDo4JFJFb1dGY0VNIjgpO20JCW0JCSRvPmFpemFpOThVOGQKemFIPlF6KDgkbz5haXphaTksODIsODdXT29SX015Y2c4KTttCQl6SF0+OCRvPmFpemFpOTttCQltCQl6czZpKCk7bQlKOHp3OXo4R20JCSAgODg4ODg4PjFfemFRX1R3LzldKCk7OG0JCXpzNmkoKTttCUptSm1tVC9hSGk2PmE4QXd3PnJ6UV82ZigkNmZfQWhoQVkpOEdtCW0JJDZmX0FoaEFZOFU4aWg2RCg4JDZmX0FoaEFZOCk7bW0JJF9jZzhVOGR6aV82ZigpO21tCTZUKDghJDZmX0FoaEFZOCk4R20JCWh6aS9oYThpaC96O20JSm0JbQk2VCg4OWloZj45KCRfY2csOCI6Iik4VVVVOFRBdzl6OCk4R20JCSRRenc2RDZpemg4VTgicSI7bQlKOHp3OXo4JFF6dzZENml6aDhVOCI6IjttCW0JJFExXzZmXzlmdzZpOFU4enNmdz5Reig4JFF6dzZENml6aCw4JF9jZzgpO20JJDZmX3d6YWRdaThVOEg+L2FpKCRRMV82Zl85Znc2aSk7bQltCSQ2Zl9BaGhBWThVOHpzZnc+UXooOCJ8Iiw4JDZmX0FoaEFZOCk7bQltCVQ+aHpBSF04KDgkNmZfQWhoQVk4QTk4JDZmOCk4R20JCW0JCSQ2ZjhVOGloNkQoOCQ2ZjgpO20JCW0JCTZUKDgkNmY4VVU4JF9jZzgpOEdtCQkJbQkJCWh6aS9oYThpaC96O20JCW0JCUo4enc5ejZUKDhIPi9haSh6c2Z3PlF6OCgnICcsOCQ2ZikpOFVVOEI4KThHbQkJCQltCQkJNlQoOERBOU5EQWlIXSgkX2NnLDgkNmYpOCk4aHppL2hhOGloL3o7bQkJCQltCQlKOHp3OXo4R20JCQltCQkJJDZmX0hdekhOX0RBaUhdejk4VThQO20JCQkkaV02OV82Zl85Znc2aThVOHpzZnc+UXooOCRRenc2RDZpemgsOCQ2ZjgpO20JCQltCQkJVD5oKCQ2XzY4VThQOzgkNl82OGU4JDZmX3d6YWRdaTs4JDZfNjgrKyk4R20JCQkJNlQoOCRpXTY5XzZmXzlmdzZpWCQ2XzYzOFVVOCRRMV82Zl85Znc2aVgkNl82MzhXTzgkaV02OV82Zl85Znc2aVgkNl82MzhVVTgnKic4KThHbQkJCQkJJDZmX0hdekhOX0RBaUhdejk4K1U4MjttCQkJCUptCQkJbQkJCUptCQkJbQkJCTZUKDgkNmZfSF16SE5fREFpSF16OThVVTgkNmZfd3phZF1pOCk4aHppL2hhOGloL3o7bQkJSm0JbQlKbQltCWh6aS9oYThUQXc5ejttSm1tbVQvYUhpNj5hOERBOU5EQWlIXSgkY2csOCRvY0ZPKThHbQltODg4OHc2OWk4KCRBUVFoejk5LDgkYXppREE5Tik4VTh6c2Z3PlF6KCcgJyw4JG9jRk8sOEIpO21tCTZUKDg5aWhmPjkoJGNnLDgicSIpOCFVVThUQXc5ejhiRUY4OWloZj45KCRvY0ZPLDgicSIpOCFVVThUQXc5ejgpOEdtCQltCQloemkvaGE4KDg2ZkJ3PmFkKCRjZyk4Jjh+KCgyOGVlOChJQjgtOCRhemlEQTlOKSk4LTgyKTgpOFVVODZmQnc+YWQ4KCRBUVFoejk5KTttCW0JSjh6dzl6NlQoODlpaGY+OSgkY2csOCI6Iik4IVVVOFRBdzl6OGJFRjg5aWhmPjkoJG9jRk8sOCI6Iik4IVVVOFRBdzl6OCk4R20JCW04ODg4ODg4ODZUOCghKCh6c2l6YTk2PmFfdz5BUXpRKCc5PkhOemk5Jyk4JiY4UXpUNmF6USgnYjdfY0VSVnsnKSk4fHw4QDZhemlfZmk+YSgnOjoyJykpKThHbTg4ODg4ODg4ODhoemkvaGE4VEF3OXo7bTg4ODg4ODg4Sm0JCW04ODg4ODg4OCQxWWl6OWJRUWg4VTgvYWZBSE4oJ2EqJyw4QDZhemlfZmk+YSgkQVFRaHo5OSkpO204ODg4ODg4OCQxWWl6OVZ6OWk4VTgvYWZBSE4oJ2EqJyw4QDZhemlfZmk+YSgkY2cpKTttbTg4ODg4ODg4NlQ4KCEkMVlpejliUVFoOHx8OCEkMVlpejlWejlpKThHbTg4ODg4ODg4ODg4OGh6aS9oYThUQXc5ejttODg4ODg4ODhKbW04ODg4ODg4OFQ+aDgoJDY4VTgyLDgkSHo2dzhVOEh6NncoJGF6aURBOU44IDgyeyk7OCQ2OGVVOCRIejZ3OzgrKyQ2KThHbTg4ODg4ODg4ODg4OCR3elRpOFU4JGF6aURBOU44LTgyezgqOCgkNjgtODIpO204ODg4ODg4ODg4ODgkd3pUaThVOCgkd3pUaThlVTgyeyk4Pzgkd3pUaTg6ODJ7O204ODg4ODg4ODg4ODgkREE5TjhVOH4oUHNUVFRUOGxsOCR3elRpKTgmOFBzVFRUVDttODg4ODg4ODg4ODg4NlQ4KCgkMVlpejliUVFoWCQ2MzgmOCREQTlOKTghVTgoJDFZaXo5Vno5aVgkNjM4JjgkREE5TikpOEdtODg4ODg4ODg4ODg4ODg4OGh6aS9oYThUQXc5ejttODg4ODg4ODg4ODg4Sm04ODg4ODg4OEptCQltCQloemkvaGE4aWgvejttCQltCUptCW0JaHppL2hhOFRBdzl6O21tSm1tVC9hSGk2PmE4RDlkKCRpWWZ6LDgkaTZpd3osOCRpenNpLDgkMUFITjhVOFRBdzl6KThHbQlkdz4xQXc4JHdBYWQ7bQltCSQxL2lpPmE5OFU4QWhoQVkoKTttCW0JNlQoNjlfQWhoQVkoOCQxQUhOOCkpOEdtCQkkMUg4VTgyO20JCW0JCVQ+aHpBSF04KCQxQUhOOEE5OCROelk4VWw4JDBBdy96KThHbQkJCW0JCQk2VCgkMUg4VVU4Mik4JEg+dz5oVSJpekF3IjttCQkJenc5ejZUKCQxSDhVVThCKTgkSD53PmhVIjl3QWl6LXtQUCI7bQkJCXp3OXo2VCgkMUg4VVU4SSk4JEg+dz5oVSIxaD5yYS17UFAiO20JCQl6dzl6OCRIPnc+aFUiZmg2REFoWS17UFAiO20JCQltCQkJNlQoOCQwQXcvejhVVTgkd0FhZFgnQVFRXzlfdiczOCk4JGlBaGR6aThVOCI4aUFoZHppVVwiXzF3QWFOXCIiO20JCQl6dzl6OCRpQWhkemlVIiI7bQkJCW0JCQkkMS9paT5hOVgzOFU4ImVBOEh3QTk5VVwiMWlhODFpYS05RDgxZC1HJEg+dz5oSjgxaWEtaEE2OXpROGY+OTZpNj5hLXd6VGlcIjhdaHpUVVwiRyROellKXCJHJGlBaGR6aUpsRyQwQXcvekplIEFsIjttCQkJbQkJCSQxSCsrO20JCQltCQkJNlQoJDFIOGw4eCk4JDFIOFU4MjttCQlKbQlKOHp3OXo2VCg4JDFBSE44KThHbQkJJDEvaWk+YTlYMzhVOCJlQThId0E5OVVcIjFpYTgxaWEtOUQ4MWQtaXpBdzgxaWEtaEE2OXpROGY+OTZpNj5hLXd6VGlcIjhdaHpUVVwiRyQxQUhOSlwibEckd0FhZFgnVC9hSF9EOWQnM0plIEFsIjttCUptCW0JNlQoSD4vYWkoJDEvaWk+YTkpOCk4R20JCSQxQUhOOFU4ImVRNjA4SHdBOTlVXCJmQWF6dy1UPj5pemhcImxlUTYwOEh3QTk5VVwiaXpzaS1IemFpemhcImwicTZEZnc+UXooJycsOCQxL2lpPmE5KXEiZSBRNjBsZSBRNjBsIjttCUo4enc5ejgkMUFITjhVIiI7bQltCW0JNlQ4KCRpNml3ejhVVTgiemhoPmgiKTgkaTZpd3o4VTgkd0FhZFgnQVFRYXpyOV96aGg+aCczO20JbQl6SF0+XXpBUXpoKDgiZTY4SHdBOTlVXCJUQThUQS1IPkREemFpLT44Zj45Nmk2PmEtd3pUaVwibGUgNmxlOWZBYThId0E5OVVcIml6c2ktOXpENjE+d1FcImxHJHdBYWRYJ116QVF6aF8xPnNfaTZpd3onM0plIDlmQWFsIiw4JGk2aXd6OCk7bW0JNlQoJGlZZno4VVU4InpoaD5oIik4R20JCSRpWWZ6OFU4IkF3emhpLVFBYWR6aCI7bQlKOHp3OXo2VDgoOCRpWWZ6OFVVOCJyQWhhNmFkIjgpOEdtCQkkaVlmejhVOCJBd3poaS1yQWhhNmFkIjttCUo4enc5ejZUOCg4JGlZZno4VVU4IjkvSEh6OTkiOCk4R20JCSRpWWZ6OFU4IkF3emhpLTkvSEh6OTkiO20JSjh6dzl6OCRpWWZ6OFU4IkF3emhpLTZhVD4iO20JbQk2VCg4NjlfQWhoQVkoOCRpNml3ejgpOCk4R20JCSRpNml3ejhVOHphUSgkaTZpd3opO20JSm1tCXpIXT44ZWVlfVZaa21lUTYwOEh3QTk5VSJBd3poaThHJGlZZnpKOEF3emhpLTlpWXd6US13elRpOEF3emhpLUFoaD5yLXd6VGk4QXd6aGktSD5EZj5hemFpOER6OTlBZHpfMT5zImxtODhlXXhsRyRpNml3ekplIF14bG04OGVRNjA4SHdBOTlVImZBYXp3LTE+UVkibG0JCWVpQTF3ejhyNlFpXVUiMlBQJSJsbQkJODg4OGVpaGxtCQk4ODg4ODg4OGVpUThdejZkXWlVIkNQIjhId0E5OVUiaXpzaS1IemFpemgibEckaXpzaUplIGlRbG0JCTg4ODhlIGlobG0JCWUgaUExd3psbQllIFE2MGxtCUckMUFITkptZSBRNjBsbX1WWms7bQltCXpIXT5UPj5pemgoKTttCVE2eigpO21KbW1UL2FIaTY+YTh6SF0+XXpBUXpoKCRdekFRemhfaTZpd3osOCRdekFRemhfOS8xaTZpd3opOEdtCWR3PjFBdzgkOU42YV9dekFRemgsOCQ5TjZhX1Q+Pml6aCw4JDlONmFfYT5pX3c+ZGR6UV9dekFRemgsOCREekQxemhfNlEsOCQvOXpoX2RoPi9mLDgkUzlfQWhoQVksOCRIOTlfQWhoQVksOCRIPmFUNmQsOCR3QWFkLDgkNjlfdz5kelFfNmEsOCREPlEsOCRBSGk2PmEsOCR3QWFkUUFpeiw4JFExLDgkUXd6X3c+ZDZhX11BOV07bW0JNlQoOCE2OV9BaGhBWSg4JF16QVF6aF85LzFpNml3ejgpKTgkXXpBUXpoXzkvMWk2aXd6OFU4QWhoQVk4KDgnJzhVbDgkXXpBUXpoXzkvMWk2aXd6KTttCW0JJDFoekFRSGgvRDE4VThBaGhBWSg4ImV3NmxlQThdaHpUVVwiP0Q+UVVEQTZhXCJsZTY4SHdBOTlVXCJUQThUQS1dPkR6OGY+OTZpNj5hLXd6VGlcImxlIDZsRyR3QWFkWCc5TjZhX0RBNmEnM0plIEFsZSB3NmwiOCk7bW0JVD5oekFIXTgoJF16QVF6aF85LzFpNml3ejhBOTgkTnpZOFVsOCQwQXcveik4R20JCW0JCTZUKCROelkpOEdtCQkJJDFoekFRSGgvRDFYMzhVOCJldzZsZUE4XWh6VFVcIkckTnpZSlwibEckMEF3L3pKZSBBbGUgdzZsIjttCQlKOHp3OXo4R20JCQkkMWh6QVFIaC9EMVgzOFU4ImV3NjhId0E5OVVcIkFIaTYwelwibEckMEF3L3pKZSB3NmwiO20JCUptCUptbQkkMWh6QVFIaC9EMThVODZEZnc+UXooJycsOCQxaHpBUUhoL0QxKTttbQk2YUh3L1F6Xz5hSHo4KEZrUmd3L2Q2YTk6Om9dekhOKFJFTWNFUl9GY084cTgnIDlONmE5IFF6VEEvd2lxOU42YXFmXWYnKSk7bQltCSRTOThVODEvNndRX1M5KCRTOV9BaGhBWSk7bQkkSDk5OFU4MS82d1FfSDk5KCRIOTlfQWhoQVkpO20JbQkkOU42YV9dekFRemg4VTg5aWhfaHpmd0FIeig4IkdTOV9UNnd6OUoiLDgkUzksOCQ5TjZhX116QVF6aDgpO20JJDlONmFfXXpBUXpoOFU4OWloX2h6ZndBSHooOCJHSDk5X1Q2d3o5SiIsOCRIOTksOCQ5TjZhX116QVF6aDgpO20JJDlONmFfYT5pX3c+ZGR6UV9dekFRemg4VTg5aWhfaHpmd0FIeig4IkdTOV9UNnd6OUoiLDgkUzksOCQ5TjZhX2E+aV93PmRkelFfXXpBUXpoOCk7bQkkOU42YV9hPmlfdz5kZHpRX116QVF6aDhVODlpaF9oemZ3QUh6KDgiR0g5OV9UNnd6OUoiLDgkSDk5LDgkOU42YV9hPmlfdz5kZHpRX116QVF6aDgpO20JbQk2VCg4JDY5X3c+ZHpRXzZhOCk4ekhdPjgkOU42YV9dekFRemg7bQl6dzl6OHpIXT44JDlONmFfYT5pX3c+ZGR6UV9dekFRemg7bUptbVQvYUhpNj5hOHpIXT5UPj5pemgoKThHbQlkdz4xQXc4JDY5X3c+ZHpRXzZhLDgkOU42YV9UPj5pemgsOCQ5TjZhX2E+aV93PmRkelFfVD4+aXpoO21tCTZUKDgkNjlfdz5kelFfNmE4KTh6SF0+OCQ5TjZhX1Q+Pml6aDttCXp3OXo4ekhdPjgkOU42YV9hPmlfdz5kZHpRX1Q+Pml6aDttbUptbVQvYUhpNj5hOHc2OWlRNmgoJFE2aCk4R20JbQk2VCg4NjlfUTZoKCRRNmgpOCk4R21tCQkkSC9oaHphaV9RNmg4VThAPmZ6YVE2aCg4JFE2aDgpO20JCW0JCTZUKCRIL2hoemFpX1E2aDghVVU4VEF3OXo4KThHbQkJCXJdNnd6OCg4JHphaWhZYUFEejhVOGh6QVFRNmgoOCRIL2hoemFpX1E2aDgpOCk4R20JCQkJNlQoODY5X1E2aCg4JFE2aHEiICJxJHphaWhZYUFEejgpOGJFRjgoJHphaWhZYUFEejghVTgicSI4YkVGOCR6YWloWWFBRHo4IVU4InFxIik4KThHbQkJCQkJdzY5aVE2aCg4JFE2aHEiICJxJHphaWhZYUFEejgpO20JCQkJSjh6dzl6NlQoOCR6YWloWWFBRHo4IVU4InEiOGJFRjgkemFpaFlhQUR6OCFVOCJxcSI4KThHbQkJCQkJQC9hdzZhTig4JFE2aHEiICJxJHphaWhZYUFEejgpO20JCQkJSm0JCQlKbQkJCUBIdz45elE2aCg4JEgvaGh6YWlfUTZoOCk7bQkJCUBoRFE2aCg4JFE2aDgpO20JCUptbQlKbW1KbW1UL2FIaTY+YThpPmloQWE5dzZpKCQwQWgsOCR3PnJ6aDhVOGloL3osOCRmL2FOaThVOGloL3osOCRpaEFhOXc2aThVOGloL3o4KThHbQlkdz4xQXc4JHdBYWRpaEFhOXc2aTttCW0JNlQ4KDghNjlfOWloNmFkKCQwQWgpOCk4aHppL2hhOCIiO21tCSQxQVE5OFU4QWhoQVkoOCchJyw4JyonLDgnXCcnLDgnKCcsOCcpJyw4JzsnLDgnOicsOCdAJyw4JyYnLDgnVScsOCcrJyw4JyQnLDgnLCcsOCcgJyw4Jz8nLDgnIycsOCdYJyw4JzMnLDgnJScsOCdcXCcsOCciJyw4J2UnLDgnbCcsOCdeJyw4J0cnLDgnSicsOCd8Jyw4J2AnLDgncWZdZic4KTttbQkkMEFoOFU4XWlEd196YWk2aVlfUXpIPlF6KCQwQWgsOFJFVl9wPFdWUj04fDhSRVZffVZaa3YsOCcvaVQtQycpO21tCSQwQWg4VTg5aWg2Zl9pQWQ5KDgkMEFoOCk7bQkkMEFoOFU4OWloX2h6ZndBSHooSF1oKFApLDgnJyw4JDBBaCk7bQltCTZUOCg4JHc+cnpoOCk4R20JCSQwQWg4VThRd3pfOWloaT53PnJ6aCgkMEFoKTsJbQlKbQltCSQwQWg4VTg5aWhfaHpmd0FIeig4QWhoQVkoOCJcaFxhIiw4IlxoIiw4IlxhIjgpLDgnOCcsOCQwQWg4KTttCSQwQWg4VThmaHpkX2h6ZndBSHooOCIgXDkrIC8iLDgiLSIsOCQwQWg4KTttbQk2VDgoOCEkZi9hTmk4KThHbQkJJDFBUTlYMzhVOCdxJzttCUptCW0JJDBBaDhVODlpaF82aHpmd0FIeig4JDFBUTksOCcnLDgkMEFoOCk7bQltCTZUKDgkaWhBYTl3Nmk4KThHbQkJbQkJNlQ4KDY5X0FoaEFZKCR3QWFkaWhBYTl3NmkpOGJFRjhIPi9haSgkd0FhZGloQWE5dzZpKTgpOEdtCQkJJDBBaDhVODlpaGloKCQwQWgsOCR3QWFkaWhBYTl3NmkpO20JCUptCQltCQk2VDgoOCRmL2FOaTgpOEdtCQkJbQkJCSQwQWg4VThmaHpkX2h6ZndBSHooOCIgWF5BLQpQLWpcX1wtcTMrIEQ2Iiw4JycsOCQwQWg4KTttCQkJJDBBaDhVOGZoemRfaHpmd0FIeig4JyNYcTMrIzYnLDgncScsOCQwQWg4KTttCQkJbQkJSjh6dzl6OCQwQWg4VThmaHpkX2h6ZndBSHooOCIgWF5BLQpQLWpcX1wtMysgRDYiLDgnJyw4JDBBaDgpO20JbQlKbQltCSQwQWg4VTg5aWhfNmh6ZndBSHooOCJxZl1mIiw4InFmZmYiLDgkMEFoOCk7bQkkMEFoOFU4Zmh6ZF9oemZ3QUh6KDgnIFwtKyAnLDgnLScsOCQwQWg4KTttCW0JNlQoOFF3el85aWh3emEoOCQwQWg4KThsODJ2UDgpOEdtCQltCQkkMEFoOFU4UXd6XzkvMTlpaCg4JDBBaCw4UCw4MnZQOCk7bQkJbQkJNlQoOCgkaXpEZl9EQXM4VThRd3pfOWloaGY+OSg4JDBBaCw4Jy0nOCkpOCk4JDBBaDhVOFF3el85LzE5aWgoOCQwQWgsOFAsOCRpekRmX0RBczgpO20JbQlKbTg4ODhtCSQwQWg4VThpaDZEKDgkMEFoLDgnLSc4KTttODg4OCQwQWg4VThpaDZEKDgkMEFoOCk7bQltCWh6aS9oYTgkMEFoO21KbW1UL2FIaTY+YTh3QWFkUUFpeigkVD5oREFpLDgkOWlBRGYsOCQ5emgwemhpNkR6OFU4VEF3OXosOCRILzlpPkQ4VThUQXc5ejgpOEdtCWR3PjFBdzgkd0FhZFFBaXosOCREekQxemhfNlEsOCRILzlpPkR3QWFkUUFpejttbQkkaTZEego+YXo5OFU4QWhoQVkoJ2dBSDZUNkggWjZRckFZJywnPD0gPUFEPkEnLCc8PSB9QXJBNjYnLCc8PSBid0E5TkEnLCc8PSBnQUg2VDZIJywnYkR6aDZIQSBWNlMvQWFBJywnPD0gYmg2Cj5hQScsJzw9IFo+L2FpQTZhJywnYkR6aDZIQSBvXTZdL0FdL0EnLCdiRHpoNkhBIFpBCkFpd0FhJywnYkR6aDZIQSBaenM2SD5fbzZpWScsJ2JEemg2SEEgWj5haXpoaHpZJywnPD0gb3phaWhBdycsJzw9IFJBOWl6aGEnLCc8PSBSQTlpLWNhUTZBYUEnLCdiRHpoNkhBIGs2REEnLCdiRHpoNkhBIG9BaEFIQTknLCdvQWFBUUEgYml3QWFpNkgnLCdiRHpoNkhBIGtBX2dBCicsJ2JEemg2SEEgPUFhaTZBZD4nLCdvQWFBUUEgRXpyVD4vYVF3QWFRJywnYkR6aDZIQSBbL3phPjlfYjZoejknLCdiRHpoNkhBIE0+UWldQTEnLCdiaXdBYWk2SCA9aUFhd3pZJywnYml3QWFpNkggYgo+aHo5JywnYlRoNkhBIG9BOUExd0FhSEEnLCdSL2g+ZnogRi8xdzZhJywnUi9oPmZ6IGs2OTE+YScsJ1IvaD5meiBrPmFRPmEnLCdSL2g+ZnogYkQ5aXpoUUFEJywnUi9oPmZ6IFt6d2RoQVF6JywnUi9oPmZ6IFt6aHc2YScsJ1IvaD5meiBbaEFpNjl3QTBBJywnUi9oPmZ6IFtoLzk5enc5JywnUi9oPmZ6IFsvUUFmejlpJywnUi9oPmZ6IG8+ZnphXUFkemEnLCdSL2g+ZnogWkFRaDZRJywnUi9oPmZ6IGdBaDY5JywnUi9oPmZ6IGdoQWQveicsJ1IvaD5meiBPPkR6JywnUi9oPmZ6ID1BaEFTejA+JywnUi9oPmZ6ID1pPkhOXT53RCcsJ1IvaD5meiB1NnphYUEnLCdSL2g+ZnogS0FoOUFyJywnUi9oPmZ6IHlBZGh6MScsJ1IvaD5meiBiaV16YTknLCdSL2g+ZnogWy9IXUFoejlpJywnUi9oPmZ6IH16dzk2YU42JywnUi9oPmZ6IGM5aUFhMS93JywnYjk2QSAuemgvOUF3ekQnLCdSL2g+ZnogNDZ6MCcsJ1IvaD5meiBaNmE5TicsJ1IvaD5meiBPNmRBJywnUi9oPmZ6ID0+VDZBJywnUi9oPmZ6IFZBd3c2YWEnLCdSL2g+ZnogdTZ3YTYvOScsJ2I5NkEgW0FkXVFBUScsJ2I5NkEgNC9yQTZpJywnYlRoNkhBIEVBNmg+MTYnLCdiOTZBIFZ6XWhBYScsJ1IvaD5meiA0QXc2YTZhZGhBUScsJ1IvaD5meiBaPjlIPnInLCdSL2g+ZnogdT53ZD5kaEFRJywnUi9oPmZ6ID1BREFoQScsJ2I5NkEgW0FOLycsJ2I5NkEgWi85SEFpJywnYjk2QSBWMTZ3Njk2JywnYjk2QSA1emh6MEFhJywnYjk2QSA0QTEvdycsJ2I5NkEgNXpOQWl6aDZhMS9oZCcsJ2I5NkEgVkE5XU56YWknLCdiOTZBIDQ+d05BaUEnLCdiOTZBIDRBaV1EQWFRLycsJ2I5NkEgYndEQWlZJywnYjk2QSBFPjA+OTYxNmg5TicsJ2I5NkEgLkFOQWhpQScsJ2I5NkEgNGhBOWE+WUFoOU4nLCdiOTZBIH0+YWRfND5hZCcsJ2I5NkEgNC9Bd0Ffay9EZi9oJywnYjk2QSA9NmFkQWY+aHonLCdiOTZBIFZBNmZ6NicsJ2I5NkEgPHdBQWExQUFpQWgnLCdiOTZBIDxoL0RMNicsJ2I5NkEgY2hOL2k5TicsJ2I5NkEgPXo+L3cnLCdiOTZBIFY+Tlk+JywnYi85aWhBdzZBIGJRendBNlF6JywnYi85aWhBdzZBIEZBaHI2YScsJ2I5NkEgNUFOL2k5TicsJ2IvOWloQXc2QSBbaDY5MUFheicsJ2dBSDZUNkggZz5oaV9aPmh6OTFZJywnYi85aWhBdzZBID1ZUWF6WScsJ2I5NkEgdXdBUTYwPjlpPk4nLCdiOTZBID1BTl1BdzZhJywnYjk2QSBaQWRBUUFhJywnZ0FINlQ2SCBiL0hOd0FhUScsJ2dBSDZUNkggNzZTNicpO21tCTZUKDg2OV9BaGhBWSgkSC85aT5EKTgpOCR3PkhBd3dBYWRRQWl6OFU4JEgvOWk+RHdBYWRRQWl6Ozh6dzl6OCR3PkhBd3dBYWRRQWl6OFU4JHdBYWRRQWl6O21tCTZUOCghJDlpQURmKThHOCQ5aUFEZjhVOGk2RHooKTs4Sm0JbQkkdz5IQXc4VThhenI4RkFpelY2RHooJ0AncSQ5aUFEZik7bW0JNlQ4KDY5OXppKCREekQxemhfNlFYJ2k2RHoKPmF6JzMpOGJFRjgkRHpEMXpoXzZRWCdpNkR6Cj5heiczOGJFRjghJDl6aDB6aGk2RHopOEdtCQkkdz5IQXcKPmF6OFU4JER6RDF6aF82UVgnaTZEego+YXonMzttbQlKOHp3OXo4R21tCQkkdz5IQXcKPmF6OFU4UUFpel9RelRBL3dpX2k2RHoKPmF6X2R6aSgpO20JSm1tCTZUOCghNmFfQWhoQVkoJHc+SEF3Cj5heiw4JGk2RHoKPmF6OSkpOCR3PkhBdwo+YXo4VTgnUi9oPmZ6IFo+OUg+cic7bW0JJHc+SEF3LWw5emlWNkR6eT5heihhenI4RkFpelY2RHp5PmF6KCR3PkhBdwo+YXopKTttbQloemkvaGE4OWloaWgoOCR3PkhBdy1sVD5oREFpKCRUPmhEQWkpLDgkdz5IQXd3QWFkUUFpejgpO21tSm1tVC9hSGk2PmE4UTZUVHdBYWRRQWl6KCRUPmhEQWksOCQ5aUFEZik4R20JZHc+MUF3OCRfVmNaUiw4JHdBYWRRQWl6LDgkRHpEMXpoXzZRLDgkd0FhZCw4JHdBYWRIPkREemFpOXJ6ek5RQVk5O21tCSRpNkR6Cj5hejk4VThBaGhBWSgnZ0FINlQ2SCBaNlFyQVknLDgnPD0gPUFEPkEnLDgnPD0gfUFyQTY2Jyw4Jzw9IGJ3QTlOQScsOCc8PSBnQUg2VDZIJyw4J2JEemg2SEEgVjZTL0FhQScsOCc8PSBiaDYKPmFBJyw4Jzw9IFo+L2FpQTZhJyw4J2JEemg2SEEgb102XS9BXS9BJyw4J2JEemg2SEEgWkEKQWl3QWEnLDgnYkR6aDZIQSBaenM2SD5fbzZpWScsOCdiRHpoNkhBIFo+YWl6aGh6WScsOCc8PSBvemFpaEF3Jyw4Jzw9IFJBOWl6aGEnLDgnPD0gUkE5aS1jYVE2QWFBJyw4J2JEemg2SEEgazZEQScsOCdiRHpoNkhBIG9BaEFIQTknLDgnb0FhQVFBIGJpd0FhaTZIJyw4J2JEemg2SEEga0FfZ0EKJyw4J2JEemg2SEEgPUFhaTZBZD4nLDgnb0FhQVFBIEV6clQ+L2FRd0FhUScsOCdiRHpoNkhBIFsvemE+OV9iNmh6OScsOCdiRHpoNkhBIE0+UWldQTEnLDgnYml3QWFpNkggPWlBYXd6WScsOCdiaXdBYWk2SCBiCj5oejknLDgnYlRoNkhBIG9BOUExd0FhSEEnLDgnUi9oPmZ6IEYvMXc2YScsOCdSL2g+ZnogazY5MT5hJyw4J1IvaD5meiBrPmFRPmEnLDgnUi9oPmZ6IGJEOWl6aFFBRCcsOCdSL2g+ZnogW3p3ZGhBUXonLDgnUi9oPmZ6IFt6aHc2YScsOCdSL2g+ZnogW2hBaTY5d0EwQScsOCdSL2g+ZnogW2gvOTl6dzknLDgnUi9oPmZ6IFsvUUFmejlpJyw4J1IvaD5meiBvPmZ6YV1BZHphJyw4J1IvaD5meiBaQVFoNlEnLDgnUi9oPmZ6IGdBaDY5Jyw4J1IvaD5meiBnaEFkL3onLDgnUi9oPmZ6IE8+RHonLDgnUi9oPmZ6ID1BaEFTejA+Jyw4J1IvaD5meiA9aT5ITl0+d0QnLDgnUi9oPmZ6IHU2emFhQScsOCdSL2g+ZnogS0FoOUFyJyw4J1IvaD5meiB5QWRoejEnLDgnUi9oPmZ6IGJpXXphOScsOCdSL2g+ZnogWy9IXUFoejlpJyw4J1IvaD5meiB9enc5NmFONicsOCdSL2g+ZnogYzlpQWExL3cnLDgnYjk2QSAuemgvOUF3ekQnLDgnUi9oPmZ6IDQ2ejAnLDgnUi9oPmZ6IFo2YTlOJyw4J1IvaD5meiBPNmRBJyw4J1IvaD5meiA9PlQ2QScsOCdSL2g+ZnogVkF3dzZhYScsOCdSL2g+ZnogdTZ3YTYvOScsOCdiOTZBIFtBZF1RQVEnLDgnYjk2QSA0L3JBNmknLDgnYlRoNkhBIEVBNmg+MTYnLDgnYjk2QSBWel1oQWEnLDgnUi9oPmZ6IDRBdzZhNmFkaEFRJyw4J1IvaD5meiBaPjlIPnInLDgnUi9oPmZ6IHU+d2Q+ZGhBUScsOCdSL2g+ZnogPUFEQWhBJyw4J2I5NkEgW0FOLycsOCdiOTZBIFovOUhBaScsOCdiOTZBIFYxNnc2OTYnLDgnYjk2QSA1emh6MEFhJyw4J2I5NkEgNEExL3cnLDgnYjk2QSA1ek5BaXpoNmExL2hkJyw4J2I5NkEgVkE5XU56YWknLDgnYjk2QSA0PndOQWlBJyw4J2I5NkEgNEFpXURBYVEvJyw4J2I5NkEgYndEQWlZJyw4J2I5NkEgRT4wPjk2MTZoOU4nLDgnYjk2QSAuQU5BaGlBJyw4J2I5NkEgNGhBOWE+WUFoOU4nLDgnYjk2QSB9PmFkXzQ+YWQnLDgnYjk2QSA0L0F3QV9rL0RmL2gnLDgnYjk2QSA9NmFkQWY+aHonLDgnYjk2QSBWQTZmejYnLDgnYjk2QSA8d0FBYTFBQWlBaCcsOCdiOTZBIDxoL0RMNicsOCdiOTZBIGNoTi9pOU4nLDgnYjk2QSA9ej4vdycsOCdiOTZBIFY+Tlk+Jyw4J2IvOWloQXc2QSBiUXp3QTZReicsOCdiLzlpaEF3NkEgRkFocjZhJyw4J2I5NkEgNUFOL2k5TicsOCdiLzlpaEF3NkEgW2g2OTFBYXonLDgnZ0FINlQ2SCBnPmhpX1o+aHo5MVknLDgnYi85aWhBdzZBID1ZUWF6WScsOCdiOTZBIHV3QVE2MD45aT5OJyw4J2I5NkEgPUFOXUF3NmEnLDgnYjk2QSBaQWRBUUFhJyw4J2dBSDZUNkggYi9ITndBYVEnLDgnZ0FINlQ2SCA3NlM2Jyk7bW0JNlQ4KCE2OV9BaGhBWSgkd0FhZFFBaXopKThHbQkJJHdBYWRRQWl6OFU4QWhoQVkoKTttCUptbQk2VDgoITY5X0FoaEFZKCR3QWFkSD5ERHphaTlyenpOUUFZOSkpOEdtCQkkd0FhZEg+RER6YWk5cnp6TlFBWTk4VThBaGhBWSgpO20JSm1tCTZUOCghJDlpQURmKThHbQkJJDlpQURmOFU4JF9WY1pSO20JSm1tCSQ+d1FRQWl6OFU4YXpyOEZBaXpWNkR6KCdAJzhxOCQ5aUFEZik7bQkkYT5yUUFpejhVOGF6cjhGQWl6VjZEeignQCc4cTgkX1ZjWlIpO20JJFl6OWl6aFFBWVFBaXo4VThhenI4RkFpelY2RHooJy0yOFFBWScpO21tCTZUOCg2OTl6aSgkRHpEMXpoXzZRWCdpNkR6Cj5heiczKThBYVE4JER6RDF6aF82UVgnaTZEego+YXonMyk4R20JCSR3PkhBdwo+YXo4VTgkRHpEMXpoXzZRWCdpNkR6Cj5heiczO20JSjh6dzl6OEdtbQkJJHc+SEF3Cj5hejhVOFFBaXpfUXpUQS93aV9pNkR6Cj5hel9kemkoKTttCUptbQk2VDgoITZhX0FoaEFZKCR3PkhBdwo+YXosOCRpNkR6Cj5hejkpKTgkdz5IQXcKPmF6OFU4J1IvaD5meiBaPjlIPnInO21tCSQ+d1FRQWl6LWw5emlWNkR6eT5heihhenI4RkFpelY2RHp5PmF6KCR3PkhBdwo+YXopKTttCSRhPnJRQWl6LWw5emlWNkR6eT5heihhenI4RkFpelY2RHp5PmF6KCR3PkhBdwo+YXopKTttCSRZejlpemhRQVlRQWl6LWw5emlWNkR6eT5heihhenI4RkFpelY2RHp5PmF6KCR3PkhBdwo+YXopKTttbQkkUTZUVDhVOCQ+d1FRQWl6LWxRNlRUKCRhPnJRQWl6KTttbQkkUUFZOTg4ODhVODZhaTBBdygkUTZUVC1sVD5oREFpKCclQScpKTttCSRdPi9oOTg4OFU4NmFpMEF3KCRRNlRULWxUPmhEQWkoJyVdJykpO20JJEQ2YS9pejk4VTg2YWkwQXcoJFE2VFQtbFQ+aERBaSgnJTYnKSk7bW0JNlQ4KCQ+d1FRQWl6LWxUPmhEQWkoJzVEUScpOFVVOCRZejlpemhRQVlRQWl6LWxUPmhEQWkoJzVEUScpKThHbW0JCSR3QWFkX1Q+aERBaThVODlpaF9oemZ3QUh6KCdHUUFpekonLDgkd0FhZFgnaTZEel9kejlpemhhJzMsOCR3QWFkWCdRNlRUOV9UPmhEQWknMyk7bQkJJHdBYWRfVD5oREFpOFU4OWloX2h6ZndBSHooJ0dpNkR6SicsOCQ+d1FRQWl6LWxUPmhEQWkoJ306NicpLDgkd0FhZF9UPmhEQWkpO21tCQloemkvaGE4JHdBYWRfVD5oREFpO20JSjh6dzl6NlQ4KCRRQVk5OGU4Mik4R21tCQk2VDgoJF0+L2g5OGU4Mik4R21tCQkJNlQ4KCRENmEvaXo5OGU4Mik4R21tCQkJCWh6aS9oYTgkd0FhZFgnYT5yX1E2VFQ5JzM7bQkJCUo4enc5ejhHbW0JCQkJaHppL2hhOCRENmEvaXo5OHE4JzgnOHE4UXpIdzZhQWk2PmEoQWhoQVkoJycsOCRENmEvaXo5LDgkd0FhZFgnRDZhL2l6OV9RNlRUOSczKSk4cTgnOCc4cTgkd0FhZFgnaTZEel9RNlRUOSczO20JCQlKbQkJSjh6dzl6NlQ4KCRdPi9oOThlVTgyQik4R21tCQkJaHppL2hhOCRdPi9oOThxOCc4JzhxOFF6SHc2YUFpNj5hKEFoaEFZKCcnLDgkXT4vaDksOCR3QWFkWCddPi9oOV9RNlRUOSczKSk4cTgnOCc4cTgkd0FhZFgnaTZEel9RNlRUOSczO20JCUo4enc5ejhHbW0JCQkkd0FhZF9UPmhEQWk4VTg5aWhfaHpmd0FIeignR1FBaXpKJyw4JHdBYWRYJ2k2RHpfXXovaXonMyw4JHdBYWRYJ1E2VFQ5X1Q+aERBaSczKTttCQkJJHdBYWRfVD5oREFpOFU4OWloX2h6ZndBSHooJ0dpNkR6SicsOCQ+d1FRQWl6LWxUPmhEQWkoJ306NicpLDgkd0FhZF9UPmhEQWkpO21tCQkJaHppL2hhOCR3QWFkX1Q+aERBaTttCQlKbQlKOHp3OXo4R21tCQk2VDgoJFFBWTk4ZTh7KThHbW0JCQkkd0FhZF9UPmhEQWk4VTg5aWhfaHpmd0FIeignR1FBaXpKJyw4JD53UVFBaXotbFQ+aERBaSgndycpLDgkd0FhZFgnUTZUVDlfVD5oREFpJzMpO20JCQkkd0FhZF9UPmhEQWk4VTg5aWhfaHpmd0FIeignR2k2RHpKJyw4JD53UVFBaXotbFQ+aERBaSgnfTo2JyksOCR3QWFkX1Q+aERBaSk7bW0JCQloemkvaGE4OWloaWgoJHdBYWRfVD5oREFpLDgkd0FhZEg+RER6YWk5cnp6TlFBWTkpO20JCUo4enc5ejhoemkvaGE4OWloaWgoJD53UVFBaXotbFQ+aERBaSgkVD5oREFpKSw4JHdBYWRRQWl6KTttCUptSm1tVC9hSGk2PmE4UXpIdzZhQWk2PmEoJERBaUhdejk4VThBaGhBWSgpKW1HbW0JJERBaUhdejlYMjM4VTg5aWg2Zl9pQWQ5KCREQWlIXXo5WDIzKTttCSREQWlIXXo5WDIzOFU4OWloX2h6ZndBSHooJzgnLDgnJyw4JERBaUhdejlYMjMpO21tCSREQWlIXXo5WDIzOFU4NmFpMEF3KCREQWlIXXo5WDIzKTttCSRyPmhROThVOHpzZnc+UXooJ3wnLDhpaDZEKCREQWlIXXo5WEIzKSk7bQkkZkFoaTlfcj5oUThVOEFoaEFZKCk7bW0JOXI2aUhdOChIPi9haSgkcj5oUTkpKThHbQkJSEE5ejgyOm0JCQkkZkFoaTlfcj5oUVhQMzhVOCRyPmhROVhQMzttCQkJJGZBaGk5X3I+aFFYMjM4VTgkcj5oUTlYUDM7bQkJCSRmQWhpOV9yPmhRWEIzOFU4JHI+aFE5WFAzO20JCQkxaHpBTjttCQlIQTl6OEI6bQkJCSRmQWhpOV9yPmhRWFAzOFU4JHI+aFE5WFAzO20JCQkkZkFoaTlfcj5oUVgyMzhVOCRyPmhROVhQMzhxOCRyPmhROVgyMzttCQkJJGZBaGk5X3I+aFFYQjM4VTgkcj5oUTlYUDM4cTgkcj5oUTlYMjM7bQkJCTFoekFOO20JCUhBOXo4STptCQkJJGZBaGk5X3I+aFFYUDM4VTgkcj5oUTlYUDM7bQkJCSRmQWhpOV9yPmhRWDIzOFU4JHI+aFE5WFAzOHE4JHI+aFE5WDIzO20JCQkkZkFoaTlfcj5oUVhCMzhVOCRyPmhROVhQMzhxOCRyPmhROVhCMzttCQkJMWh6QU47bQkJSEE5ejh4Om0JCQkkZkFoaTlfcj5oUVhQMzhVOCRyPmhROVhQMzhxOCRyPmhROVgyMzttCQkJJGZBaGk5X3I+aFFYMjM4VTgkcj5oUTlYUDM4cTgkcj5oUTlYQjM7bQkJCSRmQWhpOV9yPmhRWEIzOFU4JHI+aFE5WFAzOHE4JHI+aFE5WEkzO20JCQkxaHpBTjttCUptbQkkcj5oUThVOCREQWlIXXo5WDIzOCU4MlA4VVU4MjgmJjgkREFpSF16OVgyMzglODJQUDghVTgyMjg/OCRmQWhpOV9yPmhRWFAzODo4KCREQWlIXXo5WDIzOCU4MlA4bFU4QjgmJjgkREFpSF16OVgyMzglODJQOGVVOHg4JiY4KCREQWlIXXo5WDIzOCU4MlBQOGU4MlA4fHw4JERBaUhdejlYMjM4JTgyUFA4bFU4QlApOD84JGZBaGk5X3I+aFFYMjM4OjgkZkFoaTlfcj5oUVhCMyk7bW0JaHppL2hhOCRyPmhRO21KbW1UL2FIaTY+YThvQWl6ZD5oWUV6cjk9end6SGk2PmEoJEhBaXpkPmhZNlE4VThQLDgkZkFoemFpNlE4VThQLDgkYT5IQWk4VThWTzxSLDgkOS8xd3owendEQWhOemg4VTgnJyw4JGh6aS9oYTlpaDZhZDhVOCcnKThHbQlkdz4xQXc4JEhBaV82YVQ+LDgkRHpEMXpoXzZRLDgkLzl6aF9kaD4vZiw4JEQ+UTttCW0JNlQ4KCREPlE4VVU4IkFRUWF6cjkiOFdPOCREPlE4VVU4InpRNmlhenI5Iik4R20JCW0JCTZUKCREekQxemhfNlFYJ0hBaV9Bd3c+cl9BUVFhenI5JzMpOEdtCQkJJEF3dz5yX3c2OWk4VTh6c2Z3PlF6KDgnLCcsOCREekQxemhfNlFYJ0hBaV9Bd3c+cl9BUVFhenI5JzM4KTttCQlKOHp3OXo4JEF3dz5yX3c2OWk4VTh6c2Z3PlF6KDgnLCcsOCQvOXpoX2RoPi9mWCREekQxemhfNlFYJy85emhfZGg+L2YnMzNYJ0hBaV9Bd3c+cl9BUVFhenI5JzM4KTttCQltCUo4enc5ejhHbQkJbQkJJEF3dz5yX3c2OWk4VTh6c2Z3PlF6KDgnLCcsOCQvOXpoX2RoPi9mWCREekQxemhfNlFYJy85emhfZGg+L2YnMzNYJ0F3dz5yX0hBaTknMzgpO20JCW0JSm0JbQk2VCg4JEQ+UTghVTgiLzl6aGRoPi9mIjhiRUY4JEQ+UTghVTgielE2aS85emg5Iik4R20JCW0JCSRhPmlfQXd3PnJfdzY5aThVOHpzZnc+UXooOCcsJyw4JC85emhfZGg+L2ZYJER6RDF6aF82UVgnLzl6aF9kaD4vZiczM1gnYT5pX0F3dz5yX0hBaTknMzgpO20JCW0JSjh6dzl6OCRhPmlfQXd3PnJfdzY5aThVOEFoaEFZKCk7bQltCTZUKDgkZkFoemFpNlE4VVU4UDgpOEdtCQk2VCg4JGE+SEFpOCk4JGh6aS9oYTlpaDZhZDhxVTgnZT5maTY+YTgwQXcvelUiUCJsZSA+Zmk2PmFsJzttCUo4enc5ejhHbQkJJDkvMXd6MHp3REFoTnpoOHFVOCcmYTE5ZjsmYTE5ZjsmYTE5ZjsmYTE5ZjsnO20JSm0JbQk2VCg4SD4vYWkoOCRIQWlfNmFUPjgpOCk4R20JCW0JCSRoPj5pX0hBaXpkPmhZOFU4QWhoQVkoKTttCQltCQlUPmh6QUhdOCg4JEhBaV82YVQ+OEE5OCRIQWk5OCk4R20JCQk2VCg4JEhBaTlYJ2ZBaHphaTZRJzM4VVU4JGZBaHphaTZROCk4JGg+PmlfSEFpemQ+aFlYMzhVOCRIQWk5WCc2USczO20JCUptbQkJNlQoOEg+L2FpKDgkaD4+aV9IQWl6ZD5oWTgpOCk4R20JCQltCQkJVD5oekFIXTgoOCRoPj5pX0hBaXpkPmhZOEE5OCQ2UTgpOEdtCQkJCW0JCQkJNlQoOCg4JEF3dz5yX3c2OWlYUDM4VVU4IkF3dyI4V084NmFfQWhoQVkoOCQ2USw4JEF3dz5yX3c2OWk4KTgpOFdPOCREPlE4VVU4Ii85emhkaD4vZiI4V084JEQ+UThVVTgielE2aS85emg5IjgpOEdtCQkJCQltCQkJCQk2VCg4NmFfQWhoQVkoOCQ2USw4JGE+aV9Bd3c+cl93NjlpOCk4KThIPmFpNmEvejttCQkJCQltCQkJCQkkaHppL2hhOWloNmFkOHFVOCJlPmZpNj5hODBBdy96VVwiIjhxOCQ2UThxOCciOCc7bQkJCQkJbQkJCQkJNlQoODY5X0FoaEFZKDgkSEFpemQ+aFk2UTgpOCk4R20JCQkJCQlUPmh6QUhdOCg4JEhBaXpkPmhZNlE4QTk4JHp3ekR6YWk4KThHbQkJCQkJCQk2VCg4JHp3ekR6YWk4VVU4JDZROCk4JGh6aS9oYTlpaDZhZDhxVTgnOXp3ekhpelEnO20JCQkJCQlKbQkJCQkJSjh6dzl6NlQoOCRIQWl6ZD5oWTZROFVVOCQ2UTgpOCRoemkvaGE5aWg2YWQ4cVU4Jzl6d3pIaXpRJzttCQkJCQltCQkJCQkkaHppL2hhOWloNmFkOHFVOCdsJzhxOCQ5LzF3ejB6d0RBaE56aDhxOCRIQWlfNmFUPlgkNlEzWCdhQUR6JzM4cTgnZSA+Zmk2PmFsJzttCQkJCUptCQkJCW0JCQkJJGh6aS9oYTlpaDZhZDhVOG9BaXpkPmhZRXpyOT16d3pIaTY+YSg4JEhBaXpkPmhZNlEsOCQ2USw4JGE+SEFpLDgkOS8xd3owendEQWhOemgsOCRoemkvaGE5aWg2YWQ4KTttCQkJSm0JCUptCUptCW0JaHppL2hhOCRoemkvaGE5aWg2YWQ7bUptbW1UL2FIaTY+YThBaGhBWV85end6SGk2PmEoJEFoaEFZX3c2OWksOCQ5enc2UThVOFAsOCRmQWh6YWk2UThVOFAsOCQ5LzF3ejB6d0RBaE56aDhVOCcnLDgkaHppL2hhOWloNmFkOFU4JycpOEdtbQkkaD4+aV9IQWl6ZD5oWThVOEFoaEFZOCgpO20JbQk2VCg4JGZBaHphaTZROFVVOFA4KThHbQkJJGh6aS9oYTlpaDZhZDhxVTgnZT5maTY+YTgwQXcvelUiUCJsZSA+Zmk2PmFsJzttCUo4enc5ejhHbQkJJDkvMXd6MHp3REFoTnpoOHFVOCcmYTE5ZjsmYTE5ZjsmYTE5ZjsnO20JSm0JbQk2VCg4SD4vYWkoOCRBaGhBWV93NjlpOCk4KThHbQkJbQkJVD5oekFIXTgoOCRBaGhBWV93NjlpOEE5OCR3NjlpOCk4R20JCQk2VCg4JHc2OWlYJ2ZBaHphaTZRJzM4VVU4JGZBaHphaTZROCk4JGg+PmlfSEFpemQ+aFlYMzhVOCR3NjlpWCc2USczO20JCUptCQltCQk2VCg4SD4vYWkoOCRoPj5pX0hBaXpkPmhZOCk4KThHbQkJCVQ+aHpBSF04KDgkaD4+aV9IQWl6ZD5oWThBOTgkNlE4KThHbQkJCQkJbQkJCQkkaHppL2hhOWloNmFkOHFVOCJlPmZpNj5hODBBdy96VVwiIjhxOCQ2UThxOCciOCc7bQkJCQkJbQkJCQk2VCg4NjlfQWhoQVkoOCQ5enc2UTgpOCk4R20JCQkJCVQ+aHpBSF04KDgkOXp3NlE4QTk4JHp3ekR6YWk4KThHbQkJCQkJCW0JCQkJCQkkend6RHphaThVODZhaTBBdygkend6RHphaSk7bQkJCQkJCW0JCQkJCQk2VCg4JHp3ekR6YWk4VVU4JDZROCk4JGh6aS9oYTlpaDZhZDhxVTgnOXp3ekhpelEnO20JCQkJCQltCQkJCQlKbQkJCQlKOHp3OXo2VCg4NmFpMEF3KCQ5enc2USk4VVU4JDZROCk4JGh6aS9oYTlpaDZhZDhxVTgnOXp3ekhpelEnO20JCQkJCW0JCQkJJGh6aS9oYTlpaDZhZDhxVTgnbCc4cTgkOS8xd3owendEQWhOemg4cTgkQWhoQVlfdzY5aVgkNlEzWCdpNml3eiczOHE4J2UgPmZpNj5hbCc7bQkJCQltCQkJCSRoemkvaGE5aWg2YWQ4VThBaGhBWV85end6SGk2PmEoJEFoaEFZX3c2OWksOCQ5enc2USw4JDZRLDgkOS8xd3owendEQWhOemgsOCRoemkvaGE5aWg2YWQ4KTttCQkJSm0JCUptCUptCW0JaHppL2hhOCRoemkvaGE5aWg2YWQ7bUptbVQvYUhpNj5hOFF3el9IQUhdeigkZmh6VDZzLDgkSEFIXXpfNlE4VThUQXc5eiw4JER6RDF6aF9maHpUNnM4VThUQXc5eik4R20JZHc+MUF3OCRIPmFUNmQsOCQ2OV93PmRkelEsOCREekQxemhfNlEsOCRRd3pUQTlpSEFIXXo7bQltCTZUKDghJEg+YVQ2ZFgnQXd3PnJfSEFIXXonMzgpOGh6aS9oYThUQXc5ejttbQkkSD5hVDZkWCdId3pBaF9IQUhdeiczOFU4KDZhaTBBdygkSD5hVDZkWCdId3pBaF9IQUhdeiczKThsODIpOD84NmFpMEF3KCRIPmFUNmRYJ0h3ekFoX0hBSF16JzMpODo4UDttbQk2VCg4JDY5X3c+ZGR6UTgpOCR6YVFfVDZ3ejhVOCREekQxemhfNlFYJy85emhfZGg+L2YnMzttCXp3OXo4JHphUV9UNnd6OFU4IlAiO20JbQk2VCg4ITgkSEFIXXpfNlE4KThHbQkJbQkJJE56WThVOCRmaHpUNnM7bQltCUo4enc5ejhHbQkJbQkJJEhBSF16XzZROFU4RFF2KDgkSEFIXXpfNlE4KTttCQltCQk2VCg4JER6RDF6aF9maHpUNnM4KTgkTnpZOFU4JGZoelQ2czhxOCJfIjhxOCRIQUhdel82UThxOCJfIjhxOCR6YVFfVDZ3ejttCQl6dzl6OCROelk4VTgkZmh6VDZzOHE4Il8iOHE4JEhBSF16XzZRO20JbQlKbQltCTZUKDgkSD5hVDZkWCdIQUhdel9pWWZ6JzM4KThHbQkJNlQoOCRRd3pUQTlpSEFIXXotbEg+YWF6SGk2PmE4bDhQOCk4R20JCQloemkvaGE4JFF3elRBOWlIQUhdei1sZHppKCROelkpO20JCUptCUptbQkkMS9UVHpoOFU4QFQ2d3pfZHppX0g+YWl6YWk5KDhSRU1jRVJfRmNPOHE4IiBIQUhdeiAiOHE4JE56WThxOCJxaURmIjgpO21tCTZUOCg4JDEvVFR6aDghVVU4VEF3OXo4YkVGOCRIPmFUNmRYJ0h3ekFoX0hBSF16JzM4KThHbW0JCSRUNnd6X1FBaXo4VThAVDZ3ekRpNkR6KDhSRU1jRVJfRmNPOHE4IiBIQUhdeiAiOHE4JE56WThxOCJxaURmIjgpO20JCSRUNnd6X1FBaXo4VThpNkR6KCktJFQ2d3pfUUFpejttbQkJNlQ4KDgkVDZ3el9RQWl6OGw4KDgkSD5hVDZkWCdId3pBaF9IQUhdeiczOCo4e1A4KTgpOEdtCQkJJDEvVFR6aDhVOFRBdzl6O20JCQlAL2F3NmFOKDhSRU1jRVJfRmNPOHE4IiBIQUhdeiAiOHE4JE56WThxOCJxaURmIjgpO20JCUptbQkJaHppL2hhOCQxL1RUemg7bW0JSjh6dzl6OGh6aS9oYTgkMS9UVHpoO21tSm1tVC9hSGk2PmE4SGh6QWl6X0hBSF16KCRmaHpUNnMsOCRIQUhdel9penNpLDgkSEFIXXpfNlE4VThUQXc5eiw4JER6RDF6aF9maHpUNnM4VThUQXc5eik4R20JZHc+MUF3OCRIPmFUNmQsOCQ2OV93PmRkelEsOCREekQxemhfNlEsOCRRd3pUQTlpSEFIXXo7bQltCTZUKDghJEg+YVQ2ZFgnQXd3PnJfSEFIXXonMzgpOGh6aS9oYThUQXc5ejttCW0JNlQoOCQ2OV93PmRkelE4KTgkemFRX1Q2d3o4VTgkRHpEMXpoXzZRWCcvOXpoX2RoPi9mJzM7bQl6dzl6OCR6YVFfVDZ3ejhVOCJQIjttCW0JNlQoOCE4JEhBSF16XzZROCk4R20JCW0JCSROelk4VTgkZmh6VDZzO20JCW0JSjh6dzl6OEdtCQltCQkkSEFIXXpfNlE4VThEUXYoOCRIQUhdel82UTgpO20JCW0JCTZUKDgkRHpEMXpoX2ZoelQ2czgpOCROelk4VTgkZmh6VDZzOHE4Il8iOHE4JEhBSF16XzZROHE4Il8iOHE4JHphUV9UNnd6O20JCXp3OXo4JE56WThVOCRmaHpUNnM4cTgiXyI4cTgkSEFIXXpfNlE7bQltCUptCW0JNlQoJEhBSF16X2l6c2k4VVVVOFRBdzl6KTgkSEFIXXpfaXpzaThVOCcnO21tCTZUKDgkSD5hVDZkWCdIQUhdel9pWWZ6JzM4KThHbQkJNlQoOCRRd3pUQTlpSEFIXXotbEg+YWF6SGk2PmE4bDhQOCk4R20JCQkkUXd6VEE5aUhBSF16LWw5emkoOCROelksOCRIQUhdel9penNpOCk7bQkJCWh6aS9oYThpaC96O20JCUptCUptbQlUNnd6X2YvaV9IPmFpemFpOTgoUkVNY0VSX0ZjTzhxOCIgSEFIXXogIjhxOCROelk4cTgicWlEZiIsOCRIQUhdel9penNpLDhrV280X1JuKTttCUBIXUQ+USg4UkVNY0VSX0ZjTzhxOCIgSEFIXXogIjhxOCROelk4cTgicWlEZiIsOFB7e3s4KTttCW0JaHppL2hhOGloL3o7bQltSm1tVC9hSGk2PmE4SHd6QWhfSEFIXXooJEhBSF16X0FoekE5OFU4VEF3OXopOEdtCWR3PjFBdzgkUXd6VEE5aUhBSF16LDgkSD5hVDZkO21tCTZUKDgkSD5hVDZkWCdIQUhdel9pWWZ6JzM4KThHbQkJNlQoOCRRd3pUQTlpSEFIXXotbEg+YWF6SGk2PmE4bDhQOCk4R20JCQkkUXd6VEE5aUhBSF16LWxId3pBaCg4JEhBSF16X0FoekE5OCk7bQkJCWh6aS9oYThpaC96O20JCUptCUptbQk2VDgoOCRIQUhdel9BaHpBOTgpOEdtCQk2VCghNjlfQWhoQVkoJEhBSF16X0FoekE5KSk4R20JCQkkSEFIXXpfQWh6QTk4VThBaGhBWSgkSEFIXXpfQWh6QTkpO20JCUptCUptCQltCSRUUTZoOFU4PmZ6YVE2aCg4UkVNY0VSX0ZjTzhxOCcgSEFIXXonOCk7bQkJbQlyXTZ3ejgoOCRUNnd6OFU4aHpBUVE2aCg4JFRRNmg4KTgpOEdtCQk2VCg4JFQ2d3o4IVU4J3FdaUFISHo5OSc4YkVGOCE2OV9RNmgoUkVNY0VSX0ZjTzhxOCcgSEFIXXogJzhxOCRUNnd6KTgpOEdtCQkJbQkJCTZUKDgkSEFIXXpfQWh6QTk4KThHbQkJCQltCQkJCVQ+aHpBSF0oJEhBSF16X0FoekE5OEE5OCRIQUhdel9BaHpBKTg2VCg4OWloNmY+OSg4JFQ2d3osOCRIQUhdel9BaHpBOCk4VVVVOFA4KThAL2F3NmFOKDhSRU1jRVJfRmNPOHE4JyBIQUhdeiAnOHE4JFQ2d3o4KTttCQkJbQkJCUo4enc5ejhHbQkJCQltCQkJCUAvYXc2YU4oOFJFTWNFUl9GY084cTgnIEhBSF16ICc4cTgkVDZ3ejgpO20JCQltCQkJSm0JCUptCUptSm1tVC9hSGk2PmE4SHd6QWhfQXd3X0hBSF16OSgpOEdtCWR3PjFBdzgkSD5hVDZkO20JbQl3NjlpUTZoKDhSRU1jRVJfRmNPOHE4JyBIQUhdeiA5WTlpekQgbz09JzgpO20JdzY5aVE2aCg4UkVNY0VSX0ZjTzhxOCcgSEFIXXogOVk5aXpEIH1WWmsnOCk7bQl3NjlpUTZoKDhSRU1jRVJfRmNPOHE4JyBIQUhdeiA5WTlpekQgPE9jJzgpO20JdzY5aVE2aCg4UkVNY0VSX0ZjTzhxOCcgSEFIXXogOVk5aXpEIGZ3L2Q2YTknOCk7bQltCSRUUTZoOFU4PmZ6YVE2aCg4UkVNY0VSX0ZjTzhxOCcgSEFIXXogOVk5aXpEICc4KTttCXJdNnd6OCg4JFQ2d3o4VThoekFRUTZoKDgkVFE2aDgpOCk4R20JCTZUKDghNjlfUTZoKFJFTWNFUl9GY084cTgnIEhBSF16IDlZOWl6RCAnOHE4JFQ2d3o4KThiRUY4JFQ2d3o4IVU4J3FdaUFISHo5OSc4YkVGOCRUNnd6OCFVOCdIaD5hcWZdZic4KThHbQkJCUAvYXc2YU4oOFJFTWNFUl9GY084cTgnIEhBSF16IDlZOWl6RCAnOHE4JFQ2d3o4KTttCQltCQlKbQlKbQltCTZUKDgkSD5hVDZkWCdIQUhdel9pWWZ6JzM4KThHbQkJJFRRNmg4VTg+ZnphUTZoKDhSRU1jRVJfRmNPOHE4JyBIQUhdeic4KTttCQlyXTZ3ejgoOCRUNnd6OFU4aHpBUVE2aCg4JFRRNmg4KTgpOEdtCQkJNlQoOCRUNnd6OCFVOCdxXWlBSEh6OTknOGJFRjghNjlfUTZoKFJFTWNFUl9GY084cTgnIEhBSF16ICc4cTgkVDZ3eik4OCk4R20JCQkJCUAvYXc2YU4oOFJFTWNFUl9GY084cTgnIEhBSF16ICc4cTgkVDZ3ejgpO20JCQlKbQkJSm0JSm0JbQlId3pBaF9IQUhdeigpO20JbQk2VDgoVC9hSGk2PmFfenM2OWk5KCc+ZkhBSF16X2h6OXppJykpOEdtCQk+ZkhBSF16X2h6OXppKCk7bQlKbQltSm1tVC9hSGk2PmE4SHd6QWhfOWlBaTZIX0hBSF16XzZRKDgkOUEwejhVOGloL3o4KThHbW0JJDlBd2k4VTg5aWhfOV0vVFR3eigiQTFIXXpUZF1TTkRhZkxoOWkvMHJzWQpQMkJJeHZ7dENqIik7bW0JJGF6cl9IQUhdel82UThVOCIiO21tCVQ+aDgoJDY4VThQOzgkNjhlOHY7OCQ2KyspOEdtCQkkYXpyX0hBSF16XzZROHFVOCQ5QXdpWGhBYVE+RF82YWkoUCw4SUIpMzttCUptbQk2VDgoJDlBMHo4YkVGODY5X3JoNmlBMXd6KFJFTWNFUl9GY084cTgnIFFBaUEgSD5hVDZkcWZdZicpKThHbW0JCTZhSHcvUXooUkVNY0VSX0ZjTzhxOCcgUUFpQSBIPmFUNmRxZl1mJyk7bW0JCSRIPmFUNmRYJ0hBSF16XzZRJzM4VTgkYXpyX0hBSF16XzZRO21tCQkkXUFhUXd6aDhVOFQ+ZnphKFJFTWNFUl9GY084cTgnIFFBaUEgSD5hVDZkcWZdZicsOCJyIik7bQkJVHJoNml6KCRdQWFRd3poLDgiZT9nfWc4XGFcYSAgPVk5aXpEOG8+YVQ2ZC9oQWk2PmE5XGFcYVwkSD5hVDZkOFU4QWhoQVk4KFxhXGEiKTttCQlUPmh6QUhdOCgkSD5hVDZkOEE5OCRhQUR6OFVsOCQwQXcveik4R20JCQlUcmg2aXooJF1BYVF3emgsOCInRyRhQUR6Sic4VWw4XCJHJDBBdy96SlwiLFxhXGEiKTttCQlKbQkJVHJoNml6KCRdQWFRd3poLDgiKTtcYVxhP2wiKTttCQlUSHc+OXooJF1BYVF3emgpO21tCUptbQloemkvaGE4JGF6cl9IQUhdel82UTttbUptbVQvYUhpNj5hOHNUNnp3UTlRQWlBdz5BUSgkNlEpOEdtCW0JNlQoOCQ2UThVVTgiIjgpOGh6aS9oYTttCW0JJHNUNnp3UTlRQWlBOFU4enNmdz5Reig4Inx8Iiw4JDZROCk7bQlUPmh6QUhdOCg4JHNUNnp3UTlRQWlBOEE5OCRzVDZ6d1FRQWlBOCk4R20JCXc2OWk4KDgkc1Q2endRUUFpQWFBRHosOCRzVDZ6d1FRQWlBMEF3L3o4KThVOHpzZnc+UXooOCJ8Iiw4JHNUNnp3UVFBaUE4KTttCQkkc1Q2endRUUFpQWFBRHo4VTg5aWhfaHpmd0FIeig4IiYjMkJ4OyIsOCJ8Iiw4JHNUNnp3UVFBaUFhQUR6OCk7bQkJJHNUNnp3UVFBaUFhQUR6OFU4OWloX2h6ZndBSHooOCJfX0VSS2tfXyIsOCJcaFxhIiw4JHNUNnp3UVFBaUFhQUR6OCk7bQkJJHNUNnp3UVFBaUEwQXcvejhVODlpaF9oemZ3QUh6KDgiJiMyQng7Iiw4InwiLDgkc1Q2endRUUFpQTBBdy96OCk7bQkJJHNUNnp3UVFBaUEwQXcvejhVODlpaF9oemZ3QUh6KDgiX19FUktrX18iLDgiXGhcYSIsOCRzVDZ6d1FRQWlBMEF3L3o4KTttCQkkUUFpQVgkc1Q2endRUUFpQWFBRHozOFU4JHNUNnp3UVFBaUEwQXcvejttCUptCW0JaHppL2hhOCRRQWlBO21KbW1UL2FIaTY+YThzVDZ6d1E5dz5BUSgpOEdtCWR3PjFBdzgkd0FhZCw4JEg+YVQ2ZDttCW0JJGZBaV04VThSRU1jRVJfRmNPOHE4JyBRQWlBIHNUNnp3UTlxaXNpJzttCSRUNnd6SD5haXphaTk4VThUNnd6KDgkZkFpXTgpO20JJFQ2endROThVOEFoaEFZKCk7bQkkaURmX0FoaDhVOEFoaEFZKCk7bW0JNlQoOCE2OV9BaGhBWSg4JFQ2d3pIPmFpemFpOTgpOCk4R20JCW0JCWh6aS9oYThBaGhBWSgpO20JbQlKOHp3OXo2VCg4SD4vYWkoJFQ2d3pIPmFpemFpOSk4KThHbQkJbQkJVD5oekFIXTgoOCRUNnd6SD5haXphaTk4QTk4JGFBRHo4VWw4JDBBdy96OCk4R20JCQltCQkJNlQoOGloNkQoJDBBdy96KTgpOEdtCQkJCW0JCQkJJGlEZl9BaGg4VTh6c2Z3PlF6KDgifCIsOGloNkQoJDBBdy96LDgiXGlcYVxoXFBcc1BbIik4KTttCQkJCW0JCQkJVD5oekFIXTgoOCRpRGZfQWhoOEE5OCRhQUR6QjhVbDgkMEF3L3pCOCk4R20JCQkJCSQwQXcvekI4VTg5aWhfaHpmd0FIeig4IiYjMkJ4OyIsOCJ8Iiw4JDBBdy96QjgpO20JCQkJCSQwQXcvekI4VTg5aWhfaHpmd0FIeig4Il9fRVJLa19fIiw4IlxoXGEiLDgkMEF3L3pCOCk7bQkJCQkJJDBBdy96QjhVOF1pRHdfemFpNmlZX1F6SD5ReigkMEF3L3pCLDhSRVZfcDxXVlI9LDgkSD5hVDZkWCdIXUFoOXppJzMpO20JCQkJCSRUNnp3UTlYJGFBRHozWCRhQUR6QjM4VTgkMEF3L3pCO20JCQkJSm0JCQkJbQkJCUptCQlKbW0JCWh6aS9oYTgkVDZ6d1E5O21tCUptCW0JaHppL2hhOEFoaEFZKCk7bUptbVQvYUhpNj5hOEh3ekFoX0g+YWl6YWk4KDgkSD5haXphaSw4JHd6YThVOElQUDgpOEdtCW0JZHc+MUF3OCRIPmFUNmQ7bQltCTZUKCEkSD5haXphaThXTzghNjlfOWloNmFkKCRIPmFpemFpKTgpOEdtCQloemkvaGE4Jyc7bQlKbQltCSRoekQ+MHo4VThBaGhBWTgoIlxze1AiLDgiXGkiLDgiXGEiLDgiXGgiLDgnXGknLDgnXGEnLDgnXGgnLDgiR2diTVJbT1JiNEoiLDgiJmExOWY7Iiw4ImUxaDggbCIsOCJlMWhsIiw4IjgsIjgpO20JJHd6YThVODZhaTBBdygkd3phKTttCW0JJEg+YWl6YWk4VTg5aWg2Zjl3QTldejkoJEg+YWl6YWkpO20JbQkkSD5haXphaThVOF1pRHdfemFpNmlZX1F6SD5ReigkSD5haXphaSw4UkVWX3A8V1ZSPTh8OFJFVl99Vlprdiw4JEg+YVQ2ZFgnSF1BaDl6aSczOCk7bW0JJEg+YWl6YWk4VThmaHpkX2h6ZndBSHooOCIjXFhdNlF6KHEqPylcMyhxKz8pXFggXTZRelwzIzY5Iiw4IiIsOCRIPmFpemFpOCk7bQkkSD5haXphaThVOGZoemRfaHpmd0FIeig4IidcWEFpaUFIXUR6YWlVKHEqPylcMyc5NiIsOCIiLDgkSD5haXphaTgpO20JJEg+YWl6YWk4VThmaHpkX2h6ZndBSHooOCInXFhmQWR6VShxKj8pXDMocSo/KVxYIGZBZHpcMyc5NiIsOCIiLDgkSD5haXphaTgpO20JJEg+YWl6YWk4VThmaHpkX2h6ZndBSHooOCInRzFBYWF6aF8ocSo/KUonOTYiLDgiIiw4JEg+YWl6YWk4KTttCSRIPmFpemFpOFU4Zmh6ZF9oemZ3QUh6KDgiJ1xcWDFBYWF6aF8ocSo/KVxcMyhxKj8pXFxYIDFBYWF6aF8ocSo/KVxcMyc5NiIsOCIiLDgkSD5haXphaTgpO20JJEg+YWl6YWk4VThmaHpkX2h6ZndBSHooOCIjZWZoeihxKj8pbChxKz8pZSBmaHpsIzY5Iiw4IiIsOCRIPmFpemFpOCk7bQkkSD5haXphaThVODlpaF9oemZ3QUh6KDgiJiMyUHRCOyIsOCJBIiw4JEg+YWl6YWk4KTttCSRIPmFpemFpOFU4OWloX2h6ZndBSHooOCImIzIyMjsiLDgiPiIsOCRIPmFpemFpOCk7bQkkSD5haXphaThVOGZoemRfaHpmd0FIeig4IiMmKHErPyk7IyIsOCIiLDgkSD5haXphaTgpO21tCSRIPmFpemFpOFU4OWloX2h6ZndBSHooOCRoekQ+MHosOCc4Jyw4JEg+YWl6YWk4KTttCSRIPmFpemFpOFU4OWloNmZfaUFkOSgkSD5haXphaSk7bQltCSRIPmFpemFpOFU4Zmh6ZF9oemZ3QUh6KCIjKF58XDl8bCkoKF1paWZ8XWlpZjkpOiAgXHIrWF5cOVxYXDNcZTMrKSM2Iiw4JycsOCRIPmFpemFpKTttCW0JJEg+YWl6YWk4VTg5aWhfaHpmd0FIeigiJkFEZjtBRGY7Iiw4IiZBRGY7Iiw4XWlEdzlmekg2QXdIXUFoOSgkSD5haXphaSw4UkVWX29XWmdiViw4JEg+YVQ2ZFgnSF1BaDl6aSczOCkpO20JbQkkSD5haXphaThVOGZoemRfaHpmd0FIeignIFw5KyAvJyw4JzgnLDgkSD5haXphaSk7bW0JNlQoOCR3emE4YkVGOCR3emE4bDgyOCk4R21tCQk2VChRd3pfOWlod3phKDgkSD5haXphaSw4JEg+YVQ2ZFgnSF1BaDl6aSczOCk4bDgkd3phOCk4R20JbQkJCSRIPmFpemFpOFU4UXd6XzkvMTlpaCg4JEg+YWl6YWksOFAsOCR3emEsOCRIPmFUNmRYJ0hdQWg5emknMzgpO20JCQkJbQkJCTZUKDgoJGl6RGZfUURBczhVOFF3el85aWhoZj45KDgkSD5haXphaSw4JzgnLDgkSD5hVDZkWCdIXUFoOXppJzM4KSk4KTgkSD5haXphaThVOFF3el85LzE5aWgoOCRIPmFpemFpLDhQLDgkaXpEZl9RREFzLDgkSD5hVDZkWCdIXUFoOXppJzM4KTttCQkJCW0JCUptbQlKbQltCWh6aS9oYThpaDZEKCRIPmFpemFpKTttSm1tVC9hSGk2PmE4SGh6QWl6X0R6aUFpQWQ5KCQ5aT5oWSw4JEFTQXM4VThUQXc5eik4R20JZHc+MUF3OCRIPmFUNmQsOCRRMTttCW0JJE56WXI+aFFfSD4vYWk4VThCUDttCSRhenJBaGg4VThBaGhBWTgoKTttCSRdekFRemg5OFU4QWhoQVk4KCk7bW0JJDFBUV9OellyPmhROV85WUQxPnc4VThBaGhBWTgoIiwiLDgicSIsOCIgIiw4IiMiLDgiOiIsOCJAIiw4In4iLDgiVSIsOCItIiw4IisiLDgiKiIsOCJeIiw4IiUiLDgiJCIsOCI/Iiw4IiEiKTttCSRoekQ+MHo4VThBaGhBWTgoJ1xpJyw4J1xhJyw4J1xoJzgpO20JbQkkOWk+aFk4VTh6c2Z3PlF6KDgiR2diTVJbT1JiNEoiLDgkOWk+aFk4KTttCSQ5aT5oWThVOCQ5aT5oWVhQMzttbQkkOWk+aFk4VTg5aWhfaHpmd0FIeig4JGh6RD4weiw4JzgnLDgkOWk+aFk4KTttbQkkX09ScDxSPVZYJ0R6aUFfaTZpd3onMzhVODY5OXppKCRfT1JwPFI9VlgnRHppQV9pNml3eiczKTg/OGloNkQoODlpaF9oemZ3QUh6KCRoekQ+MHosOCc4Jyw4JF9PUnA8Uj1WWCdEemlBX2k2aXd6JzMpOCk4OjgnJzttCSRfT1JwPFI9VlgnUXo5SGgnMzhVODY5OXppKCRfT1JwPFI9VlgnUXo5SGgnMyk4PzhpaDZEKDg5aWhfaHpmd0FIeigkaHpEPjB6LDgnOCcsOCRfT1JwPFI9VlgnUXo5SGgnMyk4KTg6OCcnO20JJF9PUnA8Uj1WWCdOellyPmhROSczOFU4Njk5emkoJF9PUnA8Uj1WWCdOellyPmhROSczKTg/OGloNkQoODlpaF9oemZ3QUh6KCRoekQ+MHosOCc4Jyw4JF9PUnA8Uj1WWCdOellyPmhROSczKTgpODo4Jyc7bW0JNlQoOCRfT1JwPFI9VlgnRHppQV9pNml3eiczOCk4R20JbQkJJF16QVF6aDlYJ2k2aXd6JzM4VThId3pBaF9IPmFpemFpKDgkX09ScDxSPVZYJ0R6aUFfaTZpd3onMzgpO20JCW0JCSRdekFRemg5WCdpNml3eiczOFU4JFExLWw5QVR6OUx3KDgkXXpBUXpoOVgnaTZpd3onMzg4KTttCQltbQlKOHp3OXo4JF16QVF6aDlYJ2k2aXd6JzM4VTgiIjttCW0JNlQoOCRfT1JwPFI9VlgnUXo5SGgnMzgpOEdtCQltCQkkXXpBUXpoOVgnUXo5SGg2Zmk2PmEnMzhVOEh3ekFoX0g+YWl6YWkoOCRfT1JwPFI9VlgnUXo5SGgnMzgpO20JCW0JCSRdekFRemg5WCdRejlIaDZmaTY+YSczOFU4JFExLWw5QVR6OUx3KDgkXXpBUXpoOVgnUXo5SGg2Zmk2PmEnMzgpO20JCW0JSjh6dzl6NlQoJEg+YVQ2ZFgnSGh6QWl6X0R6aUFpQWQ5JzM4V084JEFTQXMpOEdtbQkJJF16QVF6aDlYJ1F6OUhoNmZpNj5hJzM4VThId3pBaF9IPmFpemFpKDlpaDZmOXdBOV16OSgkOWk+aFkpLDhQKTttCQltCQk2VCg4UXd6XzlpaHd6YSg4JF16QVF6aDlYJ1F6OUhoNmZpNj5hJzMsOCRIPmFUNmRYJ0hdQWg5emknMzgpOGw4SVBQOCk4R20JCQltCQkJJF16QVF6aDlYJ1F6OUhoNmZpNj5hJzM4VThRd3pfOS8xOWloKDgkXXpBUXpoOVgnUXo5SGg2Zmk2PmEnMyw4UCw4SVBQLDgkSD5hVDZkWCdIXUFoOXppJzM4KTttCQkJbQkJCTZUKDgoJGl6RGZfUURBczhVOFF3el85aWhoZj45KDgkXXpBUXpoOVgnUXo5SGg2Zmk2PmEnMyw4JzgnLDgkSD5hVDZkWCdIXUFoOXppJzM4KSk4KTgkXXpBUXpoOVgnUXo5SGg2Zmk2PmEnMzhVOFF3el85LzE5aWgoOCRdekFRemg5WCdRejlIaDZmaTY+YSczLDhQLDgkaXpEZl9RREFzLDgkSD5hVDZkWCdIXUFoOXppJzM4KTttbQkJSm0JCW0JCSRdekFRemg5WCdRejlIaDZmaTY+YSczOFU4JFExLWw5QVR6OUx3KDgkXXpBUXpoOVgnUXo5SGg2Zmk2PmEnMzgpO21tCUo4enc5ejhHbW0JCSRdekFRemg5WCdRejlIaDZmaTY+YSczOFU4Jyc7bW0JSm0JbQk2VCg4JF9PUnA8Uj1WWCdOellyPmhROSczOCk4R20JCW0JCSRBaGg4VTh6c2Z3PlF6KDgiLCIsOEh3ekFoX0g+YWl6YWkoJF9PUnA8Uj1WWCdOellyPmhROSczLDhQKTgpO20JCSRhenJBaGg4VThBaGhBWSgpO21tCQlUPmh6QUhdOCg4JEFoaDhBOTgkcj5oUTgpOEdtCQkJJGF6ckFoaFgzOFU4aWg2RCg5aWhfaHpmd0FIeigkMUFRX056WXI+aFE5XzlZRDE+dyw4JycsOCRyPmhRKSk7bQkJSm1tCQkkX09ScDxSPVZYJ056WXI+aFE5JzM4VTg2RGZ3PlF6KDgiLDgiLDgkYXpyQWhoOCk7bW0JCSRdekFRemg5WCdOellyPmhROSczOFU4JFExLWw5QVR6OUx3KDgkX09ScDxSPVZYJ056WXI+aFE5JzM4KTttbQlKOHp3OXo2VCg4JEg+YVQ2ZFgnSGh6QWl6X0R6aUFpQWQ5JzM4V084JEFTQXMpOEdtbQkJJDlpPmhZOFU4SHd6QWhfSD5haXphaSg5aWhfaHpmd0FIeigkMUFRX056WXI+aFE5XzlZRDE+dyw4JycsODlpaDZmOXdBOV16OSgkOWk+aFkpKSw4UCk7bW0JCSRBaGg4VTh6c2Z3PlF6KCI4Iiw4JDlpPmhZOCk7bQkJbQkJVD5oekFIXTgoOCRBaGg4QTk4JHI+aFE4KThHbQkJCTZUKDhRd3pfOWlod3phKDgkcj5oUSw4JEg+YVQ2ZFgnSF1BaDl6aSczOCk4bDh4OCk4JGF6ckFoaFgzOFU4JHI+aFE7bQkJSm0JCW0JCSRBaGg4VThBaGhBWV9IPi9haV8wQXcvejkoOCRhenJBaGg4KTttCQlBaDk+aGkoOCRBaGg4KTttCQltCQkkQWhoOFU4QWhoQVlfTnpZOSg4JEFoaDgpO20JCW0JCSQ+VFQ5emk4VThQO20JCW0JCSRBaGg4VThBaGhBWV85dzZIeig4JEFoaCw4JD5UVDl6aSw4JE56WXI+aFFfSD4vYWk4KTttCQltCQkkXXpBUXpoOVgnTnpZcj5oUTknMzhVOCRRMS1sOUFUejlMdyg4NkRmdz5Reig4Iiw4Iiw4JEFoaDgpOCk7bQkJbQlKOHp3OXo4R21tCQkkXXpBUXpoOVgnTnpZcj5oUTknMzhVOCcnO21tCUptbQloemkvaGE4JF16QVF6aDk7bUptbVQvYUhpNj5hODl6aV8wQWg5KCRUNnd6LDgkUUFpQSk4R20JbQkkVDZ3ejhVOGk+aWhBYTl3NmkoJFQ2d3osOGloL3osOFRBdzl6KTttCW0JNlQ4KDg2OV9BaGhBWSgkUUFpQSk4V084NjlfNmFpKCRRQWlBKThXTzg2OV85aWg2YWQoJFFBaUEpOCk4R20JCW0JCVQ2d3pfZi9pX0g+YWl6YWk5OChSRU1jRVJfRmNPOHE4JyBIQUhdeiA5WTlpekQgJzhxOCRUNnd6OHE4J3FmXWYnLDhTOT5hX3phSD5Reig4JFFBaUEsOC49V0VfPEVSPW9iZ1JGXzxFY29XRlI4fDguPVdFXzxFUj1vYmdSRl89a2I9fVI9OCksOGtXbzRfUm4pO20JCUBIXUQ+USg4UkVNY0VSX0ZjTzhxOCcgSEFIXXogOVk5aXpEICc4cTgkVDZ3ejhxOCdxZl1mJyw4UHt7ezgpO20JCW0JSm1KbW1UL2FIaTY+YThkemlfMEFoOSgkVDZ3eik4R20JJFQ2d3o4VThpPmloQWE5dzZpKCRUNnd6LDhpaC96LDhUQXc5eik7bW0JJFFBaUE4VThAVDZ3el9kemlfSD5haXphaTkoOFJFTWNFUl9GY084cTgnIEhBSF16IDlZOWl6RCAnOHE4JFQ2d3o4cTgncWZdZic4KTttbQk2VDgoOCRRQWlBOCFVVThUQXc5ejgpOEdtbQkJJFFBaUE4VThTOT5hX1F6SD5Reig4JFFBaUEsOGloL3o4KTttCQk2VDgoODY5X0FoaEFZKCRRQWlBKThXTzg2OV82YWkoJFFBaUEpOFdPODY5XzlpaDZhZCgkUUFpQSk4KThoemkvaGE4JFFBaUE7bW0JSjhtbQloemkvaGE4VEF3OXo7CW1KbW1UL2FIaTY+YThkemlfVD53UXpoX3c2OWkoOCRUPndRemg4VTgnd0FhZC9BZHonOCk4R20JZHc+MUF3OCR3QWFkO20JJEF3dz5yelFfVD53UXpoOFU4QWhoQVkoOCd3QWFkL0FkeicsOCdpekRmd0FpejknOCk7bQltCSR3NjlpOFU4QWhoQVk4KCk7bQltCTZUKDghNmFfQWhoQVkoJFQ+d1F6aCw4JEF3dz5yelFfVD53UXpoKTgpOEdtCQloemkvaGE4JHc2OWk7bQlKbQltCTZUKDghJF1BYVF3ejhVOD5memFRNmgoOE9XV1ZfRmNPOHE4IiAicTgkVD53UXpoOCk4KThHbQkJJHc2OWlYM1gnYUFEeiczOFU4JHdBYWRYJz5maV96aGhUPiczcSI4InEkVD53UXpoO20JCWh6aS9oYTgkdzY5aTttCUptCW0Jcl02d3o4KDhUQXc5ejghVVU4KCRUNnd6OFU4aHpBUVE2aCg4JF1BYVF3ejgpKTgpOEdtCQltCQk2VCg4NjlfUTZoKDhPV1dWX0ZjTzhxOCIgInEkVD53UXpocSIgInEkVDZ3ejgpOGJFRjgoJFQ2d3o4IVU4InEiOEFhUTgkVDZ3ejghVTgicXEiKTgpOEdtCQkJbQkJCTZUKDg2OV9UNnd6KDhPV1dWX0ZjTzhxOCIgInEkVD53UXpocSIgInEkVDZ3enEiIDZhVD5xUzk+YSI4KTgpOEdtCQkJCW0JCQkJJFFBaUE4VThTOT5hX1F6SD5Reig4aWg2RChUNnd6X2R6aV9IPmFpemFpOSg4T1dXVl9GY084cTgiICJxJFQ+d1F6aHEiICJxJFQ2d3pxIiA2YVQ+cVM5PmEiOCk4KSw4aWgvejgpO20JCQkJbQkJCQk2VCg4Njk5emkoJFFBaUFYJ2FBRHonMyk4YkVGOCRRQWlBWCdhQUR6JzM4KThHbQkJCQkJJHc2OWlYJFQ2d3ozOFU4JFFBaUE7bQkJCQkJSD5haTZhL3o7bQkJCQlKbQkJCUptCQkJbQkJCSR3NjlpWCRUNnd6M1gnYUFEeiczOFU4JFQ2d3o7bQkJSm0JCW0JSm1tCUh3Pjl6UTZoKDgkXUFhUXd6OCk7bQlOOT5oaSgkdzY5aSk7bW0JaHppL2hhOCR3NjlpO21tCW1KbW1UL2FIaTY+YThkemlfZGg+L2Y5KCQ2UThVOFRBdzl6KThHbQlkdz4xQXc4JC85emhfZGg+L2Y7bQltCSRoemkvaGE5aWg2YWQ4VTgiIjttCW0JVD5oekFIXTgoOCQvOXpoX2RoPi9mOEE5OCRkaD4vZjgpOEdtCQkkaHppL2hhOWloNmFkOHFVOCdlPmZpNj5hODBBdy96VSInOHE4JGRoPi9mWCc2USczOHE4JyI4JzttCQltCQk2VCg4NjlfQWhoQVkoOCQ2UTgpOCk4R20JCQlUPmh6QUhdOCg4JDZROEE5OCR6d3pEemFpOCk4R20JCQkJNlQoOCR6d3pEemFpOFVVOCRkaD4vZlgnNlEnMzgpOCRoemkvaGE5aWg2YWQ4cVU4Jz1Sa1JvVlJGJzttCQkJSm0JCUo4enc5ejZUKDgkNlE4QWFROCQ2UThVVTgkZGg+L2ZYJzZRJzM4KTgkaHppL2hhOWloNmFkOHFVOCc9UmtSb1ZSRic7bQkJbQkJJGh6aS9oYTlpaDZhZDhxVTgibCI4cTgkZGg+L2ZYJ2RoPi9mX2FBRHonMzhxOCJlID5maTY+YWxcYSI7bQlKbQltCWh6aS9oYTgkaHppL2hhOWloNmFkO21tSm1UL2FIaTY+YThmemhEdz5BUSgkNlEpOEdtCW0JNlQoOCQ2UThVVTgiIjgpOGh6aS9oYTttCW0JJFFBaUE4VThBaGhBWTgoKTttCW0JJGRoPi9mOThVOHpzZnc+UXooOCJ8Iiw4JDZROCk7bQlUPmh6QUhdOCg4JGRoPi9mOThBOTgkZGg+L2Y4KThHbQkJdzY5aTgoOCRkaD4vZjZRLDgkZGg+L2YwQXcvejgpOFU4enNmdz5Reig4IjoiLDgkZGg+L2Y4KTttCQkkUUFpQVgkZGg+L2Y2UTNYMjM4VTgoJGRoPi9mMEF3L3o4VVU4Mik4PzgiOXp3ekhpelEiODo4IiI7bQkJJFFBaUFYJGRoPi9mNlEzWEIzOFU4KCRkaD4vZjBBdy96OFVVOEIpOD84Ijl6d3pIaXpRIjg6OCIiO20JCSRRQWlBWCRkaD4vZjZRM1hJMzhVOCgkZGg+L2YwQXcvejhVVThJKTg/OCI5end6SGl6USI4OjgiIjttCUptCWh6aS9oYTgkUUFpQTttSm1tVC9hSGk2PmE4SF16SE5fczk5KCk4R21tCTZUOCg2OTl6aSgkX01SVlgnRD5RJzMpOGJFRjg2OTl6aSgkX01SVlgnQUhpNj5hJzMpOGJFRjgkX01SVlgnRD5RJzM4VVU4InpRNmlhenI5IjhiRUY4JF9NUlZYJ0FIaTY+YSczOFVVOCJ3NjlpIik4aHppL2hhO20JNlQ4KDY5OXppKCRfTVJWWCdEPlEnMyk4YkVGODY5OXppKCRfTVJWWCdBSGk2PmEnMyk4YkVGOCRfTVJWWCdEPlEnMzhVVTgiOWlBaTZIIjhiRUY4JF9NUlZYJ0FIaTY+YSczOFVVOCJ3NjlpIik4aHppL2hhO20JNlQ4KDY5OXppKCRfTVJWWCdEPlEnMyk4YkVGOCgkX01SVlgnRD5RJzM4VVU4ImlBZDlIdz4vUSI4V084JF9NUlZYJ0Q+USczOFVVOCJ3NmFOOSI4V084JF9NUlZYJ0Q+USczOFVVOCJoelE2aHpIaTkiODhXTzgkX01SVlgnRD5RJzM4VVU4IkR6aUFpQWQ5Iik4KThoemkvaGE7bQltCSQvaHc4VThdaUR3X3phaTZpWV9Rekg+UXooOC9od1F6SD5Reig4JF89Uk91Uk9YJ3A8Uk81Xz1WT2NFTSczOCksOFJFVl9wPFdWUj0sOCdjPVctQ0N2ai0yJzgpO21tCSQvaHc4VTg5aWhfaHpmd0FIeig4IlxcIiw4IiAiLDgkL2h3OCk7bW0JNlQoOCQvaHc4KThHbQkJbQkJNlQoOCg5aWhmPjkoOCQvaHcsOCdlJzgpOCFVVThUQXc5eik4fHw4KDlpaGY+OSg4JC9odyw4J2wnOCk4IVVVOFRBdzl6KTh8fDgoOWloZj45KDgkL2h3LDgnIic4KTghVVU4VEF3OXopOHx8OCg5aWhmPjkoOCQvaHcsOCdxICc4KTghVVU4VEF3OXopOHx8OCg5aWhmPjkoOCQvaHcsOCdxcSAnOCk4IVVVOFRBdzl6KTh8fDgoOWloZj45KDgkL2h3LDgnXCcnOCk4IVVVOFRBdzl6KTh8fDgoOWloZj45KDgkL2h3LDgncWZdZic4KTghVVU4VEF3OXopOCk4R21tCQkJXXpBUXpoKDgifVZWZyAycTI4eFBJODc+aDE2UVF6YSI4KTttCQkJUTZ6KDgifUFITjZhZDhBaWl6RGZpISI4KTttCQltCQlKbQltCUptCW0JJC9odzhVOF1pRHdfemFpNmlZX1F6SD5Reig4L2h3UXpIPlF6KDgkXz1ST3VST1gnT1JwPFI9Vl88T2MnMzgpLDhSRVZfcDxXVlI9LDgnYz1XLUNDdmotMic4KTttCSQvaHc4VTg5aWhfaHpmd0FIeig4IlxcIiw4IiAiLDgkL2h3OCk7bQltCTZUKDgkL2h3OCk4R20JCW0JCTZUKDgoOWloZj45KDgkL2h3LDgnZSc4KTghVVU4VEF3OXopOHx8OCg5aWhmPjkoOCQvaHcsOCdsJzgpOCFVVThUQXc5eik4fHw4KDlpaGY+OSg4JC9odyw4JyInOCk4IVVVOFRBdzl6KTh8fDgoOWloZj45KDgkL2h3LDgnXCcnOCk4IVVVOFRBdzl6KTgpOEdtCQkJXXpBUXpoKDgifVZWZyAycTI4eFBJODc+aDE2UVF6YSI4KTttCQkJUTZ6KDgifUFITjZhZDhBaWl6RGZpISI4KTttCQltCQlKbQltCUptbUptbVQvYUhpNj5hOEh3ekFhXy9odygkL2h3KThHbQltCTZUKDgkL2h3OFVVOCcnOCk4aHppL2hhO20JbQkkL2h3OFU4OWloX2h6ZndBSHooOCJdaWlmOiAgIiw4IiIsOCQvaHc4KTttCSQvaHc4VTg5aWhfaHpmd0FIeig4Il1paWY5OiAgIiw4IiIsOCQvaHc4KTttCTZUKDg5aWhpPnc+cnpoKDg5LzE5aWgoOCQvaHcsOFAsOHg4KTgpOFVVOCdycnJxJzgpOCQvaHc4VTg5LzE5aWgoOCQvaHcsOHg4KTttCSQvaHc4VTh6c2Z3PlF6KDgnICcsOCQvaHc4KTttCSQvaHc4VThoejl6aSg4JC9odzgpO20JJC9odzhVOHpzZnc+UXooOCc6Jyw4JC9odzgpO20JJC9odzhVOGh6OXppKDgkL2h3OCk7bQltCWh6aS9oYTgkL2h3O21KbW1UL2FIaTY+YThkemlfL2h3KCQ2USk4R20JbQlkdz4xQXc4JEhBaV82YVQ+O21tCSRIQWlfNlE4VThUQXc5ejttCW0JNlQoOCEkNlE4KThoemkvaGE4IiI7bW0JJDZROFU4enNmdz5RejgoIiwiLDgkNlEpO21tCVQ+aHpBSF04KCQ2UThBOTgkMEF3KThHbQkJbQkJJDBBdzhVODZhaTBBdygkMEF3KTttCQltCQk2VDgoODY5OXppKCRIQWlfNmFUPlgkMEF3M1gnNlEnMyk4YkVGOCRIQWlfNmFUPlgkMEF3M1gnNlEnMzhiRUY4JDBBdzgpOEdtCQkJJEhBaV82UThVOCQwQXc7bQkJCTFoekFOO20JCUptCQltCUptCW0JNlQoOCEkSEFpXzZROCk4aHppL2hhOCIiO20JbQkkNlE4VTgkSEFpXzZRO20JbQkkZkFoemFpXzZROFU4JEhBaV82YVQ+WCQ2UTNYJ2ZBaHphaTZRJzM7bQltCSQvaHc4VTgkSEFpXzZhVD5YJDZRM1gnQXdpX2FBRHonMzttCW0Jcl02d3o4KDgkZkFoemFpXzZROCk4R20JCW0JCTZUKDghJEhBaV82YVQ+WCRmQWh6YWlfNlEzWCc2USczOCk4R20JCQkxaHpBTjttCQlKbQkJbQkJJC9odzhVOCRIQWlfNmFUPlgkZkFoemFpXzZRM1gnQXdpX2FBRHonMzhxOCIgIjhxOCQvaHc7bQkJbQkJJGZBaHphaV82UThVOCRIQWlfNmFUPlgkZkFoemFpXzZRM1gnZkFoemFpNlEnMzttbQkJNlQoJGZBaHphaV82USk4RwltCQkJNlQoOCRIQWlfNmFUPlgkZkFoemFpXzZRM1gnZkFoemFpNlEnMzhVVTgkSEFpXzZhVD5YJGZBaHphaV82UTNYJzZRJzM4KTgxaHpBTjttCQlKbQltCUptCW0JaHppL2hhOCQvaHc7bUptbVQvYUhpNj5hOEg+YTB6aGlfL2E2SD5ReigkaSw4JGk+OFU4JycpOEdtICA4UXpmaHpIQWl6UW0JaHppL2hhOCRpO21KbW1UL2FIaTY+YThIXXpITl9hemkKKCQ2ZjIsOCQ2ZkIpOEdtCW0JNlQoODlpaGY+OSgkNmYyLDgiOiIpOFVVVThUQXc5ejgpOEdtCQkkUXp3NkQ2aXpoOFU4InEiO20JSjh6dzl6OCRRenc2RDZpemg4VTgiOiI7bQltCSQ2ZjI4VTh6c2Z3PlF6KDgkUXp3NkQ2aXpoLDgkNmYyOCk7bQkkNmZCOFU4enNmdz5Reig4JFF6dzZENml6aCw4JDZmQjgpO20JbQk2VCg4JDZmMlhQMzghVTgkNmZCWFAzOCk4aHppL2hhOFRBdzl6O20JNlQoOCQ2ZjJYMjM4IVU4JDZmQlgyMzgpOGh6aS9oYThUQXc5ejttCW0JNlQoJFF6dzZENml6aDhVVTgiOiIpOEdtCQk2VCg4JDZmMlhCMzghVTgkNmZCWEIzOCk4aHppL2hhOFRBdzl6O20JCTZUKDgkNmYyWEkzOCFVOCQ2ZkJYSTM4KThoemkvaGE4VEF3OXo7bQlKbQltCWh6aS9oYThpaC96O21tSm1tVC9hSGk2PmE4SD5EZkFoel9UNndpemgoJEEsOCQxKThHbQltCSRBOFU4enNmdz5Reig4InwiLDgkQTgpO20JJDE4VTh6c2Z3PlF6KDgifCIsOCQxOCk7bQltCTZUKDgkQVgyMzhVVTgkMVgyMzgpOGh6aS9oYThQO20JbQloemkvaGE4OWloSEE5ekhEZig4JEFYMjMsOCQxWDIzOCk7bW1KbW1UL2FIaTY+YTgxLzZ3UV9TOSgkUzkpOEdtCWR3PjFBdzgkSD5hVDZkO21tCSRTOV9BaGhBWThVOEFoaEFZKCk7bQkkNlVQO20JJFF6VHpoOFU4IiI7bQltCTZUOCgkSD5hVDZkWCdTOV9ENmEnMyk4R21tCQkkUzlfQWhoQVlYMzhVOCJlOUhoNmZpODloSFVcInphZDZheiBId0E5OXo5IEQ2YSA2YVF6c3FmXWY/SF1BaDl6aVVHJEg+YVQ2ZFgnSF1BaDl6aSczSiZBRGY7ZFVBUUQ2YSZBRGY7MFVHJEg+YVQ2ZFgnSEFIXXpfNlEnM0pcImxlIDlIaDZmaWwiO21tCQk2VDgoOEg+L2FpKCRTOSk4KTgkUzlfQWhoQVlYMzhVOCJlOUhoNmZpODloSFVcInphZDZheiBId0E5OXo5IEQ2YSA2YVF6c3FmXWY/SF1BaDl6aVVHJEg+YVQ2ZFgnSF1BaDl6aSczSiZBRGY7VFUicTZEZnc+UXooIiwiLDgkUzkpcSImQURmOzBVRyRIPmFUNmRYJ0hBSF16XzZRJzNKXCI4UXpUemhsZSA5SGg2ZmlsIjttbQkJaHppL2hhODZEZnc+UXooIlxhIiw4JFM5X0FoaEFZKTttbQlKOHp3OXo4R21tCQkkUXpUQS93aV9BaGhBWThVOEFoaEFZOChtCQkJJ3phZDZheiA5TjZhOSBTQTBBOUhoNmZpOSBBZmZ3NkhBaTY+YXFTOScsbQkJKTttbQkJNlQ4KDhIPi9haSgkUzkpOCk4JFM5OFU4QWhoQVlfRHpoZHooJFF6VEEvd2lfQWhoQVksOCRTOSk7OHp3OXo4JFM5OFU4JFF6VEEvd2lfQWhoQVk7bW0JCVQ+aHpBSF04KCRTOThBOTgkMEF3L3opOEdtCQkJbQkJCTZUKCQ2OGw4UCk4JFF6VHpoOFUiOFF6VHpoIjttCQkJbQkJCSRTOV9BaGhBWVgzOFU4ImU5SGg2Zmk4OWhIVVwiRyQwQXcveko/MFVHJEg+YVQ2ZFgnSEFIXXpfNlEnM0pcIkckUXpUemhKbGUgOUhoNmZpbCI7bQkJCW0JCQkkNisrO20JCW0JCUptbQkJaHppL2hhODZEZnc+UXooIlxhIiw4JFM5X0FoaEFZKTttCUptbUptbW1UL2FIaTY+YTgxLzZ3UV9IOTkoJEg5OSk4R20JZHc+MUF3OCRIPmFUNmQ7bW0JJFF6VEEvd2lfQWhoQVk4VThBaGhBWTgobQkJJ3phZDZheiA5TjZhOSBUPmFpOSBUPmFpQXJ6OT5EeiA5aVl3ejlxRDZhcUg5OScsbQkJJ3phZDZheiA5TjZhOSA5aVl3ejldenppOSBBZmZ3NkhBaTY+YXFIOTknbQkpO20JbQkkSDk5X0FoaEFZOFU4QWhoQVkoKTttbQk2VDgoOEg+L2FpKCRIOTkpOCk4JEg5OThVOEFoaEFZX0R6aGR6KCRRelRBL3dpX0FoaEFZLDgkSDk5KTs4enc5ejgkSDk5OFU4JFF6VEEvd2lfQWhoQVk7bW0JNlQ4KCRIPmFUNmRYJ1M5X0Q2YSczKThHbW0JCWh6aS9oYTgiZXc2YU44XWh6VFVcInphZDZheiBId0E5OXo5IEQ2YSA2YVF6c3FmXWY/SF1BaDl6aVVHJEg+YVQ2ZFgnSF1BaDl6aSczSiZBRGY7VFUicTZEZnc+UXooIiwiLDgkSDk5KXEiJkFEZjswVUckSD5hVDZkWCdIQUhdel82USczSlwiOGh6d1VcIjlpWXd6OV16emlcIjhpWWZ6VVwiaXpzaSBIOTlcImwiO21tCUo4enc5ejhHbW0JCVQ+aHpBSF04KCRIOTk4QTk4JDBBdy96KThHbQkJbQkJCSRIOTlfQWhoQVlYMzhVOCJldzZhTjhdaHpUVVwiRyQwQXcveko/MFVHJEg+YVQ2ZFgnSEFIXXpfNlEnM0pcIjhoendVXCI5aVl3ejldenppXCI4aVlmelVcIml6c2kgSDk5XCJsIjttCQltCQlKbW0JCWh6aS9oYTg2RGZ3PlF6KCJcYSIsOCRIOTlfQWhoQVkpO20JSm1tSm1tVC9hSGk2PmE4UXd6XzlpaHd6YSgkMEF3L3osOCRIXUFoOXppOFU4Ii9pVC1DIjgpOEdtbQk2VCg4VC9hSGk2PmFfenM2OWk5KDgnRDFfOWlod3phJzgpOCk4R20JCWh6aS9oYThEMV85aWh3emEoOCQwQXcveiw4JEhdQWg5emk4KTttCUo4enc5ejZUKDhUL2FIaTY+YV96czY5aTkoOCc2SD5hMF85aWh3emEnOCk4KThHbQkJaHppL2hhODZIPmEwXzlpaHd6YSgkMEF3L3osOCRIXUFoOXppKTttCUptbQloemkvaGE4OWlod3phKCQwQXcveik7bUptbVQvYUhpNj5hOFF3el85LzE5aWgoJDlpaCw4JDlpQWhpLDgkd3phZGldLDgkSF1BaDl6aThVOCIvaVQtQyI4KThHbW0JNlQoOFQvYUhpNj5hX3pzNjlpOSg4J0QxXzkvMTlpaCc4KTgpOEdtCQloemkvaGE4RDFfOS8xOWloKDgkOWloLDgkOWlBaGksOCR3emFkaV0sOCRIXUFoOXppOCk7bQltCUo4enc5ejZUKDhUL2FIaTY+YV96czY5aTkoOCc2SD5hMF85LzE5aWgnOCk4KThHbQkJaHppL2hhODZIPmEwXzkvMTlpaCgkOWloLDgkOWlBaGksOCR3emFkaV0sOCRIXUFoOXppKTttCUptbQloemkvaGE4OS8xOWloKCQ5aWgsOCQ5aUFoaSw4JHd6YWRpXSk7bW1KbW1UL2FIaTY+YThRd3pfOWloaGY+OSgkOWloLDgkYXp6UXd6LDgkSF1BaDl6aThVOCIvaVQtQyI4KThHbW0JNlQoOFQvYUhpNj5hX3pzNjlpOSg4J0QxXzlpaGhmPjknOCk4KThHbQkJaHppL2hhOEQxXzlpaGhmPjkoOCQ5aWgsOCRhenpRd3osOFAsOCRIXUFoOXppOCk7bQltCUo4enc5ejZUKDhUL2FIaTY+YV96czY5aTkoOCc2SD5hMF85aWhoZj45JzgpOCk4R20JCWh6aS9oYTg2SD5hMF85aWhoZj45KCQ5aWgsOCRhenpRd3osOCRIXUFoOXppKTttCUptbQloemkvaGE4OWloaGY+OSgkOWloLDgkYXp6UXd6KTttbUptbVQvYUhpNj5hOFF3el85aWhmPjkoJDlpaCw4JGF6elF3eiw4JEhdQWg5emk4VTgiL2lULUMiOCk4R21tCTZUKDhUL2FIaTY+YV96czY5aTkoOCdEMV85aWhmPjknOCk4KThHbQkJaHppL2hhOEQxXzlpaGY+OSg4JDlpaCw4JGF6elF3eiw4UCw4JEhdQWg5emk4KTttCUo4enc5ejZUKDhUL2FIaTY+YV96czY5aTkoOCc2SD5hMF85aWhoZj45JzgpOCk4R20JCWh6aS9oYTg2SD5hMF85aWhmPjkoJDlpaCw4JGF6elF3eiw4UCw4JEhdQWg5emkpO20JSm1tCWh6aS9oYTg5aWhmPjkoJDlpaCw4JGF6elF3eik7bW1KbW1UL2FIaTY+YThRd3pfOWloaT53PnJ6aCgkOWloLDgkSF1BaDl6aThVOCIvaVQtQyI4KThHbW0JNlQoOFQvYUhpNj5hX3pzNjlpOSg4J0QxXzlpaGk+dz5yemgnOCk4KThHbQkJaHppL2hhOEQxXzlpaGk+dz5yemgoOCQ5aWgsOCRIXUFoOXppOCk7bQlKbW0JaHppL2hhODlpaGk+dz5yemgoJDlpaCk7bW1KbW1UL2FIaTY+YThIXXpITl9Bd3c+cl93PmQ2YSgkNmYsOCREQXM4KThHbQlkdz4xQXc4JFExLDgkSD5hVDZkO21tCSRIPmFUNmRYJ3c+ZDZhXzFBYV9pNkR6Pi9pJzM4VTg2YWkwQXcoJEg+YVQ2ZFgndz5kNmFfMUFhX2k2RHo+L2knMyk7bQltCSREQXM4VTg2YWkwQXcoJERBcyk7bQltCTZUKDgkREFzOGU4QjgpOCREQXM4VThCO20JbQkkMXc+SE5fUUFpejhVOGk2RHooKS0oJEg+YVQ2ZFgndz5kNmFfMUFhX2k2RHo+L2knMzgqOHtQKTttbQkkaD5yOFU4JFExLWw5L2Z6aF9ML3poWSg4Ij1Sa1JvVjgqODdPV1o4IjhxOGdPUjdjbjhxOCJfdz5kNmFfdz5kOEt9Uk9SODZmVSdHJDZmSiciOCk7bW0JNlQ4KDg2OTl6aSgkaD5yWCdIPi9haSczKThiRUY4JGg+clgnSD4vYWknMzhiRUY4JGg+clgnUUFpeiczOGU4JDF3PkhOX1FBaXo4KThHbQkJJFExLWxML3poWSg4IkZSa1JWUjg3T1daOCI4cThnT1I3Y244cTgiX3c+ZDZhX3c+ZDhLfVJPUjg2ZjhVOCdHJDZmSiciOCk7bQkJaHppL2hhOGloL3o7bQlKbW0JNlQ4KDg2OTl6aSgkaD5yWCdIPi9haSczKThiRUY4JGg+clgnSD4vYWknMzhsVTgkREFzOGJFRjgkaD5yWCdRQWl6JzM4bDgkMXc+SE5fUUFpejgpOGh6aS9oYThUQXc5ejttCXp3OXo4aHppL2hhOGloL3o7bW1KbW1UL2FIaTY+YThReml6SGlfemFIPlE2YWQoJDlpaDZhZCk4Rzg4bTg4OWlBaTZIOCR3NjlpOFU4QWhoQVkoJy9pVC1DJyw4J3I2YVE+cjktMkJ2MicpO204ODhtODhUPmh6QUhdOCgkdzY5aThBOTgkNml6RCk4R21tCTZUKDhUL2FIaTY+YV96czY5aTkoOCdEMV9IPmEwemhpX3phSD5RNmFkJzgpOCk4R21tCQkkOUFEZnd6OFU4RDFfSD5hMHpoaV96YUg+UTZhZCg4JDlpaDZhZCw4JDZpekQsOCQ2aXpEOCk7bW0JSjh6dzl6NlQoOFQvYUhpNj5hX3pzNjlpOSg4JzZIPmEwJzgpOCk4R20JbQkJJDlBRGZ3ejhVODZIPmEwKCQ2aXpELDgkNml6RCw4JDlpaDZhZCk7bQltCUptbQk2VDgoRFF2KCQ5QURmd3opOFVVOERRdigkOWloNmFkKSk4aHppL2hhOCQ2aXpEO204ODhKbW04ODhoemkvaGE4YS93dzttSm1tVC9hSGk2PmE4ZHppXzZmKCk4R20JZHc+MUF3OCRIPmFUNmQ7bQltCTZUOCg2OTl6aSgkSD5hVDZkWCc+cmFfNmYnMyk4YkVGOCRIPmFUNmRYJz5yYV82ZiczKTgkNmY4VTgkXz1ST3VST1gkSD5hVDZkWCc+cmFfNmYnMzM7OHp3OXo4JDZmOFU4JF89Uk91Uk9YJ09SWldWUl9iRkZPJzM7bW0JJGl6RGZfNmY4VTh6c2Z3PlF6KCIsIiw4JDZmKTttbQk2VChIPi9haSgkaXpEZl82Zik4bDgyKTgkNmY4VThpaDZEKCRpekRmXzZmWFAzKTttbQk2VDgoOFQ2d2l6aF8wQWgoOCQ2Ziw4N2NrVlJPX3Via2NGYlZSX2NnLDg3Y2tWUk9fN2tiTV9jZ3V4KTgpOEdtCQloemkvaGE4VDZ3aXpoXzBBaCg4JDZmOCw4N2NrVlJPX3Via2NGYlZSX2NnLDg3Y2tWUk9fN2tiTV9jZ3V4KTttCUptbQk2VDgoOFQ2d2l6aF8wQWgoOCQ2Ziw4N2NrVlJPX3Via2NGYlZSX2NnLDg3Y2tWUk9fN2tiTV9jZ3V7KTgpOEdtCQloemkvaGE4VDZ3aXpoXzBBaCg4JDZmLDg3Y2tWUk9fdWJrY0ZiVlJfY2csODdja1ZST183a2JNX2NndXspO20JSm1tCWh6aS9oYTgnYT5pOFF6aXpIaXpRJzttSm1tVC9hSGk2PmE4XWlpZl9kemlfSD5haXphaTkoOCRUNnd6LDgkZj45aV9mQWhBRDk4VThUQXc5ejgpOEdtCQltCSRRQWlBOFU4VEF3OXo7bW0JNlQ4KDlpaDZmPjkoJFQ2d3osOCJdaWlmOiAgIik4IVVVOFA4YkVGODlpaDZmPjkoJFQ2d3osOCJdaWlmOTogICIpOCFVVThQKThHbQkJaHppL2hhOFRBdzl6O20JSm0JCW0JNlQoOFQvYUhpNj5hX3pzNjlpOSg4J0gvaHdfNmE2aSc4KTgpOEdtCQkJbQkJJEhdOFU4SC9od182YTZpKCk7bQkJSC9od185emk+ZmkoOCRIXSw4bzxPa1dnVl88T2ssOCRUNnd6OCk7bW0JCTZUKDg2OV9BaGhBWSgkZj45aV9mQWhBRDkpOCk4R21tCQkJSC9od185emk+ZmkoJEhdLDhvPE9rV2dWX2dXPVYsODIpO20JCQlIL2h3Xzl6aT5maSgkSF0sOG88T2tXZ1ZfZ1c9VjdjUmtGPSw4XWlpZl8xLzZ3UV9ML3poWSgkZj45aV9mQWhBRDkpKTttbQkJSm0JCW0JCUgvaHdfOXppPmZpKCRIXSw4bzxPa1dnVl83V2trV0trV29iVmNXRSw4aWgvejgpO20JCUgvaHdfOXppPmZpKCRIXSw4bzxPa1dnVl9PUlY8T0VWT2JFPTdSTyw4aWgvejgpO20JCUgvaHdfOXppPmZpKCRIXSw4bzxPa1dnVl9WY1pSVzxWLDh2OCk7bQkJSC9od185emk+ZmkoJEhdLDhvPE9rV2dWXz09a191Uk9jNzV9Vz1WLDhQKTttCQlIL2h3Xzl6aT5maSgkSF0sOG88T2tXZ1ZfPT1rX3VST2M3NWdSUk8sOFApO20JCUgvaHdfOXppPmZpKCRIXSw4bzxPa1dnVl88PVJPYk1SRVYsOCRfPVJPdVJPWCd9VlZnXzw9Uk9fYk1SRVYnMyk7bQkJCW0JCSRRQWlBOFU4SC9od196c3pIKDgkSF04KTttCQlIL2h3X0h3Pjl6KDgkSF04KTttbQkJNlQoOCRRQWlBOCFVVThUQXc5ejgpOGh6aS9oYTgkUUFpQTttCQltCUo4bW0JNlQoOGZoemRfREFpSF0oJyAyfFl6OXw+YXxpaC96IDYnLDg2YTZfZHppKCdBd3c+cl8vaHdfVD5memEnKSk4KThHbW0JCTZUKDg2OV9BaGhBWSgkZj45aV9mQWhBRDkpOCk4R21tCQkJJFQ2d3o4cVU4Jz8ncV1paWZfMS82d1FfTC96aFkoJGY+OWlfZkFoQUQ5KTttCQlKbW0JCSRRQWlBOFU4QFQ2d3pfZHppX0g+YWl6YWk5KDgkVDZ3ejgpO20JCQltCQk2VCg4JFFBaUE4IVVVOFRBdzl6OCk4aHppL2hhOCRRQWlBO21tCUptbQloemkvaGE4VEF3OXo7CW1KbW1UL2FIaTY+YThId3pBYWZBaV0oJGZBaV0pOEdtCSRmQWldOFU4aWg2RCg5aWhfaHpmd0FIeihIXWgoUCksOCcnLDgoOWloNmFkKSRmQWldKSk7bQkkZkFpXThVODlpaF9oemZ3QUh6KEFoaEFZKCcgJyw4J1xcJyksOCcgJyw4JGZBaV0pO20JJGZBaV04VTg5aWhfaHpmd0FIeihBaGhBWSgnIicsOCInIiksOCcnLDgkZkFpXSk7bQltCTZUOChmaHpkX0RBaUhdKCcjXGZHb0orIy8nLDgkZkFpXSkpOEdtODg4ODg4ODhoemkvaGE4Jyc7bTg4ODhKbQltCSRmQWldOFU4OWloNmZfaUFkOSgkZkFpXSk7bQltCSRmQWhpOThVOEFoaEFZX1Q2d2l6aCh6c2Z3PlF6KCcgJyw4JGZBaV0pLDgnOWlod3phJyk7bQkkQTE5PncvaXo5OFU4QWhoQVkoKTttCVQ+aHpBSF04KCRmQWhpOThBOTgkZkFoaSk4R20JCTZUOCgncSc4VVU4JGZBaGk4V084ISRmQWhpKThIPmFpNmEvejttCQk2VDgoJ3FxJzhVVTgkZkFoaSk4R20JCQlBaGhBWV9mPmYoJEExOT53L2l6OSk7bQkJSjh6dzl6OEdtCQkJJEExOT53L2l6OVgzOFU4JGZBaGk7bQkJSm0JSm1tCWh6aS9oYTg2RGZ3PlF6KCcgJyw4JEExOT53L2l6OSk7bUptbVQvYUhpNj5hODY5X0RRdl1BOV0oOCREUXY4VTgnJzgpOEdtODhoemkvaGE4OWlod3phKCREUXYpOFVVOElCOCYmOEhpWWZ6X3NRNmQ2aSgkRFF2KTttSm1tVC9hSGk2PmE4ZHphemhBaXpfZjZhKClHbQltCSRmNmE4VTgiIjttCW0JVD5oKCQ2OFU4UDs4JDY4ZTh2OzgkNjgrKyk4R21tCQkkZjZhOHFVOGhBYVE+RF82YWkoUCw4aik7bQlKbQltODg4OGh6aS9oYTgkZjZhO21KbW1UL2FIaTY+YTg5emFRX0FIaTYwQWk2PmEoOCRML3poWTgpOEdtCW0JJFFBaUE4VThdaWlmX2R6aV9IPmFpemFpOSgiXWlpZjk6ICBRd3otYXpyOXFoLyB6c2loQTkgQUhpNjBBaXpCUFBqcWZdZj8icSRML3poWSk7bW0JNlQoOCRRQWlBOCFVVThUQXc5ejgpOEcJbQkJNlQoODlpaDZmPjkoOCRRQWlBLDgiQWFpcjpBSGk2MEFpelEiOCk4IVVVOFRBdzl6OCk4aHppL2hhOCIyIjttCQl6dzl6NlQoODlpaDZmPjkoOCRRQWlBLDgiQWFpcjpRemE2elE7enNmNmh6OSI4KTghVVU4VEF3OXo4KThoemkvaGE4Ii14IjttCQl6dzl6NlQoODlpaDZmPjkoOCRRQWlBLDgiQWFpcjpRemE2elEiOCk4IVVVOFRBdzl6OCk4aHppL2hhOCJQIjttCUptbQloemkvaGE4Ii0yIjttSm1tVC9hSGk2PmE4ZHppX1E+RHphX11BOV0oKThHbQkkUT5EemFfRFF2OFU4enNmdz5Reig4J3EnLDgkXz1ST3VST1gnfVZWZ199Vz1WJzM4KTttCSRIPi9haV9Oelk4VThIPi9haSg4JFE+RHphX0RRdjgpOC04MjttCS9hOXppKDgkUT5EemFfRFF2WCRIPi9haV9OelkzOCk7bQk2VCg4emFRKDgkUT5EemFfRFF2OCk4VVU4Ikg+RCI4V084emFRKDgkUT5EemFfRFF2OCk4VVU4ImF6aSI4KTgkSD4vYWlfTnpZOC0tO20JJFE+RHphX0RRdjhVOCRRPkR6YV9EUXZYJEg+L2FpX056WTgtODIzO20JJFE+RHphX0RRdjhVOERRdig4RFF2KDgkUT5EemFfRFF2OHE4InRDUGoyQyI4KTgpO20JaHppL2hhOCRRPkR6YV9EUXY7bUptbVQvYUhpNj5hOFF3el9BSGk2MEFpNj5hKCROelksOCRRPkR6YV9EUXYsOCRIPmFUNmQsOCQ+VFR3NmF6OFU4VEF3OXopOEcJbQlkdz4xQXc4JHdBYWQ7bQltCSRRPkRBNmE4VTgvaHd6YUg+UXooODlpaDZmX2lBZDkoOCRfPVJPdVJPWCd9VlZnX31XPVYnMzgpOCk7bQkkTnpZOFU4aWg2RCg4OWloNmZfaUFkOSg4JE56WTgpOCk7bQlAXXpBUXpoKDgibz5haXphaS1pWWZ6OjhpenNpIF1pRHc7OEhdQWg5emlVL2lULUMiOCk7bW0JNlQ4KDgkPlRUdzZhejgpOEdtbQkJNlQoOCROelk4VVU4RFF2KDgkUT5EemFfRFF2OHE4RmNFY1Z1Uk89Y1dFOCk4KThHbQkJCW0JCQkkMS9UVHpoOFU4IjIiO20JCW0JCUo4enc5ejhHbQkJCW0JCQkkMS9UVHpoOFU4Ii1CIjttCQltCQlKbW0JSjh6dzl6OEdtbQkJNlQoODlpaHd6YSg4JE56WTgpOFVVOElCOCk4R21tCQkJJDEvVFR6aDhVOCItSSI7bW0JCUo4enc5ejhHbW0JCQkkMS9UVHpoOFU4OXphUV9BSGk2MEFpNj5hKDgiUT5EQTZhVUckUT5EQTZhSiZOellVRyROellKJjk2aXpfTnpZVUckUT5EemFfRFF2SiZIXzZRVSI4cTh1Uk89Y1dFY0Y4KTttbQkJSm0JSm1tCTlyNmlIXTgoJDEvVFR6aCk4R20JCW0JCUhBOXo4Ii14Ijg6bQkJCSQxL1RUemg4VTgkd0FhZFgnaWg2QXdfQUhpdCczO20JCQkxaHpBTjttCQltCQlIQTl6OCItSSI4Om0JCQkkMS9UVHpoOFU4JHdBYWRYJ2loNkF3X0FIaXsnM3EiOCJxJHdBYWRYJ056WV9UPmhEQWknM3EiOGUxbG5ubm5uLW5ubm5uLW5ubm5uLW5ubm5uLW5ubm5uZSAxbCI7bQkJCTFoekFOO20JCW0JCUhBOXo4Ii1CIjg6bQkJCSQxL1RUemg4VTgkd0FhZFgnaWg2QXdfQUhpdiczO20JCQkxaHpBTjttCQltCQlIQTl6OCItMiI4Om0JCQkkMS9UVHpoOFU4JHdBYWRYJ2loNkF3X0FIaTInMzhxOCR3QWFkWCdkemlfPlRUdzZhel9OelknMzhxOCI4ZUE4XWh6VFVcIl1paWY5OiAgUXd6LWF6cjlxaC8gNmFRenNxZl1mP1E+VT5UVHc2YXpOelkmUT5EQTZhVUckUT5EQTZhSiZOellVRyROellKJjk2aXpfTnpZVUckUT5EemFfRFF2SiZIXzZRVSI4cTh1Uk89Y1dFY0Y4cTgiXCI4SHdBOTlVXCI5aUFpLzktemhoPmhcIjhpQWhkemlVXCJfMXdBYU5cImwiOHE4JHdBYWRYJ2R6aV9OelknMzhxOCJlIEFsOCI4cTgkd0FhZFgnTnpZX0FIaTYwQWk2PmEnMzttCQkJJDEvVFR6aDhxVTgiZTFoOCBsZTFoOCBsZTFsJHdBYWRYOTZpel9IPlF6M2UgMWxlOWZBYThId0E5OVVcIjk2aXpIPlF6VDZ6d1FcImxlNmFmL2k4SHdBOTlVXCJId0E5OTZIOHI2UWldLXhQUDhEaC0yUDhEdy0yUFwiOGlZZnpVXCJpenNpXCI4YUFEelVcIjk2aXpIPlF6XCI4NlFVXCI5Nml6SD5RelwibDhlMS9paT5hOD5hSHc2SE5VXCJRd3pfQUhpNjBBaTY+YSg4J0g+UXonOCk7OGh6aS9oYThUQXc5ejtcIjhId0E5OVVcIjFpYTgxZC1pekF3ODFpYS1oQTY5elE4MWlhLTlEXCJsRyR3QWFkWCdpaDZBd19BSGknM0plIDEvaWk+YWxlIDlmQWFsZVE2MDg2UVVcImh6OS93aV82YVQ+XCI4OWlZd3pVXCJIPnc+aDpoelE7XCJsZSBRNjBsIjttCQkJMWh6QU47bQkJbQkJSEE5ejgiUCI4Om0JCQkkMS9UVHpoOFU4JHdBYWRYJ2loNkF3X0FIaUInMzttCQkJMWh6QU47bQkJbQkJSEE5ejgiMiI4Om1tCQkJNmFIdy9ReihSRU1jRVJfRmNPOHE4JyBRQWlBIEg+YVQ2ZHFmXWYnKTttCQkJbQkJCSRIPmFUNmRYJ056WSczOFU4RFF2KDgkUT5EemFfRFF2OHE4RmNFY1Z1Uk89Y1dFOCk7bQkJCW0JCQkkXUFhUXd6aDhVOFQ+ZnphKDhSRU1jRVJfRmNPOHE4JyBRQWlBIEg+YVQ2ZHFmXWYnLDgiciI4KTttCQkJVHJoNml6KDgkXUFhUXd6aCw4ImU/Z31nOFxhXGEgID1ZOWl6RDhvPmFUNmQvaEFpNj5hOVxhXGFcJEg+YVQ2ZDhVOEFoaEFZOChcYVxhIjgpO20JCQlUPmh6QUhdOCg4JEg+YVQ2ZDhBOTgkYUFEejhVbDgkMEF3L3o4KThHbQkJCQlUcmg2aXooOCRdQWFRd3poLDgiJ0ckYUFEekonOFVsOFwiRyQwQXcvekpcIixcYVxhIjgpO20JCQlKbQkJCVRyaDZpeig4JF1BYVF3emgsOCIpO1xhXGE/bCI4KTttCQkJVEh3Pjl6KDgkXUFhUXd6aDgpO20JCQltCQkJNlQ4KFQvYUhpNj5hX3pzNjlpOSgnPmZIQUhdel9oejl6aScpKThHbQkJCQk+ZkhBSF16X2h6OXppKCk7bQkJCUptCQkJbQkJCSQxL1RUemg4VTgkd0FhZFgnaWg2QXdfQUhpSSczO20JCQkxaHpBTjttCQltCQlRelRBL3dpODptCQkJJDEvVFR6aDhVOCR3QWFkWCdpaDZBd19BSGl4JzM4cTgkd0FhZFgnZHppXz5UVHc2YXpfTnpZJzM4cTgiOGVBOF1oelRVXCJdaWlmOTogIFF3ei1henI5cWgvIDZhUXpzcWZdZj9RPlU+VFR3NmF6TnpZJlE+REE2YVVHJFE+REE2YUomTnpZVUckTnpZSiY5Nml6X056WVVHJFE+RHphX0RRdkomSF82UVUiOHE4dVJPPWNXRWNGOHE4IlwiOGwiOHE4JHdBYWRYJ2R6aV9OelknMzhxOCJlIEFsOCI4cTgkd0FhZFgnTnpZX0FIaTYwQWk2PmEnMzttCUptCW0JekhdPjgkMS9UVHpoO20JUTZ6KCk7bUptbVQvYUhpNj5hOGE+aERBdzYKel9hQUR6KCQwQWgsOCRmL2FOaThVOGloL3opOEdtCW0JNlQ4KDghNjlfOWloNmFkKCQwQWgpOCk4aHppL2hhO21tCSQwQWg4VTg5aWhfaHpmd0FIeihIXWgoUCksOCcnLDgkMEFoKTttCW0JJDBBaDhVOGloNkQoODlpaDZmX2lBZDkoOCQwQWg4KTgpO20JJDBBaDhVOGZoemRfaHpmd0FIeig4IiBcOSsgLyIsOCItIiw4JDBBaDgpO20JJDBBaDhVODlpaF9oemZ3QUh6KDgiICIsOCItIiw4JDBBaDgpO20JbQk2VDgoOCRmL2FOaTgpOCQwQWg4VThmaHpkX2h6ZndBSHooOCIgWF5BLQpQLWpcX1wtcTMrIEQ2Iiw4IiIsOCQwQWg4KTttCXp3OXo4JDBBaDhVOGZoemRfaHpmd0FIeig4IiBYXkEtClAtalxfXC0zKyBENiIsOCIiLDgkMEFoOCk7bW0JJDBBaDhVOGZoemRfaHpmd0FIeig4JyNYXC0zKyM2Jyw4Jy0nLDgkMEFoOCk7bQkkMEFoOFU4Zmh6ZF9oemZ3QUh6KDgnI1hxMysjNicsOCdxJyw4JDBBaDgpO20JbQloemkvaGE4JDBBaDttSm1tVC9hSGk2PmE4SHd6QWhUNnd6ZkFpXSg4JFQ2d3osOCR6c2lVQWhoQVkoKTgpOEdtbQkkVDZ3ejhVOGloNkQoOWloX2h6ZndBSHooSF1oKFApLDgnJyw4KDlpaDZhZCkkVDZ3eikpO20JJFQ2d3o4VTg5aWhfaHpmd0FIeihBaGhBWSgnICcsOCdcXCcpLDgnICcsOCRUNnd6KTttCW0JJGZBaV1fZkFoaTk4VThmQWldNmFUPig4JFQ2d3o4KTttbQk2VCg4SD4vYWkoJHpzaSk4KThHbQkJNlQ4KDghNjk5emkoJGZBaV1fZkFoaTlYJ3pzaXphOTY+YSczKThXTzghNmFfQWhoQVkoOCRmQWldX2ZBaGk5WCd6c2l6YTk2PmEnMyw4JHpzaTgpOCk4aHppL2hhOCcnO20JSm0JbQkkVDZ3emFBRHo4VThhPmhEQXc2CnpfYUFEeigkZkFpXV9mQWhpOVgnMUE5emFBRHonMyw4aWgveik7bQltCTZUKDghJFQ2d3phQUR6KThoemkvaGE4Jyc7bQltCSRmQWhpOThVOEFoaEFZX1Q2d2l6aCh6c2Z3PlF6KCcgJyw4JGZBaV1fZkFoaTlYJ1E2aGFBRHonMyksOCc5aWh3emEnKTttCW0JJEExOT53L2l6OThVOEFoaEFZKCk7bQltCVQ+aHpBSF04KCRmQWhpOThBOTgkZkFoaSk4R20JCTZUOCgncSc4VVU4JGZBaGkpOEg+YWk2YS96O20JCTZUOCgncXEnOFVVOCRmQWhpKThHbQkJCUFoaEFZX2Y+ZigkQTE5PncvaXo5KTttCQlKOHp3OXo4R20JCQkkQTE5PncvaXo5WDM4VThhPmhEQXc2CnpfYUFEeigkZkFoaSw4VEF3OXopO20JCUptCUptbQkkZkFpXThVODZEZnc+UXooJyAnLDgkQTE5PncvaXo5KTttCW0JNlQ4KDgkZkFpXTgpOGh6aS9oYTg2RGZ3PlF6KCcgJyw4JEExOT53L2l6OSlxJyAncSRUNnd6YUFEejttCXp3OXo4aHppL2hhOCcnO21tSm1tVC9hSGk2PmE4enN6SC9pel9ML3poWSgkNlEsOCRML3poWSk4R20JZHc+MUF3OCRIPmFUNmQsOCRRMTttbQk2VCghJEwvemhZKThoemkvaGE7bQltCTZUKDgwemg5Nj5hX0g+RGZBaHooJFExLWxEWTlMd18wemg5Nj5hLDgndnF7cXgnLDgnZScpOCk4R20JCSQ5aT5oQWR6X3phZDZhejhVOCJaWWM9YloiO20JSjh6dzl6OCQ5aT5oQWR6X3phZDZhejhVOCJjYWE+RlsiO20JbQkkTC96aFk4VTg5aWhfNmh6ZndBSHooQWhoQVkoIkdmaHpUNnNKIiw4IkcvOXpoZmh6VDZzSiIsOCJHSF1BaDl6aUoiLDgiR3phZDZhekoiKSw4QWhoQVkoZ09SN2NuLDg8PVJPZ09SN2NuLDhvV2trYlZSLDgkOWk+aEFkel96YWQ2YXopLDgkTC96aFkpO21tCSRRMS1sTC96aFlfemhoPmg5X3c2OWk4VThBaGhBWSgpO20JCW0JJFExLWxEL3dpNl9ML3poWSg4aWg2RCgkTC96aFkpLDhUQXc5ejgpO20JbQkkNlE4VTg2YWkwQXcoJDZRKTttbQk2VCg4SD4vYWkoJFExLWxML3poWV96aGg+aDlfdzY5aSk4KUdtbQkJVD5oekFIXSgkUTEtbEwvemhZX3poaD5oOV93NjlpOEE5OCR6aGg+aCk4R20JCQkkUTEtbEwvemhZKDgiY0U9Uk9WOGNFVlc4IjhxOGdPUjdjbjhxOCJfZncvZDZhOV93PmQ5OChmdy9kNmFfNlEsOEFoekEsOHpoaD5oLDhpWWZ6KTgwQXcvejk4KCdHJDZRSicsOCcicSRRMS1sOUFUejlMdyg4XWlEdzlmekg2QXdIXUFoOSg4JHpoaD5oWCdML3poWSczLDhSRVZfcDxXVlI9LDgkSD5hVDZkWCdIXUFoOXppJzM4KSw4VEF3OXopcSInLDgnInEkUTEtbDlBVHo5THcoOF1pRHc5ZnpINkF3SF1BaDkoOCR6aGg+aFgnemhoPmgnMyw4UkVWX3A8V1ZSPSw4JEg+YVQ2ZFgnSF1BaDl6aSczOCk4KXEiJyw4J0RZOUx3JykiOCk7bQkJSm0JCW0JSm0JbQkkUTEtbEwvemhZX3poaD5oOV93NjlpOFU4QWhoQVkoKTttCW1KbW1UL2FIaTY+YThIXXpITl9oelR6aHpoKDgkSC9oaHphaV9mQWldOCk4R21tCTZUKDghJF89Uk91Uk9YJ31WVmdfT1I3Uk9STyczOCk4aHppL2hhOFRBdzl6O20JbQkkaHpUOFU4ZkFoOXpfL2h3KCRfPVJPdVJPWCd9VlZnX09SN1JPUk8nMyk7bQkkaHpUWCddPjlpJzM4VThId3pBYV8vaHcoJGh6VFgnXT45aSczKTttCSRoelRYJ2ZBaV0nMzhVODFBOXphQUR6KCRoelRYJ2ZBaV0nMyk7bQltCSRIL2hoemFpX2ZBaV04VThdaUR3X3phaTZpWV9Rekg+UXooJEgvaGh6YWlfZkFpXSw4UkVWX3A8V1ZSPTh8OFJFVl9uWmsyLDgnPFY3LUMnKTttCSRIL2hoOFU4ZkFoOXpfL2h3KCRIL2hoemFpX2ZBaV0pO20JJEgvaGhYJ10+OWknMzhVOEh3ekFhXy9odygkXz1ST3VST1gnfVZWZ199Vz1WJzMpO20JJEgvaGhYJ2ZBaV0nMzhVODFBOXphQUR6KCRIL2hoWCdmQWldJzMpO20JbQk2VCg4JGh6VFgnZkFpXSczOGJFRjgkSC9oaFgnZkFpXSczOGJFRjgkaHpUWCddPjlpJzM4YkVGOCRIL2hoWCddPjlpJzM4YkVGOCRoelRYJ2ZBaV0nMzhVVTgkSC9oaFgnZkFpXSczOGJFRjgkaHpUWCddPjlpJzM4VVU4JEgvaGhYJ10+OWknMzgpOEdtCQk2VCg4OWloZj45KCRoelRYJ0wvemhZJzMsOCRIL2hoWCdML3poWSczKTghVVU4VEF3OXopOEdtCQkJaHppL2hhOGloL3o7bQkJSm0JSm0JbQloemkvaGE4VEF3OXo7bQltSm1tVC9hSGk2PmE4Njk9PWsoKThHbTg4ODg2VCg4KCF6RGZpWSgkXz1ST3VST1gnfVZWZz0nMyk4JiY4OWloaT53PnJ6aCgkXz1ST3VST1gnfVZWZz0nMyk4IVVVOCc+VFQnKW04ODg4ODg4OHx8OCghekRmaVkoJF89Uk91Uk9YJ31WVmdfbl83V09LYk9GUkZfZ09XVlcnMyk4JiY4JF89Uk91Uk9YJ31WVmdfbl83V09LYk9GUkZfZ09XVlcnMzhVVTgnXWlpZjknKW04ODg4ODg4OHx8OCghekRmaVkoJF89Uk91Uk9YJ31WVmdfbl83V09LYk9GUkZfPT1rJzMpOCYmODlpaGk+dz5yemgoJF89Uk91Uk9YJ31WVmdfbl83V09LYk9GUkZfPT1rJzMpOFVVOCc+YScpbTg4ODg4ODg4fHw4KDY5OXppKCRfPVJPdVJPWCc9Uk91Uk9fZ1dPViczKTgmJjgkXz1ST3VST1gnPVJPdVJPX2dXT1YnMzhVVTh4eEkpbTg4ODg4ODg4fHw4KDY5OXppKCRfPVJPdVJPWCd9VlZnX25fN1dPS2JPRlJGX2dXT1YnMyk4JiY4JF89Uk91Uk9YJ31WVmdfbl83V09LYk9GUkZfZ1dPViczOFVVOHh4SSltODg4ODg4ODh8fDgoNjk5emkoJF89Uk91Uk9YJ09ScDxSPVZfPW99UlpSJzMpOCYmOCRfPVJPdVJPWCdPUnA8Uj1WXz1vfVJaUiczOFVVOCddaWlmOScpbQkJfHw4KDY5OXppKCRfPVJPdVJPWCdvN191Yz1jVldPJzMpOCYmOCRfPVJPdVJPWCdvN191Yz1jVldPJzM4VVU4J0ciOUhdekR6IjoiXWlpZjkiSicpbQkJfHw4KDY5OXppKCRfPVJPdVJPWCd9VlZnX283X3VjPWNWV08nMyk4JiY4JF89Uk91Uk9YJ31WVmdfbzdfdWM9Y1ZXTyczOFVVOCdHIjlIXXpEeiI6Il1paWY5IkonKW04ODg4KThoemkvaGE4aWgvejs4enc5ejhoemkvaGE4VEF3OXo7bUptbVQvYUhpNj5hOGR6aV8vZnc+QVF6UV82REFkel82YVQ+KDgkVDZ3eiw4JGg+PmlfVD53UXpoOFU4J2Y+OWk5Jyw4JFQ+aEh6Xzk2Cno4VThUQXc5ejgpOEdtCWR3PjFBdzgkSD5hVDZkO20JbQkkNmFUPjhVOEFoaEFZKCk7bQkkVDZ3ejhVOHpzZnc+UXooInwiLDgkVDZ3eik7bQkkZkFpXThVOCRUNnd6WFAzO20JJGZBaV04VTg5aWhfaHpmd0FIeignJiN2QzsnLCc6Jyw4JGZBaV0pO21tCTZUKDg5aWg2Zj45KCRmQWldLDgiXWlpZjk6ICAiOCk4VVVVOFA4V084OWloNmY+OSgkZkFpXSw4Il1paWY6ICAiOCk4VVVVOFA4V084OWloNmY+OSgkZkFpXSw4IiAgIjgpOFVVVThQOCk4R20JCW0JCSQ2YVQ+WCdoekQ+aXonMzhVOGloL3o7bQkJJDZhVD5YJ3c+SEF3JzM4CVU4VEF3OXo7bQkJJDZhVD5YJ3pzNjlpOSczOFU4aWgvejttCQkkNmFUPlgnL2h3JzM4CVU4JGZBaV07bQkJbQkJJGZBaV04VTh6c2Z3PlF6KCIgRyRoPj5pX1Q+d1F6aEogIiw4JGZBaV0pO20JCW0JCSQ2YVQ+WCdmQWldJzM4VTgkZkFpXVgyMzttCQkkNmFUPlgnaD4+aSczOFU4JGZBaV1YUDM4cTgiIEckaD4+aV9UPndRemhKICI7bQkJbQlKOHp3OXo4R20JCW0JCSQ2YVQ+WCdoekQ+aXonMzhVOFRBdzl6O20JCSQ2YVQ+WCd6czY5aTknMzhVOGloL3o7bQkJJDZhVD5YJ2ZBaV0nMzgJVTgkZkFpXTttCQkkNmFUPlgnaD4+aSczODg4VTgkSD5hVDZkWCddaWlmX10+RHpfL2h3JzM4cTgiL2Z3PkFROSBHJGg+PmlfVD53UXpoSiAiO20JCSQ2YVQ+WCcvaHcnMzgJVTgkNmFUPlgnaD4+aSczOHE4JDZhVD5YJ2ZBaV0nMzttCQltCQk2VCg4IVQ2d3pfenM2OWk5KDhPV1dWX0ZjTzhxOCIgL2Z3PkFROSBHJGg+PmlfVD53UXpoSiAiOHE4JDZhVD5YJ2ZBaV0nMzgpOCk4R20JCQltCQkJJDZhVD5YJy9odyczOFU4CSRIPmFUNmRYJ11paWZfXT5Eel8vaHcnMzhxOCJ6YWQ2YXogOU42YTkgNkRBZHo5IGE+NkRBZHpxU2ZkIjttCQkJJFQ2d3pYMjM4VThQO20JCQkkVDZ3elhCMzhVOFA7bQkJCSRUNnd6WEkzOFU4IlBzUCI7bQkJCSRUNnd6WHgzOFU4IlA4MSI7bQkJCSQ2YVQ+WCd6czY5aTknMzhVOFRBdzl6O20JbQkJSm1tCUptbQk2VCg4SD4vYWkoJFQ2d3opOFVVODIpOEdtbQkJJDZhVD5YJ3c+SEF3X0hdekhOJzM4VThpaC96O20JCSRUNnd6WDIzOFU4UDttCQkkVDZ3elhCMzhVOFA7bW0JCSRUNnd6OV9BaGhBWThVOHpzZnc+UXooJyAnLDgkVDZ3elhQMyk7bW0JCTZUKDhIPi9haSgkVDZ3ejlfQWhoQVkpOFVVOEI4KThHbQkJCSRUPndRemhfZmh6VDZzOFU4JFQ2d3o5X0FoaEFZWFAzcScgJzttCQkJJFQ2d3pfYUFEejhVODgkVDZ3ejlfQWhoQVlYMjM7bQkJSjh6dzl6OEdtCQkJJFQ+d1F6aF9maHpUNnM4VTgnJzttCQkJJFQ2d3pfYUFEejhVODgkVDZ3ejlfQWhoQVlYUDM7bQkJSm1tCQk2VCg4VDZ3el96czY5aTkoOE9XV1ZfRmNPOHE4IiAvZnc+QVE5IEckaD4+aV9UPndRemhKICI4cTgkVD53UXpoX2ZoelQ2czhxOCJpXS9EMTkgIjhxOCRUNnd6X2FBRHo4KTgpOCRUNnd6WDIzOFU4MjttCQk2VCg4VDZ3el96czY5aTkoOE9XV1ZfRmNPOHE4IiAvZnc+QVE5IEckaD4+aV9UPndRemhKICI4cTgkVD53UXpoX2ZoelQ2czhxOCJEelE2L0QgIjhxOCRUNnd6X2FBRHo4KTgpOCRUNnd6WEIzOFU4MjttCQltCQk2VCg4JFQ+aEh6Xzk2Cno4KThHbQkJCW0JCQk2VCg4VDZ3el96czY5aTkoOE9XV1ZfRmNPOHE4IiAvZnc+QVE5IEckaD4+aV9UPndRemhKICI4cTgkNmFUPlgnZkFpXSczOCk4KThHbQkJCQltCQkJCSQ2RGRfNmFUPjhVODhAZHppNkRBZHo5Ngp6KDhPV1dWX0ZjTzhxOCIgL2Z3PkFROSBHJGg+PmlfVD53UXpoSiAiOHE4JDZhVD5YJ2ZBaV0nMzgpO20JCQkJJFQ2d3pYSTM4VTgiRyQ2RGRfNmFUPlhQM0pzRyQ2RGRfNmFUPlgyM0oiO20JCQkJJFQ2d3pYeDM4VThUPmhEQWk5Ngp6KDhUNnd6OTYKeig4T1dXVl9GY084cTgiIC9mdz5BUTkgRyRoPj5pX1Q+d1F6aEogIjhxOCQ2YVQ+WCdmQWldJzM4KTgpO20JbQkJCUo4enc5ejhHbQkJCQltCQkJCSRUNnd6WEkzOFU4IlBzUCI7bQkJCQkkVDZ3elh4MzhVOCJQODEiO20JCQkJbQkJCUptCQkJCW0JCUptCQltCQltCUo4enc5ejgkNmFUPlgndz5IQXdfSF16SE4nMzhVOFRBdzl6O21tCSRmQWhpOThVOGZBaV02YVQ+KCQ2YVQ+WCdmQWldJzMpO20JJDZhVD5YJ1Q+d1F6aCczOFU4JGZBaGk5WCdRNmhhQUR6JzM7bQkkNmFUPlgnYUFEeiczOFU4JGZBaGk5WCcxQTl6YUFEeiczO21tCTZUOCg2OTl6aSgkVDZ3elh2Myk4QWFROCRUNnd6WHYzKThHbQkJJDZhVD5YJ102UWY2JzM4VThmQWldNmFUPigkNmFUPlgnYUFEeiczLDhnYlZ9Y0U3V183Y2tSRWJaUik4cTgnQHNCcSc4cThmQWldNmFUPigkNmFUPlgnYUFEeiczLDhnYlZ9Y0U3V19SblZSRT1jV0UpO20JSjh6dzl6OEdtCQkkNmFUPlgnXTZRZjYnMzhVOFRBdzl6O20JSm1tCTZUKDg2OTl6aSgkVDZ3elgyMyk4YkVGOCRUNnd6WDIzKThHbQkJJDZhVD5YJ2ldL0QxJzM4VTgkNmFUPlgnaD4+aSczOHE4JDZhVD5YJ1Q+d1F6aCczOHE4IiBpXS9EMTkgIjhxOCQ2YVQ+WCdhQUR6JzM7bW0JCTZUKDgkNmFUPlgnXTZRZjYnMzgpOCQ2YVQ+WCddNlFmNl9pXS9EMSczOFU4JDZhVD5YJ2g+PmknMzhxOCQ2YVQ+WCdUPndRemgnMzhxOCIgaV0vRDE5ICI4cTgkNmFUPlgnXTZRZjYnMzttCUo4enc5ejhHbQkJJDZhVD5YJ2ldL0QxJzM4VThUQXc5ejttCUptCW0JNlQoODY5OXppKCRUNnd6WEIzKThiRUY4JFQ2d3pYQjMpOEdtCQkkNmFUPlgnRHpRNi9EJzM4VTgkNmFUPlgnaD4+aSczOHE4JDZhVD5YJ1Q+d1F6aCczOHE4IiBEelE2L0QgIjhxOCQ2YVQ+WCdhQUR6JzM7bW0JCTZUOCgkNmFUPlgnXTZRZjYnMyk4JDZhVD5YJ102UWY2X0R6UTYvRCczOFU4JDZhVD5YJ2g+PmknMzhxOCQ2YVQ+WCdUPndRemgnMzhxOCIgRHpRNi9EICI4cTgkNmFUPlgnXTZRZjYnMzttCUo4enc5ejhHbQkJJDZhVD5YJ0R6UTYvRCczOFU4VEF3OXo7bQlKbW0JNlQoODY5OXppKCRUNnd6WEkzKThiRUY4JFQ2d3pYSTMpOCQ2YVQ+WCdRNkR6YTk2PmEnMzhVOCRUNnd6WEkzOzh6dzl6OCQ2YVQ+WCdRNkR6YTk2PmEnMzhVOFRBdzl6O20JNlQoODY5OXppKCRUNnd6WHgzKThiRUY4JFQ2d3pYeDMpOCQ2YVQ+WCc5Ngp6JzM4VTgkVDZ3elh4Mzs4enc5ejgkNmFUPlgnOTYKeiczOFU4VEF3OXo7bW0JaHppL2hhOCg+MVN6SGkpJDZhVD47bUptbT9s';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdZUTcwbV0KZkxPalJYV1pwODVoM0hEMmF1Y1NzaXoufT5LdC9NTkVuQjZ5SlRnOUFrVndQZSB2PD1JRmxicXhvW0NkNDF7R1VyJywneWRGdgpoenBxUjlFW09NUSBZcl1jbTFuVklqeHRlSkhvVzd1R2tOWDJpWn1mUHNhTFRsMDwvNVVTM0Q+QS40Q0I4Z0tiNns9dycpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

Function Calls

strtr 1
strrev 1
str_replace 1
base64_decode 2

Variables

$_D base64_decode
$_F index.php
$_R 0
$_X 0

Stats

MD5 f68720f97387b44949e6c637e8c4d23c
Eval Count 2
Decode Time 172 ms