IiBUZXN0cyBmb3IgcmVnZXhwIGluIGxhdGluMSBlbmNvZGluZwpzZXQgZW5jb2Rpbmc9bGF0aW4xCnNjcmlwdGVuY29kaW5nIGxhdGluMQoKc291cmNlIGNoZWNrLnZpbQoKZnVuYyBzOmVxdWl2YWxlbmNlX3Rlc3QoKQogIGxldCBzdHIgPSAiQcDBwsPExSBCIEMgRCBFyMnKyyBGIEcgSCBJzM3OzyBKIEsgTCBNIE7RIE/S09TV1tggUCBRIFIgUyBUIFXZ2tvcIFYgVyBYIFndIFogYeDh4uPk5SBiIGMgZCBl6Onq6yBmIGcgaCBp7O3u7yBqIGsgbCBtIG7xIG/y8/T19vggcCBxIHIgcyB0IHX5+vv8IHYgdyB4IHn9/yB6IgogIGxldCBncm91cHMgPSBzcGxpdChzdHIpCiAgZm9yIGdyb3VwMSBpbiBncm91cHMKICAgICAgZm9yIGMgaW4gc3BsaXQoZ3JvdXAxLCAnXHpzJykKCSIgbmV4dCBzdGF0ZW1lbnQgY29uZmlybXMgdGhhdCBlcXVpdmFsZW5jZSBjbGFzcyBtYXRjaGVzIGV2ZXJ5CgkiIGNoYXJhY3RlciBpbiBncm91cAogICAgICAgIGNhbGwgYXNzZXJ0X21hdGNoKCdeW1s9JyAuIGMgLiAnPV1dKiQnLCBncm91cDEpCiAgICAgICAgZm9yIGdyb3VwMiBpbiBncm91cHMKICAgICAgICAgIGlmIGdyb3VwMiAhPSBncm91cDEKCSAgICAiIG5leHQgc3RhdGVtZW50IGNvbnZlcnRzIHRoYXQgZXF1aXZhbGVuY2UgY2xhc3MgZG9lc24ndCBtYXRjaAoJICAgICIgYSBjaGFyYWN0ZXIgaW4gYW55IG90aGVyIGdyb3VwCiAgICAgICAgICAgIGNhbGwgYXNzZXJ0X2VxdWFsKC0xLCBtYXRjaChncm91cDIsICdbWz0nIC4gYyAuICc9XV0nKSkKICAgICAgICAgIGVuZGlmCiAgICAgICAgZW5kZm9yCiAgICAgIGVuZGZvcgogIGVuZGZvcgplbmRmdW5jCgpmdW5jIFRlc3RfZXF1aXZhbGVuY2VfcmUxKCkKICBzZXQgcmU9MQogIGNhbGwgczplcXVpdmFsZW5jZV90ZXN0KCkKZW5kZnVuYwoKZnVuYyBUZXN0X2VxdWl2YWxlbmNlX3JlMigpCiAgc2V0IHJlPTIKICBjYWxsIHM6ZXF1aXZhbGVuY2VfdGVzdCgpCmVuZGZ1bmMKCmZ1bmMgVGVzdF9yZWN1cnNpdmVfc3Vic3RpdHV0ZSgpCiAgbmV3CiAgcy9eL1w9ZXhlY3V0ZSgicyNeIyNnbiIpCiAgIiBjaGVjayB3ZSBhcmUgbm93IG5vdCBpbiB0aGUgc2FuZGJveAogIGNhbGwgc2V0d2ludmFyKDEsICdteXZhcicsIDEpCiAgYndpcGUhCmVuZGZ1bmMKCmZ1bmMgVGVzdF9uZXN0ZWRfYmFja3JlZnMoKQogICIgQ2hlY2sgZXhhbXBsZSBpbiBjaGFuZ2UudHh0LgogIG5ldwogIGZvciByZSBpbiByYW5nZSgwLCAyKQogICAgZXhlICdzZXQgcmU9JyAuIHJlCiAgICBjYWxsIHNldGxpbmUoMSwgJ2FhIGFiIHgnKQogICAgMXMvXChcKGFbYS1kXSBcKSpcKVwoeFwpLy1cMS0gLVwyLSAtXDMtLwogICAgY2FsbCBhc3NlcnRfZXF1YWwoJy1hYSBhYiAtIC1hYiAtIC14LScsIGdldGxpbmUoMSkpCgogICAgY2FsbCBhc3NlcnRfZXF1YWwoJy1hYSBhYiAtIC1hYiAtIC14LScsIHN1YnN0aXR1dGUoJ2FhIGFiIHgnLCAnXChcKGFbYS1kXSBcKSpcKVwoeFwpJywgJy1cMS0gLVwyLSAtXDMtJywgJycpKQogIGVuZGZvcgogIGJ3aXBlIQogIHNldCByZT0wCmVuZGZ1bmMKCmZ1bmMgVGVzdF9lb3dfd2l0aF9vcHRpb25hbCgpCiAgbGV0IGV4cGVjdGVkID0gWydhYmMgZGVmJywgJ2FiYycsICdkZWYnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJ10KICBmb3IgcmUgaW4gcmFuZ2UoMCwgMikKICAgIGV4ZSAnc2V0IHJlPScgLiByZQogICAgbGV0IGFjdHVhbCA9IG1hdGNobGlzdCgnYWJjIGRlZicsICdcKGFiY1w+XClcP1xzKlwoZGVmXCknKQogICAgY2FsbCBhc3NlcnRfZXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKICBlbmRmb3IKZW5kZnVuYwoKZnVuYyBUZXN0X2JhY2tyZWYoKQogIG5ldwogIGNhbGwgc2V0bGluZSgxLCBbJ29uZScsICd0d28nLCAndGhyZWUnLCAnZm91cicsICdmaXZlJ10pCiAgY2FsbCBhc3NlcnRfZXF1YWwoMywgc2VhcmNoKCdcJSM9MVwoZVwpXDEnKSkKICBjYWxsIGFzc2VydF9lcXVhbCgzLCBzZWFyY2goJ1wlIz0yXChlXClcMScpKQogIGNhbGwgYXNzZXJ0X2ZhaWxzKCdjYWxsIHNlYXJjaCgiXFwlIz0xXFwoZVxcMVxcKSIpJywgJ0U2NTonKQogIGNhbGwgYXNzZXJ0X2ZhaWxzKCdjYWxsIHNlYXJjaCgiXFwlIz0yXFwoZVxcMVxcKSIpJywgJ0U2NTonKQogIGJ3aXBlIQplbmRmdW5jCgpmdW5jIFRlc3RfbXVsdGlfZmFpbHVyZSgpCiAgc2V0IHJlPTEKICBjYWxsIGFzc2VydF9mYWlscygnL2EqKicsICdFNjE6JykKICBjYWxsIGFzc2VydF9mYWlscygnL2EqXCsnLCAnRTYyOicpCiAgY2FsbCBhc3NlcnRfZmFpbHMoJy9hXHthfScsICdFNTU0OicpCiAgc2V0IHJlPTIKICBjYWxsIGFzc2VydF9mYWlscygnL2EqKicsICdFODcxOicpCiAgY2FsbCBhc3NlcnRfZmFpbHMoJy9hKlwrJywgJ0U4NzE6JykKICBjYWxsIGFzc2VydF9mYWlscygnL2Fce2F9JywgJ0U1NTQ6JykKICBzZXQgcmU9MAplbmRmdW5jCgpmdW5jIFRlc3RfcmVjdXJzaXZlX2FkZHN0YXRlKCkKICAiIFRoaXMgd2lsbCBjYWxsIGFkZHN0YXRlKCkgcmVjdXJzaXZlbHkgdW50aWwgaXQgcnVucyBpbnRvIHRoZSBsaW1pdC4KICBsZXQgbG51bSA9IHNlYXJjaCgnXHYoKCl7MzI4fSl7Mzg5fScpCiAgY2FsbCBhc3NlcnRfZXF1YWwoMCwgbG51bSkKZW5kZnVuYwoKZnVuYyBUZXN0X291dF9vZl9tZW1vcnkoKQogIG5ldwogIHMvXi8sbgogICIgVGhpcyB3aWxsIGJlIHNsb3cuLi4KICBjYWxsIGFzc2VydF9mYWlscygnY2FsbCBzZWFyY2goIlxcdigobnx8PCkrKTsiKScsICdFMzYzOicpCmVuZGZ1bmMKCmZ1bmMgVGVzdF9nZXRfZXF1aV9jbGFzcygpCiAgbmV3CiAgIiBJbmNvbXBsZXRlIGVxdWl2YWxlbmNlIGNsYXNzIGNhdXNlZCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MKICBzL14vW1s9CiAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgc2VhcmNoKGdldGxpbmUoMSkpKQogIHMvLiovW1suCiAgY2FsbCBhc3NlcnRfZXF1YWwoMSwgc2VhcmNoKGdldGxpbmUoMSkpKQplbmRmdW5jCgpmdW5jIFRlc3RfcmV4X2luaXQoKQogIHNldCBub2luY3NlYXJjaAogIHNldCByZT0xCiAgbmV3CiAgc2V0bG9jYWwgaXNrZXl3b3JkPWEtegogIGNhbGwgc2V0bGluZSgxLCBbJ2FiYycsICdBQkMnXSkKICBjYWxsIGFzc2VydF9lcXVhbCgxLCBzZWFyY2goJ1tbOmtleXdvcmQ6XV0nKSkKICBuZXcKICBzZXRsb2NhbCBpc2tleXdvcmQ9QS1aCiAgY2FsbCBzZXRsaW5lKDEsIFsnYWJjJywgJ0FCQyddKQogIGNhbGwgYXNzZXJ0X2VxdWFsKDIsIHNlYXJjaCgnW1s6a2V5d29yZDpdXScpKQogIGJ3aXBlIQogIGJ3aXBlIQogIHNldCByZT0wCmVuZGZ1bmMKCmZ1bmMgVGVzdF9yYW5nZV93aXRoX25ld2xpbmUoKQogIG5ldwogIGNhbGwgc2V0bGluZSgxLCAiYSIpCiAgY2FsbCBhc3NlcnRfZXF1YWwoMCwgc2VhcmNoKCJbIC0qXFxuLSBdIikpCiAgY2FsbCBhc3NlcnRfZXF1YWwoMCwgc2VhcmNoKCJbIC0qXFx0LVxcbl0iKSkKICBid2lwZSEKZW5kZnVuYwoKZnVuYyBUZXN0X3BhdHRlcm5fY29tcGlsZV9zcGVlZCgpCiAgQ2hlY2tPcHRpb24gc3BlbGxjYXBjaGVjawogIENoZWNrRnVuY3Rpb24gcmVsdGltZWZsb2F0CgogIGxldCBzdGFydCA9IHJlbHRpbWUoKQogICIgdGhpcyB1c2VkIHRvIGJlIHZlcnkgc2xvdywgbm90IGl0IHNob3VsZCBiZSBhYm91dCBhIHNlY29uZAogIHNldCBzcGM9XFx2KCgoKChOeHh4eHh4eCYmeHh4eCl7MTc5fSkrKSspKyl7MTc5fQogIGNhbGwgYXNzZXJ0X2lucmFuZ2UoMC4wMSwgMTAuMCwgcmVsdGltZWZsb2F0KHJlbHRpbWUoc3RhcnQpKSkKICBzZXQgc3BjPQplbmRmdW5jCgoiIFRlc3RzIGZvciByZWdleHAgcGF0dGVybnMgd2l0aG91dCBtdWx0aS1ieXRlIHN1cHBvcnQuCmZ1bmMgVGVzdF9yZWdleHBfc2luZ2xlX2xpbmVfcGF0KCkKICAiIHRsIGlzIGEgTGlzdCBvZiBMaXN0cyB3aXRoOgogICIgICAgcmVnZXhwIGVuZ2luZXMgdG8gdGVzdAogICIgICAgICAgMCAtIHRlc3Qgd2l0aCAncmVnZXhwZW5naW5lJyB2YWx1ZXMgMCBhbmQgMQogICIgICAgICAgMSAtIHRlc3Qgd2l0aCAncmVnZXhwZW5naW5lJyB2YWx1ZXMgMCBhbmQgMgogICIgICAgICAgMiAtIHRlc3Qgd2l0aCAncmVnZXhwZW5naW5lJyB2YWx1ZXMgMCwgMSBhbmQgMgogICIgICAgcmVnZXhwIHBhdHRlcm4KICAiICAgIHRleHQgdG8gdGVzdCB0aGUgcGF0dGVybiBvbgogICIgICAgZXhwZWN0ZWQgbWF0Y2ggKG9wdGlvbmFsKQogICIgICAgZXhwZWN0ZWQgc3VibWF0Y2ggMSAob3B0aW9uYWwpCiAgIiAgICBleHBlY3RlZCBzdWJtYXRjaCAyIChvcHRpb25hbCkKICAiICAgIGV0Yy4KICAiICBXaGVuIHRoZXJlIGlzIG5vIG1hdGNoIHVzZSBvbmx5IHRoZSBmaXJzdCB0d28gaXRlbXMuCiAgbGV0IHRsID0gW10KCiAgY2FsbCBhZGQodGwsIFsyLCAnYWInLCAnYWFiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYicsICdhYmNkZWYnLCAnYiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2JjKicsICdhYmNjY2NkZWYnLCAnYmNjY2MnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdiY1x7LX0nLCAnYWJjY2NjZGVmJywgJ2InXSkKICBjYWxsIGFkZCh0bCwgWzIsICdiY1x7LX1cKGRcKScsICdhYmNjY2NkZWYnLCAnYmNjY2NkJywgJ2QnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdiYyonLCAnYWJiZGVmJywgJ2InXSkKICBjYWxsIGFkZCh0bCwgWzIsICdjKicsICdjY2MnLCAnY2NjJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYmMqJywgJ2FiZGVmJywgJ2InXSkKICBjYWxsIGFkZCh0bCwgWzIsICdjKicsICdhYmRlZicsICcnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdiY1wrJywgJ2FiY2NjY2RlZicsICdiY2NjYyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2JjXCsnLCAnYWJkZWYnXSkgIiBubyBtYXRjaAogICIgbWF0Y2ggZXNjYXBlIGNoYXJhY3RlciBpbiBhIHN0cmluZwogIGNhbGwgYWRkKHRsLCBbMiwgJy5cZS4nLCAib25lXDxFc2M+dHdvIiwgImVcPEVzYz50Il0pCiAgIiBtYXRjaCBiYWNrc3BhY2UgY2hhcmFjdGVyIGluIGEgc3RyaW5nCiAgY2FsbCBhZGQodGwsIFsyLCAnLlxiLicsICJvbmVcPEMtSD50d28iLCAiZVw8Qy1IPnQiXSkKICAiIG1hdGNoIG5ld2xpbmUgY2hhcmFjdGVyIGluIGEgc3RyaW5nCiAgY2FsbCBhZGQodGwsIFsyLCAnb1xuYicsICJmb29cbmJhciIsICJvXG5iIl0pCgogICIgb3BlcmF0b3IgXHwKICBjYWxsIGFkZCh0bCwgWzIsICdhXHxhYicsICdjYWJkJywgJ2EnXSkgIiBhbHRlcm5hdGlvbiBpcyBvcmRlcmVkCgogIGNhbGwgYWRkKHRsLCBbMiwgJ2NcPycsICdjY2InLCAnYyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2JjXD8nLCAnYWJkJywgJ2InXSkKICBjYWxsIGFkZCh0bCwgWzIsICdiY1w/JywgJ2FiY2NkJywgJ2JjJ10pCgogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2YXsxfScsICdhYicsICdhJ10pCgogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2YXsyfScsICdhYScsICdhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2YXsyfScsICdjYWFkJywgJ2FhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZhezJ9JywgJ2FiYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2YXsyfScsICdhYiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2YXsyfScsICdhYmFhJywgJ2FhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZhezJ9JywgJ2FhYScsICdhYSddKQoKICBjYWxsIGFkZCh0bCwgWzIsICdcdmJ7MX0nLCAnYWJjYScsICdiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZiYXsyfScsICdhYmFhJywgJ2JhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2YmF7M30nLCAnYWFiYWFjJ10pCgogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGFiKXsxfScsICdhYicsICdhYicsICdhYiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGFiKXsxfScsICdkYWJjJywgJ2FiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYWIpezF9JywgJ2FjYiddKQoKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhYil7MCwyfScsICdhY2InLCAiIiwgIiJdKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGFiKXswLDJ9JywgJ2FiJywgJ2FiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYWIpezEsMn0nLCAnYWInLCAnYWInLCAnYWInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhYil7MSwyfScsICdhYmFiYycsICdhYmFiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYWIpezIsNH0nLCAnYWJhYmNhYicsICdhYmFiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYWIpezIsNH0nLCAnYWJjYWJhYmEnLCAnYWJhYicsICdhYiddKQoKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhYil7Mn0nLCAnYWJhYicsICdhYmFiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYWIpezJ9JywgJ2NkYWJhYmUnLCAnYWJhYicsICdhYiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGFiKXsyfScsICdhYmFjJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYWIpezJ9JywgJ2FiYWNhYmFiJywgJ2FiYWInLCAnYWInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdigoYWIpezJ9KXsyfScsICdhYmFiYWJhYicsICdhYmFiYWJhYicsICdhYmFiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoKGFiKXsyfSl7Mn0nLCAnYWJhY2FiYWJhYmFiJywgJ2FiYWJhYmFiJywgJ2FiYWInLCAnYWInXSkKCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYXsxfSl7MX0nLCAnYScsICdhJywgJ2EnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhezJ9KXsxfScsICdhYScsICdhYScsICdhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7Mn0pezF9JywgJ2FhYWMnLCAnYWEnLCAnYWEnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhezJ9KXsxfScsICdkYWFhYycsICdhYScsICdhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7MX0pezJ9JywgJ2RhYWFjJywgJ2FhJywgJ2EnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhezF9KXsyfScsICdhYWEnLCAnYWEnLCAnYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7Mn0pKycsICdhZGFhYycsICdhYScsICdhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7Mn0pKycsICdhYScsICdhYScsICdhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7Mn0pezF9JywgJ2FhJywgJ2FhJywgJ2FhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYXsxfSl7Mn0nLCAnYWEnLCAnYWEnLCAnYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7MX0pezF9JywgJ2EnLCAnYScsICdhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYXsyfSl7Mn0nLCAnYWFhYScsICdhYWFhJywgJ2FhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYXsyfSl7Mn0nLCAnYWFhYmFhYWEnLCAnYWFhYScsICdhYSddKQoKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhKyl7Mn0nLCAnZGFkYWFjJywgJ2FhJywgJ2EnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhezN9KXsyfScsICdhYWFhYWFhJywgJ2FhYWFhYScsICdhYWEnXSkKCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYXsxLDJ9KXsyfScsICdkYWFhYycsICdhYWEnLCAnYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7MSwzfSl7Mn0nLCAnZGFhYWFjJywgJ2FhYWEnLCAnYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7MSwzfSl7Mn0nLCAnZGFhYWFhYycsICdhYWFhYScsICdhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7MSwzfSl7M30nLCAnZGFhYyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7MSwyfSl7Mn0nLCAnZGFjJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYSspKycsICdkYWFjJywgJ2FhJywgJ2FhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYSspKycsICdhYWEnLCAnYWFhJywgJ2FhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGErKXsxLDJ9JywgJ2FhYScsICdhYWEnLCAnYWFhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYSspKGErKScsICdhYWEnLCAnYWFhJywgJ2FhJywgJ2EnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhezN9KSsnLCAnZGFhYWFjJywgJ2FhYScsICdhYWEnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhfGJ8YykrJywgJ2FhY2InLCAnYWFjYicsICdiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYXxifGMpezJ9JywgJ2FiY2InLCAnYWInLCAnYiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGFiYyl7Mn0nLCAnYWJjYWJkJywgXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhYmMpezJ9JywgJ2FiZGFiY2FiYycsJ2FiY2FiYycsICdhYmMnXSkKCiAgY2FsbCBhZGQodGwsIFsyLCAnYSonLCAnY2MnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYSopKycsICdjYycsICcnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdigoYWIpKykrJywgJ2FiJywgJ2FiJywgJ2FiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoKChhYikrKSspKycsICdhYicsICdhYicsICdhYicsICdhYicsICdhYiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KCgoYWIpKykrKSsnLCAnZGFiYWJjJywgJ2FiYWInLCAnYWJhYicsICdhYmFiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYXswLDJ9KSsnLCAnY2MnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYSopKycsICcnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoKGEqKSspKycsICcnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoKGFiKSopKycsICcnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZhezEsM30nLCAnYWFiJywgJ2FhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZhezIsM30nLCAnYWJhYScsICdhYSddKQoKICBjYWxsIGFkZCh0bCwgWzIsICdcdigoYWIpK3xjKikrJywgJ2FiY2NjYWJhJywgJ2FiY2NjYWInLCAnJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYXsyfSl8KGJ7M30pJywgJ2JiYWJiYmInLCAnYmJiJywgJycsICdiYmInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdmF7Mn18YnsyfScsICdhYmFiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYSkrfChjKSsnLCAnYmJhY2JhYWNiYmInLCAnYScsICdhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZhYnsyLDN9YycsICdhYWJiY2NjY2NjY2NjY2NjYycsICdhYmJjJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZhYnsyLDN9YycsICdhYWJiYmNjY2NjY2NjY2NjY2MnLCAnYWJiYmMnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdmFiezIsM31jZHsyLDN9ZScsICdhYWJiYmNkZGVlJywgJ2FiYmJjZGRlJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZhKGJjKXsyfWQnLCAnYWFiY2JmYmMnIF0pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZhKmF7Mn0nLCAnYScsIF0pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZhKmF7Mn0nLCAnYWEnLCAnYWEnIF0pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZhKmF7Mn0nLCAnYWFhJywgJ2FhYScgXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdmEqYXsyfScsICdiYmJhYmNjJywgXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdmEqYip8YSpjKicsICdhJywgJ2EnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdmF7MX1iezF9fGF7MX1iezF9JywgJyddKQoKICAiIHN1Ym1hdGNoZXMKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhKScsICdhYicsICdhJywgJ2EnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhKShiKScsICdhYicsICdhYicsICdhJywgJ2InXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhYikoYikoYyknLCAnYWJiYycsICdhYmJjJywgJ2FiJywgJ2InLCAnYyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KChhKShiKSknLCAnYWInLCAnYWInLCAnYWInLCAnYScsICdiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYSl8KGIpJywgJ2FiJywgJ2EnLCAnYSddKQoKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhKikrJywgJ2FhYWEnLCAnYWFhYScsICcnXSkKICBjYWxsIGFkZCh0bCwgWzIsICd4JywgJ2FiY2RlZiddKQoKICAiCiAgIiBTaW1wbGUgdGVzdHMKICAiCgogICIgU2VhcmNoIHNpbmdsZSBncm91cHMKICBjYWxsIGFkZCh0bCwgWzIsICdhYicsICdhYWInLCAnYWInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhYicsICdiYWNlZCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FiJywgJyAgICAgICAgICAgICAgICAgICAgYWIgICAgICAgICAgICcsICdhYiddKQoKICAiIFNlYXJjaCBtdWx0aS1tb2RpZmllcnMKICBjYWxsIGFkZCh0bCwgWzIsICd4KicsICd4Y2QnLCAneCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ3gqJywgJ3h4eHh4eHh4eHh4eHh4eHhzb2ZpamlvamdmJywgJ3h4eHh4eHh4eHh4eHh4eHgnXSkKICAiIGVtcHR5IG1hdGNoIGlzIGdvb2QKICBjYWxsIGFkZCh0bCwgWzIsICd4KicsICdhYmNkb2lqJywgJyddKQogICIgbm8gbWF0Y2ggaGVyZQogIGNhbGwgYWRkKHRsLCBbMiwgJ3hcKycsICdhYmNkb2luJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAneFwrJywgJ2FiY2Rlb2lqZGZ4eGl1aGZpaicsICd4eCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ3hcKycsICd4eHh4eCcsICd4eHh4eCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ3hcKycsICdhYmMgeCBzaXVmaGl1c2ggeHh4eHh4eHh4JywgJ3gnXSkKICBjYWxsIGFkZCh0bCwgWzIsICd4XD0nLCAneCBzZGZvaWonLCAneCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ3hcPScsICdhYmMgc2ZvaWonLCAnJ10pICIgZW1wdHkgbWF0Y2ggaXMgZ29vZAogIGNhbGwgYWRkKHRsLCBbMiwgJ3hcPScsICd4eHh4eHh4eHggYycsICd4J10pCiAgY2FsbCBhZGQodGwsIFsyLCAneFw/JywgJ3ggc2Rmb2lqJywgJ3gnXSkKICAiIGVtcHR5IG1hdGNoIGlzIGdvb2QKICBjYWxsIGFkZCh0bCwgWzIsICd4XD8nLCAnYWJjIHNmb2lqJywgJyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ3hcPycsICd4eHh4eHh4eHh4IGMnLCAneCddKQoKICBjYWxsIGFkZCh0bCwgWzIsICdhXHswLDB9JywgJ2FiY2RmZG9paicsICcnXSkKICAiIHNhbWUgdGhpbmcgYXMgJ2E/JwogIGNhbGwgYWRkKHRsLCBbMiwgJ2FcezAsMX0nLCAnYXNpdWJpZCBheHh4YWFhJywgJ2EnXSkKICAiIHNhbWUgdGhpbmcgYXMgJ2FcezAsMX0nCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7MSwwfScsICdhc2l1YmlkIGF4eHhhYWEnLCAnYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FcezMsNn0nLCAnYWEgc2lvZnVoJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7Myw2fScsICdhYWFhYSBhc2ZvaWogYWZhYScsICdhYWFhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FcezMsNn0nLCAnYWFhYWFhYWEnLCAnYWFhYWFhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7MH0nLCAnYXNvaXVqJywgJyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FcezJ9JywgJ2FhYWEnLCAnYWEnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHsyfScsICdpdWFzaCBmaXVzYWhmbGl1c2FoIGZpdXNoZmlsdXNoZmkgdWhzYWlmdWggYXNrZmogbmFzZnZpdXMgYWZnIGFhYWEgc2ZpdWh1aGl1c2hmJywgJ2FhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7Mn0nLCAnYWJjZGVmZ2hpamtsbW5vcHFyZXN0dXZ3eHl6MTIzNDU2Nzg5MCddKQogICIgc2FtZSB0aGluZyBhcyAnYSonCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7MCx9JywgJ29paiBzZGlnZnVzbmYnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7MCx9JywgJ2FhYWFhIGFhJywgJ2FhYWFhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7Mix9JywgJ3NkZmlvdWdqZHNhZmcnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHsyLH0nLCAnYWFhYWFzZm9paiAnLCAnYWFhYWEnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHs1LH0nLCAneHhhYWFheHh4ICddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FcezUsfScsICd4eGFhYWFheHh4ICcsICdhYWFhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FceywwfScsICdvaWRmZ3VpaCBpdWhpIGhpdSBhYWFhJywgJyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2Fceyw1fScsICdhYmNkJywgJ2EnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHssNX0nLCAnYWFhYWFhYWFhYScsICdhYWFhYSddKQogICIgbGVhZGluZyBzdGFyIGFzIG5vcm1hbCBjaGFyIHdoZW4gXHt9IGZvbGxvd3MKICBjYWxsIGFkZCh0bCwgWzIsICdeKlx7NCx9JCcsICcqKionXSkKICBjYWxsIGFkZCh0bCwgWzIsICdeKlx7NCx9JCcsICcqKioqJywgJyoqKionXSkKICBjYWxsIGFkZCh0bCwgWzIsICdeKlx7NCx9JCcsICcqKioqKicsICcqKioqKiddKQogICIgc2FtZSB0aGluZyBhcyAnYSonCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7fScsICdiYmJjZGRpdWhmY2QnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7fScsICdhYWFhaW91ZGZoIGNvaXNmIGpkYScsICdhYWFhJ10pCgogIGNhbGwgYWRkKHRsLCBbMiwgJ2Fcey0wLDB9JywgJ2FiY2RmZG9paicsICcnXSkKICAiIGFudGktZ3JlZWR5IHZlcnNpb24gb2YgJ2E/JwogIGNhbGwgYWRkKHRsLCBbMiwgJ2Fcey0wLDF9JywgJ2FzaXViaWQgYXh4eGFhYScsICcnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHstMyw2fScsICdhYSBzaW9mdWgnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHstMyw2fScsICdhYWFhYSBhc2ZvaWogYWZhYScsICdhYWEnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHstMyw2fScsICdhYWFhYWFhYScsICdhYWEnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHstMH0nLCAnYXNvaXVqJywgJyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2Fcey0yfScsICdhYWFhJywgJ2FhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7LTJ9JywgJ2FiY2RlZmdoaWprbG1ub3BxcmVzdHV2d3h5ejEyMzQ1Njc4OTAnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHstMCx9JywgJ29paiBzZGlnZnVzbmYnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7LTAsfScsICdhYWFhYSBhYScsICcnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHstMix9JywgJ3NkZmlvdWdqZHNhZmcnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHstMix9JywgJ2FhYWFhc2ZvaWogJywgJ2FhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7LSwwfScsICdvaWRmZ3VpaCBpdWhpIGhpdSBhYWFhJywgJyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2Fcey0sNX0nLCAnYWJjZCcsICcnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHstLDV9JywgJ2FhYWFhYWFhYWEnLCAnJ10pCiAgIiBhbnRpLWdyZWVkeSB2ZXJzaW9uIG9mICdhKicKICBjYWxsIGFkZCh0bCwgWzIsICdhXHstfScsICdiYmJjZGRpdWhmY2QnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVx7LX0nLCAnYWFhYWlvdWRmaCBjb2lzZiBqZGEnLCAnJ10pCgogICIgVGVzdCBncm91cHMgb2YgY2hhcmFjdGVycyBhbmQgc3VibWF0Y2hlcwogIGNhbGwgYWRkKHRsLCBbMiwgJ1woYWJjXCkqJywgJ2FiY2FiY2FiYycsICdhYmNhYmNhYmMnLCAnYWJjJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXChhYlwpXCsnLCAnYWJhYmFiYWFhYWEnLCAnYWJhYmFiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXChhYmFhYWFhXCkqY2QnLCAnY2QnLCAnY2QnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXCh0ZXN0MVwpXD8gXCh0ZXN0MlwpXD8nLCAndGVzdDEgdGVzdDMnLCAndGVzdDEgJywgJ3Rlc3QxJywgJyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1wodGVzdDFcKVw9IFwodGVzdDJcKSBcKHRlc3Q0NDQzXClcPScsICcgdGVzdDIgdGVzdDQ0NDMgeXVwaWlpaWlpaWlpaWknLCAnIHRlc3QyIHRlc3Q0NDQzJywgJycsICd0ZXN0MicsICd0ZXN0NDQ0MyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1woXChzdWIxXCkgaGVsbG8gXChzdWIgMlwpXCknLCAnYXN0ZXJpeCBzdWIxIGhlbGxvIHN1YiAyIG9iZWxpeCcsICdzdWIxIGhlbGxvIHN1YiAyJywgJ3N1YjEgaGVsbG8gc3ViIDInLCAnc3ViMScsICdzdWIgMiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1woXChcKHl5eHh6elwpXClcKScsICdhYmNkZGRzZml1c2Z5eXp6eHh5eXh4enonLCAneXl4eHp6JywgJ3l5eHh6eicsICd5eXh4enonLCAneXl4eHp6J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoKGFiKSt8YyspKycsICdhYmNjY2FiYScsICdhYmNjY2FiJywgJ2FiJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoKGFiKXxjKikrJywgJ2FiY2NjYWJhJywgJ2FiY2NjYWInLCAnJywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYShjKikrYikrJywgJ2FjYmFiYWJhYWEnLCAnYWNiYWJhYicsICdhYicsICcnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhfGIqKSsnLCAnYWFhYScsICdhYWFhJywgJyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xwKicsICdh4SAJJywgJ2HhICddKQoKICAiIFRlc3QgZ3JlZWR5LW5lc3MgYW5kIGxhenktbmVzcwogIGNhbGwgYWRkKHRsLCBbMiwgJ2Fcey0yLDd9JywnYWFhYWFhYWFhYWFhYScsICdhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2Fcey0yLDd9eCcsJ2FhYWFhYWFhYXgnLCAnYWFhYWFhYXgnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhXHsyLDd9JywnYWFhYWFhYWFhYWFhYWFhYWFhYWEnLCAnYWFhYWFhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FcezIsN314JywnYWFhYWFhYWFheCcsICdhYWFhYWFheCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2eCguey0sOH0peXooLiopJywneGF5eGF5enhheXp4YXl6JywneGF5eGF5enhheXp4YXl6JywnYXl4YScsJ3hheXp4YXl6J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZ4KC4qKXl6KC4qKScsJ3hheXhheXp4YXl6eGF5eicsJ3hheXhheXp4YXl6eGF5eicsICdheXhheXp4YXl6eGEnLCcnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdihhezEsMn0pey0yLDN9JywnYWFhYWFhYScsJ2FhYWEnLCdhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGF7LTEsM30pKycsICdhYScsICdhYScsICdhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXlxzXHstfVx6c1woIHhcfHgkXCknLCAnIHgnLCAnIHgnLCAnIHgnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdeXHNcey19XHpzXCh4XHwgeCRcKScsICcgeCcsICcgeCcsICcgeCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ15cc1x7LX1cemVcKHhcfCB4JFwpJywgJyB4JywgJycsICcgeCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ15cKFxzXHstfVwpXCh4XHwgeCRcKScsICcgeCcsICcgeCcsICcnLCAnIHgnXSkKCiAgIiBUZXN0IENoYXJhY3RlciBjbGFzc2VzCiAgY2FsbCBhZGQodGwsIFsyLCAnXGRcK2VcZFxkJywndGVzdCAxMGUyMyBmZCcsJzEwZTIzJ10pCgogICIgVGVzdCBjb2xsZWN0aW9ucyBhbmQgY2hhcmFjdGVyIHJhbmdlIFtdCiAgY2FsbCBhZGQodGwsIFsyLCAnXHZbYV0nLCAnYWJjZCcsICdhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYVtiY2RdJywgJ2FiY2QnLCAnYWInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhW2ItZF0nLCAnYWNiZCcsICdhYyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1thLWRdW2UtZl1beC14XWQnLCAnY2V4ZHh4JywgJ2NleGQnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdltbOmFscGhhOl1dKycsICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejYnLCdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1tbOmFscGhhOl1cK10nLCAnNng4JywneCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1teYWJjXVwrJywnYWJjYWJjYWJjJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnW15hYmNdJywnZGVmZ2hpYXNpanZvaW5hc29pdW5idmInLCdkJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnW15hYmNdXCsnLCdkZGRkZGRkYScsJ2RkZGRkZGQnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdbXmEtZF1cKycsJ2FhYUFBQVpJSEZOQ2RkZCcsJ0FBQVpJSEZOQyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1thLWZdKicsJ2lpaWlpaWlpJywnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnW2EtZl0qJywnYWJjZGVmZ2gnLCdhYmNkZWYnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdbXmEtZl1cKycsJ2FiY2RlZmdoJywnZ2gnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdbYS1jXVx7LTMsNn0nLCdhYmNhYmMnLCdhYmMnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdbXls6YWxwaGE6XV1cKycsJ2FiY2NjYWRmb2lqNzc4N3lzZjI4N3lybmNjZHUnLCc3Nzg3J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnWy1hXScsICctJywgJy0nXSkKICBjYWxsIGFkZCh0bCwgWzIsICdbYS1dJywgJy0nLCAnLSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1thLWZdKlxjJywnQUJDREVGR0gnLCdBQkNERUYnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdbYWJjXVt4eXpdXGMnLCctYWYtQUYtQlktLScsJ0JZJ10pCiAgIiBmaWxlbmFtZSByZWdleHAKICBjYWxsIGFkZCh0bCwgWzIsICdbLS4vWzphbG51bTpdX35dXCsnLCAnbG9nMTMuZmlsZScsICdsb2cxMy5maWxlJ10pCiAgIiBzcGVjaWFsIGNoYXJzCiAgY2FsbCBhZGQodGwsIFsyLCAnW1xdXF5cLVxcXVwrJywgJ1xeXFxcLVwtLS1eJywgJ1xeXFxcLVwtLS1eJ10pCiAgIiBjb2xsYXRpb24gZWxlbQogIGNhbGwgYWRkKHRsLCBbMiwgJ1tbLmEuXV1cKycsICdhYScsICdhYSddKQogICIgbWlkZGxlIG9mIHJlZ2V4cAogIGNhbGwgYWRkKHRsLCBbMiwgJ2FiY1swLTldKmRkZCcsICdzaXVoYWJjIGlpJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYWJjWzAtOV0qZGRkJywgJ2FkZiBhYmM0NDQ4MmRkZCBvaWpzJywgJ2FiYzQ0NDgyZGRkJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9bMC05XVwrJywgJ2FzZmk5ODg4dScsICc5ODg4J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnWzAtOVxuXVwrJywgJ2FzZmk5ODg4dScsICc5ODg4J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9bMC05XVwrJywgImFzZmlcbjk4ODh1IiwgIlxuOTg4OCJdKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfZicsICIgIFxuYSAiLCAiXG4iXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcX2ZcKycsICIgIFxuYSAiLCAiXG5hIl0pCiAgY2FsbCBhZGQodGwsIFsyLCAnWzAtOUEtWmEtei1fLl1cKycsICIgQDBfYS5BLXsgIiwgIjBfYS5BLSJdKQoKICAiIFRlc3Qgc3RhcnQvZW5kIG9mIGxpbmUsIHN0YXJ0L2VuZCBvZiBmaWxlCiAgY2FsbCBhZGQodGwsIFsyLCAnXmEuJywgImFfXG5iICIsICJhXyJdKQogIGNhbGwgYWRkKHRsLCBbMiwgJ15hLicsICJiIGEgXG5hXyJdKQogIGNhbGwgYWRkKHRsLCBbMiwgJy5hJCcsICIgYVxuICJdKQogIGNhbGwgYWRkKHRsLCBbMiwgJy5hJCcsICIgYSBiXG5fYSIsICJfYSJdKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1wlXmEuJywgImEgYVxuYSIsICJhICJdKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1wlXmEnLCAiIGEgXG5hICJdKQogIGNhbGwgYWRkKHRsLCBbMiwgJy5hXCUkJywgIiBhXG4gIl0pCiAgY2FsbCBhZGQodGwsIFsyLCAnLmFcJSQnLCAiIGFcbl9hIiwgIl9hIl0pCgogICIgVGVzdCByZWNvZ25pdGlvbiBvZiBjaGFyYWN0ZXIgY2xhc3NlcwogIGNhbGwgYWRkKHRsLCBbMiwgJ1swLTddXCsnLCAneDAxMjM0NTY3ODl4JywgJzAxMjM0NTY3J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnW14wLTddXCsnLCAnMGE7WCslIDg5NycsICdhO1grJSA4OSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1swLTldXCsnLCAneDAxMjM0NTY3ODl4JywgJzAxMjM0NTY3ODknXSkKICBjYWxsIGFkZCh0bCwgWzIsICdbXjAtOV1cKycsICcwYTtYKyUgOScsICdhO1grJSAnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdbMC05YS1mQS1GXVwrJywgJ3gwMTg5YWJjZGVmZycsICcwMTg5YWJjZGVmJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnW14wLTlBLUZhLWZdXCsnLCAnMDE4OWc7WCslIGFiJywgJ2c7WCslICddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1thLXpfQS1aMC05XVwrJywgJzsrYXNvX1NmT2lqICcsICdhc29fU2ZPaWonXSkKICBjYWxsIGFkZCh0bCwgWzIsICdbXmEtel9BLVowLTldXCsnLCAnYVNvXzsrJSBzZk9paicsICc7KyUgJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnW2Etel9BLVpdXCsnLCAnMGFieXpfQUJZWjsnLCAnYWJ5el9BQllaJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnW15hLXpfQS1aXVwrJywgJ2FiQUJfMDk7KyUgeXpZWicsICcwOTsrJSAnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdbYS16XVwrJywgJzBhYmN4eXoxJywgJ2FiY3h5eiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1thLXpdXCsnLCAnQWFieHl6WicsICdhYnh5eiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1teYS16XVwrJywgJ2E7WDA5KyUgeCcsICc7WDA5KyUgJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnW15hLXpdXCsnLCAnYWJYMDsleXonLCAnWDA7JSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1thLXpBLVpdXCsnLCAnMGFiQUJ4elhaOScsICdhYkFCeHpYWiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1teYS16QS1aXVwrJywgJ2FiMDlfOysgWFonLCAnMDlfOysgJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnW0EtWl1cKycsICdhQUJYWVp6JywgJ0FCWFlaJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnW15BLVpdXCsnLCAnQUJ4MDslWVonLCAneDA7JSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1thLXpdXCtcYycsICcwYWJ4eXpBQlhZWjsnLCAnYWJ4eXpBQlhZWiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1tBLVpdXCtcYycsICcwYWJBQnh6WFo5JywgJ2FiQUJ4elhaJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXGNbXmEtel1cKycsICdhYjA5XzsrIFhaJywgJzA5XzsrICddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xjW15BLVpdXCsnLCAnYWIwOV87KyBYWicsICcwOV87KyAnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcQ1teQS1aXVwrJywgJ0FCQ09JSkRFT0lGTlNEIGpzZm9paiBzYScsICcganNmb2lqIHNhJ10pCgogICIgVGVzdHMgZm9yIFx6IGZlYXR1cmVzCiAgIiBtYXRjaCBlbmRzIGF0IFx6ZQogIGNhbGwgYWRkKHRsLCBbMiwgJ3h4IFx6ZSB0ZXN0JywgJ3h4ICddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FiY1x6ZWVuZCcsICdvaWogYWJjZW5kJywgJ2FiYyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FhXHplYmJcfGFheHgnLCAnIGFhYmIgJywgJ2FhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYWFcemViYlx8YWF4eCcsICcgYWF4eCAnLCAnYWF4eCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FhYmJcfGFhXHplYmInLCAnIGFhYmIgJywgJ2FhYmInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdhYVx6ZWJiXHxhYWViYicsICcgYWFiYiAnLCAnYWEnXSkKICAiIG1hdGNoIHN0YXJ0cyBhdCBcenMKICBjYWxsIGFkZCh0bCwgWzIsICdhYmNcenNkZCcsICdkZGFiY2RkeHl6dCcsICdkZCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FhIFx6c2F4JywgJyBheCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FiYyBcenNtYXRjaFx6ZSBhYmMnLCAnYWJjIGFiYyBhYmMgbWF0Y2ggYWJjIGFiYycsICdtYXRjaCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGEgXHpzaWYgLiopezJ9JywgJ2EgaWYgdGhlbiBhIGlmIGxhc3QnLCAnaWYgbGFzdCcsICdhIGlmIGxhc3QnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcPlx6cy4nLCAnYXdvcmQuICcsICcuJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHNcK1x6ZVxbL1x8XHNcenNcc1wrJywgJ2lzICAgW2EgdCcsICcgICddKQoKICAiIFRlc3RzIGZvciBcQD0gYW5kIFwmIGZlYXR1cmVzCiAgY2FsbCBhZGQodGwsIFsyLCAnYWJjXEA9JywgJ2FiYycsICdhYiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FiY1xAPWNkJywgJ2FiY2QnLCAnYWJjZCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2FiY1xAPScsICdhYmFiYycsICdhYiddKQogICIgd2lsbCBuZXZlciBtYXRjaCwgbm8gbWF0dGVyIHRoZSBpbnB1dCB0ZXh0CiAgY2FsbCBhZGQodGwsIFsyLCAnYWJjZFxAPWUnLCAnYWJjZCddKQogICIgd2lsbCBuZXZlciBtYXRjaAogIGNhbGwgYWRkKHRsLCBbMiwgJ2FiY2RcQD1lJywgJ2FueSB0ZXh0IGluIGhlcmUgLi4uICddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KGFiYylAPS4uJywgJ3hhYmNkJywgJ2FiJywgJ2FiYyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1woLipKb2huXClcQD0uKkJvYicsICdoZXJlIGlzIEpvaG4sIGFuZCBoZXJlIGlzIEInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcKEpvaG4uKlwpXEA9LipCb2InLCAnSm9obiBpcyBCb2JzIGZyaWVuZCcsICdKb2huIGlzIEJvYicsICdKb2huIGlzIEJvYnMgZnJpZW5kJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXDxcU1wrXCgpKVwpXEA9JywgJyQoKGk9aSsxKSknLCAnaT1pKzEnLCAnKSknXSkKICBjYWxsIGFkZCh0bCwgWzIsICcuKkpvaG5cJi4qQm9iJywgJ2hlcmUgaXMgSm9obiwgYW5kIGhlcmUgaXMgQiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJy4qSm9oblwmLipCb2InLCAnSm9obiBpcyBCb2JzIGZyaWVuZCcsICdKb2huIGlzIEJvYiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2KHRlc3QxKUA9Lip5ZXAnLCAndGhpcyBpcyBhIHRlc3QxLCB5ZXAgaXQgaXMnLCAndGVzdDEsIHllcCcsICd0ZXN0MSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2Zvb1woYmFyXClcQCEnLCAnZm9vYmFyJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnZm9vXChiYXJcKVxAIScsICdmb28gYmFyJywgJ2ZvbyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2lmIFwoXCh0aGVuXClcQCEuXCkqJCcsICcgaWYgdGhlbiBlbHNlJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnaWYgXChcKHRoZW5cKVxAIS5cKSokJywgJyBpZiBlbHNlICcsICdpZiBlbHNlICcsICcgJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXChmb29cKVxAIWJhcicsICdmb29iYXInLCAnYmFyJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXChmb29cKVxAIS4uLmJhcicsICdmb29iYXInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdeXCUoLipiYXJcKVxAIS4qXHpzZm9vJywgJyBiYXIgZm9vICddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ15cJSguKmJhclwpXEAhLipcenNmb28nLCAnIGZvbyBiYXIgJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXlwlKC4qYmFyXClcQCEuKlx6c2ZvbycsICcgZm9vIHh4eCAnLCAnZm9vJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnWyBdXEAhXHBcJShbIF1cQCFccFwpKjonLCAnaW1wbGljaXQgbWFwcGluZ3M6JywgJ21hcHBpbmdzOiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1sgXVxAIVxwXChbIF1cQCFccFwpKjonLCAnaW1wbGljaXQgbWFwcGluZ3M6JywgJ21hcHBpbmdzOicsICdzJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnbVxrXCtfXEA9XCUoX1xAIVxrXClcQDw9XGtcK2UnLCAnbXhfX3hlJywgJ214X194ZSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1wlKFxVXEA8PVNcaypcfFNcbFwpUicsICdTdVInLCAnU3VSJ10pCgogICIgQ29tYmluaW5nIGRpZmZlcmVudCB0ZXN0cyBhbmQgZmVhdHVyZXMKICBjYWxsIGFkZCh0bCwgWzIsICdbWzphbHBoYTpdXVx7LTIsNn0nLCAnNzg3YWJjZGl1aHNhc2l1aGI0JywgJ2FiJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnJywgJ2FiY2QnLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoKCkpJywgJ2FueSBwb3NzaWJsZSB0ZXh0JywgJyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2JShhYih4eXopYyknLCAnICAgYWJ4eXpjICcsICdhYnh5emMnLCAneHl6J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYodGVzdHwpZW1wdHknLCAndGVzZW1wdHknLCAnZW1wdHknLCAnJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXHYoYXxhYSkoYXxhYSknLCAnYWFhJywgJ2FhJywgJ2EnLCAnYSddKQoKICAiIFwldSBhbmQgZnJpZW5kcwogIGNhbGwgYWRkKHRsLCBbMiwgJ1wlZDMyJywgJ3llcyBubycsICcgJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXCVvNDAnLCAneWVzIG5vJywgJyAnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcJXgyMCcsICd5ZXMgbm8nLCAnICddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1wldTAwMjAnLCAneWVzIG5vJywgJyAnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcJVUwMDAwMDAyMCcsICd5ZXMgbm8nLCAnICddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1wlZDAnLCAieWVzXHgwYW5vIiwgIlx4MGEiXSkKCiAgIiIgXCVbYWJjXQogIGNhbGwgYWRkKHRsLCBbMiwgJ2Zvb1wlW2Jhcl0nLCAnZm9iYXInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdmb29cJVtiYXJdJywgJ2Zvb2JhcicsICdmb29iYXInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdmb29cJVtiYXJdJywgJ2Zvb3h4JywgJ2ZvbyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2Zvb1wlW2Jhcl0nLCAnZm9vYnh4JywgJ2Zvb2InXSkKICBjYWxsIGFkZCh0bCwgWzIsICdmb29cJVtiYXJdJywgJ2Zvb2JheHgnLCAnZm9vYmEnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdmb29cJVtiYXJdJywgJ2Zvb2Jhcnh4JywgJ2Zvb2JhciddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2Zvb1wlW2Jhcl14JywgJ2Zvb2J4eCcsICdmb29ieCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ2Zvb1wlW2Jhcl14JywgJ2Zvb2Jhcnh4JywgJ2Zvb2JhcngnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcJVtiYXJdeCcsICdiYXJ4eCcsICdiYXJ4J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXCVbYmFyXXgnLCAnYnh4JywgJ2J4J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXCVbYmFyXXgnLCAneHh4JywgJ3gnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdiXCVbW2FvXXJdJywgJ2JhciBib3InLCAnYmFyJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnYlwlW1tdXXJdJywgJ2JdciBib3InLCAnYl1yJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnQFwlW1x3XC1dKicsICc8aHR0cDovL2pvaG4ubmV0L3BhbmRvYy8+W0BwYW5kb2NdJywgJ0BwYW5kb2MnXSkKCiAgIiBBbHRlcm5hdGl2ZXMsIG11c3QgdXNlIGZpcnN0IGxvbmdlc3QgbWF0Y2gKICBjYWxsIGFkZCh0bCwgWzIsICdnb29cfGdvJywgJ2dvb2dsZScsICdnb28nXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcPGdvb1x8XDxnbycsICdnb29nbGUnLCAnZ29vJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXDxnb29cfGdvJywgJ2dvb2dsZScsICdnb28nXSkKCiAgIiBCYWNrIHJlZmVyZW5jZXMKICBjYWxsIGFkZCh0bCwgWzIsICdcKFxpXCtcKSBcMScsICcgYWJjIGFiYycsICdhYmMgYWJjJywgJ2FiYyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1woXGlcK1wpIFwxJywgJ3hnb28gZ29veCcsICdnb28gZ29vJywgJ2dvbyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1woYVwpXChiXClcKGNcKVwoZGRcKVwoZVwpXChmXClcKGdcKVwoaFwpXChpXClcMVwyXDNcNFw1XDZcN1w4XDknLCAneGFiY2RkZWZnaGlhYmNkZGVmZ2hpeCcsICdhYmNkZGVmZ2hpYWJjZGRlZmdoaScsICdhJywgJ2InLCAnYycsICdkZCcsICdlJywgJ2YnLCAnZycsICdoJywgJ2knXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcKFxkKlwpYSBcMWInLCAnIGEgYiAnLCAnYSBiJywgJyddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ14uXCguXCkuXF8uLlwxLicsICJhYWFcbmFhYVxuYiIsICJhYWFcbmFhYSIsICdhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXi4qXC5cKC4qXCkvLlwrXChcMVwpXEA8ISQnLCAnZm9vLmJhdC9mb28uY29tJywgJ2Zvby5iYXQvZm9vLmNvbScsICdiYXQnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdeLipcLlwoLipcKS8uXCtcKFwxXClcQDwhJCcsICdmb28uYmF0L2Zvby5iYXQnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdeLipcLlwoLipcKS8uXCtcKFwxXClcQDw9JCcsICdmb28uYmF0L2Zvby5iYXQnLCAnZm9vLmJhdC9mb28uYmF0JywgJ2JhdCcsICdiYXQnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcXFxAPCFcJHtcKFxkXCtcJSg6Llx7LX1cKVw/XFxcQDwhXCl9JywgJzIwMTMtMDYtMjckezB9JywgJyR7MH0nLCAnMCddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ15cKGEqXClcMSQnLCAnYWFhYWFhYWEnLCAnYWFhYWFhYWEnLCAnYWFhYSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ15cKGFcey0yLH1cKVwxXCskJywgJ2FhYWFhYWFhYScsICdhYWFhYWFhYWEnLCAnYWFhJ10pCgogICIgTG9vay1iZWhpbmQgd2l0aCBsaW1pdAogIGNhbGwgYWRkKHRsLCBbMiwgJzxcQDw9c3Bhbi4nLCAneHhzcGFueHg8c3Bhbnl5eScsICdzcGFueSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJzxcQDE8PXNwYW4uJywgJ3h4c3Bhbnh4PHNwYW55eXknLCAnc3BhbnknXSkKICBjYWxsIGFkZCh0bCwgWzIsICc8XEAyPD1zcGFuLicsICd4eHNwYW54eDxzcGFueXl5JywgJ3NwYW55J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXCg8PFwpXEA8PXNwYW4uJywgJ3h4c3Bhbnh4eHg8c3Bhbnh4PDxzcGFueXl5JywgJ3NwYW55JywgJzw8J10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXCg8PFwpXEAxPD1zcGFuLicsICd4eHNwYW54eHh4PHNwYW54eDw8c3Bhbnl5eSddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1woPDxcKVxAMjw9c3Bhbi4nLCAneHhzcGFueHh4eDxzcGFueHg8PHNwYW55eXknLCAnc3BhbnknLCAnPDwnXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcKGZvb1wpXEA8IWJhci4nLCAneHggZm9vYmFyMSB4YmFyMiB4eCcsICdiYXIyJ10pCgogICIgbG9vay1iZWhpbmQgbWF0Y2ggaW4gZnJvbnQgb2YgYSB6ZXJvLXdpZHRoIGl0ZW0KICBjYWxsIGFkZCh0bCwgWzIsICdcdlxDJSg8TGFzdCBDaGFuZ2VkOlxzKylAPD0uKiQnLCAnIiB0ZXN0IGhlYWRlciddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1x2XEMlKDxMYXN0IENoYW5nZWQ6XHMrKUA8PS4qJCcsICciIExhc3QgQ2hhbmdlZDogMTk3MCcsICcxOTcwJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXChmb29cKVxAPD1cPicsICdmb29iYXInXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcKGZvb1wpXEA8PVw+JywgJ2JhcmZvbycsICcnLCAnZm9vJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXChmb29cKVxAPD0uKicsICdmb29iYXInLCAnYmFyJywgJ2ZvbyddKQoKICAiIGNvbXBsaWNhdGVkIGxvb2stYmVoaW5kIG1hdGNoCiAgY2FsbCBhZGQodGwsIFsyLCAnXChyXEA8PVx8XHdcQDwhXClcLycsICd4ID0gL3dvcmQvOycsICcvJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXlthLXpdXCtcemUgXCZcKGFzZGZcKVxAPCEnLCAnZm9vIGJhcicsICdmb28nXSkKCiAgIiIgXEA+CiAgY2FsbCBhZGQodGwsIFsyLCAnXChhKlwpXEA+YScsICdhYWFhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXChhKlwpXEA+YicsICdhYWFiJywgJ2FhYWInLCAnYWFhJ10pCiAgY2FsbCBhZGQodGwsIFsyLCAnXlwoLlx7LX1iXClcQD4uJywgJyAgYWJjYmQnLCAnICBhYmMnLCAnICBhYiddKQogIGNhbGwgYWRkKHRsLCBbMiwgJ1woLlx7LX1cKVwoXClcQD4kJywgJ2FiYycsICdhYmMnLCAnYWJjJywgJyddKQogICIgVE9ETzogQlQgZW5naW5lIGRvZXMgbm90IHJlc3RvcmUgc3VibWF0Y2ggYWZ0ZXIgZmFpbHVyZQogIGNhbGwgYWRkKHRsLCBbMSwgJ1woYSpcKVxAPmFcfGFcKycsICdhYWFhJywgJ2FhYWEnXSkKCiAgIiAiXF8iIHByZXBlbmRlZCBuZWdhdGVkIGNvbGxlY3Rpb24gbWF0Y2hlcyBFT0wKICBjYWxsIGFkZCh0bCwgWzIsICdcX1teOC05XVwrJywgImFzZmlcbjk4ODgiLCAiYXNmaVxuIl0pCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9bXmFdXCsnLCAiYXNmaVxuOTg4OCIsICJzZmlcbjk4ODgiXSkKCiAgIiBSZXF1aXJpbmcgbG90cyBvZiBzdGF0ZXMuCiAgY2FsbCBhZGQodGwsIFsyLCAnWzAtOWEtekEtWl1cezh9LVwoWzAtOWEtekEtWl1cezR9LVwpXHszfVswLTlhLXpBLVpdXHsxMn0nLCAiIDEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiAiLCAiMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyIiwgIjEyMzQtIl0pCgogICIgU2tpcCBhZGRpbmcgc3RhdGUgdHdpY2UKICBjYWxsIGFkZCh0bCwgWzIsICdeXCUoXCUoXlxzKiNccyppZlw+XHwjXHMqaWZcKVwpXChcJT4xYy4qJFwpXEA9JywgIiNpZiBGT08iLCAiI2lmIiwgJyBGT08nXSkKCiAgIiBUZXN0IFwlViBhdG9tCiAgY2FsbCBhZGQodGwsIFsyLCAnXCU+NzB2R2VzYW10JywgJ0plYW4tTWljaGVsIENoYXJsaWVyICYgVmljdG9yIEh1Ymlub25cR2VzYW10YXVzZ2FiZSBbU2FsbGVja10gICAgQnVjayBEYW5ueSB7SmVhbi1NaWNoZWwgQ2hhcmxpZXIgJiBWaWN0b3IgSHViaW5vbn1cR2VzYW10YXVzZ2FiZScsICdHZXNhbXQnXSkKCiAgIiBUZXN0IGZvciBpZ25vcmluZyBjYXNlIGFuZCBtYXRjaGluZyByZXBlYXRlZCBjaGFyYWN0ZXJzCiAgY2FsbCBhZGQodGwsIFsyLCAnXGNiXCsnLCAnYUFiQmJCY0MnLCAnYkJiQiddKQoKICAiIFJ1biB0aGUgdGVzdHMKICBmb3IgdCBpbiB0bAogICAgbGV0IHJlID0gdFswXQogICAgbGV0IHBhdCA9IHRbMV0KICAgIGxldCB0ZXh0ID0gdFsyXQogICAgbGV0IG1hdGNoaWR4ID0gMwogICAgZm9yIGVuZ2luZSBpbiBbMCwgMSwgMl0KICAgICAgaWYgZW5naW5lID09IDIgJiYgcmUgPT0gMCB8fCBlbmdpbmUgPT0gMSAmJiByZSA9PSAxCiAgICAgICAgY29udGludWUKICAgICAgZW5kaWYKICAgICAgbGV0ICZyZWdleHBlbmdpbmUgPSBlbmdpbmUKICAgICAgdHJ5CiAgICAgICAgbGV0IGwgPSBtYXRjaGxpc3QodGV4dCwgcGF0KQogICAgICBjYXRjaAogICAgICAgIGNhbGwgYXNzZXJ0X3JlcG9ydCgnRXJyb3IgJyAuIGVuZ2luZSAuICc6IHBhdDogXCInIC4gcGF0CiAgICAgICAgICAgICAgXCAuICdcIiwgdGV4dDogXCInIC4gdGV4dCAuICdcIiwgY2F1c2VkIGFuIGV4Y2VwdGlvbjogXCInCiAgICAgICAgICAgICAgXCAuIHY6ZXhjZXB0aW9uIC4gJ1wiJykKICAgICAgZW5kdHJ5CiAgICAgICIgY2hlY2sgdGhlIG1hdGNoIGl0c2VsZgogICAgICBpZiBsZW4obCkgPT0gMCAmJiBsZW4odCkgPiBtYXRjaGlkeAogICAgICAgIGNhbGwgYXNzZXJ0X3JlcG9ydCgnRXJyb3IgJyAuIGVuZ2luZSAuICc6IHBhdDogXCInIC4gcGF0CiAgICAgICAgICAgICAgXCAuICdcIiwgdGV4dDogXCInIC4gdGV4dCAuICdcIiwgZGlkIG5vdCBtYXRjaCwgZXhwZWN0ZWQ6IFwiJwogICAgICAgICAgICAgIFwgLiB0W21hdGNoaWR4XSAuICdcIicpCiAgICAgIGVsc2VpZiBsZW4obCkgPiAwICYmIGxlbih0KSA9PSBtYXRjaGlkeAogICAgICAgIGNhbGwgYXNzZXJ0X3JlcG9ydCgnRXJyb3IgJyAuIGVuZ2luZSAuICc6IHBhdDogXCInIC4gcGF0CiAgICAgICAgICAgICAgXCAuICdcIiwgdGV4dDogXCInIC4gdGV4dCAuICdcIiwgbWF0Y2g6IFwiJyAuIGxbMF0KICAgICAgICAgICAgICBcIC4gJ1wiLCBleHBlY3RlZCBubyBtYXRjaCcpCiAgICAgIGVsc2VpZiBsZW4odCkgPiBtYXRjaGlkeCAmJiBsWzBdICE9IHRbbWF0Y2hpZHhdCiAgICAgICAgY2FsbCBhc3NlcnRfcmVwb3J0KCdFcnJvciAnIC4gZW5naW5lIC4gJzogcGF0OiBcIicgLiBwYXQKICAgICAgICAgICAgICBcIC4gJ1wiLCB0ZXh0OiBcIicgLiB0ZXh0IC4gJ1wiLCBtYXRjaDogXCInIC4gbFswXQogICAgICAgICAgICAgIFwgLiAnXCIsIGV4cGVjdGVkOiBcIicgLiB0W21hdGNoaWR4XSAuICdcIicpCiAgICAgIGVsc2UKICAgICAgICAiIFRlc3QgcGFzc2VkCiAgICAgIGVuZGlmCgogICAgICAiIGNoZWNrIGFsbCB0aGUgbmluZSBzdWJtYXRjaGVzCiAgICAgIGlmIGxlbihsKSA+IDAKICAgICAgICBmb3IgaSBpbiByYW5nZSgxLCA5KQogICAgICAgICAgaWYgbGVuKHQpIDw9IG1hdGNoaWR4ICsgaQogICAgICAgICAgICBsZXQgZSA9ICcnCiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIGxldCBlID0gdFttYXRjaGlkeCArIGldCiAgICAgICAgICBlbmRpZgogICAgICAgICAgaWYgbFtpXSAhPSBlCiAgICAgICAgICAgIGNhbGwgYXNzZXJ0X3JlcG9ydCgnRXJyb3IgJyAuIGVuZ2luZSAuICc6IHBhdDogXCInIC4gcGF0CiAgICAgICAgICAgICAgICAgIFwgLiAnXCIsIHRleHQ6IFwiJyAuIHRleHQgLiAnXCIsIHN1Ym1hdGNoICcgLiBpIC4gJzogXCInCiAgICAgICAgICAgICAgICAgIFwgLiBsW2ldIC4gJ1wiLCBleHBlY3RlZDogXCInIC4gZSAuICdcIicpCiAgICAgICAgICBlbmRpZgogICAgICAgIGVuZGZvcgogICAgICAgIHVubGV0IGkKICAgICAgZW5kaWYKICAgIGVuZGZvcgogIGVuZGZvcgoKICB1bmxldCB0IHRsIGUgbAplbmRmdW5jCgoiIFRlc3RzIGZvciBtdWx0aS1saW5lIHJlZ2V4cCBwYXR0ZXJucyB3aXRob3V0IG11bHRpLWJ5dGUgc3VwcG9ydC4KZnVuYyBUZXN0X3JlZ2V4cF9tdWx0aWxpbmVfcGF0KCkKICAiIHRsIGlzIGEgTGlzdCBvZiBMaXN0cyB3aXRoOgogICIgICAgcmVnZXhwIGVuZ2luZXMgdG8gdGVzdAogICIgICAgICAgMCAtIHRlc3Qgd2l0aCAncmVnZXhwZW5naW5lJyB2YWx1ZXMgMCBhbmQgMQogICIgICAgICAgMSAtIHRlc3Qgd2l0aCAncmVnZXhwZW5naW5lJyB2YWx1ZXMgMCBhbmQgMgogICIgICAgICAgMiAtIHRlc3Qgd2l0aCAncmVnZXhwZW5naW5lJyB2YWx1ZXMgMCwgMSBhbmQgMgogICIgICAgcmVnZXhwIHBhdHRlcm4KICAiICAgIExpc3Qgd2l0aCB0ZXh0IHRvIHRlc3QgdGhlIHBhdHRlcm4gb24KICAiICAgIExpc3Qgd2l0aCB0aGUgZXhwZWN0ZWQgbWF0Y2gKICBsZXQgdGwgPSBbXQoKICAiIGJhY2sgcmVmZXJlbmNlcwogIGNhbGwgYWRkKHRsLCBbMiwgJ14uXCguXCkuXF8uLlwxLicsIFsnYWFhJywgJ2FhYScsICdiJ10sIFsnWFgnLCAnYiddXSkKICBjYWxsIGFkZCh0bCwgWzIsICdcdi4qXC8oLiopXG4uKlwvXDEkJywgWycuL0RpcjEvRGlyMi96eXh3dnV0cy50eHQnLCAnLi9EaXIxL0RpcjIvYWJjZGVmZ2guYmF0JywgJycsICcuL0RpcjEvRGlyMi9maWxlMS50eHQnLCAnLi9PdGhlckRpcjEvT3RoZXJEaXIyL2ZpbGUxLnR4dCddLCBbJy4vRGlyMS9EaXIyL3p5eHd2dXRzLnR4dCcsICcuL0RpcjEvRGlyMi9hYmNkZWZnaC5iYXQnLCAnJywgJ1hYJ11dKQoKICAiIGxpbmUgYnJlYWtzCiAgY2FsbCBhZGQodGwsIFsyLCAnXFMuKlxueCcsIFsnYWJjJywgJ2RlZicsICdnaGknLCAneGprJywgJ2xtbiddLCBbJ2FiYycsICdkZWYnLCAnWFhqaycsICdsbW4nXV0pCgogICIgQW55IHNpbmdsZSBjaGFyYWN0ZXIgb3IgZW5kLW9mLWxpbmUKICBjYWxsIGFkZCh0bCwgWzIsICdcXy5cKycsIFsnYScsICdiJywgJ2MnXSwgWydYWCddXSkKICAiIEFueSBpZGVudGlmaWVyIG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9pXCsnLCBbJ2EnLCAnYicsICc7JywgJzInXSwgWydYWDtYWCddXSkKICAiIEFueSBpZGVudGlmaWVyIGJ1dCBleGNsdWRpbmcgZGlnaXRzIG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9JXCsnLCBbJ2EnLCAnYicsICc7JywgJzInXSwgWydYWDtYWDJYWCddXSkKICAiIEFueSBrZXl3b3JkIG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9rXCsnLCBbJ2EnLCAnYicsICc9JywgJzInXSwgWydYWD1YWCddXSkKICAiIEFueSBrZXl3b3JkIGJ1dCBleGNsdWRpbmcgZGlnaXRzIG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9LXCsnLCBbJ2EnLCAnYicsICc9JywgJzInXSwgWydYWD1YWDJYWCddXSkKICAiIEFueSBmaWxlbmFtZSBjaGFyYWN0ZXIgb3IgZW5kLW9mLWxpbmUKICBjYWxsIGFkZCh0bCwgWzIsICdcX2ZcKycsIFsnYScsICdiJywgJy4nLCAnNSddLCBbJ1hYJ11dKQogICIgQW55IGZpbGVuYW1lIGNoYXJhY3RlciBidXQgZXhjbHVkaW5nIGRpZ2l0cyBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfRlwrJywgWydhJywgJ2InLCAnLicsICc1J10sIFsnWFg1WFgnXV0pCiAgIiBBbnkgcHJpbnRhYmxlIGNoYXJhY3RlciBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfcFwrJywgWydhJywgJ2InLCAnPScsICc0J10sIFsnWFgnXV0pCiAgIiBBbnkgcHJpbnRhYmxlIGNoYXJhY3RlciBleGNsdWRpbmcgZGlnaXRzIG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9QXCsnLCBbJ2EnLCAnYicsICc9JywgJzQnXSwgWydYWDRYWCddXSkKICAiIEFueSB3aGl0ZXNwYWNlIGNoYXJhY3RlciBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfc1wrJywgWycgJywgJyAnLCAnYScsICdiJ10sIFsnWFhhWFhiWFgnXV0pCiAgIiBBbnkgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9TXCsnLCBbJyAnLCAnICcsICdhJywgJ2InXSwgWycgWFggWFgnXV0pCiAgIiBBbnkgZGVjaW1hbCBkaWdpdCBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfZFwrJywgWycxJywgJ2EnLCAnMicsICdiJywgJzMnXSwgWydYWGFYWGJYWCddXSkKICAiIEFueSBub24tZGVjaW1hbCBkaWdpdCBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfRFwrJywgWycxJywgJ2EnLCAnMicsICdiJywgJzMnXSwgWycxWFgyWFgzWFgnXV0pCiAgIiBBbnkgaGV4YWRlY2ltYWwgZGlnaXQgb3IgZW5kLW9mLWxpbmUKICBjYWxsIGFkZCh0bCwgWzIsICdcX3hcKycsIFsnMScsICdhJywgJ2cnLCAnOScsICc4J10sIFsnWFhnWFgnXV0pCiAgIiBBbnkgbm9uLWhleGFkZWNpbWFsIGRpZ2l0IG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9YXCsnLCBbJzEnLCAnYScsICdnJywgJzknLCAnOCddLCBbJzFYWGFYWDlYWDhYWCddXSkKICAiIEFueSBvY3RhbCBkaWdpdCBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfb1wrJywgWycwJywgJzcnLCAnOCcsICc5JywgJzAnXSwgWydYWDhYWDlYWCddXSkKICAiIEFueSBub24tb2N0YWwgZGlnaXQgb3IgZW5kLW9mLWxpbmUKICBjYWxsIGFkZCh0bCwgWzIsICdcX09cKycsIFsnMCcsICc3JywgJzgnLCAnOScsICcwJ10sIFsnMFhYN1hYMFhYJ11dKQogICIgQW55IHdvcmQgY2hhcmFjdGVyIG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF93XCsnLCBbJ0EnLCAnQicsICc9JywgJ0MnLCAnRCddLCBbJ1hYPVhYJ11dKQogICIgQW55IG5vbi13b3JkIGNoYXJhY3RlciBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfV1wrJywgWydBJywgJ0InLCAnPScsICdDJywgJ0QnXSwgWydBWFhCWFhDWFhEWFgnXV0pCiAgIiBBbnkgaGVhZC1vZi13b3JkIGNoYXJhY3RlciBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfaFwrJywgWydhJywgJzEnLCAnYicsICcyJywgJ2MnXSwgWydYWDFYWDJYWCddXSkKICAiIEFueSBub24taGVhZC1vZi13b3JkIGNoYXJhY3RlciBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfSFwrJywgWydhJywgJzEnLCAnYicsICcyJywgJ2MnXSwgWydhWFhiWFhjWFgnXV0pCiAgIiBBbnkgYWxwaGFiZXRpYyBjaGFyYWN0ZXIgb3IgZW5kLW9mLWxpbmUKICBjYWxsIGFkZCh0bCwgWzIsICdcX2FcKycsIFsnYScsICcxJywgJ2InLCAnMicsICdjJ10sIFsnWFgxWFgyWFgnXV0pCiAgIiBBbnkgbm9uLWFscGhhYmV0aWMgY2hhcmFjdGVyIG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9BXCsnLCBbJ2EnLCAnMScsICdiJywgJzInLCAnYyddLCBbJ2FYWGJYWGNYWCddXSkKICAiIEFueSBsb3dlcmNhc2UgY2hhcmFjdGVyIG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9sXCsnLCBbJ2EnLCAnQScsICdiJywgJ0InXSwgWydYWEFYWEJYWCddXSkKICAiIEFueSBub24tbG93ZXJjYXNlIGNoYXJhY3RlciBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfTFwrJywgWydhJywgJ0EnLCAnYicsICdCJ10sIFsnYVhYYlhYJ11dKQogICIgQW55IHVwcGVyY2FzZSBjaGFyYWN0ZXIgb3IgZW5kLW9mLWxpbmUKICBjYWxsIGFkZCh0bCwgWzIsICdcX3VcKycsIFsnYScsICdBJywgJ2InLCAnQiddLCBbJ2FYWGJYWCddXSkKICAiIEFueSBub24tdXBwZXJjYXNlIGNoYXJhY3RlciBvciBlbmQtb2YtbGluZQogIGNhbGwgYWRkKHRsLCBbMiwgJ1xfVVwrJywgWydhJywgJ0EnLCAnYicsICdCJ10sIFsnWFhBWFhCWFgnXV0pCiAgIiBDb2xsZWN0aW9uIG9yIGVuZC1vZi1saW5lCiAgY2FsbCBhZGQodGwsIFsyLCAnXF9bYS16XVwrJywgWydhJywgJ0EnLCAnYicsICdCJ10sIFsnWFhBWFhCWFgnXV0pCiAgIiBzdGFydCBvZiBsaW5lIGFueXdoZXJlIGluIHRoZSB0ZXh0CiAgY2FsbCBhZGQodGwsIFsyLCAnb25lXHpzXF9zKlxfXlx6ZXR3bycsCiAgICAgICAgXCBbJycsICdvbmUnLCAnIHR3bycsICdvbmUnLCAnJywgJ3R3byddLAogICAgICAgIFwgWycnLCAnb25lJywgJyB0d28nLCAnb25lWFh0d28nXV0pCiAgIiBlbmQgb2YgbGluZSBhbnl3aGVyZSBpbiB0aGUgdGV4dAogIGNhbGwgYWRkKHRsLCBbMiwgJ29uZVx6c1xfJFxfcyp0d28nLAogICAgICAgIFwgWycnLCAnb25lJywgJyB0d28nLCAnb25lJywgJycsICd0d28nXSwgWycnLCAnb25lWFgnLCAnb25lWFgnXV0pCgogICIgQ2hlY2sgdGhhdCBcX1swLTldIG1hdGNoaW5nIEVPTCBkb2VzIG5vdCBicmVhayBhIGZvbGxvd2luZyBcPgogIGNhbGwgYWRkKHRsLCBbMiwgJ1w8XChcKDI1XF9bMC01XVx8MlxfWzAtNF1cX1swLTldXHxcX1swMV1cP1xfWzAtOV1cX1swLTldXD9cKVwuXClcezNcfVwoMjVcX1swLTVdXHwyXF9bMC00XVxfWzAtOV1cfFxfWzAxXVw/XF9bMC05XVxfWzAtOV1cP1wpXD4nLCBbJycsICdsb2NhbG5ldC8xOTIuMTY4LjAuMScsICcnXSwgWycnLCAnbG9jYWxuZXQvWFgnLCAnJ11dKQoKICAiIENoZWNrIGEgcGF0dGVybiB3aXRoIGEgbGluZSBicmVhayBhbmQgXiBhbmQgJAogIGNhbGwgYWRkKHRsLCBbMiwgJ2Fcbl5iJFxuXmMnLCBbJ2EnLCAnYicsICdjJ10sIFsnWFgnXV0pCgogIGNhbGwgYWRkKHRsLCBbMiwgJ1woXi5cK1xuXClcMScsIFsnIGRvZycsICcgZG9nJywgJ2FzZGYnXSwgWydYWGFzZGYnXV0pCgogICIgUnVuIHRoZSBtdWx0aS1saW5lIHRlc3RzCiAgZm9yIHQgaW4gdGwKICAgIGxldCByZSA9IHRbMF0KICAgIGxldCBwYXQgPSB0WzFdCiAgICBsZXQgYmVmb3JlID0gdFsyXQogICAgbGV0IGFmdGVyID0gdFszXQogICAgZm9yIGVuZ2luZSBpbiBbMCwgMSwgMl0KICAgICAgaWYgZW5naW5lID09IDIgJiYgcmUgPT0gMCB8fCBlbmdpbmUgPT0gMSAmJiByZSA9PSAxCiAgICAgICAgY29udGludWUKICAgICAgZW5kaWYKICAgICAgbGV0ICZyZWdleHBlbmdpbmUgPSBlbmdpbmUKICAgICAgbmV3CiAgICAgIGNhbGwgc2V0bGluZSgxLCBiZWZvcmUpCiAgICAgIGV4ZSAnJXMvJyAuIHBhdCAuICcvWFgvJwogICAgICBsZXQgcmVzdWx0ID0gZ2V0bGluZSgxLCAnJCcpCiAgICAgIHEhCiAgICAgIGlmIHJlc3VsdCAhPSBhZnRlcgogICAgICAgIGNhbGwgYXNzZXJ0X3JlcG9ydCgnRXJyb3I6IHBhdDogXCInIC4gcGF0IC4gJ1wiLCB0ZXh0OiBcIicKICAgICAgICAgICAgICBcIC4gc3RyaW5nKGJlZm9yZSkgLiAnXCIsIGV4cGVjdGVkOiBcIicgLiBzdHJpbmcoYWZ0ZXIpCiAgICAgICAgICAgICAgXCAuICdcIiwgZ290OiBcIicgLiBzdHJpbmcocmVzdWx0KSAuICdcIicpCiAgICAgIGVsc2UKICAgICAgICAiIFRlc3QgcGFzc2VkCiAgICAgIGVuZGlmCiAgICBlbmRmb3IKICBlbmRmb3IKICB1bmxldCB0IHRsCmVuZGZ1bmMKCiIgQ2hlY2sgdGhhdCB1c2luZyBhIHBhdHRlcm4gb24gdHdvIGxpbmVzIGRvZXNuJ3QgZ2V0IG1lc3NlZCB1cCBieSB1c2luZwoiIG1hdGNoc3RyKCkgd2l0aCBcemUgaW4gYmV0d2Vlbi4KZnVuYyBUZXN0X21hdGNoc3RyX3dpdGhfemUoKQogIG5ldwogIGNhbGwgYXBwZW5kKDAsIFsnU3Vic3RpdHV0ZSBoZXJlOicsICc8VD0iIj5UYSA1PC9UaXRsZT4nLAogICAgICAgIFwgJzxUPSIiPkFjIDc8L1RpdGxlPiddKQogIGNhbGwgY3Vyc29yKDEsIDEpCiAgc2V0IHJlPTAKCiAgLisxLC4rMnMvIiIvXD0nIicgLiBtYXRjaHN0cihnZXRsaW5lKCIuIiksICdcZFwrXHplPCcpIC4gJyInCiAgY2FsbCBhc3NlcnRfZXF1YWwoWydTdWJzdGl0dXRlIGhlcmU6JywgJzxUPSI1Ij5UYSA1PC9UaXRsZT4nLAogICAgICAgIFwgJzxUPSI3Ij5BYyA3PC9UaXRsZT4nLCAnJ10sIGdldGxpbmUoMSwgJyQnKSkKCiAgYndpcGUhCmVuZGZ1bmMKCiIgQ2hlY2sgYSBwYXR0ZXJuIHdpdGggYSBsb29rIGJlaW5kIGNyb3NzaW5nIGEgbGluZSBib3VuZGFyeQpmdW5jIFRlc3RfbG9va2JlaGluZF9hY3Jvc3NfbGluZSgpCiAgbmV3CiAgY2FsbCBhcHBlbmQoMCwgWydCZWhpbmQ6JywgJ2FzZGZhc2Q8eXl5JywgJ3h4c3RhcnQxJywgJ2FzZGZhc2Q8eXknLAogICAgICAgIFwgJ3h4eHN0YXJ0MicsICdhc2RmYXNkPHl5JywgJ3h4c3RhcnQzJ10pCiAgY2FsbCBjdXJzb3IoMSwgMSkKICBjYWxsIHNlYXJjaCgnXCg8XF9beHldXCtcKVxAMzw9c3RhcnQnKQogIGNhbGwgYXNzZXJ0X2VxdWFsKFswLCA3LCAzLCAwXSwgZ2V0cG9zKCcuJykpCiAgYndpcGUhCmVuZGZ1bmMKCiIgVGVzdCBmb3IgdGhlIFwlViBhdG9tIChtYXRjaCBpbnNpZGUgdGhlIHZpc3VhbCBhcmVhKQpmdW5jIFJlZ2V4X01hdGNoX1Zpc3VhbF9BcmVhKCkKICBjYWxsIGFwcGVuZCgwLCBbJ1Zpc3VhbDonLCAndGhleGUgdGhlIHRoZXhldGhlJywgJ2FuZGF4YW5kIGFuZGF4YW5kJywKICAgICAgICBcICdvb294b2ZvciBmb3JveG9vbycsICdvb294b2ZvciBmb3JveG9vbyddKQogIGNhbGwgY3Vyc29yKDEsIDEpCiAgZXhlICJub3JtYWwgamZ4dmZ4OnMvXFwlVmUvRS9nXDxDUj4iCiAgZXhlICJub3JtYWwgalY6cy9cXCVWYS9BL2dcPENSPiIKICBleGUgIm5vcm1hbCBqZnhcPEMtVj5meGo6cy9cXCVWby9PL2dcPENSPiIKICBjYWxsIGFzc2VydF9lcXVhbChbJ1Zpc3VhbDonLCAndGhleEUgdGhFIHRoRXhldGhlJywgJ0FuZEF4QW5kIEFuZEF4QW5kJywKICAgICAgICBcICdvb294T2ZPciBmT3JPeG9vbycsICdvb294T2ZPciBmT3JPeG9vbycsICcnXSwgZ2V0bGluZSgxLCAnJCcpKQogICVkCmVuZGZ1bmMKCiIgQ2hlY2sgbWF0Y2hpbmcgVmlzdWFsIGFyZWEKZnVuYyBUZXN0X21hdGNoaW5nX3Zpc3VhbF9hcmVhKCkKICBuZXcKICBzZXQgcmVnZXhwZW5naW5lPTEKICBjYWxsIFJlZ2V4X01hdGNoX1Zpc3VhbF9BcmVhKCkKICBzZXQgcmVnZXhwZW5naW5lPTIKICBjYWxsIFJlZ2V4X01hdGNoX1Zpc3VhbF9BcmVhKCkKICBzZXQgcmVnZXhwZW5naW5lJgogIGJ3aXBlIQplbmRmdW5jCgoiIENoZWNrIG1hdGNoaW5nIG1hcmtzCmZ1bmMgUmVnZXhfTWFyaygpCiAgY2FsbCBhcHBlbmQoMCwgWycnLCAnJywgJycsICdNYXJrczonLCAnYXNkZlNhc2Rmc2FkZkVhc2RmJywgJ2FzZGZTYXMnLAogICAgICAgIFwgJ2Rmc2FkZkVhc2RmJywgJycsICcnLCAnJywgJycsICcnXSkKICBjYWxsIGN1cnNvcig0LCAxKQogIGV4ZSAibm9ybWFsIGpmU21zZkVtZTouLTQsLis2cy8uXFwlPidzLipcXCU8J2UuLi9oZXJlL1w8Q1I+IgogIGV4ZSAibm9ybWFsIGpmU21zajBmRW1lOi4tNCwuKzZzLy5cXCU+J3NcXF8uKlxcJTwnZS4uL2FnYWluL1w8Q1I+IgogIGNhbGwgYXNzZXJ0X2VxdWFsKFsnJywgJycsICcnLCAnTWFya3M6JywgJ2FzZGZoZXJlYXNkZicsICdhc2RmYWdhaW5hc2RmJywKICAgICAgICBcICcnLCAnJywgJycsICcnLCAnJywgJyddLCBnZXRsaW5lKDEsICckJykpCiAgJWQKZW5kZnVuYwoKZnVuYyBUZXN0X21hdGNoaW5nX21hcmtzKCkKICBuZXcKICBzZXQgcmVnZXhwZW5naW5lPTEKICBjYWxsIFJlZ2V4X01hcmsoKQogIHNldCByZWdleHBlbmdpbmU9MgogIGNhbGwgUmVnZXhfTWFyaygpCiAgYndpcGUhCmVuZGZ1bmMKCiIgQ2hlY2sgcGF0dGVybnMgbWF0Y2hpbmcgY3Vyc29yIHBvc2l0aW9uLgpmdW5jIHM6Y3VycG9zX3Rlc3QoKQogIG5ldwogIGNhbGwgc2V0bGluZSgxLCBbJ2Zmb29vb28nLCAnYm9ib29vbycsICd6b29vb29vJywgJ2tvb29vb28nLCAnbW9vb29vbycsCiAgICAgICAgXCAiXHRcdFx0Zm9vIiwgJ2FiYWJhYmFiYWJhYmFiZm9vJywgJ2JhYmFiYWJhYmFiYWJhZm9vJywgJyoqKioqKioqXycsCiAgICAgICAgXCAnICAgICAgICB4eHh4eHh4eHh4eHggICAgeHh4eCB4eHh4eHggeHh4eHh4eCB4IHh4eHh4eHh4eCB4eCB4eHh4eHggeHh4eHh4IHh4eHh4IHh4eHh4eHggeHggeHh4eCB4eHh4eHh4eCB4eHh4IHh4eHh4eHh4eHh4IHh4eCB4eHh4eHh4IHh4eHh4eHh4eCB4eCB4eHh4eHggeHggeHh4eHh4eCB4eHh4eHh4eHh4eHh4eHh4IHh4eHh4eHh4eCAgeHh4IHh4eHh4eHh4IHh4eHh4eHh4eCB4eHh4IHh4eCB4eHh4IHh4eCB4eHggeHh4eHggeHh4eHh4eHh4eHh4IHh4eHggeHh4eHh4eHh4IHh4eHh4eHh4eHh4IHh4IHh4eHh4IHh4eCB4eHh4eHh4eCB4eHh4eHggeHh4IHh4eCB4eHh4eHh4eHggeHh4eHh4eCB4IHh4eHh4eHh4eCB4eCB4eHh4eHggeHh4eHh4eCAgeHh4eHh4eHh4eHh4eHh4eHh4IHh4eHh4eHggeHh4eHh4eCB4eHggeHh4IHh4eHh4eHh4IHh4eHh4eHggIHh4eHggeHh4IHh4eHh4eCB4eHh4eCB4eHh4eCB4eCB4eHh4eHggeHh4eHh4eCB4eHggeHh4eHh4eHh4eHh4IHh4eHggeHh4eHh4eHh4IHh4eHh4eCB4eHh4eHggeHh4eHggeHh4IHh4eHh4eHggeHh4eHh4eHh4eHh4eHh4eCB4eHh4eHh4eHggIHh4eHh4eHh4eHggeHh4eCB4eCB4eHh4eHh4eCB4eHggeHh4eHh4eHh4eHggeHh4eHgnXSkKICBjYWxsIHNldHBvcygnLicsIFswLCAxLCAwLCAwXSkKICBzL1wlPjNjLi8vZwogIGNhbGwgc2V0cG9zKCcuJywgWzAsIDIsIDQsIDBdKQogIHMvXCUjLiokLy9nCiAgY2FsbCBzZXRwb3MoJy4nLCBbMCwgMywgMCwgMF0pCiAgcy9cJTwzYy4vXy9nCiAgJXMvXCU0bFwlPjVjLi9fL2cKICAlcy9cJTZsXCU+MjV2Li9fL2cKICAlcy9cJT42bFwlM2MuLyEvZwogICVzL1wlPjdsXCUxMmMuLz8vZwogICVzL1wlPjdsXCU8OWxcJT41dlwlPDh2Li8jL2cKICAkcy9cJSh8XHUuKlwpXEA8PVtefFx0XVwrJC8vZ2UKICBjYWxsIGFzc2VydF9lcXVhbChbJ2ZmbycsICdib2InLCAnX19vb29vbycsICdrb29vb19fJywgJ21vb29vb28nLAogICAgICAgIFwgJwkJCWZfXycsICdhYiFiYWJhYmFiYWJhYmZvbycsCiAgICAgICAgXCAnYmEhYWIjI2FiYWI/YmFmb28nLCAnKiohKioqKipfJywKICAgICAgICBcICcgICEgICAgIHh4eD94eHh4eHh4eCAgICB4eHh4IHh4eHh4eCB4eHh4eHh4IHggeHh4eHh4eHh4IHh4IHh4eHh4eCB4eHh4eHggeHh4eHggeHh4eHh4eCB4eCB4eHh4IHh4eHh4eHh4IHh4eHggeHh4eHh4eHh4eHggeHh4IHh4eHh4eHggeHh4eHh4eHh4IHh4IHh4eHh4eCB4eCB4eHh4eHh4IHh4eHh4eHh4eHh4eHh4eHggeHh4eHh4eHh4ICB4eHggeHh4eHh4eHggeHh4eHh4eHh4IHh4eHggeHh4IHh4eHggeHh4IHh4eCB4eHh4eCB4eHh4eHh4eHh4eHggeHh4eCB4eHh4eHh4eHggeHh4eHh4eHh4eHggeHggeHh4eHggeHh4IHh4eHh4eHh4IHh4eHh4eCB4eHggeHh4IHh4eHh4eHh4eCB4eHh4eHh4IHggeHh4eHh4eHh4IHh4IHh4eHh4eCB4eHh4eHh4ICB4eHh4eHh4eHh4eHh4eHh4eHggeHh4eHh4eCB4eHh4eHh4IHh4eCB4eHggeHh4eHh4eHggeHh4eHh4eCAgeHh4eCB4eHggeHh4eHh4IHh4eHh4IHh4eHh4IHh4IHh4eHh4eCB4eHh4eHh4IHh4eCB4eHh4eHh4eHh4eHggeHh4eCB4eHh4eHh4eHggeHh4eHh4IHh4eHh4eCB4eHh4eCB4eHggeHh4eHh4eCB4eHh4eHh4eHh4eHh4eHh4IHh4eHh4eHh4eCAgeHh4eHh4eHh4eCB4eHh4IHh4IHh4eHh4eHh4IHh4eCB4eHh4eHh4eHh4eCB4eHh4eCddLAogICAgICAgIFwgZ2V0bGluZSgxLCAnJCcpKQogIGJ3aXBlIQplbmRmdW5jCgpmdW5jIFRlc3RfbWF0Y2hpbmdfY3VycG9zKCkKICBzZXQgcmU9MAogIGNhbGwgczpjdXJwb3NfdGVzdCgpCiAgc2V0IHJlPTEKICBjYWxsIHM6Y3VycG9zX3Rlc3QoKQogIHNldCByZT0yCiAgY2FsbCBzOmN1cnBvc190ZXN0KCkKICBzZXQgcmUmCmVuZGZ1bmMKCiIgVGVzdCBmb3IgbWF0Y2hpbmcgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgYSBidWZmZXIKZnVuYyBSZWdleF9zdGFydF9lbmRfYnVmZmVyKCkKICBjYWxsIHNldGxpbmUoMSwgcmVwZWF0KFsndmltIGVkaXQnXSwgMjApKQogIC9cJV4KICBjYWxsIGFzc2VydF9lcXVhbChbMCwgMSwgMSwgMF0sIGdldHBvcygnLicpKQogIGV4ZSAibm9ybWFsIDUwJS9cXCVeLi5cPENSPiIKICBjYWxsIGFzc2VydF9lcXVhbChbMCwgMSwgMSwgMF0sIGdldHBvcygnLicpKQogIGV4ZSAibm9ybWFsIDUwJS9cXCUkXDxDUj4iCiAgY2FsbCBhc3NlcnRfZXF1YWwoWzAsIDIwLCA4LCAwXSwgZ2V0cG9zKCcuJykpCiAgZXhlICJub3JtYWwgNmdnLy4uXFwlJFw8Q1I+IgogIGNhbGwgYXNzZXJ0X2VxdWFsKFswLCAyMCwgNywgMF0sIGdldHBvcygnLicpKQogICVkCmVuZGZ1bmMKCmZ1bmMgVGVzdF9zdGFydF9lbmRfb2ZfYnVmZmVyX21hdGNoKCkKICBuZXcKICBzZXQgcmVnZXhwZW5naW5lPTEKICBjYWxsIFJlZ2V4X3N0YXJ0X2VuZF9idWZmZXIoKQogIHNldCByZWdleHBlbmdpbmU9MgogIGNhbGwgUmVnZXhfc3RhcnRfZW5kX2J1ZmZlcigpCiAgYndpcGUhCmVuZGZ1bmMKCiIgQ2hlY2sgZm9yIGRldGVjdGluZyBlcnJvcgpmdW5jIFRlc3RfcmVnZXhwX2Vycm9yKCkKICBjYWxsIGFzc2VydF9mYWlscygiY2FsbCBtYXRjaGxpc3QoJ3ggeCcsICdcXCUjPTEgXFx6cyonKSIsICdFODg4OicpCiAgY2FsbCBhc3NlcnRfZmFpbHMoImNhbGwgbWF0Y2hsaXN0KCd4IHgnLCAnXFwlIz0xIFxcemUqJykiLCAnRTg4ODonKQogIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIG1hdGNobGlzdCgneCB4JywgJ1xcJSM9MiBcXHpzKicpIiwgJ0U4ODg6JykKICBjYWxsIGFzc2VydF9mYWlscygiY2FsbCBtYXRjaGxpc3QoJ3ggeCcsICdcXCUjPTIgXFx6ZSonKSIsICdFODg4OicpCiAgY2FsbCBhc3NlcnRfZmFpbHMoJ2V4ZSAibm9ybWFsIC9cXCUjPTFcXCVbeFxcJVt4XV1cPENSPiInLCAnRTM2OTonKQogIGNhbGwgYXNzZXJ0X2ZhaWxzKCJjYWxsIG1hdGNoc3RyKCdhYmNkJywgJ1xcJW84NDFcXCVvMTQyJykiLCAnRTY3ODonKQogIGNhbGwgYXNzZXJ0X2VxdWFsKCcnLCBtYXRjaHN0cignYWJjZCcsICdcJW8xODFcJW8xNDInKSkKZW5kZnVuYwoKIiBUZXN0IGZvciB1c2luZyB0aGUgbGFzdCBzdWJzdGl0dXRlIHN0cmluZyBwYXR0ZXJuICh+KQpmdW5jIFRlc3RfcmVnZXhwX2xhc3Rfc3Vic3Rfc3RyaW5nKCkKICBuZXcKICBzL2Jhci9iYXovZQogIGNhbGwgYXNzZXJ0X2VxdWFsKG1hdGNoc3RyKCJmb29cbmJhelxuYmFyIiwgIlxcJSM9MVx+IiksICJiYXoiKQogIGNhbGwgYXNzZXJ0X2VxdWFsKG1hdGNoc3RyKCJmb29cbmJhelxuYmFyIiwgIlxcJSM9Mlx+IiksICJiYXoiKQogIGNsb3NlIQplbmRmdW5jCgoiIHZpbTogc2hpZnR3aWR0aD0yIHN0cz0yIGV4cGFuZHRhYgo=