Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
$_F=__FILE__;$_X='P3c8P2xubFc4Kldqampqampqampqampqampqampqampqampqampqampqampqampqampqampq..
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.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 ($config['only_ssl']) setcookie( $name, $value, $expires, "/", DOMAIN, TRUE, TRUE );
else setcookie( $name, $value, $expires, "/", DOMAIN, FALSE, TRUE );
}
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;
}
class microTimer {
private $time;
function __construct() {
$this->time = $this->get_real_time();
}
function get() {
return round( ($this->get_real_time() - $this->time), 5 );
}
function get_real_time() {
list ( $seconds, $microSeconds ) = explode( ' ', microtime() );
return (( float ) $seconds + ( float ) $microSeconds);
}
}
function flooder($ip, $news_time = false) {
global $config, $db;
$ip = $db->safesql($ip);
if ( $news_time ) {
$this_time = time() - intval($news_time);
$db->query( "DELETE FROM " . PREFIX . "_flood where id < '$this_time' AND flag='1' " );
$row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_flood WHERE ip = '$ip' AND flag='1'");
if( $row['count'] ) return TRUE;
else return FALSE;
} else {
$this_time = time() - intval($config['flood_time']);
$db->query( "DELETE FROM " . PREFIX . "_flood where id < '$this_time' AND flag='0' " );
$row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_flood WHERE ip = '$ip' AND flag='0'");
if( $row['count'] ) return TRUE;
else return FALSE;
}
}
function totranslit($var, $lower = true, $punkt = true, $translit = true ) {
global $langtranslit;
if ( !is_string($var) ) return "";
$bads = array( '!', '*', '\'', '(', ')', ';', ':', '@', '&', '=', '+', '$', ',', '/', '?', '#', '[', ']', '%', '\', '"', '<', '>', '^', '{', '}', '|', '`', '.php' );
$var = strip_tags( $var );
$var = str_replace(chr(0), '', $var);
$var = html_entity_decode($var, ENT_QUOTES | ENT_HTML5, 'utf-8');
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( !is_array($locallangdate) ) {
$locallangdate = array();
}
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 formdate( $matches=array() ) {
global $news_date, $customlangdate, $config;
if($config['decline_date']) return langdate($matches[1], $news_date);
else return langdate($matches[1], $news_date, false, $customlangdate);
}
function check_newscount( $matches=array() ) {
global $global_news_count;
$block = $matches[3];
$counts = explode( ',', trim($matches[2]) );
if( $matches[1] == "newscount" ) {
if( !in_array($global_news_count, $counts) ) return "";
} else {
if( in_array($global_news_count, $counts) ) return "";
}
return $block;
}
function msgbox($title, $text) {
global $tpl;
if (!class_exists('dle_template')) {
return;
}
$tpl_2 = new dle_template( );
$tpl_2->dir = TEMPLATE_DIR;
$tpl_2->load_template( 'info.tpl' );
$tpl_2->set( '{error}', $text );
$tpl_2->set( '{title}', $title );
$tpl_2->compile( 'info' );
$tpl_2->clear();
$tpl->result['info'] .= $tpl_2->result['info'];
}
function ShowRating($id, $rating, $vote_num, $allow = true) {
global $lang, $config, $row, $dle_module;
if( !$config['rating_type'] ) {
if( $rating AND $vote_num ) {
$rating = round( ($rating / $vote_num), 0 );
} else {
$rating = 0;
}
if ($rating < 0 ) $rating = 0;
$rating = $rating * 20;
if( !$allow ) {
$rated = <<<HTML
<div class="rating">
<ul class="unit-rating">
<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
</ul>
</div>
HTML;
return $rated;
}
$rated = <<<HTML
<div data-ratig-layer-id='{$id}'>
<div class="rating">
<ul class="unit-rating">
<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
<li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
<li><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
</ul>
</div>
</div>
HTML;
return $rated;
} elseif ($config['rating_type'] == "1") {
if( $rating < 0 ) $rating = 0;
if( $allow ) $rated = "<span data-ratig-layer-id=\"{$id}\"><span class=\"ratingtypeplus\" >{$rating}</span></span>";
else $rated = "<span class=\"ratingtypeplus\" >{$rating}</span>";
return $rated;
} elseif ($config['rating_type'] == "2" OR $config['rating_type'] == "3") {
$extraclass = "ratingzero";
if( $rating < 0 ) {
$extraclass = "ratingminus";
}
if( $rating > 0 ) {
$extraclass = "ratingplus";
$rating = "+".$rating;
}
if( $allow ) $rated = "<span data-ratig-layer-id=\"{$id}\"><span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span></span>";
else $rated = "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>";
return $rated;
}
}
function ShowCommentsRating($id, $rating, $vote_num, $allow = true) {
global $lang, $config;
if( !$config['comments_rating_type'] ) {
if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
else $rating = 0;
if ($rating < 0 ) $rating = 0;
$rating = $rating * 20;
if( !$allow ) {
$rated = <<<HTML
<div class="rating">
<ul class="unit-rating">
<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
</ul>
</div>
HTML;
return $rated;
}
$rated = <<<HTML
<div data-comments-ratig-layer-id='{$id}'><div class="rating">
<ul class="unit-rating">
<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
<li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doCommentsRate('1', '{$id}'); return false;">1</a></li>
<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doCommentsRate('2', '{$id}'); return false;">2</a></li>
<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doCommentsRate('3', '{$id}'); return false;">3</a></li>
<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doCommentsRate('4', '{$id}'); return false;">4</a></li>
<li><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doCommentsRate('5', '{$id}'); return false;">5</a></li>
</ul>
</div></div>
HTML;
return $rated;
} elseif ($config['comments_rating_type'] == "1") {
if( $rating < 0 ) $rating = 0;
if( $allow ) $rated = "<span data-comments-ratig-layer-id=\"{$id}\"><span class=\"ratingtypeplus\" >{$rating}</span></span>";
else $rated = "<span class=\"ratingtypeplus\" >{$rating}</span>";
return $rated;
} elseif ($config['comments_rating_type'] == "2" OR $config['comments_rating_type'] == "3") {
$extraclass = "ratingzero";
if( $rating < 0 ) {
$extraclass = "ratingminus";
}
if( $rating > 0 ) {
$extraclass = "ratingplus";
$rating = "+".$rating;
}
if( $allow ) $rated = "<span data-comments-ratig-layer-id=\"{$id}\"><span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span></span>";
else $rated = "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>";
return $rated;
}
}
function userrating($id) {
global $db, $config, $lang, $global_news_user_ratingscore;
$id = intval($id);
$global_news_user_ratingscore = 0;
$row = $db->super_query( "SELECT SUM(rating) as rating, SUM(vote_num) as num FROM " . PREFIX . "_post_extras WHERE user_id ='{$id}'" );
if ($row['num']) $global_news_user_ratingscore = str_replace(',', '.', round(($row['rating'] / $row['num']), 1));
if( !$config['rating_type'] ) {
if( $row['num'] ) $rating = round( ($row['rating'] / $row['num']), 0 );
else $rating = 0;
if ($rating < 0 ) $rating = 0;
$rating = $rating * 20;
$rated = <<<HTML
<div class="rating" style="display:inline;">
<ul class="unit-rating">
<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
</ul>
</div>
HTML;
return $rated;
} elseif ($config['rating_type'] == "1") {
if( $row['num'] ) $rating = number_format($row['rating'], 0, ',', ' '); else $rating = 0;
if( $row['num'] < 0 ) $rating = 0;
return "<span class=\"ratingtypeplus\" >{$rating}</span>";
} elseif ($config['rating_type'] == "2" OR $config['rating_type'] == "3" ) {
if( $row['num'] ) $rating = number_format($row['rating'], 0, ',', ' '); else $rating = 0;
$extraclass = "ratingzero";
if( $row['rating'] < 0 ) {
$extraclass = "ratingminus";
}
if( $row['rating'] > 0 ) {
$extraclass = "ratingplus";
$rating = "+".$rating;
}
if($config['rating_type'] == "2") {
return "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>";
} else {
$dislikes = ($row['num'] - $row['rating'])/2;
$likes = $row['num'] - $dislikes;
return str_replace(array('{likes}', '{dislikes}', '{rating}'), array("<span class=\"ratingtypeplusminus ratingplus\" >{$likes}</span>", "<span class=\"ratingtypeplusminus ratingminus\" >{$dislikes}</span>", "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>"), $lang['like_dislike_sum']);
}
}
}
function commentsuserrating($id) {
global $db, $config, $lang, $global_comments_user_ratingscore;
$id = intval($id);
$global_comments_user_ratingscore = 0;
$row = $db->super_query( "SELECT SUM(rating) as rating, SUM(vote_num) as num FROM " . PREFIX . "_comments WHERE user_id ='{$id}'" );
if ($row['num']) $global_comments_user_ratingscore = str_replace(',', '.', round(($row['rating'] / $row['num']), 1));
if( !$config['comments_rating_type'] ) {
if( $row['num'] ) $rating = round( ($row['rating'] / $row['num']), 0 );
else $rating = 0;
if ($rating < 0 ) $rating = 0;
$rating = $rating * 20;
$rated = <<<HTML
<div class="rating" style="display:inline;">
<ul class="unit-rating">
<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
</ul>
</div>
HTML;
return $rated;
} elseif ($config['comments_rating_type'] == "1") {
if( $row['num'] ) $rating = number_format($row['rating'], 0, ',', ' '); else $rating = 0;
if( $rating < 0 ) $rating = 0;
return "<span class=\"ratingtypeplus\" >{$rating}</span>";
} elseif ($config['comments_rating_type'] == "2" OR $config['comments_rating_type'] == "3") {
if( $row['num'] ) $rating = number_format($row['rating'], 0, ',', ' '); else $rating = 0;
$extraclass = "ratingzero";
if( $row['rating'] < 0 ) {
$extraclass = "ratingminus";
}
if( $row['rating'] > 0 ) {
$extraclass = "ratingplus";
$rating = "+".$rating;
}
if($config['comments_rating_type'] == "2") {
return "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>";
} else {
$dislikes = ($row['num'] - $row['rating'])/2;
$likes = $row['num'] - $dislikes;
return str_replace(array('{likes}', '{dislikes}', '{rating}'), array("<span class=\"ratingtypeplusminus ratingplus\" >{$likes}</span>", "<span class=\"ratingtypeplusminus ratingminus\" >{$dislikes}</span>", "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>"), $lang['like_dislike_sum']);
}
}
}
function CategoryNewsSelection($categoryid = 0, $parentid = 0, $nocat = TRUE, $sublevelmarker = '', $returnstring = '') {
global $cat_info, $user_group, $member_id, $dle_module;
if ($dle_module == 'addnews') {
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'] );
$not_allow_list = explode( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
if ($dle_module == 'search') {
if( count( $cat_info ) ){
foreach ($cat_info as $cats) {
if($cats['disable_search']) $not_allow_list[] = $cats['id'];
}
}
}
if (isset($member_id['cat_add']) AND $member_id['cat_add']) $spec_list = explode( ',', $member_id['cat_add'] );
else $spec_list = explode( ',', $user_group[$member_id['user_group']]['cat_add'] );
$root_category = array ();
if( $parentid == 0 ) {
if( $nocat AND $allow_list[0] == "all") $returnstring .= '<option value="0"></option>';
} else {
$sublevelmarker .= ' ';
}
if( count( $cat_info ) ) {
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 ) ) {
if( in_array( $id, $not_allow_list ) ) continue;
if( $spec_list[0] == "all" or in_array( $id, $spec_list ) ) $color = "";
else $color = "style=\"color: red\" ";
$returnstring .= "<option {$color}value=\"" . $id . '" ';
if( is_array( $categoryid ) ) {
foreach ( $categoryid as $element ) {
$element = intval($element);
if( $element == $id ) $returnstring .= 'selected';
}
} elseif( intval($categoryid) == $id ) $returnstring .= 'selected';
$returnstring .= '>' . $sublevelmarker . $cat_info[$id]['name'] . '</option>';
}
$returnstring = CategoryNewsSelection( $categoryid, $id, $nocat, $sublevelmarker, $returnstring );
}
}
}
return $returnstring;
}
function get_ID($cat_info, $category) {
foreach ( $cat_info as $cats ) {
if( $cats['alt_name'] == $category ) return $cats['id'];
}
return false;
}
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_count_from_cache( $hash ) {
$hash = md5($hash);
$all_counts = dle_cache("news_cache_count");
if( $all_counts ) {
$all_counts = json_decode($all_counts, true);
if( isset( $all_counts[$hash] ) ) {
return intval($all_counts[$hash]);
}
}
return 0;
}
function set_count_to_cache( $hash, $count ) {
global $config;
if( !$config['allow_cache'] ) return false;
$hash = md5($hash);
$all_counts = dle_cache("news_cache_count");
if( $all_counts ) {
$all_counts = json_decode($all_counts, true);
}
if( !is_array($all_counts) ) $all_counts = array();
$all_counts[$hash] = intval($count);
create_cache ( "news_cache_count", json_encode( $all_counts , JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) );
return true;
}
function dle_cache($prefix, $cache_id = false, $member_prefix = false, $customCacheDate = false) {
global $config, $is_logged, $member_id, $dlefastcache, $_TIME;
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);
}
}
if(file_exists( ENGINE_DIR . "/cache/" . $key . '.tmp' )) {
if( $config['clear_cache'] OR $customCacheDate) {
$file_date = @filemtime( ENGINE_DIR . "/cache/" . $key . '.tmp' );
if($customCacheDate) {
$amount = intval($customCacheDate);
$timeUnit = substr($customCacheDate, -1);
if( $amount AND in_array($timeUnit, array('d', 'h', 'm') ) ) {
if ($timeUnit === "d") {
$file_date += $amount * 24 * 60 * 60;
} elseif ($timeUnit === "h") {
$file_date += $amount * 60 * 60;
} elseif ($timeUnit === "m") {
$file_date += $amount * 60;
}
if( $_TIME > $file_date) {
@unlink(ENGINE_DIR . "/cache/" . $key . ".tmp");
return false;
}
}
} elseif ( ( $_TIME - $file_date ) > ($config['clear_cache'] * 60) ) {
@unlink(ENGINE_DIR . "/cache/" . $key . ".tmp");
return false;
}
}
return file_get_contents(ENGINE_DIR . "/cache/" . $key . ".tmp");
}
return false;
}
function create_cache($prefix, $cache_text, $cache_id = false, $member_prefix = false, $maxAge = 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 ) {
if ( $maxAge ) {
$amount = intval($maxAge);
$timeUnit = substr($maxAge, -1);
if ($amount and in_array($timeUnit, array('d', 'h', 'm'))) {
if ($timeUnit === "d") {
$maxAge = $amount * 24 * 60 * 60; //
} elseif ($timeUnit === "h") {
$maxAge = $amount * 60 * 60; //
} elseif ($timeUnit === "m") {
$maxAge = $amount * 60; //
}
} else $maxAge = false;
}
if ( $maxAge ) $dlefastcache->set($key, $cache_text, $maxAge);
else $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 );
}
}
}
return true;
}
function ChangeSkin( $skin ) {
$templates_list = get_folder_list( 'templates' );
unset($templates_list['smartphone']);
$skin_list = "<form method=\"post\"><select onchange=\"submit()\" name=\"skin_name\">";
foreach ( $templates_list as $key => $value ) {
if( $key == $skin ) $selected = " selected=\"selected\"";
else $selected = "";
$skin_list .= "<option value=\"{$key}\"" . $selected . ">{$value['name']}</option>";
}
$skin_list .= '</select><input type="hidden" name="action_skin_change" value="yes"></form>';
return $skin_list;
}
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_mass_cats($id) {
global $cat_info;
$id = explode ('-', $id);
$temp_array = array();
foreach ( $cat_info as $cats ) {
if ($cats['id'] >= $id[0] AND $cats['id'] <= $id[1] ) $temp_array[] = intval($cats['id']);
}
if ( count($temp_array) ) { sort($temp_array); return implode(',', $temp_array); }
else return 0;
}
function custom_comments( $matches=array() ) {
global $db, $is_logged, $member_id, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $smartphone_detected, $dle_module, $allow_comments_ajax, $PHP_SELF, $dle_login_hash, $replace_links;
if ( !count($matches) ) return "";
$temp_category_id = $category_id;
$param_str = trim($matches[1]);
$custom_cache_id = "customcomments".$param_str.$config['skin'];
$aviable = array("global");
$comm_sort = "id";
$comm_msort = "DESC";
$where = array();
$thisdate = date( "Y-m-d H:i:s", $_TIME );
$sql_select = "SELECT cm.id, cm.post_id, cm.user_id, cm.date, cm.autor as gast_name, cm.email as gast_email, text, ip, is_register, cm.rating, cm.vote_num, name, u.email, news_num, u.comm_num, user_group, lastdate, reg_date, signature, foto, fullname, land, u.xfields, p.title, p.date as newsdate, p.alt_name, p.category, p.allow_comm FROM " . PREFIX . "_comments cm LEFT JOIN " . PREFIX . "_post p ON cm.post_id=p.id {cat_join}LEFT JOIN " . USERPREFIX . "_users u ON cm.user_id=u.user_id ";
$allow_cache = $config['allow_cache'];
$cats_select = false;
$ids_for_sort = false;
if( preg_match( "#available=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$aviable = explode( '|', $match[1] );
}
$do = $dle_module ? $dle_module : "main";
if( !in_array( $do, $aviable ) AND ($aviable[0] != "global") ) return "";
if( preg_match( "#newsid=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$param_str = str_replace($match[0], '', $param_str);
$temp_array = array();
$where_id = array();
$match[1] = explode (',', trim($match[1]));
foreach ($match[1] as $value) {
if( count(explode('-', $value)) == 2 ) {
$value = explode('-', $value);
$where_id[] = "p.id >= '" . intval($value[0]) . "' AND p.id <= '".intval($value[1])."'";
} else $temp_array[] = intval($value);
}
if ( count($temp_array) ) {
$where_id[] = "p.id IN ('" . implode("','", $temp_array) . "')";
$ids_for_sort = "FIND_IN_SET(p.id, '".implode(",", $temp_array)."') ";
}
if ( count($where_id) ) {
$custom_id = implode(' OR ', $where_id);
$where[] = $custom_id;
}
}
if( preg_match( "#newsidexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$param_str = str_replace($match[0], '', $param_str);
$temp_array = array();
$where_id = array();
$match[1] = explode (',', trim($match[1]));
foreach ($match[1] as $value) {
if( count(explode('-', $value)) == 2 ) {
$value = explode('-', $value);
$where_id[] = "(p.id < '" . intval($value[0]) . "' OR p.id > '".intval($value[1])."')";
} else $temp_array[] = intval($value);
}
if ( count($temp_array) ) {
$where_id[] = "p.id NOT IN ('" . implode("','", $temp_array) . "')";
}
if ( count($where_id) ) {
$custom_id = implode(' AND ', $where_id);
$where[] = $custom_id;
}
}
if( preg_match( "#id=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$temp_array = array();
$where_id = array();
$match[1] = explode (',', trim($match[1]));
foreach ($match[1] as $value) {
if( count(explode('-', $value)) == 2 ) {
$value = explode('-', $value);
$where_id[] = "cm.id >= '" . intval($value[0]) . "' AND cm.id <= '".intval($value[1])."'";
} else $temp_array[] = intval($value);
}
if ( count($temp_array) ) {
$where_id[] = "cm.id IN ('" . implode("','", $temp_array) . "')";
$ids_for_sort = "FIND_IN_SET(cm.id, '".implode(",", $temp_array)."') ";
}
if ( count($where_id) ) {
$custom_id = implode(' OR ', $where_id);
$where[] = $custom_id;
}
}
if( preg_match( "#idexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$temp_array = array();
$where_id = array();
$match[1] = explode (',', trim($match[1]));
foreach ($match[1] as $value) {
if( count(explode('-', $value)) == 2 ) {
$value = explode('-', $value);
$where_id[] = "(cm.id < '" . intval($value[0]) . "' OR cm.id > '".intval($value[1])."')";
} else $temp_array[] = intval($value);
}
if ( count($temp_array) ) {
$where_id[] = "cm.id NOT IN ('" . implode("','", $temp_array) . "')";
}
if ( count($where_id) ) {
$custom_id = implode(' AND ', $where_id);
$where[] = $custom_id;
}
}
$cat_join = "";
if( preg_match( "#category=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$cats_select = true;
$temp_array = array();
$match[1] = explode (',', $match[1]);
foreach ($match[1] as $value) {
if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
else $temp_array[] = intval($value);
}
$temp_array = implode(',', $temp_array);
$custom_category = $db->safesql( trim($temp_array) );
$custom_category = str_replace( ",", "','", $custom_category );
if( $config['allow_multi_category'] ) {
$cat_join = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . $custom_category . "')) c ON (p.id=c.news_id) ";
} else {
$where[] = "p.category IN ('" . $custom_category . "')";
}
}
if( preg_match( "#categoryexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$cats_select = true;
$temp_array = array();
$match[1] = explode (',', $match[1]);
foreach ($match[1] as $value) {
if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
else $temp_array[] = intval($value);
}
$temp_array = implode(',', $temp_array);
$custom_category = $db->safesql( trim($temp_array) );
$custom_category = str_replace( ",", "','", $custom_category );
if( $config['allow_multi_category'] ) {
$where[] = "p.id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . $custom_category . "') )";
} else {
$where[] = "p.category NOT IN ('" . $custom_category . "')";
}
}
if (!$cats_select) {
$allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );
if( $allow_list[0] != "all" ) {
if( $config['allow_multi_category'] ) {
$cat_join = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . implode( "','", $allow_list ) . "')) c ON (p.id=c.news_id) ";
} else {
$where[] = "p.category IN ('" . implode( "','", $allow_list ) . "')";
}
}
$not_allow_cats = explode ( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
if( $not_allow_cats[0] != "" ) {
if ($config['allow_multi_category']) {
$where[] = "p.id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN (" . implode ( ',', $not_allow_cats ) . ") )";
} else {
$where[] = "p.category NOT IN ('" . implode ( "','", $not_allow_cats ) . "')";
}
}
}
$sql_select = str_replace( "{cat_join}", $cat_join, $sql_select );
if( preg_match( "#days=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$days = intval(trim($match[1]));
$where[] = "cm.date >= '{$thisdate}' - INTERVAL {$days} DAY AND cm.date < '{$thisdate}'";
}
if( preg_match( "#author=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$match[1] = explode (',', $match[1]);
$temp_array = array();
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
$temp_array[] = "cm.autor = '{$value}'";
}
$where[] = implode(' OR ', $temp_array);
}
if( preg_match( "#authorexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$match[1] = explode (',', $match[1]);
$temp_array = array();
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
$temp_array[] = "cm.autor != '{$value}'";
}
$where[] = implode(' AND ', $temp_array);
}
if( $config['allow_cmod'] ) {
$where[] = "cm.approve=1";
}
if( preg_match( "#template=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$custom_template = trim($match[1]);
} else $custom_template = "comments";
if( preg_match( "#sort=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$allowed_sort = array ('asc' => 'ASC', 'desc' => 'DESC' );
$match[1] = strtolower($match[1]);
if ( $allowed_sort[$match[1]] ) $comm_msort = $allowed_sort[$match[1]];
}
if( preg_match( "#order=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$allowed_sort = array ('date' => 'id', 'rating' => 'rating', 'rand' => 'RAND()' );
$match[1] = strtolower($match[1]);
if ( $allowed_sort[$match[1]] ) $comm_sort = $allowed_sort[$match[1]];
if ($match[1] == "rand" ) { $comm_msort = ""; }
if($match[1] == "id_as_list" AND $ids_for_sort){
$comm_sort = $ids_for_sort;
$comm_msort = "";
}
}
if( preg_match( "#from=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$custom_from = intval($match[1]);
} else { $custom_from = 0; }
if( preg_match( "#limit=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$custom_limit = intval($match[1]);
} else $custom_limit = intval($config['comm_nummers']);
$customCacheFile = false;
$cacheTimestamp = false;
if (preg_match("#cache=['\"](.+?)['\"]#i", $param_str, $match)) {
$timeUnit = substr($match[1], -1);
if (in_array($timeUnit, array('d', 'h', 'm'))) {
$amount = intval($match[1]);
if ($amount) {
$cacheTimestamp = $amount . $timeUnit;
$customCacheFile = true;
$config['allow_cache'] = 1;
}
} else {
if ($match[1] == "yes") $config['allow_cache'] = 1;
else $config['allow_cache'] = false;
}
}
if ($customCacheFile) $cacheFile = "customcommblock"; else $cacheFile = "news";
if( count( $where ) ) {
$where = implode( " AND ", $where );
$where = "WHERE " . $where;
} else $where = "";
$sql_select .= $where." ORDER BY " . $comm_sort . " " . $comm_msort . " LIMIT " . $custom_from . "," . $custom_limit;
$content = dle_cache($cacheFile, $custom_cache_id, true, $cacheTimestamp );
if( $content !== false ) {
$config['allow_cache'] = $allow_cache;
return $content;
} else {
$tpl = new dle_template();
$tpl->dir = TEMPLATE_DIR;
$comments = new DLE_Comments( $db, $custom_limit, $custom_limit );
$comments->query = $sql_select;
$content = $comments->build_customcomments( $tpl, $custom_template.'.tpl' );
if ( $config['allow_cache'] ) create_cache( $cacheFile, $content, $custom_cache_id, true, $cacheTimestamp );
$config['allow_cache'] = $allow_cache;
$category_id = $temp_category_id;
return $content;
}
}
function custom_print( $matches=array() ) {
global $db, $is_logged, $member_id, $xf_inited, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $smartphone_detected, $dle_module, $allow_comments_ajax, $PHP_SELF, $news_date, $banners, $banner_in_news, $ban_short, $url_page, $user_query, $custom_news, $global_news_count, $remove_canonical, $custom_navigation, $row, $_DOCUMENT_DATE;
if ( !count($matches) ) return "";
$save_row = $row;
$param_str = trim($matches[1]);
$custom_cache_id = "customnews".$param_str.$config['skin'];
if( $config['user_in_news'] ) {
$user_select = ", u.email, u.name, u.user_id, u.news_num, u.comm_num as user_comm_num, u.user_group, u.lastdate, u.reg_date, u.banned, u.allow_mail, u.info, u.signature, u.foto, u.fullname, u.land, u.favorites, u.pm_all, u.pm_unread, u.time_limit, u.xfields as user_xfields ";
$user_join = "LEFT JOIN " . USERPREFIX . "_users u ON (e.user_id=u.user_id) ";
} else { $user_select = ""; $user_join = ""; }
$aviable = array("global");
$thisdate = date( "Y-m-d H:i:s", $_TIME );
$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.descr, p.keywords, p.category, p.alt_name, p.comm_num, p.allow_comm, p.allow_main, p.approve, p.fixed, p.symbol, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.disable_index, e.editdate, e.editor, e.reason {$user_select}FROM " . PREFIX . "_post p {cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$where = array();
$allow_cache = $config['allow_cache'];
$cats_select = false;
$ids_for_sort = false;
$cat_join_count = "";
$xfields_in_news = array();
if( preg_match( "#aviable=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$aviable = explode( '|', $match[1] );
}
if( preg_match( "#available=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$aviable = explode( '|', $match[1] );
}
$do = $dle_module ? $dle_module : "main";
if( !in_array( $do, $aviable ) AND ($aviable[0] != "global") ) return "";
if( preg_match( "#id=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$temp_array = array();
$where_id = array();
$match[1] = explode (',', trim($match[1]));
foreach ($match[1] as $value) {
if( count(explode('-', $value)) == 2 ) {
$value = explode('-', $value);
$where_id[] = "id >= '" . intval($value[0]) . "' AND id <= '".intval($value[1])."'";
} else $temp_array[] = intval($value);
}
if ( count($temp_array) ) {
$where_id[] = "id IN ('" . implode("','", $temp_array) . "')";
$ids_for_sort = "FIND_IN_SET(id, '".implode(",", $temp_array)."') ";
}
if ( count($where_id) ) {
$custom_id = "(".implode(' OR ', $where_id).")";
$where[] = $custom_id;
}
}
if( preg_match( "#idexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$temp_array = array();
$where_id = array();
$match[1] = explode (',', trim($match[1]));
foreach ($match[1] as $value) {
if( count(explode('-', $value)) == 2 ) {
$value = explode('-', $value);
$where_id[] = "(id < '" . intval($value[0]) . "' OR id > '".intval($value[1])."')";
} else $temp_array[] = intval($value);
}
if ( count($temp_array) ) {
$where_id[] = "id NOT IN ('" . implode("','", $temp_array) . "')";
}
if ( count($where_id) ) {
$custom_id = implode(' AND ', $where_id);
$where[] = $custom_id;
}
}
$cat_join = "";
if( preg_match( "#category=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$cats_select = true;
$temp_array = array();
$match[1] = explode (',', $match[1]);
foreach ($match[1] as $value) {
if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
else $temp_array[] = intval($value);
}
$temp_array = trim(implode(',', $temp_array));
if( $temp_array AND preg_match( "#subcat=['\"](yes|only)['\"]#i", $param_str, $subcat_match ) ) {
$subcat_array = array();
$c_arr = explode (',', $temp_array);
foreach ($c_arr as $value) {
$subcat_array[] = get_sub_cats ( $value, '', false );
}
$subcat_array = trim(str_replace( "|", ",", implode(',', $subcat_array)));
if( $subcat_match[1] == "yes" ) {
$temp_array .= ','.$subcat_array;
}
if( $subcat_match[1] == "only" ) {
$temp_array = $subcat_array;
}
}
$custom_category = $db->safesql( $temp_array );
$custom_category = str_replace( ",", "','", $custom_category );
if( $config['allow_multi_category'] ) {
$cat_join = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . $custom_category . "')) c ON (p.id=c.news_id) ";
} else {
$where[] = "p.category IN ('" . $custom_category . "')";
}
}
if( preg_match( "#categoryexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$cats_select = true;
$temp_array = array();
$match[1] = explode (',', $match[1]);
foreach ($match[1] as $value) {
if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
else $temp_array[] = intval($value);
}
$temp_array = trim(implode(',', $temp_array));
if( $temp_array AND preg_match( "#subcat=['\"](yes|only)['\"]#i", $param_str, $subcat_match ) ) {
$subcat_array = array();
$c_arr = explode (',', $temp_array);
foreach ($c_arr as $value) {
$subcat_array[] = get_sub_cats ( $value, '', false );
}
$subcat_array = trim(str_replace( "|", ",", implode(',', $subcat_array)));
if( $subcat_match[1] == "yes" ) {
$temp_array .= ','.$subcat_array;
}
if( $subcat_match[1] == "only" ) {
$temp_array = $subcat_array;
}
}
$custom_category = $db->safesql( $temp_array );
$custom_category = str_replace( ",", "','", $custom_category );
if( $config['allow_multi_category'] ) {
$where[] = "p.id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . $custom_category . "') )";
} else {
$where[] = "category NOT IN ('" . $custom_category . "')";
}
}
if( !$cats_select ) {
$allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );
if( $allow_list[0] != "all" AND !$user_group[$member_id['user_group']]['allow_short'] ) {
if( $config['allow_multi_category'] ) {
$cat_join = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . implode( "','", $allow_list ) . "')) c ON (p.id=c.news_id) ";
} else {
$where[] = "category IN ('" . implode( "','", $allow_list ) . "')";
}
}
$not_allow_cats = explode ( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
if( $not_allow_cats[0] != "" ) {
if ($config['allow_multi_category']) {
$where[] = "p.id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . implode ( "','", $not_allow_cats ) . "') )";
} else {
$where[] = "category NOT IN ('" . implode ( "','", $not_allow_cats ) . "')";
}
}
}
$sql_select = str_replace( "{cat_join}", $cat_join, $sql_select );
if( preg_match( "#futureannounce=['\"](.+?)['\"]#i", $param_str, $match ) ) {
if( $match[1] == "yes" ) $fromfuture = true;
else $fromfuture = false;
} else $fromfuture = false;
if( preg_match( "#days=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$days = intval(trim($match[1]));
if($fromfuture) {
$startdate = date("Y-m-d 00:00:00", strtotime("+1 day"));
$enddate = date("Y-m-d 00:00:00", strtotime("+".($days+1)." day"));
$where[] = "p.date >= '{$startdate}' AND p.date < '{$enddate}'";
} else {
$where[] = "p.date >= '{$thisdate}' - INTERVAL {$days} DAY AND p.date < '{$thisdate}'";
}
} else $days = 0;
if( preg_match( "#author=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$match[1] = explode (',', $match[1]);
$temp_array = array();
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
$temp_array[] = "p.autor = '{$value}'";
}
$where[] = "(".implode(' OR ', $temp_array).")";
}
if( preg_match( "#authorexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$match[1] = explode (',', $match[1]);
$temp_array = array();
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
$temp_array[] = "p.autor != '{$value}'";
}
$where[] = implode(' AND ', $temp_array);
}
if( preg_match( "#catalog=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$match[1] = explode (',', $match[1]);
$temp_array = array();
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
$temp_array[] = "p.symbol = '{$value}'";
}
$where[] = "(".implode(' OR ', $temp_array).")";
}
if( preg_match( "#catalogexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$match[1] = explode (',', $match[1]);
$temp_array = array();
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
$temp_array[] = "p.symbol != '{$value}'";
}
$where[] = implode(' AND ', $temp_array);
}
if( preg_match( "#xfields=[\"](.+?)[\"]#i", $param_str, $match ) ) {
$match[1] = explode (',', $match[1]);
$temp_array = array();
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
$temp_array[] = "p.xfields LIKE '%{$value}%'";
}
$where[] = "(".implode(' OR ', $temp_array).")";
}
if( preg_match( "#xfieldsexclude=[\"](.+?)[\"]#i", $param_str, $match ) ) {
$match[1] = explode (',', $match[1]);
$temp_array = array();
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
$temp_array[] = "p.xfields NOT LIKE '%{$value}%'";
}
$where[] = implode(' AND ', $temp_array);
}
if( preg_match( "#template=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$custom_template = trim($match[1]);
} else $custom_template = "shortstory";
if( preg_match( "#from=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$custom_from = intval($match[1]);
$custom_all = $custom_from;
} else { $custom_from = 0; $custom_all = 0;}
if( preg_match( "#limit=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$custom_limit = intval($match[1]);
} else $custom_limit = intval($config['news_number']);
$customCacheFile = false;
$cacheTimestamp = false;
if( preg_match( "#cache=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$timeUnit = substr($match[1], -1);
if( in_array($timeUnit, array('d', 'h', 'm') ) ) {
$amount = intval($match[1]);
if( $amount ) {
$cacheTimestamp = $amount . $timeUnit;
$customCacheFile = true;
$config['allow_cache'] = 1;
}
} else {
if ($match[1] == "yes") $config['allow_cache'] = 1;
else $config['allow_cache'] = false;
}
}
if ($customCacheFile) $cacheFile = "customblock"; else $cacheFile = "news";
if( $config['allow_cache'] ) $short_news_cache = true; else $short_news_cache = false;
if( preg_match( "#fixed=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$fixed = "";
if( $match[1] == "yes" ) $fixed = "fixed DESC, ";
elseif( $match[1] == "only" ) { $where[] = "fixed='1'"; }
elseif( $match[1] == "without" ) { $where[] = "fixed='0'"; }
} else $fixed = "";
if( preg_match( "#banners=['\"](.+?)['\"]#i", $param_str, $match ) ) {
if( $match[1] == "yes" ) $use_banners = true;
else $use_banners = false;
} else $use_banners = false;
if( $is_logged and ($user_group[$member_id['user_group']]['allow_edit'] and ! $user_group[$member_id['user_group']]['allow_all_edit']) ) $config['allow_cache'] = false;
if (isset($custom_category) AND $custom_category) {
if( $cat_info[$custom_category]['news_sort'] ) $news_sort = $cat_info[$custom_category]['news_sort']; else $news_sort = $config['news_sort'];
if( $cat_info[$custom_category]['news_msort'] ) $news_msort = $cat_info[$custom_category]['news_msort']; else $news_msort = $config['news_msort'];
} else {
$news_sort = $config['news_sort'];
$news_msort = $config['news_msort'];
}
if( preg_match( "#sort=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$allowed_sort = array ('asc' => 'ASC', 'desc' => 'DESC' );
$match[1] = strtolower($match[1]);
if ( $allowed_sort[$match[1]] ) $news_msort = $allowed_sort[$match[1]];
}
if( preg_match( "#order=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$allowed_sort = array ('date' => 'date', 'editdate' => 'editdate', 'rating' => 'rating', 'reads' => 'news_read', 'comments' => 'p.comm_num','title' => 'title', 'rand' => 'RAND()' );
$match[1] = strtolower($match[1]);
if ( $allowed_sort[$match[1]] ) $news_sort = $allowed_sort[$match[1]];
if ($match[1] == "rand" ) { $fixed = ""; $news_msort = ""; }
if($match[1] == "id_as_list" AND $ids_for_sort){
$news_sort = $ids_for_sort;
$news_msort = "";
}
if($match[1] == "lastviewed") {
if(!$config['last_viewed']) return $lang['enable_lastviewed'];
if( !$_COOKIE['viewed_ids'] ) return '';
$viewed_ids = explode(',', trim($_COOKIE['viewed_ids']));
$temp_array = array();
if($news_msort == "ASC") $viewed_ids = array_reverse($viewed_ids);
foreach ($viewed_ids as $value) {
$value = intval(trim($value));
if ($value > 0) $temp_array[] = $db->safesql($value);
}
if( count($temp_array) ) {
$fixed = "";
$where[] = "id IN ('" . implode("','", $temp_array) . "')";
$news_sort = "FIND_IN_SET(id, '".implode(",", $temp_array)."') ";
$news_msort = "";
$config['allow_cache'] = false;
}
}
}
if( preg_match( "#sortbyuser=['\"](.+?)['\"]#i", $param_str, $match ) ) {
if( $match[1] == "yes" ) {
if (isset ( $_SESSION['dle_sort_global'] )) $news_sort = $_SESSION['dle_sort_global'];
if (isset ( $_SESSION['dle_direction_global'] )) $news_msort = $_SESSION['dle_direction_global'];
if ( !defined('CUSTOMSORT') ) {
define('CUSTOMSORT', true);
}
}
}
if( preg_match( "#navigation=['\"](.+?)['\"]#i", $param_str, $match ) ) {
if( $match[1] == "yes" AND $url_page !== false ) {
$build_navigation = true;
if (isset ( $_GET['cstart'] )) $cstart = intval ( $_GET['cstart'] ); else $cstart = 0;
if ($cstart > $config['max_cache_pages']) $config['allow_cache'] = false;
if ($cstart) {
$cstart = $cstart - 1;
$cstart = ($cstart * $custom_limit) + $custom_from;
$custom_from = $cstart;
$remove_canonical = true;
}
$custom_cache_id = $custom_cache_id.$cstart;
} else $build_navigation = false;
} else $build_navigation = false;
$content = dle_cache($cacheFile, $custom_cache_id, true, $cacheTimestamp);
if( $content ) {
$content = json_decode($content, true);
if( is_array( $content ) ) {
if( $content['navigation'] ) {
if ( !defined('CUSTOMNAVIGATION') ) {
define('CUSTOMNAVIGATION', true);
$custom_navigation = $content['navigation'];
}
}
if( isset( $active['last-modified'] ) ) {
if( $active['last-modified'] > $_DOCUMENT_DATE ) {
$_DOCUMENT_DATE = $active['last-modified'];
}
}
$content = $content['content'];
}
}
if( $content !== false ) {
$config['allow_cache'] = $allow_cache;
$custom_news = true;
$row = $save_row;
if ($config['allow_quick_wysiwyg'] AND ($user_group[$member_id['user_group']]['allow_edit'] OR $user_group[$member_id['user_group']]['allow_all_edit'])) $allow_comments_ajax = true;
return $content;
} else {
if( preg_match( "#tags=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$temp_array = array();
$match[1] = explode (',', trim($match[1]));
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
if( $value ) $temp_array[] = "tag='{$value}'";
}
if ( count($temp_array) ) {
$temp_array = implode(" OR ", $temp_array);
$db->query ( "SELECT news_id FROM " . PREFIX . "_tags WHERE {$temp_array}" );
$temp_array = array ();
while ( $row = $db->get_row () ) {
if (!in_array($row['news_id'], $temp_array)) $temp_array[] = $row['news_id'];
}
if (count ( $temp_array )) {
$where[] = "id IN ('" . implode("','", $temp_array) . "')";
} else $where[] = "id IN ('0')";
}
}
$where[] = "approve=1";
if( $config['no_date'] AND !$config['news_future'] AND !$days) $where[] = "date < '" . $thisdate . "'";
if ( $build_navigation ) {
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post p {$cat_join}WHERE ".implode(' AND ', $where);
} else $sql_count = "";
$tpl = new dle_template();
$tpl->dir = TEMPLATE_DIR;
$tpl->is_custom = true;
$tpl->load_template( $custom_template . '.tpl' );
$sql_select .= " WHERE ".implode(' AND ', $where)." ORDER BY " . $fixed . $news_sort . " " . $news_msort . " LIMIT " . $custom_from . "," . $custom_limit;
$sql_result = $db->query( $sql_select );
include (DLEPlugins::Check(ENGINE_DIR . '/modules/show.custom.php'));
if( $config['files_allow'] ) if( strpos( $tpl->result['content'], "[attachment=" ) !== false ) {
$tpl->result['content'] = show_attach( $tpl->result['content'], $attachments );
}
if ( $custom_news ) create_cache($cacheFile, json_encode( array('content' => $tpl->result['content'], 'navigation' => $tpl->result['navigation'], 'last-modified' => $_DOCUMENT_DATE ) , JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ), $custom_cache_id, true, $cacheTimestamp );
$config['allow_cache'] = $allow_cache;
$tpl->is_custom = false;
$row = $save_row;
return $tpl->result['content'];
}
}
function check_ip($ips) {
$_IP = get_ip();
$blockip = false;
if( is_array( $ips ) ) {
if( strpos($_IP, ":") === false ) {
$delimiter = ".";
} else $delimiter = ":";
$this_ip_split = explode( $delimiter, $_IP );
$ip_lenght = count($this_ip_split);
foreach ( $ips as $ip_line ) {
$ip_arr = trim( $ip_line['ip'] );
if( $ip_arr == $_IP ) {
$blockip = $_IP;
break;
} elseif ( count(explode ('/', $ip_arr)) == 2 ) {
if( maskmatch($_IP, $ip_arr) ) {
$blockip = $ip_line['ip'];
break;
}
} else {
$ip_check_matches = 0;
$db_ip_split = explode( $delimiter, $ip_arr );
for($i_i = 0; $i_i < $ip_lenght; $i_i ++) {
if( $this_ip_split[$i_i] == $db_ip_split[$i_i] or $db_ip_split[$i_i] == '*' ) {
$ip_check_matches += 1;
}
}
if( $ip_check_matches == $ip_lenght ) {
$blockip = $ip_line['ip'];
break;
}
}
}
}
return $blockip;
}
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 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 show_attach($story, $id, $static = false) {
global $db, $config, $lang, $user_group, $member_id, $_TIME, $news_date;
$find_1 = array();
$find_2 = array();
$replace_1 = array();
$replace_2 = array();
$tpl = new dle_template();
$tpl->dir = TEMPLATE_DIR;
$root = $config['http_home_url'];
if (strpos($root, "//") === 0) {
$root = isSSL() ? $root = "https:".$root : $root = "http:".$root;
} elseif (strpos($root, "/") === 0) {
$root = isSSL() ? $root = "https://".$_SERVER['HTTP_HOST'].$root : "http://".$_SERVER['HTTP_HOST'].$root;
}
if( $static ) {
if( is_array( $id ) and count( $id ) ) {
$list = array();
foreach ( $id as $value ) {
$list[] = intval($value);
}
$id = implode( ',', $list );
$where = "static_id IN ({$id})";
} else $where = "static_id = '".intval($id)."'";
$db->query( "SELECT * FROM " . PREFIX . "_static_files WHERE $where" );
$area = "&area=static";
} else {
if( is_array( $id ) and count( $id ) ) {
$list = array();
foreach ( $id as $value ) {
$list[] = intval($value);
}
$id = implode( ',', $list );
$where = "news_id IN ({$id})";
} else $where = "news_id = '".intval($id)."'";
$db->query( "SELECT * FROM " . PREFIX . "_files WHERE $where" );
$area = "";
}
if( !file_exists( $tpl->dir . "/attachment.tpl" ) ) {
$tpl->template = <<<HTML
[allow-download]<span class="attachment"><a href="{link}" >{name}</a> [count] [{size}] ({$lang['att_dcount']} {count})[/count]</span>[/allow-download]
[not-allow-download]<span class="attachment">{$lang['att_denied']}</span>[/not-allow-download]
HTML;
$tpl->copy_template = $tpl->template;
} else {
$tpl->load_template( 'attachment.tpl' );
}
while ( $row = $db->get_row() ) {
$row['name'] = explode( "/", $row['name'] );
$row['name'] = end( $row['name'] );
$filename_arr = explode( ".", $row['onserver'] );
$type = strtolower(end( $filename_arr ));
$find_1[] = '[attachment=' . $row['id'] . ']';
$find_2[] = "#\[attachment={$row['id']}:(.+?)\]#i";
if( $row['is_public'] ) $uploaded_path = 'public_files/'; else $uploaded_path = 'files/';
if (stripos ( $tpl->copy_template, "{md5}" ) !== false) {
if($row['checksum']) $tpl->set( '{md5}', $row['checksum'] );
else $tpl->set( '{md5}', @md5_file( ROOT_DIR . '/uploads/' . $uploaded_path.$row['onserver'] ) );
}
if (stripos ( $tpl->copy_template, "{size}" ) !== false) {
if($row['size']) $tpl->set( '{size}', formatsize($row['size']) );
else $tpl->set( '{size}', formatsize( @filesize( ROOT_DIR . '/uploads/' . $uploaded_path.$row['onserver'] ) ) );
}
$microsoft_ext = array("doc", "docx", "docm", "dotm", "dotx", "xlsx", "xlsb", "xls", "xlsm", "pptx", "ppsx", "ppt", "pps", "pptm", "potm", "ppam", "potx", "ppsm", "odt", "odx");
$google_ext = array("pdf");
if ( in_array($type, $microsoft_ext) OR in_array($type, $google_ext) ) {
$tpl->set( '[allow-online]', "" );
$tpl->set( '[/allow-online]', "" );
if(in_array($type, $microsoft_ext)) {
$tpl->set('{online-view-link}', "https://view.officeapps.live.com/op/view.aspx?src=" . urlencode($root . "index.php?do=download&id=" . $row['id'] . $area . "&viewonline=1"));
} else {
$tpl->set('{online-view-link}', "https://docs.google.com/viewer?url=" . urlencode($root . "index.php?do=download&id=" . $row['id'] . $area . "&viewonline=1"));
}
} else {
$tpl->set( '{online-view-link}', "" );
$tpl->set_block( "'\[allow-online\](.*?)\[/allow-online\]'si", "" );
}
if ( $user_group[$member_id['user_group']]['allow_files'] ) {
$tpl->set( '[allow-download]', "" );
$tpl->set( '[/allow-download]', "" );
$tpl->set_block( "'\[not-allow-download\](.*?)\[/not-allow-download\]'si", "" );
} else {
$tpl->set( '[not-allow-download]', "" );
$tpl->set( '[/not-allow-download]', "" );
$tpl->set_block( "'\[allow-download\](.*?)\[/allow-download\]'si", "" );
}
if ( $config['files_count'] ) {
$tpl->set( '{count}', $row['dcount'] );
$tpl->set( '[count]', "" );
$tpl->set( '[/count]', "" );
$tpl->set_block( "'\[not-allow-count\](.*?)\[/not-allow-count\]'si", "" );
} else {
$tpl->set( '{count}', "" );
$tpl->set( '[not-allow-count]', "" );
$tpl->set( '[/not-allow-count]', "" );
$tpl->set_block( "'\[count\](.*?)\[/count\]'si", "" );
}
if( date( 'Ymd', $row['date'] ) == date( 'Ymd', $_TIME ) ) {
$tpl->set( '{date}', $lang['time_heute'] . langdate( ", H:i", $row['date'] ) );
} elseif( date( 'Ymd', $row['date'] ) == date( 'Ymd', ($_TIME - 86400) ) ) {
$tpl->set( '{date}', $lang['time_gestern'] . langdate( ", H:i", $row['date'] ) );
} else {
$tpl->set( '{date}', langdate( $config['timestamp_active'], $row['date'] ) );
}
$news_date = $row['date'];
$tpl->copy_template = preg_replace_callback ( "#\{date=(.+?)\}#i", "formdate", $tpl->copy_template );
$tpl->set( '{name}', $row['name'] );
$tpl->set( '{extension}', $type );
$tpl->set( '{link}', $config['http_home_url']."index.php?do=download&id=".$row['id'].$area );
$tpl->set( '{id}', $row['id'] );
$tpl->compile( 'attachment' );
$replace_1[] = $tpl->result['attachment'];
$tpl->result['attachment'] = str_replace( $row['name'], "", $tpl->result['attachment'] );
$replace_2[] = $tpl->result['attachment'];
$tpl->result['attachment'] = '';
}
$tpl->clear();
$db->free();
$story = str_replace ( $find_1, $replace_1, $story );
$story = preg_replace( $find_2, $replace_2, $story );
return $story;
}
function xfieldsload($profile = false) {
global $lang, $config;
if( $profile ) $path = ENGINE_DIR . '/data/xprofile.txt';
else $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( "|", "|", $value2 );
$value2 = str_replace( "__NEWL__", "
", $value2 );
$value2 = html_entity_decode($value2, ENT_QUOTES, $config['charset']);
$fields[$name][$name2] = $value2;
}
}
}
return $fields;
}
return array();
}
function xfieldsdataload($id) {
if( !is_string($id) OR !$id ) return array();
$xfieldsdata = explode( "||", $id );
foreach ( $xfieldsdata as $xfielddata ) {
list ( $xfielddataname, $xfielddatavalue ) = explode( "|", $xfielddata );
$xfielddataname = str_replace( "|", "|", $xfielddataname );
$xfielddataname = str_replace( "__NEWL__", "
", $xfielddataname );
$xfielddatavalue = str_replace( "|", "|", $xfielddatavalue );
$xfielddatavalue = str_replace( "__NEWL__", "
", $xfielddatavalue );
$data[$xfielddataname] = trim($xfielddatavalue);
}
return $data;
}
function clear_rss_content ( $content, $rssmode ) {
$content = preg_replace_callback( "#<div class=['\"]quote_body contenteditable['\"]>(.+?)</div>#is", function ($matches) {
return trim($matches[1]);
}, $content );
$content = preg_replace_callback( "#<div class=['\"]quote['\"]>(.+?)</div>#is", function ($matches) {
return trim($matches[1]);
}, $content );
$content = preg_replace_callback( "#<div class=['\"]quote_block noncontenteditable['\"]>(.+?)</div>#is", function ($matches) {
return "<blockquote>".trim($matches[1])."</blockquote>";
}, $content );
$content = preg_replace( "#\[hide(.*?)\](.+?)\[/hide\]#is", "", $content );
$content = preg_replace( "'\[attachment=(.*?)\]'si", "", $content );
$content = preg_replace( "#<!--dle_spoiler(.+?)<!--spoiler_text-->#is", "", $content );
$content = preg_replace( "#<!--spoiler_text_end-->(.+?)<!--/dle_spoiler-->#is", "", $content );
$content = preg_replace( "'{banner_(.*?)}'si", "", $content );
$content = preg_replace( "'\[banner_(.*?)\](.*?)\[/banner_(.*?)\]'si", "", $content );
$content = preg_replace('#<script[^>]*>.*?</script>#is', '', $content );
$content = preg_replace( "#<!--(.+?)-->#is", "", $content );
$content = preg_replace('/\s+/u', ' ', $content);
return trim($content);
}
function clear_content($content, $len = 300, $replace_single_quote = true) {
global $config;
if (!$content or !is_string($content)) {
return '';
}
$remove = array("`", " ", "
", "
", ' ', '
', '
', "{PAGEBREAK}", " ", "<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("#<!--dle_spoiler(.+?)<!--spoiler_text-->#is", "", $content);
$content = preg_replace("#<!--spoiler_text_end-->(.+?)<!--/dle_spoiler-->#is", "", $content);
$content = preg_replace("'{banner_(.*?)}'si", "", $content);
$content = preg_replace("'\[banner_(.*?)\](.*?)\[/banner_(.*?)\]'si", "", $content);
$content = preg_replace("#<pre(.*?)>(.+?)</pre>#is", "", $content);
$content = str_replace("а", "a", $content);
$content = str_replace("o", "o", $content);
$content = str_replace("><", "> <", $content);
$content = str_replace($remove, ' ', $content);
$content = strip_tags($content);
$content = preg_replace("#(^|\s|>)((http|https)://\w+[^\s\[\]\<]+)#i", '', $content);
if ($replace_single_quote) {
$content = str_replace("&amp;", "&", htmlspecialchars($content, ENT_QUOTES, $config['charset']));
} else {
$content = str_replace("&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_keywords($story) {
global $metatags, $config;
$keyword_count = 20;
$newarr = array ();
$bad_keywords_symbol = array(",", ".", "/", "#", ":", "@", "~", "=", "-", "+", "*", "^", "%", "$", "?", "!");
$remove = array(' ', '
', '
');
$story = str_replace( $remove, ' ', stripslashes($story) );
$story = clear_content($story, 0, false);
$metatags['description'] = $story;
if( dle_strlen( $metatags['description'], $config['charset'] ) > 300 ) {
$metatags['description'] = dle_substr( $story, 0, 300, $config['charset'] );
if( ($temp_dmax = dle_strrpos( $metatags['description'], ' ', $config['charset'] )) ) $metatags['description'] = dle_substr( $metatags['description'], 0, $temp_dmax, $config['charset'] );
}
$story = str_replace( $bad_keywords_symbol, '', $story );
$arr = explode( " ", $story );
foreach ( $arr as $word ) {
$word = str_replace("&", "&", $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 );
$metatags['keywords'] = implode( ", ", $arr );
}
function news_permission($id) {
if( $id == "" ) return;
$data = array ();
$groups = explode( "||", $id );
foreach ( $groups as $group ) {
list ( $groupid, $groupvalue ) = explode( ":", $group );
$data[$groupid] = $groupvalue;
}
return $data;
}
function bannermass($fest, $massiv) {
if( is_array($massiv) AND count($massiv) ) {
return $fest . $massiv[array_rand( $massiv )]['text'];
} else return $fest;
}
function get_sub_cats($id, $subcategory = '', $with_id = true) {
global $cat_info;
$subfound = array ();
if( !$subcategory AND $with_id) $subcategory = $id;
foreach ( $cat_info as $cats ) {
if( $cats['parentid'] == $id ) {
$subfound[] = $cats['id'];
}
}
foreach ( $subfound as $parentid ) {
if( $subcategory ) $subcategory .= "|";
$subcategory .= $parentid;
$subcategory = get_sub_cats( $parentid, $subcategory );
}
return $subcategory;
}
function check_xss() {
$url = html_entity_decode( urldecode( $_SERVER['QUERY_STRING'] ), ENT_QUOTES, 'ISO-8859-1' );
$url = str_replace( "\", "/", $url );
if (isset($_GET['do']) AND $_GET['do'] == "xfsearch") {
$f = html_entity_decode( urldecode( $_GET['xf'] ), ENT_QUOTES, 'ISO-8859-1' );
$count1 = substr_count ($f, "'");
$count2 = substr_count ($url, "'");
if ( $count1 == $count2 AND (strpos( $url, '<' ) === false) AND (strpos( $url, '>' ) === false) AND (strpos( $url, '.php' ) === false) ) return;
}
if (isset($_GET['do']) AND $_GET['do'] == "tags") {
$f = html_entity_decode( urldecode( $_GET['tag'] ), ENT_QUOTES, 'ISO-8859-1' );
$count1 = substr_count ($f, "'");
$count2 = substr_count ($url, "'");
if ( $count1 == $count2 AND (strpos( $url, '<' ) === false) AND (strpos( $url, '>' ) === false) AND (strpos( $url, './' ) === false) AND (strpos( $url, '../' ) === false) AND (strpos( $url, '.php' ) === false) ) return;
}
if( $url ) {
if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, './' ) !== false) || (strpos( $url, '../' ) !== false) || (strpos( $url, '\'' ) !== false) || (strpos( $url, '.php' ) !== false) ) {
if( $_GET['do'] != "search" OR $_GET['subaction'] != "search" ) {
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) ) {
if( $_GET['do'] != "search" OR $_GET['subaction'] != "search" ) {
header( "HTTP/1.1 403 Forbidden" );
die( "Hacking attempt!" );
}
}
}
}
function check_same_domain($url) {
global $config;
$url = dle_strtolower( (string)parse_url( (string)$url, PHP_URL_HOST));
$value = dle_strtolower( (string)parse_url($config['http_home_url'], PHP_URL_HOST));
if( !$value ) $value = $_SERVER['HTTP_HOST'];
if( !$url OR $url == $value ) return true;
return false;
}
function if_category_rating( $category ) {
global $cat_info;
$category = explode( ',', $category );
$found = false;
foreach ( $category as $element ) {
if( isset( $cat_info[$element]['rating_type'] ) AND $cat_info[$element]['rating_type'] > -1 ) {
return $cat_info[$element]['rating_type'];
}
}
return $found;
}
function check_category( $matches=array() ) {
global $category_id;
$block = $matches[3];
$category = $category_id;
$temp_array = array();
$matches[2] = str_replace(" ", "", $matches[2] );
$matches[2] = explode (',', $matches[2]);
foreach ($matches[2] as $value) {
if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
else $temp_array[] = intval($value);
}
$temp_array = implode(',', $temp_array);
if ($matches[1] == "category" OR $matches[1] == "catlist") $action = true; else $action = false;
$cats = explode( ',', $temp_array );
$category = explode( ',', $category );
$found = false;
foreach ( $category as $element ) {
if( $action ) {
if( in_array( $element, $cats ) ) {
return $block;
}
} else {
if( in_array( $element, $cats ) ) {
$found = true;
}
}
}
if ( !$action AND !$found ) {
return $block;
}
return "";
}
function clean_url($url) {
if( $url == '' ) return;
$url = str_replace( "http://", "", strtolower( $url ) );
$url = str_replace( "https://", "", $url );
if( substr( $url, 0, 2 ) == '//' ) $url = str_replace( "//", "", $url );
if( 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 ( $val AND $cat_info[$val]['id'] ) {
$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 get_categories($id, $separator=" »") {
global $cat_info, $config, $PHP_SELF;
if( ! $id ) return;
$parent_id = $cat_info[$id]['parentid'];
if( $config['allow_alt_url'] ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $id ) . "/\">{$cat_info[$id]['name']}</a>";
else $list = "<a href=\"$PHP_SELF?do=cat&category={$cat_info[$id]['alt_name']}\">{$cat_info[$id]['name']}</a>";
while ( $parent_id ) {
if( $config['allow_alt_url'] ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "/\">{$cat_info[$parent_id]['name']}</a>" . $separator . $list;
else $list = "<a href=\"$PHP_SELF?do=cat&category={$cat_info[$parent_id]['alt_name']}\">{$cat_info[$parent_id]['name']}</a>" . $separator . $list;
$parent_id = $cat_info[$parent_id]['parentid'];
if( !isset($cat_info[$parent_id]['id']) OR ( isset($cat_info[$parent_id]['id']) AND !$cat_info[$parent_id]['id']) ) {
break;
}
if($parent_id) {
if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
}
}
return $list;
}
function get_breadcrumbcategories($id, $separator="»", $last_link = true) {
global $cat_info, $config, $PHP_SELF, $elements, $position;
if( !$id ) return;
$parent_id = $cat_info[$id]['parentid'];
$list = $temp = array();
$i = 0;
if( $config['allow_alt_url'] ) $list[0]['link'] = $config['http_home_url'] . get_url( $id ) . "/";
else $list[0]['link'] = "{$PHP_SELF}?do=cat&category={$cat_info[$id]['alt_name']}";
if (!$last_link) {
$list[0]['uri'] = $list[0]['link'];
unset($list[0]['link']);
}
$list[0]['name'] = $cat_info[$id]['name'];
while ( $parent_id ) {
$i++;
if( $config['allow_alt_url'] ) $list[$i]['link'] = $config['http_home_url'] . get_url( $parent_id ) . "/";
else $list[$i]['link'] = "{$PHP_SELF}?do=cat&category={$cat_info[$parent_id]['alt_name']}";
$list[$i]['name'] = $cat_info[$parent_id]['name'];
$parent_id = $cat_info[$parent_id]['parentid'];
if( !isset($cat_info[$parent_id]['id']) OR ( isset($cat_info[$parent_id]['id']) AND !$cat_info[$parent_id]['id']) ) {
break;
}
if($parent_id) {
if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
}
}
if(count($list)) {
$list = array_reverse($list);
foreach($list as $value) {
if( isset($value['link']) AND $value['link']) {
$temp[] = "<a href=\"{$value['link']}\">{$value['name']}</a>";;
} else {
$temp[] = $value['name'];
$value['link'] = $value['uri'];
}
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $value['link'],
'name' => $value['name'],
)
);
$position++;
}
$list = $temp;
}
return implode($separator, $list);
}
function news_sort($do) {
global $config, $lang, $category_id, $cat_info;
if( ! $do ) $do = "main";
$find_sort = "dle_sort_" . $do;
$direction_sort = "dle_direction_" . $do;
if($do == "cat" AND $category_id) {
$find_sort .= "_".$category_id;
$direction_sort .= "_".$category_id;
}
$find_sort = str_replace( ".", "", $find_sort );
$direction_sort = str_replace( ".", "", $direction_sort );
$sort = array ();
$allowed_sort = array ('date', 'rating', 'news_read', 'comm_num','title', 'editdate' );
$soft_by_array = array (
'date' => array ( 'name' => $lang['sort_by_date'], 'value' => "date", 'direction' => "desc", 'image' => "class=\"sort_by_date\"" ),
'editdate' => array( 'name' => $lang['sort_by_edate'], 'value' => "editdate", 'direction' => "desc", 'image' => "class=\"sort_by_editdate\""),
'rating' => array ( 'name' => $lang['sort_by_rating'], 'value' => "rating", 'direction' => "desc", 'image' => "class=\"sort_by_rating\"" ),
'news_read' => array ( 'name' => $lang['sort_by_read'], 'value' => "news_read", 'direction' => "desc", 'image' => "class=\"sort_by_news_read\"" ),
'comm_num' => array ( 'name' => $lang['sort_by_comm'], 'value' => "comm_num", 'direction' => "desc", 'image' => "class=\"sort_by_comm_num\"" ),
'title' => array ( 'name' => $lang['sort_by_title'], 'value' => "title", 'direction' => "desc", 'image' => "class=\"sort_by_title\"" )
);
if( !$config['allow_comments'] ) { unset($allowed_sort[3]); unset($soft_by_array['comm_num']); }
if( isset( $_SESSION[$direction_sort] ) AND ($_SESSION[$direction_sort] == "desc" OR $_SESSION[$direction_sort] == "asc") ) $direction = $_SESSION[$direction_sort];
else $direction = $config['news_msort'];
if( isset( $_SESSION[$find_sort] ) AND $_SESSION[$find_sort] AND in_array( $_SESSION[$find_sort], $allowed_sort ) ) $soft_by = $_SESSION[$find_sort];
elseif( $do == "cat" AND $cat_info[$category_id]['news_sort'] ) $soft_by = $cat_info[$category_id]['news_sort'];
else $soft_by = $config['news_sort'];
if( strtolower( $direction ) == "asc" ) {
$soft_by_array[$soft_by]['image'] = "class=\"desc sort_by_{$soft_by}\"";
$soft_by_array[$soft_by]['direction'] = "desc";
} else {
$soft_by_array[$soft_by]['image'] = "class=\"asc sort_by_{$soft_by}\"";
$soft_by_array[$soft_by]['direction'] = "asc";
}
foreach ( $soft_by_array as $value ) {
$sort[] = "<li " . $value['image'] . "><a href=\"#\" onclick=\"dle_change_sort('{$value['value']}','{$value['direction']}'); return false;\">" . $value['name'] . "</a></li>";
}
$sort = implode($sort);
$sort = <<<HTML
<form name="news_set_sort" id="news_set_sort" method="post">
<ul class="sort">{$sort}</ul>
<input type="hidden" name="dlenewssortby" id="dlenewssortby" value="{$config['news_sort']}">
<input type="hidden" name="dledirection" id="dledirection" value="{$config['news_msort']}">
<input type="hidden" name="set_new_sort" id="set_new_sort" value="{$find_sort}">
<input type="hidden" name="set_direction_sort" id="set_direction_sort" value="{$direction_sort}">
</form>
HTML;
return $sort;
}
function compare_tags($a, $b) {
if( $a['tag'] == $b['tag'] ) return 0;
return strcasecmp( $a['tag'], $b['tag'] );
}
function convert_unicode($t, $to = '') {
// deprecated
return $t;
}
function build_js($js, $config) {
global $tpl;
$js_array = array();
$extra_js_array = array();
$return_js = '';
$i=0;
$defer = "";
$config['jquery_version'] = intval($config['jquery_version']);
$ver = $config['jquery_version'] ? $config['jquery_version'] : "";
if( is_array($tpl->js_array) AND count($tpl->js_array) ) {
foreach ( $tpl->js_array as $js_file) {
$js_file = str_ireplace( '{THEME}', 'templates/' . $config['skin'], $js_file );
if( $js_file[0] == '/' ) {
$js_file = substr($js_file, 1);
}
if( stripos($js_file, 'http://') === 0 OR stripos($js_file, 'https://') === 0 ) {
$extra_js_array[] = $js_file;
} else $js[] = $js_file;
}
}
if ($config['js_min']) {
$js_array[] = "<script src=\"{$config['http_home_url']}engine/classes/min/index.php?g=general{$ver}&v={$config['cache_id']}\"></script>";
$default_array = array (
"engine/classes/js/jqueryui{$ver}.js",
'engine/classes/js/dle_js.js',
);
if ( count($js) ) $js = array_merge($default_array, $js); else $js = $default_array;
$js_array[] = "<script src=\"{$config['http_home_url']}engine/classes/min/index.php?f=".implode(",", $js)."&v={$config['cache_id']}\" defer></script>";
$return_js = implode("
", $js_array);
} else {
$default_array = array (
"engine/classes/js/jquery{$ver}.js",
"engine/classes/js/jqueryui{$ver}.js",
'engine/classes/js/dle_js.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=\"{$config['http_home_url']}{$value}?v={$config['cache_id']}\"{$defer}></script>";
$i++;
}
$return_js = implode("
", $js_array);
}
if( count($extra_js_array) ) {
foreach ($extra_js_array as $value) {
$return_js .= "
<script src=\"{$value}\" defer></script>";
}
}
return $return_js;
}
function build_css($css, $config) {
global $tpl;
$css_array = array();
$tempate_css_array = array();
$extra_css_array = array();
$return_css = '';
if( is_array($tpl->css_array) AND count($tpl->css_array) ) {
foreach ( $tpl->css_array as $css_file) {
$css_file = str_ireplace( '{THEME}', 'templates/' . $config['skin'], $css_file );
if( $css_file[0] == '/' ) {
$css_file = substr($css_file, 1);
}
if( stripos($css_file, 'http://') === 0 OR stripos($css_file, 'https://') === 0 ) {
$extra_css_array[] = $css_file;
} else $tempate_css_array[] = $css_file;
}
}
if( count($tempate_css_array) ) {
$tempate_css_array = array_reverse($tempate_css_array);
foreach ( $tempate_css_array as $css_file) {
array_unshift($css, $css_file);
}
}
if ($config['js_min'] AND count($css) ) {
$return_css = "<link href=\"{$config['http_home_url']}engine/classes/min/index.php?f=".implode(",", $css)."&v={$config['cache_id']}\" rel=\"stylesheet\" type=\"text/css\">";
} elseif( count($css) ) {
foreach ($css as $value) {
$css_array[] = "<link href=\"{$config['http_home_url']}{$value}?v={$config['cache_id']}\" rel=\"stylesheet\" type=\"text/css\">";
}
$return_css = implode("
", $css_array);
}
if( count($extra_css_array) ) {
foreach ($extra_css_array as $value) {
$return_css .= "
<link href=\"{$value}\" rel=\"stylesheet\" type=\"text/css\">";
}
}
return $return_css;
}
function check_static($matches=array()) {
global $dle_module;
$names = $matches[2];
$block = $matches[3];
if ($matches[1] == "static") $action = true; else $action = false;
$names = str_replace(" ", "", $names );
$names = explode( ',', $names );
if ( isset($_GET['page']) ) $page = trim($_GET['page']); else $page = "";
if( $action ) {
if( in_array( $page, $names ) AND $dle_module == "static" ) {
return $block;
}
} else {
if( !in_array( $page, $names ) OR $dle_module != "static") {
return $block;
}
}
return "";
}
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 ($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 get_votes($all) {
$data = array ();
if( $all != "" ) {
$all = explode( "|", $all );
foreach ( $all as $vote ) {
list ( $answerid, $answervalue ) = explode( ":", $vote );
$data[$answerid] = intval( $answervalue );
}
}
return $data;
}
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_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_TIMEOUT, 5 );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
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 CheckGzip(){
if (headers_sent() || connection_aborted() || ini_get('zlib.output_compression')) return false;
if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'br' ) !== false AND function_exists( 'brotli_compress' ) ) return "br";
if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false AND function_exists( 'gzencode' ) ) return "gzip";
return false;
}
function GzipOut($debug=false, $mysql=false){
global $config, $Timer, $db, $tpl, $_DOCUMENT_DATE;
$s = "";
@header("Content-type: text/html; charset=".$config['charset']);
if ($debug) $s = "
<!-- The script execution time ".$Timer->get()." seconds -->
<!-- The time compilation of templates ".round($tpl->template_parse_time, 5)." seconds -->
<!-- Time executing MySQL query: ".round($db->MySQL_time_taken, 5)." seconds -->
<!-- The total number of MySQL queries ".$db->query_num." -->";
if( $debug AND function_exists( "memory_get_peak_usage" ) ) $s .="
<!-- RAM uses ".round(memory_get_peak_usage()/(1024*1024),2)." MB -->";
if($debug AND $mysql AND count($db->query_list) ) {
$temp_list = array();
foreach ($db->query_list as $value) {
$temp_list[] = "[query] => ".$value['query']."
[time] => ".$value['time']."
[num] => ".$value['num'];
}
$s .="
<!-- MySQL queries list:
".implode("
", $temp_list)."
-->";
}
if($_DOCUMENT_DATE) {
$IfModifiedSince = false;
if ( isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ) $IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
elseif( isset($_ENV['HTTP_IF_MODIFIED_SINCE']) ) $IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
if ($IfModifiedSince && $IfModifiedSince >= $_DOCUMENT_DATE) {
ob_end_clean();
header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
die();
}
@header ("Last-Modified: " . date('r', $_DOCUMENT_DATE) ." GMT");
}
if($config['disable_frame']) {
if( !preg_match('%^(http:|https:)?//(www.)?(webvisor.com)%', $_SERVER['HTTP_REFERER']) ) {
@header ("X-Frame-Options: SAMEORIGIN");
}
}
if ( !$config['allow_gzip'] ) {if ($debug) echo $s; ob_end_flush(); return;}
$ENCODING = CheckGzip();
if ($ENCODING) {
$s .= "
<!-- For compression was used $ENCODING -->
";
$Contents = ob_get_clean();
if ($debug){
if ($ENCODING == "br" ) {
$after_len = strlen(brotli_compress($Contents));
} else {
$after_len = strlen(gzencode($Contents));
}
$s .= "<!-- The total size of the page: ".strlen($Contents)." bytes ";
$s .= "After compression: ".$after_len." bytes -->";
$Contents .= $s;
}
header("Content-Encoding: {$ENCODING}");
if ($ENCODING == "br" ) {
$Contents = brotli_compress($Contents);
} else {
$Contents = gzencode($Contents);
}
echo $Contents;
ob_end_flush();
die();
} else {
ob_end_flush();
die();
}
}
function check_xfvalue( $matches=array() ) {
global $xfieldsdata, $preg_safe_name, $value;
$matches[1] = trim($matches[1]);
$check_values = array();
if( preg_match( "#^{$preg_safe_name}\s*\!\=\s*['\"](.+?)['\"]#i", $matches[1], $match ) ) {
$tmp_values = explode( ",", trim($match[1]) );
foreach($tmp_values as $check_value) {
$check_values[] = trim($check_value);
}
if( !in_array($xfieldsdata[$value[0]], $check_values) ) {
return $matches[2];
} else return "";
}
if( preg_match( "#^{$preg_safe_name}\s*\=\s*['\"](.+?)['\"]#i", $matches[1], $match ) ) {
$tmp_values = explode( ",", trim($match[1]) );
foreach($tmp_values as $check_value) {
$check_values[] = trim($check_value);
}
if( in_array($xfieldsdata[$value[0]], $check_values) ) {
return $matches[2];
} else return "";
}
return $matches[0];
}
function enable_lazyload( $matches=array() ) {
global $config;
if($config['image_lazy'] == "1") {
$matches[0] = str_replace('src="', 'data-src="', $matches[0]);
} else {
$matches[0] = str_replace('src="', 'loading="lazy" src="', $matches[0]);
}
return $matches[0];
}
function deletenewsbyid( $id ) {
global $config, $db;
$id = intval($id);
DLEFiles::init();
$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 ) $disk = DLEFiles::FindDriver($dataimage->url);
else $disk = 0;
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( 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'], $row['driver'] );
}
$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();
$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'] );
DLEFiles::Delete( "posts/" . $dataimage->path, $row['driver'] );
if( $dataimage->thumb ) {
DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $row['driver'] );
}
}
$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();
$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'] );
DLEFiles::Delete( "posts/" . $dataimage->path, $file['driver'] );
if( $dataimage->thumb ) {
DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $file['driver'] );
}
}
$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 deleteuserbyid($id) {
global $config, $db;
$id = intval($id);
$row = $db->super_query("SELECT user_id, name, foto FROM " . USERPREFIX . "_users WHERE user_id='{$id}'");
if (isset($row['user_id']) and $row['user_id']) {
if ($row['foto'] and count(explode("@", $row['foto'])) != 2) {
$url = @parse_url($row['foto']);
$row['foto'] = basename($url['path']);
$driver = DLEFiles::getDefaultStorage();
$config['avatar_remote'] = intval($config['avatar_remote']);
if ($config['avatar_remote'] > -1) $driver = $config['avatar_remote'];
DLEFiles::init($driver);
DLEFiles::Delete("fotos/" . totranslit($row['foto']));
}
$db->query("DELETE FROM " . USERPREFIX . "_pm WHERE user_from = '{$row['name']}' AND folder = 'outbox'");
$db->query("DELETE FROM " . USERPREFIX . "_pm WHERE user='{$row['user_id']}'");
$db->query("DELETE FROM " . USERPREFIX . "_social_login WHERE uid='{$row['user_id']}'");
$db->query("DELETE FROM " . USERPREFIX . "_banned WHERE users_id='{$row['user_id']}'");
$db->query("DELETE FROM " . USERPREFIX . "_ignore_list WHERE user='{$row['user_id']}' OR user_from='{$row['name']}'");
$db->query("DELETE FROM " . PREFIX . "_notice WHERE user_id = '{$row['user_id']}'");
$db->query("DELETE FROM " . PREFIX . "_subscribe WHERE user_id='{$row['user_id']}'");
$db->query("DELETE FROM " . PREFIX . "_logs WHERE `member` = '{$row['name']}'");
$db->query("DELETE FROM " . PREFIX . "_comment_rating_log WHERE `member` = '{$row['name']}'");
$db->query("DELETE FROM " . PREFIX . "_vote_result WHERE name = '{$row['name']}'");
$db->query("DELETE FROM " . PREFIX . "_poll_log WHERE `member` = '{$row['user_id']}'");
$db->query("DELETE FROM " . USERPREFIX . "_users WHERE user_id='{$row['user_id']}'");
$db->query("DELETE FROM " . USERPREFIX . "_users_delete WHERE user_id='{$row['user_id']}'");
}
}
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 ( !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 cleanpath($path) {
$path = trim(str_replace(chr(0), '', (string)$path));
$path = str_replace(array('/', '\'), '/', $path);
$parts = array_filter(explode('/', $path), 'strlen');
$absolutes = array();
foreach ($parts as $part) {
if ('.' == $part) continue;
if ('..' == $part) {
array_pop($absolutes);
} else {
$absolutes[] = totranslit($part, false, false);
}
}
return implode('/', $absolutes);
}
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(':',':', $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;
}
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 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 preg_quote_replacement($str) {
return str_replace(array('\', '$'), array('\', '\$'), $str);
}
?>
Did this file decode correctly?
Original Code
$_F=__FILE__;$_X='P3c8P2xubFc4KldqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqaldOZ1g9WFMxPjBOXTZBMTYwTi1Oa0xOc3E+PXswRzlObzBSMVhOdDRxSWxOVy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tV05uPT1sOTo4OFJ9MC02MEc5IDRJOFctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVdOWXFsTDQxQW49TihhKU41W1t6LTVbNU9Oc3E+PXswRzlObzBSMVhOdDRxSWxXampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampXTkhuMTlOYXFSME4xOU5sNHE9MGE9MFJOa0xOYXFsTDQxQW49V2pqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqV05aMX0wOk4+STZhPTFxNjkgbG5sV2pqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqVyo4V1cxPihOIVIwPjE2MFIoJ2czSDNTTVpdXXt0TXtdJylOKU5VVwluMFhSMDQoTiJ4SEhlOEQgRE56W09OWnE0azFSUjA2Ik4pO1cJbjBYUjA0TihOJ1NxYVg9MXE2Ok4gIDggIDgnTik7VwlSMTAoTiJ4WGFwMTZBTlg9PTAybD0hIk4pO1cvV1cxPk4oTjE5OTA9KCRhcTY+MUFtJ1hJPW5fUnEyWDE2J0opTjN7Z04kYXE2PjFBbSdYST1uX1JxMlgxNidKTilOVVdXCSRScTJYMTZfYXFxcDEwTmpOMGRsfXFSME4oIiAiLE5hfTBYNl9JNH0oTiRfc11WUF1WbSd4SEhlX3hGc0gnSk4pKTtXCSRScTJYMTZfYXFxcDEwX2FxSTY9TmpOYXFJNj0oJFJxMlgxNl9hcXFwMTApO1cJJFJxMlgxNl9YfX1xR19hcUk2PU5qTi01O1cJVwkxPk4oTiRScTJYMTZfYXFxcDEwX2FxSTY9TndONU4pTlVXCVcJCTE+TihOMTZfWDQ0WEwoJFJxMlgxNl9hcXFwMTBtJFJxMlgxNl9hcXFwMTBfYXFJNj0tNUosTlg0NFhMKCdhcTInLE4nNjA9JyxOJ3E0QScpTikpTiRScTJYMTZfWH19cUdfYXFJNj1Oak4tTztXCQkxPk4oTiRScTJYMTZfYXFxcDEwbSRScTJYMTZfYXFxcDEwX2FxSTY9LURKTmpqTidJWCdOKU4kUnEyWDE2X1h9fXFHX2FxSTY9TmpOLU87VwkJVwkJJFJxMlgxNl9hcXFwMTBOak5YNDRYTF85fTFhMCgkUnEyWDE2X2FxcXAxMCxOJFJxMlgxNl9YfX1xR19hcUk2PSk7VwkvVwlXCSRScTJYMTZfYXFxcDEwTmpOIiAiTiBOMTJsfXFSME4oIiAiLE4kUnEyWDE2X2FxcXAxMCk7VwlXCTE+KE4xbDV9cTZBKCRfc11WUF1WbSd4SEhlX3hGc0gnSilOampOLURORlZOMWw1fXE2QSgkX3NdVlBdVm0neEhIZV94RnNIJ0opTmpqak4+WH05ME4pTlIwPjE2MChOJ2dGbzNNeycsTiRScTJYMTZfYXFxcDEwTik7VwkwfTkwTlIwPjE2MChOJ2dGbzNNeycsTicnTik7V1cvTjB9OTBOUjA+MTYwKE4nZ0ZvM017JyxOJydOKTtXVz5JNmE9MXE2TlJ9MF85MDk5MXE2KE4kOTFSTmpOPlh9OTBOKU5VVwlBfXFrWH1OJGFxNj4xQTtXCVcJJGxYNFgyOU5qTjkwOTkxcTZfQTA9X2FxcXAxMF9sWDRYMjkoKTtXVwkxPk4oTmdGbzNNe04pTiRsWDRYMjltJ1JxMlgxNidKTmpOZ0ZvM017O1cJVwkxPk4oMTk5MD0oJGFxNj4xQW0ncTZ9TF85OX0nSilOM3tnTiRhcTY+MUFtJ3E2fUxfOTl9J0opTiRsWDRYMjltJzkwYUk0MCdKTmpOPTRJMDtXVwk5MDk5MXE2XzkwPV9hcXFwMTBfbFg0WDI5KCRsWDRYMjltJ30xPjA9MTIwJ0osTiI4IixOJGxYNFgyOW0nUnEyWDE2J0osTiRsWDRYMjltJzkwYUk0MCdKLE49NEkwKTtXVwkxPk4oTiQ5MVJOKU45MDk5MXE2XzFSKE4kOTFSTik7V1cJOTA5OTFxNl85PVg0PSgpO1dXL1dXPkk2YT0xcTZOOTA9X2FxcXAxMCgkNlgyMCxOJEJYfUkwLE4kMGRsMTQwOSlOVVcJQX1xa1h9TiRhcTY+MUE7VwlXCTE+KE4kMGRsMTQwOU4pTlVXCQlXCQkkMGRsMTQwOU5qTj0xMjAoKU4rTigkMGRsMTQwOU4qTnVjeltbKTtXCVcJL04wfTkwTlVXCQlXCQkkMGRsMTQwOU5qTlozU3NdO1cJVwkvVwlXCTE+TigkYXE2PjFBbSdxNn1MXzk5fSdKKU45MD1hcXFwMTAoTiQ2WDIwLE4kQlh9STAsTiQwZGwxNDA5LE4iOCIsTmdGbzNNeyxOSFZUXSxOSFZUXU4pO1cJMH05ME45MD1hcXFwMTAoTiQ2WDIwLE4kQlh9STAsTiQwZGwxNDA5LE4iOCIsTmdGbzNNeyxOWjNTc10sTkhWVF1OKTtXVy9XVz5JNmE9MXE2Tj5xNDJYPTkxZjAoJD4xfTBfOTFmMClOVVcJVwkxPihOISQ+MX0wXzkxZjBORlZOJD4xfTBfOTFmME48TkQpTjQwPUk0Nk4nW05rJztXCVdOTk5OJGw0MD4xZE5qTlg0NFhMKCJrIixOIkVrIixOIm9rIixOInRrIixOIkhrIik7V05OTk4kMGRsTmpOPn1xcTQofXFBKCQ+MX0wXzkxZjAsTkRbNXopKU58Tls7V1dOTk5OJD4xfTBfOTFmME5qTjRxSTZSKCQ+MX0wXzkxZjBOOE4obHFHKERbNXosTiQwZGwpKSxONSkgJ04nICRsNDA+MWRtJDBkbEo7VwkkPjF9MF85MWYwTmpOOT00XzQwbH1YYTAoIiwiLE4iICIsTiQ+MX0wXzkxZjApO1dXTk5OTjQwPUk0Nk4kPjF9MF85MWYwO1dXL1dXYX1YOTlOMjFhNHFIMTIwNE5VVwlsNDFCWD0wTiQ9MTIwO1dXCT5JNmE9MXE2Tl9fYXE2OT00SWE9KClOVVcJCSQ9bjE5LXc9MTIwTmpOJD1uMTktd0EwPV80MFh9Xz0xMjAoKTtXCS9XCT5JNmE9MXE2TkEwPSgpTlVXCQk0MD1JNDZONHFJNlIoTigkPW4xOS13QTA9XzQwWH1fPTEyMCgpTi1OJD1uMTktdz0xMjApLE52Tik7VwkvV1cJPkk2YT0xcTZOQTA9XzQwWH1fPTEyMCgpTlVXCQl9MTk9TihOJDkwYXE2UjksTiQyMWE0cXMwYXE2UjlOKU5qTjBkbH1xUjAoTidOJyxOMjFhNHE9MTIwKClOKTtXCQk0MD1JNDZOKChOPn1xWD1OKU4kOTBhcTZSOU4rTihOPn1xWD1OKU4kMjFhNHFzMGFxNlI5KTtXCS9XL1dXPkk2YT0xcTZOPn1xcVIwNCgkMWwsTiQ2MEc5Xz0xMjBOak4+WH05MClOVVcJQX1xa1h9TiRhcTY+MUEsTiRSaztXCVcJJDFsTmpOJFJrLXc5WD4wOXl9KCQxbCk7VwlXCTE+TihOJDYwRzlfPTEyME4pTlVXVwkJJD1uMTlfPTEyME5qTj0xMjAoKU4tTjE2PUJYfSgkNjBHOV89MTIwKTtXCQkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfPn1xcVJOR24wNDBOMVJOPE4nJD1uMTlfPTEyMCdOM3tnTj59WEFqJ0QnTiJOKTtXCQlXCQkkNHFHTmpOJFJrLXc5SWwwNF95STA0TCgic11TXVlITllGVHtIKCopTlg5TmFxSTY9TlpWRm9OIk4gTmVWXVpNCk4gTiJfPn1xcVJOUXhdVl1OMWxOak4nJDFsJ04ze2dOPn1YQWonRCciKTtXCQlXCQkxPihOJDRxR20nYXFJNj0nSk4pTjQwPUk0Nk5IVlRdO1cJCTB9OTBONDA9STQ2TlozU3NdO1dXCS9OMH05ME5VV1cJCSQ9bjE5Xz0xMjBOak49MTIwKClOLU4xNj1CWH0oJGFxNj4xQW0nPn1xcVJfPTEyMCdKKTtXCQkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfPn1xcVJOR24wNDBOMVJOPE4nJD1uMTlfPTEyMCdOM3tnTj59WEFqJ1snTiJOKTtXCQlXCQkkNHFHTmpOJFJrLXc5SWwwNF95STA0TCgic11TXVlITllGVHtIKCopTlg5TmFxSTY9TlpWRm9OIk4gTmVWXVpNCk4gTiJfPn1xcVJOUXhdVl1OMWxOak4nJDFsJ04ze2dOPn1YQWonWyciKTtXCQlXCQkxPihOJDRxR20nYXFJNj0nSk4pTjQwPUk0Nk5IVlRdO1cJCTB9OTBONDA9STQ2TlozU3NdO1dXCS9XVy9XVz5JNmE9MXE2Tj1xPTRYNjl9MT0oJEJYNCxOJH1xRzA0TmpOPTRJMCxOJGxJNnA9TmpOPTRJMCxOJD00WDY5fTE9TmpOPTRJME4pTlVXCUF9cWtYfU4kfVg2QT00WDY5fTE9O1cJVwkxPk4oTiExOV85PTQxNkEoJEJYNClOKU40MD1JNDZOIiI7V1cJJGtYUjlOak5YNDRYTChOJyEnLE4nKicsTidcJycsTicoJyxOJyknLE4nOycsTic6JyxOJ0AnLE4nJicsTidqJyxOJysnLE4nJCcsTicsJyxOJzgnLE4nPycsTicjJyxOJ20nLE4nSicsTiclJyxOJ1xcJyxOJyInLE4nPCcsTid3JyxOJ14nLE4nVScsTicvJyxOJ3wnLE4nYCcsTicgbG5sJ04pO1cJVwkkQlg0TmpOOT00MWxfPVhBOShOJEJYNE4pO1cJJEJYNE5qTjk9NF80MGx9WGEwKGFuNChbKSxOJycsTiRCWDQpO1dXCSRCWDROak5uPTJ9XzA2PTE9TF9SMGFxUjAoJEJYNCxOXXtIX0tURkhdc058Tl17SF94SG9TdixOJ0k9Pi11Jyk7VwlXCTE+TihOJH1xRzA0TilOVVcJCSRCWDROak5SfTBfOT00PXF9cUcwNCgkQlg0KTsJVwkvVwlXCSRCWDROak45PTRfNDBsfVhhMChOWDQ0WEwoTiJcNFw2IixOIlw0IixOIlw2Ik4pLE4nTicsTiRCWDROKTtXCSRCWDROak5sNDBBXzQwbH1YYTAoTiI4XDkrOEkiLE4iLSIsTiRCWDROKTtXVwkxPk4oTiEkbEk2cD1OKU5VVwkJJGtYUjltSk5qTicgJztXCS9XCVcJJEJYNE5qTjk9NF8xNDBsfVhhMChOJGtYUjksTicnLE4kQlg0Tik7VwlXCTE+KE4kPTRYNjl9MT1OKU5VVwkJVwkJMT5OKDE5X1g0NFhMKCR9WDZBPTRYNjl9MT0pTjN7Z05hcUk2PSgkfVg2QT00WDY5fTE9KU4pTlVXCQkJJEJYNE5qTjk9ND00KCRCWDQsTiR9WDZBPTRYNjl9MT0pO1cJCS9XCQlXCQkxPk4oTiRsSTZwPU4pTlVXCQkJVwkJCSRCWDROak5sNDBBXzQwbH1YYTAoTiI4bV5YLWZbLTdcX1wtIEorODIxIixOJycsTiRCWDROKTtXCQkJJEJYNE5qTmw0MEFfNDBsfVhhMChOJyNtIEorIzEnLE4nICcsTiRCWDROKTtXCQkJVwkJL04wfTkwTiRCWDROak5sNDBBXzQwbH1YYTAoTiI4bV5YLWZbLTdcX1wtSis4MjEiLE4nJyxOJEJYNE4pO1cJVwkvVwlXCSRCWDROak45PTRfMTQwbH1YYTAoTiIgbG5sIixOIiBsbGwiLE4kQlg0Tik7VwkkQlg0TmpObDQwQV80MGx9WGEwKE4nOFwtKzgnLE4nLScsTiRCWDROKTtXCVcJMT4oTlJ9MF85PTR9MDYoTiRCWDROKU53TkR2W04pTlVXCQlXCQkkQlg0TmpOUn0wXzlJazk9NChOJEJYNCxOWyxORHZbTik7VwkJVwkJMT4oTigkPTAybF8yWGROak5SfTBfOT00NGxxOShOJEJYNCxOJy0nTikpTilOJEJYNE5qTlJ9MF85SWs5PTQoTiRCWDQsTlssTiQ9MDJsXzJYZE4pO1cJVwkvV05OTk5XCSRCWDROak49NDEyKE4kQlg0LE4nLSdOKTtXTk5OTiRCWDROak49NDEyKE4kQlg0Tik7VwlXCTQwPUk0Nk4kQlg0O1cvV1c+STZhPTFxNk59WDZBUlg9MCgkPnE0Mlg9LE4kOT1YMmwsTiQ5MDRCMDQ9MTIwTmpOPlh9OTAsTiRhSTk9cTJOak4+WH05ME4pTlVXCUF9cWtYfU4kfVg2QVJYPTAsTiQyMDJrMDRfMVIsTiRhSTk9cTJ9WDZBUlg9MDtXVwkkPTEyMGZxNjA5TmpOWDQ0WEwoJ2VYYTE+MWE4bzFSR1hMJywnVHM4c1gycVgnLCdUczh4WEdYMTEnLCdUczgzfVg5cFgnLCdUczhlWGExPjFhJywnMzIwNDFhWDhIMUNJWDZYJywnVHM4MzQxZnE2WCcsJ1RzOG9xSTY9WDE2JywnMzIwNDFhWDhZbjFuSVhuSVgnLCczMjA0MWFYOG9YZlg9fVg2JywnMzIwNDFhWDhvMGQxYXFfWTE9TCcsJzMyMDQxYVg4b3E2PTA0NDBMJywnVHM4WTA2PTRYfScsJ1RzOF1YOT0wNDYnLCdUczhdWDk9LU02UjFYNlgnLCczMjA0MWFYOFMxMlgnLCczMjA0MWFYOFlYNFhhWDknLCdZWDZYUlg4Mz19WDY9MWEnLCczMjA0MWFYOFNYX2VYZicsJzMyMDQxYVg4c1g2PTFYQXEnLCdZWDZYUlg4ezBHPnFJNlJ9WDZSJywnMzIwNDFhWDhpSTA2cTlfMzE0MDknLCczMjA0MWFYOHRxUj1uWGsnLCczPX1YNj0xYThzPVg2fTBMJywnMz19WDY9MWE4M2ZxNDA5JywnMz40MWFYOFlYOVhrfVg2YVgnLCddSTRxbDA4Z0lrfTE2JywnXUk0cWwwOFMxOWtxNicsJ11JNHFsMDhTcTZScTYnLCddSTRxbDA4MzI5PTA0UlgyJywnXUk0cWwwOGkwfUE0WFIwJywnXUk0cWwwOGkwNH0xNicsJ11JNHFsMDhpNFg9MTl9WEJYJywnXUk0cWwwOGk0STk5MH05JywnXUk0cWwwOGlJUlhsMDk9JywnXUk0cWwwOFlxbDA2blhBMDYnLCddSTRxbDA4b1hSNDFSJywnXUk0cWwwOGVYNDE5JywnXUk0cWwwOGU0WEFJMCcsJ11JNHFsMDhWcTIwJywnXUk0cWwwOHNYNFhDMEJxJywnXUk0cWwwOHM9cWFwbnF9MicsJ11JNHFsMDhQMTA2NlgnLCddSTRxbDA4UVg0OVhHJywnXUk0cWwwOHJYQTQwaycsJ11JNHFsMDgzPW4wNjknLCddSTRxbDA4aUlhblg0MDk9JywnXUk0cWwwOHgwfTkxNnAxJywnXUk0cWwwOE05PVg2a0l9JywnMzkxWDguMDRJOVh9MDInLCddSTRxbDA4RTEwQicsJ11JNHFsMDhvMTY5cCcsJ11JNHFsMDhWMUFYJywnXUk0cWwwOHNxPjFYJywnXUk0cWwwOEhYfX0xNjYnLCddSTRxbDA4UDF9NjFJOScsJzM5MVg4aVhBblJYUicsJzM5MVg4RUlHWDE9JywnMz40MWFYOHtYMTRxazEnLCczOTFYOEgwbjRYNicsJ11JNHFsMDhFWH0xNjE2QTRYUicsJ11JNHFsMDhvcTlhcUcnLCddSTRxbDA4UHF9QXFBNFhSJywnXUk0cWwwOHNYMlg0WCcsJzM5MVg4aVhwSScsJzM5MVg4b0k5YVg9JywnMzkxWDhIazF9MTkxJywnMzkxWDhiMDQwQlg2JywnMzkxWDhFWGtJfScsJzM5MVg4YjBwWD0wNDE2a0k0QScsJzM5MVg4SFg5bnAwNj0nLCczOTFYOEVxfXBYPVgnLCczOTFYOEVYPW4yWDZSSScsJzM5MVg4M30yWD1MJywnMzkxWDh7cUJxOTFrMTQ5cCcsJzM5MVg4LlhwWDQ9WCcsJzM5MVg4RTRYOTZxTFg0OXAnLCczOTFYOHhxNkFfRXE2QScsJzM5MVg4RUlYfVhfU0kybEk0JywnMzkxWDhzMTZBWGxxNDAnLCczOTFYOEhYMWwwMScsJzM5MVg4VH1YWDZrWFg9WDQnLCczOTFYOFQ0STJ5MScsJzM5MVg4TTRwST05cCcsJzM5MVg4czBxSX0nLCczOTFYOEhxcExxJywnM0k5PTRYfTFYODNSMH1YMVIwJywnM0k5PTRYfTFYOGdYNEcxNicsJzM5MVg4YlhwST05cCcsJzNJOT00WH0xWDhpNDE5a1g2MCcsJ2VYYTE+MWE4ZXE0PV9vcTQwOWtMJywnM0k5PTRYfTFYOHNMUjYwTCcsJzM5MVg4UH1YUjFCcTk9cXAnLCczOTFYOHNYcG5YfTE2JywnMzkxWDhvWEFYUlg2JywnZVhhMT4xYTgzSWFwfVg2UicsJ2VYYTE+MWE4WjFDMScpO1dXCTE+KE4xOV9YNDRYTCgkYUk5PXEyKU4pTiR9cWFYfX1YNkFSWD0wTmpOJGFJOT1xMn1YNkFSWD0wO04wfTkwTiR9cWFYfX1YNkFSWD0wTmpOJH1YNkFSWD0wO1dXCTE+KE4hMTlfWDQ0WEwoJH1xYVh9fVg2QVJYPTApTilOVVcJCSR9cWFYfX1YNkFSWD0wTmpOWDQ0WEwoKTtXCS8JVwlXCTE+TighJDk9WDJsKU5VTiQ5PVgybE5qTj0xMjAoKTtOL1cJVwkkfXFhWH1Oak42MEdOZ1g9MEgxMjAoJ0AnICQ5PVgybCk7V1cJMT5OKDE5OTA9KCQyMDJrMDRfMVJtJz0xMjBmcTYwJ0opTjN7Z04kMjAyazA0XzFSbSc9MTIwZnE2MCdKTjN7Z04hJDkwNEIwND0xMjApTlVXCQkkfXFhWH1mcTYwTmpOJDIwMmswNF8xUm0nPTEyMGZxNjAnSjtXVwkvTjB9OTBOVVdXCQkkfXFhWH1mcTYwTmpOUlg9MF9SMD5YSX09Xz0xMjBmcTYwX0EwPSgpO1cJL1dXCTE+TighMTZfWDQ0WEwoJH1xYVh9ZnE2MCxOJD0xMjBmcTYwOSkpTiR9cWFYfWZxNjBOak4nXUk0cWwwOG9xOWFxRyc7V1cJJH1xYVh9LXc5MD1IMTIwcnE2MCg2MEdOZ1g9MEgxMjBycTYwKCR9cWFYfWZxNjApKTtXVwk0MD1JNDZOOT00PTQoTiR9cWFYfS13PnE0Mlg9KCQ+cTQyWD0pLE4kfXFhWH19WDZBUlg9ME4pO1dXL1dXPkk2YT0xcTZOUjE+Pn1YNkFSWD0wKCQ+cTQyWD0sTiQ5PVgybClOVVcJQX1xa1h9TiRfSE1vXSxOJH1YNkFSWD0wLE4kMjAyazA0XzFSLE4kfVg2QSxOJH1YNkFhcTIyMDY9OUcwMHBSWEw5O1dXCSQ9MTIwZnE2MDlOak5YNDRYTCgnZVhhMT4xYThvMVJHWEwnLE4nVHM4c1gycVgnLE4nVHM4eFhHWDExJyxOJ1RzODN9WDlwWCcsTidUczhlWGExPjFhJyxOJzMyMDQxYVg4SDFDSVg2WCcsTidUczgzNDFmcTZYJyxOJ1RzOG9xSTY9WDE2JyxOJzMyMDQxYVg4WW4xbklYbklYJyxOJzMyMDQxYVg4b1hmWD19WDYnLE4nMzIwNDFhWDhvMGQxYXFfWTE9TCcsTiczMjA0MWFYOG9xNj0wNDQwTCcsTidUczhZMDY9NFh9JyxOJ1RzOF1YOT0wNDYnLE4nVHM4XVg5PS1NNlIxWDZYJyxOJzMyMDQxYVg4UzEyWCcsTiczMjA0MWFYOFlYNFhhWDknLE4nWVg2WFJYODM9fVg2PTFhJyxOJzMyMDQxYVg4U1hfZVhmJyxOJzMyMDQxYVg4c1g2PTFYQXEnLE4nWVg2WFJYOHswRz5xSTZSfVg2UicsTiczMjA0MWFYOGlJMDZxOV8zMTQwOScsTiczMjA0MWFYOHRxUj1uWGsnLE4nMz19WDY9MWE4cz1YNn0wTCcsTiczPX1YNj0xYTgzZnE0MDknLE4nMz40MWFYOFlYOVhrfVg2YVgnLE4nXUk0cWwwOGdJa30xNicsTiddSTRxbDA4UzE5a3E2JyxOJ11JNHFsMDhTcTZScTYnLE4nXUk0cWwwODMyOT0wNFJYMicsTiddSTRxbDA4aTB9QTRYUjAnLE4nXUk0cWwwOGkwNH0xNicsTiddSTRxbDA4aTRYPTE5fVhCWCcsTiddSTRxbDA4aTRJOTkwfTknLE4nXUk0cWwwOGlJUlhsMDk9JyxOJ11JNHFsMDhZcWwwNm5YQTA2JyxOJ11JNHFsMDhvWFI0MVInLE4nXUk0cWwwOGVYNDE5JyxOJ11JNHFsMDhlNFhBSTAnLE4nXUk0cWwwOFZxMjAnLE4nXUk0cWwwOHNYNFhDMEJxJyxOJ11JNHFsMDhzPXFhcG5xfTInLE4nXUk0cWwwOFAxMDY2WCcsTiddSTRxbDA4UVg0OVhHJyxOJ11JNHFsMDhyWEE0MGsnLE4nXUk0cWwwODM9bjA2OScsTiddSTRxbDA4aUlhblg0MDk9JyxOJ11JNHFsMDh4MH05MTZwMScsTiddSTRxbDA4TTk9WDZrSX0nLE4nMzkxWDguMDRJOVh9MDInLE4nXUk0cWwwOEUxMEInLE4nXUk0cWwwOG8xNjlwJyxOJ11JNHFsMDhWMUFYJyxOJ11JNHFsMDhzcT4xWCcsTiddSTRxbDA4SFh9fTE2NicsTiddSTRxbDA4UDF9NjFJOScsTiczOTFYOGlYQW5SWFInLE4nMzkxWDhFSUdYMT0nLE4nMz40MWFYOHtYMTRxazEnLE4nMzkxWDhIMG40WDYnLE4nXUk0cWwwOEVYfTE2MTZBNFhSJyxOJ11JNHFsMDhvcTlhcUcnLE4nXUk0cWwwOFBxfUFxQTRYUicsTiddSTRxbDA4c1gyWDRYJyxOJzM5MVg4aVhwSScsTiczOTFYOG9JOWFYPScsTiczOTFYOEhrMX0xOTEnLE4nMzkxWDhiMDQwQlg2JyxOJzM5MVg4RVhrSX0nLE4nMzkxWDhiMHBYPTA0MTZrSTRBJyxOJzM5MVg4SFg5bnAwNj0nLE4nMzkxWDhFcX1wWD1YJyxOJzM5MVg4RVg9bjJYNlJJJyxOJzM5MVg4M30yWD1MJyxOJzM5MVg4e3FCcTkxazE0OXAnLE4nMzkxWDguWHBYND1YJyxOJzM5MVg4RTRYOTZxTFg0OXAnLE4nMzkxWDh4cTZBX0VxNkEnLE4nMzkxWDhFSVh9WF9TSTJsSTQnLE4nMzkxWDhzMTZBWGxxNDAnLE4nMzkxWDhIWDFsMDEnLE4nMzkxWDhUfVhYNmtYWD1YNCcsTiczOTFYOFQ0STJ5MScsTiczOTFYOE00cEk9OXAnLE4nMzkxWDhzMHFJfScsTiczOTFYOEhxcExxJyxOJzNJOT00WH0xWDgzUjB9WDFSMCcsTiczSTk9NFh9MVg4Z1g0RzE2JyxOJzM5MVg4YlhwST05cCcsTiczSTk9NFh9MVg4aTQxOWtYNjAnLE4nZVhhMT4xYThlcTQ9X29xNDA5a0wnLE4nM0k5PTRYfTFYOHNMUjYwTCcsTiczOTFYOFB9WFIxQnE5PXFwJyxOJzM5MVg4c1hwblh9MTYnLE4nMzkxWDhvWEFYUlg2JyxOJ2VYYTE+MWE4M0lhcH1YNlInLE4nZVhhMT4xYThaMUMxJyk7V1cJMT5OKCExOV9YNDRYTCgkfVg2QVJYPTApKU5VVwkJJH1YNkFSWD0wTmpOWDQ0WEwoKTtXCS9XVwkxPk4oITE5X1g0NFhMKCR9WDZBYXEyMjA2PTlHMDBwUlhMOSkpTlVXCQkkfVg2QWFxMjIwNj05RzAwcFJYTDlOak5YNDRYTCgpO1cJL1dXCTE+TighJDk9WDJsKU5VVwkJJDk9WDJsTmpOJF9ITW9dO1cJL1dXCSRxfVJSWD0wTmpONjBHTmdYPTBIMTIwKCdAJ04gTiQ5PVgybCk7VwkkNnFHUlg9ME5qTjYwR05nWD0wSDEyMCgnQCdOIE4kX0hNb10pO1cJJEwwOT0wNFJYTFJYPTBOak42MEdOZ1g9MEgxMjAoJy1ETlJYTCcpO1dXCTE+TigxOTkwPSgkMjAyazA0XzFSbSc9MTIwZnE2MCdKKU5YNlJOJDIwMmswNF8xUm0nPTEyMGZxNjAnSilOVVcJCSR9cWFYfWZxNjBOak4kMjAyazA0XzFSbSc9MTIwZnE2MCdKO1cJL04wfTkwTlVXVwkJJH1xYVh9ZnE2ME5qTlJYPTBfUjA+WEl9PV89MTIwZnE2MF9BMD0oKTtXCS9XVwkxPk4oITE2X1g0NFhMKCR9cWFYfWZxNjAsTiQ9MTIwZnE2MDkpKU4kfXFhWH1mcTYwTmpOJ11JNHFsMDhvcTlhcUcnO1dXCSRxfVJSWD0wLXc5MD1IMTIwcnE2MCg2MEdOZ1g9MEgxMjBycTYwKCR9cWFYfWZxNjApKTtXCSQ2cUdSWD0wLXc5MD1IMTIwcnE2MCg2MEdOZ1g9MEgxMjBycTYwKCR9cWFYfWZxNjApKTtXCSRMMDk9MDRSWExSWD0wLXc5MD1IMTIwcnE2MCg2MEdOZ1g9MEgxMjBycTYwKCR9cWFYfWZxNjApKTtXVwkkUjE+Pk5qTiRxfVJSWD0wLXdSMT4+KCQ2cUdSWD0wKTtXVwkkUlhMOU5OTk5qTjE2PUJYfSgkUjE+Pi13PnE0Mlg9KCclWCcpTik7VwkkbnFJNDlOTk5qTjE2PUJYfSgkUjE+Pi13PnE0Mlg9KCclbicpTik7VwkkMjE2ST0wOU5qTjE2PUJYfSgkUjE+Pi13PnE0Mlg9KCclMScpTik7V1cJMT4oTiRxfVJSWD0wLXc+cTQyWD0oJ2IyUicpTmpqTiRMMDk9MDRSWExSWD0wLXc+cTQyWD0oJ2IyUicpTilOVVdXCQkkfVg2QV8+cTQyWD1Oak45PTRfNDBsfVhhMCgnVVJYPTAvJyxOJH1YNkFtJz0xMjBfQTA5PTA0NidKLE4kfVg2QW0nUjE+PjlfPnE0Mlg9J0opO1cJCSR9WDZBXz5xNDJYPU5qTjk9NF80MGx9WGEwKCdVPTEyMC8nLE4kcX1SUlg9MC13PnE0Mlg9KCd4OjEnKSxOJH1YNkFfPnE0Mlg9KTtXVwkJNDA9STQ2TiR9WDZBXz5xNDJYPTtXVwkvTjB9OTAxPihOJFJYTDlOPE5ETilOVVdXCQkxPk4oJG5xSTQ5TjxORClOVVdXCQkJMT4oTiQyMTZJPTA5TjxORE4pTlVXVwkJCQk0MD1JNDZOJH1YNkFtJzZxR19SMT4+OSdKO1dXCQkJL04wfTkwTlVXVwkJCQk0MD1JNDZOJDIxNkk9MDlOIE4nTidOIE5SMGF9MTZYPTFxNihYNDRYTCgnJyxOJDIxNkk9MDksTiR9WDZBbScyMTZJPTA5X1IxPj45J0opKU4gTidOJ04gTiR9WDZBbSc9MTIwX1IxPj45J0o7V1cJCQkvV1cJCS9OMH05MDE+TigkbnFJNDlOPGpORDUpTlVXVwkJCTQwPUk0Nk4kbnFJNDlOIE4nTidOIE5SMGF9MTZYPTFxNihYNDRYTCgnJyxOJG5xSTQ5LE4kfVg2QW0nbnFJNDlfUjE+PjknSikpTiBOJ04nTiBOJH1YNkFtJz0xMjBfUjE+PjknSjtXVwkJL04wfTkwTlVXVwkJCSR9WDZBXz5xNDJYPU5qTjk9NF80MGx9WGEwKCdVUlg9MC8nLE4kfVg2QW0nPTEyMF9uMEk9MCdKLE4kfVg2QW0nUjE+PjlfPnE0Mlg9J0opO1cJCQkkfVg2QV8+cTQyWD1Oak45PTRfNDBsfVhhMCgnVT0xMjAvJyxOJHF9UlJYPTAtdz5xNDJYPSgneDoxJyksTiR9WDZBXz5xNDJYPSk7V1cJCQk0MD1JNDZOJH1YNkFfPnE0Mlg9O1dXCQkvV1cJL04wfTkwTlVXVwkJMT5OKCRSWEw5TjxOYylOVVdXCQkJJH1YNkFfPnE0Mlg9TmpOOT00XzQwbH1YYTAoJ1VSWD0wLycsTiRxfVJSWD0wLXc+cTQyWD0oJ30nKSxOJH1YNkFtJ1IxPj45Xz5xNDJYPSdKKTtXCQkJJH1YNkFfPnE0Mlg9TmpOOT00XzQwbH1YYTAoJ1U9MTIwLycsTiRxfVJSWD0wLXc+cTQyWD0oJ3g6MScpLE4kfVg2QV8+cTQyWD0pO1dXCQkJNDA9STQ2Tjk9ND00KCR9WDZBXz5xNDJYPSxOJH1YNkFhcTIyMDY9OUcwMHBSWEw5KTtXVwkJL04wfTkwTjQwPUk0Nk45PTQ9NCgkcX1SUlg9MC13PnE0Mlg9KCQ+cTQyWD0pLE4kfVg2QVJYPTApO1dXCS9XL1dXPkk2YT0xcTZOUjBhfTE2WD0xcTYoJDJYPWFuMDlOak5YNDRYTCgpKVdVV1cJJDJYPWFuMDltREpOak45PTQxbF89WEE5KCQyWD1hbjA5bURKKTtXCSQyWD1hbjA5bURKTmpOOT00XzQwbH1YYTAoJ04nLE4nJyxOJDJYPWFuMDltREopO1dXCSQyWD1hbjA5bURKTmpOMTY9Qlh9KCQyWD1hbjA5bURKKTtXCSRHcTRSOU5qTjBkbH1xUjAoJ3wnLE49NDEyKCQyWD1hbjA5bTVKKSk7VwkkbFg0PTlfR3E0Uk5qTlg0NFhMKCk7V1cJOUcxPWFuTihhcUk2PSgkR3E0UjkpKU5VVwkJYVg5ME5EOlcJCQkkbFg0PTlfR3E0Um1bSk5qTiRHcTRSOW1bSjtXCQkJJGxYND05X0dxNFJtREpOak4kR3E0UjltW0o7VwkJCSRsWDQ9OV9HcTRSbTVKTmpOJEdxNFI5bVtKO1cJCQlrNDBYcDtXCQlhWDkwTjU6VwkJCSRsWDQ9OV9HcTRSbVtKTmpOJEdxNFI5bVtKO1cJCQkkbFg0PTlfR3E0Um1ESk5qTiRHcTRSOW1bSk4gTiRHcTRSOW1ESjtXCQkJJGxYND05X0dxNFJtNUpOak4kR3E0UjltW0pOIE4kR3E0UjltREo7VwkJCWs0MFhwO1cJCWFYOTBOTzpXCQkJJGxYND05X0dxNFJtW0pOak4kR3E0UjltW0o7VwkJCSRsWDQ9OV9HcTRSbURKTmpOJEdxNFI5bVtKTiBOJEdxNFI5bURKO1cJCQkkbFg0PTlfR3E0Um01Sk5qTiRHcTRSOW1bSk4gTiRHcTRSOW01SjtXCQkJazQwWHA7VwkJYVg5ME56OlcJCQkkbFg0PTlfR3E0Um1bSk5qTiRHcTRSOW1bSk4gTiRHcTRSOW1ESjtXCQkJJGxYND05X0dxNFJtREpOak4kR3E0UjltW0pOIE4kR3E0UjltNUo7VwkJCSRsWDQ9OV9HcTRSbTVKTmpOJEdxNFI5bVtKTiBOJEdxNFI5bU9KO1cJCQlrNDBYcDtXCS9XVwkkR3E0Uk5qTiQyWD1hbjA5bURKTiVORFtOampORE4mJk4kMlg9YW4wOW1ESk4lTkRbW04hak5ERE4/TiRsWDQ9OV9HcTRSbVtKTjpOKCQyWD1hbjA5bURKTiVORFtOd2pONU4mJk4kMlg9YW4wOW1ESk4lTkRbTjxqTnpOJiZOKCQyWD1hbjA5bURKTiVORFtbTjxORFtOfHxOJDJYPWFuMDltREpOJU5EW1tOd2pONVspTj9OJGxYND05X0dxNFJtREpOOk4kbFg0PTlfR3E0Um01Sik7V1cJNDA9STQ2TiRHcTRSO1cvV1c+STZhPTFxNk4+cTQyUlg9MChOJDJYPWFuMDlqWDQ0WEwoKU4pTlVXCUF9cWtYfU4kNjBHOV9SWD0wLE4kYUk5PXEyfVg2QVJYPTAsTiRhcTY+MUE7VwlXCTE+KCRhcTY+MUFtJ1IwYX0xNjBfUlg9MCdKKU40MD1JNDZOfVg2QVJYPTAoJDJYPWFuMDltREosTiQ2MEc5X1JYPTApO1cJMH05ME40MD1JNDZOfVg2QVJYPTAoJDJYPWFuMDltREosTiQ2MEc5X1JYPTAsTj5YfTkwLE4kYUk5PXEyfVg2QVJYPTApO1dXL1dXPkk2YT0xcTZOYW4wYXBfNjBHOWFxSTY9KE4kMlg9YW4wOWpYNDRYTCgpTilOVVcJQX1xa1h9TiRBfXFrWH1fNjBHOV9hcUk2PTtXVwkka31xYXBOak4kMlg9YW4wOW1PSjtXVwkkYXFJNj05TmpOMGRsfXFSMChOJywnLE49NDEyKCQyWD1hbjA5bTVKKU4pO1cJV05OTk4xPihOJDJYPWFuMDltREpOampOIjYwRzlhcUk2PSJOKU5VV1dOTk5OTk5OTjE+KE4hMTZfWDQ0WEwoJEF9cWtYfV82MEc5X2FxSTY9LE4kYXFJNj05KU4pTjQwPUk0Nk4iIjtXV05OTk4vTjB9OTBOVVdXTk5OTk5OTk4xPihOMTZfWDQ0WEwoJEF9cWtYfV82MEc5X2FxSTY9LE4kYXFJNj05KU4pTjQwPUk0Nk4iIjtXV05OTk4vV1cJNDA9STQ2TiRrfXFhcDtXCVcvV1c+STZhPTFxNk4yOUFrcWQoJD0xPX0wLE4kPTBkPSlOVVcJQX1xa1h9TiQ9bH07V1cJMT5OKCFhfVg5OV8wZDE5PTkoJ1J9MF89MDJsfVg9MCcpKU5VVwlOTk5ONDA9STQ2O1cJL1cJVwkkPWx9XzVOak42MEdOUn0wXz0wMmx9WD0wKE4pO1cJJD1sfV81LXdSMTROak5IXW9lUzNIXV9nTVY7VwlXCSQ9bH1fNS13fXFYUl89MDJsfVg9MChOJzE2PnEgPWx9J04pO1cJVwkkPWx9XzUtdzkwPShOJ1UwNDRxNC8nLE4kPTBkPU4pO1cJJD1sfV81LXc5MD0oTidVPTE9fTAvJyxOJD0xPX0wTik7VwlXCSQ9bH1fNS13YXEybDF9MChOJzE2PnEnTik7VwkkPWx9XzUtd2F9MFg0KCk7VwlXCSQ9bH0tdzQwOUl9PW0nMTY+cSdKTiBqTiQ9bH1fNS13NDA5SX09bScxNj5xJ0o7Vy9XVz5JNmE9MXE2TnNucUdWWD0xNkEoJDFSLE4kNFg9MTZBLE4kQnE9MF82STIsTiRYfX1xR05qTj00STApTlVXCUF9cWtYfU4kfVg2QSxOJGFxNj4xQSxOJDRxRyxOJFJ9MF8ycVJJfTA7V1cJMT4oTiEkYXE2PjFBbSc0WD0xNkFfPUxsMCdKTilOVVcJCVcJCTE+KE4kNFg9MTZBTjN7Z04kQnE9MF82STJOKU5VVwkJCVcJCQkkNFg9MTZBTmpONHFJNlIoTigkNFg9MTZBTjhOJEJxPTBfNkkyKSxOW04pO1cJCQlXCQkvTjB9OTBOVVcJCQkkNFg9MTZBTmpOWztXCQkvVwkJVwkJMT5OKCQ0WD0xNkFOPE5bTilOJDRYPTE2QU5qTls7VwkJVwkJJDRYPTE2QU5qTiQ0WD0xNkFOKk41WztXCVcJCTE+KE4hJFh9fXFHTilOVVcJCVcJCQkkNFg9MFJOak48PDx4SG9TVzxSMUJOYX1YOTlqIjRYPTE2QSJ3VwkJPEl9TmF9WDk5aiJJNjE9LTRYPTE2QSJ3VwkJPH0xTmF9WDk5aiJhSTQ0MDY9LTRYPTE2QSJOOT1MfTBqIkcxUj1uOlUkNFg9MTZBLyU7IndVJDRYPTE2QS88OH0xd1cJCTw4SX13Vzw4UjFCd1d4SG9TO1cJCVcJCQk0MD1JNDZOJDRYPTBSO1cJCS9XCVcJCSQ0WD0wUk5qTjw8PHhIb1NXPFIxQk5SWD1YLTRYPTFBLX1YTDA0LTFSaidVJDFSLyd3Vwk8UjFCTmF9WDk5aiI0WD0xNkEid1cJCTxJfU5hfVg5OWoiSTYxPS00WD0xNkEid1cJCTx9MU5hfVg5OWoiYUk0NDA2PS00WD0xNkEiTjk9TH0waiJHMVI9bjpVJDRYPTE2QS8lOyJ3VSQ0WD0xNkEvPDh9MXdXCQk8fTF3PFhObjQwPmoiIyJOPTE9fTBqIlUkfVg2QW0nSTkwfTA5OSdKLyJOYX1YOTlqIjRELUk2MT0iTnE2YX0xYXBqIlJxVlg9MCgnRCcsTidVJDFSLycpO040MD1JNDZOPlh9OTA7IndEPDhYdzw4fTF3VwkJPH0xdzxYTm40MD5qIiMiTj0xPX0waiJVJH1YNkFtJ2xxcTQnSi8iTmF9WDk5aiI0NS1JNjE9Ik5xNmF9MWFwaiJScVZYPTAoJzUnLE4nVSQxUi8nKTtONDA9STQ2Tj5YfTkwOyJ3NTw4WHc8OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbSc+WDE0J0ovIk5hfVg5OWoiNE8tSTYxPSJOcTZhfTFhcGoiUnFWWD0wKCdPJyxOJ1UkMVIvJyk7TjQwPUk0Nk4+WH05MDsid088OFh3PDh9MXdXCQk8fTF3PFhObjQwPmoiIyJOPTE9fTBqIlUkfVg2QW0nQXFxUidKLyJOYX1YOTlqIjR6LUk2MT0iTnE2YX0xYXBqIlJxVlg9MCgneicsTidVJDFSLycpO040MD1JNDZOPlh9OTA7Ind6PDhYdzw4fTF3VwkJPH0xdzxYTm40MD5qIiMiTj0xPX0waiJVJH1YNkFtJzBkYTB9fTA2PSdKLyJOYX1YOTlqIjR2LUk2MT0iTnE2YX0xYXBqIlJxVlg9MCgndicsTidVJDFSLycpO040MD1JNDZOPlh9OTA7Ind2PDhYdzw4fTF3VwkJPDhJfXdXCTw4UjFCd1c8OFIxQndXeEhvUztXCVcJCTQwPUk0Nk4kNFg9MFI7V1cJL04wfTkwMT5OKCRhcTY+MUFtJzRYPTE2QV89TGwwJ0pOampOIkQiKU5VVwkJVwkJMT4oTiQ0WD0xNkFOPE5bTilOJDRYPTE2QU5qTls7VwkJVwkJMT4oTiRYfX1xR04pTiQ0WD0wUk5qTiI8OWxYNk5SWD1YLTRYPTFBLX1YTDA0LTFSalwiVSQxUi9cInc8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5XCJOd1UkNFg9MTZBLzw4OWxYNnc8ODlsWDZ3IjtXCQkwfTkwTiQ0WD0wUk5qTiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5XCJOd1UkNFg9MTZBLzw4OWxYNnciO1cJCVcJCTQwPUk0Nk4kNFg9MFI7VwlXCS9OMH05MDE+TigkYXE2PjFBbSc0WD0xNkFfPUxsMCdKTmpqTiI1Ik5GVk4kYXE2PjFBbSc0WD0xNkFfPUxsMCdKTmpqTiJPIilOVVcJCVcJCSQwZD00WGF9WDk5TmpOIjRYPTE2QWYwNHEiO1cJCVcJCTE+KE4kNFg9MTZBTjxOW04pTlVXCQkJJDBkPTRYYX1YOTlOak4iNFg9MTZBMjE2STkiO1cJCS9XCQlXCQkxPihOJDRYPTE2QU53TltOKU5VVwkJCSQwZD00WGF9WDk5TmpOIjRYPTE2QWx9STkiO1cJCQkkNFg9MTZBTmpOIisiICQ0WD0xNkE7VwkJL1cJCVcJCTE+KE4kWH19cUdOKU4kNFg9MFJOak4iPDlsWDZOUlg9WC00WD0xQS19WEwwNC0xUmpcIlUkMVIvXCJ3PDlsWDZOYX1YOTlqXCI0WD0xNkE9TGwwbH1JOTIxNkk5TlUkMGQ9NFhhfVg5OS9cIk53VSQ0WD0xNkEvPDg5bFg2dzw4OWxYNnciO1cJCTB9OTBOJDRYPTBSTmpOIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU5VJDBkPTRYYX1YOTkvXCJOd1UkNFg9MTZBLzw4OWxYNnciO1cJCVcJCTQwPUk0Nk4kNFg9MFI7VwkJVwkvVwlXL1dXPkk2YT0xcTZOc25xR1lxMjIwNj05Vlg9MTZBKCQxUixOJDRYPTE2QSxOJEJxPTBfNkkyLE4kWH19cUdOak49NEkwKU5VVwlBfXFrWH1OJH1YNkEsTiRhcTY+MUE7V1cJMT4oTiEkYXE2PjFBbSdhcTIyMDY9OV80WD0xNkFfPUxsMCdKTilOVVcJCVcJCTE+KE4kNFg9MTZBTjN7Z04kQnE9MF82STJOKU4kNFg9MTZBTmpONHFJNlIoTigkNFg9MTZBTjhOJEJxPTBfNkkyKSxOW04pO1cJCTB9OTBOJDRYPTE2QU5qTls7VwkJVwkJMT5OKCQ0WD0xNkFOPE5bTilOJDRYPTE2QU5qTls7V1cJCSQ0WD0xNkFOak4kNFg9MTZBTipONVs7VwlXCQkxPihOISRYfX1xR04pTlVXCQlXCQkJJDRYPTBSTmpOPDw8eEhvU1c8UjFCTmF9WDk5aiI0WD0xNkEid1cJCTxJfU5hfVg5OWoiSTYxPS00WD0xNkEid1cJCTx9MU5hfVg5OWoiYUk0NDA2PS00WD0xNkEiTjk9TH0waiJHMVI9bjpVJDRYPTE2QS8lOyJ3VSQ0WD0xNkEvPDh9MXdXCQk8OEl9d1c8OFIxQndXeEhvUztXCQlXCQkJNDA9STQ2TiQ0WD0wUjtXCQkvVwlXCQkkNFg9MFJOak48PDx4SG9TVzxSMUJOUlg9WC1hcTIyMDY9OS00WD0xQS19WEwwNC0xUmonVSQxUi8ndzxSMUJOYX1YOTlqIjRYPTE2QSJ3VwkJPEl9TmF9WDk5aiJJNjE9LTRYPTE2QSJ3VwkJPH0xTmF9WDk5aiJhSTQ0MDY9LTRYPTE2QSJOOT1MfTBqIkcxUj1uOlUkNFg9MTZBLyU7IndVJDRYPTE2QS88OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbSdJOTB9MDk5J0ovIk5hfVg5OWoiNEQtSTYxPSJOcTZhfTFhcGoiUnFZcTIyMDY9OVZYPTAoJ0QnLE4nVSQxUi8nKTtONDA9STQ2Tj5YfTkwOyJ3RDw4WHc8OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbSdscXE0J0ovIk5hfVg5OWoiNDUtSTYxPSJOcTZhfTFhcGoiUnFZcTIyMDY9OVZYPTAoJzUnLE4nVSQxUi8nKTtONDA9STQ2Tj5YfTkwOyJ3NTw4WHc8OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbSc+WDE0J0ovIk5hfVg5OWoiNE8tSTYxPSJOcTZhfTFhcGoiUnFZcTIyMDY9OVZYPTAoJ08nLE4nVSQxUi8nKTtONDA9STQ2Tj5YfTkwOyJ3Tzw4WHc8OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbSdBcXFSJ0ovIk5hfVg5OWoiNHotSTYxPSJOcTZhfTFhcGoiUnFZcTIyMDY9OVZYPTAoJ3onLE4nVSQxUi8nKTtONDA9STQ2Tj5YfTkwOyJ3ejw4WHc8OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbScwZGEwfX0wNj0nSi8iTmF9WDk5aiI0di1JNjE9Ik5xNmF9MWFwaiJScVlxMjIwNj05Vlg9MCgndicsTidVJDFSLycpO040MD1JNDZOPlh9OTA7Ind2PDhYdzw4fTF3VwkJPDhJfXdXPDhSMUJ3PDhSMUJ3V3hIb1M7VwlXCQk0MD1JNDZOJDRYPTBSO1dXCS9OMH05MDE+TigkYXE2PjFBbSdhcTIyMDY9OV80WD0xNkFfPUxsMCdKTmpqTiJEIilOVVcJCVcJCTE+KE4kNFg9MTZBTjxOW04pTiQ0WD0xNkFOak5bO1cJCVcJCTE+KE4kWH19cUdOKU4kNFg9MFJOak4iPDlsWDZOUlg9WC1hcTIyMDY9OS00WD0xQS19WEwwNC0xUmpcIlUkMVIvXCJ3PDlsWDZOYX1YOTlqXCI0WD0xNkE9TGwwbH1JOVwiTndVJDRYPTE2QS88ODlsWDZ3PDg5bFg2dyI7VwkJMH05ME4kNFg9MFJOak4iPDlsWDZOYX1YOTlqXCI0WD0xNkE9TGwwbH1JOVwiTndVJDRYPTE2QS88ODlsWDZ3IjtXCQlXCQk0MD1JNDZOJDRYPTBSO1cJVwkvTjB9OTAxPk4oJGFxNj4xQW0nYXEyMjA2PTlfNFg9MTZBXz1MbDAnSk5qak4iNSJORlZOJGFxNj4xQW0nYXEyMjA2PTlfNFg9MTZBXz1MbDAnSk5qak4iTyIpTlVXCQlXCQkkMGQ9NFhhfVg5OU5qTiI0WD0xNkFmMDRxIjtXCQlXCQkxPihOJDRYPTE2QU48TltOKU5VVwkJCSQwZD00WGF9WDk5TmpOIjRYPTE2QTIxNkk5IjtXCQkvVwkJVwkJMT4oTiQ0WD0xNkFOd05bTilOVVcJCQkkMGQ9NFhhfVg5OU5qTiI0WD0xNkFsfUk5IjtXCQkJJDRYPTE2QU5qTiIrIiAkNFg9MTZBO1cJCS9XCQlXCQkxPihOJFh9fXFHTilOJDRYPTBSTmpOIjw5bFg2TlJYPVgtYXEyMjA2PTktNFg9MUEtfVhMMDQtMVJqXCJVJDFSL1widzw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU5VJDBkPTRYYX1YOTkvXCJOd1UkNFg9MTZBLzw4OWxYNnc8ODlsWDZ3IjtXCQkwfTkwTiQ0WD0wUk5qTiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5MjE2STlOVSQwZD00WGF9WDk5L1wiTndVJDRYPTE2QS88ODlsWDZ3IjtXCQlXCQk0MD1JNDZOJDRYPTBSO1cJCVcJL1cJVy9XVz5JNmE9MXE2Tkk5MDQ0WD0xNkEoJDFSKU5VVwlBfXFrWH1OJFJrLE4kYXE2PjFBLE4kfVg2QSxOJEF9cWtYfV82MEc5X0k5MDRfNFg9MTZBOWFxNDA7V1cJJDFSTmpOMTY9Qlh9KCQxUik7VwkkQX1xa1h9XzYwRzlfSTkwNF80WD0xNkE5YXE0ME5qTls7VwkJVwkkNHFHTmpOJFJrLXc5SWwwNF95STA0TChOInNdU11ZSE5zVG8oNFg9MTZBKU5YOU40WD0xNkEsTnNUbyhCcT0wXzZJMilOWDlONkkyTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlOUXhdVl1OSTkwNF8xUk5qJ1UkMVIvJyJOKTtXVwkxPk4oJDRxR20nNkkyJ0opTiRBfXFrWH1fNjBHOV9JOTA0XzRYPTE2QTlhcTQwTmpOOT00XzQwbH1YYTAoJywnLE4nICcsTjRxSTZSKCgkNHFHbSc0WD0xNkEnSk44TiQ0cUdtJzZJMidKKSxORCkpO1dXCTE+KE4hJGFxNj4xQW0nNFg9MTZBXz1MbDAnSk4pTlUJVwlXCQkxPihOJDRxR20nNkkyJ0pOKU4kNFg9MTZBTmpONHFJNlIoTigkNHFHbSc0WD0xNkEnSk44TiQ0cUdtJzZJMidKKSxOW04pO1cJCTB9OTBOJDRYPTE2QU5qTls7V1cJCTE+TigkNFg9MTZBTjxOW04pTiQ0WD0xNkFOak5bO1cJCVcJCSQ0WD0xNkFOak4kNFg9MTZBTipONVs7VwlXCQkkNFg9MFJOak48PDx4SG9TVzxSMUJOYX1YOTlqIjRYPTE2QSJOOT1MfTBqIlIxOWx9WEw6MTZ9MTYwOyJ3VwkJPEl9TmF9WDk5aiJJNjE9LTRYPTE2QSJ3VwkJPH0xTmF9WDk5aiJhSTQ0MDY9LTRYPTE2QSJOOT1MfTBqIkcxUj1uOlUkNFg9MTZBLyU7IndVJDRYPTE2QS88OH0xd1cJCTw4SX13VwkJPDhSMUJ3V3hIb1M7VwlXCQk0MD1JNDZOJDRYPTBSO1cJVwkvTjB9OTAxPk4oJGFxNj4xQW0nNFg9MTZBXz1MbDAnSk5qak4iRCIpTlVXCQlXCQkxPihOJDRxR20nNkkyJ0pOKU4kNFg9MTZBTmpONkkyazA0Xz5xNDJYPSgkNHFHbSc0WD0xNkEnSixOWyxOJywnLE4nTicpO04wfTkwTiQ0WD0xNkFOak5bO1cJCVcJCTE+KE4kNHFHbSc2STInSk48TltOKU4kNFg9MTZBTmpOWztXCQlXCQk0MD1JNDZOIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STlcIk53VSQ0WD0xNkEvPDg5bFg2dyI7VwkJVwkvTjB9OTAxPk4oJGFxNj4xQW0nNFg9MTZBXz1MbDAnSk5qak4iNSJORlZOJGFxNj4xQW0nNFg9MTZBXz1MbDAnSk5qak4iTyJOKU5VV1cJCTE+KE4kNHFHbSc2STInSk4pTiQ0WD0xNkFOak42STJrMDRfPnE0Mlg9KCQ0cUdtJzRYPTE2QSdKLE5bLE4nLCcsTidOJyk7TjB9OTBOJDRYPTE2QU5qTls7V1cJCSQwZD00WGF9WDk5TmpOIjRYPTE2QWYwNHEiO1cJCVcJCTE+KE4kNHFHbSc0WD0xNkEnSk48TltOKU5VVwkJCSQwZD00WGF9WDk5TmpOIjRYPTE2QTIxNkk5IjtXCQkvVwkJVwkJMT4oTiQ0cUdtJzRYPTE2QSdKTndOW04pTlVXCQkJJDBkPTRYYX1YOTlOak4iNFg9MTZBbH1JOSI7VwkJCSQ0WD0xNkFOak4iKyIgJDRYPTE2QTtXCQkvVwkJVwkJMT4oJGFxNj4xQW0nNFg9MTZBXz1MbDAnSk5qak4iNSIpTlVXCQkJVwkJCTQwPUk0Nk4iPDlsWDZOYX1YOTlqXCI0WD0xNkE9TGwwbH1JOTIxNkk5TlUkMGQ9NFhhfVg5OS9cIk53VSQ0WD0xNkEvPDg5bFg2dyI7VwkJVwkJL04wfTkwTlVXCQkJJFIxOX0xcDA5TmpOKCQ0cUdtJzZJMidKTi1OJDRxR20nNFg9MTZBJ0opODU7VwkJCSR9MXAwOU5qTiQ0cUdtJzZJMidKTi1OJFIxOX0xcDA5O1cJCQlXCQkJNDA9STQ2Tjk9NF80MGx9WGEwKFg0NFhMKCdVfTFwMDkvJyxOJ1VSMTl9MXAwOS8nLE4nVTRYPTE2QS8nKSxOWDQ0WEwoIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU40WD0xNkFsfUk5XCJOd1UkfTFwMDkvPDg5bFg2dyIsTiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5MjE2STlONFg9MTZBMjE2STlcIk53VSRSMTl9MXAwOS88ODlsWDZ3IixOIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU5VJDBkPTRYYX1YOTkvXCJOd1UkNFg9MTZBLzw4OWxYNnciKSxOJH1YNkFtJ30xcDBfUjE5fTFwMF85STInSik7VwkJL1dXCQlXCS9XL1dXPkk2YT0xcTZOYXEyMjA2PTlJOTA0NFg9MTZBKCQxUilOVVcJQX1xa1h9TiRSayxOJGFxNj4xQSxOJH1YNkEsTiRBfXFrWH1fYXEyMjA2PTlfSTkwNF80WD0xNkE5YXE0MDtXVwkkMVJOak4xNj1CWH0oJDFSKTtXCSRBfXFrWH1fYXEyMjA2PTlfSTkwNF80WD0xNkE5YXE0ME5qTls7V1cJJDRxR05qTiRSay13OUlsMDRfeUkwNEwoTiJzXVNdWUhOc1RvKDRYPTE2QSlOWDlONFg9MTZBLE5zVG8oQnE9MF82STIpTlg5TjZJMk5aVkZvTiJOIE5lVl1aTQpOIE4iX2FxMjIwNj05TlF4XVZdTkk5MDRfMVJOaidVJDFSLyciTik7V1cJMT5OKCQ0cUdtJzZJMidKKU4kQX1xa1h9X2FxMjIwNj05X0k5MDRfNFg9MTZBOWFxNDBOak45PTRfNDBsfVhhMCgnLCcsTicgJyxONHFJNlIoKCQ0cUdtJzRYPTE2QSdKTjhOJDRxR20nNkkyJ0opLE5EKSk7V1cJMT4oTiEkYXE2PjFBbSdhcTIyMDY9OV80WD0xNkFfPUxsMCdKTilOVQlXCVcJCTE+KE4kNHFHbSc2STInSk4pTiQ0WD0xNkFOak40cUk2UihOKCQ0cUdtJzRYPTE2QSdKTjhOJDRxR20nNkkyJ0opLE5bTik7VwkJMH05ME4kNFg9MTZBTmpOWztXVwkJMT5OKCQ0WD0xNkFOPE5bTilOJDRYPTE2QU5qTls7VwkJVwkJJDRYPTE2QU5qTiQ0WD0xNkFOKk41WztXCVcJCSQ0WD0wUk5qTjw8PHhIb1NXPFIxQk5hfVg5OWoiNFg9MTZBIk45PUx9MGoiUjE5bH1YTDoxNn0xNjA7IndXCQk8SX1OYX1YOTlqIkk2MT0tNFg9MTZBIndXCQk8fTFOYX1YOTlqImFJNDQwNj0tNFg9MTZBIk45PUx9MGoiRzFSPW46VSQ0WD0xNkEvJTsid1UkNFg9MTZBLzw4fTF3VwkJPDhJfXdXCQk8OFIxQndXeEhvUztXCVcJCTQwPUk0Nk4kNFg9MFI7VwlXCS9OMH05MDE+TigkYXE2PjFBbSdhcTIyMDY9OV80WD0xNkFfPUxsMCdKTmpqTiJEIilOVVcJCVcJCTE+KE4kNHFHbSc2STInSk4pTiQ0WD0xNkFOak42STJrMDRfPnE0Mlg9KCQ0cUdtJzRYPTE2QSdKLE5bLE4nLCcsTidOJyk7TjB9OTBOJDRYPTE2QU5qTls7VwkJVwkJMT4oTiQ0WD0xNkFOPE5bTilOJDRYPTE2QU5qTls7VwkJVwkJNDA9STQ2TiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5XCJOd1UkNFg9MTZBLzw4OWxYNnciO1cJCVcJL04wfTkwMT5OKCRhcTY+MUFtJ2FxMjIwNj05XzRYPTE2QV89TGwwJ0pOampOIjUiTkZWTiRhcTY+MUFtJ2FxMjIwNj05XzRYPTE2QV89TGwwJ0pOampOIk8iKU5VVwkJVwkJMT4oTiQ0cUdtJzZJMidKTilOJDRYPTE2QU5qTjZJMmswNF8+cTQyWD0oJDRxR20nNFg9MTZBJ0osTlssTicsJyxOJ04nKTtOMH05ME4kNFg9MTZBTmpOWztXVwkJJDBkPTRYYX1YOTlOak4iNFg9MTZBZjA0cSI7VwkJVwkJMT4oTiQ0cUdtJzRYPTE2QSdKTjxOW04pTlVXCQkJJDBkPTRYYX1YOTlOak4iNFg9MTZBMjE2STkiO1cJCS9XCQlXCQkxPihOJDRxR20nNFg9MTZBJ0pOd05bTilOVVcJCQkkMGQ9NFhhfVg5OU5qTiI0WD0xNkFsfUk5IjtXCQkJJDRYPTE2QU5qTiIrIiAkNFg9MTZBO1cJCS9XCQlXCQkxPigkYXE2PjFBbSdhcTIyMDY9OV80WD0xNkFfPUxsMCdKTmpqTiI1IilOVVcJCQlXCQkJNDA9STQ2TiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5MjE2STlOVSQwZD00WGF9WDk5L1wiTndVJDRYPTE2QS88ODlsWDZ3IjtXCQlXCQkvTjB9OTBOVVcJCQlXCQkJJFIxOX0xcDA5TmpOKCQ0cUdtJzZJMidKTi1OJDRxR20nNFg9MTZBJ0opODU7VwkJCSR9MXAwOU5qTiQ0cUdtJzZJMidKTi1OJFIxOX0xcDA5O1cJCQlXCQkJNDA9STQ2Tjk9NF80MGx9WGEwKFg0NFhMKCdVfTFwMDkvJyxOJ1VSMTl9MXAwOS8nLE4nVTRYPTE2QS8nKSxOWDQ0WEwoIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU40WD0xNkFsfUk5XCJOd1UkfTFwMDkvPDg5bFg2dyIsTiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5MjE2STlONFg9MTZBMjE2STlcIk53VSRSMTl9MXAwOS88ODlsWDZ3IixOIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU5VJDBkPTRYYX1YOTkvXCJOd1UkNFg9MTZBLzw4OWxYNnciKSxOJH1YNkFtJ30xcDBfUjE5fTFwMF85STInSik7VwkJL1cJCVcJL1cvV1c+STZhPTFxNk5ZWD0wQXE0THswRzlzMH0wYT0xcTYoJGFYPTBBcTRMMVJOak5bLE4kbFg0MDY9MVJOak5bLE4kNnFhWD1Oak5IVlRdLE4kOUlrfTBCMH0yWDRwMDROak4nJyxOJDQwPUk0Njk9NDE2QU5qTicnKU5VVwlBfXFrWH1OJGFYPV8xNj5xLE4kSTkwNF9BNHFJbCxOJDIwMmswNF8xUixOJFJ9MF8ycVJJfTA7V1cJMT5OKCRSfTBfMnFSSX0wTmpqTidYUlI2MEc5JylOVVcJCVcJCTE+KCQyMDJrMDRfMVJtJ2FYPV9YfX1xR19YUlI2MEc5J0opTiRYfX1xR199MTk9TmpOMGRsfXFSMChOJywnLE4kMjAyazA0XzFSbSdhWD1fWH19cUdfWFJSNjBHOSdKTik7VwkJMH05ME4kWH19cUdffTE5PU5qTjBkbH1xUjAoTicsJyxOJEk5MDRfQTRxSWxtJDIwMmswNF8xUm0nSTkwNF9BNHFJbCdKSm0nYVg9X1h9fXFHX1hSUjYwRzknSk4pO1cJCVcJL04wfTkwTiRYfX1xR199MTk9TmpOMGRsfXFSMChOJywnLE4kSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSdYfX1xR19hWD05J0pOKTtXVwkkNnE9X1h9fXFHX30xOT1Oak4wZGx9cVIwKE4nLCcsTiRJOTA0X0E0cUlsbSQyMDJrMDRfMVJtJ0k5MDRfQTRxSWwnSkptJzZxPV9YfX1xR19hWD05J0pOKTtXVwkxPk4oJFJ9MF8ycVJJfTBOampOJzkwWDRhbicpTlVXCQkxPihOYXFJNj0oTiRhWD1fMTY+cU4pTilVVwkJCT5xNDBYYW5OKCRhWD1fMTY+cU5YOU4kYVg9OSlOVVcJCQkJMT4oJGFYPTltJ1IxOVhrfTBfOTBYNGFuJ0opTiQ2cT1fWH19cUdffTE5PW1KTmpOJGFYPTltJzFSJ0o7VwkJCS9XCQkvVwkvVwlXCTE+TigxOTkwPSgkMjAyazA0XzFSbSdhWD1fWFJSJ0opTjN7Z04kMjAyazA0XzFSbSdhWD1fWFJSJ0opTiQ5bDBhX30xOT1Oak4wZGx9cVIwKE4nLCcsTiQyMDJrMDRfMVJtJ2FYPV9YUlInSk4pO1cJMH05ME4kOWwwYV99MTk9TmpOMGRsfXFSMChOJywnLE4kSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSdhWD1fWFJSJ0pOKTtXVwkkNHFxPV9hWD0wQXE0TE5qTlg0NFhMTigpO1cJVwkxPihOJGxYNDA2PTFSTmpqTltOKU5VVwkJMT4oTiQ2cWFYPU4ze2dOJFh9fXFHX30xOT1tW0pOampOIlh9fSIpTiQ0MD1JNDY5PTQxNkFOIGpOJzxxbD0xcTZOQlh9STBqIlsidzw4cWw9MXE2dyc7VwkvTjB9OTBOVVcJCSQ5SWt9MEIwfTJYNHAwNE4gak4nJjZrOWw7JjZrOWw7JjZrOWw7JztXCS9XCVcJMT4oTmFxSTY9KE4kYVg9XzE2PnFOKU4pTlVXCQlXCQk+cTQwWGFuTihOJGFYPV8xNj5xTlg5TiRhWD05TilOVVcJCQkxPihOJGFYPTltJ2xYNDA2PTFSJ0pOampOJGxYNDA2PTFSTilOJDRxcT1fYVg9MEFxNExtSk5qTiRhWD05bScxUidKO1cJCS9XCQlXCQkxPihOYXFJNj0oTiQ0cXE9X2FYPTBBcTRMTilOKU5VVwkJCT5xNDBYYW5OKE4kNHFxPV9hWD0wQXE0TE5YOU4kMVJOKU5VVwkJCQlXCQkJCTE+KE4kWH19cUdffTE5PW1bSk5qak4iWH19Ik5GVk4xNl9YNDRYTChOJDFSLE4kWH19cUdffTE5PU4pTilOVVcJCQkJCVcJCQkJCTE+KE4xNl9YNDRYTChOJDFSLE4kNnE9X1h9fXFHX30xOT1OKU4pTmFxNj0xNkkwO1cJCQkJCVcJCQkJCTE+KE4kOWwwYV99MTk9bVtKTmpqTiJYfX0iTnE0TjE2X1g0NFhMKE4kMVIsTiQ5bDBhX30xOT1OKU4pTiRhcX1xNE5qTiIiO1cJCQkJCTB9OTBOJGFxfXE0TmpOIjk9TH0walwiYXF9cTQ6TjQwUlwiTiI7VwkJCQkJVwkJCQkJJDQwPUk0Njk9NDE2QU4gak4iPHFsPTFxNk5VJGFxfXE0L0JYfUkwalwiIk4gTiQxUk4gTiciTic7VwkJCQkJVwkJCQkJMT4oTjE5X1g0NFhMKE4kYVg9MEFxNEwxUk4pTilOVVcJCQkJCQk+cTQwWGFuTihOJGFYPTBBcTRMMVJOWDlOJDB9MDIwNj1OKU5VVwkJCQkJCQlXCQkJCQkJCSQwfTAyMDY9TmpOMTY9Qlh9KCQwfTAyMDY9KTtXCQkJCQkJCVcJCQkJCQkJMT4oTiQwfTAyMDY9TmpqTiQxUk4pTiQ0MD1JNDY5PTQxNkFOIGpOJzkwfTBhPTBSJztXCQkJCQkJCVcJCQkJCQkvVwkJCQkJL04wfTkwMT4oTjE2PUJYfSgkYVg9MEFxNEwxUilOampOJDFSTilOJDQwPUk0Njk9NDE2QU4gak4nOTB9MGE9MFInO1cJCQkJCVcJCQkJCSQ0MD1JNDY5PTQxNkFOIGpOJ3cnTiBOJDlJa30wQjB9Mlg0cDA0TiBOJGFYPV8xNj5xbSQxUkptJzZYMjAnSk4gTic8OHFsPTFxNncnO1cJCQkJL1cJCQkJVwkJCQkkNDA9STQ2OT00MTZBTmpOWVg9MEFxNEx7MEc5czB9MGE9MXE2KE4kYVg9MEFxNEwxUixOJDFSLE4kNnFhWD0sTiQ5SWt9MEIwfTJYNHAwNCxOJDQwPUk0Njk9NDE2QU4pO1cJCQkvVwkJL1cJL1cJNDA9STQ2TiQ0MD1JNDY5PTQxNkE7Vy9XVz5JNmE9MXE2TkEwPV9NZygkYVg9XzE2PnEsTiRhWD0wQXE0TClOVVcJPnE0MFhhbk4oTiRhWD1fMTY+cU5YOU4kYVg9OU4pTlVXCQkxPihOJGFYPTltJ1h9PV82WDIwJ0pOampOJGFYPTBBcTRMTilONDA9STQ2TiRhWD05bScxUidKO1cJL1cJNDA9STQ2Tj5YfTkwO1cvV1c+STZhPTFxNk45MD1fQlg0OSgkPjF9MCxOJFJYPVgpTlVXCVcJJD4xfTBOak49cT00WDY5fTE9KCQ+MX0wLE49NEkwLE4+WH05MCk7VwlXCTE+TihOMTlfWDQ0WEwoJFJYPVgpTkZWTjE5XzE2PSgkUlg9WClORlZOMTlfOT00MTZBKCRSWD1YKU4pTlVXCQlXCQk+MX0wX2xJPV9hcTY9MDY9OU4oXXt0TXtdX2dNVk4gTic4YVhhbjA4OUw5PTAyOCdOIE4kPjF9ME4gTicgbG5sJyxOQzlxNl8wNmFxUjAoTiRSWD1YLE4uc0Z7X1R7XXNZM2VdZ19Ue01ZRmddTnxOLnNGe19Ue11zWTNlXWdfc1Mzc3hdc04pLE5TRllFX10KKTtXCQlAYW4ycVIoTl17dE17XV9nTVZOIE4nOGFYYW4wODlMOT0wMjgnTiBOJD4xfTBOIE4nIGxubCcsTltjY2NOKTtXCQlXCS9XL1dXPkk2YT0xcTZOQTA9X0JYNDkoJD4xfTApTlVXCSQ+MX0wTmpOPXE9NFg2OX0xPSgkPjF9MCxOPTRJMCxOPlh9OTApO1dXCSRSWD1YTmpOQD4xfTBfQTA9X2FxNj0wNj05KE5de3RNe11fZ01WTiBOJzhhWGFuMDg5TDk9MDI4J04gTiQ+MX0wTiBOJyBsbmwnTik7V1cJMT5OKE4kUlg9WE4hampOPlh9OTBOKU5VV1cJCSRSWD1YTmpOQzlxNl9SMGFxUjAoTiRSWD1YLE49NEkwTik7VwkJMT5OKE4xOV9YNDRYTCgkUlg9WClORlZOMTlfMTY9KCRSWD1YKU5GVk4xOV85PTQxNkEoJFJYPVgpTilONDA9STQ2TiRSWD1YO1dXCS9OV1cJNDA9STQ2Tj5YfTkwOwlXL1dXPkk2YT0xcTZOQTA9X2FxSTY9Xz40cTJfYVhhbjAoTiRuWDluTilOVVcJVwkkblg5bk5qTjJSdigkblg5bik7V1cJJFh9fV9hcUk2PTlOak5SfTBfYVhhbjAoIjYwRzlfYVhhbjBfYXFJNj0iKTtXCVcJMT4oTiRYfX1fYXFJNj05TilOVVcJCVcJCSRYfX1fYXFJNj05TmpOQzlxNl9SMGFxUjAoJFh9fV9hcUk2PTksTj00STApO1cJCVcJCTE+KE4xOTkwPShOJFh9fV9hcUk2PTltJG5YOW5KTilOKU5VVwkJCTQwPUk0Nk4xNj1CWH0oJFh9fV9hcUk2PTltJG5YOW5KKTtXCQkvVwkJVwkvVwlXCTQwPUk0Nk5bO1dXL1dXPkk2YT0xcTZOOTA9X2FxSTY9Xz1xX2FYYW4wKE4kblg5bixOJGFxSTY9TilOVVcJVwlBfXFrWH1OJGFxNj4xQTtXCVcJMT4oTiEkYXE2PjFBbSdYfX1xR19hWGFuMCdKTilONDA9STQ2Tj5YfTkwO1cJVwkkblg5bk5qTjJSdigkblg5bik7VwlXCSRYfX1fYXFJNj05TmpOUn0wX2FYYW4wKCI2MEc5X2FYYW4wX2FxSTY9Iik7VwlXCTE+KE4kWH19X2FxSTY9OU4pTlVXCQlXCQkkWH19X2FxSTY9OU5qTkM5cTZfUjBhcVIwKCRYfX1fYXFJNj05LE49NEkwKTtXCQlXCS9XCVcJMT4oTiExOV9YNDRYTCgkWH19X2FxSTY9OSlOKU4kWH19X2FxSTY9OU5qTlg0NFhMKCk7VwlXCSRYfX1fYXFJNj05bSRuWDluSk5qTjE2PUJYfSgkYXFJNj0pO1cJVwlhNDBYPTBfYVhhbjBOKE4iNjBHOV9hWGFuMF9hcUk2PSIsTkM5cTZfMDZhcVIwKE4kWH19X2FxSTY9OU4sTi5zRntfVHtdc1kzZV1nX1R7TVlGZ11OfE4uc0Z7X1R7XXNZM2VdZ19zUzNzeF1zTilOKTtXCVcJNDA9STQ2Tj00STA7VwlXL1dXPkk2YT0xcTZOUn0wX2FYYW4wKCRsNDA+MWQsTiRhWGFuMF8xUk5qTj5YfTkwLE4kMjAyazA0X2w0MD4xZE5qTj5YfTkwLE4kYUk5PXEyWVhhbjBnWD0wTmpOPlh9OTApTlVXCUF9cWtYfU4kYXE2PjFBLE4kMTlffXFBQTBSLE4kMjAyazA0XzFSLE4kUn0wPlg5PWFYYW4wLE4kX0hNb107V1cJMT4oTiEkYXE2PjFBbSdYfX1xR19hWGFuMCdKTilONDA9STQ2Tj5YfTkwO1dXCSRhcTY+MUFtJ2F9MFg0X2FYYW4wJ0pOak4oMTY9Qlh9KCRhcTY+MUFtJ2F9MFg0X2FYYW4wJ0opTndORClOP04xNj1CWH0oJGFxNj4xQW0nYX0wWDRfYVhhbjAnSilOOk5bO1dXCTE+KE4kMTlffXFBQTBSTilOJDA2Ul8+MX0wTmpOJDIwMmswNF8xUm0nSTkwNF9BNHFJbCdKO1cJMH05ME4kMDZSXz4xfTBOak4iWyI7VwlXCTE+KE4hTiRhWGFuMF8xUk4pTlVXCQlXCQkkcDBMTmpOJGw0MD4xZDtXCVcJL04wfTkwTlVXCQlXCQkkYVhhbjBfMVJOak4yUnYoTiRhWGFuMF8xUk4pO1cJCVcJCTE+KE4kMjAyazA0X2w0MD4xZE4pTiRwMExOak4kbDQwPjFkTiBOIl8iTiBOJGFYYW4wXzFSTiBOIl8iTiBOJDA2Ul8+MX0wO1cJCTB9OTBOJHAwTE5qTiRsNDA+MWROIE4iXyJOIE4kYVhhbjBfMVI7VwlXCS9XCVcJMT4oTiRhcTY+MUFtJ2FYYW4wXz1MbDAnSk4pTlVXCQkxPihOJFJ9MD5YOT1hWGFuMC13YXE2NjBhPTFxNk53TltOKU5VVwkJCTQwPUk0Nk4kUn0wPlg5PWFYYW4wLXdBMD0oJHAwTCk7VwkJL1cJL1dXCTE+KD4xfTBfMGQxOT05KE5de3RNe11fZ01WTiBOIjhhWGFuMDgiTiBOJHAwTE4gTicgPTJsJ04pKU5VV1cJCTE+KE4kYXE2PjFBbSdhfTBYNF9hWGFuMCdKTkZWTiRhSTk9cTJZWGFuMGdYPTApTlVXVwkJCSQ+MX0wX1JYPTBOak5APjF9MDI9MTIwKE5de3RNe11fZ01WTiBOIjhhWGFuMDgiTiBOJHAwTE4gTicgPTJsJ04pO1dXCQkJMT4oJGFJOT1xMllYYW4wZ1g9MClOVVdXCQkJCSRYMnFJNj1Oak4xNj1CWH0oJGFJOT1xMllYYW4wZ1g9MCk7VwkJCQkkPTEyMFQ2MT1Oak45SWs5PTQoJGFJOT1xMllYYW4wZ1g9MCxOLUQpO1dXCQkJCTE+KE4kWDJxSTY9TjN7Z04xNl9YNDRYTCgkPTEyMFQ2MT0sTlg0NFhMKCdSJyxOJ24nLE4nMicpTilOKU5VV1cJCQkJCTE+TigkPTEyMFQ2MT1OampqTiJSIilOVVcJCQkJCQkkPjF9MF9SWD0wTitqTiRYMnFJNj1OKk41ek4qTmNbTipOY1s7VwkJCQkJL04wfTkwMT5OKCQ9MTIwVDYxPU5qampOIm4iKU5VVwkJCQkJCSQ+MX0wX1JYPTBOK2pOJFgycUk2PU4qTmNbTipOY1s7VwkJCQkJL04wfTkwMT5OKCQ9MTIwVDYxPU5qampOIjIiKU5VVwkJCQkJCSQ+MX0wX1JYPTBOK2pOJFgycUk2PU4qTmNbO1cJCQkJCS9XVwkJCQkJMT4oTiRfSE1vXU53TiQ+MX0wX1JYPTApTlVXVwkJCQkJCUBJNn0xNnAoXXt0TXtdX2dNVk4gTiI4YVhhbjA4Ik4gTiRwMExOIE4iID0ybCIpO1cJCQkJCQk0MD1JNDZOPlh9OTA7V1cJCQkJCS9XVwkJCQkvV1cJCQkvTjB9OTAxPk4oTihOJF9ITW9dTi1OJD4xfTBfUlg9ME4pTndOKCRhcTY+MUFtJ2F9MFg0X2FYYW4wJ0pOKk5jWylOKU5VV1cJCQkJQEk2fTE2cChde3RNe11fZ01WTiBOIjhhWGFuMDgiTiBOJHAwTE4gTiIgPTJsIik7VwkJCQk0MD1JNDZOPlh9OTA7V1cJCQkvV1cJCS9XVwkJNDA9STQ2Tj4xfTBfQTA9X2FxNj0wNj05KF17dE17XV9nTVZOIE4iOGFYYW4wOCJOIE4kcDBMTiBOIiA9MmwiKTtXVwkvV1cJNDA9STQ2Tj5YfTkwO1dXL1dXPkk2YT0xcTZOYTQwWD0wX2FYYW4wKCRsNDA+MWQsTiRhWGFuMF89MGQ9LE4kYVhhbjBfMVJOak4+WH05MCxOJDIwMmswNF9sNDA+MWROak4+WH05MCxOJDJYZDNBME5qTj5YfTkwKU5VVwlBfXFrWH1OJGFxNj4xQSxOJDE5X31xQUEwUixOJDIwMmswNF8xUixOJFJ9MD5YOT1hWGFuMDtXCVcJMT4oTiEkYXE2PjFBbSdYfX1xR19hWGFuMCdKTilONDA9STQ2Tj5YfTkwO1cJVwkxPihOJDE5X31xQUEwUk4pTiQwNlJfPjF9ME5qTiQyMDJrMDRfMVJtJ0k5MDRfQTRxSWwnSjtXCTB9OTBOJDA2Ul8+MX0wTmpOIlsiO1cJVwkxPihOIU4kYVhhbjBfMVJOKU5VVwkJVwkJJHAwTE5qTiRsNDA+MWQ7VwkJVwkvTjB9OTBOVVcJCVcJCSRhWGFuMF8xUk5qTjJSdihOJGFYYW4wXzFSTik7VwkJVwkJMT4oTiQyMDJrMDRfbDQwPjFkTilOJHAwTE5qTiRsNDA+MWROIE4iXyJOIE4kYVhhbjBfMVJOIE4iXyJOIE4kMDZSXz4xfTA7VwkJMH05ME4kcDBMTmpOJGw0MD4xZE4gTiJfIk4gTiRhWGFuMF8xUjtXCVcJL1cJVwkxPigkYVhhbjBfPTBkPU5qampOPlh9OTApTiRhWGFuMF89MGQ9TmpOJyc7V1cJMT4oTiRhcTY+MUFtJ2FYYW4wXz1MbDAnSk4pTlVXVwkJMT4oTiRSfTA+WDk9YVhhbjAtd2FxNjYwYT0xcTZOd05bTilOVVdXCQkJMT5OKE4kMlhkM0EwTilOVVdXCQkJCSRYMnFJNj1Oak4xNj1CWH0oJDJYZDNBMCk7VwkJCQkkPTEyMFQ2MT1Oak45SWs5PTQoJDJYZDNBMCxOLUQpO1dXCQkJCTE+TigkWDJxSTY9Tlg2Uk4xNl9YNDRYTCgkPTEyMFQ2MT0sTlg0NFhMKCdSJyxOJ24nLE4nMicpKSlOVVdXCQkJCQkxPk4oJD0xMjBUNjE9Tmpqak4iUiIpTlVXCQkJCQkJJDJYZDNBME5qTiRYMnFJNj1OKk41ek4qTmNbTipOY1s7Tjg4TtC00L7QsdCw0LLQu9GP0LXQvE7QtNC90LhXCQkJCQkvTjB9OTAxPk4oJD0xMjBUNjE9Tmpqak4ibiIpTlVXCQkJCQkJJDJYZDNBME5qTiRYMnFJNj1OKk5jW04qTmNbO044OE7QtNC+0LHQsNCy0LvRj9C10LxO0YfQsNGB0YtXCQkJCQkvTjB9OTAxPk4oJD0xMjBUNjE9Tmpqak4iMiIpTlVXCQkJCQkJJDJYZDNBME5qTiRYMnFJNj1OKk5jWztOODhO0LTQvtCx0LDQstC70Y/QtdC8TtC80LjQvdGD0YLRi1cJCQkJCS9XVwkJCQkvTjB9OTBOJDJYZDNBME5qTj5YfTkwO1dXCQkJL1dXCQkJMT5OKE4kMlhkM0EwTilOJFJ9MD5YOT1hWGFuMC13OTA9KCRwMEwsTiRhWGFuMF89MGQ9LE4kMlhkM0EwKTtXCQkJMH05ME4kUn0wPlg5PWFYYW4wLXc5MD0oJHAwTCxOJGFYYW4wXz0wZD0pO1cJCQlXCQkJNDA9STQ2Tj00STA7VwkJL1cJL1dXCT4xfTBfbEk9X2FxNj0wNj05Tihde3RNe11fZ01WTiBOIjhhWGFuMDgiTiBOJHAwTE4gTiIgPTJsIixOJGFYYW4wXz0wZD0sTlNGWUVfXQopO1cJQGFuMnFSKE5de3RNe11fZ01WTiBOIjhhWGFuMDgiTiBOJHAwTE4gTiIgPTJsIixOW2NjY04pO1cJVwk0MD1JNDZOPTRJMDtXCVcvV1c+STZhPTFxNk5hfTBYNF9hWGFuMCgkYVhhbjBfWDQwWDlOak4+WH05MClOVVcJQX1xa1h9TiRSfTA+WDk9YVhhbjAsTiRhcTY+MUE7V1cJMT4oTiRhcTY+MUFtJ2FYYW4wXz1MbDAnSk4pTlVXCQkxPihOJFJ9MD5YOT1hWGFuMC13YXE2NjBhPTFxNk53TltOKU5VVwkJCSRSfTA+WDk9YVhhbjAtd2F9MFg0KE4kYVhhbjBfWDQwWDlOKTtXCQkJNDA9STQ2Tj00STA7VwkJL1cJL1dXCTE+TihOJGFYYW4wX1g0MFg5TilOVVcJCTE+KCExOV9YNDRYTCgkYVhhbjBfWDQwWDkpKU5VVwkJCSRhWGFuMF9YNDBYOU5qTlg0NFhMKCRhWGFuMF9YNDBYOSk7VwkJL1cJL1cJCVcJJD5SMTROak5xbDA2UjE0KE5de3RNe11fZ01WTiBOJzhhWGFuMCdOKTtXCQlXCUduMX0wTihOJD4xfTBOak40MFhSUjE0KE4kPlIxNE4pTilOVVcJCTE+KE4kPjF9ME4hak4nIG49WGFhMDk5J04ze2dOITE5X1IxNChde3RNe11fZ01WTiBOJzhhWGFuMDgnTiBOJD4xfTApTilOVVcJCQlXCQkJMT4oTiRhWGFuMF9YNDBYOU4pTlVXCQkJCVcJCQkJPnE0MFhhbigkYVhhbjBfWDQwWDlOWDlOJGFYYW4wX1g0MFgpTjE+KE45PTQxbHE5KE4kPjF9MCxOJGFYYW4wX1g0MFhOKU5qampOW04pTkBJNn0xNnAoTl17dE17XV9nTVZOIE4nOGFYYW4wOCdOIE4kPjF9ME4pO1cJCQlXCQkJL04wfTkwTlVXCQkJCVcJCQkJQEk2fTE2cChOXXt0TXtdX2dNVk4gTic4YVhhbjA4J04gTiQ+MX0wTik7VwkJCVcJCQkvVwkJL1cJL1cJVwk0MD1JNDZOPTRJMDtXVy9XVz5JNmE9MXE2TlluWDZBMHNwMTYoTiQ5cDE2TilOVVcJVwkkPTAybH1YPTA5X30xOT1Oak5BMD1fPnF9UjA0X30xOT0oTic9MDJsfVg9MDknTik7VwlJNjkwPSgkPTAybH1YPTA5X30xOT1tJzkyWDQ9bG5xNjAnSik7VwlXCSQ5cDE2X30xOT1Oak4iPD5xNDJOMjA9bnFSalwibHE5PVwidzw5MH0wYT1OcTZhblg2QTBqXCI5SWsyMT0oKVwiTjZYMjBqXCI5cDE2XzZYMjBcInciO1cJVwk+cTQwWGFuTihOJD0wMmx9WD0wOV99MTk9Tlg5TiRwMExOandOJEJYfUkwTilOVVcJCVcJCTE+KE4kcDBMTmpqTiQ5cDE2TilOJDkwfTBhPTBSTmpOIk45MH0wYT0wUmpcIjkwfTBhPTBSXCIiO1cJCTB9OTBOJDkwfTBhPTBSTmpOIiI7VwkJVwkJJDlwMTZffTE5PU4gak4iPHFsPTFxNk5CWH1JMGpcIlUkcDBML1wiIk4gTiQ5MH0wYT0wUk4gTiJ3VSRCWH1JMG0nNlgyMCdKLzw4cWw9MXE2dyI7VwkvVwlXCSQ5cDE2X30xOT1OIGpOJzw4OTB9MGE9dzwxNmxJPU49TGwwaiJuMVJSMDYiTjZYMjBqIlhhPTFxNl85cDE2X2FuWDZBMCJOQlh9STBqIkwwOSJ3PDg+cTQydyc7VwlXCTQwPUk0Nk4kOXAxNl99MTk9O1cvV1c+STZhPTFxNk5BMD1fPnF9UjA0X30xOT0oTiQ+cX1SMDROak4nfVg2QUlYQTAnTilOVVcJQX1xa1h9TiR9WDZBO1cJJFh9fXFHMFJfPnF9UjA0TmpOWDQ0WEwoTid9WDZBSVhBMCcsTic9MDJsfVg9MDknTik7VwlXCSR9MTk9TmpOWDQ0WExOKCk7VwlXCTE+KE4hMTZfWDQ0WEwoJD5xfVIwNCxOJFh9fXFHMFJfPnF9UjA0KU4pTlVXCQk0MD1JNDZOJH0xOT07VwkvVwlXCTE+KE4hJG5YNlJ9ME5qTnFsMDZSMTQoTlZGRkhfZ01WTiBOIjgiIE4kPnF9UjA0TilOKU5VVwkJJH0xOT1tSm0nNlgyMCdKTmpOJH1YNkFtJ3FsPV8wNDQ+cSdKICJOIiAkPnF9UjA0O1cJCTQwPUk0Nk4kfTE5PTtXCS9XCVcJR24xfTBOKE4+WH05ME4hampOKCQ+MX0wTmpONDBYUlIxNChOJG5YNlJ9ME4pKU4pTlVXCQlXCQkxPihOMTlfUjE0KE5WRkZIX2dNVk4gTiI4IiAkPnF9UjA0ICI4IiAkPjF9ME4pTjN7Z04oJD4xfTBOIWpOIiAiTlg2Uk4kPjF9ME4hak4iICAiKU4pTlVXCQkJVwkJCTE+KE4xOV8+MX0wKE5WRkZIX2dNVk4gTiI4IiAkPnF9UjA0ICI4IiAkPjF9MCAiODE2PnEgQzlxNiJOKU4pTlVXCQkJCVcJCQkJJFJYPVhOak5DOXE2X1IwYXFSMChOPTQxMig+MX0wX0EwPV9hcTY9MDY9OShOVkZGSF9nTVZOIE4iOCIgJD5xfVIwNCAiOCIgJD4xfTAgIjgxNj5xIEM5cTYiTilOKSxOPTRJME4pO1cJCQkJVwkJCQkxPihOMTk5MD0oJFJYPVhtJzZYMjAnSilOM3tnTiRSWD1YbSc2WDIwJ0pOKU5VVwkJCQkJJH0xOT1tJD4xfTBKTmpOJFJYPVg7VwkJCQkJYXE2PTE2STA7VwkJCQkvVwkJCS9XCQkJVwkJCSR9MTk9bSQ+MX0wSm0nNlgyMCdKTmpOJD4xfTA7VwkJL1cJCVcJL1dXCWF9cTkwUjE0KE4kblg2Un0wTik7VwlwOXE0PSgkfTE5PSk7V1cJNDA9STQ2TiR9MTk9O1dXCVcvV1c+STZhPTFxNk5BMD1fMlg5OV9hWD05KCQxUilOVVcJQX1xa1h9TiRhWD1fMTY+cTtXVwkkMVJOak4wZGx9cVIwTignLScsTiQxUik7VwkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJPnE0MFhhbk4oTiRhWD1fMTY+cU5YOU4kYVg9OU4pTlVXVwkJMT5OKCRhWD05bScxUidKTndqTiQxUm1bSk4ze2dOJGFYPTltJzFSJ0pOPGpOJDFSbURKTilOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkYVg9OW0nMVInSik7V1cJL1dXCTE+TihOYXFJNj0oJD0wMmxfWDQ0WEwpTilOVU45cTQ9KCQ9MDJsX1g0NFhMKTtONDA9STQ2TjEybH1xUjAoJywnLE4kPTAybF9YNDRYTCk7Ti9XCTB9OTBONDA9STQ2Tls7V1cvV1c+STZhPTFxNk5hSTk9cTJfYXEyMjA2PTkoTiQyWD1hbjA5alg0NFhMKClOKU5VVwlBfXFrWH1OJFJrLE4kMTlffXFBQTBSLE4kMjAyazA0XzFSLE4kYVg9XzE2PnEsTiRhcTY+MUEsTiRJOTA0X0E0cUlsLE4kYVg9MEFxNExfMVIsTiRfSE1vXSxOJH1YNkEsTiQ5Mlg0PWxucTYwX1IwPTBhPTBSLE4kUn0wXzJxUkl9MCxOJFh9fXFHX2FxMjIwNj05X1hDWGQsTiRleGVfc11TWixOJFJ9MF99cUExNl9uWDluLE4kNDBsfVhhMF99MTZwOTtXVwkxPk4oTiFhcUk2PSgkMlg9YW4wOSlOKU40MD1JNDZOIiI7VwlXCSQ9MDJsX2FYPTBBcTRMXzFSTmpOJGFYPTBBcTRMXzFSO1cJJGxYNFgyXzk9NE5qTj00MTIoJDJYPWFuMDltREopO1cJJGFJOT1xMl9hWGFuMF8xUk5qTiJhSTk9cTJhcTIyMDY9OSIgJGxYNFgyXzk9NCAkYXE2PjFBbSc5cDE2J0o7V1cJJFhCMVhrfTBOak5YNDRYTCgiQX1xa1h9Iik7VwkkYXEyMl85cTQ9TmpOIjFSIjtXCSRhcTIyXzI5cTQ9TmpOImddc1kiO1cJJEduMDQwTmpOWDQ0WEwoKTtXCSQ9bjE5Ulg9ME5qTlJYPTAoTiJiLTItUk54OjE6OSIsTiRfSE1vXU4pO1cJJDl5fV85MH0wYT1Oak4ic11TXVlITmEyIDFSLE5hMiBscTk9XzFSLE5hMiBJOTA0XzFSLE5hMiBSWD0wLE5hMiBYST1xNE5YOU5BWDk9XzZYMjAsTmEyIDAyWDF9Tlg5TkFYOT1fMDJYMX0sTj0wZD0sTjFsLE4xOV80MEExOT0wNCxOYTIgNFg9MTZBLE5hMiBCcT0wXzZJMixONlgyMCxOSSAwMlgxfSxONjBHOV82STIsTkkgYXEyMl82STIsTkk5MDRfQTRxSWwsTn1YOT1SWD0wLE40MEFfUlg9MCxOOTFBNlg9STQwLE4+cT1xLE4+SX19NlgyMCxOfVg2UixOSSBkPjEwfVI5LE5sID0xPX0wLE5sIFJYPTBOWDlONjBHOVJYPTAsTmwgWH09XzZYMjAsTmwgYVg9MEFxNEwsTmwgWH19cUdfYXEyMk5aVkZvTiJOIE5lVl1aTQpOIE4iX2FxMjIwNj05TmEyTlNdWkhOLkZNe04iTiBOZVZdWk0KTiBOIl9scTk9TmxORntOYTIgbHE5PV8xUmpsIDFSTlVhWD1fQ3ExNi9TXVpITi5GTXtOIk4gTlRzXVZlVl1aTQpOIE4iX0k5MDQ5TklORntOYTIgSTkwNF8xUmpJIEk5MDRfMVJOIjtXVwkkWH19cUdfYVhhbjBOak4kYXE2PjFBbSdYfX1xR19hWGFuMCdKO1cJJGFYPTlfOTB9MGE9TmpOPlh9OTA7VwkkMVI5Xz5xNF85cTQ9TmpOPlh9OTA7VwlXCTE+KE5sNDBBXzJYPWFuKE4iI1hCWDF9WGt9MGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCSRYQjFYa30wTmpOMGRsfXFSMChOJ3wnLE4kMlg9YW5tREpOKTtXCS9XVwkkUnFOak4kUn0wXzJxUkl9ME4/TiRSfTBfMnFSSX0wTjpOIjJYMTYiO1dXCTE+KE4hMTZfWDQ0WEwoTiRScSxOJFhCMVhrfTBOKU4ze2dOKCRYQjFYa30wbVtKTiFqTiJBfXFrWH0iKU4pTjQwPUk0Nk4iIjtXVwkxPihObDQwQV8yWD1hbihOIiM2MEc5MVJqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXVwkJJGxYNFgyXzk9NE5qTjk9NF80MGx9WGEwKCQyWD1hbm1bSixOJycsTiRsWDRYMl85PTQpO1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkkR24wNDBfMVJOak5YNDRYTCgpO1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOVVcJCQkJJEJYfUkwTmpOMGRsfXFSMCgnLScsTiRCWH1JMCk7VwkJCQkkR24wNDBfMVJtSk5qTiJsIDFSTndqTiciTiBOMTY9Qlh9KCRCWH1JMG1bSilOIE4iJ04ze2dObCAxUk48ak4nIiAxNj1CWH0oJEJYfUkwbURKKSAiJyI7V1cJCQkvTjB9OTBOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkQlh9STApO1dXCQkvV1cJCTE+TihOYXFJNj0oJD0wMmxfWDQ0WEwpTilOVVdXCQkJJEduMDQwXzFSbUpOak4ibCAxUk5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCQkkMVI5Xz5xNF85cTQ9TmpOIlpNe2dfTXtfc11IKGwgMVIsTiciIDEybH1xUjAoIiwiLE4kPTAybF9YNDRYTCkgIicpTiI7VwkJL1dXCQkxPk4oTmFxSTY9KCRHbjA0MF8xUilOKU5VTlcJCQkkYUk5PXEyXzFSTmpOMTJsfXFSMCgnTkZWTicsTiRHbjA0MF8xUik7VwkJCSRHbjA0MG1KTmpOJGFJOT1xMl8xUjtXVwkJL1cJL1cJVwkxPihObDQwQV8yWD1hbihOIiM2MEc5MVIwZGF9SVIwam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJGxYNFgyXzk9NE5qTjk9NF80MGx9WGEwKCQyWD1hbm1bSixOJycsTiRsWDRYMl85PTQpO1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkkR24wNDBfMVJOak5YNDRYTCgpO1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOVVcJCQkJJEJYfUkwTmpOMGRsfXFSMCgnLScsTiRCWH1JMCk7VwkJCQkkR24wNDBfMVJtSk5qTiIobCAxUk48TiciTiBOMTY9Qlh9KCRCWH1JMG1bSilOIE4iJ05GVk5sIDFSTndOJyIgMTY9Qlh9KCRCWH1JMG1ESikgIicpIjtXVwkJCS9OMH05ME4kPTAybF9YNDRYTG1KTmpOMTY9Qlh9KCRCWH1JMCk7V1cJCS9XVwkJMT5OKE5hcUk2PSgkPTAybF9YNDRYTClOKU5VV1cJCQkkR24wNDBfMVJtSk5qTiJsIDFSTntGSE5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCS9XVwkJMT5OKE5hcUk2PSgkR24wNDBfMVIpTilOVU5XCQkJJGFJOT1xMl8xUk5qTjEybH1xUjAoJ04ze2dOJyxOJEduMDQwXzFSKTtXCQkJJEduMDQwbUpOak4kYUk5PXEyXzFSO1dXCQkvVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iIzFSam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VV1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkkR24wNDBfMVJOak5YNDRYTCgpO1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOVVcJCQkJJEJYfUkwTmpOMGRsfXFSMCgnLScsTiRCWH1JMCk7VwkJCQkkR24wNDBfMVJtSk5qTiJhMiAxUk53ak4nIk4gTjE2PUJYfSgkQlh9STBtW0opTiBOIidOM3tnTmEyIDFSTjxqTiciIDE2PUJYfSgkQlh9STBtREopICInIjtXVwkJCS9OMH05ME4kPTAybF9YNDRYTG1KTmpOMTY9Qlh9KCRCWH1JMCk7V1cJCS9XVwkJMT5OKE5hcUk2PSgkPTAybF9YNDRYTClOKU5VV1cJCQkkR24wNDBfMVJtSk5qTiJhMiAxUk5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCQkkMVI5Xz5xNF85cTQ9TmpOIlpNe2dfTXtfc11IKGEyIDFSLE4nIiAxMmx9cVIwKCIsIixOJD0wMmxfWDQ0WEwpICInKU4iO1cJCS9XVwkJMT5OKE5hcUk2PSgkR24wNDBfMVIpTilOVU5XCQkJJGFJOT1xMl8xUk5qTjEybH1xUjAoJ05GVk4nLE4kR24wNDBfMVIpO1cJCQkkR24wNDBtSk5qTiRhSTk9cTJfMVI7V1cJCS9XCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjMVIwZGF9SVIwam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VV1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkkR24wNDBfMVJOak5YNDRYTCgpO1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOVVcJCQkJJEJYfUkwTmpOMGRsfXFSMCgnLScsTiRCWH1JMCk7VwkJCQkkR24wNDBfMVJtSk5qTiIoYTIgMVJOPE4nIk4gTjE2PUJYfSgkQlh9STBtW0opTiBOIidORlZOYTIgMVJOd04nIiAxNj1CWH0oJEJYfUkwbURKKSAiJykiO1dXCQkJL04wfTkwTiQ9MDJsX1g0NFhMbUpOak4xNj1CWH0oJEJYfUkwKTtXVwkJL1dXCQkxPk4oTmFxSTY9KCQ9MDJsX1g0NFhMKU4pTlVXVwkJCSRHbjA0MF8xUm1KTmpOImEyIDFSTntGSE5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCS9XVwkJMT5OKE5hcUk2PSgkR24wNDBfMVIpTilOVU5XCQkJJGFJOT1xMl8xUk5qTjEybH1xUjAoJ04ze2dOJyxOJEduMDQwXzFSKTtXCQkJJEduMDQwbUpOak4kYUk5PXEyXzFSO1dXCQkvVwkvV1cJJGFYPV9DcTE2TmpOIiI7VwlXCTE+KE5sNDBBXzJYPWFuKE4iI2FYPTBBcTRMam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJJGFYPTlfOTB9MGE9TmpOPTRJMDtXVwkJJD0wMmxfWDQ0WExOak5YNDRYTCgpO1dXCQkkMlg9YW5tREpOak4wZGx9cVIwTignLCcsTiQyWD1hbm1ESik7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCTE+KE5hcUk2PSgwZGx9cVIwKCctJyxOJEJYfUkwKSlOampONU4pTiQ9MDJsX1g0NFhMbUpOak5BMD1fMlg5OV9hWD05KCRCWH1JMCk7VwkJCTB9OTBOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkQlh9STApO1dXCQkvV1cJCSQ9MDJsX1g0NFhMTmpOMTJsfXFSMCgnLCcsTiQ9MDJsX1g0NFhMKTtXVwkJJGFJOT1xMl9hWD0wQXE0TE5qTiRSay13OVg+MDl5fShOPTQxMigkPTAybF9YNDRYTClOKTtXCQkkYUk5PXEyX2FYPTBBcTRMTmpOOT00XzQwbH1YYTAoTiIsIixOIicsJyIsTiRhSTk9cTJfYVg9MEFxNExOKTtXVwkJMT4oTiRhcTY+MUFtJ1h9fXFHXzJJfT0xX2FYPTBBcTRMJ0pOKU5VVwkJCVcJCQkkYVg9X0NxMTZOak4iTXt7XVZOLkZNe04oc11TXVlITmdNc0hNe1lIKCJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTkgNjBHOV8xUilOWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05TlF4XVZdTmFYPV8xUk5Ne04oJyJOIE4kYUk5PXEyX2FYPTBBcTRMTiBOIicpKU5hTkZ7TihsIDFSamEgNjBHOV8xUilOIjtXCQlXCQkvTjB9OTBOVVdXCQkJJEduMDQwbUpOak4ibCBhWD0wQXE0TE5Ne04oJyJOIE4kYUk5PXEyX2FYPTBBcTRMTiBOIicpIjtXCQlXCQkvVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iI2FYPTBBcTRMMGRhfUlSMGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCVcJCSRhWD05XzkwfTBhPU5qTj00STA7VwkJVwkJJD0wMmxfWDQ0WExOak5YNDRYTCgpO1dXCQkkMlg9YW5tREpOak4wZGx9cVIwTignLCcsTiQyWD1hbm1ESik7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCTE+KE5hcUk2PSgwZGx9cVIwKCctJyxOJEJYfUkwKSlOampONU4pTiQ9MDJsX1g0NFhMbUpOak5BMD1fMlg5OV9hWD05KCRCWH1JMCk7VwkJCTB9OTBOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkQlh9STApO1dXCQkvV1cJCSQ9MDJsX1g0NFhMTmpOMTJsfXFSMCgnLCcsTiQ9MDJsX1g0NFhMKTtXVwkJJGFJOT1xMl9hWD0wQXE0TE5qTiRSay13OVg+MDl5fShOPTQxMigkPTAybF9YNDRYTClOKTtXCQkkYUk5PXEyX2FYPTBBcTRMTmpOOT00XzQwbH1YYTAoTiIsIixOIicsJyIsTiRhSTk9cTJfYVg9MEFxNExOKTtXVwkJMT4oTiRhcTY+MUFtJ1h9fXFHXzJJfT0xX2FYPTBBcTRMJ0pOKU5VVwkJCVcJCQkkR24wNDBtSk5qTiJsIDFSTntGSE5Ne04oTnNdU11ZSE5nTXNITXtZSCgiTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05IDYwRzlfMVIpTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlfYVg9OU5ReF1WXU5hWD1fMVJOTXtOKCciTiBOJGFJOT1xMl9hWD0wQXE0TE4gTiInKU4pIjtXCQlXCQkvTjB9OTBOVVcJCQlXCQkJJEduMDQwbUpOak4ibCBhWD0wQXE0TE57RkhOTXtOKCciTiBOJGFJOT1xMl9hWD0wQXE0TE4gTiInKSI7VwkJVwkJL1cJL1cJVwkxPk4oISRhWD05XzkwfTBhPSlOVVcJCVcJCSRYfX1xR199MTk9TmpOMGRsfXFSMChOJywnLE4kSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSdYfX1xR19hWD05J0pOKTtXCQlXCQkxPihOJFh9fXFHX30xOT1tW0pOIWpOIlh9fSJOKU5VVwlXCQkJMT4oTiRhcTY+MUFtJ1h9fXFHXzJJfT0xX2FYPTBBcTRMJ0pOKU5VVwkJCQkJVwkJCQkkYVg9X0NxMTZOak4iTXt7XVZOLkZNe04oc11TXVlITmdNc0hNe1lIKCJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTkgNjBHOV8xUilOWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05TlF4XVZdTmFYPV8xUk5Ne04oJyJOIE4xMmx9cVIwKE4iJywnIixOJFh9fXFHX30xOT1OKU4gTiInKSlOYU5Ge04obCAxUmphIDYwRzlfMVIpTiI7VwkJCQlXCQkJL04wfTkwTlVXCQkJCQlXCQkJCSRHbjA0MG1KTmpOImwgYVg9MEFxNExOTXtOKCciTiBOMTJsfXFSMChOIicsJyIsTiRYfX1xR199MTk9TilOIE4iJykiO1cJCQkJVwkJCS9XCQlXCQkvVwlXCQkkNnE9X1h9fXFHX2FYPTlOak4wZGx9cVIwTihOJywnLE4kSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSc2cT1fWH19cUdfYVg9OSdKTik7VwkJCVcJCTE+KE4kNnE9X1h9fXFHX2FYPTltW0pOIWpOIiJOKU5VVwkJCVcJCQkxPk4oJGFxNj4xQW0nWH19cUdfMkl9PTFfYVg9MEFxNEwnSilOVVcJCQkJVwkJCQkkR24wNDBtSk5qTiJsIDFSTntGSE5Ne04oTnNdU11ZSE5nTXNITXtZSCgiTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05IDYwRzlfMVIpTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlfYVg9OU5ReF1WXU5hWD1fMVJOTXtOKCJOIE4xMmx9cVIwTihOJywnLE4kNnE9X1h9fXFHX2FYPTlOKU4gTiIpTikiO1cJCQlXCQkJL04wfTkwTlVXCQkJCVcJCQkJJEduMDQwbUpOak4ibCBhWD0wQXE0TE57RkhOTXtOKCciTiBOMTJsfXFSME4oTiInLCciLE4kNnE9X1h9fXFHX2FYPTlOKU4gTiInKSI7VwkJCVcJCQkvVwkJCVcJCS9XCS9XCVcJJDl5fV85MH0wYT1Oak45PTRfNDBsfVhhMChOIlVhWD1fQ3ExNi8iLE4kYVg9X0NxMTYsTiQ5eX1fOTB9MGE9Tik7VwlXCTE+KE5sNDBBXzJYPWFuKE4iI1JYTDlqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkUlhMOU5qTjE2PUJYfSg9NDEyKCQyWD1hbm1ESikpO1cJCSRHbjA0MG1KTmpOImEyIFJYPTBOd2pOJ1UkPW4xOVJYPTAvJ04tTk17SF1WUDNTTlUkUlhMOS9OZzNiTjN7Z05hMiBSWD0wTjxOJ1UkPW4xOVJYPTAvJyI7VwkvV1cJMT4oTmw0MEFfMlg9YW4oTiIjWEk9bnE0am0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJDJYPWFubURKTmpOMGRsfXFSME4oJywnLE4kMlg9YW5tREopO1dXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkkPTAybF9YNDRYTG1KTmpOImEyIFhJPXE0TmpOJ1UkQlh9STAvJyI7V1cJCS8JCVcJCVcJCSRHbjA0MG1KTmpOMTJsfXFSMCgnTkZWTicsTiQ9MDJsX1g0NFhMKTtXCQlXCQlXCS9XVwkxPihObDQwQV8yWD1hbihOIiNYST1ucTQwZGF9SVIwam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJDJYPWFubURKTmpOMGRsfXFSME4oJywnLE4kMlg9YW5tREopO1dXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkkPTAybF9YNDRYTG1KTmpOImEyIFhJPXE0TiFqTidVJEJYfUkwLyciO1dXCQkvCQlXCQlXCQkkR24wNDBtSk5qTjEybH1xUjAoJ04ze2dOJyxOJD0wMmxfWDQ0WEwpO1cJCVcJCVcJL1cJVwkxPihOJGFxNj4xQW0nWH19cUdfYTJxUidKTilOVVcJCVcJCSRHbjA0MG1KTmpOImEyIFhsbDRxQjBqRCI7VwlXCS9XVwkxPihObDQwQV8yWD1hbihOIiM9MDJsfVg9MGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCSRhSTk9cTJfPTAybH1YPTBOak49NDEyKCQyWD1hbm1ESik7VwkvTjB9OTBOJGFJOT1xMl89MDJsfVg9ME5qTiJhcTIyMDY9OSI7VwlXCVcJMT4oTmw0MEFfMlg9YW4oTiIjOXE0PWptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCSRYfX1xRzBSXzlxND1Oak5YNDRYTE4oJ1g5YSdOandOJzNzWScsTidSMDlhJ05qd04nZ11zWSdOKTtXVwkJJDJYPWFubURKTmpOOT00PXF9cUcwNCgkMlg9YW5tREopO1dXCQkxPk4oTiRYfX1xRzBSXzlxND1tJDJYPWFubURKSk4pTiRhcTIyXzI5cTQ9TmpOJFh9fXFHMFJfOXE0PW0kMlg9YW5tREpKO1dXCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjcTRSMDRqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkWH19cUcwUl85cTQ9TmpOWDQ0WExOKCdSWD0wJ05qd04nMVInLE4nNFg9MTZBJ05qd04nNFg9MTZBJyxOJzRYNlInTmp3TidWM3tnKCknTik7V1cJCSQyWD1hbm1ESk5qTjk9ND1xfXFHMDQoJDJYPWFubURKKTtXVwkJMT5OKE4kWH19cUcwUl85cTQ9bSQyWD1hbm1ESkpOKU4kYXEyMl85cTQ9TmpOJFh9fXFHMFJfOXE0PW0kMlg9YW5tREpKO1cJCVcJCTE+TigkMlg9YW5tREpOampOIjRYNlIiTilOVU4kYXEyMl8yOXE0PU5qTiIiO04vVwkJVwkJMT4oJDJYPWFubURKTmpqTiIxUl9YOV99MTk9Ik4ze2dOJDFSOV8+cTRfOXE0PSlVVwkJCSRhcTIyXzlxND1Oak4kMVI5Xz5xNF85cTQ9O1cJCQkkYXEyMl8yOXE0PU5qTiIiO1cJCS9XVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iIz40cTJqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkYUk5PXEyXz40cTJOak4xNj1CWH0oJDJYPWFubURKKTtXCS9OMH05ME5VTiRhSTk9cTJfPjRxMk5qTls7Ti9XVwkxPihObDQwQV8yWD1hbihOIiN9MTIxPWptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCSRhSTk9cTJffTEyMT1Oak4xNj1CWH0oJDJYPWFubURKKTtXCS9OMH05ME4kYUk5PXEyX30xMjE9TmpOMTY9Qlh9KCRhcTY+MUFtJ2FxMjJfNkkyMjA0OSdKKTtXVwkkYUk5PXEyWVhhbjBaMX0wTmpOPlh9OTA7VwkkYVhhbjBIMTIwOT1YMmxOak4+WH05MDtXVwkxPk4obDQwQV8yWD1hbigiI2FYYW4wam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuKSlOVVdXCQkkPTEyMFQ2MT1Oak45SWs5PTQoJDJYPWFubURKLE4tRCk7V1cJCTE+TigxNl9YNDRYTCgkPTEyMFQ2MT0sTlg0NFhMKCdSJyxOJ24nLE4nMicpKSlOVVdXCQkJJFgycUk2PU5qTjE2PUJYfSgkMlg9YW5tREopO1dXCQkJMT5OKCRYMnFJNj0pTlVXCQkJCSRhWGFuMEgxMjA5PVgybE5qTiRYMnFJNj1OIE4kPTEyMFQ2MT07VwkJCQkkYUk5PXEyWVhhbjBaMX0wTmpOPTRJMDtXCQkJCSRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0pOak5EO1cJCQkvV1cJCS9OMH05ME5VV1cJCQkxPk4oJDJYPWFubURKTmpqTiJMMDkiKU4kYXE2PjFBbSdYfX1xR19hWGFuMCdKTmpORDtXCQkJMH05ME4kYXE2PjFBbSdYfX1xR19hWGFuMCdKTmpOPlh9OTA7VwkJL1cJL1dXCTE+TigkYUk5PXEyWVhhbjBaMX0wKU4kYVhhbjBaMX0wTmpOImFJOT1xMmFxMjJrfXFhcCI7TjB9OTBOJGFYYW4wWjF9ME5qTiI2MEc5IjtXVwkxPihOYXFJNj0oTiRHbjA0ME4pTilOVVcJCVcJCSRHbjA0ME5qTjEybH1xUjAoTiJOM3tnTiIsTiRHbjA0ME4pO1cJCSRHbjA0ME5qTiJReF1WXU4iTiBOJEduMDQwO1cJVwkvTjB9OTBOJEduMDQwTmpOIiI7V1cJJDl5fV85MH0wYT1OIGpOTiRHbjA0MCAiTkZWZ11WTmliTiJOIE4kYXEyMl85cTQ9TiBOIk4iTiBOJGFxMjJfMjlxND1OIE4iTlNNb01ITiJOIE4kYUk5PXEyXz40cTJOIE4iLCJOIE4kYUk5PXEyX30xMjE9O1dXCSRhcTY9MDY9TmpOUn0wX2FYYW4wKCRhWGFuMFoxfTAsTiRhSTk9cTJfYVhhbjBfMVIsTj00STAsTiRhWGFuMEgxMjA5PVgybE4pO1dXCTE+KE4kYXE2PTA2PU4hampOPlh9OTBOKU5VV1cJCSRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0pOak4kWH19cUdfYVhhbjA7VwkJNDA9STQ2TiRhcTY9MDY9O1cJVwkvTjB9OTBOVVdXCQkkPWx9TmpONjBHTlJ9MF89MDJsfVg9MCgpO1cJCSQ9bH0td1IxNE5qTkhdb2VTM0hdX2dNVjtXCQkJVwkJJGFxMjIwNj05TmpONjBHTmdTXV9ZcTIyMDY9OShOJFJrLE4kYUk5PXEyX30xMjE9LE4kYUk5PXEyX30xMjE9Tik7VwkJJGFxMjIwNj05LXd5STA0TE5qTiQ5eX1fOTB9MGE9O1cJCSRhcTY9MDY9TmpOJGFxMjIwNj05LXdrSTF9Ul9hSTk9cTJhcTIyMDY9OShOJD1sfSxOJGFJOT1xMl89MDJsfVg9MCAnID1sfSdOKTtXVwkJMT5OKE4kYXE2PjFBbSdYfX1xR19hWGFuMCdKTilOYTQwWD0wX2FYYW4wKE4kYVhhbjBaMX0wLE4kYXE2PTA2PSxOJGFJOT1xMl9hWGFuMF8xUixOPTRJMCxOJGFYYW4wSDEyMDk9WDJsTik7V1cJCSRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0pOak4kWH19cUdfYVhhbjA7VwkJJGFYPTBBcTRMXzFSTmpOJD0wMmxfYVg9MEFxNExfMVI7VwkJVwkJNDA9STQ2TiRhcTY9MDY9O1cJVwkvVwlXVy9XVz5JNmE9MXE2TmFJOT1xMl9sNDE2PShOJDJYPWFuMDlqWDQ0WEwoKU4pTlVXCUF9cWtYfU4kUmssTiQxOV99cUFBMFIsTiQyMDJrMDRfMVIsTiRkPl8xNjE9MFIsTiRhWD1fMTY+cSxOJGFxNj4xQSxOJEk5MDRfQTRxSWwsTiRhWD0wQXE0TF8xUixOJF9ITW9dLE4kfVg2QSxOJDkyWDQ9bG5xNjBfUjA9MGE9MFIsTiRSfTBfMnFSSX0wLE4kWH19cUdfYXEyMjA2PTlfWENYZCxOJGV4ZV9zXVNaLE4kNjBHOV9SWD0wLE4ka1g2NjA0OSxOJGtYNjYwNF8xNl82MEc5LE4ka1g2XzlucTQ9LE4kSTR9X2xYQTAsTiRJOTA0X3lJMDRMLE4kYUk5PXEyXzYwRzksTiRBfXFrWH1fNjBHOV9hcUk2PSxOJDQwMnFCMF9hWDZxNjFhWH0sTiRhSTk9cTJfNlhCMUFYPTFxNixOJDRxRyxOJF9nRllUb117SF9nM0hdO1dXCTE+TihOIWFxSTY9KCQyWD1hbjA5KU4pTjQwPUk0Nk4iIjtXCSQ5WEIwXzRxR05qTiQ0cUc7VwlXCSRsWDRYMl85PTROak49NDEyKCQyWD1hbjA5bURKKTtXCSRhSTk9cTJfYVhhbjBfMVJOak4iYUk5PXEyNjBHOSIgJGxYNFgyXzk9NCAkYXE2PjFBbSc5cDE2J0o7V1dXCTE+KE4kYXE2PjFBbSdJOTA0XzE2XzYwRzknSk4pTlVXCQlXCQkkSTkwNF85MH0wYT1Oak4iLE5JIDAyWDF9LE5JIDZYMjAsTkkgSTkwNF8xUixOSSA2MEc5XzZJMixOSSBhcTIyXzZJMk5YOU5JOTA0X2FxMjJfNkkyLE5JIEk5MDRfQTRxSWwsTkkgfVg5PVJYPTAsTkkgNDBBX1JYPTAsTkkga1g2NjBSLE5JIFh9fXFHXzJYMX0sTkkgMTY+cSxOSSA5MUE2WD1JNDAsTkkgPnE9cSxOSSA+SX19NlgyMCxOSSB9WDZSLE5JID5YQnE0MT0wOSxOSSBsMl9YfX0sTkkgbDJfSTY0MFhSLE5JID0xMjBffTEyMT0sTkkgZD4xMH1SOU5YOU5JOTA0X2Q+MTB9UjlOIjtXCQkkSTkwNF9DcTE2TmpOIlNdWkhOLkZNe04iTiBOVHNdVmVWXVpNCk4gTiJfSTkwNDlOSU5Ge04oMCBJOTA0XzFSakkgSTkwNF8xUilOIjtXCQlXCS9OMH05ME5VTiRJOTA0XzkwfTBhPU5qTiIiO04kSTkwNF9DcTE2TmpOIiI7Ti9XCQlXCSRYQjFYa30wTmpOWDQ0WEwoIkF9cWtYfSIpO1cJJD1uMTlSWD0wTmpOUlg9MChOImItMi1STng6MTo5IixOJF9ITW9dTik7VwkkOXl9XzkwfTBhPU5qTiJzXVNdWUhObCAxUixObCBYST1xNCxObCBSWD0wLE5sIDlucTQ9Xzk9cTRMLE5ZeDNWX1Nde3RIeChsID5JfX1fOT1xNEwpTlg5Tj5JfX1fOT1xNEwsTmwgZD4xMH1SOSxObCA9MT19MCxObCBSMDlhNCxObCBwMExHcTRSOSxObCBhWD0wQXE0TCxObCBYfT1fNlgyMCxObCBhcTIyXzZJMixObCBYfX1xR19hcTIyLE5sIFh9fXFHXzJYMTYsTmwgWGxsNHFCMCxObCA+MWQwUixObCA5TDJrcX0sTmwgPVhBOSxOMCA2MEc5XzQwWFIsTjAgWH19cUdfNFg9MCxOMCA0WD0xNkEsTjAgQnE9MF82STIsTjAgQnE9MDksTjAgQjEwR18wUjE9LE4wIFIxOVhrfTBfMTZSMGQsTjAgMFIxPVJYPTAsTjAgMFIxPXE0LE4wIDQwWDlxNk5VJEk5MDRfOTB9MGE9L1pWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PU5sTlVhWD1fQ3ExNi9TXVpITi5GTXtOIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlOME5Ge04obCAxUmowIDYwRzlfMVIpTlUkSTkwNF9DcTE2LyI7V1cJJEduMDQwTmpOWDQ0WEwoKTtXCSRYfX1xR19hWGFuME5qTiRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0o7VwkkYVg9OV85MH0wYT1Oak4+WH05MDtXCSQxUjlfPnE0XzlxND1Oak4+WH05MDtXCSRhWD1fQ3ExNl9hcUk2PU5qTiIiO1cJJGQ+MTB9UjlfMTZfNjBHOU5qTlg0NFhMKCk7V1cJMT4oTmw0MEFfMlg9YW4oTiIjWEIxWGt9MGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCSRYQjFYa30wTmpOMGRsfXFSMChOJ3wnLE4kMlg9YW5tREpOKTtXCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjWEJYMX1Ya30wam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJJFhCMVhrfTBOak4wZGx9cVIwKE4nfCcsTiQyWD1hbm1ESk4pO1cJL1cJVwkkUnFOak4kUn0wXzJxUkl9ME4/TiRSfTBfMnFSSX0wTjpOIjJYMTYiO1dXCTE+KE4hMTZfWDQ0WEwoTiRScSxOJFhCMVhrfTBOKU4ze2dOKCRYQjFYa30wbVtKTiFqTiJBfXFrWH0iKU4pTjQwPUk0Nk4iIjtXVwkxPihObDQwQV8yWD1hbihOIiMxUmptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVdXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7VwkJJEduMDQwXzFSTmpOWDQ0WEwoKTtXCQkkMlg9YW5tREpOak4wZGx9cVIwTignLCcsTj00MTIoJDJYPWFubURKKSk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCTE+KE5hcUk2PSgwZGx9cVIwKCctJyxOJEJYfUkwKSlOampONU4pTlVXCQkJCSRCWH1JME5qTjBkbH1xUjAoJy0nLE4kQlh9STApO1cJCQkJJEduMDQwXzFSbUpOak4iMVJOd2pOJyJOIE4xNj1CWH0oJEJYfUkwbVtKKU4gTiInTjN7Z04xUk48ak4nIiAxNj1CWH0oJEJYfUkwbURKKSAiJyI7V1cJCQkvTjB9OTBOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkQlh9STApO1dXCQkvV1cJCTE+TihOYXFJNj0oJD0wMmxfWDQ0WEwpTilOVVdXCQkJJEduMDQwXzFSbUpOak4iMVJOTXtOKCciTiBOMTJsfXFSMCgiJywnIixOJD0wMmxfWDQ0WEwpTiBOIicpIjtXCQkJJDFSOV8+cTRfOXE0PU5qTiJaTXtnX017X3NdSCgxUixOJyIgMTJsfXFSMCgiLCIsTiQ9MDJsX1g0NFhMKSAiJylOIjtXCQkvV1cJCTE+TihOYXFJNj0oJEduMDQwXzFSKU4pTlVOVwkJCSRhSTk9cTJfMVJOak4iKCIgMTJsfXFSMCgnTkZWTicsTiRHbjA0MF8xUikgIikiO1cJCQkkR24wNDBtSk5qTiRhSTk9cTJfMVI7V1cJCS9XCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjMVIwZGF9SVIwam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VV1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkkR24wNDBfMVJOak5YNDRYTCgpO1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOVVcJCQkJJEJYfUkwTmpOMGRsfXFSMCgnLScsTiRCWH1JMCk7VwkJCQkkR24wNDBfMVJtSk5qTiIoMVJOPE4nIk4gTjE2PUJYfSgkQlh9STBtW0opTiBOIidORlZOMVJOd04nIiAxNj1CWH0oJEJYfUkwbURKKSAiJykiO1dXCQkJL04wfTkwTiQ9MDJsX1g0NFhMbUpOak4xNj1CWH0oJEJYfUkwKTtXVwkJL1dXCQkxPk4oTmFxSTY9KCQ9MDJsX1g0NFhMKU4pTlVXVwkJCSRHbjA0MF8xUm1KTmpOIjFSTntGSE5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCS9XVwkJMT5OKE5hcUk2PSgkR24wNDBfMVIpTilOVU5XCQkJJGFJOT1xMl8xUk5qTjEybH1xUjAoJ04ze2dOJyxOJEduMDQwXzFSKTtXCQkJJEduMDQwbUpOak4kYUk5PXEyXzFSO1dXCQkvVwkvVwlXCSRhWD1fQ3ExNk5qTiIiO1dXCTE+KE5sNDBBXzJYPWFuKE4iI2FYPTBBcTRMam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJGFYPTlfOTB9MGE9TmpOPTRJMDtXCQlXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOJDJYPWFubURKKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOJD0wMmxfWDQ0WExtSk5qTkEwPV8yWDk5X2FYPTkoJEJYfUkwKTtXCQkJMH05ME4kPTAybF9YNDRYTG1KTmpOMTY9Qlh9KCRCWH1JMCk7V1cJCS9XVwkJJD0wMmxfWDQ0WExOak49NDEyKDEybH1xUjAoJywnLE4kPTAybF9YNDRYTCkpO1dXCQkxPihOJD0wMmxfWDQ0WExOM3tnTmw0MEFfMlg9YW4oTiIjOUlrYVg9am0nXCJKKEwwOXxxNn1MKW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kOUlrYVg9XzJYPWFuTilOKU5VVwkJCVcJCQkkOUlrYVg9X1g0NFhMTmpOWDQ0WEwoKTtXCQkJJGFfWDQ0TmpOMGRsfXFSME4oJywnLE4kPTAybF9YNDRYTCk7VwkJCVcJCQk+cTQwWGFuTigkYV9YNDROWDlOJEJYfUkwKU5VVwkJCQkkOUlrYVg9X1g0NFhMbUpOak5BMD1fOUlrX2FYPTlOKE4kQlh9STAsTicnLE4+WH05ME4pO1cJCQkvVwkJCVcJCQkkOUlrYVg9X1g0NFhMTmpOPTQxMig5PTRfNDBsfVhhMChOInwiLE4iLCIsTjEybH1xUjAoJywnLE4kOUlrYVg9X1g0NFhMKSkpO1cJCQlXCQkJMT4oTiQ5SWthWD1fMlg9YW5tREpOampOIkwwOSJOKU5VVwkJCQkkPTAybF9YNDRYTE4gak4nLCcgJDlJa2FYPV9YNDRYTDtXCQkJL1cJCQlXCQkJMT4oTiQ5SWthWD1fMlg9YW5tREpOampOInE2fUwiTilOVVcJCQkJJD0wMmxfWDQ0WExOak4kOUlrYVg9X1g0NFhMO1cJCQkvVwkJCVcJCS9XVwkJJGFJOT1xMl9hWD0wQXE0TE5qTiRSay13OVg+MDl5fShOJD0wMmxfWDQ0WExOKTtXCQkkYUk5PXEyX2FYPTBBcTRMTmpOOT00XzQwbH1YYTAoTiIsIixOIicsJyIsTiRhSTk9cTJfYVg9MEFxNExOKTtXVwkJMT4oTiRhcTY+MUFtJ1h9fXFHXzJJfT0xX2FYPTBBcTRMJ0pOKU5VVwkJCVcJCQkkYVg9X0NxMTZOak4iTXt7XVZOLkZNe04oc11TXVlITmdNc0hNe1lIKCJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTkgNjBHOV8xUilOWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05TlF4XVZdTmFYPV8xUk5Ne04oJyJOIE4kYUk5PXEyX2FYPTBBcTRMTiBOIicpKU5hTkZ7TihsIDFSamEgNjBHOV8xUilOIjtXCQlXCQkvTjB9OTBOVVdXCQkJJEduMDQwbUpOak4ibCBhWD0wQXE0TE5Ne04oJyJOIE4kYUk5PXEyX2FYPTBBcTRMTiBOIicpIjtXCQlXCQkvVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iI2FYPTBBcTRMMGRhfUlSMGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCVcJCSRhWD05XzkwfTBhPU5qTj00STA7VwkJVwkJJD0wMmxfWDQ0WExOak5YNDRYTCgpO1dXCQkkMlg9YW5tREpOak4wZGx9cVIwTignLCcsTiQyWD1hbm1ESik7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCTE+KE5hcUk2PSgwZGx9cVIwKCctJyxOJEJYfUkwKSlOampONU4pTiQ9MDJsX1g0NFhMbUpOak5BMD1fMlg5OV9hWD05KCRCWH1JMCk7VwkJCTB9OTBOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkQlh9STApO1dXCQkvV1cJCSQ9MDJsX1g0NFhMTmpOPTQxMigxMmx9cVIwKCcsJyxOJD0wMmxfWDQ0WEwpKTtXVwkJMT4oTiQ9MDJsX1g0NFhMTjN7Z05sNDBBXzJYPWFuKE4iIzlJa2FYPWptJ1wiSihMMDl8cTZ9TCltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDlJa2FYPV8yWD1hbk4pTilOVVcJCQlXCQkJJDlJa2FYPV9YNDRYTE5qTlg0NFhMKCk7VwkJCSRhX1g0NE5qTjBkbH1xUjBOKCcsJyxOJD0wMmxfWDQ0WEwpO1cJCQlXCQkJPnE0MFhhbk4oJGFfWDQ0Tlg5TiRCWH1JMClOVVcJCQkJJDlJa2FYPV9YNDRYTG1KTmpOQTA9XzlJa19hWD05TihOJEJYfUkwLE4nJyxOPlh9OTBOKTtXCQkJL1cJCQlXCQkJJDlJa2FYPV9YNDRYTE5qTj00MTIoOT00XzQwbH1YYTAoTiJ8IixOIiwiLE4xMmx9cVIwKCcsJyxOJDlJa2FYPV9YNDRYTCkpKTtXCQkJVwkJCTE+KE4kOUlrYVg9XzJYPWFubURKTmpqTiJMMDkiTilOVVcJCQkJJD0wMmxfWDQ0WExOIGpOJywnICQ5SWthWD1fWDQ0WEw7VwkJCS9XCQkJVwkJCTE+KE4kOUlrYVg9XzJYPWFubURKTmpqTiJxNn1MIk4pTlVXCQkJCSQ9MDJsX1g0NFhMTmpOJDlJa2FYPV9YNDRYTDtXCQkJL1cJCQlXCQkvV1cJCSRhSTk9cTJfYVg9MEFxNExOak4kUmstdzlYPjA5eX0oTiQ9MDJsX1g0NFhMTik7VwkJJGFJOT1xMl9hWD0wQXE0TE5qTjk9NF80MGx9WGEwKE4iLCIsTiInLCciLE4kYUk5PXEyX2FYPTBBcTRMTik7V1cJCTE+KE4kYXE2PjFBbSdYfX1xR18ySX09MV9hWD0wQXE0TCdKTilOVVcJCQlXCQkJJEduMDQwbUpOak4ibCAxUk57RkhOTXtOKE5zXVNdWUhOZ01zSE17WUgoIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlfYVg9OSA2MEc5XzFSKU5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTlOUXhdVl1OYVg9XzFSTk17TignIk4gTiRhSTk9cTJfYVg9MEFxNExOIE4iJylOKSI7VwkJVwkJL04wfTkwTlVXCQkJVwkJCSRHbjA0MG1KTmpOImFYPTBBcTRMTntGSE5Ne04oJyJOIE4kYUk5PXEyX2FYPTBBcTRMTiBOIicpIjtXCQlXCQkvVwkvVwlXCTE+KE4hJGFYPTlfOTB9MGE9TilOVVcJCVcJCSRYfX1xR199MTk9TmpOMGRsfXFSMChOJywnLE4kSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSdYfX1xR19hWD05J0pOKTtXCQlXCQkxPihOJFh9fXFHX30xOT1tW0pOIWpOIlh9fSJOM3tnTiEkSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSdYfX1xR185bnE0PSdKTilOVVcJVwkJCTE+KE4kYXE2PjFBbSdYfX1xR18ySX09MV9hWD0wQXE0TCdKTilOVVcJCQkJCVcJCQkJJGFYPV9DcTE2TmpOIk17e11WTi5GTXtOKHNdU11ZSE5nTXNITXtZSCgiTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05IDYwRzlfMVIpTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlfYVg9OU5ReF1WXU5hWD1fMVJOTXtOKCciTiBOMTJsfXFSMChOIicsJyIsTiRYfX1xR199MTk9TilOIE4iJykpTmFORntOKGwgMVJqYSA2MEc5XzFSKU4iO1cJCQkJVwkJCS9OMH05ME5VVwkJCQkJVwkJCQkkR24wNDBtSk5qTiJhWD0wQXE0TE5Ne04oJyJOIE4xMmx9cVIwKE4iJywnIixOJFh9fXFHX30xOT1OKU4gTiInKSI7VwkJCQlXCQkJL1cJCVcJCS9XCVcJCSQ2cT1fWH19cUdfYVg9OU5qTjBkbH1xUjBOKE4nLCcsTiRJOTA0X0E0cUlsbSQyMDJrMDRfMVJtJ0k5MDRfQTRxSWwnSkptJzZxPV9YfX1xR19hWD05J0pOKTtXCQkJVwkJMT4oTiQ2cT1fWH19cUdfYVg9OW1bSk4hak4iIk4pTlVXCQkJVwkJCTE+TigkYXE2PjFBbSdYfX1xR18ySX09MV9hWD0wQXE0TCdKKU5VVwkJCQlXCQkJCSRHbjA0MG1KTmpOImwgMVJOe0ZITk17TihOc11TXVlITmdNc0hNe1lIKCJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTkgNjBHOV8xUilOWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05TlF4XVZdTmFYPV8xUk5Ne04oJyJOIE4xMmx9cVIwTihOIicsJyIsTiQ2cT1fWH19cUdfYVg9OU4pTiBOIicpTikiO1cJCQlXCQkJL04wfTkwTlVXCQkJCVcJCQkJJEduMDQwbUpOak4iYVg9MEFxNExOe0ZITk17TignIk4gTjEybH1xUjBOKE4iJywnIixOJDZxPV9YfX1xR19hWD05TilOIE4iJykiO1cJCQlXCQkJL1cJCQlXCQkvVwkJVwkvVwlXCSQ5eX1fOTB9MGE9TmpOOT00XzQwbH1YYTAoTiJVYVg9X0NxMTYvIixOJGFYPV9DcTE2LE4kOXl9XzkwfTBhPU4pO1cJVwkxPihObDQwQV8yWD1hbihOIiM+ST1JNDBYNjZxSTZhMGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCVcJCTE+KE4kMlg9YW5tREpOampOIkwwOSJOKU4kPjRxMj5JPUk0ME5qTj00STA7VwkJMH05ME4kPjRxMj5JPUk0ME5qTj5YfTkwO1cJCVcJL04wfTkwTiQ+NHEyPkk9STQwTmpOPlh9OTA7VwlXCTE+KE5sNDBBXzJYPWFuKE4iI1JYTDlqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkUlhMOU5qTjE2PUJYfSg9NDEyKCQyWD1hbm1ESikpO1cJCVcJCTE+KCQ+NHEyPkk9STQwKU5VVwkJCVcJCQkkOT1YND1SWD0wTmpOUlg9MCgiYi0yLVJOW1s6W1s6W1siLE45PTQ9cT0xMjAoIitETlJYTCIpKTtXCQkJJDA2UlJYPTBOak5SWD0wKCJiLTItUk5bWzpbWzpbWyIsTjk9ND1xPTEyMCgiKyIgKCRSWEw5K0QpICJOUlhMIikpO1cJCQkkR24wNDBtSk5qTiJsIFJYPTBOd2pOJ1UkOT1YND1SWD0wLydOM3tnTmwgUlg9ME48TidVJDA2UlJYPTAvJyI7VwkJCVcJCS9OMH05ME5VVwkJCVcJCQkkR24wNDBtSk5qTiJsIFJYPTBOd2pOJ1UkPW4xOVJYPTAvJ04tTk17SF1WUDNTTlUkUlhMOS9OZzNiTjN7Z05sIFJYPTBOPE4nVSQ9bjE5Ulg9MC8nIjtXCQkJVwkJL1cJCVcJL04wfTkwTiRSWEw5TmpOWztXVwkxPihObDQwQV8yWD1hbihOIiNYST1ucTRqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQlXCQkkMlg9YW5tREpOak4wZGx9cVIwTignLCcsTiQyWD1hbm1ESik7V1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJJEJYfUkwTmpOJFJrLXc5WD4wOXl9KD00MTIoJEJYfUkwKSk7VwkJCSQ9MDJsX1g0NFhMbUpOak4ibCBYST1xNE5qTidVJEJYfUkwLyciO1dXCQkvCQlXCQlXCQkkR24wNDBtSk5qTiIoIiAxMmx9cVIwKCdORlZOJyxOJD0wMmxfWDQ0WEwpICIpIjtXCQlXCQlXCS9XVwkxPihObDQwQV8yWD1hbihOIiNYST1ucTQwZGF9SVIwam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJDJYPWFubURKTmpOMGRsfXFSME4oJywnLE4kMlg9YW5tREopO1dXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkkPTAybF9YNDRYTG1KTmpOImwgWEk9cTROIWpOJ1UkQlh9STAvJyI7V1cJCS8JCVcJCVcJCSRHbjA0MG1KTmpOMTJsfXFSMCgnTjN7Z04nLE4kPTAybF9YNDRYTCk7VwkJVwkJVwkvV1cJMT4oTmw0MEFfMlg9YW4oTiIjYVg9WH1xQWptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCVcJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOJDJYPWFubURKKTtXVwkJJD0wMmxfWDQ0WExOak5YNDRYTCgpO1dXCQk+cTQwWGFuTigkMlg9YW5tREpOWDlOJEJYfUkwKU5VV1cJCQkkQlh9STBOak4kUmstdzlYPjA5eX0oPTQxMigkQlh9STApKTtXCQkJJD0wMmxfWDQ0WExtSk5qTiJsIDlMMmtxfU5qTidVJEJYfUkwLyciO1dXCQkvCQlXCQlXCQkkR24wNDBtSk5qTiIoIiAxMmx9cVIwKCdORlZOJyxOJD0wMmxfWDQ0WEwpICIpIjtXCQlXCQlXCS9XVwkxPihObDQwQV8yWD1hbihOIiNhWD1YfXFBMGRhfUlSMGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCVcJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOJDJYPWFubURKKTtXVwkJJD0wMmxfWDQ0WExOak5YNDRYTCgpO1dXCQk+cTQwWGFuTigkMlg9YW5tREpOWDlOJEJYfUkwKU5VV1cJCQkkQlh9STBOak4kUmstdzlYPjA5eX0oPTQxMigkQlh9STApKTtXCQkJJD0wMmxfWDQ0WExtSk5qTiJsIDlMMmtxfU4hak4nVSRCWH1JMC8nIjtXVwkJLwkJVwkJVwkJJEduMDQwbUpOak4xMmx9cVIwKCdOM3tnTicsTiQ9MDJsX1g0NFhMKTtXCQlXCQlXCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjZD4xMH1SOWptXCJKKCArPyltXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXVwkJJDJYPWFubURKTmpOMGRsfXFSME4oJywnLE4kMlg9YW5tREopO1dXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkkPTAybF9YNDRYTG1KTmpOImwgZD4xMH1SOU5TTUVdTiclVSRCWH1JMC8lJyI7V1cJCS8JCVcJCVcJCSRHbjA0MG1KTmpOIigiIDEybH1xUjAoJ05GVk4nLE4kPTAybF9YNDRYTCkgIikiO1cJCVcJL1dXCVcJMT4oTmw0MEFfMlg9YW4oTiIjZD4xMH1SOTBkYX1JUjBqbVwiSiggKz8pbVwiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJDJYPWFubURKTmpOMGRsfXFSME4oJywnLE4kMlg9YW5tREopO1dXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkkPTAybF9YNDRYTG1KTmpOImwgZD4xMH1SOU57RkhOU01FXU4nJVUkQlh9STAvJSciO1dXCQkvCQlXCQlXCQkkR24wNDBtSk5qTjEybH1xUjAoJ04ze2dOJyxOJD0wMmxfWDQ0WEwpO1cJCVcJCVcJL1dXCTE+KE5sNDBBXzJYPWFuKE4iIz0wMmx9WD0wam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJJGFJOT1xMl89MDJsfVg9ME5qTj00MTIoJDJYPWFubURKKTtXCS9OMH05ME4kYUk5PXEyXz0wMmx9WD0wTmpOIjlucTQ9OT1xNEwiO1dXCTE+KE5sNDBBXzJYPWFuKE4iIz40cTJqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkYUk5PXEyXz40cTJOak4xNj1CWH0oJDJYPWFubURKKTtXCQkkYUk5PXEyX1h9fU5qTiRhSTk9cTJfPjRxMjtXCS9OMH05ME5VTiRhSTk9cTJfPjRxMk5qTls7TiRhSTk9cTJfWH19TmpOWzsvV1cJMT4oTmw0MEFfMlg9YW4oTiIjfTEyMT1qbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkYUk5PXEyX30xMjE9TmpOMTY9Qlh9KCQyWD1hbm1ESik7VwkvTjB9OTBOJGFJOT1xMl99MTIxPU5qTjE2PUJYfSgkYXE2PjFBbSc2MEc5XzZJMmswNCdKKTtXVwkkYUk5PXEyWVhhbjBaMX0wTmpOPlh9OTA7VwkkYVhhbjBIMTIwOT1YMmxOak4+WH05MDtXVwkxPihObDQwQV8yWD1hbihOIiNhWGFuMGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVdXCQkkPTEyMFQ2MT1Oak45SWs5PTQoJDJYPWFubURKLE4tRCk7V1cJCTE+KE4xNl9YNDRYTCgkPTEyMFQ2MT0sTlg0NFhMKCdSJyxOJ24nLE4nMicpTilOKU5VV1cJCQkkWDJxSTY9TmpOMTY9Qlh9KCQyWD1hbm1ESik7V1cJCQkxPihOJFgycUk2PU4pTlVXCQkJCSRhWGFuMEgxMjA5PVgybE5qTiRYMnFJNj1OIE4kPTEyMFQ2MT07VwkJCQkkYUk5PXEyWVhhbjBaMX0wTmpOPTRJMDtXCQkJCSRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0pOak5EOwlXCQkJL1dXCQkvTjB9OTBOVVdXCQkJMT5OKCQyWD1hbm1ESk5qak4iTDA5IilOJGFxNj4xQW0nWH19cUdfYVhhbjAnSk5qTkQ7VwkJCTB9OTBOJGFxNj4xQW0nWH19cUdfYVhhbjAnSk5qTj5YfTkwO1dXCQkvV1cJL1dXCTE+TigkYUk5PXEyWVhhbjBaMX0wKU4kYVhhbjBaMX0wTmpOImFJOT1xMmt9cWFwIjtOMH05ME4kYVhhbjBaMX0wTmpOIjYwRzkiO1dXCTE+KE4kYXE2PjFBbSdYfX1xR19hWGFuMCdKTilOJDlucTQ9XzYwRzlfYVhhbjBOak49NEkwO04wfTkwTiQ5bnE0PV82MEc5X2FYYW4wTmpOPlh9OTA7VwlXCTE+KE5sNDBBXzJYPWFuKE4iIz4xZDBSam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VV1cJCSQ+MWQwUk5qTiIiO1dXCQkxPihOJDJYPWFubURKTmpqTiJMMDkiTilOJD4xZDBSTmpOIj4xZDBSTmddc1ksTiI7VwkJMH05MDE+KE4kMlg9YW5tREpOampOInE2fUwiTilOVU4kR24wNDBtSk5qTiI+MWQwUmonRCciO04vVwkJMH05MDE+KE4kMlg9YW5tREpOampOIkcxPW5xST0iTilOVU4kR24wNDBtSk5qTiI+MWQwUmonWyciO04vV1cJL04wfTkwTiQ+MWQwUk5qTiIiO1cJVwlXCTE+KE5sNDBBXzJYPWFuKE4iI2tYNjYwNDlqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQlXCQkxPihOJDJYPWFubURKTmpqTiJMMDkiTilOJEk5MF9rWDY2MDQ5TmpOPTRJMDtXCQkwfTkwTiRJOTBfa1g2NjA0OU5qTj5YfTkwO1cJCVcJL04wfTkwTiRJOTBfa1g2NjA0OU5qTj5YfTkwO1dXCTE+KE4kMTlffXFBQTBSTlg2Uk4oJEk5MDRfQTRxSWxtJDIwMmswNF8xUm0nSTkwNF9BNHFJbCdKSm0nWH19cUdfMFIxPSdKTlg2Uk4hTiRJOTA0X0E0cUlsbSQyMDJrMDRfMVJtJ0k5MDRfQTRxSWwnSkptJ1h9fXFHX1h9fV8wUjE9J0opTilOJGFxNj4xQW0nWH19cUdfYVhhbjAnSk5qTj5YfTkwO1dXCTE+TigxOTkwPSgkYUk5PXEyX2FYPTBBcTRMKU4ze2dOJGFJOT1xMl9hWD0wQXE0TClOVVcJCVcJCTE+KE4kYVg9XzE2PnFtJGFJOT1xMl9hWD0wQXE0TEptJzYwRzlfOXE0PSdKTilOJDYwRzlfOXE0PU5qTiRhWD1fMTY+cW0kYUk5PXEyX2FYPTBBcTRMSm0nNjBHOV85cTQ9J0o7TjB9OTBOJDYwRzlfOXE0PU5qTiRhcTY+MUFtJzYwRzlfOXE0PSdKO1cJCTE+KE4kYVg9XzE2PnFtJGFJOT1xMl9hWD0wQXE0TEptJzYwRzlfMjlxND0nSk4pTiQ2MEc5XzI5cTQ9TmpOJGFYPV8xNj5xbSRhSTk9cTJfYVg9MEFxNExKbSc2MEc5XzI5cTQ9J0o7TjB9OTBOJDYwRzlfMjlxND1Oak4kYXE2PjFBbSc2MEc5XzI5cTQ9J0o7VwkJVwkvTjB9OTBOVVcJCVcJCSQ2MEc5XzlxND1Oak4kYXE2PjFBbSc2MEc5XzlxND0nSjtXCQkkNjBHOV8yOXE0PU5qTiRhcTY+MUFtJzYwRzlfMjlxND0nSjtXCS9XVwkxPihObDQwQV8yWD1hbihOIiM5cTQ9am0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJJFh9fXFHMFJfOXE0PU5qTlg0NFhMTignWDlhJ05qd04nM3NZJyxOJ1IwOWEnTmp3TidnXXNZJ04pO1dXCQkkMlg9YW5tREpOak45PTQ9cX1xRzA0KCQyWD1hbm1ESik7V1cJCTE+TihOJFh9fXFHMFJfOXE0PW0kMlg9YW5tREpKTilOJDYwRzlfMjlxND1Oak4kWH19cUcwUl85cTQ9bSQyWD1hbm1ESko7V1cJL1dXCTE+KE5sNDBBXzJYPWFuKE4iI3E0UjA0am0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJJFh9fXFHMFJfOXE0PU5qTlg0NFhMTignUlg9MCdOandOJ1JYPTAnLE4nMFIxPVJYPTAnTmp3TicwUjE9Ulg9MCcsTic0WD0xNkEnTmp3Tic0WD0xNkEnLE4nNDBYUjknTmp3Tic2MEc5XzQwWFInLE4nYXEyMjA2PTknTmp3TidsIGFxMjJfNkkyJywnPTE9fTAnTmp3Tic9MT19MCcsTic0WDZSJ05qd04nVjN7ZygpJ04pO1dXCQkkMlg9YW5tREpOak45PTQ9cX1xRzA0KCQyWD1hbm1ESik7V1cJCTE+TihOJFh9fXFHMFJfOXE0PW0kMlg9YW5tREpKTilOJDYwRzlfOXE0PU5qTiRYfX1xRzBSXzlxND1tJDJYPWFubURKSjtXVwkJMT5OKCQyWD1hbm1ESk5qak4iNFg2UiJOKU5VTiQ+MWQwUk5qTiIiO04kNjBHOV8yOXE0PU5qTiIiO04vVwkJVwkJMT4oJDJYPWFubURKTmpqTiIxUl9YOV99MTk9Ik4ze2dOJDFSOV8+cTRfOXE0PSlVVwkJCSQ2MEc5XzlxND1Oak4kMVI5Xz5xNF85cTQ9O1cJCQkkNjBHOV8yOXE0PU5qTiIiO1cJCS9XVwkJMT4oJDJYPWFubURKTmpqTiJ9WDk9QjEwRzBSIilOVVdXCQkJMT4oISRhcTY+MUFtJ31YOT1fQjEwRzBSJ0opTjQwPUk0Nk4kfVg2QW0nMDZYa30wX31YOT1CMTBHMFInSjtXCQlXCQkJMT4oTiEkX1lGRkVNXW0nQjEwRzBSXzFSOSdKTilONDA9STQ2TicnO1cJCQlXCQkJJEIxMEcwUl8xUjlOak4wZGx9cVIwKCcsJyxOPTQxMigkX1lGRkVNXW0nQjEwRzBSXzFSOSdKKSk7VwkJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkJVwkJCTE+KCQ2MEc5XzI5cTQ9TmpqTiIzc1kiKU4kQjEwRzBSXzFSOU5qTlg0NFhMXzQwQjA0OTAoJEIxMEcwUl8xUjkpO1cJCQlXCQkJPnE0MFhhbk4oJEIxMEcwUl8xUjlOWDlOJEJYfUkwKU5VVwkJCQkkQlh9STBOak4xNj1CWH0oPTQxMigkQlh9STApKTtXCQkJCVcJCQkJMT5OKCRCWH1JME53TlspTiQ9MDJsX1g0NFhMbUpOak4kUmstdzlYPjA5eX0oJEJYfUkwKTtXCQkJCVcJCQkvVwkJCVcJCQkxPihOYXFJNj0oJD0wMmxfWDQ0WEwpTilOVVcJCQkJJD4xZDBSTmpOIiI7VwkJCQkkR24wNDBtSk5qTiIxUk5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCQkJJDYwRzlfOXE0PU5qTiJaTXtnX017X3NdSCgxUixOJyIgMTJsfXFSMCgiLCIsTiQ9MDJsX1g0NFhMKSAiJylOIjtXCQkJCSQ2MEc5XzI5cTQ9TmpOIiI7VwkJCQkkYXE2PjFBbSdYfX1xR19hWGFuMCdKTmpOPlh9OTA7VwkJCS9XCQlXCQkvVwkJVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iIzlxND1rTEk5MDRqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQlXCQkxPihOJDJYPWFubURKTmpqTiJMMDkiTilOVVcJCQlXCQkJMT5OKDE5OTA9TihOJF9zXXNzTUZ7bSdSfTBfOXE0PV9BfXFrWH0nSk4pKU4kNjBHOV85cTQ9TmpOJF9zXXNzTUZ7bSdSfTBfOXE0PV9BfXFrWH0nSjtXCQkJMT5OKDE5OTA9TihOJF9zXXNzTUZ7bSdSfTBfUjE0MGE9MXE2X0F9cWtYfSdKTikpTiQ2MEc5XzI5cTQ9TmpOJF9zXXNzTUZ7bSdSfTBfUjE0MGE9MXE2X0F9cWtYfSdKO1cJCQlXCQkJMT5OKE4hUjA+MTYwUignWVRzSEZvc0ZWSCcpTilOVVcJCQkJUjA+MTYwKCdZVHNIRm9zRlZIJyxOPTRJMCk7VwkJCS9XCVcJCS9XVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iIzZYQjFBWD0xcTZqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXVwkJMT4oTiQyWD1hbm1ESk5qak4iTDA5Ik4ze2dOJEk0fV9sWEEwTiFqak4+WH05ME4pTlVXVwkJCSRrSTF9Ul82WEIxQVg9MXE2TmpOPTRJMDtXCQkJMT5OKDE5OTA9TihOJF90XUhtJ2E5PVg0PSdKTikpTiRhOT1YND1Oak4xNj1CWH1OKE4kX3RdSG0nYTk9WDQ9J0pOKTtOMH05ME4kYTk9WDQ9TmpOWztXVwkJCTE+TigkYTk9WDQ9TndOJGFxNj4xQW0nMlhkX2FYYW4wX2xYQTA5J0opTiRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0pOak4+WH05MDtXVwkJCTE+TigkYTk9WDQ9KU5VVwkJCQkkYTk9WDQ9TmpOJGE5PVg0PU4tTkQ7VwkJCQkkYTk9WDQ9TmpOKCRhOT1YND1OKk4kYUk5PXEyX30xMjE9KU4rTiRhSTk9cTJfPjRxMjtXCQkJCSRhSTk9cTJfPjRxMk5qTiRhOT1YND07VwkJCQkkNDAycUIwX2FYNnE2MWFYfU5qTj00STA7VwkJCS9XCQkJVwkJCSRhSTk9cTJfYVhhbjBfMVJOak4kYUk5PXEyX2FYYW4wXzFSICRhOT1YND07VwkJCVcJCS9OMH05ME4ka0kxfVJfNlhCMUFYPTFxNk5qTj5YfTkwO1dXCS9OMH05ME4ka0kxfVJfNlhCMUFYPTFxNk5qTj5YfTkwO1dXCSRhcTY9MDY9TmpOUn0wX2FYYW4wKCRhWGFuMFoxfTAsTiRhSTk9cTJfYVhhbjBfMVIsTj00STAsTiRhWGFuMEgxMjA5PVgybCk7VwlXCTE+KE4kYXE2PTA2PU4pTlVXVwkJJGFxNj0wNj1Oak5DOXE2X1IwYXFSMCgkYXE2PTA2PSxOPTRJMCk7VwkJVwkJMT4oTjE5X1g0NFhMKE4kYXE2PTA2PU4pTilOVVcJCQlXCQkJMT4oTiRhcTY9MDY9bSc2WEIxQVg9MXE2J0pOKU5VVwkJCQkxPk4oTiFSMD4xNjBSKCdZVHNIRm97M1BNdDNITUZ7JylOKU5VVwkJCQkJUjA+MTYwKCdZVHNIRm97M1BNdDNITUZ7JyxOPTRJMCk7VwkJCQkJJGFJOT1xMl82WEIxQVg9MXE2TmpOJGFxNj0wNj1tJzZYQjFBWD0xcTYnSjtXCQkJCS9XCQkJL1cJCQlXCQkJMT4oTjE5OTA9KE4kWGE9MUIwbSd9WDk9LTJxUjE+MTBSJ0pOKU4pTlVXCQkJCVcJCQkJMT4oTiRYYT0xQjBtJ31YOT0tMnFSMT4xMFInSk53TiRfZ0ZZVG9de0hfZzNIXU4pTlVXCQkJCQkkX2dGWVRvXXtIX2czSF1Oak4kWGE9MUIwbSd9WDk9LTJxUjE+MTBSJ0o7VwkJCQkvVwkJCQlXCQkJL1cJCQkJVwkJCSRhcTY9MDY9TmpOJGFxNj0wNj1tJ2FxNj0wNj0nSjtXCQkJVwkJL1cJL1cJCQkJVwkxPihOJGFxNj0wNj1OIWpqTj5YfTkwTilOVVdXCQkkYXE2PjFBbSdYfX1xR19hWGFuMCdKTmpOJFh9fXFHX2FYYW4wO1cJCSRhSTk9cTJfNjBHOU5qTj00STA7VwkJJDRxR05qTiQ5WEIwXzRxRztXCQlXCQkxPk4oJGFxNj4xQW0nWH19cUdfeUkxYXBfR0w5MUdMQSdKTjN7Z04oJEk5MDRfQTRxSWxtJDIwMmswNF8xUm0nSTkwNF9BNHFJbCdKSm0nWH19cUdfMFIxPSdKTkZWTiRJOTA0X0E0cUlsbSQyMDJrMDRfMVJtJ0k5MDRfQTRxSWwnSkptJ1h9fXFHX1h9fV8wUjE9J0opKU4kWH19cUdfYXEyMjA2PTlfWENYZE5qTj00STA7VwkJCQlXCQk0MD1JNDZOJGFxNj0wNj07VwlXCS9OMH05ME5VV1cJCTE+KE5sNDBBXzJYPWFuKE4iIz1YQTlqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXVwkJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkJVwkJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXCQkJVwkJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXCQkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkJMT4oTiRCWH1JME4pTiQ9MDJsX1g0NFhMbUpOak4iPVhBaidVJEJYfUkwLyciO1cJCQkvVwkJCVcJCQkxPk4oTmFxSTY9KCQ9MDJsX1g0NFhMKU4pTlVXCVcJCQkJJD0wMmxfWDQ0WExOak4xMmx9cVIwKCJORlZOIixOJD0wMmxfWDQ0WEwpO1cJCQkJVwkJCQkkUmstd3lJMDRMTihOInNdU11ZSE42MEc5XzFSTlpWRm9OIk4gTmVWXVpNCk4gTiJfPVhBOU5ReF1WXU5VJD0wMmxfWDQ0WEwvIk4pO1dXCQkJCSQ9MDJsX1g0NFhMTmpOWDQ0WExOKCk7VwkJCQlXCQkJCUduMX0wTihOJDRxR05qTiRSay13QTA9XzRxR04oKU4pTlVXCQkJCQlXCQkJCQkxPk4oITE2X1g0NFhMKCQ0cUdtJzYwRzlfMVInSixOJD0wMmxfWDQ0WEwpKU4kPTAybF9YNDRYTG1KTmpOJDRxR20nNjBHOV8xUidKO1cJCQkJVwkJCQkvVwkJCQlXCQkJCTE+TihhcUk2PU4oTiQ9MDJsX1g0NFhMTikpTlVXCQkJCQlXCQkJCQkkR24wNDBtSk5qTiIxUk5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCQkJVwkJCQkvTjB9OTBOJEduMDQwbUpOak4iMVJOTXtOKCdbJykiO1cJCQkJVwkJCS9XCQkJVwkJL1cJCVcJCSRHbjA0MG1KTmpOIlhsbDRxQjBqRCI7V1cJCTE+KE4kYXE2PjFBbSc2cV9SWD0wJ0pOM3tnTiEkYXE2PjFBbSc2MEc5Xz5JPUk0MCdKTjN7Z04hJFJYTDkpTiRHbjA0MG1KTmpOIlJYPTBOPE4nIk4gTiQ9bjE5Ulg9ME4gTiInIjtXCQlXCQkxPk4oTiRrSTF9Ul82WEIxQVg9MXE2TilOVVcJCQlXCQkJJDl5fV9hcUk2PU5qTiJzXVNdWUhOWUZUe0goKilOWDlOYXFJNj1OWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9TmxOVSRhWD1fQ3ExNi9ReF1WXU4iIDEybH1xUjAoJ04ze2dOJyxOJEduMDQwKTtXVwkJL04wfTkwTiQ5eX1fYXFJNj1Oak4iIjtXVwkJJD1sfU5qTjYwR05SfTBfPTAybH1YPTAoKTtXCQkkPWx9LXdSMTROak5IXW9lUzNIXV9nTVY7CQkJCVcJCSQ9bH0tdzE5X2FJOT1xMk5qTj00STA7V1cJCSQ9bH0td31xWFJfPTAybH1YPTAoTiRhSTk9cTJfPTAybH1YPTBOIE4nID1sfSdOKTtXCVcJCSQ5eX1fOTB9MGE9TiBqTiJOUXhdVl1OIiAxMmx9cVIwKCdOM3tnTicsTiRHbjA0MCkgIk5GVmddVk5pYk4iTiBOJD4xZDBSTiBOJDYwRzlfOXE0PU4gTiJOIk4gTiQ2MEc5XzI5cTQ9TiBOIk5TTW9NSE4iTiBOJGFJOT1xMl8+NHEyTiBOIiwiTiBOJGFJOT1xMl99MTIxPTtXVwkJJDl5fV80MDlJfT1Oak4kUmstd3lJMDRMKE4kOXl9XzkwfTBhPU4pO1dXCQkxNmF9SVIwTihnU11lfUlBMTY5OjpZbjBhcChde3RNe11fZ01WTiBOJzgycVJJfTA5ODlucUcgYUk5PXEyIGxubCcpKTtXVwkJMT4oTiRhcTY+MUFtJz4xfTA5X1h9fXFHJ0pOKU4xPihOOT00bHE5KE4kPWx9LXc0MDlJfT1tJ2FxNj0wNj0nSixOIm1YPT1YYW4yMDY9aiJOKU4hampOPlh9OTBOKU5VVwkJCSQ9bH0tdzQwOUl9PW0nYXE2PTA2PSdKTmpOOW5xR19YPT1YYW4oTiQ9bH0tdzQwOUl9PW0nYXE2PTA2PSdKLE4kWD09WGFuMjA2PTlOKTtXCQkvVwkJVwkJMT5OKE4kYUk5PXEyXzYwRzlOKU5hNDBYPTBfYVhhbjAoJGFYYW4wWjF9MCxOQzlxNl8wNmFxUjAoTlg0NFhMKCdhcTY9MDY9J05qd04kPWx9LXc0MDlJfT1tJ2FxNj0wNj0nSixOJzZYQjFBWD0xcTYnTmp3TiQ9bH0tdzQwOUl9PW0nNlhCMUFYPTFxNidKLE4nfVg5PS0ycVIxPjEwUidOandOJF9nRllUb117SF9nM0hdTilOLE4uc0Z7X1R7XXNZM2VdZ19Ue01ZRmddTnxOLnNGe19Ue11zWTNlXWdfc1Mzc3hdc04pLE4kYUk5PXEyX2FYYW4wXzFSLE49NEkwLE4kYVhhbjBIMTIwOT1YMmxOKTtXCQlXCQkkYXE2PjFBbSdYfX1xR19hWGFuMCdKTmpOJFh9fXFHX2FYYW4wO1cJCSQ9bH0tdzE5X2FJOT1xMk5qTj5YfTkwO1cJCSQ0cUdOak4kOVhCMF80cUc7VwkJVwkJNDA9STQ2TiQ9bH0tdzQwOUl9PW0nYXE2PTA2PSdKO1cJVwkvV1cvV1c+STZhPTFxNk5hbjBhcF8xbCgkMWw5KU5VVwlXCSRfTWVOak5BMD1fMWwoKTtXVwkka31xYXAxbE5qTj5YfTkwO1cJVwkxPihOMTlfWDQ0WEwoTiQxbDlOKU4pTlVXCQlXCQkxPihOOT00bHE5KCRfTWUsTiI6IilOampqTj5YfTkwTilOVVcJCQkkUjB9MTIxPTA0TmpOIiAiO1cJCS9OMH05ME4kUjB9MTIxPTA0TmpOIjoiO1cJCVcJCSQ9bjE5XzFsXzlsfTE9TmpOMGRsfXFSMChOJFIwfTEyMT0wNCxOJF9NZU4pO1cJCSQxbF99MDZBbj1Oak5hcUk2PSgkPW4xOV8xbF85bH0xPSk7VwkJVwkJPnE0MFhhbk4oTiQxbDlOWDlOJDFsX30xNjBOKU5VV1cJCQkkMWxfWDQ0TmpOPTQxMihOJDFsX30xNjBtJzFsJ0pOKTtXCQkJVwkJCTE+KE4kMWxfWDQ0TmpqTiRfTWVOKU5VVwkJCQlXCQkJCSRrfXFhcDFsTmpOJF9NZTtXCQkJCWs0MFhwO1cJCQlXCQkJL04wfTkwMT5OKE5hcUk2PSgwZGx9cVIwTignOCcsTiQxbF9YNDQpKU5qak41TilOVVcJCQkJVwkJCQkxPihOMlg5cDJYPWFuKCRfTWUsTiQxbF9YNDQpTilOVVcJCQkJCSRrfXFhcDFsTmpOJDFsX30xNjBtJzFsJ0o7VwkJCQkJazQwWHA7VwkJCQkvVwkJCQlXCQkJL04wfTkwTlVXCQkJCVcJCQkJJDFsX2FuMGFwXzJYPWFuMDlOak5bO1cJCQkJJFJrXzFsXzlsfTE9TmpOMGRsfXFSMChOJFIwfTEyMT0wNCxOJDFsX1g0NE4pO1dXCQkJCT5xNCgkMV8xTmpOWztOJDFfMU48TiQxbF99MDZBbj07TiQxXzFOKyspTlVXCQkJCQkxPihOJD1uMTlfMWxfOWx9MT1tJDFfMUpOampOJFJrXzFsXzlsfTE9bSQxXzFKTnE0TiRSa18xbF85bH0xPW0kMV8xSk5qak4nKidOKU5VVwkJCQkJCSQxbF9hbjBhcF8yWD1hbjA5TitqTkQ7VwkJCQkJL1cJCQkJVwkJCQkvVwkJCVcJCQkJMT4oTiQxbF9hbjBhcF8yWD1hbjA5TmpqTiQxbF99MDZBbj1OKU5VVwkJCQkJJGt9cWFwMWxOak4kMWxffTE2MG0nMWwnSjtXCQkJCQlrNDBYcDtXCQkJCS9XCQkJLwkJVwkJL1cJL1cJVwk0MD1JNDZOJGt9cWFwMWw7Vy9XVz5JNmE9MXE2Tlh9fXFHMFJfMWwoJDFsX1g0NFhMKU5VVwlXCSQxbF9YNDRYTE5qTj00MTIoTiQxbF9YNDRYTE4pO1dXCSRfTWVOak5BMD1fMWwoKTtXVwkxPihOISQxbF9YNDRYTE4pTlVXCQk0MD1JNDZOPTRJMDtXCS9XCVcJMT4oTjk9NGxxOSgkX01lLE4iOiIpTmpqak4+WH05ME4pTlVXCQkkUjB9MTIxPTA0TmpOIiAiO1cJL04wfTkwTiRSMH0xMjE9MDROak4iOiI7VwlXCSRSa18xbF85bH0xPU5qTjBkbH1xUjAoTiRSMH0xMjE9MDQsTiRfTWVOKTtXCSQxbF99MDZBbj1Oak5hcUk2PSgkUmtfMWxfOWx9MT0pO1cJVwkkMWxfWDQ0WExOak4wZGx9cVIwKE4ifCIsTiQxbF9YNDRYTE4pO1cJVwk+cTQwWGFuTihOJDFsX1g0NFhMTlg5TiQxbE4pTlVXCQlXCQkkMWxOak49NDEyKE4kMWxOKTtXCQlXCQkxPihOJDFsTmpqTiRfTWVOKU5VVwkJCVcJCQk0MD1JNDZOPTRJMDtXCQlXCQkvTjB9OTAxPihOYXFJNj0oMGRsfXFSME4oJzgnLE4kMWwpKU5qak41TilOVVcJCQkJVwkJCTE+KE4yWDlwMlg9YW4oJF9NZSxOJDFsKU4pTjQwPUk0Nk49NEkwO1cJCQkJVwkJL04wfTkwTlVXCQkJVwkJCSQxbF9hbjBhcF8yWD1hbjA5TmpOWztXCQkJJD1uMTlfMWxfOWx9MT1Oak4wZGx9cVIwKE4kUjB9MTIxPTA0LE4kMWxOKTtXCQkJVwkJCT5xNCgkMV8xTmpOWztOJDFfMU48TiQxbF99MDZBbj07TiQxXzFOKyspTlVXCQkJCTE+KE4kPW4xOV8xbF85bH0xPW0kMV8xSk5qak4kUmtfMWxfOWx9MT1tJDFfMUpORlZOJD1uMTlfMWxfOWx9MT1tJDFfMUpOampOJyonTilOVVcJCQkJCSQxbF9hbjBhcF8yWD1hbjA5TitqTkQ7VwkJCQkvVwkJCVcJCQkvVwkJCVcJCQkxPihOJDFsX2FuMGFwXzJYPWFuMDlOampOJDFsX30wNkFuPU4pTjQwPUk0Nk49NEkwO1cJCS9XCVcJL1cJVwk0MD1JNDZOPlh9OTA7Vy9XVz5JNmE9MXE2TjJYOXAyWD1hbigkTWUsTiRZTWdWKU5VVwlXTk5OTn0xOT1OKCRYUlI0MDk5LE4kNjA9Mlg5cClOak4wZGx9cVIwKCc4JyxOJFlNZ1YsTjUpO1dXCTE+KE45PTRscTkoJE1lLE4iICIpTiFqak4+WH05ME4ze2dOOT00bHE5KCRZTWdWLE4iICIpTiFqak4+WH05ME4pTlVXCQlXCQk0MD1JNDZOKE4xbDV9cTZBKCRNZSlOJk5+KChETjw8TihPNU4tTiQ2MD0yWDlwKSlOLU5EKU4pTmpqTjFsNX1xNkFOKCRYUlI0MDk5KTtXCVcJL04wfTkwMT4oTjk9NGxxOSgkTWUsTiI6IilOIWpqTj5YfTkwTjN7Z045PTRscTkoJFlNZ1YsTiI6IilOIWpqTj5YfTkwTilOVVcJCVdOTk5OTk5OTjE+TighKCgwZD0wNjkxcTZffXFYUjBSKCc5cWFwMD05JylOJiZOUjA+MTYwUignM1pfTXtdSGMnKSlOfHxOQDE2MD1fbD1xNignOjpEJykpKU5VV05OTk5OTk5OTk40MD1JNDZOPlh9OTA7V05OTk5OTk5OL1cJCVdOTk5OTk5OTiRrTD0wOTNSUjROak5JNmxYYXAoJzYqJyxOQDE2MD1fbD1xNigkWFJSNDA5OSkpO1dOTk5OTk5OTiRrTD0wOUgwOT1Oak5JNmxYYXAoJzYqJyxOQDE2MD1fbD1xNigkTWUpKTtXV05OTk5OTk5OMT5OKCEka0w9MDkzUlI0Tnx8TiEka0w9MDlIMDk9KU5VV05OTk5OTk5OTk5OTjQwPUk0Nk4+WH05MDtXTk5OTk5OTk4vV1dOTk5OTk5OTj5xNE4oJDFOak5ELE4kYTAxfU5qTmEwMX0oJDYwPTJYOXBOOE5EYyk7TiQxTjxqTiRhMDF9O04rKyQxKU5VV05OTk5OTk5OTk5OTiR9MD49TmpOJDYwPTJYOXBOLU5EY04qTigkMU4tTkQpO1dOTk5OTk5OTk5OTk4kfTA+PU5qTigkfTA+PU48ak5EYylOP04kfTA+PU46TkRjO1dOTk5OTk5OTk5OTk4kMlg5cE5qTn4oW2Q+Pj4+Tnd3TiR9MD49KU4mTltkPj4+PjtXTk5OTk5OTk5OTk5OMT5OKCgka0w9MDkzUlI0bSQxSk4mTiQyWDlwKU4hak4oJGtMPTA5SDA5PW0kMUpOJk4kMlg5cCkpTlVXTk5OTk5OTk5OTk5OTk5OTjQwPUk0Nk4+WH05MDtXTk5OTk5OTk5OTk5OL1dOTk5OTk5OTi9XCQlXCQk0MD1JNDZOPTRJMDtXCQlXCS9XCVcJNDA9STQ2Tj5YfTkwO1dXL1dXPkk2YT0xcTZOYW4wYXBfNjA9ZigkMWxELE4kMWw1KU5VVwlXCTE+KE45PTRscTkoJDFsRCxOIjoiKU5qampOPlh9OTBOKU5VVwkJJFIwfTEyMT0wNE5qTiIgIjtXCS9OMH05ME4kUjB9MTIxPTA0TmpOIjoiO1cJVwkkMWxETmpOMGRsfXFSMChOJFIwfTEyMT0wNCxOJDFsRE4pO1cJJDFsNU5qTjBkbH1xUjAoTiRSMH0xMjE9MDQsTiQxbDVOKTtXCVcJMT4oTiQxbERtW0pOIWpOJDFsNW1bSk4pTjQwPUk0Nk4+WH05MDtXCTE+KE4kMWxEbURKTiFqTiQxbDVtREpOKU40MD1JNDZOPlh9OTA7VwlXCTE+KCRSMH0xMjE9MDROampOIjoiKU5VVwkJMT4oTiQxbERtNUpOIWpOJDFsNW01Sk4pTjQwPUk0Nk4+WH05MDtXCQkxPihOJDFsRG1PSk4hak4kMWw1bU9KTilONDA9STQ2Tj5YfTkwO1cJL1cJVwk0MD1JNDZOPTRJMDtXVy9XVz5JNmE9MXE2TjlucUdfWD09WGFuKCQ5PXE0TCxOJDFSLE4kOT1YPTFhTmpOPlh9OTApTlVXCUF9cWtYfU4kUmssTiRhcTY+MUEsTiR9WDZBLE4kSTkwNF9BNHFJbCxOJDIwMmswNF8xUixOJF9ITW9dLE4kNjBHOV9SWD0wO1dXCSQ+MTZSX0ROak5YNDRYTCgpO1cJJD4xNlJfNU5qTlg0NFhMKCk7VwkkNDBsfVhhMF9ETmpOWDQ0WEwoKTtXCSQ0MGx9WGEwXzVOak5YNDRYTCgpO1dXCSQ9bH1Oak42MEdOUn0wXz0wMmx9WD0wKCk7VwkkPWx9LXdSMTROak5IXW9lUzNIXV9nTVY7VwkkNHFxPU5qTiRhcTY+MUFtJ249PWxfbnEyMF9JNH0nSjtXCVcJMT5OKDk9NGxxOSgkNHFxPSxOIjg4IilOampqTlspTlVXCQkkNHFxPU5qTjE5c3NTKClOP04kNHFxPU5qTiJuPT1sOToiICQ0cXE9TjpOJDRxcT1Oak4ibj09bDoiICQ0cXE9O1cJL04wfTkwMT5OKDk9NGxxOSgkNHFxPSxOIjgiKU5qampOWylOVVcJCSQ0cXE9TmpOMTlzc1MoKU4/TiQ0cXE9TmpOIm49PWw5Ojg4IiAkX3NdVlBdVm0neEhIZV94RnNIJ0ogJDRxcT1OOk4ibj09bDo4OCIgJF9zXVZQXVZtJ3hISGVfeEZzSCdKICQ0cXE9O1cJL1cJVwkxPihOJDk9WD0xYU4pTlVXCQlXCQkxPihOMTlfWDQ0WEwoTiQxUk4pTlg2Uk5hcUk2PShOJDFSTilOKU5VVwkJCSR9MTk9TmpOWDQ0WEwoKTtXCQkJVwkJCT5xNDBYYW5OKE4kMVJOWDlOJEJYfUkwTilOVVcJCQkJJH0xOT1tSk5qTjE2PUJYfSgkQlh9STApO1cJCQkvVwkJCVcJCQkkMVJOak4xMmx9cVIwKE4nLCcsTiR9MTk9Tik7VwkJCVcJCQkkR24wNDBOak4iOT1YPTFhXzFSTk17TihVJDFSLykiO1cJCQlXCQkvTjB9OTBOJEduMDQwTmpOIjk9WD0xYV8xUk5qTiciIDE2PUJYfSgkMVIpICInIjtXCQlXCQkkUmstd3lJMDRMKE4ic11TXVlITipOWlZGb04iTiBOZVZdWk0KTiBOIl85PVg9MWFfPjF9MDlOUXhdVl1OJEduMDQwIk4pO1cJCVcJCSRYNDBYTmpOIiZYNDBYajk9WD0xYSI7VwlXCS9OMH05ME5VVwkJVwkJMT4oTjE5X1g0NFhMKE4kMVJOKU5YNlJOYXFJNj0oTiQxUk4pTilOVVcJCQlXCQkJJH0xOT1Oak5YNDRYTCgpO1cJCQlXCQkJPnE0MFhhbk4oTiQxUk5YOU4kQlh9STBOKU5VVwkJCQkkfTE5PW1KTmpOMTY9Qlh9KCRCWH1JMCk7VwkJCS9XCQkJVwkJCSQxUk5qTjEybH1xUjAoTicsJyxOJH0xOT1OKTtXCQkJVwkJCSRHbjA0ME5qTiI2MEc5XzFSTk17TihVJDFSLykiO1cJCQlXCQkvTjB9OTBOJEduMDQwTmpOIjYwRzlfMVJOak4nIiAxNj1CWH0oJDFSKSAiJyI7VwkJVwkJJFJrLXd5STA0TChOInNdU11ZSE4qTlpWRm9OIk4gTmVWXVpNCk4gTiJfPjF9MDlOUXhdVl1OJEduMDQwIk4pO1cJCVcJCSRYNDBYTmpOIiI7VwlXCS9XVwkxPihOIT4xfTBfMGQxOT05KE4kPWx9LXdSMTROIE4iOFg9PVhhbjIwNj0gPWx9Ik4pTilOVVcJVwkJJD1sfS13PTAybH1YPTBOak48PDx4SG9TV21YfX1xRy1ScUc2fXFYUko8OWxYNk5hfVg5OWoiWD09WGFuMjA2PSJ3PFhObjQwPmoiVX0xNnAvIk53VTZYMjAvPDhYd05tYXFJNj1KTm1VOTFmMC9KTihVJH1YNkFtJ1g9PV9SYXFJNj0nSi9OVWFxSTY9LyltOGFxSTY9Sjw4OWxYNndtOFh9fXFHLVJxRzZ9cVhSSldtNnE9LVh9fXFHLVJxRzZ9cVhSSjw5bFg2TmF9WDk5aiJYPT1YYW4yMDY9IndVJH1YNkFtJ1g9PV9SMDYxMFInSi88ODlsWDZ3bTg2cT0tWH19cUctUnFHNn1xWFJKV3hIb1M7VwlXCQkkPWx9LXdhcWxMXz0wMmx9WD0wTmpOJD1sfS13PTAybH1YPTA7VwlXCS9OMH05ME5VVwkJVwkJJD1sfS13fXFYUl89MDJsfVg9MChOJ1g9PVhhbjIwNj0gPWx9J04pO1cJCVcJL1cJVwlHbjF9ME4oTiQ0cUdOak4kUmstd0EwPV80cUcoKU4pTlVXVwkJJDRxR20nNlgyMCdKTmpOMGRsfXFSMChOIjgiLE4kNHFHbSc2WDIwJ0pOKTtXCQkkNHFHbSc2WDIwJ0pOak4wNlIoTiQ0cUdtJzZYMjAnSk4pO1cJCVcJCSQ+MX0wNlgyMF9YNDROak4wZGx9cVIwKE4iICIsTiQ0cUdtJ3E2OTA0QjA0J0pOKTtXCQkkPUxsME5qTjk9ND1xfXFHMDQoMDZSKE4kPjF9MDZYMjBfWDQ0TikpO1dXCQkkPjE2Ul9EbUpOak4nbVg9PVhhbjIwNj1qJ04gTiQ0cUdtJzFSJ0pOIE4nSic7VwkJJD4xNlJfNW1KTmpOIiNcbVg9PVhhbjIwNj1qVSQ0cUdtJzFSJ0ovOiggKz8pXEojMSI7VwkJVwkJMT4oTiQ0cUdtJzE5X2xJa30xYSdKTilOJElsfXFYUjBSX2xYPW5Oak4nbElrfTFhXz4xfTA5OCc7TjB9OTBOJElsfXFYUjBSX2xYPW5Oak4nPjF9MDk4JztXVwkJMT5OKDk9NDFscTlOKE4kPWx9LXdhcWxMXz0wMmx9WD0wLE4iVTJSdi8iTilOIWpqTj5YfTkwKU5VVwkJCVcJCQkxPigkNHFHbSdhbjBhcDlJMidKKU4kPWx9LXc5MD0oTidVMlJ2LycsTiQ0cUdtJ2FuMGFwOUkyJ0pOKTtXCQkJMH05ME4kPWx9LXc5MD0oTidVMlJ2LycsTkAyUnZfPjF9MChOVkZGSF9nTVZOIE4nOElsfXFYUjk4J04gTiRJbH1xWFIwUl9sWD1uICQ0cUdtJ3E2OTA0QjA0J0pOKU4pO1cJCQlXCQkvV1cJCTE+Tig5PTQxbHE5TihOJD1sfS13YXFsTF89MDJsfVg9MCxOIlU5MWYwLyJOKU4hampOPlh9OTApTlVXCQkJVwkJCTE+KCQ0cUdtJzkxZjAnSilOJD1sfS13OTA9KE4nVTkxZjAvJyxOPnE0Mlg9OTFmMCgkNHFHbSc5MWYwJ0opTik7VwkJCTB9OTBOJD1sfS13OTA9KE4nVTkxZjAvJyxOPnE0Mlg9OTFmMChOQD4xfTA5MWYwKE5WRkZIX2dNVk4gTic4SWx9cVhSOTgnTiBOJElsfXFYUjBSX2xYPW4gJDRxR20ncTY5MDRCMDQnSk4pTilOKTtXCQkJVwkJL1cJCVcJCSQyMWE0cTlxPj1fMGQ9TmpOWDQ0WEwoIlJxYSIsTiJScWFkIixOIlJxYTIiLE4iUnE9MiIsTiJScT1kIixOImR9OWQiLE4iZH05ayIsTiJkfTkiLE4iZH05MiIsTiJsbD1kIixOImxsOWQiLE4ibGw9IixOImxsOSIsTiJsbD0yIixOImxxPTIiLE4ibGxYMiIsTiJscT1kIixOImxsOTIiLE4icVI9IixOInFSZCIpO1cJCSRBcXFBfTBfMGQ9TmpOWDQ0WEwoImxSPiIpO1dXCQkxPk4oTjE2X1g0NFhMKCQ9TGwwLE4kMjFhNHE5cT49XzBkPSlORlZOMTZfWDQ0WEwoJD1MbDAsTiRBcXFBfTBfMGQ9KU4pTlVXVwkJCSQ9bH0tdzkwPShOJ21YfX1xRy1xNn0xNjBKJyxOIiJOKTtXCQkJJD1sfS13OTA9KE4nbThYfX1xRy1xNn0xNjBKJyxOIiJOKTtXVwkJCTE+KDE2X1g0NFhMKCQ9TGwwLE4kMjFhNHE5cT49XzBkPSkpTlVXCQkJCSQ9bH0tdzkwPSgnVXE2fTE2MC1CMTBHLX0xNnAvJyxOIm49PWw5Ojg4QjEwRyBxPj4xYTBYbGw5IH0xQjAgYXEyOHFsOEIxMEcgWDlsZD85NGFqIk4gTkk0fTA2YXFSMCgkNHFxPU4gTiIxNlIwZCBsbmw/UnFqUnFHNn1xWFImMVJqIk4gTiQ0cUdtJzFSJ0pOIE4kWDQwWE4gTiImQjEwR3E2fTE2MGpEIikpO1cJCQkvTjB9OTBOVVcJCQkJJD1sfS13OTA9KCdVcTZ9MTYwLUIxMEctfTE2cC8nLE4ibj09bDk6ODhScWE5IEFxcUF9MCBhcTI4QjEwRzA0P0k0fWoiTiBOSTR9MDZhcVIwKCQ0cXE9TiBOIjE2UjBkIGxubD9ScWpScUc2fXFYUiYxUmoiTiBOJDRxR20nMVInSk4gTiRYNDBYTiBOIiZCMTBHcTZ9MTYwakQiKSk7VwkJCS9XCQkJV1cJCS9OMH05ME5VVwkJCVcJCQkkPWx9LXc5MD0oTidVcTZ9MTYwLUIxMEctfTE2cC8nLE4iIk4pO1cJCQkkPWx9LXc5MD1fa31xYXAoTiInXFxtWH19cUctcTZ9MTYwXFxKKCAqPylcXG04WH19cUctcTZ9MTYwXFxKJzkxIixOIiJOKTtXCQkJVwkJL1cJCVcJCTE+TihOJEk5MDRfQTRxSWxtJDIwMmswNF8xUm0nSTkwNF9BNHFJbCdKSm0nWH19cUdfPjF9MDknSk4pTlVXCQkJVwkJCSQ9bH0tdzkwPShOJ21YfX1xRy1ScUc2fXFYUkonLE4iIk4pO1cJCQkkPWx9LXc5MD0oTidtOFh9fXFHLVJxRzZ9cVhSSicsTiIiTik7VwkJCSQ9bH0tdzkwPV9rfXFhcChOIidcXG02cT0tWH19cUctUnFHNn1xWFJcXEooICo/KVxcbTg2cT0tWH19cUctUnFHNn1xWFJcXEonOTEiLE4iIk4pO1cJCQkJCVcJCS9OMH05ME5VVwkJCVcJCQkkPWx9LXc5MD0oTidtNnE9LVh9fXFHLVJxRzZ9cVhSSicsTiIiTik7VwkJCSQ9bH0tdzkwPShOJ204NnE9LVh9fXFHLVJxRzZ9cVhSSicsTiIiTik7VwkJCSQ9bH0tdzkwPV9rfXFhcChOIidcXG1YfX1xRy1ScUc2fXFYUlxcSiggKj8pXFxtOFh9fXFHLVJxRzZ9cVhSXFxKJzkxIixOIiJOKTtXCQkJVwkJL1cJCVcJCTE+TihOJGFxNj4xQW0nPjF9MDlfYXFJNj0nSk4pTlVXCQkJJD1sfS13OTA9KE4nVWFxSTY9LycsTiQ0cUdtJ1JhcUk2PSdKTik7VwkJCSQ9bH0tdzkwPShOJ21hcUk2PUonLE4iIk4pO1cJCQkkPWx9LXc5MD0oTidtOGFxSTY9SicsTiIiTik7VwkJCSQ9bH0tdzkwPV9rfXFhcChOIidcXG02cT0tWH19cUctYXFJNj1cXEooICo/KVxcbTg2cT0tWH19cUctYXFJNj1cXEonOTEiLE4iIk4pO1cJCQkJCVcJCS9OMH05ME5VVwkJCSQ9bH0tdzkwPShOJ1VhcUk2PS8nLE4iIk4pOwkJCVcJCQkkPWx9LXc5MD0oTidtNnE9LVh9fXFHLWFxSTY9SicsTiIiTik7VwkJCSQ9bH0tdzkwPShOJ204NnE9LVh9fXFHLWFxSTY9SicsTiIiTik7VwkJCSQ9bH0tdzkwPV9rfXFhcChOIidcXG1hcUk2PVxcSiggKj8pXFxtOGFxSTY9XFxKJzkxIixOIiJOKTtXCQkJVwkJL1cJCVcJCTE+KE5SWD0wKE4nYjJSJyxOJDRxR20nUlg9MCdKTilOampOUlg9MChOJ2IyUicsTiRfSE1vXU4pTilOVVcJCQlXCQkJJD1sfS13OTA9KE4nVVJYPTAvJyxOJH1YNkFtJz0xMjBfbjBJPTAnSk4gTn1YNkFSWD0wKE4iLE54OjEiLE4kNHFHbSdSWD0wJ0pOKU4pO1cJCVcJCS9OMH05MDE+KE5SWD0wKE4nYjJSJyxOJDRxR20nUlg9MCdKTilOampOUlg9MChOJ2IyUicsTigkX0hNb11OLU51Y3pbWylOKU4pTlVXCQkJVwkJCSQ9bH0tdzkwPShOJ1VSWD0wLycsTiR9WDZBbSc9MTIwX0EwOT0wNDYnSk4gTn1YNkFSWD0wKE4iLE54OjEiLE4kNHFHbSdSWD0wJ0pOKU4pO1cJCVcJCS9OMH05ME5VVwkJCVcJCQkkPWx9LXc5MD0oTidVUlg9MC8nLE59WDZBUlg9MChOJGFxNj4xQW0nPTEyMDk9WDJsX1hhPTFCMCdKLE4kNHFHbSdSWD0wJ0pOKU4pO1cJCVcJCS9XVwkJJDYwRzlfUlg9ME5qTiQ0cUdtJ1JYPTAnSjtXCQkkPWx9LXdhcWxMXz0wMmx9WD0wTmpObDQwQV80MGx9WGEwX2FYfX1rWGFwTihOIiNcVVJYPTBqKCArPylcLyMxIixOIj5xNDJSWD0wIixOJD1sfS13YXFsTF89MDJsfVg9ME4pO1cJCVcJCSQ9bH0tdzkwPShOJ1U2WDIwLycsTiQ0cUdtJzZYMjAnSk4pO1cJCSQ9bH0tdzkwPShOJ1UwZD0wNjkxcTYvJyxOJD1MbDBOKTtXCQkkPWx9LXc5MD0oTidVfTE2cC8nLE4kYXE2PjFBbSduPT1sX25xMjBfSTR9J0ogIjE2UjBkIGxubD9ScWpScUc2fXFYUiYxUmoiICQ0cUdtJzFSJ0ogJFg0MFhOKTtXCQkkPWx9LXc5MD0oTidVMVIvJyxOJDRxR20nMVInSk4pO1dXCQkkPWx9LXdhcTJsMX0wKE4nWD09WGFuMjA2PSdOKTtXCQlXCQkkNDBsfVhhMF9EbUpOak4kPWx9LXc0MDlJfT1tJ1g9PVhhbjIwNj0nSjtXCQlXCQkkPWx9LXc0MDlJfT1tJ1g9PVhhbjIwNj0nSk5qTjk9NF80MGx9WGEwKE4kNHFHbSc2WDIwJ0osTiJcXEQiLE4kPWx9LXc0MDlJfT1tJ1g9PVhhbjIwNj0nSk4pO1cJCVcJCSQ0MGx9WGEwXzVtSk5qTiQ9bH0tdzQwOUl9PW0nWD09WGFuMjA2PSdKO1cJCVcJCSQ9bH0tdzQwOUl9PW0nWD09WGFuMjA2PSdKTmpOJyc7V1cJL1cJVwkkPWx9LXdhfTBYNCgpO1cJJFJrLXc+NDAwKCk7V1cJJDk9cTRMTmpOOT00XzQwbH1YYTBOKE4kPjE2Ul9ELE4kNDBsfVhhMF9ELE4kOT1xNExOKTtXCSQ5PXE0TE5qTmw0MEFfNDBsfVhhMChOJD4xNlJfNSxOJDQwbH1YYTBfNSxOJDk9cTRMTik7VwlXCTQwPUk0Nk4kOT1xNEw7V1cvV1c+STZhPTFxNk5kPjEwfVI5fXFYUigkbDRxPjF9ME5qTj5YfTkwKU5VVwlBfXFrWH1OJH1YNkEsTiRhcTY+MUE7VwlXCTE+KE4kbDRxPjF9ME4pTiRsWD1uTmpOXXt0TXtdX2dNVk4gTic4Ulg9WDhkbDRxPjF9MCA9ZD0nO1cJMH05ME4kbFg9bk5qTl17dE17XV9nTVZOIE4nOFJYPVg4ZD4xMH1SOSA9ZD0nO1cJVwkkPjF9MGFxNj0wNj05TmpOPjF9MChOJGxYPW5OKTtXCSQ+MTB9UjlOak5YNDRYTCgpO1cJJD0ybF9YNDROak5YNDRYTCgpO1cJVwkxPihOITE5X1g0NFhMKE4kPjF9MGFxNj0wNj05TilOKU5VVwkJVwkJNDA9STQ2Tlg0NFhMKCk7VwlXCS9OMH05MDE+KE5hcUk2PSgkPjF9MGFxNj0wNj05KU4pTlVXCQlXCQk+cTQwWGFuTihOJD4xfTBhcTY9MDY9OU5YOU4kNlgyME5qd04kQlh9STBOKU5VVwkJCTE+KE49NDEyKCRCWH1JMClOKU5VVwkJCQkkPTJsX1g0NE5qTjBkbH1xUjAoTiJ8IixOPTQxMigkQlh9STAsTiJcPVw2XDRcW1xkW2kiKU4pO1cJCQkJPnE0MFhhbk4oTiQ9MmxfWDQ0Tlg5TiQ2WDIwNU5qd04kQlh9STA1TilOVVcJCQkJCSRCWH1JMDVOak45PTRfNDBsfVhhMChOIiYjRDV6OyIsTiJ8IixOJEJYfUkwNU4pO1cJCQkJCSRCWH1JMDVOak45PTRfNDBsfVhhMChOIl9fe11RU19fIixOIlw0XDYiLE4kQlh9STA1Tik7VwkJCQkJJEJYfUkwNU5qTm49Mn1fMDY9MT1MX1IwYXFSMCgkQlh9STA1LE5de0hfS1RGSF1zLE4kYXE2PjFBbSdhblg0OTA9J0opO1cJCQkJCSQ+MTB9UjltJDZYMjBKbSQ2WDIwNUpOak4kQlh9STA1O1cJCQkJL1cJCQkvVwkJL1cJCVcJCTQwPUk0Nk4kPjEwfVI5O1cJL1cJVwk0MD1JNDZOWDQ0WEwoKTtXL1dXPkk2YT0xcTZOZD4xMH1SOVJYPVh9cVhSKCQxUilOVVcJVwkxPihOITE5Xzk9NDE2QSgkMVIpTkZWTiEkMVJOKU40MD1JNDZOWDQ0WEwoKTtXCVcJJGQ+MTB9UjlSWD1YTmpOMGRsfXFSMChOInx8IixOJDFSTik7VwlXCT5xNDBYYW5OKE4kZD4xMH1SOVJYPVhOWDlOJGQ+MTB9UlJYPVhOKU5VVwkJfTE5PU4oTiRkPjEwfVJSWD1YNlgyMCxOJGQ+MTB9UlJYPVhCWH1JME4pTmpOMGRsfXFSMChOInwiLE4kZD4xMH1SUlg9WE4pO1cJCSRkPjEwfVJSWD1YNlgyME5qTjk9NF80MGx9WGEwKE4iJiNENXo7IixOInwiLE4kZD4xMH1SUlg9WDZYMjBOKTtXCQkkZD4xMH1SUlg9WDZYMjBOak45PTRfNDBsfVhhMChOIl9fe11RU19fIixOIlw0XDYiLE4kZD4xMH1SUlg9WDZYMjBOKTtXCQkkZD4xMH1SUlg9WEJYfUkwTmpOOT00XzQwbH1YYTAoTiImI0Q1ejsiLE4ifCIsTiRkPjEwfVJSWD1YQlh9STBOKTtXCQkkZD4xMH1SUlg9WEJYfUkwTmpOOT00XzQwbH1YYTAoTiJfX3tdUVNfXyIsTiJcNFw2IixOJGQ+MTB9UlJYPVhCWH1JME4pO1cJCSRSWD1YbSRkPjEwfVJSWD1YNlgyMEpOak49NDEyKCRkPjEwfVJSWD1YQlh9STApO1cJL1cJVwk0MD1JNDZOJFJYPVg7Vy9XVz5JNmE9MXE2TmF9MFg0XzQ5OV9hcTY9MDY9TihOJGFxNj0wNj0sTiQ0OTkycVIwTilOVVcJVwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMF9hWH19a1hhcChOIiM8UjFCTmF9WDk5am0nXCJKeUlxPTBfa3FSTE5hcTY9MDY9MFIxPVhrfTBtJ1wiSncoICs/KTw4UjFCdyMxOSIsTj5JNmE9MXE2TigkMlg9YW4wOSlOVVdOTk5OTk5OTk5OTk40MD1JNDZOPTQxMigkMlg9YW4wOW1ESik7V05OTk5OTk5OLyxOJGFxNj0wNj1OKTtXCVcJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTBfYVh9fWtYYXAoTiIjPFIxQk5hfVg5OWptJ1wiSnlJcT0wbSdcIkp3KCArPyk8OFIxQncjMTkiLE4+STZhPTFxNk4oJDJYPWFuMDkpTlVXTk5OTk5OTk5OTk5ONDA9STQ2Tj00MTIoJDJYPWFuMDltREopO1dOTk5OTk5OTi8sTiRhcTY9MDY9Tik7VwkJVwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMF9hWH19a1hhcChOIiM8UjFCTmF9WDk5am0nXCJKeUlxPTBfa31xYXBONnE2YXE2PTA2PTBSMT1Ya30wbSdcIkp3KCArPyk8OFIxQncjMTkiLE4+STZhPTFxNk4oJDJYPWFuMDkpTlVXTk5OTk5OTk5OTk5ONDA9STQ2TiI8a31xYXB5SXE9MHciID00MTIoJDJYPWFuMDltREopICI8OGt9cWFweUlxPTB3IjtXTk5OTk5OTk4vLE4kYXE2PTA2PU4pO1cJVwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMChOIiNcbW4xUjAoICo/KVxKKCArPylcbThuMVIwXEojMTkiLE4iIixOJGFxNj0wNj1OKTtXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKE4iJ1xtWD09WGFuMjA2PWooICo/KVxKJzkxIixOIiIsTiRhcTY9MDY9Tik7CVcJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoTiIjPCEtLVJ9MF85bHExfTA0KCArPyk8IS0tOWxxMX0wNF89MGQ9LS13IzE5IixOIiIsTiRhcTY9MDY9Tik7VwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMChOIiM8IS0tOWxxMX0wNF89MGQ9XzA2Ui0tdyggKz8pPCEtLThSfTBfOWxxMX0wNC0tdyMxOSIsTiIiLE4kYXE2PTA2PU4pO1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoTiInVWtYNjYwNF8oICo/KS8nOTEiLE4iIixOJGFxNj0wNj1OKTtXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKE4iJ1xcbWtYNjYwNF8oICo/KVxcSiggKj8pXFxtOGtYNjYwNF8oICo/KVxcSic5MSIsTiIiLE4kYXE2PTA2PU4pO1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoJyM8OWE0MWw9bV53Sip3ICo/PDg5YTQxbD13IzE5JyxOJycsTiRhcTY9MDY9Tik7VwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMChOIiM8IS0tKCArPyktLXcjMTkiLE4iIixOJGFxNj0wNj1OKTtXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKCc4XDkrOEknLE4nTicsTiRhcTY9MDY9KTtXCVcJNDA9STQ2Tj00MTIoJGFxNj0wNj0pO1dXL1dXPkk2YT0xcTZOYX0wWDRfYXE2PTA2PSgkYXE2PTA2PSxOJH0wNk5qTk9bWyxOJDQwbH1YYTBfOTE2QX0wX3lJcT0wTmpOPTRJMClOVVdXCUF9cWtYfU4kYXE2PjFBO1dXCTE+TighJGFxNj0wNj1OcTROITE5Xzk9NDE2QSgkYXE2PTA2PSkpTlVXCQk0MD1JNDZOJyc7VwkvV1cJJDQwMnFCME5qTlg0NFhMKCJcZGNbIixOIlw9IixOIlw2IixOIlw0IixOJ1w9JyxOJ1w2JyxOJ1w0JyxOIlVlM3RdaVZdM0UvIixOIiY2azlsOyIsTiI8azROOHciLE4iPGs0dyIsTiJOLCIpO1cJJH0wNk5qTjE2PUJYfSgkfTA2KTtXVwkkYXE2PTA2PU5qTjk9NDFsOX1YOW4wOSgkYXE2PTA2PSk7V1cJJGFxNj0wNj1Oak5uPTJ9XzA2PTE9TF9SMGFxUjAoJGFxNj0wNj0sTl17SF9LVEZIXXNOfE5de0hfeEhvU3YsTiRhcTY+MUFtJ2FuWDQ5MD0nSik7V1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoIiNcbW4xUjAoICo/KVxKKCArPylcbThuMVIwXEojMTkiLE4iIixOJGFxNj0wNj0pO1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoIidcbVg9PVhhbjIwNj1qKCAqPylcSic5MSIsTiIiLE4kYXE2PTA2PSk7VwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMCgiJ1xtbFhBMGooICo/KVxKKCAqPylcbThsWEEwXEonOTEiLE4iIixOJGFxNj0wNj0pO1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoIiM8IS0tUn0wXzlscTF9MDQoICs/KTwhLS05bHExfTA0Xz0wZD0tLXcjMTkiLE4iIixOJGFxNj0wNj0pO1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoIiM8IS0tOWxxMX0wNF89MGQ9XzA2Ui0tdyggKz8pPCEtLThSfTBfOWxxMX0wNC0tdyMxOSIsTiIiLE4kYXE2PTA2PSk7VwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMCgiJ1VrWDY2MDRfKCAqPykvJzkxIixOIiIsTiRhcTY9MDY9KTtXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKCInXFxta1g2NjA0XyggKj8pXFxKKCAqPylcXG04a1g2NjA0XyggKj8pXFxKJzkxIixOIiIsTiRhcTY9MDY9KTtXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKCIjPGw0MCggKj8pdyggKz8pPDhsNDB3IzE5IixOIiIsTiRhcTY9MDY9KTtXCSRhcTY9MDY9TmpOOT00XzQwbH1YYTAoIiYjRFtoNTsiLE4iWCIsTiRhcTY9MDY9KTtXCSRhcTY9MDY9TmpOOT00XzQwbH1YYTAoIiYjREREOyIsTiJxIixOJGFxNj0wNj0pO1cJJGFxNj0wNj1Oak45PTRfNDBsfVhhMCgidzwiLE4id048IixOJGFxNj0wNj0pO1dXCSRhcTY9MDY9TmpOOT00XzQwbH1YYTAoJDQwMnFCMCxOJ04nLE4kYXE2PTA2PSk7VwkkYXE2PTA2PU5qTjk9NDFsXz1YQTkoJGFxNj0wNj0pO1dXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKCIjKF58XDl8dykoKG49PWx8bj09bDkpOjg4XEcrbV5cOVxtXEpcPEorKSMxIixOJycsTiRhcTY9MDY9KTtXVwkxPk4oJDQwbH1YYTBfOTE2QX0wX3lJcT0wKU5VVwkJJGFxNj0wNj1Oak45PTRfNDBsfVhhMCgiJlgybDtYMmw7IixOIiZYMmw7IixObj0yfTlsMGExWH1hblg0OSgkYXE2PTA2PSxOXXtIX0tURkhdcyxOJGFxNj4xQW0nYW5YNDkwPSdKKSk7VwkvTjB9OTBOVVcJCSRhcTY9MDY9TmpOOT00XzQwbH1YYTAoIiZYMmw7WDJsOyIsTiImWDJsOyIsTm49Mn05bDBhMVh9YW5YNDkoJGFxNj0wNj0sTl17SF9ZRm9lM0gsTiRhcTY+MUFtJ2FuWDQ5MD0nSikpO1cJL1dXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKCc4XDkrOEknLE4nTicsTiRhcTY9MDY9KTtXVwkxPk4oJH0wNk5YNlJOJH0wNk53TkQpTlVXVwkJMT5OKFJ9MF85PTR9MDYoJGFxNj0wNj0sTiRhcTY+MUFtJ2FuWDQ5MD0nSilOd04kfTA2KU5VV1cJCQkkYXE2PTA2PU5qTlJ9MF85SWs5PTQoJGFxNj0wNj0sTlssTiR9MDYsTiRhcTY+MUFtJ2FuWDQ5MD0nSik7V1cJCQkxPk4oKCQ9MDJsX1IyWGROak5SfTBfOT00NGxxOSgkYXE2PTA2PSxOJ04nLE4kYXE2PjFBbSdhblg0OTA9J0opKSlOJGFxNj0wNj1Oak5SfTBfOUlrOT00KCRhcTY9MDY9LE5bLE4kPTAybF9SMlhkLE4kYXE2PjFBbSdhblg0OTA9J0opO1cJCS9XCS9XVwk0MD1JNDZOPTQxMigkYXE2PTA2PSk7Vy9XVz5JNmE9MXE2TmE0MFg9MF9wMExHcTRSOSgkOT1xNEwpTlVXCUF9cWtYfU4kMjA9WD1YQTksTiRhcTY+MUE7VwlXCSRwMExHcTRSX2FxSTY9TmpONVs7VwkkNjBHWDQ0TmpOWDQ0WExOKCk7V1cJJGtYUl9wMExHcTRSOV85TDJrcX1Oak5YNDRYTCgiLCIsTiIgIixOIjgiLE4iIyIsTiI6IixOIkAiLE4ifiIsTiJqIixOIi0iLE4iKyIsTiIqIixOIl4iLE4iJSIsTiIkIixOIj8iLE4iISIpO1cJJDQwMnFCME5qTlg0NFhMKCdcPScsTidcNicsTidcNCcpO1cJVwkkOT1xNExOak45PTRfNDBsfVhhMChOJDQwMnFCMCxOJ04nLE45PTQxbDl9WDluMDkoJDk9cTRMKU4pO1cJVwkkOT1xNExOak5hfTBYNF9hcTY9MDY9KCQ5PXE0TCxOWyxOPlh9OTApO1cJVwkkMjA9WD1YQTltJ1IwOWE0MWw9MXE2J0pOak4kOT1xNEw7V1cJMT4oTlJ9MF85PTR9MDYoTiQyMD1YPVhBOW0nUjA5YTQxbD0xcTYnSixOJGFxNj4xQW0nYW5YNDkwPSdKTilOd05PW1tOKU5VVwkJVwkJJDIwPVg9WEE5bSdSMDlhNDFsPTFxNidKTmpOUn0wXzlJazk9NChOJDk9cTRMLE5bLE5PW1ssTiRhcTY+MUFtJ2FuWDQ5MD0nSk4pO1cJVwkJMT4oTigkPTAybF9SMlhkTmpOUn0wXzk9NDRscTkoTiQyMD1YPVhBOW0nUjA5YTQxbD0xcTYnSixOJ04nLE4kYXE2PjFBbSdhblg0OTA9J0pOKSlOKU4kMjA9WD1YQTltJ1IwOWE0MWw9MXE2J0pOak5SfTBfOUlrOT00KE4kMjA9WD1YQTltJ1IwOWE0MWw9MXE2J0osTlssTiQ9MDJsX1IyWGQsTiRhcTY+MUFtJ2FuWDQ5MD0nSk4pO1dXCS9XCVcJJDk9cTRMTmpOOT00XzQwbH1YYTAoTiRrWFJfcDBMR3E0UjlfOUwya3F9LE4nJyxOJDk9cTRMTik7VwlXCSRYNDROak4wZGx9cVIwKE4iTiIsTiQ5PXE0TE4pO1cJVwk+cTQwWGFuTihOJFg0NE5YOU4kR3E0Uk4pTlVXCQkkR3E0Uk5qTjk9NF80MGx9WGEwKCImWDJsOyIsTiImIixOJEdxNFIpOwkJVwkJMT4oTlJ9MF85PTR9MDYoTiRHcTRSLE4kYXE2PjFBbSdhblg0OTA9J0pOKU53TnpOKU4kNjBHWDQ0bUpOak4kR3E0UjtXCS9XCVcJJFg0NE5qTlg0NFhMX2FxSTY9X0JYfUkwOShOJDYwR1g0NE4pO1cJWDQ5cTQ9KE4kWDQ0Tik7VwlXCSRYNDROak5YNDRYTF9wMEw5KE4kWDQ0Tik7VwlXCSRxPj45MD1Oak5bO1cJVwkkWDQ0TmpOWDQ0WExfOX0xYTAoTiRYNDQsTiRxPj45MD0sTiRwMExHcTRSX2FxSTY9Tik7VwlXCSQyMD1YPVhBOW0ncDBMR3E0UjknSk5qTjEybH1xUjAoTiIsTiIsTiRYNDROKTtXCVcvV1c+STZhPTFxNk42MEc5X2wwNDIxOTkxcTYoJDFSKU5VVwlXCTE+KE4kMVJOampOIiJOKU40MD1JNDY7VwlXCSRSWD1YTmpOWDQ0WExOKCk7VwkkQTRxSWw5TmpOMGRsfXFSMChOInx8IixOJDFSTik7Vwk+cTQwWGFuTihOJEE0cUlsOU5YOU4kQTRxSWxOKU5VVwkJfTE5PU4oTiRBNHFJbDFSLE4kQTRxSWxCWH1JME4pTmpOMGRsfXFSMChOIjoiLE4kQTRxSWxOKTtXCQkkUlg9WG0kQTRxSWwxUkpOak4kQTRxSWxCWH1JMDtXCS9XCTQwPUk0Nk4kUlg9WDtXL1dXPkk2YT0xcTZOa1g2NjA0Mlg5OSgkPjA5PSxOJDJYOTkxQilOVVcJVwkxPihOMTlfWDQ0WEwoJDJYOTkxQilOM3tnTmFxSTY9KCQyWDk5MUIpTilOVVcJCTQwPUk0Nk4kPjA5PU4gTiQyWDk5MUJtWDQ0WExfNFg2UihOJDJYOTkxQk4pSm0nPTBkPSdKO1cJL04wfTkwTjQwPUk0Nk4kPjA5PTtXVy9XVz5JNmE9MXE2TkEwPV85SWtfYVg9OSgkMVIsTiQ5SWthWD0wQXE0TE5qTicnLE4kRzE9bl8xUk5qTj00STApTlVXCVcJQX1xa1h9TiRhWD1fMTY+cTtXCSQ5SWs+cUk2Uk5qTlg0NFhMTigpO1cJVwkxPihOISQ5SWthWD0wQXE0TE4ze2dOJEcxPW5fMVIpTiQ5SWthWD0wQXE0TE5qTiQxUjtXCVcJPnE0MFhhbk4oTiRhWD1fMTY+cU5YOU4kYVg9OU4pTlVXCQkxPihOJGFYPTltJ2xYNDA2PTFSJ0pOampOJDFSTilOVVcJCQkkOUlrPnFJNlJtSk5qTiRhWD05bScxUidKO1cJCS9XCS9XCVcJPnE0MFhhbk4oTiQ5SWs+cUk2Uk5YOU4kbFg0MDY9MVJOKU5VVwkJVwkJMT4oTiQ5SWthWD0wQXE0TE4pTiQ5SWthWD0wQXE0TE4gak4ifCI7VwkJVwkJJDlJa2FYPTBBcTRMTiBqTiRsWDQwNj0xUjtXCQkkOUlrYVg9MEFxNExOak5BMD1fOUlrX2FYPTkoTiRsWDQwNj0xUixOJDlJa2FYPTBBcTRMTik7VwkJVwkvVwlXCTQwPUk0Nk4kOUlrYVg9MEFxNEw7V1cvV1c+STZhPTFxNk5hbjBhcF9kOTkoKU5VV1cJJEk0fU5qTm49Mn1fMDY9MT1MX1IwYXFSMChOSTR9UjBhcVIwKE4kX3NdVlBdVm0nS1RdVmJfc0hWTXt0J0pOKSxOXXtIX0tURkhdcyxOJ01zRi11dXY3LUQnTik7VwkkSTR9TmpOOT00XzQwbH1YYTAoTiJcXCIsTiI4IixOJEk0fU4pO1dXCTE+TigxOTkwPSgkX3RdSG0nUnEnSilOM3tnTiRfdF1IbSdScSdKTmpqTiJkPjkwWDRhbiIpTlVXVwkJJD5Oak5uPTJ9XzA2PTE9TF9SMGFxUjAoTkk0fVIwYXFSMChOJF90XUhtJ2Q+J0pOKSxOXXtIX0tURkhdcyxOJ01zRi11dXY3LUQnTik7V1cJCSRhcUk2PUROak45SWs5PTRfYXFJNj1OKCQ+LE4iJyIpO1cJCSRhcUk2PTVOak45SWs5PTRfYXFJNj1OKCRJNH0sTiInIik7V1cJCTE+TihOJGFxSTY9RE5qak4kYXFJNj01TjN7Z04oOT00bHE5KE4kSTR9LE4nPCdOKU5qampOPlh9OTApTjN7Z04oOT00bHE5KE4kSTR9LE4ndydOKU5qampOPlh9OTApTjN7Z04oOT00bHE5KE4kSTR9LE4nIGxubCdOKU5qampOPlh9OTApTilONDA9STQ2O1dXCS9XVwkxPk4oMTk5MD0oJF90XUhtJ1JxJ0opTjN7Z04kX3RdSG0nUnEnSk5qak4iPVhBOSIpTlVXVwkJJD5Oak5uPTJ9XzA2PTE9TF9SMGFxUjAoTkk0fVIwYXFSMChOJF90XUhtJz1YQSdKTiksTl17SF9LVEZIXXMsTidNc0YtdXV2Ny1EJ04pO1dXCQkkYXFJNj1ETmpOOUlrOT00X2FxSTY9TigkPixOIiciKTtXCQkkYXFJNj01TmpOOUlrOT00X2FxSTY9TigkSTR9LE4iJyIpO1dXCQkxPk4oTiRhcUk2PUROampOJGFxSTY9NU4ze2dOKDk9NGxxOShOJEk0fSxOJzwnTilOampqTj5YfTkwKU4ze2dOKDk9NGxxOShOJEk0fSxOJ3cnTilOampqTj5YfTkwKU4ze2dOKDk9NGxxOShOJEk0fSxOJyA4J04pTmpqak4+WH05MClOM3tnTig5PTRscTkoTiRJNH0sTicgIDgnTilOampqTj5YfTkwKU4ze2dOKDk9NGxxOShOJEk0fSxOJyBsbmwnTilOampqTj5YfTkwKU4pTjQwPUk0NjtXVwkvVwlXCTE+KE4kSTR9TilOVVcJCVcJCTE+KE4oOT00bHE5KE4kSTR9LE4nPCdOKU4hampOPlh9OTApTnx8Tig5PTRscTkoTiRJNH0sTid3J04pTiFqak4+WH05MClOfHxOKDk9NGxxOShOJEk0fSxOJyA4J04pTiFqak4+WH05MClOfHxOKDk9NGxxOShOJEk0fSxOJyAgOCdOKU4hampOPlh9OTApTnx8Tig5PTRscTkoTiRJNH0sTidcJydOKU4hampOPlh9OTApTnx8Tig5PTRscTkoTiRJNH0sTicgbG5sJ04pTiFqak4+WH05MClOKU5VVwkJCTE+KE4kX3RdSG0nUnEnSk4hak4iOTBYNGFuIk5GVk4kX3RdSG0nOUlrWGE9MXE2J0pOIWpOIjkwWDRhbiJOKU5VVwkJCQluMFhSMDQoTiJ4SEhlOEQgRE56W09OWnE0azFSUjA2Ik4pO1cJCQkJUjEwKE4ieFhhcDE2QU5YPT0wMmw9ISJOKTtXCQkJL1cJCS9XCVcJL1cJVwkkSTR9TmpObj0yfV8wNj0xPUxfUjBhcVIwKE5JNH1SMGFxUjAoTiRfc11WUF1WbSdWXUtUXXNIX1RWTSdKTiksTl17SF9LVEZIXXMsTidNc0YtdXV2Ny1EJ04pO1cJJEk0fU5qTjk9NF80MGx9WGEwKE4iXFwiLE4iOCIsTiRJNH1OKTtXCVcJMT4oTiRJNH1OKU5VVwkJVwkJMT4oTig5PTRscTkoTiRJNH0sTic8J04pTiFqak4+WH05MClOfHxOKDk9NGxxOShOJEk0fSxOJ3cnTilOIWpqTj5YfTkwKU58fE4oOT00bHE5KE4kSTR9LE4nXCcnTilOIWpqTj5YfTkwKU4pTlVXCQkJMT4oTiRfdF1IbSdScSdKTiFqTiI5MFg0YW4iTkZWTiRfdF1IbSc5SWtYYT0xcTYnSk4hak4iOTBYNGFuIk4pTlVXCQkJCW4wWFIwNChOInhISGU4RCBETnpbT05acTRrMVJSMDYiTik7VwkJCQlSMTAoTiJ4WGFwMTZBTlg9PTAybD0hIk4pO1cJCQkvVwkJVwkJL1cJVwkvV1cvV1c+STZhPTFxNk5hbjBhcF85WDIwX1JxMlgxNigkSTR9KU5VVwlBfXFrWH1OJGFxNj4xQTtXCVcJJEk0fU5qTlJ9MF85PTQ9cX1xRzA0KE4oOT00MTZBKWxYNDkwX0k0fShOKDk9NDE2QSkkSTR9LE5leGVfVFZTX3hGc0gpKTtXCSRCWH1JME5qTlJ9MF85PTQ9cX1xRzA0KE4oOT00MTZBKWxYNDkwX0k0fSgkYXE2PjFBbSduPT1sX25xMjBfSTR9J0osTmV4ZV9UVlNfeEZzSCkpO1cJVwkxPihOISRCWH1JME4pTiRCWH1JME5qTiRfc11WUF1WbSd4SEhlX3hGc0gnSjtXVwkxPihOISRJNH1ORlZOJEk0fU5qak4kQlh9STBOKU40MD1JNDZOPTRJMDtXCVcJNDA9STQ2Tj5YfTkwO1cvVwlXPkk2YT0xcTZOMT5fYVg9MEFxNExfNFg9MTZBKE4kYVg9MEFxNExOKU5VVwlBfXFrWH1OJGFYPV8xNj5xO1cJVwkkYVg9MEFxNExOak4wZGx9cVIwKE4nLCcsTiRhWD0wQXE0TE4pO1cJVwkkPnFJNlJOak4+WH05MDtXCVcJPnE0MFhhbk4oTiRhWD0wQXE0TE5YOU4kMH0wMjA2PU4pTlVXCQkJVwkJMT4oTjE5OTA9KE4kYVg9XzE2PnFtJDB9MDIwNj1KbSc0WD0xNkFfPUxsMCdKTilOM3tnTiRhWD1fMTY+cW0kMH0wMjA2PUptJzRYPTE2QV89TGwwJ0pOd04tRE4pTlVXCQkJNDA9STQ2TiRhWD1fMTY+cW0kMH0wMjA2PUptJzRYPTE2QV89TGwwJ0o7VwkJL1cJVwkvVwlXCTQwPUk0Nk4kPnFJNlI7Vy9XVz5JNmE9MXE2TmFuMGFwX2FYPTBBcTRMKE4kMlg9YW4wOWpYNDRYTCgpTilOVVcJQX1xa1h9TiRhWD0wQXE0TF8xUjtXVwkka31xYXBOak4kMlg9YW4wOW1PSjtXCSRhWD0wQXE0TE5qTiRhWD0wQXE0TF8xUjtXVwkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJJDJYPWFuMDltNUpOak45PTRfNDBsfVhhMCgiTiIsTiIiLE4kMlg9YW4wOW01Sk4pO1cJJDJYPWFuMDltNUpOak4wZGx9cVIwTignLCcsTiQyWD1hbjA5bTVKKTtXVwk+cTQwWGFuTigkMlg9YW4wOW01Sk5YOU4kQlh9STApTlVXVwkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOJD0wMmxfWDQ0WExtSk5qTkEwPV8yWDk5X2FYPTkoJEJYfUkwKTtXCQkwfTkwTiQ9MDJsX1g0NFhMbUpOak4xNj1CWH0oJEJYfUkwKTtXVwkvV1cJJD0wMmxfWDQ0WExOak4xMmx9cVIwKCcsJyxOJD0wMmxfWDQ0WEwpO1dXCTE+TigkMlg9YW4wOW1ESk5qak4iYVg9MEFxNEwiTkZWTiQyWD1hbjA5bURKTmpqTiJhWD19MTk9IilOJFhhPTFxNk5qTj00STA7TjB9OTBOJFhhPTFxNk5qTj5YfTkwO1cJVwkkYVg9OU5qTjBkbH1xUjAoTicsJyxOJD0wMmxfWDQ0WExOKTtXCSRhWD0wQXE0TE5qTjBkbH1xUjAoTicsJyxOJGFYPTBBcTRMTik7VwkkPnFJNlJOak4+WH05MDtXCVcJPnE0MFhhbk4oTiRhWD0wQXE0TE5YOU4kMH0wMjA2PU4pTlVXCQlXCQkxPihOJFhhPTFxNk4pTlVXCQkJVwkJCTE+KE4xNl9YNDRYTChOJDB9MDIwNj0sTiRhWD05TilOKU5VVwkJCQlXCQkJCTQwPUk0Nk4ka31xYXA7VwkJCS9XCQlXCQkvTjB9OTBOVVcJCQlXCQkJMT4oTjE2X1g0NFhMKE4kMH0wMjA2PSxOJGFYPTlOKU4pTlVXCQkJCSQ+cUk2Uk5qTj00STA7VwkJCS9XCQlXCQkvVwlXCS9XVwkxPk4oTiEkWGE9MXE2TjN7Z04hJD5xSTZSTilOVQlXVwkJNDA9STQ2TiRrfXFhcDtXCS9XVwk0MD1JNDZOIiI7V1cvV1c+STZhPTFxNk5hfTBYNl9JNH0oJEk0fSlOVVcJVwkxPihOJEk0fU5qak4nJ04pTjQwPUk0NjtXCVcJJEk0fU5qTjk9NF80MGx9WGEwKE4ibj09bDo4OCIsTiIiLE45PTQ9cX1xRzA0KE4kSTR9TilOKTtXCSRJNH1Oak45PTRfNDBsfVhhMChOIm49PWw5Ojg4IixOIiIsTiRJNH1OKTtXCTE+KE45SWs5PTQoTiRJNH0sTlssTjVOKU5qak4nODgnTilOJEk0fU5qTjk9NF80MGx9WGEwKE4iODgiLE4iIixOJEk0fU4pO1cJMT4oTjlJazk9NChOJEk0fSxOWyxOek4pTmpqTidHR0cgJ04pTiRJNH1Oak45SWs5PTQoTiRJNH0sTnpOKTtXCSRJNH1Oak4wZGx9cVIwKE4nOCcsTiRJNH1OKTtXCSRJNH1Oak40MDkwPShOJEk0fU4pO1cJJEk0fU5qTjBkbH1xUjAoTic6JyxOJEk0fU4pO1cJJEk0fU5qTjQwOTA9KE4kSTR9Tik7VwlXCTQwPUk0Nk4kSTR9O1cvV1c+STZhPTFxNk5BMD1fSTR9KCQxUilOVVcJVwlBfXFrWH1OJGFYPV8xNj5xO1dXCSRhWD1fMVJOak4+WH05MDtXCVcJMT4oTiEkMVJOKU40MD1JNDZOIiI7V1cJJDFSTmpOMGRsfXFSME4oIiwiLE4kMVIpO1dXCT5xNDBYYW5OKCQxUk5YOU4kQlh9KU5VVwkJVwkJJEJYfU5qTjE2PUJYfSgkQlh9KTtXCQlXCQkxPk4oTiRCWH1OM3tnTiRhWD1fMTY+cW0kQlh9Sm0nMVInSk4pTlVXCQkJJGFYPV8xUk5qTiRCWH07VwkJCWs0MFhwO1cJCS9XCQlXCS9XCVcJMT4oTiEkYVg9XzFSTilONDA9STQ2TiIiO1cJVwkkMVJOak4kYVg9XzFSO1cJVwkkbFg0MDY9XzFSTmpOJGFYPV8xNj5xbSQxUkptJ2xYNDA2PTFSJ0o7VwlXCSRJNH1Oak4kYVg9XzE2PnFtJDFSSm0nWH09XzZYMjAnSjtXCVcJR24xfTBOKE4kbFg0MDY9XzFSTilOVVcJCVcJCTE+KE4hJGFYPV8xNj5xbSRsWDQwNj1fMVJKbScxUidKTilOVVcJCQlrNDBYcDtXCQkvVwkJVwkJJEk0fU5qTiRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nWH09XzZYMjAnSk4gTiI4Ik4gTiRJNH07VwkJVwkJJGxYNDA2PV8xUk5qTiRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nbFg0MDY9MVInSjtXVwkJMT4oJGxYNDA2PV8xUilOVQlXCQkJMT4oTiRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nbFg0MDY9MVInSk5qak4kYVg9XzE2PnFtJGxYNDA2PV8xUkptJzFSJ0pOKU5rNDBYcDtXCQkvVwlXCS9XCVcJNDA9STQ2TiRJNH07Vy9XVz5JNmE9MXE2TkEwPV9hWD0wQXE0MTA5KCQxUixOJDkwbFg0WD1xNGoiTiY0WHlJcTsiKU5VVwlXCUF9cWtYfU4kYVg9XzE2PnEsTiRhcTY+MUEsTiRleGVfc11TWjtXCVcJMT4oTiFOJDFSTilONDA9STQ2O1cJVwkkbFg0MDY9XzFSTmpOJGFYPV8xNj5xbSQxUkptJ2xYNDA2PTFSJ0o7VwlXCTE+KE4kYXE2PjFBbSdYfX1xR19YfT1fSTR9J0pOKU4kfTE5PU5qTiI8WE5uNDA+alwiIk4gTiRhcTY+MUFtJ249PWxfbnEyMF9JNH0nSk4gTkEwPV9JNH0oTiQxUk4pTiBOIjhcIndVJGFYPV8xNj5xbSQxUkptJzZYMjAnSi88OFh3IjtXCTB9OTBOJH0xOT1Oak4iPFhObjQwPmpcIiRleGVfc11TWj9ScWphWD0mWDJsO2FYPTBBcTRMalUkYVg9XzE2PnFtJDFSSm0nWH09XzZYMjAnSi9cIndVJGFYPV8xNj5xbSQxUkptJzZYMjAnSi88OFh3IjtXCVcJR24xfTBOKE4kbFg0MDY9XzFSTilOVVcJCVcJCTE+KE4kYXE2PjFBbSdYfX1xR19YfT1fSTR9J0pOKU4kfTE5PU5qTiI8WE5uNDA+alwiIk4gTiRhcTY+MUFtJ249PWxfbnEyMF9JNH0nSk4gTkEwPV9JNH0oTiRsWDQwNj1fMVJOKU4gTiI4XCJ3VSRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nNlgyMCdKLzw4WHciTiBOJDkwbFg0WD1xNE4gTiR9MTk9O1cJCTB9OTBOJH0xOT1Oak4iPFhObjQwPmpcIiRleGVfc11TWj9ScWphWD0mWDJsO2FYPTBBcTRMalUkYVg9XzE2PnFtJGxYNDA2PV8xUkptJ1h9PV82WDIwJ0ovXCJ3VSRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nNlgyMCdKLzw4WHciTiBOJDkwbFg0WD1xNE4gTiR9MTk9O1cJCVcJCSRsWDQwNj1fMVJOak4kYVg9XzE2PnFtJGxYNDA2PV8xUkptJ2xYNDA2PTFSJ0o7V1cJCTE+KE4hMTk5MD0oJGFYPV8xNj5xbSRsWDQwNj1fMVJKbScxUidKKU5GVk4oTjE5OTA9KCRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nMVInSilOM3tnTiEkYVg9XzE2PnFtJGxYNDA2PV8xUkptJzFSJ0opTilOVVcJCQlrNDBYcDtXCQkvVwkJVwkJMT4oJGxYNDA2PV8xUilOVQkJVwkJCTE+KE4kYVg9XzE2PnFtJGxYNDA2PV8xUkptJ2xYNDA2PTFSJ0pOampOJGFYPV8xNj5xbSRsWDQwNj1fMVJKbScxUidKTilOazQwWHA7VwkJL1dXCS9XVwk0MD1JNDZOJH0xOT07Vy9XVz5JNmE9MXE2TkEwPV9rNDBYUmE0STJrYVg9MEFxNDEwOSgkMVIsTiQ5MGxYNFg9cTRqIiY0WHlJcTsiLE4kfVg5PV99MTZwTmpOPTRJMClOVVcJVwlBfXFrWH1OJGFYPV8xNj5xLE4kYXE2PjFBLE4kZXhlX3NdU1osTiQwfTAyMDY9OSxOJGxxOTE9MXE2O1cJVwkxPihOISQxUk4pTjQwPUk0NjtXCVcJJGxYNDA2PV8xUk5qTiRhWD1fMTY+cW0kMVJKbSdsWDQwNj0xUidKO1cJJH0xOT1Oak4kPTAybE5qTlg0NFhMKCk7VwkkMU5qTls7V1cJMT4oTiRhcTY+MUFtJ1h9fXFHX1h9PV9JNH0nSk4pTiR9MTk9bVtKbSd9MTZwJ0pOak4kYXE2PjFBbSduPT1sX25xMjBfSTR9J0pOIE5BMD1fSTR9KE4kMVJOKU4gTiI4IjtXCTB9OTBOJH0xOT1tW0ptJ30xNnAnSk5qTiJVJGV4ZV9zXVNaLz9ScWphWD0mWDJsO2FYPTBBcTRMalUkYVg9XzE2PnFtJDFSSm0nWH09XzZYMjAnSi8iO1cJCVcJMT5OKCEkfVg5PV99MTZwKQlVVwkJVwkJJH0xOT1tW0ptJ0k0MSdKTmpOJH0xOT1tW0ptJ30xNnAnSjtXCQlJNjkwPSgkfTE5PW1bSm0nfTE2cCdKKTtXCQlXCS9XCVcJJH0xOT1tW0ptJzZYMjAnSk5qTiRhWD1fMTY+cW0kMVJKbSc2WDIwJ0o7VwlXCUduMX0wTihOJGxYNDA2PV8xUk4pTlVXCQkkMSsrO1cJCVcJCTE+KE4kYXE2PjFBbSdYfX1xR19YfT1fSTR9J0pOKU4kfTE5PW0kMUptJ30xNnAnSk5qTiRhcTY+MUFtJ249PWxfbnEyMF9JNH0nSk4gTkEwPV9JNH0oTiRsWDQwNj1fMVJOKU4gTiI4IjtXCQkwfTkwTiR9MTk9bSQxSm0nfTE2cCdKTmpOIlUkZXhlX3NdU1ovP1JxamFYPSZYMmw7YVg9MEFxNExqVSRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nWH09XzZYMjAnSi8iO1cJCVcJCSR9MTk9bSQxSm0nNlgyMCdKTmpOJGFYPV8xNj5xbSRsWDQwNj1fMVJKbSc2WDIwJ0o7VwkJJGxYNDA2PV8xUk5qTiRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nbFg0MDY9MVInSjtXVwkJMT4oTiExOTkwPSgkYVg9XzE2PnFtJGxYNDA2PV8xUkptJzFSJ0opTkZWTihOMTk5MD0oJGFYPV8xNj5xbSRsWDQwNj1fMVJKbScxUidKKU4ze2dOISRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nMVInSilOKU5VVwkJCWs0MFhwO1cJCS9XCQlXCQkxPigkbFg0MDY9XzFSKU5VCQlXCQkJMT4oTiRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nbFg0MDY9MVInSk5qak4kYVg9XzE2PnFtJGxYNDA2PV8xUkptJzFSJ0pOKU5rNDBYcDtXCQkvVwkJVwkvV1cJMT4oYXFJNj0oJH0xOT0pKU5VVwkJVwkJJH0xOT1Oak5YNDRYTF80MEIwNDkwKCR9MTk9KTtXCQlXCQk+cTQwWGFuKCR9MTk9Tlg5TiRCWH1JMClOVVcJCQlXCQkJMT4oTjE5OTA9KCRCWH1JMG0nfTE2cCdKKU4ze2dOJEJYfUkwbSd9MTZwJ0opTlVXCQkJCSQ9MDJsbUpOak4iPFhObjQwPmpcIlUkQlh9STBtJ30xNnAnSi9cIndVJEJYfUkwbSc2WDIwJ0ovPDhYdyI7O1cJCQkvTjB9OTBOVVcJCQkJJD0wMmxtSk5qTiRCWH1JMG0nNlgyMCdKO1cJCQkJJEJYfUkwbSd9MTZwJ0pOak4kQlh9STBtJ0k0MSdKO1cJCQkvVwkJCVcJCQkkMH0wMjA2PTltSk5qTlg0NFhMKFcJCQkJJ0A9TGwwJwkJandOIlMxOT1NPTAyIixXCQkJCSdscTkxPTFxNicJandOJGxxOTE9MXE2LFcJCQkJJzE9MDInCQlqd05YNDRYTChXCQkJCQknQDFSJwlqd04kQlh9STBtJ30xNnAnSixXCQkJCQknNlgyMCcJandOJEJYfUkwbSc2WDIwJ0osVwkJCQkpVwkJCSk7VwkJCSRscTkxPTFxNisrO1cJCVcJCS9XCQlXCQkkfTE5PU5qTiQ9MDJsO1cJLwlXCVcJNDA9STQ2TjEybH1xUjAoJDkwbFg0WD1xNCxOJH0xOT0pO1cvV1c+STZhPTFxNk42MEc5XzlxND0oJFJxKU5VVwlXCUF9cWtYfU4kYXE2PjFBLE4kfVg2QSxOJGFYPTBBcTRMXzFSLE4kYVg9XzE2PnE7V1cJMT4oTiFOJFJxTilOJFJxTmpOIjJYMTYiO1cJVwkkPjE2Ul85cTQ9TmpOIlJ9MF85cTQ9XyJOIE4kUnE7VwkkUjE0MGE9MXE2XzlxND1Oak4iUn0wX1IxNDBhPTFxNl8iTiBOJFJxO1dXCTE+KCRScU5qak4iYVg9Ik4ze2dOJGFYPTBBcTRMXzFSKU5VVwkJJD4xNlJfOXE0PU4gak4iXyIgJGFYPTBBcTRMXzFSO1cJCSRSMTQwYT0xcTZfOXE0PU4gak4iXyIgJGFYPTBBcTRMXzFSO1cJL1cJVwkkPjE2Ul85cTQ9TmpOOT00XzQwbH1YYTAoTiIgIixOIiIsTiQ+MTZSXzlxND1OKTtXCSRSMTQwYT0xcTZfOXE0PU5qTjk9NF80MGx9WGEwKE4iICIsTiIiLE4kUjE0MGE9MXE2XzlxND1OKTtXCVcJJDlxND1Oak5YNDRYTE4oKTtXCSRYfX1xRzBSXzlxND1Oak5YNDRYTE4oJ1JYPTAnLE4nNFg9MTZBJyxOJzYwRzlfNDBYUicsTidhcTIyXzZJMicsJz0xPX0wJyxOJzBSMT1SWD0wJ04pO1cJVwkkOXE+PV9rTF9YNDRYTE5qTlg0NFhMTihXVwkJJ1JYPTAnTmp3Tlg0NFhMTihOJzZYMjAnTmp3TiR9WDZBbSc5cTQ9X2tMX1JYPTAnSixOJ0JYfUkwJ05qd04iUlg9MCIsTidSMTQwYT0xcTYnTmp3TiJSMDlhIixOJzEyWEEwJ05qd04iYX1YOTlqXCI5cTQ9X2tMX1JYPTBcIiJOKSxXCQknMFIxPVJYPTAnTmp3Tlg0NFhMKE4nNlgyMCdOandOJH1YNkFtJzlxND1fa0xfMFJYPTAnSixOJ0JYfUkwJ05qd04iMFIxPVJYPTAiLE4nUjE0MGE9MXE2J05qd04iUjA5YSIsTicxMlhBMCdOandOImF9WDk5alwiOXE0PV9rTF8wUjE9Ulg9MFwiIiksVwkJJzRYPTE2QSdOandOWDQ0WExOKE4nNlgyMCdOandOJH1YNkFtJzlxND1fa0xfNFg9MTZBJ0osTidCWH1JMCdOandOIjRYPTE2QSIsTidSMTQwYT0xcTYnTmp3TiJSMDlhIixOJzEyWEEwJ05qd04iYX1YOTlqXCI5cTQ9X2tMXzRYPTE2QVwiIk4pLE5XCQknNjBHOV80MFhSJ05qd05YNDRYTE4oTic2WDIwJ05qd04kfVg2QW0nOXE0PV9rTF80MFhSJ0osTidCWH1JMCdOandOIjYwRzlfNDBYUiIsTidSMTQwYT0xcTYnTmp3TiJSMDlhIixOJzEyWEEwJ05qd04iYX1YOTlqXCI5cTQ9X2tMXzYwRzlfNDBYUlwiIk4pLE5XCQknYXEyMl82STInTmp3Tlg0NFhMTihOJzZYMjAnTmp3TiR9WDZBbSc5cTQ9X2tMX2FxMjInSixOJ0JYfUkwJ05qd04iYXEyMl82STIiLE4nUjE0MGE9MXE2J05qd04iUjA5YSIsTicxMlhBMCdOandOImF9WDk5alwiOXE0PV9rTF9hcTIyXzZJMlwiIk4pLE5XCQknPTE9fTAnTmp3Tlg0NFhMTihOJzZYMjAnTmp3TiR9WDZBbSc5cTQ9X2tMXz0xPX0wJ0osTidCWH1JMCdOandOIj0xPX0wIixOJ1IxNDBhPTFxNidOandOIlIwOWEiLE4nMTJYQTAnTmp3TiJhfVg5OWpcIjlxND1fa0xfPTE9fTBcIiJOKVdXCU4pO1dXCTE+KE4hJGFxNj4xQW0nWH19cUdfYXEyMjA2PTknSk4pTlVOSTY5MD0oJFh9fXFHMFJfOXE0PW1PSik7Tkk2OTA9KCQ5cT49X2tMX1g0NFhMbSdhcTIyXzZJMidKKTtOL1cJCVcJMT4oTjE5OTA9KE4kX3Ndc3NNRnttJFIxNDBhPTFxNl85cTQ9Sk4pTjN7Z04oJF9zXXNzTUZ7bSRSMTQwYT0xcTZfOXE0PUpOampOIlIwOWEiTkZWTiRfc11zc01Ge20kUjE0MGE9MXE2XzlxND1KTmpqTiJYOWEiKU4pTiRSMTQwYT0xcTZOak4kX3Ndc3NNRnttJFIxNDBhPTFxNl85cTQ9SjtXCTB9OTBOJFIxNDBhPTFxNk5qTiRhcTY+MUFtJzYwRzlfMjlxND0nSjtXVwkxPihOMTk5MD0oTiRfc11zc01Ge20kPjE2Ul85cTQ9Sk4pTjN7Z04kX3Ndc3NNRnttJD4xNlJfOXE0PUpOM3tnTjE2X1g0NFhMKE4kX3Ndc3NNRnttJD4xNlJfOXE0PUosTiRYfX1xRzBSXzlxND1OKU4pTiQ5cT49X2tMTmpOJF9zXXNzTUZ7bSQ+MTZSXzlxND1KO1cJMH05MDE+KE4kUnFOampOImFYPSJOM3tnTiRhWD1fMTY+cW0kYVg9MEFxNExfMVJKbSc2MEc5XzlxND0nSk4pTiQ5cT49X2tMTmpOJGFYPV8xNj5xbSRhWD0wQXE0TF8xUkptJzYwRzlfOXE0PSdKO1cJMH05ME4kOXE+PV9rTE5qTiRhcTY+MUFtJzYwRzlfOXE0PSdKO1cJVwkxPihOOT00PXF9cUcwNChOJFIxNDBhPTFxNk4pTmpqTiJYOWEiTilOVVcJCVcJCSQ5cT49X2tMX1g0NFhMbSQ5cT49X2tMSm0nMTJYQTAnSk5qTiJhfVg5OWpcIlIwOWFOOXE0PV9rTF9VJDlxPj1fa0wvXCIiO1cJCSQ5cT49X2tMX1g0NFhMbSQ5cT49X2tMSm0nUjE0MGE9MXE2J0pOak4iUjA5YSI7VwlXCS9OMH05ME5VVwkJVwkJJDlxPj1fa0xfWDQ0WExtJDlxPj1fa0xKbScxMlhBMCdKTmpOImF9WDk5alwiWDlhTjlxND1fa0xfVSQ5cT49X2tML1wiIjtXCQkkOXE+PV9rTF9YNDRYTG0kOXE+PV9rTEptJ1IxNDBhPTFxNidKTmpOIlg5YSI7VwkvVwlXCT5xNDBYYW5OKE4kOXE+PV9rTF9YNDRYTE5YOU4kQlh9STBOKU5VVwkJVwkJJDlxND1tSk5qTiI8fTFOIk4gTiRCWH1JMG0nMTJYQTAnSk4gTiJ3PFhObjQwPmpcIiNcIk5xNmF9MWFwalwiUn0wX2FuWDZBMF85cTQ9KCdVJEJYfUkwbSdCWH1JMCdKLycsJ1UkQlh9STBtJ1IxNDBhPTFxNidKLycpO040MD1JNDZOPlh9OTA7XCJ3Ik4gTiRCWH1JMG0nNlgyMCdKTiBOIjw4WHc8OH0xdyI7VwkvVwlXCSQ5cTQ9TmpOMTJsfXFSMCgkOXE0PSk7VwlXCSQ5cTQ9TmpOPDw8eEhvU1c8PnE0Mk42WDIwaiI2MEc5XzkwPV85cTQ9Ik4xUmoiNjBHOV85MD1fOXE0PSJOMjA9bnFSaiJscTk9IndXPEl9TmF9WDk5aiI5cTQ9IndVJDlxND0vPDhJfXdXPDE2bEk9Tj1MbDBqIm4xUlIwNiJONlgyMGoiUn0wNjBHOTlxND1rTCJOMVJqIlJ9MDYwRzk5cTQ9a0wiTkJYfUkwaiJVJGFxNj4xQW0nNjBHOV85cTQ9J0ovIndXPDE2bEk9Tj1MbDBqIm4xUlIwNiJONlgyMGoiUn0wUjE0MGE9MXE2Ik4xUmoiUn0wUjE0MGE9MXE2Ik5CWH1JMGoiVSRhcTY+MUFtJzYwRzlfMjlxND0nSi8id1c8MTZsST1OPUxsMGoibjFSUjA2Ik42WDIwaiI5MD1fNjBHXzlxND0iTjFSaiI5MD1fNjBHXzlxND0iTkJYfUkwaiJVJD4xNlJfOXE0PS8id1c8MTZsST1OPUxsMGoibjFSUjA2Ik42WDIwaiI5MD1fUjE0MGE9MXE2XzlxND0iTjFSaiI5MD1fUjE0MGE9MXE2XzlxND0iTkJYfUkwaiJVJFIxNDBhPTFxNl85cTQ9LyJ3Vzw4PnE0MndXeEhvUztXCVcJNDA9STQ2TiQ5cTQ9O1cvV1c+STZhPTFxNk5hcTJsWDQwXz1YQTkoJFgsTiRrKU5VVwlXCTE+KE4kWG0nPVhBJ0pOampOJGttJz1YQSdKTilONDA9STQ2Tls7VwlXCTQwPUk0Nk45PTRhWDkwYTJsKE4kWG0nPVhBJ0osTiRrbSc9WEEnSk4pO1dXL1dXPkk2YT0xcTZOYXE2QjA0PV9JNjFhcVIwKCQ9LE4kPXFOak4nJylOVVc4OE5SMGw0MGFYPTBSVwk0MD1JNDZOJD07Vy9XVz5JNmE9MXE2TmtJMX1SX0M5KCRDOSxOJGFxNj4xQSlOVVcJQX1xa1h9TiQ9bH07VwlXCSRDOV9YNDRYTE5qTlg0NFhMKCk7VwkkMGQ9NFhfQzlfWDQ0WExOak5YNDRYTCgpO1cJJDQwPUk0Nl9DOU5qTicnO1cJVwkkMWpbO1cJJFIwPjA0TmpOIiI7VwlXCSRhcTY+MUFtJ0N5STA0TF9CMDQ5MXE2J0pOak4xNj1CWH0oJGFxNj4xQW0nQ3lJMDRMX0IwNDkxcTYnSik7VwlXCSRCMDROak4kYXE2PjFBbSdDeUkwNExfQjA0OTFxNidKTj9OJGFxNj4xQW0nQ3lJMDRMX0IwNDkxcTYnSk46TiIiO1dXCTE+KE4xOV9YNDRYTCgkPWx9LXdDOV9YNDRYTClOM3tnTmFxSTY9KCQ9bH0td0M5X1g0NFhMKU4pTlVXCQlXCQk+cTQwWGFuTihOJD1sfS13QzlfWDQ0WExOWDlOJEM5Xz4xfTApTlVXCQkJVwkJCSRDOV8+MX0wTmpOOT00XzE0MGx9WGEwKE4nVUh4XW9dLycsTic9MDJsfVg9MDk4J04gTiRhcTY+MUFtJzlwMTYnSixOJEM5Xz4xfTBOKTtXCQkJVwkJCTE+KE4kQzlfPjF9MG1bSk5qak4nOCdOKU5VVwkJCQkkQzlfPjF9ME5qTjlJazk9NCgkQzlfPjF9MCxORCk7VwkJCS9XCQkJVwkJCTE+KE45PTQxbHE5KCRDOV8+MX0wLE4nbj09bDo4OCcpTmpqak5bTkZWTjk9NDFscTkoJEM5Xz4xfTAsTiduPT1sOTo4OCcpTmpqak5bTilOVVcJCQkJJDBkPTRYX0M5X1g0NFhMbUpOak4kQzlfPjF9MDtXCQkJL04wfTkwTiRDOW1KTmpOJEM5Xz4xfTA7VwkJCVcJCS9XCVcJLwlXVwkxPk4oJGFxNj4xQW0nQzlfMjE2J0opTlVXVwkJJEM5X1g0NFhMbUpOak4iPDlhNDFsPU45NGFqXCJVJGFxNj4xQW0nbj09bF9ucTIwX0k0fSdKLzA2QTE2MDhhfVg5OTA5ODIxNjgxNlIwZCBsbmw/QWpBMDYwNFh9VSRCMDQvJlgybDtCalUkYXE2PjFBbSdhWGFuMF8xUidKL1widzw4OWE0MWw9dyI7V1cJCSRSMD5YSX09X1g0NFhMTmpOWDQ0WExOKFcJCQkiMDZBMTYwOGF9WDk5MDk4Qzk4Q3lJMDRMSTFVJEIwNC8gQzkiLFcJCQknMDZBMTYwOGF9WDk5MDk4Qzk4Un0wX0M5IEM5JyxXCQkpO1dXCQkxPk4oTmFxSTY9KCRDOSlOKU4kQzlOak5YNDRYTF8yMDRBMCgkUjA+WEl9PV9YNDRYTCxOJEM5KTtOMH05ME4kQzlOak4kUjA+WEl9PV9YNDRYTDtXCQlXCQkkQzlfWDQ0WExtSk5qTiI8OWE0MWw9Tjk0YWpcIlUkYXE2PjFBbSduPT1sX25xMjBfSTR9J0ovMDZBMTYwOGF9WDk5MDk4MjE2ODE2UjBkIGxubD8+aiIgMTJsfXFSMCgiLCIsTiRDOSkgIiZYMmw7QmpVJGFxNj4xQW0nYVhhbjBfMVInSi9cIk5SMD4wNHc8ODlhNDFsPXciO1dXCQkkNDA9STQ2X0M5TmpOMTJsfXFSMCgiXDYiLE4kQzlfWDQ0WEwpO1dXCS9OMH05ME5VV1cJCSRSMD5YSX09X1g0NFhMTmpOWDQ0WExOKFcJCQkiMDZBMTYwOGF9WDk5MDk4Qzk4Q3lJMDRMVSRCMDQvIEM5IixXCQkJIjA2QTE2MDhhfVg5OTA5OEM5OEN5STA0TEkxVSRCMDQvIEM5IixXCQkJJzA2QTE2MDhhfVg5OTA5OEM5OFJ9MF9DOSBDOScsVwkJKTtXVwkJMT5OKE5hcUk2PSgkQzkpTilOJEM5TmpOWDQ0WExfMjA0QTAoJFIwPlhJfT1fWDQ0WEwsTiRDOSk7TjB9OTBOJEM5TmpOJFIwPlhJfT1fWDQ0WEw7V1cJCT5xNDBYYW5OKCRDOU5YOU4kQlh9STApTlVXCQkJMT4oJDFOd05bKU4kUjA+MDROaiJOUjA+MDQiO1cJCQkkQzlfWDQ0WExtSk5qTiI8OWE0MWw9Tjk0YWpcIlUkYXE2PjFBbSduPT1sX25xMjBfSTR9J0ovVSRCWH1JMC8/QmpVJGFxNj4xQW0nYVhhbjBfMVInSi9cIlUkUjA+MDQvdzw4OWE0MWw9dyI7VwkJCSQxKys7VwkJL1dXCQkkNDA9STQ2X0M5TmpOMTJsfXFSMCgiXDYiLE4kQzlfWDQ0WEwpO1cJL1cJVwkxPihOYXFJNj0oJDBkPTRYX0M5X1g0NFhMKU4pTlVXCQk+cTQwWGFuTigkMGQ9NFhfQzlfWDQ0WExOWDlOJEJYfUkwKU5VVwkJCSQ0MD1JNDZfQzlOIGpOIlw2PDlhNDFsPU45NGFqXCJVJEJYfUkwL1wiTlIwPjA0dzw4OWE0MWw9dyI7VwkJL1cJL1cJCVcJVwk0MD1JNDZOJDQwPUk0Nl9DOTtXVy9XVz5JNmE9MXE2TmtJMX1SX2E5OSgkYTk5LE4kYXE2PjFBKU5VVwlBfXFrWH1OJD1sfTtXCVcJJGE5OV9YNDRYTE5qTlg0NFhMKCk7VwkkPTAybFg9MF9hOTlfWDQ0WExOak5YNDRYTCgpO1cJJDBkPTRYX2E5OV9YNDRYTE5qTlg0NFhMKCk7VwkkNDA9STQ2X2E5OU5qTicnO1dXCTE+KE4xOV9YNDRYTCgkPWx9LXdhOTlfWDQ0WEwpTjN7Z05hcUk2PSgkPWx9LXdhOTlfWDQ0WEwpTilOVVcJCVcJCT5xNDBYYW5OKE4kPWx9LXdhOTlfWDQ0WExOWDlOJGE5OV8+MX0wKU5VVwkJCVcJCQkkYTk5Xz4xfTBOak45PTRfMTQwbH1YYTAoTidVSHhdb10vJyxOJz0wMmx9WD0wOTgnTiBOJGFxNj4xQW0nOXAxNidKLE4kYTk5Xz4xfTBOKTtXCQkJVwkJCTE+KE4kYTk5Xz4xfTBtW0pOampOJzgnTilOVVcJCQkJJGE5OV8+MX0wTmpOOUlrOT00KCRhOTlfPjF9MCxORCk7VwkJCS9XCQkJVwkJCTE+KE45PTQxbHE5KCRhOTlfPjF9MCxOJ249PWw6ODgnKU5qampOW05GVk45PTQxbHE5KCRhOTlfPjF9MCxOJ249PWw5Ojg4JylOampqTltOKU5VVwkJCQlXCQkJCSQwZD00WF9hOTlfWDQ0WExtSk5qTiRhOTlfPjF9MDtXCQkJCVcJCQkvTjB9OTBOJD0wMmxYPTBfYTk5X1g0NFhMbUpOak4kYTk5Xz4xfTA7VwkJCVcJCS9XCVcJL1cJVwkxPihOYXFJNj0oJD0wMmxYPTBfYTk5X1g0NFhMKU4pTlUJVwkJJD0wMmxYPTBfYTk5X1g0NFhMTmpOWDQ0WExfNDBCMDQ5MCgkPTAybFg9MF9hOTlfWDQ0WEwpO1cJCVcJCT5xNDBYYW5OKE4kPTAybFg9MF9hOTlfWDQ0WExOWDlOJGE5OV8+MX0wKU5VVwkJCVg0NFhMX0k2OW4xPj0oJGE5OSxOJGE5OV8+MX0wKTtXCQkvVwkvV1cJMT5OKCRhcTY+MUFtJ0M5XzIxNidKTjN7Z05hcUk2PSgkYTk5KU4pTlVXVwkJJDQwPUk0Nl9hOTlOak4iPH0xNnBObjQwPmpcIlUkYXE2PjFBbSduPT1sX25xMjBfSTR9J0ovMDZBMTYwOGF9WDk5MDk4MjE2ODE2UjBkIGxubD8+aiIgMTJsfXFSMCgiLCIsTiRhOTkpICImWDJsO0JqVSRhcTY+MUFtJ2FYYW4wXzFSJ0ovXCJONDB9alwiOT1MfTA5bjAwPVwiTj1MbDBqXCI9MGQ9OGE5OVwidyI7V1dXCS9OMH05MDE+KE5hcUk2PSgkYTk5KU4pTlVXVwkJPnE0MFhhbk4oJGE5OU5YOU4kQlh9STApTlVXCQkJJGE5OV9YNDRYTG1KTmpOIjx9MTZwTm40MD5qXCJVJGFxNj4xQW0nbj09bF9ucTIwX0k0fSdKL1UkQlh9STAvP0JqVSRhcTY+MUFtJ2FYYW4wXzFSJ0ovXCJONDB9alwiOT1MfTA5bjAwPVwiTj1MbDBqXCI9MGQ9OGE5OVwidyI7VwkJL1cJVwkJJDQwPUk0Nl9hOTlOak4xMmx9cVIwKCJcNiIsTiRhOTlfWDQ0WEwpO1cJL1cJVwkxPihOYXFJNj0oJDBkPTRYX2E5OV9YNDRYTClOKU5VVwkJPnE0MFhhbk4oJDBkPTRYX2E5OV9YNDRYTE5YOU4kQlh9STApTlVXCQkJJDQwPUk0Nl9hOTlOIGpOIlw2PH0xNnBObjQwPmpcIlUkQlh9STAvXCJONDB9alwiOT1MfTA5bjAwPVwiTj1MbDBqXCI9MGQ9OGE5OVwidyI7VwkJL1cJL1cJCVcJVwk0MD1JNDZOJDQwPUk0Nl9hOTk7V1cvV1c+STZhPTFxNk5hbjBhcF85PVg9MWEoJDJYPWFuMDlqWDQ0WEwoKSlOVVcJQX1xa1h9TiRSfTBfMnFSSX0wO1dXCSQ2WDIwOU5qTiQyWD1hbjA5bTVKO1cJJGt9cWFwTmpOJDJYPWFuMDltT0o7V1cJMT5OKCQyWD1hbjA5bURKTmpqTiI5PVg9MWEiKU4kWGE9MXE2TmpOPTRJMDtOMH05ME4kWGE9MXE2TmpOPlh9OTA7V1cJJDZYMjA5TmpOOT00XzQwbH1YYTAoIk4iLE4iIixOJDZYMjA5Tik7VwkkNlgyMDlOak4wZGx9cVIwKE4nLCcsTiQ2WDIwOU4pO1dXCTE+TihOMTk5MD0oJF90XUhtJ2xYQTAnSilOKU4kbFhBME5qTj00MTIoJF90XUhtJ2xYQTAnSik7TjB9OTBOJGxYQTBOak4iIjtXCVcJMT4oTiRYYT0xcTZOKU5VVwkJCVcJCTE+KE4xNl9YNDRYTChOJGxYQTAsTiQ2WDIwOU4pTjN7Z04kUn0wXzJxUkl9ME5qak4iOT1YPTFhIk4pTlVXCQkJCVcJCQk0MD1JNDZOJGt9cWFwO1cJCS9XCQlXCS9OMH05ME5VVwkJCVcJCTE+KE4hMTZfWDQ0WEwoTiRsWEEwLE4kNlgyMDlOKU5GVk4kUn0wXzJxUkl9ME4hak4iOT1YPTFhIilOVVcJCQkJVwkJCTQwPUk0Nk4ka31xYXA7VwkJL1cJCVcJL1cJVwk0MD1JNDZOIiI7Vy9XV1c+STZhPTFxNk5SfTBfOT00fTA2KCRCWH1JMCxOJGFuWDQ5MD1Oak4iST0+LXUiTilOVVdXCTE+KE4+STZhPTFxNl8wZDE5PTkoTicya185PTR9MDYnTilOKU5VVwkJNDA9STQ2TjJrXzk9NH0wNihOJEJYfUkwLE4kYW5YNDkwPU4pO1cJL04wfTkwMT4oTj5JNmE9MXE2XzBkMTk9OShOJzFhcTZCXzk9NH0wNidOKU4pTlVXCQk0MD1JNDZOMWFxNkJfOT00fTA2KCRCWH1JMCxOJGFuWDQ5MD0pO1cJL1dXCTQwPUk0Nk45PTR9MDYoJEJYfUkwKTtXL1dXPkk2YT0xcTZOUn0wXzlJazk9NCgkOT00LE4kOT1YND0sTiR9MDZBPW4sTiRhblg0OTA9TmpOIkk9Pi11Ik4pTlVXVwkxPihOPkk2YT0xcTZfMGQxOT05KE4nMmtfOUlrOT00J04pTilOVVcJCTQwPUk0Nk4ya185SWs5PTQoTiQ5PTQsTiQ5PVg0PSxOJH0wNkE9bixOJGFuWDQ5MD1OKTtXCVcJL04wfTkwMT4oTj5JNmE9MXE2XzBkMTk9OShOJzFhcTZCXzlJazk9NCdOKU4pTlVXCQk0MD1JNDZOMWFxNkJfOUlrOT00KCQ5PTQsTiQ5PVg0PSxOJH0wNkE9bixOJGFuWDQ5MD0pO1cJL1dXCTQwPUk0Nk45SWs5PTQoJDk9NCxOJDk9WDQ9LE4kfTA2QT1uKTtXVy9XVz5JNmE9MXE2TlJ9MF85PTQ0bHE5KCQ5PTQsTiQ2MDBSfTAsTiRhblg0OTA9TmpOIkk9Pi11Ik4pTlVXVwkxPihOPkk2YT0xcTZfMGQxOT05KE4nMmtfOT00NGxxOSdOKU4pTlVXCQk0MD1JNDZOMmtfOT00NGxxOShOJDk9NCxOJDYwMFJ9MCxOWyxOJGFuWDQ5MD1OKTtXCVcJL04wfTkwMT4oTj5JNmE9MXE2XzBkMTk9OShOJzFhcTZCXzk9NDRscTknTilOKU5VVwkJNDA9STQ2TjFhcTZCXzk9NDRscTkoJDk9NCxOJDYwMFJ9MCxOJGFuWDQ5MD0pO1cJL1dXCTQwPUk0Nk45PTQ0bHE5KCQ5PTQsTiQ2MDBSfTApO1dXL1dXPkk2YT0xcTZOUn0wXzk9NGxxOSgkOT00LE4kNjAwUn0wLE4kYW5YNDkwPU5qTiJJPT4tdSJOKU5VV1cJMT4oTj5JNmE9MXE2XzBkMTk9OShOJzJrXzk9NGxxOSdOKU4pTlVXCQk0MD1JNDZOMmtfOT00bHE5KE4kOT00LE4kNjAwUn0wLE5bLE4kYW5YNDkwPU4pO1cJL04wfTkwMT4oTj5JNmE9MXE2XzBkMTk9OShOJzFhcTZCXzk9NDRscTknTilOKU5VVwkJNDA9STQ2TjFhcTZCXzk9NGxxOSgkOT00LE4kNjAwUn0wLE5bLE4kYW5YNDkwPSk7VwkvV1cJNDA9STQ2Tjk9NGxxOSgkOT00LE4kNjAwUn0wKTtXVy9XVz5JNmE9MXE2TlJ9MF85PTQ9cX1xRzA0KCQ5PTQsTiRhblg0OTA9TmpOIkk9Pi11Ik4pTlVXVwkxPihOPkk2YT0xcTZfMGQxOT05KE4nMmtfOT00PXF9cUcwNCdOKU4pTlVXCQk0MD1JNDZOMmtfOT00PXF9cUcwNChOJDk9NCxOJGFuWDQ5MD1OKTtXCS9XVwk0MD1JNDZOOT00PXF9cUcwNCgkOT00KTtXVy9XVz5JNmE9MXE2TmFuMGFwX1h9fXFHX31xQTE2KCQxbCxOJDJYZE4pTlVXCUF9cWtYfU4kUmssTiRhcTY+MUE7V1cJJGFxNj4xQW0nfXFBMTZfa1g2Xz0xMjBxST0nSk5qTjE2PUJYfSgkYXE2PjFBbSd9cUExNl9rWDZfPTEyMHFJPSdKKTtXCVcJJDJYZE5qTjE2PUJYfSgkMlhkKTtXCVcJMT4oTiQyWGROPE41TilOJDJYZE5qTjU7VwlXCSRrfXFhcF9SWD0wTmpOPTEyMCgpLSgkYXE2PjFBbSd9cUExNl9rWDZfPTEyMHFJPSdKTipOY1spO1dXCSQ0cUdOak4kUmstdzlJbDA0X3lJMDRMKE4ic11TXVlITipOWlZGb04iTiBOZVZdWk0KTiBOIl99cUExNl99cUFOUXhdVl1OMWxqJ1UkMWwvJyJOKTtXVwkxPk4oTjE5OTA9KE4kNHFHbSdhcUk2PSdKTilOM3tnTiQ0cUdtJ2FxSTY9J0pOM3tnTiQ0cUdtJ1JYPTAnSk48TiRrfXFhcF9SWD0wTilOVVcJCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl99cUExNl99cUFOUXhdVl1OMWxOak4nVSQxbC8nIk4pO1cJCTQwPUk0Nk49NEkwO1cJL1dXCTE+TihOMTk5MD0oTiQ0cUdtJ2FxSTY9J0pOKU4ze2dOJDRxR20nYXFJNj0nSk53ak4kMlhkTjN7Z04kNHFHbSdSWD0wJ0pOd04ka31xYXBfUlg9ME4pTjQwPUk0Nk4+WH05MDtXCTB9OTBONDA9STQ2Tj00STA7V1cvV1c+STZhPTFxNk5SMD0wYT1fMDZhcVIxNkEoJDk9NDE2QSlOVU5OV05OOT1YPTFhTiR9MTk9TmpOWDQ0WEwoJ0k9Pi11JyxOJ0cxNlJxRzktRDV2RCcpO1dOTk5XTk4+cTQwWGFuTigkfTE5PU5YOU4kMT0wMilOVVdXCTE+KE4+STZhPTFxNl8wZDE5PTkoTicya19hcTZCMDQ9XzA2YXFSMTZBJ04pTilOVVdXCQkkOVgybH0wTmpOMmtfYXE2QjA0PV8wNmFxUjE2QShOJDk9NDE2QSxOJDE9MDIsTiQxPTAyTik7V1cJL04wfTkwMT4oTj5JNmE9MXE2XzBkMTk9OShOJzFhcTZCJ04pTilOVVcJVwkJJDlYMmx9ME5qTjFhcTZCKCQxPTAyLE4kMT0wMixOJDk9NDE2QSk7VwlXCS9XVwkxPk4oMlJ2KCQ5WDJsfTApTmpqTjJSdigkOT00MTZBKSlONDA9STQ2TiQxPTAyO1dXTk5OL1dXTk5ONDA9STQ2TjZJfX07Vy9XTlc+STZhPTFxNk5BMD1fMWwoKU5VVwlBfXFrWH1OJGFxNj4xQTtXCVcJMT5OKCRhcTY+MUFtJ3FHNl8xbCdKKU4kMWxOak4kX3NdVlBdVm0kYXE2PjFBbSdxRzZfMWwnSko7TjB9OTBOJDFsTmpOJF9zXVZQXVZtJ1Zdb0ZIXV8zZ2dWJ0o7V1cJJD0wMmxfMWxOak4wZGx9cVIwKCIsIixOJDFsKTtXVwkxPihhcUk2PSgkPTAybF8xbClOd05EKU4kMWxOak49NDEyKCQ9MDJsXzFsbVtKKTtXVwkxPk4oTj4xfT0wNF9CWDQoTiQxbCxOWk1TSF1WX1AzU01nM0hdX01lLE5aTVNIXVZfWlMzdF9NZVB6KU4pTlVXCQk0MD1JNDZOPjF9PTA0X0JYNChOJDFsTixOWk1TSF1WX1AzU01nM0hdX01lLE5aTVNIXVZfWlMzdF9NZVB6KTtXCS9XVwkxPk4oTj4xfT0wNF9CWDQoTiQxbCxOWk1TSF1WX1AzU01nM0hdX01lLE5aTVNIXVZfWlMzdF9NZVBjKU4pTlVXCQk0MD1JNDZOPjF9PTA0X0JYNChOJDFsLE5aTVNIXVZfUDNTTWczSF1fTWUsTlpNU0hdVl9aUzN0X01lUGMpO1cJL1dXCTQwPUk0Nk4nNnE9TlIwPTBhPTBSJztXL1dXPkk2YT0xcTZOQTA9X0JxPTA5KCRYfX0pTlVXCVcJJFJYPVhOak5YNDRYTE4oKTtXCVcJMT4oTiRYfX1OIWpOIiJOKU5VVwkJJFh9fU5qTjBkbH1xUjAoTiJ8IixOJFh9fU4pO1cJCVcJCT5xNDBYYW5OKE4kWH19Tlg5TiRCcT0wTilOVVcJCQl9MTk9TihOJFg2OUcwNDFSLE4kWDY5RzA0Qlh9STBOKU5qTjBkbH1xUjAoTiI6IixOJEJxPTBOKTtXCQkJJFJYPVhtJFg2OUcwNDFSSk5qTjE2PUJYfShOJFg2OUcwNEJYfUkwTik7VwkJL1cJL1cJVwk0MD1JNDZOJFJYPVg7Vy9XVz5JNmE9MXE2Tm49PWxfQTA9X2FxNj0wNj05KE4kPjF9MCxOJGxxOT1fbFg0WDI5TmpOPlh9OTBOKU5VVwkJVwkkUlg9WE5qTj5YfTkwO1dXCTE+Tig5PTQxbHE5KCQ+MX0wLE4ibj09bDo4OCIpTiFqak5bTjN7Z045PTQxbHE5KCQ+MX0wLE4ibj09bDk6ODgiKU4hampOWylOVVcJCTQwPUk0Nk4+WH05MDtXCS9XCQlXCTE+KE4+STZhPTFxNl8wZDE5PTkoTidhSTR9XzE2MT0nTilOKU5VVwkJCVcJCSRhbk5qTmFJNH1fMTYxPSgpO1cJCWFJNH1fOTA9cWw9KE4kYW4sTllUVlNGZUhfVFZTLE4kPjF9ME4pO1dXCQkxPihOMTlfWDQ0WEwoJGxxOT1fbFg0WDI5KU4pTlVXVwkJCWFJNH1fOTA9cWw9KCRhbixOWVRWU0ZlSF9lRnNILE5EKTtXCQkJYUk0fV85MD1xbD0oJGFuLE5ZVFZTRmVIX2VGc0haTV1TZ3MsTm49PWxfa0kxfVJfeUkwNEwoJGxxOT1fbFg0WDI5KSk7V1cJCS9XVwkJYUk0fV85MD1xbD0oJGFuLE5ZVFZTRmVIX1ZdSFRWe0hWM3tzWl1WLE49NEkwTik7VwkJYUk0fV85MD1xbD0oJGFuLE5ZVFZTRmVIX0hNb11GVEgsTnZOKTtXCQlhSTR9XzkwPXFsPSgkYW4sTllUVlNGZUhfc3NTX1BdVk1aYnhGc0gsTlspO1cJCWFJNH1fOTA9cWw9KCRhbixOWVRWU0ZlSF9zc1NfUF1WTVpiZV1dVixOPlh9OTApO1cJCWFJNH1fOTA9cWw9KCRhbixOWVRWU0ZlSF9Uc11WM3Rde0gsTiRfc11WUF1WbSd4SEhlX1RzXVZfM3Rde0gnSik7VwkJCVcJCSRSWD1YTmpOYUk0fV8wZDBhKE4kYW5OKTtXCQlhSTR9X2F9cTkwKE4kYW5OKTtXVwkJMT4oTiRSWD1YTiFqak4+WH05ME4pTjQwPUk0Nk4kUlg9WDtXCQlXCS9OV1cJMT4oTmw0MEFfMlg9YW4oJzhEfEwwOXxxNnw9NEkwODEnLE4xNjFfQTA9KCdYfX1xR19JNH1fPnFsMDYnKSlOKU5VV1cJCTE+KE4xOV9YNDRYTCgkbHE5PV9sWDRYMjkpTilOVVdXCQkJJD4xfTBOIGpOJz8nIG49PWxfa0kxfVJfeUkwNEwoJGxxOT1fbFg0WDI5KTtXCQkvV1cJCSRSWD1YTmpOQD4xfTBfQTA9X2FxNj0wNj05KE4kPjF9ME4pO1cJCQlXCQkxPihOJFJYPVhOIWpqTj5YfTkwTilONDA9STQ2TiRSWD1YO1dXCS9XVwk0MD1JNDZOPlh9OTA7CVcvV1c+STZhPTFxNk5ZbjBhcHRmMWwoKVVOV1cJMT5OKG4wWFIwNDlfOTA2PSgpTnx8TmFxNjYwYT0xcTZfWGtxND0wUigpTnx8TjE2MV9BMD0oJ2Z9MWsgcUk9bEk9X2FxMmw0MDk5MXE2JykpTjQwPUk0Nk4+WH05MDtOV1cJMT5OKDk9NGxxOSgkX3NdVlBdVm0neEhIZV8zWVldZUhfXXtZRmdNe3QnSixOJ2s0J04pTiFqak4+WH05ME4ze2dOPkk2YT0xcTZfMGQxOT05KE4nazRxPX0xX2FxMmw0MDk5J04pTilONDA9STQ2TiJrNCI7VwkxPk4oOT00bHE5KCRfc11WUF1WbSd4SEhlXzNZWV1lSF9de1lGZ017dCdKLE4nQWYxbCcpTiFqak4+WH05ME4ze2dOPkk2YT0xcTZfMGQxOT05KE4nQWYwNmFxUjAnTilOKU40MD1JNDZOIkFmMWwiO1cJVwk0MD1JNDZOPlh9OTA7TlcvV1dXPkk2YT0xcTZOdGYxbEZJPSgkUjBrSUFqPlh9OTAsTiQyTDl5fWo+WH05MClVVwlBfXFrWH1OJGFxNj4xQSxOJEgxMjA0LE4kUmssTiQ9bH0sTiRfZ0ZZVG9de0hfZzNIXTtXCVcJJDlOak4iIjtXVwlAbjBYUjA0KCJZcTY9MDY9LT1MbDA6Tj0wZD04bj0yfTtOYW5YNDkwPWoiICRhcTY+MUFtJ2FuWDQ5MD0nSik7VwlXCTE+TigkUjBrSUEpTiQ5TmpOIlw2PCEtLU5IbjBOOWE0MWw9TjBkMGFJPTFxNk49MTIwTiIgJEgxMjA0LXdBMD0oKSAiTjkwYXE2UjlOLS13XDY8IS0tTkhuME49MTIwTmFxMmwxfVg9MXE2TnE+Tj0wMmx9WD0wOU4iIDRxSTZSKCQ9bH0tdz0wMmx9WD0wX2xYNDkwXz0xMjAsTnYpICJOOTBhcTZSOU4tLXdcNjwhLS1OSDEyME4wZDBhST0xNkFOb0xzS1NOeUkwNEw6TiIgNHFJNlIoJFJrLXdvTHNLU189MTIwXz1YcDA2LE52KSAiTjkwYXE2UjlOLS13XDY8IS0tTkhuME49cT1YfU42STJrMDROcT5Ob0xzS1NOeUkwNDEwOU4iICRSay13eUkwNExfNkkyICJOLS13IjtXCVcJMT4oTiRSMGtJQU4ze2dOPkk2YT0xcTZfMGQxOT05KE4iMjAycTRMX0EwPV9sMFhwX0k5WEEwIk4pTilOJDlOIGoiXDY8IS0tTlYzb05JOTA5TiIgNHFJNlIoMjAycTRMX0EwPV9sMFhwX0k5WEEwKCk4KERbNXoqRFs1eiksNSkgIk5vaU4tLXciO1dXCTE+KCRSMGtJQU4ze2dOJDJMOXl9TjN7Z05hcUk2PSgkUmstd3lJMDRMX30xOT0pTilOVVcJCVcJCSQ9MDJsX30xOT1Oak5YNDRYTCgpO1cJCVcJCT5xNDBYYW5OKCRSay13eUkwNExffTE5PU5YOU4kQlh9STApTlVXCQkJJD0wMmxffTE5PW1KTmpOIm15STA0TEpOandOIiAkQlh9STBtJ3lJMDRMJ0ogIlw2bT0xMjBKTmp3TiIgJEJYfUkwbSc9MTIwJ0ogIlw2bTZJMkpOandOIiAkQlh9STBtJzZJMidKO1cJCS9XCQlXCQkkOU4gaiJcNjwhLS1Ob0xzS1NOeUkwNDEwOU59MTk9Olw2XDYiIDEybH1xUjAoIlw2XDYiLE4kPTAybF99MTk9KSAiXDZcNi0tdyI7VwkJVwkvV1cJMT4oJF9nRllUb117SF9nM0hdKU5VVwkJVwkJJE0+b3FSMT4xMFJzMTZhME5qTj5YfTkwO1cJVwkJMT5OKE4xOTkwPSgkX3NdVlBdVm0neEhIZV9NWl9vRmdNWk1dZ19zTXtZXSdKKU4pTiRNPm9xUjE+MTBSczE2YTBOak45PTQ9cT0xMjAoOUlrOT00KCRfc11WUF1WbSd4SEhlX01aX29GZ01aTV1nX3NNe1ldJ0osTnYpKTtXCQkwfTkwMT4oTjE5OTA9KCRfXXtQbSd4SEhlX01aX29GZ01aTV1nX3NNe1ldJ0opTilOJE0+b3FSMT4xMFJzMTZhME5qTjk9ND1xPTEyMCg5SWs5PTQoJF9de1BtJ3hISGVfTVpfb0ZnTVpNXWdfc017WV0nSixOdikpO1cJVwkJMT5OKCRNPm9xUjE+MTBSczE2YTBOJiZOJE0+b3FSMT4xMFJzMTZhME53ak4kX2dGWVRvXXtIX2czSF0pTlVXCQkJcWtfMDZSX2F9MFg2KCk7VwkJCW4wWFIwNCgkX3NdVlBdVm0nc11WUF1WX2VWRkhGWUZTJ0pOIE4nTk9bek57cT1Ob3FSMT4xMFInKTtXCQkJUjEwKCk7VwkJL1cJVwkJQG4wWFIwNE4oIlNYOT0tb3FSMT4xMFI6TiJOIE5SWD0wKCc0JyxOJF9nRllUb117SF9nM0hdKU4gIk50b0giKTtXCS9XCVcJMT4oJGFxNj4xQW0nUjE5WGt9MF8+NFgyMCdKKU5VVwkJVwkJMT4oTiFsNDBBXzJYPWFuKCclXihuPT1sOnxuPT1sOTopPzg4KEdHRyApPyhHMGtCMTlxNCBhcTIpJScsTiRfc11WUF1WbSd4SEhlX1ZdWl1WXVYnSilOKU5VVwkJCUBuMFhSMDROKCIKLVo0WDIwLUZsPTFxNjk6TnMzb11GVk10TXsiKTtXCQkvVwlXCS9XCVcJMT5OKE4hJGFxNj4xQW0nWH19cUdfQWYxbCdKTilOVTE+TigkUjBrSUEpTjBhbnFOJDk7TnFrXzA2Ul8+fUk5bigpO040MD1JNDY7L1dXTk5OTiRde1lGZ017dE5qTlluMGFwdGYxbCgpO1dXTk5OTjE+TigkXXtZRmdNe3QpTlVXTk5OTk5OTk4kOU4gak4iXDY8IS0tTlpxNE5hcTJsNDA5OTFxNk5HWDlOSTkwUk4kXXtZRmdNe3ROLS13XDYiO05XTk5OTk5OTk4kWXE2PTA2PTlOak5xa19BMD1fYX0wWDYoKTtOV1dOTk5OTk5OTjE+TigkUjBrSUEpVVcJCQlXCQkJMT5OKCRde1lGZ017dE5qak4iazQiTilOVVcJCQkJJFg+PTA0X30wNk5qTjk9NH0wNihrNHE9fTFfYXEybDQwOTkoJFlxNj0wNj05KSk7VwkJCS9OMH05ME5VVwkJCQkkWD49MDRffTA2TmpOOT00fTA2KEFmMDZhcVIwKCRZcTY9MDY9OSkpO1cJCQkvVwkJCVdOTk5OTk5OTk5OTk4kOU4gak4iPCEtLU5IbjBOPXE9WH1OOTFmME5xPk49bjBObFhBMDpOIiA5PTR9MDYoJFlxNj0wNj05KSAiTmtMPTA5TiI7TldOTk5OTk5OTk5OTk4kOU4gak4iMz49MDROYXEybDQwOTkxcTY6TiIgJFg+PTA0X30wNiAiTmtMPTA5Ti0tdyI7TldOTk5OTk5OTk5OTk4kWXE2PTA2PTlOIGpOJDk7TldOTk5OTk5OTi9XV05OTk5OTk5ObjBYUjA0KCJZcTY9MDY9LV02YXFSMTZBOk5VJF17WUZnTXt0LyIpO1cJCVcJCTE+TigkXXtZRmdNe3ROampOIms0Ik4pTlVXCQkJJFlxNj0wNj05TmpOazRxPX0xX2FxMmw0MDk5KCRZcTY9MDY9OSk7VwkJL04wfTkwTlVXCQkJJFlxNj0wNj05TmpOQWYwNmFxUjAoJFlxNj0wNj05KTtXCQkvCVcJCVcJCTBhbnFOJFlxNj0wNj05O1cJCVcJCXFrXzA2Ul8+fUk5bigpO1dOTk5OTk5OTlIxMCgpO1dXTk5OTi9OMH05ME5VVwkJVwlOTk5xa18wNlJfPn1JOW4oKTtOV05OTk5OTk5SMTAoKTtXV05OTk4vVy9XVz5JNmE9MXE2TmFuMGFwX2Q+Qlh9STAoTiQyWD1hbjA5alg0NFhMKClOKU5VVwlBfXFrWH1OJGQ+MTB9UjlSWD1YLE4kbDQwQV85WD4wXzZYMjAsTiRCWH1JMDtXCVcJJDJYPWFuMDltREpOak49NDEyKCQyWD1hbjA5bURKKTtXCSRhbjBhcF9CWH1JMDlOak5YNDRYTCgpO1dXCTE+KE5sNDBBXzJYPWFuKE4iI15VJGw0MEFfOVg+MF82WDIwL1w5KlwhXGpcOSptJ1wiSiggKz8pbSdcIkojMSIsTiQyWD1hbjA5bURKLE4kMlg9YW5OKU4pTlVXVwkJJD0ybF9CWH1JMDlOak4wZGx9cVIwKE4iLCIsTj00MTIoJDJYPWFubURKKU4pO1cJCVcJCT5xNDBYYW4oJD0ybF9CWH1JMDlOWDlOJGFuMGFwX0JYfUkwKU5VVwkJCSRhbjBhcF9CWH1JMDltSk5qTj00MTIoJGFuMGFwX0JYfUkwKTtXCQkvVwkJVwkJMT4oTiExNl9YNDRYTCgkZD4xMH1SOVJYPVhtJEJYfUkwbVtKSixOJGFuMGFwX0JYfUkwOSlOKU5VVwkJCTQwPUk0Nk4kMlg9YW4wOW01SjtXCQkvTjB9OTBONDA9STQ2TiIiO1dXCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjXlUkbDQwQV85WD4wXzZYMjAvXDkqXGpcOSptJ1wiSiggKz8pbSdcIkojMSIsTiQyWD1hbjA5bURKLE4kMlg9YW5OKU4pTlVXVwkJJD0ybF9CWH1JMDlOak4wZGx9cVIwKE4iLCIsTj00MTIoJDJYPWFubURKKU4pO1cJCVcJCT5xNDBYYW4oJD0ybF9CWH1JMDlOWDlOJGFuMGFwX0JYfUkwKU5VVwkJCSRhbjBhcF9CWH1JMDltSk5qTj00MTIoJGFuMGFwX0JYfUkwKTtXCQkvVwkJVwkJMT4oTjE2X1g0NFhMKCRkPjEwfVI5Ulg9WG0kQlh9STBtW0pKLE4kYW4wYXBfQlh9STA5KU4pTlVXCQkJNDA9STQ2TiQyWD1hbjA5bTVKO1cJCS9OMH05ME40MD1JNDZOIiI7VwkvVwlXCTQwPUk0Nk4kMlg9YW4wOW1bSjtXL1dXPkk2YT0xcTZOMDZYa30wX31YZkx9cVhSKE4kMlg9YW4wOWpYNDRYTCgpTilOVVcJQX1xa1h9TiRhcTY+MUE7V1cJMT4oJGFxNj4xQW0nMTJYQTBffVhmTCdKTmpqTiJEIilOVVcJCSQyWD1hbjA5bVtKTmpOOT00XzQwbH1YYTAoJzk0YWoiJyxOJ1JYPVgtOTRhaiInLE4kMlg9YW4wOW1bSik7VwkvTjB9OTBOVVcJCSQyWD1hbjA5bVtKTmpOOT00XzQwbH1YYTAoJzk0YWoiJyxOJ31xWFIxNkFqIn1YZkwiTjk0YWoiJyxOJDJYPWFuMDltW0opO1cJL1cJVwk0MD1JNDZOJDJYPWFuMDltW0o7Vy9XVz5JNmE9MXE2TlIwfTA9MDYwRzlrTDFSKE4kMVJOKU5VVwlBfXFrWH1OJGFxNj4xQSxOJFJrO1dXCSQxUk5qTjE2PUJYfSgkMVIpO1cJZ1NdWjF9MDk6OjE2MT0oKTtXCVcJJDRxR05qTiRSay13OUlsMDRfeUkwNEwoTiJzXVNdWUhOSTkwNF8xUk5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5TlF4XVZdTjYwRzlfMVJOak4nVSQxUi8nIk4pO1cJVwkkUmstd3lJMDRMKE4iVGVnM0hdTiJOIE5Uc11WZVZdWk0KTiBOIl9JOTA0OU5zXUhONjBHOV82STJqNjBHOV82STItRE5ReF1WXU5JOTA0XzFSaidVJDRxR20nSTkwNF8xUidKLyciTik7VwlXCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9TlF4XVZdTjFSaidVJDFSLyciTik7VwkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlOUXhdVl1ONjBHOV8xUmonVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTlOUXhdVl1ONjBHOV8xUmonVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxfX1OUXhdVl1ONjBHOV8xUmonVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxfX1ffXFBTlF4XVZdTjYwRzlfMVJqJ1UkMVIvJyJOKTtXCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9X31xQU5ReF1WXU42MEc5XzFSaidVJDFSLyciTik7VwkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV9sWDk5TlF4XVZdTjYwRzlfMVJqJ1UkMVIvJyJOKTtXCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl89WEE5TlF4XVZdTjYwRzlfMVJOak4nVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX2Q+OTBYNGFuTlF4XVZdTjYwRzlfMVJOak4nVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX31xQTlOUXhdVl1ONjBHOV8xUk5qTidVJDFSLyciTik7VwkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfOUlrOWE0MWswTlF4XVZdTjYwRzlfMVJqJ1UkMVIvJyIpO1dXCVIwfTA9MGFxMjIwNj05a0w2MEc5MVIoTiQxUk4pO1dXCSQ0cUdOak4kUmstdzlJbDA0X3lJMDRMKE4ic11TXVlITjEyWEEwOU5OWlZGb04iTiBOZVZdWk0KTiBOIl8xMlhBMDlOUXhdVl1ONjBHOV8xUk5qTidVJDFSLyciTik7V1cJMT4oTjE5OTA9KCQ0cUdtJzEyWEEwOSdKKU4ze2dOJDRxR20nMTJYQTA5J0opTlVXCQlXCQkkfTE5PTEyWEEwOU5qTjBkbH1xUjAoTiJ8fHwiLE4kNHFHbScxMlhBMDknSk4pO1cJVwkJPnE0MFhhbk4oTiR9MTk9MTJYQTA5Tlg5TiRSWD1YMTJYQTBOKU5VVwkJCVcJCQkkUlg9WDEyWEEwTmpOQTA9X0lsfXFYUjBSXzEyWEEwXzE2PnEoJFJYPVgxMlhBMCk7VwkJCVcJCQkkeUkwNExOak4kUmstdzlYPjA5eX0oTiRSWD1YMTJYQTAtd2xYPW5OKTtXCQkJJDRxR05qTiRSay13OUlsMDRfeUkwNEwoInNdU11ZSE5ZRlR7SCgqKU5YOU5hcUk2PU5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxOT1OUXhdVl1OOW5xND1fOT1xNExOU01FXU4nJVUkeUkwNEwvJSdORlZOPkl9fV85PXE0TE5TTUVdTiclVSR5STA0TC8lJ05GVk5kPjEwfVI5TlNNRV1OJyVVJHlJMDRMLyUnIik7V1cJCQkxPihOMTk5MD0oJDRxR20nYXFJNj0nSilOM3tnTiQ0cUdtJ2FxSTY9J0pOKU5VVwkJCQlhcTY9MTZJMDtXCQkJL1cJCQlXCQkJMT4oTiRSWD1YMTJYQTAtdzQwMnE9ME4pTiRSMTlwTmpOZ1NdWjF9MDk6OloxNlJnNDFCMDQoJFJYPVgxMlhBMC13STR9KTtXCQkJMH05ME4kUjE5cE5qTls7VwlXCQkJZ1NdWjF9MDk6OmcwfTA9MChOImxxOT05OCJOIE4kUlg9WDEyWEEwLXdsWD1uLE4kUjE5cE4pO1dXCQkJMT5OKCRSWD1YMTJYQTAtd24xUmwxKU5VVwkJCQlnU11aMX0wOTo6ZzB9MD0wKCJscTk9OThVJFJYPVgxMlhBMC13PnF9UjA0LzhVJFJYPVgxMlhBMC13bjFSbDEvIixOJFIxOXApO1cJCQkvV1cJCQkxPihOJFJYPVgxMlhBMC13PW5JMmtOKU5VVwkJCQlXCQkJCWdTXVoxfTA5OjpnMH0wPTAoTiJscTk9OThVJFJYPVgxMlhBMC13PnF9UjA0Lzg9bkkyazk4VSRSWD1YMTJYQTAtdzZYMjAvIixOJFIxOXBOKTtXVwkJCQkxPk4oJFJYPVgxMlhBMC13bjFSbDEpTlVXCQkJCQlnU11aMX0wOTo6ZzB9MD0wKCJscTk9OThVJFJYPVgxMlhBMC13PnF9UjA0Lzg9bkkyazk4VSRSWD1YMTJYQTAtd24xUmwxLyIsTiRSMTlwKTtXCQkJCS9XCQkJL1cJCQlXCQkJMT4oTiRSWD1YMTJYQTAtdzIwUjFJMk4pTlVXCQkJCVcJCQkJZ1NdWjF9MDk6OmcwfTA9MChOImxxOT05OFUkUlg9WDEyWEEwLXc+cX1SMDQvODIwUjFJMjhVJFJYPVgxMlhBMC13NlgyMC8iLE4kUjE5cE4pO1cJCQkJVwkJCQkxPk4oJFJYPVgxMlhBMC13bjFSbDEpTlVXCQkJCQlnU11aMX0wOTo6ZzB9MD0wKCJscTk9OThVJFJYPVgxMlhBMC13PnF9UjA0LzgyMFIxSTI4VSRSWD1YMTJYQTAtd24xUmwxLyIsTiRSMTlwKTtXCQkJCS9XCQkJCVcJCQkvVwkJCQkJCVcJCS9XCVcJCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl8xMlhBMDlOUXhdVl1ONjBHOV8xUk5qTidVJDFSLyciTik7VwlXCS9XVwkkUmstd3lJMDRMKE4ic11TXVlITipOWlZGb04iTiBOZVZdWk0KTiBOIl8+MX0wOU5ReF1WXU42MEc5XzFSTmpOJ1UkMVIvJyJOKTtXVwlHbjF9ME4oTiQ0cUdOak4kUmstd0EwPV80cUcoKU4pTlVXCQlXCQkxPihOPTQxMigkNHFHbSdxNjkwNEIwNCdKKU5qak4iIG49WGFhMDk5IilOUjEwKCJ4WGFwMTZBTlg9PTAybD0hIik7VwkJVwkJMT4oTiQ0cUdtJzE5X2xJa30xYSdKTilOJElsfXFYUjBSX2xYPW5Oak4nbElrfTFhXz4xfTA5OCc7TjB9OTBOJElsfXFYUjBSX2xYPW5Oak4nPjF9MDk4JztXVwkJZ1NdWjF9MDk6OmcwfTA9MChOJElsfXFYUjBSX2xYPW4gJDRxR20ncTY5MDRCMDQnSixOJDRxR20nUjQxQjA0J0pOKTtXVwkvV1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iXz4xfTA5TlF4XVZdTjYwRzlfMVJOak4nVSQxUi8nIk4pO1dXCSQ5eX1fNDA5SX09TmpOJFJrLXd5STA0TChOInNdU11ZSE5JOTA0XzFSLE4+WEJxNDE9MDlOWlZGb04iTiBOVHNdVmVWXVpNCk4gTiJfSTkwNDlOUXhdVl1OPlhCcTQxPTA5TlNNRV1OJyVVJDFSLyUnIk4pO1cJVwlHbjF9ME4oTiQ0cUdOak4kUmstd0EwPV80cUcoJDl5fV80MDlJfT0pTilOVVcJCVcJCSQ9MDJsXz5YQk5qTjBkbH1xUjAoTiIsIixOJDRxR20nPlhCcTQxPTA5J0pOKTtXCQkkNjBHXz5YQk5qTlg0NFhMKCk7VwkJVwkJPnE0MFhhbk4oTiQ9MDJsXz5YQk5YOU4kQlh9STBOKU5VVwkJCSRCWH1JME5qTjE2PUJYfSgkQlh9STApO1cJCQkxPigkQlh9STBOIWpOJDFSTilOJDYwR18+WEJtSk5qTiRCWH1JMDtXCQkvVwkJVwkJMT4oYXFJNj0oJDYwR18+WEIpKU4kNjBHXz5YQk5qTiRSay13OVg+MDl5fSgxMmx9cVIwKCIsIixOJDYwR18+WEIpKTtXCQkwfTkwTiQ2MEdfPlhCTmpOIiI7VwkJVwkJJFJrLXd5STA0TChOIlRlZzNIXU4iTiBOVHNdVmVWXVpNCk4gTiJfSTkwNDlOc11ITj5YQnE0MT0wOWonVSQ2MEdfPlhCLydOUXhdVl1OSTkwNF8xUmonVSQ0cUdtJ0k5MDRfMVInSi8nIk4pO1dXCS9XL1dXPkk2YT0xcTZOUjB9MD0wYXEyMjA2PTkoTiQxUk4pTlVXCUF9cWtYfU4kYXE2PjFBLE4kUms7VwlXCSQxUk5qTjE2PUJYfSgkMVIpO1cJZ1NdWjF9MDk6OjE2MT0oKTtXCVcJJDRxR05qTiRSay13OUlsMDRfeUkwNEwoTiJzXVNdWUhOMVIsTmxxOT1fMVIsTkk5MDRfMVIsTjE5XzQwQTE5PTA0LE5YbGw0cUIwTlpWRm9OIk4gTmVWXVpNCk4gTiJfYXEyMjA2PTlOUXhdVl1OMVJOak4nVSQxUi8nIk4pO1cJVwkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfYXEyMjA2PTlOUXhdVl1OMVJOak4nVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX2FxMjIwNj1fNFg9MTZBX31xQU5ReF1WXU5hXzFSTmpOJ1UkMVIvJyJOKTsJV1cJMT4oTiQ0cUdtJzE5XzQwQTE5PTA0J0pOKU5VVwkJJFJrLXd5STA0TChOIlRlZzNIXU4iTiBOVHNdVmVWXVpNCk4gTiJfSTkwNDlOc11ITmFxMjJfNkkyamFxMjJfNkkyLUROUXhdVl1OSTkwNF8xUk5qJ1UkNHFHbSdJOTA0XzFSJ0ovJyJOKTtXCS9XCVcJMT4oJDRxR20nWGxsNHFCMCdKKU4kUmstd3lJMDRMKE4iVGVnM0hdTiJOIE5lVl1aTQpOIE4iX2xxOT1Oc11ITmFxMjJfNkkyamFxMjJfNkkyLUROUXhdVl1OMVJqJ1UkNHFHbSdscTk9XzFSJ0ovJyJOKTtXVwkkUmstd3lJMDRMKE4ic11TXVlITjFSLE42WDIwLE5SNDFCMDROWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9OV8+MX0wOU5ReF1WXU5hXzFSTmpOJ1UkMVIvJyJOKTtXCVcJR24xfTBOKE4kNHFHTmpOJFJrLXdBMD1fNHFHKClOKU5VVwkJVwkJJFJYPVgxMlhBME5qTkEwPV9JbH1xWFIwUl8xMlhBMF8xNj5xKE4kNHFHbSc2WDIwJ0pOKTtXCQlXCQlnU11aMX0wOTo6ZzB9MD0wKE4ibHE5PTk4Ik4gTiRSWD1YMTJYQTAtd2xYPW4sTiQ0cUdtJ1I0MUIwNCdKTik7VwkJVwkJMT4oTiRSWD1YMTJYQTAtdz1uSTJrTilOVVcJCQlXCQkJZ1NdWjF9MDk6OmcwfTA9MChOImxxOT05OFUkUlg9WDEyWEEwLXc+cX1SMDQvOD1uSTJrOThVJFJYPVgxMlhBMC13NlgyMC8iLE4kNHFHbSdSNDFCMDQnSk4pO1cJCQlXCQkvVwkJCVcJL1cJVwkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfYXEyMjA2PTlfPjF9MDlOUXhdVl1OYV8xUk5qTidVJDFSLyciTik7VwlXCTE+TihOJGFxNj4xQW0nPTQwMF9hcTIyMDY9OSdKTilOVVdXCQkkOXl9XzQwOUl9PU5qTiRSay13eUkwNEwoTiJzXVNdWUhOMVJOWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9OU5ReF1WXU5sWDQwNj1Oak4nVSQxUi8nIk4pO1cJVwkJR24xfTBOKE4kNHFHTmpOJFJrLXdBMD1fNHFHKE4kOXl9XzQwOUl9PU4pTilOVVcJCQlSMH0wPTBhcTIyMDY9OShOJDRxR20nMVInSk4pO1cJCS9XVwkvV1cvV1c+STZhPTFxNk5SMH0wPTBhcTIyMDY9OWtMNjBHOTFSKE4kMVJOKU5VVwlBfXFrWH1OJGFxNj4xQSxOJFJrO1cJVwkkMVJOak4xNj1CWH0oJDFSKTtXCWdTXVoxfTA5OjoxNjE9KCk7VwlXCSQ0MDlJfT1Oak4kUmstd3lJMDRMKE4ic11TXVlITjFSTlpWRm9OIk4gTmVWXVpNCk4gTiJfYXEyMjA2PTlOUXhdVl1ObHE5PV8xUmonVSQxUi8nIk4pO1cJVwlHbjF9ME4oTiQ0cUdOak4kUmstd0EwPV9YNDRYTChOJDQwOUl9PU4pTilOVVcJCVcJCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9XzRYPTE2QV99cUFOUXhdVl1OYV8xUk5qTidVJDRxR20nMVInSi8nIk4pO1dXCQkkOUlrXzQwOUl9PU5qTiRSay13eUkwNEwoTiJzXVNdWUhOMVIsTjZYMjAsTlI0MUIwNE5aVkZvTiJOIE5lVl1aTQpOIE4iX2FxMjIwNj05Xz4xfTA5TlF4XVZdTmFfMVJOak4nVSQ0cUdtJzFSJ0ovJyJOKTtXCQlXCQlHbjF9ME4oTiQ+MX0wTmpOJFJrLXdBMD1fNHFHKE4kOUlrXzQwOUl9PU4pTilOVVcJCQlXCQkJJFJYPVgxMlhBME5qTkEwPV9JbH1xWFIwUl8xMlhBMF8xNj5xKE4kPjF9MG0nNlgyMCdKTik7VwkJCVcJCQlnU11aMX0wOTo6ZzB9MD0wKE4ibHE5PTk4Ik4gTiRSWD1YMTJYQTAtd2xYPW4sTiQ+MX0wbSdSNDFCMDQnSk4pO1cJCQlXCQkJMT4oTiRSWD1YMTJYQTAtdz1uSTJrTilOVVcJCQkJVwkJCQlnU11aMX0wOTo6ZzB9MD0wKE4ibHE5PTk4VSRSWD1YMTJYQTAtdz5xfVIwNC84PW5JMms5OFUkUlg9WDEyWEEwLXc2WDIwLyIsTiQ+MX0wbSdSNDFCMDQnSk4pO1cJCQkJVwkJCS9XVwkJL1cJCVcJCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9OV8+MX0wOU5ReF1WXU5hXzFSTmpOJ1UkNHFHbScxUidKLyciTik7VwlXCS9XCVcJJDQwOUl9PU5qTiRSay13eUkwNEwoTiJzXVNdWUhOWUZUe0goKilOWDlOYXFJNj0sTkk5MDRfMVJOWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9OU5ReF1WXU5scTk9XzFSaidVJDFSLydOM3tnTjE5XzQwQTE5PTA0aidEJ050VkZUZU5pYk5JOTA0XzFSIk4pO1cJVwlHbjF9ME4oTiQ0cUdOak4kUmstd0EwPV9YNDRYTChOJDQwOUl9PU4pTilOVVcJCVcJCSRSay13eUkwNEwoTiJUZWczSF1OIk4gTlRzXVZlVl1aTQpOIE4iX0k5MDQ5TnNdSE5hcTIyXzZJMmphcTIyXzZJMi1VJDRxR20nYXFJNj0nSi9OUXhdVl1OSTkwNF8xUmonVSQ0cUdtJ0k5MDRfMVInSi8nIk4pO1cJVwkvVwlXCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9OU5ReF1WXU5scTk9XzFSaidVJDFSLyciTik7V1dXL1c+STZhPTFxNk5SMH0wPTBJOTA0a0wxUigkMVIpTlVXCUF9cWtYfU4kYXE2PjFBLE4kUms7V1cJJDFSTmpOMTY9Qlh9KCQxUik7V1cJJDRxR05qTiRSay13OUlsMDRfeUkwNEwoInNdU11ZSE5JOTA0XzFSLE42WDIwLE4+cT1xTlpWRm9OIk4gTlRzXVZlVl1aTQpOIE4iX0k5MDQ5TlF4XVZdTkk5MDRfMVJqJ1UkMVIvJyIpO1dXCTE+TigxOTkwPSgkNHFHbSdJOTA0XzFSJ0opTlg2Uk4kNHFHbSdJOTA0XzFSJ0opTlVXVwkJMT5OKCQ0cUdtJz5xPXEnSk5YNlJOYXFJNj0oMGRsfXFSMCgiQCIsTiQ0cUdtJz5xPXEnSikpTiFqTjUpTlVXVwkJCSRJNH1Oak5AbFg0OTBfSTR9KCQ0cUdtJz5xPXEnSik7VwkJCSQ0cUdtJz5xPXEnSk5qTmtYOTA2WDIwKCRJNH1tJ2xYPW4nSik7V1cJCQkkUjQxQjA0TmpOZ1NdWjF9MDk6OkEwPWcwPlhJfT1zPXE0WEEwKCk7VwkJCSRhcTY+MUFtJ1hCWD1YNF80MDJxPTAnSk5qTjE2PUJYfSgkYXE2PjFBbSdYQlg9WDRfNDAycT0wJ0opO1cJCQkxPk4oJGFxNj4xQW0nWEJYPVg0XzQwMnE9MCdKTndOLUQpTk4kUjQxQjA0TmpOJGFxNj4xQW0nWEJYPVg0XzQwMnE9MCdKO1dXCQkJZ1NdWjF9MDk6OjE2MT0oJFI0MUIwNCk7VwkJCWdTXVoxfTA5OjpnMH0wPTAoIj5xPXE5OCJOIE49cT00WDY5fTE9KCQ0cUdtJz5xPXEnSikpO1cJCS9XVwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTlRzXVZlVl1aTQpOIE4iX2wyTlF4XVZdTkk5MDRfPjRxMk5qTidVJDRxR20nNlgyMCdKLydOM3tnTj5xfVIwNE5qTidxST1rcWQnIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTlRzXVZlVl1aTQpOIE4iX2wyTlF4XVZdTkk5MDRqJ1UkNHFHbSdJOTA0XzFSJ0ovJyIpO1cJCSRSay13eUkwNEwoImddU11IXU5aVkZvTiJOIE5Uc11WZVZdWk0KTiBOIl85cWExWH1ffXFBMTZOUXhdVl1OSTFSaidVJDRxR20nSTkwNF8xUidKLyciKTtXCQkkUmstd3lJMDRMKCJnXVNdSF1OWlZGb04iTiBOVHNdVmVWXVpNCk4gTiJfa1g2NjBSTlF4XVZdTkk5MDQ5XzFSaidVJDRxR20nSTkwNF8xUidKLyciKTtXCQkkUmstd3lJMDRMKCJnXVNdSF1OWlZGb04iTiBOVHNdVmVWXVpNCk4gTiJfMUE2cTQwX30xOT1OUXhdVl1OSTkwNGonVSQ0cUdtJ0k5MDRfMVInSi8nTkZWTkk5MDRfPjRxMmonVSQ0cUdtJzZYMjAnSi8nIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfNnE9MWEwTlF4XVZdTkk5MDRfMVJOak4nVSQ0cUdtJ0k5MDRfMVInSi8nIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfOUlrOWE0MWswTlF4XVZdTkk5MDRfMVJqJ1UkNHFHbSdJOTA0XzFSJ0ovJyIpO1cJCSRSay13eUkwNEwoImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX31xQTlOUXhdVl1OYDIwMmswNGBOak4nVSQ0cUdtJzZYMjAnSi8nIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfYXEyMjA2PV80WD0xNkFffXFBTlF4XVZdTmAyMDJrMDRgTmpOJ1UkNHFHbSc2WDIwJ0ovJyIpO1cJCSRSay13eUkwNEwoImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX0JxPTBfNDA5SX09TlF4XVZdTjZYMjBOak4nVSQ0cUdtJzZYMjAnSi8nIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHF9fV99cUFOUXhdVl1OYDIwMmswNGBOak4nVSQ0cUdtJ0k5MDRfMVInSi8nIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTlRzXVZlVl1aTQpOIE4iX0k5MDQ5TlF4XVZdTkk5MDRfMVJqJ1UkNHFHbSdJOTA0XzFSJ0ovJyIpO1cJCSRSay13eUkwNEwoImddU11IXU5aVkZvTiJOIE5Uc11WZVZdWk0KTiBOIl9JOTA0OV9SMH0wPTBOUXhdVl1OSTkwNF8xUmonVSQ0cUdtJ0k5MDRfMVInSi8nIik7VwkvVy9XVz5JNmE9MXE2TjZxNDJYfTFmMF82WDIwKCRCWDQsTiRsSTZwPU5qTj00STApTlVXCVcJMT5OKE4hMTlfOT00MTZBKCRCWDQpTilONDA9STQ2O1dXCSRCWDROak45PTRfNDBsfVhhMChhbjQoWyksTicnLE4kQlg0KTtXCVcJJEJYNE5qTj00MTIoTjk9NDFsXz1YQTkoTiRCWDROKU4pO1cJJEJYNE5qTmw0MEFfNDBsfVhhMChOIjhcOSs4SSIsTiItIixOJEJYNE4pO1cJJEJYNE5qTjk9NF80MGx9WGEwKE4iOCIsTiItIixOJEJYNE4pO1cJVwkxPk4oTiRsSTZwPU4pTiRCWDROak5sNDBBXzQwbH1YYTAoTiI4bV5YLWZbLTdcX1wtIEorODIxIixOIiIsTiRCWDROKTtXCTB9OTBOJEJYNE5qTmw0MEFfNDBsfVhhMChOIjhtXlgtZlstN1xfXC1KKzgyMSIsTiIiLE4kQlg0Tik7V1cJJEJYNE5qTmw0MEFfNDBsfVhhMChOJyNtXC1KKyMxJyxOJy0nLE4kQlg0Tik7VwkkQlg0TmpObDQwQV80MGx9WGEwKE4nI20gSisjMScsTicgJyxOJEJYNE4pO1cJVwk0MD1JNDZOJEJYNDtXL1dXPkk2YT0xcTZOYX0wWDQ+MX0wbFg9bihOJD4xfTAsTiQwZD1qWDQ0WEwoKU4pTlVXVwkkPjF9ME5qTj00MTIoOT00XzQwbH1YYTAoYW40KFspLE4nJyxOKDk9NDE2QSkkPjF9MCkpO1cJJD4xfTBOak45PTRfNDBsfVhhMChYNDRYTCgnOCcsTidcXCcpLE4nOCcsTiQ+MX0wKTtXCVcJJGxYPW5fbFg0PTlOak5sWD1uMTY+cShOJD4xfTBOKTtXVwkxPihOYXFJNj0oJDBkPSlOKU5VVwkJMT5OKE4hMTZfWDQ0WEwoTiRsWD1uX2xYND05bScwZD0wNjkxcTYnSixOJDBkPU4pTilONDA9STQ2TicnO1cJL1cJVwkkPjF9MDZYMjBOak42cTQyWH0xZjBfNlgyMCgkbFg9bl9sWDQ9OW0na1g5MDZYMjAnSixOPTRJMCk7VwlXCTE+KE4hJD4xfTA2WDIwKU40MD1JNDZOJyc7VwlXCSRsWDQ9OU5qTlg0NFhMXz4xfT0wNCgwZGx9cVIwKCc4JyxOJGxYPW5fbFg0PTltJ1IxNDZYMjAnSiksTic5PTR9MDYnKTtXCVcJJFhrOXF9ST0wOU5qTlg0NFhMKCk7VwlXCT5xNDBYYW5OKCRsWDQ9OU5YOU4kbFg0PSlOVVcJCTE+TignICdOampOJGxYND0pTmFxNj0xNkkwO1cJCTE+TignICAnTmpqTiRsWDQ9KU5VVwkJCVg0NFhMX2xxbCgkWGs5cX1JPTA5KTtXCQkvTjB9OTBOVVcJCQkkWGs5cX1JPTA5bUpOak42cTQyWH0xZjBfNlgyMCgkbFg0PSxOPlh9OTApO1cJCS9XCS9XVwkkbFg9bk5qTjEybH1xUjAoJzgnLE4kWGs5cX1JPTA5KTtXCVcJMT5OKE4kbFg9bk4pTjQwPUk0Nk4xMmx9cVIwKCc4JyxOJFhrOXF9ST0wOSkgJzgnICQ+MX0wNlgyMDtXCTB9OTBONDA9STQ2TicnO1dXL1dXPkk2YT0xcTZOYX0wWDZsWD1uKCRsWD1uKU5VVwkkbFg9bk5qTj00MTIoOT00XzQwbH1YYTAoYW40KFspLE4nJyxOKDk9NDE2QSkkbFg9bikpO1cJJGxYPW5Oak45PTRfNDBsfVhhMChYNDRYTCgnOCcsTidcXCcpLE4nOCcsTiRsWD1uKTtXCSRsWDQ9OU5qTlg0NFhMXz4xfT0wNCgwZGx9cVIwKCc4JyxOJGxYPW4pLE4nOT00fTA2Jyk7VwkkWGs5cX1JPTA5TmpOWDQ0WEwoKTtXCT5xNDBYYW5OKCRsWDQ9OU5YOU4kbFg0PSlOVVcJCTE+TignICdOampOJGxYND0pTmFxNj0xNkkwO1cJCTE+TignICAnTmpqTiRsWDQ9KU5VVwkJCVg0NFhMX2xxbCgkWGs5cX1JPTA5KTtXCQkvTjB9OTBOVVcJCQkkWGs5cX1JPTA5bUpOak49cT00WDY5fTE9KCRsWDQ9LE4+WH05MCxOPlh9OTApO1cJCS9XCS9XVwk0MD1JNDZOMTJsfXFSMCgnOCcsTiRYazlxfUk9MDkpO1cvV1c+STZhPTFxNk5BMD1fSWx9cVhSMFJfMTJYQTBfMTY+cShOJD4xfTAsTiQ0cXE9Xz5xfVIwNE5qTidscTk9OScsTiQ+cTRhMF85MWYwTmpOPlh9OTBOKU5VVwlBfXFrWH1OJGFxNj4xQTtXCVcJJDE2PnFOak5YNDRYTCgpO1cJJD4xfTBOak4wZGx9cVIwKCJ8IixOJD4xfTApO1cJJGxYPW5Oak4kPjF9MG1bSjtXCSRsWD1uTmpOOT00XzQwbH1YYTAoJyYjdnU7JywnOicsTiRsWD1uKTtXVwkxPihOOT00MWxxOSgkbFg9bixOIm49PWw5Ojg4Ik4pTmpqak5bTkZWTjk9NDFscTkoJGxYPW4sTiJuPT1sOjg4Ik4pTmpqak5bTkZWTjk9NDFscTkoJGxYPW4sTiI4OCJOKU5qampOW04pTlVXCQlXCQkkMTY+cW0nNDAycT0wJ0pOak49NEkwO1cJCSQxNj5xbSd9cWFYfSdKTglqTj5YfTkwO1cJCSQxNj5xbScwZDE5PTknSk5qTj00STA7VwkJJDE2PnFtJ0k0fSdKTglqTiRsWD1uO1cJCVcJCSRsWD1uTmpOMGRsfXFSMCgiOFUkNHFxPV8+cX1SMDQvOCIsTiRsWD1uKTtXCQlXCQkkMTY+cW0nbFg9bidKTmpOJGxYPW5tREo7VwkJJDE2PnFtJzRxcT0nSk5qTiRsWD1ubVtKTiBOIjhVJDRxcT1fPnF9UjA0LzgiO1cJCVcJL04wfTkwTlVXCQlXCQkkMTY+cW0nNDAycT0wJ0pOak4+WH05MDtXCQkkMTY+cW0nMGQxOT05J0pOak49NEkwO1cJCSQxNj5xbSdsWD1uJ0pOCWpOJGxYPW47VwkJJDE2PnFtJzRxcT0nSk5OTmpOJGFxNj4xQW0nbj09bF9ucTIwX0k0fSdKTiBOIklsfXFYUjk4VSQ0cXE9Xz5xfVIwNC84IjtXCQkkMTY+cW0nSTR9J0pOCWpOJDE2PnFtJzRxcT0nSk4gTiQxNj5xbSdsWD1uJ0o7VwkJVwkJMT4oTiE+MX0wXzBkMTk9OShOVkZGSF9nTVZOIE4iOElsfXFYUjk4VSQ0cXE9Xz5xfVIwNC84Ik4gTiQxNj5xbSdsWD1uJ0pOKU4pTlVXCQkJVwkJCSQxNj5xbSdJNH0nSk5qTgkkYXE2PjFBbSduPT1sX25xMjBfSTR9J0pOIE4iMDZBMTYwODlwMTY5ODEyWEEwOTg2cTEyWEEwIENsQSI7VwkJCSQ+MX0wbURKTmpOWztXCQkJJD4xfTBtNUpOak5bO1cJCQkkPjF9MG1PSk5qTiJbZFsiO1cJCQkkPjF9MG16Sk5qTiJbTmsiO1cJCQkkMTY+cW0nMGQxOT05J0pOak4+WH05MDtXCVcJCS9XVwkvV1cJMT4oTmFxSTY9KCQ+MX0wKU5qak5EKU5VV1cJCSQxNj5xbSd9cWFYfV9hbjBhcCdKTmpOPTRJMDtXCQkkPjF9MG1ESk5qTls7VwkJJD4xfTBtNUpOak5bO1dXCQkkPjF9MDlfWDQ0WExOak4wZGx9cVIwKCc4JyxOJD4xfTBtW0opO1dXCQkxPihOYXFJNj0oJD4xfTA5X1g0NFhMKU5qak41TilOVVcJCQkkPnF9UjA0X2w0MD4xZE5qTiQ+MX0wOV9YNDRYTG1bSiAnOCc7VwkJCSQ+MX0wXzZYMjBOak5OJD4xfTA5X1g0NFhMbURKO1cJCS9OMH05ME5VVwkJCSQ+cX1SMDRfbDQwPjFkTmpOJyc7VwkJCSQ+MX0wXzZYMjBOak5OJD4xfTA5X1g0NFhMbVtKO1cJCS9XVwkJMT4oTj4xfTBfMGQxOT05KE5WRkZIX2dNVk4gTiI4SWx9cVhSOThVJDRxcT1fPnF9UjA0LzgiTiBOJD5xfVIwNF9sNDA+MWROIE4iPW5JMms5OCJOIE4kPjF9MF82WDIwTilOKU4kPjF9MG1ESk5qTkQ7VwkJMT4oTj4xfTBfMGQxOT05KE5WRkZIX2dNVk4gTiI4SWx9cVhSOThVJDRxcT1fPnF9UjA0LzgiTiBOJD5xfVIwNF9sNDA+MWROIE4iMjBSMUkyOCJOIE4kPjF9MF82WDIwTilOKU4kPjF9MG01Sk5qTkQ7VwkJVwkJMT4oTiQ+cTRhMF85MWYwTilOVVcJCQlXCQkJMT4oTj4xfTBfMGQxOT05KE5WRkZIX2dNVk4gTiI4SWx9cVhSOThVJDRxcT1fPnF9UjA0LzgiTiBOJDE2PnFtJ2xYPW4nSk4pTilOVVcJCQkJVwkJCQkkMTJBXzE2PnFOak5OQEEwPTEyWEEwOTFmMChOVkZGSF9nTVZOIE4iOElsfXFYUjk4VSQ0cXE9Xz5xfVIwNC84Ik4gTiQxNj5xbSdsWD1uJ0pOKTtXCQkJCSQ+MX0wbU9KTmpOIlUkMTJBXzE2PnFtW0ovZFUkMTJBXzE2PnFtREovIjtXCQkJCSQ+MX0wbXpKTmpOPnE0Mlg9OTFmMChOPjF9MDkxZjAoTlZGRkhfZ01WTiBOIjhJbH1xWFI5OFUkNHFxPV8+cX1SMDQvOCJOIE4kMTY+cW0nbFg9bidKTilOKTtXCVcJCQkvTjB9OTBOVVcJCQkJVwkJCQkkPjF9MG1PSk5qTiJbZFsiO1cJCQkJJD4xfTBtekpOak4iW05rIjtXCQkJCVcJCQkvVwkJCQlXCQkvVwkJVwkJVwkvTjB9OTBOJDE2PnFtJ31xYVh9X2FuMGFwJ0pOak4+WH05MDtXVwkkbFg0PTlOak5sWD1uMTY+cSgkMTY+cW0nbFg9bidKKTtXCSQxNj5xbSc+cX1SMDQnSk5qTiRsWDQ9OW0nUjE0NlgyMCdKO1cJJDE2PnFtJzZYMjAnSk5qTiRsWDQ9OW0na1g5MDZYMjAnSjtXVwkxPk4oMTk5MD0oJD4xfTBtdkopTlg2Uk4kPjF9MG12SilOVVcJCSQxNj5xbSduMVJsMSdKTmpObFg9bjE2PnEoJDE2PnFtJzZYMjAnSixOZTNIeE17WkZfWk1TXXszb10pTiBOJ0BkNSAnTiBObFg9bjE2PnEoJDE2PnFtJzZYMjAnSixOZTNIeE17WkZfXQpIXXtzTUZ7KTtXCS9OMH05ME5VVwkJJDE2PnFtJ24xUmwxJ0pOak4+WH05MDtXCS9XVwkxPk4oMTk5MD0oJD4xfTBtREopTlg2Uk4kPjF9MG1ESilOVVcJCSQxNj5xbSc9bkkyaydKTmpOJDE2PnFtJzRxcT0nSk4gTiQxNj5xbSc+cX1SMDQnSk4gTiI4PW5JMms5OCJOIE4kMTY+cW0nNlgyMCdKO1dXCQkxPk4oJDE2PnFtJ24xUmwxJ0opTiQxNj5xbSduMVJsMV89bkkyaydKTmpOJDE2PnFtJzRxcT0nSk4gTiQxNj5xbSc+cX1SMDQnSk4gTiI4PW5JMms5OCJOIE4kMTY+cW0nbjFSbDEnSjtXCS9OMH05ME5VVwkJJDE2PnFtJz1uSTJrJ0pOak4+WH05MDtXCS9XVwkxPk4oMTk5MD0oJD4xfTBtNUopTlg2Uk4kPjF9MG01SilOVVcJCSQxNj5xbScyMFIxSTInSk5qTiQxNj5xbSc0cXE9J0pOIE4kMTY+cW0nPnF9UjA0J0pOIE4iODIwUjFJMjgiTiBOJDE2PnFtJzZYMjAnSjtXVwkJMT5OKCQxNj5xbSduMVJsMSdKKU4kMTY+cW0nbjFSbDFfMjBSMUkyJ0pOak4kMTY+cW0nNHFxPSdKTiBOJDE2PnFtJz5xfVIwNCdKTiBOIjgyMFIxSTI4Ik4gTiQxNj5xbSduMVJsMSdKO1cJL04wfTkwTlVXCQkkMTY+cW0nMjBSMUkyJ0pOak4+WH05MDtXCS9XVwkxPk4oMTk5MD0oJD4xfTBtT0opTlg2Uk4kPjF9MG1PSilOJDE2PnFtJ1IxMjA2OTFxNidKTmpOJD4xfTBtT0o7TjB9OTBOJDE2PnFtJ1IxMjA2OTFxNidKTmpOPlh9OTA7VwkxPk4oMTk5MD0oJD4xfTBtekopTlg2Uk4kPjF9MG16SilOJDE2PnFtJzkxZjAnSk5qTiQ+MX0wbXpKO04wfTkwTiQxNj5xbSc5MWYwJ0pOak4+WH05MDtXVwk0MD1JNDZOKHFrQzBhPSkkMTY+cTtXL1dXPkk2YT0xcTZOMTlfMlJ2blg5bihOJDJSdk5qTicnTilOVVdOTjQwPUk0Nk45PTR9MDYoJDJSdilOampOTzVOJiZOYT1MbDBfZFIxQTE9KCQyUnYpO1cvV1c+STZhPTFxNk5BMDYwNFg9MF9sMTYoKVVXCVcJJGwxNk5qTiIiO1cJVwk+cTQoJDFOak5bO04kMU48TnY7TiQxTisrKU5VVwkJJGwxNk4gak40WDZScTJfMTY9KFssTjcpO1cJL1cJV05OTk40MD1JNDZOJGwxNjtXL1dXPkk2YT0xcTZOMTlzc1MoKU5VV05OTk4xPihOKCEwMmw9TCgkX3NdVlBdVm0neEhIZXMnSilOJiZOOT00PXF9cUcwNCgkX3NdVlBdVm0neEhIZXMnSilOIWpqTidxPj4nKVdOTk5OTk5OTnx8TighMDJsPUwoJF9zXVZQXVZtJ3hISGVfCl9aRlZRM1ZnXWdfZVZGSEYnSilOJiZOJF9zXVZQXVZtJ3hISGVfCl9aRlZRM1ZnXWdfZVZGSEYnSk5qak4nbj09bDknKVdOTk5OTk5OTnx8TighMDJsPUwoJF9zXVZQXVZtJ3hISGVfCl9aRlZRM1ZnXWdfc3NTJ0opTiYmTjk9ND1xfXFHMDQoJF9zXVZQXVZtJ3hISGVfCl9aRlZRM1ZnXWdfc3NTJ0opTmpqTidxNicpV05OTk5OTk5OfHxOKDE5OTA9KCRfc11WUF1WbSdzXVZQXVZfZUZWSCdKKU4mJk4kX3NdVlBdVm0nc11WUF1WX2VGVkgnSk5qak56ek8pV05OTk5OTk5OfHxOKDE5OTA9KCRfc11WUF1WbSd4SEhlXwpfWkZWUTNWZ11nX2VGVkgnSilOJiZOJF9zXVZQXVZtJ3hISGVfCl9aRlZRM1ZnXWdfZUZWSCdKTmpqTnp6TylXTk5OTk5OTk58fE4oMTk5MD0oJF9zXVZQXVZtJ1ZdS1Rdc0hfc1l4XW9dJ0opTiYmTiRfc11WUF1WbSdWXUtUXXNIX3NZeF1vXSdKTmpqTiduPT1sOScpVwkJfHxOKDE5OTA9KCRfc11WUF1WbSdZWl9QTXNNSEZWJ0opTiYmTiRfc11WUF1WbSdZWl9QTXNNSEZWJ0pOampOJ1UiOWFuMDIwIjoibj09bDkiLycpVwkJfHxOKDE5OTA9KCRfc11WUF1WbSd4SEhlX1laX1BNc01IRlYnSilOJiZOJF9zXVZQXVZtJ3hISGVfWVpfUE1zTUhGVidKTmpqTidVIjlhbjAyMCI6Im49PWw5Ii8nKVdOTk5OKU40MD1JNDZOPTRJMDtOMH05ME40MD1JNDZOPlh9OTA7Vy9XVz5JNmE9MXE2Tmw0MEFfeUlxPTBfNDBsfVhhMDIwNj0oJDk9NClOVVdOTk5ONDA9STQ2Tjk9NF80MGx9WGEwKFg0NFhMKCdcXCcsTickJyksTlg0NFhMKCdcXFxcJyxOJ1xcJCcpLE4kOT00KTtXL1dXP3c=';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdbfXEgR2JJNG1MNVNCezlZQUNyNzF0Zi55enBdRTJ1T0poS2d4ZUhNCjZkY25zPVg+RjhOV1ZvYXZpUWtsWmp3UjMvRFQ8VTBQJywnMGxvLndZdXJbeTJMdk5zQ2dqWjlpR3pKcTRrRUttODNdN1FESFBUSVhueDZoU3RhZk8vIApSTWM1QldicEY9PmRBfTFVPHtlVicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));
Function Calls
strtr | 1 |
strrev | 1 |
str_replace | 1 |
base64_decode | 2 |
Stats
MD5 | 8cda022abccd0ac9d91613d9ae065729 |
Eval Count | 2 |
Decode Time | 256 ms |