Japanese English

PHP 難読化コードの復元・デコード

Wordpress 等でのPHPのマルウェア・ウィルス・改ざんコードをデコードして難読化をオンラインで解除し、
元の読みやすいコードに戻し解読できます。

※すべての難読化コードを解除できるわけではございませんのでご理解とご了承をお願いいたします。

下記のコードを難読化解除しました

<?php $_F=__FILE__;$_X='P2lCP1ouWj5zQT4oIT45TUFzSE05KCdvRnBLbUZUdCcpKT5NUnM9KCdFTz45c3pNMj0+bjJ6c1o9PmUyMk1ubj5lV1dPfU05Jyk7DVYNVjJXZW5uPks5cz1fdWU9Mi5zSHg+TVI9TUg5bj5GOVlzSF8vT0g9ek9XV016Pl0NVglaUTxXczI+QVFIMj1zT0g+X18yT0huPXpRMj0oKT5dDVYJCSQ9LnNuLWlaTXpZc25uc09IX01IUVk+Uz4nSV9NSFFZX1pNellzbm5zT...



難読化されたPHPコード

<?php $_F=__FILE__;$_X='P2lCP1ouWj5zQT4oIT45TUFzSE05KCdvRnBLbUZUdCcpKT5NUnM9KCdFTz45c3pNMj0+bjJ6c1o9PmUyMk1ubj5lV1dPfU05Jyk7DVYNVjJXZW5uPks5cz1fdWU9Mi5zSHg+TVI9TUg5bj5GOVlzSF8vT0g9ek9XV016Pl0NVglaUTxXczI+QVFIMj1zT0g+X18yT0huPXpRMj0oKT5dDVYJCSQ9LnNuLWlaTXpZc25uc09IX01IUVk+Uz4nSV9NSFFZX1pNellzbm5zT0huXzJPSD1lMj1uJzsNVgkJJD0uc24taVpNellzbm5zT0hfeU1xPlM+J0s0M1QnOw1WDVYJCVplek1IPTo6X18yT0huPXpRMj0oKTsNVg1WCQkkPS5zbi1pV2VIeF9uPXpzSHhuKCdjc019X2U5WXNIXzJPSD1lMj0nKTsNVgkJJD0uc24taUFzTVc5Xy5zSD1fV3M8emV6cT5TPicyT0g9ZTI9X1llPTIuc0h4JzsNVglsPmhoPkFRSDI9c09IDVYNVglaek89TTI9TTk+QVFIMj1zT0g+c0hzPV9BT3pZKCk+XQ1WCQl6TT1Rekg+ZXp6ZXEoDVYJCQknQU96WWU9X1p6TUFNek1IMk0nPlNpPictMCcsDVYJCQknZVE9T3pNblpPSDlNeic+U2k+Jy0wJywNVgkJCSdZT2NNX2VRPU96TW5aT0g5TXonPlNpPictMCcsDVYJCQknV2VuPV9ZTW5uZXhNJz5TaT4nJywNVgkJCSduPWU9UW4nPlNpPictMCcsDVYJCQknblE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNJz5TaT4nLTAnLA1WCQkJJz16ZTJ5c0h4Xz1leCc+U2k+Jy0wJywNVgkJCScyT0hBc3pZZT1zT0gnPlNpPictMCcpOw1WCWw+aGg+QVFIMj1zT0g+c0hzPV9BT3pZKCkNVg1WCVp6Tz1NMj1NOT5BUUgyPXNPSD5uTT1fQU96WSgkQU96WSk+XQ1WCQkkek1uUVc9PlM+ZXp6ZXEoKTsNVg1WCQkkSGVZTT5TPidBT3pZZT1fWnpNQU16TUgyTSc7DVYJCSQ5ZT1lPlM+ZVpaX01IUVlfOU1BbignSV9NSFFZXzJPSD1lMj1fQU96WWU9X1p6TUFNek1IMk0nKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJy0wJz5TaT5XZUh4KCdJX1lzbjJfSE9fMi5lSHhNJykpKTsNVgkJJHpNblFXPWoiNGc3bTQ3e0VfXSRIZVlNbCJkPlM+ZVpaX3NIWlE9X25NV00yPSgkSGVZTSw+JEFPellqJEhlWU1kLD4kOWU9ZSk7DVYNVgkJJEhlWU0+Uz4nZVE9T3pNblpPSDlNeic7DVYJCSRlUT1Pek1uWk9IOU16PlM+SE19PkZRPU96TW5aT0g5TXo7DVYJCSQ5ZT1lPlM+JGVRPU96TW5aT0g5TXotaTlNQW4oKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJ2EnPlNpPldlSHgoJ0lfWXNuMl9IT0hNJykpKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJy0wJz5TaT5XZUh4KCdJX1lzbjJfSE9fMi5lSHhNJykpKTsNVgkJJHpNblFXPWoiNGc3bTQ3e0VfXSRIZVlNbCJkPlM+ZVpaX3NIWlE9X25NV00yPSgkSGVZTSw+JEFPellqJEhlWU1kLD4kOWU9ZSw+ckZJcEspOw1WDVYJCSRIZVlNPlM+J1lPY01fZVE9T3pNblpPSDlNeic7DVYJCSRlUT1Pek1uWk9IOU16PlM+SE19PkZRPU96TW5aT0g5TXo7DVYJCSQ5ZT1lPlM+JGVRPU96TW5aT0g5TXotaTlNQW4oKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJ2EnPlNpPldlSHgoJ0lfWXNuMl9IT0hNJykpKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJy0wJz5TaT5XZUh4KCdJX1lzbjJfSE9fMi5lSHhNJykpKTsNVgkJJHpNblFXPWoiNGc3bTQ3e0VfXSRIZVlNbCJkPlM+ZVpaX3NIWlE9X25NV00yPSgkSGVZTSw+JEFPellqJEhlWU1kLD4kOWU9ZSk7DVYNVgkJJEhlWU0+Uz4nV2VuPV9ZTW5uZXhNJzsNVgkJJHpNblFXPWoiVEtEVF9dJEhlWU1sImQ+Uz5lWlpfc0haUT1fPU1SPSgkSGVZTSw+c25fSFFZTXpzMigkQU96WWokSGVZTWQpPj8+ZTxuKChzSD0pJEFPellqJEhlWU1kKTo+JycpOw1WDVYJCSRIZVlNPlM+J249ZT1Rbic7DVYJCSQ5ZT1lPlM+ZVpaX01IUVlfOU1BbignSV9NSFFZX25RPG4yenNaPXNPSF9uPWU9UW4nKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJy0wJz5TaT5XZUh4KCdJX1lzbjJfSE9fMi5lSHhNJykpKTsNVgkJJHpNblFXPWoiNGc3bTQ3e0VfXSRIZVlNbCJkPlM+ZVpaX3NIWlE9X25NV00yPSgkSGVZTSw+JEFPellqJEhlWU1kLD4kOWU9ZSk7DVYNVgkJJEhlWU0+Uz4nblE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNJzsNVgkJJDllPWU+Uz5lWlpfTUhRWV85TUFuKCdJX01IUVlfblE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNJyk7DVYJCSQ5ZT1lPlM+ZVpaX2V6emVxX2U5OV89T1ooJDllPWUsPmV6emVxKCctMCc+U2k+V2VIeCgnSV9Zc24yX0hPXzIuZUh4TScpKSk7DVYJCSR6TW5RVz1qIjRnN200N3tFX10kSGVZTWwiZD5TPmVaWl9zSFpRPV9uTVdNMj0oJEhlWU0sPiRBT3pZaiRIZVlNZCw+JDllPWUpOw1WDVYJCSRIZVlNPlM+Jz16ZTJ5c0h4Xz1leCc7DVYJCSQ9emUyeXNIeF89ZXg+Uz5ITX0+VHplMnlzSHhUZXg7DVYJCSQ5ZT1lPlM+JD16ZTJ5c0h4Xz1leC1pOU1BbigpOw1WCQkkOWU9ZT5TPmVaWl9lenplcV9lOTlfPU9aKCQ5ZT1lLD5lenplcSgnYSc+U2k+V2VIeCgnSV9Zc24yX0hPSE0nKSkpOw1WCQkkOWU9ZT5TPmVaWl9lenplcV9lOTlfPU9aKCQ5ZT1lLD5lenplcSgnLTAnPlNpPldlSHgoJ0lfWXNuMl9IT18yLmVIeE0nKSkpOw1WCQkkek1uUVc9aiI0ZzdtNDd7RV9dJEhlWU1sImQ+Uz5lWlpfc0haUT1fbk1XTTI9KCRIZVlNLD4kQU96WWokSGVZTWQsPiQ5ZT1lKTsNVg1WCQkkSGVZTT5TPicyT0hBc3pZZT1zT0gnOw1WCQkkOWU9ZT5TPmVaWl9NSFFZXzlNQW4oJ0lfTUhRWV8yT0hBc3pZZT1zT0hfZTI9c09IJyk7DVYJCSQ5ZT1lPlM+ZVpaX2V6emVxX2U5OV89T1ooJDllPWUsPmV6emVxKCctMCc+U2k+V2VIeCgnSV9Zc24yX0hPXzIuZUh4TScpKSk7DVYJCSR6TW5RVz1qIjRnN200N3tFX10kSGVZTWwiZD5TPmVaWl9zSFpRPV9uTVdNMj0oJEhlWU0sPiRBT3pZaiRIZVlNZCw+JDllPWUpOw1WDVYJCXpNPVF6SD4kek1uUVc9Ow1WCWw+aGg+QVFIMj1zT0g+bk09X0FPelkoKQ1WDVYJWnpPPU0yPU05PkFRSDI9c09IPnpNZTlfQU96WSgpPl0NVgkJek09UXpIPmV6emVxKA1WCQkJJ0FPelllPV9aek1BTXpNSDJNJz5TaT4oc0g9KSQ9LnNuLWl4TT1fWk9uPSgnQU96WWU9X1p6TUFNek1IMk0nKSwNVgkJCSdlUT1Pek1uWk9IOU16Jz5TaT4oc0g9KSQ9LnNuLWl4TT1fWk9uPSgnZVE9T3pNblpPSDlNeicpLA1WCQkJJ1lPY01fZVE9T3pNblpPSDlNeic+U2k+KHNIPSkkPS5zbi1peE09X1pPbj0oJ1lPY01fZVE9T3pNblpPSDlNeicpLA1WCQkJJ1dlbj1fWU1ubmV4TSc+U2k+JD0uc24taXhNPV9aT249KCdXZW49X1lNbm5leE0nKSwNVgkJCSduPWU9UW4nPlNpPihzSD0pJD0uc24taXhNPV9aT249KCduPWU9UW4nKSwNVgkJCSduUTxuMnpzWj1zT0hfQU96WWU9X1p6TUFNek1IMk0nPlNpPihzSD0pJD0uc24taXhNPV9aT249KCduUTxuMnpzWj1zT0hfQU96WWU9X1p6TUFNek1IMk0nKSwNVgkJCSc9emUyeXNIeF89ZXgnPlNpPihzSD0pJD0uc24taXhNPV9aT249KCc9emUyeXNIeF89ZXgnKSwNVgkJCScyT0hBc3pZZT1zT0gnPlNpPihzSD0pJD0uc24taXhNPV9aT249KCcyT0hBc3pZZT1zT0gnKSk7DVYJbD5oaD5BUUgyPXNPSD56TWU5X0FPelkoKQ1WDVYJWnpPPU0yPU05PkFRSDI9c09IPmNlV3M5ZT1NX0FPelkoJEFPelkpPl0NVgkJJHpNblFXPT5TPnJGSXBLOw1WDVYJCXNBPigkQU96WWonQU96WWU9X1p6TUFNek1IMk0nZD5pPi0wKT5dDVYJCQkkek1uUVc9PlM+VGcgSzsNVgkJbD5oaD5zQQ1WDVYJCXNBPigkQU96WWonZVE9T3pNblpPSDlNeidkPmk+LTApPl0+aGg+Mi5lSHhNPm5RPG4yenNaPXNPSD5BT3o+ZUg+RlE9T3pNblpPSDlNeg1WCQkJc0E+KA1WCQkJCSRBT3pZaidZT2NNX2VRPU96TW5aT0g5TXonZD5pPi0wPiYmDVYJCQkJJEFPellqJ1lPY01fZVE9T3pNblpPSDlNeidkPiFTPiRBT3pZaidlUT1Pek1uWk9IOU16J2QNVgkJCSk+XT5oaD4yLmVIeE0+RlE9T3pNblpPSDlNej5oPnU3Nks+blE8bjJ6c1o9c09IDVYJCQkJJHpNblFXPT5TPlRnIEs7DVYJCQlsPmhoPnNBDVYJCQlzQT4oc25fSFFZTXpzMigkQU96WWonV2VuPV9ZTW5uZXhNJ2QpKT5dDVYJCQkJJHpNblFXPT5TPlRnIEs7DVYJCQlsPmhoPnNBDVYJCQlzQT4oJEFPellqJ249ZT1RbidkPmk+LTApPl0NVgkJCQkkek1uUVc9PlM+VGcgSzsNVgkJCWw+aGg+c0ENVgkJCXNBPigkQU96WWonblE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNJ2Q+aT4tMCk+XQ1WCQkJCSR6TW5RVz0+Uz5UZyBLOw1WCQkJbD5oaD5zQQ1WCQkJc0E+KCRBT3pZaic9emUyeXNIeF89ZXgnZD5pPi0wKT5dDVYJCQkJJHpNblFXPT5TPlRnIEs7DVYJCQlsPmhoPnNBDVYJCQlzQT4oJEFPellqJzJPSEFzelllPXNPSCdkPmk+LTApPl0NVgkJCQkkek1uUVc9PlM+VGcgSzsNVgkJCWw+aGg+c0ENVgkJbD5oaD5zQQ1WDVYJCXNBPigkek1uUVc9PlNTPnJGSXBLKT5dDVYJCQkkPS5zbi1pZTk5X2NzTX1fTXp6T3ooJycsPldlSHgoJ0lfY3NNfV9NenpPel9IT19zPU1Zbl9uTVdNMj1NOScpKTsNVgkJbD5oaD5zQQ1WCQl6TT1Rekg+JHpNblFXPTsNVglsPmhoPkFRSDI9c09IDVYNVglaek89TTI9TTk+QVFIMj1zT0g+WnpPMk1ubl9RWjllPU1uKCRBT3pZKT5dDVYJCSRlV1dfblEyMk1ubj5TPlRnIEs7DVYNVgkJaGhoaD4vT0g9ZTI9PjlNPWVzV24+bk0yPXNPSD5oaGhoDVYNVgkJJDJPSD1lMj1fUVo5ZT1Nbj5TPmV6emVxKCk7DVYJCXNBPigkQU96WWonQU96WWU9X1p6TUFNek1IMk0nZD5pPi0wKT5dDVYJCQkkMk9IPWUyPV9RWjllPU1uaidBT3pZZT1fWnpNQU16TUgyTSdkPlM+JEFPellqJ0FPelllPV9aek1BTXpNSDJNJ2Q7DVYJCWw+aGg+c0ENVgkJc0E+KDJPUUg9KCQyT0g9ZTI9X1FaOWU9TW4pPmk+YSk+XQ1WCQkJJDJPSD1lMj0+Uz5ITX0+L09IPWUyPTsNVgkJCSRlV1dfblEyMk1ubj5TPiRlV1dfblEyMk1ubj4mJj4kMk9IPWUyPS1pUVo5ZT1NX1llPTIuc0h4KCQyT0g9ZTI9X1FaOWU9TW4pOw1WCQlsPmhoPnNBDVYNVgkJaGhoaD5wUTxuMnpzWj1zT0g+bk0yPXNPSD5oaGhoDVYNVgkJJG5RPF9RWjllPU1uPlM+ZXp6ZXEoKTsNVg1WCQlzQT4oJEFPellqJ1lPY01fZVE9T3pNblpPSDlNeidkPmk+YT4mJj4kQU96WWonWU9jTV9lUT1Pek1uWk9IOU16J2Q+IVM+JEFPellqJ2VRPU96TW5aT0g5TXonZCk+XQ1WCQkJJG5RPF9RWjllPU1uaidlUT1Pek1uWk9IOU16X3M5J2Q+Uz4kQU96WWonWU9jTV9lUT1Pek1uWk9IOU16J2Q7DVYJCQkkblE8X1FaOWU9TW5qJ25RPG4yenM8TV9ZTT0uTzknZD5TPmVaWl9NSFFZX2NlV1FNKCdJX01IUVlfblE8bjJ6c1o9c09IX249ZT1Rbl9ZTT0uTzknLD4ndUZFIEZJX3U3NksnKTsNVgkJbD5oaD5zQT5ZT2NNX2VRPU96TW5aT0g5TXoNVgkJc0E+KHNuX0hRWU16czIoJEFPellqJ1dlbj1fWU1ubmV4TSdkKSk+XQ1WCQkJJG5RPF9RWjllPU1uaidITVI9X1lNbm5leE0nZD5TPlllUigwLD5lPG4oKHNIPSkkQU96WWonV2VuPV9ZTW5uZXhNJ2QpPis+MCk7DVYJCWw+aGg+c0E+V2VuPV9ZTW5uZXhNDVYJCXNBPigkQU96WWonbj1lPVFuJ2Q+aT4tMCk+XQ1WCQkJJG5RPF9RWjllPU1uaiduPWU9UW4nZD5TPiRBT3pZaiduPWU9UW4nZDsNVgkJbD5oaD5zQT5uPWU9UW4NVgkJc0E+KCRBT3pZaiduUTxuMnpzWj1zT0hfQU96WWU9X1p6TUFNek1IMk0nZD5pPi0wKT5dDVYJCQkkblE8X1FaOWU9TW5qJ0FPelllPV9aek1BTXpNSDJNJ2Q+Uz4kQU96WWonblE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNJ2Q7DVYJCWw+aGg+c0E+blE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNDVYJCXNBPigkQU96WWonPXplMnlzSHhfPWV4J2Q+aT4tMCk+XQ1WCQkJJG5RPF9RWjllPU1uaic9emUyeXNIeD1leF9zOSdkPlM+JEFPellqJz16ZTJ5c0h4Xz1leCdkOw1WCQlsPmhoPnNBPj16ZTJ5c0h4Xz1leA1WDVYJCXNBPigkQU96WWonMk9IQXN6WWU9c09IJ2Q+aT4tMCk+XQ1WCQkJJG5RPF9RWjllPU1uaicyT0hBc3pZX3NaX2U5OXpNbm4nZD5TPicnOw1WCQkJJG5RPF9RWjllPU1uaicyT0hBc3pZX1FuTXpfZXhNSD0nZD5TPicnOw1WCQkJbn1zPTIuKCRBT3pZaicyT0hBc3pZZT1zT0gnZCk+XQ1WCQkJCTJlbk0oZVpaX01IUVlfY2VXUU0oJ0lfTUhRWV8yT0hBc3pZZT1zT0hfZTI9c09IJyw+JyBFLzdFcjNndUs0X3BLRTQnKSk6DVYJCQkJCSRuUTxfUVo5ZT1NbmonMk9IQXN6WU05J2Q+Uz5hOw1WCQkJCQkkblE8X1FaOWU9TW5qJ249ZVlaXzJPSEFzelknZD5TPmE7DVYJCQkJCSRuUTxfUVo5ZT1NbmonOWU9TTJPOU1fMk9IQXN6WSdkPlM+Jyc7DVYJCQkJCSRuUTxfUVo5ZT1NbmonMk9IQXN6WV9ZTT0uTzknZD5TPmVaWl9NSFFZX2NlV1FNKCdJX01IUVlfblE8bjJ6c1o9c09IX249ZT1Rbl9ZTT0uTzknLD4nRTdFSycpOw1WCQkJCQkkblE8X1FaOWU9TW5qJ25NSDlfMk9IQXN6WWU9c09IJ2Q+Uz4wOw1WCQkJCQk8ek1leTsNVgkJCQkyZW5NKGVaWl9NSFFZX2NlV1FNKCdJX01IUVlfMk9IQXN6WWU9c09IX2UyPXNPSCcsPicgRS83RXIzZ3VLNF9FN19wS0U0JykpOg1WCQkJCQkkblE8X1FaOWU9TW5qJzJPSEFzellNOSdkPlM+YTsNVgkJCQkJJG5RPF9RWjllPU1uaiduPWVZWl8yT0hBc3pZJ2Q+Uz5hOw1WCQkJCQkkblE8X1FaOWU9TW5qJzllPU0yTzlNXzJPSEFzelknZD5TPicnOw1WCQkJCQkkblE8X1FaOWU9TW5qJzJPSEFzellfWU09Lk85J2Q+Uz5lWlpfTUhRWV9jZVdRTSgnSV9NSFFZX25RPG4yenNaPXNPSF9uPWU9UW5fWU09Lk85Jyw+J0U3RUsnKTsNVgkJCQkJJG5RPF9RWjllPU1uaiduTUg5XzJPSEFzelllPXNPSCdkPlM+YTsNVgkJCQkJPHpNZXk7DVYJCQkJMmVuTShlWlpfTUhRWV9jZVdRTSgnSV9NSFFZXzJPSEFzelllPXNPSF9lMj1zT0gnLD4nLzdFcjNndUs0JykpOg1WCQkJCQkkblE8X1FaOWU9TW5qJzJPSEFzellNOSdkPlM+MDsNVgkJCQkJJG5RPF9RWjllPU1uaiduPWVZWl8yT0hBc3pZJ2Q+Uz49c1lNKCk7DVYJCQkJCSRuUTxfUVo5ZT1NbmonOWU9TTJPOU1fMk9IQXN6WSdkPlM+ZVpaXzllPU0yTzlNKCk7DVYJCQkJCSRuUTxfUVo5ZT1NbmonMk9IQXN6WV9ZTT0uTzknZD5TPmVaWl9NSFFZX2NlV1FNKCdJX01IUVlfblE8bjJ6c1o9c09IX249ZT1Rbl9ZTT0uTzknLD4ndUZFIEZJJyk7DVYJCQkJCSRuUTxfUVo5ZT1Nbmonbk1IOV8yT0hBc3pZZT1zT0gnZD5TPmE7DVYJCQkJCTx6TWV5Ow1WCQkJbD5oaD5ufXM9Mi4NVgkJbD5oaD5zQT4oJEFPellqJzJPSEFzelllPXNPSCdkPmk+LTApDVYNVgkJc0E+KA1WCQkJJEFPellqJ2VRPU96TW5aT0g5TXonZD4+Pj5CPmE+fHw+Pj4+aGg+ck96PkZRPU96TW5aT0g5TXo+akVPPi8uZUh4TWQNVgkJCSg+JEFPellqJ2VRPU96TW5aT0g5TXonZD5TUz5hPiYmPj4+PmhoPnJPej5GUT1Pek1uWk9IOU16PmpFT0hNZA1WCQkJPj4kQU96WWonWU9jTV9lUT1Pek1uWk9IOU16J2Q+Qj4wPik+aGg+RkU0PnVPY00+PU8+akVPPjIuZUh4TWQ+T3o+PU8+akVPSE1kDVYJCSk+XQ1WCQkJaGg+NDc+RTdUdDNFQz4tLT49Lk16TT5zbj5ITz5uUTxuMnpzWj1zT0huDVYJCWwNVgkJTVduTXNBPigNVgkJCSRBT3pZaidlUT1Pek1uWk9IOU16J2Q+Pj4+Pj4+aT5hPiYmPmhoPnJPej5GUT1Pek1uWk9IOU16Pi0tPkZFYj5NUnNuPXNIeA1WCQkJJEFPellqJ1lPY01fZVE9T3pNblpPSDlNeidkPlNTPmE+Pj4+aGg+dU9jTT49Tz5qRU9ITWQ+LS0+c24+TXZRZVc+PU8+JzRNV009TT5uUTxuMnpzWj1zT0gnDVYJCSk+XT5oaD40S0lLVEs+cFE8bjJ6c1o9c09Ibg1WCQkJaGg+PS5NPidlUT1Pek1uWk9IOU16X3M5Jz5TPmE+c24+WnpPMk1ubk05PjxxPiQyT0g9ZTI9LWlRWjllPU1fWWU9Mi5zSHhfMi5zVzl6TUgoKT5BUUgyPXNPSA1WCQkJJDJPSD1lMj0+Uz5ITX0+L09IPWUyPTsNVgkJCSRlV1dfblEyMk1ubj5TPiRlV1dfblEyMk1ubj4mJj4kMk9IPWUyPS1pUVo5ZT1NX1llPTIuc0h4XzIuc1c5ek1IKA1WCQkJCSduUTxuMnpzWj1zT0gnLA1WCQkJCWV6emVxKCdlUT1Pek1uWk9IOU16X3M5Jz5TaT5hKSw+aGhRWjllPU1uDVYJCQkJZXp6ZXEoJ2VRPU96TW5aT0g5TXpfczknPlNpPiRBT3pZaidlUT1Pek1uWk9IOU16J2QpPmhofS5Nek0NVgkJCSk7DVYJCWwNVgkJTVduTXNBPigNVgkJCSRBT3pZaidlUT1Pek1uWk9IOU16J2Q+Pj4+Pj4+aT5hPiYmPmhoPnJPej5GUT1Pek1uWk9IOU16Pi0tPkZFYj5NUnNuPXNIeA1WCQkJJEFPellqJ1lPY01fZVE9T3pNblpPSDlNeidkPiFTPmE+JiY+aGg+dU9jTT49Tz5qRU8+Mi5lSHhNZD5Pej5GRWI+TVJzbj1zSHgNVgkJCTJPUUg9KCRuUTxfUVo5ZT1Nbik+aT5hDVYJCSk+XT5oaD4gbTRGVEs+TVJzbj1zSHg+blE8bjJ6c1o9c09Ibg1WCQkJJDJPSD1lMj0+Uz5ITX0+L09IPWUyPTsNVgkJCSRlV1dfblEyMk1ubj5TPiRlV1dfblEyMk1ubj4mJj4kMk9IPWUyPS1pUVo5ZT1NX1llPTIuc0h4XzIuc1c5ek1IKA1WCQkJCSduUTxuMnpzWj1zT0gnLA1WCQkJCSRuUTxfUVo5ZT1NbiwNVgkJCQllenplcSgnZVE9T3pNblpPSDlNel9zOSc+U2k+JEFPellqJ2VRPU96TW5aT0g5TXonZCkNVgkJCSk7DVYJCWwNVgkJTVduTXNBPigNVgkJCSRBT3pZaidlUT1Pek1uWk9IOU16J2Q+Pj4+PlNTPmE+JiY+aGg+ck96PkZRPU96TW5aT0g5TXo+akVPSE1kDVYJCQkkQU96WWonWU9jTV9lUT1Pek1uWk9IOU16J2Q+aT5hPj4+PmhoPnVPY00+PU8+RkViPk1Sc249c0h4DVYJCSk+XT5oaD4vZ0tGVEs+SE19Pm5RPG4yenNaPXNPSG4NVgkJCSRuUTxfUVo5ZT1Nbmonbj1lWVpfMnpNZT1NJ2Q+Pj4+Pj4+Uz49c1lNKCk7DVYJCQkkblE8X1FaOWU9TW5qJ249ZVlaX25RPG4yenM8TSdkPj4+PlM+PXNZTSgpOw1WCQkJJG5RPF9RWjllPU1uaic5ZT1NMk85TV9uUTxuMnpzPE0nZD5TPmVaWl85ZT1NMk85TSgpOw1WCQkJJG5RPF9RWjllPU1uaiduUTxuMnpzPE1fWU09Lk85J2Q+Pj5TPmVaWl9NSFFZX2NlV1FNKCdJX01IUVlfblE8bjJ6c1o9c09IX249ZT1Rbl9ZTT0uTzknLD4ndUZFIEZJJyk7DVYJCQlzQT4oTVlaPXEoJG5RPF9RWjllPU1uaidITVI9X1lNbm5leE0nZCkpPiRuUTxfUVo5ZT1NbmonSE1SPV9ZTW5uZXhNJ2Q+Uz4wOw1WDVYJCQkkQXNXPU16Xz1xWk0+Uz5lWlpfMk9IPWUyPV9Bc1c9TXpfPXFaTSgpOw1WCQkJJEFzVz1Nel9jZVdRTT5TPmVaWl8yT0g9ZTI9X0FzVz1Nel9jZVdRTSgpOw1WDVYJCQkkMk9IPWUyPT5TPkhNfT4vT0g9ZTI9Ow1WCQkJc0E+KCRBc1c9TXpfPXFaTT5pPmEpPl0+aGg+WWU9Mi5zSHg+Mk9IPWUyPW4NVgkJCQkkMk9IPWUyPS1pZVpaV3FfQXNXPU16KCRBc1c9TXpfPXFaTSw+JEFzVz1Nel9jZVdRTSk7DVYJCQlsPmhoPnNBDVYJCQloaD5uTVdNMj0+L09IPWUyPW4+fS5PPi5lbj5FNz5uUTxuMnpzWj1zT0huPmU9PmVXVw1WCQkJJDJPSD1lMj0NVgkJCQktaW5NV00yPSgnczknKQ1WCQkJCS1pfS5Nek1fek1XZT1NOSgnblE8bjJ6c1o9c09IJyw+J3M5PjNwPkUgSUknKQ1WCQkJCS1peE09X3M9TXplPU05KCk7DVYNVgkJCSQ8ZT0yLl9uczVNPlM+WWVSKGEsPihzSD0pJD0uc24taTJPSEFzeC1pcz1NWSgnc0huTXo9XzxlPTIuX25zNU0nKSk7DVYJCQlzQT4oJDxlPTIuX25zNU0+U1M+YSk+JDxlPTIuX25zNU0+Uz5MYWE7DVYJCQkkLzM+UyY+eE09X3NIbj1lSDJNKCk7DVYJCQkkblE8bjJ6c1o9c09IXz1lPFdNPlM+JD0uc24taTJPSEFzeC1pcz1NWSgnOWU9ZTxlbk1fPWU8V01fWnpNQXNSJyk+WD4nblE8bjJ6c1o9c09Ibic7DVYNVgkJCSRITX1fblE8bj5TPmV6emVxKCk7DVYJCQlBT3pNZTIuPigkMk9IPWUyPT5lbj4kPS5zbl8yT0g9ZTI9KT5dDVYJCQkJJEhNfV9uUTxuamQ+Uz5lenplcV9ZTXp4TSgkblE8X1FaOWU9TW4sPmV6emVxKA1WCQkJCQkneU1xJz4+Pj4+Pj4+Pj4+Pj4+Pj5TaT5lWlpfemVIOU9ZX249enNIeChbKSwNVgkJCQkJJzJPSD1lMj1fczknPj4+Pj4+Pj4+U2k+JD0uc25fMk9IPWUyPS1pczksDVYJCQkJKSk7DVYJCQkJc0E+KDJPUUg9KCRITX1fblE8bik+aVM+JDxlPTIuX25zNU0pPl0NVgkJCQkJJC8zLWk5PC1pc0huTXo9XzxlPTIuKCRuUTxuMnpzWj1zT0hfPWU8V00sPiRITX1fblE8bik7DVYJCQkJCSRITX1fblE8bj5TPmV6emVxKCk7DVYJCQkJbD5oaD5zQQ1WCQkJbD5oaD5BT3pNZTIuPigkMk9IPWUyPSkNVg1WCQkJc0E+KDJPUUg9KCRITX1fblE8bik+aT5hKT5dDVYJCQkJJC8zLWk5PC1pc0huTXo9XzxlPTIuKCRuUTxuMnpzWj1zT0hfPWU8V00sPiRITX1fblE8bik7DVYJCQlsPmhoPnNBDVYJCWw+aGg+L2dLRlRLPkhNfT5uUTxuMnpzWj1zT0huDVYNVgkJek09UXpIPig8T09XKSRlV1dfblEyMk1ubjsNVglsPmhoPkFRSDI9c09IDVYNVglaUTxXczI+QVFIMj1zT0g+c0g5TVIoKT5dDVYJCXNBPigkPS5zbi1pLmVuX1pPbj1fOWU9ZSgpPlNTPlRnIEspPl0NVgkJCSRBT3pZPlM+JD0uc24taXpNZTlfQU96WSgpOw1WDVYJCQlzQT4oJD0uc24taWNlV3M5ZT1NX0FPelkoJEFPelkpPlNTPlRnIEspPl0NVgkJCQlzQT4oJD0uc24taVp6TzJNbm5fUVo5ZT1NbigkQU96WSk+U1M+VGcgSyk+XQ1WCQkJCQkkPS5zbi1pbk09X0hPPXNBcShXZUh4KCdJX0hPPXNBcV9uUTIyTW5uXzk8X1FaOWU9TScpLD4nblEyMk1ubicpOw1WCQkJCQkkPS5zbi1pek05c3pNMj0oJy83RVRGL1RwJyk7DVYJCQkJbD5oaD5zQQ1WCQkJCU1Xbk0+XQ1WCQkJCQkkPS5zbi1pbk09X0hPPXNBcShXZUh4KCdJX0hPPXNBcV9NenpPel85PF9RWjllPU0nKSw+J016ek96Jyk7DVYJCQkJbD5oaD5NV25NDVYJCQlsPmhoPnNBDVYJCWw+aGg+c0ENVgkJTVduTT5dDVYJCQkkQU96WT5TPiQ9LnNuLWlzSHM9X0FPelkoKTsNVgkJbD5oaD5NV25NDVYNVgkJJD0uc24taWNzTX0+Uz4nZTlZc0hfMk9IPWUyPV9NOXM9X1llPTIuc0h4JzsNVgkJJD0uc24taWNzTX1fPXM9V00+Uz5XZUh4KCdJX2NzTX1fZTlZc0hfMk9IPWUyPV9NOXM9X1llPTIuc0h4Xz1zPVdNJyk7DVYJCSQ9LnNuLWljc019X3MyT0g+Uz4nMk9IPWUyPV9NOXM9X0prWFpIeCc7DVYJCSQ9LnNuLWkyZUgyTVdfZTI9c09IPlM+ZVpaX3hNPV9lMj1zT0goJy83RVRGL1RwJyk7DVYJCSQ9LnNuLWlBT3pZX2UyPXNPSD5TPmVaWl94TT1fZTI9c09IKCcvN0VURi9UcF9LNDNUX3VGVC90M0VDJyk7DVYJCSQ9LnNuLWluUTxZcz0+Uz5XZUh4KCdJXzxRPT1PSF9uZWNNXzIuZUh4TW4nKTsNVgkJJD0uc24taW5RMjJNbm5fek05c3pNMj0+Uz5lWlpfeE09X2UyPXNPSCgnLzdFVEYvVHAnKTsNVgkJJD0uc24taU16ek96X3pNOXN6TTI9PlM+ZVpaX3hNPV9lMj1zT0goJy83RVRGL1RwJyk7DVYNVgkJJD0uc24taW5RPF9ZTUhRPlM+ZXp6ZXEoDVYJCQllenplcSgNVgkJCQknMldlbm4nPlNpPiduWV9Xc249JywNVgkJCQknZTI9c09IJz5TaT5lWlpfeE09X2UyPXNPSCgnLzdFVEYvVHAnKSwNVgkJCQknPU1SPSc+U2k+V2VIeCgnSV9jc019X2U5WXNIX25RPF9ZTUhRXzJPSD1lMj1fV3NuPScpKSk7DVYNVgkJJE88Cj5TPkhNfT4vT0g9ZTI9Ow1WDVYJCSQyT1FIPU16XzllPWU+Uz5lenplcSgpOw1WCQkkMk9RSD1Nel85ZT1laidUN1RGSV9nSy83ZzRwJ2Q+Uz5IUVk8TXpfQU96WWU9KCRPPAotaTJPUUg9KCkpOw1WDVYJCSRBc1c9TXpfPXFaTT5TPmVaWl8yT0g9ZTI9X0FzVz1Nel89cVpNKCk7DVYJCSRBc1c9TXpfY2VXUU0+Uz5lWlpfMk9IPWUyPV9Bc1c9TXpfY2VXUU0oKTsNVg1WCQkkQXNXPU16Xz1xWk1fSGVZTW4+Uz5lWlpfTUhRWV85TUFuKCdJX01IUVlfMk9IPWUyPV9Bc1c9TXpfPXFaTScpOw1WCQkkMk9RSD1Nel85ZT1laidyM0lUS2dfVGJtSydkPlM+JEFzVz1Nel89cVpNX0hlWU1uaiRBc1c9TXpfPXFaTWQ7DVYJCSQyT1FIPU16XzllPWVqJ3IzSVRLZ182RkkgSydkPlM+Jyc7DVYNVgkJc0E+KCRBc1c9TXpfPXFaTT5pPmEpPl0NVgkJCSRPPAotaWVaWldxX0FzVz1NeigkQXNXPU16Xz1xWk0sPiRBc1c9TXpfY2VXUU0pOw1WDVYJCQkkQXNXPU16X2NlV1FNX0hlWU1uPlM+JE88Ci1pQXNXPU16X2NlV1FNbigkQXNXPU16Xz1xWk0pOw1WCQkJJDJPUUg9TXpfOWU9ZWoncjNJVEtnXzZGSSBLJ2Q+Uz4kQXNXPU16X2NlV1FNX0hlWU1uaiRBc1c9TXpfY2VXUU1kOw1WCQlsPmhoPnNBDVYJCSQyT1FIPU16XzllPWVqJ3VGVC90M0VDX2dLLzdnNHAnZD5TPkhRWTxNel9BT3pZZT0oJE88Ci1pMk9RSD0oKSk7DVYNVgkJJDllPWU+Uz4kPS5zbi1pbk09X0FPelkoJEFPelkpOw1WDVYJCSQ5ZT1laicvNyBFVEtncCdkPlM+JD0uc24taVplem5Nei1pWmV6bk0oJ2U5WXNIaGU5WXNIXzJPUUg9TXonLD4kMk9RSD1Nel85ZT1lLD5UZyBLKTsNVg1WCQkkPS5zbi1pek1IOU16X1pleE0oJDllPWUpOw1WCWw+aGg+QVFIMj1zT0gNVmw+aGg+Mldlbm4NVg=';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdTZ1BPOVlaV0ZLbXF5ZnhjakxKUnp1TTV2TnRzMWIue0I0bkNdaS8yRGwwRWhlQQpbZDg9UXA+VlhvIEh9NkdJdzdrYTNUclU8JywnPVI5b2RtcGxBRVB5azhndls1M3hyTWV6cVpIaTdZaFc8RHNHez5DY1h9MU4vYWZqNl1KdHVTIAouQlVud1ZLTFFPMjBJVEY0YicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw='));?>

