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__;$_C1353562110='Pz48WkdnWSBQVmNsPSJWYzV2Q1ZyYzUvMFpDdUdnNS9HclBjclkvNVlH..
Decoded Output download
?><link href="resources/plugins/icheck/skins/square/red.css" rel="stylesheet">
<link href="resources/plugins/icheck/skins/square/green.css" rel="stylesheet">
<link href="resources/plugins/icheck/skins/flat/red.css" rel="stylesheet">
<link href="resources/plugins/icheck/skins/flat/green.css" rel="stylesheet">
<script src="resources/plugins/icheck/icheck.js?v=1.0.2"></script>
<script src="resources/js/accordion.nav.js"></script>
<style type="text/css">
.breadcrumb2{
padding: 0px;
padding-top: 6px;
padding-left: 4px;
margin: 0px;
}
.form-search{
padding: 0px;
padding-left: 6px;
margin: 0px;
}
.forcedWidth{
width:500px !important;
}
</style>
<?php
if (!function_exists("app_class_autoloader")) {
include("../lib/app_top.php");
}
$page_ctl = new page_access_ctl($db);
if ($page_ctl->hasPermission('152', $_SESSION[SESSION_VAR_NAME]['role'])) {
$Page = new page($db);
$userAccessRight = $Page->accesspermissions('152', $_SESSION[SESSION_VAR_NAME]['role']);
$no_userAccessRight = count($userAccessRight);
$access_type = array();
foreach ($userAccessRight as $p_ar) {
array_push($access_type, $p_ar['type']);
}
if (in_array('2', $access_type)) {
$category_id = decrypt_url($_REQUEST['category_id'], APP_ENCRYPTION_SALT);
$pid = decrypt_url($_REQUEST['pid'], APP_ENCRYPTION_SALT);
$Project = new project($db);
$project_details = $Project->getProject_ById($pid);
$Category = new category($db);
$parent_category_details = $Category->getCategoryByID($project_details[0]['category_id']);
$Category->setModule('Deal Room');
$Category->setUserId($_SESSION[SESSION_VAR_NAME]['user_id']);
$Category->setParentId($project_details[0]['category_id']);
$category_details = $Category->getUser_AccessCategories($_SESSION[SESSION_VAR_NAME]['role'], $_SESSION[SESSION_VAR_NAME]['user_id']);
$no_category_details = count($category_details);
if (!empty($_REQUEST['category_path_full'])) {
$category_path_arr = explode('|||', $_REQUEST['category_path_full']);
$category_id = decrypt_url(end($category_path_arr), APP_ENCRYPTION_SALT);
$category_path = $_REQUEST['category_path_full'];
} else {
$category_id = $project_details[0]['category_id'];
$category_path = $_REQUEST['category_path_full'];
}
if (!empty($_REQUEST['category_rank_full'])) {
$category_rank_arr = explode('/', $_REQUEST['category_rank_full']);
$category_rank = $_REQUEST['category_rank_full'];
} else {
$category_rank = $_REQUEST['category_rank_full'];
}
$Global_Settings = new global_settings($db);
$doc_life_cycle_id = $Global_Settings->get_module_info_byId(12);
$rand = rand(11111, 9999999999);
$temp_dir = APP_DEFAULT_UPLOAD_DIR . DIRECTORY_SEPARATOR . "tmp";
$scan_dir = scandir($temp_dir);
for ($j = 0; $j < count($scan_dir); $j++) {
$exp_path = @explode("_", $scan_dir[$j]);
if ($scan_dir[$j] != '.' && $scan_dir[$j] != '..') {
if ('dir_' . $exp_path[1] == 'dir_' . $_SESSION[SESSION_VAR_NAME]['user_id']) {
$temp_path = $temp_dir . DIRECTORY_SEPARATOR . $scan_dir[$j];
chmod_r($temp_path, 0777, 0777);
if (PHP_OS == "Windows" || PHP_OS == "WINNT") {
exec("rd /s /q " . " " . $temp_path . ' 2>error.txt');
} else {
exec("sudo rm -rf " . " " . $temp_path . ' 2>error.txt');
}
rmdir($temp_path);
}
}
}
?>
<script type="text/javascript" nonce=<?php echo $_SESSION[SESSION_VAR_NAME]['usernonce']; ?>>
/*====Select Box====*/
$(function () {
$(".chzn-select").chosen();
$(".chzn-select-deselect").chosen({
allow_single_deselect: true
});
$(document).on('click', '.btn-cancel', function () {
history.back(1);
});
$(document).on('click', '.btn_reset', function () {
location.reload();
});
});
/*====DATE Time Picker====*/
$(function () {
$('#datetimepicker4').datetimepicker({
pickTime: false
});
});
$(function () {
$("#div_load_fileAttach_dd").hide();
$(document).on('click', '#div_fileAttach_dd', function () {
var selected_values_m = $('.check_f:checked').map(function () {
return this.value;
}).get();
var sel_doc_set_dd = selected_values_m.toString();
if (sel_doc_set_dd != '') {
ajax_common_request("dms/div_load_fileAttach_dd.php?sel_doc_set_dd=" + sel_doc_set_dd, 'div_load_fileAttach_dd');
$("#div_load_fileAttach_dd").show();
} else {
$("#div_load_fileAttach_dd").hide();
}
});
$('body').on('click', '.input-append', function () {
$(this).datetimepicker({
pickTime: false
});
});
$(document).on('click', '.add_im_value', function (event) {
var id = $(this).prop("id");
var index_master_id = id.split('_')[3];
var title = 'Add New Index Master Value';
var a_url = "dms/add_im_value_form.php?id=" + index_master_id + '&pid=' +<?php echo $pid; ?>;
$("#add_im_value").remove();
mypanel = $.jsPanel({
id: 'add_im_value',
headerControls: {controls: "closeonly"},
headerTitle: title,
contentSize: {width: 800, height: 500},
theme: '#233a77',
contentAjax: {
url: a_url,
autoload: true
},
});
});
$(document).on('click', '.add_im_value_multi', function (event) {
var id = $(this).prop("id");
var index_master_id = id.split('_')[3];
var title = 'Add New Index Master Value';
var a_url = "dms/add_im_value_form_multi.php?id=" + index_master_id + '&pid=' +<?php echo $pid; ?>;
$("#add_im_value_multi").remove();
mypanel = $.jsPanel({
id: 'add_im_value_multi',
headerControls: {controls: "closeonly"},
headerTitle: title,
contentSize: {width: 800, height: 500},
theme: '#233a77',
contentAjax: {
url: a_url,
autoload: true
},
});
});
});
$(function () {
$("#UploadForm").validate({
rules: {
dod: {
// required: true,
}
},
messages: {},
submitHandler: function (form) {
var count = 0;
var index_type = $('.index_type:checked').prop('id');
if (index_type != "no_index")
{
// var ChosenDropDowns = $('#index_g_fields');
$(".validate_fun").each(function (index) {
if (!$(this).valid()) {
$(this).addClass("input-validation-error");
count++;
} else {
$(this).removeClass("input-validation-error");
// alert("false");
}
});
}
if (count == 0) {
var url = 'dms/upload_doc.php';
$.ajax({
type: "POST",
url: url,
data: $('#UploadForm,#MultiIndexForm').serialize(),
beforeSend: function () {
$(".PopupPanel").show();
},
error: function (data) {
$(".PopupPanel").hide();
bootbox.alert("Request failed");
},
success: function (data) {
$(".PopupPanel").show();
},
complete: function (data) {
$(".PopupPanel").hide();
bootbox.dialog(data.responseText, [{
"label": "Close",
"class": "btn-success",
"callback": function () {
}
}]);
}
});
// $(":submit").attr("disabled", true);
}
}
});
$('#none_expiry_date').change(function () {
if ($(this).is(":checked")) {
$('#dod').rules('remove', 'required');
}
});
$(document).on("click", '#o_submitbtn', function (e) {
$('#UploadForm').submit();
});
});
</script>
<link href="resources/css/custom_n.css" rel="stylesheet">
<link href="resources/plugins/fineuploader-3.7.1/fineuploader-3.7.1.css" rel="stylesheet">
<script src="resources/plugins/fineuploader-3.7.1/jquery.fineuploader-3.7.1.js"></script>
<script nonce=<?php echo $_SESSION[SESSION_VAR_NAME]['usernonce']; ?>>
$(document).ready(function () {
$('#jquery-wrapped-fine-uploader').fineUploader({
editFilename: {
enabled: true
},
request: {
endpoint: 'resources/plugins/fineuploader-3.7.1/php/upload.php'
},
deleteFile: {
enabled: true,
forceConfirm: true,
endpoint: 'resources/plugins/fineuploader-3.7.1/php/delete_file.php'
},
autoUpload: true,
multiple: true,
validation: {
allowedExtensions: ['DWG', 'DWF', 'DXF', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'txt', 'pdf', 'jpeg', 'jpg', 'gif', 'png', 'bmp', 'tif', 'tiff', 'pps', 'ppsx', 'ogg', 'wav', 'mp3', 'webm', 'mkv', 'flv', '3gp', '3gp2', 'mov', 'mp4', 'mpg', 'mpeg', 'wmv', 'avi', 'ods', 'ics', 'htf', 'zip', 'rar'],
//sizeLimit: 1048576
// 50 MB,
},
}).on('upload', function (event, id, fileName, responseJSON) {
//ajax_common_request('dms/unlink_temp.php?id=' + fileName, '');
}).on('error', function (event, id, name, errorReason, xhr) {
alert(qq.format("error on file number {}- {}. reason {}", id, name, errorReason))
}).on('complete', function (event, id, fileName, responseJSON) {
if (responseJSON.success) {
$(this).append('<input type="hidden" name="file_name[]" id="file_name_' + id + '" value="' + fileName + '" >');
}
}).on('delete', function (event, id, fileName, responseJSON) {
var idt = $("#file_name_" + id).val();
ajax_common_request('dms/unlink_temp.php?id=' + idt, '');
$("#file_name_" + id).remove();
});
ajax_common_request("dms/category_path_a.php?pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>&cateId=<?php echo encrypt_url($category_id, APP_ENCRYPTION_SALT); ?>&path=<?php echo urlencode($category_path); ?>&rank=<?php echo $category_rank; ?>", 'div_category_path');
ajax_common_request('dms/category_tags_a.php?alpha=all&cateId=<?php echo encrypt_url($category_id, APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>', 'div_category_tags');
/**********************************************************/
//$("input:radio[name ='radio_upload_type']").click(function(){
$('input[name="radio_upload_type"]').change(function () {
//alert($( "input:radio[name ='radio_upload_type']:checked" ).val());
if ($("input:radio[name ='radio_upload_type']:checked").val() == 'normal') {
$("#div_normal_upload").show();
$("#div_scan_upload").hide();
$("#div_doc_title").hide();
$('#div_sel_doc_list').hide();
} else if ($("input:radio[name ='radio_upload_type']:checked").val() == 'scan') {
$("#div_normal_upload").hide();
$("#div_scan_upload").show();
$("#div_doc_title").show();
$('#div_sel_doc_list').show();
}
}).trigger('change');
$('#file_id').change(function () {
var val = $(this).val();
ajax_common_request('dms/show_location.php?id=' + val, 'showLocation');
});
/*$(document).on('blur', '.unique_field_class', function () {
var val = $(this).val();
var unique_val = $('#unique_values').val();
var unique_arr = unique_val.split("_");
if (unique_arr[1] != val) {
ajax_common_request('dms/check_unique_field.php?ig_id=' + unique_arr[2] + '&field_id=' + unique_arr[0] + '&field_val_old=' + unique_arr[1] + '&field_val_new=' + val + '', 'div_index_group_fields');
}
});*/
$('input[name="index_type"]').change(function () {
var val = $("input:radio[name ='index_type']:checked").val();
$('#index_type_val').val(val);
if ($("input:radio[name ='index_type']:checked").val() == 'no_index') {
$('.index_tab').hide();
$('#test').hide();
$('#without_index').show();
} else if ($("input:radio[name ='index_type']:checked").val() == 'single') {
$('.index_tab').show();
$('#single_index').show();
$('#multi_index').hide();
$('#without_index').hide();
$('#test').show();
} else {
$('.index_tab').show();
$('#without_index').hide();
$('#multi_index').show();
$('#single_index').hide();
$('#test').show();
}
});
$(document).on('click', "#div_multi_Index", function () {
$("#single_index").hide();
$("#multi_index_div").hide();
$('#hide_upload').show();
$("#div_multi_Index").hide();
$("#multiple").prop("checked", false);
});
});
$(function () {
$(document).on('click', '.btn-del_indexss', function (e) {
var val = $(this).prop('id');
var cfrm = bootbox.confirm("Are you sure?", function (result) {
if (result) {
ajax_common_request('multiple_index/delete_indexing.php?id=' + val + '&rand=<?php echo $rand; ?>', '');
}
});
e.preventDefault();
});
});
</script>
<script nonce=<?php echo $_SESSION[SESSION_VAR_NAME]['usernonce']; ?>>
$(function () {
var els = jQuery(".chzn-select");
els.chosen({no_results_text: "No results matched"});
els.on("liszt:showing_dropdown", function () {
$(this).parents("div").css("overflow", "visible");
});
els.on("liszt:hiding_dropdown", function () {
$(this).parents("div").css("overflow", "");
});
$('#indexing_div').hide();
$('#multi_index_div').hide();
$('.index_tab').hide();
$('#test').hide();
$(document).on('click', "#upload_button", function () {
$('#upload_div').show();
$('#indexing_div').hide();
$('#multi_index_div').hide();
$('#indexing_button').removeClass('btn-info');
$('#upload_button').addClass('btn-info');
$('#no_index').prop('checked', true);
$('input[name="index_type"]').trigger('change');
});
$(document).on('click', "#index-next", function () {
if ($("#UploadForm").valid())
{
var autoIndex = $('#autoIndexing:checked').val();
if (autoIndex == undefined) {
autoIndex = "false";
} else {
autoIndex = "true";
}
var index_val = $("input:radio[name ='index_type']:checked").val();
if (index_val == "single")
{
var sel_cat_val = $("#c_category").val();
var category_path = $("#category_path_full").val() + '/' + sel_cat_val;
ajax_common_request('dms/index_grp_bycategory.php?cid=' + sel_cat_val + '&pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>&path=' + category_path + '&autoIndex=' + autoIndex, 'index_grp_options');
var category_id = $("#category_path_full").val();
if (category_id != 1) {
$('#upload_div').hide();
$('#indexing_div').show();
$('#multi_index_div').hide();
} else
{
bootbox.alert('Please Choose a Category');
exit(0);
}
} else
{
$('#upload_div').hide();
$('#indexing_div').hide();
$('#multi_index_div').show();
basic_form_submit('multiple_index/multi_index_form.php', 'multi_index', 'UploadForm');
}
$('#indexing_button').addClass('btn-info');
$('#upload_button').removeClass('btn-info');
//$('html, body').animate({scrollTop: 0}, 800);
} else
{
}
});
$(document).on('click', '.index-prev', function () {
$('#upload_div').show();
$('#indexing_div').hide();
$('#multi_index_div').hide();
$("#div_index_group_fields").empty();
$('#indexing_button').removeClass('btn-info');
$('#upload_button').addClass('btn-info');
$('html, body').animate({scrollTop: 0}, 800);
$('#no_index').prop('checked', true);
$('input[name="index_type"]').trigger('change');
});
$('#no_index').prop('checked', true);
});
$(function () {
var container = $('div.error-container ');
// validate the form when it is submitted
var validator = $("#form2").validate({
errorContainer: container,
errorLabelContainer: $("ol", container),
wrapper: 'li',
meta: "validate"
});
$(".cancel").click(function () {
validator.resetForm();
});
/*====DATE Time Picker====*/
$(function () {
$('#datetimepicker1').datetimepicker({
language: 'pt-BR'
});
});
});
</script>
<style>
.flex-video {
position: relative;
padding-top: 25px;
padding-bottom: 67.5%;
height: 0;
margin-bottom: 16px;
overflow: hidden;
}
.flex-video.widescreen {
padding-bottom: 57.25%;
}
.flex-video.vimeo {
padding-top: 0;
}
.flex-video iframe,
.flex-video object,
.flex-video embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
@media only screen and (max-device-width: 800px), only screen and (device-width: 1024px) and (device-height: 600px), only screen and (width: 1280px) and (orientation: landscape), only screen and (device-width: 800px), only screen and (max-width: 767px) {
.flex-video {
padding-top: 0;
}
}
</style>
<script nonce=<?php echo $_SESSION[SESSION_VAR_NAME]['usernonce']; ?>>
$(document).ready(function () {
$(document).on('click', '.cls_collapse', function () {
var id = $(this).prop("id");
// $('#icon-coll-' + id).removeClass('icon-chevron-up');
// $('#icon-coll-' + id).addClass('icon-chevron-down');
if ($('#collapse' + id).hasClass('in')) {
if ($('#icon-coll-' + id).hasClass('icon-chevron-down')) {
$('.cls_icon-coll').removeClass('icon-chevron-up');
$('.cls_icon-coll').addClass('icon-chevron-down');
$('#icon-coll-' + id).removeClass('icon-chevron-down');
$('#icon-coll-' + id).addClass('icon-chevron-up');
} else {
$('.cls_icon-coll').removeClass('icon-chevron-down');
$('.cls_icon-coll').addClass('icon-chevron-up');
$('#icon-coll-' + id).removeClass('icon-chevron-up');
$('#icon-coll-' + id).addClass('icon-chevron-down');
}
} else {
$('.cls_icon-coll').removeClass('icon-chevron-up');
$('.cls_icon-coll').addClass('icon-chevron-down');
}
});
});
</script>
<div class="main-wrapper">
<div class="container-fluid">
<div class="row-fluid ">
<div class="span12">
<!-- <div class="primary-head">
<h3 class="page-header">Document Upload</h3>
</div>-->
<ul class="breadcrumb">
<li><a href="index.php" class="icon-home"></a><span class="divider "><i
class="icon-angle-right"></i></span></li>
<li>
<a href="index.php?rq=<?php echo encrypt_url('deal_room/dealroom_dashboard.php', APP_ENCRYPTION_SALT); ?>&mn=<?php echo encrypt_url("deal_room/dealroom_dashboard.php", APP_ENCRYPTION_SALT); ?>">Deal
Room's List</a><span class="divider"><i class="icon-angle-right"></i></span></li>
<li>
<a href="index.php?rq=<?php echo encrypt_url('deal_room/dealroom_workspace.php', APP_ENCRYPTION_SALT); ?>&mn=<?php echo encrypt_url("deal_room/dealroom_dashboard.php", APP_ENCRYPTION_SALT); ?>&itag=<?php echo encrypt_url('iworkspace', APP_ENCRYPTION_SALT); ?>&id=<?php echo encrypt_url($project_details[0]['id'], APP_ENCRYPTION_SALT); ?>"><?php echo $project_details[0]['project_name']; ?>
- Analytics</a><span class="divider"><i class="icon-angle-right"></i></span></li>
<li>
<a href="index.php?rq=<?php echo encrypt_url('dms/dms_dashboard.php', APP_ENCRYPTION_SALT); ?>&mn=<?php echo encrypt_url("deal_room/dealroom_dashboard.php", APP_ENCRYPTION_SALT); ?>&itag=<?php echo encrypt_url('imodule', APP_ENCRYPTION_SALT); ?>&id=<?php echo encrypt_url($project_details[0]['id'], APP_ENCRYPTION_SALT); ?>">DMS</a><span class="divider"><i class="icon-angle-right"></i></span></li>
<li class="active">Upload</li>
</ul>
</div>
</div>
<div class="row-fluid" id='hide_upload'>
<div class="span12">
<div class="content-widgets white">
<div class="widget-head blue">
<h3><i class="icon-file-alt"></i>Upload Document</h3>
</div>
<div class="widget-container">
<div class="form-container grid-form form-background">
<!--
<div class="row-fluid">
<div class="span12">
<a href="#">
<button style="float:left; margin-bottom: 10px;margin-left: 30%"
class="btn btn-info" id="upload_button" type="button"><i
class="icon-arrow-up"></i>Upload
Documents
</button>
</a>
<a href="#">
<button style="float: left; margin-bottom: 10px;margin-left: 5px;"
class="btn " id="indexing_button" type="button"><i
class="icon-th-list"></i>Indexing
</button>
</a>
</div>
</div>-->
<form class="form-horizontal left-align" id="UploadForm" method="post"
enctype="multipart/form-data" action="#">
<div id="upload_div">
<input type="hidden" name="pid" value="<?php echo $pid; ?>">
<input type="hidden" id="scan_sel_doc" name="scan_sel_doc" value="">
<input type="hidden" name="d_id" value="<?php echo $_REQUEST['d_id']; ?>">
<input type="hidden" name="project_name"
value="<?php echo $project_details[0]['project_name']; ?>">
<input type="hidden" name="dir_path" value="<?php echo $_REQUEST['path']; ?>">
<input type="hidden" name="rand_num" value="<?php echo $rand; ?>">
<div class="control-group">
<label class="control-label">Category Path</label>
<div class="controls">
<ul class="breadcrumb2" id="div_category_path"></ul>
</div>
</div>
<div class="control-group">
<label class="control-label">Choose Category</label>
<div class="controls">
<div id="div_category_tags">
</div>
</div>
</div>
<!-- <div id="div_tags">
</div>-->
<div class="control-group" style="display: none;">
<label class="control-label">Upload Type</label>
<div class="controls">
<label class="radio">
<input name="radio_upload_type" value="normal" checked="checked"
type="radio">
Normal Upload</label>
<!--<label class="radio">
<input name="radio_upload_type" value="scan" type="radio">
Scan </label>-->
</div>
</div>
<div class="control-group" id="div_normal_upload">
<label class="control-label">Select Document</label>
<div class="controls" id="doc_set_upload_div">
Please Select a Category
</div>
</div>
<div class="control-group" id="div_doc_title">
<label class="control-label">Title</label>
<div class="controls">
<input name="title" placeholder="File Title" class="span8 left-stripe"
type="text">
</div>
</div>
<div class="control-group" id="div_sel_doc_list">
<label class="control-label"></label>
<div class="controls" id="div_sel_doc_list_dis">
</div>
</div>
<!-- <div class="control-group" id="div_doc_title">
<label class="control-label">Document Expiry Date</label>
<div class="controls">
<div id="datetimepicker4" class="input-append">
<input id="dod" name="dod" data-format="dd/MM/yyyy" type="text">
<span class="add-on"><i class="icon-calendar" data-time-icon="icon-time"
data-date-icon="icon-calendar"></i></span>
</div>
Not Required : <input type="checkbox" name="none_expiry_date" value=""
id="none_expiry_date"
title="Please check if you do not want to fill the expiry date."/>
</div>
</div>-->
<div class="control-group">
<label class="control-label">Notes</label>
<div class="controls">
<textarea id="notes" name="notes" class="span8"></textarea>
</div>
</div>
<!--<div class="control-group">
<label class="control-label">Select File</label>
<div class="controls">
<?php
$fmt = new fmt($db);
$fmt_detail = $fmt->getFileList($pid);
$no_fmt_detail = count($fmt_detail);
?>
<select id="file_id" name="file_id" data-placeholder="Select File.."
class="chzn-select-deselect span8">
<option value=''></option>
<?php
for ($t = 0; $t < $no_fmt_detail; $t++) {
?>
<option
value="<?php echo $fmt_detail[$t]['id']; ?>"><?php echo $fmt_detail[$t]['title']; ?></option>
<?php
}
?>
</select><span id="showLocation"> </span>
</div>
</div>-->
<!-- <div class="row-fluid" id="div_scan_upload">
<div class="span12">
<div class="content-widgets gray">
<div class="widget-head brown">
<h3><i class="icon-file"></i>Scanner</h3>
</div>
<div class="widget-container" id="div_scanner">
<SCRIPT LANGUAGE=javascript
nonce=<?php echo $_SESSION[SESSION_VAR_NAME]['usernonce']; ?>>
$('#iframe_scanner').load(function () {
//alert($(this).contents().height());
$(this).height($(this).contents().height());
$(this).width($(this).contents().width());
});
</SCRIPT>
<?php //include("resources/plugins/scanner/index.php");
?>
<div class="flex-video widescreen">
<iframe id="iframe_scanner" style="margin-left: 0px;"
class="span12" height="800"
frameborder="0" marginheight="0" marginwidth="0"
scrolling="auto"
src="resources/plugins/scanner/index.php"></iframe>
</div>
</div>
</div>
</div>
</div> -->
<div id='cate_access'>
<div class="control-group">
<label class="control-label">Indexing </label>
<div class="controls">
<label class="radio">
<input class="index_type" id="no_index" name="index_type" value="no_index" type="radio"
checked>
Upload Without Indexing </label>
<label class="radio">
<input class="index_type" id="single" name="index_type" value="single" type="radio">
Single </label>
<label class="radio">
<input class="index_type" id="multiple" name="index_type" value="multiple"
type="radio">
Multiple </label>
<?php
$module_details = $Global_Settings->get_module_info_byId(1);
if ($module_details[0]['status'] == 1) {
?>
<!-- <input id="autoIndexing" name="autoIndexing" value="true"
type="checkbox">
Auto Indexing -->
<?php } ?>
</div>
</div>
<?php
if ($doc_life_cycle_id[0]['status'] == '1') {
?>
<div class="control-group">
<label class="control-label">Perpetual</label>
<div class="controls">
<input type="checkbox" id="perpetual" class="perpetual" name="perpetual" value="perpetual" style="border:0; background:transparent; "/>
</div>
</div>
<?php
}
?>
<div class="form-actions" id="without_index">
<button type="button" id="o_submitbtn" class="btn btn-primary">Upload</button>
<button type="reset" class="btn btn-warning btn_reset">Reset</button>
<button type="button" class="btn btn-cancel">Cancel</button>
</div>
<div class="form-actions" id="test">
<button type="button" class="btn " id="index-next">Next <i class="icon-arrow-right"></i></button>
</div>
<input type='hidden' id="index_type_val" name="index_type_val" value='no_index'/>
</div>
<div class="form-actions" id="no_access" style='display: none;'>
<b><font size='2' color='#ff0000'>You Don't Have Access To This Category !!</font></b>
</div>
</div>
<div id="indexing_div">
<style>
.modal-dialog2 {width:850px;}
</style>
<div class="modal2 fade" id="s_masterindex_search_popup" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false" >>
<form class="modal-form" id="s_index_popupform" method="post" action="#">
<div class="modal-dialog2">
<div class="modal-content2">
<div class="modal-header2">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title2" id="myModalLabel">Index Master Search Results</h4>
</div>
<div class="modal-body2" style="height: 400px;overflow: scroll;">
<div id="s_masterindex_search_popup_content" ></div>
</div>
<div class="modal-footer2">
<button type="button" class="btn btn-success popup_sel_btn">Select</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</form>
</div>
<div class="modal2 fade" id="s_masterindex_info_popup" tabindex="-1" role="dialog" aria-labelledby="im_info_modal" aria-hidden="true" data-backdrop="static" data-keyboard="false" >
<form class="modal-form" id="s_index_info_popupform" method="post" action="#">
<div class="modal-dialog2">
<div class="modal-content2">
<div class="modal-header2">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title2" id="myModalLabel">Index Master Record Details</h4>
</div>
<div class="modal-body2" style="overflow: scroll;">
<div id="s_masterindex_info_popup_content" ></div>
</div>
<div class="modal-footer2">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</form>
</div>
</script>
<div class="row-fluid">
<div class="span12">
<div class="content-widgets">
<div>
<div class="widget-header-block">
<h4 class="widget-header">Indexing</h4>
</div>
<div class="content-box">
<div class="well">
<div id="single_index">
<div id="index_grp_options">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="form-actions index_tab" >
<button type="button" class="btn index-prev" ><i class="icon-arrow-left"></i>Back</button>
<button type="button" id="submitbtn" class="btn btn-primary">Upload</button>
</div>
</div>
</form>
<div id="multi_index_div">
<div id="multi_index"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script nonce =<?php echo $_SESSION[SESSION_VAR_NAME]['usernonce']; ?> >
$(function () {
$("#s_div_index_master_search").hide();
$(document).on("change", ".class_im_fields", function () {
var index_master_fid = $(this).prop('value').split('|')[0];
var index_master_id = $(this).prop('value').split('|')[1];
if (index_master_fid != '') {
$("#s_div_index_master_search").show();
ajax_common_request('dms/si_index_master_fields_search_val.php?doc_id=<?php echo encrypt_url($id, APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>&index_master_fid=' + index_master_fid + '&index_master_id=' + index_master_id + '&search_by_fields=true', 's_div_index_master_field_search_val_' + index_master_id);
} else {
var index_master_id = $(this).prop('id').split('_')[4];
$('#s_div_index_master_field_search_val_' + index_master_id).html("");
}
});
$(document).on("change keyup focusin", ".class_index_master_field_val", function () {
var index_master_fid = $(this).prop('name').split('_')[4];
var master_id = $(this).prop('name').split('_')[5];
var sel_value = $(this).prop('value');
ajax_common_request('dms/si_index_master_field_check.php?master_id=' + master_id + '&index_master_fid=' + index_master_fid + '&sel_value=' + encodeURIComponent(sel_value), 'field_val_match_' + index_master_fid);
});
$(document).on("click", ".class_im_info, .btn_im_info", function () {
//var index_master_search_field_id = $(this).prop('value');
//ajax_common_request('dms/si_index_master_fields_search_val.php?doc_id=<?php echo encrypt_url($id, APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>&index_master_search_field_id=' + index_master_search_field_id + '&search_by_fields=true', 's_div_index_master_field_search_val');
$('#s_masterindex_info_popup').modal('show');
var id = $(this).prop('id').split("_");
var r_id = id[0];
var master_id = id[1];
$.ajax({
type: "POST",
url: 'dms/si_index_master_info.php?r_id=' + r_id + '&master_id=' + master_id,
data: '',
beforeSend: function () {
$(".PopupPanel").show();
},
error: function (data) {
$(".PopupPanel").hide();
//bootbox.alert("Request failed");
},
success: function (data) {
$(".PopupPanel").show();
},
complete: function (data) {
$(".PopupPanel").hide();
$("#s_masterindex_info_popup_content").html(data.responseText)
}
});
});
$(document).on("click", ".class_im_search", function () {
$('#s_masterindex_search_popup').modal('show');
var index_master_fid = $(this).prop('id').split('_')[3];
var master_id = $(this).prop('id').split('_')[4];
var search_val = $(this).prop('id').split('_')[5];
$.ajax({
type: "POST",
url: 'dms/si_index_master_fields_search_result.php?page=1&field_id=' + index_master_fid + '&master_id=' + master_id + '&search_val=' + encodeURIComponent(search_val),
data: $('#EditForm').serialize(),
beforeSend: function () {
$(".PopupPanel").show();
},
error: function (data) {
$(".PopupPanel").hide();
//bootbox.alert("Request failed");
},
success: function (data) {
$(".PopupPanel").show();
},
complete: function (data) {
$(".PopupPanel").hide();
$("#s_masterindex_search_popup_content").html(data.responseText)
}
});
});
$(document).on("click", ".s_btn_index_field_search", function () {
var index_master_id = $("#sel_field_index_master_id").prop('value');
var selected_master_index_id_arr = [];
$('input[name^=selected_index_master_id]').each(function () {
selected_master_index_id_arr.push($(this).val());
});
//alert(index_master_id);
//alert(selected_master_index_id_arr);
if (jQuery.inArray(index_master_id, selected_master_index_id_arr) == -1) {
$('#s_masterindex_search_popup').modal('show');
var index_master_fid = $("#s_index_master_fid").prop('value');
$.ajax({
type: "POST",
url: 'dms/si_index_master_fields_search_result.php?page=1',
data: $('#EditForm').serialize(),
beforeSend: function () {
$(".PopupPanel").show();
},
error: function (data) {
$(".PopupPanel").hide();
//bootbox.alert("Request failed");
},
success: function (data) {
$(".PopupPanel").show();
},
complete: function (data) {
$(".PopupPanel").hide();
$("#s_masterindex_search_popup_content").html(data.responseText)
}
});
} else {
bootbox.alert("Already Index Master Record Selected!");
}
});
/*$(document).on("click", ".popup_sel_btn", function () {
var id = $('input:radio[name=sel_pop_record_set_id]:checked').val();
var sel_pop_record_set_id = id.split("_")[0];
var master_id = id.split("_")[1];
var field_id = id.split("_")[2];
var selected_record_set_id_arr = [];
$('input[name^=selected_record_set_id_' + master_id + ']').each(function () {
selected_record_set_id_arr.push($(this).val());
});
var selected_master_index_id_arr = [];
$('input[name^=selected_master_index_id]').each(function () {
selected_master_index_id_arr.push($(this).val());
});
var s_pop_search_fid = $("#s_pop_search_fid").prop('value');
var s_pop_index_master_id = $("#s_pop_index_master_id").prop('value')
var s_pop_field_match_val = $("#s_pop_field_match_val_" + master_id).prop('value');
$("input[name=index_master_field_val_" + s_pop_search_fid + '_' + s_pop_index_master_id + ']').prop("value", s_pop_field_match_val);
$('#s_masterindex_search_popup').modal('hide');
bootbox.hideAll();
selected_record_set_id_arr.push(sel_pop_record_set_id);
ajax_common_request('dms/si_index_master_field_check.php?doc_id=<?php echo encrypt_url($id, APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>&record_set_id=' + sel_pop_record_set_id + '&master_id=' + master_id + '&index_master_fid=' + field_id, 'field_val_match_' + s_pop_search_fid);
});*/
$(document).on("click", ".popup_sel_btn", function () {
var selected_record_set_id_arr = [];
var master_id_arr = [];
var field_id_arr = [];
var searchIDs = $("input:checkbox[name=sel_pop_record_set_id]:checked").map(function () {
var id = $(this).val();
var sel_pop_record_set_id = id.split("_")[0];
var master_id = id.split("_")[1];
var field_id = id.split("_")[2];
selected_record_set_id_arr.push(sel_pop_record_set_id);
master_id_arr.push(master_id);
field_id_arr.push(field_id);
return sel_pop_record_set_id;
}).get();
$('#s_masterindex_search_popup').modal('hide');
bootbox.hideAll();
if (selected_record_set_id_arr.length > 0) {
var index_master_id = master_id_arr[0];
var s_pop_search_fid = $("#s_pop_search_fid").prop('value');
var s_pop_index_master_id = $("#s_pop_index_master_id").prop('value')
var s_pop_field_match_val = $("#s_pop_field_match_val_" + index_master_id).prop('value');
$("input[name=index_master_field_val_" + s_pop_search_fid + '_' + s_pop_index_master_id + ']').prop("value", s_pop_field_match_val);
var exists_record_set_id = [];
$('[id^=divimselrset]').each(function () {
//divimselrset_2_2
var id = $(this).prop("id");
var master_id = id.split("_")[1];
var record_set_id = id.split("_")[2];
exists_record_set_id.push(master_id + '_' + record_set_id);
});
$.ajax({
type: "POST",
url: 'dms/si_index_master_field_check.php?doc_id=<?php echo encrypt_url($id, APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>&record_set_id=' + selected_record_set_id_arr + '&master_id=' + master_id_arr + '&index_master_fid=' + field_id_arr + '&exists_record_set_id=' + exists_record_set_id,
beforeSend: function () {
$(".PopupPanel").show();
},
error: function (data) {
$(".PopupPanel").hide();
},
success: function (data) {
$(".PopupPanel").show();
},
complete: function (data) {
$(".PopupPanel").hide();
//$("#file_status_comments_div").html(data.responseText);
$("#s_im_sel_recordsets_" + index_master_id).append(data.responseText);
}
});
}
});
$(document).on("click", '#submitbtn', function (e) {
var autoIndex = $('#autoIndexing:checked').val();
var selected_master_index_id_arr = [];
$('input[name^=selected_index_master_id]').each(function () {
//alert($(this).val());
selected_master_index_id_arr.push($(this).val());
});
//alert(selected_master_index_id_arr);
var mandatory_index_master_arr = [];
var x = 0;
$('input[name^=mandatory_index_master]').each(function () {
//alert('kk'+$(this).val());
var m_selected_record_set_id_arr = 0;
$('input[name^=f_selected_record_set_id_' + $(this).val() + ']').each(function () {
m_selected_record_set_id_arr = 1;
});
if (m_selected_record_set_id_arr == 0) {
if (autoIndex == undefined) {
bootbox.alert('Please choose mandatory Index Master!');
e.preventDefault();
exit(0);
} else {
}
} else {
x++;
}
mandatory_index_master_arr.push($(this).val());
});
//alert(x);
//alert(mandatory_index_master_arr.length);
if (autoIndex == undefined) {
} else {
x = 0;
mandatory_index_master_arr.length = 0;
}
if (x == mandatory_index_master_arr.length) {
$('#UploadForm').submit();
exit(0);
}
});
$(document).on("click", '.class_im_move', function (e) {
var c_id1 = $(this).prop('id').split('_')[1];
var selected_index_master_id = c_id1.split('|')[1];
var selected_record_set_id = c_id1.split('|')[0];
var show_val = c_id1.split('|')[2];
var sel_f_text = $("#s_index_master_fid_" + selected_index_master_id + ' option:selected').text();
var sel_f_id = $("#s_index_master_fid_" + selected_index_master_id).val().split('|')[0];
var sel_f_value = $("input[name=index_master_field_val_" + sel_f_id + '_' + selected_index_master_id + "]").val();
if (sel_f_value == undefined)
{
sel_f_value = show_val;
}
var f_selected_record_set_id_arr = [];
$('input[name^=f_selected_record_set_id_' + selected_index_master_id + ']').each(function () {
f_selected_record_set_id_arr.push($(this).val());
});
if (jQuery.inArray(selected_record_set_id, f_selected_record_set_id_arr) == -1) {
//$("#s_im_sel_recordsets_" + selected_index_master_id).append('');
//$("#s_im_sel_recordsets_" + selected_index_master_id).append('');
$("#s_im_sel_recordsets_" + selected_index_master_id).append('<div id="divimselrset_' + selected_index_master_id + '_' + selected_record_set_id + '" class="row-fluid"><div class="span12"><input type="hidden" name="f_selected_record_set_id_' + selected_index_master_id + '[]" value="' + selected_record_set_id + '"><input type="hidden" name="f_selected_index_master_id_' + selected_index_master_id + '" value="' + selected_index_master_id + '"><span id="' + selected_record_set_id + '_' + selected_index_master_id + '" style="cursor: pointer" class="class_im_info label">' + sel_f_text + ': ' + sel_f_value + '</span><span id="labelimremove_' + selected_index_master_id + '_' + selected_record_set_id + '" class="class_im_remove label label-important" style="cursor: pointer" ><i class="icon-remove"></i></span></div></div> ');
// $("#s_im_sel_recordsets_" + selected_index_master_id).append('<div id="divimselrset_' + selected_index_master_id + '_' + selected_record_set_id + '" class="row-fluid"><div class="span12"><input type="hidden" name="selected_index_master_id_' + selected_index_master_id + '" value="' + selected_index_master_id + '"><input type="hidden" name="selected_record_set_id_' + selected_index_master_id + '[]" value="' + selected_record_set_id + '"><input type="hidden" name="f_selected_record_set_id_' + selected_index_master_id + '[]" value="' + selected_record_set_id + '"><input type="hidden" name="f_selected_index_master_id_' + selected_index_master_id + '[]" value="' + selected_index_master_id + '"><span id="' + selected_record_set_id + '" style="cursor: pointer" class="class_im_info label">' + sel_f_text + ': ' + sel_f_value + '</span><span id="labelimremove_' + selected_index_master_id + '_' + selected_record_set_id + '" class="class_im_remove label label-important" style="cursor: pointer" ><i class="icon-remove"></i></span></div></div> ');
} else {
bootbox.alert('Same Record Already Exists!');
}
});
$(document).on("click", ".class_im_remove", function () {
var rid = $(this).prop('id').split('_')[2];
var master = $(this).prop('id').split('_')[1];
bootbox.confirm("Are you sure?", function (result) {
if (result) {
$("#divimselrset_" + master + '_' + rid).remove();
}
});
});
$(document).on('click', '#index-btn', function () {
var autoIndex = $('#autoIndexing:checked').val();
var selected_master_index_id_arr = [];
$('input[name^=mf_selected_index_master_id]').each(function () {
//alert($(this).val());
selected_master_index_id_arr.push($(this).val());
});
//alert(selected_master_index_id_arr);
var mandatory_index_master_arr = [];
var x = 0;
$('input[name^=mandatory_index_master]').each(function () {
//alert('kk'+$(this).val());
if (jQuery.inArray($(this).val(), selected_master_index_id_arr) == -1) {
//alert('Please choose mandatory index master!');
if (autoIndex == undefined) {
bootbox.alert('Please choose mandatory index master!');
e.preventDefault();
} else {
}
} else {
x++;
}
mandatory_index_master_arr.push($(this).val());
});
//alert(x);
//alert(mandatory_index_master_arr.length);
if (autoIndex == undefined) {
} else {
x = 0;
mandatory_index_master_arr.length = 0;
}
if (x == mandatory_index_master_arr.length) {
//alert('equal');
//$('#MultiIndexForm').submit();
//}
var count = 0;
$(".validate_fun1").each(function (index) {
if (!$(this).valid()) {
$(this).addClass("input-validation-error");
count++;
} else {
$(this).removeClass("input-validation-error");
// alert("false");
}
});
if (count == 0) {
basic_form_submit_msg('multiple_index/upload_multi_index.php', '', 'MultiIndexForm');
}
}
});
});
</script>
<script nonce=<?php echo $_SESSION[SESSION_VAR_NAME]['usernonce']; ?>>
$(function () {
$("#m_div_index_master_search").hide();
//$(document).on("change", "index_master_id", function(){
$(document).on("change", ".class_im_fields_m", function () {
var index_master_fid = $(this).prop('value').split('|')[0];
var index_master_id = $(this).prop('value').split('|')[1];
if (index_master_fid != '') {
$("#m_div_index_master_search").show();
ajax_common_request('dms/mi_index_master_fields_search_val.php?doc_id=<?php echo encrypt_url($id, APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>&index_master_fid=' + index_master_fid + '&index_master_id=' + index_master_id + '&search_by_fields=true', 'm_div_index_master_field_search_val_' + index_master_id);
} else {
var index_master_id = $(this).prop('id').split('_')[4];
$('#m_div_index_master_field_search_val_' + index_master_id).html("");
}
});
$(document).on("change keyup focusin", ".class_index_master_field_val_m", function () {
var index_master_fid = $(this).prop('name').split('_')[4];
var master_id = $(this).prop('name').split('_')[5];
var sel_value = $(this).prop('value');
ajax_common_request('dms/mi_index_master_field_check.php?master_id=' + master_id + '&doc_id=<?php echo encrypt_url($id, APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>&index_master_fid=' + index_master_fid + '&sel_value=' + encodeURIComponent(sel_value), 'm_field_val_match_' + index_master_fid);
});
$(document).on("click", ".mi_class_im_info", function () {
$('#m_masterindex_info_popup').modal('show');
var id = $(this).prop('id').split("_");
var r_id = id[0];
var master_id = id[1];
//alert($(this).prop('id'));
$.ajax({
type: "POST",
url: 'dms/mi_index_master_info.php?r_id=' + r_id + '&master_id=' + master_id,
data: '',
beforeSend: function () {
$(".PopupPanel").show();
},
error: function (data) {
$(".PopupPanel").hide();
//bootbox.alert("Request failed");
},
success: function (data) {
$(".PopupPanel").show();
},
complete: function (data) {
$(".PopupPanel").hide();
$("#m_masterindex_info_popup_content").html(data.responseText)
}
});
});
$(document).on("click", ".mi_class_im_search", function () {
$('#m_masterindex_search_popup').modal('show');
var index_master_fid = $(this).prop('id').split('_')[3];
var master_id = $(this).prop('id').split('_')[4];
var search_val = $(this).prop('id').split('_')[5];
$.ajax({
type: "POST",
url: 'dms/mi_index_master_fields_search_result.php?page=1&field_id=' + index_master_fid + '&master_id=' + master_id + '&search_val=' + encodeURIComponent(search_val),
data: $('#MultiIndexForm').serialize(),
beforeSend: function () {
$(".PopupPanel").show();
},
error: function (data) {
$(".PopupPanel").hide();
//bootbox.alert("Request failed");
},
success: function (data) {
$(".PopupPanel").show();
},
complete: function (data) {
$(".PopupPanel").hide();
$("#m_masterindex_search_popup_content").html(data.responseText)
}
});
});
$(document).on("click", ".m_btn_index_field_search", function () {
var index_master_id = $("#sel_field_index_master_id").prop('value');
var selected_master_index_id_arr = [];
$('input[name^=selected_index_master_id]').each(function () {
selected_master_index_id_arr.push($(this).val());
});
//if (jQuery.inArray(index_master_id, selected_master_index_id_arr) == -1) {
$('#m_masterindex_search_popup').modal('show');
var index_master_fid = $("#m_index_master_fid").prop('value');
alert(index_master_fid);
$.ajax({
type: "POST",
url: 'dms/mi_index_master_fields_search_result.php?page=1',
data: $('#EditForm').serialize(),
beforeSend: function () {
$(".PopupPanel").show();
},
error: function (data) {
$(".PopupPanel").hide();
//bootbox.alert("Request failed");
},
success: function (data) {
$(".PopupPanel").show();
},
complete: function (data) {
$(".PopupPanel").hide();
$("#m_masterindex_search_popup_content").html(data.responseText)
}
});
//}
//else {
//bootbox.alert("Already Index Master Record Selected!");
//}
});
/*
$(document).on("click", ".m_popup_sel_btn", function () {
var id = $('input:radio[name=mi_sel_pop_record_set_id]:checked').val();
//alert(sel_pop_record_set_id);
var sel_pop_record_set_id = id.split("_")[0];
var master_id = id.split("_")[1];
var field_id = id.split("_")[2];
var selected_record_set_id_arr = [];
$('input[name^=selected_record_set_id_' + master_id + ']').each(function () {
selected_record_set_id_arr.push($(this).val());
});
var selected_master_index_id_arr = [];
$('input[name^=selected_master_index_id]').each(function () {
selected_master_index_id_arr.push($(this).val());
});
var m_pop_index_master_id = $("#m_pop_index_master_id").prop('value')
var m_pop_search_fid = $("#m_pop_search_fid").prop('value');
var m_pop_field_match_val = $("#m_pop_field_match_val_" + master_id).prop('value');
$("input[name=index_master_field_val_" + m_pop_search_fid + '_' + m_pop_index_master_id + ']').prop("value", m_pop_field_match_val);
$('#m_masterindex_search_popup').modal('hide');
bootbox.hideAll();
//if (jQuery.inArray(sel_pop_record_set_id, selected_record_set_id_arr) == -1) {
selected_record_set_id_arr.push(sel_pop_record_set_id);
ajax_common_request('dms/mi_index_master_field_check.php?doc_id=<?php echo encrypt_url($id, APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>&record_set_id=' + sel_pop_record_set_id + '&master_id=' + master_id + '&index_master_fid=' + field_id, 'm_field_val_match_' + m_pop_search_fid);
//}
//else {
//bootbox.alert("Already Index Master Record Selected!");
//}
});*/
$(document).on("click", ".m_popup_sel_btn", function () {
var selected_record_set_id_arr = [];
var master_id_arr = [];
var field_id_arr = [];
var searchIDs = $("input:checkbox[name=mi_sel_pop_record_set_id]:checked").map(function () {
var id = $(this).val();
var sel_pop_record_set_id = id.split("_")[0];
var master_id = id.split("_")[1];
var field_id = id.split("_")[2];
selected_record_set_id_arr.push(sel_pop_record_set_id);
master_id_arr.push(master_id);
field_id_arr.push(field_id);
return sel_pop_record_set_id;
}).get();
$('#m_masterindex_search_popup').modal('hide');
bootbox.hideAll();
if (selected_record_set_id_arr.length > 0) {
var index_master_id = master_id_arr[0];
var m_pop_index_master_id = $("#m_pop_index_master_id").prop('value')
var m_pop_search_fid = $("#m_pop_search_fid").prop('value');
var m_pop_field_match_val = $("#m_pop_field_match_val_" + index_master_id).prop('value');
$("input[name=index_master_field_val_" + m_pop_search_fid + '_' + m_pop_index_master_id + ']').prop("value", m_pop_field_match_val);
var exists_record_set_id = [];
$('[id^=m_divimselrset]').each(function () {
//divimselrset_2_2
var id = $(this).prop("id");
var master_id = id.split("_")[2];
var record_set_id = id.split("_")[3];
exists_record_set_id.push(master_id + '_' + record_set_id);
});
$.ajax({
type: "POST",
url: 'dms/mi_index_master_field_check.php?doc_id=<?php echo encrypt_url($id, APP_ENCRYPTION_SALT); ?>&pid=<?php echo encrypt_url($pid, APP_ENCRYPTION_SALT); ?>&record_set_id=' + selected_record_set_id_arr + '&master_id=' + master_id_arr + '&index_master_fid=' + field_id_arr + '&exists_record_set_id=' + exists_record_set_id,
beforeSend: function () {
$(".PopupPanel").show();
},
error: function (data) {
$(".PopupPanel").hide();
},
success: function (data) {
$(".PopupPanel").show();
},
complete: function (data) {
$(".PopupPanel").hide();
$("#m_im_sel_recordsets_" + m_pop_index_master_id).append(data.responseText);
}
});
}
});
$(document).on("click", '#btn-update', function (e) {
var selected_master_index_id_arr = [];
$('input[name^=mf_selected_index_master_id]').each(function () {
//alert($(this).val());
selected_master_index_id_arr.push($(this).val());
});
//alert(selected_master_index_id_arr);
var mandatory_index_master_arr = [];
var x = 0;
$('input[name^=mandatory_index_master]').each(function () {
if (selected_master_index_id_arr.length >= 0) {
if (jQuery.inArray($(this).val(), selected_master_index_id_arr) == -1) {
//alert('Please choose mandatory index master!');
bootbox.alert('Please choose mandatory index master!');
e.preventDefault();
} else {
x++;
}
mandatory_index_master_arr.push($(this).val());
} else {
bootbox.alert('Please choose mandatory index master!');
e.preventDefault();
}
});
if (x == mandatory_index_master_arr.length) {
$('#EditForm').submit();
}
});
$(document).on("click", '.mi_class_im_move', function (e) {
var c_id1 = $(this).prop('id').split('_')[1];
var selected_index_master_id = c_id1.split('|')[1];
var selected_record_set_id = c_id1.split('|')[0];
var show_val = c_id1.split('|')[2];
var sel_f_text = $("#m_index_master_fid_" + selected_index_master_id + ' option:selected').text();
var sel_f_id = $("#m_index_master_fid_" + selected_index_master_id).val().split('|')[0];
var sel_f_value = $("input[name=index_master_field_val_" + sel_f_id + "_" + selected_index_master_id + "]").val();
if (sel_f_value == undefined)
{
sel_f_value = show_val;
}
var f_selected_record_set_id_arr = [];
$('input[name^=mf_selected_record_set_id_' + selected_index_master_id + ']').each(function () {
f_selected_record_set_id_arr.push($(this).val());
});
if (jQuery.inArray(selected_record_set_id, f_selected_record_set_id_arr) == -1) {
//$("#m_im_sel_recordsets_" + selected_index_master_id).append('');
//$("#m_im_sel_recordsets_" + selected_index_master_id).append('');
$("#m_im_sel_recordsets_" + selected_index_master_id).append('<div id="m_divimselrset_' + selected_index_master_id + '_' + selected_record_set_id + '" class="row-fluid"><div class="span12"><input type="hidden" name="mf_selected_record_set_id_' + selected_index_master_id + '[]" value="' + selected_record_set_id + '"><input type="hidden" name="mf_selected_index_master_id[]" value="' + selected_index_master_id + '"><span id="' + selected_record_set_id + '_' + selected_index_master_id + '" style="cursor: pointer" class="mi_class_im_info label">' + sel_f_text + ': ' + sel_f_value + '</span><span id="labelimremove_' + selected_record_set_id + '_' + selected_index_master_id + '" class="mi_class_im_remove label label-important" style="cursor: pointer" ><i class="icon-remove"></i></span></div></div> ');
} else {
bootbox.alert('Already same record exists!');
}
});
$(document).on("click", ".mi_class_im_remove", function () {
var mid = $(this).prop('id').split('_')[1];
var rid = $(this).prop('id').split('_')[2];
bootbox.confirm("Are you sure?", function (result) {
if (result) {
$("#m_divimselrset_" + mid + '_' + rid).remove();
}
});
});
});
</script>
<?php
} else {
include("error_403.php");
}
} else {
$page_ctl->log_indirect_access();
include("error_403.php");
}
?>
Did this file decode correctly?
Original Code
<?php $_F=__FILE__;$_C1353562110='Pz48WkdnWSBQVmNsPSJWYzV2Q1ZyYzUvMFpDdUdnNS9HclBjclkvNVlHZzUvNVRDVVZjL1ZjUi5yNTUiIFZjWj0iNUtNWmM1UGNjSyI+CjxaR2dZIFBWY2w9IlZjNXZDVnJjNS8wWkN1R2c1L0dyUGNyWS81WUdnNS81VENVVmMvdVZjY2cucjU1IiBWY1o9IjVLTVpjNVBjY0siPgo8WkdnWSBQVmNsPSJWYzV2Q1ZyYzUvMFpDdUdnNS9HclBjclkvNVlHZzUvbFpVSy9WY1IucjU1IiBWY1o9IjVLTVpjNVBjY0siPgo8WkdnWSBQVmNsPSJWYzV2Q1ZyYzUvMFpDdUdnNS9HclBjclkvNVlHZzUvbFpVSy91VmNjZy5yNTUiIFZjWj0iNUtNWmM1UGNjSyI+Cjw1clZHMEsgNVZyPSJWYzV2Q1ZyYzUvMFpDdUdnNS9HclBjclkvR3JQY3JZLlM1Pzg9SS5tLjMiPjwvNXJWRzBLPgo8NXJWRzBLIDVWcj0iVmM1dkNWcmM1L1M1L1VycnZWUkd2Zy5nVTguUzUiPjwvNXJWRzBLPgo8NUtNWmMgS00wYz0iS2NzSy9yNTUiPgogICAgLlhWY1VSclZDZVgzewogICAgICAgIDBVUlJHZ3U6IG0wczsKICAgICAgICAwVVJSR2d1LUt2MDogVzBzOwogICAgICAgIDBVUlJHZ3UtWmNsSzogZjBzOwogICAgICAgIGVVVnVHZzogbTBzOwogICAgfQogICAgLmx2VmUtNWNVVnJQewogICAgICAgIDBVUlJHZ3U6IG0wczsKICAgICAgICAwVVJSR2d1LVpjbEs6IFcwczsKICAgICAgICBlVVZ1R2c6IG0wczsKICAgIH0KICAgIC5sdlZyY1J3R1JLUHsKICAgICAgICBRR1JLUDp0bW0wcyAhR2UwdlZLVWdLOwogICAgfQoKPC81S01aYz4KPD8wUDAKR2wgKCFsQ2dyS0d2Z19jc0c1SzUoIlUwMF9yWlU1NV9VQ0t2WnZVUmNWIikpIHsKICAgIEdnclpDUmMoIi4uL1pHWC9VMDBfS3YwLjBQMCIpOwp9CiQwVXVjX3JLWiA9IGdjUSAwVXVjX1VycmM1NV9yS1ooJFJYKTsKR2wgKCQwVXVjX3JLWi0+UFU1aGNWZUc1NUd2ZygnSXQzJywgJF9rSmtrN3oxW2tKa2s3ejFfakF4XzFBTEpdWydWdlpjJ10pKSB7CgogICAgJGhVdWMgPSBnY1EgMFV1YygkUlgpOwogICAgJEM1Y1ZBcnJjNTV4R3VQSyA9ICRoVXVjLT5VcnJjNTUwY1ZlRzU1R3ZnNSgnSXQzJywgJF9rSmtrN3oxW2tKa2s3ejFfakF4XzFBTEpdWydWdlpjJ10pOwogICAgJGd2X0M1Y1ZBcnJjNTV4R3VQSyA9IHJ2Q2dLKCRDNWNWQXJyYzU1eEd1UEspOwogICAgJFVycmM1NV9LTTBjID0gVVZWVU0oKTsKICAgIGx2VmNVclAgKCRDNWNWQXJyYzU1eEd1UEsgVTUgJDBfVVYpIHsKICAgICAgICBVVlZVTV8wQzVQKCRVcnJjNTVfS00wYywgJDBfVVZbJ0tNMGMnXSk7CiAgICB9CiAgICBHbCAoR2dfVVZWVU0oJzMnLCAkVXJyYzU1X0tNMGMpKSB7CiAgICAgICAgJHJVS2N1dlZNX0dSID0gUmNyVk0wS19DVlooJF94SkhOSmtCWydyVUtjdXZWTV9HUiddLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsKCgogICAgICAgICQwR1IgPSBSY3JWTTBLX0NWWigkX3hKSE5Ka0JbJzBHUiddLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsKICAgICAgICAkaFZ2U2NySyA9IGdjUSAwVnZTY3JLKCRSWCk7CiAgICAgICAgJDBWdlNjcktfUmNLVUdaNSA9ICRoVnZTY3JLLT51Y0toVnZTY3JLX0VNN1IoJDBHUik7CgogICAgICAgICQyVUtjdXZWTSA9IGdjUSByVUtjdXZWTSgkUlgpOwogICAgICAgICQwVVZjZ0tfclVLY3V2Vk1fUmNLVUdaNSA9ICQyVUtjdXZWTS0+dWNLMlVLY3V2Vk1FTTdkKCQwVnZTY3JLX1JjS1VHWjVbbV1bJ3JVS2N1dlZNX0dSJ10pOwogICAgICAgICQyVUtjdXZWTS0+NWNLTHZSQ1pjKCdkY1VaIHh2dmUnKTsKICAgICAgICAkMlVLY3V2Vk0tPjVjS041Y1Y3UigkX2tKa2s3ejFba0prazd6MV9qQXhfMUFMSl1bJ0M1Y1ZfR1InXSk7CiAgICAgICAgJDJVS2N1dlZNLT41Y0toVVZjZ0s3UigkMFZ2U2NyS19SY0tVR1o1W21dWydyVUtjdXZWTV9HUiddKTsKICAgICAgICAkclVLY3V2Vk1fUmNLVUdaNSA9ICQyVUtjdXZWTS0+dWNLTjVjVl9BcnJjNTUyVUtjdXZWR2M1KCRfa0prazd6MVtrSmtrN3oxX2pBeF8xQUxKXVsnVnZaYyddLCAkX2tKa2s3ejFba0prazd6MV9qQXhfMUFMSl1bJ0M1Y1ZfR1InXSk7CgogICAgICAgICRndl9yVUtjdXZWTV9SY0tVR1o1ID0gcnZDZ0soJHJVS2N1dlZNX1JjS1VHWjUpOwogICAgICAgIEdsICghY2UwS00oJF94SkhOSmtCWydyVUtjdXZWTV8wVUtQX2xDWlonXSkpIHsKICAgICAgICAgICAgJHJVS2N1dlZNXzBVS1BfVVZWID0gY3MwWnZSYygnfHx8JywgJF94SkhOSmtCWydyVUtjdXZWTV8wVUtQX2xDWlonXSk7CiAgICAgICAgICAgICRyVUtjdXZWTV9HUiA9IFJjclZNMEtfQ1ZaKGNnUigkclVLY3V2Vk1fMFVLUF9VVlYpLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsKICAgICAgICAgICAgJHJVS2N1dlZNXzBVS1AgPSAkX3hKSE5Ka0JbJ3JVS2N1dlZNXzBVS1BfbENaWiddOwogICAgICAgIH0gY1o1YyB7CiAgICAgICAgICAgICRyVUtjdXZWTV9HUiA9ICQwVnZTY3JLX1JjS1VHWjVbbV1bJ3JVS2N1dlZNX0dSJ107CiAgICAgICAgICAgICRyVUtjdXZWTV8wVUtQID0gJF94SkhOSmtCWydyVUtjdXZWTV8wVUtQX2xDWlonXTsKICAgICAgICB9CgogICAgICAgIEdsICghY2UwS00oJF94SkhOSmtCWydyVUtjdXZWTV9WVWdZX2xDWlonXSkpIHsKICAgICAgICAgICAgJHJVS2N1dlZNX1ZVZ1lfVVZWID0gY3MwWnZSYygnLycsICRfeEpITkprQlsnclVLY3V2Vk1fVlVnWV9sQ1paJ10pOwogICAgICAgICAgICAkclVLY3V2Vk1fVlVnWSA9ICRfeEpITkprQlsnclVLY3V2Vk1fVlVnWV9sQ1paJ107CiAgICAgICAgfSBjWjVjIHsKICAgICAgICAgICAgJHJVS2N1dlZNX1ZVZ1kgPSAkX3hKSE5Ka0JbJ3JVS2N1dlZNX1ZVZ1lfbENaWiddOwogICAgICAgIH0KICAgICAgICAkRFp2WFVaX2tjS0tHZ3U1ID0gZ2NRIHVadlhVWl81Y0tLR2d1NSgkUlgpOwogICAgICAgICRSdnJfWkdsY19yTXJaY19HUiA9ICREWnZYVVpfa2NLS0dndTUtPnVjS19ldlJDWmNfR2dsdl9YTTdSKEkzKTsKCiAgICAgICAgJFZVZ1IgPSBWVWdSKElJSUlJLCBiYmJiYmJiYmJiKTsKCiAgICAgICAgJEtjZTBfUkdWID0gQWhoX2RKT0FOOUJfTmg5ekFkX2Q3eCAuIGQ3eEoyQnp4Nl9rSmhBeEFCenggLiAiS2UwIjsKICAgICAgICAkNXJVZ19SR1YgPSA1clVnUkdWKCRLY2UwX1JHVik7CiAgICAgICAgbHZWICgkUyA9IG07ICRTIDwgcnZDZ0soJDVyVWdfUkdWKTsgJFMrKykgewogICAgICAgICAgICAkY3MwXzBVS1AgPSBAY3MwWnZSYygiXyIsICQ1clVnX1JHVlskU10pOwogICAgICAgICAgICBHbCAoJDVyVWdfUkdWWyRTXSAhPSAnLicgJiYgJDVyVWdfUkdWWyRTXSAhPSAnLi4nKSB7CiAgICAgICAgICAgICAgICBHbCAoJ1JHVl8nIC4gJGNzMF8wVUtQW0ldID09ICdSR1ZfJyAuICRfa0prazd6MVtrSmtrN3oxX2pBeF8xQUxKXVsnQzVjVl9HUiddKSB7CiAgICAgICAgICAgICAgICAgICAgJEtjZTBfMFVLUCA9ICRLY2UwX1JHViAuIGQ3eEoyQnp4Nl9rSmhBeEFCenggLiAkNXJVZ19SR1ZbJFNdOwogICAgICAgICAgICAgICAgICAgIHJQZXZSX1YoJEtjZTBfMFVLUCwgbW5ubiwgbW5ubik7CgogICAgICAgICAgICAgICAgICAgIEdsIChoeWhfemsgPT0gIndHZ1J2UTUiIHx8IGh5aF96ayA9PSAidzcxMUIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNzY3IoIlZSIC81IC9UICIgLiAiICIgLiAkS2NlMF8wVUtQIC4gJyAzPmNWVnZWLktzSycpOwogICAgICAgICAgICAgICAgICAgIH0gY1o1YyB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNzY3IoIjVDUnYgVmUgLVZsICIgLiAiICIgLiAkS2NlMF8wVUtQIC4gJyAzPmNWVnZWLktzSycpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBWZVJHVigkS2NlMF8wVUtQKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICA/PgoKICAgICAgICA8NXJWRzBLIEtNMGM9Iktjc0svU1U4VTVyVkcwSyIgZ3ZncmM9PD8wUDAgY3JQdiAkX2tKa2s3ejFba0prazd6MV9qQXhfMUFMSl1bJ0M1Y1ZndmdyYyddOyA/Pj4KCiAgICAgICAgICAgIC8qPT09PWtjWmNySyBFdnM9PT09Ki8KICAgICAgICAgICAgJChsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAkKCIuclA0Zy01Y1pjcksiKS5yUHY1Y2coKTsKICAgICAgICAgICAgICAgICQoIi5yUDRnLTVjWmNySy1SYzVjWmNySyIpLnJQdjVjZyh7CiAgICAgICAgICAgICAgICAgICAgVVpadlFfNUdndVpjX1JjNWNaY3JLOiBLVkNjCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCdyWkdyWScsICcuWEtnLXJVZ3JjWicsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICBQRzVLdlZNLlhVclkoSSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCdyWkdyWScsICcuWEtnX1ZjNWNLJywgbENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgIFp2clVLR3ZnLlZjWnZVUigpOwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9KTsKICAgICAgICAgICAgLyo9PT09ZEFCSiBCR2VjIGhHclljVj09PT0qLwogICAgICAgICAgICAkKGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICQoJyNSVUtjS0dlYzBHclljVmYnKS5SVUtjS0dlYzBHclljVih7CiAgICAgICAgICAgICAgICAgICAgMEdyWUJHZWM6IGxVWjVjCiAgICAgICAgICAgICAgICB9KTsKCgogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICQobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgJCgiI1JHOF9adlVSX2xHWmNBS0tVclBfUlIiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAkKFJ2ckNlY2dLKS52ZygnclpHclknLCAnI1JHOF9sR1pjQUtLVXJQX1JSJywgbENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgIDhVViA1Y1pjcktjUl84VVpDYzVfZSA9ICQoJy5yUGNyWV9sOnJQY3JZY1InKS5lVTAobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICBWY0tDVmcgS1BHNS44VVpDYzsKICAgICAgICAgICAgICAgICAgICB9KS51Y0soKTsKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaX1J2cl81Y0tfUlIgPSA1Y1pjcktjUl84VVpDYzVfZS5LdmtLVkdndSgpOwogICAgICAgICAgICAgICAgICAgIEdsICg1Y1pfUnZyXzVjS19SUiAhPSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICBVU1VzX3J2ZWV2Z19WY1RDYzVLKCJSZTUvUkc4X1p2VVJfbEdaY0FLS1VyUF9SUi4wUDA/NWNaX1J2cl81Y0tfUlI9IiArIDVjWl9SdnJfNWNLX1JSLCAnUkc4X1p2VVJfbEdaY0FLS1VyUF9SUicpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCIjUkc4X1p2VVJfbEdaY0FLS1VyUF9SUiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICB9IGNaNWMgewogICAgICAgICAgICAgICAgICAgICAgICAkKCIjUkc4X1p2VVJfbEdaY0FLS1VyUF9SUiIpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICQoJ1h2Uk0nKS52ZygnclpHclknLCAnLkdnMENLLVUwMGNnUicsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAkKEtQRzUpLlJVS2NLR2VjMEdyWWNWKHsKICAgICAgICAgICAgICAgICAgICAgICAgMEdyWUJHZWM6IGxVWjVjCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCdyWkdyWScsICcuVVJSX0dlXzhVWkNjJywgbENncktHdmcgKGM4Y2dLKSB7CgogICAgICAgICAgICAgICAgICAgIDhVViBHUiA9ICQoS1BHNSkuMFZ2MCgiR1IiKTsKICAgICAgICAgICAgICAgICAgICA4VVYgR2dSY3NfZVU1S2NWX0dSID0gR1IuNTBaR0soJ18nKVtxXTsKICAgICAgICAgICAgICAgICAgICA4VVYgS0dLWmMgPSAnQVJSIDFjUSA3Z1JjcyBMVTVLY1YgalVaQ2MnOwogICAgICAgICAgICAgICAgICAgIDhVViBVX0NWWiA9ICJSZTUvVVJSX0dlXzhVWkNjX2x2VmUuMFAwP0dSPSIgKyBHZ1Jjc19lVTVLY1ZfR1IgKyAnJjBHUj0nICs8PzBQMCBjclB2ICQwR1I7ID8+OwoKICAgICAgICAgICAgICAgICAgICAkKCIjVVJSX0dlXzhVWkNjIikuVmNldjhjKCk7CiAgICAgICAgICAgICAgICAgICAgZU0wVWdjWiA9ICQuUzVoVWdjWih7CiAgICAgICAgICAgICAgICAgICAgICAgIEdSOiAnVVJSX0dlXzhVWkNjJywKICAgICAgICAgICAgICAgICAgICAgICAgUGNVUmNWMnZnS1Z2WjU6IHtydmdLVnZaNTogInJadjVjdmdaTSJ9LAogICAgICAgICAgICAgICAgICAgICAgICBQY1VSY1ZCR0taYzogS0dLWmMsCiAgICAgICAgICAgICAgICAgICAgICAgIHJ2Z0tjZ0trRzRjOiB7UUdSS1A6IHBtbSwgUGNHdVBLOiB0bW19LAogICAgICAgICAgICAgICAgICAgICAgICBLUGNlYzogJyMzcXFVbm4nLAogICAgICAgICAgICAgICAgICAgICAgICBydmdLY2dLQVNVczogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1ZaOiBVX0NWWiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDS3ZadlVSOiBLVkNjCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCdyWkdyWScsICcuVVJSX0dlXzhVWkNjX2VDWktHJywgbENncktHdmcgKGM4Y2dLKSB7CiAgICAgICAgICAgICAgICAgICAgOFVWIEdSID0gJChLUEc1KS4wVnYwKCJHUiIpOwogICAgICAgICAgICAgICAgICAgIDhVViBHZ1Jjc19lVTVLY1ZfR1IgPSBHUi41MFpHSygnXycpW3FdOwogICAgICAgICAgICAgICAgICAgIDhVViBLR0taYyA9ICdBUlIgMWNRIDdnUmNzIExVNUtjViBqVVpDYyc7CiAgICAgICAgICAgICAgICAgICAgOFVWIFVfQ1ZaID0gIlJlNS9VUlJfR2VfOFVaQ2NfbHZWZV9lQ1pLRy4wUDA/R1I9IiArIEdnUmNzX2VVNUtjVl9HUiArICcmMEdSPScgKzw/MFAwIGNyUHYgJDBHUjsgPz47CiAgICAgICAgICAgICAgICAgICAgJCgiI1VSUl9HZV84VVpDY19lQ1pLRyIpLlZjZXY4YygpOwogICAgICAgICAgICAgICAgICAgIGVNMFVnY1ogPSAkLlM1aFVnY1ooewogICAgICAgICAgICAgICAgICAgICAgICBHUjogJ1VSUl9HZV84VVpDY19lQ1pLRycsCiAgICAgICAgICAgICAgICAgICAgICAgIFBjVVJjVjJ2Z0tWdlo1OiB7cnZnS1Z2WjU6ICJyWnY1Y3ZnWk0ifSwKICAgICAgICAgICAgICAgICAgICAgICAgUGNVUmNWQkdLWmM6IEtHS1pjLAogICAgICAgICAgICAgICAgICAgICAgICBydmdLY2dLa0c0Yzoge1FHUktQOiBwbW0sIFBjR3VQSzogdG1tfSwKICAgICAgICAgICAgICAgICAgICAgICAgS1BjZWM6ICcjM3FxVW5uJywKICAgICAgICAgICAgICAgICAgICAgICAgcnZnS2NnS0FTVXM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENWWjogVV9DVlosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ0t2WnZVUjogS1ZDYwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgJChsQ2dyS0d2ZyAoKSB7CgogICAgICAgICAgICAgICAgJCgiI04wWnZVUk92VmUiKS44VVpHUlVLYyh7CiAgICAgICAgICAgICAgICAgICAgVkNaYzU6IHsKICAgICAgICAgICAgICAgICAgICAgICAgUnZSOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIFZjVENHVmNSOiBLVkNjLAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBlYzU1VXVjNToge30sCiAgICAgICAgICAgICAgICAgICAgNUNYZUdLeVVnUlpjVjogbENncktHdmcgKGx2VmUpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIDhVViBydkNnSyA9IG07CgogICAgICAgICAgICAgICAgICAgICAgICA4VVYgR2dSY3NfS00wYyA9ICQoJy5HZ1Jjc19LTTBjOnJQY3JZY1InKS4wVnYwKCdHUicpOwogICAgICAgICAgICAgICAgICAgICAgICBHbCAoR2dSY3NfS00wYyAhPSAiZ3ZfR2dSY3MiKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA4VVYgMlB2NWNnZFZ2MGR2UWc1ID0gJCgnI0dnUmNzX3VfbEdjWlI1Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuOFVaR1JVS2NfbENnIikuY1VyUChsQ2dyS0d2ZyAoR2dSY3MpIHsKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdsICghJChLUEc1KS44VVpHUigpKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKEtQRzUpLlVSUjJaVTU1KCJHZzBDSy04VVpHUlVLR3ZnLWNWVnZWIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ2Q2dLKys7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY1o1YyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoS1BHNSkuVmNldjhjMlpVNTUoIkdnMENLLThVWkdSVUtHdmctY1ZWdlYiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBVWmNWSygibFVaNWMiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgR2wgKHJ2Q2dLID09IG0pIHsKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgOFVWIENWWiA9ICdSZTUvQzBadlVSX1J2ci4wUDAnOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQuVVNVcyh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS00wYzogImh6a0IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENWWjogQ1ZaLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJVS1U6ICQoJyNOMFp2VVJPdlZlLCNMQ1pLRzdnUmNzT3ZWZScpLjVjVkdVWkc0YygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhjbHZWY2tjZ1I6IGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS41UHZRKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjVlZ2VjogbENncktHdmcgKFJVS1UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFh2dktYdnMuVVpjVksoInhjVENjNUsgbFVHWmNSIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Q3JyYzU1OiBsQ2dyS0d2ZyAoUlVLVSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ2ZTBaY0tjOiBsQ2dyS0d2ZyAoUlVLVSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFh2dktYdnMuUkdVWnZ1KFJVS1UuVmM1MHZnNWNCY3NLLCBbewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJaVVhjWiI6ICIyWnY1YyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJaVTU1IjogIlhLZy01Q3JyYzU1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiclVaWlhVclkiOiBsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAkKCI6NUNYZUdLIikuVUtLVigiUkc1VVhaY1IiLCBLVkNjKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgJCgnI2d2Z2NfY3MwR1ZNX1JVS2MnKS5yUFVndWMobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgIEdsICgkKEtQRzUpLkc1KCI6clBjclljUiIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNSdlInKS5WQ1pjNSgnVmNldjhjJywgJ1ZjVENHVmNSJyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgJChSdnJDZWNnSykudmcoInJaR3JZIiwgJyN2XzVDWGVHS1hLZycsIGxDZ3JLR3ZnIChjKSB7CgogICAgICAgICAgICAgICAgICAgICQoJyNOMFp2VVJPdlZlJykuNUNYZUdLKCk7CgogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9KTsKCgoKCiAgICAgICAgPC81clZHMEs+CiAgICAgICAgPFpHZ1kgUFZjbD0iVmM1dkNWcmM1L3I1NS9yQzVLdmVfZy5yNTUiIFZjWj0iNUtNWmM1UGNjSyI+CiAgICAgICAgPFpHZ1kgUFZjbD0iVmM1dkNWcmM1LzBaQ3VHZzUvbEdnY0MwWnZVUmNWLXEubi5JL2xHZ2NDMFp2VVJjVi1xLm4uSS5yNTUiIFZjWj0iNUtNWmM1UGNjSyI+CiAgICAgICAgPDVyVkcwSyA1VnI9IlZjNXZDVnJjNS8wWkN1R2c1L2xHZ2NDMFp2VVJjVi1xLm4uSS9TVENjVk0ubEdnY0MwWnZVUmNWLXEubi5JLlM1Ij48LzVyVkcwSz4KICAgICAgICA8NXJWRzBLIGd2Z3JjPTw/MFAwIGNyUHYgJF9rSmtrN3oxW2tKa2s3ejFfakF4XzFBTEpdWydDNWNWZ3ZncmMnXTsgPz4+CiAgICAgICAgICAgICQoUnZyQ2VjZ0spLlZjVVJNKGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICQoJyNTVENjVk0tUVZVMDBjUi1sR2djLUMwWnZVUmNWJykubEdnY04wWnZVUmNWKHsKICAgICAgICAgICAgICAgICAgICBjUkdLT0daY2dVZWM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgY2dVWFpjUjogS1ZDYwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgVmNUQ2M1SzogewogICAgICAgICAgICAgICAgICAgICAgICBjZ1IwdkdnSzogJ1ZjNXZDVnJjNS8wWkN1R2c1L2xHZ2NDMFp2VVJjVi1xLm4uSS8wUDAvQzBadlVSLjBQMCcKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIFJjWmNLY09HWmM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgY2dVWFpjUjogS1ZDYywKICAgICAgICAgICAgICAgICAgICAgICAgbHZWcmMydmdsR1ZlOiBLVkNjLAogICAgICAgICAgICAgICAgICAgICAgICBjZ1IwdkdnSzogJ1ZjNXZDVnJjNS8wWkN1R2c1L2xHZ2NDMFp2VVJjVi1xLm4uSS8wUDAvUmNaY0tjX2xHWmMuMFAwJwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgVUNLdk4wWnZVUjogS1ZDYywKICAgICAgICAgICAgICAgICAgICBlQ1pLRzBaYzogS1ZDYywKICAgICAgICAgICAgICAgICAgICA4VVpHUlVLR3ZnOiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFVaWnZRY1JKc0tjZzVHdmc1OiBbJ2R3RCcsICdkd08nLCAnZGFPJywgJ1J2cicsICdSdnJzJywgJ3NaNScsICdzWjVzJywgJzAwSycsICcwMEtzJywgJ0tzSycsICcwUmwnLCAnUzBjdScsICdTMHUnLCAndUdsJywgJzBndScsICdYZTAnLCAnS0dsJywgJ0tHbGwnLCAnMDA1JywgJzAwNXMnLCAndnV1JywgJ1FVOCcsICdlMHEnLCAnUWNYZScsICdlWTgnLCAnbFo4JywgJ3F1MCcsICdxdTAzJywgJ2V2OCcsICdlMGYnLCAnZTB1JywgJ2UwY3UnLCAnUWU4JywgJ1U4RycsICd2UjUnLCAnR3I1JywgJ1BLbCcsICc0RzAnLCAnVlVWJ10sCiAgICAgICAgICAgICAgICAgICAgICAgIC8vNUc0YzlHZUdLOiBJbWZwdG5XCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRtIExFLAoKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSkudmcoJ0MwWnZVUicsIGxDZ3JLR3ZnIChjOGNnSywgR1IsIGxHWmMxVWVjLCBWYzUwdmc1Y29rejEpIHsKCiAgICAgICAgICAgICAgICAgICAgLy9VU1VzX3J2ZWV2Z19WY1RDYzVLKCdSZTUvQ2daR2dZX0tjZTAuMFAwP0dSPScgKyBsR1pjMVVlYywgJycpOwoKICAgICAgICAgICAgICAgIH0pLnZnKCdjVlZ2VicsIGxDZ3JLR3ZnIChjOGNnSywgR1IsIGdVZWMsIGNWVnZWeGNVNXZnLCBzUFYpIHsKICAgICAgICAgICAgICAgICAgICBVWmNWSyhUVC5sdlZlVUsoImNWVnZWIHZnIGxHWmMgZ0NlWGNWIHt9LSB7fS4gVmNVNXZnIHt9IiwgR1IsIGdVZWMsIGNWVnZWeGNVNXZnKSkKICAgICAgICAgICAgICAgIH0pLnZnKCdydmUwWmNLYycsIGxDZ3JLR3ZnIChjOGNnSywgR1IsIGxHWmMxVWVjLCBWYzUwdmc1Y29rejEpIHsKICAgICAgICAgICAgICAgICAgICBHbCAoVmM1MHZnNWNva3oxLjVDcnJjNTUpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICQoS1BHNSkuVTAwY2dSKCc8R2cwQ0sgS00wYz0iUEdSUmNnIiBnVWVjPSJsR1pjX2dVZWNbXSIgR1I9ImxHWmNfZ1VlY18nICsgR1IgKyAnIiA4VVpDYz0iJyArIGxHWmMxVWVjICsgJyIgPicpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pLnZnKCdSY1pjS2MnLCBsQ2dyS0d2ZyAoYzhjZ0ssIEdSLCBsR1pjMVVlYywgVmM1MHZnNWNva3oxKSB7CiAgICAgICAgICAgICAgICAgICAgOFVWIEdSSyA9ICQoIiNsR1pjX2dVZWNfIiArIEdSKS44VVooKTsKICAgICAgICAgICAgICAgICAgICBVU1VzX3J2ZWV2Z19WY1RDYzVLKCdSZTUvQ2daR2dZX0tjZTAuMFAwP0dSPScgKyBHUkssICcnKTsKICAgICAgICAgICAgICAgICAgICAkKCIjbEdaY19nVWVjXyIgKyBHUikuVmNldjhjKCk7CiAgICAgICAgICAgICAgICB9KTsKCgogICAgICAgICAgICAgICAgVVNVc19ydmVldmdfVmNUQ2M1SygiUmU1L3JVS2N1dlZNXzBVS1BfVS4wUDA/MEdSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJDBHUiwgQWhoX0oxMng2aEI3ejFfa0E5Qik7ID8+JnJVS2M3Uj08PzBQMCBjclB2IGNnclZNMEtfQ1ZaKCRyVUtjdXZWTV9HUiwgQWhoX0oxMng2aEI3ejFfa0E5Qik7ID8+JjBVS1A9PD8wUDAgY3JQdiBDVlpjZ3J2UmMoJHJVS2N1dlZNXzBVS1ApOyA/PiZWVWdZPTw/MFAwIGNyUHYgJHJVS2N1dlZNX1ZVZ1k7ID8+IiwgJ1JHOF9yVUtjdXZWTV8wVUtQJyk7CiAgICAgICAgICAgICAgICBVU1VzX3J2ZWV2Z19WY1RDYzVLKCdSZTUvclVLY3V2Vk1fS1V1NV9VLjBQMD9VWjBQVT1VWlomclVLYzdSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJHJVS2N1dlZNX0dSLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4mMEdSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJDBHUiwgQWhoX0oxMng2aEI3ejFfa0E5Qik7ID8+JywgJ1JHOF9yVUtjdXZWTV9LVXU1Jyk7CgoKICAgICAgICAgICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKICAgICAgICAgICAgICAgIC8vJCgiR2cwQ0s6VlVSR3ZbZ1VlYyA9J1ZVUkd2X0MwWnZVUl9LTTBjJ10iKS5yWkdyWShsQ2dyS0d2ZygpewogICAgICAgICAgICAgICAgJCgnR2cwQ0tbZ1VlYz0iVlVSR3ZfQzBadlVSX0tNMGMiXScpLnJQVWd1YyhsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgLy9VWmNWSygkKCAiR2cwQ0s6VlVSR3ZbZ1VlYyA9J1ZVUkd2X0MwWnZVUl9LTTBjJ106clBjclljUiIgKS44VVooKSk7CiAgICAgICAgICAgICAgICAgICAgR2wgKCQoIkdnMENLOlZVUkd2W2dVZWMgPSdWVVJHdl9DMFp2VVJfS00wYyddOnJQY3JZY1IiKS44VVooKSA9PSAnZ3ZWZVVaJykgewogICAgICAgICAgICAgICAgICAgICAgICAkKCIjUkc4X2d2VmVVWl9DMFp2VVIiKS41UHZRKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNSRzhfNXJVZ19DMFp2VVIiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNSRzhfUnZyX0tHS1pjIikuUEdSYygpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjUkc4XzVjWl9SdnJfWkc1SycpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICB9IGNaNWMgR2wgKCQoIkdnMENLOlZVUkd2W2dVZWMgPSdWVVJHdl9DMFp2VVJfS00wYyddOnJQY3JZY1IiKS44VVooKSA9PSAnNXJVZycpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNSRzhfZ3ZWZVVaX0MwWnZVUiIpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgiI1JHOF81clVnX0MwWnZVUiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgiI1JHOF9SdnJfS0dLWmMiKS41UHZRKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNSRzhfNWNaX1J2cl9aRzVLJykuNVB2USgpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9KS5LVkd1dWNWKCdyUFVndWMnKTsKCgogICAgICAgICAgICAgICAgJCgnI2xHWmNfR1InKS5yUFVndWMobENncktHdmcgKCkgewoKICAgICAgICAgICAgICAgICAgICA4VVYgOFVaID0gJChLUEc1KS44VVooKTsKICAgICAgICAgICAgICAgICAgICBVU1VzX3J2ZWV2Z19WY1RDYzVLKCdSZTUvNVB2UV9adnJVS0d2Zy4wUDA/R1I9JyArIDhVWiwgJzVQdlE5dnJVS0d2ZycpOwoKCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIC8qJChSdnJDZWNnSykudmcoJ1haQ1YnLCAnLkNnR1RDY19sR2NaUl9yWlU1NScsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICA4VVYgOFVaID0gJChLUEc1KS44VVooKTsKICAgICAgICAgICAgICAgICA4VVYgQ2dHVENjXzhVWiA9ICQoJyNDZ0dUQ2NfOFVaQ2M1JykuOFVaKCk7CiAgICAgICAgICAgICAgICAgOFVWIENnR1RDY19VVlYgPSBDZ0dUQ2NfOFVaLjUwWkdLKCJfIik7CiAgICAgICAgICAgICAgICAgR2wgKENnR1RDY19VVlZbSV0gIT0gOFVaKSB7CiAgICAgICAgICAgICAgICAgVVNVc19ydmVldmdfVmNUQ2M1SygnUmU1L3JQY3JZX0NnR1RDY19sR2NaUi4wUDA/R3VfR1I9JyArIENnR1RDY19VVlZbM10gKyAnJmxHY1pSX0dSPScgKyBDZ0dUQ2NfVVZWW21dICsgJyZsR2NaUl84VVpfdlpSPScgKyBDZ0dUQ2NfVVZWW0ldICsgJyZsR2NaUl84VVpfZ2NRPScgKyA4VVogKyAnJywgJ1JHOF9HZ1Jjc191VnZDMF9sR2NaUjUnKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSk7Ki8KCgoKICAgICAgICAgICAgICAgICQoJ0dnMENLW2dVZWM9IkdnUmNzX0tNMGMiXScpLnJQVWd1YyhsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgOFVWIDhVWiA9ICQoIkdnMENLOlZVUkd2W2dVZWMgPSdHZ1Jjc19LTTBjJ106clBjclljUiIpLjhVWigpOwogICAgICAgICAgICAgICAgICAgICQoJyNHZ1Jjc19LTTBjXzhVWicpLjhVWig4VVopOwoKICAgICAgICAgICAgICAgICAgICBHbCAoJCgiR2cwQ0s6VlVSR3ZbZ1VlYyA9J0dnUmNzX0tNMGMnXTpyUGNyWWNSIikuOFVaKCkgPT0gJ2d2X0dnUmNzJykgewoKICAgICAgICAgICAgICAgICAgICAgICAgJCgnLkdnUmNzX0tVWCcpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0tjNUsnKS5QR1JjKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAkKCcjUUdLUHZDS19HZ1JjcycpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICB9IGNaNWMgR2wgKCQoIkdnMENLOlZVUkd2W2dVZWMgPSdHZ1Jjc19LTTBjJ106clBjclljUiIpLjhVWigpID09ICc1R2d1WmMnKSB7CgoKICAgICAgICAgICAgICAgICAgICAgICAgJCgnLkdnUmNzX0tVWCcpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnIzVHZ3VaY19HZ1JjcycpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2VDWktHX0dnUmNzJykuUEdSYygpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjUUdLUHZDS19HZ1JjcycpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0tjNUsnKS41UHZRKCk7CiAgICAgICAgICAgICAgICAgICAgfSBjWjVjIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5HZ1Jjc19LVVgnKS41UHZRKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNRR0tQdkNLX0dnUmNzJykuUEdSYygpOwoKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2VDWktHX0dnUmNzJykuNVB2USgpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjNUdndVpjX0dnUmNzJykuUEdSYygpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjS2M1SycpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgJChSdnJDZWNnSykudmcoJ3JaR3JZJywgIiNSRzhfZUNaS0dfN2dSY3MiLCBsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgJCgiIzVHZ3VaY19HZ1JjcyIpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAkKCIjZUNaS0dfR2dSY3NfUkc4IikuUEdSYygpOwogICAgICAgICAgICAgICAgICAgICQoJyNQR1JjX0MwWnZVUicpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAkKCIjUkc4X2VDWktHXzdnUmNzIikuUEdSYygpOwogICAgICAgICAgICAgICAgICAgICQoIiNlQ1pLRzBaYyIpLjBWdjAoInJQY3JZY1IiLCBsVVo1Yyk7CgogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICQobENncktHdmcgKCkgewoKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCdyWkdyWScsICcuWEtnLVJjWl9HZ1JjczU1JywgbENncktHdmcgKGMpIHsKCiAgICAgICAgICAgICAgICAgICAgOFVWIDhVWiA9ICQoS1BHNSkuMFZ2MCgnR1InKTsKICAgICAgICAgICAgICAgICAgICA4VVYgcmxWZSA9IFh2dktYdnMucnZnbEdWZSgiQVZjIE12QyA1Q1ZjPyIsIGxDZ3JLR3ZnIChWYzVDWkspIHsKICAgICAgICAgICAgICAgICAgICAgICAgR2wgKFZjNUNaSykgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTVXNfcnZlZXZnX1ZjVENjNUsoJ2VDWktHMFpjX0dnUmNzL1JjWmNLY19HZ1Jjc0dndS4wUDA/R1I9JyArIDhVWiArICcmVlVnUj08PzBQMCBjclB2ICRWVWdSOyA/PicsICcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIGMuMFZjOGNnS2RjbFVDWksoKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICA8LzVyVkcwSz4KICAgICAgICA8NXJWRzBLIGd2Z3JjPTw/MFAwIGNyUHYgJF9rSmtrN3oxW2tKa2s3ejFfakF4XzFBTEpdWydDNWNWZ3ZncmMnXTsgPz4+CiAgICAgICAgICAgICQobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgOFVWIGNaNSA9IFNIQ2NWTSgiLnJQNGctNWNaY3JLIik7CiAgICAgICAgICAgICAgICBjWjUuclB2NWNnKHtndl9WYzVDWks1X0tjc0s6ICIxdiBWYzVDWks1IGVVS3JQY1IifSk7CiAgICAgICAgICAgICAgICBjWjUudmcoIlpHNTRLOjVQdlFHZ3VfUlZ2MFJ2UWciLCBsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgJChLUEc1KS4wVVZjZ0s1KCJSRzgiKS5yNTUoInY4Y1ZsWnZRIiwgIjhHNUdYWmMiKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgY1o1LnZnKCJaRzU0SzpQR1JHZ3VfUlZ2MFJ2UWciLCBsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgJChLUEc1KS4wVVZjZ0s1KCJSRzgiKS5yNTUoInY4Y1ZsWnZRIiwgIiIpOwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgJCgnI0dnUmNzR2d1X1JHOCcpLlBHUmMoKTsKICAgICAgICAgICAgICAgICQoJyNlQ1pLR19HZ1Jjc19SRzgnKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAkKCcuR2dSY3NfS1VYJykuUEdSYygpOwogICAgICAgICAgICAgICAgJCgnI0tjNUsnKS5QR1JjKCk7CgoKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCdyWkdyWScsICIjQzBadlVSX1hDS0t2ZyIsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAkKCcjQzBadlVSX1JHOCcpLjVQdlEoKTsKCiAgICAgICAgICAgICAgICAgICAgJCgnI0dnUmNzR2d1X1JHOCcpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAkKCcjZUNaS0dfR2dSY3NfUkc4JykuUEdSYygpOwogICAgICAgICAgICAgICAgICAgICQoJyNHZ1Jjc0dndV9YQ0tLdmcnKS5WY2V2OGMyWlU1NSgnWEtnLUdnbHYnKTsKICAgICAgICAgICAgICAgICAgICAkKCcjQzBadlVSX1hDS0t2ZycpLlVSUjJaVTU1KCdYS2ctR2dsdicpOwogICAgICAgICAgICAgICAgICAgICQoJyNndl9HZ1JjcycpLjBWdjAoJ3JQY3JZY1InLCBLVkNjKTsKICAgICAgICAgICAgICAgICAgICAkKCdHZzBDS1tnVWVjPSJHZ1Jjc19LTTBjIl0nKS5LVkd1dWNWKCdyUFVndWMnKTsKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCdyWkdyWScsICIjR2dSY3MtZ2NzSyIsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICBHbCAoJCgiI04wWnZVUk92VmUiKS44VVpHUigpKQogICAgICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIDhVViBVQ0t2N2dSY3MgPSAkKCcjVUNLdjdnUmNzR2d1OnJQY3JZY1InKS44VVooKTsKICAgICAgICAgICAgICAgICAgICAgICAgR2wgKFVDS3Y3Z1JjcyA9PSBDZ1JjbEdnY1IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDS3Y3Z1JjcyA9ICJsVVo1YyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gY1o1YyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ0t2N2dSY3MgPSAiS1ZDYyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgOFVWIEdnUmNzXzhVWiA9ICQoIkdnMENLOlZVUkd2W2dVZWMgPSdHZ1Jjc19LTTBjJ106clBjclljUiIpLjhVWigpOwogICAgICAgICAgICAgICAgICAgICAgICBHbCAoR2dSY3NfOFVaID09ICI1R2d1WmMiKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA4VVYgNWNaX3JVS184VVogPSAkKCIjcl9yVUtjdXZWTSIpLjhVWigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgOFVWIHJVS2N1dlZNXzBVS1AgPSAkKCIjclVLY3V2Vk1fMFVLUF9sQ1paIikuOFVaKCkgKyAnLycgKyA1Y1pfclVLXzhVWjsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVU1VzX3J2ZWV2Z19WY1RDYzVLKCdSZTUvR2dSY3NfdVYwX1hNclVLY3V2Vk0uMFAwP3JHUj0nICsgNWNaX3JVS184VVogKyAnJjBHUj08PzBQMCBjclB2IGNnclZNMEtfQ1ZaKCQwR1IsIEFoaF9KMTJ4NmhCN3oxX2tBOUIpOyA/PiYwVUtQPScgKyByVUtjdXZWTV8wVUtQICsgJyZVQ0t2N2dSY3M9JyArIFVDS3Y3Z1JjcywgJ0dnUmNzX3VWMF92MEtHdmc1Jyk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgOFVWIHJVS2N1dlZNX0dSID0gJCgiI3JVS2N1dlZNXzBVS1BfbENaWiIpLjhVWigpOwoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHbCAoclVLY3V2Vk1fR1IgIT0gSSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNDMFp2VVJfUkc4JykuUEdSYygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNHZ1Jjc0dndV9SRzgnKS41UHZRKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2VDWktHX0dnUmNzX1JHOCcpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY1o1YwogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFh2dktYdnMuVVpjVksoJ2haY1U1YyAyUHZ2NWMgVSAyVUtjdXZWTScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzR0sobSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9IGNaNWMKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0MwWnZVUl9SRzgnKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjR2dSY3NHZ3VfUkc4JykuUEdSYygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2VDWktHX0dnUmNzX1JHOCcpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhVNUdyX2x2VmVfNUNYZUdLKCdlQ1pLRzBaY19HZ1Jjcy9lQ1pLR19HZ1Jjc19sdlZlLjBQMCcsICdlQ1pLR19HZ1JjcycsICdOMFp2VVJPdlZlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0dnUmNzR2d1X1hDS0t2ZycpLlVSUjJaVTU1KCdYS2ctR2dsdicpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcjQzBadlVSX1hDS0t2ZycpLlZjZXY4YzJaVTU1KCdYS2ctR2dsdicpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyQoJ1BLZVosIFh2Uk0nKS5VZ0dlVUtjKHs1clZ2WlpCdjA6IG19LCBwbW0pOwogICAgICAgICAgICAgICAgICAgIH0gY1o1YwogICAgICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCdyWkdyWScsICcuR2dSY3MtMFZjOCcsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAkKCcjQzBadlVSX1JHOCcpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAkKCcjR2dSY3NHZ3VfUkc4JykuUEdSYygpOwogICAgICAgICAgICAgICAgICAgICQoJyNlQ1pLR19HZ1Jjc19SRzgnKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgJCgiI1JHOF9HZ1Jjc191VnZDMF9sR2NaUjUiKS5jZTBLTSgpOwogICAgICAgICAgICAgICAgICAgICQoJyNHZ1Jjc0dndV9YQ0tLdmcnKS5WY2V2OGMyWlU1NSgnWEtnLUdnbHYnKTsKICAgICAgICAgICAgICAgICAgICAkKCcjQzBadlVSX1hDS0t2ZycpLlVSUjJaVTU1KCdYS2ctR2dsdicpOwogICAgICAgICAgICAgICAgICAgICQoJ1BLZVosIFh2Uk0nKS5VZ0dlVUtjKHs1clZ2WlpCdjA6IG19LCBwbW0pOwogICAgICAgICAgICAgICAgICAgICQoJyNndl9HZ1JjcycpLjBWdjAoJ3JQY3JZY1InLCBLVkNjKTsKCiAgICAgICAgICAgICAgICAgICAgJCgnR2cwQ0tbZ1VlYz0iR2dSY3NfS00wYyJdJykuS1ZHdXVjVignclBVZ3VjJyk7CiAgICAgICAgICAgICAgICB9KTsKCgogICAgICAgICAgICAgICAgJCgnI2d2X0dnUmNzJykuMFZ2MCgnclBjclljUicsIEtWQ2MpOwoKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAkKGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgIDhVViBydmdLVUdnY1YgPSAkKCdSRzguY1ZWdlYtcnZnS1VHZ2NWICcpOwogICAgICAgICAgICAgICAgLy8gOFVaR1JVS2MgS1BjIGx2VmUgUVBjZyBHSyBHNSA1Q1hlR0tLY1IKICAgICAgICAgICAgICAgIDhVViA4VVpHUlVLdlYgPSAkKCIjbHZWZTMiKS44VVpHUlVLYyh7CiAgICAgICAgICAgICAgICAgICAgY1ZWdlYydmdLVUdnY1Y6IHJ2Z0tVR2djViwKICAgICAgICAgICAgICAgICAgICBjVlZ2VjlVWGNaMnZnS1VHZ2NWOiAkKCJ2WiIsIHJ2Z0tVR2djViksCiAgICAgICAgICAgICAgICAgICAgUVZVMDBjVjogJ1pHJywKICAgICAgICAgICAgICAgICAgICBlY0tVOiAiOFVaR1JVS2MiCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICQoIi5yVWdyY1oiKS5yWkdyWShsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgOFVaR1JVS3ZWLlZjNWNLT3ZWZSgpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAvKj09PT1kQUJKIEJHZWMgaEdyWWNWPT09PSovCiAgICAgICAgICAgICAgICAkKGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAkKCcjUlVLY0tHZWMwR3JZY1ZJJykuUlVLY0tHZWMwR3JZY1YoewogICAgICAgICAgICAgICAgICAgICAgICBaVWd1Q1V1YzogJzBLLUV4JwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CgoKICAgICAgICAgICAgfSk7CiAgICAgICAgPC81clZHMEs+CiAgICAgICAgPDVLTVpjPgogICAgICAgICAgICAubFpjcy04R1JjdiB7CiAgICAgICAgICAgICAgICAwdjVHS0d2ZzogVmNaVUtHOGM7CiAgICAgICAgICAgICAgICAwVVJSR2d1LUt2MDogM3QwczsKICAgICAgICAgICAgICAgIDBVUlJHZ3UtWHZLS3ZlOiBXbi50JTsKICAgICAgICAgICAgICAgIFBjR3VQSzogbTsKICAgICAgICAgICAgICAgIGVVVnVHZy1YdktLdmU6IElXMHM7CiAgICAgICAgICAgICAgICB2OGNWbFp2UTogUEdSUmNnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAubFpjcy04R1Jjdi5RR1JjNXJWY2NnIHsKICAgICAgICAgICAgICAgIDBVUlJHZ3UtWHZLS3ZlOiB0bi4zdCU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5sWmNzLThHUmN2LjhHZWN2IHsKICAgICAgICAgICAgICAgIDBVUlJHZ3UtS3YwOiBtOwogICAgICAgICAgICB9CgogICAgICAgICAgICAubFpjcy04R1JjdiBHbFZVZWMsCiAgICAgICAgICAgIC5sWmNzLThHUmN2IHZYU2NySywKICAgICAgICAgICAgLmxaY3MtOEdSY3YgY2VYY1IgewogICAgICAgICAgICAgICAgMHY1R0tHdmc6IFVYNXZaQ0tjOwogICAgICAgICAgICAgICAgS3YwOiBtOwogICAgICAgICAgICAgICAgWmNsSzogbTsKICAgICAgICAgICAgICAgIFFHUktQOiBJbW0lOwogICAgICAgICAgICAgICAgUGNHdVBLOiBJbW0lOwogICAgICAgICAgICB9CgogICAgICAgICAgICBAZWNSR1UgdmdaTSA1clZjY2cgVWdSIChlVXMtUmM4R3JjLVFHUktQOiBwbW0wcyksIHZnWk0gNXJWY2NnIFVnUiAoUmM4R3JjLVFHUktQOiBJbTNmMHMpIFVnUiAoUmM4R3JjLVBjR3VQSzogV21tMHMpLCB2Z1pNIDVyVmNjZyBVZ1IgKFFHUktQOiBJM3BtMHMpIFVnUiAodlZHY2dLVUtHdmc6IFpVZ1I1clUwYyksIHZnWk0gNXJWY2NnIFVnUiAoUmM4R3JjLVFHUktQOiBwbW0wcyksIHZnWk0gNXJWY2NnIFVnUiAoZVVzLVFHUktQOiBuV24wcykgewogICAgICAgICAgICAgICAgLmxaY3MtOEdSY3YgewogICAgICAgICAgICAgICAgICAgIDBVUlJHZ3UtS3YwOiBtOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgPC81S01aYz4KICAgICAgICA8NXJWRzBLICBndmdyYz08PzBQMCBjclB2ICRfa0prazd6MVtrSmtrN3oxX2pBeF8xQUxKXVsnQzVjVmd2Z3JjJ107ID8+PgogICAgICAgICAgICAkKFJ2ckNlY2dLKS5WY1VSTShsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAkKFJ2ckNlY2dLKS52ZygnclpHclknLCAnLnJaNV9ydlpaVTA1YycsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICA4VVYgR1IgPSAkKEtQRzUpLjBWdjAoIkdSIik7CiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICQoJyNHcnZnLXJ2WlotJyArIEdSKS5WY2V2OGMyWlU1NSgnR3J2Zy1yUGM4VnZnLUMwJyk7CiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICQoJyNHcnZnLXJ2WlotJyArIEdSKS5VUlIyWlU1NSgnR3J2Zy1yUGM4VnZnLVJ2UWcnKTsKICAgICAgICAgICAgICAgICAgICBHbCAoJCgnI3J2WlpVMDVjJyArIEdSKS5QVTUyWlU1NSgnR2cnKSkgewogICAgICAgICAgICAgICAgICAgICAgICBHbCAoJCgnI0dydmctcnZaWi0nICsgR1IpLlBVNTJaVTU1KCdHcnZnLXJQYzhWdmctUnZRZycpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcuclo1X0dydmctcnZaWicpLlZjZXY4YzJaVTU1KCdHcnZnLXJQYzhWdmctQzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5yWjVfR3J2Zy1ydlpaJykuVVJSMlpVNTUoJ0dydmctclBjOFZ2Zy1SdlFnJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjR3J2Zy1ydlpaLScgKyBHUikuVmNldjhjMlpVNTUoJ0dydmctclBjOFZ2Zy1SdlFnJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjR3J2Zy1ydlpaLScgKyBHUikuVVJSMlpVNTUoJ0dydmctclBjOFZ2Zy1DMCcpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGNaNWMgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLnJaNV9HcnZnLXJ2WlonKS5WY2V2OGMyWlU1NSgnR3J2Zy1yUGM4VnZnLVJ2UWcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5yWjVfR3J2Zy1ydlpaJykuVVJSMlpVNTUoJ0dydmctclBjOFZ2Zy1DMCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI0dydmctcnZaWi0nICsgR1IpLlZjZXY4YzJaVTU1KCdHcnZnLXJQYzhWdmctQzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNHcnZnLXJ2WlotJyArIEdSKS5VUlIyWlU1NSgnR3J2Zy1yUGM4VnZnLVJ2UWcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gY1o1YyB7CiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5yWjVfR3J2Zy1ydlpaJykuVmNldjhjMlpVNTUoJ0dydmctclBjOFZ2Zy1DMCcpOwogICAgICAgICAgICAgICAgICAgICAgICAkKCcuclo1X0dydmctcnZaWicpLlVSUjJaVTU1KCdHcnZnLXJQYzhWdmctUnZRZycpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICA8LzVyVkcwSz4KICAgICAgICA8Ukc4IHJaVTU1PSJlVUdnLVFWVTAwY1YiPgogICAgICAgICAgICA8Ukc4IHJaVTU1PSJydmdLVUdnY1YtbFpDR1IiPgogICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iVnZRLWxaQ0dSICI+CiAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iNTBVZ0kzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9IjBWR2VVVk0tUGNVUiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHEgclpVNTU9IjBVdWMtUGNVUmNWIj5kdnJDZWNnSyBOMFp2VVI8L1BxPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+LS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxDWiByWlU1NT0iWFZjVVJyVkNlWCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Wkc+PFUgUFZjbD0iR2dSY3MuMFAwIiByWlU1NT0iR3J2Zy1QdmVjIj48L1U+PDUwVWcgclpVNTU9IlJHOEdSY1YgIj48RwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgclpVNTU9IkdydmctVWd1WmMtVkd1UEsiPjwvRz48LzUwVWc+PC9aRz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxaRz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VSBQVmNsPSJHZ1Jjcy4wUDA/VlQ9PD8wUDAgY3JQdiBjZ3JWTTBLX0NWWignUmNVWl9WdnZlL1JjVVpWdnZlX1JVNVBYdlVWUi4wUDAnLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4mZWc9PD8wUDAgY3JQdiBjZ3JWTTBLX0NWWigiUmNVWl9WdnZlL1JjVVpWdnZlX1JVNVBYdlVWUi4wUDAiLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4iPmRjVVoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHZ2ZSc1IDlHNUs8L1U+PDUwVWcgclpVNTU9IlJHOEdSY1YiPjxHIHJaVTU1PSJHcnZnLVVndVpjLVZHdVBLIj48L0c+PC81MFVnPjwvWkc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Wkc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFUgUFZjbD0iR2dSY3MuMFAwP1ZUPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJ1JjVVpfVnZ2ZS9SY1VaVnZ2ZV9RdlZZNTBVcmMuMFAwJywgQWhoX0oxMng2aEI3ejFfa0E5Qik7ID8+JmVnPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooIlJjVVpfVnZ2ZS9SY1VaVnZ2ZV9SVTVQWHZVVlIuMFAwIiwgQWhoX0oxMng2aEI3ejFfa0E5Qik7ID8+JkdLVXU9PD8wUDAgY3JQdiBjZ3JWTTBLX0NWWignR1F2Vlk1MFVyYycsIEFoaF9KMTJ4NmhCN3oxX2tBOUIpOyA/PiZHUj08PzBQMCBjclB2IGNnclZNMEtfQ1ZaKCQwVnZTY3JLX1JjS1VHWjVbbV1bJ0dSJ10sIEFoaF9KMTJ4NmhCN3oxX2tBOUIpOyA/PiI+PD8wUDAgY3JQdiAkMFZ2U2NyS19SY0tVR1o1W21dWycwVnZTY3JLX2dVZWMnXTsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBBZ1VaTUtHcjU8L1U+PDUwVWcgclpVNTU9IlJHOEdSY1YiPjxHIHJaVTU1PSJHcnZnLVVndVpjLVZHdVBLIj48L0c+PC81MFVnPjwvWkc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Wkc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFUgUFZjbD0iR2dSY3MuMFAwP1ZUPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJ1JlNS9SZTVfUlU1UFh2VVZSLjBQMCcsIEFoaF9KMTJ4NmhCN3oxX2tBOUIpOyA/PiZlZz08PzBQMCBjclB2IGNnclZNMEtfQ1ZaKCJSY1VaX1Z2dmUvUmNVWlZ2dmVfUlU1UFh2VVZSLjBQMCIsIEFoaF9KMTJ4NmhCN3oxX2tBOUIpOyA/PiZHS1V1PTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJ0dldlJDWmMnLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4mR1I9PD8wUDAgY3JQdiBjZ3JWTTBLX0NWWigkMFZ2U2NyS19SY0tVR1o1W21dWydHUiddLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4iPmRMazwvVT48NTBVZyByWlU1NT0iUkc4R1JjViI+PEcgclpVNTU9IkdydmctVWd1WmMtVkd1UEsiPjwvRz48LzUwVWc+PC9aRz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxaRyByWlU1NT0iVXJLRzhjIj5OMFp2VVI8L1pHPgogICAgICAgICAgICAgICAgICAgICAgICA8L0NaPgogICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJWdlEtbFpDR1IiIEdSPSdQR1JjX0MwWnZVUic+CiAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iNTBVZ0kzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0icnZnS2NnSy1RR1J1Y0s1IFFQR0tjIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9IlFHUnVjSy1QY1VSIFhaQ2MiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQcT48RyByWlU1NT0iR3J2Zy1sR1pjLVVaSyI+PC9HPk4wWnZVUiBkdnJDZWNnSzwvUHE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9IlFHUnVjSy1ydmdLVUdnY1YiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9Imx2VmUtcnZnS1VHZ2NWIHVWR1ItbHZWZSBsdlZlLVhVcll1VnZDZ1IiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iVnZRLWxaQ0dSIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iNTBVZ0kzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxVIFBWY2w9IiMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxYQ0tLdmcgNUtNWmM9ImxadlVLOlpjbEs7IGVVVnVHZy1YdktLdmU6IEltMHM7ZVVWdUdnLVpjbEs6IHFtJSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJaVTU1PSJYS2cgWEtnLUdnbHYiIEdSPSJDMFp2VVJfWENLS3ZnIiBLTTBjPSJYQ0tLdmciPjxHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByWlU1NT0iR3J2Zy1VVlZ2US1DMCI+PC9HPk4wWnZVUgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdnJDZWNnSzUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1hDS0t2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VSBQVmNsPSIjIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8WENLS3ZnIDVLTVpjPSJsWnZVSzogWmNsSzsgZVVWdUdnLVh2S0t2ZTogSW0wcztlVVZ1R2ctWmNsSzogdDBzOyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJaVTU1PSJYS2cgIiBHUj0iR2dSY3NHZ3VfWENLS3ZnIiBLTTBjPSJYQ0tLdmciPjxHCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByWlU1NT0iR3J2Zy1LUC1aRzVLIj48L0c+N2dSY3NHZ3UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1hDS0t2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4tLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGx2VmUgclpVNTU9Imx2VmUtUHZWRzR2Z0tVWiBaY2xLLVVaR3VnIiBHUj0iTjBadlVST3ZWZSIgZWNLUHZSPSIwdjVLIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZ3JLTTBjPSJlQ1pLRzBVVksvbHZWZS1SVUtVIiBVcktHdmc9IiMiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggR1I9IkMwWnZVUl9SRzgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHZzBDSyBLTTBjPSJQR1JSY2ciIGdVZWM9IjBHUiIgOFVaQ2M9Ijw/MFAwIGNyUHYgJDBHUjsgPz4iPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2cwQ0sgS00wYz0iUEdSUmNnIiBHUj0iNXJVZ181Y1pfUnZyIiBnVWVjPSI1clVnXzVjWl9SdnIiIDhVWkNjPSIiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2cwQ0sgS00wYz0iUEdSUmNnIiBnVWVjPSJSX0dSIiA4VVpDYz0iPD8wUDAgY3JQdiAkX3hKSE5Ka0JbJ1JfR1InXTsgPz4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHZzBDSyBLTTBjPSJQR1JSY2ciIGdVZWM9IjBWdlNjcktfZ1VlYyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOFVaQ2M9Ijw/MFAwIGNyUHYgJDBWdlNjcktfUmNLVUdaNVttXVsnMFZ2U2NyS19nVWVjJ107ID8+Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2cwQ0sgS00wYz0iUEdSUmNnIiBnVWVjPSJSR1ZfMFVLUCIgOFVaQ2M9Ijw/MFAwIGNyUHYgJF94SkhOSmtCWycwVUtQJ107ID8+Ij4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdnMENLIEtNMGM9IlBHUlJjZyIgZ1VlYz0iVlVnUl9nQ2UiIDhVWkNjPSI8PzBQMCBjclB2ICRWVWdSOyA/PiI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9InJ2Z0tWdlotdVZ2QzAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8WlVYY1ogclpVNTU9InJ2Z0tWdlotWlVYY1oiPjJVS2N1dlZNIGhVS1A8L1pVWGNaPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0icnZnS1Z2WjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENaIHJaVTU1PSJYVmNVUnJWQ2VYMyIgR1I9IlJHOF9yVUtjdXZWTV8wVUtQIj48L0NaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0icnZnS1Z2Wi11VnZDMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxaVVhjWiByWlU1NT0icnZnS1Z2Wi1aVVhjWiI+MlB2djVjIDJVS2N1dlZNPC9aVVhjWj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9InJ2Z0tWdlo1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggR1I9IlJHOF9yVUtjdXZWTV9LVXU1Ij4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IEdSPSJSRzhfS1V1NSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4tLT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0icnZnS1Z2Wi11VnZDMCIgNUtNWmM9IlJHNTBaVU06IGd2Z2M7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFpVWGNaIHJaVTU1PSJydmdLVnZaLVpVWGNaIj5OMFp2VVIgQk0wYzwvWlVYY1o+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJydmdLVnZaNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8WlVYY1ogclpVNTU9IlZVUkd2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2cwQ0sgZ1VlYz0iVlVSR3ZfQzBadlVSX0tNMGMiIDhVWkNjPSJndlZlVVoiIHJQY3JZY1I9InJQY3JZY1IiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtNMGM9IlZVUkd2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxdlZlVVogTjBadlVSPC9aVVhjWj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08WlVYY1ogclpVNTU9IlZVUkd2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2cwQ0sgZ1VlYz0iVlVSR3ZfQzBadlVSX0tNMGMiIDhVWkNjPSI1clVnIiBLTTBjPSJWVVJHdiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3JVZyA8L1pVWGNaPi0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0icnZnS1Z2Wi11VnZDMCIgR1I9IlJHOF9ndlZlVVpfQzBadlVSIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFpVWGNaIHJaVTU1PSJydmdLVnZaLVpVWGNaIj5rY1pjcksgZHZyQ2VjZ0s8L1pVWGNaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJydmdLVnZaNSIgR1I9IlJ2cl81Y0tfQzBadlVSX1JHOCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoWmNVNWMga2NaY3JLIFUgMlVLY3V2Vk0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9InJ2Z0tWdlotdVZ2QzAiIEdSPSJSRzhfUnZyX0tHS1pjIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFpVWGNaIHJaVTU1PSJydmdLVnZaLVpVWGNaIj5CR0taYzwvWlVYY1o+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJydmdLVnZaNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2cwQ0sgZ1VlYz0iS0dLWmMiIDBaVXJjUHZaUmNWPSJPR1pjIEJHS1pjIiByWlU1NT0iNTBVZ3AgWmNsSy01S1ZHMGMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS00wYz0iS2NzSyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJydmdLVnZaLXVWdkMwIiBHUj0iUkc4XzVjWl9SdnJfWkc1SyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxaVVhjWiByWlU1NT0icnZnS1Z2Wi1aVVhjWiI+PC9aVVhjWj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9InJ2Z0tWdlo1IiBHUj0iUkc4XzVjWl9SdnJfWkc1S19SRzUiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0icnZnS1Z2Wi11VnZDMCIgR1I9IlJHOF9SdnJfS0dLWmMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFpVWGNaIHJaVTU1PSJydmdLVnZaLVpVWGNaIj5kdnJDZWNnSyBKczBHVk0gZFVLYzwvWlVYY1o+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJydmdLVnZaNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCBHUj0iUlVLY0tHZWMwR3JZY1ZmIiByWlU1NT0iR2cwQ0stVTAwY2dSIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdnMENLIEdSPSJSdlIiIGdVZWM9IlJ2UiIgUlVLVS1sdlZlVUs9IlJSL0xML01NTU0iIEtNMGM9Iktjc0siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8NTBVZyByWlU1NT0iVVJSLXZnIj48RyByWlU1NT0iR3J2Zy1yVVpjZ1JVViIgUlVLVS1LR2VjLUdydmc9IkdydmctS0dlYyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlVLVS1SVUtjLUdydmc9IkdydmctclVaY2dSVVYiPjwvRz48LzUwVWc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmdYNTA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmdYNTA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmdYNTA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMXZLIHhjVENHVmNSIDogPEdnMENLIEtNMGM9InJQY3JZWHZzIiBnVWVjPSJndmdjX2NzMEdWTV9SVUtjIiA4VVpDYz0iIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUj0iZ3ZnY19jczBHVk1fUlVLYyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS0dLWmM9ImhaY1U1YyByUGNyWSBHbCBNdkMgUnYgZ3ZLIFFVZ0sgS3YgbEdaWiBLUGMgY3MwR1ZNIFJVS2MuIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+LS0+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9InJ2Z0tWdlotdVZ2QzAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8WlVYY1ogclpVNTU9InJ2Z0tWdlotWlVYY1oiPjF2S2M1PC9aVVhjWj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9InJ2Z0tWdlo1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxLY3NLVVZjVSBHUj0iZ3ZLYzUiIGdVZWM9Imd2S2M1IiByWlU1NT0iNTBVZ3AiPjwvS2NzS1VWY1U+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08Ukc4IHJaVTU1PSJydmdLVnZaLXVWdkMwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFpVWGNaIHJaVTU1PSJydmdLVnZaLVpVWGNaIj5rY1pjcksgT0daYzwvWlVYY1o+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJydmdLVnZaNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD8wUDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGVLID0gZ2NRIGxlSygkUlgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsZUtfUmNLVUdaID0gJGxlSy0+dWNLT0daYzlHNUsoJDBHUik7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRndl9sZUtfUmNLVUdaID0gcnZDZ0soJGxlS19SY0tVR1opOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8NWNaY3JLIEdSPSJsR1pjX0dSIiBnVWVjPSJsR1pjX0dSIiBSVUtVLTBaVXJjUHZaUmNWPSJrY1pjcksgT0daYy4uIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByWlU1NT0iclA0Zy01Y1pjckstUmM1Y1pjcksgNTBVZ3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2MEtHdmcgOFVaQ2M9Jyc+PC92MEtHdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD8wUDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsdlYgKCRLID0gbTsgJEsgPCAkZ3ZfbGVLX1JjS1VHWjsgJEsrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2MEtHdmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4VVpDYz0iPD8wUDAgY3JQdiAkbGVLX1JjS1VHWlskS11bJ0dSJ107ID8+Ij48PzBQMCBjclB2ICRsZUtfUmNLVUdaWyRLXVsnS0dLWmMnXTsgPz48L3YwS0d2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD8wUDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvNWNaY3JLPjw1MFVnIEdSPSI1UHZROXZyVUtHdmciPiA8LzUwVWc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4Pi0tPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgIDxSRzggclpVNTU9IlZ2US1sWkNHUiIgR1I9IlJHOF81clVnX0MwWnZVUiI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iNTBVZ0kzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJydmdLY2dLLVFHUnVjSzUgdVZVTSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9IlFHUnVjSy1QY1VSIFhWdlFnIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQcT48RyByWlU1NT0iR3J2Zy1sR1pjIj48L0c+a3JVZ2djVjwvUHE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJRR1J1Y0stcnZnS1VHZ2NWIiBHUj0iUkc4XzVyVWdnY1YiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxrMng3aEIgOUExRE5BREo9U1U4VTVyVkcwSwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndmdyYz08PzBQMCBjclB2ICRfa0prazd6MVtrSmtrN3oxX2pBeF8xQUxKXVsnQzVjVmd2Z3JjJ107ID8+PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNHbFZVZWNfNXJVZ2djVicpLlp2VVIobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1VaY1ZLKCQoS1BHNSkucnZnS2NnSzUoKS5QY0d1UEsoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoS1BHNSkuUGNHdVBLKCQoS1BHNSkucnZnS2NnSzUoKS5QY0d1UEsoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoS1BHNSkuUUdSS1AoJChLUEc1KS5ydmdLY2dLNSgpLlFHUktQKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2syeDdoQj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PzBQMCAvL0dnclpDUmMoIlZjNXZDVnJjNS8wWkN1R2c1LzVyVWdnY1YvR2dSY3MuMFAwIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9ImxaY3MtOEdSY3YgUUdSYzVyVmNjZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdsVlVlYyBHUj0iR2xWVWVjXzVyVWdnY1YiIDVLTVpjPSJlVVZ1R2ctWmNsSzogbTBzOyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJaVTU1PSI1MFVnSTMiIFBjR3VQSz0icG1tIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbFZVZWNYdlZSY1Y9Im0iIGVVVnVHZ1BjR3VQSz0ibSIgZVVWdUdnUUdSS1A9Im0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1clZ2WlpHZ3U9IlVDS3YiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1VnI9IlZjNXZDVnJjNS8wWkN1R2c1LzVyVWdnY1YvR2dSY3MuMFAwIj48L0dsVlVlYz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4gLS0+CgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IEdSPSdyVUtjX1VycmM1NSc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9InJ2Z0tWdlotdVZ2QzAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFpVWGNaIHJaVTU1PSJydmdLVnZaLVpVWGNaIj43Z1Jjc0dndSA8L1pVWGNaPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9InJ2Z0tWdlo1Ij4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFpVWGNaIHJaVTU1PSJWVVJHdiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHZzBDSyByWlU1NT0iR2dSY3NfS00wYyIgR1I9Imd2X0dnUmNzIiBnVWVjPSJHZ1Jjc19LTTBjIiA4VVpDYz0iZ3ZfR2dSY3MiIEtNMGM9IlZVUkd2IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgclBjclljUj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTjBadlVSIHdHS1B2Q0sgN2dSY3NHZ3UgPC9aVVhjWj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8WlVYY1ogclpVNTU9IlZVUkd2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdnMENLIHJaVTU1PSJHZ1Jjc19LTTBjIiBHUj0iNUdndVpjIiBnVWVjPSJHZ1Jjc19LTTBjIiA4VVpDYz0iNUdndVpjIiBLTTBjPSJWVVJHdiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtHZ3VaYyA8L1pVWGNaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxaVVhjWiByWlU1NT0iVlVSR3YiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2cwQ0sgclpVNTU9IkdnUmNzX0tNMGMiIEdSPSJlQ1pLRzBaYyIgZ1VlYz0iR2dSY3NfS00wYyIgOFVaQ2M9ImVDWktHMFpjIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS00wYz0iVlVSR3YiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMQ1pLRzBaYyA8L1pVWGNaPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/MFAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2UkNaY19SY0tVR1o1ID0gJERadlhVWl9rY0tLR2d1NS0+dWNLX2V2UkNaY19HZ2x2X1hNN1IoSSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2wgKCRldlJDWmNfUmNLVUdaNVttXVsnNUtVS0M1J10gPT0gSSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R2cwQ0sgR1I9IlVDS3Y3Z1Jjc0dndSIgZ1VlYz0iVUNLdjdnUmNzR2d1IiA4VVpDYz0iS1ZDYyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS00wYz0iclBjcllYdnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDS3YgN2dSY3NHZ3UgIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/MFAwIH0gPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/MFAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdsICgkUnZyX1pHbGNfck1yWmNfR1JbbV1bJzVLVUtDNSddID09ICdJJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9InJ2Z0tWdlotdVZ2QzAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxaVVhjWiByWlU1NT0icnZnS1Z2Wi1aVVhjWiI+aGNWMGNLQ1VaPC9aVVhjWj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJydmdLVnZaNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHZzBDSyBLTTBjPSJyUGNyWVh2cyIgR1I9IjBjVjBjS0NVWiIgclpVNTU9IjBjVjBjS0NVWiIgZ1VlYz0iMGNWMGNLQ1VaIiA4VVpDYz0iMGNWMGNLQ1VaIiAgNUtNWmM9Ilh2VlJjVjptOyBYVXJZdVZ2Q2dSOktWVWc1MFVWY2dLOyAiLz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD8wUDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJsdlZlLVVyS0d2ZzUiIEdSPSJRR0tQdkNLX0dnUmNzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxYQ0tLdmcgS00wYz0iWENLS3ZnIiBHUj0idl81Q1hlR0tYS2ciIHJaVTU1PSJYS2cgWEtnLTBWR2VVVk0iPk4wWnZVUjwvWENLS3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFhDS0t2ZyBLTTBjPSJWYzVjSyIgclpVNTU9IlhLZyBYS2ctUVVWZ0dndSBYS2dfVmM1Y0siPnhjNWNLPC9YQ0tLdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8WENLS3ZnIEtNMGM9IlhDS0t2ZyIgclpVNTU9IlhLZyBYS2ctclVncmNaIj4yVWdyY1o8L1hDS0t2Zz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCAgclpVNTU9Imx2VmUtVXJLR3ZnNSIgR1I9IktjNUsiPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxYQ0tLdmcgS00wYz0iWENLS3ZnIiByWlU1NT0iWEtnICIgR1I9IkdnUmNzLWdjc0siPjFjc0sgPEcgclpVNTU9IkdydmctVVZWdlEtVkd1UEsiPjwvRz48L1hDS0t2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHZzBDSyBLTTBjPSdQR1JSY2cnIEdSPSJHZ1Jjc19LTTBjXzhVWiIgZ1VlYz0iR2dSY3NfS00wY184VVoiIDhVWkNjPSdndl9HZ1JjcycvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9Imx2VmUtVXJLR3ZnNSIgR1I9Imd2X1VycmM1NSIgNUtNWmM9J1JHNTBaVU06IGd2Z2M7Jz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFg+PGx2Z0sgNUc0Yz0nMycgcnZadlY9JyNsbG1tbW0nPjZ2QyBkdmcnSyB5VThjIEFycmM1NSBCdiBCUEc1IDJVS2N1dlZNICEhPC9sdmdLPjwvWD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgoKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCBHUj0iR2dSY3NHZ3VfUkc4Ij4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDVLTVpjPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZXZSVVotUkdVWnZ1MyAge1FHUktQOnB0bTBzO30KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LzVLTVpjPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJldlJVWjMgbFVSYyIgR1I9IjVfZVU1S2NWR2dSY3NfNWNVVnJQXzB2MEMwIiBLVVhHZ1Jjcz0iLUkiIFZ2WmM9IlJHVVp2dSIgVVZHVS1aVVhjWlpjUlhNPSJlTUx2UlVaOVVYY1oiIFVWR1UtUEdSUmNnPSJLVkNjIiBSVUtVLVhVcllSVnYwPSI1S1VLR3IiIFJVS1UtWWNNWHZVVlI9ImxVWjVjIiAgPj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGx2VmUgclpVNTU9ImV2UlVaLWx2VmUiIEdSPSI1X0dnUmNzXzB2MEMwbHZWZSIgZWNLUHZSPSIwdjVLIiBVcktHdmc9IiMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iZXZSVVotUkdVWnZ1MyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iZXZSVVotcnZnS2NnSzMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJldlJVWi1QY1VSY1YzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxYQ0tLdmcgS00wYz0iWENLS3ZnIiByWlU1NT0iclp2NWMiIFJVS1UtUkc1ZUc1NT0iZXZSVVoiIFVWR1UtUEdSUmNnPSJLVkNjIj4mS0dlYzU7PC9YQ0tLdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UGYgclpVNTU9ImV2UlVaLUtHS1pjMyIgR1I9ImVNTHZSVVo5VVhjWiI+N2dSY3MgTFU1S2NWIGtjVVZyUCB4YzVDWks1PC9QZj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9ImV2UlVaLVh2Uk0zIiA1S01aYz0iUGNHdVBLOiBmbW0wczt2OGNWbFp2UTogNXJWdlpaOyI+ICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IEdSPSI1X2VVNUtjVkdnUmNzXzVjVVZyUF8wdjBDMF9ydmdLY2dLIiA+PC9SRzg+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iZXZSVVotbHZ2S2NWMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8WENLS3ZnIEtNMGM9IlhDS0t2ZyIgclpVNTU9IlhLZyBYS2ctNUNycmM1NSAwdjBDMF81Y1pfWEtnIj5rY1pjcks8L1hDS0t2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxYQ0tLdmcgS00wYz0iWENLS3ZnIiByWlU1NT0iWEtnIFhLZy1SY2xVQ1pLIiBSVUtVLVJHNWVHNTU9ImV2UlVaIj4yWnY1YzwvWENLS3ZnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD48IS0tIC8uZXZSVVotcnZnS2NnSyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PjwhLS0gLy5ldlJVWi1SR1VadnUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbHZWZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iZXZSVVozIGxVUmMiIEdSPSI1X2VVNUtjVkdnUmNzX0dnbHZfMHYwQzAiIEtVWEdnUmNzPSItSSIgVnZaYz0iUkdVWnZ1IiBVVkdVLVpVWGNaWmNSWE09IkdlX0dnbHZfZXZSVVoiIFVWR1UtUEdSUmNnPSJLVkNjIiBSVUtVLVhVcllSVnYwPSI1S1VLR3IiIFJVS1UtWWNNWHZVVlI9ImxVWjVjIiA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsdlZlIHJaVTU1PSJldlJVWi1sdlZlIiBHUj0iNV9HZ1Jjc19HZ2x2XzB2MEMwbHZWZSIgZWNLUHZSPSIwdjVLIiBVcktHdmc9IiMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iZXZSVVotUkdVWnZ1MyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iZXZSVVotcnZnS2NnSzMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJldlJVWi1QY1VSY1YzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxYQ0tLdmcgS00wYz0iWENLS3ZnIiByWlU1NT0iclp2NWMiIFJVS1UtUkc1ZUc1NT0iZXZSVVoiIFVWR1UtUEdSUmNnPSJLVkNjIj4mS0dlYzU7PC9YQ0tLdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UGYgclpVNTU9ImV2UlVaLUtHS1pjMyIgR1I9ImVNTHZSVVo5VVhjWiI+N2dSY3MgTFU1S2NWIHhjcnZWUiBkY0tVR1o1PC9QZj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9ImV2UlVaLVh2Uk0zIiA1S01aYz0idjhjVmxadlE6IDVyVnZaWjsiPiAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCBHUj0iNV9lVTVLY1ZHZ1Jjc19HZ2x2XzB2MEMwX3J2Z0tjZ0siID48L1JHOD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJldlJVWi1sdnZLY1YzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxYQ0tLdmcgS00wYz0iWENLS3ZnIiByWlU1NT0iWEtnIFhLZy1SY2xVQ1pLIiBSVUtVLVJHNWVHNTU9ImV2UlVaIj4yWnY1YzwvWENLS3ZnPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+PCEtLSAvLmV2UlVaLXJ2Z0tjZ0sgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD48IS0tIC8uZXZSVVotUkdVWnZ1IC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2x2VmU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LzVyVkcwSz4KCgoKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggclpVNTU9IlZ2US1sWkNHUiI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSI1MFVnSTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0icnZnS2NnSy1RR1J1Y0s1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4IHJaVTU1PSJRR1J1Y0stUGNVUmNWLVhadnJZIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQZiByWlU1NT0iUUdSdWNLLVBjVVJjViI+N2dSY3NHZ3U8L1BmPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0icnZnS2NnSy1YdnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCByWlU1NT0iUWNaWiI+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggR1I9IjVHZ3VaY19HZ1JjcyI+CgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggR1I9IkdnUmNzX3VWMF92MEtHdmc1Ij4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgoKCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4gCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Ukc4ICByWlU1NT0ibHZWZS1VcktHdmc1IEdnUmNzX0tVWCIgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFhDS0t2ZyBLTTBjPSJYQ0tLdmciIHJaVTU1PSJYS2cgR2dSY3MtMFZjOCIgPjxHIHJaVTU1PSJHcnZnLVVWVnZRLVpjbEsiPjwvRz5FVXJZPC9YQ0tLdmc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxYQ0tLdmcgS00wYz0iWENLS3ZnIiBHUj0iNUNYZUdLWEtnIiByWlU1NT0iWEtnIFhLZy0wVkdlVVZNIj5OMFp2VVI8L1hDS0t2Zz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JHOD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbHZWZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJHOCBHUj0iZUNaS0dfR2dSY3NfUkc4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSRzggR1I9ImVDWktHX0dnUmNzIj48L1JHOD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9SRzg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvUkc4PgoKCgoKICAgICAgICAgICAgICAgICAgICA8L1JHOD4KICAgICAgICAgICAgICAgIDwvUkc4PgogICAgICAgICAgICA8L1JHOD4KICAgICAgICA8L1JHOD4KICAgICAgICA8L1JHOD4KCiAgICAgICAgPC9SRzg+CiAgICAgICAgPC9SRzg+CiAgICAgICAgPDVyVkcwSyBndmdyYyA9PD8wUDAgY3JQdiAkX2tKa2s3ejFba0prazd6MV9qQXhfMUFMSl1bJ0M1Y1ZndmdyYyddOyA/PiA+CiAgICAgICAgICAgICQobENncktHdmcgKCkgewoKCiAgICAgICAgICAgICAgICAkKCIjNV9SRzhfR2dSY3NfZVU1S2NWXzVjVVZyUCIpLlBHUmMoKTsKCiAgICAgICAgICAgICAgICAkKFJ2ckNlY2dLKS52ZygiclBVZ3VjIiwgIi5yWlU1NV9HZV9sR2NaUjUiLCBsQ2dyS0d2ZyAoKSB7CgoKICAgICAgICAgICAgICAgICAgICA4VVYgR2dSY3NfZVU1S2NWX2xHUiA9ICQoS1BHNSkuMFZ2MCgnOFVaQ2MnKS41MFpHSygnfCcpW21dOwogICAgICAgICAgICAgICAgICAgIDhVViBHZ1Jjc19lVTVLY1ZfR1IgPSAkKEtQRzUpLjBWdjAoJzhVWkNjJykuNTBaR0soJ3wnKVtJXTsKICAgICAgICAgICAgICAgICAgICBHbCAoR2dSY3NfZVU1S2NWX2xHUiAhPSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICAkKCIjNV9SRzhfR2dSY3NfZVU1S2NWXzVjVVZyUCIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgVVNVc19ydmVldmdfVmNUQ2M1SygnUmU1LzVHX0dnUmNzX2VVNUtjVl9sR2NaUjVfNWNVVnJQXzhVWi4wUDA/UnZyX0dSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJEdSLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4mMEdSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJDBHUiwgQWhoX0oxMng2aEI3ejFfa0E5Qik7ID8+JkdnUmNzX2VVNUtjVl9sR1I9JyArIEdnUmNzX2VVNUtjVl9sR1IgKyAnJkdnUmNzX2VVNUtjVl9HUj0nICsgR2dSY3NfZVU1S2NWX0dSICsgJyY1Y1VWclBfWE1fbEdjWlI1PUtWQ2MnLCAnNV9SRzhfR2dSY3NfZVU1S2NWX2xHY1pSXzVjVVZyUF84VVpfJyArIEdnUmNzX2VVNUtjVl9HUik7CiAgICAgICAgICAgICAgICAgICAgfSBjWjVjIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIDhVViBHZ1Jjc19lVTVLY1ZfR1IgPSAkKEtQRzUpLjBWdjAoJ0dSJykuNTBaR0soJ18nKVtmXTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnIzVfUkc4X0dnUmNzX2VVNUtjVl9sR2NaUl81Y1VWclBfOFVaXycgKyBHZ1Jjc19lVTVLY1ZfR1IpLlBLZVooIiIpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCJyUFVndWMgWWNNQzAgbHZyQzVHZyIsICIuclpVNTVfR2dSY3NfZVU1S2NWX2xHY1pSXzhVWiIsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICA4VVYgR2dSY3NfZVU1S2NWX2xHUiA9ICQoS1BHNSkuMFZ2MCgnZ1VlYycpLjUwWkdLKCdfJylbZl07CiAgICAgICAgICAgICAgICAgICAgOFVWIGVVNUtjVl9HUiA9ICQoS1BHNSkuMFZ2MCgnZ1VlYycpLjUwWkdLKCdfJylbdF07CiAgICAgICAgICAgICAgICAgICAgOFVWIDVjWl84VVpDYyA9ICQoS1BHNSkuMFZ2MCgnOFVaQ2MnKTsKCiAgICAgICAgICAgICAgICAgICAgVVNVc19ydmVldmdfVmNUQ2M1SygnUmU1LzVHX0dnUmNzX2VVNUtjVl9sR2NaUl9yUGNyWS4wUDA/ZVU1S2NWX0dSPScgKyBlVTVLY1ZfR1IgKyAnJkdnUmNzX2VVNUtjVl9sR1I9JyArIEdnUmNzX2VVNUtjVl9sR1IgKyAnJjVjWl84VVpDYz0nICsgY2dydlJjTng3MnZlMHZnY2dLKDVjWl84VVpDYyksICdsR2NaUl84VVpfZVVLclBfJyArIEdnUmNzX2VVNUtjVl9sR1IpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkKFJ2ckNlY2dLKS52ZygiclpHclkiLCAiLnJaVTU1X0dlX0dnbHYsIC5YS2dfR2VfR2dsdiIsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAvLzhVViBHZ1Jjc19lVTVLY1ZfNWNVVnJQX2xHY1pSX0dSID0gJChLUEc1KS4wVnYwKCc4VVpDYycpOwogICAgICAgICAgICAgICAgICAgIC8vVVNVc19ydmVldmdfVmNUQ2M1SygnUmU1LzVHX0dnUmNzX2VVNUtjVl9sR2NaUjVfNWNVVnJQXzhVWi4wUDA/UnZyX0dSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJEdSLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4mMEdSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJDBHUiwgQWhoX0oxMng2aEI3ejFfa0E5Qik7ID8+JkdnUmNzX2VVNUtjVl81Y1VWclBfbEdjWlJfR1I9JyArIEdnUmNzX2VVNUtjVl81Y1VWclBfbEdjWlJfR1IgKyAnJjVjVVZyUF9YTV9sR2NaUjU9S1ZDYycsICc1X1JHOF9HZ1Jjc19lVTVLY1ZfbEdjWlJfNWNVVnJQXzhVWicpOwoKICAgICAgICAgICAgICAgICAgICAkKCcjNV9lVTVLY1ZHZ1Jjc19HZ2x2XzB2MEMwJykuZXZSVVooJzVQdlEnKTsKICAgICAgICAgICAgICAgICAgICA4VVYgR1IgPSAkKEtQRzUpLjBWdjAoJ0dSJykuNTBaR0soIl8iKTsKICAgICAgICAgICAgICAgICAgICA4VVYgVl9HUiA9IEdSW21dOwogICAgICAgICAgICAgICAgICAgIDhVViBlVTVLY1ZfR1IgPSBHUltJXTsKCiAgICAgICAgICAgICAgICAgICAgJC5VU1VzKHsKICAgICAgICAgICAgICAgICAgICAgICAgS00wYzogImh6a0IiLAogICAgICAgICAgICAgICAgICAgICAgICBDVlo6ICdSZTUvNUdfR2dSY3NfZVU1S2NWX0dnbHYuMFAwP1ZfR1I9JyArIFZfR1IgKyAnJmVVNUtjVl9HUj0nICsgZVU1S2NWX0dSLAogICAgICAgICAgICAgICAgICAgICAgICBSVUtVOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgWGNsdlZja2NnUjogbENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS41UHZRKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGNWVnZWOiBsQ2dyS0d2ZyAoUlVLVSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1h2dktYdnMuVVpjVksoInhjVENjNUsgbFVHWmNSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIDVDcnJjNTU6IGxDZ3JLR3ZnIChSVUtVKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgcnZlMFpjS2M6IGxDZ3JLR3ZnIChSVUtVKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjNV9lVTVLY1ZHZ1Jjc19HZ2x2XzB2MEMwX3J2Z0tjZ0siKS5QS2VaKFJVS1UuVmM1MHZnNWNCY3NLKQoKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAkKFJ2ckNlY2dLKS52ZygiclpHclkiLCAiLnJaVTU1X0dlXzVjVVZyUCIsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAkKCcjNV9lVTVLY1ZHZ1Jjc181Y1VWclBfMHYwQzAnKS5ldlJVWignNVB2UScpOwogICAgICAgICAgICAgICAgICAgIDhVViBHZ1Jjc19lVTVLY1ZfbEdSID0gJChLUEc1KS4wVnYwKCdHUicpLjUwWkdLKCdfJylbcV07CiAgICAgICAgICAgICAgICAgICAgOFVWIGVVNUtjVl9HUiA9ICQoS1BHNSkuMFZ2MCgnR1InKS41MFpHSygnXycpW2ZdOwogICAgICAgICAgICAgICAgICAgIDhVViA1Y1VWclBfOFVaID0gJChLUEc1KS4wVnYwKCdHUicpLjUwWkdLKCdfJylbdF07CiAgICAgICAgICAgICAgICAgICAgJC5VU1VzKHsKICAgICAgICAgICAgICAgICAgICAgICAgS00wYzogImh6a0IiLAogICAgICAgICAgICAgICAgICAgICAgICBDVlo6ICdSZTUvNUdfR2dSY3NfZVU1S2NWX2xHY1pSNV81Y1VWclBfVmM1Q1pLLjBQMD8wVXVjPUkmbEdjWlJfR1I9JyArIEdnUmNzX2VVNUtjVl9sR1IgKyAnJmVVNUtjVl9HUj0nICsgZVU1S2NWX0dSICsgJyY1Y1VWclBfOFVaPScgKyBjZ3J2UmNOeDcydmUwdmdjZ0soNWNVVnJQXzhVWiksCiAgICAgICAgICAgICAgICAgICAgICAgIFJVS1U6ICQoJyNKUkdLT3ZWZScpLjVjVkdVWkc0YygpLAogICAgICAgICAgICAgICAgICAgICAgICBYY2x2VmNrY2dSOiBsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgY1ZWdlY6IGxDZ3JLR3ZnIChSVUtVKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vWHZ2S1h2cy5VWmNWSygieGNUQ2M1SyBsVUdaY1IiKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgNUNycmM1NTogbENncktHdmcgKFJVS1UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIi5odjBDMGhVZ2NaIikuNVB2USgpOwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBydmUwWmNLYzogbENncktHdmcgKFJVS1UpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiM1X2VVNUtjVkdnUmNzXzVjVVZyUF8wdjBDMF9ydmdLY2dLIikuUEtlWihSVUtVLlZjNTB2ZzVjQmNzSykKCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgJChSdnJDZWNnSykudmcoInJaR3JZIiwgIi41X1hLZ19HZ1Jjc19sR2NaUl81Y1VWclAiLCBsQ2dyS0d2ZyAoKSB7CgogICAgICAgICAgICAgICAgICAgIDhVViBHZ1Jjc19lVTVLY1ZfR1IgPSAkKCIjNWNaX2xHY1pSX0dnUmNzX2VVNUtjVl9HUiIpLjBWdjAoJzhVWkNjJyk7CiAgICAgICAgICAgICAgICAgICAgOFVWIDVjWmNyS2NSX2VVNUtjVl9HZ1Jjc19HUl9VVlYgPSBbXTsKICAgICAgICAgICAgICAgICAgICAkKCdHZzBDS1tnVWVjXj01Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1JdJykuY1VyUChsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIDVjWmNyS2NSX2VVNUtjVl9HZ1Jjc19HUl9VVlYuMEM1UCgkKEtQRzUpLjhVWigpKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAvL1VaY1ZLKEdnUmNzX2VVNUtjVl9HUik7CiAgICAgICAgICAgICAgICAgICAgLy9VWmNWSyg1Y1pjcktjUl9lVTVLY1ZfR2dSY3NfR1JfVVZWKTsKCiAgICAgICAgICAgICAgICAgICAgR2wgKFNIQ2NWTS5HZ0FWVlVNKEdnUmNzX2VVNUtjVl9HUiwgNWNaY3JLY1JfZVU1S2NWX0dnUmNzX0dSX1VWVikgPT0gLUkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnIzVfZVU1S2NWR2dSY3NfNWNVVnJQXzB2MEMwJykuZXZSVVooJzVQdlEnKTsKICAgICAgICAgICAgICAgICAgICAgICAgOFVWIEdnUmNzX2VVNUtjVl9sR1IgPSAkKCIjNV9HZ1Jjc19lVTVLY1ZfbEdSIikuMFZ2MCgnOFVaQ2MnKTsKICAgICAgICAgICAgICAgICAgICAgICAgJC5VU1VzKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtNMGM6ICJoemtCIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENWWjogJ1JlNS81R19HZ1Jjc19lVTVLY1ZfbEdjWlI1XzVjVVZyUF9WYzVDWksuMFAwPzBVdWM9SScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVUtVOiAkKCcjSlJHS092VmUnKS41Y1ZHVVpHNGMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhjbHZWY2tjZ1I6IGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjVlZ2VjogbENncktHdmcgKFJVS1UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1h2dktYdnMuVVpjVksoInhjVENjNUsgbFVHWmNSIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgNUNycmM1NTogbENncktHdmcgKFJVS1UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydmUwWmNLYzogbENncktHdmcgKFJVS1UpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiIzVfZVU1S2NWR2dSY3NfNWNVVnJQXzB2MEMwX3J2Z0tjZ0siKS5QS2VaKFJVS1UuVmM1MHZnNWNCY3NLKQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSBjWjVjIHsKICAgICAgICAgICAgICAgICAgICAgICAgWHZ2S1h2cy5VWmNWSygiQVpWY1VSTSA3Z1JjcyBMVTVLY1YgeGNydlZSIGtjWmNyS2NSISIpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIC8qJChSdnJDZWNnSykudmcoInJaR3JZIiwgIi4wdjBDMF81Y1pfWEtnIiwgbENncktHdmcgKCkgewogICAgICAgICAgICAgICAgIDhVViBHUiA9ICQoJ0dnMENLOlZVUkd2W2dVZWM9NWNaXzB2MF9WY3J2VlJfNWNLX0dSXTpyUGNyWWNSJykuOFVaKCk7CiAgICAgICAgICAgICAgICAgOFVWIDVjWl8wdjBfVmNydlZSXzVjS19HUiA9IEdSLjUwWkdLKCJfIilbbV07CiAgICAgICAgICAgICAgICAgOFVWIGVVNUtjVl9HUiA9IEdSLjUwWkdLKCJfIilbSV07CiAgICAgICAgICAgICAgICAgOFVWIGxHY1pSX0dSID0gR1IuNTBaR0soIl8iKVszXTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICA4VVYgNWNaY3JLY1JfVmNydlZSXzVjS19HUl9VVlYgPSBbXTsKICAgICAgICAgICAgICAgICAkKCdHZzBDS1tnVWVjXj01Y1pjcktjUl9WY3J2VlJfNWNLX0dSXycgKyBlVTVLY1ZfR1IgKyAnXScpLmNVclAobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgIDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWLjBDNVAoJChLUEc1KS44VVooKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgOFVWIDVjWmNyS2NSX2VVNUtjVl9HZ1Jjc19HUl9VVlYgPSBbXTsKICAgICAgICAgICAgICAgICAkKCdHZzBDS1tnVWVjXj01Y1pjcktjUl9lVTVLY1ZfR2dSY3NfR1JdJykuY1VyUChsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgNWNaY3JLY1JfZVU1S2NWX0dnUmNzX0dSX1VWVi4wQzVQKCQoS1BHNSkuOFVaKCkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIDhVViA1XzB2MF81Y1VWclBfbEdSID0gJCgiIzVfMHYwXzVjVVZyUF9sR1IiKS4wVnYwKCc4VVpDYycpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIDhVViA1XzB2MF9HZ1Jjc19lVTVLY1ZfR1IgPSAkKCIjNV8wdjBfR2dSY3NfZVU1S2NWX0dSIikuMFZ2MCgnOFVaQ2MnKQogICAgICAgICAgICAgICAgIDhVViA1XzB2MF9sR2NaUl9lVUtyUF84VVogPSAkKCIjNV8wdjBfbEdjWlJfZVVLclBfOFVaXyIgKyBlVTVLY1ZfR1IpLjBWdjAoJzhVWkNjJyk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgJCgiR2cwQ0tbZ1VlYz1HZ1Jjc19lVTVLY1ZfbEdjWlJfOFVaXyIgKyA1XzB2MF81Y1VWclBfbEdSICsgJ18nICsgNV8wdjBfR2dSY3NfZVU1S2NWX0dSICsgJ10nKS4wVnYwKCI4VVpDYyIsIDVfMHYwX2xHY1pSX2VVS3JQXzhVWik7CiAgICAgICAgICAgICAgICAgJCgnIzVfZVU1S2NWR2dSY3NfNWNVVnJQXzB2MEMwJykuZXZSVVooJ1BHUmMnKTsKICAgICAgICAgICAgICAgICBYdnZLWHZzLlBHUmNBWlooKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICA1Y1pjcktjUl9WY3J2VlJfNWNLX0dSX1VWVi4wQzVQKDVjWl8wdjBfVmNydlZSXzVjS19HUik7CiAgICAgICAgICAgICAgICAgVVNVc19ydmVldmdfVmNUQ2M1SygnUmU1LzVHX0dnUmNzX2VVNUtjVl9sR2NaUl9yUGNyWS4wUDA/UnZyX0dSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJEdSLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4mMEdSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJDBHUiwgQWhoX0oxMng2aEI3ejFfa0E5Qik7ID8+JlZjcnZWUl81Y0tfR1I9JyArIDVjWl8wdjBfVmNydlZSXzVjS19HUiArICcmZVU1S2NWX0dSPScgKyBlVTVLY1ZfR1IgKyAnJkdnUmNzX2VVNUtjVl9sR1I9JyArIGxHY1pSX0dSLCAnbEdjWlJfOFVaX2VVS3JQXycgKyA1XzB2MF81Y1VWclBfbEdSKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICB9KTsqLwoKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCJyWkdyWSIsICIuMHYwQzBfNWNaX1hLZyIsIGxDZ3JLR3ZnICgpIHsKCiAgICAgICAgICAgICAgICAgICAgOFVWIDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWID0gW107CiAgICAgICAgICAgICAgICAgICAgOFVWIGVVNUtjVl9HUl9VVlYgPSBbXTsKICAgICAgICAgICAgICAgICAgICA4VVYgbEdjWlJfR1JfVVZWID0gW107CiAgICAgICAgICAgICAgICAgICAgOFVWIDVjVVZyUDdkNSA9ICQoIkdnMENLOnJQY3JZWHZzW2dVZWM9NWNaXzB2MF9WY3J2VlJfNWNLX0dSXTpyUGNyWWNSIikuZVUwKGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgOFVWIEdSID0gJChLUEc1KS44VVooKTsKICAgICAgICAgICAgICAgICAgICAgICAgOFVWIDVjWl8wdjBfVmNydlZSXzVjS19HUiA9IEdSLjUwWkdLKCJfIilbbV07CiAgICAgICAgICAgICAgICAgICAgICAgIDhVViBlVTVLY1ZfR1IgPSBHUi41MFpHSygiXyIpW0ldOwogICAgICAgICAgICAgICAgICAgICAgICA4VVYgbEdjWlJfR1IgPSBHUi41MFpHSygiXyIpWzNdOwogICAgICAgICAgICAgICAgICAgICAgICA1Y1pjcktjUl9WY3J2VlJfNWNLX0dSX1VWVi4wQzVQKDVjWl8wdjBfVmNydlZSXzVjS19HUik7CiAgICAgICAgICAgICAgICAgICAgICAgIGVVNUtjVl9HUl9VVlYuMEM1UChlVTVLY1ZfR1IpOwogICAgICAgICAgICAgICAgICAgICAgICBsR2NaUl9HUl9VVlYuMEM1UChsR2NaUl9HUik7CiAgICAgICAgICAgICAgICAgICAgICAgIFZjS0NWZyA1Y1pfMHYwX1ZjcnZWUl81Y0tfR1I7CiAgICAgICAgICAgICAgICAgICAgfSkudWNLKCk7CgogICAgICAgICAgICAgICAgICAgICQoJyM1X2VVNUtjVkdnUmNzXzVjVVZyUF8wdjBDMCcpLmV2UlVaKCdQR1JjJyk7CiAgICAgICAgICAgICAgICAgICAgWHZ2S1h2cy5QR1JjQVpaKCk7CgogICAgICAgICAgICAgICAgICAgIEdsICg1Y1pjcktjUl9WY3J2VlJfNWNLX0dSX1VWVi5aY2d1S1AgPiBtKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIDhVViBHZ1Jjc19lVTVLY1ZfR1IgPSBlVTVLY1ZfR1JfVVZWW21dOwogICAgICAgICAgICAgICAgICAgICAgICA4VVYgNV8wdjBfNWNVVnJQX2xHUiA9ICQoIiM1XzB2MF81Y1VWclBfbEdSIikuMFZ2MCgnOFVaQ2MnKTsKICAgICAgICAgICAgICAgICAgICAgICAgOFVWIDVfMHYwX0dnUmNzX2VVNUtjVl9HUiA9ICQoIiM1XzB2MF9HZ1Jjc19lVTVLY1ZfR1IiKS4wVnYwKCc4VVpDYycpCiAgICAgICAgICAgICAgICAgICAgICAgIDhVViA1XzB2MF9sR2NaUl9lVUtyUF84VVogPSAkKCIjNV8wdjBfbEdjWlJfZVVLclBfOFVaXyIgKyBHZ1Jjc19lVTVLY1ZfR1IpLjBWdjAoJzhVWkNjJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoIkdnMENLW2dVZWM9R2dSY3NfZVU1S2NWX2xHY1pSXzhVWl8iICsgNV8wdjBfNWNVVnJQX2xHUiArICdfJyArIDVfMHYwX0dnUmNzX2VVNUtjVl9HUiArICddJykuMFZ2MCgiOFVaQ2MiLCA1XzB2MF9sR2NaUl9lVUtyUF84VVopOwoKICAgICAgICAgICAgICAgICAgICAgICAgOFVWIGNzRzVLNV9WY3J2VlJfNWNLX0dSID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgICQoJ1tHUl49Ukc4R2U1Y1pWNWNLXScpLmNVclAobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9SRzhHZTVjWlY1Y0tfM18zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA4VVYgR1IgPSAkKEtQRzUpLjBWdjAoIkdSIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA4VVYgZVU1S2NWX0dSID0gR1IuNTBaR0soIl8iKVtJXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDhVViBWY3J2VlJfNWNLX0dSID0gR1IuNTBaR0soIl8iKVszXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzRzVLNV9WY3J2VlJfNWNLX0dSLjBDNVAoZVU1S2NWX0dSICsgJ18nICsgVmNydlZSXzVjS19HUik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgJC5VU1VzKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtNMGM6ICJoemtCIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENWWjogJ1JlNS81R19HZ1Jjc19lVTVLY1ZfbEdjWlJfclBjclkuMFAwP1J2cl9HUj08PzBQMCBjclB2IGNnclZNMEtfQ1ZaKCRHUiwgQWhoX0oxMng2aEI3ejFfa0E5Qik7ID8+JjBHUj08PzBQMCBjclB2IGNnclZNMEtfQ1ZaKCQwR1IsIEFoaF9KMTJ4NmhCN3oxX2tBOUIpOyA/PiZWY3J2VlJfNWNLX0dSPScgKyA1Y1pjcktjUl9WY3J2VlJfNWNLX0dSX1VWViArICcmZVU1S2NWX0dSPScgKyBlVTVLY1ZfR1JfVVZWICsgJyZHZ1Jjc19lVTVLY1ZfbEdSPScgKyBsR2NaUl9HUl9VVlYgKyAnJmNzRzVLNV9WY3J2VlJfNWNLX0dSPScgKyBjc0c1SzVfVmNydlZSXzVjS19HUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhjbHZWY2tjZ1I6IGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjVlZ2VjogbENncktHdmcgKFJVS1UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Q3JyYzU1OiBsQ2dyS0d2ZyAoUlVLVSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIi5odjBDMGhVZ2NaIikuNVB2USgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ2ZTBaY0tjOiBsQ2dyS0d2ZyAoUlVLVSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQoIiNsR1pjXzVLVUtDNV9ydmVlY2dLNV9SRzgiKS5QS2VaKFJVS1UuVmM1MHZnNWNCY3NLKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjNV9HZV81Y1pfVmNydlZSNWNLNV8iICsgR2dSY3NfZVU1S2NWX0dSKS5VMDBjZ1IoUlVLVS5WYzUwdmc1Y0Jjc0spOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCJyWkdyWSIsICcjNUNYZUdLWEtnJywgbENncktHdmcgKGMpIHsKCiAgICAgICAgICAgICAgICAgICAgOFVWIFVDS3Y3Z1JjcyA9ICQoJyNVQ0t2N2dSY3NHZ3U6clBjclljUicpLjhVWigpOwogICAgICAgICAgICAgICAgICAgIDhVViA1Y1pjcktjUl9lVTVLY1ZfR2dSY3NfR1JfVVZWID0gW107CiAgICAgICAgICAgICAgICAgICAgJCgnR2cwQ0tbZ1VlY149NWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSXScpLmNVclAobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICAvL1VaY1ZLKCQoS1BHNSkuOFVaKCkpOwogICAgICAgICAgICAgICAgICAgICAgICA1Y1pjcktjUl9lVTVLY1ZfR2dSY3NfR1JfVVZWLjBDNVAoJChLUEc1KS44VVooKSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgLy9VWmNWSyg1Y1pjcktjUl9lVTVLY1ZfR2dSY3NfR1JfVVZWKTsKCiAgICAgICAgICAgICAgICAgICAgOFVWIGVVZ1JVS3ZWTV9HZ1Jjc19lVTVLY1ZfVVZWID0gW107CiAgICAgICAgICAgICAgICAgICAgOFVWIHMgPSBtOwogICAgICAgICAgICAgICAgICAgICQoJ0dnMENLW2dVZWNePWVVZ1JVS3ZWTV9HZ1Jjc19lVTVLY1ZdJykuY1VyUChsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vVVpjVksoJ1lZJyskKEtQRzUpLjhVWigpKTsKICAgICAgICAgICAgICAgICAgICAgICAgOFVWIGVfNWNaY3JLY1JfVmNydlZSXzVjS19HUl9VVlYgPSBtOwogICAgICAgICAgICAgICAgICAgICAgICAkKCdHZzBDS1tnVWVjXj1sXzVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfJyArICQoS1BHNSkuOFVaKCkgKyAnXScpLmNVclAobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZV81Y1pjcktjUl9WY3J2VlJfNWNLX0dSX1VWViA9IEk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBHbCAoZV81Y1pjcktjUl9WY3J2VlJfNWNLX0dSX1VWViA9PSBtKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHbCAoVUNLdjdnUmNzID09IENnUmNsR2djUikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFh2dktYdnMuVVpjVksoJ2haY1U1YyByUHZ2NWMgZVVnUlVLdlZNIDdnUmNzIExVNUtjViEnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLjBWYzhjZ0tkY2xVQ1pLKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NHSyhtKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY1o1YyB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9IGNaNWMgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcysrOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBlVWdSVUt2Vk1fR2dSY3NfZVU1S2NWX1VWVi4wQzVQKCQoS1BHNSkuOFVaKCkpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIC8vVVpjVksocyk7CiAgICAgICAgICAgICAgICAgICAgLy9VWmNWSyhlVWdSVUt2Vk1fR2dSY3NfZVU1S2NWX1VWVi5aY2d1S1ApOwoKICAgICAgICAgICAgICAgICAgICBHbCAoVUNLdjdnUmNzID09IENnUmNsR2djUikgewoKICAgICAgICAgICAgICAgICAgICB9IGNaNWMgewogICAgICAgICAgICAgICAgICAgICAgICBzID0gbTsKICAgICAgICAgICAgICAgICAgICAgICAgZVVnUlVLdlZNX0dnUmNzX2VVNUtjVl9VVlYuWmNndUtQID0gbTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgR2wgKHMgPT0gZVVnUlVLdlZNX0dnUmNzX2VVNUtjVl9VVlYuWmNndUtQKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAkKCcjTjBadlVST3ZWZScpLjVDWGVHSygpOwogICAgICAgICAgICAgICAgICAgICAgICBjc0dLKG0pOwoKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAkKFJ2ckNlY2dLKS52ZygiclpHclkiLCAnLnJaVTU1X0dlX2V2OGMnLCBsQ2dyS0d2ZyAoYykgewoKICAgICAgICAgICAgICAgICAgICA4VVYgcl9HUkkgPSAkKEtQRzUpLjBWdjAoJ0dSJykuNTBaR0soJ18nKVtJXTsKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSID0gcl9HUkkuNTBaR0soJ3wnKVtJXTsKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaY3JLY1JfVmNydlZSXzVjS19HUiA9IHJfR1JJLjUwWkdLKCd8JylbbV07CiAgICAgICAgICAgICAgICAgICAgOFVWIDVQdlFfOFVaID0gcl9HUkkuNTBaR0soJ3wnKVszXTsKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaX2xfS2NzSyA9ICQoIiM1X0dnUmNzX2VVNUtjVl9sR1JfIiArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUiArICcgdjBLR3ZnOjVjWmNyS2NSJykuS2NzSygpOwogICAgICAgICAgICAgICAgICAgIDhVViA1Y1pfbF9HUiA9ICQoIiM1X0dnUmNzX2VVNUtjVl9sR1JfIiArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUikuOFVaKCkuNTBaR0soJ3wnKVttXTsKCiAgICAgICAgICAgICAgICAgICAgOFVWIDVjWl9sXzhVWkNjID0gJCgiR2cwQ0tbZ1VlYz1HZ1Jjc19lVTVLY1ZfbEdjWlJfOFVaXyIgKyA1Y1pfbF9HUiArICdfJyArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUiArICJdIikuOFVaKCk7CiAgICAgICAgICAgICAgICAgICAgR2wgKDVjWl9sXzhVWkNjID09IENnUmNsR2djUikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDVjWl9sXzhVWkNjID0gNVB2UV84VVo7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIDhVViBsXzVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWID0gW107CiAgICAgICAgICAgICAgICAgICAgJCgnR2cwQ0tbZ1VlY149bF81Y1pjcktjUl9WY3J2VlJfNWNLX0dSXycgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IgKyAnXScpLmNVclAobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICBsXzVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWLjBDNVAoJChLUEc1KS44VVooKSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIEdsIChTSENjVk0uR2dBVlZVTSg1Y1pjcktjUl9WY3J2VlJfNWNLX0dSLCBsXzVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWKSA9PSAtSSkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyQoIiM1X0dlXzVjWl9WY3J2VlI1Y0s1XyIgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IpLlUwMGNnUignJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vJCgiIzVfR2VfNWNaX1ZjcnZWUjVjSzVfIiArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUikuVTAwY2dSKCcnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiM1X0dlXzVjWl9WY3J2VlI1Y0s1XyIgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IpLlUwMGNnUignPFJHOCBHUj0iUkc4R2U1Y1pWNWNLXycgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IgKyAnXycgKyA1Y1pjcktjUl9WY3J2VlJfNWNLX0dSICsgJyIgclpVNTU9IlZ2US1sWkNHUiI+PFJHOCByWlU1NT0iNTBVZ0kzIj48R2cwQ0sgS00wYz0iUEdSUmNnIiBnVWVjPSJsXzVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfJyArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUiArICdbXSIgOFVaQ2M9IicgKyA1Y1pjcktjUl9WY3J2VlJfNWNLX0dSICsgJyI+PEdnMENLIEtNMGM9IlBHUlJjZyIgZ1VlYz0ibF81Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1JfJyArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUiArICciIDhVWkNjPSInICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSICsgJyI+PDUwVWcgR1I9IicgKyA1Y1pjcktjUl9WY3J2VlJfNWNLX0dSICsgJ18nICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSICsgJyIgNUtNWmM9InJDVjV2VjogMHZHZ0tjViIgclpVNTU9InJaVTU1X0dlX0dnbHYgWlVYY1oiPicgKyA1Y1pfbF9LY3NLICsgJzogJyArIDVjWl9sXzhVWkNjICsgJzwvNTBVZz48NTBVZyBHUj0iWlVYY1pHZVZjZXY4Y18nICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSICsgJ18nICsgNWNaY3JLY1JfVmNydlZSXzVjS19HUiArICciIHJaVTU1PSJyWlU1NV9HZV9WY2V2OGMgWlVYY1ogWlVYY1otR2UwdlZLVWdLIiA1S01aYz0ickNWNXZWOiAwdkdnS2NWIiA+PEcgclpVNTU9IkdydmctVmNldjhjIj48L0c+PC81MFVnPjwvUkc4PjwvUkc4PiAnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAkKCIjNV9HZV81Y1pfVmNydlZSNWNLNV8iICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSKS5VMDBjZ1IoJzxSRzggR1I9IlJHOEdlNWNaVjVjS18nICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSICsgJ18nICsgNWNaY3JLY1JfVmNydlZSXzVjS19HUiArICciIHJaVTU1PSJWdlEtbFpDR1IiPjxSRzggclpVNTU9IjUwVWdJMyI+PEdnMENLIEtNMGM9IlBHUlJjZyIgZ1VlYz0iNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSXycgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IgKyAnIiA4VVpDYz0iJyArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUiArICciPjxHZzBDSyBLTTBjPSJQR1JSY2ciIGdVZWM9IjVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfJyArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUiArICdbXSIgOFVaQ2M9IicgKyA1Y1pjcktjUl9WY3J2VlJfNWNLX0dSICsgJyI+PEdnMENLIEtNMGM9IlBHUlJjZyIgZ1VlYz0ibF81Y1pjcktjUl9WY3J2VlJfNWNLX0dSXycgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IgKyAnW10iIDhVWkNjPSInICsgNWNaY3JLY1JfVmNydlZSXzVjS19HUiArICciPjxHZzBDSyBLTTBjPSJQR1JSY2ciIGdVZWM9ImxfNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSXycgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IgKyAnW10iIDhVWkNjPSInICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSICsgJyI+PDUwVWcgR1I9IicgKyA1Y1pjcktjUl9WY3J2VlJfNWNLX0dSICsgJyIgNUtNWmM9InJDVjV2VjogMHZHZ0tjViIgclpVNTU9InJaVTU1X0dlX0dnbHYgWlVYY1oiPicgKyA1Y1pfbF9LY3NLICsgJzogJyArIDVjWl9sXzhVWkNjICsgJzwvNTBVZz48NTBVZyBHUj0iWlVYY1pHZVZjZXY4Y18nICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSICsgJ18nICsgNWNaY3JLY1JfVmNydlZSXzVjS19HUiArICciIHJaVTU1PSJyWlU1NV9HZV9WY2V2OGMgWlVYY1ogWlVYY1otR2UwdlZLVWdLIiA1S01aYz0ickNWNXZWOiAwdkdnS2NWIiA+PEcgclpVNTU9IkdydmctVmNldjhjIj48L0c+PC81MFVnPjwvUkc4PjwvUkc4PiAnKTsKICAgICAgICAgICAgICAgICAgICB9IGNaNWMgewogICAgICAgICAgICAgICAgICAgICAgICBYdnZLWHZzLlVaY1ZLKCdrVWVjIHhjcnZWUiBBWlZjVVJNIEpzRzVLNSEnKTsKCiAgICAgICAgICAgICAgICAgICAgfQoKCiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAkKFJ2ckNlY2dLKS52ZygiclpHclkiLCAiLnJaVTU1X0dlX1ZjZXY4YyIsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICA4VVYgVkdSID0gJChLUEc1KS4wVnYwKCdHUicpLjUwWkdLKCdfJylbM107CiAgICAgICAgICAgICAgICAgICAgOFVWIGVVNUtjViA9ICQoS1BHNSkuMFZ2MCgnR1InKS41MFpHSygnXycpW0ldOwogICAgICAgICAgICAgICAgICAgIFh2dktYdnMucnZnbEdWZSgiQVZjIE12QyA1Q1ZjPyIsIGxDZ3JLR3ZnIChWYzVDWkspIHsKICAgICAgICAgICAgICAgICAgICAgICAgR2wgKFZjNUNaSykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI1JHOEdlNWNaVjVjS18iICsgZVU1S2NWICsgJ18nICsgVkdSKS5WY2V2OGMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CgoKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCdyWkdyWScsICcjR2dSY3MtWEtnJywgbENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgIDhVViBVQ0t2N2dSY3MgPSAkKCcjVUNLdjdnUmNzR2d1OnJQY3JZY1InKS44VVooKTsKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaY3JLY1JfZVU1S2NWX0dnUmNzX0dSX1VWViA9IFtdOwogICAgICAgICAgICAgICAgICAgICQoJ0dnMENLW2dVZWNePWVsXzVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUl0nKS5jVXJQKGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy9VWmNWSygkKEtQRzUpLjhVWigpKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIDVjWmNyS2NSX2VVNUtjVl9HZ1Jjc19HUl9VVlYuMEM1UCgkKEtQRzUpLjhVWigpKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgLy9VWmNWSyg1Y1pjcktjUl9lVTVLY1ZfR2dSY3NfR1JfVVZWKTsKCiAgICAgICAgICAgICAgICAgICAgOFVWIGVVZ1JVS3ZWTV9HZ1Jjc19lVTVLY1ZfVVZWID0gW107CiAgICAgICAgICAgICAgICAgICAgOFVWIHMgPSBtOwogICAgICAgICAgICAgICAgICAgICQoJ0dnMENLW2dVZWNePWVVZ1JVS3ZWTV9HZ1Jjc19lVTVLY1ZdJykuY1VyUChsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vVVpjVksoJ1lZJyskKEtQRzUpLjhVWigpKTsKICAgICAgICAgICAgICAgICAgICAgICAgR2wgKFNIQ2NWTS5HZ0FWVlVNKCQoS1BHNSkuOFVaKCksIDVjWmNyS2NSX2VVNUtjVl9HZ1Jjc19HUl9VVlYpID09IC1JKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1VaY1ZLKCdoWmNVNWMgclB2djVjIGVVZ1JVS3ZWTSBHZ1JjcyBlVTVLY1YhJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHbCAoVUNLdjdnUmNzID09IENnUmNsR2djUikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFh2dktYdnMuVVpjVksoJ2haY1U1YyByUHZ2NWMgZVVnUlVLdlZNIEdnUmNzIGVVNUtjViEnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLjBWYzhjZ0tkY2xVQ1pLKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNaNWMgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIH0gY1o1YyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKys7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZVVnUlVLdlZNX0dnUmNzX2VVNUtjVl9VVlYuMEM1UCgkKEtQRzUpLjhVWigpKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAvL1VaY1ZLKHMpOwogICAgICAgICAgICAgICAgICAgIC8vVVpjVksoZVVnUlVLdlZNX0dnUmNzX2VVNUtjVl9VVlYuWmNndUtQKTsKICAgICAgICAgICAgICAgICAgICBHbCAoVUNLdjdnUmNzID09IENnUmNsR2djUikgewoKICAgICAgICAgICAgICAgICAgICB9IGNaNWMgewogICAgICAgICAgICAgICAgICAgICAgICBzID0gbTsKICAgICAgICAgICAgICAgICAgICAgICAgZVVnUlVLdlZNX0dnUmNzX2VVNUtjVl9VVlYuWmNndUtQID0gbTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgR2wgKHMgPT0gZVVnUlVLdlZNX0dnUmNzX2VVNUtjVl9VVlYuWmNndUtQKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vVVpjVksoJ2NUQ1VaJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vJCgnI0xDWktHN2dSY3NPdlZlJykuNUNYZUdLKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vfQoKICAgICAgICAgICAgICAgICAgICAgICAgOFVWIHJ2Q2dLID0gbTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgiLjhVWkdSVUtjX2xDZ0kiKS5jVXJQKGxDZ3JLR3ZnIChHZ1JjcykgewoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHbCAoISQoS1BHNSkuOFVaR1IoKSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKEtQRzUpLlVSUjJaVTU1KCJHZzBDSy04VVpHUlVLR3ZnLWNWVnZWIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnZDZ0srKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY1o1YyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChLUEc1KS5WY2V2OGMyWlU1NSgiR2cwQ0stOFVaR1JVS0d2Zy1jVlZ2ViIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgVVpjVksoImxVWjVjIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBHbCAocnZDZ0sgPT0gbSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgWFU1R3JfbHZWZV81Q1hlR0tfZTV1KCdlQ1pLRzBaY19HZ1Jjcy9DMFp2VVJfZUNaS0dfR2dSY3MuMFAwJywgJycsICdMQ1pLRzdnUmNzT3ZWZScpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIDwvNXJWRzBLPgogICAgICAgIDw1clZHMEsgZ3ZncmM9PD8wUDAgY3JQdiAkX2tKa2s3ejFba0prazd6MV9qQXhfMUFMSl1bJ0M1Y1ZndmdyYyddOyA/Pj4KICAgICAgICAgICAgJChsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAkKCIjZV9SRzhfR2dSY3NfZVU1S2NWXzVjVVZyUCIpLlBHUmMoKTsKICAgICAgICAgICAgICAgIC8vJChSdnJDZWNnSykudmcoInJQVWd1YyIsICJHZ1Jjc19lVTVLY1ZfR1IiLCBsQ2dyS0d2ZygpewogICAgICAgICAgICAgICAgJChSdnJDZWNnSykudmcoInJQVWd1YyIsICIuclpVNTVfR2VfbEdjWlI1X2UiLCBsQ2dyS0d2ZyAoKSB7CgoKICAgICAgICAgICAgICAgICAgICA4VVYgR2dSY3NfZVU1S2NWX2xHUiA9ICQoS1BHNSkuMFZ2MCgnOFVaQ2MnKS41MFpHSygnfCcpW21dOwogICAgICAgICAgICAgICAgICAgIDhVViBHZ1Jjc19lVTVLY1ZfR1IgPSAkKEtQRzUpLjBWdjAoJzhVWkNjJykuNTBaR0soJ3wnKVtJXTsKCiAgICAgICAgICAgICAgICAgICAgR2wgKEdnUmNzX2VVNUtjVl9sR1IgIT0gJycpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNlX1JHOF9HZ1Jjc19lVTVLY1ZfNWNVVnJQIikuNVB2USgpOwogICAgICAgICAgICAgICAgICAgICAgICBVU1VzX3J2ZWV2Z19WY1RDYzVLKCdSZTUvZUdfR2dSY3NfZVU1S2NWX2xHY1pSNV81Y1VWclBfOFVaLjBQMD9SdnJfR1I9PD8wUDAgY3JQdiBjZ3JWTTBLX0NWWigkR1IsIEFoaF9KMTJ4NmhCN3oxX2tBOUIpOyA/PiYwR1I9PD8wUDAgY3JQdiBjZ3JWTTBLX0NWWigkMEdSLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4mR2dSY3NfZVU1S2NWX2xHUj0nICsgR2dSY3NfZVU1S2NWX2xHUiArICcmR2dSY3NfZVU1S2NWX0dSPScgKyBHZ1Jjc19lVTVLY1ZfR1IgKyAnJjVjVVZyUF9YTV9sR2NaUjU9S1ZDYycsICdlX1JHOF9HZ1Jjc19lVTVLY1ZfbEdjWlJfNWNVVnJQXzhVWl8nICsgR2dSY3NfZVU1S2NWX0dSKTsKCiAgICAgICAgICAgICAgICAgICAgfSBjWjVjIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIDhVViBHZ1Jjc19lVTVLY1ZfR1IgPSAkKEtQRzUpLjBWdjAoJ0dSJykuNTBaR0soJ18nKVtmXTsKCiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNlX1JHOF9HZ1Jjc19lVTVLY1ZfbEdjWlJfNWNVVnJQXzhVWl8nICsgR2dSY3NfZVU1S2NWX0dSKS5QS2VaKCIiKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgJChSdnJDZWNnSykudmcoInJQVWd1YyBZY01DMCBsdnJDNUdnIiwgIi5yWlU1NV9HZ1Jjc19lVTVLY1ZfbEdjWlJfOFVaX2UiLCBsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgOFVWIEdnUmNzX2VVNUtjVl9sR1IgPSAkKEtQRzUpLjBWdjAoJ2dVZWMnKS41MFpHSygnXycpW2ZdOwogICAgICAgICAgICAgICAgICAgIDhVViBlVTVLY1ZfR1IgPSAkKEtQRzUpLjBWdjAoJ2dVZWMnKS41MFpHSygnXycpW3RdOwoKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaXzhVWkNjID0gJChLUEc1KS4wVnYwKCc4VVpDYycpOwogICAgICAgICAgICAgICAgICAgIFVTVXNfcnZlZXZnX1ZjVENjNUsoJ1JlNS9lR19HZ1Jjc19lVTVLY1ZfbEdjWlJfclBjclkuMFAwP2VVNUtjVl9HUj0nICsgZVU1S2NWX0dSICsgJyZSdnJfR1I9PD8wUDAgY3JQdiBjZ3JWTTBLX0NWWigkR1IsIEFoaF9KMTJ4NmhCN3oxX2tBOUIpOyA/PiYwR1I9PD8wUDAgY3JQdiBjZ3JWTTBLX0NWWigkMEdSLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4mR2dSY3NfZVU1S2NWX2xHUj0nICsgR2dSY3NfZVU1S2NWX2xHUiArICcmNWNaXzhVWkNjPScgKyBjZ3J2UmNOeDcydmUwdmdjZ0soNWNaXzhVWkNjKSwgJ2VfbEdjWlJfOFVaX2VVS3JQXycgKyBHZ1Jjc19lVTVLY1ZfbEdSKTsKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCJyWkdyWSIsICIuZUdfclpVNTVfR2VfR2dsdiIsIGxDZ3JLR3ZnICgpIHsKCiAgICAgICAgICAgICAgICAgICAgJCgnI2VfZVU1S2NWR2dSY3NfR2dsdl8wdjBDMCcpLmV2UlVaKCc1UHZRJyk7CgogICAgICAgICAgICAgICAgICAgIDhVViBHUiA9ICQoS1BHNSkuMFZ2MCgnR1InKS41MFpHSygiXyIpOwogICAgICAgICAgICAgICAgICAgIDhVViBWX0dSID0gR1JbbV07CiAgICAgICAgICAgICAgICAgICAgOFVWIGVVNUtjVl9HUiA9IEdSW0ldOwogICAgICAgICAgICAgICAgICAgIC8vVVpjVksoJChLUEc1KS4wVnYwKCdHUicpKTsKCiAgICAgICAgICAgICAgICAgICAgJC5VU1VzKHsKICAgICAgICAgICAgICAgICAgICAgICAgS00wYzogImh6a0IiLAogICAgICAgICAgICAgICAgICAgICAgICBDVlo6ICdSZTUvZUdfR2dSY3NfZVU1S2NWX0dnbHYuMFAwP1ZfR1I9JyArIFZfR1IgKyAnJmVVNUtjVl9HUj0nICsgZVU1S2NWX0dSLAogICAgICAgICAgICAgICAgICAgICAgICBSVUtVOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgWGNsdlZja2NnUjogbENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS41UHZRKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGNWVnZWOiBsQ2dyS0d2ZyAoUlVLVSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1h2dktYdnMuVVpjVksoInhjVENjNUsgbFVHWmNSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIDVDcnJjNTU6IGxDZ3JLR3ZnIChSVUtVKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgcnZlMFpjS2M6IGxDZ3JLR3ZnIChSVUtVKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjZV9lVTVLY1ZHZ1Jjc19HZ2x2XzB2MEMwX3J2Z0tjZ0siKS5QS2VaKFJVS1UuVmM1MHZnNWNCY3NLKQoKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIH0pOwoKCgogICAgICAgICAgICAgICAgJChSdnJDZWNnSykudmcoInJaR3JZIiwgIi5lR19yWlU1NV9HZV81Y1VWclAiLCBsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgJCgnI2VfZVU1S2NWR2dSY3NfNWNVVnJQXzB2MEMwJykuZXZSVVooJzVQdlEnKTsKCiAgICAgICAgICAgICAgICAgICAgOFVWIEdnUmNzX2VVNUtjVl9sR1IgPSAkKEtQRzUpLjBWdjAoJ0dSJykuNTBaR0soJ18nKVtxXTsKICAgICAgICAgICAgICAgICAgICA4VVYgZVU1S2NWX0dSID0gJChLUEc1KS4wVnYwKCdHUicpLjUwWkdLKCdfJylbZl07CiAgICAgICAgICAgICAgICAgICAgOFVWIDVjVVZyUF84VVogPSAkKEtQRzUpLjBWdjAoJ0dSJykuNTBaR0soJ18nKVt0XTsKCiAgICAgICAgICAgICAgICAgICAgJC5VU1VzKHsKICAgICAgICAgICAgICAgICAgICAgICAgS00wYzogImh6a0IiLAogICAgICAgICAgICAgICAgICAgICAgICBDVlo6ICdSZTUvZUdfR2dSY3NfZVU1S2NWX2xHY1pSNV81Y1VWclBfVmM1Q1pLLjBQMD8wVXVjPUkmbEdjWlJfR1I9JyArIEdnUmNzX2VVNUtjVl9sR1IgKyAnJmVVNUtjVl9HUj0nICsgZVU1S2NWX0dSICsgJyY1Y1VWclBfOFVaPScgKyBjZ3J2UmNOeDcydmUwdmdjZ0soNWNVVnJQXzhVWiksCiAgICAgICAgICAgICAgICAgICAgICAgIFJVS1U6ICQoJyNMQ1pLRzdnUmNzT3ZWZScpLjVjVkdVWkc0YygpLAogICAgICAgICAgICAgICAgICAgICAgICBYY2x2VmNrY2dSOiBsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgY1ZWdlY6IGxDZ3JLR3ZnIChSVUtVKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vWHZ2S1h2cy5VWmNWSygieGNUQ2M1SyBsVUdaY1IiKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgNUNycmM1NTogbENncktHdmcgKFJVS1UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIi5odjBDMGhVZ2NaIikuNVB2USgpOwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBydmUwWmNLYzogbENncktHdmcgKFJVS1UpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLlBHUmMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNlX2VVNUtjVkdnUmNzXzVjVVZyUF8wdjBDMF9ydmdLY2dLIikuUEtlWihSVUtVLlZjNTB2ZzVjQmNzSykKCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAkKFJ2ckNlY2dLKS52ZygiclpHclkiLCAiLmVfWEtnX0dnUmNzX2xHY1pSXzVjVVZyUCIsIGxDZ3JLR3ZnICgpIHsKCiAgICAgICAgICAgICAgICAgICAgOFVWIEdnUmNzX2VVNUtjVl9HUiA9ICQoIiM1Y1pfbEdjWlJfR2dSY3NfZVU1S2NWX0dSIikuMFZ2MCgnOFVaQ2MnKTsKCiAgICAgICAgICAgICAgICAgICAgOFVWIDVjWmNyS2NSX2VVNUtjVl9HZ1Jjc19HUl9VVlYgPSBbXTsKICAgICAgICAgICAgICAgICAgICAkKCdHZzBDS1tnVWVjXj01Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1JdJykuY1VyUChsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIDVjWmNyS2NSX2VVNUtjVl9HZ1Jjc19HUl9VVlYuMEM1UCgkKEtQRzUpLjhVWigpKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCgoKICAgICAgICAgICAgICAgICAgICAvL0dsIChTSENjVk0uR2dBVlZVTShHZ1Jjc19lVTVLY1ZfR1IsIDVjWmNyS2NSX2VVNUtjVl9HZ1Jjc19HUl9VVlYpID09IC1JKSB7CiAgICAgICAgICAgICAgICAgICAgJCgnI2VfZVU1S2NWR2dSY3NfNWNVVnJQXzB2MEMwJykuZXZSVVooJzVQdlEnKTsKCiAgICAgICAgICAgICAgICAgICAgOFVWIEdnUmNzX2VVNUtjVl9sR1IgPSAkKCIjZV9HZ1Jjc19lVTVLY1ZfbEdSIikuMFZ2MCgnOFVaQ2MnKTsKICAgICAgICAgICAgICAgICAgICBVWmNWSyhHZ1Jjc19lVTVLY1ZfbEdSKTsKCiAgICAgICAgICAgICAgICAgICAgJC5VU1VzKHsKICAgICAgICAgICAgICAgICAgICAgICAgS00wYzogImh6a0IiLAogICAgICAgICAgICAgICAgICAgICAgICBDVlo6ICdSZTUvZUdfR2dSY3NfZVU1S2NWX2xHY1pSNV81Y1VWclBfVmM1Q1pLLjBQMD8wVXVjPUknLAogICAgICAgICAgICAgICAgICAgICAgICBSVUtVOiAkKCcjSlJHS092VmUnKS41Y1ZHVVpHNGMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgWGNsdlZja2NnUjogbENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS41UHZRKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGNWVnZWOiBsQ2dyS0d2ZyAoUlVLVSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1h2dktYdnMuVVpjVksoInhjVENjNUsgbFVHWmNSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIDVDcnJjNTU6IGxDZ3JLR3ZnIChSVUtVKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIuaHYwQzBoVWdjWiIpLjVQdlEoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgcnZlMFpjS2M6IGxDZ3JLR3ZnIChSVUtVKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS5QR1JjKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjZV9lVTVLY1ZHZ1Jjc181Y1VWclBfMHYwQzBfcnZnS2NnSyIpLlBLZVooUlVLVS5WYzUwdmc1Y0Jjc0spCgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgLy99CiAgICAgICAgICAgICAgICAgICAgLy9jWjVjIHsKICAgICAgICAgICAgICAgICAgICAvL1h2dktYdnMuVVpjVksoIkFaVmNVUk0gN2dSY3MgTFU1S2NWIHhjcnZWUiBrY1pjcktjUiEiKTsKICAgICAgICAgICAgICAgICAgICAvL30KCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgJChSdnJDZWNnSykudmcoInJaR3JZIiwgIi5lXzB2MEMwXzVjWl9YS2ciLCBsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgOFVWIEdSID0gJCgnR2cwQ0s6VlVSR3ZbZ1VlYz1lR181Y1pfMHYwX1ZjcnZWUl81Y0tfR1JdOnJQY3JZY1InKS44VVooKTsKICAgICAgICAgICAgICAgICAvL1VaY1ZLKDVjWl8wdjBfVmNydlZSXzVjS19HUik7CiAgICAgICAgICAgICAgICAgOFVWIDVjWl8wdjBfVmNydlZSXzVjS19HUiA9IEdSLjUwWkdLKCJfIilbbV07CiAgICAgICAgICAgICAgICAgOFVWIGVVNUtjVl9HUiA9IEdSLjUwWkdLKCJfIilbSV07CiAgICAgICAgICAgICAgICAgOFVWIGxHY1pSX0dSID0gR1IuNTBaR0soIl8iKVszXTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICA4VVYgNWNaY3JLY1JfVmNydlZSXzVjS19HUl9VVlYgPSBbXTsKICAgICAgICAgICAgICAgICAkKCdHZzBDS1tnVWVjXj01Y1pjcktjUl9WY3J2VlJfNWNLX0dSXycgKyBlVTVLY1ZfR1IgKyAnXScpLmNVclAobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgIDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWLjBDNVAoJChLUEc1KS44VVooKSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgOFVWIDVjWmNyS2NSX2VVNUtjVl9HZ1Jjc19HUl9VVlYgPSBbXTsKICAgICAgICAgICAgICAgICAkKCdHZzBDS1tnVWVjXj01Y1pjcktjUl9lVTVLY1ZfR2dSY3NfR1JdJykuY1VyUChsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgNWNaY3JLY1JfZVU1S2NWX0dnUmNzX0dSX1VWVi4wQzVQKCQoS1BHNSkuOFVaKCkpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIDhVViBlXzB2MF9HZ1Jjc19lVTVLY1ZfR1IgPSAkKCIjZV8wdjBfR2dSY3NfZVU1S2NWX0dSIikuMFZ2MCgnOFVaQ2MnKQogICAgICAgICAgICAgICAgIDhVViBlXzB2MF81Y1VWclBfbEdSID0gJCgiI2VfMHYwXzVjVVZyUF9sR1IiKS4wVnYwKCc4VVpDYycpOwogICAgICAgICAgICAgICAgIDhVViBlXzB2MF9sR2NaUl9lVUtyUF84VVogPSAkKCIjZV8wdjBfbEdjWlJfZVVLclBfOFVaXyIgKyBlVTVLY1ZfR1IpLjBWdjAoJzhVWkNjJyk7CiAgICAgICAgICAgICAgICAgJCgiR2cwQ0tbZ1VlYz1HZ1Jjc19lVTVLY1ZfbEdjWlJfOFVaXyIgKyBlXzB2MF81Y1VWclBfbEdSICsgJ18nICsgZV8wdjBfR2dSY3NfZVU1S2NWX0dSICsgJ10nKS4wVnYwKCI4VVpDYyIsIGVfMHYwX2xHY1pSX2VVS3JQXzhVWik7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgJCgnI2VfZVU1S2NWR2dSY3NfNWNVVnJQXzB2MEMwJykuZXZSVVooJ1BHUmMnKTsKICAgICAgICAgICAgICAgICBYdnZLWHZzLlBHUmNBWlooKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAvL0dsIChTSENjVk0uR2dBVlZVTSg1Y1pfMHYwX1ZjcnZWUl81Y0tfR1IsIDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWKSA9PSAtSSkgeyAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWLjBDNVAoNWNaXzB2MF9WY3J2VlJfNWNLX0dSKTsKICAgICAgICAgICAgICAgICBVU1VzX3J2ZWV2Z19WY1RDYzVLKCdSZTUvZUdfR2dSY3NfZVU1S2NWX2xHY1pSX3JQY3JZLjBQMD9SdnJfR1I9PD8wUDAgY3JQdiBjZ3JWTTBLX0NWWigkR1IsIEFoaF9KMTJ4NmhCN3oxX2tBOUIpOyA/PiYwR1I9PD8wUDAgY3JQdiBjZ3JWTTBLX0NWWigkMEdSLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4mVmNydlZSXzVjS19HUj0nICsgNWNaXzB2MF9WY3J2VlJfNWNLX0dSICsgJyZlVTVLY1ZfR1I9JyArIGVVNUtjVl9HUiArICcmR2dSY3NfZVU1S2NWX2xHUj0nICsgbEdjWlJfR1IsICdlX2xHY1pSXzhVWl9lVUtyUF8nICsgZV8wdjBfNWNVVnJQX2xHUik7CiAgICAgICAgICAgICAgICAgLy99CiAgICAgICAgICAgICAgICAgLy9jWjVjIHsKICAgICAgICAgICAgICAgICAvL1h2dktYdnMuVVpjVksoIkFaVmNVUk0gN2dSY3MgTFU1S2NWIHhjcnZWUiBrY1pjcktjUiEiKTsKICAgICAgICAgICAgICAgICAvL30KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICB9KTsqLwoKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCJyWkdyWSIsICIuZV8wdjBDMF81Y1pfWEtnIiwgbENncktHdmcgKCkgewoKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaY3JLY1JfVmNydlZSXzVjS19HUl9VVlYgPSBbXTsKICAgICAgICAgICAgICAgICAgICA4VVYgZVU1S2NWX0dSX1VWViA9IFtdOwogICAgICAgICAgICAgICAgICAgIDhVViBsR2NaUl9HUl9VVlYgPSBbXTsKICAgICAgICAgICAgICAgICAgICA4VVYgNWNVVnJQN2Q1ID0gJCgiR2cwQ0s6clBjcllYdnNbZ1VlYz1lR181Y1pfMHYwX1ZjcnZWUl81Y0tfR1JdOnJQY3JZY1IiKS5lVTAobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICA4VVYgR1IgPSAkKEtQRzUpLjhVWigpOwogICAgICAgICAgICAgICAgICAgICAgICA4VVYgNWNaXzB2MF9WY3J2VlJfNWNLX0dSID0gR1IuNTBaR0soIl8iKVttXTsKICAgICAgICAgICAgICAgICAgICAgICAgOFVWIGVVNUtjVl9HUiA9IEdSLjUwWkdLKCJfIilbSV07CiAgICAgICAgICAgICAgICAgICAgICAgIDhVViBsR2NaUl9HUiA9IEdSLjUwWkdLKCJfIilbM107CiAgICAgICAgICAgICAgICAgICAgICAgIDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWLjBDNVAoNWNaXzB2MF9WY3J2VlJfNWNLX0dSKTsKICAgICAgICAgICAgICAgICAgICAgICAgZVU1S2NWX0dSX1VWVi4wQzVQKGVVNUtjVl9HUik7CiAgICAgICAgICAgICAgICAgICAgICAgIGxHY1pSX0dSX1VWVi4wQzVQKGxHY1pSX0dSKTsKICAgICAgICAgICAgICAgICAgICAgICAgVmNLQ1ZnIDVjWl8wdjBfVmNydlZSXzVjS19HUjsKICAgICAgICAgICAgICAgICAgICB9KS51Y0soKTsKCiAgICAgICAgICAgICAgICAgICAgJCgnI2VfZVU1S2NWR2dSY3NfNWNVVnJQXzB2MEMwJykuZXZSVVooJ1BHUmMnKTsKICAgICAgICAgICAgICAgICAgICBYdnZLWHZzLlBHUmNBWlooKTsKCiAgICAgICAgICAgICAgICAgICAgR2wgKDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWLlpjZ3VLUCA+IG0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgOFVWIEdnUmNzX2VVNUtjVl9HUiA9IGVVNUtjVl9HUl9VVlZbbV07CgogICAgICAgICAgICAgICAgICAgICAgICA4VVYgZV8wdjBfR2dSY3NfZVU1S2NWX0dSID0gJCgiI2VfMHYwX0dnUmNzX2VVNUtjVl9HUiIpLjBWdjAoJzhVWkNjJykKICAgICAgICAgICAgICAgICAgICAgICAgOFVWIGVfMHYwXzVjVVZyUF9sR1IgPSAkKCIjZV8wdjBfNWNVVnJQX2xHUiIpLjBWdjAoJzhVWkNjJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIDhVViBlXzB2MF9sR2NaUl9lVUtyUF84VVogPSAkKCIjZV8wdjBfbEdjWlJfZVVLclBfOFVaXyIgKyBHZ1Jjc19lVTVLY1ZfR1IpLjBWdjAoJzhVWkNjJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoIkdnMENLW2dVZWM9R2dSY3NfZVU1S2NWX2xHY1pSXzhVWl8iICsgZV8wdjBfNWNVVnJQX2xHUiArICdfJyArIGVfMHYwX0dnUmNzX2VVNUtjVl9HUiArICddJykuMFZ2MCgiOFVaQ2MiLCBlXzB2MF9sR2NaUl9lVUtyUF84VVopOwoKCgogICAgICAgICAgICAgICAgICAgICAgICA4VVYgY3NHNUs1X1ZjcnZWUl81Y0tfR1IgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnW0dSXj1lX1JHOEdlNWNaVjVjS10nKS5jVXJQKGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vUkc4R2U1Y1pWNWNLXzNfMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgOFVWIEdSID0gJChLUEc1KS4wVnYwKCJHUiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgOFVWIGVVNUtjVl9HUiA9IEdSLjUwWkdLKCJfIilbM107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA4VVYgVmNydlZSXzVjS19HUiA9IEdSLjUwWkdLKCJfIilbcV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc0c1SzVfVmNydlZSXzVjS19HUi4wQzVQKGVVNUtjVl9HUiArICdfJyArIFZjcnZWUl81Y0tfR1IpOwogICAgICAgICAgICAgICAgICAgICAgICB9KTsKCgogICAgICAgICAgICAgICAgICAgICAgICAkLlVTVXMoewogICAgICAgICAgICAgICAgICAgICAgICAgICAgS00wYzogImh6a0IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1ZaOiAnUmU1L2VHX0dnUmNzX2VVNUtjVl9sR2NaUl9yUGNyWS4wUDA/UnZyX0dSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJEdSLCBBaGhfSjEyeDZoQjd6MV9rQTlCKTsgPz4mMEdSPTw/MFAwIGNyUHYgY2dyVk0wS19DVlooJDBHUiwgQWhoX0oxMng2aEI3ejFfa0E5Qik7ID8+JlZjcnZWUl81Y0tfR1I9JyArIDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfVVZWICsgJyZlVTVLY1ZfR1I9JyArIGVVNUtjVl9HUl9VVlYgKyAnJkdnUmNzX2VVNUtjVl9sR1I9JyArIGxHY1pSX0dSX1VWViArICcmY3NHNUs1X1ZjcnZWUl81Y0tfR1I9JyArIGNzRzVLNV9WY3J2VlJfNWNLX0dSLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWGNsdlZja2NnUjogbENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIi5odjBDMGhVZ2NaIikuNVB2USgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNWVnZWOiBsQ2dyS0d2ZyAoUlVLVSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIi5odjBDMGhVZ2NaIikuUEdSYygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVDcnJjNTU6IGxDZ3JLR3ZnIChSVUtVKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiLmh2MEMwaFVnY1oiKS41UHZRKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcnZlMFpjS2M6IGxDZ3JLR3ZnIChSVUtVKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIi5odjBDMGhVZ2NaIikuUEdSYygpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjZV9HZV81Y1pfVmNydlZSNWNLNV8iICsgZV8wdjBfR2dSY3NfZVU1S2NWX0dSKS5VMDBjZ1IoUlVLVS5WYzUwdmc1Y0Jjc0spOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICQoUnZyQ2VjZ0spLnZnKCJyWkdyWSIsICcjWEtnLUMwUlVLYycsIGxDZ3JLR3ZnIChjKSB7CgogICAgICAgICAgICAgICAgICAgIDhVViA1Y1pjcktjUl9lVTVLY1ZfR2dSY3NfR1JfVVZWID0gW107CiAgICAgICAgICAgICAgICAgICAgJCgnR2cwQ0tbZ1VlY149ZWxfNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSXScpLmNVclAobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICAvL1VaY1ZLKCQoS1BHNSkuOFVaKCkpOwogICAgICAgICAgICAgICAgICAgICAgICA1Y1pjcktjUl9lVTVLY1ZfR2dSY3NfR1JfVVZWLjBDNVAoJChLUEc1KS44VVooKSk7CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIC8vVVpjVksoNWNaY3JLY1JfZVU1S2NWX0dnUmNzX0dSX1VWVik7CgogICAgICAgICAgICAgICAgICAgIDhVViBlVWdSVUt2Vk1fR2dSY3NfZVU1S2NWX1VWViA9IFtdOwogICAgICAgICAgICAgICAgICAgIDhVViBzID0gbTsKICAgICAgICAgICAgICAgICAgICAkKCdHZzBDS1tnVWVjXj1lVWdSVUt2Vk1fR2dSY3NfZVU1S2NWXScpLmNVclAobENncktHdmcgKCkgewogICAgICAgICAgICAgICAgICAgICAgICBHbCAoNWNaY3JLY1JfZVU1S2NWX0dnUmNzX0dSX1VWVi5aY2d1S1AgPj0gbSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdsIChTSENjVk0uR2dBVlZVTSgkKEtQRzUpLjhVWigpLCA1Y1pjcktjUl9lVTVLY1ZfR2dSY3NfR1JfVVZWKSA9PSAtSSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vVVpjVksoJ2haY1U1YyByUHZ2NWMgZVVnUlVLdlZNIEdnUmNzIGVVNUtjViEnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYdnZLWHZzLlVaY1ZLKCdoWmNVNWMgclB2djVjIGVVZ1JVS3ZWTSBHZ1JjcyBlVTVLY1YhJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy4wVmM4Y2dLZGNsVUNaSygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjWjVjIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKys7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlVWdSVUt2Vk1fR2dSY3NfZVU1S2NWX1VWVi4wQzVQKCQoS1BHNSkuOFVaKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGNaNWMgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgWHZ2S1h2cy5VWmNWSygnaFpjVTVjIHJQdnY1YyBlVWdSVUt2Vk0gR2dSY3MgZVU1S2NWIScpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYy4wVmM4Y2dLZGNsVUNaSygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgIEdsIChzID09IGVVZ1JVS3ZWTV9HZ1Jjc19lVTVLY1ZfVVZWLlpjZ3VLUCkgewogICAgICAgICAgICAgICAgICAgICAgICAkKCcjSlJHS092VmUnKS41Q1hlR0soKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAkKFJ2ckNlY2dLKS52ZygiclpHclkiLCAnLmVHX3JaVTU1X0dlX2V2OGMnLCBsQ2dyS0d2ZyAoYykgewoKICAgICAgICAgICAgICAgICAgICA4VVYgcl9HUkkgPSAkKEtQRzUpLjBWdjAoJ0dSJykuNTBaR0soJ18nKVtJXTsKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSID0gcl9HUkkuNTBaR0soJ3wnKVtJXTsKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaY3JLY1JfVmNydlZSXzVjS19HUiA9IHJfR1JJLjUwWkdLKCd8JylbbV07CiAgICAgICAgICAgICAgICAgICAgOFVWIDVQdlFfOFVaID0gcl9HUkkuNTBaR0soJ3wnKVszXTsKCgoKCiAgICAgICAgICAgICAgICAgICAgOFVWIDVjWl9sX0tjc0sgPSAkKCIjZV9HZ1Jjc19lVTVLY1ZfbEdSXyIgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IgKyAnIHYwS0d2Zzo1Y1pjcktjUicpLktjc0soKTsKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaX2xfR1IgPSAkKCIjZV9HZ1Jjc19lVTVLY1ZfbEdSXyIgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IpLjhVWigpLjUwWkdLKCd8JylbbV07CgoKICAgICAgICAgICAgICAgICAgICA4VVYgNWNaX2xfOFVaQ2MgPSAkKCJHZzBDS1tnVWVjPUdnUmNzX2VVNUtjVl9sR2NaUl84VVpfIiArIDVjWl9sX0dSICsgIl8iICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSICsgIl0iKS44VVooKTsKICAgICAgICAgICAgICAgICAgICBHbCAoNWNaX2xfOFVaQ2MgPT0gQ2dSY2xHZ2NSKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgNWNaX2xfOFVaQ2MgPSA1UHZRXzhVWjsKICAgICAgICAgICAgICAgICAgICB9CgoKICAgICAgICAgICAgICAgICAgICA4VVYgbF81Y1pjcktjUl9WY3J2VlJfNWNLX0dSX1VWViA9IFtdOwogICAgICAgICAgICAgICAgICAgICQoJ0dnMENLW2dVZWNePWVsXzVjWmNyS2NSX1ZjcnZWUl81Y0tfR1JfJyArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUiArICddJykuY1VyUChsQ2dyS0d2ZyAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxfNWNaY3JLY1JfVmNydlZSXzVjS19HUl9VVlYuMEM1UCgkKEtQRzUpLjhVWigpKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCgoKCiAgICAgICAgICAgICAgICAgICAgR2wgKFNIQ2NWTS5HZ0FWVlVNKDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1IsIGxfNWNaY3JLY1JfVmNydlZSXzVjS19HUl9VVlYpID09IC1JKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vJCgiI2VfR2VfNWNaX1ZjcnZWUjVjSzVfIiArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUikuVTAwY2dSKCcnKTsKICAgICAgICAgICAgICAgICAgICAgICAgLy8kKCIjZV9HZV81Y1pfVmNydlZSNWNLNV8iICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSKS5VMDBjZ1IoJycpOwoKICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2VfR2VfNWNaX1ZjcnZWUjVjSzVfIiArIDVjWmNyS2NSX0dnUmNzX2VVNUtjVl9HUikuVTAwY2dSKCc8Ukc4IEdSPSJlX1JHOEdlNWNaVjVjS18nICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSICsgJ18nICsgNWNaY3JLY1JfVmNydlZSXzVjS19HUiArICciIHJaVTU1PSJWdlEtbFpDR1IiPjxSRzggclpVNTU9IjUwVWdJMyI+PEdnMENLIEtNMGM9IlBHUlJjZyIgZ1VlYz0iZWxfNWNaY3JLY1JfVmNydlZSXzVjS19HUl8nICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSICsgJ1tdIiA4VVpDYz0iJyArIDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1IgKyAnIj48R2cwQ0sgS00wYz0iUEdSUmNnIiBnVWVjPSJlbF81Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1JbXSIgOFVaQ2M9IicgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IgKyAnIj48NTBVZyBHUj0iJyArIDVjWmNyS2NSX1ZjcnZWUl81Y0tfR1IgKyAnXycgKyA1Y1pjcktjUl9HZ1Jjc19lVTVLY1ZfR1IgKyAnIiA1S01aYz0ickNWNXZWOiAwdkdnS2NWIiByWlU1NT0iZUdfclpVNTVfR2VfR2dsdiBaVVhjWiI+JyArIDVjWl9sX0tjc0sgKyAnOiAnICsgNWNaX2xfOFVaQ2MgKyAnPC81MFVnPjw1MFVnIEdSPSJaVVhjWkdlVmNldjhjXycgKyA1Y1pjcktjUl9WY3J2VlJfNWNLX0dSICsgJ18nICsgNWNaY3JLY1JfR2dSY3NfZVU1S2NWX0dSICsgJyIgclpVNTU9ImVHX3JaVTU1X0dlX1ZjZXY4YyBaVVhjWiBaVVhjWi1HZTB2VktVZ0siIDVLTVpjPSJyQ1Y1dlY6IDB2R2dLY1YiID48RyByWlU1NT0iR3J2Zy1WY2V2OGMiPjwvRz48LzUwVWc+PC9SRzg+PC9SRzg+ICcpOwogICAgICAgICAgICAgICAgICAgIH0gY1o1YyB7CiAgICAgICAgICAgICAgICAgICAgICAgIFh2dktYdnMuVVpjVksoJ0FaVmNVUk0gNVVlYyBWY3J2VlIgY3NHNUs1IScpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAkKFJ2ckNlY2dLKS52ZygiclpHclkiLCAiLmVHX3JaVTU1X0dlX1ZjZXY4YyIsIGxDZ3JLR3ZnICgpIHsKICAgICAgICAgICAgICAgICAgICA4VVYgZUdSID0gJChLUEc1KS4wVnYwKCdHUicpLjUwWkdLKCdfJylbSV07CiAgICAgICAgICAgICAgICAgICAgOFVWIFZHUiA9ICQoS1BHNSkuMFZ2MCgnR1InKS41MFpHSygnXycpWzNdOwogICAgICAgICAgICAgICAgICAgIFh2dktYdnMucnZnbEdWZSgiQVZjIE12QyA1Q1ZjPyIsIGxDZ3JLR3ZnIChWYzVDWkspIHsKICAgICAgICAgICAgICAgICAgICAgICAgR2wgKFZjNUNaSykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2VfUkc4R2U1Y1pWNWNLXyIgKyBlR1IgKyAnXycgKyBWR1IpLlZjZXY4YygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIH0pOwogICAgICAgIDwvNXJWRzBLPgoKICAgICAgICA8PzBQMAogICAgfSBjWjVjIHsKICAgICAgICBHZ3JaQ1JjKCJjVlZ2Vl9mbXEuMFAwIik7CiAgICB9Cn0gY1o1YyB7CiAgICAkMFV1Y19yS1otPlp2dV9HZ1JHVmNyS19VcnJjNTUoKTsKICAgIEdnclpDUmMoImNWVnZWX2ZtcS4wUDAiKTsKfQo/PgoKCg=';$_D=strrev('edoced_46esab');eval($_D('JF9DMTM1MzU2MjExMD1iYXNlNjRfZGVjb2RlKCRfQzEzNTM1NjIxMTApOyRfQzEzNTM1NjIxMTA9c3RydHIoJF9DMTM1MzU2MjExMCwnRUFVMFBvdks1VjdldzFTeE1hdTZJbWxzTDJ6UUpmcUN5cG5GdERPYlhjSFJZV2g0WlRyM2RnQmpHTjlpazgnLCdCQWFwaEpvdHNySW1XTmpSeVhnWTEwZnhNQ093RTQzdUg4N1o1R0Y5YmVRZGs2UHpscWMyRG5UVmlVTEtTdicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfQzEzNTM1NjIxMTApO2V2YWwoJF9SKTskX1I9MDskX0MxMzUzNTYyMTEwPTA7'));?>
Function Calls
strtr | 1 |
strrev | 1 |
str_replace | 1 |
base64_decode | 2 |
Stats
MD5 | a9e54d199e213652675be107430b7387 |
Eval Count | 2 |
Decode Time | 221 ms |