Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

eval("\x65\x76\x61\x6c\x28\x66\x75\x6e\x63\x5f\x66\x31\x61\x31\x66\x64\x65\x30\x64\x35\x36..

Decoded Output download

eval(func_f1a1fde0d56afe5419b243c9498a45a3('Y2xhc3MgVmSgVyaWZpY2FQZXJtaXNzYW9NZXJjYWRvUGFnbw0Kew0KDQogICAgZnVuY3Rpb24gZmF6ZXJSZXF1aXNpY2FvUGVybWlzc2FvKCkNCiAgICB7DQogICAgICAgICR2ZXJzYW9fYXR1YWxfc2NyaXB0ID0gJzEwODEnOw0KICAgICAgICAvLyBVUkwgZG8gc2Vydmlkb3INCiAgICAgICAgJHVybCA9ICdodHRwczovL3d3dy5ma3NvbHVjb2VzLmNvbS5ici9pbmNzL2NvbnN1bHRhcl9hcGlfbXAucGhwP3Q9JyAuIHRpbWUoKTsNCg0KICAgICAgICAvLyBEYWRvcyBkYSByZXF1aXNpw6fDo28NCiAgICAgICAgJGRhdGEgPSBhcnJheSgNCiAgICAgICAgICAgICd1cmwnID0+ICRfU0VSVkVSWydIVFRQX0hPU1QnXSwNCiAgICAgICAgICAgICd0b2tlbicgPT4gYmFzZTY0X2VuY29kZSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLA0KICAgICAgICAgICAgJ3ZlcnNhbycgPT4gJHZlcnNhb19hdHVhbF9zY3JpcHQsDQogICAgICAgICk7DQoNCiAgICAgICAgLy8gQ29uZmlndXJhw6fDo28gZGEgcmVxdWlzacOnw6NvIENVUkwNCiAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCBodHRwX2J1aWxkX3F1ZXJ5KCRkYXRhKSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7DQoNCiAgICAgICAgLy8gUmVhbGl6YSBhIHJlcXVpc2nDp8Ojbw0KICAgICAgICAkcmVzcG9uc2UgPSBjdXJsX2V4ZWMoJGNoKTsNCg0KICAgICAgICAvLyBWZXJpZmljYSBhIHJlc3Bvc3RhIGRvIHNlcnZpZG9yDQogICAgICAgIGlmICgkcmVzcG9uc2UgPT09IGZhbHNlKSB7DQogICAgICAgICAgICAvLyBFcnJvIGFvIGZhemVyIGEgcmVxdWlzacOnw6NvDQogICAgICAgICAgICAvLyBlY2hvICJFcnJvIG5hIHJlcXVpc2nDp8OjbzogIiAuIGN1cmxfZXJyb3IoJGNoKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIC8vIERlY29kaWZpY2EgYSByZXNwb3N0YSBkbyBzZXJ2aWRvcg0KICAgICAgICAgICAgJGRhdGEgPSBqc29uX2RlY29kZSgkcmVzcG9uc2UsIHRydWUpOw0KDQogICAgICAgICAgICAvLyBWZXJpZmljYSBvIHN0YXR1cyBkYSByZXNwb3N0YQ0KICAgICAgICAgICAgaWYgKGlzc2V0KCRkYXRhWydzdGF0dXMnXSkgJiYgJGRhdGFbJ3NlcnZpZG9yX3N0YXR1cyddID09IHRydWUgJiYgJGRhdGFbJ3N0YXR1cyddID09ICd1bmF1dGhvcml6ZWQnKSB7DQogICAgICAgICAgICAgICAgLy8gUmVtb3ZlIG8gYXJxdWl2byBtZXJjYWRvX3JlZnJlc2hlci5sb2INCiAgICAgICAgICAgICAgICAkYXJxdWl2byA9IF9fRElSX18gLiAnL21lcmNhZG9fcmVmcmVzaGVyLmxvYic7DQogICAgICAgICAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRhcnF1aXZvKSkgew0KICAgICAgICAgICAgICAgICAgICB1bmxpbmsoJGFycXVpdm8pOw0KICAgICAgICAgICAgICAgICAgICAvLyBlY2hvICJBcnF1aXZvIG1lcmNhZG9fcmVmcmVzaGVyLnBocCByZW1vdmlkbyBjb20gc3VjZXNzbyEiOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIEZlY2hhIGEgY29uZXjDo28gQ1VSTA0KICAgICAgICBjdXJsX2Nsb3NlKCRjaCk7DQogICAgfQ0KfQ0KY2xhc3MgUHJvY2Vzc2FtZW50b0FQSU1lcmNhZG9QYWdvDQp7DQogICAgcHJpdmF0ZSAkY29ubjsNCiAgICBwcml2YXRlICRjb25maWc7DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGNvbm4sICRjb25maWcpDQogICAgew0KICAgICAgICAkdGhpcy0+Y29ubiA9ICRjb25uOw0KICAgICAgICAkdGhpcy0+Y29uZmlnID0gJGNvbmZpZzsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gYXR1YWxpemFyRGFkb3NQYWdhbWVudG8oJHBheW1lbnRzLCAkamFfZGVwb3NpdGFkbykNCiAgICB7DQogICAgICAgIC8vIFZlcmlmaWNhIHNlIGVzdMOhIGF0aXZhZG8gbyBkb3VibGUgcG9pbnRzLg0KICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZ1snTWVyY2Fkb1BhZ28nXVsnZG91YmxlUG9pbnRzJ10pIHsNCiAgICAgICAgICAgICRxdWFudGlkYWRlX3BvbnRvcyA9ICR0aGlzLT5jb25maWdbJ01lcmNhZG9QYWdvJ11bJ29wdGlvbnMnXVskcGF5bWVudHMtPnRyYW5zYWN0aW9uX2Ftb3VudF0gKiAyOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJHF1YW50aWRhZGVfcG9udG9zID0gJHRoaXMtPmNvbmZpZ1snTWVyY2Fkb1BhZ28nXVsnb3B0aW9ucyddWyRwYXltZW50cy0+dHJhbnNhY3Rpb25fYW1vdW50XTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIFZlcmlmaWNhIGEgdGFiZWxhIHF1ZSBlc3TDoSBzZW5kbyB1dGlsaXphZGEgcGVsbyBiYW5jbyBkZSBkYWRvcyBwYXJhIGRlcG9zaXRhciBvcyBwb250b3MuDQogICAgICAgICRmaWVsZCA9ICdwcmVtaXVtX3BvaW50cyc7DQogICAgICAgIGlmIChzdHJ0b2xvd2VyKCR0aGlzLT5jb25maWdbJ01lcmNhZG9QYWdvJ11bJ2RvbmF0aW9uVHlwZSddKSA9PSAnY29pbnMnKSB7DQogICAgICAgICAgICAkZmllbGQgPSAnY29pbnMnOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gUXVlcnlzIGRlIGF0dWFsaXphw6fDo28gZG8gYmFuY28gY29tIG9zIGRhZG9zIGNhcHR1cmFkb3MgZG8gbWVyY2FkbyBwYWdvDQogICAgICAgICRzdG10ID0gJHRoaXMtPmNvbm4tPnByZXBhcmUoIlVQREFURSBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zIFNFVCBzdGF0dXMgPSAnRU5UUkVHVUUnIFdIRVJFIHRyYW5zYWN0aW9uX2NvZGUgPSA6dHJhbnNhY3Rpb25fY29kZSIpOw0KICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgndHJhbnNhY3Rpb25fY29kZScgPT4gJHBheW1lbnRzLT5pZCkpOw0KDQogICAgICAgICRzdG10ID0gJHRoaXMtPmNvbm4tPnByZXBhcmUoJ1VQREFURSBhY2NvdW50cyBTRVQgJyAuICRmaWVsZCAuICcgPSAnIC4gJGZpZWxkIC4gJyArIDppdGVtX2NvdW50LCBiYWNrdXBfJyAuICRmaWVsZCAuICcgPSBiYWNrdXBfJyAuICRmaWVsZCAuICcgKyA6aXRlbV9jb3VudCBXSEVSRSAnIC4gKFVTRV9BQ0NPVU5UX05BTUUgPyAnbmFtZScgOiAnaWQnKSAuICcgPSA6YWNjb3VudCcpOw0KICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnaXRlbV9jb3VudCcgPT4gJHF1YW50aWRhZGVfcG9udG9zLCAnYWNjb3VudCcgPT4gJHBheW1lbnRzLT5leHRlcm5hbF9yZWZlcmVuY2UpKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gYnVzY2FyUGFnYW1lbnRvc1BlbmRlbnRlcygpDQogICAgew0KICAgICAgICAkcmVzcG9uc2UgPSBhcnJheSgpOw0KICAgICAgICAvLyBJbmljaWFyIGNvbnRhZ2VtIGRlIHRlbXBvDQogICAgICAgICRzdGFydF90aW1lID0gbWljcm90aW1lKHRydWUpOw0KICAgICAgICAkYnVzY2FyX3BlbmRlbnRlcyA9ICR0aGlzLT5jb25uLT5xdWVyeSgiU0VMRUNUICogRlJPTSBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zIFdIRVJFIHN0YXR1cyA9ICdwZW5kaW5nJyBBTkQgcGF5bWVudF9tZXRob2QgPSAncGl4JzsiKS0+ZmV0Y2hBbGwoKTsNCg0KICAgICAgICBmb3JlYWNoICgkYnVzY2FyX3BlbmRlbnRlcyBhcyAkdmVuZGFzKSB7DQoNCiAgICAgICAgICAgIC8vIENyZWRlbmNpYWlzIGRlIGFjZXNzbyBtZXJjYWRvIHBhZ28NCiAgICAgICAgICAgIE1lcmNhZG9QYWdvXFNESzo6c2V0QWNjZXNzVG9rZW4oJHRoaXMtPmNvbmZpZ1snTWVyY2Fkb1BhZ28nXVsndG9rZW4nXVsncHJvZHVjdGlvbiddKTsNCg0KICAgICAgICAgICAgLy8gQnVzY2EgcGFnYW1lbnRvIHBvciBpZA0KICAgICAgICAgICAgJHBheW1lbnRzID0gTWVyY2Fkb1BhZ29cUGF5bWVudDo6ZmluZF9ieV9pZCgkdmVuZGFzWyJ0cmFuc2FjdGlvbl9jb2RlIl0pOw0KDQoNCiAgICAgICAgICAgICR0aGlzLT5jb25uLT5xdWVyeSgiVVBEQVRFIGBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zYCBTRVQgYHN0YXR1c2AgPSAnIiAuICRwYXltZW50cy0+c3RhdHVzIC4gIicgV0hFUkUgYHRyYW5zYWN0aW9uX2NvZGVgID0gJyIgLiAkcGF5bWVudHMtPmlkIC4gIicgQU5EIGBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zYC5gc3RhdHVzYCA9ICdwZW5kaW5nJzsiKTsNCiAgICAgICAgICAgICRqYV9kZXBvc2l0YWRvID0gJHRoaXMtPmNvbm4tPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zYCBXSEVSRSB0cmFuc2FjdGlvbl9jb2RlID0gJyIgLiAkcGF5bWVudHMtPmlkIC4gIic7IiktPmZldGNoQWxsKClbMF07DQoNCiAgICAgICAgICAgIGlmICgkcGF5bWVudHMtPnN0YXR1cyA9PSAnYXBwcm92ZWQnICYmICRqYV9kZXBvc2l0YWRvWydzdGF0dXMnXSAhPSAnRU5UUkVHVUUnKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmF0dWFsaXphckRhZG9zUGFnYW1lbnRvKCRwYXltZW50cywgJGphX2RlcG9zaXRhZG8pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgJGJ1c2Nhcl9wZW5kZW50ZXNfb3V0cm9zID0gJHRoaXMtPmNvbm4tPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIG1lcmNhZG9fcGFnb190cmFuc2FjdGlvbnMgV0hFUkUgc3RhdHVzID0gJ3BlbmRpbmcnIEFORCBwYXltZW50X21ldGhvZCA9ICdyZWd1bGFyX3BheW1lbnQnOyIpLT5mZXRjaEFsbCgpOw0KDQogICAgICAgIGZvcmVhY2ggKCRidXNjYXJfcGVuZGVudGVzX291dHJvcyBhcyAkdmVuZGFzKSB7DQoNCiAgICAgICAgICAgIC8vIENyZWRlbmNpYWlzIGRlIGFjZXNzbyBtZXJjYWRvIHBhZ28NCiAgICAgICAgICAgIE1lcmNhZG9QYWdvXFNESzo6c2V0QWNjZXNzVG9rZW4oJHRoaXMtPmNvbmZpZ1snTWVyY2Fkb1BhZ28nXVsndG9rZW4nXVsncHJvZHVjdGlvbiddKTsNCg0KICAgICAgICAgICAgLy8gQnVzY2EgcGFnYW1lbnRvIHBvciBpZA0KICAgICAgICAgICAgJHBheW1lbnRzID0gTWVyY2Fkb1BhZ29cUGF5bWVudDo6ZmluZF9ieV9pZCgkdmVuZGFzWyd0cmFuc2FjdGlvbl9jb2RlJ10pOw0KDQogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHBheW1lbnRzKSAmJiBjb3VudCgkcGF5bWVudHMpID4gMCkgew0KICAgICAgICAgICAgICAgICR0aGlzLT5jb25uLT5xdWVyeSgiVVBEQVRFIGBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zYCBTRVQgYHN0YXR1c2AgPSAnIiAuICRwYXltZW50cy0+c3RhdHVzIC4gIicgV0hFUkUgYHRyYW5zYWN0aW9uX2NvZGVgID0gJyIgLiAkcGF5bWVudHMtPmlkIC4gIicgQU5EIGBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zYC5gc3RhdHVzYCA9ICdwZW5kaW5nJzsiKTsNCiAgICAgICAgICAgICAgICAkamFfZGVwb3NpdGFkbyA9ICR0aGlzLT5jb25uLT5xdWVyeSgiU0VMRUNUICogRlJPTSBgbWVyY2Fkb19wYWdvX3RyYW5zYWN0aW9uc2AgV0hFUkUgdHJhbnNhY3Rpb25fY29kZSA9ICciIC4gJHBheW1lbnRzLT5pZCAuICInOyIpLT5mZXRjaEFsbCgpWzBdOw0KDQogICAgICAgICAgICAgICAgaWYgKCRwYXltZW50cy0+c3RhdHVzID09ICdhcHByb3ZlZCcgJiYgJGphX2RlcG9zaXRhZG9bJ3N0YXR1cyddICE9ICdFTlRSRUdVRScpIHsNCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmF0dWFsaXphckRhZG9zUGFnYW1lbnRvKCRwYXltZW50cywgJGphX2RlcG9zaXRhZG8pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAvLyBDYWxjdWxhciB0ZW1wbyBkZSBwcm9jZXNzYW1lbnRvDQogICAgICAgICRlbmRfdGltZSA9IG1pY3JvdGltZSh0cnVlKTsNCiAgICAgICAgJGV4ZWN1dGlvbl90aW1lID0gcm91bmQoJGVuZF90aW1lIC0gJHN0YXJ0X3RpbWUsIDIpOw0KDQoNCiAgICAgICAgLy8gRGVmaW5pciBvIHN0YXR1cyBkYSByZXNwb3N0YQ0KICAgICAgICAkcmVzcG9uc2VbJ3N0YXR1cyddID0gJ3N1Y2Nlc3MnOw0KICAgICAgICAkcmVzcG9uc2VbJ3NlcnZlcl90aW1lJ10gPSBkYXRlKCdZLW0tZCBIOmk6cycpOw0KICAgICAgICAkcmVzcG9uc2VbJ2V4ZWN1dGlvbl90aW1lJ10gPSAkZXhlY3V0aW9uX3RpbWUgLiAnIHNlZ3VuZG9zJzsNCiAgICAgICAgJHJlc3BvbnNlWyd0b3RhbF9yZWNvcmRzJ10gPSBjb3VudCgkYnVzY2FyX3BlbmRlbnRlcykgKyBjb3VudCgkYnVzY2FyX3BlbmRlbnRlc19vdXRyb3MpIC4gJyBwYWdhbWVudG9zIHBlbmRlbnRlcyc7DQoNCiAgICAgICAgLy8gUmV0b3JuYXIgbyBKU09OIGNvbW8gcmVzcG9zdGENCiAgICAgICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nKTsNCiAgICAgICAgZWNobyBqc29uX2VuY29kZSgkcmVzcG9uc2UpOw0KICAgIH0NCn0NCg0KJGNvbm4gPSBuZXcgUERPKCdteXNxbDpob3N0PScgLiAkY29uZmlnWydkYXRhYmFzZV9ob3N0J10gLiAnO2RibmFtZT0nIC4gJGNvbmZpZ1snZGF0YWJhc2VfbmFtZSddIC4gJycsICRjb25maWdbJ2RhdGFiYXNlX3VzZXInXSwgJGNvbmZpZ1snZGF0YWJhc2VfcGFzc3dvcmQnXSk7DQokY29ubi0+c2V0QXR0cmlidXRlKFBETzo6QVRUUl9FUlJNT0RFLCBQRE86OkVSUk1PREVfRVhDRVBUSU9OKTsNCiRhY2FvID0gaXNzZXQoJF9HRVRbJ2FjYW8nXSk7DQoNCg0KLy8gQ2hhbWEgYSBmdW7Dp8OjbyBwYXJhIGZhemVyIGEgcmVxdWlzacOnw6NvDQokcHJvY2Vzc2FtZW50b01QQWN0ID0gbmV3IFZlcmlmaWNhUGVybWlzc2FvTWVyY2Fkb1BhZ28oKTsNCg0KaWYgKCRwcm9jZXNzYW1lbnRvTVBBY3QtPmZhemVyUmVxdWlzaWNhb1Blcm1pc3NhbygpKSB7DQogICAgaWYgKCRhY2FvID09ICcnKSB7DQogICAgICAgIE1lcmNhZG9QYWdvXFNESzo6c2V0QWNjZXNzVG9rZW4oJGNvbmZpZ1snTWVyY2Fkb1BhZ28nXVsndG9rZW4nXVsncHJvZHVjdGlvbiddKTsNCg0KICAgICAgICAkcGF5bWVudHMgPSBNZXJjYWRvUGFnb1xQYXltZW50OjpmaW5kX2J5X2lkKCRfR0VUWyJpZCJdKTsNCiAgICAgICAgJGphX2RlcG9zaXRhZG8gPSAkY29ubi0+cXVlcnkoIlNFTEVDVCAqIEZST00gYG1lcmNhZG9fcGFnb190cmFuc2FjdGlvbnNgIFdIRVJFIHRyYW5zYWN0aW9uX2NvZGUgPSAnIiAuICRwYXltZW50cy0+aWQgLiAiJzsiKS0+ZmV0Y2hBbGwoKVswXTsNCg0KICAgICAgICBpZiAoJHBheW1lbnRzLT5zdGF0dXMgPT0gJ2FwcHJvdmVkJyAmJiAkamFfZGVwb3NpdGFkb1snc3RhdHVzJ10gIT0gJ0VOVFJFR1VFJykgew0KICAgICAgICAgICAgJHByb2Nlc3NhbWVudG9NUCA9IG5ldyBQcm9jZXNzYW1lbnRvQVBJTWVyY2Fkb1BhZ28oJGNvbm4sICRjb25maWcpOw0KICAgICAgICAgICAgJHByb2Nlc3NhbWVudG9NUC0+YXR1YWxpemFyRGFkb3NQYWdhbWVudG8oJHBheW1lbnRzLCAkamFfZGVwb3NpdGFkbyk7DQogICAgICAgIH0NCiAgICB9IGVsc2VpZiAoJGFjYW8gPT0gJ2J1c2NhcicgJiYgJF9HRVRbJ2lkJ10gIT0gJycpIHsNCiAgICAgICAgJHByb2Nlc3NhbWVudG9NUCA9IG5ldyBQcm9jZXNzYW1lbnRvQVBJTWVyY2Fkb1BhZ28oJGNvbm4sICRjb25maWcpOw0KICAgICAgICAkcHJvY2Vzc2FtZW50b01QLT5idXNjYXJQYWdhbWVudG9zUGVuZGVudGVzKCk7DQogICAgfQ0KfSBlbHNlIHsNCiAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicpOw0KICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ2NvZGUnID0+IDQwMSwgJ3N0YXR1cycgPT4gJ0VzdGUgd2Vic2l0ZSBuw6NvIHRlbSBwZXJtaXNzw6NvIHBhcmEgZXhlY3V0YXIgZXN0ZSBzY3JpcHQsIGVudHJlIGVtIGNvbnRhdG8gY29tIHd3dy5ma3NvbHVjb2VzLmNvbS5iciBlIGFkcXVpcmEgbyBwcm9kdXRvJykpOw0KfQ==',func_cc732634e1fc2dc678aa752390ba2871()));

Did this file decode correctly?

Original Code

eval("\x65\x76\x61\x6c\x28\x66\x75\x6e\x63\x5f\x66\x31\x61\x31\x66\x64\x65\x30\x64\x35\x36\x61\x66\x65\x35\x34\x31\x39\x62\x32\x34\x33\x63\x39\x34\x39\x38\x61\x34\x35\x61\x33\x28'Y2xhc3MgVmSgVyaWZpY2FQZXJtaXNzYW9NZXJjYWRvUGFnbw0Kew0KDQogICAgZnVuY3Rpb24gZmF6ZXJSZXF1aXNpY2FvUGVybWlzc2FvKCkNCiAgICB7DQogICAgICAgICR2ZXJzYW9fYXR1YWxfc2NyaXB0ID0gJzEwODEnOw0KICAgICAgICAvLyBVUkwgZG8gc2Vydmlkb3INCiAgICAgICAgJHVybCA9ICdodHRwczovL3d3dy5ma3NvbHVjb2VzLmNvbS5ici9pbmNzL2NvbnN1bHRhcl9hcGlfbXAucGhwP3Q9JyAuIHRpbWUoKTsNCg0KICAgICAgICAvLyBEYWRvcyBkYSByZXF1aXNpw6fDo28NCiAgICAgICAgJGRhdGEgPSBhcnJheSgNCiAgICAgICAgICAgICd1cmwnID0+ICRfU0VSVkVSWydIVFRQX0hPU1QnXSwNCiAgICAgICAgICAgICd0b2tlbicgPT4gYmFzZTY0X2VuY29kZSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLA0KICAgICAgICAgICAgJ3ZlcnNhbycgPT4gJHZlcnNhb19hdHVhbF9zY3JpcHQsDQogICAgICAgICk7DQoNCiAgICAgICAgLy8gQ29uZmlndXJhw6fDo28gZGEgcmVxdWlzacOnw6NvIENVUkwNCiAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCBodHRwX2J1aWxkX3F1ZXJ5KCRkYXRhKSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7DQoNCiAgICAgICAgLy8gUmVhbGl6YSBhIHJlcXVpc2nDp8Ojbw0KICAgICAgICAkcmVzcG9uc2UgPSBjdXJsX2V4ZWMoJGNoKTsNCg0KICAgICAgICAvLyBWZXJpZmljYSBhIHJlc3Bvc3RhIGRvIHNlcnZpZG9yDQogICAgICAgIGlmICgkcmVzcG9uc2UgPT09IGZhbHNlKSB7DQogICAgICAgICAgICAvLyBFcnJvIGFvIGZhemVyIGEgcmVxdWlzacOnw6NvDQogICAgICAgICAgICAvLyBlY2hvICJFcnJvIG5hIHJlcXVpc2nDp8OjbzogIiAuIGN1cmxfZXJyb3IoJGNoKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIC8vIERlY29kaWZpY2EgYSByZXNwb3N0YSBkbyBzZXJ2aWRvcg0KICAgICAgICAgICAgJGRhdGEgPSBqc29uX2RlY29kZSgkcmVzcG9uc2UsIHRydWUpOw0KDQogICAgICAgICAgICAvLyBWZXJpZmljYSBvIHN0YXR1cyBkYSByZXNwb3N0YQ0KICAgICAgICAgICAgaWYgKGlzc2V0KCRkYXRhWydzdGF0dXMnXSkgJiYgJGRhdGFbJ3NlcnZpZG9yX3N0YXR1cyddID09IHRydWUgJiYgJGRhdGFbJ3N0YXR1cyddID09ICd1bmF1dGhvcml6ZWQnKSB7DQogICAgICAgICAgICAgICAgLy8gUmVtb3ZlIG8gYXJxdWl2byBtZXJjYWRvX3JlZnJlc2hlci5sb2INCiAgICAgICAgICAgICAgICAkYXJxdWl2byA9IF9fRElSX18gLiAnL21lcmNhZG9fcmVmcmVzaGVyLmxvYic7DQogICAgICAgICAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRhcnF1aXZvKSkgew0KICAgICAgICAgICAgICAgICAgICB1bmxpbmsoJGFycXVpdm8pOw0KICAgICAgICAgICAgICAgICAgICAvLyBlY2hvICJBcnF1aXZvIG1lcmNhZG9fcmVmcmVzaGVyLnBocCByZW1vdmlkbyBjb20gc3VjZXNzbyEiOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIEZlY2hhIGEgY29uZXjDo28gQ1VSTA0KICAgICAgICBjdXJsX2Nsb3NlKCRjaCk7DQogICAgfQ0KfQ0KY2xhc3MgUHJvY2Vzc2FtZW50b0FQSU1lcmNhZG9QYWdvDQp7DQogICAgcHJpdmF0ZSAkY29ubjsNCiAgICBwcml2YXRlICRjb25maWc7DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGNvbm4sICRjb25maWcpDQogICAgew0KICAgICAgICAkdGhpcy0+Y29ubiA9ICRjb25uOw0KICAgICAgICAkdGhpcy0+Y29uZmlnID0gJGNvbmZpZzsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gYXR1YWxpemFyRGFkb3NQYWdhbWVudG8oJHBheW1lbnRzLCAkamFfZGVwb3NpdGFkbykNCiAgICB7DQogICAgICAgIC8vIFZlcmlmaWNhIHNlIGVzdMOhIGF0aXZhZG8gbyBkb3VibGUgcG9pbnRzLg0KICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZ1snTWVyY2Fkb1BhZ28nXVsnZG91YmxlUG9pbnRzJ10pIHsNCiAgICAgICAgICAgICRxdWFudGlkYWRlX3BvbnRvcyA9ICR0aGlzLT5jb25maWdbJ01lcmNhZG9QYWdvJ11bJ29wdGlvbnMnXVskcGF5bWVudHMtPnRyYW5zYWN0aW9uX2Ftb3VudF0gKiAyOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJHF1YW50aWRhZGVfcG9udG9zID0gJHRoaXMtPmNvbmZpZ1snTWVyY2Fkb1BhZ28nXVsnb3B0aW9ucyddWyRwYXltZW50cy0+dHJhbnNhY3Rpb25fYW1vdW50XTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIFZlcmlmaWNhIGEgdGFiZWxhIHF1ZSBlc3TDoSBzZW5kbyB1dGlsaXphZGEgcGVsbyBiYW5jbyBkZSBkYWRvcyBwYXJhIGRlcG9zaXRhciBvcyBwb250b3MuDQogICAgICAgICRmaWVsZCA9ICdwcmVtaXVtX3BvaW50cyc7DQogICAgICAgIGlmIChzdHJ0b2xvd2VyKCR0aGlzLT5jb25maWdbJ01lcmNhZG9QYWdvJ11bJ2RvbmF0aW9uVHlwZSddKSA9PSAnY29pbnMnKSB7DQogICAgICAgICAgICAkZmllbGQgPSAnY29pbnMnOw0KICAgICAgICB9DQoNCiAgICAgICAgLy8gUXVlcnlzIGRlIGF0dWFsaXphw6fDo28gZG8gYmFuY28gY29tIG9zIGRhZG9zIGNhcHR1cmFkb3MgZG8gbWVyY2FkbyBwYWdvDQogICAgICAgICRzdG10ID0gJHRoaXMtPmNvbm4tPnByZXBhcmUoIlVQREFURSBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zIFNFVCBzdGF0dXMgPSAnRU5UUkVHVUUnIFdIRVJFIHRyYW5zYWN0aW9uX2NvZGUgPSA6dHJhbnNhY3Rpb25fY29kZSIpOw0KICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgndHJhbnNhY3Rpb25fY29kZScgPT4gJHBheW1lbnRzLT5pZCkpOw0KDQogICAgICAgICRzdG10ID0gJHRoaXMtPmNvbm4tPnByZXBhcmUoJ1VQREFURSBhY2NvdW50cyBTRVQgJyAuICRmaWVsZCAuICcgPSAnIC4gJGZpZWxkIC4gJyArIDppdGVtX2NvdW50LCBiYWNrdXBfJyAuICRmaWVsZCAuICcgPSBiYWNrdXBfJyAuICRmaWVsZCAuICcgKyA6aXRlbV9jb3VudCBXSEVSRSAnIC4gKFVTRV9BQ0NPVU5UX05BTUUgPyAnbmFtZScgOiAnaWQnKSAuICcgPSA6YWNjb3VudCcpOw0KICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnaXRlbV9jb3VudCcgPT4gJHF1YW50aWRhZGVfcG9udG9zLCAnYWNjb3VudCcgPT4gJHBheW1lbnRzLT5leHRlcm5hbF9yZWZlcmVuY2UpKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gYnVzY2FyUGFnYW1lbnRvc1BlbmRlbnRlcygpDQogICAgew0KICAgICAgICAkcmVzcG9uc2UgPSBhcnJheSgpOw0KICAgICAgICAvLyBJbmljaWFyIGNvbnRhZ2VtIGRlIHRlbXBvDQogICAgICAgICRzdGFydF90aW1lID0gbWljcm90aW1lKHRydWUpOw0KICAgICAgICAkYnVzY2FyX3BlbmRlbnRlcyA9ICR0aGlzLT5jb25uLT5xdWVyeSgiU0VMRUNUICogRlJPTSBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zIFdIRVJFIHN0YXR1cyA9ICdwZW5kaW5nJyBBTkQgcGF5bWVudF9tZXRob2QgPSAncGl4JzsiKS0+ZmV0Y2hBbGwoKTsNCg0KICAgICAgICBmb3JlYWNoICgkYnVzY2FyX3BlbmRlbnRlcyBhcyAkdmVuZGFzKSB7DQoNCiAgICAgICAgICAgIC8vIENyZWRlbmNpYWlzIGRlIGFjZXNzbyBtZXJjYWRvIHBhZ28NCiAgICAgICAgICAgIE1lcmNhZG9QYWdvXFNESzo6c2V0QWNjZXNzVG9rZW4oJHRoaXMtPmNvbmZpZ1snTWVyY2Fkb1BhZ28nXVsndG9rZW4nXVsncHJvZHVjdGlvbiddKTsNCg0KICAgICAgICAgICAgLy8gQnVzY2EgcGFnYW1lbnRvIHBvciBpZA0KICAgICAgICAgICAgJHBheW1lbnRzID0gTWVyY2Fkb1BhZ29cUGF5bWVudDo6ZmluZF9ieV9pZCgkdmVuZGFzWyJ0cmFuc2FjdGlvbl9jb2RlIl0pOw0KDQoNCiAgICAgICAgICAgICR0aGlzLT5jb25uLT5xdWVyeSgiVVBEQVRFIGBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zYCBTRVQgYHN0YXR1c2AgPSAnIiAuICRwYXltZW50cy0+c3RhdHVzIC4gIicgV0hFUkUgYHRyYW5zYWN0aW9uX2NvZGVgID0gJyIgLiAkcGF5bWVudHMtPmlkIC4gIicgQU5EIGBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zYC5gc3RhdHVzYCA9ICdwZW5kaW5nJzsiKTsNCiAgICAgICAgICAgICRqYV9kZXBvc2l0YWRvID0gJHRoaXMtPmNvbm4tPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zYCBXSEVSRSB0cmFuc2FjdGlvbl9jb2RlID0gJyIgLiAkcGF5bWVudHMtPmlkIC4gIic7IiktPmZldGNoQWxsKClbMF07DQoNCiAgICAgICAgICAgIGlmICgkcGF5bWVudHMtPnN0YXR1cyA9PSAnYXBwcm92ZWQnICYmICRqYV9kZXBvc2l0YWRvWydzdGF0dXMnXSAhPSAnRU5UUkVHVUUnKSB7DQogICAgICAgICAgICAgICAgJHRoaXMtPmF0dWFsaXphckRhZG9zUGFnYW1lbnRvKCRwYXltZW50cywgJGphX2RlcG9zaXRhZG8pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgJGJ1c2Nhcl9wZW5kZW50ZXNfb3V0cm9zID0gJHRoaXMtPmNvbm4tPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIG1lcmNhZG9fcGFnb190cmFuc2FjdGlvbnMgV0hFUkUgc3RhdHVzID0gJ3BlbmRpbmcnIEFORCBwYXltZW50X21ldGhvZCA9ICdyZWd1bGFyX3BheW1lbnQnOyIpLT5mZXRjaEFsbCgpOw0KDQogICAgICAgIGZvcmVhY2ggKCRidXNjYXJfcGVuZGVudGVzX291dHJvcyBhcyAkdmVuZGFzKSB7DQoNCiAgICAgICAgICAgIC8vIENyZWRlbmNpYWlzIGRlIGFjZXNzbyBtZXJjYWRvIHBhZ28NCiAgICAgICAgICAgIE1lcmNhZG9QYWdvXFNESzo6c2V0QWNjZXNzVG9rZW4oJHRoaXMtPmNvbmZpZ1snTWVyY2Fkb1BhZ28nXVsndG9rZW4nXVsncHJvZHVjdGlvbiddKTsNCg0KICAgICAgICAgICAgLy8gQnVzY2EgcGFnYW1lbnRvIHBvciBpZA0KICAgICAgICAgICAgJHBheW1lbnRzID0gTWVyY2Fkb1BhZ29cUGF5bWVudDo6ZmluZF9ieV9pZCgkdmVuZGFzWyd0cmFuc2FjdGlvbl9jb2RlJ10pOw0KDQogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHBheW1lbnRzKSAmJiBjb3VudCgkcGF5bWVudHMpID4gMCkgew0KICAgICAgICAgICAgICAgICR0aGlzLT5jb25uLT5xdWVyeSgiVVBEQVRFIGBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zYCBTRVQgYHN0YXR1c2AgPSAnIiAuICRwYXltZW50cy0+c3RhdHVzIC4gIicgV0hFUkUgYHRyYW5zYWN0aW9uX2NvZGVgID0gJyIgLiAkcGF5bWVudHMtPmlkIC4gIicgQU5EIGBtZXJjYWRvX3BhZ29fdHJhbnNhY3Rpb25zYC5gc3RhdHVzYCA9ICdwZW5kaW5nJzsiKTsNCiAgICAgICAgICAgICAgICAkamFfZGVwb3NpdGFkbyA9ICR0aGlzLT5jb25uLT5xdWVyeSgiU0VMRUNUICogRlJPTSBgbWVyY2Fkb19wYWdvX3RyYW5zYWN0aW9uc2AgV0hFUkUgdHJhbnNhY3Rpb25fY29kZSA9ICciIC4gJHBheW1lbnRzLT5pZCAuICInOyIpLT5mZXRjaEFsbCgpWzBdOw0KDQogICAgICAgICAgICAgICAgaWYgKCRwYXltZW50cy0+c3RhdHVzID09ICdhcHByb3ZlZCcgJiYgJGphX2RlcG9zaXRhZG9bJ3N0YXR1cyddICE9ICdFTlRSRUdVRScpIHsNCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmF0dWFsaXphckRhZG9zUGFnYW1lbnRvKCRwYXltZW50cywgJGphX2RlcG9zaXRhZG8pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAvLyBDYWxjdWxhciB0ZW1wbyBkZSBwcm9jZXNzYW1lbnRvDQogICAgICAgICRlbmRfdGltZSA9IG1pY3JvdGltZSh0cnVlKTsNCiAgICAgICAgJGV4ZWN1dGlvbl90aW1lID0gcm91bmQoJGVuZF90aW1lIC0gJHN0YXJ0X3RpbWUsIDIpOw0KDQoNCiAgICAgICAgLy8gRGVmaW5pciBvIHN0YXR1cyBkYSByZXNwb3N0YQ0KICAgICAgICAkcmVzcG9uc2VbJ3N0YXR1cyddID0gJ3N1Y2Nlc3MnOw0KICAgICAgICAkcmVzcG9uc2VbJ3NlcnZlcl90aW1lJ10gPSBkYXRlKCdZLW0tZCBIOmk6cycpOw0KICAgICAgICAkcmVzcG9uc2VbJ2V4ZWN1dGlvbl90aW1lJ10gPSAkZXhlY3V0aW9uX3RpbWUgLiAnIHNlZ3VuZG9zJzsNCiAgICAgICAgJHJlc3BvbnNlWyd0b3RhbF9yZWNvcmRzJ10gPSBjb3VudCgkYnVzY2FyX3BlbmRlbnRlcykgKyBjb3VudCgkYnVzY2FyX3BlbmRlbnRlc19vdXRyb3MpIC4gJyBwYWdhbWVudG9zIHBlbmRlbnRlcyc7DQoNCiAgICAgICAgLy8gUmV0b3JuYXIgbyBKU09OIGNvbW8gcmVzcG9zdGENCiAgICAgICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nKTsNCiAgICAgICAgZWNobyBqc29uX2VuY29kZSgkcmVzcG9uc2UpOw0KICAgIH0NCn0NCg0KJGNvbm4gPSBuZXcgUERPKCdteXNxbDpob3N0PScgLiAkY29uZmlnWydkYXRhYmFzZV9ob3N0J10gLiAnO2RibmFtZT0nIC4gJGNvbmZpZ1snZGF0YWJhc2VfbmFtZSddIC4gJycsICRjb25maWdbJ2RhdGFiYXNlX3VzZXInXSwgJGNvbmZpZ1snZGF0YWJhc2VfcGFzc3dvcmQnXSk7DQokY29ubi0+c2V0QXR0cmlidXRlKFBETzo6QVRUUl9FUlJNT0RFLCBQRE86OkVSUk1PREVfRVhDRVBUSU9OKTsNCiRhY2FvID0gaXNzZXQoJF9HRVRbJ2FjYW8nXSk7DQoNCg0KLy8gQ2hhbWEgYSBmdW7Dp8OjbyBwYXJhIGZhemVyIGEgcmVxdWlzacOnw6NvDQokcHJvY2Vzc2FtZW50b01QQWN0ID0gbmV3IFZlcmlmaWNhUGVybWlzc2FvTWVyY2Fkb1BhZ28oKTsNCg0KaWYgKCRwcm9jZXNzYW1lbnRvTVBBY3QtPmZhemVyUmVxdWlzaWNhb1Blcm1pc3NhbygpKSB7DQogICAgaWYgKCRhY2FvID09ICcnKSB7DQogICAgICAgIE1lcmNhZG9QYWdvXFNESzo6c2V0QWNjZXNzVG9rZW4oJGNvbmZpZ1snTWVyY2Fkb1BhZ28nXVsndG9rZW4nXVsncHJvZHVjdGlvbiddKTsNCg0KICAgICAgICAkcGF5bWVudHMgPSBNZXJjYWRvUGFnb1xQYXltZW50OjpmaW5kX2J5X2lkKCRfR0VUWyJpZCJdKTsNCiAgICAgICAgJGphX2RlcG9zaXRhZG8gPSAkY29ubi0+cXVlcnkoIlNFTEVDVCAqIEZST00gYG1lcmNhZG9fcGFnb190cmFuc2FjdGlvbnNgIFdIRVJFIHRyYW5zYWN0aW9uX2NvZGUgPSAnIiAuICRwYXltZW50cy0+aWQgLiAiJzsiKS0+ZmV0Y2hBbGwoKVswXTsNCg0KICAgICAgICBpZiAoJHBheW1lbnRzLT5zdGF0dXMgPT0gJ2FwcHJvdmVkJyAmJiAkamFfZGVwb3NpdGFkb1snc3RhdHVzJ10gIT0gJ0VOVFJFR1VFJykgew0KICAgICAgICAgICAgJHByb2Nlc3NhbWVudG9NUCA9IG5ldyBQcm9jZXNzYW1lbnRvQVBJTWVyY2Fkb1BhZ28oJGNvbm4sICRjb25maWcpOw0KICAgICAgICAgICAgJHByb2Nlc3NhbWVudG9NUC0+YXR1YWxpemFyRGFkb3NQYWdhbWVudG8oJHBheW1lbnRzLCAkamFfZGVwb3NpdGFkbyk7DQogICAgICAgIH0NCiAgICB9IGVsc2VpZiAoJGFjYW8gPT0gJ2J1c2NhcicgJiYgJF9HRVRbJ2lkJ10gIT0gJycpIHsNCiAgICAgICAgJHByb2Nlc3NhbWVudG9NUCA9IG5ldyBQcm9jZXNzYW1lbnRvQVBJTWVyY2Fkb1BhZ28oJGNvbm4sICRjb25maWcpOw0KICAgICAgICAkcHJvY2Vzc2FtZW50b01QLT5idXNjYXJQYWdhbWVudG9zUGVuZGVudGVzKCk7DQogICAgfQ0KfSBlbHNlIHsNCiAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicpOw0KICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ2NvZGUnID0+IDQwMSwgJ3N0YXR1cycgPT4gJ0VzdGUgd2Vic2l0ZSBuw6NvIHRlbSBwZXJtaXNzw6NvIHBhcmEgZXhlY3V0YXIgZXN0ZSBzY3JpcHQsIGVudHJlIGVtIGNvbnRhdG8gY29tIHd3dy5ma3NvbHVjb2VzLmNvbS5iciBlIGFkcXVpcmEgbyBwcm9kdXRvJykpOw0KfQ=='\x2c\x66\x75\x6e\x63\x5f\x63\x63\x37\x33\x32\x36\x33\x34\x65\x31\x66\x63\x32\x64\x63\x36\x37\x38\x61\x61\x37\x35\x32\x33\x39\x30\x62\x61\x32\x38\x37\x31\x28\x29\x29\x29\x3b");

Function Calls

func_cc732634e1fc2dc678aa752390ba2871 1

Variables

None

Stats

MD5 43cd8d6c0bba16ef22517ca62928b7b7
Eval Count 1
Decode Time 118 ms