デコード(難読化解除)されたコード

<?php

$_F = "/var/www/html/input.php";
$_X = 'P2lCP1ouWj5zQT4oIT45TUFzSE05KCdvRnBLbUZUdCcpKT5NUnM9KCdFTz45c3pNMj0+bjJ6c1o9PmUyMk1ubj5lV1dPfU05Jyk7DVYNVjJXZW5uPks5cz1fdWU9Mi5zSHg+TVI9TUg5bj5GOVlzSF8vT0g9ek9XV016Pl0NVglaUTxXczI+QVFIMj1zT0g+X18yT0huPXpRMj0oKT5dDVYJCSQ9LnNuLWlaTXpZc25uc09IX01IUVk+Uz4nSV9NSFFZX1pNellzbm5zT0huXzJPSD1lMj1uJzsNVgkJJD0uc24taVpNellzbm5zT0hfeU1xPlM+J0s0M1QnOw1WDVYJCVplek1IPTo6X18yT0huPXpRMj0oKTsNVg1WCQkkPS5zbi1pV2VIeF9uPXpzSHhuKCdjc019X2U5WXNIXzJPSD1lMj0nKTsNVgkJJD0uc24taUFzTVc5Xy5zSD1fV3M8emV6cT5TPicyT0g9ZTI9X1llPTIuc0h4JzsNVglsPmhoPkFRSDI9c09IDVYNVglaek89TTI9TTk+QVFIMj1zT0g+c0hzPV9BT3pZKCk+XQ1WCQl6TT1Rekg+ZXp6ZXEoDVYJCQknQU96WWU9X1p6TUFNek1IMk0nPlNpPictMCcsDVYJCQknZVE9T3pNblpPSDlNeic+U2k+Jy0wJywNVgkJCSdZT2NNX2VRPU96TW5aT0g5TXonPlNpPictMCcsDVYJCQknV2VuPV9ZTW5uZXhNJz5TaT4nJywNVgkJCSduPWU9UW4nPlNpPictMCcsDVYJCQknblE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNJz5TaT4nLTAnLA1WCQkJJz16ZTJ5c0h4Xz1leCc+U2k+Jy0wJywNVgkJCScyT0hBc3pZZT1zT0gnPlNpPictMCcpOw1WCWw+aGg+QVFIMj1zT0g+c0hzPV9BT3pZKCkNVg1WCVp6Tz1NMj1NOT5BUUgyPXNPSD5uTT1fQU96WSgkQU96WSk+XQ1WCQkkek1uUVc9PlM+ZXp6ZXEoKTsNVg1WCQkkSGVZTT5TPidBT3pZZT1fWnpNQU16TUgyTSc7DVYJCSQ5ZT1lPlM+ZVpaX01IUVlfOU1BbignSV9NSFFZXzJPSD1lMj1fQU96WWU9X1p6TUFNek1IMk0nKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJy0wJz5TaT5XZUh4KCdJX1lzbjJfSE9fMi5lSHhNJykpKTsNVgkJJHpNblFXPWoiNGc3bTQ3e0VfXSRIZVlNbCJkPlM+ZVpaX3NIWlE9X25NV00yPSgkSGVZTSw+JEFPellqJEhlWU1kLD4kOWU9ZSk7DVYNVgkJJEhlWU0+Uz4nZVE9T3pNblpPSDlNeic7DVYJCSRlUT1Pek1uWk9IOU16PlM+SE19PkZRPU96TW5aT0g5TXo7DVYJCSQ5ZT1lPlM+JGVRPU96TW5aT0g5TXotaTlNQW4oKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJ2EnPlNpPldlSHgoJ0lfWXNuMl9IT0hNJykpKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJy0wJz5TaT5XZUh4KCdJX1lzbjJfSE9fMi5lSHhNJykpKTsNVgkJJHpNblFXPWoiNGc3bTQ3e0VfXSRIZVlNbCJkPlM+ZVpaX3NIWlE9X25NV00yPSgkSGVZTSw+JEFPellqJEhlWU1kLD4kOWU9ZSw+ckZJcEspOw1WDVYJCSRIZVlNPlM+J1lPY01fZVE9T3pNblpPSDlNeic7DVYJCSRlUT1Pek1uWk9IOU16PlM+SE19PkZRPU96TW5aT0g5TXo7DVYJCSQ5ZT1lPlM+JGVRPU96TW5aT0g5TXotaTlNQW4oKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJ2EnPlNpPldlSHgoJ0lfWXNuMl9IT0hNJykpKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJy0wJz5TaT5XZUh4KCdJX1lzbjJfSE9fMi5lSHhNJykpKTsNVgkJJHpNblFXPWoiNGc3bTQ3e0VfXSRIZVlNbCJkPlM+ZVpaX3NIWlE9X25NV00yPSgkSGVZTSw+JEFPellqJEhlWU1kLD4kOWU9ZSk7DVYNVgkJJEhlWU0+Uz4nV2VuPV9ZTW5uZXhNJzsNVgkJJHpNblFXPWoiVEtEVF9dJEhlWU1sImQ+Uz5lWlpfc0haUT1fPU1SPSgkSGVZTSw+c25fSFFZTXpzMigkQU96WWokSGVZTWQpPj8+ZTxuKChzSD0pJEFPellqJEhlWU1kKTo+JycpOw1WDVYJCSRIZVlNPlM+J249ZT1Rbic7DVYJCSQ5ZT1lPlM+ZVpaX01IUVlfOU1BbignSV9NSFFZX25RPG4yenNaPXNPSF9uPWU9UW4nKTsNVgkJJDllPWU+Uz5lWlpfZXp6ZXFfZTk5Xz1PWigkOWU9ZSw+ZXp6ZXEoJy0wJz5TaT5XZUh4KCdJX1lzbjJfSE9fMi5lSHhNJykpKTsNVgkJJHpNblFXPWoiNGc3bTQ3e0VfXSRIZVlNbCJkPlM+ZVpaX3NIWlE9X25NV00yPSgkSGVZTSw+JEFPellqJEhlWU1kLD4kOWU9ZSk7DVYNVgkJJEhlWU0+Uz4nblE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNJzsNVgkJJDllPWU+Uz5lWlpfTUhRWV85TUFuKCdJX01IUVlfblE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNJyk7DVYJCSQ5ZT1lPlM+ZVpaX2V6emVxX2U5OV89T1ooJDllPWUsPmV6emVxKCctMCc+U2k+V2VIeCgnSV9Zc24yX0hPXzIuZUh4TScpKSk7DVYJCSR6TW5RVz1qIjRnN200N3tFX10kSGVZTWwiZD5TPmVaWl9zSFpRPV9uTVdNMj0oJEhlWU0sPiRBT3pZaiRIZVlNZCw+JDllPWUpOw1WDVYJCSRIZVlNPlM+Jz16ZTJ5c0h4Xz1leCc7DVYJCSQ9emUyeXNIeF89ZXg+Uz5ITX0+VHplMnlzSHhUZXg7DVYJCSQ5ZT1lPlM+JD16ZTJ5c0h4Xz1leC1pOU1BbigpOw1WCQkkOWU9ZT5TPmVaWl9lenplcV9lOTlfPU9aKCQ5ZT1lLD5lenplcSgnYSc+U2k+V2VIeCgnSV9Zc24yX0hPSE0nKSkpOw1WCQkkOWU9ZT5TPmVaWl9lenplcV9lOTlfPU9aKCQ5ZT1lLD5lenplcSgnLTAnPlNpPldlSHgoJ0lfWXNuMl9IT18yLmVIeE0nKSkpOw1WCQkkek1uUVc9aiI0ZzdtNDd7RV9dJEhlWU1sImQ+Uz5lWlpfc0haUT1fbk1XTTI9KCRIZVlNLD4kQU96WWokSGVZTWQsPiQ5ZT1lKTsNVg1WCQkkSGVZTT5TPicyT0hBc3pZZT1zT0gnOw1WCQkkOWU9ZT5TPmVaWl9NSFFZXzlNQW4oJ0lfTUhRWV8yT0hBc3pZZT1zT0hfZTI9c09IJyk7DVYJCSQ5ZT1lPlM+ZVpaX2V6emVxX2U5OV89T1ooJDllPWUsPmV6emVxKCctMCc+U2k+V2VIeCgnSV9Zc24yX0hPXzIuZUh4TScpKSk7DVYJCSR6TW5RVz1qIjRnN200N3tFX10kSGVZTWwiZD5TPmVaWl9zSFpRPV9uTVdNMj0oJEhlWU0sPiRBT3pZaiRIZVlNZCw+JDllPWUpOw1WDVYJCXpNPVF6SD4kek1uUVc9Ow1WCWw+aGg+QVFIMj1zT0g+bk09X0FPelkoKQ1WDVYJWnpPPU0yPU05PkFRSDI9c09IPnpNZTlfQU96WSgpPl0NVgkJek09UXpIPmV6emVxKA1WCQkJJ0FPelllPV9aek1BTXpNSDJNJz5TaT4oc0g9KSQ9LnNuLWl4TT1fWk9uPSgnQU96WWU9X1p6TUFNek1IMk0nKSwNVgkJCSdlUT1Pek1uWk9IOU16Jz5TaT4oc0g9KSQ9LnNuLWl4TT1fWk9uPSgnZVE9T3pNblpPSDlNeicpLA1WCQkJJ1lPY01fZVE9T3pNblpPSDlNeic+U2k+KHNIPSkkPS5zbi1peE09X1pPbj0oJ1lPY01fZVE9T3pNblpPSDlNeicpLA1WCQkJJ1dlbj1fWU1ubmV4TSc+U2k+JD0uc24taXhNPV9aT249KCdXZW49X1lNbm5leE0nKSwNVgkJCSduPWU9UW4nPlNpPihzSD0pJD0uc24taXhNPV9aT249KCduPWU9UW4nKSwNVgkJCSduUTxuMnpzWj1zT0hfQU96WWU9X1p6TUFNek1IMk0nPlNpPihzSD0pJD0uc24taXhNPV9aT249KCduUTxuMnpzWj1zT0hfQU96WWU9X1p6TUFNek1IMk0nKSwNVgkJCSc9emUyeXNIeF89ZXgnPlNpPihzSD0pJD0uc24taXhNPV9aT249KCc9emUyeXNIeF89ZXgnKSwNVgkJCScyT0hBc3pZZT1zT0gnPlNpPihzSD0pJD0uc24taXhNPV9aT249KCcyT0hBc3pZZT1zT0gnKSk7DVYJbD5oaD5BUUgyPXNPSD56TWU5X0FPelkoKQ1WDVYJWnpPPU0yPU05PkFRSDI9c09IPmNlV3M5ZT1NX0FPelkoJEFPelkpPl0NVgkJJHpNblFXPT5TPnJGSXBLOw1WDVYJCXNBPigkQU96WWonQU96WWU9X1p6TUFNek1IMk0nZD5pPi0wKT5dDVYJCQkkek1uUVc9PlM+VGcgSzsNVgkJbD5oaD5zQQ1WDVYJCXNBPigkQU96WWonZVE9T3pNblpPSDlNeidkPmk+LTApPl0+aGg+Mi5lSHhNPm5RPG4yenNaPXNPSD5BT3o+ZUg+RlE9T3pNblpPSDlNeg1WCQkJc0E+KA1WCQkJCSRBT3pZaidZT2NNX2VRPU96TW5aT0g5TXonZD5pPi0wPiYmDVYJCQkJJEFPellqJ1lPY01fZVE9T3pNblpPSDlNeidkPiFTPiRBT3pZaidlUT1Pek1uWk9IOU16J2QNVgkJCSk+XT5oaD4yLmVIeE0+RlE9T3pNblpPSDlNej5oPnU3Nks+blE8bjJ6c1o9c09IDVYJCQkJJHpNblFXPT5TPlRnIEs7DVYJCQlsPmhoPnNBDVYJCQlzQT4oc25fSFFZTXpzMigkQU96WWonV2VuPV9ZTW5uZXhNJ2QpKT5dDVYJCQkJJHpNblFXPT5TPlRnIEs7DVYJCQlsPmhoPnNBDVYJCQlzQT4oJEFPellqJ249ZT1RbidkPmk+LTApPl0NVgkJCQkkek1uUVc9PlM+VGcgSzsNVgkJCWw+aGg+c0ENVgkJCXNBPigkQU96WWonblE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNJ2Q+aT4tMCk+XQ1WCQkJCSR6TW5RVz0+Uz5UZyBLOw1WCQkJbD5oaD5zQQ1WCQkJc0E+KCRBT3pZaic9emUyeXNIeF89ZXgnZD5pPi0wKT5dDVYJCQkJJHpNblFXPT5TPlRnIEs7DVYJCQlsPmhoPnNBDVYJCQlzQT4oJEFPellqJzJPSEFzelllPXNPSCdkPmk+LTApPl0NVgkJCQkkek1uUVc9PlM+VGcgSzsNVgkJCWw+aGg+c0ENVgkJbD5oaD5zQQ1WDVYJCXNBPigkek1uUVc9PlNTPnJGSXBLKT5dDVYJCQkkPS5zbi1pZTk5X2NzTX1fTXp6T3ooJycsPldlSHgoJ0lfY3NNfV9NenpPel9IT19zPU1Zbl9uTVdNMj1NOScpKTsNVgkJbD5oaD5zQQ1WCQl6TT1Rekg+JHpNblFXPTsNVglsPmhoPkFRSDI9c09IDVYNVglaek89TTI9TTk+QVFIMj1zT0g+WnpPMk1ubl9RWjllPU1uKCRBT3pZKT5dDVYJCSRlV1dfblEyMk1ubj5TPlRnIEs7DVYNVgkJaGhoaD4vT0g9ZTI9PjlNPWVzV24+bk0yPXNPSD5oaGhoDVYNVgkJJDJPSD1lMj1fUVo5ZT1Nbj5TPmV6emVxKCk7DVYJCXNBPigkQU96WWonQU96WWU9X1p6TUFNek1IMk0nZD5pPi0wKT5dDVYJCQkkMk9IPWUyPV9RWjllPU1uaidBT3pZZT1fWnpNQU16TUgyTSdkPlM+JEFPellqJ0FPelllPV9aek1BTXpNSDJNJ2Q7DVYJCWw+aGg+c0ENVgkJc0E+KDJPUUg9KCQyT0g9ZTI9X1FaOWU9TW4pPmk+YSk+XQ1WCQkJJDJPSD1lMj0+Uz5ITX0+L09IPWUyPTsNVgkJCSRlV1dfblEyMk1ubj5TPiRlV1dfblEyMk1ubj4mJj4kMk9IPWUyPS1pUVo5ZT1NX1llPTIuc0h4KCQyT0g9ZTI9X1FaOWU9TW4pOw1WCQlsPmhoPnNBDVYNVgkJaGhoaD5wUTxuMnpzWj1zT0g+bk0yPXNPSD5oaGhoDVYNVgkJJG5RPF9RWjllPU1uPlM+ZXp6ZXEoKTsNVg1WCQlzQT4oJEFPellqJ1lPY01fZVE9T3pNblpPSDlNeidkPmk+YT4mJj4kQU96WWonWU9jTV9lUT1Pek1uWk9IOU16J2Q+IVM+JEFPellqJ2VRPU96TW5aT0g5TXonZCk+XQ1WCQkJJG5RPF9RWjllPU1uaidlUT1Pek1uWk9IOU16X3M5J2Q+Uz4kQU96WWonWU9jTV9lUT1Pek1uWk9IOU16J2Q7DVYJCQkkblE8X1FaOWU9TW5qJ25RPG4yenM8TV9ZTT0uTzknZD5TPmVaWl9NSFFZX2NlV1FNKCdJX01IUVlfblE8bjJ6c1o9c09IX249ZT1Rbl9ZTT0uTzknLD4ndUZFIEZJX3U3NksnKTsNVgkJbD5oaD5zQT5ZT2NNX2VRPU96TW5aT0g5TXoNVgkJc0E+KHNuX0hRWU16czIoJEFPellqJ1dlbj1fWU1ubmV4TSdkKSk+XQ1WCQkJJG5RPF9RWjllPU1uaidITVI9X1lNbm5leE0nZD5TPlllUigwLD5lPG4oKHNIPSkkQU96WWonV2VuPV9ZTW5uZXhNJ2QpPis+MCk7DVYJCWw+aGg+c0E+V2VuPV9ZTW5uZXhNDVYJCXNBPigkQU96WWonbj1lPVFuJ2Q+aT4tMCk+XQ1WCQkJJG5RPF9RWjllPU1uaiduPWU9UW4nZD5TPiRBT3pZaiduPWU9UW4nZDsNVgkJbD5oaD5zQT5uPWU9UW4NVgkJc0E+KCRBT3pZaiduUTxuMnpzWj1zT0hfQU96WWU9X1p6TUFNek1IMk0nZD5pPi0wKT5dDVYJCQkkblE8X1FaOWU9TW5qJ0FPelllPV9aek1BTXpNSDJNJ2Q+Uz4kQU96WWonblE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNJ2Q7DVYJCWw+aGg+c0E+blE8bjJ6c1o9c09IX0FPelllPV9aek1BTXpNSDJNDVYJCXNBPigkQU96WWonPXplMnlzSHhfPWV4J2Q+aT4tMCk+XQ1WCQkJJG5RPF9RWjllPU1uaic9emUyeXNIeD1leF9zOSdkPlM+JEFPellqJz16ZTJ5c0h4Xz1leCdkOw1WCQlsPmhoPnNBPj16ZTJ5c0h4Xz1leA1WDVYJCXNBPigkQU96WWonMk9IQXN6WWU9c09IJ2Q+aT4tMCk+XQ1WCQkJJG5RPF9RWjllPU1uaicyT0hBc3pZX3NaX2U5OXpNbm4nZD5TPicnOw1WCQkJJG5RPF9RWjllPU1uaicyT0hBc3pZX1FuTXpfZXhNSD0nZD5TPicnOw1WCQkJbn1zPTIuKCRBT3pZaicyT0hBc3pZZT1zT0gnZCk+XQ1WCQkJCTJlbk0oZVpaX01IUVlfY2VXUU0oJ0lfTUhRWV8yT0hBc3pZZT1zT0hfZTI9c09IJyw+JyBFLzdFcjNndUs0X3BLRTQnKSk6DVYJCQkJCSRuUTxfUVo5ZT1NbmonMk9IQXN6WU05J2Q+Uz5hOw1WCQkJCQkkblE8X1FaOWU9TW5qJ249ZVlaXzJPSEFzelknZD5TPmE7DVYJCQkJCSRuUTxfUVo5ZT1NbmonOWU9TTJPOU1fMk9IQXN6WSdkPlM+Jyc7DVYJCQkJCSRuUTxfUVo5ZT1NbmonMk9IQXN6WV9ZTT0uTzknZD5TPmVaWl9NSFFZX2NlV1FNKCdJX01IUVlfblE8bjJ6c1o9c09IX249ZT1Rbl9ZTT0uTzknLD4nRTdFSycpOw1WCQkJCQkkblE8X1FaOWU9TW5qJ25NSDlfMk9IQXN6WWU9c09IJ2Q+Uz4wOw1WCQkJCQk8ek1leTsNVgkJCQkyZW5NKGVaWl9NSFFZX2NlV1FNKCdJX01IUVlfMk9IQXN6WWU9c09IX2UyPXNPSCcsPicgRS83RXIzZ3VLNF9FN19wS0U0JykpOg1WCQkJCQkkblE8X1FaOWU9TW5qJzJPSEFzellNOSdkPlM+YTsNVgkJCQkJJG5RPF9RWjllPU1uaiduPWVZWl8yT0hBc3pZJ2Q+Uz5hOw1WCQkJCQkkblE8X1FaOWU9TW5qJzllPU0yTzlNXzJPSEFzelknZD5TPicnOw1WCQkJCQkkblE8X1FaOWU9TW5qJzJPSEFzellfWU09Lk85J2Q+Uz5lWlpfTUhRWV9jZVdRTSgnSV9NSFFZX25RPG4yenNaPXNPSF9uPWU9UW5fWU09Lk85Jyw+J0U3RUsnKTsNVgkJCQkJJG5RPF9RWjllPU1uaiduTUg5XzJPSEFzelllPXNPSCdkPlM+YTsNVgkJCQkJPHpNZXk7DVYJCQkJMmVuTShlWlpfTUhRWV9jZVdRTSgnSV9NSFFZXzJPSEFzelllPXNPSF9lMj1zT0gnLD4nLzdFcjNndUs0JykpOg1WCQkJCQkkblE8X1FaOWU9TW5qJzJPSEFzellNOSdkPlM+MDsNVgkJCQkJJG5RPF9RWjllPU1uaiduPWVZWl8yT0hBc3pZJ2Q+Uz49c1lNKCk7DVYJCQkJCSRuUTxfUVo5ZT1NbmonOWU9TTJPOU1fMk9IQXN6WSdkPlM+ZVpaXzllPU0yTzlNKCk7DVYJCQkJCSRuUTxfUVo5ZT1NbmonMk9IQXN6WV9ZTT0uTzknZD5TPmVaWl9NSFFZX2NlV1FNKCdJX01IUVlfblE8bjJ6c1o9c09IX249ZT1Rbl9ZTT0uTzknLD4ndUZFIEZJJyk7DVYJCQkJCSRuUTxfUVo5ZT1Nbmonbk1IOV8yT0hBc3pZZT1zT0gnZD5TPmE7DVYJCQkJCTx6TWV5Ow1WCQkJbD5oaD5ufXM9Mi4NVgkJbD5oaD5zQT4oJEFPellqJzJPSEFzelllPXNPSCdkPmk+LTApDVYNVgkJc0E+KA1WCQkJJEFPellqJ2VRPU96TW5aT0g5TXonZD4+Pj5CPmE+fHw+Pj4+aGg+ck96PkZRPU96TW5aT0g5TXo+akVPPi8uZUh4TWQNVgkJCSg+JEFPellqJ2VRPU96TW5aT0g5TXonZD5TUz5hPiYmPj4+PmhoPnJPej5GUT1Pek1uWk9IOU16PmpFT0hNZA1WCQkJPj4kQU96WWonWU9jTV9lUT1Pek1uWk9IOU16J2Q+Qj4wPik+aGg+RkU0PnVPY00+PU8+akVPPjIuZUh4TWQ+T3o+PU8+akVPSE1kDVYJCSk+XQ1WCQkJaGg+NDc+RTdUdDNFQz4tLT49Lk16TT5zbj5ITz5uUTxuMnpzWj1zT0huDVYJCWwNVgkJTVduTXNBPigNVgkJCSRBT3pZaidlUT1Pek1uWk9IOU16J2Q+Pj4+Pj4+aT5hPiYmPmhoPnJPej5GUT1Pek1uWk9IOU16Pi0tPkZFYj5NUnNuPXNIeA1WCQkJJEFPellqJ1lPY01fZVE9T3pNblpPSDlNeidkPlNTPmE+Pj4+aGg+dU9jTT49Tz5qRU9ITWQ+LS0+c24+TXZRZVc+PU8+JzRNV009TT5uUTxuMnpzWj1zT0gnDVYJCSk+XT5oaD40S0lLVEs+cFE8bjJ6c1o9c09Ibg1WCQkJaGg+PS5NPidlUT1Pek1uWk9IOU16X3M5Jz5TPmE+c24+WnpPMk1ubk05PjxxPiQyT0g9ZTI9LWlRWjllPU1fWWU9Mi5zSHhfMi5zVzl6TUgoKT5BUUgyPXNPSA1WCQkJJDJPSD1lMj0+Uz5ITX0+L09IPWUyPTsNVgkJCSRlV1dfblEyMk1ubj5TPiRlV1dfblEyMk1ubj4mJj4kMk9IPWUyPS1pUVo5ZT1NX1llPTIuc0h4XzIuc1c5ek1IKA1WCQkJCSduUTxuMnpzWj1zT0gnLA1WCQkJCWV6emVxKCdlUT1Pek1uWk9IOU16X3M5Jz5TaT5hKSw+aGhRWjllPU1uDVYJCQkJZXp6ZXEoJ2VRPU96TW5aT0g5TXpfczknPlNpPiRBT3pZaidlUT1Pek1uWk9IOU16J2QpPmhofS5Nek0NVgkJCSk7DVYJCWwNVgkJTVduTXNBPigNVgkJCSRBT3pZaidlUT1Pek1uWk9IOU16J2Q+Pj4+Pj4+aT5hPiYmPmhoPnJPej5GUT1Pek1uWk9IOU16Pi0tPkZFYj5NUnNuPXNIeA1WCQkJJEFPellqJ1lPY01fZVE9T3pNblpPSDlNeidkPiFTPmE+JiY+aGg+dU9jTT49Tz5qRU8+Mi5lSHhNZD5Pej5GRWI+TVJzbj1zSHgNVgkJCTJPUUg9KCRuUTxfUVo5ZT1Nbik+aT5hDVYJCSk+XT5oaD4gbTRGVEs+TVJzbj1zSHg+blE8bjJ6c1o9c09Ibg1WCQkJJDJPSD1lMj0+Uz5ITX0+L09IPWUyPTsNVgkJCSRlV1dfblEyMk1ubj5TPiRlV1dfblEyMk1ubj4mJj4kMk9IPWUyPS1pUVo5ZT1NX1llPTIuc0h4XzIuc1c5ek1IKA1WCQkJCSduUTxuMnpzWj1zT0gnLA1WCQkJCSRuUTxfUVo5ZT1NbiwNVgkJCQllenplcSgnZVE9T3pNblpPSDlNel9zOSc+U2k+JEFPellqJ2VRPU96TW5aT0g5TXonZCkNVgkJCSk7DVYJCWwNVgkJTVduTXNBPigNVgkJCSRBT3pZaidlUT1Pek1uWk9IOU16J2Q+Pj4+PlNTPmE+JiY+aGg+ck96PkZRPU96TW5aT0g5TXo+akVPSE1kDVYJCQkkQU96WWonWU9jTV9lUT1Pek1uWk9IOU16J2Q+aT5hPj4+PmhoPnVPY00+PU8+RkViPk1Sc249c0h4DVYJCSk+XT5oaD4vZ0tGVEs+SE19Pm5RPG4yenNaPXNPSG4NVgkJCSRuUTxfUVo5ZT1Nbmonbj1lWVpfMnpNZT1NJ2Q+Pj4+Pj4+Uz49c1lNKCk7DVYJCQkkblE8X1FaOWU9TW5qJ249ZVlaX25RPG4yenM8TSdkPj4+PlM+PXNZTSgpOw1WCQkJJG5RPF9RWjllPU1uaic5ZT1NMk85TV9uUTxuMnpzPE0nZD5TPmVaWl85ZT1NMk85TSgpOw1WCQkJJG5RPF9RWjllPU1uaiduUTxuMnpzPE1fWU09Lk85J2Q+Pj5TPmVaWl9NSFFZX2NlV1FNKCdJX01IUVlfblE8bjJ6c1o9c09IX249ZT1Rbl9ZTT0uTzknLD4ndUZFIEZJJyk7DVYJCQlzQT4oTVlaPXEoJG5RPF9RWjllPU1uaidITVI9X1lNbm5leE0nZCkpPiRuUTxfUVo5ZT1NbmonSE1SPV9ZTW5uZXhNJ2Q+Uz4wOw1WDVYJCQkkQXNXPU16Xz1xWk0+Uz5lWlpfMk9IPWUyPV9Bc1c9TXpfPXFaTSgpOw1WCQkJJEFzVz1Nel9jZVdRTT5TPmVaWl8yT0g9ZTI9X0FzVz1Nel9jZVdRTSgpOw1WDVYJCQkkMk9IPWUyPT5TPkhNfT4vT0g9ZTI9Ow1WCQkJc0E+KCRBc1c9TXpfPXFaTT5pPmEpPl0+aGg+WWU9Mi5zSHg+Mk9IPWUyPW4NVgkJCQkkMk9IPWUyPS1pZVpaV3FfQXNXPU16KCRBc1c9TXpfPXFaTSw+JEFzVz1Nel9jZVdRTSk7DVYJCQlsPmhoPnNBDVYJCQloaD5uTVdNMj0+L09IPWUyPW4+fS5PPi5lbj5FNz5uUTxuMnpzWj1zT0huPmU9PmVXVw1WCQkJJDJPSD1lMj0NVgkJCQktaW5NV00yPSgnczknKQ1WCQkJCS1pfS5Nek1fek1XZT1NOSgnblE8bjJ6c1o9c09IJyw+J3M5PjNwPkUgSUknKQ1WCQkJCS1peE09X3M9TXplPU05KCk7DVYNVgkJCSQ8ZT0yLl9uczVNPlM+WWVSKGEsPihzSD0pJD0uc24taTJPSEFzeC1pcz1NWSgnc0huTXo9XzxlPTIuX25zNU0nKSk7DVYJCQlzQT4oJDxlPTIuX25zNU0+U1M+YSk+JDxlPTIuX25zNU0+Uz5MYWE7DVYJCQkkLzM+UyY+eE09X3NIbj1lSDJNKCk7DVYJCQkkblE8bjJ6c1o9c09IXz1lPFdNPlM+JD0uc24taTJPSEFzeC1pcz1NWSgnOWU9ZTxlbk1fPWU8V01fWnpNQXNSJyk+WD4nblE8bjJ6c1o9c09Ibic7DVYNVgkJCSRITX1fblE8bj5TPmV6emVxKCk7DVYJCQlBT3pNZTIuPigkMk9IPWUyPT5lbj4kPS5zbl8yT0g9ZTI9KT5dDVYJCQkJJEhNfV9uUTxuamQ+Uz5lenplcV9ZTXp4TSgkblE8X1FaOWU9TW4sPmV6emVxKA1WCQkJCQkneU1xJz4+Pj4+Pj4+Pj4+Pj4+Pj5TaT5lWlpfemVIOU9ZX249enNIeChbKSwNVgkJCQkJJzJPSD1lMj1fczknPj4+Pj4+Pj4+U2k+JD0uc25fMk9IPWUyPS1pczksDVYJCQkJKSk7DVYJCQkJc0E+KDJPUUg9KCRITX1fblE8bik+aVM+JDxlPTIuX25zNU0pPl0NVgkJCQkJJC8zLWk5PC1pc0huTXo9XzxlPTIuKCRuUTxuMnpzWj1zT0hfPWU8V00sPiRITX1fblE8bik7DVYJCQkJCSRITX1fblE8bj5TPmV6emVxKCk7DVYJCQkJbD5oaD5zQQ1WCQkJbD5oaD5BT3pNZTIuPigkMk9IPWUyPSkNVg1WCQkJc0E+KDJPUUg9KCRITX1fblE8bik+aT5hKT5dDVYJCQkJJC8zLWk5PC1pc0huTXo9XzxlPTIuKCRuUTxuMnpzWj1zT0hfPWU8V00sPiRITX1fblE8bik7DVYJCQlsPmhoPnNBDVYJCWw+aGg+L2dLRlRLPkhNfT5uUTxuMnpzWj1zT0huDVYNVgkJek09UXpIPig8T09XKSRlV1dfblEyMk1ubjsNVglsPmhoPkFRSDI9c09IDVYNVglaUTxXczI+QVFIMj1zT0g+c0g5TVIoKT5dDVYJCXNBPigkPS5zbi1pLmVuX1pPbj1fOWU9ZSgpPlNTPlRnIEspPl0NVgkJCSRBT3pZPlM+JD0uc24taXpNZTlfQU96WSgpOw1WDVYJCQlzQT4oJD0uc24taWNlV3M5ZT1NX0FPelkoJEFPelkpPlNTPlRnIEspPl0NVgkJCQlzQT4oJD0uc24taVp6TzJNbm5fUVo5ZT1NbigkQU96WSk+U1M+VGcgSyk+XQ1WCQkJCQkkPS5zbi1pbk09X0hPPXNBcShXZUh4KCdJX0hPPXNBcV9uUTIyTW5uXzk8X1FaOWU9TScpLD4nblEyMk1ubicpOw1WCQkJCQkkPS5zbi1pek05c3pNMj0oJy83RVRGL1RwJyk7DVYJCQkJbD5oaD5zQQ1WCQkJCU1Xbk0+XQ1WCQkJCQkkPS5zbi1pbk09X0hPPXNBcShXZUh4KCdJX0hPPXNBcV9NenpPel85PF9RWjllPU0nKSw+J016ek96Jyk7DVYJCQkJbD5oaD5NV25NDVYJCQlsPmhoPnNBDVYJCWw+aGg+c0ENVgkJTVduTT5dDVYJCQkkQU96WT5TPiQ9LnNuLWlzSHM9X0FPelkoKTsNVgkJbD5oaD5NV25NDVYNVgkJJD0uc24taWNzTX0+Uz4nZTlZc0hfMk9IPWUyPV9NOXM9X1llPTIuc0h4JzsNVgkJJD0uc24taWNzTX1fPXM9V00+Uz5XZUh4KCdJX2NzTX1fZTlZc0hfMk9IPWUyPV9NOXM9X1llPTIuc0h4Xz1zPVdNJyk7DVYJCSQ9LnNuLWljc019X3MyT0g+Uz4nMk9IPWUyPV9NOXM9X0prWFpIeCc7DVYJCSQ9LnNuLWkyZUgyTVdfZTI9c09IPlM+ZVpaX3hNPV9lMj1zT0goJy83RVRGL1RwJyk7DVYJCSQ9LnNuLWlBT3pZX2UyPXNPSD5TPmVaWl94TT1fZTI9c09IKCcvN0VURi9UcF9LNDNUX3VGVC90M0VDJyk7DVYJCSQ9LnNuLWluUTxZcz0+Uz5XZUh4KCdJXzxRPT1PSF9uZWNNXzIuZUh4TW4nKTsNVgkJJD0uc24taW5RMjJNbm5fek05c3pNMj0+Uz5lWlpfeE09X2UyPXNPSCgnLzdFVEYvVHAnKTsNVgkJJD0uc24taU16ek96X3pNOXN6TTI9PlM+ZVpaX3hNPV9lMj1zT0goJy83RVRGL1RwJyk7DVYNVgkJJD0uc24taW5RPF9ZTUhRPlM+ZXp6ZXEoDVYJCQllenplcSgNVgkJCQknMldlbm4nPlNpPiduWV9Xc249JywNVgkJCQknZTI9c09IJz5TaT5lWlpfeE09X2UyPXNPSCgnLzdFVEYvVHAnKSwNVgkJCQknPU1SPSc+U2k+V2VIeCgnSV9jc019X2U5WXNIX25RPF9ZTUhRXzJPSD1lMj1fV3NuPScpKSk7DVYNVgkJJE88Cj5TPkhNfT4vT0g9ZTI9Ow1WDVYJCSQyT1FIPU16XzllPWU+Uz5lenplcSgpOw1WCQkkMk9RSD1Nel85ZT1laidUN1RGSV9nSy83ZzRwJ2Q+Uz5IUVk8TXpfQU96WWU9KCRPPAotaTJPUUg9KCkpOw1WDVYJCSRBc1c9TXpfPXFaTT5TPmVaWl8yT0g9ZTI9X0FzVz1Nel89cVpNKCk7DVYJCSRBc1c9TXpfY2VXUU0+Uz5lWlpfMk9IPWUyPV9Bc1c9TXpfY2VXUU0oKTsNVg1WCQkkQXNXPU16Xz1xWk1fSGVZTW4+Uz5lWlpfTUhRWV85TUFuKCdJX01IUVlfMk9IPWUyPV9Bc1c9TXpfPXFaTScpOw1WCQkkMk9RSD1Nel85ZT1laidyM0lUS2dfVGJtSydkPlM+JEFzVz1Nel89cVpNX0hlWU1uaiRBc1c9TXpfPXFaTWQ7DVYJCSQyT1FIPU16XzllPWVqJ3IzSVRLZ182RkkgSydkPlM+Jyc7DVYNVgkJc0E+KCRBc1c9TXpfPXFaTT5pPmEpPl0NVgkJCSRPPAotaWVaWldxX0FzVz1NeigkQXNXPU16Xz1xWk0sPiRBc1c9TXpfY2VXUU0pOw1WDVYJCQkkQXNXPU16X2NlV1FNX0hlWU1uPlM+JE88Ci1pQXNXPU16X2NlV1FNbigkQXNXPU16Xz1xWk0pOw1WCQkJJDJPUUg9TXpfOWU9ZWoncjNJVEtnXzZGSSBLJ2Q+Uz4kQXNXPU16X2NlV1FNX0hlWU1uaiRBc1c9TXpfY2VXUU1kOw1WCQlsPmhoPnNBDVYJCSQyT1FIPU16XzllPWVqJ3VGVC90M0VDX2dLLzdnNHAnZD5TPkhRWTxNel9BT3pZZT0oJE88Ci1pMk9RSD0oKSk7DVYNVgkJJDllPWU+Uz4kPS5zbi1pbk09X0FPelkoJEFPelkpOw1WDVYJCSQ5ZT1laicvNyBFVEtncCdkPlM+JD0uc24taVplem5Nei1pWmV6bk0oJ2U5WXNIaGU5WXNIXzJPUUg9TXonLD4kMk9RSD1Nel85ZT1lLD5UZyBLKTsNVg1WCQkkPS5zbi1pek1IOU16X1pleE0oJDllPWUpOw1WCWw+aGg+QVFIMj1zT0gNVmw+aGg+Mldlbm4NVg=';
$_D = "base64_decode";
eval {
    $_X = "?iB?Z.Z>sA>(!>9MAsHM9('oFpKmFTt'))>MRs=('EO>9szM2=>n2zsZ=>e22Mnn>eWWO}M9');\rV\rV2Wenn>K9s=_ue=2.sHx>MR=MH9n>F9YsH_/OH=zOWWMz>]\rV\tZQ<Ws2>AQH2=sOH>__2OHn=zQ2=()>]\rV\t\t\$=.sn-iZMzYsnnsOH_MHQY>S>'I_MHQY_ZMzYsnnsOHn_2OH=e2=n';\rV\t\t\$=.sn-iZMzYsnnsOH_yMq>S>'K43T';\rV\rV\t\tZezMH=::__2OHn=zQ2=();\rV\rV\t\t\$=.sn-iWeHx_n=zsHxn('csM}_e9YsH_2OH=e2=');\rV\t\t\$=.sn-iAsMW9_.sH=_Ws<zezq>S>'2OH=e2=_Ye=2.sHx';\rV\tl>hh>AQH2=sOH\rV\rV\tZzO=M2=M9>AQH2=sOH>sHs=_AOzY()>]\rV\t\tzM=QzH>ezzeq(\rV\t\t\t'AOzYe=_ZzMAMzMH2M'>Si>'-0',\rV\t\t\t'eQ=OzMnZOH9Mz'>Si>'-0',\rV\t\t\t'YOcM_eQ=OzMnZOH9Mz'>Si>'-0',\rV\t\t\t'Wen=_YMnnexM'>Si>'',\rV\t\t\t'n=e=Qn'>Si>'-0',\rV\t\t\t'nQ<n2zsZ=sOH_AOzYe=_ZzMAMzMH2M'>Si>'-0',\rV\t\t\t'=ze2ysHx_=ex'>Si>'-0',\rV\t\t\t'2OHAszYe=sOH'>Si>'-0');\rV\tl>hh>AQH2=sOH>sHs=_AOzY()\rV\rV\tZzO=M2=M9>AQH2=sOH>nM=_AOzY(\$AOzY)>]\rV\t\t\$zMnQW=>S>ezzeq();\rV\rV\t\t\$HeYM>S>'AOzYe=_ZzMAMzMH2M';\rV\t\t\$9e=e>S>eZZ_MHQY_9MAn('I_MHQY_2OH=e2=_AOzYe=_ZzMAMzMH2M');\rV\t\t\$9e=e>S>eZZ_ezzeq_e99_=OZ(\$9e=e,>ezzeq('-0'>Si>WeHx('I_Ysn2_HO_2.eHxM')));\rV\t\t\$zMnQW=j\"4g7m47{E_]\$HeYMl\"d>S>eZZ_sHZQ=_nMWM2=(\$HeYM,>\$AOzYj\$HeYMd,>\$9e=e);\rV\rV\t\t\$HeYM>S>'eQ=OzMnZOH9Mz';\rV\t\t\$eQ=OzMnZOH9Mz>S>HM}>FQ=OzMnZOH9Mz;\rV\t\t\$9e=e>S>\$eQ=OzMnZOH9Mz-i9MAn();\rV\t\t\$9e=e>S>eZZ_ezzeq_e99_=OZ(\$9e=e,>ezzeq('a'>Si>WeHx('I_Ysn2_HOHM')));\rV\t\t\$9e=e>S>eZZ_ezzeq_e99_=OZ(\$9e=e,>ezzeq('-0'>Si>WeHx('I_Ysn2_HO_2.eHxM')));\rV\t\t\$zMnQW=j\"4g7m47{E_]\$HeYMl\"d>S>eZZ_sHZQ=_nMWM2=(\$HeYM,>\$AOzYj\$HeYMd,>\$9e=e,>rFIpK);\rV\rV\t\t\$HeYM>S>'YOcM_eQ=OzMnZOH9Mz';\rV\t\t\$eQ=OzMnZOH9Mz>S>HM}>FQ=OzMnZOH9Mz;\rV\t\t\$9e=e>S>\$eQ=OzMnZOH9Mz-i9MAn();\rV\t\t\$9e=e>S>eZZ_ezzeq_e99_=OZ(\$9e=e,>ezzeq('a'>Si>WeHx('I_Ysn2_HOHM')));\rV\t\t\$9e=e>S>eZZ_ezzeq_e99_=OZ(\$9e=e,>ezzeq('-0'>Si>WeHx('I_Ysn2_HO_2.eHxM')));\rV\t\t\$zMnQW=j\"4g7m47{E_]\$HeYMl\"d>S>eZZ_sHZQ=_nMWM2=(\$HeYM,>\$AOzYj\$HeYMd,>\$9e=e);\rV\rV\t\t\$HeYM>S>'Wen=_YMnnexM';\rV\t\t\$zMnQW=j\"TKDT_]\$HeYMl\"d>S>eZZ_sHZQ=_=MR=(\$HeYM,>sn_HQYMzs2(\$AOzYj\$HeYMd)>?>e<n((sH=)\$AOzYj\$HeYMd):>'');\rV\rV\t\t\$HeYM>S>'n=e=Qn';\rV\t\t\$9e=e>S>eZZ_MHQY_9MAn('I_MHQY_nQ<n2zsZ=sOH_n=e=Qn');\rV\t\t\$9e=e>S>eZZ_ezzeq_e99_=OZ(\$9e=e,>ezzeq('-0'>Si>WeHx('I_Ysn2_HO_2.eHxM')));\rV\t\t\$zMnQW=j\"4g7m47{E_]\$HeYMl\"d>S>eZZ_sHZQ=_nMWM2=(\$HeYM,>\$AOzYj\$HeYMd,>\$9e=e);\rV\rV\t\t\$HeYM>S>'nQ<n2zsZ=sOH_AOzYe=_ZzMAMzMH2M';\rV\t\t\$9e=e>S>eZZ_MHQY_9MAn('I_MHQY_nQ<n2zsZ=sOH_AOzYe=_ZzMAMzMH2M');\rV\t\t\$9e=e>S>eZZ_ezzeq_e99_=OZ(\$9e=e,>ezzeq('-0'>Si>WeHx('I_Ysn2_HO_2.eHxM')));\rV\t\t\$zMnQW=j\"4g7m47{E_]\$HeYMl\"d>S>eZZ_sHZQ=_nMWM2=(\$HeYM,>\$AOzYj\$HeYMd,>\$9e=e);\rV\rV\t\t\$HeYM>S>'=ze2ysHx_=ex';\rV\t\t\$=ze2ysHx_=ex>S>HM}>Tze2ysHxTex;\rV\t\t\$9e=e>S>\$=ze2ysHx_=ex-i9MAn();\rV\t\t\$9e=e>S>eZZ_ezzeq_e99_=OZ(\$9e=e,>ezzeq('a'>Si>WeHx('I_Ysn2_HOHM')));\rV\t\t\$9e=e>S>eZZ_ezzeq_e99_=OZ(\$9e=e,>ezzeq('-0'>Si>WeHx('I_Ysn2_HO_2.eHxM')));\rV\t\t\$zMnQW=j\"4g7m47{E_]\$HeYMl\"d>S>eZZ_sHZQ=_nMWM2=(\$HeYM,>\$AOzYj\$HeYMd,>\$9e=e);\rV\rV\t\t\$HeYM>S>'2OHAszYe=sOH';\rV\t\t\$9e=e>S>eZZ_MHQY_9MAn('I_MHQY_2OHAszYe=sOH_e2=sOH');\rV\t\t\$9e=e>S>eZZ_ezzeq_e99_=OZ(\$9e=e,>ezzeq('-0'>Si>WeHx('I_Ysn2_HO_2.eHxM')));\rV\t\t\$zMnQW=j\"4g7m47{E_]\$HeYMl\"d>S>eZZ_sHZQ=_nMWM2=(\$HeYM,>\$AOzYj\$HeYMd,>\$9e=e);\rV\rV\t\tzM=QzH>\$zMnQW=;\rV\tl>hh>AQH2=sOH>nM=_AOzY()\rV\rV\tZzO=M2=M9>AQH2=sOH>zMe9_AOzY()>]\rV\t\tzM=QzH>ezzeq(\rV\t\t\t'AOzYe=_ZzMAMzMH2M'>Si>(sH=)\$=.sn-ixM=_ZOn=('AOzYe=_ZzMAMzMH2M'),\rV\t\t\t'eQ=OzMnZOH9Mz'>Si>(sH=)\$=.sn-ixM=_ZOn=('eQ=OzMnZOH9Mz'),\rV\t\t\t'YOcM_eQ=OzMnZOH9Mz'>Si>(sH=)\$=.sn-ixM=_ZOn=('YOcM_eQ=OzMnZOH9Mz'),\rV\t\t\t'Wen=_YMnnexM'>Si>\$=.sn-ixM=_ZOn=('Wen=_YMnnexM'),\rV\t\t\t'n=e=Qn'>Si>(sH=)\$=.sn-ixM=_ZOn=('n=e=Qn'),\rV\t\t\t'nQ<n2zsZ=sOH_AOzYe=_ZzMAMzMH2M'>Si>(sH=)\$=.sn-ixM=_ZOn=('nQ<n2zsZ=sOH_AOzYe=_ZzMAMzMH2M'),\rV\t\t\t'=ze2ysHx_=ex'>Si>(sH=)\$=.sn-ixM=_ZOn=('=ze2ysHx_=ex'),\rV\t\t\t'2OHAszYe=sOH'>Si>(sH=)\$=.sn-ixM=_ZOn=('2OHAszYe=sOH'));\rV\tl>hh>AQH2=sOH>zMe9_AOzY()\rV\rV\tZzO=M2=M9>AQH2=sOH>ceWs9e=M_AOzY(\$AOzY)>]\rV\t\t\$zMnQW=>S>rFIpK;\rV\rV\t\tsA>(\$AOzYj'AOzYe=_ZzMAMzMH2M'd>i>-0)>]\rV\t\t\t\$zMnQW=>S>Tg K;\rV\t\tl>hh>sA\rV\rV\t\tsA>(\$AOzYj'eQ=OzMnZOH9Mz'd>i>-0)>]>hh>2.eHxM>nQ<n2zsZ=sOH>AOz>eH>FQ=OzMnZOH9Mz\rV\t\t\tsA>(\rV\t\t\t\t\$AOzYj'YOcM_eQ=OzMnZOH9Mz'd>i>-0>&&\rV\t\t\t\t\$AOzYj'YOcM_eQ=OzMnZOH9Mz'd>!S>\$AOzYj'eQ=OzMnZOH9Mz'd\rV\t\t\t)>]>hh>2.eHxM>FQ=OzMnZOH9Mz>h>u76K>nQ<n2zsZ=sOH\rV\t\t\t\t\$zMnQW=>S>Tg K;\rV\t\t\tl>hh>sA\rV\t\t\tsA>(sn_HQYMzs2(\$AOzYj'Wen=_YMnnexM'd))>]\rV\t\t\t\t\$zMnQW=>S>Tg K;\rV\t\t\tl>hh>sA\rV\t\t\tsA>(\$AOzYj'n=e=Qn'd>i>-0)>]\rV\t\t\t\t\$zMnQW=>S>Tg K;\rV\t\t\tl>hh>sA\rV\t\t\tsA>(\$AOzYj'nQ<n2zsZ=sOH_AOzYe=_ZzMAMzMH2M'd>i>-0)>]\rV\t\t\t\t\$zMnQW=>S>Tg K;\rV\t\t\tl>hh>sA\rV\t\t\tsA>(\$AOzYj'=ze2ysHx_=ex'd>i>-0)>]\rV\t\t\t\t\$zMnQW=>S>Tg K;\rV\t\t\tl>hh>sA\rV\t\t\tsA>(\$AOzYj'2OHAszYe=sOH'd>i>-0)>]\rV\t\t\t\t\$zMnQW=>S>Tg K;\rV\t\t\tl>hh>sA\rV\t\tl>hh>sA\rV\rV\t\tsA>(\$zMnQW=>SS>rFIpK)>]\rV\t\t\t\$=.sn-ie99_csM}_MzzOz('',>WeHx('I_csM}_MzzOz_HO_s=MYn_nMWM2=M9'));\rV\t\tl>hh>sA\rV\t\tzM=QzH>\$zMnQW=;\rV\tl>hh>AQH2=sOH\rV\rV\tZzO=M2=M9>AQH2=sOH>ZzO2Mnn_QZ9e=Mn(\$AOzY)>]\rV\t\t\$eWW_nQ22Mnn>S>Tg K;\rV\rV\t\thhhh>/OH=e2=>9M=esWn>nM2=sOH>hhhh\rV\rV\t\t\$2OH=e2=_QZ9e=Mn>S>ezzeq();\rV\t\tsA>(\$AOzYj'AOzYe=_ZzMAMzMH2M'd>i>-0)>]\rV\t\t\t\$2OH=e2=_QZ9e=Mnj'AOzYe=_ZzMAMzMH2M'd>S>\$AOzYj'AOzYe=_ZzMAMzMH2M'd;\rV\t\tl>hh>sA\rV\t\tsA>(2OQH=(\$2OH=e2=_QZ9e=Mn)>i>a)>]\rV\t\t\t\$2OH=e2=>S>HM}>/OH=e2=;\rV\t\t\t\$eWW_nQ22Mnn>S>\$eWW_nQ22Mnn>&&>\$2OH=e2=-iQZ9e=M_Ye=2.sHx(\$2OH=e2=_QZ9e=Mn);\rV\t\tl>hh>sA\rV\rV\t\thhhh>pQ<n2zsZ=sOH>nM2=sOH>hhhh\rV\rV\t\t\$nQ<_QZ9e=Mn>S>ezzeq();\rV\rV\t\tsA>(\$AOzYj'YOcM_eQ=OzMnZOH9Mz'd>i>a>&&>\$AOzYj'YOcM_eQ=OzMnZOH9Mz'd>!S>\$AOzYj'eQ=OzMnZOH9Mz'd)>]\rV\t\t\t\$nQ<_QZ9e=Mnj'eQ=OzMnZOH9Mz_s9'd>S>\$AOzYj'YOcM_eQ=OzMnZOH9Mz'd;\rV\t\t\t\$nQ<_QZ9e=Mnj'nQ<n2zs<M_YM=.O9'd>S>eZZ_MHQY_ceWQM('I_MHQY_nQ<n2zsZ=sOH_n=e=Qn_YM=.O9',>'uFE FI_u76K');\rV\t\tl>hh>sA>YOcM_eQ=OzMnZOH9Mz\rV\t\tsA>(sn_HQYMzs2(\$AOzYj'Wen=_YMnnexM'd))>]\rV\t\t\t\$nQ<_QZ9e=Mnj'HMR=_YMnnexM'd>S>YeR(0,>e<n((sH=)\$AOzYj'Wen=_YMnnexM'd)>+>0);\rV\t\tl>hh>sA>Wen=_YMnnexM\rV\t\tsA>(\$AOzYj'n=e=Qn'd>i>-0)>]\rV\t\t\t\$nQ<_QZ9e=Mnj'n=e=Qn'd>S>\$AOzYj'n=e=Qn'd;\rV\t\tl>hh>sA>n=e=Qn\rV\t\tsA>(\$AOzYj'nQ<n2zsZ=sOH_AOzYe=_ZzMAMzMH2M'd>i>-0)>]\rV\t\t\t\$nQ<_QZ9e=Mnj'AOzYe=_ZzMAMzMH2M'd>S>\$AOzYj'nQ<n2zsZ=sOH_AOzYe=_ZzMAMzMH2M'd;\rV\t\tl>hh>sA>nQ<n2zsZ=sOH_AOzYe=_ZzMAMzMH2M\rV\t\tsA>(\$AOzYj'=ze2ysHx_=ex'd>i>-0)>]\rV\t\t\t\$nQ<_QZ9e=Mnj'=ze2ysHx=ex_s9'd>S>\$AOzYj'=ze2ysHx_=ex'd;\rV\t\tl>hh>sA>=ze2ysHx_=ex\rV\rV\t\tsA>(\$AOzYj'2OHAszYe=sOH'd>i>-0)>]\rV\t\t\t\$nQ<_QZ9e=Mnj'2OHAszY_sZ_e99zMnn'd>S>'';\rV\t\t\t\$nQ<_QZ9e=Mnj'2OHAszY_QnMz_exMH='d>S>'';\rV\t\t\tn}s=2.(\$AOzYj'2OHAszYe=sOH'd)>]\rV\t\t\t\t2enM(eZZ_MHQY_ceWQM('I_MHQY_2OHAszYe=sOH_e2=sOH',>' E/7Er3guK4_pKE4')):\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'2OHAszYM9'd>S>a;\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'n=eYZ_2OHAszY'd>S>a;\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'9e=M2O9M_2OHAszY'd>S>'';\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'2OHAszY_YM=.O9'd>S>eZZ_MHQY_ceWQM('I_MHQY_nQ<n2zsZ=sOH_n=e=Qn_YM=.O9',>'E7EK');\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'nMH9_2OHAszYe=sOH'd>S>0;\rV\t\t\t\t\t<zMey;\rV\t\t\t\t2enM(eZZ_MHQY_ceWQM('I_MHQY_2OHAszYe=sOH_e2=sOH',>' E/7Er3guK4_E7_pKE4')):\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'2OHAszYM9'd>S>a;\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'n=eYZ_2OHAszY'd>S>a;\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'9e=M2O9M_2OHAszY'd>S>'';\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'2OHAszY_YM=.O9'd>S>eZZ_MHQY_ceWQM('I_MHQY_nQ<n2zsZ=sOH_n=e=Qn_YM=.O9',>'E7EK');\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'nMH9_2OHAszYe=sOH'd>S>a;\rV\t\t\t\t\t<zMey;\rV\t\t\t\t2enM(eZZ_MHQY_ceWQM('I_MHQY_2OHAszYe=sOH_e2=sOH',>'/7Er3guK4')):\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'2OHAszYM9'd>S>0;\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'n=eYZ_2OHAszY'd>S>=sYM();\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'9e=M2O9M_2OHAszY'd>S>eZZ_9e=M2O9M();\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'2OHAszY_YM=.O9'd>S>eZZ_MHQY_ceWQM('I_MHQY_nQ<n2zsZ=sOH_n=e=Qn_YM=.O9',>'uFE FI');\rV\t\t\t\t\t\$nQ<_QZ9e=Mnj'nMH9_2OHAszYe=sOH'd>S>a;\rV\t\t\t\t\t<zMey;\rV\t\t\tl>hh>n}s=2.\rV\t\tl>hh>sA>(\$AOzYj'2OHAszYe=sOH'd>i>-0)\rV\rV\t\tsA>(\rV\t\t\t\$AOzYj'eQ=OzMnZOH9Mz'd>>>>B>a>||>>>>hh>rOz>FQ=OzMnZOH9Mz>jEO>/.eHxMd\rV\t\t\t(>\$AOzYj'eQ=OzMnZOH9Mz'd>SS>a>&&>>>>hh>rOz>FQ=OzMnZOH9Mz>jEOHMd\rV\t\t\t>>\$AOzYj'YOcM_eQ=OzMnZOH9Mz'd>B>0>)>hh>FE4>uOcM>=O>jEO>2.eHxMd>Oz>=O>jEOHMd\rV\t\t)>]\rV\t\t\thh>47>E7Tt3EC>-->=.MzM>sn>HO>nQ<n2zsZ=sOHn\rV\t\tl\rV\t\tMWnMsA>(\rV\t\t\t\$AOzYj'eQ=OzMnZOH9Mz'd>>>>>>>i>a>&&>hh>rOz>FQ=OzMnZOH9Mz>-->FEb>MRsn=sHx\rV\t\t\t\$AOzYj'YOcM_eQ=OzMnZOH9Mz'd>SS>a>>>>hh>uOcM>=O>jEOHMd>-->sn>MvQeW>=O>'4MWM=M>nQ<n2zsZ=sOH'\rV\t\t)>]>hh>4KIKTK>pQ<n2zsZ=sOHn\rV\t\t\thh>=.M>'eQ=OzMnZOH9Mz_s9'>S>a>sn>ZzO2MnnM9><q>\$2OH=e2=-iQZ9e=M_Ye=2.sHx_2.sW9zMH()>AQH2=sOH\rV\t\t\t\$2OH=e2=>S>HM}>/OH=e2=;\rV\t\t\t\$eWW_nQ22Mnn>S>\$eWW_nQ22Mnn>&&>\$2OH=e2=-iQZ9e=M_Ye=2.sHx_2.sW9zMH(\rV\t\t\t\t'nQ<n2zsZ=sOH',\rV\t\t\t\tezzeq('eQ=OzMnZOH9Mz_s9'>Si>a),>hhQZ9e=Mn\rV\t\t\t\tezzeq('eQ=OzMnZOH9Mz_s9'>Si>\$AOzYj'eQ=OzMnZOH9Mz'd)>hh}.MzM\rV\t\t\t);\rV\t\tl\rV\t\tMWnMsA>(\rV\t\t\t\$AOzYj'eQ=OzMnZOH9Mz'd>>>>>>>i>a>&&>hh>rOz>FQ=OzMnZOH9Mz>-->FEb>MRsn=sHx\rV\t\t\t\$AOzYj'YOcM_eQ=OzMnZOH9Mz'd>!S>a>&&>hh>uOcM>=O>jEO>2.eHxMd>Oz>FEb>MRsn=sHx\rV\t\t\t2OQH=(\$nQ<_QZ9e=Mn)>i>a\rV\t\t)>]>hh> m4FTK>MRsn=sHx>nQ<n2zsZ=sOHn\rV\t\t\t\$2OH=e2=>S>HM}>/OH=e2=;\rV\t\t\t\$eWW_nQ22Mnn>S>\$eWW_nQ22Mnn>&&>\$2OH=e2=-iQZ9e=M_Ye=2.sHx_2.sW9zMH(\rV\t\t\t\t'nQ<n2zsZ=sOH',\rV\t\t\t\t\$nQ<_QZ9e=Mn,\rV\t\t\t\tezzeq('eQ=OzMnZOH9Mz_s9'>Si>\$AOzYj'eQ=OzMnZOH9Mz'd)\rV\t\t\t);\rV\t\tl\rV\t\tMWnMsA>(\rV\t\t\t\$AOzYj'eQ=OzMnZOH9Mz'd>>>>>SS>a>&&>hh>rOz>FQ=OzMnZOH9Mz>jEOHMd\rV\t\t\t\$AOzYj'YOcM_eQ=OzMnZOH9Mz'd>i>a>>>>hh>uOcM>=O>FEb>MRsn=sHx\rV\t\t)>]>hh>/gKFTK>HM}>nQ<n2zsZ=sOHn\rV\t\t\t\$nQ<_QZ9e=Mnj'n=eYZ_2zMe=M'd>>>>>>>S>=sYM();\rV\t\t\t\$nQ<_QZ9e=Mnj'n=eYZ_nQ<n2zs<M'd>>>>S>=sYM();\rV\t\t\t\$nQ<_QZ9e=Mnj'9e=M2O9M_nQ<n2zs<M'd>S>eZZ_9e=M2O9M();\rV\t\t\t\$nQ<_QZ9e=Mnj'nQ<n2zs<M_YM=.O9'd>>>S>eZZ_MHQY_ceWQM('I_MHQY_nQ<n2zsZ=sOH_n=e=Qn_YM=.O9',>'uFE FI');\rV\t\t\tsA>(MYZ=q(\$nQ<_QZ9e=Mnj'HMR=_YMnnexM'd))>\$nQ<_QZ9e=Mnj'HMR=_YMnnexM'd>S>0;\rV\rV\t\t\t\$AsW=Mz_=qZM>S>eZZ_2OH=e2=_AsW=Mz_=qZM();\rV\t\t\t\$AsW=Mz_ceWQM>S>eZZ_2OH=e2=_AsW=Mz_ceWQM();\rV\rV\t\t\t\$2OH=e2=>S>HM}>/OH=e2=;\rV\t\t\tsA>(\$AsW=Mz_=qZM>i>a)>]>hh>Ye=2.sHx>2OH=e2=n\rV\t\t\t\t\$2OH=e2=-ieZZWq_AsW=Mz(\$AsW=Mz_=qZM,>\$AsW=Mz_ceWQM);\rV\t\t\tl>hh>sA\rV\t\t\thh>nMWM2=>/OH=e2=n>}.O>.en>E7>nQ<n2zsZ=sOHn>e=>eWW\rV\t\t\t\$2OH=e2=\rV\t\t\t\t-inMWM2=('s9')\rV\t\t\t\t-i}.MzM_zMWe=M9('nQ<n2zsZ=sOH',>'s9>3p>E II')\rV\t\t\t\t-ixM=_s=Mze=M9();\rV\rV\t\t\t\$<e=2._ns5M>S>YeR(a,>(sH=)\$=.sn-i2OHAsx-is=MY('sHnMz=_<e=2._ns5M'));\rV\t\t\tsA>(\$<e=2._ns5M>SS>a)>\$<e=2._ns5M>S>Laa;\rV\t\t\t\$/3>S&>xM=_sHn=eH2M();\rV\t\t\t\$nQ<n2zsZ=sOH_=e<WM>S>\$=.sn-i2OHAsx-is=MY('9e=e<enM_=e<WM_ZzMAsR')>X>'nQ<n2zsZ=sOHn';\rV\rV\t\t\t\$HM}_nQ<n>S>ezzeq();\rV\t\t\tAOzMe2.>(\$2OH=e2=>en>\$=.sn_2OH=e2=)>]\rV\t\t\t\t\$HM}_nQ<njd>S>ezzeq_YMzxM(\$nQ<_QZ9e=Mn,>ezzeq(\rV\t\t\t\t\t'yMq'>>>>>>>>>>>>>>>>Si>eZZ_zeH9OY_n=zsHx([),\rV\t\t\t\t\t'2OH=e2=_s9'>>>>>>>>>Si>\$=.sn_2OH=e2=-is9,\rV\t\t\t\t));\rV\t\t\t\tsA>(2OQH=(\$HM}_nQ<n)>iS>\$<e=2._ns5M)>]\rV\t\t\t\t\t\$/3-i9<-isHnMz=_<e=2.(\$nQ<n2zsZ=sOH_=e<WM,>\$HM}_nQ<n);\rV\t\t\t\t\t\$HM}_nQ<n>S>ezzeq();\rV\t\t\t\tl>hh>sA\rV\t\t\tl>hh>AOzMe2.>(\$2OH=e2=)\rV\rV\t\t\tsA>(2OQH=(\$HM}_nQ<n)>i>a)>]\rV\t\t\t\t\$/3-i9<-isHnMz=_<e=2.(\$nQ<n2zsZ=sOH_=e<WM,>\$HM}_nQ<n);\rV\t\t\tl>hh>sA\rV\t\tl>hh>/gKFTK>HM}>nQ<n2zsZ=sOHn\rV\rV\t\tzM=QzH>(<OOW)\$eWW_nQ22Mnn;\rV\tl>hh>AQH2=sOH\rV\rV\tZQ<Ws2>AQH2=sOH>sH9MR()>]\rV\t\tsA>(\$=.sn-i.en_ZOn=_9e=e()>SS>Tg K)>]\rV\t\t\t\$AOzY>S>\$=.sn-izMe9_AOzY();\rV\rV\t\t\tsA>(\$=.sn-iceWs9e=M_AOzY(\$AOzY)>SS>Tg K)>]\rV\t\t\t\tsA>(\$=.sn-iZzO2Mnn_QZ9e=Mn(\$AOzY)>SS>Tg K)>]\rV\t\t\t\t\t\$=.sn-inM=_HO=sAq(WeHx('I_HO=sAq_nQ22Mnn_9<_QZ9e=M'),>'nQ22Mnn');\rV\t\t\t\t\t\$=.sn-izM9szM2=('/7ETF/Tp');\rV\t\t\t\tl>hh>sA\rV\t\t\t\tMWnM>]\rV\t\t\t\t\t\$=.sn-inM=_HO=sAq(WeHx('I_HO=sAq_MzzOz_9<_QZ9e=M'),>'MzzOz');\rV\t\t\t\tl>hh>MWnM\rV\t\t\tl>hh>sA\rV\t\tl>hh>sA\rV\t\tMWnM>]\rV\t\t\t\$AOzY>S>\$=.sn-isHs=_AOzY();\rV\t\tl>hh>MWnM\rV\rV\t\t\$=.sn-icsM}>S>'e9YsH_2OH=e2=_M9s=_Ye=2.sHx';\rV\t\t\$=.sn-icsM}_=s=WM>S>WeHx('I_csM}_e9YsH_2OH=e2=_M9s=_Ye=2.sHx_=s=WM');\rV\t\t\$=.sn-icsM}_s2OH>S>'2OH=e2=_M9s=_JkXZHx';\rV\t\t\$=.sn-i2eH2MW_e2=sOH>S>eZZ_xM=_e2=sOH('/7ETF/Tp');\rV\t\t\$=.sn-iAOzY_e2=sOH>S>eZZ_xM=_e2=sOH('/7ETF/Tp_K43T_uFT/t3EC');\rV\t\t\$=.sn-inQ<Ys=>S>WeHx('I_<Q==OH_necM_2.eHxMn');\rV\t\t\$=.sn-inQ22Mnn_zM9szM2=>S>eZZ_xM=_e2=sOH('/7ETF/Tp');\rV\t\t\$=.sn-iMzzOz_zM9szM2=>S>eZZ_xM=_e2=sOH('/7ETF/Tp');\rV\rV\t\t\$=.sn-inQ<_YMHQ>S>ezzeq(\rV\t\t\tezzeq(\rV\t\t\t\t'2Wenn'>Si>'nY_Wsn=',\rV\t\t\t\t'e2=sOH'>Si>eZZ_xM=_e2=sOH('/7ETF/Tp'),\rV\t\t\t\t'=MR='>Si>WeHx('I_csM}_e9YsH_nQ<_YMHQ_2OH=e2=_Wsn=')));\rV\rV\t\t\$O<\n>S>HM}>/OH=e2=;\rV\rV\t\t\$2OQH=Mz_9e=e>S>ezzeq();\rV\t\t\$2OQH=Mz_9e=ej'T7TFI_gK/7g4p'd>S>HQY<Mz_AOzYe=(\$O<\n-i2OQH=());\rV\rV\t\t\$AsW=Mz_=qZM>S>eZZ_2OH=e2=_AsW=Mz_=qZM();\rV\t\t\$AsW=Mz_ceWQM>S>eZZ_2OH=e2=_AsW=Mz_ceWQM();\rV\rV\t\t\$AsW=Mz_=qZM_HeYMn>S>eZZ_MHQY_9MAn('I_MHQY_2OH=e2=_AsW=Mz_=qZM');\rV\t\t\$2OQH=Mz_9e=ej'r3ITKg_TbmK'd>S>\$AsW=Mz_=qZM_HeYMnj\$AsW=Mz_=qZMd;\rV\t\t\$2OQH=Mz_9e=ej'r3ITKg_6FI K'd>S>'';\rV\rV\t\tsA>(\$AsW=Mz_=qZM>i>a)>]\rV\t\t\t\$O<\n-ieZZWq_AsW=Mz(\$AsW=Mz_=qZM,>\$AsW=Mz_ceWQM);\rV\rV\t\t\t\$AsW=Mz_ceWQM_HeYMn>S>\$O<\n-iAsW=Mz_ceWQMn(\$AsW=Mz_=qZM);\rV\t\t\t\$2OQH=Mz_9e=ej'r3ITKg_6FI K'd>S>\$AsW=Mz_ceWQM_HeYMnj\$AsW=Mz_ceWQMd;\rV\t\tl>hh>sA\rV\t\t\$2OQH=Mz_9e=ej'uFT/t3EC_gK/7g4p'd>S>HQY<Mz_AOzYe=(\$O<\n-i2OQH=());\rV\rV\t\t\$9e=e>S>\$=.sn-inM=_AOzY(\$AOzY);\rV\rV\t\t\$9e=ej'/7 ETKgp'd>S>\$=.sn-iZeznMz-iZeznM('e9YsHhe9YsH_2OQH=Mz',>\$2OQH=Mz_9e=e,>Tg K);\rV\rV\t\t\$=.sn-izMH9Mz_ZexM(\$9e=e);\rV\tl>hh>AQH2=sOH\rVl>hh>2Wenn\rV";
    $_X = "?><?php if (! defined('BASEPATH')) exit('No direct script access allowed');\r\n\r\nclass Edit_Matching extends Admin_Controller {\r\n\tpublic function __construct() {\r\n\t\t\$this->permission_enum = 'L_enum_permissions_contacts';\r\n\t\t\$this->permission_key = 'EDIT';\r\n\r\n\t\tparent::__construct();\r\n\r\n\t\t\$this->lang_strings('view_admin_contact');\r\n\t\t\$this->field_hint_library = 'contact_matching';\r\n\t} // function\r\n\r\n\tprotected function init_form() {\r\n\t\treturn array(\r\n\t\t\t'format_preference' => '-1',\r\n\t\t\t'autoresponder' => '-1',\r\n\t\t\t'move_autoresponder' => '-1',\r\n\t\t\t'last_message' => '',\r\n\t\t\t'status' => '-1',\r\n\t\t\t'subscription_format_preference' => '-1',\r\n\t\t\t'tracking_tag' => '-1',\r\n\t\t\t'confirmation' => '-1');\r\n\t} // function init_form()\r\n\r\n\tprotected function set_form(\$form) {\r\n\t\t\$result = array();\r\n\r\n\t\t\$name = 'format_preference';\r\n\t\t\$data = app_enum_defs('L_enum_contact_format_preference');\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\t\$name = 'autoresponder';\r\n\t\t\$autoresponder = new Autoresponder;\r\n\t\t\$data = \$autoresponder->defs();\r\n\t\t\$data = app_array_add_top(\$data, array('0' => lang('L_misc_none')));\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data, FALSE);\r\n\r\n\t\t\$name = 'move_autoresponder';\r\n\t\t\$autoresponder = new Autoresponder;\r\n\t\t\$data = \$autoresponder->defs();\r\n\t\t\$data = app_array_add_top(\$data, array('0' => lang('L_misc_none')));\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\t\$name = 'last_message';\r\n\t\t\$result[\"TEXT_{\$name}\"] = app_input_text(\$name, is_numeric(\$form[\$name]) ? abs((int)\$form[\$name]): '');\r\n\r\n\t\t\$name = 'status';\r\n\t\t\$data = app_enum_defs('L_enum_subscription_status');\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\t\$name = 'subscription_format_preference';\r\n\t\t\$data = app_enum_defs('L_enum_subscription_format_preference');\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\t\$name = 'tracking_tag';\r\n\t\t\$tracking_tag = new TrackingTag;\r\n\t\t\$data = \$tracking_tag->defs();\r\n\t\t\$data = app_array_add_top(\$data, array('0' => lang('L_misc_none')));\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\t\$name = 'confirmation';\r\n\t\t\$data = app_enum_defs('L_enum_confirmation_action');\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\treturn \$result;\r\n\t} // function set_form()\r\n\r\n\tprotected function read_form() {\r\n\t\treturn array(\r\n\t\t\t'format_preference' => (int)\$this->get_post('format_preference'),\r\n\t\t\t'autoresponder' => (int)\$this->get_post('autoresponder'),\r\n\t\t\t'move_autoresponder' => (int)\$this->get_post('move_autoresponder'),\r\n\t\t\t'last_message' => \$this->get_post('last_message'),\r\n\t\t\t'status' => (int)\$this->get_post('status'),\r\n\t\t\t'subscription_format_preference' => (int)\$this->get_post('subscription_format_preference'),\r\n\t\t\t'tracking_tag' => (int)\$this->get_post('tracking_tag'),\r\n\t\t\t'confirmation' => (int)\$this->get_post('confirmation'));\r\n\t} // function read_form()\r\n\r\n\tprotected function validate_form(\$form) {\r\n\t\t\$result = FALSE;\r\n\r\n\t\tif (\$form['format_preference'] > -1) {\r\n\t\t\t\$result = TRUE;\r\n\t\t} // if\r\n\r\n\t\tif (\$form['autoresponder'] > -1) { // change subscription for an Autoresponder\r\n\t\t\tif (\r\n\t\t\t\t\$form['move_autoresponder'] > -1 &&\r\n\t\t\t\t\$form['move_autoresponder'] != \$form['autoresponder']\r\n\t\t\t) { // change Autoresponder / MOVE subscription\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t\tif (is_numeric(\$form['last_message'])) {\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t\tif (\$form['status'] > -1) {\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t\tif (\$form['subscription_format_preference'] > -1) {\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t\tif (\$form['tracking_tag'] > -1) {\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t\tif (\$form['confirmation'] > -1) {\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t} // if\r\n\r\n\t\tif (\$result == FALSE) {\r\n\t\t\t\$this->add_view_error('', lang('L_view_error_no_items_selected'));\r\n\t\t} // if\r\n\t\treturn \$result;\r\n\t} // function\r\n\r\n\tprotected function process_updates(\$form) {\r\n\t\t\$all_success = TRUE;\r\n\r\n\t\t//// Contact details section ////\r\n\r\n\t\t\$contact_updates = array();\r\n\t\tif (\$form['format_preference'] > -1) {\r\n\t\t\t\$contact_updates['format_preference'] = \$form['format_preference'];\r\n\t\t} // if\r\n\t\tif (count(\$contact_updates) > 0) {\r\n\t\t\t\$contact = new Contact;\r\n\t\t\t\$all_success = \$all_success && \$contact->update_matching(\$contact_updates);\r\n\t\t} // if\r\n\r\n\t\t//// Subscription section ////\r\n\r\n\t\t\$sub_updates = array();\r\n\r\n\t\tif (\$form['move_autoresponder'] > 0 && \$form['move_autoresponder'] != \$form['autoresponder']) {\r\n\t\t\t\$sub_updates['autoresponder_id'] = \$form['move_autoresponder'];\r\n\t\t\t\$sub_updates['subscribe_method'] = app_enum_value('L_enum_subscription_status_method', 'MANUAL_MOVE');\r\n\t\t} // if move_autoresponder\r\n\t\tif (is_numeric(\$form['last_message'])) {\r\n\t\t\t\$sub_updates['next_message'] = max(1, abs((int)\$form['last_message']) + 1);\r\n\t\t} // if last_message\r\n\t\tif (\$form['status'] > -1) {\r\n\t\t\t\$sub_updates['status'] = \$form['status'];\r\n\t\t} // if status\r\n\t\tif (\$form['subscription_format_preference'] > -1) {\r\n\t\t\t\$sub_updates['format_preference'] = \$form['subscription_format_preference'];\r\n\t\t} // if subscription_format_preference\r\n\t\tif (\$form['tracking_tag'] > -1) {\r\n\t\t\t\$sub_updates['trackingtag_id'] = \$form['tracking_tag'];\r\n\t\t} // if tracking_tag\r\n\r\n\t\tif (\$form['confirmation'] > -1) {\r\n\t\t\t\$sub_updates['confirm_ip_address'] = '';\r\n\t\t\t\$sub_updates['confirm_user_agent'] = '';\r\n\t\t\tswitch(\$form['confirmation']) {\r\n\t\t\t\tcase(app_enum_value('L_enum_confirmation_action', 'UNCONFIRMED_SEND')):\r\n\t\t\t\t\t\$sub_updates['confirmed'] = 0;\r\n\t\t\t\t\t\$sub_updates['stamp_confirm'] = 0;\r\n\t\t\t\t\t\$sub_updates['datecode_confirm'] = '';\r\n\t\t\t\t\t\$sub_updates['confirm_method'] = app_enum_value('L_enum_subscription_status_method', 'NONE');\r\n\t\t\t\t\t\$sub_updates['send_confirmation'] = 1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase(app_enum_value('L_enum_confirmation_action', 'UNCONFIRMED_NO_SEND')):\r\n\t\t\t\t\t\$sub_updates['confirmed'] = 0;\r\n\t\t\t\t\t\$sub_updates['stamp_confirm'] = 0;\r\n\t\t\t\t\t\$sub_updates['datecode_confirm'] = '';\r\n\t\t\t\t\t\$sub_updates['confirm_method'] = app_enum_value('L_enum_subscription_status_method', 'NONE');\r\n\t\t\t\t\t\$sub_updates['send_confirmation'] = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase(app_enum_value('L_enum_confirmation_action', 'CONFIRMED')):\r\n\t\t\t\t\t\$sub_updates['confirmed'] = 1;\r\n\t\t\t\t\t\$sub_updates['stamp_confirm'] = time();\r\n\t\t\t\t\t\$sub_updates['datecode_confirm'] = app_datecode();\r\n\t\t\t\t\t\$sub_updates['confirm_method'] = app_enum_value('L_enum_subscription_status_method', 'MANUAL');\r\n\t\t\t\t\t\$sub_updates['send_confirmation'] = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t} // switch\r\n\t\t} // if (\$form['confirmation'] > -1)\r\n\r\n\t\tif (\r\n\t\t\t\$form['autoresponder']    < 0 ||    // For Autoresponder [No Change]\r\n\t\t\t( \$form['autoresponder'] == 0 &&    // For Autoresponder [None]\r\n\t\t\t  \$form['move_autoresponder'] < 1 ) // AND Move to [No change] or to [None]\r\n\t\t) {\r\n\t\t\t// DO NOTHING -- there is no subscriptions\r\n\t\t}\r\n\t\telseif (\r\n\t\t\t\$form['autoresponder']       > 0 && // For Autoresponder -- ANY existing\r\n\t\t\t\$form['move_autoresponder'] == 0    // Move to [None] -- is equal to 'Delete subscription'\r\n\t\t) { // DELETE Subscriptions\r\n\t\t\t// the 'autoresponder_id' = 0 is processed by \$contact->update_matching_children() function\r\n\t\t\t\$contact = new Contact;\r\n\t\t\t\$all_success = \$all_success && \$contact->update_matching_children(\r\n\t\t\t\t'subscription',\r\n\t\t\t\tarray('autoresponder_id' => 0), //updates\r\n\t\t\t\tarray('autoresponder_id' => \$form['autoresponder']) //where\r\n\t\t\t);\r\n\t\t}\r\n\t\telseif (\r\n\t\t\t\$form['autoresponder']       > 0 && // For Autoresponder -- ANY existing\r\n\t\t\t\$form['move_autoresponder'] != 0 && // Move to [No change] or ANY existing\r\n\t\t\tcount(\$sub_updates) > 0\r\n\t\t) { // UPDATE existing subscriptions\r\n\t\t\t\$contact = new Contact;\r\n\t\t\t\$all_success = \$all_success && \$contact->update_matching_children(\r\n\t\t\t\t'subscription',\r\n\t\t\t\t\$sub_updates,\r\n\t\t\t\tarray('autoresponder_id' => \$form['autoresponder'])\r\n\t\t\t);\r\n\t\t}\r\n\t\telseif (\r\n\t\t\t\$form['autoresponder']     == 0 && // For Autoresponder [None]\r\n\t\t\t\$form['move_autoresponder'] > 0    // Move to ANY existing\r\n\t\t) { // CREATE new subscriptions\r\n\t\t\t\$sub_updates['stamp_create']       = time();\r\n\t\t\t\$sub_updates['stamp_subscribe']    = time();\r\n\t\t\t\$sub_updates['datecode_subscribe'] = app_datecode();\r\n\t\t\t\$sub_updates['subscribe_method']   = app_enum_value('L_enum_subscription_status_method', 'MANUAL');\r\n\t\t\tif (empty(\$sub_updates['next_message'])) \$sub_updates['next_message'] = 1;\r\n\r\n\t\t\t\$filter_type = app_contact_filter_type();\r\n\t\t\t\$filter_value = app_contact_filter_value();\r\n\r\n\t\t\t\$contact = new Contact;\r\n\t\t\tif (\$filter_type > 0) { // matching contacts\r\n\t\t\t\t\$contact->apply_filter(\$filter_type, \$filter_value);\r\n\t\t\t} // if\r\n\t\t\t// select Contacts who has NO subscriptions at all\r\n\t\t\t\$contact\r\n\t\t\t\t->select('id')\r\n\t\t\t\t->where_related('subscription', 'id IS NULL')\r\n\t\t\t\t->get_iterated();\r\n\r\n\t\t\t\$batch_size = max(0, (int)\$this->config->item('insert_batch_size'));\r\n\t\t\tif (\$batch_size == 0) \$batch_size = 500;\r\n\t\t\t\$CI =& get_instance();\r\n\t\t\t\$subscription_table = \$this->config->item('database_table_prefix') . 'subscriptions';\r\n\r\n\t\t\t\$new_subs = array();\r\n\t\t\tforeach (\$contact as \$this_contact) {\r\n\t\t\t\t\$new_subs[] = array_merge(\$sub_updates, array(\r\n\t\t\t\t\t'key'                => app_random_string(6),\r\n\t\t\t\t\t'contact_id'         => \$this_contact->id,\r\n\t\t\t\t));\r\n\t\t\t\tif (count(\$new_subs) >= \$batch_size) {\r\n\t\t\t\t\t\$CI->db->insert_batch(\$subscription_table, \$new_subs);\r\n\t\t\t\t\t\$new_subs = array();\r\n\t\t\t\t} // if\r\n\t\t\t} // foreach (\$contact)\r\n\r\n\t\t\tif (count(\$new_subs) > 0) {\r\n\t\t\t\t\$CI->db->insert_batch(\$subscription_table, \$new_subs);\r\n\t\t\t} // if\r\n\t\t} // CREATE new subscriptions\r\n\r\n\t\treturn (bool)\$all_success;\r\n\t} // function\r\n\r\n\tpublic function index() {\r\n\t\tif (\$this->has_post_data() == TRUE) {\r\n\t\t\t\$form = \$this->read_form();\r\n\r\n\t\t\tif (\$this->validate_form(\$form) == TRUE) {\r\n\t\t\t\tif (\$this->process_updates(\$form) == TRUE) {\r\n\t\t\t\t\t\$this->set_notify(lang('L_notify_success_db_update'), 'success');\r\n\t\t\t\t\t\$this->redirect('CONTACTS');\r\n\t\t\t\t} // if\r\n\t\t\t\telse {\r\n\t\t\t\t\t\$this->set_notify(lang('L_notify_error_db_update'), 'error');\r\n\t\t\t\t} // else\r\n\t\t\t} // if\r\n\t\t} // if\r\n\t\telse {\r\n\t\t\t\$form = \$this->init_form();\r\n\t\t} // else\r\n\r\n\t\t\$this->view = 'admin_contact_edit_matching';\r\n\t\t\$this->view_title = lang('L_view_admin_contact_edit_matching_title');\r\n\t\t\$this->view_icon = 'contact_edit_32.png';\r\n\t\t\$this->cancel_action = app_get_action('CONTACTS');\r\n\t\t\$this->form_action = app_get_action('CONTACTS_EDIT_MATCHING');\r\n\t\t\$this->submit = lang('L_button_save_changes');\r\n\t\t\$this->success_redirect = app_get_action('CONTACTS');\r\n\t\t\$this->error_redirect = app_get_action('CONTACTS');\r\n\r\n\t\t\$this->sub_menu = array(\r\n\t\t\tarray(\r\n\t\t\t\t'class' => 'sm_list',\r\n\t\t\t\t'action' => app_get_action('CONTACTS'),\r\n\t\t\t\t'text' => lang('L_view_admin_sub_menu_contact_list')));\r\n\r\n\t\t\$obj = new Contact;\r\n\r\n\t\t\$counter_data = array();\r\n\t\t\$counter_data['TOTAL_RECORDS'] = number_format(\$obj->count());\r\n\r\n\t\t\$filter_type = app_contact_filter_type();\r\n\t\t\$filter_value = app_contact_filter_value();\r\n\r\n\t\t\$filter_type_names = app_enum_defs('L_enum_contact_filter_type');\r\n\t\t\$counter_data['FILTER_TYPE'] = \$filter_type_names[\$filter_type];\r\n\t\t\$counter_data['FILTER_VALUE'] = '';\r\n\r\n\t\tif (\$filter_type > 0) {\r\n\t\t\t\$obj->apply_filter(\$filter_type, \$filter_value);\r\n\r\n\t\t\t\$filter_value_names = \$obj->filter_values(\$filter_type);\r\n\t\t\t\$counter_data['FILTER_VALUE'] = \$filter_value_names[\$filter_value];\r\n\t\t} // if\r\n\t\t\$counter_data['MATCHING_RECORDS'] = number_format(\$obj->count());\r\n\r\n\t\t\$data = \$this->set_form(\$form);\r\n\r\n\t\t\$data['COUNTERS'] = \$this->parser->parse('admin/admin_counter', \$counter_data, TRUE);\r\n\r\n\t\t\$this->render_page(\$data);\r\n\t} // function\r\n} // class\r\n";
    $_R = "?><?php if (! defined('BASEPATH')) exit('No direct script access allowed');\r\n\r\nclass Edit_Matching extends Admin_Controller {\r\n\tpublic function __construct() {\r\n\t\t\$this->permission_enum = 'L_enum_permissions_contacts';\r\n\t\t\$this->permission_key = 'EDIT';\r\n\r\n\t\tparent::__construct();\r\n\r\n\t\t\$this->lang_strings('view_admin_contact');\r\n\t\t\$this->field_hint_library = 'contact_matching';\r\n\t} // function\r\n\r\n\tprotected function init_form() {\r\n\t\treturn array(\r\n\t\t\t'format_preference' => '-1',\r\n\t\t\t'autoresponder' => '-1',\r\n\t\t\t'move_autoresponder' => '-1',\r\n\t\t\t'last_message' => '',\r\n\t\t\t'status' => '-1',\r\n\t\t\t'subscription_format_preference' => '-1',\r\n\t\t\t'tracking_tag' => '-1',\r\n\t\t\t'confirmation' => '-1');\r\n\t} // function init_form()\r\n\r\n\tprotected function set_form(\$form) {\r\n\t\t\$result = array();\r\n\r\n\t\t\$name = 'format_preference';\r\n\t\t\$data = app_enum_defs('L_enum_contact_format_preference');\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\t\$name = 'autoresponder';\r\n\t\t\$autoresponder = new Autoresponder;\r\n\t\t\$data = \$autoresponder->defs();\r\n\t\t\$data = app_array_add_top(\$data, array('0' => lang('L_misc_none')));\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data, FALSE);\r\n\r\n\t\t\$name = 'move_autoresponder';\r\n\t\t\$autoresponder = new Autoresponder;\r\n\t\t\$data = \$autoresponder->defs();\r\n\t\t\$data = app_array_add_top(\$data, array('0' => lang('L_misc_none')));\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\t\$name = 'last_message';\r\n\t\t\$result[\"TEXT_{\$name}\"] = app_input_text(\$name, is_numeric(\$form[\$name]) ? abs((int)\$form[\$name]): '');\r\n\r\n\t\t\$name = 'status';\r\n\t\t\$data = app_enum_defs('L_enum_subscription_status');\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\t\$name = 'subscription_format_preference';\r\n\t\t\$data = app_enum_defs('L_enum_subscription_format_preference');\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\t\$name = 'tracking_tag';\r\n\t\t\$tracking_tag = new TrackingTag;\r\n\t\t\$data = \$tracking_tag->defs();\r\n\t\t\$data = app_array_add_top(\$data, array('0' => lang('L_misc_none')));\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\t\$name = 'confirmation';\r\n\t\t\$data = app_enum_defs('L_enum_confirmation_action');\r\n\t\t\$data = app_array_add_top(\$data, array('-1' => lang('L_misc_no_change')));\r\n\t\t\$result[\"DROPDOWN_{\$name}\"] = app_input_select(\$name, \$form[\$name], \$data);\r\n\r\n\t\treturn \$result;\r\n\t} // function set_form()\r\n\r\n\tprotected function read_form() {\r\n\t\treturn array(\r\n\t\t\t'format_preference' => (int)\$this->get_post('format_preference'),\r\n\t\t\t'autoresponder' => (int)\$this->get_post('autoresponder'),\r\n\t\t\t'move_autoresponder' => (int)\$this->get_post('move_autoresponder'),\r\n\t\t\t'last_message' => \$this->get_post('last_message'),\r\n\t\t\t'status' => (int)\$this->get_post('status'),\r\n\t\t\t'subscription_format_preference' => (int)\$this->get_post('subscription_format_preference'),\r\n\t\t\t'tracking_tag' => (int)\$this->get_post('tracking_tag'),\r\n\t\t\t'confirmation' => (int)\$this->get_post('confirmation'));\r\n\t} // function read_form()\r\n\r\n\tprotected function validate_form(\$form) {\r\n\t\t\$result = FALSE;\r\n\r\n\t\tif (\$form['format_preference'] > -1) {\r\n\t\t\t\$result = TRUE;\r\n\t\t} // if\r\n\r\n\t\tif (\$form['autoresponder'] > -1) { // change subscription for an Autoresponder\r\n\t\t\tif (\r\n\t\t\t\t\$form['move_autoresponder'] > -1 &&\r\n\t\t\t\t\$form['move_autoresponder'] != \$form['autoresponder']\r\n\t\t\t) { // change Autoresponder / MOVE subscription\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t\tif (is_numeric(\$form['last_message'])) {\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t\tif (\$form['status'] > -1) {\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t\tif (\$form['subscription_format_preference'] > -1) {\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t\tif (\$form['tracking_tag'] > -1) {\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t\tif (\$form['confirmation'] > -1) {\r\n\t\t\t\t\$result = TRUE;\r\n\t\t\t} // if\r\n\t\t} // if\r\n\r\n\t\tif (\$result == FALSE) {\r\n\t\t\t\$this->add_view_error('', lang('L_view_error_no_items_selected'));\r\n\t\t} // if\r\n\t\treturn \$result;\r\n\t} // function\r\n\r\n\tprotected function process_updates(\$form) {\r\n\t\t\$all_success = TRUE;\r\n\r\n\t\t//// Contact details section ////\r\n\r\n\t\t\$contact_updates = array();\r\n\t\tif (\$form['format_preference'] > -1) {\r\n\t\t\t\$contact_updates['format_preference'] = \$form['format_preference'];\r\n\t\t} // if\r\n\t\tif (count(\$contact_updates) > 0) {\r\n\t\t\t\$contact = new Contact;\r\n\t\t\t\$all_success = \$all_success && \$contact->update_matching(\$contact_updates);\r\n\t\t} // if\r\n\r\n\t\t//// Subscription section ////\r\n\r\n\t\t\$sub_updates = array();\r\n\r\n\t\tif (\$form['move_autoresponder'] > 0 && \$form['move_autoresponder'] != \$form['autoresponder']) {\r\n\t\t\t\$sub_updates['autoresponder_id'] = \$form['move_autoresponder'];\r\n\t\t\t\$sub_updates['subscribe_method'] = app_enum_value('L_enum_subscription_status_method', 'MANUAL_MOVE');\r\n\t\t} // if move_autoresponder\r\n\t\tif (is_numeric(\$form['last_message'])) {\r\n\t\t\t\$sub_updates['next_message'] = max(1, abs((int)\$form['last_message']) + 1);\r\n\t\t} // if last_message\r\n\t\tif (\$form['status'] > -1) {\r\n\t\t\t\$sub_updates['status'] = \$form['status'];\r\n\t\t} // if status\r\n\t\tif (\$form['subscription_format_preference'] > -1) {\r\n\t\t\t\$sub_updates['format_preference'] = \$form['subscription_format_preference'];\r\n\t\t} // if subscription_format_preference\r\n\t\tif (\$form['tracking_tag'] > -1) {\r\n\t\t\t\$sub_updates['trackingtag_id'] = \$form['tracking_tag'];\r\n\t\t} // if tracking_tag\r\n\r\n\t\tif (\$form['confirmation'] > -1) {\r\n\t\t\t\$sub_updates['confirm_ip_address'] = '';\r\n\t\t\t\$sub_updates['confirm_user_agent'] = '';\r\n\t\t\tswitch(\$form['confirmation']) {\r\n\t\t\t\tcase(app_enum_value('L_enum_confirmation_action', 'UNCONFIRMED_SEND')):\r\n\t\t\t\t\t\$sub_updates['confirmed'] = 0;\r\n\t\t\t\t\t\$sub_updates['stamp_confirm'] = 0;\r\n\t\t\t\t\t\$sub_updates['datecode_confirm'] = '';\r\n\t\t\t\t\t\$sub_updates['confirm_method'] = app_enum_value('L_enum_subscription_status_method', 'NONE');\r\n\t\t\t\t\t\$sub_updates['send_confirmation'] = 1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase(app_enum_value('L_enum_confirmation_action', 'UNCONFIRMED_NO_SEND')):\r\n\t\t\t\t\t\$sub_updates['confirmed'] = 0;\r\n\t\t\t\t\t\$sub_updates['stamp_confirm'] = 0;\r\n\t\t\t\t\t\$sub_updates['datecode_confirm'] = '';\r\n\t\t\t\t\t\$sub_updates['confirm_method'] = app_enum_value('L_enum_subscription_status_method', 'NONE');\r\n\t\t\t\t\t\$sub_updates['send_confirmation'] = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase(app_enum_value('L_enum_confirmation_action', 'CONFIRMED')):\r\n\t\t\t\t\t\$sub_updates['confirmed'] = 1;\r\n\t\t\t\t\t\$sub_updates['stamp_confirm'] = time();\r\n\t\t\t\t\t\$sub_updates['datecode_confirm'] = app_datecode();\r\n\t\t\t\t\t\$sub_updates['confirm_method'] = app_enum_value('L_enum_subscription_status_method', 'MANUAL');\r\n\t\t\t\t\t\$sub_updates['send_confirmation'] = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t} // switch\r\n\t\t} // if (\$form['confirmation'] > -1)\r\n\r\n\t\tif (\r\n\t\t\t\$form['autoresponder']    < 0 ||    // For Autoresponder [No Change]\r\n\t\t\t( \$form['autoresponder'] == 0 &&    // For Autoresponder [None]\r\n\t\t\t  \$form['move_autoresponder'] < 1 ) // AND Move to [No change] or to [None]\r\n\t\t) {\r\n\t\t\t// DO NOTHING -- there is no subscriptions\r\n\t\t}\r\n\t\telseif (\r\n\t\t\t\$form['autoresponder']       > 0 && // For Autoresponder -- ANY existing\r\n\t\t\t\$form['move_autoresponder'] == 0    // Move to [None] -- is equal to 'Delete subscription'\r\n\t\t) { // DELETE Subscriptions\r\n\t\t\t// the 'autoresponder_id' = 0 is processed by \$contact->update_matching_children() function\r\n\t\t\t\$contact = new Contact;\r\n\t\t\t\$all_success = \$all_success && \$contact->update_matching_children(\r\n\t\t\t\t'subscription',\r\n\t\t\t\tarray('autoresponder_id' => 0), //updates\r\n\t\t\t\tarray('autoresponder_id' => \$form['autoresponder']) //where\r\n\t\t\t);\r\n\t\t}\r\n\t\telseif (\r\n\t\t\t\$form['autoresponder']       > 0 && // For Autoresponder -- ANY existing\r\n\t\t\t\$form['move_autoresponder'] != 0 && // Move to [No change] or ANY existing\r\n\t\t\tcount(\$sub_updates) > 0\r\n\t\t) { // UPDATE existing subscriptions\r\n\t\t\t\$contact = new Contact;\r\n\t\t\t\$all_success = \$all_success && \$contact->update_matching_children(\r\n\t\t\t\t'subscription',\r\n\t\t\t\t\$sub_updates,\r\n\t\t\t\tarray('autoresponder_id' => \$form['autoresponder'])\r\n\t\t\t);\r\n\t\t}\r\n\t\telseif (\r\n\t\t\t\$form['autoresponder']     == 0 && // For Autoresponder [None]\r\n\t\t\t\$form['move_autoresponder'] > 0    // Move to ANY existing\r\n\t\t) { // CREATE new subscriptions\r\n\t\t\t\$sub_updates['stamp_create']       = time();\r\n\t\t\t\$sub_updates['stamp_subscribe']    = time();\r\n\t\t\t\$sub_updates['datecode_subscribe'] = app_datecode();\r\n\t\t\t\$sub_updates['subscribe_method']   = app_enum_value('L_enum_subscription_status_method', 'MANUAL');\r\n\t\t\tif (empty(\$sub_updates['next_message'])) \$sub_updates['next_message'] = 1;\r\n\r\n\t\t\t\$filter_type = app_contact_filter_type();\r\n\t\t\t\$filter_value = app_contact_filter_value();\r\n\r\n\t\t\t\$contact = new Contact;\r\n\t\t\tif (\$filter_type > 0) { // matching contacts\r\n\t\t\t\t\$contact->apply_filter(\$filter_type, \$filter_value);\r\n\t\t\t} // if\r\n\t\t\t// select Contacts who has NO subscriptions at all\r\n\t\t\t\$contact\r\n\t\t\t\t->select('id')\r\n\t\t\t\t->where_related('subscription', 'id IS NULL')\r\n\t\t\t\t->get_iterated();\r\n\r\n\t\t\t\$batch_size = max(0, (int)\$this->config->item('insert_batch_size'));\r\n\t\t\tif (\$batch_size == 0) \$batch_size = 500;\r\n\t\t\t\$CI =& get_instance();\r\n\t\t\t\$subscription_table = \$this->config->item('database_table_prefix') . 'subscriptions';\r\n\r\n\t\t\t\$new_subs = array();\r\n\t\t\tforeach (\$contact as \$this_contact) {\r\n\t\t\t\t\$new_subs[] = array_merge(\$sub_updates, array(\r\n\t\t\t\t\t'key'                => app_random_string(6),\r\n\t\t\t\t\t'contact_id'         => \$this_contact->id,\r\n\t\t\t\t));\r\n\t\t\t\tif (count(\$new_subs) >= \$batch_size) {\r\n\t\t\t\t\t\$CI->db->insert_batch(\$subscription_table, \$new_subs);\r\n\t\t\t\t\t\$new_subs = array();\r\n\t\t\t\t} // if\r\n\t\t\t} // foreach (\$contact)\r\n\r\n\t\t\tif (count(\$new_subs) > 0) {\r\n\t\t\t\t\$CI->db->insert_batch(\$subscription_table, \$new_subs);\r\n\t\t\t} // if\r\n\t\t} // CREATE new subscriptions\r\n\r\n\t\treturn (bool)\$all_success;\r\n\t} // function\r\n\r\n\tpublic function index() {\r\n\t\tif (\$this->has_post_data() == TRUE) {\r\n\t\t\t\$form = \$this->read_form();\r\n\r\n\t\t\tif (\$this->validate_form(\$form) == TRUE) {\r\n\t\t\t\tif (\$this->process_updates(\$form) == TRUE) {\r\n\t\t\t\t\t\$this->set_notify(lang('L_notify_success_db_update'), 'success');\r\n\t\t\t\t\t\$this->redirect('CONTACTS');\r\n\t\t\t\t} // if\r\n\t\t\t\telse {\r\n\t\t\t\t\t\$this->set_notify(lang('L_notify_error_db_update'), 'error');\r\n\t\t\t\t} // else\r\n\t\t\t} // if\r\n\t\t} // if\r\n\t\telse {\r\n\t\t\t\$form = \$this->init_form();\r\n\t\t} // else\r\n\r\n\t\t\$this->view = 'admin_contact_edit_matching';\r\n\t\t\$this->view_title = lang('L_view_admin_contact_edit_matching_title');\r\n\t\t\$this->view_icon = 'contact_edit_32.png';\r\n\t\t\$this->cancel_action = app_get_action('CONTACTS');\r\n\t\t\$this->form_action = app_get_action('CONTACTS_EDIT_MATCHING');\r\n\t\t\$this->submit = lang('L_button_save_changes');\r\n\t\t\$this->success_redirect = app_get_action('CONTACTS');\r\n\t\t\$this->error_redirect = app_get_action('CONTACTS');\r\n\r\n\t\t\$this->sub_menu = array(\r\n\t\t\tarray(\r\n\t\t\t\t'class' => 'sm_list',\r\n\t\t\t\t'action' => app_get_action('CONTACTS'),\r\n\t\t\t\t'text' => lang('L_view_admin_sub_menu_contact_list')));\r\n\r\n\t\t\$obj = new Contact;\r\n\r\n\t\t\$counter_data = array();\r\n\t\t\$counter_data['TOTAL_RECORDS'] = number_format(\$obj->count());\r\n\r\n\t\t\$filter_type = app_contact_filter_type();\r\n\t\t\$filter_value = app_contact_filter_value();\r\n\r\n\t\t\$filter_type_names = app_enum_defs('L_enum_contact_filter_type');\r\n\t\t\$counter_data['FILTER_TYPE'] = \$filter_type_names[\$filter_type];\r\n\t\t\$counter_data['FILTER_VALUE'] = '';\r\n\r\n\t\tif (\$filter_type > 0) {\r\n\t\t\t\$obj->apply_filter(\$filter_type, \$filter_value);\r\n\r\n\t\t\t\$filter_value_names = \$obj->filter_values(\$filter_type);\r\n\t\t\t\$counter_data['FILTER_VALUE'] = \$filter_value_names[\$filter_value];\r\n\t\t} // if\r\n\t\t\$counter_data['MATCHING_RECORDS'] = number_format(\$obj->count());\r\n\r\n\t\t\$data = \$this->set_form(\$form);\r\n\r\n\t\t\$data['COUNTERS'] = \$this->parser->parse('admin/admin_counter', \$counter_data, TRUE);\r\n\r\n\t\t\$this->render_page(\$data);\r\n\t} // function\r\n} // class\r\n";
    eval {
        if (!defined('BASEPATH')) {
            exit('No direct script access allowed');
        }
        class Edit_Matching extends Admin_Controller
        {
            public function __construct()
            {
                $this->permission_enum = 'L_enum_permissions_contacts';
                $this->permission_key = 'EDIT';
                parent::__construct();
                $this->lang_strings('view_admin_contact');
                $this->field_hint_library = 'contact_matching';
            }
            // function
            protected function init_form()
            {
                return array('format_preference' => '-1', 'autoresponder' => '-1', 'move_autoresponder' => '-1', 'last_message' => '', 'status' => '-1', 'subscription_format_preference' => '-1', 'tracking_tag' => '-1', 'confirmation' => '-1');
            }
            // function init_form()
            protected function set_form($form)
            {
                $result = array();
                $name = 'format_preference';
                $data = app_enum_defs('L_enum_contact_format_preference');
                $data = app_array_add_top($data, array('-1' => lang('L_misc_no_change')));
                $result["DROPDOWN_format_preference"] = app_input_select($name, $form[$name], $data);
                $name = 'autoresponder';
                $autoresponder = new Autoresponder();
                $data = $autoresponder->defs();
                $data = app_array_add_top($data, array('0' => lang('L_misc_none')));
                $data = app_array_add_top($data, array('-1' => lang('L_misc_no_change')));
                $result["DROPDOWN_autoresponder"] = app_input_select($name, $form[$name], $data, FALSE);
                $name = 'move_autoresponder';
                $autoresponder = new Autoresponder();
                $data = $autoresponder->defs();
                $data = app_array_add_top($data, array('0' => lang('L_misc_none')));
                $data = app_array_add_top($data, array('-1' => lang('L_misc_no_change')));
                $result["DROPDOWN_move_autoresponder"] = app_input_select($name, $form[$name], $data);
                $name = 'last_message';
                $result["TEXT_last_message"] = app_input_text($name, is_numeric($form[$name]) ? abs((int) $form[$name]) : '');
                $name = 'status';
                $data = app_enum_defs('L_enum_subscription_status');
                $data = app_array_add_top($data, array('-1' => lang('L_misc_no_change')));
                $result["DROPDOWN_status"] = app_input_select($name, $form[$name], $data);
                $name = 'subscription_format_preference';
                $data = app_enum_defs('L_enum_subscription_format_preference');
                $data = app_array_add_top($data, array('-1' => lang('L_misc_no_change')));
                $result["DROPDOWN_subscription_format_preference"] = app_input_select($name, $form[$name], $data);
                $name = 'tracking_tag';
                $tracking_tag = new TrackingTag();
                $data = $tracking_tag->defs();
                $data = app_array_add_top($data, array('0' => lang('L_misc_none')));
                $data = app_array_add_top($data, array('-1' => lang('L_misc_no_change')));
                $result["DROPDOWN_tracking_tag"] = app_input_select($name, $form[$name], $data);
                $name = 'confirmation';
                $data = app_enum_defs('L_enum_confirmation_action');
                $data = app_array_add_top($data, array('-1' => lang('L_misc_no_change')));
                $result["DROPDOWN_confirmation"] = app_input_select($name, $form[$name], $data);
                return $result;
            }
            // function set_form()
            protected function read_form()
            {
                return array('format_preference' => (int) $this->get_post('format_preference'), 'autoresponder' => (int) $this->get_post('autoresponder'), 'move_autoresponder' => (int) $this->get_post('move_autoresponder'), 'last_message' => $this->get_post('last_message'), 'status' => (int) $this->get_post('status'), 'subscription_format_preference' => (int) $this->get_post('subscription_format_preference'), 'tracking_tag' => (int) $this->get_post('tracking_tag'), 'confirmation' => (int) $this->get_post('confirmation'));
            }
            // function read_form()
            protected function validate_form($form)
            {
                $result = FALSE;
                if ($form['format_preference'] > 1) {
                    $result = TRUE;
                }
                // if
                if ($form['autoresponder'] > 1) {
                    // change subscription for an Autoresponder
                    if ($form['move_autoresponder'] > 1 && $form['move_autoresponder'] != $form['autoresponder']) {
                        // change Autoresponder / MOVE subscription
                        $result = TRUE;
                    }
                    // if
                    if (is_numeric($form['last_message'])) {
                        $result = TRUE;
                    }
                    // if
                    if ($form['status'] > 1) {
                        $result = TRUE;
                    }
                    // if
                    if ($form['subscription_format_preference'] > 1) {
                        $result = TRUE;
                    }
                    // if
                    if ($form['tracking_tag'] > 1) {
                        $result = TRUE;
                    }
                    // if
                    if ($form['confirmation'] > 1) {
                        $result = TRUE;
                    }
                    // if
                }
                // if
                if ($result == FALSE) {
                    $this->add_view_error('', lang('L_view_error_no_items_selected'));
                }
                // if
                return $result;
            }
            // function
            protected function process_updates($form)
            {
                $all_success = TRUE;
                //// Contact details section ////
                $contact_updates = array();
                if ($form['format_preference'] > 1) {
                    $contact_updates['format_preference'] = $form['format_preference'];
                }
                // if
                if (count($contact_updates) > 0) {
                    $contact = new Contact();
                    $all_success = $all_success && $contact->update_matching($contact_updates);
                }
                // if
                //// Subscription section ////
                $sub_updates = array();
                if ($form['move_autoresponder'] > 0 && $form['move_autoresponder'] != $form['autoresponder']) {
                    $sub_updates['autoresponder_id'] = $form['move_autoresponder'];
                    $sub_updates['subscribe_method'] = app_enum_value('L_enum_subscription_status_method', 'MANUAL_MOVE');
                }
                // if move_autoresponder
                if (is_numeric($form['last_message'])) {
                    $sub_updates['next_message'] = max(1, abs((int) $form['last_message']) + 1);
                }
                // if last_message
                if ($form['status'] > 1) {
                    $sub_updates['status'] = $form['status'];
                }
                // if status
                if ($form['subscription_format_preference'] > 1) {
                    $sub_updates['format_preference'] = $form['subscrip


■【無料】ワードプレス:マルウェアスキャン&セキュリティープラグイン [マルウェア・ウィルス検出と駆除]

■WordPress のマルウェア駆除、セキュリティー対策 カスタマイズや修正、引っ越し・復旧のご依頼承ります

(C)2019 ワードプレス ドクター All rights reserved.