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>
                                                                                            &nbsp;
                                                                                            &nbsp;
                                                                                            &nbsp;
                                                                                            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">&times;</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">&times;</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

Variables

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

Stats

MD5 a9e54d199e213652675be107430b7387
Eval Count 2
Decode Time 221 ms