Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php $_F=__FILE__;$_X='P31zP3BncD1HKj14eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eH..
Decoded Output download
?><?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
https://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004-2024 SoftNews Media Group
=====================================================
This code is protected by copyright
=====================================================
File: engine.php
=====================================================
*/
if (!defined('DATALIFEENGINE')) {
die ( "Hacking attempt!" );
}
if ($cstart < 0) $cstart = 0;
$allow_add_comment = false;
$allow_active_news = true;
$allow_comments = false;
$allow_userinfo = false;
$active = false;
$disable_index = false;
$social_tags = array();
$canonical = false;
$url_page = false;
$user_query = false;
$news_author = false;
$attachments = array ();
$short_news_cache = false;
$sql_select_ids = false;
switch ( $do ) {
case "search" :
if (isset($_REQUEST['mode']) AND $_REQUEST['mode'] == "advanced") $_REQUEST['full_search'] = 1;
include (DLEPlugins::Check(ENGINE_DIR . '/modules/search.php'));
break;
case "download" :
if (isset($_REQUEST['mode']) AND $_REQUEST['mode'] == 'error') {
include_once(DLEPlugins::Check(ENGINE_DIR . '/download.php'));
}
break;
case "changemail":
include(DLEPlugins::Check(ENGINE_DIR . '/modules/changemail.php'));
break;
case "findcomments":
include(DLEPlugins::Check(ENGINE_DIR . '/modules/findcomments.php'));
break;
case "deletenews" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/deletenews.php'));
break;
case "comments" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/comments.php'));
break;
case "stats" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/stats.php'));
break;
case "addnews" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/addnews.php'));
break;
case "register" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/register.php'));
break;
case "lostpassword" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/lostpassword.php'));
break;
case "rules" :
$_GET['page'] = "dle-rules-page";
include (DLEPlugins::Check(ENGINE_DIR . '/modules/static.php'));
break;
case "static" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/static.php'));
break;
case "alltags" :
include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/tagscloud.php'));
break;
case "auth-social" :
include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/social.php'));
break;
case "favorites" :
if ($is_logged) {
include (DLEPlugins::Check(ENGINE_DIR . '/modules/favorites.php'));
} else {
@header( "HTTP/1.1 403 Forbidden" );
msgbox ( $lang['all_err_1'], $lang['fav_error'] );
}
break;
case "feedback" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/feedback.php'));
break;
case "lastcomments" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/lastcomments.php'));
break;
case "pm" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/pm.php'));
break;
case "unsubscribe" :
$_GET['post_id'] = intval ($_GET['post_id']);
$_GET['user_id'] = intval ($_GET['user_id']);
if ($_GET['post_id'] AND $_GET['user_id'] AND $_GET['hash']) {
$row = $db->super_query( "SELECT hash FROM " . PREFIX . "_subscribe WHERE news_id='{$_GET['post_id']}' AND user_id='{$_GET['user_id']}'" );
if ($row['hash'] AND $row['hash'] == $_GET['hash']) {
$db->query( "DELETE FROM " . PREFIX . "_subscribe WHERE news_id='{$_GET['post_id']}' AND user_id='{$_GET['user_id']}'" );
msgbox( $lang['all_info'], $lang['unsubscribe_ok']);
} else {
msgbox( $lang['all_info'], $lang['unsubscribe_err']);
}
} else {
msgbox( $lang['all_info'], $lang['unsubscribe_err']);
}
break;
case "newsletterunsubscribe" :
$_GET['user_id'] = isset($_GET['user_id']) ? intval($_GET['user_id']) : 0;
$_GET['hash'] = isset($_GET['hash']) ? $_GET['hash'] : 0;
if ($_GET['user_id'] AND $_GET['hash']) {
$row = $db->super_query( "SELECT password, user_id FROM " . USERPREFIX . "_users WHERE user_id='{$_GET['user_id']}'" );
if ($row['user_id']) {
if( !isset($config['key']) ) $config['key'] = '';
$unsubscribe_hash = md5( SECURE_AUTH_KEY . $_SERVER['HTTP_HOST'] . $row['user_id'] . sha1( substr($row['password'], 0, 6) ) . $config['key'] );
if ($unsubscribe_hash == $_GET['hash']) {
$db->query( "UPDATE " . USERPREFIX . "_users SET allow_mail='0' WHERE user_id = '{$_GET['user_id']}'" );
msgbox( $lang['all_info'], $lang['n_unsubscribe_ok']);
} else {
msgbox( $lang['all_info'], $lang['n_unsubscribe_err']);
}
} else {
msgbox( $lang['all_info'], $lang['n_unsubscribe_err']);
}
} else {
msgbox( $lang['all_info'], $lang['n_unsubscribe_err']);
}
break;
default :
$active = false;
$user_query = "";
$url_page = "";
$thisdate = date ( "Y-m-d H:i:s", time () );
if ($config['no_date'] AND !$config['news_future']) $where_date = " AND date < '" . $thisdate . "'";
else $where_date = "";
if ($config['allow_fixed']) $fixed = "fixed desc, ";
else $fixed = "";
$config['news_number'] = intval ( $config['news_number'] );
if( $config['news_number'] < 1 ) $config['news_number'] = 1;
if ( $smartphone_detected AND $config['mobile_news'] ) $config['news_number'] = intval ( $config['mobile_news'] );
$news_sort_by = $config['news_sort'] ? $config['news_sort'] : "date";
$news_direction_by = $config['news_msort'] ? $config['news_msort'] : "DESC";
$allow_list = explode ( ',', $user_group[$member_id['user_group']]['allow_cats'] );
$stop_list = "";
$cat_join = "";
$cat_join_count = "";
$extra_join = "LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) ";
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) ";
$cat_join_count = "p ".$cat_join;
} else {
$stop_list = "category IN ('" . implode ( "','", $allow_list ) . "') AND ";
}
}
$not_allow_cats = explode ( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
if( $not_allow_cats[0] ) {
if ($config['allow_multi_category']) {
$stop_list = "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 ) . ") ) AND ";
$cat_join_count = "p ";
} else {
$stop_list = "category NOT IN ('" . implode ( "','", $not_allow_cats ) . "') AND ";
}
}
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 = ""; }
if ($user_group[$member_id['user_group']]['allow_short']) { $stop_list = ""; $cat_join = ""; $cat_join_count = ""; }
$sql_select = '';
$sql_count = '';
$sql_news = '';
// ################ Show of a category #################
if ($do == "cat" AND $category AND !$subaction) {
$allow_sub_cats = true;
if( $config['allow_alt_url'] AND $config['seo_control'] AND $category_id AND $view_template != "rss") {
$re_cat = get_url( $category_id );
if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR (isset($_GET['cstart']) AND $_GET['cstart'] == 1) OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR strpos ($_SERVER['REQUEST_URI'], "do=cat" ) !== false ) {
$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );
if( (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//') AND $_GET['cstart'] AND $_GET['cstart'] != 1 ) {
$re_cat .= "/page/".intval($_GET['cstart']);
}
header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}{$re_cat}/");
die("Redirect");
}
}
if (!$category_id) $category_id = 'not detected';
if ($allow_list[0] != "all") {
if (!$user_group[$member_id['user_group']]['allow_short'] AND !in_array( $category_id, $allow_list )) $category_id = 'not detected';
}
if ($not_allow_cats[0]) {
if (!$user_group[$member_id['user_group']]['allow_short'] AND in_array( $category_id, $not_allow_cats )) $category_id = 'not detected';
}
$cat_restric_join = '';
if (!$user_group[$member_id['user_group']]['allow_short'] AND $allow_list[0] != "all") {
foreach ($cat_info as $temp_cat) {
if( !in_array($temp_cat['id'], $allow_list) ) {
if( $not_allow_cats[0] ) $not_allow_cats[] = $temp_cat['id']; else $not_allow_cats[0] = $temp_cat['id'];
}
}
}
if (!$user_group[$member_id['user_group']]['allow_short'] AND $not_allow_cats[0] ) {
if ($config['allow_multi_category']) {
$cat_restric_join = " AND news_id NOT IN (SELECT news_id FROM dle_post_extras_cats WHERE cat_id IN ('" . implode("','", $not_allow_cats) . "'))";
}
}
if( !intval($category_id) ) {
$allow_active_news = false;
}
if ( isset($cat_info[$category_id]['show_sub']) AND $cat_info[$category_id]['show_sub'] ) {
if ( $cat_info[$category_id]['show_sub'] == 1 ) $get_cats = get_sub_cats ( $category_id );
else { $get_cats = $category_id; $allow_sub_cats = false; }
} else {
if ( $config['show_sub_cats'] ) $get_cats = get_sub_cats ( $category_id );
else { $get_cats = $category_id; $allow_sub_cats = false; }
}
if (isset($cat_info[$category_id]['news_sort']) AND $cat_info[$category_id]['news_sort']) $news_sort_by = $cat_info[$category_id]['news_sort'];
if (isset($cat_info[$category_id]['news_msort']) AND $cat_info[$category_id]['news_msort']) $news_direction_by = $cat_info[$category_id]['news_msort'];
if (isset($cat_info[$category_id]['news_number']) AND $cat_info[$category_id]['news_number']) $config['news_number'] = $cat_info[$category_id]['news_number'];
if (isset($cat_info[$category_id]['disable_index']) AND $cat_info[$category_id]['disable_index']) $disable_index = true;
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
if( isset( $cat_info[$category_id]['alt_name'] ) ) {
$url_page = $config['http_home_url'] . get_url ( $category_id );
$user_query = "do=cat&category=" . $cat_info[$category_id]['alt_name'];
} else {
$url_page = '';
$user_query = '';
}
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?do=cat&category=" . $cat_info[$category_id]['alt_name'];
if ($config['allow_multi_category']) {
$get_cats = str_replace ( "|", "','", $get_cats );
$join_category = "INNER JOIN (SELECT DISTINCT " . PREFIX . "_post_extras_cats.news_id FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . $get_cats . "'){$cat_restric_join}) c ON (p.id=c.news_id) ";
$where_category = "";
} else {
if ( $allow_sub_cats ) {
$get_cats = str_replace ( "|", "','", $get_cats );
$where_category = "category IN ('" . $get_cats . "') AND ";
} else {
$where_category = "category = '{$get_cats}' AND ";
}
$join_category = "";
}
if ($view_template == "rss") {
if( $rssmode == 'dzen' ) {
$where_rss = ' AND e.allow_rss_dzen=1';
} elseif ( $rssmode == 'turbo' ) {
$where_rss = ' AND e.allow_rss_turbo=1';
} else $where_rss = '';
$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason, e.allow_rss_turbo, e.allow_rss_dzen {$user_select}FROM " . PREFIX . "_post p {$join_category}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}WHERE {$where_category}approve=1 AND allow_rss=1" . $where_rss . $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
} else {
if (isset ( $_SESSION['dle_sort_cat_'.$category_id] )) $news_sort_by = $_SESSION['dle_sort_cat_'.$category_id];
if (isset ( $_SESSION['dle_direction_cat_'.$category_id] )) $news_direction_by = $_SESSION['dle_direction_cat_'.$category_id];
if( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$join_category}{$extra_join}WHERE {$where_category}approve=1" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post p {$join_category}WHERE {$where_category}approve=1";
}
} elseif ($do == 'lastnews') {
// ################ Show all news #################
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
if( $config['allow_alt_url'] AND $config['seo_control'] AND isset($_GET['cstart']) AND $_GET['cstart'] ) {
if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 ) {
$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );
$re_url .= "lastnews/";
if(substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' AND $_GET['cstart'] != 1 ) {
$re_url .= "page/".intval($_GET['cstart'])."/";
}
header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}");
die("Redirect");
}
}
$url_page = $config['http_home_url'] . "lastnews";
$user_query = "do=lastnews";
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?do=lastnews";
if (isset ( $_SESSION['dle_sort_lastnews'] )) $news_sort_by = $_SESSION['dle_sort_lastnews']; else $news_sort_by = "date";
if (isset ( $_SESSION['dle_direction_lastnews'] )) $news_direction_by = $_SESSION['dle_direction_lastnews']; else $news_direction_by = "DESC";
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$cat_join}{$extra_join}WHERE {$stop_list}approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}approve=1";
} elseif ($do == 'tags') {
// ################ Seach news by tags #################
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
$tag = rawurldecode( $_GET['tag'] );
$tag = htmlspecialchars ( strip_tags ( stripslashes ( trim ( $tag ) ) ), ENT_COMPAT, 'UTF-8' );
$encoded_tag = rawurlencode(dle_strtolower(str_replace(array("'", """, "&", "&frasl;"), array("'", '"', "&", "⁄"), $tag)));
$tag = str_replace( "&frasl;", "/", $tag );
$_CLOUDSTAG = $tag;
$url_page = $config['http_home_url'] . "tags/" . $encoded_tag;
$user_query = "do=tags&tag=" . $encoded_tag;
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?do=tags&tag=" . $encoded_tag;
if( $config['allow_alt_url'] AND $config['seo_control'] ) {
if ( substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR (isset($_GET['cstart']) AND $_GET['cstart'] == 1) OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR strpos ($_SERVER['REQUEST_URI'], "do=tags" ) !== false OR dle_strtolower($tag) !== $tag ) {
$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );
$re_url .= "tags/" . $encoded_tag . "/";
if( $_GET['cstart'] > 1 ) {
$re_url .= "page/".intval($_GET['cstart'])."/";
}
header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}");
die("Redirect");
}
}
if (isset ( $_SESSION['dle_sort_tags'] )) $news_sort_by = $_SESSION['dle_sort_tags'];
if (isset ( $_SESSION['dle_direction_tags'] )) $news_direction_by = $_SESSION['dle_direction_tags'];
$tag = $db->safesql($tag);
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id, t.tag FROM " . PREFIX . "_post p INNER JOIN " . PREFIX . "_tags t on (t.news_id=p.id) {$cat_join}{$extra_join}WHERE {$stop_list}t.tag = '{$tag}' AND p.approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post p INNER JOIN " . PREFIX . "_tags t on (t.news_id=p.id) {$cat_join}WHERE {$stop_list}t.tag = '{$tag}' AND approve=1";
} elseif ($do == 'xfsearch') {
// ################ Seach news by xfields #################
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
if (isset ( $_SESSION['dle_sort_xfsearch'] )) $news_sort_by = $_SESSION['dle_sort_xfsearch'];
if (isset ( $_SESSION['dle_direction_xfsearch'] )) $news_direction_by = $_SESSION['dle_direction_xfsearch'];
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$xf = rawurldecode($_GET['xf']);
if (dle_substr ( $xf, - 1, 1 ) == '/') $xf = dle_substr ( $xf, 0, - 1 );
$xf = explode ( '/', $xf );
$xfname = "";
if( isset($_GET['xfname']) AND $_GET['xfname'] ) {
$xfname =totranslit(trim($_GET['xfname']));
} elseif(count($xf) > 1 ) {
$xfname =totranslit(trim($xf[0]));
unset($xf[0]);
}
$xf = implode(' ', $xf);
$xf = htmlspecialchars ( strip_tags ( stripslashes ( trim ( $xf ) ) ), ENT_QUOTES, 'UTF-8' );
$xf = str_replace( array("{", "[", ":", "&frasl;"), array("{", "[", ":", "/"), $xf );
$xf_encoded = rawurlencode ( dle_strtolower(str_replace(array("'", """, "&", "{", "[", ":", "/"), array("'", '"', "&", "{", "[", ":", "⁄"), $xf ) ) );
if($xfname) {
$url_page = $config['http_home_url'] . "xfsearch/{$xfname}/{$xf_encoded}";
$user_query = "do=xfsearch&xfname={$xfname}&xf={$xf_encoded}";
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?do=xfsearch&xfname={$xfname}&xf={$xf_encoded}";
} else {
$url_page = $config['http_home_url'] . "xfsearch/{$xf_encoded}";
$user_query = "do=xfsearch&xf={$xf_encoded}";
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?do=xfsearch&xf={$xf_encoded}";
$xfields = xfieldsload();
$xfields_name = array();
foreach ( $xfields as $value ) {
$xfields_name[] = $value[0];
}
if( in_array($xf, $xfields_name) ) {$xf .= "|";}
}
$xfname = $db->safesql($xfname);
$xf = $db->safesql($xf);
if ( $xfname ) {
if( $config['allow_alt_url'] AND $config['seo_control'] ) {
if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR (isset($_GET['cstart']) AND $_GET['cstart'] == 1) OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR strpos ($_SERVER['REQUEST_URI'], "do=xfsearch" ) !== false OR dle_strtolower($xf) !== $xf) {
$re_url = $url_page . "/";
if( $_GET['cstart'] > 1 ) {
$re_url .= "page/".intval($_GET['cstart'])."/";
}
header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}");
die("Redirect");
}
}
$sql_select_ids = "SELECT p.id, xf.tagvalue FROM " . PREFIX . "_post p INNER JOIN " . PREFIX . "_xfsearch xf on (xf.news_id=p.id) {$cat_join}{$extra_join}WHERE {$stop_list}xf.tagname = '{$xfname}' AND xf.tagvalue='{$xf}' AND p.approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post p INNER JOIN " . PREFIX . "_xfsearch xf on (xf.news_id=p.id) {$cat_join}WHERE {$stop_list}xf.tagname = '{$xfname}' AND xf.tagvalue='{$xf}' AND approve=1";
} else {
if(!$xf) {
$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );
header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}");
die("Redirect");
}
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$cat_join}{$extra_join}WHERE {$stop_list}p.xfields LIKE '%{$xf}%' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}xfields LIKE '%{$xf}%' AND approve=1";
$xf = str_replace ( '|', '', $xf );
}
} elseif ($subaction == 'userinfo') {
// ################ show user profile #################
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
$url_page = $config['http_home_url'] . "user/" . urlencode ( $user );
$user_query = "subaction=userinfo&user=" . urlencode ( $user );
if ($member_id['name'] == $user OR $user_group[$member_id['user_group']]['allow_all_edit']) {
if (isset ( $_SESSION['dle_sort_userinfo'] )) $news_sort_by = $_SESSION['dle_sort_userinfo'];
if (isset ( $_SESSION['dle_direction_userinfo'] )) $news_direction_by = $_SESSION['dle_direction_userinfo'];
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$extra_join}WHERE autor = '{$user}' AND approve=0 ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE autor = '{$user}' AND approve=0";
$where_date = "";
if( !$config['profile_news'] ) {
$allow_active_news = false;
$news_found = false;
}
} else {
$allow_active_news = false;
$news_found = false;
}
$config['allow_cache'] = false;
} elseif ($subaction == 'allnews') {
// ################ show all news by user #################
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
$url_page = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/news";
$user_query = "subaction=allnews&user=" . urlencode ( $user );
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?subaction=allnews&user=" . urlencode ( $user );
if ($view_template == "rss") {
if ($rssmode == 'dzen') {
$where_rss = ' AND e.allow_rss_dzen=1';
} elseif ($rssmode == 'turbo') {
$where_rss = ' AND e.allow_rss_turbo=1';
} else $where_rss = '';
$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason, e.allow_rss_turbo, e.allow_rss_dzen {$user_select}FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}WHERE {$stop_list}p.autor = '{$user}' AND p.approve=1 AND e.allow_rss=1" . $where_rss. $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
} else {
if (isset ( $_SESSION['dle_sort_allnews'] )) $news_sort_by = $_SESSION['dle_sort_allnews'];
if (isset ( $_SESSION['dle_direction_allnews'] )) $news_direction_by = $_SESSION['dle_direction_allnews'];
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$cat_join}{$extra_join}WHERE {$stop_list}autor = '$user' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}autor = '$user' AND approve=1";
}
} elseif ($subaction == 'newposts') {
// ################ show all unread news #################
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
$url_page = $config['http_home_url'] . "newposts";
$user_query = "subaction=newposts";
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?subaction=newposts";
$thistime = date ( "Y-m-d H:i:s", $_TIME );
if (isset ( $_SESSION['member_lasttime'] )) {
$lasttime = date ( "Y-m-d H:i:s", $_SESSION['member_lasttime'] );
} else {
$lasttime = date ( "Y-m-d H:i:s", (time () - (3600 * 4)) );
}
if (isset ( $_SESSION['dle_sort_newposts'] )) $news_sort_by = $_SESSION['dle_sort_newposts'];
if (isset ( $_SESSION['dle_direction_newposts'] )) $news_direction_by = $_SESSION['dle_direction_newposts'];
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$cat_join}{$extra_join}WHERE {$stop_list}approve=1 AND date between '$lasttime' and '$thistime' order by " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}approve=1 AND date between '$lasttime' and '$thistime'";
$where_date = "";
$config['allow_cache'] = false;
} elseif ( isset ($_GET['catalog']) ) {
// ################ show by catalog #################
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
if( $config['allow_alt_url'] AND $config['seo_control']) {
if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR (isset($_GET['cstart']) AND $_GET['cstart'] == 1) OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR !$catalog) {
$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );
if( $catalog ) {
$re_url .= "catalog/".urlencode ( $catalog )."/";
}
if( $_GET['cstart'] > 1 ) {
$re_url .= "page/".intval($_GET['cstart'])."/";
}
header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}");
die("Redirect");
}
}
$url_page = $config['http_home_url'] . "catalog/" . urlencode ( $catalog );
$user_query = "catalog=" . urlencode ( $catalog );
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?catalog=" . urlencode ( $catalog );
$news_sort_by = $config['catalog_sort'] ? $config['catalog_sort'] : "date";
$news_direction_by = $config['catalog_msort'] ? $config['catalog_msort'] : "DESC";
if (isset ( $_SESSION['dle_sort_catalog'] )) $news_sort_by = $_SESSION['dle_sort_catalog'];
if (isset ( $_SESSION['dle_direction_catalog'] )) $news_direction_by = $_SESSION['dle_direction_catalog'];
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$cat_join}{$extra_join}WHERE {$stop_list}symbol = '$catalog' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}symbol = '$catalog' AND approve=1";
} else {
// ################ show main page #################
if ($year == '' AND $month == '' AND $day == '' AND !$newsid) {
$canonical = $config['http_home_url'];
if( $config['start_site'] == 2 AND $view_template != "rss") {
break;
}
if( $config['allow_alt_url'] AND $config['seo_control'] AND isset($_GET['cstart']) AND $_GET['cstart'] ) {
if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 ) {
$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );
if(substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' AND $_GET['cstart'] != 1 ) {
$re_url .= "page/".intval($_GET['cstart'])."/";
}
header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}");
die("Redirect");
}
}
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
$url_page = substr ( $config['http_home_url'], 0, strlen ( $config['http_home_url'] ) - 1 );
$user_query = "";
if ($view_template == "rss") {
$not_allow_cats = array();
foreach($cat_info as $value) {
if( !$value['allow_rss'] ) $not_allow_cats[] = $value['id'];
}
if( count($not_allow_cats) ) {
if ($config['allow_multi_category']) {
$not_allow_cats = "id NOT IN ( SELECT DISTINCT " . PREFIX . "_post_extras_cats.news_id FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN (" . implode ( ',', $not_allow_cats ) . ") ) AND ";
} else {
$not_allow_cats = "category NOT IN ('" . implode ( "','", $not_allow_cats ) . "') AND ";
}
} else $not_allow_cats = "";
$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason, e.allow_rss_turbo, e.allow_rss_dzen {$user_select}FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}WHERE {$not_allow_cats}{$stop_list}p.approve=1 AND e.allow_rss=1";
if ($config['rss_mtype']) {
$sql_select .= " AND p.allow_main=1";
}
if ($rssmode == 'dzen') {
$sql_select .= " AND e.allow_rss_dzen=1";
} elseif ($rssmode == 'turbo') {
$sql_select .= " AND e.allow_rss_turbo=1";
}
$sql_select .= $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
} else {
if (isset ( $_SESSION['dle_sort_main'] )) $news_sort_by = $_SESSION['dle_sort_main'];
if (isset ( $_SESSION['dle_direction_main'] )) $news_direction_by = $_SESSION['dle_direction_main'];
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$cat_join}{$extra_join}WHERE {$stop_list}approve=1 AND allow_main=1" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}approve=1 AND allow_main=1";
}
}
// ################ Show news by year #################
if ($year != '' and $month == '' and $day == '') {
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
if( $config['allow_alt_url'] AND $config['seo_control']) {
if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR (isset($_GET['cstart']) AND $_GET['cstart'] == 1) OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100) {
$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );
if (intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100) {
$year= date( 'Y', $_TIME );
}
$re_url .= $year."/";
if( $_GET['cstart'] > 1 ) {
$re_url .= "page/".intval($_GET['cstart'])."/";
}
header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}");
die("Redirect");
}
}
$url_page = $config['http_home_url'] . $year;
$user_query = "year=" . $year;
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?year=" . $year;
if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date'];
if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date'];
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$cat_join}{$extra_join}WHERE {$stop_list}date >= '{$year}-01-01'AND date < '{$year}-01-01' + INTERVAL 1 YEAR AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}where {$stop_list}date >= '{$year}-01-01'AND date < '{$year}-01-01' + INTERVAL 1 YEAR AND approve=1";
}
// ################ Show news by month #################
if ($year != '' and $month != '' and $day == '') {
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
if( $config['allow_alt_url'] AND $config['seo_control']) {
if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR (isset($_GET['cstart']) AND $_GET['cstart'] == 1) OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100 OR intval($_GET['month']) < 1 OR intval($_GET['month']) > 12) {
$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );
if (intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100) {
$year= date( 'Y', $_TIME );
}
$re_url .= $year."/";
if (intval($_GET['month']) < 1 OR intval($_GET['month']) > 12) {
$month= date( 'm', $_TIME );
}
$re_url .= $month."/";
if( $_GET['cstart'] > 1 ) {
$re_url .= "page/".intval($_GET['cstart'])."/";
}
header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}");
die("Redirect");
}
}
$url_page = $config['http_home_url'] . $year . "/" . $month;
$user_query = "year=" . $year . "&month=" . $month;
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?year=" . $year . "&month=" . $month;
if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date'];
if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date'];
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$cat_join}{$extra_join}WHERE {$stop_list}date >= '{$year}-{$month}-01'AND date < '{$year}-{$month}-01' + INTERVAL 1 MONTH AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}where {$stop_list}date >= '{$year}-{$month}-01'AND date < '{$year}-{$month}-01' + INTERVAL 1 MONTH AND approve=1";
}
// ################ Show news by day #################
if ($year != '' and $month != '' and $day != '' and $subaction == '') {
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
if( $config['allow_alt_url'] AND $config['seo_control']) {
if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR (isset($_GET['cstart']) AND $_GET['cstart'] == 1) OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100 OR intval($_GET['month']) < 1 OR intval($_GET['month']) > 12 OR intval($_GET['day']) < 1 OR intval($_GET['day']) > 31) {
$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
$re_url = reset ( $re_url );
if (intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100) {
$year= date( 'Y', $_TIME );
}
$re_url .= $year."/";
if (intval($_GET['month']) < 1 OR intval($_GET['month']) > 12) {
$month= date( 'm', $_TIME );
}
$re_url .= $month."/";
if (intval($_GET['day']) < 1 OR intval($_GET['day']) > 31) {
$day= date( 'd', $_TIME );
}
$re_url .= $day."/";
if( $_GET['cstart'] > 1 ) {
$re_url .= "page/".intval($_GET['cstart'])."/";
}
header("HTTP/1.0 301 Moved Permanently");
header("Location: {$re_url}");
die("Redirect");
}
}
$url_page = $config['http_home_url'] . $year . "/" . $month . "/" . $day;
$user_query = "year=" . $year . "&month=" . $month . "&day=" . $day;
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?year=" . $year . "&month=" . $month . "&day=" . $day;
if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date'];
if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date'];
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$cat_join}{$extra_join}WHERE {$stop_list}date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR AND approve=1";
}
// ################ Full News #################
if ($subaction != '' OR $newsid) {
if ( !$newsid ) $sql_news = "SELECT p.id, p.autor, p.date, p.short_story, p.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.allow_br, p.symbol, p.tags, p.metatitle, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.disable_index, e.related_ids, e.access, e.editdate, e.editor, e.reason, e.user_id, e.disable_search, e.need_pass, e.allow_rss, e.allow_rss_turbo, e.allow_rss_dzen {$user_select}FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}WHERE alt_name ='{$news_name}' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 1";
else $sql_news = "SELECT p.id, p.autor, p.date, p.short_story, p.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.allow_br, p.symbol, p.tags, p.metatitle, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.disable_index, e.related_ids, e.access, e.editdate, e.editor, e.reason, e.user_id, e.disable_search, e.need_pass, e.allow_rss, e.allow_rss_turbo, e.allow_rss_dzen {$user_select}FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}WHERE p.id = '{$newsid}'";
if ($subaction == '') $subaction = "showfull";
}
}
if (($subaction == "showfull" or $subaction == "addcomment") AND ( (!isset($category) OR $category == "") )) {
$allow_active_news = false;
//####################################################################################################################
// Add a comment to the database
//####################################################################################################################
if (isset( $_POST['subaction'] ) AND $_POST['subaction'] == "addcomment") {
$allow_add_comment = true;
$allow_comments = true;
$ajax_adds = false;
include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/addcomments.php'));
}
//####################################################################################################################
// Show the full news
//####################################################################################################################
if ($subaction == "showfull") {
$allow_comments = true;
include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/show.full.php'));
}
} else {
//####################################################################################################################
// Viewing user profile
//####################################################################################################################
if ($subaction == 'userinfo') {
$allow_userinfo = true;
include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/profile.php'));
}
//####################################################################################################################
// Viewing short news
//####################################################################################################################
$cache_prefix = "content_".$dle_module;
$_SESSION['referrer'] = htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, 'UTF-8' );
if ($catalog != "") {
$cache_prefix .= "_catalog_" . $catalog;
} elseif ($do == "lastnews") {
$cache_prefix .= "_lastnews";
} elseif ($subaction == 'allnews') {
$cache_prefix .= "_allnews_". $user;
} elseif ($do == 'tags') {
$cache_prefix .= "_tagscl_". $tag;
} elseif ($do == 'xfsearch') {
if($xfname) $cache_prefix .= "_xfsearch_" . $xfname . "_" . $xf;
else $cache_prefix .= "_xfsearch_". $xf;
} else {
$cache_prefix .= "_";
if ($month) $cache_prefix .= "month_" . $month;
if ($year) $cache_prefix .= "year_" . $year;
if ($day) $cache_prefix .= "day_" . $day;
if ($category) $cache_prefix .= "category_" . $category;
}
$cache_prefix .= "_tempate_" . $config['skin'];
if ($view_template == "rss") {
if ($catalog) $active = dle_cache ( "rss", $rssmode.$catalog, false );
else $active = dle_cache ( "rss", $rssmode.$category_id, false );
if( $active ) {
$active = json_decode($active, true);
}
} else {
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($_SESSION['dle_no_cache']) AND $_SESSION['dle_no_cache']) $config['allow_cache'] = false;
if ($cstart) $cache_id = ($cstart / $config['news_number']) + 1;
else $cache_id = 1;
$config['max_cache_pages'] = intval($config['max_cache_pages']);
if($config['max_cache_pages'] < 3) $config['max_cache_pages'] = 3;
if ($config['allow_cache'] AND $cache_id <= $config['max_cache_pages']) {
$active = dle_cache( "news", $cache_id . $cache_prefix, true );
if( $active ) {
$active = json_decode($active, true);
}
$short_news_cache = true;
} else {
$active = false;
$short_news_cache = false;
}
}
if ( is_array($active) ) {
if( isset( $active['content'] ) ) {
$tpl->result['content'] .= $active['content'];
}
if( isset($active['navigation']) ) {
$tpl->result['navigation'] = $active['navigation'];
} else $tpl->result['navigation'] = '';
if( isset( $active['last-modified'] ) ) {
if( $active['last-modified'] > $_DOCUMENT_DATE ) {
$_DOCUMENT_DATE = $active['last-modified'];
}
}
if ($do == 'xfsearch' AND isset($active['xf']) AND $active['xf'] ) {
$xf = $active['xf'];
}
if ($do == 'tags' and isset($active['tag']) and $active['tag']) {
$_CLOUDSTAG = $tag = $active['tag'];
}
if( isset($_SERVER['QUERY_STRING']) AND $_SERVER['QUERY_STRING'] ){
if( isset($active['description']) AND $active['description'] ) $metatags['description'] = $active['description'];
if( isset($active['keywords']) AND $active['keywords'] ) $metatags['keywords'] = $active['keywords'];
}
$active = null;
$news_found = true;
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;
else $allow_comments_ajax = false;
} else {
if(!$sql_select) {
if ( !in_array($news_sort_by, array('rating', 'news_read', 'editdate')) ) $extra_join = '';
$sql_select_ids = "SELECT p.id FROM " . PREFIX . "_post p {$cat_join}{$extra_join}WHERE {$stop_list}approve=1 AND allow_main=1" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$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 LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}approve=1 AND allow_main=1";
}
if( $sql_select_ids ) {
$sql_select_ids = $db->super_query($sql_select_ids, true);
if (count($sql_select_ids)) {
$first_post = true;
$temp_arr = array();
foreach ($sql_select_ids as $value) {
$temp_arr[] = $value['id'];
if( isset($value['tagvalue']) AND $value['tagvalue'] AND $first_post ) {
$xf = $value['tagvalue'];
$first_post = false;
}
if (isset($value['tag']) and $value['tag'] and $first_post) {
$_CLOUDSTAG = $tag = $value['tag'];
$first_post = false;
}
}
$sql_select_ids = implode(',', $temp_arr);
} else { $sql_select_ids = '0'; $allow_active_news = false; $news_found = false; }
$sql_select .= "WHERE p.id IN ({$sql_select_ids}) ORDER BY FIND_IN_SET(p.id, '" . $sql_select_ids . "')";
}
include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/show.short.php'));
if( isset($_SERVER['QUERY_STRING']) AND $_SERVER['QUERY_STRING'] ){
if( isset($page_description) AND $page_description ) $metatags['description'] = $page_description; else $page_description = '';
if( isset($page_keywords) AND $page_keywords ) $metatags['keywords'] = $page_keywords; else $page_keywords = '';
}
if (!$config['allow_quick_wysiwyg']) $allow_comments_ajax = false;
if ($config['files_allow']) if (strpos ( $tpl->result['content'], "[attachment=" ) !== false) {
$tpl->result['content'] = show_attach ( $tpl->result['content'], $attachments );
}
if ($view_template == "rss" AND $news_found) {
if ($catalog) create_cache ( "rss", json_encode( array('content' => $tpl->result['content'] ) , JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ), $rssmode . $catalog, false );
else create_cache ( "rss", json_encode( array('content' => $tpl->result['content'] ) , JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ), $rssmode . $category_id, false );
} elseif ($news_found AND $cache_id <= $config['max_cache_pages'] ) {
$cache_content = array('content' => $tpl->result['content'], 'navigation' => $tpl->result['navigation'], 'description' => $page_description, 'keywords' => $page_keywords, 'last-modified' => $_DOCUMENT_DATE);
if (isset($xf) AND $xf) $cache_content['xf'] = $xf;
if (isset($_CLOUDSTAG) AND $_CLOUDSTAG) $cache_content['tag'] = $_CLOUDSTAG;
create_cache ( "news", json_encode( $cache_content , JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ), $cache_id . $cache_prefix, true );
}
}
if($tpl->result['content'] AND $canonical AND isset($_GET['cstart']) AND intval($_GET['cstart']) AND intval($_GET['cstart']) != 1 ) {
if( $config['allow_alt_url'] ) {
$canonical .= "page/".intval($_GET['cstart'])."/";
} else {
if ($user_query) {
$canonical = "{$PHP_SELF}?cstart=".intval($_GET['cstart'])."&".str_replace('&', '&', $user_query);
} else $canonical = "{$PHP_SELF}?cstart=".intval($_GET['cstart']);
}
}
}
}
/*
=====================================================
The output of the page header
=====================================================
*/
$titl_e = '';
$nam_e = '';
$rss_url = '';
$rssturbo_url = '';
$rssdzen_url = '';
$rss_title = '';
if ($do == "cat" and $category != '' and $subaction == '') {
if( isset($cat_info[$category_id]['descr']) AND $cat_info[$category_id]['descr'] ){
if( !isset($_GET['cstart']) OR ( isset($_GET['cstart']) AND intval($_GET['cstart']) < 2 ) ) {
$metatags['description'] = $cat_info[$category_id]['descr'];
}
}
if( isset($cat_info[$category_id]['keywords']) AND $cat_info[$category_id]['keywords'] ){
if( !isset($_GET['cstart']) OR ( isset($_GET['cstart']) AND intval($_GET['cstart']) < 2 ) ) {
$metatags['keywords'] = $cat_info[$category_id]['keywords'];
}
}
if (isset( $cat_info[$category_id]['metatitle'] ) AND $cat_info[$category_id]['metatitle']) {
$metatags['header_title'] = $cat_info[$category_id]['metatitle'];
} else {
$nam_e = isset($cat_info[$category_id]['name']) ? stripslashes ( $cat_info[$category_id]['name'] ) : '';
}
if ($config['allow_alt_url'] ) {
$rss_url = $url_page . "/" . "rss.xml";
$rssturbo_url = $url_page . "/" . "rssturbo.xml";
$rssdzen_url = $url_page . "/" . "rssdzen.xml";
} else {
$rss_url = $PHP_SELF . "?mod=rss&do=cat&category=" . $cat_info[$category_id]['alt_name'];
$rssturbo_url = $PHP_SELF . "?mod=rss&rssmode=turbo&do=cat&category=" . $cat_info[$category_id]['alt_name'];
$rssdzen_url = $PHP_SELF . "?mod=rss&rssmode=dzen&do=cat&category=" . $cat_info[$category_id]['alt_name'];
}
} elseif ($subaction == 'userinfo') {
$nam_e = $user;
if ($config['allow_alt_url'] ) {
$rss_url = $url_page . "/" . "rss.xml";
$rssturbo_url = $url_page . "/" . "rssturbo.xml";
$rssdzen_url = $url_page . "/" . "rssdzen.xml";
} else {
$rss_url = $PHP_SELF . "?mod=rss&subaction=allnews&user=" . urlencode ( $user );
$rssturbo_url = $PHP_SELF . "?mod=rss&rssmode=turbo&subaction=allnews&user=" . urlencode($user);
$rssdzen_url = $PHP_SELF . "?mod=rss&rssmode=dzen&subaction=allnews&user=" . urlencode($user);
}
} elseif ($subaction == 'allnews') {
$nam_e = $lang['show_user_news'] . ' ' . $user;
if ($config['allow_alt_url']) {
$rss_url = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/" . "rss.xml";
$rssturbo_url = $config['http_home_url'] . "user/" . urlencode($user) . "/" . "rssturbo.xml";
$rssdzen_url = $config['http_home_url'] . "user/" . urlencode($user) . "/" . "rssdzen.xml";
} else {
$rss_url = $PHP_SELF . "?mod=rss&subaction=allnews&user=" . urlencode ( $user );
$rssturbo_url = $PHP_SELF . "?mod=rss&rssmode=turbo&subaction=allnews&user=" . urlencode($user);
$rssdzen_url = $PHP_SELF . "?mod=rss&rssmode=dzen&subaction=allnews&user=" . urlencode($user);
}
} elseif ($subaction == 'newposts') $nam_e = $lang['title_new'];
elseif ($do == 'stats') $nam_e = $lang['title_stats'];
elseif ($do == 'addnews') { if( isset($_REQUEST['id']) AND intval($_REQUEST['id']) ) $nam_e = $lang['title_editnews']; else $nam_e = $lang['title_addnews']; }
elseif ($do == 'register') $nam_e = $lang['title_register'];
elseif ($do == 'favorites') $nam_e = $lang['title_fav'];
elseif ($do == 'pm') $nam_e = $lang['title_pm'];
elseif ($do == 'feedback') $nam_e = $lang['title_feed'];
elseif ($do == 'lastcomments') $nam_e = $lang['title_last'];
elseif ($do == 'lostpassword') $nam_e = $lang['title_lost'];
elseif ($do == 'search') $nam_e = $lang['title_search'];
elseif ($do == 'static' AND isset($static_descr) AND $static_descr) $titl_e = $static_descr;
elseif ($do == 'lastnews') $nam_e = $lang['last_news'];
elseif ($do == 'alltags') $nam_e = $lang['tag_cloud'];
elseif ($do == 'rules') $nam_e = $lang['rules_page'];
elseif ($do == 'tags') $nam_e = stripslashes($tag);
elseif ($do == 'xfsearch') $nam_e = $xf;
elseif ($catalog) {
$nam_e = $lang['title_catalog'] . ' » ' . $catalog;
if ($config['allow_alt_url']) {
$rss_url = $config['http_home_url'] . "catalog/" . urlencode ( $catalog ) . "/" . "rss.xml";
$rssturbo_url = $config['http_home_url'] . "catalog/" . urlencode($catalog) . "/" . "rssturbo.xml";
$rssdzen_url = $config['http_home_url'] . "catalog/" . urlencode($catalog) . "/" . "rssdzen.xml";
} else {
$rss_url = $PHP_SELF . "?mod=rss&catalog=" . urlencode ( $catalog );
$rssturbo_url = $PHP_SELF . "?mod=rss&rssmode=turbo&catalog=" . urlencode($catalog);
$rssdzen_url = $PHP_SELF . "?mod=rss&rssmode=dzen&catalog=" . urlencode($catalog);
}
} else {
if ($year != '' AND $month == '' AND $day == '') $nam_e = $lang['title_date'] . ' ' . $year . ' ' . $lang['title_year'];
if ($year != '' AND $month != '' AND $day == '') $nam_e = $lang['title_date'] . ' ' . $r[$month - 1] . ' ' . $year . ' ' . $lang['title_year1'];
if ($year != '' AND $month != '' AND $day != '' and $subaction == '') $nam_e = $lang['title_date'] . ' ' . $day . '.' . $month . '.' . $year;
if (($subaction OR $newsid) AND $news_found) $titl_e = $metatags['title'];
}
if ( ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ) OR (isset($_GET['news_page']) AND intval($_GET['news_page']) > 1) ){
if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ) $page_extra = ' » '.$lang['news_site'].' '.intval($_GET['cstart']);
else $page_extra = ' » '.$lang['news_site'].' '.intval($_GET['news_page']);
} else $page_extra = '';
if ($nam_e) {
$metatags['title'] = $nam_e . $page_extra . ' » ' . $metatags['title'];
$rss_title = $metatags['title'];
} elseif ($titl_e) {
if ($config['start_site'] == 3 AND $dle_module == "main" AND (!isset($_GET['mod']) OR (isset($_GET['mod']) AND $_GET['mod'] != "rss"))) {
$metatags['title'] = $config['home_title'];
} else $metatags['title'] = $titl_e . $page_extra . ' » ' . $config['home_title'];
} else $metatags['title'] .= $page_extra;
if ( $metatags['header_title'] ) $metatags['title'] = stripslashes($metatags['header_title'].$page_extra);
if ( !$rss_url ) {
if ($config['allow_alt_url']) {
$rss_url = $config['http_home_url'] . "rss.xml";
$rssturbo_url = $config['http_home_url'] . "rssturbo.xml";
$rssdzen_url = $config['http_home_url'] . "rssdzen.xml";
} else {
$rss_url = $PHP_SELF . "?mod=rss";
$rssturbo_url = $PHP_SELF . "?mod=rss&rssmode=turbo";
$rssdzen_url = $PHP_SELF . "?mod=rss&rssmode=dzen";
}
$rss_title = $config['home_title'];
}
if( $config['allow_own_meta'] ) {
if(isset($custom_metatags['simple']) AND is_array($custom_metatags['simple']) AND count($custom_metatags['simple']) AND isset($custom_metatags['simple'][$r_uri]) AND $custom_metatags['simple'][$r_uri] ) {
if( $custom_metatags['simple'][$r_uri]['title'] ) $metatags['title'] = $custom_metatags['simple'][$r_uri]['title'];
if( $custom_metatags['simple'][$r_uri]['description'] ) $metatags['description'] = $custom_metatags['simple'][$r_uri]['description'];
if( $custom_metatags['simple'][$r_uri]['keywords'] ) $metatags['keywords'] = $custom_metatags['simple'][$r_uri]['keywords'];
if( $custom_metatags['simple'][$r_uri]['robots'] ) $metatags['robots'] = $custom_metatags['simple'][$r_uri]['robots'];
}
if(isset($custom_metatags['regex']) AND is_array($custom_metatags['regex']) AND count($custom_metatags['regex'])) {
foreach ($custom_metatags['regex'] as $key => $value) {
if(preg_match($key, $r_uri)){
if( $value['title'] ) $metatags['title'] = $value['title'];
if( $value['description'] ) $metatags['description'] = $value['description'];
if( $value['keywords'] ) $metatags['keywords'] = $value['keywords'];
if( $value['robots'] ) $metatags['robots'] = $value['robots'];
}
}
}
}
$meta = DLESEO::MetaTags( 'utf-8' );
if( !isset($social_tags['image']) OR !$social_tags['image'] ) {
$meta->twitter('card', 'summary');
}
$meta->og('type', 'article');
$meta->og('site_name', $config['home_title']);
$meta->title($metatags['title']);
if( isset($social_tags['description']) AND $social_tags['description'] ) {
$meta->meta('description', $metatags['description'] );
} else {
$meta->description($metatags['description']);
}
$meta->meta('keywords', $metatags['keywords']);
$meta->meta('generator', "DataLife Engine (https://dle-news.ru)");
if ( $disable_index ) $metatags['robots'] = "noindex,nofollow";
if ( isset($metatags['robots']) ) {
$meta->robots($metatags['robots']);
}
if ( count($social_tags) ) {
foreach ($social_tags as $key => $value) {
if( $key == "news_keywords" ) {
$meta->meta('news_keywords', $value);
} elseif ($key == "description") {
$meta->og('description', $value);
$meta->twitter('description', $value);
} elseif ($key == "image") {
$meta->image($value);
} elseif ($key == "url") {
$meta->url($value);
} else {
$meta->og($key, $value);
}
}
}
if ($canonical) {
if (strpos($canonical, "//") === 0) $canonical = "http:".$canonical;
elseif (strpos($canonical, "/") === 0) $canonical = "http://".$_SERVER['HTTP_HOST'].$canonical;
if( stripos( $canonical, 'http://' ) !== false ) {
if ( isSSL() OR $config['only_ssl'] ) {
$canonical = str_replace( "http://", "https://", $canonical );
}
}
$meta->canonical($canonical);
}
if ($config['allow_rss']) {
$meta->push('link', [
'rel' => 'alternate',
'type' => 'application/rss+xml',
'title' => $rss_title.' RSS',
'href' => $rss_url
]);
}
if ($config['allow_yandex_turbo']) {
$meta->push('link', [
'rel' => 'alternate',
'type' => 'application/rss+xml',
'title' => $rss_title . ' RSS Turbo',
'href' => $rssturbo_url
]);
}
if ($config['allow_yandex_dzen']) {
$meta->push('link', [
'rel' => 'alternate',
'type' => 'application/rss+xml',
'title' => $rss_title . ' RSS Dzen',
'href' => $rssdzen_url
]);
}
$meta->push('link', [
'rel' => 'search',
'type' => 'application/opensearchdescription+xml',
'title' => $config['home_title'],
'href' => "{$PHP_SELF}?do=opensearch"
]);
$meta->push('link', [
'rel' => 'preconnect',
'href' => $config['http_home_url'],
'fetchpriority' => 'high'
]);
$metatags = (string) $meta;
unset($meta);
/*
=====================================================
speedbar creation
=====================================================
*/
if ($config['speedbar'] AND !$view_template ) {
$elements = [];
$position = 1;
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $config['http_home_url'],
'name' => $config['short_title'],
)
);
$position++;
$s_navigation = "<a href=\"{$config['http_home_url']}\">" . $config['short_title'] . "</a>";
if( $config['start_site'] == 3 AND $dle_module == "main") $titl_e = "";
if (intval($category_id)){
if($titl_e OR (isset($_GET['cstart']) AND intval($_GET['cstart']) > 1) ) {
$last_link = true;
} else $last_link = false;
$s_navigation .= "{$config['speedbar_separator']}" . get_breadcrumbcategories ( intval($category_id), $config['speedbar_separator'], $last_link );
} elseif ($do == 'tags') {
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $config['http_home_url'].'tags/',
'name' => $lang['tag_cloud'],
)
);
$position++;
if ($config['allow_alt_url']){
$uri = $url_page . "/";
$s_navigation .= "{$config['speedbar_separator']}<a href=\"{$config['http_home_url']}tags/\">{$lang['tag_cloud']}</a>";
} else {
$uri = $PHP_SELF."?do=tags&tag=" . $encoded_tag;
$s_navigation .= "{$config['speedbar_separator']}<a href=\"?do=tags\">{$lang['tag_cloud']}</a>";
}
if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){
$s_navigation .= $config['speedbar_separator']."<a href=\"{$uri}\">{$tag}</a>";
} else $s_navigation .= $config['speedbar_separator'].$tag;
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $uri,
'name' => $tag,
)
);
$position++;
} elseif ($nam_e) {
$s_navigation .= "{$config['speedbar_separator']}" . $nam_e;
if ($canonical) {
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $canonical,
'name' => $nam_e,
)
);
$position++;
}
}
if ($titl_e) {
$s_navigation .= "{$config['speedbar_separator']}" . $titl_e;
if ($canonical) {
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $canonical,
'name' => $titl_e,
)
);
$position++;
}
} else {
if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){
$page_extra = "{$config['speedbar_separator']}".$lang['news_site']." ".intval($_GET['cstart']);
if ($canonical) {
$elements[] = array(
'@type' => "ListItem",
'position' => $position,
'item' => array(
'@id' => $canonical,
'name' => $lang['news_site']." ".intval($_GET['cstart']),
)
);
$position++;
}
} else $page_extra = '';
$s_navigation .= $page_extra;
}
if ( is_array($elements) AND count($elements) > 1) {
DLESEO::AddSchema( DLESEO::Thing('BreadcrumbList', array("itemListElement" => $elements) ) );
}
$tpl->load_template ( 'speedbar.tpl' );
$tpl->set ( '{speedbar}', stripslashes ( $s_navigation ) );
$tpl->compile ( 'speedbar' );
$tpl->clear ();
}
Did this file decode correctly?
Original Code
<?php $_F=__FILE__;$_X='P31zP3BncD1HKj14eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eD0gMFZmVmlXQ0IgTUE0V0FCIC0gVXcgWzdDZk5CXVIgSEI2V1YgaFM3LzUgPS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPSAuZmY1UjpHRzY5Qi1BQl1SWVMvRz0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0gSjc1d1NXNC5mIChMKSA4MjJELTgyOEQgWzdDZk5CXVIgSEI2V1YgaFM3LzU9eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg9IDEuV1IgTDc2QiBXUiA1UzdmQkxmQjYgVXcgTDc1d1NXNC5mPXh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4PSBiVzlCOiBCQTRXQUJZNS41PXh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4PSpHPT1XQyAoITZCQ1dBQjYoJzBRMVFpT2JNTU5oT05NJykpIFg9CTZXQiAoICJnVkxFV0E0IFZmZkIKNWYhIiApOz1LPT1XQyAoJExSZlZTZiBzIDIpICRMUmZWU2YgeCAyOz09JFY5OTddX1Y2Nl9MNwoKQkFmIHggQ1Y5UkI7PSRWOTk3XV9WTGZXbkJfQUJdUiB4IGZTL0I7PSRWOTk3XV9MNwoKQkFmUiB4IENWOVJCOz0kVjk5N11fL1JCU1dBQzcgeCBDVjlSQjs9JFZMZlduQiB4IENWOVJCOz0kNldSVlU5Ql9XQTZCPiB4IENWOVJCOz0kUjdMV1Y5X2ZWNFIgeCBWU1NWdygpOz0kTFZBN0FXTFY5IHggQ1Y5UkI7PSQvUzlfNVY0QiB4IENWOVJCOz0kL1JCU192L0JTdyB4IENWOVJCOz0kQUJdUl9WL2YuN1MgeCBDVjlSQjs9JFZmZlZMLgpCQWZSIHggVlNTVncgKCk7PSRSLjdTZl9BQl1SX0xWTC5CIHggQ1Y5UkI7PSRSdjlfUkI5QkxmX1c2UiB4IENWOVJCOz09Ul1XZkwuICggJDY3ICkgWD0JPQlMVlJCICJSQlZTTC4iIDo9CQk9CQlXQyAoV1JSQmYoJF88TWN0TVsxcScKNzZCJ1opIFFOMCAkXzxNY3RNWzFxJwo3NkInWiB4eCAiVjZuVkFMQjYiKSAkXzxNY3RNWzFxJ0MvOTlfUkJWU0wuJ1ogeCBqOz0JCVdBTDkvNkIgKDBpTXA5LzRXQVI6OkouQkxFKE1OaE9OTV8wTzwgWSAnRwo3Ni85QlJHUkJWU0wuWTUuNScpKTs9CQlVU0JWRTs9PQlMVlJCICI2N11BOTdWNiIgOj0JCVdDIChXUlJCZigkXzxNY3RNWzFxJwo3NkInWikgUU4wICRfPE1jdE1bMXEnCjc2QidaIHh4ICdCU1M3UycpIFg9CQkJV0FMOS82Ql83QUxCKDBpTXA5LzRXQVI6OkouQkxFKE1OaE9OTV8wTzwgWSAnRzY3XUE5N1Y2WTUuNScpKTs9CQlLPT0JCVVTQlZFOz09CUxWUkIgIkwuVkE0QgpWVzkiOj0JCVdBTDkvNkIoMGlNcDkvNFdBUjo6Si5CTEUoTU5oT05NXzBPPCBZICdHCjc2LzlCUkdMLlZBNEIKVlc5WTUuNScpKTs9CQlVU0JWRTs9PQlMVlJCICJDV0E2TDcKCkJBZlIiOj0JCVdBTDkvNkIoMGlNcDkvNFdBUjo6Si5CTEUoTU5oT05NXzBPPCBZICdHCjc2LzlCUkdDV0E2TDcKCkJBZlJZNS41JykpOz0JCVVTQlZFOz0JCT0JTFZSQiAiNkI5QmZCQUJdUiIgOj0JCVdBTDkvNkIgKDBpTXA5LzRXQVI6OkouQkxFKE1OaE9OTV8wTzwgWSAnRwo3Ni85QlJHNkI5QmZCQUJdUlk1LjUnKSk7PQkJVVNCVkU7PT0JTFZSQiAiTDcKCkJBZlIiIDo9CQlXQUw5LzZCICgwaU1wOS80V0FSOjpKLkJMRShNTmhPTk1fME88IFkgJ0cKNzYvOUJSR0w3CgpCQWZSWTUuNScpKTs9CQlVU0JWRTs9CT0JTFZSQiAiUmZWZlIiIDo9CQlXQUw5LzZCICgwaU1wOS80V0FSOjpKLkJMRShNTmhPTk1fME88IFkgJ0cKNzYvOUJSR1JmVmZSWTUuNScpKTs9CQlVU0JWRTs9CT0JTFZSQiAiVjY2QUJdUiIgOj0JCVdBTDkvNkIgKDBpTXA5LzRXQVI6OkouQkxFKE1OaE9OTV8wTzwgWSAnRwo3Ni85QlJHVjY2QUJdUlk1LjUnKSk7PQkJVVNCVkU7PQk9CUxWUkIgIlNCNFdSZkJTIiA6PQkJV0FMOS82QiAoMGlNcDkvNFdBUjo6Si5CTEUoTU5oT05NXzBPPCBZICdHCjc2LzlCUkdTQjRXUmZCU1k1LjUnKSk7PQkJVVNCVkU7PQk9CUxWUkIgIjk3UmY1VlJSXTdTNiIgOj0JCVdBTDkvNkIgKDBpTXA5LzRXQVI6OkouQkxFKE1OaE9OTV8wTzwgWSAnRwo3Ni85QlJHOTdSZjVWUlJdN1M2WTUuNScpKTs9CQlVU0JWRTs9CT0JTFZSQiAiUy85QlIiIDo9CQkkX2hNMXEnNVY0QidaIHggIjY5Qi1TLzlCUi01VjRCIjs9CQlXQUw5LzZCICgwaU1wOS80V0FSOjpKLkJMRShNTmhPTk1fME88IFkgJ0cKNzYvOUJSR1JmVmZXTFk1LjUnKSk7PQkJVVNCVkU7PQk9CUxWUkIgIlJmVmZXTCIgOj0JCVdBTDkvNkIgKDBpTXA5LzRXQVI6OkouQkxFKE1OaE9OTV8wTzwgWSAnRwo3Ni85QlJHUmZWZldMWTUuNScpKTs9CQlVU0JWRTs9CT0JTFZSQiAiVjk5ZlY0UiIgOj0JCVdBTDkvNkJfN0FMQiAoMGlNcDkvNFdBUjo6Si5CTEUoTU5oT05NXzBPPCBZICdHCjc2LzlCUkdmVjRSTDk3LzZZNS41JykpOz0JCVVTQlZFOz09CUxWUkIgIlYvZi4tUjdMV1Y5IiA6PQkJV0FMOS82Ql83QUxCICgwaU1wOS80V0FSOjpKLkJMRShNTmhPTk1fME88IFkgJ0cKNzYvOUJSR1I3TFdWOVk1LjUnKSk7PQkJVVNCVkU7PQk9CUxWUkIgIkNWbjdTV2ZCUiIgOj0JCT0JCVdDICgkV1JfOTc0NEI2KSBYPQkJCT0JCQlXQUw5LzZCICgwaU1wOS80V0FSOjpKLkJMRShNTmhPTk1fME88IFkgJ0cKNzYvOUJSR0NWbjdTV2ZCUlk1LjUnKSk7PQkJPQkJSyBCOVJCIFg9CQkJPQkJCUAuQlY2QlMoICJnMTFwR2pZaiBEMm0gYjdTVVc2NkJBIiApOz0JCQkKUjRVNz4gKCAkOVZBNHEnVjk5X0JTU19qJ1osICQ5VkE0cSdDVm5fQlNTN1MnWiApOz0JCQk9CQlLPQkJCT0JCVVTQlZFOz0JPQlMVlJCICJDQkI2VVZMRSIgOj0JCVdBTDkvNkIgKDBpTXA5LzRXQVI6OkouQkxFKE1OaE9OTV8wTzwgWSAnRwo3Ni85QlJHQ0JCNlVWTEVZNS41JykpOz0JCVVTQlZFOz0JPQlMVlJCICI5VlJmTDcKCkJBZlIiIDo9CQlXQUw5LzZCICgwaU1wOS80V0FSOjpKLkJMRShNTmhPTk1fME88IFkgJ0cKNzYvOUJSRzlWUmZMNwoKQkFmUlk1LjUnKSk7PQkJVVNCVkU7PQk9CUxWUkIgIjUKIiA6PQkJV0FMOS82QiAoMGlNcDkvNFdBUjo6Si5CTEUoTU5oT05NXzBPPCBZICdHCjc2LzlCUkc1Clk1LjUnKSk7PQkJVVNCVkU7PT0JTFZSQiAiL0FSL1VSTFNXVUIiIDo9CQkkX2hNMXEnNTdSZl9XNidaIHggV0FmblY5ICgkX2hNMXEnNTdSZl9XNidaKTs9CQkkX2hNMXEnL1JCU19XNidaIHggV0FmblY5ICgkX2hNMXEnL1JCU19XNidaKTs9PQkJV0MgKCRfaE0xcSc1N1JmX1c2J1ogUU4wICRfaE0xcScvUkJTX1c2J1ogUU4wICRfaE0xcScuVlIuJ1opIFg9PQkJCSRTN10geCAkNlUtfVIvNUJTX3YvQlN3KCAiW01pTUoxIC5WUi4gYjxsSCAiIFkgcDxNYk9kIFkgIl9SL1VSTFNXVUIgemdNPE0gQUJdUl9XNngnWCRfaE0xcSc1N1JmX1c2J1pLJyBRTjAgL1JCU19XNngnWCRfaE0xcScvUkJTX1c2J1pLJyIgKTs9PQkJCVdDICgkUzddcScuVlIuJ1ogUU4wICRTN11xJy5WUi4nWiB4eCAkX2hNMXEnLlZSLidaKSBYPT0JCQkJJDZVLX12L0JTdyggIjBNaU0xTSBiPGxIICIgWSBwPE1iT2QgWSAiX1IvVVJMU1dVQiB6Z008TSBBQl1SX1c2eCdYJF9oTTFxJzU3UmZfVzYnWksnIFFOMCAvUkJTX1c2eCdYJF9oTTFxJy9SQlNfVzYnWksnIiApOz0JCQkJClI0VTc+KCAkOVZBNHEnVjk5X1dBQzcnWiwgICQ5VkE0cScvQVIvVVJMU1dVQl83RSdaKTs9PQkJCUsgQjlSQiBYPQkJCQkKUjRVNz4oICQ5VkE0cSdWOTlfV0FDNydaLCAgJDlWQTRxJy9BUi9VUkxTV1VCX0JTUydaKTs9CQkJSz09CQlLIEI5UkIgWD0JCQkKUjRVNz4oICQ5VkE0cSdWOTlfV0FDNydaLCAgJDlWQTRxJy9BUi9VUkxTV1VCX0JTUydaKTs9CQlLPT0JCVVTQlZFOz0JPQlMVlJCICJBQl1SOUJmZkJTL0FSL1VSTFNXVUIiIDo9CQk9CQkkX2hNMXEnL1JCU19XNidaIHggV1JSQmYoJF9oTTFxJy9SQlNfVzYnWikgPyBXQWZuVjkoJF9oTTFxJy9SQlNfVzYnWikgOiAyOz0JCSRfaE0xcScuVlIuJ1ogeCBXUlJCZigkX2hNMXEnLlZSLidaKSA/ICRfaE0xcScuVlIuJ1ogOiAyOz09CQlXQyAoJF9oTTFxJy9SQlNfVzYnWiBRTjAgJF9oTTFxJy5WUi4nWikgWD09CQkJJFM3XSB4ICQ2VS19Ui81QlNfdi9CU3coICJbTWlNSjEgNVZSUl03UzYsIC9SQlNfVzYgYjxsSCAiIFkgdFtNPHA8TWJPZCBZICJfL1JCU1IgemdNPE0gL1JCU19XNngnWCRfaE0xcScvUkJTX1c2J1pLJyIgKTs9CQkJPQkJCVdDICgkUzddcScvUkJTX1c2J1opIFg9CQkJCT0JCQkJV0MoICFXUlJCZigkTDdBQ1c0cSdFQncnWikgKSAkTDdBQ1c0cSdFQncnWiB4ICcnOz0JCQkJJC9BUi9VUkxTV1VCXy5WUi4geCAKNkYoIFtNSnQ8TV9RdDFnX2FNdSBZICRfW008ck08cSdnMTFwX2dsWzEnWiBZICRTN11xJy9SQlNfVzYnWiBZIFIuVmooIFIvVVJmUygkUzddcSc1VlJSXTdTNidaLCAyLCBJKSApIFkgJEw3QUNXNHEnRUJ3J1ogKTs9CT0JCQkJV0MgKCQvQVIvVVJMU1dVQl8uVlIuIHh4ICRfaE0xcScuVlIuJ1opIFg9CT0JCQkJCSQ2VS19di9CU3coICJ0cDBRMU0gIiBZIHRbTTxwPE1iT2QgWSAiXy9SQlNSIFtNMSBWOTk3XV8KVlc5eCcyJyB6Z008TSAvUkJTX1c2IHggJ1gkX2hNMXEnL1JCU19XNidaSyciICk7PQkJCQkJPQkJCQkJClI0VTc+KCAkOVZBNHEnVjk5X1dBQzcnWiwgICQ5VkE0cSdBXy9BUi9VUkxTV1VCXzdFJ1opOz0JPQkJCQlLIEI5UkIgWD0JCQkJCT0JCQkJCQpSNFU3PiggJDlWQTRxJ1Y5OV9XQUM3J1osICAkOVZBNHEnQV8vQVIvVVJMU1dVQl9CU1MnWik7PQkJCQkJPQkJCQlLPQkJCQk9CQkJSyBCOVJCIFg9CQkJCQpSNFU3PiggJDlWQTRxJ1Y5OV9XQUM3J1osICAkOVZBNHEnQV8vQVIvVVJMU1dVQl9CU1MnWik7PQkJCUs9PQkJSyBCOVJCIFg9CQkJClI0VTc+KCAkOVZBNHEnVjk5X1dBQzcnWiwgICQ5VkE0cSdBXy9BUi9VUkxTV1VCX0JTUydaKTs9CQlLPT0JCVVTQlZFOz0JPQk2QkNWLzlmIDo9CQk9CQkkVkxmV25CIHggQ1Y5UkI7PQkJJC9SQlNfdi9CU3cgeCAiIjs9CQkkL1M5XzVWNEIgeCAiIjs9CQk9CQkkZi5XUjZWZkIgeCA2VmZCICggInUtCi02IGc6VzpSIiwgZlcKQiAoKSApOz0JCVdDICgkTDdBQ1c0cSdBN182VmZCJ1ogUU4wICEkTDdBQ1c0cSdBQl1SX0MvZi9TQidaKSAkXS5CU0JfNlZmQiB4ICIgUU4wIDZWZkIgcyAnIiBZICRmLldSNlZmQiBZICInIjs9CQlCOVJCICRdLkJTQl82VmZCIHggIiI7PQkJPQkJV0MgKCRMN0FDVzRxJ1Y5OTddX0NXPkI2J1opICRDVz5CNiB4ICJDVz5CNiA2QlJMLCAiOz0JCUI5UkIgJENXPkI2IHggIiI7PQkJPQkJJEw3QUNXNHEnQUJdUl9BLwpVQlMnWiB4IFdBZm5WOSAoICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1ogKTs9PQkJV0MoICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1ogcyBqICkgJEw3QUNXNHEnQUJdUl9BLwpVQlMnWiB4IGo7PT0JCVdDICggJFIKVlNmNS43QUJfNkJmQkxmQjYgUU4wICRMN0FDVzRxJwo3VVc5Ql9BQl1SJ1ogKSAkTDdBQ1c0cSdBQl1SX0EvClVCUydaIHggV0FmblY5ICggJEw3QUNXNHEnCjdVVzlCX0FCXVInWiApOz0JCT0JCSRBQl1SX1I3U2ZfVXcgeCAkTDdBQ1c0cSdBQl1SX1I3U2YnWiA/ICRMN0FDVzRxJ0FCXVJfUjdTZidaIDogIjZWZkIiOz0JCSRBQl1SXzZXU0JMZlc3QV9VdyB4ICRMN0FDVzRxJ0FCXVJfClI3U2YnWiA/ICRMN0FDVzRxJ0FCXVJfClI3U2YnWiA6ICIwTVtKIjs9PQkJJFY5OTddXzlXUmYgeCBCPjU5NzZCICggJywnLCAkL1JCU180UzcvNXEkCkIKVUJTX1c2cScvUkJTXzRTNy81J1pacSdWOTk3XV9MVmZSJ1ogKTs9CQkkUmY3NV85V1JmIHggIiI7PQkJJExWZl9UN1dBIHggIiI7PQkJJExWZl9UN1dBX0w3L0FmIHggIiI7PQkJJEI+ZlNWX1Q3V0EgeCAiaU1iMSBrbE9OICIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSIEIgbE4gKDVZVzZ4QllBQl1SX1c2KSAiOz09CQlXQyAoJFY5OTddXzlXUmZxMlogIXggIlY5OSIpIFg9CQkJPQkJCVdDICgkTDdBQ1c0cSdWOTk3XV8KLzlmV19MVmZCNDdTdydaKSBYPQkJCQk9CQkJCSRMVmZfVDdXQSB4ICJPTk5NPCBrbE9OIChbTWlNSjEgME9bMU9OSjEgIiBZIHA8TWJPZCBZICJfNTdSZl9CPmZTVlJfTFZmUllBQl1SX1c2IGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZl9CPmZTVlJfTFZmUiB6Z008TSBMVmZfVzYgT04gKCIgWSBXCjU5NzZCICggJywnLCAkVjk5N11fOVdSZiApIFkgIikpIEwgbE4gKDVZVzZ4TFlBQl1SX1c2KSAiOz0JCQkJJExWZl9UN1dBX0w3L0FmIHggIjUgIlkkTFZmX1Q3V0E7PQkJCT0JCQlLIEI5UkIgWD0JCQkJPQkJCQkkUmY3NV85V1JmIHggIkxWZkI0N1N3IE9OICgnIiBZIFcKNTk3NkIgKCAiJywnIiwgJFY5OTddXzlXUmYgKSBZICInKSBRTjAgIjs9CQkJPQkJCUs9CQk9CQlLPQkJPQkJJEE3Zl9WOTk3XV9MVmZSIHggQj41OTc2QiAoICcsJywgJC9SQlNfNFM3LzVxJApCClVCU19XNnEnL1JCU180UzcvNSdaWnEnQTdmX1Y5OTddX0xWZlInWiApOz0JCT0JCVdDKCAkQTdmX1Y5OTddX0xWZlJxMlogKSBYPQkJCT0JCQlXQyAoJEw3QUNXNHEnVjk5N11fCi85ZldfTFZmQjQ3U3cnWikgWD0JCQkJPQkJCQkkUmY3NV85V1JmIHggIjVZVzYgTmwxIE9OICggW01pTUoxIDBPWzFPTkoxKCIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSX0xWZlJZQUJdUl9XNikgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmX0I+ZlNWUl9MVmZSIHpnTTxNIExWZl9XNiBPTiAoIiBZIFcKNTk3NkIgKCAnLCcsICRBN2ZfVjk5N11fTFZmUiApIFkgIikgKSBRTjAgIjs9CQkJCSRMVmZfVDdXQV9MNy9BZiB4ICI1ICI7PQkJCQk9CQkJSyBCOVJCIFg9CQkJCT0JCQkJJFJmNzVfOVdSZiB4ICJMVmZCNDdTdyBObDEgT04gKCciIFkgVwo1OTc2QiAoICInLCciLCAkQTdmX1Y5OTddX0xWZlIgKSBZICInKSBRTjAgIjs9CQkJPQkJCUs9CQkJPQkJSz09CQlXQyggJEw3QUNXNHEnL1JCU19XQV9BQl1SJ1ogKSBYPQkJCT0JCQkkL1JCU19SQjlCTGYgeCAiLCAvWUIKVlc5LCAvWUFWCkIsIC9ZL1JCU19XNiwgL1lBQl1SX0EvCiwgL1lMNwoKX0EvCiBWUiAvUkJTX0w3CgpfQS8KLCAvWS9SQlNfNFM3LzUsIC9ZOVZSZjZWZkIsIC9ZU0I0XzZWZkIsIC9ZVVZBQUI2LCAvWVY5OTddXwpWVzksIC9ZV0FDNywgL1lSVzRBVmYvU0IsIC9ZQzdmNywgL1lDLzk5QVYKQiwgL1k5VkE2LCAvWUNWbjdTV2ZCUiwgL1k1Cl9WOTksIC9ZNQpfL0FTQlY2LCAvWWZXCkJfOVcKV2YsIC9ZPkNXQjk2UiBWUiAvUkJTXz5DV0I5NlIgIjs9CQkJJC9SQlNfVDdXQSB4ICJpTWIxIGtsT04gIiBZIHRbTTxwPE1iT2QgWSAiXy9SQlNSIC8gbE4gKEJZL1JCU19XNngvWS9SQlNfVzYpICI7PQkJCT0JCUsgQjlSQiBYICQvUkJTX1JCOUJMZiB4ICIiOyAkL1JCU19UN1dBIHggIiI7IEs9CQk9CQlXQyAoJC9SQlNfNFM3LzVxJApCClVCU19XNnEnL1JCU180UzcvNSdaWnEnVjk5N11fUi43U2YnWikgWCAkUmY3NV85V1JmIHggIiI7ICRMVmZfVDdXQSB4ICIiOyAkTFZmX1Q3V0FfTDcvQWYgeCAiIjsgSz0JCT0JCSRSdjlfUkI5QkxmIHggJyc7PQkJJFJ2OV9MNy9BZiB4ICcnOz0JCSRSdjlfQUJdUiB4ICcnOz09CQlHRyAjIyMjIyMjIyMjIyMjIyMjIFsuN10gN0MgViBMVmZCNDdTdyAjIyMjIyMjIyMjIyMjIyMjIz0JCVdDICgkNjcgeHggIkxWZiIgUU4wICRMVmZCNDdTdyBRTjAgISRSL1VWTGZXN0EpIFg9PQkJCSRWOTk3XV9SL1VfTFZmUiB4IGZTL0I7PQkJCT0JCQlXQyggJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaIFFOMCAkTDdBQ1c0cSdSQjdfTDdBZlM3OSdaIFFOMCAkTFZmQjQ3U3dfVzYgUU4wICRuV0JdX2ZCCjU5VmZCICF4ICJTUlIiKSBYPT0JCQkJJFNCX0xWZiB4IDRCZl8vUzkoICRMVmZCNDdTd19XNiApOz09CQkJCVdDICgkU0JfTFZmICF4ICRfaE0xcSdMVmZCNDdTdydaIGw8IFIvVVJmUyAoICRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAtIGosIGogKSAheCAnRycgbDwgKFdSUkJmKCRfaE0xcSdMUmZWU2YnWikgUU4wICRfaE0xcSdMUmZWU2YnWiB4eCBqKSBsPCBSL1VSZlMgKCAkX1tNPHJNPHEnPE1jdE1bMV90PE8nWiwgLSA4ICkgeHggJ0dHJyBsPCBSZlM1N1IgKCRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAiNjd4TFZmIiApICF4eCBDVjlSQiApIFg9CQkJCQkkU0JfL1M5IHggQj41OTc2QiAoICJXQTZCPlk1LjUiLCBSZlNmNzk3XUJTICggJF9bTTxyTTxxJ3BncF9bTWliJ1ogKSApOz0JCQkJCSRTQl8vUzkgeCBTQlJCZiAoICRTQl8vUzkgKTs9PQkJCQkJV0MoIChSL1VSZlMgKCAkX1tNPHJNPHEnPE1jdE1bMV90PE8nWiwgLSBqLCBqICkgIXggJ0cnIGw8IFIvVVJmUyAoICRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAtIDggKSB4eCAnR0cnKSBRTjAgJF9oTTFxJ0xSZlZTZidaIFFOMCAkX2hNMXEnTFJmVlNmJ1ogIXggaiApIFg9CQkJCQkgJFNCX0xWZiBZeCAiRzVWNEJHIllXQWZuVjkoJF9oTTFxJ0xSZlZTZidaKTs9CQkJCQlLPQkJCQkJPQkJCQkJLkJWNkJTKCJnMTFwR2pZMiBtMmogSDduQjYgcEJTClZBQkFmOXciKTs9CQkJCQkuQlY2QlMoImk3TFZmVzdBOiBYJFNCXy9TOUtYJFNCX0xWZktHIik7PQkJCQkJNldCKCI8QjZXU0JMZiIpOz0JCQkJSz0JCQlLPT0JCQlXQyAoISRMVmZCNDdTd19XNikgJExWZkI0N1N3X1c2IHggJ0E3ZiA2QmZCTGZCNic7PQkJCT0JCQlXQyAoJFY5OTddXzlXUmZxMlogIXggIlY5OSIpIFg9CQkJCVdDICghJC9SQlNfNFM3LzVxJApCClVCU19XNnEnL1JCU180UzcvNSdaWnEnVjk5N11fUi43U2YnWiBRTjAgIVdBX1ZTU1Z3KCAkTFZmQjQ3U3dfVzYsICRWOTk3XV85V1JmICkpICRMVmZCNDdTd19XNiB4ICdBN2YgNkJmQkxmQjYnOz0JCQlLPT0JCQlXQyAoJEE3Zl9WOTk3XV9MVmZScTJaKSBYPQkJCQlXQyAoISQvUkJTXzRTNy81cSQKQgpVQlNfVzZxJy9SQlNfNFM3LzUnWlpxJ1Y5OTddX1IuN1NmJ1ogUU4wIFdBX1ZTU1Z3KCAkTFZmQjQ3U3dfVzYsICRBN2ZfVjk5N11fTFZmUiApKSAkTFZmQjQ3U3dfVzYgeCAnQTdmIDZCZkJMZkI2Jzs9CQkJSz09CQkJJExWZl9TQlJmU1dMX1Q3V0EgeCAnJzs9PQkJCVdDICghJC9SQlNfNFM3LzVxJApCClVCU19XNnEnL1JCU180UzcvNSdaWnEnVjk5N11fUi43U2YnWiBRTjAgJFY5OTddXzlXUmZxMlogIXggIlY5OSIpIFg9PQkJCQlDN1NCVkwuICgkTFZmX1dBQzcgVlIgJGZCCjVfTFZmKSBYPQkJCQkJV0MoICFXQV9WU1NWdygkZkIKNV9MVmZxJ1c2J1osICRWOTk3XV85V1JmKSApIFg9CQkJCQkJV0MoICRBN2ZfVjk5N11fTFZmUnEyWiApICRBN2ZfVjk5N11fTFZmUnFaIHggJGZCCjVfTFZmcSdXNidaOyBCOVJCICRBN2ZfVjk5N11fTFZmUnEyWiB4ICRmQgo1X0xWZnEnVzYnWjs9CQkJCQlLPQkJCQlLPT0JCQlLPT0JCQlXQyAoISQvUkJTXzRTNy81cSQKQgpVQlNfVzZxJy9SQlNfNFM3LzUnWlpxJ1Y5OTddX1IuN1NmJ1ogUU4wICRBN2ZfVjk5N11fTFZmUnEyWiApIFg9PQkJCQlXQyAoJEw3QUNXNHEnVjk5N11fCi85ZldfTFZmQjQ3U3cnWikgWD09CQkJCQkkTFZmX1NCUmZTV0xfVDdXQSB4ICIgUU4wIEFCXVJfVzYgTmwxIE9OIChbTWlNSjEgQUJdUl9XNiBiPGxIIDY5Ql81N1JmX0I+ZlNWUl9MVmZSIHpnTTxNIExWZl9XNiBPTiAoJyIgWSBXCjU5NzZCKCInLCciLCAkQTdmX1Y5OTddX0xWZlIpIFkgIicpKSI7PT0JCQkJSz0JCQlLPT0JCQlXQyggIVdBZm5WOSgkTFZmQjQ3U3dfVzYpICkgWD0JCQkJJFY5OTddX1ZMZlduQl9BQl1SIHggQ1Y5UkI7PQkJCUs9CQkJPQkJCVdDICggV1JSQmYoJExWZl9XQUM3cSRMVmZCNDdTd19XNlpxJ1IuN11fUi9VJ1opIFFOMCAgJExWZl9XQUM3cSRMVmZCNDdTd19XNlpxJ1IuN11fUi9VJ1ogKSBYPT0JCQkJV0MgKCAkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnUi43XV9SL1UnWiB4eCBqICkgJDRCZl9MVmZSIHggNEJmX1IvVV9MVmZSICggJExWZkI0N1N3X1c2ICk7PQkJCQlCOVJCIFggJDRCZl9MVmZSIHggJExWZkI0N1N3X1c2OyAkVjk5N11fUi9VX0xWZlIgeCBDVjlSQjsgSz09CQkJSyBCOVJCIFg9PQkJCQlXQyAoICRMN0FDVzRxJ1IuN11fUi9VX0xWZlInWiApICQ0QmZfTFZmUiB4IDRCZl9SL1VfTFZmUiAoICRMVmZCNDdTd19XNiApOz0JCQkJQjlSQiBYICQ0QmZfTFZmUiB4ICRMVmZCNDdTd19XNjsgJFY5OTddX1IvVV9MVmZSIHggQ1Y5UkI7IEs9PQkJCUs9PQkJCVdDIChXUlJCZigkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnQUJdUl9SN1NmJ1opIFFOMCAkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnQUJdUl9SN1NmJ1opICRBQl1SX1I3U2ZfVXcgeCAkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnQUJdUl9SN1NmJ1o7PQkJCVdDIChXUlJCZigkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnQUJdUl8KUjdTZidaKSBRTjAgJExWZl9XQUM3cSRMVmZCNDdTd19XNlpxJ0FCXVJfClI3U2YnWikgJEFCXVJfNldTQkxmVzdBX1V3IHggJExWZl9XQUM3cSRMVmZCNDdTd19XNlpxJ0FCXVJfClI3U2YnWjs9CQkJV0MgKFdSUkJmKCRMVmZfV0FDN3EkTFZmQjQ3U3dfVzZacSdBQl1SX0EvClVCUydaKSBRTjAgJExWZl9XQUM3cSRMVmZCNDdTd19XNlpxJ0FCXVJfQS8KVUJTJ1opICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1ogeCAkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnQUJdUl9BLwpVQlMnWjs9CQkJV0MgKFdSUkJmKCRMVmZfV0FDN3EkTFZmQjQ3U3dfVzZacSc2V1JWVTlCX1dBNkI+J1opIFFOMCAkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnNldSVlU5Ql9XQTZCPidaKSAkNldSVlU5Ql9XQTZCPiB4IGZTL0I7PT0JCQlXQyAoJExSZlZTZikgWD0JCQkJJExSZlZTZiB4ICRMUmZWU2YgLSBqOz0JCQkJJExSZlZTZiB4ICRMUmZWU2YgKiAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOz0JCQlLPT0JCQlXQyggV1JSQmYoICRMVmZfV0FDN3EkTFZmQjQ3U3dfVzZacSdWOWZfQVYKQidaICkgKSBYPQkJCQkkL1M5XzVWNEIgeCAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1ogWSA0QmZfL1M5ICggJExWZkI0N1N3X1c2ICk7PQkJCQkkL1JCU192L0JTdyB4ICI2N3hMVmYmVgo1O0xWZkI0N1N3eCIgWSAkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnVjlmX0FWCkInWjs9CQkJSyBCOVJCIFg9CQkJCSQvUzlfNVY0QiB4ICcnOz0JCQkJJC9SQlNfdi9CU3cgeCAnJzs9CQkJSz0JCQk9CQkJV0MoICRMN0FDVzRxJ1Y5OTddX1Y5Zl8vUzknWiApICRMVkE3QVdMVjkgeCAkL1M5XzVWNEIgWSAiRyI7IEI5UkIgJExWQTdBV0xWOSB4ICRwZ3BfW01pYlkiPzY3eExWZiZMVmZCNDdTd3giIFkgJExWZl9XQUM3cSRMVmZCNDdTd19XNlpxJ1Y5Zl9BVgpCJ1o7PQkJCT0JCQlXQyAoJEw3QUNXNHEnVjk5N11fCi85ZldfTFZmQjQ3U3cnWikgWD09CQkJCSQ0QmZfTFZmUiB4IFJmU19TQjU5VkxCICggInwiLCAiJywnIiwgJDRCZl9MVmZSICk7PQkJCQkkVDdXQV9MVmZCNDdTdyB4ICJPTk5NPCBrbE9OIChbTWlNSjEgME9bMU9OSjEgIiBZIHA8TWJPZCBZICJfNTdSZl9CPmZTVlJfTFZmUllBQl1SX1c2IGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZl9CPmZTVlJfTFZmUiB6Z008TSBMVmZfVzYgT04gKCciIFkgJDRCZl9MVmZSIFkgIicpWCRMVmZfU0JSZlNXTF9UN1dBSykgTCBsTiAoNVlXNnhMWUFCXVJfVzYpICI7PQkJCQkkXS5CU0JfTFZmQjQ3U3cgeCAiIjs9CQkJCT0JCQlLIEI5UkIgWD0JCQkJPQkJCQlXQyAoICRWOTk3XV9SL1VfTFZmUiApIFg9CQkJCQk9CQkJCQkkNEJmX0xWZlIgeCBSZlNfU0I1OVZMQiAoICJ8IiwgIicsJyIsICQ0QmZfTFZmUiApOz0JCQkJCSRdLkJTQl9MVmZCNDdTdyB4ICJMVmZCNDdTdyBPTiAoJyIgWSAkNEJmX0xWZlIgWSAiJykgUU4wICI7PQkJCQk9CQkJCUsgQjlSQiBYPQkJCQkJPQkJCQkJJF0uQlNCX0xWZkI0N1N3IHggIkxWZkI0N1N3IHggJ1gkNEJmX0xWZlJLJyBRTjAgIjs9CQkJCT0JCQkJSz0JCQkJPQkJCQkkVDdXQV9MVmZCNDdTdyB4ICIiOz0JCQk9CQkJSz09CQkJV0MgKCRuV0JdX2ZCCjU5VmZCIHh4ICJTUlIiKSBYPQkJCQk9CQkJCVdDKCAkU1JSCjc2QiB4eCAnNmVCQScgKSBYPQkJCQkJJF0uQlNCX1NSUiB4ICcgUU4wIEJZVjk5N11fU1JSXzZlQkF4aic7PQkJCQlLIEI5UkJXQyAoICRTUlIKNzZCIHh4ICdmL1NVNycgKSBYPQkJCQkJJF0uQlNCX1NSUiB4ICcgUU4wIEJZVjk5N11fU1JSX2YvU1U3eGonOz0JCQkJSyBCOVJCICRdLkJTQl9TUlIgeCAnJzs9PQkJCQkkUnY5X1JCOUJMZiB4ICJbTWlNSjEgNVlXNiwgNVlWL2Y3UywgNVk2VmZCLCA1WVIuN1NmX1JmN1N3LCA1WUMvOTlfUmY3U3csIDVZPkNXQjk2UiwgNVlmV2Y5QiwgNVlMVmZCNDdTdywgNVlWOWZfQVYKQiwgNVlMNwoKX0EvCiwgNVlWOTk3XV9MNwoKLCA1WUNXPkI2LCA1WWZWNFIsIEJZQUJdUl9TQlY2LCBCWVY5OTddX1NWZkIsIEJZU1ZmV0E0LCBCWW43ZkJfQS8KLCBCWW43ZkJSLCBCWW5XQl1fQjZXZiwgQllCNldmNlZmQiwgQllCNldmN1MsIEJZU0JWUjdBLCBCWVY5OTddX1NSUl9mL1NVNywgQllWOTk3XV9TUlJfNmVCQSBYJC9SQlNfUkI5QkxmS2I8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IFgkVDdXQV9MVmZCNDdTd0tpTWIxIGtsT04gIiBZIHA8TWJPZCBZICJfNTdSZl9CPmZTVlIgQiBsTiAoNVlXNnhCWUFCXVJfVzYpIFgkL1JCU19UN1dBS3pnTTxNIFgkXS5CU0JfTFZmQjQ3U3dLVjU1UzduQnhqIFFOMCBWOTk3XV9TUlJ4aiIgWSAkXS5CU0JfU1JSIFkgJF0uQlNCXzZWZkIgWSAiIGw8ME08IHl1IDZWZkIgME1bSiBpT0hPMSAyLCIgWSAkTDdBQ1c0cSdTUlJfQS8KVUJTJ1o7PT09CQkJSyBCOVJCIFg9CQkJCT0JCQkJV0MgKFdSUkJmICggJF9bTVtbT2xOcSc2OUJfUjdTZl9MVmZfJ1kkTFZmQjQ3U3dfVzZaICkpICRBQl1SX1I3U2ZfVXcgeCAkX1tNW1tPbE5xJzY5Ql9SN1NmX0xWZl8nWSRMVmZCNDdTd19XNlo7PQkJCQlXQyAoV1JSQmYgKCAkX1tNW1tPbE5xJzY5Ql82V1NCTGZXN0FfTFZmXydZJExWZkI0N1N3X1c2WiApKSAkQUJdUl82V1NCTGZXN0FfVXcgeCAkX1tNW1tPbE5xJzY5Ql82V1NCTGZXN0FfTFZmXydZJExWZkI0N1N3X1c2Wjs9PQkJCQlXQyggIVdBX1ZTU1Z3KCRBQl1SX1I3U2ZfVXcsIFZTU1Z3KCdTVmZXQTQnLCAnQUJdUl9TQlY2JywgJ0I2V2Y2VmZCJykpICkgJEI+ZlNWX1Q3V0EgeCAnJzs9PQkJCQkkUnY5X1JCOUJMZl9XNlIgeCAiW01pTUoxIDVZVzYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgWCRUN1dBX0xWZkI0N1N3S1gkQj5mU1ZfVDdXQUt6Z008TSBYJF0uQlNCX0xWZkI0N1N3S1Y1NVM3bkJ4aiIgWSAkXS5CU0JfNlZmQiBZICIgbDwwTTwgeXUgIiBZICRDVz5CNiBZICRBQl1SX1I3U2ZfVXcgWSAiICIgWSAkQUJdUl82V1NCTGZXN0FfVXcgWSAiIGlPSE8xICIgWSAkTFJmVlNmIFkgIiwiIFkgJEw3QUNXNHEnQUJdUl9BLwpVQlMnWjs9PQkJCQkkUnY5X1JCOUJMZiB4ICJbTWlNSjEgNVlXNiwgNVlWL2Y3UywgNVk2VmZCLCA1WVIuN1NmX1JmN1N3LCBKZ1E8X2lNTmgxZyg1WUMvOTlfUmY3U3cpIFZSIEMvOTlfUmY3U3csIDVZPkNXQjk2UiwgNVlmV2Y5QiwgNVk2QlJMUywgNVlFQnddN1M2UiwgNVlMVmZCNDdTdywgNVlWOWZfQVYKQiwgNVlMNwoKX0EvCiwgNVlWOTk3XV9MNwoKLCA1WVY5OTddXwpWV0EsIDVZVjU1UzduQiwgNVlDVz5CNiwgNVlSdwpVNzksIDVZZlY0UiwgQllBQl1SX1NCVjYsIEJZVjk5N11fU1ZmQiwgQllTVmZXQTQsIEJZbjdmQl9BLwosIEJZbjdmQlIsIEJZbldCXV9CNldmLCBCWTZXUlZVOUJfV0E2Qj4sIEJZQjZXZjZWZkIsIEJZQjZXZjdTLCBCWVNCVlI3QSBYJC9SQlNfUkI5QkxmS2I8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IGlNYjEga2xPTiAiIFkgcDxNYk9kIFkgIl81N1JmX0I+ZlNWUiBCIGxOICg1WVc2eEJZQUJdUl9XNikgWCQvUkJTX1Q3V0FLIjs9CQkJCSRSdjlfTDcvQWYgeCAiW01pTUoxIEpsdE4xKCopIFZSIEw3L0FmIGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IFgkVDdXQV9MVmZCNDdTd0t6Z008TSBYJF0uQlNCX0xWZkI0N1N3S1Y1NVM3bkJ4aiI7PQkJCUs9CQkJPQkJSyBCOVJCV0MgKCQ2NyB4eCAnOVZSZkFCXVInKSBYPQkJCUdHICMjIyMjIyMjIyMjIyMjIyMgWy43XSBWOTkgQUJdUiAjIyMjIyMjIyMjIyMjIyMjIwkJCT0JCQlXQyAoJExSZlZTZikgWD0JCQkJJExSZlZTZiB4ICRMUmZWU2YgLSBqOz0JCQkJJExSZlZTZiB4ICRMUmZWU2YgKiAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOz0JCQlLPT0JCQlXQyggJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaIFFOMCAkTDdBQ1c0cSdSQjdfTDdBZlM3OSdaIFFOMCBXUlJCZigkX2hNMXEnTFJmVlNmJ1opIFFOMCAkX2hNMXEnTFJmVlNmJ1ogKSBYPQk9CQkJCVdDIChSL1VSZlMgKCAkX1tNPHJNPHEnPE1jdE1bMV90PE8nWiwgLSBqLCBqICkgIXggJ0cnIGw8ICRfaE0xcSdMUmZWU2YnWiB4eCBqICkgWD09CQkJCQkkU0JfL1M5IHggQj41OTc2QiAoICJXQTZCPlk1LjUiLCBSZlNmNzk3XUJTICggJF9bTTxyTTxxJ3BncF9bTWliJ1ogKSApOz0JCQkJCSRTQl8vUzkgeCBTQlJCZiAoICRTQl8vUzkgKTs9CQkJCQkJPQkJCQkJJFNCXy9TOSBZeCAiOVZSZkFCXVJHIjs9CQkJCQkJPQkJCQkJV0MoUi9VUmZTICggJF9bTTxyTTxxJzxNY3RNWzFfdDxPJ1osIC0gaiwgaiApICF4ICdHJyBRTjAgJF9oTTFxJ0xSZlZTZidaICF4IGogKSBYPQkJCQkJCSRTQl8vUzkgWXggIjVWNEJHIllXQWZuVjkoJF9oTTFxJ0xSZlZTZidaKVkiRyI7PQkJCQkJSz0JCQkJCT0JCQkJCS5CVjZCUygiZzExcEdqWTIgbTJqIEg3bkI2IHBCUwpWQUJBZjl3Iik7PQkJCQkJLkJWNkJTKCJpN0xWZlc3QTogWCRTQl8vUzlLIik7PQkJCQkJNldCKCI8QjZXU0JMZiIpOz0JCQkJSz0JCQlLPQkJCQk9CQkJJC9TOV81VjRCIHggJEw3QUNXNHEnLmZmNV8uNwpCXy9TOSdaIFkgIjlWUmZBQl1SIjs9CQkJJC9SQlNfdi9CU3cgeCAiNjd4OVZSZkFCXVIiOz0JCQk9CQkJV0MoICRMN0FDVzRxJ1Y5OTddX1Y5Zl8vUzknWiApICRMVkE3QVdMVjkgeCAkL1M5XzVWNEIgWSAiRyI7IEI5UkIgJExWQTdBV0xWOSB4ICRwZ3BfW01pYlkiPzY3eDlWUmZBQl1SIjs9CQkJPQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCX1I3U2ZfOVZSZkFCXVInWiApKSAkQUJdUl9SN1NmX1V3IHggJF9bTVtbT2xOcSc2OUJfUjdTZl85VlJmQUJdUidaOyBCOVJCICRBQl1SX1I3U2ZfVXcgeCAiNlZmQiI7PQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCXzZXU0JMZlc3QV85VlJmQUJdUidaICkpICRBQl1SXzZXU0JMZlc3QV9VdyB4ICRfW01bW09sTnEnNjlCXzZXU0JMZlc3QV85VlJmQUJdUidaOyBCOVJCICRBQl1SXzZXU0JMZlc3QV9VdyB4ICIwTVtKIjs9PQkJCVdDICggIVdBX1ZTU1Z3KCRBQl1SX1I3U2ZfVXcsIFZTU1Z3KCdTVmZXQTQnLCAnQUJdUl9TQlY2JywgJ0I2V2Y2VmZCJykpICkgJEI+ZlNWX1Q3V0EgeCAnJzs9PQkJCSRSdjlfUkI5QkxmX1c2UiB4ICJbTWlNSjEgNVlXNiBiPGxIICIgWSBwPE1iT2QgWSAiXzU3UmYgNSBYJExWZl9UN1dBS1gkQj5mU1ZfVDdXQUt6Z008TSBYJFJmNzVfOVdSZktWNTVTN25CeGoiIFkgJF0uQlNCXzZWZkIgWSAiIGw8ME08IHl1ICIgWSAkQUJdUl9SN1NmX1V3IFkgIiAiIFkgJEFCXVJfNldTQkxmVzdBX1V3IFkgIiBpT0hPMSAiIFkgJExSZlZTZiBZICIsIiBZICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1o7PT0JCQkkUnY5X1JCOUJMZiB4ICJbTWlNSjEgNVlXNiwgNVlWL2Y3UywgNVk2VmZCLCA1WVIuN1NmX1JmN1N3LCBKZ1E8X2lNTmgxZyg1WUMvOTlfUmY3U3cpIFZSIEMvOTlfUmY3U3csIDVZPkNXQjk2UiwgNVlmV2Y5QiwgNVk2QlJMUywgNVlFQnddN1M2UiwgNVlMVmZCNDdTdywgNVlWOWZfQVYKQiwgNVlMNwoKX0EvCiwgNVlWOTk3XV9MNwoKLCA1WVY5OTddXwpWV0EsIDVZVjU1UzduQiwgNVlDVz5CNiwgNVlSdwpVNzksIDVZZlY0UiwgQllBQl1SX1NCVjYsIEJZVjk5N11fU1ZmQiwgQllTVmZXQTQsIEJZbjdmQl9BLwosIEJZbjdmQlIsIEJZbldCXV9CNldmLCBCWTZXUlZVOUJfV0E2Qj4sIEJZQjZXZjZWZkIsIEJZQjZXZjdTLCBCWVNCVlI3QSBYJC9SQlNfUkI5QkxmS2I8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IGlNYjEga2xPTiAiIFkgcDxNYk9kIFkgIl81N1JmX0I+ZlNWUiBCIGxOICg1WVc2eEJZQUJdUl9XNikgWCQvUkJTX1Q3V0FLIjs9CQkJJFJ2OV9MNy9BZiB4ICJbTWlNSjEgSmx0TjEoKikgVlIgTDcvQWYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIFgkTFZmX1Q3V0FfTDcvQWZLemdNPE0gWCRSZjc1XzlXUmZLVjU1UzduQnhqIjs9CQk9CQlLIEI5UkJXQyAoJDY3IHh4ICdmVjRSJykgWD0JCQlHRyAjIyMjIyMjIyMjIyMjIyMjIFtCVkwuIEFCXVIgVXcgZlY0UiAjIyMjIyMjIyMjIyMjIyMjIwkJCT0JCQlXQyAoJExSZlZTZikgWD0JCQkJJExSZlZTZiB4ICRMUmZWU2YgLSBqOz0JCQkJJExSZlZTZiB4ICRMUmZWU2YgKiAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOz0JCQlLPT0JCQkkZlY0IHggU1ZdL1M5NkJMNzZCKCAkX2hNMXEnZlY0J1ogKTs9PQkJCSRmVjQgeCAuZgo5UjVCTFdWOUwuVlNSICggUmZTVzVfZlY0UiAoIFJmU1c1UjlWUi5CUiAoIGZTVwogKCAkZlY0ICkgKSApLCBNTjFfSmxIcFExLCAndDFiLVAnICk7PQkJCT0JCQkkQkFMNzZCNl9mVjQgeCBTVl0vUzlCQUw3NkIoNjlCX1JmU2Y3OTddQlMoUmZTX1NCNTlWTEIoVlNTVncoIiYjMm0zOyIsICImdi83ZjsiLCAiJlYKNTsiLCAiJlYKNTtDU1ZSOTsiKSwgVlNTVncoIiciLCAnIicsICImIiwgIiZDU1ZSOTsiKSwgJGZWNCkpKTs9PQkJCSRmVjQgeCBSZlNfU0I1OVZMQiggIiZWCjU7Q1NWUjk7IiwgIkciLCAkZlY0ICk7PT0JCQkkX0ppbHQwWzFRaCB4ICRmVjQ7PQkJCT0JCQkkL1M5XzVWNEIgeCAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1ogWSAiZlY0UkciIFkgJEJBTDc2QjZfZlY0Oz0JCQkkL1JCU192L0JTdyB4ICI2N3hmVjRSJlYKNTtmVjR4IiBZICRCQUw3NkI2X2ZWNDs9CQkJPQkJCVdDKCAkTDdBQ1c0cSdWOTk3XV9WOWZfL1M5J1ogKSAkTFZBN0FXTFY5IHggJC9TOV81VjRCIFkgIkciOyBCOVJCICRMVkE3QVdMVjkgeCAkcGdwX1tNaWJZIj82N3hmVjRSJmZWNHgiIFkgJEJBTDc2QjZfZlY0Oz09CQkJV0MoICRMN0FDVzRxJ1Y5OTddX1Y5Zl8vUzknWiBRTjAgJEw3QUNXNHEnUkI3X0w3QWZTNzknWiApIFg9PQkJCQlXQyAoIFIvVVJmUyAoICRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAtIGosIGogKSAheCAnRycgbDwgKFdSUkJmKCRfaE0xcSdMUmZWU2YnWikgUU4wICRfaE0xcSdMUmZWU2YnWiB4eCBqKSBsPCBSL1VSZlMgKCAkX1tNPHJNPHEnPE1jdE1bMV90PE8nWiwgLSA4ICkgeHggJ0dHJyBsPCBSZlM1N1IgKCRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAiNjd4ZlY0UiIgKSAheHggQ1Y5UkIgbDwgNjlCX1JmU2Y3OTddQlMoJGZWNCkgICF4eCAkZlY0ICkgWD0JPQkJCQkJJFNCXy9TOSB4IEI+NTk3NkIgKCAiV0E2Qj5ZNS41IiwgUmZTZjc5N11CUyAoICRfW008ck08cSdwZ3BfW01pYidaICkgKTs9CQkJCQkkU0JfL1M5IHggU0JSQmYgKCAkU0JfL1M5ICk7PQkJCQkJCT0JCQkJCSRTQl8vUzkgWXggImZWNFJHIiBZICRCQUw3NkI2X2ZWNCBZICJHIjs9CQkJCQkJPQkJCQkJV0MoICRfaE0xcSdMUmZWU2YnWiB9IGogKSBYPQkJCQkJCSRTQl8vUzkgWXggIjVWNEJHIllXQWZuVjkoJF9oTTFxJ0xSZlZTZidaKVkiRyI7PQkJCQkJSz0JCQkJCT0JCQkJCS5CVjZCUygiZzExcEdqWTIgbTJqIEg3bkI2IHBCUwpWQUJBZjl3Iik7PQkJCQkJLkJWNkJTKCJpN0xWZlc3QTogWCRTQl8vUzlLIik7PQkJCQkJNldCKCI8QjZXU0JMZiIpOz0JCQkJSz0JCQlLPQkJCT0JCQlXQyAoV1JSQmYgKCAkX1tNW1tPbE5xJzY5Ql9SN1NmX2ZWNFInWiApKSAkQUJdUl9SN1NmX1V3IHggJF9bTVtbT2xOcSc2OUJfUjdTZl9mVjRSJ1o7PQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCXzZXU0JMZlc3QV9mVjRSJ1ogKSkgJEFCXVJfNldTQkxmVzdBX1V3IHggJF9bTVtbT2xOcSc2OUJfNldTQkxmVzdBX2ZWNFInWjs9PQkJCSRmVjQgeCAkNlUtfVJWQ0JSdjkoJGZWNCk7PT0JCQlXQyAoICFXQV9WU1NWdygkQUJdUl9SN1NmX1V3LCBWU1NWdygnU1ZmV0E0JywgJ0FCXVJfU0JWNicsICdCNldmNlZmQicpKSApICRCPmZTVl9UN1dBIHggJyc7PT0JCQkkUnY5X1JCOUJMZl9XNlIgeCAiW01pTUoxIDVZVzYsIGZZZlY0IGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IE9OTk08IGtsT04gIiBZIHA8TWJPZCBZICJfZlY0UiBmIDdBIChmWUFCXVJfVzZ4NVlXNikgWCRMVmZfVDdXQUtYJEI+ZlNWX1Q3V0FLemdNPE0gWCRSZjc1XzlXUmZLZllmVjQgeCAnWCRmVjRLJyBRTjAgNVlWNTVTN25CeGoiIFkgJF0uQlNCXzZWZkIgWSAiIGw8ME08IHl1ICIgWSAkQUJdUl9SN1NmX1V3IFkgIiAiIFkgJEFCXVJfNldTQkxmVzdBX1V3IFkgIiBpT0hPMSAiIFkgJExSZlZTZiBZICIsIiBZICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1o7PT0JCQkkUnY5X1JCOUJMZiB4ICJbTWlNSjEgNVlXNiwgNVlWL2Y3UywgNVk2VmZCLCA1WVIuN1NmX1JmN1N3LCBKZ1E8X2lNTmgxZyg1WUMvOTlfUmY3U3cpIFZSIEMvOTlfUmY3U3csIDVZPkNXQjk2UiwgNVlmV2Y5QiwgNVk2QlJMUywgNVlFQnddN1M2UiwgNVlMVmZCNDdTdywgNVlWOWZfQVYKQiwgNVlMNwoKX0EvCiwgNVlWOTk3XV9MNwoKLCA1WVY5OTddXwpWV0EsIDVZVjU1UzduQiwgNVlDVz5CNiwgNVlSdwpVNzksIDVZZlY0UiwgQllBQl1SX1NCVjYsIEJZVjk5N11fU1ZmQiwgQllTVmZXQTQsIEJZbjdmQl9BLwosIEJZbjdmQlIsIEJZbldCXV9CNldmLCBCWTZXUlZVOUJfV0E2Qj4sIEJZQjZXZjZWZkIsIEJZQjZXZjdTLCBCWVNCVlI3QSBYJC9SQlNfUkI5QkxmS2I8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IGlNYjEga2xPTiAiIFkgcDxNYk9kIFkgIl81N1JmX0I+ZlNWUiBCIGxOICg1WVc2eEJZQUJdUl9XNikgWCQvUkJTX1Q3V0FLIjs9CQkJJFJ2OV9MNy9BZiB4ICJbTWlNSjEgSmx0TjEoKikgVlIgTDcvQWYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgT05OTTwga2xPTiAiIFkgcDxNYk9kIFkgIl9mVjRSIGYgN0EgKGZZQUJdUl9XNng1WVc2KSBYJExWZl9UN1dBS3pnTTxNIFgkUmY3NV85V1JmS2ZZZlY0IHggJ1gkZlY0SycgUU4wIFY1NVM3bkJ4aiI7PT0JCUsgQjlSQldDICgkNjcgeHggJz5DUkJWU0wuJykgWD0JCQlHRyAjIyMjIyMjIyMjIyMjIyMjIFtCVkwuIEFCXVIgVXcgPkNXQjk2UiAjIyMjIyMjIyMjIyMjIyMjIwkJPQkJCVdDICgkTFJmVlNmKSBYPQkJCQkkTFJmVlNmIHggJExSZlZTZiAtIGo7PQkJCQkkTFJmVlNmIHggJExSZlZTZiAqICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1o7PQkJCUs9CQkJPQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCX1I3U2ZfPkNSQlZTTC4nWiApKSAkQUJdUl9SN1NmX1V3IHggJF9bTVtbT2xOcSc2OUJfUjdTZl8+Q1JCVlNMLidaOz0JCQlXQyAoV1JSQmYgKCAkX1tNW1tPbE5xJzY5Ql82V1NCTGZXN0FfPkNSQlZTTC4nWiApKSAkQUJdUl82V1NCTGZXN0FfVXcgeCAkX1tNW1tPbE5xJzY5Ql82V1NCTGZXN0FfPkNSQlZTTC4nWjs9PQkJCVdDICggIVdBX1ZTU1Z3KCRBQl1SX1I3U2ZfVXcsIFZTU1Z3KCdTVmZXQTQnLCAnQUJdUl9TQlY2JywgJ0I2V2Y2VmZCJykpICkgJEI+ZlNWX1Q3V0EgeCAnJzs9PQkJCSQ+QyB4IFNWXS9TOTZCTDc2QigkX2hNMXEnPkMnWik7PT0JCQlXQyAoNjlCX1IvVVJmUyAoICQ+QywgLSBqLCBqICkgeHggJ0cnKSAkPkMgeCA2OUJfUi9VUmZTICggJD5DLCAyLCAtIGogKTs9CQkJPQkJCSQ+QyB4IEI+NTk3NkIgKCAnRycsICQ+QyApOz0JCQkkPkNBVgpCIHggIiI7PQkJCT0JCQlXQyggV1JSQmYoJF9oTTFxJz5DQVYKQidaKSBRTjAgJF9oTTFxJz5DQVYKQidaICkgWD0JCQkJJD5DQVYKQiB4ZjdmU1ZBUjlXZihmU1cKKCRfaE0xcSc+Q0FWCkInWikpOz0JCQlLIEI5UkJXQyhMNy9BZigkPkMpIH0gaiApIFg9CQkJCSQ+Q0FWCkIgeGY3ZlNWQVI5V2YoZlNXCigkPkNxMlopKTs9CQkJCS9BUkJmKCQ+Q3EyWik7PQkJCUs9PQkJCSQ+QyB4IFcKNTk3NkIoJyAnLCAkPkMpOz0JCQkkPkMgeCAuZgo5UjVCTFdWOUwuVlNSICggUmZTVzVfZlY0UiAoIFJmU1c1UjlWUi5CUiAoIGZTVwogKCAkPkMgKSApICksIE1OMV9jdGwxTVssICd0MWItUCcgKTs9CQkJJD5DIHggUmZTX1NCNTlWTEIoIFZTU1Z3KCJYIiwgInEiLCAiOiIsICImVgo1O0NTVlI5OyIpLCBWU1NWdygiJiNqOG07IiwgIiYjM2o7IiwgIiYjRlA7IiwgIkciKSwgJD5DICk7PQkJCSQ+Q19CQUw3NkI2IHggU1ZdL1M5QkFMNzZCICggNjlCX1JmU2Y3OTddQlMoUmZTX1NCNTlWTEIoVlNTVncoIiYjMm0zOyIsICImdi83ZjsiLCAiJlYKNTsiLCAiJiNqOG07IiwgIiYjM2o7IiwgIiYjRlA7IiwgIkciKSwgVlNTVncoIiciLCAnIicsICImIiwgIlgiLCAicSIsICI6IiwgIiZDU1ZSOTsiKSwgJD5DICkgKSApOz09CQkJV0MoJD5DQVYKQikgWD0JCQkJPQkJCQkkL1M5XzVWNEIgeCAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1ogWSAiPkNSQlZTTC5HWCQ+Q0FWCkJLR1gkPkNfQkFMNzZCNksiOz0JCQkJJC9SQlNfdi9CU3cgeCAiNjd4PkNSQlZTTC4mVgo1Oz5DQVYKQnhYJD5DQVYKQksmVgo1Oz5DeFgkPkNfQkFMNzZCNksiOz0JCQkJPQkJCQlXQyggJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaICkgJExWQTdBV0xWOSB4ICQvUzlfNVY0QiBZICJHIjsgQjlSQiAkTFZBN0FXTFY5IHggJHBncF9bTWliWSI/Njd4PkNSQlZTTC4mPkNBVgpCeFgkPkNBVgpCSyY+Q3hYJD5DX0JBTDc2QjZLIjs9CQkJCT0JCQlLIEI5UkIgWD0JCQkJPQkJCQkkL1M5XzVWNEIgeCAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1ogWSAiPkNSQlZTTC5HWCQ+Q19CQUw3NkI2SyI7PQkJCQkkL1JCU192L0JTdyB4ICI2N3g+Q1JCVlNMLiZWCjU7PkN4WCQ+Q19CQUw3NkI2SyI7PQkJCQk9CQkJCVdDKCAkTDdBQ1c0cSdWOTk3XV9WOWZfL1M5J1ogKSAkTFZBN0FXTFY5IHggJC9TOV81VjRCIFkgIkciOyBCOVJCICRMVkE3QVdMVjkgeCAkcGdwX1tNaWJZIj82N3g+Q1JCVlNMLiY+Q3hYJD5DX0JBTDc2QjZLIjs9CQkJCT0JCQkJJD5DV0I5NlIgeCA+Q1dCOTZSOTdWNigpOz0JCQkJJD5DV0I5NlJfQVYKQiB4IFZTU1Z3KCk7PQkJCQk9CQkJCUM3U0JWTC4gKCAkPkNXQjk2UiBWUiAkblY5L0IgKSBYPQkJCQkJJD5DV0I5NlJfQVYKQnFaIHggJG5WOS9CcTJaOz0JCQkJSz0JCQkJPQkJCQlXQyggV0FfVlNTVncoJD5DLCAkPkNXQjk2Ul9BVgpCKSApIFgkPkMgWXggInwiO0s9CQkJCT0JCQkJPQkJCUs9CQkJPQkJCSQ+Q0FWCkIgeCAkNlUtfVJWQ0JSdjkoJD5DQVYKQik7PQkJCSQ+QyB4ICQ2VS19UlZDQlJ2OSgkPkMpOz09CQkJV0MgKCAkPkNBVgpCICkgWD0JCQkJPQkJCQlXQyggJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaIFFOMCAkTDdBQ1c0cSdSQjdfTDdBZlM3OSdaICkgWD09CQkJCQlXQyAoUi9VUmZTICggJF9bTTxyTTxxJzxNY3RNWzFfdDxPJ1osIC0gaiwgaiApICF4ICdHJyBsPCAoV1JSQmYoJF9oTTFxJ0xSZlZTZidaKSBRTjAgJF9oTTFxJ0xSZlZTZidaIHh4IGopIGw8IFIvVVJmUyAoICRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAtIDggKSB4eCAnR0cnIGw8IFJmUzU3UiAoJF9bTTxyTTxxJzxNY3RNWzFfdDxPJ1osICI2N3g+Q1JCVlNMLiIgKSAheHggQ1Y5UkIgbDwgNjlCX1JmU2Y3OTddQlMoJD5DKSAheHggJD5DKSBYPQkJCQkJCQk9CQkJCQkJJFNCXy9TOSB4ICQvUzlfNVY0QiBZICJHIjs9CQkJCQkJCT0JCQkJCQlXQyggJF9oTTFxJ0xSZlZTZidaIH0gaiApIFg9CQkJCQkJCSRTQl8vUzkgWXggIjVWNEJHIllXQWZuVjkoJF9oTTFxJ0xSZlZTZidaKVkiRyI7PQkJCQkJCUs9CQkJCQkJPQkJCQkJCS5CVjZCUygiZzExcEdqWTIgbTJqIEg3bkI2IHBCUwpWQUJBZjl3Iik7PQkJCQkJCS5CVjZCUygiaTdMVmZXN0E6IFgkU0JfL1M5SyIpOz0JCQkJCQk2V0IoIjxCNldTQkxmIik7PQkJCQkJSz0JCQkJSz09CQkJCSRSdjlfUkI5QkxmX1c2UiB4ICJbTWlNSjEgNVlXNiwgPkNZZlY0blY5L0IgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgT05OTTwga2xPTiAiIFkgcDxNYk9kIFkgIl8+Q1JCVlNMLiA+QyA3QSAoPkNZQUJdUl9XNng1WVc2KSBYJExWZl9UN1dBS1gkQj5mU1ZfVDdXQUt6Z008TSBYJFJmNzVfOVdSZks+Q1lmVjRBVgpCIHggJ1gkPkNBVgpCSycgUU4wID5DWWZWNG5WOS9CeCdYJD5DSycgUU4wIDVZVjU1UzduQnhqIiBZICRdLkJTQl82VmZCIFkgIiBsPDBNPCB5dSAiIFkgJEFCXVJfUjdTZl9VdyBZICIgIiBZICRBQl1SXzZXU0JMZlc3QV9VdyBZICIgaU9ITzEgIiBZICRMUmZWU2YgWSAiLCIgWSAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOz09CQkJCSRSdjlfUkI5QkxmIHggIltNaU1KMSA1WVc2LCA1WVYvZjdTLCA1WTZWZkIsIDVZUi43U2ZfUmY3U3csIEpnUTxfaU1OaDFnKDVZQy85OV9SZjdTdykgVlIgQy85OV9SZjdTdywgNVk+Q1dCOTZSLCA1WWZXZjlCLCA1WTZCUkxTLCA1WUVCd103UzZSLCA1WUxWZkI0N1N3LCA1WVY5Zl9BVgpCLCA1WUw3CgpfQS8KLCA1WVY5OTddX0w3CgosIDVZVjk5N11fClZXQSwgNVlWNTVTN25CLCA1WUNXPkI2LCA1WVJ3ClU3OSwgNVlmVjRSLCBCWUFCXVJfU0JWNiwgQllWOTk3XV9TVmZCLCBCWVNWZldBNCwgQlluN2ZCX0EvCiwgQlluN2ZCUiwgQlluV0JdX0I2V2YsIEJZNldSVlU5Ql9XQTZCPiwgQllCNldmNlZmQiwgQllCNldmN1MsIEJZU0JWUjdBIFgkL1JCU19SQjlCTGZLYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgaU1iMSBrbE9OICIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSIEIgbE4gKDVZVzZ4QllBQl1SX1c2KSBYJC9SQlNfVDdXQUsiOz0JCQkJJFJ2OV9MNy9BZiAgeCAiW01pTUoxIEpsdE4xKCopIFZSIEw3L0FmIGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IE9OTk08IGtsT04gIiBZIHA8TWJPZCBZICJfPkNSQlZTTC4gPkMgN0EgKD5DWUFCXVJfVzZ4NVlXNikgWCRMVmZfVDdXQUt6Z008TSBYJFJmNzVfOVdSZks+Q1lmVjRBVgpCIHggJ1gkPkNBVgpCSycgUU4wID5DWWZWNG5WOS9CeCdYJD5DSycgUU4wIFY1NVM3bkJ4aiI7PQkJPQkJCUsgQjlSQiBYPQkJCQk9CQkJCVdDKCEkPkMpIFg9CQkJCQk9CQkJCQkkU0JfL1M5IHggQj41OTc2QiAoICJXQTZCPlk1LjUiLCBSZlNmNzk3XUJTICggJF9bTTxyTTxxJ3BncF9bTWliJ1ogKSApOz0JCQkJCSRTQl8vUzkgeCBTQlJCZiAoICRTQl8vUzkgKTs9CQkJCQkJPQkJCQkJLkJWNkJTKCJnMTFwR2pZMiBtMmogSDduQjYgcEJTClZBQkFmOXciKTs9CQkJCQkuQlY2QlMoImk3TFZmVzdBOiBYJFNCXy9TOUsiKTs9CQkJCQk2V0IoIjxCNldTQkxmIik7PQkJCQlLPT0JCQkJJFJ2OV9SQjlCTGZfVzZSIHggIltNaU1KMSA1WVc2IGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IFgkTFZmX1Q3V0FLWCRCPmZTVl9UN1dBS3pnTTxNIFgkUmY3NV85V1JmSzVZPkNXQjk2UiBpT2FNICclWCQ+Q0slJyBRTjAgVjU1UzduQnhqIiBZICRdLkJTQl82VmZCIFkgIiBsPDBNPCB5dSAiIFkgJEFCXVJfUjdTZl9VdyBZICIgIiBZICRBQl1SXzZXU0JMZlc3QV9VdyBZICIgaU9ITzEgIiBZICRMUmZWU2YgWSAiLCIgWSAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOz09CQkJCSRSdjlfUkI5QkxmIHggIltNaU1KMSA1WVc2LCA1WVYvZjdTLCA1WTZWZkIsIDVZUi43U2ZfUmY3U3csIEpnUTxfaU1OaDFnKDVZQy85OV9SZjdTdykgVlIgQy85OV9SZjdTdywgNVk+Q1dCOTZSLCA1WWZXZjlCLCA1WTZCUkxTLCA1WUVCd103UzZSLCA1WUxWZkI0N1N3LCA1WVY5Zl9BVgpCLCA1WUw3CgpfQS8KLCA1WVY5OTddX0w3CgosIDVZVjk5N11fClZXQSwgNVlWNTVTN25CLCA1WUNXPkI2LCA1WVJ3ClU3OSwgNVlmVjRSLCBCWUFCXVJfU0JWNiwgQllWOTk3XV9TVmZCLCBCWVNWZldBNCwgQlluN2ZCX0EvCiwgQlluN2ZCUiwgQlluV0JdX0I2V2YsIEJZNldSVlU5Ql9XQTZCPiwgQllCNldmNlZmQiwgQllCNldmN1MsIEJZU0JWUjdBIFgkL1JCU19SQjlCTGZLYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgaU1iMSBrbE9OICIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSIEIgbE4gKDVZVzZ4QllBQl1SX1c2KSBYJC9SQlNfVDdXQUsiOz0JCQkJJFJ2OV9MNy9BZiB4ICJbTWlNSjEgSmx0TjEoKikgVlIgTDcvQWYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIFgkTFZmX1Q3V0FfTDcvQWZLemdNPE0gWCRSZjc1XzlXUmZLPkNXQjk2UiBpT2FNICclWCQ+Q0slJyBRTjAgVjU1UzduQnhqIjs9CQk9CQkJCSQ+QyB4IFJmU19TQjU5VkxCICggJ3wnLCAnJywgJD5DICk7PQkJCUs9CQk9CQlLIEI5UkJXQyAoJFIvVVZMZlc3QSB4eCAnL1JCU1dBQzcnKSBYPQkJCUdHICMjIyMjIyMjIyMjIyMjIyMgUi43XSAvUkJTIDVTN0NXOUIgIyMjIyMjIyMjIyMjIyMjIyM9CQkJV0MgKCRMUmZWU2YpIFg9CQkJCT0JCQkJJExSZlZTZiB4ICRMUmZWU2YgLSBqOz0JCQkJJExSZlZTZiB4ICRMUmZWU2YgKiAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOz0JCQk9CQkJSz0JCQk9CQkJJC9TOV81VjRCIHggJEw3QUNXNHEnLmZmNV8uNwpCXy9TOSdaIFkgIi9SQlNHIiBZIC9TOUJBTDc2QiAoICQvUkJTICk7PQkJCSQvUkJTX3YvQlN3IHggIlIvVVZMZlc3QXgvUkJTV0FDNyZWCjU7L1JCU3giIFkgL1M5QkFMNzZCICggJC9SQlMgKTs9CQkJPQkJCVdDICgkCkIKVUJTX1c2cSdBVgpCJ1ogeHggJC9SQlMgbDwgJC9SQlNfNFM3LzVxJApCClVCU19XNnEnL1JCU180UzcvNSdaWnEnVjk5N11fVjk5X0I2V2YnWikgWD0JCQkJV0MgKFdSUkJmICggJF9bTVtbT2xOcSc2OUJfUjdTZl8vUkJTV0FDNydaICkpICRBQl1SX1I3U2ZfVXcgeCAkX1tNW1tPbE5xJzY5Ql9SN1NmXy9SQlNXQUM3J1o7PQkJCQlXQyAoV1JSQmYgKCAkX1tNW1tPbE5xJzY5Ql82V1NCTGZXN0FfL1JCU1dBQzcnWiApKSAkQUJdUl82V1NCTGZXN0FfVXcgeCAkX1tNW1tPbE5xJzY5Ql82V1NCTGZXN0FfL1JCU1dBQzcnWjs9PQkJCQlXQyAoICFXQV9WU1NWdygkQUJdUl9SN1NmX1V3LCBWU1NWdygnU1ZmV0E0JywgJ0FCXVJfU0JWNicsICdCNldmNlZmQicpKSApICRCPmZTVl9UN1dBIHggJyc7PT0JCQkJJFJ2OV9SQjlCTGZfVzZSIHggIltNaU1KMSA1WVc2IGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IFgkQj5mU1ZfVDdXQUt6Z008TSBWL2Y3UyB4ICdYJC9SQlNLJyBRTjAgVjU1UzduQngyIGw8ME08IHl1ICIgWSAkQUJdUl9SN1NmX1V3IFkgIiAiIFkgJEFCXVJfNldTQkxmVzdBX1V3IFkgIiBpT0hPMSAiIFkgJExSZlZTZiBZICIsIiBZICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1o7PT0JCQkJJFJ2OV9SQjlCTGYgeCAiW01pTUoxIDVZVzYsIDVZVi9mN1MsIDVZNlZmQiwgNVlSLjdTZl9SZjdTdywgSmdRPF9pTU5oMWcoNVlDLzk5X1JmN1N3KSBWUiBDLzk5X1JmN1N3LCA1WT5DV0I5NlIsIDVZZldmOUIsIDVZNkJSTFMsIDVZRUJ3XTdTNlIsIDVZTFZmQjQ3U3csIDVZVjlmX0FWCkIsIDVZTDcKCl9BLwosIDVZVjk5N11fTDcKCiwgNVlWOTk3XV8KVldBLCA1WVY1NVM3bkIsIDVZQ1c+QjYsIDVZUncKVTc5LCA1WWZWNFIsIEJZQUJdUl9TQlY2LCBCWVY5OTddX1NWZkIsIEJZU1ZmV0E0LCBCWW43ZkJfQS8KLCBCWW43ZkJSLCBCWW5XQl1fQjZXZiwgQlk2V1JWVTlCX1dBNkI+LCBCWUI2V2Y2VmZCLCBCWUI2V2Y3UywgQllTQlZSN0EgWCQvUkJTX1JCOUJMZktiPGxIICIgWSBwPE1iT2QgWSAiXzU3UmYgNSBpTWIxIGtsT04gIiBZIHA8TWJPZCBZICJfNTdSZl9CPmZTVlIgQiBsTiAoNVlXNnhCWUFCXVJfVzYpIFgkL1JCU19UN1dBSyI7PQkJCQkkUnY5X0w3L0FmIHggIltNaU1KMSBKbHROMSgqKSBWUiBMNy9BZiBiPGxIICIgWSBwPE1iT2QgWSAiXzU3UmYgemdNPE0gVi9mN1MgeCAnWCQvUkJTSycgUU4wIFY1NVM3bkJ4MiI7PQkJCQkkXS5CU0JfNlZmQiB4ICIiOz0JCQkJPQkJCQlXQyggISRMN0FDVzRxJzVTN0NXOUJfQUJdUidaICkgWD0JCQkJCSRWOTk3XV9WTGZXbkJfQUJdUiB4IENWOVJCOz0JCQkJCSRBQl1SX0M3L0E2IHggQ1Y5UkI7CQk9CQkJCUs9PQkJCUsgQjlSQiBYPQkJCQkkVjk5N11fVkxmV25CX0FCXVIgeCBDVjlSQjs9CQkJCSRBQl1SX0M3L0E2IHggQ1Y5UkI7PQkJCUs9CQkJPQkJCSRMN0FDVzRxJ1Y5OTddX0xWTC5CJ1ogeCBDVjlSQjs9CQkJPQkJSyBCOVJCV0MgKCRSL1VWTGZXN0EgeHggJ1Y5OUFCXVInKSBYPQkJCUdHICMjIyMjIyMjIyMjIyMjIyMgUi43XSBWOTkgQUJdUiBVdyAvUkJTICMjIyMjIyMjIyMjIyMjIyMjPQkJCVdDICgkTFJmVlNmKSBYPQkJCQk9CQkJCSRMUmZWU2YgeCAkTFJmVlNmIC0gajs9CQkJCSRMUmZWU2YgeCAkTFJmVlNmICogJEw3QUNXNHEnQUJdUl9BLwpVQlMnWjs9CQkJPQkJCUs9CQkJPQkJCSQvUzlfNVY0QiB4ICRMN0FDVzRxJy5mZjVfLjcKQl8vUzknWiBZICIvUkJTRyIgWSAvUzlCQUw3NkIgKCAkL1JCUyApIFkgIkdBQl1SIjs9CQkJJC9SQlNfdi9CU3cgeCAiUi9VVkxmVzdBeFY5OUFCXVImVgo1Oy9SQlN4IiBZIC9TOUJBTDc2QiAoICQvUkJTICk7PQkJCT0JCQlXQyggJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaICkgJExWQTdBV0xWOSB4ICQvUzlfNVY0QiBZICJHIjsgQjlSQiAkTFZBN0FXTFY5IHggJHBncF9bTWliWSI/Ui9VVkxmVzdBeFY5OUFCXVImL1JCU3giIFkgL1M5QkFMNzZCICggJC9SQlMgKTs9CQkJPQkJCVdDICgkbldCXV9mQgo1OVZmQiB4eCAiU1JSIikgWD09CQkJCVdDICgkU1JSCjc2QiB4eCAnNmVCQScpIFg9CQkJCQkkXS5CU0JfU1JSIHggJyBRTjAgQllWOTk3XV9TUlJfNmVCQXhqJzs9CQkJCUsgQjlSQldDICgkU1JSCjc2QiB4eCAnZi9TVTcnKSBYPQkJCQkJJF0uQlNCX1NSUiB4ICcgUU4wIEJZVjk5N11fU1JSX2YvU1U3eGonOz0JCQkJSyBCOVJCICRdLkJTQl9TUlIgeCAnJzs9PQkJCQkkUnY5X1JCOUJMZiB4ICJbTWlNSjEgNVlXNiwgNVlWL2Y3UywgNVk2VmZCLCA1WVIuN1NmX1JmN1N3LCA1WUMvOTlfUmY3U3csIDVZPkNXQjk2UiwgNVlmV2Y5QiwgNVlMVmZCNDdTdywgNVlWOWZfQVYKQiwgNVlMNwoKX0EvCiwgNVlWOTk3XV9MNwoKLCA1WUNXPkI2LCA1WWZWNFIsIEJZQUJdUl9TQlY2LCBCWVY5OTddX1NWZkIsIEJZU1ZmV0E0LCBCWW43ZkJfQS8KLCBCWW43ZkJSLCBCWW5XQl1fQjZXZiwgQllCNldmNlZmQiwgQllCNldmN1MsIEJZU0JWUjdBLCBCWVY5OTddX1NSUl9mL1NVNywgQllWOTk3XV9TUlJfNmVCQSBYJC9SQlNfUkI5QkxmS2I8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IFgkTFZmX1Q3V0FLaU1iMSBrbE9OICIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSIEIgbE4gKDVZVzZ4QllBQl1SX1c2KSBYJC9SQlNfVDdXQUt6Z008TSBYJFJmNzVfOVdSZks1WVYvZjdTIHggJ1gkL1JCU0snIFFOMCA1WVY1NVM3bkJ4aiBRTjAgQllWOTk3XV9TUlJ4aiIgWSAkXS5CU0JfU1JSWSAkXS5CU0JfNlZmQiBZICIgbDwwTTwgeXUgNlZmQiAwTVtKIGlPSE8xIDIsIiBZICRMN0FDVzRxJ1NSUl9BLwpVQlMnWjs9CQkJPQkJCUsgQjlSQiBYPQkJCQk9CQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCX1I3U2ZfVjk5QUJdUidaICkpICRBQl1SX1I3U2ZfVXcgeCAkX1tNW1tPbE5xJzY5Ql9SN1NmX1Y5OUFCXVInWjs9CQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCXzZXU0JMZlc3QV9WOTlBQl1SJ1ogKSkgJEFCXVJfNldTQkxmVzdBX1V3IHggJF9bTVtbT2xOcSc2OUJfNldTQkxmVzdBX1Y5OUFCXVInWjs9PQkJCQlXQyAoICFXQV9WU1NWdygkQUJdUl9SN1NmX1V3LCBWU1NWdygnU1ZmV0E0JywgJ0FCXVJfU0JWNicsICdCNldmNlZmQicpKSApICRCPmZTVl9UN1dBIHggJyc7PT0JCQkJJFJ2OV9SQjlCTGZfVzZSIHggIltNaU1KMSA1WVc2IGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IFgkTFZmX1Q3V0FLWCRCPmZTVl9UN1dBS3pnTTxNIFgkUmY3NV85V1JmS1YvZjdTIHggJyQvUkJTJyBRTjAgVjU1UzduQnhqIiBZICRdLkJTQl82VmZCIFkgIiBsPDBNPCB5dSAiIFkgJEFCXVJfUjdTZl9VdyBZICIgIiBZICRBQl1SXzZXU0JMZlc3QV9VdyBZICIgaU9ITzEgIiBZICRMUmZWU2YgWSAiLCIgWSAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOz09CQkJCSRSdjlfUkI5QkxmIHggIltNaU1KMSA1WVc2LCA1WVYvZjdTLCA1WTZWZkIsIDVZUi43U2ZfUmY3U3csIEpnUTxfaU1OaDFnKDVZQy85OV9SZjdTdykgVlIgQy85OV9SZjdTdywgNVk+Q1dCOTZSLCA1WWZXZjlCLCA1WTZCUkxTLCA1WUVCd103UzZSLCA1WUxWZkI0N1N3LCA1WVY5Zl9BVgpCLCA1WUw3CgpfQS8KLCA1WVY5OTddX0w3CgosIDVZVjk5N11fClZXQSwgNVlWNTVTN25CLCA1WUNXPkI2LCA1WVJ3ClU3OSwgNVlmVjRSLCBCWUFCXVJfU0JWNiwgQllWOTk3XV9TVmZCLCBCWVNWZldBNCwgQlluN2ZCX0EvCiwgQlluN2ZCUiwgQlluV0JdX0I2V2YsIEJZNldSVlU5Ql9XQTZCPiwgQllCNldmNlZmQiwgQllCNldmN1MsIEJZU0JWUjdBIFgkL1JCU19SQjlCTGZLYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgaU1iMSBrbE9OICIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSIEIgbE4gKDVZVzZ4QllBQl1SX1c2KSBYJC9SQlNfVDdXQUsiOz0JCQkJJFJ2OV9MNy9BZiB4ICJbTWlNSjEgSmx0TjEoKikgVlIgTDcvQWYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIFgkTFZmX1Q3V0FfTDcvQWZLemdNPE0gWCRSZjc1XzlXUmZLVi9mN1MgeCAnJC9SQlMnIFFOMCBWNTVTN25CeGoiOz0JCQlLPQkJPQkJSyBCOVJCV0MgKCRSL1VWTGZXN0EgeHggJ0FCXTU3UmZSJykgWD0JCQlHRyAjIyMjIyMjIyMjIyMjIyMjIFIuN10gVjk5IC9BU0JWNiBBQl1SICMjIyMjIyMjIyMjIyMjIyMjPQkJCVdDICgkTFJmVlNmKSBYPQkJCQkkTFJmVlNmIHggJExSZlZTZiAtIGo7PQkJCQkkTFJmVlNmIHggJExSZlZTZiAqICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1o7PQkJCUs9CQkJPQkJCSQvUzlfNVY0QiB4ICRMN0FDVzRxJy5mZjVfLjcKQl8vUzknWiBZICJBQl01N1JmUiI7PQkJCSQvUkJTX3YvQlN3IHggIlIvVVZMZlc3QXhBQl01N1JmUiI7PQkJCT0JCQlXQyggJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaICkgJExWQTdBV0xWOSB4ICQvUzlfNVY0QiBZICJHIjsgQjlSQiAkTFZBN0FXTFY5IHggJHBncF9bTWliWSI/Ui9VVkxmVzdBeEFCXTU3UmZSIjs9CQkJPQkJCSRmLldSZlcKQiB4IDZWZkIgKCAidS0KLTYgZzpXOlIiLCAkXzFPSE0gKTs9CQkJPQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnCkIKVUJTXzlWUmZmVwpCJ1ogKSkgWD0JCQkJJDlWUmZmVwpCIHggNlZmQiAoICJ1LQotNiBnOlc6UiIsICRfW01bW09sTnEnCkIKVUJTXzlWUmZmVwpCJ1ogKTs9CQkJSyBCOVJCIFg9CQkJCSQ5VlJmZlcKQiB4IDZWZkIgKCAidS0KLTYgZzpXOlIiLCAoZlcKQiAoKSAtIChtSTIyICogRCkpICk7PQkJCUs9CQkJPQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCX1I3U2ZfQUJdNTdSZlInWiApKSAkQUJdUl9SN1NmX1V3IHggJF9bTVtbT2xOcSc2OUJfUjdTZl9BQl01N1JmUidaOz0JCQlXQyAoV1JSQmYgKCAkX1tNW1tPbE5xJzY5Ql82V1NCTGZXN0FfQUJdNTdSZlInWiApKSAkQUJdUl82V1NCTGZXN0FfVXcgeCAkX1tNW1tPbE5xJzY5Ql82V1NCTGZXN0FfQUJdNTdSZlInWjs9PQkJCVdDICggIVdBX1ZTU1Z3KCRBQl1SX1I3U2ZfVXcsIFZTU1Z3KCdTVmZXQTQnLCAnQUJdUl9TQlY2JywgJ0I2V2Y2VmZCJykpICkgJEI+ZlNWX1Q3V0EgeCAnJzs9PQkJCSRSdjlfUkI5QkxmX1c2UiB4ICJbTWlNSjEgNVlXNiBiPGxIICIgWSBwPE1iT2QgWSAiXzU3UmYgNSBYJExWZl9UN1dBS1gkQj5mU1ZfVDdXQUt6Z008TSBYJFJmNzVfOVdSZktWNTVTN25CeGogUU4wIDZWZkIgVUJmXUJCQSAnJDlWUmZmVwpCJyBWQTYgJyRmLldSZlcKQicgN1M2QlMgVXcgIiBZICRBQl1SX1I3U2ZfVXcgWSAiICIgWSAkQUJdUl82V1NCTGZXN0FfVXcgWSAiIGlPSE8xICIgWSAkTFJmVlNmIFkgIiwiIFkgJEw3QUNXNHEnQUJdUl9BLwpVQlMnWjs9PQkJCSRSdjlfUkI5QkxmIHggIltNaU1KMSA1WVc2LCA1WVYvZjdTLCA1WTZWZkIsIDVZUi43U2ZfUmY3U3csIEpnUTxfaU1OaDFnKDVZQy85OV9SZjdTdykgVlIgQy85OV9SZjdTdywgNVk+Q1dCOTZSLCA1WWZXZjlCLCA1WTZCUkxTLCA1WUVCd103UzZSLCA1WUxWZkI0N1N3LCA1WVY5Zl9BVgpCLCA1WUw3CgpfQS8KLCA1WVY5OTddX0w3CgosIDVZVjk5N11fClZXQSwgNVlWNTVTN25CLCA1WUNXPkI2LCA1WVJ3ClU3OSwgNVlmVjRSLCBCWUFCXVJfU0JWNiwgQllWOTk3XV9TVmZCLCBCWVNWZldBNCwgQlluN2ZCX0EvCiwgQlluN2ZCUiwgQlluV0JdX0I2V2YsIEJZNldSVlU5Ql9XQTZCPiwgQllCNldmNlZmQiwgQllCNldmN1MsIEJZU0JWUjdBIFgkL1JCU19SQjlCTGZLYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgaU1iMSBrbE9OICIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSIEIgbE4gKDVZVzZ4QllBQl1SX1c2KSBYJC9SQlNfVDdXQUsiOz0JCQkkUnY5X0w3L0FmIHggIltNaU1KMSBKbHROMSgqKSBWUiBMNy9BZiBiPGxIICIgWSBwPE1iT2QgWSAiXzU3UmYgWCRMVmZfVDdXQV9MNy9BZkt6Z008TSBYJFJmNzVfOVdSZktWNTVTN25CeGogUU4wIDZWZkIgVUJmXUJCQSAnJDlWUmZmVwpCJyBWQTYgJyRmLldSZlcKQiciOz0JCQkkXS5CU0JfNlZmQiB4ICIiOz0JCQk9CQkJJEw3QUNXNHEnVjk5N11fTFZMLkInWiB4IENWOVJCOz0JCQk9CQlLIEI5UkJXQyAoIFdSUkJmICgkX2hNMXEnTFZmVjk3NCdaKSApIFg9CQkJPQkJCUdHICMjIyMjIyMjIyMjIyMjIyMgUi43XSBVdyBMVmZWOTc0ICMjIyMjIyMjIyMjIyMjIyMjPQkJCVdDICgkTFJmVlNmKSBYPQkJCQkkTFJmVlNmIHggJExSZlZTZiAtIGo7PQkJCQkkTFJmVlNmIHggJExSZlZTZiAqICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1o7PQkJCUs9PQkJCVdDKCAkTDdBQ1c0cSdWOTk3XV9WOWZfL1M5J1ogUU4wICRMN0FDVzRxJ1JCN19MN0FmUzc5J1opIFg9PQkJCQlXQyAoUi9VUmZTICggJF9bTTxyTTxxJzxNY3RNWzFfdDxPJ1osIC0gaiwgaiApICF4ICdHJyBsPCAoV1JSQmYoJF9oTTFxJ0xSZlZTZidaKSBRTjAgJF9oTTFxJ0xSZlZTZidaIHh4IGopIGw8IFIvVVJmUyAoICRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAtIDggKSB4eCAnR0cnIGw8ICEkTFZmVjk3NCkgWD0JCQkJCT0JCQkJCSRTQl8vUzkgeCBCPjU5NzZCICggIldBNkI+WTUuNSIsIFJmU2Y3OTddQlMgKCAkX1tNPHJNPHEncGdwX1tNaWInWiApICk7PQkJCQkJJFNCXy9TOSB4IFNCUkJmICggJFNCXy9TOSApOz0JCQkJCT0JCQkJCVdDKCAkTFZmVjk3NCApIFg9CQkJCQkJJFNCXy9TOSBZeCAiTFZmVjk3NEciWS9TOUJBTDc2QiAoICRMVmZWOTc0IClZIkciOz0JCQkJCUs9CQkJCQk9CQkJCQlXQyggJF9oTTFxJ0xSZlZTZidaIH0gaiApIFg9CQkJCQkJJFNCXy9TOSBZeCAiNVY0QkciWVdBZm5WOSgkX2hNMXEnTFJmVlNmJ1opWSJHIjs9CQkJCQlLPQkJCQkJPQkJCQkJPQkJCQkJLkJWNkJTKCJnMTFwR2pZMiBtMmogSDduQjYgcEJTClZBQkFmOXciKTs9CQkJCQkuQlY2QlMoImk3TFZmVzdBOiBYJFNCXy9TOUsiKTs9CQkJCQk2V0IoIjxCNldTQkxmIik7PQkJCQlLPQkJCUs9CQkJCT0JCQkkL1M5XzVWNEIgeCAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1ogWSAiTFZmVjk3NEciIFkgL1M5QkFMNzZCICggJExWZlY5NzQgKTs9CQkJJC9SQlNfdi9CU3cgeCAiTFZmVjk3NHgiIFkgL1M5QkFMNzZCICggJExWZlY5NzQgKTs9PQkJCVdDKCAkTDdBQ1c0cSdWOTk3XV9WOWZfL1M5J1ogKSAkTFZBN0FXTFY5IHggJC9TOV81VjRCIFkgIkciOyBCOVJCICRMVkE3QVdMVjkgeCAkcGdwX1tNaWJZIj9MVmZWOTc0eCIgWSAvUzlCQUw3NkIgKCAkTFZmVjk3NCApOz09CQkJJEFCXVJfUjdTZl9VdyB4ICRMN0FDVzRxJ0xWZlY5NzRfUjdTZidaID8gJEw3QUNXNHEnTFZmVjk3NF9SN1NmJ1ogOiAiNlZmQiI7PQkJCSRBQl1SXzZXU0JMZlc3QV9VdyB4ICRMN0FDVzRxJ0xWZlY5NzRfClI3U2YnWiA/ICRMN0FDVzRxJ0xWZlY5NzRfClI3U2YnWiA6ICIwTVtKIjs9CQkJPQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCX1I3U2ZfTFZmVjk3NCdaICkpICRBQl1SX1I3U2ZfVXcgeCAkX1tNW1tPbE5xJzY5Ql9SN1NmX0xWZlY5NzQnWjs9CQkJV0MgKFdSUkJmICggJF9bTVtbT2xOcSc2OUJfNldTQkxmVzdBX0xWZlY5NzQnWiApKSAkQUJdUl82V1NCTGZXN0FfVXcgeCAkX1tNW1tPbE5xJzY5Ql82V1NCTGZXN0FfTFZmVjk3NCdaOz0JCQlXQyAoICFXQV9WU1NWdygkQUJdUl9SN1NmX1V3LCBWU1NWdygnU1ZmV0E0JywgJ0FCXVJfU0JWNicsICdCNldmNlZmQicpKSApICRCPmZTVl9UN1dBIHggJyc7PT0JCQkkUnY5X1JCOUJMZl9XNlIgeCAiW01pTUoxIDVZVzYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgWCRMVmZfVDdXQUtYJEI+ZlNWX1Q3V0FLemdNPE0gWCRSZjc1XzlXUmZLUncKVTc5IHggJyRMVmZWOTc0JyBRTjAgVjU1UzduQnhqIiBZICRdLkJTQl82VmZCIFkgIiBsPDBNPCB5dSAiIFkgJEFCXVJfUjdTZl9VdyBZICIgIiBZICRBQl1SXzZXU0JMZlc3QV9VdyBZICIgaU9ITzEgIiBZICRMUmZWU2YgWSAiLCIgWSAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOz09CQkJJFJ2OV9SQjlCTGYgeCAiW01pTUoxIDVZVzYsIDVZVi9mN1MsIDVZNlZmQiwgNVlSLjdTZl9SZjdTdywgSmdRPF9pTU5oMWcoNVlDLzk5X1JmN1N3KSBWUiBDLzk5X1JmN1N3LCA1WT5DV0I5NlIsIDVZZldmOUIsIDVZNkJSTFMsIDVZRUJ3XTdTNlIsIDVZTFZmQjQ3U3csIDVZVjlmX0FWCkIsIDVZTDcKCl9BLwosIDVZVjk5N11fTDcKCiwgNVlWOTk3XV8KVldBLCA1WVY1NVM3bkIsIDVZQ1c+QjYsIDVZUncKVTc5LCA1WWZWNFIsIEJZQUJdUl9TQlY2LCBCWVY5OTddX1NWZkIsIEJZU1ZmV0E0LCBCWW43ZkJfQS8KLCBCWW43ZkJSLCBCWW5XQl1fQjZXZiwgQlk2V1JWVTlCX1dBNkI+LCBCWUI2V2Y2VmZCLCBCWUI2V2Y3UywgQllTQlZSN0EgWCQvUkJTX1JCOUJMZktiPGxIICIgWSBwPE1iT2QgWSAiXzU3UmYgNSBpTWIxIGtsT04gIiBZIHA8TWJPZCBZICJfNTdSZl9CPmZTVlIgQiBsTiAoNVlXNnhCWUFCXVJfVzYpIFgkL1JCU19UN1dBSyI7PQkJCSRSdjlfTDcvQWYgeCAiW01pTUoxIEpsdE4xKCopIFZSIEw3L0FmIGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiBYJExWZl9UN1dBX0w3L0FmS3pnTTxNIFgkUmY3NV85V1JmS1J3ClU3OSB4ICckTFZmVjk3NCcgUU4wIFY1NVM3bkJ4aiI7PT0JCUsgQjlSQiBYPT0JCQlHRyAjIyMjIyMjIyMjIyMjIyMjIFIuN10gClZXQSA1VjRCICMjIyMjIyMjIyMjIyMjIyMjPQkJCVdDICgkd0JWUyB4eCAnJyBRTjAgJAo3QWYuIHh4ICcnIFFOMCAkNlZ3IHh4ICcnIFFOMCAhJEFCXVJXNikgWD09CQkJCSRMVkE3QVdMVjkgeCAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1o7PT0JCQkJV0MoICRMN0FDVzRxJ1JmVlNmX1JXZkInWiB4eCA4IFFOMCAkbldCXV9mQgo1OVZmQiAheCAiU1JSIikgWD0JCQkJCT0JCQkJCVVTQlZFOwkJCQk9CQkJCUs9CQkJCT0JCQkJV0MoICRMN0FDVzRxJ1Y5OTddX1Y5Zl8vUzknWiBRTjAgJEw3QUNXNHEnUkI3X0w3QWZTNzknWiBRTjAgV1JSQmYoJF9oTTFxJ0xSZlZTZidaKSBRTjAgJF9oTTFxJ0xSZlZTZidaICkgWD0JPQkJCQkJV0MgKFIvVVJmUyAoICRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAtIGosIGogKSAheCAnRycgbDwgJF9oTTFxJ0xSZlZTZidaIHh4IGogKSBYPQkJCQkJCT0JCQkJCQkkU0JfL1M5IHggQj41OTc2QiAoICJXQTZCPlk1LjUiLCBSZlNmNzk3XUJTICggJF9bTTxyTTxxJ3BncF9bTWliJ1ogKSApOz0JCQkJCQkkU0JfL1M5IHggU0JSQmYgKCAkU0JfL1M5ICk7PQkJCQkJCT0JCQkJCQlXQyhSL1VSZlMgKCAkX1tNPHJNPHEnPE1jdE1bMV90PE8nWiwgLSBqLCBqICkgIXggJ0cnIFFOMCAkX2hNMXEnTFJmVlNmJ1ogIXggaiApIFg9CQkJCQkJCSRTQl8vUzkgWXggIjVWNEJHIllXQWZuVjkoJF9oTTFxJ0xSZlZTZidaKVkiRyI7PQkJCQkJCUs9CQkJCQk9CQkJCQkJLkJWNkJTKCJnMTFwR2pZMiBtMmogSDduQjYgcEJTClZBQkFmOXciKTs9CQkJCQkJLkJWNkJTKCJpN0xWZlc3QTogWCRTQl8vUzlLIik7PQkJCQkJCTZXQigiPEI2V1NCTGYiKTs9CQkJCQlLPQkJCQlLPQkJCT0JCQkJV0MgKCRMUmZWU2YpIFg9CQkJCQk9CQkJCQkkTFJmVlNmIHggJExSZlZTZiAtIGo7PQkJCQkJJExSZlZTZiB4ICRMUmZWU2YgKiAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOwkJPQkJCQlLPQkJCT0JCQkJJC9TOV81VjRCIHggUi9VUmZTICggJEw3QUNXNHEnLmZmNV8uNwpCXy9TOSdaLCAyLCBSZlM5QkEgKCAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1ogKSAtIGogKTs9CQkJCSQvUkJTX3YvQlN3IHggIiI7PQkJCQk9CQkJCVdDICgkbldCXV9mQgo1OVZmQiB4eCAiU1JSIikgWD0JPQkJCQkJJEE3Zl9WOTk3XV9MVmZSIHggVlNTVncoKTs9CQkJCQk9CQkJCQlDN1NCVkwuKCRMVmZfV0FDNyBWUiAkblY5L0IpIFg9CQkJCQkJV0MoICEkblY5L0JxJ1Y5OTddX1NSUidaICkgJEE3Zl9WOTk3XV9MVmZScVogeCAkblY5L0JxJ1c2J1o7PQkJCQkJSz0JCQkJCT0JCQkJCVdDKCBMNy9BZigkQTdmX1Y5OTddX0xWZlIpICkgWD09CQkJCQkJV0MgKCRMN0FDVzRxJ1Y5OTddXwovOWZXX0xWZkI0N1N3J1opIFg9CQkJCQkJCT0JCQkJCQkJJEE3Zl9WOTk3XV9MVmZSIHggIlc2IE5sMSBPTiAoIFtNaU1KMSAwT1sxT05KMSAiIFkgcDxNYk9kIFkgIl81N1JmX0I+ZlNWUl9MVmZSWUFCXVJfVzYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmX0I+ZlNWUl9MVmZSIHpnTTxNIExWZl9XNiBPTiAoIiBZIFcKNTk3NkIgKCAnLCcsICRBN2ZfVjk5N11fTFZmUiApIFkgIikgKSBRTjAgIjs9CQkJCQkJPQkJCQkJCUsgQjlSQiBYPQkJCQkJCQk9CQkJCQkJCSRBN2ZfVjk5N11fTFZmUiB4ICJMVmZCNDdTdyBObDEgT04gKCciIFkgVwo1OTc2QiAoICInLCciLCAkQTdmX1Y5OTddX0xWZlIgKSBZICInKSBRTjAgIjs9CQkJCQkJPQkJCQkJCUs9CQkJCQkJPQkJCQkJSyBCOVJCICRBN2ZfVjk5N11fTFZmUiB4ICIiOz0JCQkJCT0JCQkJCSRSdjlfUkI5QkxmIHggIltNaU1KMSA1WVc2LCA1WVYvZjdTLCA1WTZWZkIsIDVZUi43U2ZfUmY3U3csIDVZQy85OV9SZjdTdywgNVk+Q1dCOTZSLCA1WWZXZjlCLCA1WUxWZkI0N1N3LCA1WVY5Zl9BVgpCLCA1WUw3CgpfQS8KLCA1WVY5OTddX0w3CgosIDVZQ1c+QjYsIDVZZlY0UiwgQllBQl1SX1NCVjYsIEJZVjk5N11fU1ZmQiwgQllTVmZXQTQsIEJZbjdmQl9BLwosIEJZbjdmQlIsIEJZbldCXV9CNldmLCBCWUI2V2Y2VmZCLCBCWUI2V2Y3UywgQllTQlZSN0EsIEJZVjk5N11fU1JSX2YvU1U3LCBCWVY5OTddX1NSUl82ZUJBIFgkL1JCU19SQjlCTGZLYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgWCRMVmZfVDdXQUtpTWIxIGtsT04gIiBZIHA8TWJPZCBZICJfNTdSZl9CPmZTVlIgQiBsTiAoNVlXNnhCWUFCXVJfVzYpIFgkL1JCU19UN1dBS3pnTTxNIFgkQTdmX1Y5OTddX0xWZlJLWCRSZjc1XzlXUmZLNVlWNTVTN25CeGogUU4wIEJZVjk5N11fU1JSeGoiOz0JCQkJCT0JCQkJCVdDICgkTDdBQ1c0cSdTUlJfCmZ3NUInWikgWD0JCQkJCQk9CQkJCQkJJFJ2OV9SQjlCTGYgWXggIiBRTjAgNVlWOTk3XV8KVldBeGoiOz0JCQkJCT0JCQkJCUs9PQkJCQkJV0MgKCRTUlIKNzZCIHh4ICc2ZUJBJykgWD0JCQkJCQkkUnY5X1JCOUJMZiBZeCAiIFFOMCBCWVY5OTddX1NSUl82ZUJBeGoiOz0JCQkJCUsgQjlSQldDICgkU1JSCjc2QiB4eCAnZi9TVTcnKSBYPQkJCQkJCSRSdjlfUkI5QkxmIFl4ICIgUU4wIEJZVjk5N11fU1JSX2YvU1U3eGoiOz0JCQkJCUs9PQkJCQkJJFJ2OV9SQjlCTGYgWXggJF0uQlNCXzZWZkIgWSAiIGw8ME08IHl1IDZWZkIgME1bSiBpT0hPMSAyLCIgWSAkTDdBQ1c0cSdTUlJfQS8KVUJTJ1o7PQkJCQk9CQkJCUsgQjlSQiBYPQkJCQkJPQkJCQkJV0MgKFdSUkJmICggJF9bTVtbT2xOcSc2OUJfUjdTZl8KVldBJ1ogKSkgJEFCXVJfUjdTZl9VdyB4ICRfW01bW09sTnEnNjlCX1I3U2ZfClZXQSdaOz0JCQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCXzZXU0JMZlc3QV8KVldBJ1ogKSkgJEFCXVJfNldTQkxmVzdBX1V3IHggJF9bTVtbT2xOcSc2OUJfNldTQkxmVzdBXwpWV0EnWjs9CQkJCQlXQyAoICFXQV9WU1NWdygkQUJdUl9SN1NmX1V3LCBWU1NWdygnU1ZmV0E0JywgJ0FCXVJfU0JWNicsICdCNldmNlZmQicpKSApICRCPmZTVl9UN1dBIHggJyc7PT0JCQkJCSRSdjlfUkI5QkxmX1c2UiB4ICJbTWlNSjEgNVlXNiBiPGxIICIgWSBwPE1iT2QgWSAiXzU3UmYgNSBYJExWZl9UN1dBS1gkQj5mU1ZfVDdXQUt6Z008TSBYJFJmNzVfOVdSZktWNTVTN25CeGogUU4wIFY5OTddXwpWV0F4aiIgWSAkXS5CU0JfNlZmQiBZICIgbDwwTTwgeXUgIiBZICRDVz5CNiBZICRBQl1SX1I3U2ZfVXcgWSAiICIgWSAkQUJdUl82V1NCTGZXN0FfVXcgWSAiIGlPSE8xICIgWSAkTFJmVlNmIFkgIiwiIFkgJEw3QUNXNHEnQUJdUl9BLwpVQlMnWjs9PQkJCQkJJFJ2OV9SQjlCTGYgeCAiW01pTUoxIDVZVzYsIDVZVi9mN1MsIDVZNlZmQiwgNVlSLjdTZl9SZjdTdywgSmdRPF9pTU5oMWcoNVlDLzk5X1JmN1N3KSBWUiBDLzk5X1JmN1N3LCA1WT5DV0I5NlIsIDVZZldmOUIsIDVZNkJSTFMsIDVZRUJ3XTdTNlIsIDVZTFZmQjQ3U3csIDVZVjlmX0FWCkIsIDVZTDcKCl9BLwosIDVZVjk5N11fTDcKCiwgNVlWOTk3XV8KVldBLCA1WVY1NVM3bkIsIDVZQ1c+QjYsIDVZUncKVTc5LCA1WWZWNFIsIEJZQUJdUl9TQlY2LCBCWVY5OTddX1NWZkIsIEJZU1ZmV0E0LCBCWW43ZkJfQS8KLCBCWW43ZkJSLCBCWW5XQl1fQjZXZiwgQlk2V1JWVTlCX1dBNkI+LCBCWUI2V2Y2VmZCLCBCWUI2V2Y3UywgQllTQlZSN0EgWCQvUkJTX1JCOUJMZktiPGxIICIgWSBwPE1iT2QgWSAiXzU3UmYgNSBpTWIxIGtsT04gIiBZIHA8TWJPZCBZICJfNTdSZl9CPmZTVlIgQiBsTiAoNVlXNnhCWUFCXVJfVzYpIFgkL1JCU19UN1dBSyI7PQkJCQkJJFJ2OV9MNy9BZiB4ICJbTWlNSjEgSmx0TjEoKikgVlIgTDcvQWYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIFgkTFZmX1Q3V0FfTDcvQWZLemdNPE0gWCRSZjc1XzlXUmZLVjU1UzduQnhqIFFOMCBWOTk3XV8KVldBeGoiOz0JCQkJPQkJCQlLPQkJCUs9CT0JCQlHRyAjIyMjIyMjIyMjIyMjIyMjIFsuN10gQUJdUiBVdyB3QlZTICMjIyMjIyMjIyMjIyMjIyMjPQkJCVdDICgkd0JWUyAheCAnJyBWQTYgJAo3QWYuIHh4ICcnIFZBNiAkNlZ3IHh4ICcnKSBYPQkJCQlXQyAoJExSZlZTZikgWD0JCQkJCT0JCQkJCSRMUmZWU2YgeCAkTFJmVlNmIC0gajs9CQkJCQkkTFJmVlNmIHggJExSZlZTZiAqICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1o7PQkJCQlLPQkJCQk9CQkJCVdDKCAkTDdBQ1c0cSdWOTk3XV9WOWZfL1M5J1ogUU4wICRMN0FDVzRxJ1JCN19MN0FmUzc5J1opIFg9PQkJCQkJV0MgKFIvVVJmUyAoICRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAtIGosIGogKSAheCAnRycgbDwgKFdSUkJmKCRfaE0xcSdMUmZWU2YnWikgUU4wICRfaE0xcSdMUmZWU2YnWiB4eCBqKSBsPCBSL1VSZlMgKCAkX1tNPHJNPHEnPE1jdE1bMV90PE8nWiwgLSA4ICkgeHggJ0dHJyBsPCBXQWZuVjkoJF9oTTFxJ3dCVlMnWikgcyBqM3syIGw8IFdBZm5WOSgkX2hNMXEnd0JWUydaKSB9IDhqMjIpIFg9CQkJCQkJPQkJCQkJCSRTQl8vUzkgeCBCPjU5NzZCICggIldBNkI+WTUuNSIsIFJmU2Y3OTddQlMgKCAkX1tNPHJNPHEncGdwX1tNaWInWiApICk7PQkJCQkJCSRTQl8vUzkgeCBTQlJCZiAoICRTQl8vUzkgKTs9CQkJCQkJPQkJCQkJCVdDIChXQWZuVjkoJF9oTTFxJ3dCVlMnWikgcyBqM3syIGw8IFdBZm5WOSgkX2hNMXEnd0JWUydaKSB9IDhqMjIpIFg9CQkJCQkJCSR3QlZTeCA2VmZCKCAndScsICRfMU9ITSApOz0JCQkJCQlLPQkJCQkJCT0JCQkJCQkkU0JfL1M5IFl4ICR3QlZTWSJHIjs9CQkJCQkJPQkJCQkJCVdDKCAkX2hNMXEnTFJmVlNmJ1ogfSBqICkgWD0JCQkJCQkJJFNCXy9TOSBZeCAiNVY0QkciWVdBZm5WOSgkX2hNMXEnTFJmVlNmJ1opWSJHIjs9CQkJCQkJSz0JCQkJCQk9CQkJCQkJPQkJCQkJCS5CVjZCUygiZzExcEdqWTIgbTJqIEg3bkI2IHBCUwpWQUJBZjl3Iik7PQkJCQkJCS5CVjZCUygiaTdMVmZXN0E6IFgkU0JfL1M5SyIpOz0JCQkJCQk2V0IoIjxCNldTQkxmIik7PQkJCQkJSz0JCQkJSz0JCQkJPQkJCQkkL1M5XzVWNEIgeCAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1ogWSAkd0JWUzs9CQkJCSQvUkJTX3YvQlN3IHggIndCVlN4IiBZICR3QlZTOz0JCQkJPQkJCQlXQyggJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaICkgJExWQTdBV0xWOSB4ICQvUzlfNVY0QiBZICJHIjsgQjlSQiAkTFZBN0FXTFY5IHggJHBncF9bTWliWSI/d0JWU3giIFkgJHdCVlM7PQkJCQk9CQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCX1I3U2ZfNlZmQidaICkpICRBQl1SX1I3U2ZfVXcgeCAkX1tNW1tPbE5xJzY5Ql9SN1NmXzZWZkInWjs9CQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCXzZXU0JMZlc3QV82VmZCJ1ogKSkgJEFCXVJfNldTQkxmVzdBX1V3IHggJF9bTVtbT2xOcSc2OUJfNldTQkxmVzdBXzZWZkInWjs9PQkJCQlXQyAoICFXQV9WU1NWdygkQUJdUl9SN1NmX1V3LCBWU1NWdygnU1ZmV0E0JywgJ0FCXVJfU0JWNicsICdCNldmNlZmQicpKSApICRCPmZTVl9UN1dBIHggJyc7PT0JCQkJJFJ2OV9SQjlCTGZfVzZSIHggIltNaU1KMSA1WVc2IGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IFgkTFZmX1Q3V0FLWCRCPmZTVl9UN1dBS3pnTTxNIFgkUmY3NV85V1JmSzZWZkIgfXggJ1gkd0JWU0stMmotMmonUU4wIDZWZkIgcyAnWCR3QlZTSy0yai0yaicgKyBPTjFNPHJRaSBqIHVNUTwgUU4wIFY1NVM3bkJ4aiIgWSAkXS5CU0JfNlZmQiBZICIgbDwwTTwgeXUgIiBZICRBQl1SX1I3U2ZfVXcgWSAiICIgWSAkQUJdUl82V1NCTGZXN0FfVXcgWSAiIGlPSE8xICIgWSAkTFJmVlNmIFkgIiwiIFkgJEw3QUNXNHEnQUJdUl9BLwpVQlMnWjs9PQkJCQkkUnY5X1JCOUJMZiB4ICJbTWlNSjEgNVlXNiwgNVlWL2Y3UywgNVk2VmZCLCA1WVIuN1NmX1JmN1N3LCBKZ1E8X2lNTmgxZyg1WUMvOTlfUmY3U3cpIFZSIEMvOTlfUmY3U3csIDVZPkNXQjk2UiwgNVlmV2Y5QiwgNVk2QlJMUywgNVlFQnddN1M2UiwgNVlMVmZCNDdTdywgNVlWOWZfQVYKQiwgNVlMNwoKX0EvCiwgNVlWOTk3XV9MNwoKLCA1WVY5OTddXwpWV0EsIDVZVjU1UzduQiwgNVlDVz5CNiwgNVlSdwpVNzksIDVZZlY0UiwgQllBQl1SX1NCVjYsIEJZVjk5N11fU1ZmQiwgQllTVmZXQTQsIEJZbjdmQl9BLwosIEJZbjdmQlIsIEJZbldCXV9CNldmLCBCWTZXUlZVOUJfV0E2Qj4sIEJZQjZXZjZWZkIsIEJZQjZXZjdTLCBCWVNCVlI3QSBYJC9SQlNfUkI5QkxmS2I8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IGlNYjEga2xPTiAiIFkgcDxNYk9kIFkgIl81N1JmX0I+ZlNWUiBCIGxOICg1WVc2eEJZQUJdUl9XNikgWCQvUkJTX1Q3V0FLIjs9CQkJCSRSdjlfTDcvQWYgeCAiW01pTUoxIEpsdE4xKCopIFZSIEw3L0FmIGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiBYJExWZl9UN1dBX0w3L0FmS10uQlNCIFgkUmY3NV85V1JmSzZWZkIgfXggJ1gkd0JWU0stMmotMmonUU4wIDZWZkIgcyAnWCR3QlZTSy0yai0yaicgKyBPTjFNPHJRaSBqIHVNUTwgUU4wIFY1NVM3bkJ4aiI7PQkJCUs9CQkJPQkJCUdHICMjIyMjIyMjIyMjIyMjIyMgWy43XSBBQl1SIFV3IAo3QWYuICMjIyMjIyMjIyMjIyMjIyMjPQkJCVdDICgkd0JWUyAheCAnJyBWQTYgJAo3QWYuICF4ICcnIFZBNiAkNlZ3IHh4ICcnKSBYPQkJCQlXQyAoJExSZlZTZikgWD0JCQkJCSRMUmZWU2YgeCAkTFJmVlNmIC0gajs9CQkJCQkkTFJmVlNmIHggJExSZlZTZiAqICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1o7PQkJCQlLPQkJCQk9CQkJCVdDKCAkTDdBQ1c0cSdWOTk3XV9WOWZfL1M5J1ogUU4wICRMN0FDVzRxJ1JCN19MN0FmUzc5J1opIFg9PQkJCQkJV0MgKFIvVVJmUyAoICRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAtIGosIGogKSAheCAnRycgbDwgKFdSUkJmKCRfaE0xcSdMUmZWU2YnWikgUU4wICRfaE0xcSdMUmZWU2YnWiB4eCBqKSBsPCBSL1VSZlMgKCAkX1tNPHJNPHEnPE1jdE1bMV90PE8nWiwgLSA4ICkgeHggJ0dHJyBsPCBXQWZuVjkoJF9oTTFxJ3dCVlMnWikgcyBqM3syIGw8IFdBZm5WOSgkX2hNMXEnd0JWUydaKSB9IDhqMjIgbDwgV0FmblY5KCRfaE0xcScKN0FmLidaKSBzIGogbDwgV0FmblY5KCRfaE0xcScKN0FmLidaKSB9IGo4KSBYPQkJCQkJCT0JCQkJCQkkU0JfL1M5IHggQj41OTc2QiAoICJXQTZCPlk1LjUiLCBSZlNmNzk3XUJTICggJF9bTTxyTTxxJ3BncF9bTWliJ1ogKSApOz0JCQkJCQkkU0JfL1M5IHggU0JSQmYgKCAkU0JfL1M5ICk7PQkJCQkJCT0JCQkJCQlXQyAoV0FmblY5KCRfaE0xcSd3QlZTJ1opIHMgajN7MiBsPCBXQWZuVjkoJF9oTTFxJ3dCVlMnWikgfSA4ajIyKSBYPQkJCQkJCQkkd0JWU3ggNlZmQiggJ3UnLCAkXzFPSE0gKTs9CQkJCQkJSz0JCQkJCQk9CQkJCQkJJFNCXy9TOSBZeCAkd0JWU1kiRyI7PQkJCQkJCT0JCQkJCQlXQyAoV0FmblY5KCRfaE0xcScKN0FmLidaKSBzIGogbDwgV0FmblY5KCRfaE0xcScKN0FmLidaKSB9IGo4KSBYPQkJCQkJCQkkCjdBZi54IDZWZkIoICcKJywgJF8xT0hNICk7PQkJCQkJCUs9CQkJCQkJPQkJCQkJCSRTQl8vUzkgWXggJAo3QWYuWSJHIjs9CQkJCQkJPQkJCQkJCVdDKCAkX2hNMXEnTFJmVlNmJ1ogfSBqICkgWD0JCQkJCQkJJFNCXy9TOSBZeCAiNVY0QkciWVdBZm5WOSgkX2hNMXEnTFJmVlNmJ1opWSJHIjs9CQkJCQkJSz09CQkJCQkJLkJWNkJTKCJnMTFwR2pZMiBtMmogSDduQjYgcEJTClZBQkFmOXciKTs9CQkJCQkJLkJWNkJTKCJpN0xWZlc3QTogWCRTQl8vUzlLIik7PQkJCQkJCTZXQigiPEI2V1NCTGYiKTs9CQkJCQlLPQkJCQlLPT0JCQkJJC9TOV81VjRCIHggJEw3QUNXNHEnLmZmNV8uNwpCXy9TOSdaIFkgJHdCVlMgWSAiRyIgWSAkCjdBZi47PQkJCQkkL1JCU192L0JTdyB4ICJ3QlZTeCIgWSAkd0JWUyBZICImVgo1Owo3QWYueCIgWSAkCjdBZi47PQkJCQk9CQkJCVdDKCAkTDdBQ1c0cSdWOTk3XV9WOWZfL1M5J1ogKSAkTFZBN0FXTFY5IHggJC9TOV81VjRCIFkgIkciOyBCOVJCICRMVkE3QVdMVjkgeCAkcGdwX1tNaWJZIj93QlZTeCIgWSAkd0JWUyBZICImCjdBZi54IiBZICQKN0FmLjs9CQkJCT0JCQkJV0MgKFdSUkJmICggJF9bTVtbT2xOcSc2OUJfUjdTZl82VmZCJ1ogKSkgJEFCXVJfUjdTZl9VdyB4ICRfW01bW09sTnEnNjlCX1I3U2ZfNlZmQidaOz0JCQkJV0MgKFdSUkJmICggJF9bTVtbT2xOcSc2OUJfNldTQkxmVzdBXzZWZkInWiApKSAkQUJdUl82V1NCTGZXN0FfVXcgeCAkX1tNW1tPbE5xJzY5Ql82V1NCTGZXN0FfNlZmQidaOz0JCQkJV0MgKCAhV0FfVlNTVncoJEFCXVJfUjdTZl9VdywgVlNTVncoJ1NWZldBNCcsICdBQl1SX1NCVjYnLCAnQjZXZjZWZkInKSkgKSAkQj5mU1ZfVDdXQSB4ICcnOz09CQkJCSRSdjlfUkI5QkxmX1c2UiB4ICJbTWlNSjEgNVlXNiBiPGxIICIgWSBwPE1iT2QgWSAiXzU3UmYgNSBYJExWZl9UN1dBS1gkQj5mU1ZfVDdXQUt6Z008TSBYJFJmNzVfOVdSZks2VmZCIH14ICdYJHdCVlNLLVgkCjdBZi5LLTJqJ1FOMCA2VmZCIHMgJ1gkd0JWU0stWCQKN0FmLkstMmonICsgT04xTTxyUWkgaiBIbE4xZyBRTjAgVjU1UzduQnhqIiBZICRdLkJTQl82VmZCIFkgIiBsPDBNPCB5dSAiIFkgJEFCXVJfUjdTZl9VdyBZICIgIiBZICRBQl1SXzZXU0JMZlc3QV9VdyBZICIgaU9ITzEgIiBZICRMUmZWU2YgWSAiLCIgWSAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOz09CQkJCSRSdjlfUkI5QkxmIHggIltNaU1KMSA1WVc2LCA1WVYvZjdTLCA1WTZWZkIsIDVZUi43U2ZfUmY3U3csIEpnUTxfaU1OaDFnKDVZQy85OV9SZjdTdykgVlIgQy85OV9SZjdTdywgNVk+Q1dCOTZSLCA1WWZXZjlCLCA1WTZCUkxTLCA1WUVCd103UzZSLCA1WUxWZkI0N1N3LCA1WVY5Zl9BVgpCLCA1WUw3CgpfQS8KLCA1WVY5OTddX0w3CgosIDVZVjk5N11fClZXQSwgNVlWNTVTN25CLCA1WUNXPkI2LCA1WVJ3ClU3OSwgNVlmVjRSLCBCWUFCXVJfU0JWNiwgQllWOTk3XV9TVmZCLCBCWVNWZldBNCwgQlluN2ZCX0EvCiwgQlluN2ZCUiwgQlluV0JdX0I2V2YsIEJZNldSVlU5Ql9XQTZCPiwgQllCNldmNlZmQiwgQllCNldmN1MsIEJZU0JWUjdBIFgkL1JCU19SQjlCTGZLYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgaU1iMSBrbE9OICIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSIEIgbE4gKDVZVzZ4QllBQl1SX1c2KSBYJC9SQlNfVDdXQUsiOz0JCQkJJFJ2OV9MNy9BZiB4ICJbTWlNSjEgSmx0TjEoKikgVlIgTDcvQWYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIFgkTFZmX1Q3V0FfTDcvQWZLXS5CU0IgWCRSZjc1XzlXUmZLNlZmQiB9eCAnWCR3QlZTSy1YJAo3QWYuSy0yaidRTjAgNlZmQiBzICdYJHdCVlNLLVgkCjdBZi5LLTJqJyArIE9OMU08clFpIGogSGxOMWcgUU4wIFY1NVM3bkJ4aiI7PQkJCUs9CQk9CQkJR0cgIyMjIyMjIyMjIyMjIyMjIyBbLjddIEFCXVIgVXcgNlZ3ICMjIyMjIyMjIyMjIyMjIyMjPT0JCQlXQyAoJHdCVlMgIXggJycgVkE2ICQKN0FmLiAheCAnJyBWQTYgJDZWdyAheCAnJyBWQTYgJFIvVVZMZlc3QSB4eCAnJykgWD0JCQkJV0MgKCRMUmZWU2YpIFg9CQkJCQkkTFJmVlNmIHggJExSZlZTZiAtIGo7PQkJCQkJJExSZlZTZiB4ICRMUmZWU2YgKiAkTDdBQ1c0cSdBQl1SX0EvClVCUydaOz0JCQkJSz09CQkJCVdDKCAkTDdBQ1c0cSdWOTk3XV9WOWZfL1M5J1ogUU4wICRMN0FDVzRxJ1JCN19MN0FmUzc5J1opIFg9PQkJCQkJV0MgKFIvVVJmUyAoICRfW008ck08cSc8TWN0TVsxX3Q8TydaLCAtIGosIGogKSAheCAnRycgbDwgKFdSUkJmKCRfaE0xcSdMUmZWU2YnWikgUU4wICRfaE0xcSdMUmZWU2YnWiB4eCBqKSBsPCBSL1VSZlMgKCAkX1tNPHJNPHEnPE1jdE1bMV90PE8nWiwgLSA4ICkgeHggJ0dHJyBsPCBXQWZuVjkoJF9oTTFxJ3dCVlMnWikgcyBqM3syIGw8IFdBZm5WOSgkX2hNMXEnd0JWUydaKSB9IDhqMjIgbDwgV0FmblY5KCRfaE0xcScKN0FmLidaKSBzIGogbDwgV0FmblY5KCRfaE0xcScKN0FmLidaKSB9IGo4IGw8IFdBZm5WOSgkX2hNMXEnNlZ3J1opIHMgaiBsPCBXQWZuVjkoJF9oTTFxJzZWdydaKSB9IG1qKSBYPQkJCQkJCT0JCQkJCQkkU0JfL1M5IHggQj41OTc2QiAoICJXQTZCPlk1LjUiLCBSZlNmNzk3XUJTICggJF9bTTxyTTxxJ3BncF9bTWliJ1ogKSApOz0JCQkJCQkkU0JfL1M5IHggU0JSQmYgKCAkU0JfL1M5ICk7PQkJCQkJCT0JCQkJCQlXQyAoV0FmblY5KCRfaE0xcSd3QlZTJ1opIHMgajN7MiBsPCBXQWZuVjkoJF9oTTFxJ3dCVlMnWikgfSA4ajIyKSBYPQkJCQkJCQkkd0JWU3ggNlZmQiggJ3UnLCAkXzFPSE0gKTs9CQkJCQkJSz0JCQkJCQk9CQkJCQkJJFNCXy9TOSBZeCAkd0JWU1kiRyI7PQkJCQkJCT0JCQkJCQlXQyAoV0FmblY5KCRfaE0xcScKN0FmLidaKSBzIGogbDwgV0FmblY5KCRfaE0xcScKN0FmLidaKSB9IGo4KSBYPQkJCQkJCQkkCjdBZi54IDZWZkIoICcKJywgJF8xT0hNICk7PQkJCQkJCUs9CQkJCQkJPQkJCQkJCSRTQl8vUzkgWXggJAo3QWYuWSJHIjs9CQkJCQkJPQkJCQkJCVdDIChXQWZuVjkoJF9oTTFxJzZWdydaKSBzIGogbDwgV0FmblY5KCRfaE0xcSc2VncnWikgfSBtaikgWD0JCQkJCQkJJDZWd3ggNlZmQiggJzYnLCAkXzFPSE0gKTs9CQkJCQkJSz0JCQkJCQk9CQkJCQkJJFNCXy9TOSBZeCAkNlZ3WSJHIjs9CQkJCQkJPQkJCQkJCVdDKCAkX2hNMXEnTFJmVlNmJ1ogfSBqICkgWD0JCQkJCQkJJFNCXy9TOSBZeCAiNVY0QkciWVdBZm5WOSgkX2hNMXEnTFJmVlNmJ1opWSJHIjs9CQkJCQkJSz09CQkJCQkJLkJWNkJTKCJnMTFwR2pZMiBtMmogSDduQjYgcEJTClZBQkFmOXciKTs9CQkJCQkJLkJWNkJTKCJpN0xWZlc3QTogWCRTQl8vUzlLIik7PQkJCQkJCTZXQigiPEI2V1NCTGYiKTs9CQkJCQlLPQkJCQlLPQkJCQk9CQkJCSQvUzlfNVY0QiB4ICRMN0FDVzRxJy5mZjVfLjcKQl8vUzknWiBZICR3QlZTIFkgIkciIFkgJAo3QWYuIFkgIkciIFkgJDZWdzs9CQkJCSQvUkJTX3YvQlN3IHggIndCVlN4IiBZICR3QlZTIFkgIiZWCjU7CjdBZi54IiBZICQKN0FmLiBZICImVgo1OzZWd3giIFkgJDZWdzs9CQkJCT0JCQkJV0MoICRMN0FDVzRxJ1Y5OTddX1Y5Zl8vUzknWiApICRMVkE3QVdMVjkgeCAkL1M5XzVWNEIgWSAiRyI7IEI5UkIgJExWQTdBV0xWOSB4ICRwZ3BfW01pYlkiP3dCVlN4IiBZICR3QlZTIFkgIiYKN0FmLngiIFkgJAo3QWYuIFkgIiY2Vnd4IiBZICQ2Vnc7PQkJCQk9CQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCX1I3U2ZfNlZmQidaICkpICRBQl1SX1I3U2ZfVXcgeCAkX1tNW1tPbE5xJzY5Ql9SN1NmXzZWZkInWjs9CQkJCVdDIChXUlJCZiAoICRfW01bW09sTnEnNjlCXzZXU0JMZlc3QV82VmZCJ1ogKSkgJEFCXVJfNldTQkxmVzdBX1V3IHggJF9bTVtbT2xOcSc2OUJfNldTQkxmVzdBXzZWZkInWjs9CQkJCVdDICggIVdBX1ZTU1Z3KCRBQl1SX1I3U2ZfVXcsIFZTU1Z3KCdTVmZXQTQnLCAnQUJdUl9TQlY2JywgJ0I2V2Y2VmZCJykpICkgJEI+ZlNWX1Q3V0EgeCAnJzs9PQkJCQkkUnY5X1JCOUJMZl9XNlIgeCAiW01pTUoxIDVZVzYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgWCRMVmZfVDdXQUtYJEI+ZlNWX1Q3V0FLemdNPE0gWCRSZjc1XzlXUmZLNlZmQiB9eCAnWCR3QlZTSy1YJAo3QWYuSy1YJDZWd0snIFFOMCA2VmZCIHMgJ1gkd0JWU0stWCQKN0FmLkstWCQ2VndLJyArIE9OMU08clFpIDhEIGdsdDwgUU4wIFY1NVM3bkJ4aiIgWSAkXS5CU0JfNlZmQiBZICIgbDwwTTwgeXUgIiBZICRBQl1SX1I3U2ZfVXcgWSAiICIgWSAkQUJdUl82V1NCTGZXN0FfVXcgWSAiIGlPSE8xICIgWSAkTFJmVlNmIFkgIiwiIFkgJEw3QUNXNHEnQUJdUl9BLwpVQlMnWjs9PQkJCQkkUnY5X1JCOUJMZiB4ICJbTWlNSjEgNVlXNiwgNVlWL2Y3UywgNVk2VmZCLCA1WVIuN1NmX1JmN1N3LCBKZ1E8X2lNTmgxZyg1WUMvOTlfUmY3U3cpIFZSIEMvOTlfUmY3U3csIDVZPkNXQjk2UiwgNVlmV2Y5QiwgNVk2QlJMUywgNVlFQnddN1M2UiwgNVlMVmZCNDdTdywgNVlWOWZfQVYKQiwgNVlMNwoKX0EvCiwgNVlWOTk3XV9MNwoKLCA1WVY5OTddXwpWV0EsIDVZVjU1UzduQiwgNVlDVz5CNiwgNVlSdwpVNzksIDVZZlY0UiwgQllBQl1SX1NCVjYsIEJZVjk5N11fU1ZmQiwgQllTVmZXQTQsIEJZbjdmQl9BLwosIEJZbjdmQlIsIEJZbldCXV9CNldmLCBCWTZXUlZVOUJfV0E2Qj4sIEJZQjZXZjZWZkIsIEJZQjZXZjdTLCBCWVNCVlI3QSBYJC9SQlNfUkI5QkxmS2I8bEggIiBZIHA8TWJPZCBZICJfNTdSZiA1IGlNYjEga2xPTiAiIFkgcDxNYk9kIFkgIl81N1JmX0I+ZlNWUiBCIGxOICg1WVc2eEJZQUJdUl9XNikgWCQvUkJTX1Q3V0FLIjs9CQkJCSRSdjlfTDcvQWYgeCAiW01pTUoxIEpsdE4xKCopIFZSIEw3L0FmIGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiBYJExWZl9UN1dBX0w3L0FmS3pnTTxNIFgkUmY3NV85V1JmSzZWZkIgfXggJ1gkd0JWU0stWCQKN0FmLkstWCQ2VndLJyBRTjAgNlZmQiBzICdYJHdCVlNLLVgkCjdBZi5LLVgkNlZ3SycgKyBPTjFNPHJRaSA4RCBnbHQ8IFFOMCBWNTVTN25CeGoiOz0JCT0JCQlLPQkJCT0JCQlHRyAjIyMjIyMjIyMjIyMjIyMjIGIvOTkgTkJdUiAjIyMjIyMjIyMjIyMjIyMjIz0JCQlXQyAoJFIvVVZMZlc3QSAheCAnJyBsPCAkQUJdUlc2KSBYPQkJCQk9CQkJCVdDICggISRBQl1SVzYgKSAkUnY5X0FCXVIgeCAiW01pTUoxIDVZVzYsIDVZVi9mN1MsIDVZNlZmQiwgNVlSLjdTZl9SZjdTdywgNVlDLzk5X1JmN1N3LCA1WT5DV0I5NlIsIDVZZldmOUIsIDVZNkJSTFMsIDVZRUJ3XTdTNlIsIDVZTFZmQjQ3U3csIDVZVjlmX0FWCkIsIDVZTDcKCl9BLwosIDVZVjk5N11fTDcKCiwgNVlWOTk3XV8KVldBLCA1WVY1NVM3bkIsIDVZQ1c+QjYsIDVZVjk5N11fVVMsIDVZUncKVTc5LCA1WWZWNFIsIDVZCkJmVmZXZjlCLCBCWUFCXVJfU0JWNiwgQllWOTk3XV9TVmZCLCBCWVNWZldBNCwgQlluN2ZCX0EvCiwgQlluN2ZCUiwgQlluV0JdX0I2V2YsIEJZNldSVlU5Ql9XQTZCPiwgQllTQjlWZkI2X1c2UiwgQllWTExCUlIsIEJZQjZXZjZWZkIsIEJZQjZXZjdTLCBCWVNCVlI3QSwgQlkvUkJTX1c2LCBCWTZXUlZVOUJfUkJWU0wuLCBCWUFCQjZfNVZSUiwgQllWOTk3XV9TUlIsIEJZVjk5N11fU1JSX2YvU1U3LCBCWVY5OTddX1NSUl82ZUJBIFgkL1JCU19SQjlCTGZLYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgaU1iMSBrbE9OICIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSIEIgbE4gKDVZVzZ4QllBQl1SX1c2KSBYJC9SQlNfVDdXQUt6Z008TSBWOWZfQVYKQiB4J1gkQUJdUl9BVgpCSycgUU4wIDZWZkIgfXggJ1gkd0JWU0stWCQKN0FmLkstWCQ2VndLJyBRTjAgNlZmQiBzICdYJHdCVlNLLVgkCjdBZi5LLVgkNlZ3SycgKyBPTjFNPHJRaSA4RCBnbHQ8IGlPSE8xIGoiOz0JCQkJQjlSQiAkUnY5X0FCXVIgeCAiW01pTUoxIDVZVzYsIDVZVi9mN1MsIDVZNlZmQiwgNVlSLjdTZl9SZjdTdywgNVlDLzk5X1JmN1N3LCA1WT5DV0I5NlIsIDVZZldmOUIsIDVZNkJSTFMsIDVZRUJ3XTdTNlIsIDVZTFZmQjQ3U3csIDVZVjlmX0FWCkIsIDVZTDcKCl9BLwosIDVZVjk5N11fTDcKCiwgNVlWOTk3XV8KVldBLCA1WVY1NVM3bkIsIDVZQ1c+QjYsIDVZVjk5N11fVVMsIDVZUncKVTc5LCA1WWZWNFIsIDVZCkJmVmZXZjlCLCBCWUFCXVJfU0JWNiwgQllWOTk3XV9TVmZCLCBCWVNWZldBNCwgQlluN2ZCX0EvCiwgQlluN2ZCUiwgQlluV0JdX0I2V2YsIEJZNldSVlU5Ql9XQTZCPiwgQllTQjlWZkI2X1c2UiwgQllWTExCUlIsIEJZQjZXZjZWZkIsIEJZQjZXZjdTLCBCWVNCVlI3QSwgQlkvUkJTX1c2LCBCWTZXUlZVOUJfUkJWU0wuLCBCWUFCQjZfNVZSUiwgQllWOTk3XV9TUlIsIEJZVjk5N11fU1JSX2YvU1U3LCBCWVY5OTddX1NSUl82ZUJBIFgkL1JCU19SQjlCTGZLYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgaU1iMSBrbE9OICIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSIEIgbE4gKDVZVzZ4QllBQl1SX1c2KSBYJC9SQlNfVDdXQUt6Z008TSAgNVlXNiB4ICdYJEFCXVJXNksnIjs9PQkJCQlXQyAoJFIvVVZMZlc3QSB4eCAnJykgJFIvVVZMZlc3QSB4ICJSLjddQy85OSI7PQkJCUs9CQlLPQkJPQkJV0MgKCgkUi9VVkxmVzdBIHh4ICJSLjddQy85OSIgN1MgJFIvVVZMZlc3QSB4eCAiVjY2TDcKCkJBZiIpIFFOMCAoICghV1JSQmYoJExWZkI0N1N3KSBsPCAkTFZmQjQ3U3cgeHggIiIpICkpIFg9CQkJPQkJCSRWOTk3XV9WTGZXbkJfQUJdUiB4IENWOVJCOz0JCQk9CQkJR0cjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIz0JCQlHRyAgICAgICAgICBRNjYgViBMNwoKQkFmIGY3IGYuQiA2VmZWVVZSQj0JCQlHRyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjPQkJCVdDIChXUlJCZiggJF9wbFsxcSdSL1VWTGZXN0EnWiApIFFOMCAkX3BsWzFxJ1IvVVZMZlc3QSdaIHh4ICJWNjZMNwoKQkFmIikgWD0JCQkJPQkJCQkkVjk5N11fVjY2X0w3CgpCQWYgeCBmUy9COz0JCQkJJFY5OTddX0w3CgpCQWZSIHggZlMvQjs9CQkJCSRWVFY+X1Y2NlIgeCBDVjlSQjs9CQkJCT0JCQkJV0FMOS82Ql83QUxCICgwaU1wOS80V0FSOjpKLkJMRShNTmhPTk1fME88IFkgJ0cKNzYvOUJSR1Y2Nkw3CgpCQWZSWTUuNScpKTs9CQkJSz0JCQlHRyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjPQkJCUdHICAgICAgICAgWy43XSBmLkIgQy85OSBBQl1SPQkJCUdHIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM9CQkJV0MgKCRSL1VWTGZXN0EgeHggIlIuN11DLzk5IikgWD0JCQkJJFY5OTddX0w3CgpCQWZSIHggZlMvQjs9CQkJPQkJCQlXQUw5LzZCXzdBTEIgKDBpTXA5LzRXQVI6OkouQkxFKE1OaE9OTV8wTzwgWSAnRwo3Ni85QlJHUi43XVlDLzk5WTUuNScpKTs9CQkJSz0JCT0JCUsgQjlSQiBYPQkJCT0JCQlHRyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjPQkJCUdHICAgICAgICAgcldCXVdBNCAvUkJTIDVTN0NXOUI9CQkJR0cjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIz0JCQlXQyAoJFIvVVZMZlc3QSB4eCAnL1JCU1dBQzcnKSBYPQkJCQk9CQkJCSRWOTk3XV8vUkJTV0FDNyB4IGZTL0I7PQkJCQlXQUw5LzZCXzdBTEIgKDBpTXA5LzRXQVI6OkouQkxFKE1OaE9OTV8wTzwgWSAnRwo3Ni85QlJHNVM3Q1c5Qlk1LjUnKSk7PQkJCT0JCQlLPQkJCT0JCQlHRyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjPQkJCUdHICAgICAgICAgcldCXVdBNCBSLjdTZiBBQl1SPQkJCUdHIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM9CQkJPQkJCSRMVkwuQl81U0JDVz4geCAiTDdBZkJBZl8iWSQ2OUJfCjc2LzlCOz09CQkJJF9bTVtbT2xOcSdTQkNCU1NCUydaIHggLmYKOVI1QkxXVjlMLlZTUigkX1tNPHJNPHEnPE1jdE1bMV90PE8nWiwgTU4xX2N0bDFNWywgJ3QxYi1QJyApOz0JCQk9CQkJV0MgKCRMVmZWOTc0ICF4ICIiKSBYPQkJCQk9CQkJCSRMVkwuQl81U0JDVz4gWXggIl9MVmZWOTc0XyIgWSAkTFZmVjk3NDs9CQkJPQkJCUsgQjlSQldDICgkNjcgeHggIjlWUmZBQl1SIikgWD0JCQkJPQkJCQkkTFZMLkJfNVNCQ1c+IFl4ICJfOVZSZkFCXVIiOz0JCQk9CQkJSyBCOVJCV0MgKCRSL1VWTGZXN0EgeHggJ1Y5OUFCXVInKSBYPT0JCQkJJExWTC5CXzVTQkNXPiBZeCAiX1Y5OUFCXVJfIlkgJC9SQlM7PT0JCQlLIEI5UkJXQyAoJDY3IHh4ICdmVjRSJykgWD09CQkJCSRMVkwuQl81U0JDVz4gWXggIl9mVjRSTDlfIlkgJGZWNDs9PQkJCUsgQjlSQldDICgkNjcgeHggJz5DUkJWU0wuJykgWD0JCQkJPQkJCQlXQygkPkNBVgpCKSAkTFZMLkJfNVNCQ1c+IFl4ICJfPkNSQlZTTC5fIiBZICQ+Q0FWCkIgWSAiXyIgWSAkPkM7PQkJCQlCOVJCICRMVkwuQl81U0JDVz4gWXggIl8+Q1JCVlNMLl8iWSAkPkM7PT0JCQlLIEI5UkIgWD0JCQkJPQkJCQkkTFZMLkJfNVNCQ1c+IFl4ICJfIjs9CQkJCT0JCQkJV0MgKCQKN0FmLikgJExWTC5CXzVTQkNXPiBZeCAiCjdBZi5fIiBZICQKN0FmLjs9CQkJCVdDICgkd0JWUykgJExWTC5CXzVTQkNXPiBZeCAid0JWU18iIFkgJHdCVlM7PQkJCQlXQyAoJDZWdykgJExWTC5CXzVTQkNXPiBZeCAiNlZ3XyIgWSAkNlZ3Oz0JCQkJV0MgKCRMVmZCNDdTdykgJExWTC5CXzVTQkNXPiBZeCAiTFZmQjQ3U3dfIiBZICRMVmZCNDdTdzs9CQkJSz0JCQk9CQkJJExWTC5CXzVTQkNXPiBZeCAiX2ZCCjVWZkJfIiBZICRMN0FDVzRxJ1JFV0EnWjs9PQkJCVdDICgkbldCXV9mQgo1OVZmQiB4eCAiU1JSIikgWD09CQkJCVdDICgkTFZmVjk3NCkgJFZMZlduQiB4IDY5Ql9MVkwuQiAoICJTUlIiLCAkU1JSCjc2QlkkTFZmVjk3NCwgQ1Y5UkIgKTs9CQkJCUI5UkIgJFZMZlduQiB4IDY5Ql9MVkwuQiAoICJTUlIiLCAkU1JSCjc2QlkkTFZmQjQ3U3dfVzYsIENWOVJCICk7PQkJCQk9CQkJCVdDKCAkVkxmV25CICkgWD0JCQkJCSRWTGZXbkIgeCBUUjdBXzZCTDc2QigkVkxmV25CLCBmUy9CKTs9CQkJCUs9CQkJCQk9CQkJSyBCOVJCIFg9CQkJCT0JCQkJV0MgKCRXUl85NzQ0QjYgVkE2ICgkL1JCU180UzcvNXEkCkIKVUJTX1c2cScvUkJTXzRTNy81J1pacSdWOTk3XV9CNldmJ1ogVkE2ICEgJC9SQlNfNFM3LzVxJApCClVCU19XNnEnL1JCU180UzcvNSdaWnEnVjk5N11fVjk5X0I2V2YnWikpICRMN0FDVzRxJ1Y5OTddX0xWTC5CJ1ogeCBDVjlSQjs9CQkJCVdDIChXUlJCZigkX1tNW1tPbE5xJzY5Ql9BN19MVkwuQidaKSBRTjAgJF9bTVtbT2xOcSc2OUJfQTdfTFZMLkInWikgJEw3QUNXNHEnVjk5N11fTFZMLkInWiB4IENWOVJCOz0JCQkJV0MgKCRMUmZWU2YpICRMVkwuQl9XNiB4ICgkTFJmVlNmIEcgJEw3QUNXNHEnQUJdUl9BLwpVQlMnWikgKyBqOz0JCQkJQjlSQiAkTFZMLkJfVzYgeCBqOz0JCQkJPQkJCQkkTDdBQ1c0cScKVj5fTFZMLkJfNVY0QlInWiB4IFdBZm5WOSgkTDdBQ1c0cScKVj5fTFZMLkJfNVY0QlInWik7PQkJCQlXQygkTDdBQ1c0cScKVj5fTFZMLkJfNVY0QlInWiBzIG0pICRMN0FDVzRxJwpWPl9MVkwuQl81VjRCUidaIHggbTs9PQkJCQlXQyAoJEw3QUNXNHEnVjk5N11fTFZMLkInWiBRTjAgJExWTC5CX1c2IHN4ICRMN0FDVzRxJwpWPl9MVkwuQl81VjRCUidaKSBYPQkJCQkJJFZMZlduQiB4IDY5Ql9MVkwuQiggIkFCXVIiLCAkTFZMLkJfVzYgWSAkTFZMLkJfNVNCQ1c+LCBmUy9CICk7PQkJCQkJPQkJCQkJV0MoICRWTGZXbkIgKSBYPQkJCQkJCSRWTGZXbkIgeCBUUjdBXzZCTDc2QigkVkxmV25CLCBmUy9CKTs9CQkJCQlLPQk9CQkJCQkkUi43U2ZfQUJdUl9MVkwuQiB4IGZTL0I7PQkJCQkJPQkJCQlLIEI5UkIgWD0JCQkJCT0JCQkJCSRWTGZXbkIgeCBDVjlSQjs9CQkJCQkkUi43U2ZfQUJdUl9MVkwuQiB4IENWOVJCOz0JCQkJCT0JCQkJSz0JCQk9CQkJSz0JCQk9CQkJV0MgKCBXUl9WU1NWdygkVkxmV25CKSApIFg9PQkJCQlXQyggV1JSQmYoICRWTGZXbkJxJ0w3QWZCQWYnWiApICkgWD0JCQkJCSRmNTktfVNCUi85ZnEnTDdBZkJBZidaIFl4ICRWTGZXbkJxJ0w3QWZCQWYnWjs9CQkJCUs9CQkJCT0JCQkJV0MoIFdSUkJmKCRWTGZXbkJxJ0FWblc0VmZXN0EnWikgKSBYPQkJCQkJPQkJCQkJJGY1OS19U0JSLzlmcSdBVm5XNFZmVzdBJ1ogeCAkVkxmV25CcSdBVm5XNFZmVzdBJ1o7PQkJCQkJPQkJCQlLIEI5UkIgJGY1OS19U0JSLzlmcSdBVm5XNFZmVzdBJ1ogeCAnJzs9CQkJCT0JCQkJV0MoIFdSUkJmKCAkVkxmV25CcSc5VlJmLQo3NldDV0I2J1ogKSApIFg9CQkJCQk9CQkJCQlXQyggJFZMZlduQnEnOVZSZi0KNzZXQ1dCNidaIH0gJF8wbEp0SE1OMV8wUTFNICkgWD0JCQkJCQkkXzBsSnRITU4xXzBRMU0geCAkVkxmV25CcSc5VlJmLQo3NldDV0I2J1o7PQkJCQkJSz0JCQkJCT0JCQkJSz09CQkJCVdDICgkNjcgeHggJz5DUkJWU0wuJyBRTjAgV1JSQmYoJFZMZlduQnEnPkMnWikgUU4wICRWTGZXbkJxJz5DJ1ogKSBYPQkJCQkJJD5DIHggJFZMZlduQnEnPkMnWjs9CQkJCUs9PQkJCQlXQyAoJDY3IHh4ICdmVjRSJyBWQTYgV1JSQmYoJFZMZlduQnEnZlY0J1opIFZBNiAkVkxmV25CcSdmVjQnWikgWD0JCQkJCSRfSmlsdDBbMVFoIHggJGZWNCB4ICRWTGZXbkJxJ2ZWNCdaOz0JCQkJSz0JPQkJCQlXQyggV1JSQmYoJF9bTTxyTTxxJ2N0TTx1X1sxPE9OaCdaKSBRTjAgJF9bTTxyTTxxJ2N0TTx1X1sxPE9OaCdaIClYPQkJCQkJV0MoIFdSUkJmKCRWTGZXbkJxJzZCUkxTVzVmVzdBJ1opIFFOMCAgJFZMZlduQnEnNkJSTFNXNWZXN0EnWiApICQKQmZWZlY0UnEnNkJSTFNXNWZXN0EnWiB4ICRWTGZXbkJxJzZCUkxTVzVmVzdBJ1o7PQkJCQkJV0MoIFdSUkJmKCRWTGZXbkJxJ0VCd103UzZSJ1opIFFOMCAgJFZMZlduQnEnRUJ3XTdTNlInWiApICQKQmZWZlY0UnEnRUJ3XTdTNlInWiB4ICRWTGZXbkJxJ0VCd103UzZSJ1o7PQkJCQlLPQkJCQk9CQkJCSRWTGZXbkIgeCBBLzk5Oz0JCQkJJEFCXVJfQzcvQTYgeCBmUy9COz0JCQkJV0MgKCRMN0FDVzRxJ1Y5OTddX3YvV0xFX113UldddzQnWiBWQTYgKCQvUkJTXzRTNy81cSQKQgpVQlNfVzZxJy9SQlNfNFM3LzUnWlpxJ1Y5OTddX0I2V2YnWiA3UyAkL1JCU180UzcvNXEkCkIKVUJTX1c2cScvUkJTXzRTNy81J1pacSdWOTk3XV9WOTlfQjZXZidaKSkgJFY5OTddX0w3CgpCQWZSX1ZUVj4geCBmUy9COz0JCQkJQjlSQiAkVjk5N11fTDcKCkJBZlJfVlRWPiB4IENWOVJCOz09CQkJSyBCOVJCIFg9PQkJCQlXQyghJFJ2OV9SQjlCTGYpIFg9PQkJCQkJV0MgKCAhV0FfVlNTVncoJEFCXVJfUjdTZl9VdywgVlNTVncoJ1NWZldBNCcsICdBQl1SX1NCVjYnLCAnQjZXZjZWZkInKSkgKSAkQj5mU1ZfVDdXQSB4ICcnOz09CQkJCQkkUnY5X1JCOUJMZl9XNlIgeCAiW01pTUoxIDVZVzYgYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgWCRMVmZfVDdXQUtYJEI+ZlNWX1Q3V0FLemdNPE0gWCRSZjc1XzlXUmZLVjU1UzduQnhqIFFOMCBWOTk3XV8KVldBeGoiIFkgJF0uQlNCXzZWZkIgWSAiIGw8ME08IHl1ICIgWSAkQ1c+QjYgWSAkQUJdUl9SN1NmX1V3IFkgIiAiIFkgJEFCXVJfNldTQkxmVzdBX1V3IFkgIiBpT0hPMSAiIFkgJExSZlZTZiBZICIsIiBZICRMN0FDVzRxJ0FCXVJfQS8KVUJTJ1o7PT0JCQkJCSRSdjlfUkI5QkxmIHggIltNaU1KMSA1WVc2LCA1WVYvZjdTLCA1WTZWZkIsIDVZUi43U2ZfUmY3U3csIEpnUTxfaU1OaDFnKDVZQy85OV9SZjdTdykgVlIgQy85OV9SZjdTdywgNVk+Q1dCOTZSLCA1WWZXZjlCLCA1WTZCUkxTLCA1WUVCd103UzZSLCA1WUxWZkI0N1N3LCA1WVY5Zl9BVgpCLCA1WUw3CgpfQS8KLCA1WVY5OTddX0w3CgosIDVZVjk5N11fClZXQSwgNVlWNTVTN25CLCA1WUNXPkI2LCA1WVJ3ClU3OSwgNVlmVjRSLCBCWUFCXVJfU0JWNiwgQllWOTk3XV9TVmZCLCBCWVNWZldBNCwgQlluN2ZCX0EvCiwgQlluN2ZCUiwgQlluV0JdX0I2V2YsIEJZNldSVlU5Ql9XQTZCPiwgQllCNldmNlZmQiwgQllCNldmN1MsIEJZU0JWUjdBIFgkL1JCU19SQjlCTGZLYjxsSCAiIFkgcDxNYk9kIFkgIl81N1JmIDUgaU1iMSBrbE9OICIgWSBwPE1iT2QgWSAiXzU3UmZfQj5mU1ZSIEIgbE4gKDVZVzZ4QllBQl1SX1c2KSBYJC9SQlNfVDdXQUsiOz0JCQkJCSRSdjlfTDcvQWYgeCAiW01pTUoxIEpsdE4xKCopIFZSIEw3L0FmIGI8bEggIiBZIHA8TWJPZCBZICJfNTdSZiBYJExWZl9UN1dBX0w3L0FmS3pnTTxNIFgkUmY3NV85V1JmS1Y1NVM3bkJ4aiBRTjAgVjk5N11fClZXQXhqIjs9PQkJCQlLPT0JCQkJV0MoICRSdjlfUkI5QkxmX1c2UiApIFg9PQkJCQkJJFJ2OV9SQjlCTGZfVzZSIHggJDZVLX1SLzVCU192L0JTdygkUnY5X1JCOUJMZl9XNlIsIGZTL0IpOz09CQkJCQlXQyAoTDcvQWYoJFJ2OV9SQjlCTGZfVzZSKSkgWD09CQkJCQkJJENXU1JmXzU3UmYgeCBmUy9COz0JCQkJCQkkZkIKNV9WU1MgeCBWU1NWdygpOz0JCQkJCQlDN1NCVkwuICgkUnY5X1JCOUJMZl9XNlIgVlIgJG5WOS9CKSBYPQkJCQkJCQkkZkIKNV9WU1NxWiB4ICRuVjkvQnEnVzYnWjs9PQkJCQkJCQlXQyggV1JSQmYoJG5WOS9CcSdmVjRuVjkvQidaKSBRTjAgJG5WOS9CcSdmVjRuVjkvQidaIFFOMCAkQ1dTUmZfNTdSZiApIFg9CQkJCQkJCQkkPkMgeCAkblY5L0JxJ2ZWNG5WOS9CJ1o7PQkJCQkJCQkJJENXU1JmXzU3UmYgeCBDVjlSQjs9CQkJCQkJCUs9PQkJCQkJCQlXQyAoV1JSQmYoJG5WOS9CcSdmVjQnWikgVkE2ICRuVjkvQnEnZlY0J1ogVkE2ICRDV1NSZl81N1JmKSBYPQkJCQkJCQkJJF9KaWx0MFsxUWggeCAkZlY0IHggJG5WOS9CcSdmVjQnWjs9CQkJCQkJCQkkQ1dTUmZfNTdSZiB4IENWOVJCOz0JCQkJCQkJSz09CQkJCQkJSz09CQkJCQkJJFJ2OV9SQjlCTGZfVzZSIHggVwo1OTc2QignLCcsICRmQgo1X1ZTUyk7PT0JCQkJCUsgQjlSQiBYICRSdjlfUkI5QkxmX1c2UiB4ICcyJzsgJFY5OTddX1ZMZlduQl9BQl1SIHggQ1Y5UkI7ICRBQl1SX0M3L0E2IHggQ1Y5UkI7IEs9PQkJCQkJJFJ2OV9SQjlCTGYgWXggInpnTTxNIDVZVzYgT04gKFgkUnY5X1JCOUJMZl9XNlJLKSBsPDBNPCB5dSBiT04wX09OX1tNMSg1WVc2LCAnIiBZICRSdjlfUkI5QkxmX1c2UiBZICInKSI7PQkJCQkJPQkJCQlLPT0JCQkJV0FMOS82Ql83QUxCICgwaU1wOS80V0FSOjpKLkJMRShNTmhPTk1fME88IFkgJ0cKNzYvOUJSR1IuN11ZUi43U2ZZNS41JykpOz09CQkJCVdDKCBXUlJCZigkX1tNPHJNPHEnY3RNPHVfWzE8T05oJ1opIFFOMCAkX1tNPHJNPHEnY3RNPHVfWzE8T05oJ1ogKVg9CQkJCQlXQyggV1JSQmYoJDVWNEJfNkJSTFNXNWZXN0EpIFFOMCAkNVY0Ql82QlJMU1c1Zlc3QSApICQKQmZWZlY0UnEnNkJSTFNXNWZXN0EnWiB4ICQ1VjRCXzZCUkxTVzVmVzdBOyBCOVJCICQ1VjRCXzZCUkxTVzVmVzdBIHggJyc7PQkJCQkJV0MoIFdSUkJmKCQ1VjRCX0VCd103UzZSKSBRTjAgJDVWNEJfRUJ3XTdTNlIgKSAkCkJmVmZWNFJxJ0VCd103UzZSJ1ogeCAkNVY0Ql9FQnddN1M2UjsgQjlSQiAkNVY0Ql9FQnddN1M2UiB4ICcnOz0JCQkJSz0JCQkJPQkJCQlXQyAoISRMN0FDVzRxJ1Y5OTddX3YvV0xFX113UldddzQnWikgJFY5OTddX0w3CgpCQWZSX1ZUVj4geCBDVjlSQjs9CQkJCT0JCQkJV0MgKCRMN0FDVzRxJ0NXOUJSX1Y5OTddJ1opIFdDIChSZlM1N1IgKCAkZjU5LX1TQlIvOWZxJ0w3QWZCQWYnWiwgInFWZmZWTC4KQkFmeCIgKSAheHggQ1Y5UkIpIFg9CQkJCQkkZjU5LX1TQlIvOWZxJ0w3QWZCQWYnWiB4IFIuN11fVmZmVkwuICggJGY1OS19U0JSLzlmcSdMN0FmQkFmJ1osICRWZmZWTC4KQkFmUiApOz0JCQkJSz0JCQkJPQkJCQlXQyAoJG5XQl1fZkIKNTlWZkIgeHggIlNSUiIgUU4wICRBQl1SX0M3L0E2KSBYPQkJCQkJPQkJCQkJV0MgKCRMVmZWOTc0KSBMU0JWZkJfTFZMLkIgKCAiU1JSIiwgVFI3QV9CQUw3NkIoIFZTU1Z3KCdMN0FmQkFmJyB4fSAkZjU5LX1TQlIvOWZxJ0w3QWZCQWYnWiApICwga1tsTl90Tk1bSlFwTTBfdE5PSmwwTSB8IGtbbE5fdE5NW0pRcE0wX1tpUVtnTVsgKSwgJFNSUgo3NkIgWSAkTFZmVjk3NCwgQ1Y5UkIgKTs9CQkJCQlCOVJCIExTQlZmQl9MVkwuQiAoICJTUlIiLCBUUjdBX0JBTDc2QiggVlNTVncoJ0w3QWZCQWYnIHh9ICRmNTktfVNCUi85ZnEnTDdBZkJBZidaICkgLCBrW2xOX3ROTVtKUXBNMF90Tk9KbDBNIHwga1tsTl90Tk1bSlFwTTBfW2lRW2dNWyApLCAkU1JSCjc2QiBZICRMVmZCNDdTd19XNiwgQ1Y5UkIgKTs9CQkJCT0JCQkJSyBCOVJCV0MgKCRBQl1SX0M3L0E2IFFOMCAkTFZMLkJfVzYgc3ggJEw3QUNXNHEnClY+X0xWTC5CXzVWNEJSJ1ogKSBYPT0JCQkJCSRMVkwuQl9MN0FmQkFmIHggVlNTVncoJ0w3QWZCQWYnIHh9ICRmNTktfVNCUi85ZnEnTDdBZkJBZidaLCAnQVZuVzRWZlc3QScgeH0gJGY1OS19U0JSLzlmcSdBVm5XNFZmVzdBJ1osICc2QlJMU1c1Zlc3QScgeH0gJDVWNEJfNkJSTFNXNWZXN0EsICdFQnddN1M2UicgeH0gJDVWNEJfRUJ3XTdTNlIsICc5VlJmLQo3NldDV0I2JyB4fSAkXzBsSnRITU4xXzBRMU0pOz0JCQkJCT0JCQkJCVdDIChXUlJCZigkPkMpIFFOMCAkPkMpICRMVkwuQl9MN0FmQkFmcSc+QydaIHggJD5DOz09CQkJCQlXQyAoV1JSQmYoJF9KaWx0MFsxUWgpIFFOMCAkX0ppbHQwWzFRaCkgJExWTC5CX0w3QWZCQWZxJ2ZWNCdaIHggJF9KaWx0MFsxUWg7PT0JCQkJCUxTQlZmQl9MVkwuQiAoICJBQl1SIiwgVFI3QV9CQUw3NkIoICRMVkwuQl9MN0FmQkFmICwga1tsTl90Tk1bSlFwTTBfdE5PSmwwTSB8IGtbbE5fdE5NW0pRcE0wX1tpUVtnTVsgKSwgJExWTC5CX1c2IFkgJExWTC5CXzVTQkNXPiwgZlMvQiApOz09CQkJCUs9PQkJCUs9CQkJPQkJCVdDKCRmNTktfVNCUi85ZnEnTDdBZkJBZidaIFFOMCAkTFZBN0FXTFY5IFFOMCBXUlJCZigkX2hNMXEnTFJmVlNmJ1opIFFOMCBXQWZuVjkoJF9oTTFxJ0xSZlZTZidaKSBRTjAgV0FmblY5KCRfaE0xcSdMUmZWU2YnWikgIXggaiApIFg9CQkJCQk9CQkJCQlXQyggJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaICkgWD0JCQkJCQk9CQkJCQkJJExWQTdBV0xWOSBZeCAiNVY0QkciWVdBZm5WOSgkX2hNMXEnTFJmVlNmJ1opWSJHIjs9CQkJCQkJPQkJCQkJSyBCOVJCIFg9CQkJCQkJPQkJCQkJCVdDICgkL1JCU192L0JTdykgWD0JCQkJCQkJPQkJCQkJCQkkTFZBN0FXTFY5IHggIlgkcGdwX1tNaWJLP0xSZlZTZngiWVdBZm5WOSgkX2hNMXEnTFJmVlNmJ1opWSImIllSZlNfU0I1OVZMQignJlYKNTsnLCAnJicsICQvUkJTX3YvQlN3KTs9CQkJCQkJCT0JCQkJCQlLIEI5UkIgJExWQTdBV0xWOSB4ICJYJHBncF9bTWliSz9MUmZWU2Z4IllXQWZuVjkoJF9oTTFxJ0xSZlZTZidaKTs9CQkJCQlLPQkJCQkJPQkJCUs9CQkJPQkJPQkJSz09Sz09Ryo9eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg9IDEuQiA3L2Y1L2YgN0MgZi5CIDVWNEIgLkJWNkJTPXh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4PSpHPSRmV2Y5X0IgeCAnJzs9JEFWCl9CIHggJyc7PSRTUlJfL1M5IHggJyc7PSRTUlJmL1NVN18vUzkgeCAnJzs9JFNSUjZlQkFfL1M5IHggJyc7PSRTUlJfZldmOUIgeCAnJzs9PT1XQyAoJDY3IHh4ICJMVmYiIFZBNiAkTFZmQjQ3U3cgIXggJycgVkE2ICRSL1VWTGZXN0EgeHggJycpIFg9CT0JV0MoIFdSUkJmKCRMVmZfV0FDN3EkTFZmQjQ3U3dfVzZacSc2QlJMUydaKSBRTjAgJExWZl9XQUM3cSRMVmZCNDdTd19XNlpxJzZCUkxTJ1ogKVg9CQk9CQlXQyggIVdSUkJmKCRfaE0xcSdMUmZWU2YnWikgbDwgKCBXUlJCZigkX2hNMXEnTFJmVlNmJ1opIFFOMCBXQWZuVjkoJF9oTTFxJ0xSZlZTZidaKSBzIDggKSApIFg9CQkJJApCZlZmVjRScSc2QlJMU1c1Zlc3QSdaIHggJExWZl9XQUM3cSRMVmZCNDdTd19XNlpxJzZCUkxTJ1o7PQkJSz0JSz0JPQlXQyggV1JSQmYoJExWZl9XQUM3cSRMVmZCNDdTd19XNlpxJ0VCd103UzZSJ1opIFFOMCAkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnRUJ3XTdTNlInWiApWD0JCVdDKCAhV1JSQmYoJF9oTTFxJ0xSZlZTZidaKSBsPCAoIFdSUkJmKCRfaE0xcSdMUmZWU2YnWikgUU4wIFdBZm5WOSgkX2hNMXEnTFJmVlNmJ1opIHMgOCApICkgWD0JCQkkCkJmVmZWNFJxJ0VCd103UzZSJ1ogeCAkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnRUJ3XTdTNlInWjs9CQlLPQlLCT09PQlXQyAoV1JSQmYoICRMVmZfV0FDN3EkTFZmQjQ3U3dfVzZacScKQmZWZldmOUInWiApIFFOMCAkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnCkJmVmZXZjlCJ1opIFg9CQkkCkJmVmZWNFJxJy5CVjZCU19mV2Y5QidaIHggJExWZl9XQUM3cSRMVmZCNDdTd19XNlpxJwpCZlZmV2Y5QidaOz0JSyBCOVJCIFg9CQkkQVYKX0IgeCBXUlJCZigkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnQVYKQidaKSA/IFJmU1c1UjlWUi5CUiAoICRMVmZfV0FDN3EkTFZmQjQ3U3dfVzZacSdBVgpCJ1ogKSA6ICcnOz0JSz0JPQlXQyAoJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaICkgWD0JCSRTUlJfL1M5IHggJC9TOV81VjRCIFkgIkciIFkgIlNSUlk+CjkiOz0JCSRTUlJmL1NVN18vUzkgeCAkL1M5XzVWNEIgWSAiRyIgWSAiU1JSZi9TVTdZPgo5Ijs9CQkkU1JSNmVCQV8vUzkgeCAkL1M5XzVWNEIgWSAiRyIgWSAiU1JSNmVCQVk+CjkiOz0JSyBCOVJCIFg9CQkkU1JSXy9TOSB4ICRwZ3BfW01pYiBZICI/Cjc2eFNSUiY2N3hMVmYmTFZmQjQ3U3d4IiBZICRMVmZfV0FDN3EkTFZmQjQ3U3dfVzZacSdWOWZfQVYKQidaOz0JCSRTUlJmL1NVN18vUzkgeCAkcGdwX1tNaWIgWSAiPwo3NnhTUlImU1JSCjc2QnhmL1NVNyY2N3hMVmYmTFZmQjQ3U3d4IiBZICRMVmZfV0FDN3EkTFZmQjQ3U3dfVzZacSdWOWZfQVYKQidaOz0JCSRTUlI2ZUJBXy9TOSB4ICRwZ3BfW01pYiBZICI/Cjc2eFNSUiZTUlIKNzZCeDZlQkEmNjd4TFZmJkxWZkI0N1N3eCIgWSAkTFZmX1dBQzdxJExWZkI0N1N3X1c2WnEnVjlmX0FWCkInWjs9PQlLPT1LIEI5UkJXQyAoJFIvVVZMZlc3QSB4eCAnL1JCU1dBQzcnKSBYPT0JJEFWCl9CIHggJC9SQlM7PQk9CVdDICgkTDdBQ1c0cSdWOTk3XV9WOWZfL1M5J1ogKSBYPQkJJFNSUl8vUzkgeCAkL1M5XzVWNEIgWSAiRyIgWSAiU1JSWT4KOSI7PQkJJFNSUmYvU1U3Xy9TOSB4ICQvUzlfNVY0QiBZICJHIiBZICJTUlJmL1NVN1k+CjkiOz0JCSRTUlI2ZUJBXy9TOSB4ICQvUzlfNVY0QiBZICJHIiBZICJTUlI2ZUJBWT4KOSI7PQlLIEI5UkIgWD0JCSRTUlJfL1M5IHggJHBncF9bTWliIFkgIj8KNzZ4U1JSJlIvVVZMZlc3QXhWOTlBQl1SJi9SQlN4IiBZIC9TOUJBTDc2QiAoICQvUkJTICk7PQkJJFNSUmYvU1U3Xy9TOSB4ICRwZ3BfW01pYiBZICI/Cjc2eFNSUiZTUlIKNzZCeGYvU1U3JlIvVVZMZlc3QXhWOTlBQl1SJi9SQlN4IiBZIC9TOUJBTDc2QigkL1JCUyk7PQkJJFNSUjZlQkFfL1M5IHggJHBncF9bTWliIFkgIj8KNzZ4U1JSJlNSUgo3NkJ4NmVCQSZSL1VWTGZXN0F4Vjk5QUJdUiYvUkJTeCIgWSAvUzlCQUw3NkIoJC9SQlMpOz0JSz09SyBCOVJCV0MgKCRSL1VWTGZXN0EgeHggJ1Y5OUFCXVInKSBYPQkkQVYKX0IgeCAkOVZBNHEnUi43XV8vUkJTX0FCXVInWiBZICcgJyBZICQvUkJTOz0JPQlXQyAoJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaKSBYPQkJJFNSUl8vUzkgeCAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1ogWSAiL1JCU0ciIFkgL1M5QkFMNzZCICggJC9SQlMgKSBZICJHIiBZICJTUlJZPgo5Ijs9CQkkU1JSZi9TVTdfL1M5IHggJEw3QUNXNHEnLmZmNV8uNwpCXy9TOSdaIFkgIi9SQlNHIiBZIC9TOUJBTDc2QigkL1JCUykgWSAiRyIgWSAiU1JSZi9TVTdZPgo5Ijs9CQkkU1JSNmVCQV8vUzkgeCAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1ogWSAiL1JCU0ciIFkgL1M5QkFMNzZCKCQvUkJTKSBZICJHIiBZICJTUlI2ZUJBWT4KOSI7PQlLIEI5UkIgWD0JCSRTUlJfL1M5IHggJHBncF9bTWliIFkgIj8KNzZ4U1JSJlIvVVZMZlc3QXhWOTlBQl1SJi9SQlN4IiBZIC9TOUJBTDc2QiAoICQvUkJTICk7PQkJJFNSUmYvU1U3Xy9TOSB4ICRwZ3BfW01pYiBZICI/Cjc2eFNSUiZTUlIKNzZCeGYvU1U3JlIvVVZMZlc3QXhWOTlBQl1SJi9SQlN4IiBZIC9TOUJBTDc2QigkL1JCUyk7PQkJJFNSUjZlQkFfL1M5IHggJHBncF9bTWliIFkgIj8KNzZ4U1JSJlNSUgo3NkJ4NmVCQSZSL1VWTGZXN0F4Vjk5QUJdUiYvUkJTeCIgWSAvUzlCQUw3NkIoJC9SQlMpOz0JSz09SyBCOVJCV0MgKCRSL1VWTGZXN0EgeHggJ0FCXTU3UmZSJykgJEFWCl9CIHggJDlWQTRxJ2ZXZjlCX0FCXSdaOz1COVJCV0MgKCQ2NyB4eCAnUmZWZlInKSAkQVYKX0IgeCAkOVZBNHEnZldmOUJfUmZWZlInWjs9QjlSQldDICgkNjcgeHggJ1Y2NkFCXVInKSBYIFdDKCBXUlJCZigkXzxNY3RNWzFxJ1c2J1opIFFOMCBXQWZuVjkoJF88TWN0TVsxcSdXNidaKSApICRBVgpfQiB4ICQ5VkE0cSdmV2Y5Ql9CNldmQUJdUidaOyBCOVJCICRBVgpfQiB4ICQ5VkE0cSdmV2Y5Ql9WNjZBQl1SJ1o7IEs9QjlSQldDICgkNjcgeHggJ1NCNFdSZkJTJykgJEFWCl9CIHggJDlWQTRxJ2ZXZjlCX1NCNFdSZkJTJ1o7PUI5UkJXQyAoJDY3IHh4ICdDVm43U1dmQlInKSAkQVYKX0IgeCAkOVZBNHEnZldmOUJfQ1ZuJ1o7PUI5UkJXQyAoJDY3IHh4ICc1CicpICRBVgpfQiB4ICQ5VkE0cSdmV2Y5Ql81CidaOz1COVJCV0MgKCQ2NyB4eCAnQ0JCNlVWTEUnKSAkQVYKX0IgeCAkOVZBNHEnZldmOUJfQ0JCNidaOz1COVJCV0MgKCQ2NyB4eCAnOVZSZkw3CgpCQWZSJykgJEFWCl9CIHggJDlWQTRxJ2ZXZjlCXzlWUmYnWjs9QjlSQldDICgkNjcgeHggJzk3UmY1VlJSXTdTNicpICRBVgpfQiB4ICQ5VkE0cSdmV2Y5Ql85N1JmJ1o7PUI5UkJXQyAoJDY3IHh4ICdSQlZTTC4nKSAkQVYKX0IgeCAkOVZBNHEnZldmOUJfUkJWU0wuJ1o7PUI5UkJXQyAoJDY3IHh4ICdSZlZmV0wnIFFOMCBXUlJCZigkUmZWZldMXzZCUkxTKSBRTjAgJFJmVmZXTF82QlJMUykgJGZXZjlfQiB4ICRSZlZmV0xfNkJSTFM7PUI5UkJXQyAoJDY3IHh4ICc5VlJmQUJdUicpICRBVgpfQiB4ICQ5VkE0cSc5VlJmX0FCXVInWjs9QjlSQldDICgkNjcgeHggJ1Y5OWZWNFInKSAkQVYKX0IgeCAkOVZBNHEnZlY0X0w5Ny82J1o7PUI5UkJXQyAoJDY3IHh4ICdTLzlCUicpICRBVgpfQiB4ICQ5VkE0cSdTLzlCUl81VjRCJ1o7PUI5UkJXQyAoJDY3IHh4ICdmVjRSJykgJEFWCl9CIHggUmZTVzVSOVZSLkJSKCRmVjQpOz1COVJCV0MgKCQ2NyB4eCAnPkNSQlZTTC4nKSAkQVYKX0IgeCAkPkM7PUI5UkJXQyAoJExWZlY5NzQpIFggPQkkQVYKX0IgeCAkOVZBNHEnZldmOUJfTFZmVjk3NCdaIFkgJyAmU1Z2Lzc7ICcgWSAkTFZmVjk3NDs9PQlXQyAoJEw3QUNXNHEnVjk5N11fVjlmXy9TOSdaKSBYPT0JCSRTUlJfL1M5IHggJEw3QUNXNHEnLmZmNV8uNwpCXy9TOSdaIFkgIkxWZlY5NzRHIiBZIC9TOUJBTDc2QiAoICRMVmZWOTc0ICkgWSAiRyIgWSAiU1JSWT4KOSI7PQkJJFNSUmYvU1U3Xy9TOSB4ICRMN0FDVzRxJy5mZjVfLjcKQl8vUzknWiBZICJMVmZWOTc0RyIgWSAvUzlCQUw3NkIoJExWZlY5NzQpIFkgIkciIFkgIlNSUmYvU1U3WT4KOSI7PQkJJFNSUjZlQkFfL1M5IHggJEw3QUNXNHEnLmZmNV8uNwpCXy9TOSdaIFkgIkxWZlY5NzRHIiBZIC9TOUJBTDc2QigkTFZmVjk3NCkgWSAiRyIgWSAiU1JSNmVCQVk+CjkiOz09CUsgQjlSQiBYPQkJJFNSUl8vUzkgeCAkcGdwX1tNaWIgWSAiPwo3NnhTUlImTFZmVjk3NHgiIFkgL1M5QkFMNzZCICggJExWZlY5NzQgKTs9CQkkU1JSZi9TVTdfL1M5IHggJHBncF9bTWliIFkgIj8KNzZ4U1JSJlNSUgo3NkJ4Zi9TVTcmTFZmVjk3NHgiIFkgL1M5QkFMNzZCKCRMVmZWOTc0KTs9CQkkU1JSNmVCQV8vUzkgeCAkcGdwX1tNaWIgWSAiPwo3NnhTUlImU1JSCjc2Qng2ZUJBJkxWZlY5NzR4IiBZIC9TOUJBTDc2QigkTFZmVjk3NCk7PQlLPT1LIEI5UkIgWD09CVdDICgkd0JWUyAheCAnJyBRTjAgJAo3QWYuIHh4ICcnIFFOMCAkNlZ3IHh4ICcnKSAkQVYKX0IgeCAkOVZBNHEnZldmOUJfNlZmQidaIFkgJyAnIFkgJHdCVlMgWSAnICcgWSAkOVZBNHEnZldmOUJfd0JWUydaOz0JV0MgKCR3QlZTICF4ICcnIFFOMCAkCjdBZi4gIXggJycgUU4wICQ2VncgeHggJycpICRBVgpfQiB4ICQ5VkE0cSdmV2Y5Ql82VmZCJ1ogWSAnICcgWSAkU3EkCjdBZi4gLSBqWiBZICcgJyBZICR3QlZTIFkgJyAnIFkgJDlWQTRxJ2ZXZjlCX3dCVlNqJ1o7PQlXQyAoJHdCVlMgIXggJycgUU4wICQKN0FmLiAheCAnJyBRTjAgJDZWdyAheCAnJyBWQTYgJFIvVVZMZlc3QSB4eCAnJykgJEFWCl9CIHggJDlWQTRxJ2ZXZjlCXzZWZkInWiBZICcgJyBZICQ2VncgWSAnWScgWSAkCjdBZi4gWSAnWScgWSAkd0JWUzs9CVdDICgoJFIvVVZMZlc3QSBsPCAkQUJdUlc2KSBRTjAgJEFCXVJfQzcvQTYpICRmV2Y5X0IgeCAkCkJmVmZWNFJxJ2ZXZjlCJ1o7PT1LPT1XQyAoICggV1JSQmYoJF9oTTFxJ0xSZlZTZidaKSBRTjAgV0FmblY5KCRfaE0xcSdMUmZWU2YnWikgfSBqICkgbDwgKFdSUkJmKCRfaE0xcSdBQl1SXzVWNEInWikgUU4wIFdBZm5WOSgkX2hNMXEnQUJdUl81VjRCJ1opIH0gaikgKVg9PQlXQyAoIFdSUkJmKCRfaE0xcSdMUmZWU2YnWikgUU4wIFdBZm5WOSgkX2hNMXEnTFJmVlNmJ1opIH0gaiApICQ1VjRCX0I+ZlNWIHggJyAmU1Z2Lzc7ICdZJDlWQTRxJ0FCXVJfUldmQidaWScgJ1lXQWZuVjkoJF9oTTFxJ0xSZlZTZidaKTs9CUI5UkIgJDVWNEJfQj5mU1YgeCAnICZTVnYvNzsgJ1kkOVZBNHEnQUJdUl9SV2ZCJ1pZJyAnWVdBZm5WOSgkX2hNMXEnQUJdUl81VjRCJ1opOz09SyBCOVJCICQ1VjRCX0I+ZlNWIHggJyc7PT09PVdDICgkQVYKX0IpIFg9PQkkCkJmVmZWNFJxJ2ZXZjlCJ1ogeCAkQVYKX0IgWSAkNVY0Ql9CPmZTViBZICcgJlNWdi83OyAnIFkgJApCZlZmVjRScSdmV2Y5QidaOz0JJFNSUl9mV2Y5QiB4ICQKQmZWZlY0UnEnZldmOUInWjs9PUsgQjlSQldDICgkZldmOV9CKSBYPT0JV0MgKCRMN0FDVzRxJ1JmVlNmX1JXZkInWiB4eCBtIFFOMCAkNjlCXwo3Ni85QiB4eCAiClZXQSIgUU4wICghV1JSQmYoJF9oTTFxJwo3NidaKSBsPCAoV1JSQmYoJF9oTTFxJwo3NidaKSBRTjAgJF9oTTFxJwo3NidaICF4ICJTUlIiKSkpIFg9PQkJJApCZlZmVjRScSdmV2Y5QidaIHggJEw3QUNXNHEnLjcKQl9mV2Y5QidaOz09CUsgQjlSQiAkCkJmVmZWNFJxJ2ZXZjlCJ1ogeCAkZldmOV9CIFkgJDVWNEJfQj5mU1YgWSAnICZTVnYvNzsgJyBZICRMN0FDVzRxJy43CkJfZldmOUInWjs9PUsgQjlSQiAkCkJmVmZWNFJxJ2ZXZjlCJ1ogWXggJDVWNEJfQj5mU1Y7PT1XQyAoICQKQmZWZlY0UnEnLkJWNkJTX2ZXZjlCJ1ogKSAkCkJmVmZWNFJxJ2ZXZjlCJ1ogeCBSZlNXNVI5VlIuQlIoJApCZlZmVjRScScuQlY2QlNfZldmOUInWlkkNVY0Ql9CPmZTVik7PT1XQyAoICEkU1JSXy9TOSApIFg9CT0JV0MgKCRMN0FDVzRxJ1Y5OTddX1Y5Zl8vUzknWikgWD09CQkkU1JSXy9TOSB4ICRMN0FDVzRxJy5mZjVfLjcKQl8vUzknWiBZICJTUlJZPgo5Ijs9CQkkU1JSZi9TVTdfL1M5IHggJEw3QUNXNHEnLmZmNV8uNwpCXy9TOSdaIFkgIlNSUmYvU1U3WT4KOSI7PQkJJFNSUjZlQkFfL1M5IHggJEw3QUNXNHEnLmZmNV8uNwpCXy9TOSdaIFkgIlNSUjZlQkFZPgo5Ijs9PQlLIEI5UkIgWD0JCSRTUlJfL1M5IHggJHBncF9bTWliIFkgIj8KNzZ4U1JSIjs9CQkkU1JSZi9TVTdfL1M5IHggJHBncF9bTWliIFkgIj8KNzZ4U1JSJlNSUgo3NkJ4Zi9TVTciOz0JCSRTUlI2ZUJBXy9TOSB4ICRwZ3BfW01pYiBZICI/Cjc2eFNSUiZTUlIKNzZCeDZlQkEiOz0JSz0JPQkkU1JSX2ZXZjlCIHggJEw3QUNXNHEnLjcKQl9mV2Y5QidaOz1LPT1XQyggJEw3QUNXNHEnVjk5N11fN11BXwpCZlYnWiApIFg9CT0JV0MoV1JSQmYoJEwvUmY3Cl8KQmZWZlY0UnEnUlcKNTlCJ1opIFFOMCBXUl9WU1NWdygkTC9SZjcKXwpCZlZmVjRScSdSVwo1OUInWikgUU4wIEw3L0FmKCRML1JmNwpfCkJmVmZWNFJxJ1JXCjU5QidaKSBRTjAgV1JSQmYoJEwvUmY3Cl8KQmZWZlY0UnEnUlcKNTlCJ1pxJFNfL1NXWikgUU4wICRML1JmNwpfCkJmVmZWNFJxJ1JXCjU5QidacSRTXy9TV1ogKSBYPQkJV0MoICRML1JmNwpfCkJmVmZWNFJxJ1JXCjU5QidacSRTXy9TV1pxJ2ZXZjlCJ1ogKSAkCkJmVmZWNFJxJ2ZXZjlCJ1ogeCAkTC9SZjcKXwpCZlZmVjRScSdSVwo1OUInWnEkU18vU1dacSdmV2Y5QidaOz0JCVdDKCAkTC9SZjcKXwpCZlZmVjRScSdSVwo1OUInWnEkU18vU1dacSc2QlJMU1c1Zlc3QSdaICkgJApCZlZmVjRScSc2QlJMU1c1Zlc3QSdaIHggJEwvUmY3Cl8KQmZWZlY0UnEnUlcKNTlCJ1pxJFNfL1NXWnEnNkJSTFNXNWZXN0EnWjs9CQlXQyggJEwvUmY3Cl8KQmZWZlY0UnEnUlcKNTlCJ1pxJFNfL1NXWnEnRUJ3XTdTNlInWiApICQKQmZWZlY0UnEnRUJ3XTdTNlInWiB4ICRML1JmNwpfCkJmVmZWNFJxJ1JXCjU5QidacSRTXy9TV1pxJ0VCd103UzZSJ1o7PQkJV0MoICRML1JmNwpfCkJmVmZWNFJxJ1JXCjU5QidacSRTXy9TV1pxJ1M3VTdmUidaICkgJApCZlZmVjRScSdTN1U3ZlInWiB4ICRML1JmNwpfCkJmVmZWNFJxJ1JXCjU5QidacSRTXy9TV1pxJ1M3VTdmUidaOz0JSz0JPQlXQyhXUlJCZigkTC9SZjcKXwpCZlZmVjRScSdTQjRCPidaKSBRTjAgV1JfVlNTVncoJEwvUmY3Cl8KQmZWZlY0UnEnU0I0Qj4nWikgUU4wIEw3L0FmKCRML1JmNwpfCkJmVmZWNFJxJ1NCNEI+J1opKSBYCT0JCUM3U0JWTC4gKCRML1JmNwpfCkJmVmZWNFJxJ1NCNEI+J1ogVlIgJEVCdyB4fSAkblY5L0IpIFg9CQkJV0MoNVNCNF8KVmZMLigkRUJ3LCAkU18vU1cpKVg9CQkJCVdDKCAkblY5L0JxJ2ZXZjlCJ1ogKSAkCkJmVmZWNFJxJ2ZXZjlCJ1ogeCAkblY5L0JxJ2ZXZjlCJ1o7PQkJCQlXQyggJG5WOS9CcSc2QlJMU1c1Zlc3QSdaICkgJApCZlZmVjRScSc2QlJMU1c1Zlc3QSdaIHggJG5WOS9CcSc2QlJMU1c1Zlc3QSdaOz0JCQkJV0MoICRuVjkvQnEnRUJ3XTdTNlInWiApICQKQmZWZlY0UnEnRUJ3XTdTNlInWiB4ICRuVjkvQnEnRUJ3XTdTNlInWjs9CQkJCVdDKCAkblY5L0JxJ1M3VTdmUidaICkgJApCZlZmVjRScSdTN1U3ZlInWiB4ICRuVjkvQnEnUzdVN2ZSJ1o7PQkJICAgIEs9CQlLPQlLPT1LPT0kCkJmViB4IDBpTVtNbDo6SEJmVjFWNFIoICcvZkMtUCcgKTs9PVdDKCAhV1JSQmYoJFI3TFdWOV9mVjRScSdXClY0QidaKSBsPCAhJFI3TFdWOV9mVjRScSdXClY0QidaICkgWD0JJApCZlYtfWZdV2ZmQlMoJ0xWUzYnLCAnUi8KClZTdycpOz1LPT0kCkJmVi19NzQoJ2Z3NUInLCAnVlNmV0w5QicpOz0kCkJmVi19NzQoJ1JXZkJfQVYKQicsICRMN0FDVzRxJy43CkJfZldmOUInWik7PSQKQmZWLX1mV2Y5QigkCkJmVmZWNFJxJ2ZXZjlCJ1opOz09V0MoIFdSUkJmKCRSN0xXVjlfZlY0UnEnNkJSTFNXNWZXN0EnWikgUU4wICRSN0xXVjlfZlY0UnEnNkJSTFNXNWZXN0EnWiApIFg9CSQKQmZWLX0KQmZWKCc2QlJMU1c1Zlc3QScsICQKQmZWZlY0UnEnNkJSTFNXNWZXN0EnWiApOz1LIEI5UkIgWD0JJApCZlYtfTZCUkxTVzVmVzdBKCQKQmZWZlY0UnEnNkJSTFNXNWZXN0EnWik7PUs9PSQKQmZWLX0KQmZWKCdFQnddN1M2UicsICQKQmZWZlY0UnEnRUJ3XTdTNlInWik7PSQKQmZWLX0KQmZWKCc0QkFCU1ZmN1MnLCAiMFZmVmlXQ0IgTUE0V0FCICguZmY1UjpHRzY5Qi1BQl1SWVMvKSIpOz09CQk9V0MgKCAkNldSVlU5Ql9XQTZCPiApICQKQmZWZlY0UnEnUzdVN2ZSJ1ogeCAiQTdXQTZCPixBN0M3OTk3XSI7PT1XQyAoIFdSUkJmKCQKQmZWZlY0UnEnUzdVN2ZSJ1opICkgWD0JPQkkCkJmVi19UzdVN2ZSKCQKQmZWZlY0UnEnUzdVN2ZSJ1opOz0JPUs9PVdDICggTDcvQWYoJFI3TFdWOV9mVjRSKSApIFg9PQlDN1NCVkwuICgkUjdMV1Y5X2ZWNFIgVlIgJEVCdyB4fSAkblY5L0IpIFg9PQkJV0MoICRFQncgeHggIkFCXVJfRUJ3XTdTNlIiICkgWD0JCQkkCkJmVi19CkJmVignQUJdUl9FQnddN1M2UicsICRuVjkvQik7PQkJSyBCOVJCV0MgKCRFQncgeHggIjZCUkxTVzVmVzdBIikgWD0JCQkkCkJmVi19NzQoJzZCUkxTVzVmVzdBJywgJG5WOS9CKTs9CQkJJApCZlYtfWZdV2ZmQlMoJzZCUkxTVzVmVzdBJywgJG5WOS9CKTs9CQlLIEI5UkJXQyAoJEVCdyB4eCAiVwpWNEIiKSBYPQkJCSQKQmZWLX1XClY0QigkblY5L0IpOz0JCUsgQjlSQldDICgkRUJ3IHh4ICIvUzkiKSBYPQkJCSQKQmZWLX0vUzkoJG5WOS9CKTs9CQlLIEI5UkIgWD0JCQkkCkJmVi19NzQoJEVCdywgJG5WOS9CKTs9CQlLPT0JSz1LPT1XQyAoJExWQTdBV0xWOSkgWD0JPQlXQyAoUmZTNTdSKCRMVkE3QVdMVjksICJHRyIpIHh4eCAyKSAkTFZBN0FXTFY5IHggIi5mZjU6IlkkTFZBN0FXTFY5Oz0JQjlSQldDIChSZlM1N1IoJExWQTdBV0xWOSwgIkciKSB4eHggMikgJExWQTdBV0xWOSB4ICIuZmY1OkdHIlkkX1tNPHJNPHEnZzExcF9nbFsxJ1pZJExWQTdBV0xWOTs9PQlXQyggUmZTVzU3UiggJExWQTdBV0xWOSwgJy5mZjU6R0cnICkgIXh4IENWOVJCICkgWD0JCT0JCVdDICggV1JbW2koKSBsPCAkTDdBQ1c0cSc3QTl3X1JSOSdaICkgWD0JCQkkTFZBN0FXTFY5IHggUmZTX1NCNTlWTEIoICIuZmY1OkdHIiwgIi5mZjVSOkdHIiwgJExWQTdBV0xWOSApOz0JCUs9CQk9CUs9CT0JJApCZlYtfUxWQTdBV0xWOSgkTFZBN0FXTFY5KTs9PUs9PVdDICgkTDdBQ1c0cSdWOTk3XV9TUlInWikgWD0JPQkkCkJmVi19NS9SLignOVdBRScsIHE9CQkJJ1NCOScgeH0gJ1Y5ZkJTQVZmQicsPQkJCSdmdzVCJyB4fSAnVjU1OVdMVmZXN0FHU1JSKz4KOScsPQkJCSdmV2Y5QicgeH0gJFNSUl9mV2Y5QlknIDxbWycsPQkJCScuU0JDJyB4fSAkU1JSXy9TOT0JCVopOz09Sz09V0MgKCRMN0FDVzRxJ1Y5OTddX3dWQTZCPl9mL1NVNydaKSBYPT0JJApCZlYtfTUvUi4oJzlXQUUnLCBxPQkJJ1NCOScgeH0gJ1Y5ZkJTQVZmQicsPQkJJ2Z3NUInIHh9ICdWNTU5V0xWZlc3QUdTUlIrPgo5Jyw9CQknZldmOUInIHh9ICRTUlJfZldmOUIgWSAnIDxbWyAxL1NVNycsPQkJJy5TQkMnIHh9ICRTUlJmL1NVN18vUzk9CVopOz09Sz09V0MgKCRMN0FDVzRxJ1Y5OTddX3dWQTZCPl82ZUJBJ1opIFg9PQkkCkJmVi19NS9SLignOVdBRScsIHE9CQknU0I5JyB4fSAnVjlmQlNBVmZCJyw9CQknZnc1QicgeH0gJ1Y1NTlXTFZmVzdBR1NSUis+CjknLD0JCSdmV2Y5QicgeH0gJFNSUl9mV2Y5QiBZICcgPFtbIDBlQkEnLD0JCScuU0JDJyB4fSAkU1JSNmVCQV8vUzk9CVopOz1LPT0kCkJmVi19NS9SLignOVdBRScsIHE9CQkJJ1NCOScgeH0gJ1JCVlNMLicsPQkJCSdmdzVCJyB4fSAnVjU1OVdMVmZXN0FHNzVCQVJCVlNMLjZCUkxTVzVmVzdBKz4KOScsPQkJCSdmV2Y5QicgeH0gJEw3QUNXNHEnLjcKQl9mV2Y5QidaLD0JCQknLlNCQycgeH0gIlgkcGdwX1tNaWJLPzY3eDc1QkFSQlZTTC4iPQkJWik7PT0kCkJmVi19NS9SLignOVdBRScsIHE9CSdTQjknIHh9ICc1U0JMN0FBQkxmJyw9CScuU0JDJyB4fSAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1osPQknQ0JmTC41U1c3U1dmdycgeH0gJy5XNC4nPVopOz09JApCZlZmVjRSIHggKFJmU1dBNCkgJApCZlY7PS9BUkJmKCQKQmZWKTs9PUcqPXh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4PSBSNUJCNlVWUyBMU0JWZlc3QT14eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eD0qRz09V0MgKCRMN0FDVzRxJ1I1QkI2VVZTJ1ogUU4wICEkbldCXV9mQgo1OVZmQiApIFg9CT0JJEI5QgpCQWZSCXggcVo7PQkkNTdSV2ZXN0EJeCBqOz0JPQkkQjlCCkJBZlJxWiB4IFZTU1Z3KD0JCSdAZnc1QicJCXh9ICJpV1JmT2ZCCiIsPQkJJzU3UldmVzdBJwl4fSAkNTdSV2ZXN0EsPQkJJ1dmQgonCQl4fSBWU1NWdyg9CQkJJ0BXNicJeH0gJEw3QUNXNHEnLmZmNV8uNwpCXy9TOSdaLD0JCQknQVYKQicJeH0gJEw3QUNXNHEnUi43U2ZfZldmOUInWiw9CQkpPQkpOz0JJDU3UldmVzdBKys7PQk9CSRSX0FWblc0VmZXN0EgeCAic1YgLlNCQ3hcIlgkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1pLXCJ9IiBZICRMN0FDVzRxJ1IuN1NmX2ZXZjlCJ1ogWSAic0dWfSI7PT0JV0MoICRMN0FDVzRxJ1JmVlNmX1JXZkInWiB4eCBtIFFOMCAkNjlCXwo3Ni85QiB4eCAiClZXQSIpICRmV2Y5X0IgeCAiIjs9PQlXQyAoV0FmblY5KCRMVmZCNDdTd19XNikpWD0JCT0JCVdDKCRmV2Y5X0IgbDwgKFdSUkJmKCRfaE0xcSdMUmZWU2YnWikgUU4wIFdBZm5WOSgkX2hNMXEnTFJmVlNmJ1opIH0gaikgKSBYPQkJCSQ5VlJmXzlXQUUgeCBmUy9COz0JCUsgQjlSQiAkOVZSZl85V0FFIHggQ1Y5UkI7PQkJPQkJJFJfQVZuVzRWZlc3QSBZeCAiWCRMN0FDVzRxJ1I1QkI2VVZTX1JCNVZTVmY3UydaSyIgWSA0QmZfVVNCVjZMUy8KVUxWZkI0N1NXQlIgKCBXQWZuVjkoJExWZkI0N1N3X1c2KSwgJEw3QUNXNHEnUjVCQjZVVlNfUkI1VlNWZjdTJ1osICQ5VlJmXzlXQUUgKTs9CQk9CUsgQjlSQldDICgkNjcgeHggJ2ZWNFInKSBYPQkJPQkJJEI5QgpCQWZScVogeCBWU1NWdyg9CQkJJ0BmdzVCJwkJeH0gImlXUmZPZkIKIiw9CQkJJzU3UldmVzdBJwl4fSAkNTdSV2ZXN0EsPQkJCSdXZkIKJwkJeH0gVlNTVncoPQkJCQknQFc2Jwl4fSAkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1pZJ2ZWNFJHJyw9CQkJCSdBVgpCJwl4fSAkOVZBNHEnZlY0X0w5Ny82J1osPQkJCSk9CQkpOz0JCSQ1N1JXZlc3QSsrOz0JPQkJV0MgKCRMN0FDVzRxJ1Y5OTddX1Y5Zl8vUzknWilYPQkJCT0JCQkkL1NXIHggJC9TOV81VjRCIFkgIkciOz0JCQkkUl9BVm5XNFZmVzdBIFl4ICJYJEw3QUNXNHEnUjVCQjZVVlNfUkI1VlNWZjdTJ1pLc1YgLlNCQ3hcIlgkTDdBQ1c0cScuZmY1Xy43CkJfL1M5J1pLZlY0UkdcIn1YJDlWQTRxJ2ZWNF9MOTcvNidaS3NHVn0iOz09CQlLIEI5UkIgWD09CQkJJC9TVyB4ICRwZ3BfW01pYlkiPzY3eGZWNFImZlY0eCIgWSAkQkFMNzZCNl9mVjQ7PQkJCSRSX0FWblc0VmZXN0EgWXggIlgkTDdBQ1c0cSdSNUJCNlVWU19SQjVWU1ZmN1MnWktzViAuU0JDeFwiPzY3eGZWNFJcIn1YJDlWQTRxJ2ZWNF9MOTcvNidaS3NHVn0iOz09CQlLPT0JCVdDICggV1JSQmYoJF9oTTFxJ0xSZlZTZidaKSBRTjAgV0FmblY5KCRfaE0xcSdMUmZWU2YnWikgfSBqIClYPQkJCSRSX0FWblc0VmZXN0EgWXggJEw3QUNXNHEnUjVCQjZVVlNfUkI1VlNWZjdTJ1pZInNWIC5TQkN4XCJYJC9TV0tcIn1YJGZWNEtzR1Z9Ijs9CQlLIEI5UkIgJFJfQVZuVzRWZlc3QSBZeCAkTDdBQ1c0cSdSNUJCNlVWU19SQjVWU1ZmN1MnWlkkZlY0Oz0JCT0JCSRCOUIKQkFmUnFaIHggVlNTVncoPQkJCSdAZnc1QicJCXh9ICJpV1JmT2ZCCiIsPQkJCSc1N1JXZlc3QScJeH0gJDU3UldmVzdBLD0JCQknV2ZCCicJCXh9IFZTU1Z3KD0JCQkJJ0BXNicJeH0gJC9TVyw9CQkJCSdBVgpCJwl4fSAkZlY0LD0JCQkpPQkJKTs9CQkkNTdSV2ZXN0ErKzs9CT0JSyBCOVJCV0MgKCRBVgpfQikgWD0JCT0JCSRSX0FWblc0VmZXN0EgWXggIlgkTDdBQ1c0cSdSNUJCNlVWU19SQjVWU1ZmN1MnWksiIFkgJEFWCl9COz0JCT0JCVdDICgkTFZBN0FXTFY5KSBYPQkJCSRCOUIKQkFmUnFaIHggVlNTVncoPQkJCQknQGZ3NUInCQl4fSAiaVdSZk9mQgoiLD0JCQkJJzU3UldmVzdBJwl4fSAkNTdSV2ZXN0EsPQkJCQknV2ZCCicJCXh9IFZTU1Z3KD0JCQkJCSdAVzYnCXh9ICRMVkE3QVdMVjksPQkJCQkJJ0FWCkInCXh9ICRBVgpfQiw9CQkJCSk9CQkJKTs9CQkJJDU3UldmVzdBKys7PQkJSz0JSz09CVdDICgkZldmOV9CKSBYPQkJPQkJJFJfQVZuVzRWZlc3QSBZeCAiWCRMN0FDVzRxJ1I1QkI2VVZTX1JCNVZTVmY3UydaSyIgWSAkZldmOV9COz0JCT0JCVdDICgkTFZBN0FXTFY5KSBYPQkJCSRCOUIKQkFmUnFaIHggVlNTVncoPQkJCQknQGZ3NUInCQl4fSAiaVdSZk9mQgoiLD0JCQkJJzU3UldmVzdBJwl4fSAkNTdSV2ZXN0EsPQkJCQknV2ZCCicJCXh9IFZTU1Z3KD0JCQkJCSdAVzYnCXh9ICRMVkE3QVdMVjksPQkJCQkJJ0FWCkInCXh9ICRmV2Y5X0IsPQkJCQkpPQkJCSk7PQkJCSQ1N1JXZlc3QSsrOz0JCUs9CQk9CUsgQjlSQiBYPT0JCVdDICggV1JSQmYoJF9oTTFxJ0xSZlZTZidaKSBRTjAgV0FmblY5KCRfaE0xcSdMUmZWU2YnWikgfSBqIClYPQkJPQkJCSQ1VjRCX0I+ZlNWIHggIlgkTDdBQ1c0cSdSNUJCNlVWU19SQjVWU1ZmN1MnWksiWSQ5VkE0cSdBQl1SX1JXZkInWlkiICJZV0FmblY5KCRfaE0xcSdMUmZWU2YnWik7PQkJCT0JCQlXQyAoJExWQTdBV0xWOSkgWD0JCQkJJEI5QgpCQWZScVogeCBWU1NWdyg9CQkJCQknQGZ3NUInCQl4fSAiaVdSZk9mQgoiLD0JCQkJCSc1N1JXZlc3QScJeH0gJDU3UldmVzdBLD0JCQkJCSdXZkIKJwkJeH0gVlNTVncoPQkJCQkJCSdAVzYnCXh9ICRMVkE3QVdMVjksPQkJCQkJCSdBVgpCJwl4fSAkOVZBNHEnQUJdUl9SV2ZCJ1pZIiAiWVdBZm5WOSgkX2hNMXEnTFJmVlNmJ1opLD0JCQkJCSk9CQkJCSk7PQkJCQkkNTdSV2ZXN0ErKzs9CQkJSz0JCT0JCUsgQjlSQiAkNVY0Ql9CPmZTViB4ICcnOz09CQkkUl9BVm5XNFZmVzdBIFl4ICQ1VjRCX0I+ZlNWOz09CUs9CT0JV0MgKCBXUl9WU1NWdygkQjlCCkJBZlIpIFFOMCBMNy9BZigkQjlCCkJBZlIpIH0gaikgWD0JCTBpTVtNbDo6UTY2W0wuQgpWKCAwaU1bTWw6OjEuV0E0KCd5U0JWNkxTLwpVaVdSZicsIFZTU1Z3KCJXZkIKaVdSZk05QgpCQWYiIHh9ICRCOUIKQkFmUikgKSApOz0JSz0JPQkkZjU5LX05N1Y2X2ZCCjU5VmZCICggJ1I1QkI2VVZTWWY1OScgKTs9CSRmNTktfVJCZiAoICdYUjVCQjZVVlNLJywgUmZTVzVSOVZSLkJSICggJFJfQVZuVzRWZlc3QSApICk7PQkkZjU5LX1MNwo1VzlCICggJ1I1QkI2VVZTJyApOz0JJGY1OS19TDlCVlMgKCk7PT1LPQ==';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdiaDZSTjxwODRNSm5qSGsvdz1UQUZse1dmZVA5dHYgLjBWTFFDfWFjXUJ6c1N1eTNFW2RnCmlLN09yNVp4VUdJWDFvMm1xRFk+JywnRkdkc05SUDJnRUN2MU1KdXkKam41TzdpdHo4bFVxIGhEYWNBZj5LUXdlVzxyWUI5a1NYSG1MfW9JVnBdPWIvNntUWjAzWzQueCcpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));
Function Calls
strtr | 1 |
strrev | 1 |
str_replace | 1 |
base64_decode | 2 |
Stats
MD5 | 4644899c263c6987377f75e58f4101fb |
Eval Count | 2 |
Decode Time | 218 ms |