IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZToJRm9ydHJhbiAyMDA4IChhbmQgb2xkZXI6IEZvcnRyYW4gMjAwMywgOTUsIDkwLCBhbmQgNzcpCiIgVmVyc2lvbjoJMTAyCiIgTGFzdCBDaGFuZ2U6CTIwMjAgQXByIDIwCiIgUGF0Y2hlZCBCeToJRWlzdWtlIEthd2FzaGltYQoiIE1haW50YWluZXI6CUFqaXQgSi4gVGhha2thciA8YWppdEB1bmIuY2E+OyA8aHR0cDovL3d3dzIudW5iLmNhL35haml0Lz4KIiBVc2FnZToJRm9yIGluc3RydWN0aW9ucywgZG8gOmhlbHAgZm9ydHJhbi1zeW50YXggZnJvbSBWaW0KIiBDcmVkaXRzOgoiICBWZXJzaW9uIDAuMSBmb3IgRm9ydHJhbiA5NSB3YXMgY3JlYXRlZCAoQXByaWwgMjAwMCkgYnkgQWppdCBUaGFra2FyIGZyb20gdGhlCiIgIEZvcnRyYW4gNzcgc3ludGF4IGZpbGUgYnkgTWFyaW8gRXVzZWJpbyBhbmQgUHJlYmVuIEd1bGRiZXJnLgoiICBTaW5jZSB0aGVuLCB1c2VmdWwgc3VnZ2VzdGlvbnMgYW5kIGNvbnRyaWJ1dGlvbnMgaGF2ZSBiZWVuIG1hZGUsIGluIG9yZGVyLCBieToKIiAgQW5kcmVqIFBhbmprb3YsIEJyYW0gTW9vbGVuYWFyLCBUaG9tYXMgT2xzZW4sIE1pY2hhZWwgU3Rlcm5iZXJnLCBDaHJpc3RpYW4gUmVpbGUsCiIgIFdhbHRlciBEaWV1ZG9ubuksIEFsZXhhbmRlciBXYWduZXIsIFJvbWFuIEJlcnRsZSwgQ2hhcmxlcyBSZW5kbGVtYW4sCiIgIEFuZHJldyBHcmlmZml0aHMsIEpvZSBLcmFobiwgSGVuZHJpayBNZXJ4LCBNYXR0IFRob21wc29uLCBKYW4gSGVybWFubiwKIiAgU3RlZmFubyBaYWdoaSwgVmlzaG51IFYuIEtyaXNobmFuLCBKdWRpY2HrbCBHcmFzc2V0LCBhbmQgVGFrdW1hIFlvc2hpZGEKCmlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgZmluaXNoCmVuZGlmCgpsZXQgczpjcG9fc2F2ZSA9ICZjcG8Kc2V0IGNwbyZ2aW0KCiIgQ2hvb3NlIGZvcnRyYW5fZGlhbGVjdCB1c2luZyB0aGUgcHJpb3JpdHk6CiIgc291cmNlIGZpbGUgZGlyZWN0aXZlID4gYnVmZmVyLWxvY2FsIHZhbHVlID4gZ2xvYmFsIHZhbHVlID4gZmlsZSBleHRlbnNpb24KIiBmaXJzdCB0cnkgdXNpbmcgZGlyZWN0aXZlIGluIGZpcnN0IHRocmVlIGxpbmVzIG9mIGZpbGUKbGV0IGI6Zm9ydHJhbl9yZXR5cGUgPSBnZXRsaW5lKDEpLiIgIi5nZXRsaW5lKDIpLiIgIi5nZXRsaW5lKDMpCmlmIGI6Zm9ydHJhbl9yZXR5cGUgPX4/ICdcPGZvcnRyYW5fZGlhbGVjdFxzKj1ccypGXD4nCiAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gIkYiCmVsc2VpZiBiOmZvcnRyYW5fcmV0eXBlID1+PyAnXDxmb3J0cmFuX2RpYWxlY3Rccyo9XHMqZjA4XD4nCiAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gImYwOCIKZWxzZWlmICFleGlzdHMoImI6Zm9ydHJhbl9kaWFsZWN0IikKICBpZiBleGlzdHMoImc6Zm9ydHJhbl9kaWFsZWN0IikgJiYgZzpmb3J0cmFuX2RpYWxlY3QgPX4jICdcPEZcfGYwOFw+JwogICAgIiB0cnkgZ2xvYmFsIHZhcmlhYmxlCiAgICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSBnOmZvcnRyYW5fZGlhbGVjdAogIGVsc2UgICAgICAgICAiIG5vdGhpbmcgZm91bmQsIHNvIHVzZSBkZWZhdWx0CiAgICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiZjA4IgogIGVuZGlmCmVuZGlmCnVubGV0ISBiOmZvcnRyYW5fcmV0eXBlCiIgbWFrZSBzdXJlIGJ1ZmZlci1sb2NhbCB2YWx1ZSBpcyBub3QgaW52YWxpZAppZiBiOmZvcnRyYW5fZGlhbGVjdCAhfiMgJ1w8Rlx8ZjA4XD4nCiAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gImYwOCIKZW5kaWYKCiIgQ2hvb3NlIGJldHdlZW4gZml4ZWQgYW5kIGZyZWUgc291cmNlIGZvcm0gaWYgdGhpcyBoYXNuJ3QgYmVlbiBkb25lIHlldAppZiAhZXhpc3RzKCJiOmZvcnRyYW5fZml4ZWRfc291cmNlIikKICBpZiBiOmZvcnRyYW5fZGlhbGVjdCA9PSAiRiIKICAgICIgRiByZXF1aXJlcyBmcmVlIHNvdXJjZSBmb3JtCiAgICBsZXQgYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9IDAKICBlbHNlaWYgZXhpc3RzKCJmb3J0cmFuX2ZyZWVfc291cmNlIikKICAgICIgVXNlciBndWFyYW50ZWVzIGZyZWUgc291cmNlIGZvcm0gZm9yIGFsbCBmb3J0cmFuIGZpbGVzCiAgICBsZXQgYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9IDAKICBlbHNlaWYgZXhpc3RzKCJmb3J0cmFuX2ZpeGVkX3NvdXJjZSIpCiAgICAiIFVzZXIgZ3VhcmFudGVlcyBmaXhlZCBzb3VyY2UgZm9ybSBmb3IgYWxsIGZvcnRyYW4gZmlsZXMKICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMQogIGVsc2VpZiBleHBhbmQoIiU6ZSIpID1+PyAnXmZcJSg5MFx8OTVcfDAzXHwwOFwpJCcKICAgICIgRnJlZS1mb3JtIGZpbGUgZXh0ZW5zaW9uIGRlZmF1bHRzIGFzIGluIEludGVsIGlmb3J0LCBnY2MoZ2ZvcnRyYW4pLCBOQUcsIFBhdGhzY2FsZSwgYW5kIENyYXkgY29tcGlsZXJzCiAgICBsZXQgYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9IDAKICBlbHNlaWYgZXhwYW5kKCIlOmUiKSA9fj8gJ15cJShmXHxmNzdcfGZvclwpJCcKICAgICIgRml4ZWQtZm9ybSBmaWxlIGV4dGVuc2lvbiBkZWZhdWx0cwogICAgbGV0IGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPSAxCiAgZWxzZQogICAgIiBNb2Rlcm4gZm9ydHJhbiBzdGlsbCBhbGxvd3MgYm90aCBmcmVlIGFuZCBmaXhlZCBzb3VyY2UgZm9ybS4KICAgICIgQXNzdW1lIGZpeGVkIHNvdXJjZSBmb3JtIHVubGVzcyBzaWducyBvZiBmcmVlIHNvdXJjZSBmb3JtCiAgICAiIGFyZSBkZXRlY3RlZCBpbiB0aGUgZmlyc3QgZml2ZSBjb2x1bW5zIG9mIHRoZSBmaXJzdCBzOmxtYXggbGluZXMuCiAgICAiIERldGVjdGlvbiBiZWNvbWVzIG1vcmUgYWNjdXJhdGUgYW5kIHRpbWUtY29uc3VtaW5nIGlmIG1vcmUgbGluZXMKICAgICIgYXJlIGNoZWNrZWQuIEluY3JlYXNlIHRoZSBsaW1pdCBiZWxvdyBpZiB5b3Uga2VlcCBsb3RzIG9mIGNvbW1lbnRzIGF0CiAgICAiIHRoZSB2ZXJ5IHRvcCBvZiBlYWNoIGZpbGUgYW5kIHlvdSBoYXZlIGEgZmFzdCBjb21wdXRlci4KICAgIGxldCBzOmxtYXggPSA1MDAKICAgIGlmICggczpsbWF4ID4gbGluZSgiJCIpICkKICAgICAgbGV0IHM6bG1heCA9IGxpbmUoIiQiKQogICAgZW5kaWYKICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMQogICAgbGV0IHM6bG49MQogICAgd2hpbGUgczpsbiA8PSBzOmxtYXgKICAgICAgbGV0IHM6dGVzdCA9IHN0cnBhcnQoZ2V0bGluZShzOmxuKSwwLDUpCiAgICAgIGlmIHM6dGVzdCAhfiAnXltDYypdJyAmJiBzOnRlc3QgIX4gJ14gKlshI10nICYmIHM6dGVzdCA9fiAnW14gMC05XHRdJyAmJiBzOnRlc3QgIX4gJ15bIDAtOV0qXHQnCiAgICAgICAgbGV0IGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPSAwCiAgICAgICAgYnJlYWsKICAgICAgZW5kaWYKICAgICAgbGV0IHM6bG4gPSBzOmxuICsgMQogICAgZW5kd2hpbGUKICAgIHVubGV0ISBzOmxtYXggczpsbiBzOnRlc3QKICBlbmRpZgplbmRpZgoKc3luIGNhc2UgaWdub3JlCgppZiBiOmZvcnRyYW5fZml4ZWRfc291cmNlID09IDEKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUJIl5cc1x7Nix9XHpzXGFcdypcemVccyo6IgplbHNlCiAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lCSJeXHMqXHpzXGFcdypcemVccyo6IgplbmRpZgppZiBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUgIlwoXDxlbmRccypkb1xzXCtcKVxAMTE8PVxhXHcqIgogIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmlmXHNcK1wpXEAxMTw9XGFcdyoiCiAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqc2VsZWN0XHNcK1wpXEAxNTw9XGFcdyoiCmVuZGlmCgpzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXD4iCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIlw8Y2hhcmFjdGVyXD4iCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIlw8Y29tcGxleFw+IgpzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGludGVnZXJcPiIKc3luIGtleXdvcmQgZm9ydHJhblR5cGUJCWludHJpbnNpYwpzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGltcGxpY2l0XD4iCnN5biBrZXl3b3JkIGZvcnRyYW5TdHJ1Y3R1cmUJZGltZW5zaW9uCnN5biBrZXl3b3JkIGZvcnRyYW5TdG9yYWdlQ2xhc3MJcGFyYW1ldGVyIHNhdmUKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPHN1YnJvdXRpbmVcPiIKc3luIGtleXdvcmQgZm9ydHJhbkNhbGwJCWNhbGwKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGZ1bmN0aW9uXD4iCnN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxwcm9ncmFtXD4iCnN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxibG9ja1w+IgpzeW4ga2V5d29yZCBmb3J0cmFuS2V5d29yZAlyZXR1cm4gc3RvcApzeW4ga2V5d29yZCBmb3J0cmFuQ29uZGl0aW9uYWwJZWxzZSB0aGVuCnN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8aWZcPiIKc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbE9iCSJcPGlmXHMqKC4qKVxzKlxkXCtccyosXHMqXGRcK1xzKixccypcZFwrXHMqJCIKc3luIG1hdGNoIGZvcnRyYW5SZXBlYXQJCSJcPGRvXD4iCgpzeW4ga2V5d29yZCBmb3J0cmFuVG9kbwkJY29udGFpbmVkIHRvZG8gZml4bWUKCiJDYXRjaCBlcnJvcnMgY2F1c2VkIGJ5IHRvbyBtYW55IHJpZ2h0IHBhcmVudGhlc2VzCnN5biByZWdpb24gZm9ydHJhblBhcmVuIHRyYW5zcGFyZW50IHN0YXJ0PSIoIiBlbmQ9IikiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUGFyZW5FcnJvcixAZm9ydHJhbkNvbW1lbnRHcm91cCxjSW5jbHVkZWQsQHNwZWxsCnN5biBtYXRjaCAgZm9ydHJhblBhcmVuRXJyb3IgICAiKSIKCnN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIlwuXHMqblw9ZXF2XHMqXC4iCnN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIlwuXHMqXChhbmRcfG9yXHxub3RcKVxzKlwuIgpzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSJcKCtcfC1cfC9cfFwqXCkiCnN5biBtYXRjaCBmb3J0cmFuVHlwZU9iCQkiXDxjaGFyYWN0ZXJccypcKiIKCnN5biBtYXRjaCBmb3J0cmFuQm9vbGVhbgkiXC5ccypcKHRydWVcfGZhbHNlXClccypcLiIKCnN5biBrZXl3b3JkIGZvcnRyYW5SZWFkV3JpdGUJYmFja3NwYWNlIGNsb3NlIGVuZGZpbGUgaW5xdWlyZSBvcGVuIHByaW50IHJlYWQgcmV3aW5kIHdyaXRlCgoiSWYgdGFicyBhcmUgYWxsb3dlZCB0aGVuIHRoZSBsZWZ0IG1hcmdpbiBjaGVja3MgZG8gbm90IHdvcmsKaWYgZXhpc3RzKCJmb3J0cmFuX2hhdmVfdGFicyIpCiAgc3luIG1hdGNoIGZvcnRyYW5UYWIJCSJcdCIgIHRyYW5zcGFyZW50CmVsc2UKICBzeW4gbWF0Y2ggZm9ydHJhblRhYgkJIlx0IgplbmRpZgoKc3luIGtleXdvcmQgZm9ydHJhbklPCQlhY2Nlc3MgYmxhbmsgZGlyZWN0IGV4aXN0IGZpbGUgZm10IGZvcm0gZm9ybWF0dGVkIGlvc3RhdCBuYW1lIG5hbWVkIG5leHRyZWMgbnVtYmVyIG9wZW5lZCByZWMgcmVjbCBzZXF1ZW50aWFsIHN0YXR1cyB1bmZvcm1hdHRlZCB1bml0CgpzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljUgkJYWxvZyBhbG9nMTAgYW1heDAgYW1heDEgYW1pbjAgYW1pbjEgYW1vZCBjYWJzIGNjb3MgY2V4cCBjbG9nIGNzaW4gY3NxcnQgZGFicyBkYWNvcyBkYXNpbiBkYXRhbiBkYXRhbjIgZGNvcyBkY29zaCBkZGltIGRleHAgZGludCBkbG9nIGRsb2cxMCBkbWF4MSBkbWluMSBkbW9kIGRuaW50IGRzaWduIGRzaW4gZHNpbmggZHNxcnQgZHRhbiBkdGFuaCBmbG9hdCBpYWJzIGlkaW0gaWRpbnQgaWRuaW50IGlmaXggaXNpZ24gbWF4MCBtYXgxIG1pbjAgbWluMSBzbmdsCgoiIEludHJpbnNpY3MgcHJvdmlkZWQgYnkgc29tZSB2ZW5kb3JzCnN5biBrZXl3b3JkIGZvcnRyYW5FeHRyYUludHJpbnNpYwlhbGdhbWEgY2RhYnMgY2Rjb3MgY2RleHAgY2Rsb2cgY2RzaW4gY2RzcXJ0IGNxYWJzIGNxY29zIGNxZXhwIGNxbG9nIGNxc2luIGNxc3FydCBkY21wbHggZGNvbmpnIGRlcmYgZGVyZmMgZGZsb2F0IGRnYW1tYSBkaW1hZyBkbGdhbWEgaXFpbnQgcWFicyBxYWNvcyBxYXNpbiBxYXRhbiBxYXRhbjIgcWNtcGx4IHFjb25qZyBxY29zIHFjb3NoIHFkaW0gcWVyZiBxZXJmYyBxZXhwIHFnYW1tYSBxaW1hZyBxbGdhbWEgcWxvZyBxbG9nMTAgcW1heDEgcW1pbjEgcW1vZCBxbmludCBxc2lnbiBxc2luIHFzaW5oIHFzcXJ0IHF0YW4gcXRhbmgKCnN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMJYWJzIGFjb3MgYWltYWcgYWludCBhbmludCBhc2luIGF0YW4gYXRhbjIgY2hhciBjbXBseCBjb25qZyBjb3MgY29zaCBleHAgaWNoYXIgaW5kZXggaW50IGxvZyBsb2cxMCBtYXggbWluIG5pbnQgc2lnbiBzaW4gc2luaCBzcXJ0IHRhbiB0YW5oCnN5biBtYXRjaCBmb3J0cmFuSW50cmluc2ljCSJcPGxlblxzKlsoLF0ibWU9cyszCnN5biBtYXRjaCBmb3J0cmFuSW50cmluc2ljCSJcPHJlYWxccyooIm1lPXMrNApzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGltcGxpY2l0XHNcK3JlYWwiCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIl5ccypyZWFsXD4iCnN5biBtYXRjaCBmb3J0cmFuSW50cmluc2ljCSJcPGxvZ2ljYWxccyooIm1lPXMrNwpzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGltcGxpY2l0XHNcK2xvZ2ljYWwiCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIl5ccypsb2dpY2FsXD4iCgoiTnVtYmVycyBvZiB2YXJpb3VzIHNvcnRzCiIgSW50ZWdlcnMKc3luIG1hdGNoIGZvcnRyYW5OdW1iZXIJZGlzcGxheSAiXDxcZFwrXChfXGFcdypcKVw9XD4iCiIgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCB3aXRob3V0IGEgZGVjaW1hbCBwb2ludApzeW4gbWF0Y2ggZm9ydHJhbkZsb2F0SWxsCWRpc3BsYXkJIlw8XGRcK1tkZXFdWy0rXVw9XGRcK1woX1xhXHcqXClcPVw+IgoiIGZsb2F0aW5nIHBvaW50IG51bWJlciwgc3RhcnRpbmcgd2l0aCBhIGRlY2ltYWwgcG9pbnQKc3luIG1hdGNoIGZvcnRyYW5GbG9hdElsbAlkaXNwbGF5CSJcLlxkXCtcKFtkZXFdWy0rXVw9XGRcK1wpXD1cKF9cYVx3KlwpXD1cPiIKIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIG5vIGRpZ2l0cyBhZnRlciBkZWNpbWFsCnN5biBtYXRjaCBmb3J0cmFuRmxvYXRJbGwJZGlzcGxheQkiXDxcZFwrXC5cKFtkZXFdWy0rXVw9XGRcK1wpXD1cKF9cYVx3KlwpXD1cPiIKIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIEQgb3IgUSBleHBvbmVudHMKc3luIG1hdGNoIGZvcnRyYW5GbG9hdElsbAlkaXNwbGF5CSJcPFxkXCtcLlxkXCtcKFtkcV1bLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+IgoiIGZsb2F0aW5nIHBvaW50IG51bWJlcgpzeW4gbWF0Y2ggZm9ydHJhbkZsb2F0CWRpc3BsYXkJIlw8XGRcK1wuXGRcK1woZVstK11cPVxkXCtcKVw9XChfXGFcdypcKVw9XD4iCiIgTnVtYmVycyBpbiBmb3JtYXRzCnN5biBtYXRjaCBmb3J0cmFuRm9ybWF0U3BlYwlkaXNwbGF5CSJcZCpmXGRcK1wuXGRcKyIKc3luIG1hdGNoIGZvcnRyYW5Gb3JtYXRTcGVjCWRpc3BsYXkJIlxkKmVbc25dXD1cZFwrXC5cZFwrXChlXGQrXD5cKVw9IgpzeW4gbWF0Y2ggZm9ydHJhbkZvcm1hdFNwZWMJZGlzcGxheQkiXGQqXChkXHxxXHxnXClcZFwrXC5cZFwrXChlXGQrXClcPSIKc3luIG1hdGNoIGZvcnRyYW5Gb3JtYXRTcGVjCWRpc3BsYXkJIlxkXCt4XD4iCiIgVGhlIG5leHQgbWF0Y2ggY2Fubm90IGJlIHVzZWQgYmVjYXVzZSBpdCB3b3VsZCBwaWNrIHVwIGlkZW50aWZpZXJzIGFzIHdlbGwKIiBzeW4gbWF0Y2ggZm9ydHJhbkZvcm1hdFNwZWMJZGlzcGxheQkiXDxcKGFcfGlcKVxkXCsiCgoiIE51bWJlcnMgYXMgbGFiZWxzCnN5biBtYXRjaCBmb3J0cmFuTGFiZWxOdW1iZXIJZGlzcGxheQkiXlxkXHsxLDV9XHMibWU9ZS0xCnN5biBtYXRjaCBmb3J0cmFuTGFiZWxOdW1iZXIJZGlzcGxheQkiXiBcZFx7MSw0fVxzIm1zPXMrMSxtZT1lLTEKc3luIG1hdGNoIGZvcnRyYW5MYWJlbE51bWJlcglkaXNwbGF5CSJeICBcZFx7MSwzfVxzIm1zPXMrMixtZT1lLTEKc3luIG1hdGNoIGZvcnRyYW5MYWJlbE51bWJlcglkaXNwbGF5CSJeICAgXGRcZFw9XHMibXM9cyszLG1lPWUtMQpzeW4gbWF0Y2ggZm9ydHJhbkxhYmVsTnVtYmVyCWRpc3BsYXkJIl4gICAgXGRccyJtcz1zKzQsbWU9ZS0xCgppZiBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKICAiIE51bWJlcnMgYXMgdGFyZ2V0cwogIHN5biBtYXRjaCBmb3J0cmFuVGFyZ2V0CWRpc3BsYXkJIlwoXDxpZlxzKiguXCspXHMqXClcQDw9XChcZFwrXHMqLFxzKlwpXHsyfVxkXCtcPiIKICBzeW4gbWF0Y2ggZm9ydHJhblRhcmdldAlkaXNwbGF5CSJcKFw8ZG9cc1wrXClcQDExPD1cZFwrXD4iCiAgc3luIG1hdGNoIGZvcnRyYW5UYXJnZXQJZGlzcGxheQkiXChcPGdvXHMqdG9ccyooXD1cKVxAMTE8PVwoXGRcK1xzKixccypcKSpcZFwrXD4iCmVuZGlmCgpzeW4ga2V5d29yZCBmb3J0cmFuVHlwZVIJZXh0ZXJuYWwKc3luIGtleXdvcmQgZm9ydHJhbklPUgkJZm9ybWF0CnN5biBtYXRjaCBmb3J0cmFuS2V5d29yZFIJIlw8Y29udGludWVcPiIKc3luIG1hdGNoIGZvcnRyYW5LZXl3b3JkCSJeXHMqXGRcK1xzXCtjb250aW51ZVw+IgpzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmQgIAkiXDxnb1xzKnRvXD4iCnN5biBtYXRjaCBmb3J0cmFuS2V5d29yZERlbCAgCSJcPGdvXHMqdG9cemVcc1wrLiosXHMqKC4qJCIKc3luIG1hdGNoIGZvcnRyYW5LZXl3b3JkT2IgIAkiXDxnb1xzKnRvXHplXHMqKFxkXCsuKiQiCnN5biByZWdpb24gZm9ydHJhblN0cmluZ1IJc3RhcnQ9KycrIGVuZD0rJysgY29udGFpbnM9Zm9ydHJhbkNvbnRpbnVlTWFyayxmb3J0cmFuTGVmdE1hcmdpbixmb3J0cmFuU2VyaWFsTnVtYmVyCnN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWNSCWRpbSBsZ2UgbGd0IGxsZSBsbHQgbW9kCnN5biBrZXl3b3JkIGZvcnRyYW5LZXl3b3JkRGVsCWFzc2lnbiBwYXVzZQoKc3luIG1hdGNoIGZvcnRyYW5UeXBlICAgICAgICAgICAiXDx0eXBlXD4iCnN5biBrZXl3b3JkIGZvcnRyYW5UeXBlCSAgICAgICAgbm9uZQoKc3luIGtleXdvcmQgZm9ydHJhblN0cnVjdHVyZQlwcml2YXRlIHB1YmxpYyBpbnRlbnQgb3B0aW9uYWwKc3luIGtleXdvcmQgZm9ydHJhblN0cnVjdHVyZQlwb2ludGVyIHRhcmdldCBhbGxvY2F0YWJsZQpzeW4ga2V5d29yZCBmb3J0cmFuU3RvcmFnZUNsYXNzCWluIG91dApzeW4gbWF0Y2ggZm9ydHJhblN0b3JhZ2VDbGFzcwkiXDxraW5kXHMqPSJtZT1zKzQKc3luIG1hdGNoIGZvcnRyYW5TdG9yYWdlQ2xhc3MJIlw8bGVuXHMqPSJtZT1zKzMKCnN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxtb2R1bGVcPiIKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPHN1Ym1vZHVsZVw+IgpzeW4ga2V5d29yZCBmb3J0cmFuVW5pdEhlYWRlcgl1c2Ugb25seSBjb250YWlucwpzeW4ga2V5d29yZCBmb3J0cmFuVW5pdEhlYWRlcglyZXN1bHQgb3BlcmF0b3IgYXNzaWdubWVudApzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8aW50ZXJmYWNlXD4iCnN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxyZWN1cnNpdmVcPiIKc3luIGtleXdvcmQgZm9ydHJhbktleXdvcmQJYWxsb2NhdGUgZGVhbGxvY2F0ZSBudWxsaWZ5IGN5Y2xlIGV4aXQKc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbAkiXDxzZWxlY3RcPiIKc3luIGtleXdvcmQgZm9ydHJhbkNvbmRpdGlvbmFsCWNhc2UgZGVmYXVsdCB3aGVyZSBlbHNld2hlcmUKCnN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIlwoXCg+XHw8XCk9XD1cfD09XHwvPVx8PVwpIgpzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSI9PiIKCnN5biByZWdpb24gZm9ydHJhblN0cmluZwlzdGFydD0rIisgZW5kPSsiKwljb250YWlucz1mb3J0cmFuTGVmdE1hcmdpbixmb3J0cmFuQ29udGludWVNYXJrLGZvcnRyYW5TZXJpYWxOdW1iZXIKc3luIGtleXdvcmQgZm9ydHJhbklPCQlwYWQgcG9zaXRpb24gYWN0aW9uIGRlbGltIHJlYWR3cml0ZQpzeW4ga2V5d29yZCBmb3J0cmFuSU8JCWVvciBhZHZhbmNlIG5tbAoKc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYwlhZGp1c3RsIGFkanVzdHIgYWxsIGFsbG9jYXRlZCBhbnkgYXNzb2NpYXRlZCBiaXRfc2l6ZSBidGVzdCBjZWlsaW5nIGNvdW50IGNzaGlmdCBkYXRlX2FuZF90aW1lIGRpZ2l0cyBkb3RfcHJvZHVjdCBlb3NoaWZ0IGVwc2lsb24gZXhwb25lbnQgZmxvb3IgZnJhY3Rpb24gaHVnZSBpYW5kIGliY2xyIGliaXRzIGlic2V0IGllb3IgaW9yIGlzaGZ0IGlzaGZ0YyBsYm91bmQgbGVuX3RyaW0gbWF0bXVsIG1heGV4cG9uZW50IG1heGxvYyBtYXh2YWwgbWVyZ2UgbWluZXhwb25lbnQgbWlubG9jIG1pbnZhbCBtb2R1bG8gbXZiaXRzIG5lYXJlc3QgcGFjayBwcmVjaXNpb24gcHJlc2VudCBwcm9kdWN0IHJhZGl4IHJhbmRvbV9udW1iZXIgcmFuZG9tX3NlZWQgcmFuZ2UgcmVwZWF0IHJlc2hhcGUgcnJzcGFjaW5nCnN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMJc2NhbGUgc2NhbiBzZWxlY3RlZF9pbnRfa2luZCBzZWxlY3RlZF9yZWFsX2tpbmQgc2V0X2V4cG9uZW50IHNoYXBlIHNpemUgc3BhY2luZyBzcHJlYWQgc3VtIHN5c3RlbV9jbG9jayB0aW55IHRyYW5zcG9zZSB0cmltIHVib3VuZCB1bnBhY2sgdmVyaWZ5CnN5biBtYXRjaCBmb3J0cmFuSW50cmluc2ljCQkiXDxub3RcPlwoXHMqXC5cKVxAISJtZT1zKzMKc3luIG1hdGNoIGZvcnRyYW5JbnRyaW5zaWMJIlw8a2luZFw+XHMqWygsXSJtZT1zKzQKCnN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqZnVuY3Rpb24iCnN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqaW50ZXJmYWNlIgpzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKm1vZHVsZSIKc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypzdWJtb2R1bGUiCnN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqcHJvZ3JhbSIKc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypzdWJyb3V0aW5lIgpzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKmJsb2NrIgpzeW4gbWF0Y2ggIGZvcnRyYW5SZXBlYXQJIlw8ZW5kXHMqZG8iCnN5biBtYXRjaCAgZm9ydHJhbkNvbmRpdGlvbmFsCSJcPGVuZFxzKndoZXJlIgpzeW4gbWF0Y2ggIGZvcnRyYW5Db25kaXRpb25hbAkiXDxzZWxlY3RccypjYXNlIgpzeW4gbWF0Y2ggIGZvcnRyYW5Db25kaXRpb25hbAkiXDxlbmRccypzZWxlY3QiCnN5biBtYXRjaCAgZm9ydHJhblR5cGUJIlw8ZW5kXHMqdHlwZSIKc3luIG1hdGNoICBmb3J0cmFuVHlwZQkiXDxpblxzKm91dCIKCnN5biBrZXl3b3JkIGZvcnRyYW5UeXBlCSAgICAgICAgcHJvY2VkdXJlCnN5biBtYXRjaCAgZm9ydHJhblR5cGUJICAgICAgICAiXDxtb2R1bGVcemVcc1wrcHJvY2VkdXJlXD4iCnN5biBrZXl3b3JkIGZvcnRyYW5JT1IJCW5hbWVsaXN0CnN5biBrZXl3b3JkIGZvcnRyYW5Db25kaXRpb25hbFIJd2hpbGUKc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY1IJYWNoYXIgaWFjaGFyIHRyYW5zZmVyCgpzeW4ga2V5d29yZCBmb3J0cmFuSW5jbHVkZQkJaW5jbHVkZQpzeW4ga2V5d29yZCBmb3J0cmFuU3RvcmFnZUNsYXNzUglzZXF1ZW5jZQoKc3luIG1hdGNoICAgZm9ydHJhbkNvbmRpdGlvbmFsCSJcPGVuZFxzKmlmIgpzeW4gbWF0Y2ggICBmb3J0cmFuSU8JCWNvbnRhaW5zPWZvcnRyYW5PcGVyYXRvciAiXDxlXChuZFx8cnJcKVxzKj1ccypcZFwrIgpzeW4gbWF0Y2ggICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZWxzZVxzKmlmIgoKc3luIGtleXdvcmQgZm9ydHJhblVuaXRIZWFkZXJPYgllbnRyeQpzeW4gbWF0Y2ggZm9ydHJhblR5cGVSCQlkaXNwbGF5ICJkb3VibGVcc1wrcHJlY2lzaW9uIgpzeW4gbWF0Y2ggZm9ydHJhblR5cGVSCQlkaXNwbGF5ICJkb3VibGVcc1wrY29tcGxleCIKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyUglkaXNwbGF5ICJibG9ja1xzXCtkYXRhIgpzeW4ga2V5d29yZCBmb3J0cmFuU3RvcmFnZUNsYXNzUgljb21tb24gZXF1aXZhbGVuY2UgZGF0YQpzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljUglkYmxlIGRwcm9kCnN5biBtYXRjaCAgIGZvcnRyYW5PcGVyYXRvclIJIlwuXHMqW2dsXVtldF1ccypcLiIKc3luIG1hdGNoICAgZm9ydHJhbk9wZXJhdG9yUgkiXC5ccypcKGVxXHxuZVwpXHMqXC4iCgpzeW4ga2V5d29yZCBmb3J0cmFuUmVwZWF0CQlmb3JhbGwKc3luIG1hdGNoIGZvcnRyYW5SZXBlYXQJCSJcPGVuZFxzKmZvcmFsbCIKc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYwludWxsIGNwdV90aW1lCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJCSJcPGVsZW1lbnRhbFw+IgpzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCQkiXDxwdXJlXD4iCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJCSJcPGltcHVyZVw+IgppZiBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUgIlwoXDxlbmRccypmb3JhbGxcc1wrXClcQDE1PD1cYVx3Klw+IgplbmRpZgoKaWYgYjpmb3J0cmFuX2RpYWxlY3QgPT0gImYwOCIKICAiIEYyMDAzCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgY29tbWFuZF9hcmd1bWVudF9jb3VudCBnZXRfY29tbWFuZCBnZXRfY29tbWFuZF9hcmd1bWVudCBnZXRfZW52aXJvbm1lbnRfdmFyaWFibGUgaXNfaW9zdGF0X2VuZCBpc19pb3N0YXRfZW9yIG1vdmVfYWxsb2MgbmV3X2xpbmUgc2VsZWN0ZWRfY2hhcl9raW5kIHNhbWVfdHlwZV9hcyBleHRlbmRzX3R5cGVfb2YKICAiIElTT19DX2JpbmRpbmcKICBzeW4ga2V5d29yZCBmb3J0cmFuQ29uc3RhbnQgICAgICAgICBjX251bGxfY2hhciBjX2FsZXJ0IGNfYmFja3NwYWNlIGNfZm9ybV9mZWVkIGNfbmV3X2xpbmUgY19jYXJyaWFnZV9yZXR1cm4gY19ob3Jpem9udGFsX3RhYiBjX3ZlcnRpY2FsX3RhYgogIHN5biBrZXl3b3JkIGZvcnRyYW5Db25zdGFudCAgICAgICAgIGNfaW50IGNfc2hvcnQgY19sb25nIGNfbG9uZ19sb25nIGNfc2lnbmVkX2NoYXIgY19zaXplX3QgY19pbnQ4X3QgY19pbnQxNl90IGNfaW50MzJfdCBjX2ludDY0X3QgY19pbnRfbGVhc3Q4X3QgY19pbnRfbGVhc3QxNl90IGNfaW50X2xlYXN0MzJfdCBjX2ludF9sZWFzdDY0X3QgY19pbnRfZmFzdDhfdCBjX2ludF9mYXN0MTZfdCBjX2ludF9mYXN0MzJfdCBjX2ludF9mYXN0NjRfdCBjX2ludG1heF90IENfaW50cHRyX3QgY19mbG9hdCBjX2RvdWJsZSBjX2xvbmdfZG91YmxlIGNfZmxvYXRfY29tcGxleCBjX2RvdWJsZV9jb21wbGV4IGNfbG9uZ19kb3VibGVfY29tcGxleCBjX2Jvb2wgY19jaGFyIGNfbnVsbF9wdHIgY19udWxsX2Z1bnB0cgogIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMgICAgICAgIGlzb19jX2JpbmRpbmcgY19sb2MgY19mdW5sb2MgY19hc3NvY2lhdGVkICBjX2ZfcG9pbnRlciBjX2ZfcHJvY3BvaW50ZXIKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBjX3B0ciBjX2Z1bnB0cgogICIgSVNPX0ZvcnRyYW5fZW52CiAgc3luIGtleXdvcmQgZm9ydHJhbkNvbnN0YW50ICAgICAgICAgaXNvX2ZvcnRyYW5fZW52IGNoYXJhY3Rlcl9zdG9yYWdlX3NpemUgZXJyb3JfdW5pdCBmaWxlX3N0b3JhZ2Vfc2l6ZSBpbnB1dF91bml0IGlvc3RhdF9lbmQgaW9zdGF0X2VvciBudW1lcmljX3N0b3JhZ2Vfc2l6ZSBvdXRwdXRfdW5pdAogICIgSUVFRV9hcml0aG1ldGljCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgaWVlZV9hcml0aG1ldGljIGllZWVfc3VwcG9ydF91bmRlcmZsb3dfY29udHJvbCBpZWVlX2dldF91bmRlcmZsb3dfbW9kZSBpZWVlX3NldF91bmRlcmZsb3dfbW9kZQoKICBzeW4ga2V5d29yZCBmb3J0cmFuUmVhZFdyaXRlCWZsdXNoIHdhaXQKICBzeW4ga2V5d29yZCBmb3J0cmFuSU8gCSAgICAgIGRlY2ltYWwgcm91bmQgaW9tc2cKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBhc3luY2hyb25vdXMgbm9wYXNzIG5vbl9vdmVycmlkYWJsZSBwYXNzIHByb3RlY3RlZCB2b2xhdGlsZSBleHRlbmRzIGltcG9ydAogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlICAgICAgICAgICAgIG5vbl9pbnRyaW5zaWMgdmFsdWUgYmluZCBkZWZlcnJlZCBnZW5lcmljIGZpbmFsIGVudW1lcmF0b3IKICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxhYnN0cmFjdFw+IgogIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGNsYXNzXD4iCiAgc3luIG1hdGNoIGZvcnRyYW5UeXBlICAgICAgICAgICAgICAgIlw8YXNzb2NpYXRlXD4iCiAgc3luIG1hdGNoIGZvcnRyYW5UeXBlICAgICAgICAgICAgICAgIlw8ZW5kXHMqYXNzb2NpYXRlIgogIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGVudW1ccyosXHMqYmluZFxzKihccypjXHMqKSIKICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxlbmRccyplbnVtIgogIHN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8c2VsZWN0XHMqdHlwZSIKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbmRpdGlvbmFsICAgICAgICAiXDx0eXBlXHMqaXNcPiIKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbmRpdGlvbmFsICAgICAgICAiXDxjbGFzc1xzKmlzXD4iCiAgc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyICAgICAgICAgIlw8YWJzdHJhY3RccyppbnRlcmZhY2VcPiIKICBzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yICAgICAgICAgICAiXChbXHxdXCkiCgogICIgRjIwMDgKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljICAgICAgICBhY29zaCBhc2luaCBhdGFuaCBiZXNzZWxfajAgYmVzc2VsX2oxIGJlc3NlbF9qbiBiZXNzZWxfeTAgYmVzc2VsX3kxIGJlc3NlbF95biBlcmYgZXJmYyBlcmZjX3NjYWxlZCBnYW1tYSBsb2dfZ2FtbWEgaHlwb3Qgbm9ybTIKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljICAgICAgICBhdG9taWNfZGVmaW5lIGF0b21pY19yZWYgZXhlY3V0ZV9jb21tYW5kX2xpbmUgbGVhZHogdHJhaWx6IHN0b3JhZ2Vfc2l6ZSBtZXJnZV9iaXRzCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgYmdlIGJndCBibGUgYmx0IGRzaGlmdGwgZHNoaWZ0ciBmaW5kbG9jIGlhbGwgaWFueSBpcGFyaXR5IGltYWdlX2luZGV4IGxjb2JvdW5kIHVjb2JvdW5kIG1hc2tsIG1hc2tyIG51bV9pbWFnZXMgcGFyaXR5IHBvcGNudCBwb3BwYXIgc2hpZnRhIHNoaWZ0bCBzaGlmdHIgdGhpc19pbWFnZQogIHN5biBrZXl3b3JkIGZvcnRyYW5JTyAgICAgICAgICAgICAgIG5ld3VuaXQKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBjb250aWd1b3VzCiAgc3luIGtleXdvcmQgZm9ydHJhblJlcGVhdCAgICAgICAgICAgY29uY3VycmVudAoKIiBDVURBIGZvcnRyYW4KICBzeW4gbWF0Y2ggZm9ydHJhblR5cGVDVURBICAgICAgICAgICAiXDxhdHRyaWJ1dGVzXD4iCiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGVDVURBICAgICAgICAgaG9zdCBnbG9iYWwgZGV2aWNlIHZhbHVlCiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGVDVURBICAgICAgICAgc2hhcmVkIGNvbnN0YW50IHBpbm5lZCB0ZXh0dXJlCiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGVDVURBICAgICAgICAgZGltMSBkaW0yIGRpbTMgZGltNAogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGN1ZGFkZXZpY2Vwcm9wIGN1ZGFfY291bnRfa2luZCBjdWRhX3N0cmVhbV9raW5kCiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGVDVURBICAgICAgICAgY3VkYUV2ZW50IGN1ZGFGdW5jQXR0cmlidXRlcyBjdWRhQXJyYXlQdHIKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBjdWRhU3ltYm9sIGN1ZGFDaGFubmVsRm9ybWF0RGVzYyBjdWRhUGl0Y2hlZFB0cgogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGN1ZGFFeHRlbnQgY3VkYU1lbWNweTNEUGFybXMKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBjdWRhRnVuY0NhY2hlUHJlZmVyTm9uZSBjdWRhRnVuY0NhY2hlUHJlZmVyU2hhcmVkCiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGVDVURBICAgICAgICAgY3VkYUZ1bmNDYWNoZVByZWZlckwxIGN1ZGFMaW1pdFN0YWNrU2l6ZQogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGN1ZGFMaW1pdFByaW50ZlNpemUgY3VkYUxpbWl0TWFsbG9jSGVhcFNpemUKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBjdWRhU2hhcmVkTWVtQmFua1NpemVEZWZhdWx0IGN1ZGFTaGFyZWRNZW1CYW5rU2l6ZUZvdXJCeXRlIGN1ZGFTaGFyZWRNZW1CYW5rU2l6ZUVpZ2h0Qnl0ZQogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGN1ZGFFdmVudERlZmF1bHQgY3VkYUV2ZW50QmxvY2tpbmdTeW5jIGN1ZGFFdmVudERpc2FibGVUaW1pbmcKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBjdWRhTWVtY3B5SG9zdFRvRGV2aWNlIGN1ZGFNZW1jcHlEZXZpY2VUb0hvc3QKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBjdWRhTWVtY3B5RGV2aWNlVG9EZXZpY2UKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBjdWRhRXJyb3JOb3RSZWFkeSBjdWRhU3VjY2VzcyBjdWRhRXJyb3JJbnZhbGlkVmFsdWUKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBjX2RldnB0cgoKICBzeW4gbWF0Y2ggZm9ydHJhblN0cmluZ0NVREEgICAgICAgICAiYmxvY2tpZHglW3h5el0iCiAgc3luIG1hdGNoIGZvcnRyYW5TdHJpbmdDVURBICAgICAgICAgImJsb2NrZGltJVt4eXpdIgogIHN5biBtYXRjaCBmb3J0cmFuU3RyaW5nQ1VEQSAgICAgICAgICJncmlkZGltJVt4eXpdIgogIHN5biBtYXRjaCBmb3J0cmFuU3RyaW5nQ1VEQSAgICAgICAgICJ0aHJlYWRpZHglW3h5el0iCgogIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWNDVURBICAgIHdhcnBzaXplIHN5bmN0aHJlYWRzIHN5bmN0aHJlYWRzX2FuZCBzeW5jdGhyZWFkc19jb3VudCBzeW5jdGhyZWFkc19vciB0aHJlYWRmZW5jZSB0aHJlYWRmZW5jZV9ibG9jayB0aHJlYWRmZW5jZV9zeXN0ZW0gZ3B1X3RpbWUgYWxsdGhyZWFkcyBhbnl0aHJlYWQgYmFsbG90CiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY0NVREEgICAgYXRvbWljYWRkIGF0b21pY3N1YiBhdG9taWNtYXggYXRvbWljbWluIGF0b21pY2FuZCBhdG9taWNvciBhdG9taWN4b3IgYXRvbWljZXhjaCBhdG9taWNpbmMgYXRvbWljZGVjIGF0b21pY2NhcyBzaXplb2YgX19zaGZsIF9fc2hmbF91cCBfX3NoZmxfZG93biBfX3NoZmxfeG9yCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY0NVREEgICAgY3VkYUNob29zZURldmljZSBjdWRhRGV2aWNlR2V0Q2FjaGVDb25maWcgY3VkYURldmljZUdldExpbWl0IGN1ZGFEZXZpY2VHZXRTaGFyZWRNZW1Db25maWcgY3VkYURldmljZVJlc2V0IGN1ZGFEZXZpY2VTZXRDYWNoZUNvbmZpZyBjdWRhRGV2aWNlU2V0TGltaXQgY3VkYURldmljZVNldFNoYXJlZE1lbUNvbmZpZyBjdWRhRGV2aWNlU3luY2hyb25pemUgY3VkYUdldERldmljZSBjdWRhR2V0RGV2aWNlQ291bnQgY3VkYUdldERldmljZVByb3BlcnRpZXMgY3VkYVNldERldmljZSBjdWRhU2V0RGV2aWNlRmxhZ3MgY3VkYVNldFZhbGlkRGV2aWNlcwogIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWNDVURBICAgIGN1ZGFUaHJlYWRFeGl0IGN1ZGFUaHJlYWRTeW5jaHJvbml6ZSBjdWRhR2V0TGFzdEVycm9yIGN1ZGFHZXRFcnJvclN0cmluZyBjdWRhUGVla0F0TGFzdEVycm9yIGN1ZGFTdHJlYW1DcmVhdGUgY3VkYVN0cmVhbURlc3Ryb3kgY3VkYVN0cmVhbVF1ZXJ5IGN1ZGFTdHJlYW1TeW5jaHJvbml6ZSBjdWRhU3RyZWFtV2FpdEV2ZW50IGN1ZGFFdmVudENyZWF0ZSBjdWRhRXZlbnRDcmVhdGVXaXRoRmxhZ3MgY3VkYUV2ZW50RGVzdHJveSBjdWRhRXZlbnRFbGFwc2VkVGltZSBjdWRhRXZlbnRRdWVyeSBjdWRhRXZlbnRSZWNvcmQgY3VkYUV2ZW50U3luY2hyb25pemUKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljQ1VEQSAgICBjdWRhRnVuY0dldEF0dHJpYnV0ZXMgY3VkYUZ1bmNTZXRDYWNoZUNvbmZpZyBjdWRhRnVuY1NldFNoYXJlZE1lbUNvbmZpZyBjdWRhU2V0RG91YmxlRm9yRGV2aWNlIGN1ZGFTZXREb3VibGVGb3JIb3N0IGN1ZGFGcmVlIGN1ZGFGcmVlQXJyYXkgY3VkYUZyZWVIb3N0IGN1ZGFHZXRTeW1ib2xBZGRyZXNzIGN1ZGFHZXRTeW1ib2xTaXplCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY0NVREEgICAgY3VkYUhvc3RBbGxvYyBjdWRhSG9zdEdldERldmljZVBvaW50ZXIgY3VkYUhvc3RHZXRGbGFncyBjdWRhSG9zdFJlZ2lzdGVyIGN1ZGFIb3N0VW5yZWdpc3RlciBjdWRhTWFsbG9jIGN1ZGFNYWxsb2NBcnJheSBjdWRhTWFsbG9jSG9zdCBjdWRhTWFsbG9jUGl0Y2ggY3VkYU1hbGxvYzNEIGN1ZGFNYWxsb2MzREFycmF5CiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY0NVREEgICAgY3VkYU1lbWNweSBjdWRhTWVtY3B5QXJyYXl0b0FycmF5IGN1ZGFNZW1jcHlBc3luYyBjdWRhTWVtY3B5RnJvbUFycmF5IGN1ZGFNZW1jcHlGcm9tU3ltYm9sIGN1ZGFNZW1jcHlGcm9tU3ltYm9sQXN5bmMgY3VkYU1lbWNweVBlZXIgY3VkYU1lbWNweVBlZXJBc3luYyBjdWRhTWVtY3B5VG9BcnJheSBjdWRhTWVtY3B5VG9TeW1ib2wgY3VkYU1lbWNweVRvU3ltYm9sQXN5bmMgY3VkYU1lbWNweTJEIGN1ZGFNZW1jcHkyREFycmF5VG9BcnJheSBjdWRhTWVtY3B5MkRBc3luYyBjdWRhTWVtY3B5MkRGcm9tQXJyYXkgY3VkYU1lbWNweTJEVG9BcnJheSBjdWRhTWVtY3B5M0QgY3VkYU1lbWNweTNEQXN5bmMKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljQ1VEQSAgICBjdWRhTWVtR2V0SW5mbyBjdWRhTWVtc2V0IGN1ZGFNZW1zZXQyRCBjdWRhTWVtc2V0M0QgY3VkYURldmljZUNhbkFjY2Vzc1BlZXIgY3VkYURldmljZURpc2FibGVQZWVyQWNjZXNzIGN1ZGFEZXZpY2VFbmFibGVQZWVyQWNjZXNzIGN1ZGFQb2ludGVyR2V0QXR0cmlidXRlcyBjdWRhRHJpdmVyR2V0VmVyc2lvbiBjdWRhUnVudGltZUdldFZlcnNpb24KCiAgc3luIHJlZ2lvbiBub25lIG1hdGNoZ3JvdXA9Zm9ydHJhblR5cGUgc3RhcnQ9Ijw8PCIgZW5kPSI+Pj4iIGNvbnRhaW5zPUFMTEJVVCxub25lCmVuZGlmCgpzeW4gY2x1c3RlciBmb3J0cmFuQ29tbWVudEdyb3VwIGNvbnRhaW5zPWZvcnRyYW5Ub2RvCgppZiAoYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9PSAxKQogIGlmICFleGlzdHMoImZvcnRyYW5faGF2ZV90YWJzIikKICAgICJGbGFnIGl0ZW1zIGJleW9uZCBjb2x1bW4gNzIKICAgIHN5biBtYXRjaCBmb3J0cmFuU2VyaWFsTnVtYmVyCWV4Y2x1ZGVubCAiXi5cezczLH0kImxjPTcyCiAgICAiRmxhZyBsZWZ0IG1hcmdpbiBlcnJvcnMKICAgIHN5biBtYXRjaCBmb3J0cmFuTGFiZWxFcnJvcgkiXi5cey0sNH1bXjAtOSBdIiBjb250YWlucz1mb3J0cmFuVGFiCiAgICBzeW4gbWF0Y2ggZm9ydHJhbkxhYmVsRXJyb3IJIl4uXHs0fVxkXFMiCiAgZW5kaWYKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbW1lbnQJCWV4Y2x1ZGVubCAiXlshYypdLiokIiBjb250YWlucz1AZm9ydHJhbkNvbW1lbnRHcm91cCxAc3BlbGwKICBzeW4gbWF0Y2ggZm9ydHJhbkxlZnRNYXJnaW4JCXRyYW5zcGFyZW50ICJeIFx7NX0iCiAgc3luIG1hdGNoIGZvcnRyYW5Db250aW51ZU1hcmsJCWRpc3BsYXkgIl4uXHs1fVxTImxjPTUKZWxzZQogIHN5biBtYXRjaCBmb3J0cmFuQ29udGludWVNYXJrCQlkaXNwbGF5ICImIgplbmRpZgoKc3luIG1hdGNoIGZvcnRyYW5Db21tZW50CWV4Y2x1ZGVubCAiIS4qJCIgY29udGFpbnM9QGZvcnRyYW5Db21tZW50R3JvdXAsQHNwZWxsCnN5biBtYXRjaCBmb3J0cmFuT3Blbk1QCQlleGNsdWRlbmwgCQkiXlxzKiFcJFwoT01QXClcPSZcPVxzLiokIgoKImNwcCBpcyBvZnRlbiB1c2VkIHdpdGggRm9ydHJhbgpzeW4gbWF0Y2gJY1ByZVByb2MJCSJeXHMqI1xzKlwoZGVmaW5lXHxpZmRlZlwpXD4uKiIKc3luIG1hdGNoCWNQcmVQcm9jCQkiXlxzKiNccypcKGVsaWZcfGlmXClcPi4qIgpzeW4gbWF0Y2gJY1ByZVByb2MJCSJeXHMqI1xzKlwoaWZuZGVmXHx1bmRlZlwpXD4uKiIKc3luIG1hdGNoCWNQcmVDb25kaXQJCSJeXHMqI1xzKlwoZWxzZVx8ZW5kaWZcKVw+LioiCnN5biByZWdpb24JY0luY2x1ZGVkCWNvbnRhaW5lZCBzdGFydD0rIlteKCJdKyBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisgY29udGFpbnM9Zm9ydHJhbkxlZnRNYXJnaW4sZm9ydHJhbkNvbnRpbnVlTWFyayxmb3J0cmFuU2VyaWFsTnVtYmVyCiJzeW4gcmVnaW9uCWNJbmNsdWRlZAkgICAgICAgIGNvbnRhaW5lZCBzdGFydD0rIlteKCJdKyBza2lwPStcXFxcXHxcXCIrIGVuZD0rIisKc3luIG1hdGNoCWNJbmNsdWRlZAkJY29udGFpbmVkICI8W14+XSo+IgpzeW4gbWF0Y2gJY0luY2x1ZGUJCSJeXHMqI1xzKmluY2x1ZGVcPlxzKlsiPF0iIGNvbnRhaW5zPWNJbmNsdWRlZAoKIlN5bmNocm9uaXNpbmcgbGltaXRzIGFzc3VtZSB0aGF0IGNvbW1lbnQgYW5kIGNvbnRpbnVhdGlvbiBsaW5lcyBhcmUgbm90IG1peGVkCmlmIGV4aXN0cygiZm9ydHJhbl9mb2xkIikgfHwgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCiAgc3luIHN5bmMgZnJvbXN0YXJ0CmVsc2VpZiAoYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9PSAwKQogIHN5biBzeW5jIGxpbmVjb250ICImIiBtaW5saW5lcz0zMAplbHNlCiAgc3luIHN5bmMgbWlubGluZXM9MzAKZW5kaWYKCmlmIGV4aXN0cygiZm9ydHJhbl9mb2xkIikKCiAgaWYgKGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMSkKICAgIHN5biByZWdpb24gZm9ydHJhblByb2dyYW0gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqcHJvZ3JhbVxzXCtceihcYVx3KlwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwocHJvZ3JhbVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhbk1vZHVsZQogICAgc3luIHJlZ2lvbiBmb3J0cmFuTW9kdWxlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXlxzKnN1Ym1vZHVsZVxzXCsoXGFcdypccypcKDpcYVx3KlxzKlwpKilccypcelwoXGFcdypcKSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKHN1Ym1vZHVsZVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZQogICAgc3luIHJlZ2lvbiBmb3J0cmFuTW9kdWxlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXlxzKm1vZHVsZVxzXCtcKHByb2NlZHVyZVwpXEAhXHooXGFcdypcKSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKG1vZHVsZVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0KICAgIHN5biByZWdpb24gZm9ydHJhbkZ1bmN0aW9uIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGVsZW1lbnRhbCBcfHB1cmUgXHxpbXB1cmUgXHxtb2R1bGUgXHxyZWN1cnNpdmUgXClcPVxzKlwoXChcKHJlYWwgXHxpbnRlZ2VyIFx8bG9naWNhbCBcfGNvbXBsZXggXHxkb3VibGUgXHMqcHJlY2lzaW9uIFwpXHMqXCgoXChccypraW5kXHMqPVwpXD1ccypcd1wrXHMqKVwpXD1cKVx8dHlwZVxzXCsoXHMqXHdcK1xzKikgXHxjaGFyYWN0ZXIgXCgoXChccypsZW5ccyo9XClcPVxzKlxkXCtccyopXHwoXChccypraW5kXHMqPVwpXD1ccypcd1wrXHMqKVwpXD1cKVw9XHMqZnVuY3Rpb25cc1wrXHooXGFcdypcKSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfGZ1bmN0aW9uXChcc1wrXHoxXD5cKVw9XCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5TdWJyb3V0aW5lIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGVsZW1lbnRhbCBcfHB1cmUgXHxpbXB1cmUgXHxtb2R1bGUgXHxyZWN1cnNpdmUgXClcPVxzKnN1YnJvdXRpbmVcc1wrXHooXGFcdypcKSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfHN1YnJvdXRpbmVcKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUKICAgIHN5biByZWdpb24gZm9ydHJhbkJsb2NrRGF0YSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Ilw8YmxvY2tccypkYXRhXChcc1wrXHooXGFcdypcKVwpXD0iIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxibG9ja1xzKmRhdGFcKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jawogICAgc3luIHJlZ2lvbiBmb3J0cmFuQXNzb2NpYXRlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXlxzKlw8YXNzb2NpYXRlXHNcKyIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyphc3NvY2lhdGUiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW5TdWJyb3V0aW5lLGZvcnRyYW5GdW5jdGlvbgogICAgc3luIHJlZ2lvbiBmb3J0cmFuSW50ZXJmYWNlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGFic3RyYWN0IFwpXD1ccyppbnRlcmZhY2VcPiIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyppbnRlcmZhY2VcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhbjc3TG9vcCxmb3J0cmFuQ2FzZSxmb3J0cmFuOTBMb29wLGZvcnRyYW5JZkJsb2NrCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5UeXBlRGVmIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccyp0eXBlXHMqXCgsXHMqXChwdWJsaWNcfHByaXZhdGVcfGFic3RyYWN0XClcKVw9XHMqOjoiIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqdHlwZVw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuNzdMb29wLGZvcnRyYW5DYXNlLGZvcnRyYW45MExvb3AsZm9ydHJhbklmQmxvY2ssZm9ydHJhbkludGVyZmFjZQogIGVsc2UKICAgIHN5biByZWdpb24gZm9ydHJhblByb2dyYW0gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqcHJvZ3JhbVxzXCtceihcYVx3KlwpIiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKHByb2dyYW1cKFxzXCtcejFcPlwpXD1cfCRcKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Nb2R1bGUKICAgIHN5biByZWdpb24gZm9ydHJhbk1vZHVsZSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Il5ccypzdWJtb2R1bGVcc1wrKFxhXHcqXHMqXCg6XGFcdypccypcKSopXHMqXHpcKFxhXHcqXCkiIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwoc3VibW9kdWxlXChcc1wrXHoxXD5cKVw9XHwkXCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5Nb2R1bGUgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqbW9kdWxlXHNcK1wocHJvY2VkdXJlXClcQCFceihcYVx3KlwpIiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKG1vZHVsZVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0KICAgIHN5biByZWdpb24gZm9ydHJhbkZ1bmN0aW9uIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGVsZW1lbnRhbCBcfHB1cmUgXHxpbXB1cmUgXHxtb2R1bGUgXHxyZWN1cnNpdmUgXClcPVxzKlwoXChcKHJlYWwgXHxpbnRlZ2VyIFx8bG9naWNhbCBcfGNvbXBsZXggXHxkb3VibGUgXHMqcHJlY2lzaW9uIFwpXHMqXCgoXChccypraW5kXHMqPVwpXD1ccypcd1wrXHMqKVwpXD1cKVx8dHlwZVxzXCsoXHMqXHdcK1xzKikgXHxjaGFyYWN0ZXIgXCgoXChccypsZW5ccyo9XClcPVxzKlxkXCtccyopXHwoXChccypraW5kXHMqPVwpXD1ccypcd1wrXHMqKVwpXD1cKVw9XHMqZnVuY3Rpb25cc1wrXHooXGFcdypcKSIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxmdW5jdGlvblwoXHNcK1x6MVw+XClcPVwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZQogICAgc3luIHJlZ2lvbiBmb3J0cmFuU3Vicm91dGluZSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJeXHMqXChlbGVtZW50YWwgXHxwdXJlIFx8aW1wdXJlIFx8bW9kdWxlIFx8cmVjdXJzaXZlIFwpXD1ccypzdWJyb3V0aW5lXHNcK1x6KFxhXHcqXCkiIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwoJFx8c3Vicm91dGluZVwoXHNcK1x6MVw+XClcPVwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZQogICAgc3luIHJlZ2lvbiBmb3J0cmFuQmxvY2tEYXRhIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXDxibG9ja1xzKmRhdGFcKFxzXCtceihcYVx3KlwpXClcPSIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxibG9ja1xzKmRhdGFcKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jawogICAgc3luIHJlZ2lvbiBmb3J0cmFuQXNzb2NpYXRlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXlxzKlw8YXNzb2NpYXRlXHNcKyIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqYXNzb2NpYXRlIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24KICAgIHN5biByZWdpb24gZm9ydHJhbkludGVyZmFjZSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJeXHMqXChhYnN0cmFjdCBcKVw9XHMqaW50ZXJmYWNlXD4iIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKmludGVyZmFjZVw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuNzdMb29wLGZvcnRyYW5DYXNlLGZvcnRyYW45MExvb3AsZm9ydHJhbklmQmxvY2sKICAgIHN5biByZWdpb24gZm9ydHJhblR5cGVEZWYgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKnR5cGVccypcKCxccypcKHB1YmxpY1x8cHJpdmF0ZVx8YWJzdHJhY3RcKVwpXD1ccyo6OiIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqdHlwZVw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuNzdMb29wLGZvcnRyYW5DYXNlLGZvcnRyYW45MExvb3AsZm9ydHJhbklmQmxvY2ssZm9ydHJhbkludGVyZmFjZQogIGVuZGlmCgogIGlmIGV4aXN0cygiZm9ydHJhbl9mb2xkX2NvbmRpdGlvbmFscyIpCiAgICBpZiAoYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9PSAxKQogICAgICBzeW4gcmVnaW9uIGZvcnRyYW43N0xvb3AgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJcPGRvXHNcK1x6KFxkXCtcKSIgZW5kPSJeXHMqXHoxXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuVW5pdEhlYWRlcixmb3J0cmFuU3RydWN0dXJlLGZvcnRyYW5TdG9yYWdlQ2xhc3MsZm9ydHJhblR5cGUsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbkJsb2NrRGF0YQogICAgICBzeW4gcmVnaW9uIGZvcnRyYW45MExvb3AgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXChcPGVuZFxzXCtcKVxAPCFcPGRvXChcc1wrXGFcfFxzKiRcKSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypkb1w+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblVuaXRIZWFkZXIsZm9ydHJhblN0cnVjdHVyZSxmb3J0cmFuU3RvcmFnZUNsYXNzLGZvcnRyYW5UeXBlLGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW5CbG9ja0RhdGEKICAgICAgc3luIHJlZ2lvbiBmb3J0cmFuSWZCbG9jayB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJcKFw8ZVwobmRcfGxzZVwpXHNcK1wpXEA8IVw8aWZccyooLlwrKVxzKnRoZW5cPiIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZW5kPSJcPGVuZFxzKmlmXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuVW5pdEhlYWRlcixmb3J0cmFuU3RydWN0dXJlLGZvcnRyYW5TdG9yYWdlQ2xhc3MsZm9ydHJhblR5cGUsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbkJsb2NrRGF0YQogICAgICBzeW4gcmVnaW9uIGZvcnRyYW5DYXNlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Ilw8c2VsZWN0XHMqXChjYXNlXHx0eXBlXClcPiIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZW5kPSJcPGVuZFxzKnNlbGVjdFw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblVuaXRIZWFkZXIsZm9ydHJhblN0cnVjdHVyZSxmb3J0cmFuU3RvcmFnZUNsYXNzLGZvcnRyYW5UeXBlLGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW5CbG9ja0RhdGEKICAgIGVsc2UKICAgICAgc3luIHJlZ2lvbiBmb3J0cmFuNzdMb29wIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXDxkb1xzXCtceihcZFwrXCkiIGVuZD0iXlxzKlx6MVw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblVuaXRIZWFkZXIsZm9ydHJhblN0cnVjdHVyZSxmb3J0cmFuU3RvcmFnZUNsYXNzLGZvcnRyYW5UeXBlLGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW5CbG9ja0RhdGEKICAgICAgc3luIHJlZ2lvbiBmb3J0cmFuOTBMb29wIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9IlwoXDxlbmRcc1wrXClcQDwhXDxkb1woXHNcK1xhXHxccyokXCkiIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKmRvXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuVW5pdEhlYWRlcixmb3J0cmFuU3RydWN0dXJlLGZvcnRyYW5TdG9yYWdlQ2xhc3MsZm9ydHJhblR5cGUsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbkJsb2NrRGF0YQogICAgICBzeW4gcmVnaW9uIGZvcnRyYW5JZkJsb2NrIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9IlwoXDxlXChuZFx8bHNlXClcc1wrXClcQDwhXDxpZlxzKihcKC5cfCZccypcblwpXCspXChcc1x8JlxzKlxuXCkqdGhlblw+IiBza2lwPSJeXHMqWyEjXS4qJCIgZW5kPSJcPGVuZFxzKmlmXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuVW5pdEhlYWRlcixmb3J0cmFuU3RydWN0dXJlLGZvcnRyYW5TdG9yYWdlQ2xhc3MsZm9ydHJhblR5cGUsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbkJsb2NrRGF0YQogICAgICBzeW4gcmVnaW9uIGZvcnRyYW5DYXNlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Ilw8c2VsZWN0XHMqXChjYXNlXHx0eXBlXClcPiIgc2tpcD0iXlxzKlshI10uKiQiIGVuZD0iXDxlbmRccypzZWxlY3RcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Vbml0SGVhZGVyLGZvcnRyYW5TdHJ1Y3R1cmUsZm9ydHJhblN0b3JhZ2VDbGFzcyxmb3J0cmFuVHlwZSxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW5TdWJyb3V0aW5lLGZvcnRyYW5GdW5jdGlvbixmb3J0cmFuQmxvY2tEYXRhCiAgICBlbmRpZgogIGVuZGlmCgogIGlmIGV4aXN0cygiZm9ydHJhbl9mb2xkX211bHRpbGluZWNvbW1lbnRzIikKICAgIGlmIChiOmZvcnRyYW5fZml4ZWRfc291cmNlID09IDEpCiAgICAgIHN5biBtYXRjaCBmb3J0cmFuTXVsdGlMaW5lQ29tbWVudHMgdHJhbnNwYXJlbnQgZm9sZCAiXCheWyFjKl0uKlwoXG5cfFwlJFwpXClcezQsfSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5NdWx0aUNvbW1lbnRMaW5lcwogICAgZWxzZQogICAgICBzeW4gbWF0Y2ggZm9ydHJhbk11bHRpTGluZUNvbW1lbnRzIHRyYW5zcGFyZW50IGZvbGQgIlwoXlxzKiEuKlwoXG5cfFwlJFwpXClcezQsfSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5NdWx0aUNvbW1lbnRMaW5lcwogICAgZW5kaWYKICBlbmRpZgplbmRpZgoKIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgoiIFRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZyBkaWZmZXJzIGZvciBlYWNoIGRpYWxlY3QuCiIgVHJhbnNwYXJlbnQgZ3JvdXBzOgoiIGZvcnRyYW5QYXJlbiwgZm9ydHJhbkxlZnRNYXJnaW4KIiBmb3J0cmFuUHJvZ3JhbSwgZm9ydHJhbk1vZHVsZSwgZm9ydHJhblN1YnJvdXRpbmUsIGZvcnRyYW5GdW5jdGlvbiwKIiBmb3J0cmFuQmxvY2tEYXRhCiIgZm9ydHJhbjc3TG9vcCwgZm9ydHJhbjkwTG9vcCwgZm9ydHJhbklmQmxvY2ssIGZvcnRyYW5DYXNlCiIgZm9ydHJhbk11bHRpQ29tbWVudExpbmVzCmhpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkIAlLZXl3b3JkCmhpIGRlZiBsaW5rIGZvcnRyYW5Db25zdHJ1Y3ROYW1lCUlkZW50aWZpZXIKaGkgZGVmIGxpbmsgZm9ydHJhbkNvbmRpdGlvbmFsCUNvbmRpdGlvbmFsCmhpIGRlZiBsaW5rIGZvcnRyYW5SZXBlYXQJUmVwZWF0CmhpIGRlZiBsaW5rIGZvcnRyYW5Ub2RvCQlUb2RvCmhpIGRlZiBsaW5rIGZvcnRyYW5Db250aW51ZU1hcmsJU3BlY2lhbApoaSBkZWYgbGluayBmb3J0cmFuU3RyaW5nCVN0cmluZwpoaSBkZWYgbGluayBmb3J0cmFuTnVtYmVyCU51bWJlcgpoaSBkZWYgbGluayBmb3J0cmFuT3BlcmF0b3IJT3BlcmF0b3IKaGkgZGVmIGxpbmsgZm9ydHJhbkJvb2xlYW4JQm9vbGVhbgpoaSBkZWYgbGluayBmb3J0cmFuTGFiZWxFcnJvcglFcnJvcgpoaSBkZWYgbGluayBmb3J0cmFuT2Jzb2xldGUJVG9kbwpoaSBkZWYgbGluayBmb3J0cmFuVHlwZQkJVHlwZQpoaSBkZWYgbGluayBmb3J0cmFuU3RydWN0dXJlCVR5cGUKaGkgZGVmIGxpbmsgZm9ydHJhblN0b3JhZ2VDbGFzcwlTdG9yYWdlQ2xhc3MKaGkgZGVmIGxpbmsgZm9ydHJhbkNhbGwJCUZ1bmN0aW9uCmhpIGRlZiBsaW5rIGZvcnRyYW5Vbml0SGVhZGVyCWZvcnRyYW5QcmVDb25kaXQKaGkgZGVmIGxpbmsgZm9ydHJhblJlYWRXcml0ZQlLZXl3b3JkCmhpIGRlZiBsaW5rIGZvcnRyYW5JTwkJS2V5d29yZApoaSBkZWYgbGluayBmb3J0cmFuSW50cmluc2ljCUZ1bmN0aW9uCmhpIGRlZiBsaW5rIGZvcnRyYW5Db25zdGFudAlDb25zdGFudAoKIiBUbyBzdG9wIGRlbGV0ZWQgJiBvYnNvbGVzY2VudCBmZWF0dXJlcyBiZWluZyBoaWdobGlnaHRlZCBhcyBUb2RvIGl0ZW1zLAoiIGNvbW1lbnQgb3V0IHRoZSBuZXh0IDUgbGluZXMgYW5kIHVuY29tbWVudCB0aGUgNSBsaW5lcyBhZnRlciB0aGF0CmhpIGRlZiBsaW5rIGZvcnRyYW5Vbml0SGVhZGVyT2IgICAgZm9ydHJhbk9ic29sZXRlCmhpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkT2IgICAgICAgZm9ydHJhbk9ic29sZXRlCmhpIGRlZiBsaW5rIGZvcnRyYW5Db25kaXRpb25hbE9iICAgZm9ydHJhbk9ic29sZXRlCmhpIGRlZiBsaW5rIGZvcnRyYW5UeXBlT2IgICAgICAgICAgZm9ydHJhbk9ic29sZXRlCmhpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkRGVsICAgICAgZm9ydHJhbk9ic29sZXRlCiJoaSBkZWYgbGluayBmb3J0cmFuVW5pdEhlYWRlck9iICAgIGZvcnRyYW5Vbml0SGVhZGVyCiJoaSBkZWYgbGluayBmb3J0cmFuS2V5d29yZE9iICAgICAgIGZvcnRyYW5LZXl3b3JkCiJoaSBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWxPYiAgIGZvcnRyYW5Db25kaXRpb25hbAoiaGkgZGVmIGxpbmsgZm9ydHJhblR5cGVPYiAgICAgICAgICBmb3J0cmFuVHlwZQoiaGkgZGVmIGxpbmsgZm9ydHJhbktleXdvcmREZWwgICAgICBmb3J0cmFuS2V5d29yZAoKaWYgYjpmb3J0cmFuX2RpYWxlY3QgPT0gIkYiCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5JbnRyaW5zaWNSCWZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuVW5pdEhlYWRlclIJZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5UeXBlUgkJZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdG9yYWdlQ2xhc3NSCWZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuT3BlcmF0b3JSIAlmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkluY2x1ZGUgICAJZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5MYWJlbE51bWJlcglmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhblRhcmdldAkgICAgICAgIGZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuRmxvYXRJbGwJICAgICAgICBmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhbklPUgkJZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkUgkgICAgICAgIGZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuU3RyaW5nUgkgICAgICAgIGZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWxSCWZvcnRyYW5PYnNvbGV0ZQplbHNlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5JbnRyaW5zaWNSCWZvcnRyYW5JbnRyaW5zaWMKICBoaSEgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJSCWZvcnRyYW5QcmVDb25kaXQKICBoaSEgZGVmIGxpbmsgZm9ydHJhblR5cGVSCQlmb3J0cmFuVHlwZQogIGhpISBkZWYgbGluayBmb3J0cmFuU3RvcmFnZUNsYXNzUglmb3J0cmFuU3RvcmFnZUNsYXNzCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5PcGVyYXRvclIJICAgICAgICBmb3J0cmFuT3BlcmF0b3IKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkluY2x1ZGUJICAgICAgICBJbmNsdWRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5MYWJlbE51bWJlcglTcGVjaWFsCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5UYXJnZXQJICAgICAgICBTcGVjaWFsCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5GbG9hdElsbAkgICAgICAgIGZvcnRyYW5GbG9hdAogIGhpISBkZWYgbGluayBmb3J0cmFuSU9SCQlmb3J0cmFuSU8KICBoaSEgZGVmIGxpbmsgZm9ydHJhbktleXdvcmRSCSAgICAgICAgZm9ydHJhbktleXdvcmQKICBoaSEgZGVmIGxpbmsgZm9ydHJhblN0cmluZ1IJICAgICAgICBmb3J0cmFuU3RyaW5nCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5Db25kaXRpb25hbFIJZm9ydHJhbkNvbmRpdGlvbmFsCmVuZGlmCgoiIENVREEKaGkgZGVmIGxpbmsgZm9ydHJhbkludHJpbnNpY0NVREEgICAgICAgIGZvcnRyYW5JbnRyaW5zaWMKaGkgZGVmIGxpbmsgZm9ydHJhblR5cGVDVURBICAgICAgICAgICAgIGZvcnRyYW5UeXBlCmhpIGRlZiBsaW5rIGZvcnRyYW5TdHJpbmdDVURBICAgICAgICAgICBmb3J0cmFuU3RyaW5nCgpoaSBkZWYgbGluayBmb3J0cmFuRm9ybWF0U3BlYwlJZGVudGlmaWVyCmhpIGRlZiBsaW5rIGZvcnRyYW5GbG9hdAlGbG9hdApoaSBkZWYgbGluayBmb3J0cmFuUHJlQ29uZGl0CVByZUNvbmRpdApoaSBkZWYgbGluayBjSW5jbHVkZWQJCWZvcnRyYW5TdHJpbmcKaGkgZGVmIGxpbmsgY0luY2x1ZGUJCUluY2x1ZGUKaGkgZGVmIGxpbmsgY1ByZVByb2MJCVByZVByb2MKaGkgZGVmIGxpbmsgY1ByZUNvbmRpdAkJUHJlQ29uZGl0CmhpIGRlZiBsaW5rIGZvcnRyYW5PcGVuTVAgICAgICAgUHJlUHJvYwpoaSBkZWYgbGluayBmb3J0cmFuUGFyZW5FcnJvcglFcnJvcgpoaSBkZWYgbGluayBmb3J0cmFuQ29tbWVudAlDb21tZW50CmhpIGRlZiBsaW5rIGZvcnRyYW5TZXJpYWxOdW1iZXIJVG9kbwpoaSBkZWYgbGluayBmb3J0cmFuVGFiCQlFcnJvcgoKIiBVbmNvbW1lbnQgdGhlIG5leHQgbGluZSBpZiB5b3UgdXNlIGV4dHJhIGludHJpbnNpY3MgcHJvdmlkZWQgYnkgdmVuZG9ycwoiaGkgZGVmIGxpbmsgZm9ydHJhbkV4dHJhSW50cmluc2ljCUZ1bmN0aW9uCgpsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJmb3J0cmFuIgoKbGV0ICZjcG8gPSBzOmNwb19zYXZlCnVubGV0IHM6Y3BvX3NhdmUKIiB2aW06IHRzPTggdHc9MTMyCg==