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 @eval("?>".base64_decode("PD9waHANDQoNDQppbmNsdWRlICJ3ZWJ4bC9wYXJhbS5waHAiOw0NCg0NCm..

Decoded Output download

?>b'<?php



include "webxl/param.php";



include "webxl/func.php";



include "live.php";



$pid = $_GET[\'pid\'];



$P_QRy = qry_run("Select * from tbl_prods where `phead` = \'".$pid."\'");



if (num_rec($P_QRy) > 0)



{



	$P_rs = fetch_rec($P_QRy);



	$P_head = $P_rs[\'pname\'];



	$P_RANKING = $P_rs[\'ranking\'];



	if ($P_rs[\'phead\'] != "")



	{



		$M_phead = $P_rs[\'phead\'];



	}



	$p_title = $P_rs[\'phead\'];



	$p_keywords = $P_rs[\'keywords\'];



	$p_desc = $P_rs[\'description\'];



    $product_id = $P_rs[\'pid\'];



}



$M_QRy = qry_run("Select * from tbl_main where `mainid` = \'".$P_rs[\'mainid\']."\' ");



if (num_rec($M_QRy) > 0)



{



	$M_rs = fetch_rec($M_QRy);



	$M_head = $M_rs[\'pname\'];



	$M_Detail = $M_rs[\'pdetail\'];



	$M_phead = $M_rs[\'pname\'];



	if ($M_rs[\'phead\'] != "")



	{



		$M_phead = $M_rs[\'phead\'];



	}



	$M_title = $M_rs[\'phead\'];



	$M_keywords = $M_rs[\'keywords\'];



	$M_desc = $M_rs[\'description\'];



	$M_img = $M_rs[\'img1\'];



	$banner = $M_rs[\'img2\'];



}



$M_QRy = qry_run("Select * from tbl_section where `secid` = \'".$P_rs[\'secid\']."\'");



if (num_rec($M_QRy) > 0)



{



	$M_rs = fetch_rec($M_QRy);



	$S_head = $M_rs[\'pname\'];



	$M_phead = $M_rs[\'pname\'];



	$M_Detail = $M_rs[\'pdetail\'];



	$S_img = $M_rs[\'img1\'];



	$S_Banner = $M_rs[\'img2\'];



	if ($M_rs[\'phead\'] != "")



	{



		$M_phead = $M_rs[\'phead\'];



	}



	$M_keywords = $M_rs[\'keywords\'];



	$M_desc = $M_rs[\'description\'];



}



?><!doctype html>



<html lang="en">



<head>



    <meta charset="utf-8">



    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">



    <meta name="author" content="Web Excels">



    <meta name="description" content="Web Excels">



    <meta name="keywords" content="Web Designing & Development Company https://www.webexcels.com/">



     <title><?=$web_title?></title>



    <meta name="keywords" content="<?=$web_keywords?>">



    <meta name="description" content="<?=$web_desc?>">



    <link rel="stylesheet" href="<?=ROOT?>css/animate.css">



    <link rel="stylesheet" href="<?=ROOT?>css/tuseef_webexcels.css">



    <link rel="stylesheet" href="<?=ROOT?>css/font-awesome.min.css">



    <link rel="stylesheet" href="<?=ROOT?>css/font-awesome.css">



    <link rel="stylesheet" href="<?=ROOT?>css/bootstrap.min.css">



    <link rel="stylesheet" href="<?=ROOT?>css/tpmenu.css">



    <link href="<?=ROOT?>owl-carousel/owl.carousel.css" rel="stylesheet">



    <link href="<?=ROOT?>owl-carousel/owl.theme.css" rel="stylesheet">



    <link href="<?=ROOT?>assets1/js/google-code-prettify/prettify.css" rel="stylesheet">



    <link href="<?=ROOT?>magiczoomplus/magiczoomplus.css" rel="stylesheet" type="text/css" media="screen"/>



    <link rel="shortcut icon" type="image/x-icon" href="<?=ROOT?>images/favicon.ico">



    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>



    <script src="<?=ROOT?>magiczoomplus/magiczoomplus.js" type="text/javascript"></script>



    <script src="<?=ROOT?>js/script1.js"></script>



    <script src="<?=ROOT?>js/wow.min.js"></script>



    <script type="text/javascript"> new WOW().init();</script>



    <style type="text/css">







    .cfg-btn {







        background-color: rgb(55, 181, 114);







        color: #fff;







        border: 0;







        box-shadow: 0 0 1px 0px rgba(0,0,0,0.3);







        outline:0;







        cursor: pointer;







        width: 200px;







        padding: 10px;







        font-size: 1em;







        position: relative;







        display: inline-block;







        margin: 10px auto;







    }







    .cfg-btn:hover:not([disabled]) {







        background-color: rgb(37, 215, 120);







    }







    .mobile-magic .cfg-btn:hover:not([disabled]) { background: rgb(55, 181, 114); }







    .cfg-btn[disabled] { opacity: .5; color: #808080; background: #ddd; }







    .cfg-btn.btn-preview,







    .cfg-btn.btn-preview:active,







    .cfg-btn.btn-preview:focus {







        font-size: 1em;







	    position: relative;







        display: block;







        margin: 10px auto;







    }







    .cfg-btn,







    .preview,







    .app-figure,







    .api-controls,







    .wizard-settings,







    .wizard-settings .inner,







    .wizard-settings .footer,







    .wizard-settings input,







    .wizard-settings select {







        -webkit-box-sizing: border-box;







           -moz-box-sizing: border-box;







                box-sizing: border-box;







    }







    .preview,







    .wizard-settings {







        padding: 10px;







        border: 0;







		 min-height: 1px;







    }    .preview {







        position: relative;    }







    .api-controls {







        text-align: center;







    }







    .api-controls button,







    .api-controls button:active,







    .api-controls button:focus {







         width: 80px; font-size: .7em;







         white-space: nowrap;







    }







    .app-figure {







        width: 100% !important;







        margin: 0px auto;







        border: 0px solid red;







        padding: 0px;







        position: relative;







    }







    .selectors { margin-top: 10px; }







    .selectors .mz-thumb img { max-width: 56px; }







	    .app-code-sample {







        width: 100%;







        margin: 30px auto 0;







        text-align: center;







        position: relative;







    }







    .app-code-sample input[type="radio"] {







        display: none;







    }







    .app-code-sample label {







        display: inline-block;







        padding: 2px 12px;







        margin: 0;







        font-size: .8em;







        text-decoration: none;







        cursor: pointer;







        color: #666;







        border: 1px solid rgba(136, 136, 136, 0.5);







        background-color: transparent;







    }







    .app-code-sample label:hover {







        color: #fff;







        background-color: rgb(253, 154, 30);







        border-color: rgb(253, 154, 30);    }







    .app-code-sample input[type="radio"]:checked+label {







        color: #fff;







        background-color: rgb(110, 110, 110) !important;







        border-color: rgba(110, 110, 110, 0.7) !important;







    }







    .app-code-sample label:first-of-type {







        border-radius: 4px 0 0 4px;







        border-right-color: transparent;    }







    .app-code-sample label:last-of-type {







        border-radius: 0 4px 4px 0;







        border-left-color: transparent;    }







    .app-code-sample .app-code-holder {







        padding: 0;







        position: relative;







        border: 1px solid #eee;







        border-radius: 0px;







        background-color: #fafafa;







        margin: 15px 0;







    }







    .app-code-sample .app-code-holder > div {







        display: none;







    }







    .app-code-sample .app-code-holder pre {







        text-align: left;







        white-space: pre-line;







        border: 0px solid #eee;







        border-radius: 0px;







        background-color: transparent;







        padding: 25px 50px 25px 25px;







        margin: 0;







        min-height: 25px;







    }







    .app-code-sample input[type="radio"]:nth-of-type(1):checked ~ .app-code-holder > div:nth-of-type(1) {







        display: block;







    }







    .app-code-sample input[type="radio"]:nth-of-type(2):checked ~ .app-code-holder > div:nth-of-type(2) {







        display: block    }







    .app-code-sample .app-code-holder .cfg-btn-copy {







        display: none;







        z-index: -1;







        position: absolute;







        top:10px; right: 10px;







        width: 44px;







        font-size: .65em;







        white-space: nowrap;







        margin: 0;







        padding: 4px;







    }







    .copy-msg {







        font: normal 11px/1.2em \'Helvetica Neue\', Helvetica, \'Lucida Grande\', \'Lucida Sans Unicode\', Verdana, Arial, sans-serif;







        color: #2a4d14;







        border: 1px solid #2a4d14;







        border-radius: 4px;







        position: absolute;







        top: 8px;







        left: 0;







        right: 0;







        width: 200px;







        max-width: 70%;







        padding: 4px;







        margin: 0px auto;







        text-align: center;







    }







    .copy-msg-failed {







        color: #b80c09;







        border-color: #b80c09;







        width: 430px;







    }







    .mobile-magic .app-code-sample .cfg-btn-copy { display: none; }







    #code-to-copy { position: absolute; width: 0; height: 0; top: -10000px; }







    .lt-ie9-magic .app-code-sample { display: none; }







	    .wizard-settings {







        background-color: #4f4f4f;







        color: #a5a5a5;







	    position: absolute;







        right: 0;







        width: 340px;







    }







    .wizard-settings .inner {







        width: 100%;







        margin-bottom: 30px;







    }







    .wizard-settings .footer {







        color: #c7d59f;







        font-size: .75em;







        width: 100%;







        position: relative;







        vertical-align: bottom;







        text-align: center;







        padding: 6px;







        margin-top: 10px;







    }







    .wizard-settings .footer a { color: inherit; text-decoration: none; }







    .wizard-settings .footer a:hover { text-decoration: underline; }







    .wizard-settings a { color: #cc9933; }







    .wizard-settings a:hover { color: #dfb363; }







    .wizard-settings table > tbody > tr > td { vertical-align: top; }







    .wizard-settings table { min-width: 300px; max-width: 100%; font-size: .8em; margin: 0 auto; }







    .wizard-settings table caption { font-size: 1.5em; padding: 16px 8px; }







    .wizard-settings table td { padding: 4px 8px; }







    .wizard-settings table td:first-child { white-space: nowrap; }







    .wizard-settings table td:nth-child(2) { text-align: left; }







    .wizard-settings table td .values {







        color: #a08794;







        font-size: 0.8em;







        line-height: 1.3em;







        display: block;







        max-width: 126px;







    }







    .wizard-settings table td .values:before { content: \'\'; display: block; }







    .wizard-settings input,







    .wizard-settings select {







        width: 126px;







    }







	    .wizard-settings input {







        padding: 0px 4px;







    }







    .wizard-settings input[disabled] {







        color: #808080;







        background: #a7a7a7;







        border: 1px solid #a7a7a7;







    }







    .preview { width: 70%; float: left; }







    @media (min-width: 0px) {







        .preview { width: 100%; float: none; }







    }







    @media (min-width: 1024px) {







        .preview { width: calc(100% - 340px); }







        .wizard-settings { top: 0; min-height: 100%; }







        .wizard-settings .inner { margin-top: 60px; }







        .wizard-settings .footer { position: absolute; bottom: 0; left: 0; }







        .wizard-settings .settings-controls {







            position: fixed;







            top: 0; right: 0;







            width: 340px;







            padding: 10px 0 0;







            text-align: center;







            background-color: inherit;







        }







    }







    @media screen and (max-width: 1024px) {







        .api-controls button, .api-controls button:active, .api-controls button:focus {







            width: 70px;







        }







    }







    @media screen and (max-width: 1023px) {







        .app-figure { width: 98% !important; margin: 50px auto; padding: 0; }







        .app-code-sample { display: none; }







        .wizard-settings { width: 100%; }







    }







	    @media screen and (max-width: 600px) {







        .mz-thumb img { max-width: 39px; }







    }







    @media screen and (max-width: 560px) {







        .api-controls .sep { content: \'\'; display: table; }







    }







    @media screen and (min-width: 1600px) {







        .preview { padding: 10px 160px; }







    }







</style>







<script type="text/javascript">







    var mzOptions = {};







    mzOptions = {







        onZoomReady: function() {







            console.log(\'onReady\', arguments[0]);







        },







        onUpdate: function() {







            console.log(\'onUpdated\', arguments[0], arguments[1], arguments[2]);







        },







        onZoomIn: function() {







            console.log(\'onZoomIn\', arguments[0]);







        },







        onZoomOut: function() {







            console.log(\'onZoomOut\', arguments[0]);







        },







        onExpandOpen: function() {







            console.log(\'onExpandOpen\', arguments[0]);







        },







        onExpandClose: function() {







            console.log(\'onExpandClosed\', arguments[0]);







        }







    };







    var mzMobileOptions = {};







    function isDefaultOption(o) {







        return magicJS.$A(magicJS.$(o).byTag(\'option\')).filter(function(opt){







            return opt.selected && opt.defaultSelected;







        }).length > 0;







    }







    function toOptionValue(v) {















        if ( /^(true|false)$/.test(v) ) {







            return \'true\' === v;







        }







        if ( /^[0-9]{1,}$/i.test(v) ) {







            return parseInt(v,10);







        }







        return v;







    }







    function makeOptions(optType) {







        var  value = null, isDefault = true, newParams = Array(), newParamsS = \'\', options = {};







        magicJS.$(magicJS.$A(magicJS.$(optType).getElementsByTagName("INPUT"))







            .concat(magicJS.$A(magicJS.$(optType).getElementsByTagName(\'SELECT\'))))







            .forEach(function(param){







                value = (\'checkbox\'==param.type) ? param.checked.toString() : param.value;







                isDefault = (\'checkbox\'==param.type) ? value == param.defaultChecked.toString() :







                    (\'SELECT\'==param.tagName) ? isDefaultOption(param) : value == param.defaultValue;







                if ( null !== value && !isDefault) {







                    options[param.name] = toOptionValue(value);







                }







        });







        return options;







    }







    function updateScriptCode() {







        var code = \'&lt;script&gt;
var mzOptions = \';







        code += JSON.stringify(mzOptions, null, 2).replace(/\"(\w+)\":/g,"$1:")+\';\';







        code += \'
&lt;/script&gt;\';







        magicJS.$(\'app-code-sample-script\').changeContent(code);







    }







    function updateInlineCode() {







        var code = \'&lt;a class="MagicZoom" data-options="\';







        code += JSON.stringify(mzOptions).replace(/\"(\w+)\":(?:\"([^"]+)\"|([^,}]+))(,)?/g, "$1: $2$3; ").replace(/\{([^{}]*)\}/,"$1").replace(/\s*$/,\'\');







        code += \'"&gt;\';







        magicJS.$(\'app-code-sample-inline\').changeContent(code);







    }







    function applySettings() {







        MagicZoom.stop(\'Zoom-1\');







        mzOptions = makeOptions(\'params\');







        mzMobileOptions = makeOptions(\'mobile-params\');







        MagicZoom.start(\'Zoom-1\');







        updateScriptCode();







        updateInlineCode();







        try {







            prettyPrint();







        } catch(e) {}







    }







    function copyToClipboard(src) {







        var







            copyNode,







            range, success;







        if (!isCopySupported()) {







            disableCopy();







            return;







        }







        copyNode = document.getElementById(\'code-to-copy\');







        copyNode.innerHTML = document.getElementById(src).innerHTML;







        range = document.createRange();







        range.selectNode(copyNode);







        window.getSelection().addRange(range);







        try {







            success = document.execCommand(\'copy\');







        } catch(err) {







            success = false;







        }







        window.getSelection().removeAllRanges();







        if (!success) {







            disableCopy();







        } else {







            new magicJS.Message(\'Settings code copied to clipboard.\', 3000,







                document.querySelector(\'.app-code-holder\'), \'copy-msg\');







        }







    }







    function disableCopy() {







        magicJS.$A(document.querySelectorAll(\'.cfg-btn-copy\')).forEach(function(node) {







            node.disabled = true;







        });



        new magicJS.Message(\'Sorry, cannot copy settings code to clipboard. Please select and copy code manually.\', 3000,



            document.querySelector(\'.app-code-holder\'), \'copy-msg copy-msg-failed\');



    }



    function isCopySupported() {



        if ( !window.getSelection || !document.createRange || !document.queryCommandSupported ) { return false; }



        return document.queryCommandSupported(\'copy\');



    }



</script>



</head>



<body>



   <!-------- Header  Start ----------------->



    <?php include("header.php")?>



    <!-------- Banner  Start ----------------->



     <div class="tus_banner">



       <img src="<?=ROOT?><?=$img_path?><?=$banner?>" class="img-responsive" alt="">



     </div>



    <!-------- Welcom About  Start ----------------->



    



     <div class="container">



        <div class="row">



           <div class="col-lg-12 col-md-12 col-sm-12">



              <div class="tus_nxpage">



                 <ul>



                   <li><a href="<?=ROOT?>index.php">home</a></li>



                   <li><span><i class="fa fa-angle-double-right" aria-hidden="true"></i></span></li><li><?=$M_head?></li>



                   <li><span><i class="fa fa-angle-double-right" aria-hidden="true"></i></span></li><li><?=$S_head?></li>



                 </ul>



              </div>



           </div>



        </div>



        <div class="row">



            <div class="col-lg-6 col-md-6 col-sm-6">



               <div class="tus_large" style="background-color:#fff; border:solid 4px #ccc">



                  <div class="app-figure" id="zoom-fig" style="margin:0 auto; text-align:center">



        <a id="Zoom-1" class="MagicZoom" title=""



           href="<?=ROOT?><?=$img_path?><?=$P_rs[\'img3\']?>"



        >



                    <img src="<?=ROOT?><?=$img_path?><?=$P_rs[\'img3\']?>" class="img-responsive" alt="" style="margin:0 auto; text-align:center"/>

                     <img src="<?=ROOT?>images/large_watermark.png" class="img-responsive images" alt="" style="margin:0 auto; text-align:center"/>



        </a>



        <div class="selectors">



          <?php



                    $QRYs = qry_run("select * from tbl_more where `pid` = \'".$product_id."\' order by ranking");



					if (num_rec($QRYs) > 0)



									{



									$prow = 1;



									$tr = "Yes";



									while($rss = fetch_rec($QRYs))



									{



				?>



           <a



                data-zoom-id="Zoom-1"



                href="<?=ROOT?>watermark.php?path=<?=$img_path?><?=$rss[\'img3\']?>"



                data-image="<?=ROOT?>watermark.php?path=<?=$img_path?><?=$rss[\'img3\']?>"



            >



                <img srcset="<?=ROOT?><?=$img_path?><?=$rss[\'img1\']?>" />



            </a>



            <?php }}?>



        </div>



    </div>



               </div>



            </div>



            <div class="col-lg-6 col-md-6 col-sm-6">



              <div class="tus_prodetail">



                <h1><?=$P_rs[\'pname\']?></h1>



                <h2><?=$P_rs[\'part\']?></h2>



                <p><span>Description:</span><br/><?=$P_rs[\'sdetail\']?></p>



          <script type="text/javascript">



            function submitform()



      {



            document.forms["frm_cart"].submit();



      }



         </script>



      <form class="product-cart" method="get" name="frm_cart" id="frm_cart" action="<?=ROOT?>addtocart.php">



      <div class="row" style="margin-bottom:10px;">



              <?php



				$QRYo = qry_run("select * from tbl_options where pshow = \'Yes\' order by ranking ");



						if (num_rec($QRYo) > 0)



						{



							$op = 1;



							while($rso = fetch_rec($QRYo))



							{



								$QRYp = qry_run("select * from tbl_prod_opt where opt_id = ".$rso[\'mainid\']." AND `pid` = \'".$product_id."\' order by sid");



								if (num_rec($QRYp) > 0)



								{



	?>



<div class="col-md-6">



 <h5 style="color:#000; font-weight:600; font-size:16px; font-family:\'Oswald\', sans-serif;"><?=$rso[\'pname\']?></h5>



<select name="opt<?=$op?>" id="opt<?=$op?>" style="width:100%; height:30px;">



                                    <!--<option><?=$rso[\'pname\']?></option>-->



                                       <?php



										while($rsp = fetch_rec($QRYp))



										{



											$sub_rate = "";



											if ($rsp[\'prate\'] > 0)



											{



												if ($rsp[\'ptype\'] == "Plus")



												{



													$sub_rate = "(+".$rsp[\'prate\'].")";



												}else{



													$sub_rate = "(-".$rsp[\'prate\'].")";



												}



											}



										?>



                                    <option value="<?=$rsp[\'sid\']?>"><?=$rsp[\'pname\']?>



                                              <?=$sub_rate?></option>



                                     <?php



										}



										?>



                                </select>



</div>



                    <?php



								$op = $op + 1;



								}



							}



				}?>



</div>



         <p style="font-size:15px; color:#000;"><strong>Quantity:</strong><br/>



<input type="number" min="1" name="qty" id="qty" value="1" style="height:32px; border:solid 1px #000; font-size:14px; text-align:center; width:70px; margin-bottom:5px; color:#000"><br/>



       <input name="submit" class="tus_contsbmt" type="submit" value="Add To Basket">



         <button type="button" onClick="history.back(-1)" class="tus_contsbmt">Go Back</button>



         <input type="hidden" name="sub_mit" id="sub_mit" value="Yes" />



        </p>



      <input type="hidden" name="sub_mit" id="sub_mit" value="Yes" />



<?php



if($Url_ON == "Yes"){



?>



            <input type="hidden" name="live" value="<?=$P_rs[\'mainid\']?>_<?=$P_rs[\'secid\']?>_<?=$P_rs[\'catid\']?>_<?=$P_rs[\'pid\']?>" />



             <input type="hidden" name="pid" id="pid" value="<?=$P_rs[\'pid\']?>" />



             <?php }else{?>



         <!--<input type="hidden" name="live" value="<?=chf(\'live\')?>" />-->



         <?php }?>



 </form>



              </div>



            </div>



         </div>



      </div>



      <div class="container">







         <div class="row">



              <div class="col-lg-12 col-md-12 col-sm-12">



              <div class="tus_nxpage">



                 <ul>



                   <li>related products</li>



                 </ul>



              </div>



           </div>



              </div>



         <div class="row">



           <div id="owl-demo" class="owl-carousel">



			<?php 



            $sqlp = "Select * from tbl_prods where `pid` = \'".$product_id."\' order by ranking";



            $queryp = qry_run($sqlp);



            $rsp = fetch_rec($queryp);



            $sql = "Select * from tbl_prods where pshow = \'Yes\' AND mainid = ".$rsp[\'mainid\']." AND secid = ".$rsp[\'secid\']." AND catid = ".$rsp[\'catid\']." AND pid <> ".$product_id." order by ranking";



            $query = qry_run($sql);



            $rs_num = num_rec($query);



            if ($rs_num > 0)



            {



            $tr = "Yes";



            $prow = 1;



            while ($rs = fetch_rec($query))



            {



            if($Url_ON == "Yes"){



            $plink = "".ROOT.$_GET[\'main\']."/".$_GET[\'sub\']."/".$rs[\'phead\']."";



            }else{



            $plink = "products.php?live=".$rs[\'mainid\']."_".$rs[\'secid\']."_".$rs[\'catid\']."_".$rs[\'pid\']."";



            }



            ?>



  <div class="item">



      <div class="tus_products">



                 <a href="<?=$plink?>"><img src="<?=ROOT?>watermark.php?path=<?=$img_path?><?=$rs[\'img2\']?>" class="img-responsive" alt=""></a>



                 <div class="tus_pbox">



                   <h4><?=$rs[\'pname\']?></h4>



                   <p><?=$rs[\'part\']?></p>



                   <ul>



                     <li><a href="<?=$plink?>"><i class="fa fa-search" aria-hidden="true"></i></a></li>



                     <li><a href="<?=$plink?>"><i class="fa fa-shopping-bag" aria-hidden="true"></i></a></li>



                   </ul>



                 </div>



              </div>







                             </div>







                     <?php }} ?>







                    </div>







         </div>







       </div>



    <!--------------- Footer Start ---------------->



    <?php include("footer.php")?>







    <!-- Optional JavaScript -->



    <!-- jQuery first, then Popper.js, then Bootstrap JS -->



    <script src="https://code.jquery.com/jquery-3.3.1.js"></script>



    <script src="<?=ROOT?>js/bootstrap.min.js"></script>



    <script src="<?=ROOT?>assets1/js/jquery-1.9.1.min.js"></script> 



    <script src="<?=ROOT?>owl-carousel/owl.carousel.js"></script>



<style>



#owl-demo .item{



margin: 0px 10px;



}



#owl-demo .item img{



display: block;



}



</style>



<script>



    $(document).ready(function() {



      $("#owl-demo").owlCarousel({



        autoPlay: true,



        slideSpeed: 2000,



        pagination: false,



        navigation: true,



        items: 4,



        navigationText:["<i class=\'fa fa-angle-left\'></i>", "<i class=\'fa fa-angle-right\'></i>"],



        itemsDesktop : [1199,4],



        itemsDesktopSmall : [979,3],



        itemsTablet : [768,3],



		itemsMobile : [479,1],



      });



	  });



    </script>



   <script src="<?=ROOT?>assets1/js/bootstrap-collapse.js"></script>



   <script src="<?=ROOT?>assets1/js/bootstrap-transition.js"></script>



   <script src="<?=ROOT?>assets1/js/bootstrap-tab.js"></script>



   <script src="<?=ROOT?>assets1/js/google-code-prettify/prettify.js"></script>



   <script src="<?=ROOT?>assets1/js/application.js"></script>



   



   <script>



var mzOptions = {



  zoomCaption: "top",



  variableZoom: true,



};



</script>



 <script type="text/javascript">



$(document).ready(function(){



  $(\'#navigation a, #fixedbar a\').on(\'click\', function(e) {



    e.preventDefault();



  });



  $(window).on(\'scroll\',function() {



    var scrolltop = $(this).scrollTop();



    if(scrolltop >= 215) {



      $(\'#fixedbar\').fadeIn(250);



    }



    else if(scrolltop <= 210) {



      $(\'#fixedbar\').fadeOut(250);



    }



  });



});



</script>



  </body>



</html>'

Did this file decode correctly?

Original Code

<?php @eval("?>".base64_decode("PD9waHANDQoNDQppbmNsdWRlICJ3ZWJ4bC9wYXJhbS5waHAiOw0NCg0NCmluY2x1ZGUgIndlYnhsL2Z1bmMucGhwIjsNDQoNDQppbmNsdWRlICJsaXZlLnBocCI7DQ0KDQ0KJHBpZCA9ICRfR0VUWydwaWQnXTsNDQoNDQokUF9RUnkgPSBxcnlfcnVuKCJTZWxlY3QgKiBmcm9tIHRibF9wcm9kcyB3aGVyZSBgcGhlYWRgID0gJyIuJHBpZC4iJyIpOw0NCg0NCmlmIChudW1fcmVjKCRQX1FSeSkgPiAwKQ0NCg0NCnsNDQoNDQoJJFBfcnMgPSBmZXRjaF9yZWMoJFBfUVJ5KTsNDQoNDQoJJFBfaGVhZCA9ICRQX3JzWydwbmFtZSddOw0NCg0NCgkkUF9SQU5LSU5HID0gJFBfcnNbJ3JhbmtpbmcnXTsNDQoNDQoJaWYgKCRQX3JzWydwaGVhZCddICE9ICIiKQ0NCg0NCgl7DQ0KDQ0KCQkkTV9waGVhZCA9ICRQX3JzWydwaGVhZCddOw0NCg0NCgl9DQ0KDQ0KCSRwX3RpdGxlID0gJFBfcnNbJ3BoZWFkJ107DQ0KDQ0KCSRwX2tleXdvcmRzID0gJFBfcnNbJ2tleXdvcmRzJ107DQ0KDQ0KCSRwX2Rlc2MgPSAkUF9yc1snZGVzY3JpcHRpb24nXTsNDQoNDQogICAgJHByb2R1Y3RfaWQgPSAkUF9yc1sncGlkJ107DQ0KDQ0KfQ0NCg0NCiRNX1FSeSA9IHFyeV9ydW4oIlNlbGVjdCAqIGZyb20gdGJsX21haW4gd2hlcmUgYG1haW5pZGAgPSAnIi4kUF9yc1snbWFpbmlkJ10uIicgIik7DQ0KDQ0KaWYgKG51bV9yZWMoJE1fUVJ5KSA+IDApDQ0KDQ0Kew0NCg0NCgkkTV9ycyA9IGZldGNoX3JlYygkTV9RUnkpOw0NCg0NCgkkTV9oZWFkID0gJE1fcnNbJ3BuYW1lJ107DQ0KDQ0KCSRNX0RldGFpbCA9ICRNX3JzWydwZGV0YWlsJ107DQ0KDQ0KCSRNX3BoZWFkID0gJE1fcnNbJ3BuYW1lJ107DQ0KDQ0KCWlmICgkTV9yc1sncGhlYWQnXSAhPSAiIikNDQoNDQoJew0NCg0NCgkJJE1fcGhlYWQgPSAkTV9yc1sncGhlYWQnXTsNDQoNDQoJfQ0NCg0NCgkkTV90aXRsZSA9ICRNX3JzWydwaGVhZCddOw0NCg0NCgkkTV9rZXl3b3JkcyA9ICRNX3JzWydrZXl3b3JkcyddOw0NCg0NCgkkTV9kZXNjID0gJE1fcnNbJ2Rlc2NyaXB0aW9uJ107DQ0KDQ0KCSRNX2ltZyA9ICRNX3JzWydpbWcxJ107DQ0KDQ0KCSRiYW5uZXIgPSAkTV9yc1snaW1nMiddOw0NCg0NCn0NDQoNDQokTV9RUnkgPSBxcnlfcnVuKCJTZWxlY3QgKiBmcm9tIHRibF9zZWN0aW9uIHdoZXJlIGBzZWNpZGAgPSAnIi4kUF9yc1snc2VjaWQnXS4iJyIpOw0NCg0NCmlmIChudW1fcmVjKCRNX1FSeSkgPiAwKQ0NCg0NCnsNDQoNDQoJJE1fcnMgPSBmZXRjaF9yZWMoJE1fUVJ5KTsNDQoNDQoJJFNfaGVhZCA9ICRNX3JzWydwbmFtZSddOw0NCg0NCgkkTV9waGVhZCA9ICRNX3JzWydwbmFtZSddOw0NCg0NCgkkTV9EZXRhaWwgPSAkTV9yc1sncGRldGFpbCddOw0NCg0NCgkkU19pbWcgPSAkTV9yc1snaW1nMSddOw0NCg0NCgkkU19CYW5uZXIgPSAkTV9yc1snaW1nMiddOw0NCg0NCglpZiAoJE1fcnNbJ3BoZWFkJ10gIT0gIiIpDQ0KDQ0KCXsNDQoNDQoJCSRNX3BoZWFkID0gJE1fcnNbJ3BoZWFkJ107DQ0KDQ0KCX0NDQoNDQoJJE1fa2V5d29yZHMgPSAkTV9yc1sna2V5d29yZHMnXTsNDQoNDQoJJE1fZGVzYyA9ICRNX3JzWydkZXNjcmlwdGlvbiddOw0NCg0NCn0NDQoNDQo/PjwhZG9jdHlwZSBodG1sPg0NCg0NCjxodG1sIGxhbmc9ImVuIj4NDQoNDQo8aGVhZD4NDQoNDQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0NCg0NCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iPg0NCg0NCiAgICA8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IldlYiBFeGNlbHMiPg0NCg0NCiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iV2ViIEV4Y2VscyI+DQ0KDQ0KICAgIDxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJXZWIgRGVzaWduaW5nICYgRGV2ZWxvcG1lbnQgQ29tcGFueSBodHRwczovL3d3dy53ZWJleGNlbHMuY29tLyI+DQ0KDQ0KICAgICA8dGl0bGU+PD89JHdlYl90aXRsZT8+PC90aXRsZT4NDQoNDQogICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9Ijw/PSR3ZWJfa2V5d29yZHM/PiI+DQ0KDQ0KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSI8Pz0kd2ViX2Rlc2M/PiI+DQ0KDQ0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iPD89Uk9PVD8+Y3NzL2FuaW1hdGUuY3NzIj4NDQoNDQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSI8Pz1ST09UPz5jc3MvdHVzZWVmX3dlYmV4Y2Vscy5jc3MiPg0NCg0NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ijw/PVJPT1Q/PmNzcy9mb250LWF3ZXNvbWUubWluLmNzcyI+DQ0KDQ0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iPD89Uk9PVD8+Y3NzL2ZvbnQtYXdlc29tZS5jc3MiPg0NCg0NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ijw/PVJPT1Q/PmNzcy9ib290c3RyYXAubWluLmNzcyI+DQ0KDQ0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iPD89Uk9PVD8+Y3NzL3RwbWVudS5jc3MiPg0NCg0NCiAgICA8bGluayBocmVmPSI8Pz1ST09UPz5vd2wtY2Fyb3VzZWwvb3dsLmNhcm91c2VsLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4NDQoNDQogICAgPGxpbmsgaHJlZj0iPD89Uk9PVD8+b3dsLWNhcm91c2VsL293bC50aGVtZS5jc3MiIHJlbD0ic3R5bGVzaGVldCI+DQ0KDQ0KICAgIDxsaW5rIGhyZWY9Ijw/PVJPT1Q/PmFzc2V0czEvanMvZ29vZ2xlLWNvZGUtcHJldHRpZnkvcHJldHRpZnkuY3NzIiByZWw9InN0eWxlc2hlZXQiPg0NCg0NCiAgICA8bGluayBocmVmPSI8Pz1ST09UPz5tYWdpY3pvb21wbHVzL21hZ2ljem9vbXBsdXMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIi8+DQ0KDQ0KICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSI8Pz1ST09UPz5pbWFnZXMvZmF2aWNvbi5pY28iPg0NCg0NCiAgICA8c2NyaXB0IHNyYz0iaHR0cDovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktbGF0ZXN0Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NDQoNDQogICAgPHNjcmlwdCBzcmM9Ijw/PVJPT1Q/Pm1hZ2ljem9vbXBsdXMvbWFnaWN6b29tcGx1cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NDQoNDQogICAgPHNjcmlwdCBzcmM9Ijw/PVJPT1Q/PmpzL3NjcmlwdDEuanMiPjwvc2NyaXB0Pg0NCg0NCiAgICA8c2NyaXB0IHNyYz0iPD89Uk9PVD8+anMvd293Lm1pbi5qcyI+PC9zY3JpcHQ+DQ0KDQ0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gbmV3IFdPVygpLmluaXQoKTs8L3NjcmlwdD4NDQoNDQogICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NDQoNDQoNDQoNDQogICAgLmNmZy1idG4gew0NCg0NCg0NCg0NCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDU1LCAxODEsIDExNCk7DQ0KDQ0KDQ0KDQ0KICAgICAgICBjb2xvcjogI2ZmZjsNDQoNDQoNDQoNDQogICAgICAgIGJvcmRlcjogMDsNDQoNDQoNDQoNDQogICAgICAgIGJveC1zaGFkb3c6IDAgMCAxcHggMHB4IHJnYmEoMCwwLDAsMC4zKTsNDQoNDQoNDQoNDQogICAgICAgIG91dGxpbmU6MDsNDQoNDQoNDQoNDQogICAgICAgIGN1cnNvcjogcG9pbnRlcjsNDQoNDQoNDQoNDQogICAgICAgIHdpZHRoOiAyMDBweDsNDQoNDQoNDQoNDQogICAgICAgIHBhZGRpbmc6IDEwcHg7DQ0KDQ0KDQ0KDQ0KICAgICAgICBmb250LXNpemU6IDFlbTsNDQoNDQoNDQoNDQogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNDQoNDQoNDQoNDQogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNDQoNDQoNDQoNDQogICAgICAgIG1hcmdpbjogMTBweCBhdXRvOw0NCg0NCg0NCg0NCiAgICB9DQ0KDQ0KDQ0KDQ0KICAgIC5jZmctYnRuOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzcsIDIxNSwgMTIwKTsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICAubW9iaWxlLW1hZ2ljIC5jZmctYnRuOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7IGJhY2tncm91bmQ6IHJnYig1NSwgMTgxLCAxMTQpOyB9DQ0KDQ0KDQ0KDQ0KICAgIC5jZmctYnRuW2Rpc2FibGVkXSB7IG9wYWNpdHk6IC41OyBjb2xvcjogIzgwODA4MDsgYmFja2dyb3VuZDogI2RkZDsgfQ0NCg0NCg0NCg0NCiAgICAuY2ZnLWJ0bi5idG4tcHJldmlldywNDQoNDQoNDQoNDQogICAgLmNmZy1idG4uYnRuLXByZXZpZXc6YWN0aXZlLA0NCg0NCg0NCg0NCiAgICAuY2ZnLWJ0bi5idG4tcHJldmlldzpmb2N1cyB7DQ0KDQ0KDQ0KDQ0KICAgICAgICBmb250LXNpemU6IDFlbTsNDQoNDQoNDQoNDQoJICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNDQoNDQoNDQoNDQogICAgICAgIGRpc3BsYXk6IGJsb2NrOw0NCg0NCg0NCg0NCiAgICAgICAgbWFyZ2luOiAxMHB4IGF1dG87DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgLmNmZy1idG4sDQ0KDQ0KDQ0KDQ0KICAgIC5wcmV2aWV3LA0NCg0NCg0NCg0NCiAgICAuYXBwLWZpZ3VyZSwNDQoNDQoNDQoNDQogICAgLmFwaS1jb250cm9scywNDQoNDQoNDQoNDQogICAgLndpemFyZC1zZXR0aW5ncywNDQoNDQoNDQoNDQogICAgLndpemFyZC1zZXR0aW5ncyAuaW5uZXIsDQ0KDQ0KDQ0KDQ0KICAgIC53aXphcmQtc2V0dGluZ3MgLmZvb3RlciwNDQoNDQoNDQoNDQogICAgLndpemFyZC1zZXR0aW5ncyBpbnB1dCwNDQoNDQoNDQoNDQogICAgLndpemFyZC1zZXR0aW5ncyBzZWxlY3Qgew0NCg0NCg0NCg0NCiAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94Ow0NCg0NCg0NCg0NCiAgICAgICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94Ow0NCg0NCg0NCg0NCiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0NCg0NCg0NCg0NCiAgICB9DQ0KDQ0KDQ0KDQ0KICAgIC5wcmV2aWV3LA0NCg0NCg0NCg0NCiAgICAud2l6YXJkLXNldHRpbmdzIHsNDQoNDQoNDQoNDQogICAgICAgIHBhZGRpbmc6IDEwcHg7DQ0KDQ0KDQ0KDQ0KICAgICAgICBib3JkZXI6IDA7DQ0KDQ0KDQ0KDQ0KCQkgbWluLWhlaWdodDogMXB4Ow0NCg0NCg0NCg0NCiAgICB9ICAgIC5wcmV2aWV3IHsNDQoNDQoNDQoNDQogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgfQ0NCg0NCg0NCg0NCiAgICAuYXBpLWNvbnRyb2xzIHsNDQoNDQoNDQoNDQogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICAuYXBpLWNvbnRyb2xzIGJ1dHRvbiwNDQoNDQoNDQoNDQogICAgLmFwaS1jb250cm9scyBidXR0b246YWN0aXZlLA0NCg0NCg0NCg0NCiAgICAuYXBpLWNvbnRyb2xzIGJ1dHRvbjpmb2N1cyB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgd2lkdGg6IDgwcHg7IGZvbnQtc2l6ZTogLjdlbTsNDQoNDQoNDQoNDQogICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0NCg0NCg0NCg0NCiAgICB9DQ0KDQ0KDQ0KDQ0KICAgIC5hcHAtZmlndXJlIHsNDQoNDQoNDQoNDQogICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7DQ0KDQ0KDQ0KDQ0KICAgICAgICBtYXJnaW46IDBweCBhdXRvOw0NCg0NCg0NCg0NCiAgICAgICAgYm9yZGVyOiAwcHggc29saWQgcmVkOw0NCg0NCg0NCg0NCiAgICAgICAgcGFkZGluZzogMHB4Ow0NCg0NCg0NCg0NCiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0NCg0NCg0NCg0NCiAgICB9DQ0KDQ0KDQ0KDQ0KICAgIC5zZWxlY3RvcnMgeyBtYXJnaW4tdG9wOiAxMHB4OyB9DQ0KDQ0KDQ0KDQ0KICAgIC5zZWxlY3RvcnMgLm16LXRodW1iIGltZyB7IG1heC13aWR0aDogNTZweDsgfQ0NCg0NCg0NCg0NCgkgICAgLmFwcC1jb2RlLXNhbXBsZSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICB3aWR0aDogMTAwJTsNDQoNDQoNDQoNDQogICAgICAgIG1hcmdpbjogMzBweCBhdXRvIDA7DQ0KDQ0KDQ0KDQ0KICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQ0KDQ0KDQ0KDQ0KICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgLmFwcC1jb2RlLXNhbXBsZSBpbnB1dFt0eXBlPSJyYWRpbyJdIHsNDQoNDQoNDQoNDQogICAgICAgIGRpc3BsYXk6IG5vbmU7DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgLmFwcC1jb2RlLXNhbXBsZSBsYWJlbCB7DQ0KDQ0KDQ0KDQ0KICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQ0KDQ0KDQ0KDQ0KICAgICAgICBwYWRkaW5nOiAycHggMTJweDsNDQoNDQoNDQoNDQogICAgICAgIG1hcmdpbjogMDsNDQoNDQoNDQoNDQogICAgICAgIGZvbnQtc2l6ZTogLjhlbTsNDQoNDQoNDQoNDQogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNDQoNDQoNDQoNDQogICAgICAgIGN1cnNvcjogcG9pbnRlcjsNDQoNDQoNDQoNDQogICAgICAgIGNvbG9yOiAjNjY2Ow0NCg0NCg0NCg0NCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMzYsIDEzNiwgMTM2LCAwLjUpOw0NCg0NCg0NCg0NCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgLmFwcC1jb2RlLXNhbXBsZSBsYWJlbDpob3ZlciB7DQ0KDQ0KDQ0KDQ0KICAgICAgICBjb2xvcjogI2ZmZjsNDQoNDQoNDQoNDQogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTMsIDE1NCwgMzApOw0NCg0NCg0NCg0NCiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoMjUzLCAxNTQsIDMwKTsgICAgfQ0NCg0NCg0NCg0NCiAgICAuYXBwLWNvZGUtc2FtcGxlIGlucHV0W3R5cGU9InJhZGlvIl06Y2hlY2tlZCtsYWJlbCB7DQ0KDQ0KDQ0KDQ0KICAgICAgICBjb2xvcjogI2ZmZjsNDQoNDQoNDQoNDQogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxMTAsIDExMCwgMTEwKSAhaW1wb3J0YW50Ow0NCg0NCg0NCg0NCiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDExMCwgMTEwLCAxMTAsIDAuNykgIWltcG9ydGFudDsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICAuYXBwLWNvZGUtc2FtcGxlIGxhYmVsOmZpcnN0LW9mLXR5cGUgew0NCg0NCg0NCg0NCiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7DQ0KDQ0KDQ0KDQ0KICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyAgICB9DQ0KDQ0KDQ0KDQ0KICAgIC5hcHAtY29kZS1zYW1wbGUgbGFiZWw6bGFzdC1vZi10eXBlIHsNDQoNDQoNDQoNDQogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwOw0NCg0NCg0NCg0NCiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50OyAgICB9DQ0KDQ0KDQ0KDQ0KICAgIC5hcHAtY29kZS1zYW1wbGUgLmFwcC1jb2RlLWhvbGRlciB7DQ0KDQ0KDQ0KDQ0KICAgICAgICBwYWRkaW5nOiAwOw0NCg0NCg0NCg0NCiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0NCg0NCg0NCg0NCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTsNDQoNDQoNDQoNDQogICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDsNDQoNDQoNDQoNDQogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7DQ0KDQ0KDQ0KDQ0KICAgICAgICBtYXJnaW46IDE1cHggMDsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICAuYXBwLWNvZGUtc2FtcGxlIC5hcHAtY29kZS1ob2xkZXIgPiBkaXYgew0NCg0NCg0NCg0NCiAgICAgICAgZGlzcGxheTogbm9uZTsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICAuYXBwLWNvZGUtc2FtcGxlIC5hcHAtY29kZS1ob2xkZXIgcHJlIHsNDQoNDQoNDQoNDQogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7DQ0KDQ0KDQ0KDQ0KICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7DQ0KDQ0KDQ0KDQ0KICAgICAgICBib3JkZXI6IDBweCBzb2xpZCAjZWVlOw0NCg0NCg0NCg0NCiAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4Ow0NCg0NCg0NCg0NCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7DQ0KDQ0KDQ0KDQ0KICAgICAgICBwYWRkaW5nOiAyNXB4IDUwcHggMjVweCAyNXB4Ow0NCg0NCg0NCg0NCiAgICAgICAgbWFyZ2luOiAwOw0NCg0NCg0NCg0NCiAgICAgICAgbWluLWhlaWdodDogMjVweDsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICAuYXBwLWNvZGUtc2FtcGxlIGlucHV0W3R5cGU9InJhZGlvIl06bnRoLW9mLXR5cGUoMSk6Y2hlY2tlZCB+IC5hcHAtY29kZS1ob2xkZXIgPiBkaXY6bnRoLW9mLXR5cGUoMSkgew0NCg0NCg0NCg0NCiAgICAgICAgZGlzcGxheTogYmxvY2s7DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgLmFwcC1jb2RlLXNhbXBsZSBpbnB1dFt0eXBlPSJyYWRpbyJdOm50aC1vZi10eXBlKDIpOmNoZWNrZWQgfiAuYXBwLWNvZGUtaG9sZGVyID4gZGl2Om50aC1vZi10eXBlKDIpIHsNDQoNDQoNDQoNDQogICAgICAgIGRpc3BsYXk6IGJsb2NrICAgIH0NDQoNDQoNDQoNDQogICAgLmFwcC1jb2RlLXNhbXBsZSAuYXBwLWNvZGUtaG9sZGVyIC5jZmctYnRuLWNvcHkgew0NCg0NCg0NCg0NCiAgICAgICAgZGlzcGxheTogbm9uZTsNDQoNDQoNDQoNDQogICAgICAgIHotaW5kZXg6IC0xOw0NCg0NCg0NCg0NCiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOw0NCg0NCg0NCg0NCiAgICAgICAgdG9wOjEwcHg7IHJpZ2h0OiAxMHB4Ow0NCg0NCg0NCg0NCiAgICAgICAgd2lkdGg6IDQ0cHg7DQ0KDQ0KDQ0KDQ0KICAgICAgICBmb250LXNpemU6IC42NWVtOw0NCg0NCg0NCg0NCiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNDQoNDQoNDQoNDQogICAgICAgIG1hcmdpbjogMDsNDQoNDQoNDQoNDQogICAgICAgIHBhZGRpbmc6IDRweDsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICAuY29weS1tc2cgew0NCg0NCg0NCg0NCiAgICAgICAgZm9udDogbm9ybWFsIDExcHgvMS4yZW0gJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCAnTHVjaWRhIEdyYW5kZScsICdMdWNpZGEgU2FucyBVbmljb2RlJywgVmVyZGFuYSwgQXJpYWwsIHNhbnMtc2VyaWY7DQ0KDQ0KDQ0KDQ0KICAgICAgICBjb2xvcjogIzJhNGQxNDsNDQoNDQoNDQoNDQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMyYTRkMTQ7DQ0KDQ0KDQ0KDQ0KICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7DQ0KDQ0KDQ0KDQ0KICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQ0KDQ0KDQ0KDQ0KICAgICAgICB0b3A6IDhweDsNDQoNDQoNDQoNDQogICAgICAgIGxlZnQ6IDA7DQ0KDQ0KDQ0KDQ0KICAgICAgICByaWdodDogMDsNDQoNDQoNDQoNDQogICAgICAgIHdpZHRoOiAyMDBweDsNDQoNDQoNDQoNDQogICAgICAgIG1heC13aWR0aDogNzAlOw0NCg0NCg0NCg0NCiAgICAgICAgcGFkZGluZzogNHB4Ow0NCg0NCg0NCg0NCiAgICAgICAgbWFyZ2luOiAwcHggYXV0bzsNDQoNDQoNDQoNDQogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICAuY29weS1tc2ctZmFpbGVkIHsNDQoNDQoNDQoNDQogICAgICAgIGNvbG9yOiAjYjgwYzA5Ow0NCg0NCg0NCg0NCiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYjgwYzA5Ow0NCg0NCg0NCg0NCiAgICAgICAgd2lkdGg6IDQzMHB4Ow0NCg0NCg0NCg0NCiAgICB9DQ0KDQ0KDQ0KDQ0KICAgIC5tb2JpbGUtbWFnaWMgLmFwcC1jb2RlLXNhbXBsZSAuY2ZnLWJ0bi1jb3B5IHsgZGlzcGxheTogbm9uZTsgfQ0NCg0NCg0NCg0NCiAgICAjY29kZS10by1jb3B5IHsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMDsgaGVpZ2h0OiAwOyB0b3A6IC0xMDAwMHB4OyB9DQ0KDQ0KDQ0KDQ0KICAgIC5sdC1pZTktbWFnaWMgLmFwcC1jb2RlLXNhbXBsZSB7IGRpc3BsYXk6IG5vbmU7IH0NDQoNDQoNDQoNDQoJICAgIC53aXphcmQtc2V0dGluZ3Mgew0NCg0NCg0NCg0NCiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRmNGY0ZjsNDQoNDQoNDQoNDQogICAgICAgIGNvbG9yOiAjYTVhNWE1Ow0NCg0NCg0NCg0NCgkgICAgcG9zaXRpb246IGFic29sdXRlOw0NCg0NCg0NCg0NCiAgICAgICAgcmlnaHQ6IDA7DQ0KDQ0KDQ0KDQ0KICAgICAgICB3aWR0aDogMzQwcHg7DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgLndpemFyZC1zZXR0aW5ncyAuaW5uZXIgew0NCg0NCg0NCg0NCiAgICAgICAgd2lkdGg6IDEwMCU7DQ0KDQ0KDQ0KDQ0KICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0NCg0NCg0NCg0NCiAgICB9DQ0KDQ0KDQ0KDQ0KICAgIC53aXphcmQtc2V0dGluZ3MgLmZvb3RlciB7DQ0KDQ0KDQ0KDQ0KICAgICAgICBjb2xvcjogI2M3ZDU5ZjsNDQoNDQoNDQoNDQogICAgICAgIGZvbnQtc2l6ZTogLjc1ZW07DQ0KDQ0KDQ0KDQ0KICAgICAgICB3aWR0aDogMTAwJTsNDQoNDQoNDQoNDQogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNDQoNDQoNDQoNDQogICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207DQ0KDQ0KDQ0KDQ0KICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQ0KDQ0KDQ0KDQ0KICAgICAgICBwYWRkaW5nOiA2cHg7DQ0KDQ0KDQ0KDQ0KICAgICAgICBtYXJnaW4tdG9wOiAxMHB4Ow0NCg0NCg0NCg0NCiAgICB9DQ0KDQ0KDQ0KDQ0KICAgIC53aXphcmQtc2V0dGluZ3MgLmZvb3RlciBhIHsgY29sb3I6IGluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0NCg0NCg0NCg0NCiAgICAud2l6YXJkLXNldHRpbmdzIC5mb290ZXIgYTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9DQ0KDQ0KDQ0KDQ0KICAgIC53aXphcmQtc2V0dGluZ3MgYSB7IGNvbG9yOiAjY2M5OTMzOyB9DQ0KDQ0KDQ0KDQ0KICAgIC53aXphcmQtc2V0dGluZ3MgYTpob3ZlciB7IGNvbG9yOiAjZGZiMzYzOyB9DQ0KDQ0KDQ0KDQ0KICAgIC53aXphcmQtc2V0dGluZ3MgdGFibGUgPiB0Ym9keSA+IHRyID4gdGQgeyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9DQ0KDQ0KDQ0KDQ0KICAgIC53aXphcmQtc2V0dGluZ3MgdGFibGUgeyBtaW4td2lkdGg6IDMwMHB4OyBtYXgtd2lkdGg6IDEwMCU7IGZvbnQtc2l6ZTogLjhlbTsgbWFyZ2luOiAwIGF1dG87IH0NDQoNDQoNDQoNDQogICAgLndpemFyZC1zZXR0aW5ncyB0YWJsZSBjYXB0aW9uIHsgZm9udC1zaXplOiAxLjVlbTsgcGFkZGluZzogMTZweCA4cHg7IH0NDQoNDQoNDQoNDQogICAgLndpemFyZC1zZXR0aW5ncyB0YWJsZSB0ZCB7IHBhZGRpbmc6IDRweCA4cHg7IH0NDQoNDQoNDQoNDQogICAgLndpemFyZC1zZXR0aW5ncyB0YWJsZSB0ZDpmaXJzdC1jaGlsZCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0NDQoNDQoNDQoNDQogICAgLndpemFyZC1zZXR0aW5ncyB0YWJsZSB0ZDpudGgtY2hpbGQoMikgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9DQ0KDQ0KDQ0KDQ0KICAgIC53aXphcmQtc2V0dGluZ3MgdGFibGUgdGQgLnZhbHVlcyB7DQ0KDQ0KDQ0KDQ0KICAgICAgICBjb2xvcjogI2EwODc5NDsNDQoNDQoNDQoNDQogICAgICAgIGZvbnQtc2l6ZTogMC44ZW07DQ0KDQ0KDQ0KDQ0KICAgICAgICBsaW5lLWhlaWdodDogMS4zZW07DQ0KDQ0KDQ0KDQ0KICAgICAgICBkaXNwbGF5OiBibG9jazsNDQoNDQoNDQoNDQogICAgICAgIG1heC13aWR0aDogMTI2cHg7DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgLndpemFyZC1zZXR0aW5ncyB0YWJsZSB0ZCAudmFsdWVzOmJlZm9yZSB7IGNvbnRlbnQ6ICcnOyBkaXNwbGF5OiBibG9jazsgfQ0NCg0NCg0NCg0NCiAgICAud2l6YXJkLXNldHRpbmdzIGlucHV0LA0NCg0NCg0NCg0NCiAgICAud2l6YXJkLXNldHRpbmdzIHNlbGVjdCB7DQ0KDQ0KDQ0KDQ0KICAgICAgICB3aWR0aDogMTI2cHg7DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQoJICAgIC53aXphcmQtc2V0dGluZ3MgaW5wdXQgew0NCg0NCg0NCg0NCiAgICAgICAgcGFkZGluZzogMHB4IDRweDsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICAud2l6YXJkLXNldHRpbmdzIGlucHV0W2Rpc2FibGVkXSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICBjb2xvcjogIzgwODA4MDsNDQoNDQoNDQoNDQogICAgICAgIGJhY2tncm91bmQ6ICNhN2E3YTc7DQ0KDQ0KDQ0KDQ0KICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTdhN2E3Ow0NCg0NCg0NCg0NCiAgICB9DQ0KDQ0KDQ0KDQ0KICAgIC5wcmV2aWV3IHsgd2lkdGg6IDcwJTsgZmxvYXQ6IGxlZnQ7IH0NDQoNDQoNDQoNDQogICAgQG1lZGlhIChtaW4td2lkdGg6IDBweCkgew0NCg0NCg0NCg0NCiAgICAgICAgLnByZXZpZXcgeyB3aWR0aDogMTAwJTsgZmxvYXQ6IG5vbmU7IH0NDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAucHJldmlldyB7IHdpZHRoOiBjYWxjKDEwMCUgLSAzNDBweCk7IH0NDQoNDQoNDQoNDQogICAgICAgIC53aXphcmQtc2V0dGluZ3MgeyB0b3A6IDA7IG1pbi1oZWlnaHQ6IDEwMCU7IH0NDQoNDQoNDQoNDQogICAgICAgIC53aXphcmQtc2V0dGluZ3MgLmlubmVyIHsgbWFyZ2luLXRvcDogNjBweDsgfQ0NCg0NCg0NCg0NCiAgICAgICAgLndpemFyZC1zZXR0aW5ncyAuZm9vdGVyIHsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IGxlZnQ6IDA7IH0NDQoNDQoNDQoNDQogICAgICAgIC53aXphcmQtc2V0dGluZ3MgLnNldHRpbmdzLWNvbnRyb2xzIHsNDQoNDQoNDQoNDQogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgdG9wOiAwOyByaWdodDogMDsNDQoNDQoNDQoNDQogICAgICAgICAgICB3aWR0aDogMzQwcHg7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgcGFkZGluZzogMTBweCAwIDA7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0NCg0NCg0NCg0NCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQ0KDQ0KDQ0KDQ0KICAgICAgICB9DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAuYXBpLWNvbnRyb2xzIGJ1dHRvbiwgLmFwaS1jb250cm9scyBidXR0b246YWN0aXZlLCAuYXBpLWNvbnRyb2xzIGJ1dHRvbjpmb2N1cyB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgd2lkdGg6IDcwcHg7DQ0KDQ0KDQ0KDQ0KICAgICAgICB9DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAuYXBwLWZpZ3VyZSB7IHdpZHRoOiA5OCUgIWltcG9ydGFudDsgbWFyZ2luOiA1MHB4IGF1dG87IHBhZGRpbmc6IDA7IH0NDQoNDQoNDQoNDQogICAgICAgIC5hcHAtY29kZS1zYW1wbGUgeyBkaXNwbGF5OiBub25lOyB9DQ0KDQ0KDQ0KDQ0KICAgICAgICAud2l6YXJkLXNldHRpbmdzIHsgd2lkdGg6IDEwMCU7IH0NDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCgkgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHsNDQoNDQoNDQoNDQogICAgICAgIC5tei10aHVtYiBpbWcgeyBtYXgtd2lkdGg6IDM5cHg7IH0NDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgew0NCg0NCg0NCg0NCiAgICAgICAgLmFwaS1jb250cm9scyAuc2VwIHsgY29udGVudDogJyc7IGRpc3BsYXk6IHRhYmxlOyB9DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTYwMHB4KSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAucHJldmlldyB7IHBhZGRpbmc6IDEwcHggMTYwcHg7IH0NDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCjwvc3R5bGU+DQ0KDQ0KDQ0KDQ0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0NCg0NCg0NCg0NCiAgICB2YXIgbXpPcHRpb25zID0ge307DQ0KDQ0KDQ0KDQ0KICAgIG16T3B0aW9ucyA9IHsNDQoNDQoNDQoNDQogICAgICAgIG9uWm9vbVJlYWR5OiBmdW5jdGlvbigpIHsNDQoNDQoNDQoNDQogICAgICAgICAgICBjb25zb2xlLmxvZygnb25SZWFkeScsIGFyZ3VtZW50c1swXSk7DQ0KDQ0KDQ0KDQ0KICAgICAgICB9LA0NCg0NCg0NCg0NCiAgICAgICAgb25VcGRhdGU6IGZ1bmN0aW9uKCkgew0NCg0NCg0NCg0NCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdvblVwZGF0ZWQnLCBhcmd1bWVudHNbMF0sIGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdKTsNDQoNDQoNDQoNDQogICAgICAgIH0sDQ0KDQ0KDQ0KDQ0KICAgICAgICBvblpvb21JbjogZnVuY3Rpb24oKSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgY29uc29sZS5sb2coJ29uWm9vbUluJywgYXJndW1lbnRzWzBdKTsNDQoNDQoNDQoNDQogICAgICAgIH0sDQ0KDQ0KDQ0KDQ0KICAgICAgICBvblpvb21PdXQ6IGZ1bmN0aW9uKCkgew0NCg0NCg0NCg0NCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdvblpvb21PdXQnLCBhcmd1bWVudHNbMF0pOw0NCg0NCg0NCg0NCiAgICAgICAgfSwNDQoNDQoNDQoNDQogICAgICAgIG9uRXhwYW5kT3BlbjogZnVuY3Rpb24oKSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgY29uc29sZS5sb2coJ29uRXhwYW5kT3BlbicsIGFyZ3VtZW50c1swXSk7DQ0KDQ0KDQ0KDQ0KICAgICAgICB9LA0NCg0NCg0NCg0NCiAgICAgICAgb25FeHBhbmRDbG9zZTogZnVuY3Rpb24oKSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgY29uc29sZS5sb2coJ29uRXhwYW5kQ2xvc2VkJywgYXJndW1lbnRzWzBdKTsNDQoNDQoNDQoNDQogICAgICAgIH0NDQoNDQoNDQoNDQogICAgfTsNDQoNDQoNDQoNDQogICAgdmFyIG16TW9iaWxlT3B0aW9ucyA9IHt9Ow0NCg0NCg0NCg0NCiAgICBmdW5jdGlvbiBpc0RlZmF1bHRPcHRpb24obykgew0NCg0NCg0NCg0NCiAgICAgICAgcmV0dXJuIG1hZ2ljSlMuJEEobWFnaWNKUy4kKG8pLmJ5VGFnKCdvcHRpb24nKSkuZmlsdGVyKGZ1bmN0aW9uKG9wdCl7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgcmV0dXJuIG9wdC5zZWxlY3RlZCAmJiBvcHQuZGVmYXVsdFNlbGVjdGVkOw0NCg0NCg0NCg0NCiAgICAgICAgfSkubGVuZ3RoID4gMDsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICBmdW5jdGlvbiB0b09wdGlvblZhbHVlKHYpIHsNDQoNDQoNDQoNDQoNDQoNDQoNDQoNDQogICAgICAgIGlmICggL14odHJ1ZXxmYWxzZSkkLy50ZXN0KHYpICkgew0NCg0NCg0NCg0NCiAgICAgICAgICAgIHJldHVybiAndHJ1ZScgPT09IHY7DQ0KDQ0KDQ0KDQ0KICAgICAgICB9DQ0KDQ0KDQ0KDQ0KICAgICAgICBpZiAoIC9eWzAtOV17MSx9JC9pLnRlc3QodikgKSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHYsMTApOw0NCg0NCg0NCg0NCiAgICAgICAgfQ0NCg0NCg0NCg0NCiAgICAgICAgcmV0dXJuIHY7DQ0KDQ0KDQ0KDQ0KICAgIH0NDQoNDQoNDQoNDQogICAgZnVuY3Rpb24gbWFrZU9wdGlvbnMob3B0VHlwZSkgew0NCg0NCg0NCg0NCiAgICAgICAgdmFyICB2YWx1ZSA9IG51bGwsIGlzRGVmYXVsdCA9IHRydWUsIG5ld1BhcmFtcyA9IEFycmF5KCksIG5ld1BhcmFtc1MgPSAnJywgb3B0aW9ucyA9IHt9Ow0NCg0NCg0NCg0NCiAgICAgICAgbWFnaWNKUy4kKG1hZ2ljSlMuJEEobWFnaWNKUy4kKG9wdFR5cGUpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpKQ0NCg0NCg0NCg0NCiAgICAgICAgICAgIC5jb25jYXQobWFnaWNKUy4kQShtYWdpY0pTLiQob3B0VHlwZSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ1NFTEVDVCcpKSkpDQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgLmZvckVhY2goZnVuY3Rpb24ocGFyYW0pew0NCg0NCg0NCg0NCiAgICAgICAgICAgICAgICB2YWx1ZSA9ICgnY2hlY2tib3gnPT1wYXJhbS50eXBlKSA/IHBhcmFtLmNoZWNrZWQudG9TdHJpbmcoKSA6IHBhcmFtLnZhbHVlOw0NCg0NCg0NCg0NCiAgICAgICAgICAgICAgICBpc0RlZmF1bHQgPSAoJ2NoZWNrYm94Jz09cGFyYW0udHlwZSkgPyB2YWx1ZSA9PSBwYXJhbS5kZWZhdWx0Q2hlY2tlZC50b1N0cmluZygpIDoNDQoNDQoNDQoNDQogICAgICAgICAgICAgICAgICAgICgnU0VMRUNUJz09cGFyYW0udGFnTmFtZSkgPyBpc0RlZmF1bHRPcHRpb24ocGFyYW0pIDogdmFsdWUgPT0gcGFyYW0uZGVmYXVsdFZhbHVlOw0NCg0NCg0NCg0NCiAgICAgICAgICAgICAgICBpZiAoIG51bGwgIT09IHZhbHVlICYmICFpc0RlZmF1bHQpIHsNDQoNDQoNDQoNDQogICAgICAgICAgICAgICAgICAgIG9wdGlvbnNbcGFyYW0ubmFtZV0gPSB0b09wdGlvblZhbHVlKHZhbHVlKTsNDQoNDQoNDQoNDQogICAgICAgICAgICAgICAgfQ0NCg0NCg0NCg0NCiAgICAgICAgfSk7DQ0KDQ0KDQ0KDQ0KICAgICAgICByZXR1cm4gb3B0aW9uczsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICBmdW5jdGlvbiB1cGRhdGVTY3JpcHRDb2RlKCkgew0NCg0NCg0NCg0NCiAgICAgICAgdmFyIGNvZGUgPSAnJmx0O3NjcmlwdCZndDtcbnZhciBtek9wdGlvbnMgPSAnOw0NCg0NCg0NCg0NCiAgICAgICAgY29kZSArPSBKU09OLnN0cmluZ2lmeShtek9wdGlvbnMsIG51bGwsIDIpLnJlcGxhY2UoL1wiKFx3KylcIjovZywiJDE6IikrJzsnOw0NCg0NCg0NCg0NCiAgICAgICAgY29kZSArPSAnXG4mbHQ7L3NjcmlwdCZndDsnOw0NCg0NCg0NCg0NCiAgICAgICAgbWFnaWNKUy4kKCdhcHAtY29kZS1zYW1wbGUtc2NyaXB0JykuY2hhbmdlQ29udGVudChjb2RlKTsNDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICBmdW5jdGlvbiB1cGRhdGVJbmxpbmVDb2RlKCkgew0NCg0NCg0NCg0NCiAgICAgICAgdmFyIGNvZGUgPSAnJmx0O2EgY2xhc3M9Ik1hZ2ljWm9vbSIgZGF0YS1vcHRpb25zPSInOw0NCg0NCg0NCg0NCiAgICAgICAgY29kZSArPSBKU09OLnN0cmluZ2lmeShtek9wdGlvbnMpLnJlcGxhY2UoL1wiKFx3KylcIjooPzpcIihbXiJdKylcInwoW14sfV0rKSkoLCk/L2csICIkMTogJDIkMzsgIikucmVwbGFjZSgvXHsoW157fV0qKVx9LywiJDEiKS5yZXBsYWNlKC9ccyokLywnJyk7DQ0KDQ0KDQ0KDQ0KICAgICAgICBjb2RlICs9ICciJmd0Oyc7DQ0KDQ0KDQ0KDQ0KICAgICAgICBtYWdpY0pTLiQoJ2FwcC1jb2RlLXNhbXBsZS1pbmxpbmUnKS5jaGFuZ2VDb250ZW50KGNvZGUpOw0NCg0NCg0NCg0NCiAgICB9DQ0KDQ0KDQ0KDQ0KICAgIGZ1bmN0aW9uIGFwcGx5U2V0dGluZ3MoKSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICBNYWdpY1pvb20uc3RvcCgnWm9vbS0xJyk7DQ0KDQ0KDQ0KDQ0KICAgICAgICBtek9wdGlvbnMgPSBtYWtlT3B0aW9ucygncGFyYW1zJyk7DQ0KDQ0KDQ0KDQ0KICAgICAgICBtek1vYmlsZU9wdGlvbnMgPSBtYWtlT3B0aW9ucygnbW9iaWxlLXBhcmFtcycpOw0NCg0NCg0NCg0NCiAgICAgICAgTWFnaWNab29tLnN0YXJ0KCdab29tLTEnKTsNDQoNDQoNDQoNDQogICAgICAgIHVwZGF0ZVNjcmlwdENvZGUoKTsNDQoNDQoNDQoNDQogICAgICAgIHVwZGF0ZUlubGluZUNvZGUoKTsNDQoNDQoNDQoNDQogICAgICAgIHRyeSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgcHJldHR5UHJpbnQoKTsNDQoNDQoNDQoNDQogICAgICAgIH0gY2F0Y2goZSkge30NDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICBmdW5jdGlvbiBjb3B5VG9DbGlwYm9hcmQoc3JjKSB7DQ0KDQ0KDQ0KDQ0KICAgICAgICB2YXINDQoNDQoNDQoNDQogICAgICAgICAgICBjb3B5Tm9kZSwNDQoNDQoNDQoNDQogICAgICAgICAgICByYW5nZSwgc3VjY2VzczsNDQoNDQoNDQoNDQogICAgICAgIGlmICghaXNDb3B5U3VwcG9ydGVkKCkpIHsNDQoNDQoNDQoNDQogICAgICAgICAgICBkaXNhYmxlQ29weSgpOw0NCg0NCg0NCg0NCiAgICAgICAgICAgIHJldHVybjsNDQoNDQoNDQoNDQogICAgICAgIH0NDQoNDQoNDQoNDQogICAgICAgIGNvcHlOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvZGUtdG8tY29weScpOw0NCg0NCg0NCg0NCiAgICAgICAgY29weU5vZGUuaW5uZXJIVE1MID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3JjKS5pbm5lckhUTUw7DQ0KDQ0KDQ0KDQ0KICAgICAgICByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7DQ0KDQ0KDQ0KDQ0KICAgICAgICByYW5nZS5zZWxlY3ROb2RlKGNvcHlOb2RlKTsNDQoNDQoNDQoNDQogICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZShyYW5nZSk7DQ0KDQ0KDQ0KDQ0KICAgICAgICB0cnkgew0NCg0NCg0NCg0NCiAgICAgICAgICAgIHN1Y2Nlc3MgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpOw0NCg0NCg0NCg0NCiAgICAgICAgfSBjYXRjaChlcnIpIHsNDQoNDQoNDQoNDQogICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7DQ0KDQ0KDQ0KDQ0KICAgICAgICB9DQ0KDQ0KDQ0KDQ0KICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7DQ0KDQ0KDQ0KDQ0KICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsNDQoNDQoNDQoNDQogICAgICAgICAgICBkaXNhYmxlQ29weSgpOw0NCg0NCg0NCg0NCiAgICAgICAgfSBlbHNlIHsNDQoNDQoNDQoNDQogICAgICAgICAgICBuZXcgbWFnaWNKUy5NZXNzYWdlKCdTZXR0aW5ncyBjb2RlIGNvcGllZCB0byBjbGlwYm9hcmQuJywgMzAwMCwNDQoNDQoNDQoNDQogICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmFwcC1jb2RlLWhvbGRlcicpLCAnY29weS1tc2cnKTsNDQoNDQoNDQoNDQogICAgICAgIH0NDQoNDQoNDQoNDQogICAgfQ0NCg0NCg0NCg0NCiAgICBmdW5jdGlvbiBkaXNhYmxlQ29weSgpIHsNDQoNDQoNDQoNDQogICAgICAgIG1hZ2ljSlMuJEEoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNmZy1idG4tY29weScpKS5mb3JFYWNoKGZ1bmN0aW9uKG5vZGUpIHsNDQoNDQoNDQoNDQogICAgICAgICAgICBub2RlLmRpc2FibGVkID0gdHJ1ZTsNDQoNDQoNDQoNDQogICAgICAgIH0pOw0NCg0NCiAgICAgICAgbmV3IG1hZ2ljSlMuTWVzc2FnZSgnU29ycnksIGNhbm5vdCBjb3B5IHNldHRpbmdzIGNvZGUgdG8gY2xpcGJvYXJkLiBQbGVhc2Ugc2VsZWN0IGFuZCBjb3B5IGNvZGUgbWFudWFsbHkuJywgMzAwMCwNDQoNDQogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYXBwLWNvZGUtaG9sZGVyJyksICdjb3B5LW1zZyBjb3B5LW1zZy1mYWlsZWQnKTsNDQoNDQogICAgfQ0NCg0NCiAgICBmdW5jdGlvbiBpc0NvcHlTdXBwb3J0ZWQoKSB7DQ0KDQ0KICAgICAgICBpZiAoICF3aW5kb3cuZ2V0U2VsZWN0aW9uIHx8ICFkb2N1bWVudC5jcmVhdGVSYW5nZSB8fCAhZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9ydGVkICkgeyByZXR1cm4gZmFsc2U7IH0NDQoNDQogICAgICAgIHJldHVybiBkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoJ2NvcHknKTsNDQoNDQogICAgfQ0NCg0NCjwvc2NyaXB0Pg0NCg0NCjwvaGVhZD4NDQoNDQo8Ym9keT4NDQoNDQogICA8IS0tLS0tLS0tIEhlYWRlciAgU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0+DQ0KDQ0KICAgIDw/cGhwIGluY2x1ZGUoImhlYWRlci5waHAiKT8+DQ0KDQ0KICAgIDwhLS0tLS0tLS0gQmFubmVyICBTdGFydCAtLS0tLS0tLS0tLS0tLS0tLT4NDQoNDQogICAgIDxkaXYgY2xhc3M9InR1c19iYW5uZXIiPg0NCg0NCiAgICAgICA8aW1nIHNyYz0iPD89Uk9PVD8+PD89JGltZ19wYXRoPz48Pz0kYmFubmVyPz4iIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSIgYWx0PSIiPg0NCg0NCiAgICAgPC9kaXY+DQ0KDQ0KICAgIDwhLS0tLS0tLS0gV2VsY29tIEFib3V0ICBTdGFydCAtLS0tLS0tLS0tLS0tLS0tLT4NDQoNDQogICAgDQ0KDQ0KICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0NCg0NCiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NDQoNDQogICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiBjb2wtbWQtMTIgY29sLXNtLTEyIj4NDQoNDQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InR1c19ueHBhZ2UiPg0NCg0NCiAgICAgICAgICAgICAgICAgPHVsPg0NCg0NCiAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iPD89Uk9PVD8+aW5kZXgucGhwIj5ob21lPC9hPjwvbGk+DQ0KDQ0KICAgICAgICAgICAgICAgICAgIDxsaT48c3Bhbj48aSBjbGFzcz0iZmEgZmEtYW5nbGUtZG91YmxlLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvc3Bhbj48L2xpPjxsaT48Pz0kTV9oZWFkPz48L2xpPg0NCg0NCiAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWFuZ2xlLWRvdWJsZS1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT48L3NwYW4+PC9saT48bGk+PD89JFNfaGVhZD8+PC9saT4NDQoNDQogICAgICAgICAgICAgICAgIDwvdWw+DQ0KDQ0KICAgICAgICAgICAgICA8L2Rpdj4NDQoNDQogICAgICAgICAgIDwvZGl2Pg0NCg0NCiAgICAgICAgPC9kaXY+DQ0KDQ0KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPg0NCg0NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy02IGNvbC1tZC02IGNvbC1zbS02Ij4NDQoNDQogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0dXNfbGFyZ2UiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlcjpzb2xpZCA0cHggI2NjYyI+DQ0KDQ0KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXBwLWZpZ3VyZSIgaWQ9Inpvb20tZmlnIiBzdHlsZT0ibWFyZ2luOjAgYXV0bzsgdGV4dC1hbGlnbjpjZW50ZXIiPg0NCg0NCiAgICAgICAgPGEgaWQ9Ilpvb20tMSIgY2xhc3M9Ik1hZ2ljWm9vbSIgdGl0bGU9IiINDQoNDQogICAgICAgICAgIGhyZWY9Ijw/PVJPT1Q/Pjw/PSRpbWdfcGF0aD8+PD89JFBfcnNbJ2ltZzMnXT8+Ig0NCg0NCiAgICAgICAgPg0NCg0NCiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ijw/PVJPT1Q/Pjw/PSRpbWdfcGF0aD8+PD89JFBfcnNbJ2ltZzMnXT8+IiBjbGFzcz0iaW1nLXJlc3BvbnNpdmUiIGFsdD0iIiBzdHlsZT0ibWFyZ2luOjAgYXV0bzsgdGV4dC1hbGlnbjpjZW50ZXIiLz4NDQogICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iPD89Uk9PVD8+aW1hZ2VzL2xhcmdlX3dhdGVybWFyay5wbmciIGNsYXNzPSJpbWctcmVzcG9uc2l2ZSBpbWFnZXMiIGFsdD0iIiBzdHlsZT0ibWFyZ2luOjAgYXV0bzsgdGV4dC1hbGlnbjpjZW50ZXIiLz4NDQoNDQogICAgICAgIDwvYT4NDQoNDQogICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdG9ycyI+DQ0KDQ0KICAgICAgICAgIDw/cGhwDQ0KDQ0KICAgICAgICAgICAgICAgICAgICAkUVJZcyA9IHFyeV9ydW4oInNlbGVjdCAqIGZyb20gdGJsX21vcmUgd2hlcmUgYHBpZGAgPSAnIi4kcHJvZHVjdF9pZC4iJyBvcmRlciBieSByYW5raW5nIik7DQ0KDQ0KCQkJCQlpZiAobnVtX3JlYygkUVJZcykgPiAwKQ0NCg0NCgkJCQkJCQkJCXsNDQoNDQoJCQkJCQkJCQkkcHJvdyA9IDE7DQ0KDQ0KCQkJCQkJCQkJJHRyID0gIlllcyI7DQ0KDQ0KCQkJCQkJCQkJd2hpbGUoJHJzcyA9IGZldGNoX3JlYygkUVJZcykpDQ0KDQ0KCQkJCQkJCQkJew0NCg0NCgkJCQk/Pg0NCg0NCiAgICAgICAgICAgPGENDQoNDQogICAgICAgICAgICAgICAgZGF0YS16b29tLWlkPSJab29tLTEiDQ0KDQ0KICAgICAgICAgICAgICAgIGhyZWY9Ijw/PVJPT1Q/PndhdGVybWFyay5waHA/cGF0aD08Pz0kaW1nX3BhdGg/Pjw/PSRyc3NbJ2ltZzMnXT8+Ig0NCg0NCiAgICAgICAgICAgICAgICBkYXRhLWltYWdlPSI8Pz1ST09UPz53YXRlcm1hcmsucGhwP3BhdGg9PD89JGltZ19wYXRoPz48Pz0kcnNzWydpbWczJ10/PiINDQoNDQogICAgICAgICAgICA+DQ0KDQ0KICAgICAgICAgICAgICAgIDxpbWcgc3Jjc2V0PSI8Pz1ST09UPz48Pz0kaW1nX3BhdGg/Pjw/PSRyc3NbJ2ltZzEnXT8+IiAvPg0NCg0NCiAgICAgICAgICAgIDwvYT4NDQoNDQogICAgICAgICAgICA8P3BocCB9fT8+DQ0KDQ0KICAgICAgICA8L2Rpdj4NDQoNDQogICAgPC9kaXY+DQ0KDQ0KICAgICAgICAgICAgICAgPC9kaXY+DQ0KDQ0KICAgICAgICAgICAgPC9kaXY+DQ0KDQ0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTYgY29sLW1kLTYgY29sLXNtLTYiPg0NCg0NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idHVzX3Byb2RldGFpbCI+DQ0KDQ0KICAgICAgICAgICAgICAgIDxoMT48Pz0kUF9yc1sncG5hbWUnXT8+PC9oMT4NDQoNDQogICAgICAgICAgICAgICAgPGgyPjw/PSRQX3JzWydwYXJ0J10/PjwvaDI+DQ0KDQ0KICAgICAgICAgICAgICAgIDxwPjxzcGFuPkRlc2NyaXB0aW9uOjwvc3Bhbj48YnIvPjw/PSRQX3JzWydzZGV0YWlsJ10/PjwvcD4NDQoNDQogICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0NCg0NCiAgICAgICAgICAgIGZ1bmN0aW9uIHN1Ym1pdGZvcm0oKQ0NCg0NCiAgICAgIHsNDQoNDQogICAgICAgICAgICBkb2N1bWVudC5mb3Jtc1siZnJtX2NhcnQiXS5zdWJtaXQoKTsNDQoNDQogICAgICB9DQ0KDQ0KICAgICAgICAgPC9zY3JpcHQ+DQ0KDQ0KICAgICAgPGZvcm0gY2xhc3M9InByb2R1Y3QtY2FydCIgbWV0aG9kPSJnZXQiIG5hbWU9ImZybV9jYXJ0IiBpZD0iZnJtX2NhcnQiIGFjdGlvbj0iPD89Uk9PVD8+YWRkdG9jYXJ0LnBocCI+DQ0KDQ0KICAgICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMHB4OyI+DQ0KDQ0KICAgICAgICAgICAgICA8P3BocA0NCg0NCgkJCQkkUVJZbyA9IHFyeV9ydW4oInNlbGVjdCAqIGZyb20gdGJsX29wdGlvbnMgd2hlcmUgcHNob3cgPSAnWWVzJyBvcmRlciBieSByYW5raW5nICIpOw0NCg0NCgkJCQkJCWlmIChudW1fcmVjKCRRUllvKSA+IDApDQ0KDQ0KCQkJCQkJew0NCg0NCgkJCQkJCQkkb3AgPSAxOw0NCg0NCgkJCQkJCQl3aGlsZSgkcnNvID0gZmV0Y2hfcmVjKCRRUllvKSkNDQoNDQoJCQkJCQkJew0NCg0NCgkJCQkJCQkJJFFSWXAgPSBxcnlfcnVuKCJzZWxlY3QgKiBmcm9tIHRibF9wcm9kX29wdCB3aGVyZSBvcHRfaWQgPSAiLiRyc29bJ21haW5pZCddLiIgQU5EIGBwaWRgID0gJyIuJHByb2R1Y3RfaWQuIicgb3JkZXIgYnkgc2lkIik7DQ0KDQ0KCQkJCQkJCQlpZiAobnVtX3JlYygkUVJZcCkgPiAwKQ0NCg0NCgkJCQkJCQkJew0NCg0NCgk/Pg0NCg0NCjxkaXYgY2xhc3M9ImNvbC1tZC02Ij4NDQoNDQogPGg1IHN0eWxlPSJjb2xvcjojMDAwOyBmb250LXdlaWdodDo2MDA7IGZvbnQtc2l6ZToxNnB4OyBmb250LWZhbWlseTonT3N3YWxkJywgc2Fucy1zZXJpZjsiPjw/PSRyc29bJ3BuYW1lJ10/PjwvaDU+DQ0KDQ0KPHNlbGVjdCBuYW1lPSJvcHQ8Pz0kb3A/PiIgaWQ9Im9wdDw/PSRvcD8+IiBzdHlsZT0id2lkdGg6MTAwJTsgaGVpZ2h0OjMwcHg7Ij4NDQoNDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPG9wdGlvbj48Pz0kcnNvWydwbmFtZSddPz48L29wdGlvbj4tLT4NDQoNDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocA0NCg0NCgkJCQkJCQkJCQl3aGlsZSgkcnNwID0gZmV0Y2hfcmVjKCRRUllwKSkNDQoNDQoJCQkJCQkJCQkJew0NCg0NCgkJCQkJCQkJCQkJJHN1Yl9yYXRlID0gIiI7DQ0KDQ0KCQkJCQkJCQkJCQlpZiAoJHJzcFsncHJhdGUnXSA+IDApDQ0KDQ0KCQkJCQkJCQkJCQl7DQ0KDQ0KCQkJCQkJCQkJCQkJaWYgKCRyc3BbJ3B0eXBlJ10gPT0gIlBsdXMiKQ0NCg0NCgkJCQkJCQkJCQkJCXsNDQoNDQoJCQkJCQkJCQkJCQkJJHN1Yl9yYXRlID0gIigrIi4kcnNwWydwcmF0ZSddLiIpIjsNDQoNDQoJCQkJCQkJCQkJCQl9ZWxzZXsNDQoNDQoJCQkJCQkJCQkJCQkJJHN1Yl9yYXRlID0gIigtIi4kcnNwWydwcmF0ZSddLiIpIjsNDQoNDQoJCQkJCQkJCQkJCQl9DQ0KDQ0KCQkJCQkJCQkJCQl9DQ0KDQ0KCQkJCQkJCQkJCT8+DQ0KDQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iPD89JHJzcFsnc2lkJ10/PiI+PD89JHJzcFsncG5hbWUnXT8+DQ0KDQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/PSRzdWJfcmF0ZT8+PC9vcHRpb24+DQ0KDQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQ0KDQ0KCQkJCQkJCQkJCX0NDQoNDQoJCQkJCQkJCQkJPz4NDQoNDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0Pg0NCg0NCjwvZGl2Pg0NCg0NCiAgICAgICAgICAgICAgICAgICAgPD9waHANDQoNDQoJCQkJCQkJCSRvcCA9ICRvcCArIDE7DQ0KDQ0KCQkJCQkJCQl9DQ0KDQ0KCQkJCQkJCX0NDQoNDQoJCQkJfT8+DQ0KDQ0KPC9kaXY+DQ0KDQ0KICAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBjb2xvcjojMDAwOyI+PHN0cm9uZz5RdWFudGl0eTo8L3N0cm9uZz48YnIvPg0NCg0NCjxpbnB1dCB0eXBlPSJudW1iZXIiIG1pbj0iMSIgbmFtZT0icXR5IiBpZD0icXR5IiB2YWx1ZT0iMSIgc3R5bGU9ImhlaWdodDozMnB4OyBib3JkZXI6c29saWQgMXB4ICMwMDA7IGZvbnQtc2l6ZToxNHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6NzBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGNvbG9yOiMwMDAiPjxici8+DQ0KDQ0KICAgICAgIDxpbnB1dCBuYW1lPSJzdWJtaXQiIGNsYXNzPSJ0dXNfY29udHNibXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkFkZCBUbyBCYXNrZXQiPg0NCg0NCiAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBvbkNsaWNrPSJoaXN0b3J5LmJhY2soLTEpIiBjbGFzcz0idHVzX2NvbnRzYm10Ij5HbyBCYWNrPC9idXR0b24+DQ0KDQ0KICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3ViX21pdCIgaWQ9InN1Yl9taXQiIHZhbHVlPSJZZXMiIC8+DQ0KDQ0KICAgICAgICA8L3A+DQ0KDQ0KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3ViX21pdCIgaWQ9InN1Yl9taXQiIHZhbHVlPSJZZXMiIC8+DQ0KDQ0KPD9waHANDQoNDQppZigkVXJsX09OID09ICJZZXMiKXsNDQoNDQo/Pg0NCg0NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxpdmUiIHZhbHVlPSI8Pz0kUF9yc1snbWFpbmlkJ10/Pl88Pz0kUF9yc1snc2VjaWQnXT8+Xzw/PSRQX3JzWydjYXRpZCddPz5fPD89JFBfcnNbJ3BpZCddPz4iIC8+DQ0KDQ0KICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBpZCIgaWQ9InBpZCIgdmFsdWU9Ijw/PSRQX3JzWydwaWQnXT8+IiAvPg0NCg0NCiAgICAgICAgICAgICA8P3BocCB9ZWxzZXs/Pg0NCg0NCiAgICAgICAgIDwhLS08aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsaXZlIiB2YWx1ZT0iPD89Y2hmKCdsaXZlJyk/PiIgLz4tLT4NDQoNDQogICAgICAgICA8P3BocCB9Pz4NDQoNDQogPC9mb3JtPg0NCg0NCiAgICAgICAgICAgICAgPC9kaXY+DQ0KDQ0KICAgICAgICAgICAgPC9kaXY+DQ0KDQ0KICAgICAgICAgPC9kaXY+DQ0KDQ0KICAgICAgPC9kaXY+DQ0KDQ0KICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4NDQoNDQoNDQoNDQogICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPg0NCg0NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIGNvbC1tZC0xMiBjb2wtc20tMTIiPg0NCg0NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idHVzX254cGFnZSI+DQ0KDQ0KICAgICAgICAgICAgICAgICA8dWw+DQ0KDQ0KICAgICAgICAgICAgICAgICAgIDxsaT5yZWxhdGVkIHByb2R1Y3RzPC9saT4NDQoNDQogICAgICAgICAgICAgICAgIDwvdWw+DQ0KDQ0KICAgICAgICAgICAgICA8L2Rpdj4NDQoNDQogICAgICAgICAgIDwvZGl2Pg0NCg0NCiAgICAgICAgICAgICAgPC9kaXY+DQ0KDQ0KICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4NDQoNDQogICAgICAgICAgIDxkaXYgaWQ9Im93bC1kZW1vIiBjbGFzcz0ib3dsLWNhcm91c2VsIj4NDQoNDQoJCQk8P3BocCANDQoNDQogICAgICAgICAgICAkc3FscCA9ICJTZWxlY3QgKiBmcm9tIHRibF9wcm9kcyB3aGVyZSBgcGlkYCA9ICciLiRwcm9kdWN0X2lkLiInIG9yZGVyIGJ5IHJhbmtpbmciOw0NCg0NCiAgICAgICAgICAgICRxdWVyeXAgPSBxcnlfcnVuKCRzcWxwKTsNDQoNDQogICAgICAgICAgICAkcnNwID0gZmV0Y2hfcmVjKCRxdWVyeXApOw0NCg0NCiAgICAgICAgICAgICRzcWwgPSAiU2VsZWN0ICogZnJvbSB0YmxfcHJvZHMgd2hlcmUgcHNob3cgPSAnWWVzJyBBTkQgbWFpbmlkID0gIi4kcnNwWydtYWluaWQnXS4iIEFORCBzZWNpZCA9ICIuJHJzcFsnc2VjaWQnXS4iIEFORCBjYXRpZCA9ICIuJHJzcFsnY2F0aWQnXS4iIEFORCBwaWQgPD4gIi4kcHJvZHVjdF9pZC4iIG9yZGVyIGJ5IHJhbmtpbmciOw0NCg0NCiAgICAgICAgICAgICRxdWVyeSA9IHFyeV9ydW4oJHNxbCk7DQ0KDQ0KICAgICAgICAgICAgJHJzX251bSA9IG51bV9yZWMoJHF1ZXJ5KTsNDQoNDQogICAgICAgICAgICBpZiAoJHJzX251bSA+IDApDQ0KDQ0KICAgICAgICAgICAgew0NCg0NCiAgICAgICAgICAgICR0ciA9ICJZZXMiOw0NCg0NCiAgICAgICAgICAgICRwcm93ID0gMTsNDQoNDQogICAgICAgICAgICB3aGlsZSAoJHJzID0gZmV0Y2hfcmVjKCRxdWVyeSkpDQ0KDQ0KICAgICAgICAgICAgew0NCg0NCiAgICAgICAgICAgIGlmKCRVcmxfT04gPT0gIlllcyIpew0NCg0NCiAgICAgICAgICAgICRwbGluayA9ICIiLlJPT1QuJF9HRVRbJ21haW4nXS4iLyIuJF9HRVRbJ3N1YiddLiIvIi4kcnNbJ3BoZWFkJ10uIiI7DQ0KDQ0KICAgICAgICAgICAgfWVsc2V7DQ0KDQ0KICAgICAgICAgICAgJHBsaW5rID0gInByb2R1Y3RzLnBocD9saXZlPSIuJHJzWydtYWluaWQnXS4iXyIuJHJzWydzZWNpZCddLiJfIi4kcnNbJ2NhdGlkJ10uIl8iLiRyc1sncGlkJ10uIiI7DQ0KDQ0KICAgICAgICAgICAgfQ0NCg0NCiAgICAgICAgICAgID8+DQ0KDQ0KICA8ZGl2IGNsYXNzPSJpdGVtIj4NDQoNDQogICAgICA8ZGl2IGNsYXNzPSJ0dXNfcHJvZHVjdHMiPg0NCg0NCiAgICAgICAgICAgICAgICAgPGEgaHJlZj0iPD89JHBsaW5rPz4iPjxpbWcgc3JjPSI8Pz1ST09UPz53YXRlcm1hcmsucGhwP3BhdGg9PD89JGltZ19wYXRoPz48Pz0kcnNbJ2ltZzInXT8+IiBjbGFzcz0iaW1nLXJlc3BvbnNpdmUiIGFsdD0iIj48L2E+DQ0KDQ0KICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0dXNfcGJveCI+DQ0KDQ0KICAgICAgICAgICAgICAgICAgIDxoND48Pz0kcnNbJ3BuYW1lJ10/PjwvaDQ+DQ0KDQ0KICAgICAgICAgICAgICAgICAgIDxwPjw/PSRyc1sncGFydCddPz48L3A+DQ0KDQ0KICAgICAgICAgICAgICAgICAgIDx1bD4NDQoNDQogICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iPD89JHBsaW5rPz4iPjxpIGNsYXNzPSJmYSBmYS1zZWFyY2giIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+PC9hPjwvbGk+DQ0KDQ0KICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ijw/PSRwbGluaz8+Ij48aSBjbGFzcz0iZmEgZmEtc2hvcHBpbmctYmFnIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvYT48L2xpPg0NCg0NCiAgICAgICAgICAgICAgICAgICA8L3VsPg0NCg0NCiAgICAgICAgICAgICAgICAgPC9kaXY+DQ0KDQ0KICAgICAgICAgICAgICA8L2Rpdj4NDQoNDQoNDQoNDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0NCg0NCg0NCg0NCiAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH19ID8+DQ0KDQ0KDQ0KDQ0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NDQoNDQoNDQoNDQogICAgICAgICA8L2Rpdj4NDQoNDQoNDQoNDQogICAgICAgPC9kaXY+DQ0KDQ0KICAgIDwhLS0tLS0tLS0tLS0tLS0tIEZvb3RlciBTdGFydCAtLS0tLS0tLS0tLS0tLS0tPg0NCg0NCiAgICA8P3BocCBpbmNsdWRlKCJmb290ZXIucGhwIik/Pg0NCg0NCg0NCg0NCiAgICA8IS0tIE9wdGlvbmFsIEphdmFTY3JpcHQgLS0+DQ0KDQ0KICAgIDwhLS0galF1ZXJ5IGZpcnN0LCB0aGVuIFBvcHBlci5qcywgdGhlbiBCb290c3RyYXAgSlMgLS0+DQ0KDQ0KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMy4zLjEuanMiPjwvc2NyaXB0Pg0NCg0NCiAgICA8c2NyaXB0IHNyYz0iPD89Uk9PVD8+anMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+DQ0KDQ0KICAgIDxzY3JpcHQgc3JjPSI8Pz1ST09UPz5hc3NldHMxL2pzL2pxdWVyeS0xLjkuMS5taW4uanMiPjwvc2NyaXB0PiANDQoNDQogICAgPHNjcmlwdCBzcmM9Ijw/PVJPT1Q/Pm93bC1jYXJvdXNlbC9vd2wuY2Fyb3VzZWwuanMiPjwvc2NyaXB0Pg0NCg0NCjxzdHlsZT4NDQoNDQojb3dsLWRlbW8gLml0ZW17DQ0KDQ0KbWFyZ2luOiAwcHggMTBweDsNDQoNDQp9DQ0KDQ0KI293bC1kZW1vIC5pdGVtIGltZ3sNDQoNDQpkaXNwbGF5OiBibG9jazsNDQoNDQp9DQ0KDQ0KPC9zdHlsZT4NDQoNDQo8c2NyaXB0Pg0NCg0NCiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsNDQoNDQogICAgICAkKCIjb3dsLWRlbW8iKS5vd2xDYXJvdXNlbCh7DQ0KDQ0KICAgICAgICBhdXRvUGxheTogdHJ1ZSwNDQoNDQogICAgICAgIHNsaWRlU3BlZWQ6IDIwMDAsDQ0KDQ0KICAgICAgICBwYWdpbmF0aW9uOiBmYWxzZSwNDQoNDQogICAgICAgIG5hdmlnYXRpb246IHRydWUsDQ0KDQ0KICAgICAgICBpdGVtczogNCwNDQoNDQogICAgICAgIG5hdmlnYXRpb25UZXh0OlsiPGkgY2xhc3M9J2ZhIGZhLWFuZ2xlLWxlZnQnPjwvaT4iLCAiPGkgY2xhc3M9J2ZhIGZhLWFuZ2xlLXJpZ2h0Jz48L2k+Il0sDQ0KDQ0KICAgICAgICBpdGVtc0Rlc2t0b3AgOiBbMTE5OSw0XSwNDQoNDQogICAgICAgIGl0ZW1zRGVza3RvcFNtYWxsIDogWzk3OSwzXSwNDQoNDQogICAgICAgIGl0ZW1zVGFibGV0IDogWzc2OCwzXSwNDQoNDQoJCWl0ZW1zTW9iaWxlIDogWzQ3OSwxXSwNDQoNDQogICAgICB9KTsNDQoNDQoJICB9KTsNDQoNDQogICAgPC9zY3JpcHQ+DQ0KDQ0KICAgPHNjcmlwdCBzcmM9Ijw/PVJPT1Q/PmFzc2V0czEvanMvYm9vdHN0cmFwLWNvbGxhcHNlLmpzIj48L3NjcmlwdD4NDQoNDQogICA8c2NyaXB0IHNyYz0iPD89Uk9PVD8+YXNzZXRzMS9qcy9ib290c3RyYXAtdHJhbnNpdGlvbi5qcyI+PC9zY3JpcHQ+DQ0KDQ0KICAgPHNjcmlwdCBzcmM9Ijw/PVJPT1Q/PmFzc2V0czEvanMvYm9vdHN0cmFwLXRhYi5qcyI+PC9zY3JpcHQ+DQ0KDQ0KICAgPHNjcmlwdCBzcmM9Ijw/PVJPT1Q/PmFzc2V0czEvanMvZ29vZ2xlLWNvZGUtcHJldHRpZnkvcHJldHRpZnkuanMiPjwvc2NyaXB0Pg0NCg0NCiAgIDxzY3JpcHQgc3JjPSI8Pz1ST09UPz5hc3NldHMxL2pzL2FwcGxpY2F0aW9uLmpzIj48L3NjcmlwdD4NDQoNDQogICANDQoNDQogICA8c2NyaXB0Pg0NCg0NCnZhciBtek9wdGlvbnMgPSB7DQ0KDQ0KICB6b29tQ2FwdGlvbjogInRvcCIsDQ0KDQ0KICB2YXJpYWJsZVpvb206IHRydWUsDQ0KDQ0KfTsNDQoNDQo8L3NjcmlwdD4NDQoNDQogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0NCg0NCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7DQ0KDQ0KICAkKCcjbmF2aWdhdGlvbiBhLCAjZml4ZWRiYXIgYScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsNDQoNDQogICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0NCg0NCiAgfSk7DQ0KDQ0KICAkKHdpbmRvdykub24oJ3Njcm9sbCcsZnVuY3Rpb24oKSB7DQ0KDQ0KICAgIHZhciBzY3JvbGx0b3AgPSAkKHRoaXMpLnNjcm9sbFRvcCgpOw0NCg0NCiAgICBpZihzY3JvbGx0b3AgPj0gMjE1KSB7DQ0KDQ0KICAgICAgJCgnI2ZpeGVkYmFyJykuZmFkZUluKDI1MCk7DQ0KDQ0KICAgIH0NDQoNDQogICAgZWxzZSBpZihzY3JvbGx0b3AgPD0gMjEwKSB7DQ0KDQ0KICAgICAgJCgnI2ZpeGVkYmFyJykuZmFkZU91dCgyNTApOw0NCg0NCiAgICB9DQ0KDQ0KICB9KTsNDQoNDQp9KTsNDQoNDQo8L3NjcmlwdD4NDQoNDQogIDwvYm9keT4NDQoNDQo8L2h0bWw+"));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program

Function Calls

base64_decode 1

Variables

None

Stats

MD5 75125ce2f446e950f749e8aea8a2d443
Eval Count 1
Decode Time 123 ms