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("QGluY2x1ZGUoJ2luY2x1ZGVzL2Z1bmN0aW9ucycpDQpAaW5jbHVkZSgnaW5..
Decoded Output download
?>b'@include(\'includes/functions\')
@include(\'includes/packer\')
<?php
if (!isset($_SERVER[\'HTTP_REFERER\'])) {
$slug = $episode->slug;
header("Location: /{$slug}.html"); // Replace with your homepage URL
exit;
}
if($_SERVER["HTTP_SEC_FETCH_SITE"] != "same-origin")
{
die("Access denied!");
}
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Max-Age: 1000");
header("Access-Control-Allow-Headers: X-Requested-With, Content-Type, Origin, Cache-Control, Pragma, Authorization, Accept, Accept-Encoding");
header("Access-Control-Allow-Methods: PUT, POST, GET, OPTIONS, DELETE");
$slug = isset($_GET[\'slug\']) ? $_GET[\'slug\'] : \'\';
$server = isset($_GET[\'server\']) ? $_GET[\'server\'] : \'\';
// Check if the slug is not empty
if (empty($slug)) {
echo "No Source";
die;
}
// Use a regular expression to remove any extra text at the end of the slug
$originalSlug = preg_replace(\'/-(episode-\d+).*/\', \'-$1\', $slug);
// Construct the source URL
$source = \'https://api.consumet.org/movies/dramacool/watch?episodeId=\' . urlencode($originalSlug) .\'&mediaId=drama-detail/\' . $episode->drama_id . \'&server=asianload\';
$newCurl = curl_init();
//grab URL and pass it to the variable.
curl_setopt($newCurl, CURLOPT_URL, $source);
// Return Page contents.
curl_setopt($newCurl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($newCurl);
$output = json_decode($output, true);
// if($output[\'message\'] == \'Invalid server query\')
if(isset($output[\'sources\']))
{
}
else
{
dd(\'Try Another Server\');
}
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$ambil = file_get_contents($source, false, stream_context_create($arrContextOptions));
$index = json_decode($ambil);
// var_dump($index);
function unslug($text){
$newtext = preg_replace(\'~[^\pL\d]+~u\', \'-\', $text);
$newtext = preg_replace(\'/[-]/\', \' \', $newtext);
$newtext = iconv(\'utf-8\', \'us-ascii//TRANSLIT\', $newtext);
$newtext = ucwords($newtext);
return $newtext;
}
?>
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Watch Korean Dramas Online</title>
<link rel="stylesheet" href="./player.css">
</head>
<body>
<!-- partial:index.partial.html -->
<!-- Fullscreen Video CSS -->
<style>
#player {
position: absolute;
width: 100% !important;
height: 100% !important;
}
#center-ad {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 250px; /* set to 250 pixels */
height: 250px; /* set to 250 pixels */
background-color: #ccc; /* or use an image or video */
display: block;
z-index: 9999;
}
.close-button {
position: absolute;
top: 0px; /* adjust as needed */
right: 0px; /* adjust as needed */
width: 30px;
height: 30px;
background-color: #cae962;
color: #000;
font-size: 24px;
text-align: center;
cursor: pointer;
border-radius: 50%; /* add this property to create a circle */
}
</style>
<!-- Player -->
<div id="player"></div>
<!-- partial -->
<script src=\'https://ssl.p.jwpcdn.com/player/v/8.27.0/jwplayer.js\'></script>
<script type="text/javascript">jwplayer.key="Y8nORY7CUY5RnlN/f8onh+AXI1ZWodkujMJAXBwpcAnDG5N4";</script>
<!--<script src="//content.jwplatform.com/libraries/Jq6HIbgz.js"></script>-->
<?php
$sources = $index->sources;
$source_array = array();
foreach ($sources as $i => $lists) {
$sourcex = $lists->url;
$source_array[] = array(
\'file\' => $sourcex,
);
}
// var_dump($source_array);
?>
<?php
$result = \'\';
$data = \'const playerInstance = jwplayer("player").setup({
controls: true,
sharing: true,
displaytitle: true,
displaydescription: true,
captions: {
color: "#FFF",
fontSize: 14,
backgroundOpacity: 0,
edgeStyle: "raised"
},
autostart: true, // Add this property to enable autoplay
playlist: [
{
title: "",
description: "",
image: "./background.jpg",
sources: \'.json_encode($source_array).\'
}
],
advertising: {
client: "vast",
tag: "",
displayState: {
adFrame: {
id: "center-ad"
}
}
}
});
playerInstance.on("ready", function () {
// Move the timeslider in-line with other controls
const playerContainer = playerInstance.getContainer();
const buttonContainer = playerContainer.querySelector(".jw-button-container");
const spacer = buttonContainer.querySelector(".jw-spacer");
const timeSlider = playerContainer.querySelector(".jw-slider-time");
buttonContainer.replaceChild(timeSlider, spacer);
// Forward 10 seconds
const rewindContainer = playerContainer.querySelector(
".jw-display-icon-rewind"
);
const forwardContainer = rewindContainer.cloneNode(true);
const forwardDisplayButton = forwardContainer.querySelector(
".jw-icon-rewind"
);
forwardDisplayButton.style.transform = "scaleX(-1)";
forwardDisplayButton.ariaLabel = "Forward 10 Seconds";
const nextContainer = playerContainer.querySelector(".jw-display-icon-next");
nextContainer.parentNode.insertBefore(forwardContainer, nextContainer);
// control bar icon
playerContainer.querySelector(".jw-display-icon-next").style.display = "none"; // hide next button
const rewindControlBarButton = buttonContainer.querySelector(
".jw-icon-rewind"
);
const forwardControlBarButton = rewindControlBarButton.cloneNode(true);
forwardControlBarButton.style.transform = "scaleX(-1)";
forwardControlBarButton.ariaLabel = "Forward 10 Seconds";
rewindControlBarButton.parentNode.insertBefore(
forwardControlBarButton,
rewindControlBarButton.nextElementSibling
);
// add onclick handlers
[forwardDisplayButton, forwardControlBarButton].forEach((button) => {
button.onclick = () => {
playerInstance.seek(playerInstance.getPosition() + 10);
};
});
// New Features
// Auto-reload on error
playerInstance.on("error", function() {
playerInstance.load();
});
// Restart playback after reload
playerInstance.on("complete", function() {
playerInstance.play();
});
});\';
// Apply
$packer = new Packer($data, \'Normal\', true, false, true);
$packed = $packer->pack();
$result .= \'<script type="text/javascript">\' . $packed . \'</script>\';
echo \'<script language="javascript">document.write(unescape("\'.encode($result).\'"));
</script>\';
?>
<script>
(function(_0x2c85d9,_0x37686f){var _0x137d39=_0x3ddb,_0xd7fc31=_0x27a2,_0x2a4656=_0x2c85d9();while(!![]){try{var _0x17f723=parseInt(_0xd7fc31(0x1de))/0x1+-parseInt(_0xd7fc31(0x1ed))/0x2*(-parseInt(_0x137d39(0x1e8))/0x3)+parseInt(_0xd7fc31(0x1d8))/0x4*(-parseInt(_0x137d39(0x1d7))/0x5)+parseInt(_0xd7fc31(0x1e2))/0x6*(-parseInt(_0xd7fc31(0x1ee))/0x7)+parseInt(_0x137d39(0x1d2))/0x8*(-parseInt(_0xd7fc31(0x1e3))/0x9)+parseInt(_0x137d39(0x1d4))/0xa+parseInt(_0x137d39(0x1e9))/0xb*(parseInt(_0xd7fc31(0x1dd))/0xc);if(_0x17f723===_0x37686f)break;else _0x2a4656[\'push\'](_0x2a4656[\'shift\']());}catch(_0x30cc7f){_0x2a4656[\'push\'](_0x2a4656[\'shift\']());}}}(_0x5c69,0xf0f92));function _0x5c69(){var _0x1d625f=[\'mJr0yvLgqKm\',\'nJeWmdaXmMLgCg9szG\',\'otGWmZaXmgfABhfota\',\'CMvTB3zLq2HPBgq\',\'removeChild\',\'nuvRs1zZua\',\'6100012iFpoRf\',\'Cg9ZAxrPB246ywjZB2X1Dgu7Dg9WoI01mdbWEdTSzwz0oI01mdbWEdT2AxnPyMLSAxr5oMHPzgrLBJS\',\'hasAttribute\',\'yM9KEq\',\'odiXnJm0nNLktxnqEa\',\'1160856tbPCiV\',\'948045oebJWK\',\'B25SB2fK\',\'BMf2AwDHDg9Y\',\'CgfYzw50tM9Kzq\',\'8216346yJMsPx\',\'2607669zSdYFy\',\'otq4mdq1B2vIsLDl\',\'onerror\',\'sandbox\',\'mJyWnZy2oxPtzfLgEq\',\'mtaXmZDsAKXwDKy\',\'mZe5BKz5zLDe\',\'q2HYB21LifberIbwAwv3zxi\',\'319nFyfWD\',\'style\',\'10cDywRy\',\'7CuZlcZ\',\'mtbJrhL3uNK\',\'plugins\',\'zg9TywLU\',\'Ahr0Chm6lY92y2rUlMLVl3nHBMrIB3HLzd92ptiUmsm\',\'zNjHBwvfBgvTzw50\',\'AhjLzG\',\'indexOf\'];_0x5c69=function(){return _0x1d625f;};return _0x5c69();}function detectSandbox(){var _0x4d09da=_0x27a2,_0x3b2033=_0x3ddb;function _0x324a8(){var _0x5e8ecb=_0x3ddb;window[\'location\'][\'href\']=_0x5e8ecb(0x1f2)+encodeURIComponent(window[\'location\'][_0x5e8ecb(0x1f4)]);}try{if(window[_0x3b2033(0x1f3)][_0x4d09da(0x1da)](_0x4d09da(0x1e6)))_0x324a8();return;}catch(_0x5dedc7){}try{document[_0x3b2033(0x1f1)]=document[_0x3b2033(0x1f1)];}catch(_0x42d4a3){try{if(-0x1!=_0x42d4a3[\'toString\']()[\'toLowerCase\']()[_0x4d09da(0x1f5)](_0x4d09da(0x1e6)))_0x324a8();return;}catch(_0x567f35){}}try{if(!window[_0x3b2033(0x1e0)][_0x4d09da(0x1f0)][\'namedItem\'](_0x3b2033(0x1ea)))return![];}catch(_0x5a3fa9){return![];}var _0x5f22f3=document[\'createElement\'](\'object\');_0x5f22f3[\'data\']=\'data:application/pdf;base64,aG1t\',_0x5f22f3[_0x4d09da(0x1ec)]=_0x3b2033(0x1d9),_0x5f22f3[_0x4d09da(0x1e5)]=function(){_0x324a8();},_0x5f22f3[_0x3b2033(0x1df)]=function(){var _0x57d233=_0x4d09da,_0xec809c=_0x3b2033;_0x5f22f3[_0xec809c(0x1e1)][_0x57d233(0x1d6)](_0x5f22f3);},document[_0x3b2033(0x1db)][\'appendChild\'](_0x5f22f3),setTimeout(function(){var _0xac1d92=_0x3b2033;_0x5f22f3[\'parentNode\'][_0xac1d92(0x1d5)](_0x5f22f3);},0x96);}function _0x3ddb(_0x4da13e,_0xc8882f){var _0x5c6911=_0x5c69();return _0x3ddb=function(_0x27a24a,_0xaffdd9){_0x27a24a=_0x27a24a-0x1d2;var _0x1c8357=_0x5c6911[_0x27a24a];if(_0x3ddb[\'OzNyRa\']===undefined){var _0x4192cc=function(_0x3ddb8a){var _0x3b1226=\'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=\';var _0x2a4a38=\'\',_0x58ecdd=\'\';for(var _0x147c0e=0x0,_0x2f81a9,_0x59286e,_0x324a8=0x0;_0x59286e=_0x3ddb8a[\'charAt\'](_0x324a8++);~_0x59286e&&(_0x2f81a9=_0x147c0e%0x4?_0x2f81a9*0x40+_0x59286e:_0x59286e,_0x147c0e++%0x4)?_0x2a4a38+=String[\'fromCharCode\'](0xff&_0x2f81a9>>(-0x2*_0x147c0e&0x6)):0x0){_0x59286e=_0x3b1226[\'indexOf\'](_0x59286e);}for(var _0x5f22f3=0x0,_0x5dedc7=_0x2a4a38[\'length\'];_0x5f22f3<_0x5dedc7;_0x5f22f3++){_0x58ecdd+=\'%\'+(\'00\'+_0x2a4a38[\'charCodeAt\'](_0x5f22f3)[\'toString\'](0x10))[\'slice\'](-0x2);}return decodeURIComponent(_0x58ecdd);};_0x3ddb[\'rYmEvl\']=_0x4192cc,_0x4da13e=arguments,_0x3ddb[\'OzNyRa\']=!![];}var _0x35d669=_0x5c6911[0x0],_0x3323f5=_0x27a24a+_0x35d669,_0x1e8913=_0x4da13e[_0x3323f5];return!_0x1e8913?(_0x1c8357=_0x3ddb[\'rYmEvl\'](_0x1c8357),_0x4da13e[_0x3323f5]=_0x1c8357):_0x1c8357=_0x1e8913,_0x1c8357;},_0x3ddb(_0x4da13e,_0xc8882f);}function _0x27a2(_0x4da13e,_0xc8882f){var _0x5c6911=_0x5c69();return _0x27a2=function(_0x27a24a,_0xaffdd9){_0x27a24a=_0x27a24a-0x1d2;var _0x1c8357=_0x5c6911[_0x27a24a];return _0x1c8357;},_0x27a2(_0x4da13e,_0xc8882f);}detectSandbox();
</script>
</body>
</html> '
Did this file decode correctly?
Original Code
<?php eval("?>".base64_decode("QGluY2x1ZGUoJ2luY2x1ZGVzL2Z1bmN0aW9ucycpDQpAaW5jbHVkZSgnaW5jbHVkZXMvcGFja2VyJykNCjw/cGhwDQppZiAoIWlzc2V0KCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSkpIHsNCiAgICAkc2x1ZyA9ICRlcGlzb2RlLT5zbHVnOw0KICAgIGhlYWRlcigiTG9jYXRpb246IC97JHNsdWd9Lmh0bWwiKTsgLy8gUmVwbGFjZSB3aXRoIHlvdXIgaG9tZXBhZ2UgVVJMDQogICAgZXhpdDsNCn0NCmlmKCRfU0VSVkVSWyJIVFRQX1NFQ19GRVRDSF9TSVRFIl0gIT0gInNhbWUtb3JpZ2luIikNCnsNCiAgICBkaWUoIkFjY2VzcyBkZW5pZWQhIik7DQp9DQpoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIpOw0KaGVhZGVyKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFsczogdHJ1ZSIpOw0KaGVhZGVyKCJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlOiAxMDAwIik7DQpoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnM6IFgtUmVxdWVzdGVkLVdpdGgsIENvbnRlbnQtVHlwZSwgT3JpZ2luLCBDYWNoZS1Db250cm9sLCBQcmFnbWEsIEF1dGhvcml6YXRpb24sIEFjY2VwdCwgQWNjZXB0LUVuY29kaW5nIik7DQpoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHM6IFBVVCwgUE9TVCwgR0VULCBPUFRJT05TLCBERUxFVEUiKTsNCg0KJHNsdWcgPSBpc3NldCgkX0dFVFsnc2x1ZyddKSA/ICRfR0VUWydzbHVnJ10gOiAnJzsNCiRzZXJ2ZXIgPSBpc3NldCgkX0dFVFsnc2VydmVyJ10pID8gJF9HRVRbJ3NlcnZlciddIDogJyc7DQoNCi8vIENoZWNrIGlmIHRoZSBzbHVnIGlzIG5vdCBlbXB0eQ0KaWYgKGVtcHR5KCRzbHVnKSkgew0KICAgIGVjaG8gIk5vIFNvdXJjZSI7DQogICAgZGllOw0KfQ0KDQovLyBVc2UgYSByZWd1bGFyIGV4cHJlc3Npb24gdG8gcmVtb3ZlIGFueSBleHRyYSB0ZXh0IGF0IHRoZSBlbmQgb2YgdGhlIHNsdWcNCiRvcmlnaW5hbFNsdWcgPSBwcmVnX3JlcGxhY2UoJy8tKGVwaXNvZGUtXGQrKS4qLycsICctJDEnLCAkc2x1Zyk7DQoNCi8vIENvbnN0cnVjdCB0aGUgc291cmNlIFVSTA0KJHNvdXJjZSA9ICdodHRwczovL2FwaS5jb25zdW1ldC5vcmcvbW92aWVzL2RyYW1hY29vbC93YXRjaD9lcGlzb2RlSWQ9JyAuIHVybGVuY29kZSgkb3JpZ2luYWxTbHVnKSAuJyZtZWRpYUlkPWRyYW1hLWRldGFpbC8nIC4gJGVwaXNvZGUtPmRyYW1hX2lkIC4gJyZzZXJ2ZXI9YXNpYW5sb2FkJzsNCg0KJG5ld0N1cmwgPSBjdXJsX2luaXQoKTsNCiANCi8vZ3JhYiBVUkwgYW5kIHBhc3MgaXQgdG8gdGhlIHZhcmlhYmxlLg0KY3VybF9zZXRvcHQoJG5ld0N1cmwsIENVUkxPUFRfVVJMLCAkc291cmNlKTsNCg0KLy8gUmV0dXJuIFBhZ2UgY29udGVudHMuDQpjdXJsX3NldG9wdCgkbmV3Q3VybCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7DQogDQokb3V0cHV0ID0gY3VybF9leGVjKCRuZXdDdXJsKTsNCg0KJG91dHB1dCA9IGpzb25fZGVjb2RlKCRvdXRwdXQsIHRydWUpOw0KDQovLyBpZigkb3V0cHV0WydtZXNzYWdlJ10gPT0gJ0ludmFsaWQgc2VydmVyIHF1ZXJ5JykNCg0KaWYoaXNzZXQoJG91dHB1dFsnc291cmNlcyddKSkNCnsNCiAgIA0KfQ0KZWxzZQ0Kew0KICAgIGRkKCdUcnkgQW5vdGhlciBTZXJ2ZXInKTsNCn0NCg0KDQokYXJyQ29udGV4dE9wdGlvbnM9YXJyYXkoDQogICAgInNzbCI9PmFycmF5KA0KICAgICAgICAgICJ2ZXJpZnlfcGVlciI9PmZhbHNlLA0KICAgICAgICAgICJ2ZXJpZnlfcGVlcl9uYW1lIj0+ZmFsc2UsDQogICAgICApLA0KICApOyAgDQoNCiRhbWJpbCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRzb3VyY2UsIGZhbHNlLCBzdHJlYW1fY29udGV4dF9jcmVhdGUoJGFyckNvbnRleHRPcHRpb25zKSk7DQokaW5kZXggPSBqc29uX2RlY29kZSgkYW1iaWwpOw0KDQovLyB2YXJfZHVtcCgkaW5kZXgpOw0KDQpmdW5jdGlvbiB1bnNsdWcoJHRleHQpew0KICAgICRuZXd0ZXh0ID0gcHJlZ19yZXBsYWNlKCd+W15ccExcZF0rfnUnLCAnLScsICR0ZXh0KTsNCiAgICAkbmV3dGV4dCA9IHByZWdfcmVwbGFjZSgnL1stXS8nLCAnICcsICRuZXd0ZXh0KTsNCiAgICAkbmV3dGV4dCA9IGljb252KCd1dGYtOCcsICd1cy1hc2NpaS8vVFJBTlNMSVQnLCAkbmV3dGV4dCk7DQogICAgJG5ld3RleHQgPSB1Y3dvcmRzKCRuZXd0ZXh0KTsNCiAgICByZXR1cm4gJG5ld3RleHQ7DQp9DQoNCj8+DQoNCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iZW4iID4NCjxoZWFkPg0KICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+DQogIDx0aXRsZT5XYXRjaCBLb3JlYW4gRHJhbWFzIE9ubGluZTwvdGl0bGU+DQogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi9wbGF5ZXIuY3NzIj4NCiAgDQo8L2hlYWQ+DQo8Ym9keT4NCjwhLS0gcGFydGlhbDppbmRleC5wYXJ0aWFsLmh0bWwgLS0+DQo8IS0tICBGdWxsc2NyZWVuIFZpZGVvIENTUyAtLT4NCjxzdHlsZT4NCiAgI3BsYXllciB7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7DQogICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7DQogIH0NCiAgICAjY2VudGVyLWFkIHsNCiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgIHRvcDogNTAlOw0KICAgICAgbGVmdDogNTAlOw0KICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQogICAgICB3aWR0aDogMjUwcHg7IC8qIHNldCB0byAyNTAgcGl4ZWxzICovDQogICAgICBoZWlnaHQ6IDI1MHB4OyAvKiBzZXQgdG8gMjUwIHBpeGVscyAqLw0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsgLyogb3IgdXNlIGFuIGltYWdlIG9yIHZpZGVvICovDQogICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgIHotaW5kZXg6IDk5OTk7DQogICAgfQ0KICAgIC5jbG9zZS1idXR0b24gew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgdG9wOiAwcHg7IC8qIGFkanVzdCBhcyBuZWVkZWQgKi8NCiAgICAgIHJpZ2h0OiAwcHg7IC8qIGFkanVzdCBhcyBuZWVkZWQgKi8NCiAgICAgIHdpZHRoOiAzMHB4Ow0KICAgICAgaGVpZ2h0OiAzMHB4Ow0KICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NhZTk2MjsNCiAgICAgIGNvbG9yOiAjMDAwOw0KICAgICAgZm9udC1zaXplOiAyNHB4Ow0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyAvKiBhZGQgdGhpcyBwcm9wZXJ0eSB0byBjcmVhdGUgYSBjaXJjbGUgKi8NCiAgICB9DQogIDwvc3R5bGU+DQoNCjwhLS0gUGxheWVyIC0tPg0KPGRpdiBpZD0icGxheWVyIj48L2Rpdj4NCg0KDQogIA0KPCEtLSBwYXJ0aWFsIC0tPg0KICA8c2NyaXB0IHNyYz0naHR0cHM6Ly9zc2wucC5qd3BjZG4uY29tL3BsYXllci92LzguMjcuMC9qd3BsYXllci5qcyc+PC9zY3JpcHQ+DQogIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5qd3BsYXllci5rZXk9Ilk4bk9SWTdDVVk1Um5sTi9mOG9uaCtBWEkxWldvZGt1ak1KQVhCd3BjQW5ERzVONCI7PC9zY3JpcHQ+DQogIDwhLS08c2NyaXB0IHNyYz0iLy9jb250ZW50Lmp3cGxhdGZvcm0uY29tL2xpYnJhcmllcy9KcTZISWJnei5qcyI+PC9zY3JpcHQ+LS0+DQogIDw/cGhwIA0KDQoNCg0KJHNvdXJjZXMgPSAkaW5kZXgtPnNvdXJjZXM7DQokc291cmNlX2FycmF5ID0gYXJyYXkoKTsNCmZvcmVhY2ggKCRzb3VyY2VzIGFzICRpID0+ICRsaXN0cykgew0KICAgICRzb3VyY2V4ID0gJGxpc3RzLT51cmw7DQogICAgJHNvdXJjZV9hcnJheVtdID0gYXJyYXkoDQogICAgICAgICdmaWxlJyA9PiAkc291cmNleCwNCiAgICApOw0KfQ0KDQovLyB2YXJfZHVtcCgkc291cmNlX2FycmF5KTsNCj8+ICANCiAgPD9waHANCiAgICAgICAgJHJlc3VsdCA9ICcnOw0KICAgICAgICAkZGF0YSA9ICdjb25zdCBwbGF5ZXJJbnN0YW5jZSA9IGp3cGxheWVyKCJwbGF5ZXIiKS5zZXR1cCh7DQogIGNvbnRyb2xzOiB0cnVlLA0KICBzaGFyaW5nOiB0cnVlLA0KICBkaXNwbGF5dGl0bGU6IHRydWUsDQogIGRpc3BsYXlkZXNjcmlwdGlvbjogdHJ1ZSwNCiANCg0KICBjYXB0aW9uczogew0KICAgIGNvbG9yOiAiI0ZGRiIsDQogICAgZm9udFNpemU6IDE0LA0KICAgIGJhY2tncm91bmRPcGFjaXR5OiAwLA0KICAgIGVkZ2VTdHlsZTogInJhaXNlZCINCiAgfSwNCiAgDQogIGF1dG9zdGFydDogdHJ1ZSwgLy8gQWRkIHRoaXMgcHJvcGVydHkgdG8gZW5hYmxlIGF1dG9wbGF5DQoNCiAgcGxheWxpc3Q6IFsNCiAgICB7DQogICAgICB0aXRsZTogIiIsDQogICAgICBkZXNjcmlwdGlvbjogIiIsDQogICAgICBpbWFnZTogIi4vYmFja2dyb3VuZC5qcGciLA0KICAgICAgc291cmNlczogJy5qc29uX2VuY29kZSgkc291cmNlX2FycmF5KS4nDQogICAgfQ0KICBdLA0KICBhZHZlcnRpc2luZzogew0KICAgICAgICAgY2xpZW50OiAidmFzdCIsDQogICAgICAgICB0YWc6ICIiLA0KICAgICAgICAgZGlzcGxheVN0YXRlOiB7DQogICAgICAgICAgIGFkRnJhbWU6IHsNCiAgICAgICAgICAgICBpZDogImNlbnRlci1hZCINCiAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KICAgICAgIH0NCn0pOw0KDQpwbGF5ZXJJbnN0YW5jZS5vbigicmVhZHkiLCBmdW5jdGlvbiAoKSB7DQogICAgDQogIC8vIE1vdmUgdGhlIHRpbWVzbGlkZXIgaW4tbGluZSB3aXRoIG90aGVyIGNvbnRyb2xzDQogIGNvbnN0IHBsYXllckNvbnRhaW5lciA9IHBsYXllckluc3RhbmNlLmdldENvbnRhaW5lcigpOw0KICBjb25zdCBidXR0b25Db250YWluZXIgPSBwbGF5ZXJDb250YWluZXIucXVlcnlTZWxlY3RvcigiLmp3LWJ1dHRvbi1jb250YWluZXIiKTsNCiAgY29uc3Qgc3BhY2VyID0gYnV0dG9uQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIi5qdy1zcGFjZXIiKTsNCiAgY29uc3QgdGltZVNsaWRlciA9IHBsYXllckNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIuanctc2xpZGVyLXRpbWUiKTsNCiAgYnV0dG9uQ29udGFpbmVyLnJlcGxhY2VDaGlsZCh0aW1lU2xpZGVyLCBzcGFjZXIpOw0KDQogIA0KICAvLyBGb3J3YXJkIDEwIHNlY29uZHMNCiAgY29uc3QgcmV3aW5kQ29udGFpbmVyID0gcGxheWVyQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoDQogICAgIi5qdy1kaXNwbGF5LWljb24tcmV3aW5kIg0KICApOw0KICBjb25zdCBmb3J3YXJkQ29udGFpbmVyID0gcmV3aW5kQ29udGFpbmVyLmNsb25lTm9kZSh0cnVlKTsNCiAgY29uc3QgZm9yd2FyZERpc3BsYXlCdXR0b24gPSBmb3J3YXJkQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoDQogICAgIi5qdy1pY29uLXJld2luZCINCiAgKTsNCiAgZm9yd2FyZERpc3BsYXlCdXR0b24uc3R5bGUudHJhbnNmb3JtID0gInNjYWxlWCgtMSkiOw0KICBmb3J3YXJkRGlzcGxheUJ1dHRvbi5hcmlhTGFiZWwgPSAiRm9yd2FyZCAxMCBTZWNvbmRzIjsNCiAgY29uc3QgbmV4dENvbnRhaW5lciA9IHBsYXllckNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIuanctZGlzcGxheS1pY29uLW5leHQiKTsNCiAgbmV4dENvbnRhaW5lci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShmb3J3YXJkQ29udGFpbmVyLCBuZXh0Q29udGFpbmVyKTsNCg0KICAvLyBjb250cm9sIGJhciBpY29uDQogIHBsYXllckNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIuanctZGlzcGxheS1pY29uLW5leHQiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyAvLyBoaWRlIG5leHQgYnV0dG9uDQogIGNvbnN0IHJld2luZENvbnRyb2xCYXJCdXR0b24gPSBidXR0b25Db250YWluZXIucXVlcnlTZWxlY3RvcigNCiAgICAiLmp3LWljb24tcmV3aW5kIg0KICApOw0KICBjb25zdCBmb3J3YXJkQ29udHJvbEJhckJ1dHRvbiA9IHJld2luZENvbnRyb2xCYXJCdXR0b24uY2xvbmVOb2RlKHRydWUpOw0KICBmb3J3YXJkQ29udHJvbEJhckJ1dHRvbi5zdHlsZS50cmFuc2Zvcm0gPSAic2NhbGVYKC0xKSI7DQogIGZvcndhcmRDb250cm9sQmFyQnV0dG9uLmFyaWFMYWJlbCA9ICJGb3J3YXJkIDEwIFNlY29uZHMiOw0KICByZXdpbmRDb250cm9sQmFyQnV0dG9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKA0KICAgIGZvcndhcmRDb250cm9sQmFyQnV0dG9uLA0KICAgIHJld2luZENvbnRyb2xCYXJCdXR0b24ubmV4dEVsZW1lbnRTaWJsaW5nDQogICk7DQoNCiAgLy8gYWRkIG9uY2xpY2sgaGFuZGxlcnMNCiAgW2ZvcndhcmREaXNwbGF5QnV0dG9uLCBmb3J3YXJkQ29udHJvbEJhckJ1dHRvbl0uZm9yRWFjaCgoYnV0dG9uKSA9PiB7DQogICAgYnV0dG9uLm9uY2xpY2sgPSAoKSA9PiB7DQogICAgICBwbGF5ZXJJbnN0YW5jZS5zZWVrKHBsYXllckluc3RhbmNlLmdldFBvc2l0aW9uKCkgKyAxMCk7DQogICAgfTsNCiAgfSk7DQoNCiAgLy8gTmV3IEZlYXR1cmVzDQogIA0KICAvLyBBdXRvLXJlbG9hZCBvbiBlcnJvcg0KICAgIHBsYXllckluc3RhbmNlLm9uKCJlcnJvciIsIGZ1bmN0aW9uKCkgew0KICAgICAgcGxheWVySW5zdGFuY2UubG9hZCgpOw0KICAgIH0pOw0KICAgIA0KICAgIC8vIFJlc3RhcnQgcGxheWJhY2sgYWZ0ZXIgcmVsb2FkDQogICAgcGxheWVySW5zdGFuY2Uub24oImNvbXBsZXRlIiwgZnVuY3Rpb24oKSB7DQogICAgICBwbGF5ZXJJbnN0YW5jZS5wbGF5KCk7DQogICAgfSk7DQp9KTsnOw0KICAgICAgICAgIA0KICAgICAgICAvLyBBcHBseQ0KICAgICAgICAkcGFja2VyID0gbmV3IFBhY2tlcigkZGF0YSwgJ05vcm1hbCcsIHRydWUsIGZhbHNlLCB0cnVlKTsNCiAgICAgICAgDQogICAgICAgICRwYWNrZWQgPSAkcGFja2VyLT5wYWNrKCk7DQoNCiAgICAgICAgJHJlc3VsdCAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPicgLiAkcGFja2VkIC4gJzwvc2NyaXB0Pic7DQogICAgICAgIA0KICAgICAgICAJCQ0KICAgICAgICBlY2hvICc8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij5kb2N1bWVudC53cml0ZSh1bmVzY2FwZSgiJy5lbmNvZGUoJHJlc3VsdCkuJyIpKTsNCjwvc2NyaXB0Pic7DQo/Pg0KDQo8c2NyaXB0Pg0KICAgICAgICANCiAgICAgICAgKGZ1bmN0aW9uKF8weDJjODVkOSxfMHgzNzY4NmYpe3ZhciBfMHgxMzdkMzk9XzB4M2RkYixfMHhkN2ZjMzE9XzB4MjdhMixfMHgyYTQ2NTY9XzB4MmM4NWQ5KCk7d2hpbGUoISFbXSl7dHJ5e3ZhciBfMHgxN2Y3MjM9cGFyc2VJbnQoXzB4ZDdmYzMxKDB4MWRlKSkvMHgxKy1wYXJzZUludChfMHhkN2ZjMzEoMHgxZWQpKS8weDIqKC1wYXJzZUludChfMHgxMzdkMzkoMHgxZTgpKS8weDMpK3BhcnNlSW50KF8weGQ3ZmMzMSgweDFkOCkpLzB4NCooLXBhcnNlSW50KF8weDEzN2QzOSgweDFkNykpLzB4NSkrcGFyc2VJbnQoXzB4ZDdmYzMxKDB4MWUyKSkvMHg2KigtcGFyc2VJbnQoXzB4ZDdmYzMxKDB4MWVlKSkvMHg3KStwYXJzZUludChfMHgxMzdkMzkoMHgxZDIpKS8weDgqKC1wYXJzZUludChfMHhkN2ZjMzEoMHgxZTMpKS8weDkpK3BhcnNlSW50KF8weDEzN2QzOSgweDFkNCkpLzB4YStwYXJzZUludChfMHgxMzdkMzkoMHgxZTkpKS8weGIqKHBhcnNlSW50KF8weGQ3ZmMzMSgweDFkZCkpLzB4Yyk7aWYoXzB4MTdmNzIzPT09XzB4Mzc2ODZmKWJyZWFrO2Vsc2UgXzB4MmE0NjU2WydwdXNoJ10oXzB4MmE0NjU2WydzaGlmdCddKCkpO31jYXRjaChfMHgzMGNjN2Ype18weDJhNDY1NlsncHVzaCddKF8weDJhNDY1Nlsnc2hpZnQnXSgpKTt9fX0oXzB4NWM2OSwweGYwZjkyKSk7ZnVuY3Rpb24gXzB4NWM2OSgpe3ZhciBfMHgxZDYyNWY9WydtSnIweXZMZ3FLbScsJ25KZVdtZGFYbU1MZ0NnOXN6RycsJ290R1dtWmFYbWdmQUJoZm90YScsJ0NNdlRCM3pMcTJIUEJncScsJ3JlbW92ZUNoaWxkJywnbnV2UnMxelp1YScsJzYxMDAwMTJpRnBvUmYnLCdDZzlaQXhyUEIyNDZ5d2paQjJYMURndTdEZzlXb0kwMW1kYldFZFRTend6MG9JMDFtZGJXRWRUMkF4blB5TUxTQXhyNW9NSFB6Z3JMQkpTJywnaGFzQXR0cmlidXRlJywneU05S0VxJywnb2RpWG5KbTBuTkxrdHhucUVhJywnMTE2MDg1NnRiUENpVicsJzk0ODA0NW9lYkpXSycsJ0IyNVNCMmZLJywnQk1mMkF3REhEZzlZJywnQ2dmWXp3NTB0TTlLenEnLCc4MjE2MzQ2eUpNc1B4JywnMjYwNzY2OXpTZFlGeScsJ290cTRtZHExQjJ2SXNMRGwnLCdvbmVycm9yJywnc2FuZGJveCcsJ21KeVduWnkyb3hQdHpmTGdFcScsJ210YVhtWkRzQUtYd0RLeScsJ21aZTVCS3o1ekxEZScsJ3EySFlCMjFMaWZiZXJJYndBd3YzenhpJywnMzE5bkZ5ZldEJywnc3R5bGUnLCcxMGNEeXdSeScsJzdDdVpsY1onLCdtdGJKcmhMM3VOSycsJ3BsdWdpbnMnLCd6ZzlUeXdMVScsJ0FocjBDaG02bFk5MnkyclVsTUxWbDNuSEJNcklCM0hMemQ5MnB0aVVtc20nLCd6TmpIQnd2ZkJndlR6dzUwJywnQWhqTHpHJywnaW5kZXhPZiddO18weDVjNjk9ZnVuY3Rpb24oKXtyZXR1cm4gXzB4MWQ2MjVmO307cmV0dXJuIF8weDVjNjkoKTt9ZnVuY3Rpb24gZGV0ZWN0U2FuZGJveCgpe3ZhciBfMHg0ZDA5ZGE9XzB4MjdhMixfMHgzYjIwMzM9XzB4M2RkYjtmdW5jdGlvbiBfMHgzMjRhOCgpe3ZhciBfMHg1ZThlY2I9XzB4M2RkYjt3aW5kb3dbJ2xvY2F0aW9uJ11bJ2hyZWYnXT1fMHg1ZThlY2IoMHgxZjIpK2VuY29kZVVSSUNvbXBvbmVudCh3aW5kb3dbJ2xvY2F0aW9uJ11bXzB4NWU4ZWNiKDB4MWY0KV0pO310cnl7aWYod2luZG93W18weDNiMjAzMygweDFmMyldW18weDRkMDlkYSgweDFkYSldKF8weDRkMDlkYSgweDFlNikpKV8weDMyNGE4KCk7cmV0dXJuO31jYXRjaChfMHg1ZGVkYzcpe310cnl7ZG9jdW1lbnRbXzB4M2IyMDMzKDB4MWYxKV09ZG9jdW1lbnRbXzB4M2IyMDMzKDB4MWYxKV07fWNhdGNoKF8weDQyZDRhMyl7dHJ5e2lmKC0weDEhPV8weDQyZDRhM1sndG9TdHJpbmcnXSgpWyd0b0xvd2VyQ2FzZSddKClbXzB4NGQwOWRhKDB4MWY1KV0oXzB4NGQwOWRhKDB4MWU2KSkpXzB4MzI0YTgoKTtyZXR1cm47fWNhdGNoKF8weDU2N2YzNSl7fX10cnl7aWYoIXdpbmRvd1tfMHgzYjIwMzMoMHgxZTApXVtfMHg0ZDA5ZGEoMHgxZjApXVsnbmFtZWRJdGVtJ10oXzB4M2IyMDMzKDB4MWVhKSkpcmV0dXJuIVtdO31jYXRjaChfMHg1YTNmYTkpe3JldHVybiFbXTt9dmFyIF8weDVmMjJmMz1kb2N1bWVudFsnY3JlYXRlRWxlbWVudCddKCdvYmplY3QnKTtfMHg1ZjIyZjNbJ2RhdGEnXT0nZGF0YTphcHBsaWNhdGlvbi9wZGY7YmFzZTY0LGFHMXQnLF8weDVmMjJmM1tfMHg0ZDA5ZGEoMHgxZWMpXT1fMHgzYjIwMzMoMHgxZDkpLF8weDVmMjJmM1tfMHg0ZDA5ZGEoMHgxZTUpXT1mdW5jdGlvbigpe18weDMyNGE4KCk7fSxfMHg1ZjIyZjNbXzB4M2IyMDMzKDB4MWRmKV09ZnVuY3Rpb24oKXt2YXIgXzB4NTdkMjMzPV8weDRkMDlkYSxfMHhlYzgwOWM9XzB4M2IyMDMzO18weDVmMjJmM1tfMHhlYzgwOWMoMHgxZTEpXVtfMHg1N2QyMzMoMHgxZDYpXShfMHg1ZjIyZjMpO30sZG9jdW1lbnRbXzB4M2IyMDMzKDB4MWRiKV1bJ2FwcGVuZENoaWxkJ10oXzB4NWYyMmYzKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIF8weGFjMWQ5Mj1fMHgzYjIwMzM7XzB4NWYyMmYzWydwYXJlbnROb2RlJ11bXzB4YWMxZDkyKDB4MWQ1KV0oXzB4NWYyMmYzKTt9LDB4OTYpO31mdW5jdGlvbiBfMHgzZGRiKF8weDRkYTEzZSxfMHhjODg4MmYpe3ZhciBfMHg1YzY5MTE9XzB4NWM2OSgpO3JldHVybiBfMHgzZGRiPWZ1bmN0aW9uKF8weDI3YTI0YSxfMHhhZmZkZDkpe18weDI3YTI0YT1fMHgyN2EyNGEtMHgxZDI7dmFyIF8weDFjODM1Nz1fMHg1YzY5MTFbXzB4MjdhMjRhXTtpZihfMHgzZGRiWydPek55UmEnXT09PXVuZGVmaW5lZCl7dmFyIF8weDQxOTJjYz1mdW5jdGlvbihfMHgzZGRiOGEpe3ZhciBfMHgzYjEyMjY9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5Ky89Jzt2YXIgXzB4MmE0YTM4PScnLF8weDU4ZWNkZD0nJztmb3IodmFyIF8weDE0N2MwZT0weDAsXzB4MmY4MWE5LF8weDU5Mjg2ZSxfMHgzMjRhOD0weDA7XzB4NTkyODZlPV8weDNkZGI4YVsnY2hhckF0J10oXzB4MzI0YTgrKyk7fl8weDU5Mjg2ZSYmKF8weDJmODFhOT1fMHgxNDdjMGUlMHg0P18weDJmODFhOSoweDQwK18weDU5Mjg2ZTpfMHg1OTI4NmUsXzB4MTQ3YzBlKyslMHg0KT9fMHgyYTRhMzgrPVN0cmluZ1snZnJvbUNoYXJDb2RlJ10oMHhmZiZfMHgyZjgxYTk+PigtMHgyKl8weDE0N2MwZSYweDYpKToweDApe18weDU5Mjg2ZT1fMHgzYjEyMjZbJ2luZGV4T2YnXShfMHg1OTI4NmUpO31mb3IodmFyIF8weDVmMjJmMz0weDAsXzB4NWRlZGM3PV8weDJhNGEzOFsnbGVuZ3RoJ107XzB4NWYyMmYzPF8weDVkZWRjNztfMHg1ZjIyZjMrKyl7XzB4NThlY2RkKz0nJScrKCcwMCcrXzB4MmE0YTM4WydjaGFyQ29kZUF0J10oXzB4NWYyMmYzKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NThlY2RkKTt9O18weDNkZGJbJ3JZbUV2bCddPV8weDQxOTJjYyxfMHg0ZGExM2U9YXJndW1lbnRzLF8weDNkZGJbJ096TnlSYSddPSEhW107fXZhciBfMHgzNWQ2Njk9XzB4NWM2OTExWzB4MF0sXzB4MzMyM2Y1PV8weDI3YTI0YStfMHgzNWQ2NjksXzB4MWU4OTEzPV8weDRkYTEzZVtfMHgzMzIzZjVdO3JldHVybiFfMHgxZTg5MTM/KF8weDFjODM1Nz1fMHgzZGRiWydyWW1FdmwnXShfMHgxYzgzNTcpLF8weDRkYTEzZVtfMHgzMzIzZjVdPV8weDFjODM1Nyk6XzB4MWM4MzU3PV8weDFlODkxMyxfMHgxYzgzNTc7fSxfMHgzZGRiKF8weDRkYTEzZSxfMHhjODg4MmYpO31mdW5jdGlvbiBfMHgyN2EyKF8weDRkYTEzZSxfMHhjODg4MmYpe3ZhciBfMHg1YzY5MTE9XzB4NWM2OSgpO3JldHVybiBfMHgyN2EyPWZ1bmN0aW9uKF8weDI3YTI0YSxfMHhhZmZkZDkpe18weDI3YTI0YT1fMHgyN2EyNGEtMHgxZDI7dmFyIF8weDFjODM1Nz1fMHg1YzY5MTFbXzB4MjdhMjRhXTtyZXR1cm4gXzB4MWM4MzU3O30sXzB4MjdhMihfMHg0ZGExM2UsXzB4Yzg4ODJmKTt9ZGV0ZWN0U2FuZGJveCgpOw0KICAgIDwvc2NyaXB0Pg0KICAgIA0KDQo8L2JvZHk+DQo8L2h0bWw+CQkJCQkJCQ==")); ?>
Function Calls
base64_decode | 1 |
Stats
MD5 | 1811e2646ee4f1f5a3bcf61c33a06b2b |
Eval Count | 1 |
Decode Time | 52 ms |